diff --git a/.gersemirc b/.gersemirc new file mode 100644 index 0000000000..4d74cb215a --- /dev/null +++ b/.gersemirc @@ -0,0 +1,11 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/BlankSpruce/gersemi/0.24.0/gersemi/configuration.schema.json + +# Needed for gersemi to detect custom functions and macros. +definitions: ["./cmake"] +disable_formatting: false +extensions: [] +indent: 4 +line_length: 120 +list_expansion: favour-inlining +unsafe: false +warn_about_unknown_commands: true diff --git a/src/.gitattributes b/.gitattributes similarity index 100% rename from src/.gitattributes rename to .gitattributes diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000000..52f63cb5d9 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,12 @@ +# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file + +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + - package-ecosystem: "pip" + directory: "/" + schedule: + interval: "weekly" diff --git a/.github/workflows/black_to_github_annotations.py b/.github/workflows/black_to_github_annotations.py new file mode 100644 index 0000000000..074eedf6b7 --- /dev/null +++ b/.github/workflows/black_to_github_annotations.py @@ -0,0 +1,41 @@ +from __future__ import annotations + +import json +import os +import sys +from typing import TypedDict + +import github_action_utils as gha_utils + + +class Entry(TypedDict): + location: Location + + +class Location(TypedDict): + path: str + lines: Lines + + +class Lines(TypedDict): + begin: int + end: int + + +json_data: list[Entry] = json.load(sys.stdin) + +if os.getenv("RUNNER_DEBUG"): + print("Debug: Black formatting JSON data:") + print(json.dumps(json_data, indent=2)) + +for change in json_data: + location = change["location"] + path = location["path"] + lines = location["lines"] + gha_utils.error( + f"Black formatting issue in {path}", + title="Black Format Issue", + file=path, + line=lines["begin"], + end_line=lines["end"], + ) diff --git a/.github/workflows/build_osx.yml b/.github/workflows/build_osx.yml index 25c3f9bac7..056cf13763 100644 --- a/.github/workflows/build_osx.yml +++ b/.github/workflows/build_osx.yml @@ -21,12 +21,12 @@ jobs: steps: - name: Checkout Repository - uses: actions/checkout@v3 + uses: actions/checkout@v6 with: submodules: recursive - name: Checkout Build Repository - uses: actions/checkout@v3 + uses: actions/checkout@v6 with: repository: IfcOpenShell/build-outputs path: ./build @@ -81,7 +81,7 @@ jobs: - name: Upload Build Logs if: always() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: build-logs-osx-${{ matrix.arch }} path: | @@ -139,7 +139,7 @@ jobs: cd .. - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v4 + uses: aws-actions/configure-aws-credentials@v6 with: aws-access-key-id: ${{ secrets.AWS_UPLOAD_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_UPLOAD_SECRET_ACCESS_KEY }} diff --git a/.github/workflows/build_pyodide.yml b/.github/workflows/build_pyodide.yml index f42b7a9846..744bd9e772 100644 --- a/.github/workflows/build_pyodide.yml +++ b/.github/workflows/build_pyodide.yml @@ -9,13 +9,13 @@ jobs: steps: - name: Checkout Repository - uses: actions/checkout@v3 + uses: actions/checkout@v6 with: submodules: recursive path: IfcOpenShell - name: Checkout Build Repository - uses: actions/checkout@v3 + uses: actions/checkout@v6 with: repository: IfcOpenShell/build-outputs path: ifcopenshell_build @@ -42,7 +42,7 @@ jobs: - name: Upload Build Logs if: always() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: build-logs-pyodide path: | @@ -77,7 +77,7 @@ jobs: git push || echo "Push failed" - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v4 + uses: aws-actions/configure-aws-credentials@v6 with: aws-access-key-id: ${{ secrets.AWS_UPLOAD_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_UPLOAD_SECRET_ACCESS_KEY }} diff --git a/.github/workflows/build_rocky.yml b/.github/workflows/build_rocky.yml index d43fa2eca9..662aa04f26 100644 --- a/.github/workflows/build_rocky.yml +++ b/.github/workflows/build_rocky.yml @@ -29,12 +29,12 @@ jobs: aws --version - name: Checkout Repository - uses: actions/checkout@v3 + uses: actions/checkout@v6 with: submodules: recursive - name: Checkout Build Repository - uses: actions/checkout@v3 + uses: actions/checkout@v6 with: repository: IfcOpenShell/build-outputs path: ./build @@ -48,8 +48,8 @@ jobs: [ -n "$install_root" ] && find "$install_root" -type f -name 'cache-*.tar.gz' -maxdepth 1 -exec tar -xzf {} -C "$install_root" \; || true - name: ccache - # Latest release (1.2.19) doesn't support Rocky, so using a specific commit. - uses: hendrikmuhs/ccache-action@eca11c308176d48942455b9e5b1b70ff6950a778 + # TODO: Use tag after 1.2.20 releases. + uses: hendrikmuhs/ccache-action@5ebbd400eff9e74630f759d94ddd7b6c26299639 with: key: ubuntu-22.04-${{ runner.arch }}-rockylinux8 @@ -61,7 +61,7 @@ jobs: - name: Upload Build Logs if: always() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: build-logs-rocky path: | @@ -118,7 +118,7 @@ jobs: cd .. - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v4 + uses: aws-actions/configure-aws-credentials@v6 with: aws-access-key-id: ${{ secrets.AWS_UPLOAD_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_UPLOAD_SECRET_ACCESS_KEY }} diff --git a/.github/workflows/build_rocky_arm.yml b/.github/workflows/build_rocky_arm.yml index a29a11ab39..445f49658a 100644 --- a/.github/workflows/build_rocky_arm.yml +++ b/.github/workflows/build_rocky_arm.yml @@ -29,12 +29,12 @@ jobs: aws --version - name: Checkout Repository - uses: actions/checkout@v3 + uses: actions/checkout@v6 with: submodules: recursive - name: Checkout Build Repository - uses: actions/checkout@v3 + uses: actions/checkout@v6 with: repository: IfcOpenShell/build-outputs path: ./build @@ -48,8 +48,8 @@ jobs: [ -n "$install_root" ] && find "$install_root" -type f -name 'cache-*.tar.gz' -maxdepth 1 -exec tar -xzf {} -C "$install_root" \; || true - name: ccache - # Latest release (1.2.19) doesn't support Rocky, so using a specific commit. - uses: hendrikmuhs/ccache-action@eca11c308176d48942455b9e5b1b70ff6950a778 + # TODO: Use tag after 1.2.20 releases. + uses: hendrikmuhs/ccache-action@5ebbd400eff9e74630f759d94ddd7b6c26299639 with: key: ubuntu-22.04-${{ runner.arch }}-rockylinux8 @@ -61,7 +61,7 @@ jobs: - name: Upload Build Logs if: always() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: build-logs-rocky-arm64 path: | @@ -118,7 +118,7 @@ jobs: cd .. - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v4 + uses: aws-actions/configure-aws-credentials@v6 with: aws-access-key-id: ${{ secrets.AWS_UPLOAD_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_UPLOAD_SECRET_ACCESS_KEY }} diff --git a/.github/workflows/build_win.yml b/.github/workflows/build_win.yml index 2d6d31e686..ab9d7b6f80 100644 --- a/.github/workflows/build_win.yml +++ b/.github/workflows/build_win.yml @@ -12,12 +12,12 @@ jobs: arch: ['x64'] steps: - name: Checkout Repository - uses: actions/checkout@v3 + uses: actions/checkout@v6 with: submodules: recursive - name: Checkout Build Repository - uses: actions/checkout@v3 + uses: actions/checkout@v6 with: repository: IfcOpenShell/build-outputs path: _deps-vs2022-x64-installed @@ -37,8 +37,8 @@ jobs: } - name: ccache - # Use fork to resolve cache misses / duplicated cache entries on Windows. - uses: Andrej730/ccache-action@main + # TODO: Use tag after 1.2.20 releases. + uses: hendrikmuhs/ccache-action@5ebbd400eff9e74630f759d94ddd7b6c26299639 with: key: win-${{ matrix.arch }} # Windows ccache needs ~1GB @@ -73,7 +73,7 @@ jobs: git push || echo "Push failed" - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v4 + uses: aws-actions/configure-aws-credentials@v6 with: aws-access-key-id: ${{ secrets.AWS_UPLOAD_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_UPLOAD_SECRET_ACCESS_KEY }} diff --git a/.github/workflows/check_repo_ci_jobs.py b/.github/workflows/check_repo_ci_jobs.py index 3a78b8e911..7bf7ed13e1 100644 --- a/.github/workflows/check_repo_ci_jobs.py +++ b/.github/workflows/check_repo_ci_jobs.py @@ -1,9 +1,9 @@ +import os import pathlib import shutil +import zipfile import requests -import zipfile -import os # To test this locally, set these environment variables REPO_OWNER = os.environ.get("REPO_OWNER", "IfcOpenShell/IfcOpenShell") diff --git a/.github/workflows/ci-bcf-pypi.yml b/.github/workflows/ci-bcf-pypi.yml index 011babfe2b..349b071740 100644 --- a/.github/workflows/ci-bcf-pypi.yml +++ b/.github/workflows/ci-bcf-pypi.yml @@ -19,8 +19,8 @@ jobs: strategy: fail-fast: false steps: - - uses: actions/checkout@v2 # https://github.com/actions/checkout - - uses: actions/setup-python@v2 # https://github.com/actions/setup-python + - uses: actions/checkout@v6 # https://github.com/actions/checkout + - uses: actions/setup-python@v6 # https://github.com/actions/setup-python with: python-version: '3.11' # Version range or exact version of a Python version to use, using SemVer's version range syntax architecture: 'x64' # optional x64 or x86. Defaults to x64 if not specified diff --git a/.github/workflows/ci-black-formatting.yaml b/.github/workflows/ci-black-formatting.yaml index 820a81dc97..90a0b95431 100644 --- a/.github/workflows/ci-black-formatting.yaml +++ b/.github/workflows/ci-black-formatting.yaml @@ -9,15 +9,15 @@ jobs: runs-on: ubuntu-latest steps: - name: Action - checkout repository - uses: actions/checkout@v4.2.2 + uses: actions/checkout@v6 - name: Action - install python - uses: actions/setup-python@v5.3.0 + uses: actions/setup-python@v6 with: - python-version: "3.9" + python-version: "3.10" - name: Action - install python - uses: actions/setup-python@v5.3.0 + uses: actions/setup-python@v6 with: python-version: "3.11" @@ -33,23 +33,58 @@ jobs: id: syntax-errors run: | ERROR=0 - python3.9 -W error -m compileall -q src/ifcopenshell-python || ERROR=1 + python3.10 -W error -m compileall -q src/ifcopenshell-python || ERROR=1 python3.11 -W error -m compileall -q src/bonsai || ERROR=1 exit $ERROR continue-on-error: true - name: Black formatter id: black + uses: psf/black@stable + continue-on-error: true + + # Same check as above, but just for creating github annotations. + - name: Black formatter annotations + id: black-annotations run: | - black --diff --check . + uv tool install black-codeclimate + pip install github_action_utils + black --diff --check . | black-codeclimate | python .github/workflows/black_to_github_annotations.py continue-on-error: true - name: Ruff check id: ruff run: | + # Ensure execution continues, since we need to cache the output. + set +e + ERROR=0 - poe ruff-main || ERROR=1 - poe ruff-old || ERROR=1 + # Keep colored output inside action logs, strip it from color codes for summary. + uv tool install ansi2txt + # `ruff` disables color output in CI by default. + export FORCE_COLOR="1" + + run_check() { + local out + out="$("$@" 2>&1)" + local exit_code=$? + + if [ "$exit_code" -ne 0 ]; then + ERROR=1 + fi + + # Rerun just for GitHub annotations. + "$@" --output-format=github || true + + echo "$out" + echo "\`\`\`python" >> $GITHUB_STEP_SUMMARY + echo "$out" | ansi2txt >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + } + + run_check poe ruff-main + run_check poe ruff-old + exit $ERROR continue-on-error: true @@ -60,9 +95,9 @@ jobs: echo "::error::Syntax errors check failed, see 'syntax-errors' step for the details." && ERROR=1 fi if [ "${{ steps.black.outcome }}" != "success" ]; then - echo "::error::Black formatting check failed, see 'black' step for the details." && ERROR=1 + echo "::error::Black formatting check failed, see Summary or 'black' step for the details." && ERROR=1 fi if [ "${{ steps.ruff.outcome }}" != "success" ]; then - echo "::error::Ruff check failed, see 'ruff' step for the details." && ERROR=1 + echo "::error::Ruff check failed, see Summary or 'ruff' step for the details." && ERROR=1 fi exit $ERROR diff --git a/.github/workflows/ci-bonsai-choco.yml b/.github/workflows/ci-bonsai-choco.yml index 8be16269ba..c4204f7d02 100644 --- a/.github/workflows/ci-bonsai-choco.yml +++ b/.github/workflows/ci-bonsai-choco.yml @@ -34,7 +34,7 @@ jobs: strategy: fail-fast: false steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: fetch-tags: true fetch-depth: 0 diff --git a/.github/workflows/ci-bonsai-daily.yml b/.github/workflows/ci-bonsai-daily.yml index dfa6be9a00..3b52198f3a 100644 --- a/.github/workflows/ci-bonsai-daily.yml +++ b/.github/workflows/ci-bonsai-daily.yml @@ -35,7 +35,7 @@ jobs: strategy: fail-fast: false matrix: - pyver: [py311, py312] + pyver: [py311, py312, py313] config: - { name: "Windows Build", @@ -53,9 +53,14 @@ jobs: name: "MacOS ARM Build", short_name: macosm1, } + exclude: + # Python 3.13 is needed for Blender 5.1+ and Blender dropped Intel Mac support in 5.0. + - pyver: py313 + config: + short_name: macos steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 # https://github.com/actions/setup-python + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 # https://github.com/actions/setup-python with: architecture: 'x64' # optional x64 or x86. Defaults to x64 if not specified python-version: '3.11' @@ -93,7 +98,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout bonsai_unstable_repo repository - uses: actions/checkout@v2 + uses: actions/checkout@v6 with: repository: IfcOpenShell/bonsai_unstable_repo token: ${{ secrets.IFCOPENBOT_TOKEN }} @@ -104,7 +109,7 @@ jobs: # Ensure Bonsai and ifcsverchok enable/disable works before uploading to extensions repo. # Download Blender. - wget -q -O blender.tar.xz https://download.blender.org/release/Blender4.5/blender-4.5.0-linux-x64.tar.xz + wget -q -O blender.tar.xz https://download.blender.org/release/Blender5.0/blender-5.0.1-linux-x64.tar.xz tar -xf blender.tar.xz # Setup Blender. diff --git a/.github/workflows/ci-bonsai.yml b/.github/workflows/ci-bonsai.yml index 1bf217da89..4c8364a958 100644 --- a/.github/workflows/ci-bonsai.yml +++ b/.github/workflows/ci-bonsai.yml @@ -43,8 +43,8 @@ jobs: short_name: macosm1, } steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 # https://github.com/actions/setup-python + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 # https://github.com/actions/setup-python with: architecture: 'x64' # optional x64 or x86. Defaults to x64 if not specified python-version: '3.11' diff --git a/.github/workflows/ci-bsdd-pypi.yaml b/.github/workflows/ci-bsdd-pypi.yaml index b59ddbf2e4..e7c326a59a 100644 --- a/.github/workflows/ci-bsdd-pypi.yaml +++ b/.github/workflows/ci-bsdd-pypi.yaml @@ -18,8 +18,8 @@ jobs: strategy: fail-fast: false steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 # https://github.com/actions/setup-python + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 # https://github.com/actions/setup-python with: python-version: '3.11' # Version range or exact version of a Python version to use, using SemVer's version range syntax - name: Compile diff --git a/.github/workflows/ci-ifc4d-pypi.yaml b/.github/workflows/ci-ifc4d-pypi.yaml index 6ecd2c37d2..c08b26d9c0 100644 --- a/.github/workflows/ci-ifc4d-pypi.yaml +++ b/.github/workflows/ci-ifc4d-pypi.yaml @@ -18,8 +18,8 @@ jobs: strategy: fail-fast: false steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 # https://github.com/actions/setup-python + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 # https://github.com/actions/setup-python with: python-version: '3.11' # Version range or exact version of a Python version to use, using SemVer's version range syntax - name: Compile diff --git a/.github/workflows/ci-ifc5d-pypi.yaml b/.github/workflows/ci-ifc5d-pypi.yaml index 6c545f603d..635f60c985 100644 --- a/.github/workflows/ci-ifc5d-pypi.yaml +++ b/.github/workflows/ci-ifc5d-pypi.yaml @@ -18,8 +18,8 @@ jobs: strategy: fail-fast: false steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 # https://github.com/actions/setup-python + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 # https://github.com/actions/setup-python with: python-version: '3.11' # Version range or exact version of a Python version to use, using SemVer's version range syntax - name: Compile diff --git a/.github/workflows/ci-ifccityjson-pypi.yaml b/.github/workflows/ci-ifccityjson-pypi.yaml index 19b7a8e9d7..f16a57cffd 100644 --- a/.github/workflows/ci-ifccityjson-pypi.yaml +++ b/.github/workflows/ci-ifccityjson-pypi.yaml @@ -18,8 +18,8 @@ jobs: strategy: fail-fast: false steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 # https://github.com/actions/setup-python + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 # https://github.com/actions/setup-python with: python-version: '3.11' # Version range or exact version of a Python version to use, using SemVer's version range syntax - name: Compile diff --git a/.github/workflows/ci-ifcclash-pypi.yaml b/.github/workflows/ci-ifcclash-pypi.yaml index adae45e008..bbde274804 100644 --- a/.github/workflows/ci-ifcclash-pypi.yaml +++ b/.github/workflows/ci-ifcclash-pypi.yaml @@ -18,8 +18,8 @@ jobs: strategy: fail-fast: false steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 # https://github.com/actions/setup-python + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 # https://github.com/actions/setup-python with: python-version: '3.11' # Version range or exact version of a Python version to use, using SemVer's version range syntax - name: Compile diff --git a/.github/workflows/ci-ifcconvert.yml b/.github/workflows/ci-ifcconvert.yml index 652dc387a7..d4cd7fc55a 100644 --- a/.github/workflows/ci-ifcconvert.yml +++ b/.github/workflows/ci-ifcconvert.yml @@ -37,8 +37,8 @@ jobs: short_name: macosm164 } steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 # https://github.com/actions/setup-python + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 # https://github.com/actions/setup-python with: python-version: '3.11' # Version range or exact version of a Python version to use, using SemVer's version range syntax architecture: 'x64' # optional x64 or x86. Defaults to x64 if not specified diff --git a/.github/workflows/ci-ifccsv-pypi.yaml b/.github/workflows/ci-ifccsv-pypi.yaml index b62f372bf6..04d7a76937 100644 --- a/.github/workflows/ci-ifccsv-pypi.yaml +++ b/.github/workflows/ci-ifccsv-pypi.yaml @@ -18,8 +18,8 @@ jobs: strategy: fail-fast: false steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 # https://github.com/actions/setup-python + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 # https://github.com/actions/setup-python with: python-version: '3.11' # Version range or exact version of a Python version to use, using SemVer's version range syntax - name: Compile diff --git a/.github/workflows/ci-ifcdiff-pypi.yaml b/.github/workflows/ci-ifcdiff-pypi.yaml index 6059d7a3dd..eba7ad237f 100644 --- a/.github/workflows/ci-ifcdiff-pypi.yaml +++ b/.github/workflows/ci-ifcdiff-pypi.yaml @@ -18,8 +18,8 @@ jobs: strategy: fail-fast: false steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 # https://github.com/actions/setup-python + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 # https://github.com/actions/setup-python with: python-version: '3.11' # Version range or exact version of a Python version to use, using SemVer's version range syntax - name: Compile diff --git a/.github/workflows/ci-ifcfm-pypi.yaml b/.github/workflows/ci-ifcfm-pypi.yaml index 50e8707796..c658bbf3ef 100644 --- a/.github/workflows/ci-ifcfm-pypi.yaml +++ b/.github/workflows/ci-ifcfm-pypi.yaml @@ -18,8 +18,8 @@ jobs: strategy: fail-fast: false steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 # https://github.com/actions/setup-python + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 # https://github.com/actions/setup-python with: python-version: '3.11' # Version range or exact version of a Python version to use, using SemVer's version range syntax - name: Compile diff --git a/.github/workflows/ci-ifcopenshell-conda-cleaner.yml b/.github/workflows/ci-ifcopenshell-conda-cleaner.yml index f992a7fd27..5c1b80bcc6 100644 --- a/.github/workflows/ci-ifcopenshell-conda-cleaner.yml +++ b/.github/workflows/ci-ifcopenshell-conda-cleaner.yml @@ -24,7 +24,7 @@ jobs: if: | github.repository == 'IfcOpenShell/IfcOpenShell' steps: - - uses: mamba-org/setup-micromamba@v1 # https://github.com/mamba-org/setup-micromamba + - uses: mamba-org/setup-micromamba@v2 # https://github.com/mamba-org/setup-micromamba with: environment-name: test-env create-args: >- diff --git a/.github/workflows/ci-ifcopenshell-conda-daily.yml b/.github/workflows/ci-ifcopenshell-conda-daily.yml index c1bdb874ab..b648538ed7 100644 --- a/.github/workflows/ci-ifcopenshell-conda-daily.yml +++ b/.github/workflows/ci-ifcopenshell-conda-daily.yml @@ -21,7 +21,7 @@ jobs: date: ${{ steps.date.outputs.date }} verdate: ${{ steps.verdate.outputs.verdate }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Set env run: echo ok go @@ -54,8 +54,7 @@ jobs: platform: [ { name: win, distver: windows-latest, pkg_dir: 'win-64' }, { name: linux, distver: ubuntu-latest, pkg_dir: 'linux-64' }, - { name: macOS-arm, distver: macos-latest, pkg_dir: 'osx-arm64' }, - { name: macOS-x86, distver: macos-13, pkg_dir: 'osx-64' } + { name: macOS-arm, distver: macos-latest, pkg_dir: 'osx-arm64' } ] steps: - name: Set Swap Space @@ -76,7 +75,7 @@ jobs: echo "ARTIFACTS_DIR=/home/runner/work/artifacts" >> $GITHUB_ENV fi - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: submodules: recursive diff --git a/.github/workflows/ci-ifcopenshell-docker.yml b/.github/workflows/ci-ifcopenshell-docker.yml index cdc2e173b4..d5691ecfce 100644 --- a/.github/workflows/ci-ifcopenshell-docker.yml +++ b/.github/workflows/ci-ifcopenshell-docker.yml @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-22.04 needs: activate steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v6 with: submodules: recursive @@ -42,9 +42,6 @@ jobs: run: | mkdir build && cd build cmake \ - -DCMAKE_C_COMPILER_LAUNCHER=ccache \ - -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ - -DCMAKE_CXX_STANDARD=17 \ -DCMAKE_INSTALL_PREFIX=$PWD/install/ \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_PREFIX_PATH=/usr \ @@ -76,7 +73,7 @@ jobs: make package working-directory: build - name: Upload - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: # Artifact name name: ifcos-artifacts @@ -89,31 +86,31 @@ jobs: name: Docker Build, Tag, Push steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v6 with: lfs: true - name: Download - uses: actions/download-artifact@v4.1.7 + uses: actions/download-artifact@v7.0.0 with: # Artifact name name: ifcos-artifacts path: artifacts/ - name: Set up QEMU - uses: docker/setup-qemu-action@v1 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v3 - name: Login to Dockerhub - uses: docker/login-action@v1 + uses: docker/login-action@v3 with: username: aecgeeks password: ${{ secrets.DOCKER_HUB_TOKEN }} - name: Build container image - uses: docker/build-push-action@v2 + uses: docker/build-push-action@v6 with: context: artifacts repository: aecgeeks/ifcopenshell diff --git a/.github/workflows/ci-ifcopenshell-python-pypi.yml b/.github/workflows/ci-ifcopenshell-python-pypi.yml index 7d7cf44d3c..526aa09b64 100644 --- a/.github/workflows/ci-ifcopenshell-python-pypi.yml +++ b/.github/workflows/ci-ifcopenshell-python-pypi.yml @@ -34,6 +34,10 @@ jobs: name: "Linux 64bit", short_name: linux64 } + - { + name: "Linux ARM 64bit", + short_name: linuxarm64 + } - { name: "MacOS Intel 64bit", short_name: macos64 @@ -43,10 +47,10 @@ jobs: short_name: macosm164 } steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v6 with: submodules: recursive - - uses: actions/setup-python@v2 # https://github.com/actions/setup-python + - uses: actions/setup-python@v6 # https://github.com/actions/setup-python with: python-version: '3.11' # Version range or exact version of a Python version to use, using SemVer's version range syntax architecture: 'x64' # optional x64 or x86. Defaults to x64 if not specified diff --git a/.github/workflows/ci-ifcopenshell-python.yml b/.github/workflows/ci-ifcopenshell-python.yml index 51867ac1cb..5d34335ada 100644 --- a/.github/workflows/ci-ifcopenshell-python.yml +++ b/.github/workflows/ci-ifcopenshell-python.yml @@ -38,10 +38,10 @@ jobs: short_name: macosm164 } steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v6 with: submodules: recursive - - uses: actions/setup-python@v2 # https://github.com/actions/setup-python + - uses: actions/setup-python@v6 # https://github.com/actions/setup-python with: python-version: '3.11' # Version range or exact version of a Python version to use, using SemVer's version range syntax architecture: 'x64' # optional x64 or x86. Defaults to x64 if not specified diff --git a/.github/workflows/ci-ifcpatch-pypi.yaml b/.github/workflows/ci-ifcpatch-pypi.yaml index 312fe49f74..79692933ce 100644 --- a/.github/workflows/ci-ifcpatch-pypi.yaml +++ b/.github/workflows/ci-ifcpatch-pypi.yaml @@ -18,8 +18,8 @@ jobs: strategy: fail-fast: false steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 # https://github.com/actions/setup-python + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 # https://github.com/actions/setup-python with: python-version: '3.11' # Version range or exact version of a Python version to use, using SemVer's version range syntax - name: Compile diff --git a/.github/workflows/ci-ifcsverchok-daily.yml b/.github/workflows/ci-ifcsverchok-daily.yml index 9b4255a69d..ac3edc546b 100644 --- a/.github/workflows/ci-ifcsverchok-daily.yml +++ b/.github/workflows/ci-ifcsverchok-daily.yml @@ -25,8 +25,8 @@ jobs: strategy: fail-fast: false steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 # https://github.com/actions/setup-python + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 # https://github.com/actions/setup-python with: architecture: 'x64' # optional x64 or x86. Defaults to x64 if not specified python-version: '3.11' diff --git a/.github/workflows/ci-ifcsverchok.yml b/.github/workflows/ci-ifcsverchok.yml index 9b2ac64d88..f3c8aba0a2 100644 --- a/.github/workflows/ci-ifcsverchok.yml +++ b/.github/workflows/ci-ifcsverchok.yml @@ -19,8 +19,8 @@ jobs: strategy: fail-fast: false steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 # https://github.com/actions/setup-python + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 # https://github.com/actions/setup-python with: architecture: 'x64' # optional x64 or x86. Defaults to x64 if not specified python-version: '3.11' diff --git a/.github/workflows/ci-ifctester-org.yml b/.github/workflows/ci-ifctester-org.yml index e5fef406c5..7ec6cbdc46 100644 --- a/.github/workflows/ci-ifctester-org.yml +++ b/.github/workflows/ci-ifctester-org.yml @@ -10,9 +10,9 @@ jobs: publish_website: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v6 - name: Checkout ifctester_org_static_html - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: IfcOpenShell/ifctester_org_static_html token: ${{ secrets.IFCOPENBOT_TOKEN }} diff --git a/.github/workflows/ci-ifctester-pypi.yml b/.github/workflows/ci-ifctester-pypi.yml index 6b594509ef..b024d7685d 100644 --- a/.github/workflows/ci-ifctester-pypi.yml +++ b/.github/workflows/ci-ifctester-pypi.yml @@ -18,8 +18,8 @@ jobs: strategy: fail-fast: false steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 # https://github.com/actions/setup-python + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 # https://github.com/actions/setup-python with: python-version: '3.11' # Version range or exact version of a Python version to use, using SemVer's version range syntax - name: Compile diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4db5284ab1..65031e83d9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,13 +34,17 @@ jobs: compile-and-test: runs-on: ubuntu-22.04 needs: activate + env: + # Colored output for cmake. + CLICOLOR_FORCE: "1" + CMAKE_COLOR_DIAGNOSTICS: "ON" steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: submodules: recursive - name: Set up Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: 3.11 @@ -49,12 +53,16 @@ jobs: python -m pip install --upgrade pip pip install xmlschema xsdata numpy lxml pytest isodate lark networkx tabulate python-dateutil shapely pip install src/bcf --no-deps - pip install git+https://github.com/zdhoward/aud pip install pytest-xdist==3.8.0 - name: Install C++ dependencies run: | sudo apt update + # `occt-misc` is only needed for 22.04, since it has cmake configs. + # In 24.04+, the needed files were moved `libocct-foundation-dev` and `occt-misc` can be removed. + # Other libs in `OCCT_CMAKE_DEPS` are needed only for cmake config to work properly, they're not used directly. + OCCT_CMAKE_DEPS="occt-misc libocct-draw-dev tcl-dev tk-dev libxi-dev" + sudo apt-get install --no-install-recommends \ git cmake gcc g++ \ libboost-date-time-dev \ @@ -64,13 +72,17 @@ jobs: libboost-regex-dev \ libboost-system-dev \ libboost-thread-dev \ - swig libpcre3-dev libxml2-dev \ + libpcre3-dev libxml2-dev \ libtbb-dev nlohmann-json3-dev \ libocct-foundation-dev libocct-modeling-algorithms-dev libocct-modeling-data-dev libocct-ocaf-dev libocct-visualization-dev libocct-data-exchange-dev \ + ${OCCT_CMAKE_DEPS} \ libhdf5-dev libcgal-dev libeigen3-dev - name: ccache - uses: hendrikmuhs/ccache-action@v1.2 + # TODO: temporarily pointing to 1.2.19 to get notified by dependabot when 1.2.20 is released + # to update hardcoded references to commits in some other workflows. + # Then we can switch back to 1.2 in all actions. + uses: hendrikmuhs/ccache-action@v1.2.19 with: key: ubuntu-22.04-${{ runner.arch }} @@ -97,24 +109,77 @@ jobs: .. sudo make -j$(nproc) install + # OpenCOLLADA is ancient, but we still have it in the main build. + # So adding it to CI to catch any breakages. + - name: build OpenCOLLADA + run: | + git clone https://github.com/KhronosGroup/OpenCOLLADA + cd OpenCOLLADA + git checkout v1.6.68 + patch -p1 --batch --forward -i ../nix/patches/opencollada/pr622_and_disable_subdirs.patch + patch -p1 --batch --forward -i ../nix/patches/opencollada/allow_static_libraries_config_on_unix.patch + mkdir build && cd build + cmake .. \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ + -DCMAKE_C_COMPILER_LAUNCHER=ccache \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -DCMAKE_CXX_FLAGS_INIT="-fPIC" + sudo make -j$(nproc) install + + # We need zstd and libxml2 just for cmake config files to test the examples build. + # zslibzstd-dev has cmake config only on Ubuntu 24.04+. + - name : Build zstd + run: | + git clone https://github.com/facebook/zstd --depth 1 --branch v1.5.7 + cd zstd + # `build` already exists. + mkdir build_ && cd build_ + cmake ../build/cmake -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_COMPILER_LAUNCHER=ccache \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache + sudo cmake --build . --target install -j $(nproc) + + # libxml2-dev doesn't have cmake configs even on Ubuntu 24.04+. + - name: Build libxml2 + run: | + git clone https://gitlab.gnome.org/GNOME/libxml2.git --branch v2.13.8 --depth 1 + cd libxml2 + mkdir build && cd build + cmake .. \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_COMPILER_LAUNCHER=ccache \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache + sudo cmake --build . --target install -j $(nproc) + + # Ubuntu has `swig` package, but we build it to match the version we use in the main build. + # To avoid failing tests when checking stub generation. + - name: build swig + run: | + # Remove default swig to avoid conflicts. + sudo apt remove --purge swig swig4.0 + sudo apt-get install -y libpcre2-dev bison + git clone https://github.com/swig/swig --branch v4.1.0 --depth 1 + cd swig + mkdir build && cd build + cmake .. \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_COMPILER_LAUNCHER=ccache \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache + sudo make -j$(nproc) install + - name: Build ifcopenshell run: | echo $Python3_ROOT_DIR echo ${{ env.pythonLocation }} mkdir build && cd build - # Ubuntu 22.04's libocct-foundation-dev package doesn't have Config.cmake, so we provide OCC paths directly. - # In later versions of Ubuntu, this can be simplified and the OCC paths can be removed. cmake \ - -DCMAKE_CXX_STANDARD=17 \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_PREFIX_PATH=/usr \ -DCMAKE_SYSTEM_PREFIX_PATH=/usr \ - -DOCC_INCLUDE_DIR=/usr/include/opencascade \ - -DOCC_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu \ -DPYTHON_EXECUTABLE:FILEPATH=${{ env.pythonLocation }}/bin/python \ -DPYTHON_INCLUDE_DIR:PATH=${{ env.pythonLocation }}/include/python3.11 \ - -DCOLLADA_SUPPORT=Off \ -DUSE_MMAP=On \ "-DSCHEMA_VERSIONS=2x3;4;4x3_add2" \ -DGLTF_SUPPORT=On \ @@ -141,6 +206,39 @@ jobs: run: | IfcConvert test/input/acad2010_walls.ifc test/input/acad2010_walls.obj + - name: Build standalone examples to test cmake package + run: | + set -x + cd src/examples + mkdir build && cd build + cmake .. -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_COMPILER_LAUNCHER=ccache \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache + cmake --build . + ./arbitrary_open_profile_def && test -f arbitrary_open_profile_def.ifc + ./composite_profile_def && test -f composite_profile_def.ifc + ./csg_primitive && test -f csg_primitive.ifc + ./ellipse_pies && test -f ellipse_pies.ifc + ./faces && test -f faces.ifc + ./ifc_curve_rebar && test -f ifc_curve_rebar.ifc + ./profiles + test -f IfcUShapeProfileDef.ifc + test -f IfcTShapeProfileDef.ifc + test -f IfcZShapeProfileDef.ifc + test -f IfcEllipseProfileDef.ifc + test -f IfcIShapeProfileDef.ifc + test -f IfcLShapeProfileDef.ifc + test -f IfcCShapeProfileDef.ifc + test -f IfcCircleProfileDef.ifc + test -f IfcRectangleProfileDef.ifc + test -f IfcTrapeziumProfileDef.ifc + ./IfcParseExamples "../IfcParseExamples_test.ifc" + ./IfcOpenHouse && test -f IfcOpenHouse.ifc + ./IfcAdvancedHouse && test -f IfcAdvancedHouse.ifc + ./IfcAlignment && test -f IfcAlignment.ifc + ./IfcSimplifiedAlignment && test -f IfcSimplifiedAlignment.ifc + ./triangulated_faceset && test -f triangulated_faceset.ifc + - name: Test ifcopenshell-python run: | cd test diff --git a/.github/workflows/docs-deployment-unstable.yml b/.github/workflows/docs-deployment-unstable.yml index 1a88f97da9..55e2fd5518 100644 --- a/.github/workflows/docs-deployment-unstable.yml +++ b/.github/workflows/docs-deployment-unstable.yml @@ -11,10 +11,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v6 - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v6 with: python-version: '3.x' diff --git a/.github/workflows/docs-deployment.yml b/.github/workflows/docs-deployment.yml index dd2284d333..3ff50b575e 100644 --- a/.github/workflows/docs-deployment.yml +++ b/.github/workflows/docs-deployment.yml @@ -9,10 +9,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v6 - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v6 with: python-version: '3.x' diff --git a/.github/workflows/publish-pyodide-demo-app.yml b/.github/workflows/publish-pyodide-demo-app.yml index 0c453528a6..4aebe4266e 100644 --- a/.github/workflows/publish-pyodide-demo-app.yml +++ b/.github/workflows/publish-pyodide-demo-app.yml @@ -26,7 +26,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout (recursive) - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: submodules: recursive fetch-depth: 0 @@ -34,7 +34,7 @@ jobs: uses: actions/configure-pages@v5 - name: Upload static files as artifact id: deployment - uses: actions/upload-pages-artifact@v3 + uses: actions/upload-pages-artifact@v4 with: path: src/pyodide/demo-app/ diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 93ecaf11d8..4880ed8177 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-22.04 steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v6 with: submodules: recursive - name: Install C++ dependencies @@ -46,7 +46,6 @@ jobs: mkdir build && cd build cmake \ -DCMAKE_INSTALL_PREFIX=$PWD/install/ \ - -DCMAKE_CXX_STANDARD=17 \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_PREFIX_PATH=/usr \ -DCMAKE_SYSTEM_PREFIX_PATH=/usr \ diff --git a/.gitignore b/.gitignore index 37f7ea9c98..bee04658cd 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ /_deps-vs*-x*-installed/ /_installed-vs*-x*/ /build/ +/src/examples/build/ # output directories /cmake/out/ @@ -17,9 +18,12 @@ # General Python residue __pycache__ *.py.bak +venv # Visual Studio Code files .vscode +!.vscode/launch.json +!.vscode/tasks.json .vs # PyCharm files @@ -78,8 +82,6 @@ src/bonsai/bonsai/translations.py # bonsai test temp files src/bonsai/test/files/temp -src/bonsai/test/files/basic.ifc.cache.blend -src/bonsai/test/files/basic.ifc.cache.sqlite # bonsai data src/bonsai/bonsai/bim/data/build/ @@ -87,9 +89,7 @@ src/bonsai/bonsai/bim/data/gantt/index.html src/bonsai/bonsai/bim/data/gantt/jsgantt.js src/bonsai/bonsai/bim/data/gantt/jsgantt.css src/bonsai/bonsai/bim/data/webui/static/js/jquery.min.js - -src/bonsai/drawings -src/bonsai/layouts +src/bonsai/bonsai/bim/data/webui/running_pid.json # ifcopenshell swig and compiled files src/ifcopenshell-python/ifcopenshell/_ifcopenshell_wrapper*.so diff --git a/.gitmodules b/.gitmodules index 017cd2ae8e..ac12797d0b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -5,15 +5,9 @@ [submodule "src/ifcopenshell-python/ifcopenshell/mvd"] path = src/ifcopenshell-python/ifcopenshell/mvd url = https://github.com/opensourceBIM/python-mvdxml/ -[submodule "src/svgfill"] - path = src/svgfill - url = https://github.com/IfcOpenShell/svgfill [submodule "src/ifcopenshell-python/test/Sample-BIM-Files"] path = src/ifcopenshell-python/test/Sample-BIM-Files url = https://github.com/IfcOpenShell/ids-test-files -[submodule "src/ifcconvert/cityjson"] - path = src/ifcconvert/cityjson - url = https://github.com/IfcOpenShell/ifc-to-cityjson [submodule "docs/cpp-api/assets/doxygen-awesome-css"] path = docs/cpp-api/assets/doxygen-awesome-css url = https://github.com/jothepro/doxygen-awesome-css.git @@ -23,3 +17,6 @@ [submodule "src/pyodide/demo-app/wheels"] path = src/pyodide/demo-app/wheels url = https://github.com/IfcOpenShell/wasm-wheels +[submodule "src/svgfill/3rdparty/svgpp"] + path = src/svgfill/3rdparty/svgpp + url = https://github.com/svgpp/svgpp diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000000..63fa0f352d --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,24 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + + { + "name": "Python Debugger: Remote Attach", + "type": "debugpy", + "request": "attach", + "connect": { + "host": "localhost", + "port": 5678 + }, + "pathMappings": [ + { + "localRoot": "${config:bonsai.localRoot}", + "remoteRoot": "${config:bonsai.remoteRoot}" + } + ] + } + ] +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000000..883373e476 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,53 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "Configure bonsai/vscode development environment", + "type": "shell", + "command": "${input:blenderPath}", + "args": [ + "--background", + "--python", "${workspaceFolder}/src/bonsai/scripts/dev_environment_vscode_config.py" + ], + "problemMatcher": [] + }, + { + "label": "Launch blender with debugpy", + "type": "shell", + "command": "blender", + "options": { + "cwd": "${config:bonsai.blenderPath}" + }, + "args": [ + "--python-expr", + "import debugpy; debugpy.listen(5678)" + ], + "problemMatcher": [] + }, + { + "label": "Install debugpy in Blender", + "type": "shell", + "command": "blender", + "options": { + "cwd": "${config:bonsai.blenderPath}" + }, + "args": [ + "--background", + "--python-expr", + "import os, sys, subprocess; path=os.path.abspath(sys.executable); subprocess.call([path, '-m', 'ensurepip']); subprocess.call([path, '-m', 'pip', 'install', '--upgrade', 'debugpy'])" + ], + "problemMatcher": [] + } + + ], + "inputs": [ + { + "id": "blenderPath", + "type": "promptString", + "description": "Enter the path to the blender executable", + "default": "blender" + } + ] +} \ No newline at end of file diff --git a/VERSION b/VERSION index b60d71966a..7ada0d303f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.8.4 +0.8.5 diff --git a/aws/lambda/example_handler/__init__.py b/aws/lambda/example_handler/__init__.py index 5256cb90a2..a6e3fe0212 100644 --- a/aws/lambda/example_handler/__init__.py +++ b/aws/lambda/example_handler/__init__.py @@ -1,6 +1,6 @@ +import boto3 import ifcopenshell import ifcopenshell.util.element -import boto3 s3 = boto3.client('s3') diff --git a/choco/bonsai/choco_release.py b/choco/bonsai/choco_release.py index b63ee3bf89..681e6c58e5 100644 --- a/choco/bonsai/choco_release.py +++ b/choco/bonsai/choco_release.py @@ -13,9 +13,10 @@ import hashlib import os import pathlib import re -from urllib import request -from github import Github from typing import NoReturn +from urllib import request + +from github import Github def get_repo_tag_names() -> list[str]: diff --git a/choco/bonsai/tools/disable_blenderbim_addon.py b/choco/bonsai/tools/disable_blenderbim_addon.py index c7355eb7d9..644be2623f 100644 --- a/choco/bonsai/tools/disable_blenderbim_addon.py +++ b/choco/bonsai/tools/disable_blenderbim_addon.py @@ -1,6 +1,5 @@ import bpy - bpy.ops.preferences.addon_disable(module='blenderbim') bpy.ops.wm.save_userpref() diff --git a/choco/bonsai/tools/enable_blenderbim_addon.py b/choco/bonsai/tools/enable_blenderbim_addon.py index eae588e5f8..2b767dea03 100644 --- a/choco/bonsai/tools/enable_blenderbim_addon.py +++ b/choco/bonsai/tools/enable_blenderbim_addon.py @@ -1,6 +1,5 @@ import bpy - bpy.ops.preferences.addon_enable(module='blenderbim') bpy.ops.wm.save_userpref() diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 149be34461..9e88026ac7 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -18,19 +18,28 @@ ################################################################################ cmake_minimum_required(VERSION 3.21) -if (NOT DEFINED CMAKE_CXX_STANDARD) +if(NOT DEFINED CMAKE_CXX_STANDARD) set(CMAKE_CXX_STANDARD 17) endif() -if (CMAKE_CXX_STANDARD LESS 17) +if(CMAKE_CXX_STANDARD LESS 17) message(FATAL_ERROR "C++17 or newer is required.") endif() set(CMAKE_CXX_STANDARD_REQUIRED ON) # not necessary, but encouraged set(CMAKE_EXPORT_COMPILE_COMMANDS ON) +if(VERSION_OVERRIDE) + file(READ "../VERSION" "RELEASE_VERSION_") + string(STRIP "${RELEASE_VERSION_}" RELEASE_VERSION) + message(STATUS "Detected version '${RELEASE_VERSION}'") +else() + set(RELEASE_VERSION "0.8.0") +endif() + add_definitions(-D_DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR) if(POLICY CMP0141) # 3.25+ - cmake_policy(SET CMP0141 NEW) # Support for `CMAKE_MSVC_DEBUG_INFORMATION_FORMAT`. + # Has to be set before `project` to take effect. + cmake_policy(SET CMP0141 NEW) # Support for `CMAKE_MSVC_DEBUG_INFORMATION_FORMAT`. endif() if(POLICY CMP0144) # 3.27 cmake_policy(SET CMP0144 NEW) # find_package() uses upper-case _ROOT variables. @@ -39,6 +48,8 @@ if(POLICY CMP0167) # 3.30 cmake_policy(SET CMP0167 OLD) endif() +project(IfcOpenShell VERSION ${RELEASE_VERSION}) + if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Release") endif() @@ -54,7 +65,11 @@ endif() option(MINIMAL_BUILD "The build is to make a minimal version of IFC converter from OCCT into IFC." OFF) option(WASM_BUILD "Build a WebAssembly binary." OFF) -option(ENABLE_BUILD_OPTIMIZATIONS "Enable certain compiler and linker optimizations on RelWithDebInfo and Release builds." OFF) +option( + ENABLE_BUILD_OPTIMIZATIONS + "Enable certain compiler and linker optimizations on RelWithDebInfo and Release builds." + OFF +) option(BUILD_SHARED_LIBS "Build IfcParse and IfcGeom as shared libs (SO/DLL)." OFF) option(MSVC_PARALLEL_BUILD "Multi-threaded compilation in Microsoft Visual Studio (/MP)" OFF) option(USE_VLD "Use Visual Leak Detector for debugging memory leaks, MSVC-only." OFF) @@ -70,6 +85,15 @@ option(BUILD_GEOMSERVER "Build IfcGeomServer executable (Open CASCADE is require option(BUILD_IFCMAX "Build IfcMax, a 3ds Max plug-in, Windows-only." OFF) option(BUILD_QTVIEWER "Build IfcOpenShell Qt GUI Viewer" OFF) # QtViewer requires Qt6 option(BUILD_PACKAGE "" OFF) +# Most users probably need just common schemas, +# but we're keeping it `OFF` by default to avoid disruption +# (e.g. all Python distribution would need to adapt this option to be set). +option( + BUILD_ONLY_COMMON_SCHEMAS + "Build only common IFC schemas (2x3, 4, 4x3_add2). By default all schemas will be built." + OFF +) +option(SCHEMA_VERSIONS "Explicitly specify schemas to build." "") option(WITH_OPENCASCADE "Enable geometry interpretation using Open CASCADE" ON) option(WITH_CGAL "Enable geometry interpretation using CGAL" ON) @@ -79,31 +103,26 @@ option(HDF5_SUPPORT "Enable HDF5 support (requires HDF5, zlib)" ON) option(WITH_PROJ "Enable output of Earth-Centered Earth-Fixed glTF output using the PROJ library" OFF) option(IFCXML_SUPPORT "Build IfcParse with ifcXML support (requires libxml2)." ON) option(USD_SUPPORT "Build IfcConvert with USD support (requires pixar's USD library)." OFF) -option(CITYJSON_SUPPORT "Build IfcConvert with CityJSON support (requires CityJSON library)." OFF) option(WITH_RELATIONSHIP_VALIDATION "Build IfcConvert with option to validate geometrical relationships." OFF) option(WITH_ROCKSDB "Support a RocksDB key-value store as a file backend in IfcOpenShell" OFF) option(WITH_ZSTD "Use Zstd compression in RocksDB writes" OFF) option(USERSPACE_PYTHON_PREFIX "Installs IfcPython for the current user only instead of system-wide." OFF) +option(USE_DEBUG_PYTHON "Use debug binaries when building Debug IfcPython on Windows." OFF) option(ADD_COMMIT_SHA "Add commit sha and branch in version number, requires git" OFF) -option(VERSION_OVERRIDE "Override the version defined in buildinfo.cpp with the file VERSION in the repository root" OFF) +option( + VERSION_OVERRIDE + "Override the version defined in buildinfo.cpp with the file VERSION in the repository root" + OFF +) +option(USE_CCACHE "Enable use of ccache if it's available from PATH." ON) -set( - PYTHON_MODULE_INSTALL_DIR - "" CACHE PATH +set(PYTHON_MODULE_INSTALL_DIR + "" + CACHE PATH "Directory to install IfcPython package to. By default package is installed in found Python's site-packages." ) -if (VERSION_OVERRIDE) - file(READ "../VERSION" "RELEASE_VERSION_") - string(STRIP "${RELEASE_VERSION_}" RELEASE_VERSION) - message(STATUS "Detected version '${RELEASE_VERSION}'") -else() - set(RELEASE_VERSION "0.8.0") -endif() - -project(IfcOpenShell VERSION ${RELEASE_VERSION}) - # Make sure CMake modules in this project are found first list(PREPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}) @@ -119,13 +138,13 @@ if(MINIMAL_BUILD) set(USD_SUPPORT OFF) endif() -if((BUILD_CONVERT OR BUILD_GEOMSERVER OR BUILD_IFCPYTHON) AND(NOT BUILD_IFCGEOM)) +if((BUILD_CONVERT OR BUILD_GEOMSERVER OR BUILD_IFCPYTHON) AND (NOT BUILD_IFCGEOM)) message(STATUS "'IfcGeom' is required with current outputs") set(BUILD_IFCGEOM ON) endif() find_program(CCACHE_FOUND ccache) -if(CCACHE_FOUND) +if(USE_CCACHE AND CCACHE_FOUND) message(STATUS "`ccache` is found, using it as a compiler launcher.") set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_FOUND}") if(MSVC) @@ -134,17 +153,15 @@ if(CCACHE_FOUND) set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "$<$:Embedded>") # Not needed for Ninja. if(CMAKE_GENERATOR MATCHES "Visual Studio") - file(COPY_FILE - ${CCACHE_FOUND} ${CMAKE_BINARY_DIR}/cl.exe - ONLY_IF_DIFFERENT) - set(CMAKE_VS_GLOBALS - "CLToolExe=cl.exe" - "CLToolPath=${CMAKE_BINARY_DIR}" - "UseMultiToolTask=true" - ) + file(COPY_FILE ${CCACHE_FOUND} ${CMAKE_BINARY_DIR}/cl.exe ONLY_IF_DIFFERENT) + set(CMAKE_VS_GLOBALS "CLToolExe=cl.exe" "CLToolPath=${CMAKE_BINARY_DIR}" "UseMultiToolTask=true") endif() endif() endif() +mark_as_advanced(CCACHE_FOUND) + +# Variable to accumulate swig definitions from various submodules. +set(SWIG_DEFINES "") if(MSVC AND MSVC_PARALLEL_BUILD) add_definitions("/MP") @@ -160,69 +177,33 @@ endif() include(GNUInstallDirs) -# Specify paths to install files -if(NOT BINDIR) - set(BINDIR bin) -endif() -if(NOT IS_ABSOLUTE ${BINDIR}) - set(BINDIR ${CMAKE_INSTALL_BINDIR}) -endif() -message(STATUS "BINDIR: ${BINDIR}") +set(IFCOPENSHELL_EXPORT_TARGETS "${PROJECT_NAME}Targets") -if(NOT INCLUDEDIR) - set(INCLUDEDIR include) +# On Windows Release and Debug binaries are not compatible. +# So we add a postfix to avoid issues and allow release and debug installations to coexist. +if(WIN32) + set(CMAKE_DEBUG_POSTFIX "_d") endif() -if(NOT IS_ABSOLUTE ${INCLUDEDIR}) - set(INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR}) -endif() -message(STATUS "INCLUDEDIR: ${INCLUDEDIR}") - -if(NOT LIBDIR) - set(LIBDIR lib) -endif() -if(NOT IS_ABSOLUTE ${LIBDIR}) - set(LIBDIR ${CMAKE_INSTALL_LIBDIR}) -endif() -message(STATUS "LIBDIR: ${LIBDIR}") - -set(IFCOPENSHELL_LIBRARY_DIR "") # for *nix rpaths if(BUILD_SHARED_LIBS) add_definitions(-DIFC_SHARED_BUILD) if(MSVC) - message(WARNING "Building DLLs against the static VC run-time. This is not recommended if the DLLs are to be redistributed.") + message( + WARNING + "Building DLLs against the static VC run-time. This is not recommended if the DLLs are to be redistributed." + ) # C4521: 'identifier' : class 'type' needs to have dll-interface to be used by clients of class 'type2' # There will be couple hundreds of these so suppress them away, https://msdn.microsoft.com/en-us/library/esew7y1w.aspx add_definitions(-wd4251) endif() - - set(IFCOPENSHELL_LIBRARY_DIR "${LIBDIR}") endif() -UNIFY_ENVVARS_AND_CACHE(OCC_INCLUDE_DIR) -UNIFY_ENVVARS_AND_CACHE(OCC_LIBRARY_DIR) UNIFY_ENVVARS_AND_CACHE(BOOST_ROOT) -UNIFY_ENVVARS_AND_CACHE(BOOST_LIBRARYDIR) -UNIFY_ENVVARS_AND_CACHE(EIGEN_DIR) if(NOT MINIMAL_BUILD) - UNIFY_ENVVARS_AND_CACHE(OPENCOLLADA_INCLUDE_DIR) - UNIFY_ENVVARS_AND_CACHE(OPENCOLLADA_LIBRARY_DIR) - UNIFY_ENVVARS_AND_CACHE(LIBXML2_INCLUDE_DIR) - UNIFY_ENVVARS_AND_CACHE(LIBXML2_LIBRARIES) - UNIFY_ENVVARS_AND_CACHE(PCRE_LIBRARY_DIR) UNIFY_ENVVARS_AND_CACHE(PYTHON_INCLUDE_DIR) UNIFY_ENVVARS_AND_CACHE(PYTHON_LIBRARY) UNIFY_ENVVARS_AND_CACHE(PYTHON_EXECUTABLE) - UNIFY_ENVVARS_AND_CACHE(HDF5_INCLUDE_DIR) - UNIFY_ENVVARS_AND_CACHE(HDF5_LIBRARY_DIR) - UNIFY_ENVVARS_AND_CACHE(HDF5_LIBRARIES) - UNIFY_ENVVARS_AND_CACHE(CGAL_INCLUDE_DIR) - UNIFY_ENVVARS_AND_CACHE(CGAL_LIBRARY_DIR) - UNIFY_ENVVARS_AND_CACHE(GMP_INCLUDE_DIR) - UNIFY_ENVVARS_AND_CACHE(GMP_LIBRARY_DIR) - UNIFY_ENVVARS_AND_CACHE(MPFR_INCLUDE_DIR) - UNIFY_ENVVARS_AND_CACHE(MPFR_LIBRARY_DIR) endif() # Get a list of all OPTION flags from the CMakeLists.txt @@ -233,172 +214,71 @@ foreach(option_flag IN LISTS option_flags) convert_env_var_to_bool("${option_flag}") endforeach() -set(CMAKE_FIND_ROOT_PATH_BACKUP "${CMAKE_FIND_ROOT_PATH}") - -macro(clear_wasm_sysroot) -if(WASM_BUILD) - # when using the nix/build-all.py build script we should not - # look into the sysroot for most of the dependencies but rather - # in the designated build/ folder created by the script. - set(CMAKE_FIND_ROOT_PATH "") -endif() -set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER) -endmacro() - -macro(restore_wasm_sysroot) -if(WASM_BUILD) - # reset to use sysroot - set(CMAKE_FIND_ROOT_PATH "${CMAKE_FIND_ROOT_PATH_BACKUP}") -endif() -set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) -endmacro() - -if(WITH_CGAL) - if(NOT CGAL_INCLUDE_DIR) - # CGAL is not respecting default Boost_USE_STATIC_LIBS value - # and sometiems it's getting in the way. - if(NOT DEFINED Boost_USE_STATIC_LIBS) - set(CGAL_Boost_USE_STATIC_LIBS OFF) - else() - set(CGAL_Boost_USE_STATIC_LIBS "${Boost_USE_STATIC_LIBS}") - endif() - find_package(CGAL REQUIRED) - if(NOT CGAL_DIR) - message( - FATAL_ERROR - "CGAL_SUPPORT enabled, but CGAL_INCLUDE_DIR wasn't provided and CGAL package couldn't be found." - ) - endif() - message(STATUS "CGAL: found config at '${CGAL_DIR}'.") - link_libraries(CGAL::CGAL) - endif() - - add_definitions(-DIFOPSH_WITH_CGAL) - set(SWIG_DEFINES ${SWIG_DEFINES} -DIFOPSH_WITH_CGAL) - - if(CITYJSON_SUPPORT) - add_definitions(-DIFOPSH_WITH_CITYJSON) - endif() - - list(APPEND GEOMETRY_KERNELS cgal) -endif() - -if(WITH_OPENCASCADE) +if(BUILD_IFCGEOM AND WITH_OPENCASCADE) + find_package(OpenCASCADE REQUIRED) add_definitions(-DIFOPSH_WITH_OPENCASCADE) set(SWIG_DEFINES ${SWIG_DEFINES} -DIFOPSH_WITH_OPENCASCADE) list(APPEND GEOMETRY_KERNELS opencascade) endif() -if(GLTF_SUPPORT OR CITYJSON_SUPPORT) - UNIFY_ENVVARS_AND_CACHE(JSON_INCLUDE_DIR) - if(NOT JSON_INCLUDE_DIR) - find_package(nlohmann_json CONFIG) - if(nlohmann_json_DIR) - link_libraries(nlohmann_json::nlohmann_json) - else() - message(STATUS "Unable to find nlohmann_json package, trying to find it as a header-only library.") - endif() - endif() - - if(NOT nlohmann_json_DIR) - clear_wasm_sysroot() - find_path(json_header_path "nlohmann/json.hpp" HINTS ${JSON_INCLUDE_DIR}) - restore_wasm_sysroot() - set(JSON_INCLUDE_DIR ${json_header_path}) - - if(json_header_path) - message(STATUS "JSON for Modern C++ header file found in '${JSON_INCLUDE_DIR}'.") - else() - message(FATAL_ERROR "Unable to find JSON for Modern C++ header file / package, aborting") - endif() - endif() - +set(GLTF_LIBRARIES "") +if(GLTF_SUPPORT) + find_package(nlohmann_json REQUIRED) + set(GLTF_LIBRARIES nlohmann_json::nlohmann_json) add_definitions(-DWITH_GLTF) set(SWIG_DEFINES ${SWIG_DEFINES} -DWITH_GLTF) endif() # Add USD support to serializers +set(USD_LIBRARIES "") if(USD_SUPPORT) - UNIFY_ENVVARS_AND_CACHE(USD_INCLUDE_DIR) - UNIFY_ENVVARS_AND_CACHE(USD_LIBRARY_DIR) - - if("${USD_INCLUDE_DIR}" STREQUAL "") - find_path(USD_INCLUDE_DIR pxr.h - PATHS - /usr/include/pxr - /usr/local/include/pxr - REQUIRED - ) - if(USD_INCLUDE_DIR) - message(STATUS "Found USD include files in: ${USD_INCLUDE_DIR}") - else() - message(FATAL_ERROR "Unable to find USD include directory, specify USD_INCLUDE_DIR manually.") - endif() - else() - set(USD_INCLUDE_DIR ${USD_INCLUDE_DIR} CACHE FILEPATH "USD header files") - message(STATUS "Looking for USD include files in: ${USD_INCLUDE_DIR}") - endif() - - set(USD_LIBRARIES - usd_usd - usd_usdGeom - usd_usdShade - usd_usdLux - usd_vt - usd_sdf - usd_tf - usd_gf - ) - - find_library(USD_LIBRARY - NAMES ${USD_LIBRARIES} - PATHS ${USD_LIBRARY_DIR}) - if(USD_LIBRARY) - message(STATUS "USD libraries ${USD_LIBRARIES} found in: ${USD_LIBRARY_DIR}") - link_directories(${USD_LIBRARY_DIR}) - else() - message(FATAL_ERROR "Unable to find USD libraries in: ${USD_LIBRARY_DIR}") - endif() - - add_definitions(-DWITH_USD) - set(SWIG_DEFINES ${SWIG_DEFINES} -DWITH_USD) + find_package(USD REQUIRED) + set(USD_LIBRARIES pxr::USD) endif(USD_SUPPORT) -if (WITH_ROCKSDB) +set(ROCKSDB_LIBRARIES "") +if(WITH_ROCKSDB) # Temporaily mess with CMAKE_FIND_PACKAGE_PREFER_CONFIG to help RocksDB # find it's zstd dependency on Windows. # Only do it on Windows, otherwise it might create problems as # findzstd and zstd-config target names do not match. + # https://github.com/facebook/rocksdb/pull/13975 if(WIN32) set(TEMP CMAKE_FIND_PACKAGE_PREFER_CONFIG) set(CMAKE_FIND_PACKAGE_PREFER_CONFIG TRUE) endif() find_package(RocksDB CONFIG REQUIRED) + mark_as_advanced(RocksDB_DIR) if(WIN32) set(CMAKE_FIND_PACKAGE_PREFER_CONFIG ${TEMP}) endif() message(STATUS "RocksDB: found at '${RocksDB_DIR}'.") - add_definitions(-DIFOPSH_WITH_ROCKSDB) + add_library(IFCOPENSHELL_RocksDB INTERFACE) + set(ROCKSDB_LIBRARIES "IFCOPENSHELL_RocksDB") + target_compile_definitions(IFCOPENSHELL_RocksDB INTERFACE IFOPSH_WITH_ROCKSDB) set(SWIG_DEFINES ${SWIG_DEFINES} -DIFOPSH_WITH_ROCKSDB) - link_libraries(RocksDB::rocksdb) + target_link_libraries( + IFCOPENSHELL_RocksDB + INTERFACE $,RocksDB::rocksdb-shared,RocksDB::rocksdb> + ) - if (WITH_ZSTD) + if(WITH_ZSTD) # @todo do we actually need the zstd include dir or rather just pass # the libzstd.a along with the rocksdb library when needed and feature # detect based on rocksdb API? find_package(zstd CONFIG REQUIRED) + mark_as_advanced(zstd_DIR) message(STATUS "zstd: found at '${zstd_DIR}'.") - link_libraries(zstd::libzstd_static) - - add_definitions(-DIFOPSH_WITH_ROCKSDB_ZSTD) - set(SWIG_DEFINES ${SWIG_DEFINES} -DIFOPSH_WITH_ROCKSDB_ZSTD) + target_link_libraries(IFCOPENSHELL_RocksDB INTERFACE zstd::libzstd_static) endif() + + install(TARGETS IFCOPENSHELL_RocksDB EXPORT ${IFCOPENSHELL_EXPORT_TARGETS}) endif() # Find Boost: On win32 the (hardcoded) default is to use static libraries and # runtime, when doing running conda-build we pick what conda prepared for us. -if(WIN32 AND("$ENV{CONDA_BUILD}" STREQUAL "")) +if(WIN32 AND NOT DEFINED ENV{CONDA_BUILD}) set(Boost_USE_STATIC_LIBS ON) set(Boost_USE_STATIC_RUNTIME OFF) set(Boost_USE_MULTITHREADED ON) @@ -429,7 +309,14 @@ if(WASM_BUILD) else() # @todo review this, shouldn't this be all possible header-only now? # ... or rewritten using C++17 features? - set(BOOST_COMPONENTS system program_options regex thread date_time iostreams) + set(BOOST_COMPONENTS + system + program_options + regex + thread + date_time + iostreams + ) endif() if(USE_MMAP) @@ -443,297 +330,27 @@ if(USE_MMAP) add_definitions(-DUSE_MMAP) endif() -clear_wasm_sysroot() +# Handle CGAL after Boost settings are set, since CGAL will use them too. +# Do `find_package(Boost)` only after this, to make sure `FindBoost` finds correct components. +# Otherwise it will find components needed for CGAL and we might some libraries. +if(WITH_CGAL) + find_package(CGAL REQUIRED) + set(CGAL_LIBRARIES IFCOPENSHELL_CGAL) + list(APPEND GEOMETRY_KERNELS cgal) +endif() + find_package(Boost REQUIRED COMPONENTS ${BOOST_COMPONENTS}) -restore_wasm_sysroot() message(STATUS "Boost include files found in ${Boost_INCLUDE_DIRS}") message(STATUS "Boost libraries found in ${Boost_LIBRARY_DIRS}") -if(NOT MINIMAL_BUILD) - # libxml2 is required for IFCXML (optional) and SVGFILL (mandatory) - clear_wasm_sysroot() - if(IFCXML_SUPPORT) - if((NOT LIBXML2_INCLUDE_DIR AND NOT LIBXML2_LIBRARIES)) - # First try config mode (probably works with vcpkg, Conan, macOS brew installs, but not on ubuntu 22.04) - # CONFIG is provided using root path, so no need to clear sysroot here. - restore_wasm_sysroot() - find_package(LibXml2 QUIET CONFIG) - clear_wasm_sysroot() - - if(NOT LibXml2_FOUND) - # Fallback to CMake's builtin FindLibXml2 module (works on Ubuntu) - find_package(LibXml2 REQUIRED) - else() - message(STATUS "Found LibXml2 config: ${LibXml2_DIR}") - endif() - - if(TARGET LibXml2::LibXml2) - # Config mode already gives us the target - set(LIBXML2_LIBRARIES LibXml2::LibXml2) - get_target_property(LIBXML2_INCLUDE_DIR LibXml2::LibXml2 INTERFACE_INCLUDE_DIRECTORIES) - else() - # Module mode (Ubuntu) - set(LIBXML2_LIBRARIES ${LibXml2_LIBRARIES}) - set(LIBXML2_INCLUDE_DIR ${LibXml2_INCLUDE_DIRS}) - endif() - else() - find_package(LibXml2 REQUIRED) - endif() - endif() - restore_wasm_sysroot() -endif() - -if(IFCXML_SUPPORT) - add_definitions(-DWITH_IFCXML) - set(SWIG_DEFINES ${SWIG_DEFINES} -DWITH_IFCXML) -endif() - -if(BUILD_IFCGEOM) - if(MSVC AND NOT LibXml2_DIR) - add_debug_variants(LIBXML2_LIBRARIES "${LIBXML2_LIBRARIES}" d) - endif() - - # Open CASCADE - if(WITH_OPENCASCADE) - if(OCC_INCLUDE_DIR) - set(OCC_INCLUDE_DIR ${OCC_INCLUDE_DIR} CACHE FILEPATH "Open CASCADE header files") - message(STATUS "Looking for Open CASCADE include files in: ${OCC_INCLUDE_DIR}") - endif() - - if(OCC_LIBRARY_DIR) - set(OCC_LIBRARY_DIR ${OCC_LIBRARY_DIR} CACHE FILEPATH "Open CASCADE library files") - message(STATUS "Looking for Open CASCADE library files in: ${OCC_LIBRARY_DIR}") - endif() - - # No specific paths specified, try to find package. - if(OCC_INCLUDE_DIR AND OCC_LIBRARY_DIR) - message( - STATUS - "Using provided OCC_INCLUDE_DIR ('${OCC_INCLUDE_DIR}') " - "and OCC_LIBRARY_DIR ('${OCC_LIBRARY_DIR}')." - ) - # Parse OCC_VERSION_STRING. - file(STRINGS ${OCC_INCLUDE_DIR}/Standard_Version.hxx OCC_MAJOR - REGEX "#define OCC_VERSION_MAJOR.*" - ) - string(REGEX MATCH "[0-9]+" OCC_MAJOR ${OCC_MAJOR}) - file(STRINGS ${OCC_INCLUDE_DIR}/Standard_Version.hxx OCC_MINOR - REGEX "#define OCC_VERSION_MINOR.*" - ) - string(REGEX MATCH "[0-9]+" OCC_MINOR ${OCC_MINOR}) - file(STRINGS ${OCC_INCLUDE_DIR}/Standard_Version.hxx OCC_MAINT - REGEX "#define OCC_VERSION_MAINTENANCE.*" - ) - string(REGEX MATCH "[0-9]+" OCC_MAINT ${OCC_MAINT}) - set(OCC_VERSION_STRING "${OCC_MAJOR}.${OCC_MINOR}.${OCC_MAINT}") - elseif(NOT OCC_INCLUDE_DIR AND NOT OCC_LIBRARY_DIR) - # OCE is not supported for find_package, because it's using a different name (`oce`) - # and also has an odd directory structure (install/lib/oce-0.18/*.cmake). - find_package(OpenCASCADE CONFIG REQUIRED) - set(OCC_INCLUDE_DIR ${OpenCASCADE_INCLUDE_DIR}) - # Do not use OpenCASCADE_LIBRARY_DIR for OCC_LIBRARY_DIR - check target property explicitly. - # On Windows there is a case with OpenCASCADE_LIBRARY_DIR points to `lib` folder, - # while TKernel is actually in `libi`. - get_target_property(TKERNEL_LIB_PATH TKernel LOCATION) - get_filename_component(OCC_LIBRARY_DIR "${TKERNEL_LIB_PATH}" DIRECTORY) - set(OCC_VERSION_STRING ${OpenCASCADE_VERSION}) - message( - STATUS - "Found Open CASCADE package at '${OpenCASCADE_DIR}', " - "deducing from it OCC_INCLUDE_DIR: '${OCC_INCLUDE_DIR}' " - "and OCC_LIBRARY_DIR: '${OCC_LIBRARY_DIR}'." - ) - else() - message( - FATAL_ERROR - "Couldn't find Open CASCADE installation. " - "Either both OCC_INCLUDE_DIR ('${OCC_INCLUDE_DIR}') and OCC_LIBRARY_DIR ('${OCC_LIBRARY_DIR}') " - "must be specified or OpenCASCADE package should be discoverable. " - "If you're using OCE, then providing a package is not available " - "and you need to provide OCE_INCLUDE_DIR and OCE_LIBRARY_DIR directly." - ) - endif() - - set( - OPENCASCADE_LIBRARY_NAMES - TKernel TKMath TKBRep TKGeomBase TKGeomAlgo TKG3d TKG2d TKShHealing TKTopAlgo TKMesh TKPrim TKBool TKBO - TKFillet TKXSBase TKOffset TKHLR - - # @todo investigate the exact conditions when this is necessary - TKBin - ) - - if(OCC_VERSION_STRING VERSION_LESS 7.8.0) - list(APPEND OPENCASCADE_LIBRARY_NAMES TKIGES TKSTEPBase TKSTEPAttr TKSTEP209 TKSTEP) - else(OCC_VERSION_STRING VERSION_LESS 7.8.0) - list(APPEND OPENCASCADE_LIBRARY_NAMES TKDESTEP TKDEIGES) - endif(OCC_VERSION_STRING VERSION_LESS 7.8.0) - - clear_wasm_sysroot() - find_library(libTKernel NAMES TKernel TKerneld PATHS ${OCC_LIBRARY_DIR} NO_DEFAULT_PATH) - restore_wasm_sysroot() - - if(libTKernel) - message(STATUS "Required Open Cascade Library files found") - else() - message( - FATAL_ERROR - "Unable to find Open Cascade library files in OCC_LIBRARY_DIR ('${OCC_LIBRARY_DIR}'), aborting" - ) - endif() - - # Use the found libTKernel as a template for all other OCC libraries - # TODO Extract this into macro/function - foreach(lib ${OPENCASCADE_LIBRARY_NAMES}) - # Make sure we'll handle the Windows/MSVC debug postfix convention too. - string(REPLACE TKerneld "${lib}" lib_path "${libTKernel}") - string(REPLACE TKernel "${lib}" lib_path "${lib_path}") - list(APPEND OPENCASCADE_LIBRARIES "${lib_path}") - endforeach() - - if(MSVC) - add_definitions(-DHAVE_NO_DLL) - add_debug_variants(OPENCASCADE_LIBRARIES "${OPENCASCADE_LIBRARIES}" d) - endif() - - if(WIN32) - # OCC might require linking to Winsock depending on the version and build configuration - list(APPEND OPENCASCADE_LIBRARIES ws2_32.lib) - endif() - - # Make sure cross-referenced symbols between static OCC libraries get - # resolved. Also add thread and rt libraries. - get_filename_component(libTKernelExt ${libTKernel} EXT) - if("${libTKernelExt}" STREQUAL ".a") - set(OCCT_STATIC ON) - endif() - - if(OCCT_STATIC) - find_package(Threads) - - if(WASM_BUILD) - set(OPENCASCADE_LIBRARIES ${OPENCASCADE_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) - else() - # OPENCASCADE_LIBRARIES repeated N times below in order to fix cyclic dependencies - # tfk: --start-group ... --end-group didn't work on the apple linker when last tested - if(APPLE) - set(OPENCASCADE_LIBRARIES ${OPENCASCADE_LIBRARIES} ${OPENCASCADE_LIBRARIES} ${OPENCASCADE_LIBRARIES} ${OPENCASCADE_LIBRARIES} ${OPENCASCADE_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) - else() - set(OPENCASCADE_LIBRARIES -Wl,--start-group ${OPENCASCADE_LIBRARIES} -Wl,--end-group ${CMAKE_THREAD_LIBS_INIT}) - endif() - endif() - - if(NOT APPLE AND NOT WIN32) - set(OPENCASCADE_LIBRARIES ${OPENCASCADE_LIBRARIES} "rt") - endif() - if(NOT WIN32) - set(OPENCASCADE_LIBRARIES ${OPENCASCADE_LIBRARIES} "dl") - endif() - endif() - endif(WITH_OPENCASCADE) -endif(BUILD_IFCGEOM) - -if(COLLADA_SUPPORT AND (NOT OPENCOLLADA_INCLUDE_DIR AND NOT OPENCOLLADA_LIBRARY_DIR)) - # If package is found, automatically sets - # OPENCOLLADA_INCLUDE_DIRS and OPENCOLLADA_LIBRARIES (list of targets, not paths). - find_package(OpenCOLLADA CONFIG) - if(OpenCOLLADA_DIR) - message(STATUS "Found OpenCOLLADA: '${OpenCOLLADA_DIR}'.") - set(OPENCOLLADA_FOUND TRUE) - else() - message(STATUS "OpenCOLLADA package not found, falling back to manual search.") - endif() -endif() -if(COLLADA_SUPPORT AND NOT OpenCOLLADA_DIR) - # Find OpenCOLLADA - if("${OPENCOLLADA_INCLUDE_DIR}" STREQUAL "") - message(STATUS "No OpenCOLLADA include directory specified") - set(OPENCOLLADA_INCLUDE_DIR "/usr/include/opencollada" CACHE FILEPATH "OpenCOLLADA header files") - else() - set(OPENCOLLADA_INCLUDE_DIR "${OPENCOLLADA_INCLUDE_DIR}" CACHE FILEPATH "OpenCOLLADA header files") - endif() - - if("${OPENCOLLADA_LIBRARY_DIR}" STREQUAL "") - message(STATUS "No OpenCOLLADA library directory specified") - find_library(OPENCOLLADA_FRAMEWORK_LIB NAMES OpenCOLLADAFramework - PATHS /usr/lib64/opencollada /usr/lib/opencollada /usr/lib64 /usr/lib /usr/local/lib64 /usr/local/lib) - get_filename_component(OPENCOLLADA_LIBRARY_DIR ${OPENCOLLADA_FRAMEWORK_LIB} PATH) - endif() - - find_library(OpenCOLLADAFramework NAMES OpenCOLLADAFramework OpenCOLLADAFrameworkd PATHS ${OPENCOLLADA_LIBRARY_DIR} NO_DEFAULT_PATH) - - if(OpenCOLLADAFramework) - message(STATUS "OpenCOLLADA library files found") - else() - message(FATAL_ERROR "COLLADA_SUPPORT enabled, but unable to find OpenCOLLADA libraries. " - "Disable COLLADA_SUPPORT or fix OpenCOLLADA paths to proceed.") - endif() - - set(OPENCOLLADA_LIBRARY_DIR "${OPENCOLLADA_LIBRARY_DIR}" CACHE FILEPATH "OpenCOLLADA library files") - - set(OPENCOLLADA_INCLUDE_DIRS "${OPENCOLLADA_INCLUDE_DIR}/COLLADABaseUtils" "${OPENCOLLADA_INCLUDE_DIR}/COLLADAStreamWriter") - - find_file(COLLADASWStreamWriter_h "COLLADASWStreamWriter.h" ${OPENCOLLADA_INCLUDE_DIRS}) - - if(COLLADASWStreamWriter_h) - message(STATUS "OpenCOLLADA header files found") - set(OPENCOLLADA_FOUND TRUE) - - set(OPENCOLLADA_LIBRARY_NAMES - GeneratedSaxParser MathMLSolver OpenCOLLADABaseUtils OpenCOLLADAFramework OpenCOLLADASaxFrameworkLoader - OpenCOLLADAStreamWriter UTF buffer ftoa - ) - - # Use the found OpenCOLLADAFramework as a template for all other OpenCOLLADA libraries - foreach(lib ${OPENCOLLADA_LIBRARY_NAMES}) - # Make sure we'll handle the Windows/MSVC debug postfix convention too. - string(REPLACE OpenCOLLADAFrameworkd "${lib}" lib_path "${OpenCOLLADAFramework}") - string(REPLACE OpenCOLLADAFramework "${lib}" lib_path "${lib_path}") - list(APPEND OPENCOLLADA_LIBRARIES "${lib_path}") - endforeach() - - if("${PCRE_LIBRARY_DIR}" STREQUAL "") - if(WIN32) - find_library(pcre_library NAMES pcre pcred PATHS ${OPENCOLLADA_LIBRARY_DIR} NO_DEFAULT_PATH) - else() - find_library(pcre_library NAMES pcre PATHS ${OPENCOLLADA_LIBRARY_DIR}) - endif() - - get_filename_component(PCRE_LIBRARY_DIR ${pcre_library} PATH) - else() - find_library(pcre_library NAMES pcre pcred PATHS ${PCRE_LIBRARY_DIR} NO_DEFAULT_PATH) - endif() - - if(pcre_library) - set(OPENCOLLADA_LIBRARY_DIR ${OPENCOLLADA_LIBRARY_DIR} ${PCRE_LIBRARY_DIR}) - - if(MSVC) - # Add release lib regardless whether release or debug found. Debug version will be appended below. - list(APPEND OPENCOLLADA_LIBRARIES "${PCRE_LIBRARY_DIR}/pcre.lib") - else() - list(APPEND OPENCOLLADA_LIBRARIES "${pcre_library}") - endif() - else() - message(FATAL_ERROR "COLLADA_SUPPORT enabled, but unable to find PCRE. " - "Disable COLLADA_SUPPORT or fix PCRE_LIBRARY_DIR path to proceed.") - endif() - - if(MSVC) - add_debug_variants(OPENCOLLADA_LIBRARIES "${OPENCOLLADA_LIBRARIES}" d) - endif() - else() - message(FATAL_ERROR "COLLADA_SUPPORT enabled, but unable to find OpenCOLLADA headers. " - "Disable COLLADA_SUPPORT or fix OpenCOLLADA paths to proceed.") - endif() -endif(COLLADA_SUPPORT AND NOT OpenCOLLADA_DIR) -if(COLLADA_SUPPORT AND OPENCOLLADA_FOUND) +if(COLLADA_SUPPORT) + find_package(OpenCOLLADA REQUIRED) add_definitions(-DWITH_OPENCOLLADA) - set(SWIG_DEFINES ${SWIG_DEFINES} -DWITH_OPENCOLLADA) endif() - if(HDF5_SUPPORT) find_package(HDF5 REQUIRED COMPONENTS C CXX) + set(IFCOPENSHELL_LIBRARIES ${IFCOPENSHELL_LIBRARIES} hdf5::hdf5_cpp) add_definitions(-DWITH_HDF5) set(SWIG_DEFINES ${SWIG_DEFINES} -DWITH_HDF5) @@ -805,7 +422,7 @@ if(MSVC) endif() # Enforce standards-conformance on VS > 2015, older Boost versions fail to compile with this - if(MSVC_VERSION GREATER 1900 AND(Boost_MAJOR_VERSION GREATER 1 OR Boost_MINOR_VERSION GREATER 66)) + if(MSVC_VERSION GREATER 1900 AND (Boost_MAJOR_VERSION GREATER 1 OR Boost_MINOR_VERSION GREATER 66)) add_definitions(-permissive-) endif() @@ -824,11 +441,11 @@ if(MSVC) # endforeach() # endif() - add_definitions(-D_ENABLE_EXTENDED_ALIGNED_STORAGE) - # See #5158. - if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.40) - add_definitions(-D_DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR) - endif() + add_definitions(-D_ENABLE_EXTENDED_ALIGNED_STORAGE) + # See #5158. + if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.40) + add_definitions(-D_DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR) + endif() else() add_definitions(-Wall -Wextra) @@ -838,7 +455,10 @@ else() add_definitions(-Wno-maybe-uninitialized) endif() - if(CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 9.0 OR CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 9.0)) + if( + CMAKE_CXX_COMPILER_ID MATCHES "GNU" + AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 9.0 OR CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 9.0) + ) # OpenCascade spews a lot of deprecated-copy warnings add_definitions(-Wno-deprecated-copy) endif() @@ -849,53 +469,45 @@ else() endif() endif(MSVC) - -# Ensure other dependencies are provided. -if(NOT EXISTS "${EIGEN_DIR}") - find_package(Eigen3 CONFIG) - if(Eigen3_DIR) - message(STATUS "Eigen3: found config at '${Eigen3_DIR}'.") - else() - message( - FATAL_ERROR - "EIGEN_DIR is not provided or provided folder doesn't exist (current value: '${EIGEN_DIR}'). " - "Also couldn't find Eigen3 as a package." - ) - endif() - link_libraries(Eigen3::Eigen) -endif() - - -include_directories(${INCLUDE_DIRECTORIES} ${OCC_INCLUDE_DIR} ${OPENCOLLADA_INCLUDE_DIRS} - ${Boost_INCLUDE_DIRS} ${LIBXML2_INCLUDE_DIR} ${JSON_INCLUDE_DIR} ${HDF5_INCLUDE_DIRS} - ${EIGEN_DIR} ${CGAL_INCLUDE_DIR} ${GMP_INCLUDE_DIR} ${MPFR_INCLUDE_DIR} ${USD_INCLUDE_DIR} - ${TBB_INCLUDE_DIR} -) +include_directories(${OPENCOLLADA_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${HDF5_INCLUDE_DIR}) if(NOT SCHEMA_VERSIONS) - if(WASM_BUILD) - # super arbitrarily try to keep size down at least a little bit + # `WASM_BUILD` - super arbitrarily try to keep size down at least a little bit + if(BUILD_ONLY_COMMON_SCHEMAS OR WASM_BUILD) set(SCHEMA_VERSIONS "2x3" "4" "4x3_add2") else() - set(SCHEMA_VERSIONS "2x3" "4" "4x1" "4x2" "4x3" "4x3_tc1" "4x3_add1" "4x3_add2") + set(SCHEMA_VERSIONS + "2x3" + "4" + "4x1" + "4x2" + "4x3" + "4x3_tc1" + "4x3_add1" + "4x3_add2" + ) endif() endif() message(STATUS "IFC SCHEMA_VERSIONS that will be used for the build: ${SCHEMA_VERSIONS}.") +set(SCHEMA_DEFINITIONS "") foreach(schema ${SCHEMA_VERSIONS}) - add_definitions(-DHAS_SCHEMA_${schema}) + list(APPEND SCHEMA_DEFINITIONS "-DHAS_SCHEMA_${schema}") endforeach() string(REPLACE ";" ")(" schema_version_seq "(${SCHEMA_VERSIONS})") -add_definitions(-DSCHEMA_SEQ=${schema_version_seq}) +list(APPEND SCHEMA_DEFINITIONS "-DSCHEMA_SEQ=${schema_version_seq}") if(COMPILE_SCHEMA) # @todo, this appears to be untested at the moment find_package(PythonInterp) if(NOT PYTHONINTERP_FOUND) - message(FATAL_ERROR "A Python interpreter is necessary when COMPILE_SCHEMA is enabled. Disable COMPILE_SCHEMA or fix Python paths to proceed.") + message( + FATAL_ERROR + "A Python interpreter is necessary when COMPILE_SCHEMA is enabled. Disable COMPILE_SCHEMA or fix Python paths to proceed." + ) endif() set(IFC_RELEASE_NOT_USED ${SCHEMA_VERSIONS}) @@ -915,7 +527,10 @@ if(COMPILE_SCHEMA) if("${PYPARSING_FOUND}" STREQUAL "-1") message(STATUS "Installing pyparsing") - execute_process(COMMAND ${PYTHON_EXECUTABLE} -m pip "install" --user pyparsing RESULT_VARIABLE SUCCESS) + execute_process( + COMMAND ${PYTHON_EXECUTABLE} -m pip "install" --user pyparsing + RESULT_VARIABLE SUCCESS + ) if(NOT "${SUCCESS}" STREQUAL "0") execute_process(COMMAND pip "install" --user pyparsing RESULT_VARIABLE SUCCESS) @@ -930,19 +545,23 @@ if(COMPILE_SCHEMA) # Bootstrap the parser message(STATUS "Compiling schema, this will take a while...") - execute_process(COMMAND ${PYTHON_EXECUTABLE} bootstrap.py express.bnf + execute_process( + COMMAND ${PYTHON_EXECUTABLE} bootstrap.py express.bnf WORKING_DIRECTORY ../src/ifcexpressparser OUTPUT_FILE express_parser.py - RESULT_VARIABLE SUCCESS) + RESULT_VARIABLE SUCCESS + ) if(NOT "${SUCCESS}" STREQUAL "0") message(FATAL_ERROR "Failed to bootstrap parser. Make sure pyparsing is installed") endif() # Generate code - execute_process(COMMAND ${PYTHON_EXECUTABLE} ../ifcexpressparser/express_parser.py ../../${COMPILE_SCHEMA} + execute_process( + COMMAND ${PYTHON_EXECUTABLE} ../ifcexpressparser/express_parser.py ../../${COMPILE_SCHEMA} WORKING_DIRECTORY ../src/ifcparse - OUTPUT_VARIABLE COMPILED_SCHEMA_NAME) + OUTPUT_VARIABLE COMPILED_SCHEMA_NAME + ) # Prevent the schema that had just been compiled from being excluded foreach(schema ${SCHEMA_VERSIONS}) @@ -957,288 +576,25 @@ if(NOT Boost_VERSION LESS 105800) add_definitions(-DBOOST_OPTIONAL_USE_OLD_DEFINITION_OF_NONE) endif() +add_subdirectory(../src/ifcparse ifcparse) set(IFCOPENSHELL_LIBRARIES IfcParse) if(BUILD_IFCGEOM) - foreach(schema ${SCHEMA_VERSIONS}) - set(IFCGEOM_SCHEMA_LIBRARIES ${IFCGEOM_SCHEMA_LIBRARIES} geometry_mapping_ifc${schema}) - endforeach() - set(IFCOPENSHELL_LIBRARIES ${IFCOPENSHELL_LIBRARIES} IfcGeom ${IFCGEOM_SCHEMA_LIBRARIES}) -endif() - -if(BUILD_CONVERT OR BUILD_IFCPYTHON) - foreach(schema ${SCHEMA_VERSIONS}) - set(SERIALIZER_SCHEMA_LIBRARIES ${SERIALIZER_SCHEMA_LIBRARIES} Serializers_ifc${schema}) - endforeach() - set(IFCOPENSHELL_LIBRARIES ${IFCOPENSHELL_LIBRARIES} Serializers ${SERIALIZER_SCHEMA_LIBRARIES}) - - if(WITH_OPENCASCADE) - foreach(schema ${SCHEMA_VERSIONS}) - set(GEOM_SERIALIZER_SCHEMA_LIBRARIES ${GEOM_SERIALIZER_SCHEMA_LIBRARIES} GeometrySerializers_ifc${schema}) - - add_library(geometry_serializer_ifc${schema} STATIC ../src/ifcgeom/Serialization/schema/Serialization.cpp) - set_target_properties(geometry_serializer_ifc${schema} PROPERTIES COMPILE_FLAGS "-DIFC_GEOMSERIALIZATION_EXPORTS -DIfcSchema=Ifc${schema}") - target_link_libraries(geometry_serializer_ifc${schema} ${OPENCASCADE_LIBRARIES}) - list(APPEND geometry_serializer_libraries geometry_serializer_ifc${schema}) - endforeach() - - add_library(geometry_serializer STATIC ../src/ifcgeom/Serialization/Serialization.h ../src/ifcgeom/Serialization/Serialization.cpp) - set_target_properties(geometry_serializer PROPERTIES COMPILE_FLAGS "-DIFC_GEOMSERIALIZATION_EXPORTS") - target_link_libraries(geometry_serializer ${geometry_serializer_libraries} IfcParse) - set(IFCOPENSHELL_LIBRARIES ${IFCOPENSHELL_LIBRARIES} geometry_serializer ${geometry_serializer_libraries}) - endif() -endif() - -# IfcParse -file(GLOB IFCPARSE_H_FILES_ALL ../src/ifcparse/*.h) -file(GLOB IFCPARSE_CPP_FILES_ALL ../src/ifcparse/*.cpp) - -foreach(file ${IFCPARSE_H_FILES_ALL}) - get_filename_component(filename "${file}" NAME) - - if(NOT "${filename}" MATCHES "[0-9]") - list(APPEND IFCPARSE_H_FILES "${file}") - endif() -endforeach() - -foreach(file ${IFCPARSE_CPP_FILES_ALL}) - get_filename_component(filename "${file}" NAME) - - if(NOT "${filename}" MATCHES "[0-9]") - list(APPEND IFCPARSE_CPP_FILES "${file}") - endif() -endforeach() - -foreach(schema ${SCHEMA_VERSIONS}) - list(APPEND IFCPARSE_H_FILES - ../src/ifcparse/Ifc${schema}.h - ../src/ifcparse/Ifc${schema}-definitions.h - ) - list(APPEND IFCPARSE_CPP_FILES - ../src/ifcparse/Ifc${schema}.cpp - ../src/ifcparse/Ifc${schema}-schema.cpp - ) -endforeach() - -set(IFCPARSE_FILES ${IFCPARSE_CPP_FILES} ${IFCPARSE_H_FILES}) - -add_library(IfcParse ${IFCPARSE_FILES}) -target_link_libraries(IfcParse ${STDCPPFS}) -set_target_properties(IfcParse PROPERTIES COMPILE_FLAGS -DIFC_PARSE_EXPORTS VERSION "${PROJECT_VERSION}" SOVERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}") - -if(LibXml2_DIR) - target_compile_definitions(IfcParse PRIVATE ${LIBXML2_DEFINITIONS}) -endif() -if(WASM_BUILD) - target_link_libraries(IfcParse ${BCRYPT_LIBRARIES} ${LIBXML2_LIBRARIES}) -else() - target_link_libraries(IfcParse ${Boost_LIBRARIES} ${BCRYPT_LIBRARIES} ${LIBXML2_LIBRARIES}) -endif() - -if(BUILD_IFCGEOM) - # CGAL::CGAL target already has dependencies resolved. - if(WITH_CGAL AND CGAL_DIR) - set(CGAL_LIBRARIES CGAL::CGAL) - message(STATUS "Using found CGAL package at '${CGAL_DIR}'") - elseif(WITH_CGAL AND NOT CGAL_DIR) - clear_wasm_sysroot() - find_library(libGMP NAMES gmp mpir PATHS ${GMP_LIBRARY_DIR} NO_DEFAULT_PATH) - find_library(libMPFR NAMES mpfr PATHS ${MPFR_LIBRARY_DIR} NO_DEFAULT_PATH) - restore_wasm_sysroot() - if(NOT libGMP) - message(FATAL_ERROR "Unable to find GMP library files, aborting") - endif() - if(NOT libMPFR) - message(FATAL_ERROR "Unable to find MPFR library files, aborting") - endif() - - list(APPEND CGAL_LIBRARIES "${libMPFR}") - list(APPEND CGAL_LIBRARIES "${libGMP}") - endif() - - foreach(kernel ${GEOMETRY_KERNELS}) - string(TOUPPER ${kernel} KERNEL_UPPER) - file(GLOB IFCGEOM_H_FILES ../src/ifcgeom/kernels/${kernel}/*.h) - file(GLOB IFCGEOM_CPP_FILES ../src/ifcgeom/kernels/${kernel}/*.cpp) - set(IFCGEOM_FILES ${IFCGEOM_CPP_FILES} ${IFCGEOM_H_FILES}) - - add_library(geometry_kernel_${kernel} ${IFCGEOM_FILES} ../src/ifcgeom/kernels/ifc_geomlibrary_api.h) - set_property(TARGET geometry_kernel_${kernel} APPEND PROPERTY COMPILE_FLAGS "-DIFC_GEOMLIBRARY_EXPORTS") - # needed? - # if(NOT WASM_BUILD) - # endif() - target_link_libraries(geometry_kernel_${kernel} ${${KERNEL_UPPER}_LIBRARIES} IfcGeom IfcParse) - list(APPEND kernel_libraries geometry_kernel_${kernel}) - - if(${kernel} STREQUAL "cgal") - set_property(TARGET geometry_kernel_${kernel} APPEND_STRING PROPERTY COMPILE_FLAGS " -DCGAL_HAS_THREADS") - - add_library(geometry_kernel_${kernel}_simple ${IFCGEOM_FILES}) - set_target_properties(geometry_kernel_${kernel}_simple PROPERTIES COMPILE_FLAGS "-DIFC_GEOMLIBRARY_EXPORTS -DIFOPSH_SIMPLE_KERNEL -DCGAL_HAS_THREADS") - # needed? - # if(NOT WASM_BUILD) - # endif() - target_link_libraries(geometry_kernel_${kernel}_simple ${${KERNEL_UPPER}_LIBRARIES} IfcGeom IfcParse) - list(APPEND kernel_libraries geometry_kernel_${kernel}_simple) - endif() - endforeach() - - # IfcGeom - foreach(schema ${SCHEMA_VERSIONS}) - file(GLOB IFCGEOM_I_FILES ../src/ifcgeom/mapping/*.i) - file(GLOB IFCGEOM_H_FILES ../src/ifcgeom/mapping/*.h) - file(GLOB IFCGEOM_CPP_FILES ../src/ifcgeom/mapping/*.cpp) - set(IFCGEOM_FILES ${IFCGEOM_CPP_FILES} ${IFCGEOM_H_FILES} ${IFCGEOM_I_FILES}) - - add_library(geometry_mapping_ifc${schema} STATIC ${IFCGEOM_FILES}) - set_target_properties(geometry_mapping_ifc${schema} PROPERTIES COMPILE_FLAGS "-DIFC_GEOM_EXPORTS -DIfcSchema=Ifc${schema}") - target_link_libraries(geometry_mapping_ifc${schema} IfcParse) - if (NOT BUILD_SHARED_LIBS) - target_link_libraries(geometry_mapping_ifc${schema} IfcGeom) - endif() - list(APPEND mapping_libraries geometry_mapping_ifc${schema}) - endforeach() - - # IfcGeom (schema agnostic) - file(GLOB SCHEMA_AGNOSTIC_H_FILES ../src/ifcgeom/*.h) - file(GLOB SCHEMA_AGNOSTIC_CPP_FILES ../src/ifcgeom/*.cpp) - set(SCHEMA_AGNOSTIC_FILES ${SCHEMA_AGNOSTIC_H_FILES} ${SCHEMA_AGNOSTIC_CPP_FILES}) - - add_library(IfcGeom ${SCHEMA_AGNOSTIC_FILES}) - set_target_properties(IfcGeom PROPERTIES COMPILE_FLAGS -DIFC_GEOM_EXPORTS VERSION "${PROJECT_VERSION}" SOVERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}") - - if(UNIX) - find_package(Threads) - endif() - - target_link_libraries(IfcGeom IfcParse ${mapping_libraries} ${CMAKE_THREAD_LIBS_INIT}) - + add_subdirectory(../src/ifcgeom ifcgeom) endif(BUILD_IFCGEOM) if(BUILD_CONVERT OR BUILD_IFCPYTHON) - # Serializers - file(GLOB SERIALIZERS_H_FILES ../src/serializers/*.h) - file(GLOB SERIALIZERS_CPP_FILES ../src/serializers/*.cpp) - set(SERIALIZERS_FILES ${SERIALIZERS_H_FILES} ${SERIALIZERS_CPP_FILES}) - file(GLOB SERIALIZERS_S_H_FILES ../src/serializers/schema_dependent/*.h) - file(GLOB SERIALIZERS_S_CPP_FILES ../src/serializers/schema_dependent/*.cpp) - set(SERIALIZERS_S_FILES ${SERIALIZERS_S_H_FILES} ${SERIALIZERS_S_CPP_FILES}) - - foreach(schema ${SCHEMA_VERSIONS}) - add_library(Serializers_ifc${schema} STATIC ${SERIALIZERS_S_FILES}) - set_target_properties(Serializers_ifc${schema} PROPERTIES COMPILE_FLAGS "-DSERIALIZERS_EXPORTS -DIfcSchema=Ifc${schema}") - - if(WASM_BUILD) - target_link_libraries(Serializers_ifc${schema} ${HDF5_LIBRARIES}) - else() - target_link_libraries(Serializers_ifc${schema} IfcGeom ${OPENCASCADE_LIBRARIES} ${HDF5_LIBRARIES}) - endif() - endforeach() - - add_library(Serializers ${SERIALIZERS_FILES}) - set_target_properties(Serializers PROPERTIES COMPILE_FLAGS "-DSERIALIZERS_EXPORTS" VERSION "${PROJECT_VERSION}" SOVERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}") - - if(WITH_PROJ) - target_compile_definitions(Serializers PRIVATE "WITH_PROJ") - if (PROJ_STATIC) - target_compile_definitions(Serializers PRIVATE "PROJ_DLL=") - endif() - target_include_directories(Serializers PRIVATE ${PROJ_INCLUDE_DIR} ${SQLITE_INCLUDE_DIR}) - target_link_libraries(Serializers ${PROJ_LIBRARIES}) - endif() - - target_link_libraries(Serializers ${SERIALIZER_SCHEMA_LIBRARIES} ${OPENCOLLADA_LIBRARIES} ${USD_LIBRARIES} IfcGeom ${OPENCASCADE_LIBRARIES} ${kernel_libraries} IfcParse) - + add_subdirectory(../src/serializers serializers) + set(IFCOPENSHELL_LIBRARIES ${IFCOPENSHELL_LIBRARIES} ${SERIALIZER_SCHEMA_LIBRARIES}) endif(BUILD_CONVERT OR BUILD_IFCPYTHON) if(BUILD_CONVERT) - if(WITH_CGAL AND CITYJSON_SUPPORT) - message(STATUS "Building CityJSON support") - set(CITYJSON_CONVERT_FILES - ../src/ifcconvert/cityjson/geobim.cpp - ../src/ifcconvert/cityjson/global_execution_context.cpp - ../src/ifcconvert/cityjson/opening_collector.cpp - ../src/ifcconvert/cityjson/processing.cpp - ../src/ifcconvert/cityjson/radius_comparison.cpp - ../src/ifcconvert/cityjson/radius_execution_context.cpp - ../src/ifcconvert/cityjson/settings.cpp - ../src/ifcconvert/cityjson/writer.cpp - ) - add_library(cityjson_converter ${CITYJSON_CONVERT_FILES}) - target_include_directories(cityjson_converter PRIVATE ../src) - set(IFCOPENSHELL_LIBRARIES ${IFCOPENSHELL_LIBRARIES} cityjson_converter) - - install(TARGETS cityjson_converter - ARCHIVE DESTINATION ${LIBDIR} - LIBRARY DESTINATION ${LIBDIR} - ) - - add_executable(cityjson_converter_exe ${CITYJSON_CONVERT_FILES}) - set_target_properties(cityjson_converter_exe PROPERTIES COMPILE_FLAGS "-DCITYJSON_EXECUTABLE") - target_include_directories(cityjson_converter_exe PRIVATE ../src) - target_link_libraries(cityjson_converter_exe ${IFCOPENSHELL_LIBRARIES} ${OPENCASCADE_LIBRARIES} ${Boost_LIBRARIES} ${HDF5_LIBRARIES} ${USD_LIBRARIES}) - - install(TARGETS cityjson_converter_exe - RUNTIME DESTINATION ${BINDIR} - ) - endif() - - # IfcConvert - if (WITH_RELATIONSHIP_VALIDATION) - file(GLOB IFCCONVERT_CPP_FILES ../src/ifcconvert/*.cpp) - file(GLOB IFCCONVERT_H_FILES ../src/ifcconvert/*.h) - else() - file(GLOB IFCCONVERT_CPP_FILES ../src/ifcconvert/IfcConvert.cpp) - file(GLOB IFCCONVERT_H_FILES) - endif() - set(IFCCONVERT_FILES ${IFCCONVERT_CPP_FILES} ${IFCCONVERT_H_FILES}) - add_executable(IfcConvert ${IFCCONVERT_FILES}) - - target_link_libraries(IfcConvert IfcGeom IfcParse Serializers ${kernel_libraries} ${OPENCASCADE_LIBRARIES} ${Boost_LIBRARIES} ${HDF5_LIBRARIES} ${USD_LIBRARIES}) - if (WITH_RELATIONSHIP_VALIDATION) - set_property(TARGET IfcConvert APPEND_STRING PROPERTY COMPILE_FLAGS " -DWITH_RELATIONSHIP_VALIDATION") - endif() - - if(WITH_CGAL AND CITYJSON_SUPPORT) - set_property(TARGET IfcConvert APPEND_STRING PROPERTY COMPILE_FLAGS " -DIFOPSH_WITH_CITYJSON") - endif() - - if((NOT WIN32) AND BUILD_SHARED_LIBS) - # Only set RPATHs when building shared libraries (i.e. IfcParse and - # IfcGeom are dynamically linked). Not necessarily a perfect solution - # but probably a good indication of whether RPATHs are necessary. - SET_INSTALL_RPATHS(IfcConvert "${IFCOPENSHELL_LIBRARY_DIR};${OCC_LIBRARY_DIR};${Boost_LIBRARY_DIRS};${OPENCOLLADA_LIBRARY_DIR}") - endif() - - install(TARGETS IfcConvert - ARCHIVE DESTINATION ${LIBDIR} - LIBRARY DESTINATION ${LIBDIR} - RUNTIME DESTINATION ${BINDIR} - ) + add_subdirectory(../src/ifcconvert ifcconvert) endif(BUILD_CONVERT) # IfcGeomServer if(BUILD_GEOMSERVER) - - if(NOT WITH_OPENCASCADE) - message(FATAL_ERROR "Open CASCADE is required to build IfcGeomServer.") - endif() - - file(GLOB CPP_FILES ../src/ifcgeomserver/*.cpp) - file(GLOB H_FILES ../src/ifcgeomserver/*.h) - set(SOURCE_FILES ${CPP_FILES} ${H_FILES}) - add_executable(IfcGeomServer ${SOURCE_FILES}) - target_link_libraries(IfcGeomServer IfcGeom IfcParse ${kernel_libraries} ${OPENCASCADE_LIBRARIES} ${Boost_LIBRARIES}) - - if((NOT WIN32) AND BUILD_SHARED_LIBS) - SET_INSTALL_RPATHS(IfcGeomServer "${IFCOPENSHELL_LIBRARY_DIR};${OCC_LIBRARY_DIR};${Boost_LIBRARY_DIRS}") - endif() - - install(TARGETS IfcGeomServer - ARCHIVE DESTINATION ${LIBDIR} - LIBRARY DESTINATION ${LIBDIR} - RUNTIME DESTINATION ${BINDIR} - ) + add_subdirectory(../src/ifcgeomserver ifcgeomserver) endif(BUILD_GEOMSERVER) if(ADD_COMMIT_SHA) @@ -1249,8 +605,8 @@ if(ADD_COMMIT_SHA) endif() if(GIT_FOUND) - if (VERSION_OVERRIDE) - set (git_branch ${RELEASE_VERSION}) + if(VERSION_OVERRIDE) + set(git_branch ${RELEASE_VERSION}) else() message("git found: ${GIT_EXECUTABLE} with version ${GIT_VERSION_STRING}") execute_process( @@ -1262,8 +618,8 @@ if(ADD_COMMIT_SHA) string(REPLACE "\n" ";" git_branch_list "${git_branches}") foreach(git_branch_candidate IN ITEMS ${git_branch_list}) - string(REPLACE "*" "" git_branch_candidate_temp "${git_branch_candidate}") - string(STRIP "${git_branch_candidate_temp}" git_branch_candidate_2) + string(REPLACE "*" "" git_branch_candidate_temp "${git_branch_candidate}") + string(STRIP "${git_branch_candidate_temp}" git_branch_candidate_2) if(NOT git_branch_candidate_2 MATCHES "^HEAD$") string(REPLACE "/" ";" git_branch_candidate_2_list "${git_branch_candidate_2}") list(GET git_branch_candidate_2_list -1 git_branch) @@ -1281,13 +637,13 @@ if(ADD_COMMIT_SHA) message(STATUS "IfcOpenShell branch: \"${git_branch}\"") message(STATUS "IfcOpenShell commit: \"${git_sha}\"") - if ("${git_branch}" STREQUAL "" OR "${git_sha}" STREQUAL "") + if("${git_branch}" STREQUAL "" OR "${git_sha}" STREQUAL "") message(FATAL_ERROR "Unable to determine commit sha and/or branch") endif() - target_compile_definitions(IfcParse PRIVATE - -DIFCOPENSHELL_BRANCH=${git_branch} - -DIFCOPENSHELL_COMMIT=${git_sha} + target_compile_definitions( + IfcParse + PRIVATE -DIFCOPENSHELL_BRANCH=${git_branch} -DIFCOPENSHELL_COMMIT=${git_sha} ) endif() endif(ADD_COMMIT_SHA) @@ -1317,7 +673,7 @@ if(BUILD_IFCMAX) add_subdirectory(../src/ifcmax ifcmax) endif() -if(WITH_CGAL) +if(BUILD_IFCPYTHON AND WITH_CGAL) add_subdirectory(../src/svgfill svgfill) endif() @@ -1325,93 +681,28 @@ if(BUILD_QTVIEWER) add_subdirectory(../src/qtviewer qtviewer) endif() -# CMake installation targets -install(FILES ${IFCPARSE_H_FILES} - DESTINATION ${INCLUDEDIR}/ifcparse -) - -install(TARGETS IfcParse - ARCHIVE DESTINATION ${LIBDIR} - LIBRARY DESTINATION ${LIBDIR} - RUNTIME DESTINATION ${BINDIR} -) - -if(BUILD_IFCGEOM) - # install(FILES ${IFCGEOM_H_FILES} - # DESTINATION ${INCLUDEDIR}/ifcgeom - # ) - - install(FILES ${SCHEMA_AGNOSTIC_H_FILES} - DESTINATION ${INCLUDEDIR}/ifcgeom - ) - - file(GLOB SERIALIZATION_H_FILES ../src/ifcgeom/serialization/*.h) - install(FILES ${SERIALIZATION_H_FILES} - DESTINATION ${INCLUDEDIR}/ifcgeom/serialization - ) - - foreach(kernel ${GEOMETRY_KERNELS}) - file(GLOB IFCGEOM_H_FILES ../src/ifcgeom/kernels/${kernel}/*.h) - install(FILES ${IFCGEOM_H_FILES} - DESTINATION ${INCLUDEDIR}/ifcgeom/kernels/${kernel} - ) - endforeach() - - install(TARGETS ${IFCGEOM_SCHEMA_LIBRARIES} ${kernel_libraries} IfcGeom - ARCHIVE DESTINATION ${LIBDIR} - LIBRARY DESTINATION ${LIBDIR} - RUNTIME DESTINATION ${BINDIR} - ) -endif(BUILD_IFCGEOM) - -if(BUILD_CONVERT) - install(TARGETS Serializers ${SERIALIZER_SCHEMA_LIBRARIES} - ARCHIVE DESTINATION ${LIBDIR} - LIBRARY DESTINATION ${LIBDIR} - RUNTIME DESTINATION ${BINDIR} - ) - - install(FILES ${SERIALIZERS_H_FILES} - DESTINATION ${INCLUDEDIR}/serializers/ - ) - - install(FILES ${SERIALIZERS_S_H_FILES} - DESTINATION ${INCLUDEDIR}/serializers/schema_dependent - ) -endif(BUILD_CONVERT) - -if(BUILD_CONVERT OR BUILD_IFCPYTHON) - if(WITH_OPENCASCADE) - install(TARGETS geometry_serializer ${geometry_serializer_libraries} - ARCHIVE DESTINATION ${LIBDIR} - LIBRARY DESTINATION ${LIBDIR} - RUNTIME DESTINATION ${BINDIR} - ) - endif() -endif(BUILD_CONVERT OR BUILD_IFCPYTHON) - # Cmake uninstall target if(NOT TARGET uninstall) configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" - IMMEDIATE @ONLY) + IMMEDIATE + @ONLY + ) - add_custom_target(uninstall - COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) + add_custom_target(uninstall COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) endif() # Packaging -list(APPEND CPACK_SOURCE_IGNORE_FILES - "/\\\\.git" - "/build/" - "/.pytest_cache/" - "/__pycache__/" -) +list(APPEND CPACK_SOURCE_IGNORE_FILES "/\\\\.git" "/build/" "/.pytest_cache/" "/__pycache__/") set(CPACK_SOURCE_INSTALLED_DIRECTORIES "${CMAKE_SOURCE_DIR}/..;/") -set(CPACK_PACKAGE_NAME "${PROJECT_NAME}-${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}${EXTRA_VERSION}") +set(CPACK_PACKAGE_NAME + "${PROJECT_NAME}-${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}${EXTRA_VERSION}" +) set(CPACK_SOURCE_PACKAGE_FILE_NAME "${PROJECT_NAME}-${PROJECT_VERSION}${EXTRA_VERSION}") -SET(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}${EXTRA_VERSION}-${CMAKE_SYSTEM_NAME}") +set(CPACK_PACKAGE_FILE_NAME + "${PROJECT_NAME}-${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}${EXTRA_VERSION}-${CMAKE_SYSTEM_NAME}" +) set(CPACK_PACKAGE_DIRECTORY "${PROJECT_BINARY_DIR}/assets") set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "IfcOpenShell") set(CPACK_PACKAGE_DESCRIPTION "IfcOpenShell.") @@ -1424,6 +715,7 @@ set(CPACK_PACKAGE_VERSION_PATCH "${PROJECT_VERSION_PATCH}") set(CPACK_GENERATOR "TGZ;DEB") set(CPACK_SOURCE_GENERATOR "TGZ") +set(BOOST_DEPS "") foreach(COMPONENT IN ITEMS ${BOOST_COMPONENTS}) string(REPLACE "_" "-" COMP ${COMPONENT}) set(BOOST_DEPS "${BOOST_DEPS}, libboost-${COMP}-dev") @@ -1431,13 +723,19 @@ endforeach(COMPONENT) set(CPACK_DEBIAN_PACKAGE_NAME "${PROJECT_NAME}") set(CPACK_DEBIAN_PACKAGE_MAINTAINER "${CPACK_PACKAGE_CONTACT}") -set(CPACK_DEBIAN_PACKAGE_DEPENDS "python3, libxml2, libocct-foundation-dev, libocct-modeling-algorithms-dev, libocct-modeling-data-dev, libocct-ocaf-dev, libocct-visualization-dev, libocct-data-exchange-dev, libhdf5-serial-dev, libpython3-dev, python3-pytest ${BOOST_DEPS}") +set(CPACK_DEBIAN_PACKAGE_DEPENDS + "python3, libxml2, libocct-foundation-dev, libocct-modeling-algorithms-dev, libocct-modeling-data-dev, libocct-ocaf-dev, libocct-visualization-dev, libocct-data-exchange-dev, libhdf5-serial-dev, libpython3-dev, python3-pytest ${BOOST_DEPS}" +) set(CPACK_DEBIAN_PACKAGE_DESCRIPTION_SUMMARY "${CPACK_PACKAGE_DESCRIPTION_SUMMARY}") set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "${CPACK_PACKAGE_DESCRIPTION}") set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional") set(CPACK_DEBIAN_PACKAGE_SECTION "science") -set(CPACK_DEBIAN_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}${EXTRA_VERSION}") +set(CPACK_DEBIAN_PACKAGE_VERSION + "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}${EXTRA_VERSION}" +) set(CPACK_DEBIAN_ARCHITECTURE "${CMAKE_SYSTEM_PROCESSOR}") # set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_SOURCE_DIR}/cmake/debian/postinst") include(CPack) + +include(package_export.cmake) diff --git a/cmake/CMakePresets.json b/cmake/CMakePresets.json index 9c10495ad3..5bd4a18635 100644 --- a/cmake/CMakePresets.json +++ b/cmake/CMakePresets.json @@ -17,7 +17,6 @@ "IFCXML_SUPPORT": "ON", "HDF5_SUPPORT": "ON", "SCHEMA_VERSIONS": "4x3_add2", - "CITYJSON_SUPPORT": "OFF", "CMAKE_GENERATOR_PLATFORM": "", "CMAKE_GENERATOR_TOOLSET": "" } diff --git a/cmake/FindCGAL.cmake b/cmake/FindCGAL.cmake new file mode 100644 index 0000000000..0b789d5f03 --- /dev/null +++ b/cmake/FindCGAL.cmake @@ -0,0 +1,68 @@ +# +# Input variables: +# - `CGAL_INCLUDE_DIR` +# - `CGAL_LIBRARY_DIR` +# - `GMP_INCLUDE_DIR` +# - `GMP_LIBRARY_DIR` +# - `MPFR_INCLUDE_DIR` +# - `MPFR_LIBRARY_DIR` +# If input variables are not specified, try to find HDF5 config. +# Input variables could also be provided as environment variables. +# +# Output targets: +# - `IFCOPENSHELL_CGAL` +# + +if(TARGET IFCOPENSHELL_CGAL) + return() +endif() + +UNIFY_ENVVARS_AND_CACHE(CGAL_INCLUDE_DIR) +UNIFY_ENVVARS_AND_CACHE(CGAL_LIBRARY_DIR) +UNIFY_ENVVARS_AND_CACHE(GMP_INCLUDE_DIR) +UNIFY_ENVVARS_AND_CACHE(GMP_LIBRARY_DIR) +UNIFY_ENVVARS_AND_CACHE(MPFR_INCLUDE_DIR) +UNIFY_ENVVARS_AND_CACHE(MPFR_LIBRARY_DIR) + +if(CGAL_INCLUDE_DIR) + find_library(libGMP NAMES gmp mpir PATHS ${GMP_LIBRARY_DIR} NO_DEFAULT_PATH) + find_library(libMPFR NAMES mpfr PATHS ${MPFR_LIBRARY_DIR} NO_DEFAULT_PATH) + if(NOT libGMP) + message(FATAL_ERROR "Unable to find GMP library files, aborting") + endif() + if(NOT libMPFR) + message(FATAL_ERROR "Unable to find MPFR library files, aborting") + endif() + + add_library(CGAL::CGAL INTERFACE IMPORTED) + target_include_directories(CGAL::CGAL INTERFACE "${CGAL_INCLUDE_DIR}") + target_include_directories(CGAL::CGAL INTERFACE "${GMP_INCLUDE_DIR}" "${MPFR_INCLUDE_DIR}") + target_link_libraries(CGAL::CGAL INTERFACE "${libMPFR}" "${libGMP}") +else() + # CGAL is not respecting default Boost_USE_STATIC_LIBS value + # and sometiems it's getting in the way. + if(NOT DEFINED Boost_USE_STATIC_LIBS) + set(CGAL_Boost_USE_STATIC_LIBS OFF) + else() + set(CGAL_Boost_USE_STATIC_LIBS "${Boost_USE_STATIC_LIBS}") + endif() + # Annoyingly this is producing CMP0167 boost warnings, because it's unsetting cmake policies + # and using FindBoost module. But there's nothing we can do about it, + # since everything happens in the scope of CGAL config. I guess it's be resolved in CGAL 6.1.0. + find_package(CGAL CONFIG) + if(NOT CGAL_FOUND) + message( + FATAL_ERROR + "CGAL_SUPPORT enabled, but CGAL_INCLUDE_DIR wasn't provided and CGAL package couldn't be found." + ) + endif() + message(STATUS "CGAL: found config at '${CGAL_DIR}'.") +endif() + +# Adding another `IFCOPENSHELL_CGAL` target, because we want to add compile definitions to it, +# but in `CGALconfig.cmake` `CGAL::CGAL` is an alias, so you can't add properties to it. +add_library(IFCOPENSHELL_CGAL INTERFACE) +target_link_libraries(IFCOPENSHELL_CGAL INTERFACE CGAL::CGAL) +target_compile_definitions(IFCOPENSHELL_CGAL INTERFACE IFOPSH_WITH_CGAL) +set(SWIG_DEFINES ${SWIG_DEFINES} -DIFOPSH_WITH_CGAL) +install(TARGETS IFCOPENSHELL_CGAL EXPORT ${IFCOPENSHELL_EXPORT_TARGETS}) diff --git a/cmake/FindEigen3.cmake b/cmake/FindEigen3.cmake new file mode 100644 index 0000000000..e886310e89 --- /dev/null +++ b/cmake/FindEigen3.cmake @@ -0,0 +1,27 @@ +# +# Input variables: +# - `EIGEN_DIR` +# If input variables are not specified, try to find Eigen3 config. +# Input variables could also be provided as environment variables. +# +# Output targets: +# - `Eigen3::Eigen` + +UNIFY_ENVVARS_AND_CACHE(EIGEN_DIR) + +if(EXISTS "${EIGEN_DIR}") + # Mimic Eigen3Config.cmake target. + add_library(Eigen3::Eigen INTERFACE IMPORTED) + target_include_directories(Eigen3::Eigen INTERFACE "${EIGEN_DIR}") +else() + find_package(Eigen3 CONFIG) + if(Eigen3_DIR) + message(STATUS "Eigen3: found config at '${Eigen3_DIR}'.") + else() + message( + FATAL_ERROR + "EIGEN_DIR is not provided or provided folder doesn't exist (current value: '${EIGEN_DIR}'). " + "Also couldn't find Eigen3 as a package." + ) + endif() +endif() diff --git a/cmake/HDF5Config.cmake b/cmake/FindHDF5.cmake similarity index 81% rename from cmake/HDF5Config.cmake rename to cmake/FindHDF5.cmake index f4ffe492f8..399b1c9f13 100644 --- a/cmake/HDF5Config.cmake +++ b/cmake/FindHDF5.cmake @@ -1,13 +1,31 @@ -# To avoid cyclic calls to this file -list(REMOVE_ITEM CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}) +# +# Input variables: +# - `HDF5_INCLUDE_DIR` +# - `HDF5_LIBRARY_DIR` +# - `HDF5_LIBRARIES` +# If input variables are not specified, try to find HDF5 config. +# Input variables could also be provided as environment variables. +# +# Output variables: +# - `HDF5_INCLUDE_DIR` +# - `HDF5_LIBRARY_DIR` +# - `HDF5_LIBRARIES` +# -if("${HDF5_INCLUDE_DIR}" STREQUAL "") +UNIFY_ENVVARS_AND_CACHE(HDF5_INCLUDE_DIR) +UNIFY_ENVVARS_AND_CACHE(HDF5_LIBRARY_DIR) +UNIFY_ENVVARS_AND_CACHE(HDF5_LIBRARIES) + +# To avoid cyclic calls to this file +list(REMOVE_ITEM CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}) + +if(NOT HDF5_INCLUDE_DIR) message(STATUS "No HDF5 include directory specified") else() set(HDF5_INCLUDE_DIR "${HDF5_INCLUDE_DIR}" CACHE FILEPATH "HDF5 header files") endif() -if("${HDF5_LIBRARY_DIR}" STREQUAL "") +if(NOT HDF5_LIBRARY_DIR) message(STATUS "No HDF5 library directory specified") else() set(HDF5_LIBRARY_DIR "${HDF5_LIBRARY_DIR}" CACHE FILEPATH "HDF5 library files") @@ -17,7 +35,7 @@ if(HDF5_LIBRARY_DIR) # result of the HDF5 ctest package # Find zlib using cmake find_library. How should this be implemented? # FIND_LIBRARY(NAMES z libz libz_debug PATHS ... NO_DEFAULT_PATH) - if("$ENV{CONDA_BUILD}" STREQUAL "") + if(NOT DEFINED ENV{CONDA_BUILD}) # result of the HDF5 ctest package if(WIN32) set(zlib_post lib) @@ -37,7 +55,6 @@ if(HDF5_LIBRARY_DIR) "${HDF5_LIBRARY_DIR}/libsz${debug_postfix}.${lib_ext}" "${HDF5_LIBRARY_DIR}/libaec${debug_postfix}.${lib_ext}" ) - else() message(STATUS "Packaging hdf5 and zlib for conda distribution") @@ -68,6 +85,7 @@ endif() if(NOT HDF5_INCLUDE_DIR OR NOT HDF5_LIBRARY_DIR) # First try to find it as a config. find_package(HDF5 CONFIG) + mark_as_advanced(HDF5_DIR) if(HDF5_DIR) message(STATUS "HDF5: found config at '${HDF5_DIR}'.") set(HDF5_LIBRARIES hdf5_cpp-static) @@ -86,3 +104,6 @@ if(NOT HDF5_INCLUDE_DIR OR NOT HDF5_LIBRARY_DIR) endif() endif() endif() + +# Restore module path. +list(PREPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}) diff --git a/cmake/FindLibXml2.cmake b/cmake/FindLibXml2.cmake new file mode 100644 index 0000000000..3aa4c5efeb --- /dev/null +++ b/cmake/FindLibXml2.cmake @@ -0,0 +1,47 @@ +# +# Input variables: +# - `LIBXML2_INCLUDE_DIR` +# - `LIBXML2_LIBRARIES` +# If input variables are not specified, try to find LibXml2 config. +# Input variables could also be provided as environment variables. +# +# Output targets: +# - `LibXml2::LibXml2` +# + +# To avoid cyclic calls to this file +list(REMOVE_ITEM CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}) + +UNIFY_ENVVARS_AND_CACHE(LIBXML2_INCLUDE_DIR) +UNIFY_ENVVARS_AND_CACHE(LIBXML2_LIBRARIES) + +if((NOT LIBXML2_INCLUDE_DIR AND NOT LIBXML2_LIBRARIES)) + # First try config mode (probably works with vcpkg, Conan, macOS brew installs, but not on ubuntu 22.04) + # CONFIG is provided using root path, so no need to clear sysroot here. + find_package(LibXml2 QUIET CONFIG) + + if(NOT LibXml2_FOUND) + # Fallback to CMake's builtin FindLibXml2 module (works on Ubuntu) + find_package(LibXml2 REQUIRED) + else() + message(STATUS "Found LibXml2 config: ${LibXml2_DIR}") + endif() +else() + find_package(LibXml2 REQUIRED) + if(MSVC) + # Unset `IMPORTED_LOCATION` and set it manually. + set_property(TARGET LibXml2::LibXml2 PROPERTY IMPORTED_LOCATION) + get_release_variant(LIBXML2_RELEASE_LIB "${LIBXML2_LIBRARIES}" "d") + get_debug_variant(LIBXML2_DEBUG_LIB "${LIBXML2_LIBRARIES}" "d") + set_target_properties( + LibXml2::LibXml2 + PROPERTIES + IMPORTED_CONFIGURATIONS "Release;Debug" + IMPORTED_LOCATION_RELEASE "${LIBXML2_RELEASE_LIB}" + IMPORTED_LOCATION_DEBUG "${LIBXML2_DEBUG_LIB}" + ) + endif() +endif() + +# Restore module path. +list(PREPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}) diff --git a/cmake/FindOpenCASCADE.cmake b/cmake/FindOpenCASCADE.cmake new file mode 100644 index 0000000000..f78ee33b99 --- /dev/null +++ b/cmake/FindOpenCASCADE.cmake @@ -0,0 +1,180 @@ +# +# Input variables: +# - `OCC_INCLUDE_DIR` +# - `OCC_LIBRARY_DIR` +# If input variables are not specified, try to find OpenCASCADE config. +# Input variables could also be provided as environment variables. +# +# Output variables +# - `OpenCASCADE_LIBRARIES` +# + +UNIFY_ENVVARS_AND_CACHE(OCC_INCLUDE_DIR) +UNIFY_ENVVARS_AND_CACHE(OCC_LIBRARY_DIR) + +if(OCC_INCLUDE_DIR) + set(OCC_INCLUDE_DIR ${OCC_INCLUDE_DIR} CACHE FILEPATH "Open CASCADE header files") + message(STATUS "Looking for Open CASCADE include files in: ${OCC_INCLUDE_DIR}") +endif() + +if(OCC_LIBRARY_DIR) + set(OCC_LIBRARY_DIR ${OCC_LIBRARY_DIR} CACHE FILEPATH "Open CASCADE library files") + message(STATUS "Looking for Open CASCADE library files in: ${OCC_LIBRARY_DIR}") +endif() + +if(NOT OCC_INCLUDE_DIR AND NOT OCC_LIBRARY_DIR) + # OCE is not supported for find_package, because it's using a different name (`oce`) + # and also has an odd directory structure (install/lib/oce-0.18/*.cmake). + # find_package creates variables: + # - `OpenCASCADE_INCLUDE_DIR` + # - `OpenCASCADE_LIBRARIES` + + # OpenCASCADE may be built with VTK support. Try to find VTK first to avoid + # CMake errors when OpenCASCADE's config references VTK targets. + find_package(VTK QUIET) + mark_as_advanced(VTK_DIR) + + find_package(OpenCASCADE CONFIG REQUIRED) + mark_as_advanced(OpenCASCADE_DIR) + message(STATUS "Found OpenCASCADE config: ${OpenCASCADE_DIR}") + + if(OpenCASCADE_VERSION VERSION_LESS "7.7.0") + # cmake configs < 7.7.0 were not adding include directories to targets automatically. + set_target_properties(TKernel PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${OpenCASCADE_INCLUDE_DIR}") + endif() + + if(OpenCASCADE_VERSION VERSION_LESS "7.9.0" AND WIN32) + # Bug in OCCT cmake configs < 7.9.0 - missing linked library. + list(APPEND OpenCASCADE_LIBRARIES WSOCK32.lib) + endif() + + return() +endif() + +# No specific paths specified, try to find package. +if(OCC_INCLUDE_DIR AND OCC_LIBRARY_DIR) + message( + STATUS + "Using provided OCC_INCLUDE_DIR ('${OCC_INCLUDE_DIR}') " + "and OCC_LIBRARY_DIR ('${OCC_LIBRARY_DIR}')." + ) + # Parse OCC_VERSION_STRING. + file(STRINGS ${OCC_INCLUDE_DIR}/Standard_Version.hxx OCC_MAJOR REGEX "#define OCC_VERSION_MAJOR.*") + string(REGEX MATCH "[0-9]+" OCC_MAJOR ${OCC_MAJOR}) + file(STRINGS ${OCC_INCLUDE_DIR}/Standard_Version.hxx OCC_MINOR REGEX "#define OCC_VERSION_MINOR.*") + string(REGEX MATCH "[0-9]+" OCC_MINOR ${OCC_MINOR}) + file(STRINGS ${OCC_INCLUDE_DIR}/Standard_Version.hxx OCC_MAINT REGEX "#define OCC_VERSION_MAINTENANCE.*") + string(REGEX MATCH "[0-9]+" OCC_MAINT ${OCC_MAINT}) + set(OCC_VERSION_STRING "${OCC_MAJOR}.${OCC_MINOR}.${OCC_MAINT}") +else() + message( + FATAL_ERROR + "Couldn't find Open CASCADE installation. " + "Either both OCC_INCLUDE_DIR ('${OCC_INCLUDE_DIR}') and OCC_LIBRARY_DIR ('${OCC_LIBRARY_DIR}') " + "must be specified or OpenCASCADE package should be discoverable. " + "If you're using OCE, then providing a package is not available " + "and you need to provide OCE_INCLUDE_DIR and OCE_LIBRARY_DIR directly." + ) +endif() + +set(OpenCASCADE_LIBRARIES + TKernel + TKMath + TKBRep + TKGeomBase + TKGeomAlgo + TKG3d + TKG2d + TKShHealing + TKTopAlgo + TKMesh + TKPrim + TKBool + TKBO + TKFillet + TKXSBase + TKOffset + TKHLR + # @todo investigate the exact conditions when this is necessary + TKBin +) + +if(OCC_VERSION_STRING VERSION_LESS 7.8.0) + list( + APPEND OpenCASCADE_LIBRARIES + TKIGES + TKSTEPBase + TKSTEPAttr + TKSTEP209 + TKSTEP + ) +else(OCC_VERSION_STRING VERSION_LESS 7.8.0) + list(APPEND OpenCASCADE_LIBRARIES TKDESTEP TKDEIGES) +endif(OCC_VERSION_STRING VERSION_LESS 7.8.0) + +find_library(libTKernel NAMES TKernel TKerneld PATHS ${OCC_LIBRARY_DIR} NO_DEFAULT_PATH) + +if(libTKernel) + message(STATUS "Required Open Cascade Library files found") +else() + message(FATAL_ERROR "Unable to find Open Cascade library files in OCC_LIBRARY_DIR ('${OCC_LIBRARY_DIR}'), aborting") +endif() + +if(MSVC) + add_definitions(-DHAVE_NO_DLL) + add_debug_variants(OpenCASCADE_LIBRARIES "${OpenCASCADE_LIBRARIES}" d) +endif() + +if(WIN32) + # OCC might require linking to Winsock depending on the version and build configuration + list(APPEND OpenCASCADE_LIBRARIES ws2_32.lib) +endif() + +# Make sure cross-referenced symbols between static OCC libraries get +# resolved. Also add thread and rt libraries. +get_filename_component(libTKernelExt ${libTKernel} EXT) +if("${libTKernelExt}" STREQUAL ".a") + set(OCCT_STATIC ON) +endif() + +if(OCCT_STATIC) + find_package(Threads) + + if(WASM_BUILD) + set(OpenCASCADE_LIBRARIES ${OpenCASCADE_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) + else() + # OpenCASCADE_LIBRARIES repeated N times below in order to fix cyclic dependencies + # tfk: --start-group ... --end-group didn't work on the apple linker when last tested + if(APPLE) + set(OpenCASCADE_LIBRARIES + ${OpenCASCADE_LIBRARIES} + ${OpenCASCADE_LIBRARIES} + ${OpenCASCADE_LIBRARIES} + ${OpenCASCADE_LIBRARIES} + ${OpenCASCADE_LIBRARIES} + ${CMAKE_THREAD_LIBS_INIT} + ) + else() + set(OpenCASCADE_LIBRARIES + -Wl,--start-group + ${OpenCASCADE_LIBRARIES} + -Wl,--end-group + ${CMAKE_THREAD_LIBS_INIT} + ) + endif() + endif() + + if(NOT APPLE AND NOT WIN32) + set(OpenCASCADE_LIBRARIES ${OpenCASCADE_LIBRARIES} "rt") + endif() + if(NOT WIN32) + set(OpenCASCADE_LIBRARIES ${OpenCASCADE_LIBRARIES} "dl") + endif() +endif() + +add_library(OpenCASCADE_INTERFACE INTERFACE) +target_include_directories(OpenCASCADE_INTERFACE INTERFACE "${OCC_INCLUDE_DIR}") +target_link_libraries(OpenCASCADE_INTERFACE INTERFACE ${OpenCASCADE_LIBRARIES}) +target_link_directories(OpenCASCADE_INTERFACE INTERFACE "${OCC_LIBRARY_DIR}") +set(OpenCASCADE_LIBRARIES OpenCASCADE_INTERFACE) +install(TARGETS OpenCASCADE_INTERFACE EXPORT ${IFCOPENSHELL_EXPORT_TARGETS}) diff --git a/cmake/FindOpenCOLLADA.cmake b/cmake/FindOpenCOLLADA.cmake new file mode 100644 index 0000000000..f261f51e7d --- /dev/null +++ b/cmake/FindOpenCOLLADA.cmake @@ -0,0 +1,145 @@ +# +# Input variables: +# - `OPENCOLLADA_INCLUDE_DIR` +# - `OPENCOLLADA_LIBRARY_DIR` +# - `PCRE_LIBRARY_DIR` +# If input variables are not specified, try to find OpenCOLLADA config. +# Input variables could also be provided as environment variables. +# +# Output variables: +# - `OPENCOLLADA_INCLUDE_DIR` +# - `OPENCOLLADA_LIBRARY_DIR` +# - `OPENCOLLADA_LIBRARIES` +# + +UNIFY_ENVVARS_AND_CACHE(OPENCOLLADA_INCLUDE_DIR) +UNIFY_ENVVARS_AND_CACHE(OPENCOLLADA_LIBRARY_DIR) +UNIFY_ENVVARS_AND_CACHE(PCRE_LIBRARY_DIR) + +if(NOT OPENCOLLADA_INCLUDE_DIR AND NOT OPENCOLLADA_LIBRARY_DIR) + # If package is found, automatically sets + # OPENCOLLADA_INCLUDE_DIRS and OPENCOLLADA_LIBRARIES (list of targets, not paths). + find_package(OpenCOLLADA CONFIG) + mark_as_advanced(OpenCOLLADA_DIR) + if(OpenCOLLADA_DIR) + message(STATUS "Found OpenCOLLADA: '${OpenCOLLADA_DIR}'.") + set(OPENCOLLADA_FOUND TRUE) + else() + message(STATUS "OpenCOLLADA package not found, falling back to manual search.") + endif() +endif() + +if(NOT OpenCOLLADA_DIR) + # Find OpenCOLLADA + if("${OPENCOLLADA_INCLUDE_DIR}" STREQUAL "") + message(STATUS "No OpenCOLLADA include directory specified") + set(OPENCOLLADA_INCLUDE_DIR "/usr/include/opencollada" CACHE FILEPATH "OpenCOLLADA header files") + else() + set(OPENCOLLADA_INCLUDE_DIR "${OPENCOLLADA_INCLUDE_DIR}" CACHE FILEPATH "OpenCOLLADA header files") + endif() + + if("${OPENCOLLADA_LIBRARY_DIR}" STREQUAL "") + message(STATUS "No OpenCOLLADA library directory specified") + find_library( + OPENCOLLADA_FRAMEWORK_LIB + NAMES OpenCOLLADAFramework + PATHS /usr/lib64/opencollada /usr/lib/opencollada /usr/lib64 /usr/lib /usr/local/lib64 /usr/local/lib + ) + get_filename_component(OPENCOLLADA_LIBRARY_DIR ${OPENCOLLADA_FRAMEWORK_LIB} PATH) + endif() + + find_library( + OpenCOLLADAFramework + NAMES OpenCOLLADAFramework OpenCOLLADAFrameworkd + PATHS ${OPENCOLLADA_LIBRARY_DIR} + NO_DEFAULT_PATH + ) + + if(OpenCOLLADAFramework) + message(STATUS "OpenCOLLADA library files found") + else() + message( + FATAL_ERROR + "COLLADA_SUPPORT enabled, but unable to find OpenCOLLADA libraries. " + "Disable COLLADA_SUPPORT or fix OpenCOLLADA paths to proceed." + ) + endif() + + set(OPENCOLLADA_LIBRARY_DIR "${OPENCOLLADA_LIBRARY_DIR}" CACHE FILEPATH "OpenCOLLADA library files") + + set(OPENCOLLADA_INCLUDE_DIRS + "${OPENCOLLADA_INCLUDE_DIR}/COLLADABaseUtils" + "${OPENCOLLADA_INCLUDE_DIR}/COLLADAStreamWriter" + ) + + find_file(COLLADASWStreamWriter_h "COLLADASWStreamWriter.h" ${OPENCOLLADA_INCLUDE_DIRS}) + + if(COLLADASWStreamWriter_h) + message(STATUS "OpenCOLLADA header files found") + set(OPENCOLLADA_FOUND TRUE) + + set(OPENCOLLADA_LIBRARY_NAMES + GeneratedSaxParser + MathMLSolver + OpenCOLLADABaseUtils + OpenCOLLADAFramework + OpenCOLLADASaxFrameworkLoader + OpenCOLLADAStreamWriter + UTF + buffer + ftoa + ) + + # Use the found OpenCOLLADAFramework as a template for all other OpenCOLLADA libraries + foreach(lib ${OPENCOLLADA_LIBRARY_NAMES}) + # Make sure we'll handle the Windows/MSVC debug postfix convention too. + string(REPLACE OpenCOLLADAFrameworkd "${lib}" lib_path "${OpenCOLLADAFramework}") + string(REPLACE OpenCOLLADAFramework "${lib}" lib_path "${lib_path}") + list(APPEND OPENCOLLADA_LIBRARIES "${lib_path}") + endforeach() + + if("${PCRE_LIBRARY_DIR}" STREQUAL "") + if(WIN32) + find_library(pcre_library NAMES pcre pcred PATHS ${OPENCOLLADA_LIBRARY_DIR} NO_DEFAULT_PATH) + else() + find_library(pcre_library NAMES pcre PATHS ${OPENCOLLADA_LIBRARY_DIR}) + endif() + + get_filename_component(PCRE_LIBRARY_DIR ${pcre_library} PATH) + else() + find_library(pcre_library NAMES pcre pcred PATHS ${PCRE_LIBRARY_DIR} NO_DEFAULT_PATH) + endif() + + if(pcre_library) + set(OPENCOLLADA_LIBRARY_DIR ${OPENCOLLADA_LIBRARY_DIR} ${PCRE_LIBRARY_DIR}) + + if(MSVC) + # Add release lib regardless whether release or debug found. Debug version will be appended below. + list(APPEND OPENCOLLADA_LIBRARIES "${PCRE_LIBRARY_DIR}/pcre.lib") + else() + list(APPEND OPENCOLLADA_LIBRARIES "${pcre_library}") + endif() + else() + message( + FATAL_ERROR + "COLLADA_SUPPORT enabled, but unable to find PCRE. " + "Disable COLLADA_SUPPORT or fix PCRE_LIBRARY_DIR path to proceed." + ) + endif() + + if(MSVC) + add_debug_variants(OPENCOLLADA_LIBRARIES "${OPENCOLLADA_LIBRARIES}" d) + endif() + else() + message( + FATAL_ERROR + "COLLADA_SUPPORT enabled, but unable to find OpenCOLLADA headers. " + "Disable COLLADA_SUPPORT or fix OpenCOLLADA paths to proceed." + ) + endif() +endif(NOT OpenCOLLADA_DIR) + +if(OPENCOLLADA_FOUND) + add_definitions(-DWITH_OPENCOLLADA) + set(SWIG_DEFINES ${SWIG_DEFINES} -DWITH_OPENCOLLADA) +endif() diff --git a/cmake/FindPROJ.cmake b/cmake/FindPROJ.cmake new file mode 100644 index 0000000000..14829987c6 --- /dev/null +++ b/cmake/FindPROJ.cmake @@ -0,0 +1,56 @@ +# +# Input variables: +# - `PROJ_INCLUDE_DIR` +# - `PROJ_LIBRARIES` +# If input variables are not specified, try to find PROJ config. +# Input variables could also be provided as environment variables. +# +# Output targets: +# - `PROJ::proj` +# + +# To avoid cyclic calls to this file +list(REMOVE_ITEM CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}) + +UNIFY_ENVVARS_AND_CACHE(PROJ_INCLUDE_DIR) +UNIFY_ENVVARS_AND_CACHE(PROJ_LIBRARIES) + +if((NOT PROJ_INCLUDE_DIR AND NOT PROJ_LIBRARIES)) + find_package(PROJ QUIET CONFIG) + + if(NOT PROJ_FOUND) + find_path(PROJ_INCLUDE_DIR proj.h PATHS /usr/include/proj REQUIRED) + if(PROJ_INCLUDE_DIR) + message(STATUS "Found PROJ include files in: ${PROJ_INCLUDE_DIR}") + else() + message(FATAL_ERROR "Unable to find PROJ include directory, specify PROJ_INCLUDE_DIR manually.") + endif() + + find_library(PROJ_LIBRARY NAMES proj PATHS /usr/lib/x86_64-linux-gnu) + if(PROJ_LIBRARY) + message(STATUS "PROJ libraries ${PROJ_LIBRARY} found in: ${PROJ_LIBRARY_DIR}") + set(PROJ_LIBRARIES ${PROJ_LIBRARY}) + else() + message(FATAL_ERROR "Unable to find PROJ libraries in: ${PROJ_LIBRARY_DIR}") + endif() + + add_library(PROJ::proj INTERFACE IMPORTED) + target_include_directories(PROJ::proj INTERFACE "${PROJ_INCLUDE_DIR}") + target_link_libraries(PROJ::proj INTERFACE ${PROJ_LIBRARIES}) + target_link_directories(PROJ::proj INTERFACE "${PROJ_LIBRARY}") + endif() +else() + find_library(PROJ_LIBRARY NAMES proj PATHS ${PROJ_LIBRARY_DIR}) + if(PROJ_LIBRARY) + message(STATUS "PROJ libraries ${PROJ_LIBRARY} found in: ${PROJ_LIBRARY_DIR}") + set(PROJ_LIBRARIES ${PROJ_LIBRARY}) + else() + message(FATAL_ERROR "Unable to find PROJ libraries in: ${PROJ_LIBRARY_DIR}") + endif() + + set(PROJ_INCLUDE_DIR ${PROJ_INCLUDE_DIR} CACHE FILEPATH "PROJ header files") + message(STATUS "Looking for PROJ include files in: ${PROJ_INCLUDE_DIR}") + include_directories(${PROJ_INCLUDE_DIR}) +endif() + +list(PREPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}) diff --git a/cmake/FindUSD.cmake b/cmake/FindUSD.cmake new file mode 100644 index 0000000000..3616cca52c --- /dev/null +++ b/cmake/FindUSD.cmake @@ -0,0 +1,86 @@ +# +# Input variables: +# - `USD_INCLUDE_DIR` +# - `USD_LIBRARY_DIR` +# - `TBB_INCLUDE_DIR` +# - `TBB_LIBRARY_DIR` +# Input variables could also be provided as environment variables. +# If `USD_INCLUDE_DIR` and `USD_LIBRARY_DIR` are not provided, +# try to find USD by locating its config file. +# +# Output targets: +# - `pxr::USD` + +UNIFY_ENVVARS_AND_CACHE(USD_INCLUDE_DIR) +UNIFY_ENVVARS_AND_CACHE(USD_LIBRARY_DIR) +UNIFY_ENVVARS_AND_CACHE(TBB_INCLUDE_DIR) +UNIFY_ENVVARS_AND_CACHE(TBB_LIBRARY_DIR) + +if(NOT USD_LIBRARY_DIR AND NOT USD_INCLUDE_DIR) + find_package(pxr CONFIG) + if(pxr_FOUND) + add_library(pxr::USD INTERFACE IMPORTED) + target_link_libraries(pxr::USD INTERFACE ${PXR_LIBRARIES}) + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(USD REQUIRED_VARS pxr_DIR) + return() + endif() +endif() + +if(NOT USD_INCLUDE_DIR) + find_path(USD_INCLUDE_DIR pxr.h PATHS /usr/include/pxr /usr/local/include/pxr REQUIRED) + if(USD_INCLUDE_DIR) + message(STATUS "Found USD include files in: ${USD_INCLUDE_DIR}") + else() + message(FATAL_ERROR "Unable to find USD include directory, specify USD_INCLUDE_DIR manually.") + endif() +else() + set(USD_INCLUDE_DIR ${USD_INCLUDE_DIR} CACHE FILEPATH "USD header files") + message(STATUS "Looking for USD include files in: ${USD_INCLUDE_DIR}") +endif() + +set(USD_LIBRARIES + usd_usd + usd_usdGeom + usd_usdShade + usd_usdLux + usd_vt + usd_sdf + usd_tf + usd_gf + usd_kind + usd_pcp + usd_arch + usd_ar + usd_plug + usd_js + usd_sdr + usd_work + usd_trace + usd_ndr + usd_ts +) + +find_library(USD_LIBRARY NAMES ${USD_LIBRARIES} PATHS ${USD_LIBRARY_DIR}) +if(USD_LIBRARY) + message(STATUS "USD libraries ${USD_LIBRARIES} found in: ${USD_LIBRARY_DIR}") + link_directories(${USD_LIBRARY_DIR}) +else() + message(FATAL_ERROR "Unable to find USD libraries in: ${USD_LIBRARY_DIR}") +endif() + +add_library(pxr::USD INTERFACE IMPORTED) +target_link_directories(pxr::USD INTERFACE ${USD_LIBRARY_DIR} ${TBB_LIBRARY_DIR}) +target_include_directories(pxr::USD INTERFACE ${USD_INCLUDE_DIR} ${TBB_INCLUDE_DIR}) + +# We don't link TBB libraries - on Windows they're provided using `pragma(lib)`. +# On Unix there's no `pragma(lib)`, so in theory it will break. +target_link_libraries(pxr::USD INTERFACE ${USD_LIBRARIES}) + +if(MSVC) + target_link_libraries(pxr::USD INTERFACE debug DbgHelp.lib) +endif() + +target_compile_definitions(pxr::USD INTERFACE PXR_STATIC WITH_USD) + +set(SWIG_DEFINES ${SWIG_DEFINES} -DWITH_USD) diff --git a/cmake/Findnlohmann_json.cmake b/cmake/Findnlohmann_json.cmake new file mode 100644 index 0000000000..172cb4a4f5 --- /dev/null +++ b/cmake/Findnlohmann_json.cmake @@ -0,0 +1,30 @@ +# +# Input variables: +# - `JSON_INCLUDE_DIR` +# If input variables are not specified, try to find nlohmann_json config. +# Input variables could also be provided as environment variables. +# +# Output targets: +# - `nlohmann_json::nlohmann_json` + +UNIFY_ENVVARS_AND_CACHE(JSON_INCLUDE_DIR) + +if(NOT JSON_INCLUDE_DIR) + find_package(nlohmann_json CONFIG) + mark_as_advanced(nlohmann_json) + if(nlohmann_json_DIR) + return() + endif() +endif() + +find_path(json_header_path "nlohmann/json.hpp" HINTS "${JSON_INCLUDE_DIR}") +mark_as_advanced(json_header_path) + +if(json_header_path) + message(STATUS "JSON for Modern C++ header file found in '${json_header_path}'.") + add_library(nlohmann_json::nlohmann_json INTERFACE IMPORTED) + target_include_directories(nlohmann_json::nlohmann_json INTERFACE ${json_header_path}) + return() +endif() + +message(FATAL_ERROR "Unable to find JSON for Modern C++ header file / package, aborting") diff --git a/cmake/IfcOpenShellConfig.cmake.in b/cmake/IfcOpenShellConfig.cmake.in new file mode 100644 index 0000000000..e5e5d350b8 --- /dev/null +++ b/cmake/IfcOpenShellConfig.cmake.in @@ -0,0 +1,63 @@ +@PACKAGE_INIT@ + +# Variable to inspect installed schema versions. +set(IFCOPENSHELL_SCHEMA_VERSIONS @SCHEMA_VERSIONS@) + +set(IFCOPENSHELL_WITH_OPENCASCADE @WITH_OPENCASCADE@) +set(IFCOPENSHELL_WITH_CGAL @WITH_CGAL@) +set(IFCOPENSHELL_IFCXML @IFCXML_SUPPORT@) +set(IFCOPENSHELL_WITH_ROCKSDB @WITH_ROCKSDB@) + +include(CMakeFindDependencyMacro) + +set(Boost_USE_STATIC_LIBS ON) +set(Boost_USE_STATIC_RUNTIME OFF) +set(Boost_USE_MULTITHREADED ON) +set(Boost_COMPONENTS + system + program_options + regex + thread + date_time + iostreams +) +find_dependency(Boost CONFIG COMPONENTS ${Boost_COMPONENTS}) +find_dependency(Eigen3 CONFIG) + +if(IFCOPENSHELL_WITH_ROCKSDB) + find_dependency(zstd CONFIG) + + # Temporaily mess with CMAKE_FIND_PACKAGE_PREFER_CONFIG to help RocksDB + # find it's zstd dependency on Windows. + # Only do it on Windows, otherwise it might create problems as + # findzstd and zstd-config target names do not match. + # https://github.com/facebook/rocksdb/pull/13975 + if(WIN32) + set(TEMP CMAKE_FIND_PACKAGE_PREFER_CONFIG) + set(CMAKE_FIND_PACKAGE_PREFER_CONFIG TRUE) + endif() + find_dependency(RocksDB CONFIG) + if(WIN32) + set(CMAKE_FIND_PACKAGE_PREFER_CONFIG ${TEMP}) + endif() +endif() + +if(IFCOPENSHELL_IFCXML) + find_dependency(LibXml2 CONFIG) +endif() + +if(IFCOPENSHELL_WITH_CGAL) + find_dependency(CGAL CONFIG) +endif() + +if(IFCOPENSHELL_WITH_OPENCASCADE) + find_dependency(OpenCASCADE CONFIG) + if(OpenCASCADE_VERSION VERSION_LESS "7.7.0") + # cmake configs < 7.7.0 were not adding include directories to targets automatically. + set_target_properties(TKernel PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${OpenCASCADE_INCLUDE_DIR}") + endif() +endif() + +include("${CMAKE_CURRENT_LIST_DIR}/@CONFIG_TARGETS_FILENAME@") + +check_required_components("@PROJECT_NAME@") diff --git a/cmake/cmake_uninstall.cmake.in b/cmake/cmake_uninstall.cmake.in index 04da07edd6..aa91cd810d 100644 --- a/cmake/cmake_uninstall.cmake.in +++ b/cmake/cmake_uninstall.cmake.in @@ -25,19 +25,12 @@ file(READ "@CMAKE_BINARY_DIR@/install_manifest.txt" files) string(REGEX REPLACE "\n" ";" files "${files}") foreach(file ${files}) - message(STATUS "Uninstalling $ENV{DESTDIR}${file}") + set(filepath "$ENV{DESTDIR}${file}") + message(STATUS "Uninstalling ${filepath}") - if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") - exec_program( - "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" - OUTPUT_VARIABLE rm_out - RETURN_VALUE rm_retval - ) - - if(NOT "${rm_retval}" STREQUAL 0) - message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}") - endif() - else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") - message(STATUS "File $ENV{DESTDIR}${file} does not exist.") + if(IS_SYMLINK "${filepath}" OR EXISTS "${filepath}") + file(REMOVE "${filepath}") + else(NOT EXISTS "${filepath}") + message(STATUS "File ${filepath} does not exist.") endif() endforeach() diff --git a/cmake/package_export.cmake b/cmake/package_export.cmake new file mode 100644 index 0000000000..cce10ed0b5 --- /dev/null +++ b/cmake/package_export.cmake @@ -0,0 +1,22 @@ +set(CONFIG_PACKAGE_LOCATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}") +set(CONFIG_NAMESPACE "${PROJECT_NAME}") +set(CONFIG_TARGETS_FILENAME ${PROJECT_NAME}Targets.cmake) +set(CONFIG_VERSION_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake") +set(CONFIG_PACKAGE_INPUT "${PROJECT_SOURCE_DIR}/${PROJECT_NAME}Config.cmake.in") +set(CONFIG_PACKAGE_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake") + +# Allow linking against build directory. +export(EXPORT ${IFCOPENSHELL_EXPORT_TARGETS} FILE ${CONFIG_TARGETS_FILENAME} NAMESPACE ${CONFIG_NAMESPACE}::) + +install(EXPORT ${IFCOPENSHELL_EXPORT_TARGETS} NAMESPACE ${CONFIG_NAMESPACE}:: DESTINATION "${CONFIG_PACKAGE_LOCATION}") + +include(CMakePackageConfigHelpers) +write_basic_package_version_file(${CONFIG_VERSION_OUTPUT} COMPATIBILITY ExactVersion) + +configure_package_config_file( + ${CONFIG_PACKAGE_INPUT} + ${CONFIG_PACKAGE_OUTPUT} + INSTALL_DESTINATION ${CONFIG_PACKAGE_LOCATION} +) + +install(FILES "${CONFIG_PACKAGE_OUTPUT}" "${CONFIG_VERSION_OUTPUT}" DESTINATION ${CONFIG_PACKAGE_LOCATION}) diff --git a/cmake/utilities.cmake b/cmake/utilities.cmake index 590c5e5c1d..3e8877c724 100644 --- a/cmake/utilities.cmake +++ b/cmake/utilities.cmake @@ -19,8 +19,9 @@ # Create a cache entry if absent for environment variables macro(UNIFY_ENVVARS_AND_CACHE VAR) - if((NOT DEFINED ${VAR}) AND(NOT "$ENV{${VAR}}" STREQUAL "")) + if(NOT DEFINED ${VAR} AND DEFINED ENV{${VAR}} AND NOT ENV{${VAR}} STREQUAL "") set(${VAR} "$ENV{${VAR}}" CACHE STRING "${VAR}" FORCE) + mark_as_advanced(${VAR}) endif() endmacro() @@ -113,6 +114,30 @@ function(add_debug_variants NAME LIBRARIES POSTFIX) set(${NAME} ${LIBRARIES} PARENT_SCOPE) endfunction() +# E.g. +# - `get_release_variant(MYLIB "mylibd.lib" "d")` -> `MYLIB = "mylib.lib"` +# - `get_release_variant(MYLIB "mylib.lib" "d")` -> `MYLIB = "mylib.lib"` +function(get_release_variant NAME LIBRARY POSTFIX) + set(RELEASE_SUFFIX ".lib") + set(DEBUG_SUFFIX "${POSTFIX}${RELEASE_SUFFIX}") + if("${LIBRARY}" MATCHES "${DEBUG_SUFFIX}$") + string(REPLACE "${DEBUG_SUFFIX}" "${RELEASE_SUFFIX}" LIBRARY ${LIBRARY}) + endif() + set(${NAME} "${LIBRARY}" PARENT_SCOPE) +endfunction() + +# E.g. +# - `get_debug_variant(MYLIB "mylib.lib" "d")` -> `MYLIB = "mylibd.lib"` +# - `get_debug_variant(MYLIB "mylibd.lib" "d")` -> `MYLIB = "mylibd.lib"` +function(get_debug_variant NAME LIBRARY POSTFIX) + set(RELEASE_SUFFIX ".lib") + set(DEBUG_SUFFIX "${POSTFIX}${RELEASE_SUFFIX}") + if(NOT "${LIBRARY}" MATCHES "${DEBUG_SUFFIX}$" AND "${LIBRARY}" MATCHES "${RELEASE_SUFFIX}$") + string(REPLACE "${RELEASE_SUFFIX}" "${DEBUG_SUFFIX}" LIBRARY ${LIBRARY}) + endif() + set(${NAME} "${LIBRARY}" PARENT_SCOPE) +endfunction() + function(files_for_ifc_version IFC_VERSION RESULT_NAME) set(IFC_PARSE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../src/ifcparse) set(${RESULT_NAME} diff --git a/conda/build.bat b/conda/build.bat index 388e5cd746..242bc7d683 100644 --- a/conda/build.bat +++ b/conda/build.bat @@ -9,7 +9,6 @@ set LIBXML2="%LIBRARY_PREFIX%/lib/libxml2.lib" cmake -G "Ninja" ^ -D SCHEMA_VERSIONS="2x3;4;4x1;4x3_add2" ^ -D CMAKE_BUILD_TYPE:STRING=Release ^ - -D CMAKE_CXX_STANDARD=17 ^ -D CMAKE_INSTALL_PREFIX:FILEPATH="%LIBRARY_PREFIX%" ^ -D CMAKE_PREFIX_PATH:FILEPATH="%LIBRARY_PREFIX%" ^ -D CMAKE_SYSTEM_PREFIX_PATH:FILEPATH="%LIBRARY_PREFIX%" ^ @@ -42,9 +41,8 @@ cmake -G "Ninja" ^ -D Boost_LIBRARY_DIR:FILEPATH="%LIBRARY_PREFIX%\lib" ^ -D Boost_INCLUDE_DIR:FILEPATH="%LIBRARY_PREFIX%\include" ^ -D Boost_USE_STATIC_LIBS:BOOL=OFF ^ - -D CITYJSON_SUPPORT:BOOL=OFF ^ ../cmake - + if errorlevel 1 exit 1 ninja install -j 1 @@ -53,4 +51,4 @@ if errorlevel 1 exit 1 python %RECIPE_DIR%/update_version_init.py %PKG_VERSION% %SP_DIR%/ifcopenshell/__init__.py -if errorlevel 1 exit 1 \ No newline at end of file +if errorlevel 1 exit 1 diff --git a/conda/build.sh b/conda/build.sh index b17bc87159..132bcf2be9 100644 --- a/conda/build.sh +++ b/conda/build.sh @@ -16,7 +16,6 @@ cmake ${CMAKE_ARGS} -G Ninja \ -DSCHEMA_VERSIONS="2x3;4;4x1;4x3_add2" \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=$PREFIX \ - -DCMAKE_CXX_STANDARD=17 \ ${CMAKE_PLATFORM_FLAGS[@]} \ -DCMAKE_PREFIX_PATH=$PREFIX \ -DCMAKE_SYSTEM_PREFIX_PATH=$PREFIX \ @@ -42,7 +41,6 @@ cmake ${CMAKE_ARGS} -G Ninja \ -DBUILD_IFCGEOM:BOOL=ON \ -DBUILD_GEOMSERVER:BOOL=OFF \ -DBOOST_USE_STATIC_LIBS:BOOL=OFF \ - -DCITYJSON_SUPPORT:BOOL=OFF \ ./cmake ninja diff --git a/conda/update_version_init.py b/conda/update_version_init.py index e5a7a6fd22..cbcf0df1f9 100644 --- a/conda/update_version_init.py +++ b/conda/update_version_init.py @@ -1,7 +1,8 @@ -import re import argparse +import re from pathlib import Path + def update_version(file_path: str, version: str) -> None: """Update the version string in the given __init__.py file.""" file_path = Path(file_path) diff --git a/docs/conf.py b/docs/conf.py index 4583e85a43..5f4b91a23e 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,4 +1,5 @@ import textwrap + # The `extensions` list should already be in here from `sphinx-quickstart` extensions = [ # there may be others here already, e.g. 'sphinx.ext.mathjax' diff --git a/docs/cpp-api/CMakeLists.txt b/docs/cpp-api/CMakeLists.txt index 0b729355e5..80593dd220 100644 --- a/docs/cpp-api/CMakeLists.txt +++ b/docs/cpp-api/CMakeLists.txt @@ -1,14 +1,10 @@ #Look for an executable called sphinx-build -find_program(SPHINX_EXECUTABLE - NAMES sphinx-build - DOC "Path to sphinx-build executable") +find_program(SPHINX_EXECUTABLE NAMES sphinx-build DOC "Path to sphinx-build executable") include(FindPackageHandleStandardArgs) #Handle standard arguments to find_package like REQUIRED and QUIET -find_package_handle_standard_args(Sphinx - "Failed to find sphinx-build executable" - SPHINX_EXECUTABLE) +find_package_handle_standard_args(Sphinx "Failed to find sphinx-build executable" SPHINX_EXECUTABLE) find_package(Doxygen REQUIRED) #find_package(Sphinx REQUIRED) @@ -16,25 +12,24 @@ find_package(Doxygen REQUIRED) set(SPHINX_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}) set(SPHINX_BUILD ${CMAKE_CURRENT_BINARY_DIR}/docs/sphinx) -MESSAGE(STATUS "SPHINX BUILD ${CMAKE_CURRENT_BINARY_DIR}") +message(STATUS "SPHINX BUILD ${CMAKE_CURRENT_BINARY_DIR}") file(MAKE_DIRECTORY ./output/doxygen) -if (DOXYGEN_FOUND) +if(DOXYGEN_FOUND) + add_custom_target( + Sphinx + ALL + COMMAND ${SPHINX_EXECUTABLE} -v -T -b html ${SPHINX_SOURCE} ${CMAKE_CURRENT_SOURCE_DIR}/output + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/output + COMMENT "Generating documentation with Sphinx" + ) -add_custom_target(Sphinx ALL - COMMAND - ${SPHINX_EXECUTABLE} -v -T -b html - ${SPHINX_SOURCE} ${CMAKE_CURRENT_SOURCE_DIR}/output - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/output - COMMENT "Generating documentation with Sphinx") - -# add_custom_target(ifcopenshell_python_docs ALL - # COMMAND make html - # WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../src/ifcblenderexport/docs - # OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/../src/ifcblenderexport/docs - # COMMENT "Generating documentation with Sphinx") - -else (DOXYGEN_FOUND) - message("Doxygen need to be installed to generate the doxygen documentation") -endif (DOXYGEN_FOUND) + # add_custom_target(ifcopenshell_python_docs ALL + # COMMAND make html + # WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../src/ifcblenderexport/docs + # OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/../src/ifcblenderexport/docs + # COMMENT "Generating documentation with Sphinx") +else(DOXYGEN_FOUND) + message("Doxygen need to be installed to generate the doxygen documentation") +endif(DOXYGEN_FOUND) diff --git a/docs/generate_docs.py b/docs/generate_docs.py index 09f3683c82..8b3e60140d 100644 --- a/docs/generate_docs.py +++ b/docs/generate_docs.py @@ -1,10 +1,10 @@ # This program requires doxygen, sphinx, breathe and exhale. +import multiprocessing import os -import sys import shutil import subprocess -import multiprocessing +import sys # some extra check to see if we can find sphinx in pypy bin dir sphinx_build = os.path.join(os.path.dirname(sys.executable), 'sphinx-build') diff --git a/nix/build-all.py b/nix/build-all.py index 631f8edf81..2a4318dc35 100644 --- a/nix/build-all.py +++ b/nix/build-all.py @@ -56,8 +56,6 @@ Used environment variables: `SIDE_MODULE_CFLAGS`, `SIDE_MODULE_LDFLAGS`. Allows to build wasm without pyodide build environment, which can be useful for debugging build issues. Example value: 'pyodide/cpython/installs/python-3.13.2' - - ``WASM_TOOLCHAIN_FILE`` - path to emscripten toolchain file from pyodide ('Emscripten.cmake') - needed only if ``WASM_PYTHON_PATH`` is provided. - ``ADD_COMMIT_SHA`` - if defined with any non-empty value then `ADD_COMMIT_SHA` and `VERSION_OVERRIDE` will be set to `ON` while configuring IfcOpenShell @@ -101,35 +99,36 @@ Used environment variables: """ -import logging -import os -import re -import sys import glob -import subprocess as sp -import shutil -import tarfile +import logging import multiprocessing +import os import platform -import threading -import sysconfig -from datetime import datetime +import re +import shutil # @todo temporary for expired mpfr.org certificate on 2023-04-08 import ssl +import subprocess as sp +import sys +import sysconfig +import tarfile +import threading +from datetime import datetime ssl._create_default_https_context = ssl._create_unverified_context import time -from urllib.request import urlretrieve from collections.abc import Generator, Sequence from pathlib import Path +from urllib.request import urlretrieve try: - from typing import Union, Literal + from typing import Literal, Union except: # python 3.6 compatibility for rocky 8 from typing import Union + from typing_extensions import Literal logger = logging.getLogger(__name__) @@ -141,7 +140,7 @@ PROJECT_NAME = "IfcOpenShell" USE_CURRENT_PYTHON_VERSION = os.getenv("USE_CURRENT_PYTHON_VERSION") ADD_COMMIT_SHA = os.getenv("ADD_COMMIT_SHA") -PYTHON_VERSIONS = ["3.9.11", "3.10.3", "3.11.8", "3.12.1", "3.13.6", "3.14.0"] +PYTHON_VERSIONS = ["3.10.3", "3.11.8", "3.12.1", "3.13.6", "3.14.0"] JSON_VERSION = "3.11.3" OCE_VERSION = "0.18.3" OCCT_VERSION = "7.8.1" @@ -243,7 +242,9 @@ if WASM: # Pyodide still in transition from `FLAGS` to `FLAGS_INIT`. # `FLAGS_INIT` allow us to provide flags using environment variables # and providing `FLAGS` directly would break pyodide toolchain. - WASM_CMAKE_IS_USING_INIT_VARS = get_pyodide_build_version() >= (0, 30, 8) + # NOTE: changes in pyodide-build currently got postponed: + # https://github.com/pyodide/pyodide-build/pull/249 + WASM_CMAKE_IS_USING_INIT_VARS = get_pyodide_build_version() >= (99, 0, 0) # pyodide provide empty `CXXFLAGS`, leading to issues using C++ files compiled with `-fexceptions` # which is used by OCCT. @@ -348,14 +349,13 @@ dependency_tree: "dict[str, tuple[str, ...]]" = { "boost": (), "libxml2": (), "python": (), - "occ": ("freetype",), + "occ": (), "pcre": (), "pcre2": (), "json": (), "hdf5": (), "cgal": (), "eigen": (), - "freetype": (), "rocksdb": ("zstd",), "zstd": (), # 'usd': ('boost', 'oneTBB') @@ -405,8 +405,6 @@ if any(f.startswith("py-") for f in flags): if any(f.startswith("occt-") for f in flags): OCCT_VERSION = next(f.split("-", 1)[1] for f in flags if f.startswith("occt-")) -print(OCCT_VERSION) - if explicit_targets: targets = {dep for target in explicit_targets for dep in gather_dependencies(target)} else: @@ -941,11 +939,9 @@ if "pcre2" in targets: download_name=f"pcre2-{PCRE2_VERSION}.tar.bz2", ) -# An issue exists with swig-1.3 and python >= 3.2 -# Therefore, build a recent copy from source if "swig" in targets: build_dependency( - name="swig", + name=f"swig-{SWIG_VERSION}", mode="autoconf", build_tool_args=["--disable-ccache", f"--with-pcre2-prefix={DEPS_DIR}/install/pcre2-{PCRE2_VERSION}"], download_url="https://github.com/swig/swig.git", @@ -954,17 +950,6 @@ if "swig" in targets: revision=f"v{SWIG_VERSION}", ) -if "freetype" in targets: - build_dependency( - name=f"freetype", - mode="cmake", - build_tool_args=[f"-DCMAKE_INSTALL_PREFIX={DEPS_DIR}/install/freetype"], - download_url="https://github.com/freetype/freetype", - download_name="freetype2", - download_tool=download_tool_git, - revision="VER-2-14-0", - ) - if USE_OCCT and "occ" in targets: patches = [] if OCCT_VERSION < "7.4": @@ -999,7 +984,6 @@ if USE_OCCT and "occ" in targets: f"-DUSE_FREETYPE=OFF", f"-DUSE_OPENGL=OFF", f"-DUSE_GLES2=OFF", - f"-D3RDPARTY_FREETYPE_DIR={DEPS_DIR}/install/freetype", f"-DCMAKE_POLICY_VERSION_MINIMUM=3.5", *MAC_CROSS_COMPILE_INTEL_ARGS, ], @@ -1193,6 +1177,8 @@ if "cgal" in targets: # Disable assembly, otherwise `emcc -c conftest.s` will crash due to assembly mismatch. gmp_args.extend(("--disable-assembly", "--enable-cxx")) mpfr_args.extend(("--host", "none")) + elif "x86" in arch: + gmp_args.append("--enable-fat") # See issues #7458 #7556 OLD_CC = None if MAC_CROSS_COMPILE_INTEL: @@ -1334,7 +1320,6 @@ os.makedirs(executables_dir, exist_ok=True) cmake_args = [ - "-DCMAKE_CXX_STANDARD=17", "-DUSE_MMAP=OFF", "-DBUILD_EXAMPLES=OFF", "-DBUILD_SHARED_LIBS=" + OFF_ON[not BUILD_STATIC], @@ -1378,6 +1363,7 @@ if "cgal" in targets: cmake_args_prefix_path.append(f"{DEPS_DIR}/install/cgal-{CGAL_VERSION}") cmake_args_prefix_path.append(f"{DEPS_DIR}/install/gmp-{GMP_VERSION}") cmake_args_prefix_path.append(f"{DEPS_DIR}/install/mpfr-{MPFR_VERSION}") + cmake_args.append(f"-DCGAL_WITH_GMPXX=Off") if "occ" in targets and USE_OCCT: cmake_args_prefix_path.append(f"{DEPS_DIR}/install/occt-{OCCT_VERSION}") @@ -1408,11 +1394,11 @@ else: cmake_args.append("-DHDF5_SUPPORT=Off") if "usd" in targets: - cmake_args.extend( + cmake_args.append("-DUSD_SUPPORT=ON") + cmake_args_prefix_path.extend( [ - f"-DUSD_SUPPORT=" "On", - f"-DUSD_INCLUDE_DIR={DEPS_DIR}/install/usd-{USD_VERSION}/include", - f"-DUSD_LIBRARY_DIR={DEPS_DIR}/install/usd-{USD_VERSION}/lib", + f"{DEPS_DIR}/install/tbb-{TBB_VERSION}", + f"{DEPS_DIR}/install/usd-{USD_VERSION}", ] ) @@ -1430,6 +1416,9 @@ if "rocksdb" in targets: ] ) +if "swig" in targets: + cmake_args_prefix_path.append(f"{DEPS_DIR}/install/swig-{SWIG_VERSION}") + if not WASM and (not explicit_targets or {"IfcGeom", "IfcConvert", "IfcGeomServer"} & set(explicit_targets)): logger.info("\rConfiguring executables...") @@ -1482,9 +1471,6 @@ if "IfcOpenShell-Python" in targets: if os.path.exists(cache_path): os.remove(cache_path) - prefix_paths: list[str] = [] - if "swig" in targets: - prefix_paths.append(f"{DEPS_DIR}/install/swig") if python_path: # We couldn't just prefix PATH and have to provide all variables explicitly, # see ifcwrap/cmake for the details. @@ -1501,7 +1487,7 @@ if "IfcOpenShell-Python" in targets: run_cmake( "", cmake_args - + get_cmake_args_prefix_path(prefix_paths) + + get_cmake_args_prefix_path() + [ *([f"-DPYTHON_EXECUTABLE={python_executable}"] if python_executable else []), # Needed because pyodide is expecting setup.py to be in the root. diff --git a/pyodide/cache_dependencies.py b/pyodide/cache_dependencies.py index 0ac2c8a600..5800cba067 100644 --- a/pyodide/cache_dependencies.py +++ b/pyodide/cache_dependencies.py @@ -8,12 +8,11 @@ or unpacks existing archives. Usage: python cache_dependencies.py [pack|unpack] """ -import tarfile import sys +import tarfile from pathlib import Path from typing import Literal - CACHE_PREFIX = "cache-" diff --git a/pyodide/test/test_wheel.py b/pyodide/test/test_wheel.py index 1204c3d532..f241776d02 100644 --- a/pyodide/test/test_wheel.py +++ b/pyodide/test/test_wheel.py @@ -1,6 +1,5 @@ from pathlib import Path - WHEEL_FILENAME = next( p.name for p in (Path.cwd() / "pyodide").iterdir() if p.name.startswith("ifcopenshell-") and p.suffix == ".whl" ) diff --git a/pyproject.toml b/pyproject.toml index c03921c762..74c3b0ee18 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,13 @@ +[project] +name = "IfcOpenShell" +version = "0.0.0" +dependencies = [ + "black==26.1.0", + "ruff==0.15.0", + "poethepoet", + "gersemi==0.25.4", +] + [tool.black] line-length = 120 include = ''' @@ -9,10 +19,8 @@ extend-exclude = ''' |src/ifcopenshell-python/ifcopenshell/mvd/* |src/ifcopenshell-python/ifcopenshell/simple_spf/* |src/ifc2ca/templates/* - |src/ifcconvert/cityjson/* |src/svgfill |src/exterior-shell-extractor - |src/pyodide ''' [tool.pyright] @@ -21,12 +29,11 @@ disableBytesTypePromotions = true reportUnnecessaryTypeIgnoreComment = true # Define here general ruff settings, -# then they will be inherited projects .toml files. +# then they will be inherited by projects' .toml files. # This allows using assuming different Python version for different projects. [tool.ruff] exclude = [ # Submodules. - "src/ifcconvert/cityjson", "src/ifcopenshell-python/ifcopenshell/express", "src/ifcopenshell-python/ifcopenshell/mvd", "src/ifcopenshell-python/ifcopenshell/simple_spf", @@ -50,6 +57,7 @@ select = [ "UP", # pyupgrade "RUF015", # next() > list_comprehension[0] "RUF022", # sort __all__ + "I", # import sorting ] ignore = [ "FA100", # Conflicts with Blender using annotations for props definitions. @@ -73,3 +81,5 @@ ruff.sequence = ["ruff-main", "ruff-old"] black = "black ." format.sequence = ["black", "ruff-main", "ruff-old"] + +cmake-format = "gersemi . --in-place" diff --git a/src/bcf/bcf/agnostic/extensions.py b/src/bcf/bcf/agnostic/extensions.py index 20ecd621d8..16e7283c1a 100644 --- a/src/bcf/bcf/agnostic/extensions.py +++ b/src/bcf/bcf/agnostic/extensions.py @@ -1,7 +1,8 @@ +from dataclasses import fields +from typing import NamedTuple, Union + import bcf.v2.model.extensions import bcf.v3.model.extensions -from typing import NamedTuple, Union -from dataclasses import fields class AttributeData(NamedTuple): diff --git a/src/bcf/bcf/agnostic/model.py b/src/bcf/bcf/agnostic/model.py index 4afd25d1bc..e511c07656 100644 --- a/src/bcf/bcf/agnostic/model.py +++ b/src/bcf/bcf/agnostic/model.py @@ -1,6 +1,7 @@ +from typing import Union + import bcf.v2.model import bcf.v3.model -from typing import Union BimSnippet = Union[bcf.v2.model.BimSnippet, bcf.v3.model.BimSnippet] BitMap = Union[bcf.v2.model.VisualizationInfoBitmap, bcf.v3.model.Bitmap] diff --git a/src/bcf/bcf/agnostic/topic.py b/src/bcf/bcf/agnostic/topic.py index 1493d44bd7..a25f4af482 100644 --- a/src/bcf/bcf/agnostic/topic.py +++ b/src/bcf/bcf/agnostic/topic.py @@ -1,14 +1,16 @@ import tempfile +from pathlib import Path +from typing import Optional, Union + +from typing_extensions import assert_never + +import bcf.agnostic.model as mdl import bcf.v2.bcfxml import bcf.v2.model import bcf.v2.topic import bcf.v3.bcfxml import bcf.v3.model import bcf.v3.topic -import bcf.agnostic.model as mdl -from pathlib import Path -from typing import Union, Optional -from typing_extensions import assert_never TopicHandler = Union[bcf.v2.topic.TopicHandler, bcf.v3.topic.TopicHandler] diff --git a/src/bcf/bcf/agnostic/visinfo.py b/src/bcf/bcf/agnostic/visinfo.py index 27adf56bdf..a2b248b085 100644 --- a/src/bcf/bcf/agnostic/visinfo.py +++ b/src/bcf/bcf/agnostic/visinfo.py @@ -1,5 +1,6 @@ -import bcf.v2.visinfo -import bcf.v3.visinfo from typing import Union +import bcf.v2.visinfo +import bcf.v3.visinfo + VisualizationInfoHandler = Union[bcf.v2.visinfo.VisualizationInfoHandler, bcf.v3.visinfo.VisualizationInfoHandler] diff --git a/src/bcf/bcf/bcfxml.py b/src/bcf/bcf/bcfxml.py index 073e50af39..07b1fb5cb0 100644 --- a/src/bcf/bcf/bcfxml.py +++ b/src/bcf/bcf/bcfxml.py @@ -29,7 +29,6 @@ from bcf.v3.bcfxml import BcfXml as BcfXml3 from bcf.v3.model import Version as Version3 from bcf.xml_parser import AbstractXmlParserSerializer, XmlParserSerializer - BcfXml = Union[BcfXml2, BcfXml3] diff --git a/src/bcf/bcf/inmemory_zipfile.py b/src/bcf/bcf/inmemory_zipfile.py index 8bcbbc6cf8..bac4b47c7b 100644 --- a/src/bcf/bcf/inmemory_zipfile.py +++ b/src/bcf/bcf/inmemory_zipfile.py @@ -7,6 +7,7 @@ original idea from https://stackoverflow.com/a/19722365/1307905 """ from __future__ import annotations + import zipfile from io import BytesIO from os import PathLike @@ -26,7 +27,7 @@ class InMemoryZipFile: self._file_name: Optional[str | Path] = str(file_name) if hasattr(file_name, "_from_parts") else file_name self.in_memory_data = BytesIO() # Create the in-memory zipfile - self.in_memory_zip = zipfile.ZipFile(self.in_memory_data, "w", compression, False) + self.in_memory_zip = zipfile.ZipFile(self.in_memory_data, "w", compression, True) self.in_memory_zip.debug = debug def writestr(self, filename_in_zip: str | zipfile.ZipInfo, file_contents: bytes | str) -> None: diff --git a/src/bcf/bcf/v2/bcfxml.py b/src/bcf/bcf/v2/bcfxml.py index 039f1cbe09..ad9f8e7679 100644 --- a/src/bcf/bcf/v2/bcfxml.py +++ b/src/bcf/bcf/v2/bcfxml.py @@ -1,6 +1,7 @@ """BCF XML V2 handler.""" from __future__ import annotations + import uuid import warnings import zipfile diff --git a/src/bcf/bcf/v2/model/extensions.py b/src/bcf/bcf/v2/model/extensions.py index bf28512100..695027bc6c 100644 --- a/src/bcf/bcf/v2/model/extensions.py +++ b/src/bcf/bcf/v2/model/extensions.py @@ -14,15 +14,11 @@ # Currently extensions support for v2 is only read-only. -import sys -from dataclasses import dataclass, field, fields +from dataclasses import dataclass, field from typing import Optional -DATACLASS_KWARGS = {} if sys.version_info < (3, 10) else {"slots": True, "kw_only": True} - - -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ExtensionsPriorities: class Meta: global_type = False @@ -39,7 +35,7 @@ class ExtensionsPriorities: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ExtensionsSnippetTypes: class Meta: global_type = False @@ -56,7 +52,7 @@ class ExtensionsSnippetTypes: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ExtensionsStages: class Meta: global_type = False @@ -73,7 +69,7 @@ class ExtensionsStages: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ExtensionsTopicLabels: class Meta: global_type = False @@ -90,7 +86,7 @@ class ExtensionsTopicLabels: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ExtensionsTopicStatuses: class Meta: global_type = False @@ -107,7 +103,7 @@ class ExtensionsTopicStatuses: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ExtensionsTopicTypes: class Meta: global_type = False @@ -124,7 +120,7 @@ class ExtensionsTopicTypes: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ExtensionsUsers: class Meta: global_type = False @@ -141,7 +137,7 @@ class ExtensionsUsers: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Extensions: topic_types: Optional[ExtensionsTopicTypes] = field( default=None, diff --git a/src/bcf/bcf/v2/model/markup.py b/src/bcf/bcf/v2/model/markup.py index f91d8fe8dc..9027d5b280 100644 --- a/src/bcf/bcf/v2/model/markup.py +++ b/src/bcf/bcf/v2/model/markup.py @@ -1,13 +1,10 @@ -import sys from dataclasses import dataclass, field from typing import Optional from xsdata.models.datatype import XmlDateTime -DATACLASS_KWARGS = {} if sys.version_info < (3, 10) else {"slots": True, "kw_only": True} - -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class BimSnippet: reference: str = field( metadata={ @@ -41,7 +38,7 @@ class BimSnippet: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class CommentViewpoint: class Meta: global_type = False @@ -56,7 +53,7 @@ class CommentViewpoint: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class HeaderFile: class Meta: global_type = False @@ -112,7 +109,7 @@ class HeaderFile: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class TopicDocumentReference: class Meta: global_type = False @@ -150,7 +147,7 @@ class TopicDocumentReference: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class TopicRelatedTopic: class Meta: global_type = False @@ -165,7 +162,7 @@ class TopicRelatedTopic: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ViewPoint: viewpoint: Optional[str] = field( default=None, @@ -201,7 +198,7 @@ class ViewPoint: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Comment: date: XmlDateTime = field( metadata={ @@ -261,7 +258,7 @@ class Comment: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Header: file: list[HeaderFile] = field( default_factory=list, @@ -274,7 +271,7 @@ class Header: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Topic: reference_link: list[str] = field( default_factory=list, @@ -428,7 +425,7 @@ class Topic: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Markup: header: Optional[Header] = field( default=None, diff --git a/src/bcf/bcf/v2/model/project.py b/src/bcf/bcf/v2/model/project.py index a27afb7cd6..e86fb9b009 100644 --- a/src/bcf/bcf/v2/model/project.py +++ b/src/bcf/bcf/v2/model/project.py @@ -1,11 +1,8 @@ -import sys from dataclasses import dataclass, field from typing import Optional -DATACLASS_KWARGS = {} if sys.version_info < (3, 10) else {"slots": True, "kw_only": True} - -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Project: name: Optional[str] = field( default=None, @@ -24,7 +21,7 @@ class Project: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ProjectExtension: project: Optional[Project] = field( default=None, diff --git a/src/bcf/bcf/v2/model/version.py b/src/bcf/bcf/v2/model/version.py index ea9331bc36..9f55ad5bf9 100644 --- a/src/bcf/bcf/v2/model/version.py +++ b/src/bcf/bcf/v2/model/version.py @@ -1,11 +1,8 @@ -import sys from dataclasses import dataclass, field from typing import Optional -DATACLASS_KWARGS = {} if sys.version_info < (3, 10) else {"slots": True, "kw_only": True} - -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Version: detailed_version: Optional[str] = field( default=None, diff --git a/src/bcf/bcf/v2/model/visinfo.py b/src/bcf/bcf/v2/model/visinfo.py index 3615609881..3d4debbcbd 100644 --- a/src/bcf/bcf/v2/model/visinfo.py +++ b/src/bcf/bcf/v2/model/visinfo.py @@ -1,17 +1,14 @@ -import sys from dataclasses import dataclass, field from enum import Enum from typing import Optional -DATACLASS_KWARGS = {} if sys.version_info < (3, 10) else {"slots": True, "kw_only": True} - class BitmapFormat(Enum): PNG = "PNG" JPG = "JPG" -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Component: originating_system: Optional[str] = field( default=None, @@ -38,7 +35,7 @@ class Component: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Direction: x: float = field( metadata={ @@ -63,7 +60,7 @@ class Direction: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Point: x: float = field( metadata={ @@ -88,7 +85,7 @@ class Point: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ViewSetupHints: spaces_visible: Optional[bool] = field( default=None, @@ -113,7 +110,7 @@ class ViewSetupHints: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ClippingPlane: location: Point = field( metadata={ @@ -131,7 +128,7 @@ class ClippingPlane: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ComponentColoringColor: class Meta: global_type = False @@ -154,7 +151,7 @@ class ComponentColoringColor: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ComponentSelection: component: list[Component] = field( default_factory=list, @@ -166,7 +163,7 @@ class ComponentSelection: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ComponentVisibilityExceptions: class Meta: global_type = False @@ -181,7 +178,7 @@ class ComponentVisibilityExceptions: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Line: start_point: Point = field( metadata={ @@ -199,7 +196,7 @@ class Line: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class OrthogonalCamera: """ Attributes @@ -239,7 +236,7 @@ class OrthogonalCamera: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class PerspectiveCamera: """ Attributes @@ -284,7 +281,7 @@ class PerspectiveCamera: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class VisualizationInfoBitmap: class Meta: global_type = False @@ -333,7 +330,7 @@ class VisualizationInfoBitmap: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ComponentColoring: color: list[ComponentColoringColor] = field( default_factory=list, @@ -345,7 +342,7 @@ class ComponentColoring: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ComponentVisibility: exceptions: Optional[ComponentVisibilityExceptions] = field( default=None, @@ -363,7 +360,7 @@ class ComponentVisibility: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class VisualizationInfoClippingPlanes: class Meta: global_type = False @@ -377,7 +374,7 @@ class VisualizationInfoClippingPlanes: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class VisualizationInfoLines: class Meta: global_type = False @@ -392,7 +389,7 @@ class VisualizationInfoLines: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Components: view_setup_hints: Optional[ViewSetupHints] = field( default=None, @@ -424,7 +421,7 @@ class Components: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class VisualizationInfo: """ VisualizationInfo documentation. diff --git a/src/bcf/bcf/v2/topic.py b/src/bcf/bcf/v2/topic.py index 7ee4c50b60..2f69a0c18a 100644 --- a/src/bcf/bcf/v2/topic.py +++ b/src/bcf/bcf/v2/topic.py @@ -1,12 +1,12 @@ """BCF XML V2 Topic handler.""" from __future__ import annotations + import datetime -import tempfile import uuid import zipfile from pathlib import Path -from typing import Any, NoReturn, Optional, Union +from typing import Any, NoReturn, Optional import numpy as np from ifcopenshell import entity_instance diff --git a/src/bcf/bcf/v2/visinfo.py b/src/bcf/bcf/v2/visinfo.py index 46d274ea1d..7081bf2052 100644 --- a/src/bcf/bcf/v2/visinfo.py +++ b/src/bcf/bcf/v2/visinfo.py @@ -1,12 +1,12 @@ import uuid import zipfile -from typing import Any, Optional, Literal, Union from collections.abc import Iterable +from typing import Literal, Optional, Union +import ifcopenshell.util.placement +import ifcopenshell.util.unit import numpy as np from ifcopenshell import entity_instance -import ifcopenshell.util.unit -import ifcopenshell.util.placement from numpy.typing import NDArray import bcf.v2.model as mdl diff --git a/src/bcf/bcf/v3/bcfapi.py b/src/bcf/bcf/v3/bcfapi.py index 5c66cee067..127d9e3732 100644 --- a/src/bcf/bcf/v3/bcfapi.py +++ b/src/bcf/bcf/v3/bcfapi.py @@ -24,7 +24,6 @@ import time import urllib.parse import uuid import webbrowser -from re import A from typing import Any, Optional import requests diff --git a/src/bcf/bcf/v3/bcfxml.py b/src/bcf/bcf/v3/bcfxml.py index 872efe5db9..7d5ca0de1f 100644 --- a/src/bcf/bcf/v3/bcfxml.py +++ b/src/bcf/bcf/v3/bcfxml.py @@ -1,6 +1,7 @@ """BCF XML V3 handlers.""" from __future__ import annotations + import uuid import warnings import zipfile diff --git a/src/bcf/bcf/v3/document.py b/src/bcf/bcf/v3/document.py index afc6be50b9..d906b96d26 100644 --- a/src/bcf/bcf/v3/document.py +++ b/src/bcf/bcf/v3/document.py @@ -1,7 +1,7 @@ """BCF XML V3 Documents handler.""" import zipfile -from typing import Any, Optional +from typing import Optional import bcf.v3.model as mdl from bcf.inmemory_zipfile import ZipFileInterface diff --git a/src/bcf/bcf/v3/model/documents.py b/src/bcf/bcf/v3/model/documents.py index 2e2de1f5ea..65a3615e7c 100644 --- a/src/bcf/bcf/v3/model/documents.py +++ b/src/bcf/bcf/v3/model/documents.py @@ -1,11 +1,8 @@ -import sys from dataclasses import dataclass, field from typing import Optional -DATACLASS_KWARGS = {} if sys.version_info < (3, 10) else {"slots": True, "kw_only": True} - -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Document: filename: str = field( metadata={ @@ -37,7 +34,7 @@ class Document: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class DocumentInfoDocuments: class Meta: global_type = False @@ -52,7 +49,7 @@ class DocumentInfoDocuments: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class DocumentInfo: documents: Optional[DocumentInfoDocuments] = field( default=None, diff --git a/src/bcf/bcf/v3/model/extensions.py b/src/bcf/bcf/v3/model/extensions.py index 12d3d4dbfd..48aef2243b 100644 --- a/src/bcf/bcf/v3/model/extensions.py +++ b/src/bcf/bcf/v3/model/extensions.py @@ -1,11 +1,8 @@ -import sys from dataclasses import dataclass, field from typing import Optional -DATACLASS_KWARGS = {} if sys.version_info < (3, 10) else {"slots": True, "kw_only": True} - -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ExtensionsPriorities: class Meta: global_type = False @@ -22,7 +19,7 @@ class ExtensionsPriorities: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ExtensionsSnippetTypes: class Meta: global_type = False @@ -39,7 +36,7 @@ class ExtensionsSnippetTypes: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ExtensionsStages: class Meta: global_type = False @@ -56,7 +53,7 @@ class ExtensionsStages: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ExtensionsTopicLabels: class Meta: global_type = False @@ -73,7 +70,7 @@ class ExtensionsTopicLabels: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ExtensionsTopicStatuses: class Meta: global_type = False @@ -90,7 +87,7 @@ class ExtensionsTopicStatuses: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ExtensionsTopicTypes: class Meta: global_type = False @@ -107,7 +104,7 @@ class ExtensionsTopicTypes: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ExtensionsUsers: class Meta: global_type = False @@ -124,7 +121,7 @@ class ExtensionsUsers: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Extensions: topic_types: Optional[ExtensionsTopicTypes] = field( default=None, diff --git a/src/bcf/bcf/v3/model/markup.py b/src/bcf/bcf/v3/model/markup.py index 96b656b09d..bcd985af34 100644 --- a/src/bcf/bcf/v3/model/markup.py +++ b/src/bcf/bcf/v3/model/markup.py @@ -1,13 +1,10 @@ -import sys from dataclasses import dataclass, field from typing import Optional from xsdata.models.datatype import XmlDateTime -DATACLASS_KWARGS = {} if sys.version_info < (3, 10) else {"slots": True, "kw_only": True} - -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class BimSnippet: reference: str = field( metadata={ @@ -47,7 +44,7 @@ class BimSnippet: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class CommentViewpoint: class Meta: global_type = False @@ -62,7 +59,7 @@ class CommentViewpoint: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class DocumentReference: document_guid: Optional[str] = field( default=None, @@ -103,7 +100,7 @@ class DocumentReference: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class File: filename: Optional[str] = field( default=None, @@ -160,7 +157,7 @@ class File: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class TopicLabels: class Meta: global_type = False @@ -177,7 +174,7 @@ class TopicLabels: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class TopicReferenceLinks: class Meta: global_type = False @@ -194,7 +191,7 @@ class TopicReferenceLinks: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class TopicRelatedTopicsRelatedTopic: class Meta: global_type = False @@ -209,7 +206,7 @@ class TopicRelatedTopicsRelatedTopic: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ViewPoint: viewpoint: Optional[str] = field( default=None, @@ -249,7 +246,7 @@ class ViewPoint: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Comment: date: XmlDateTime = field( metadata={ @@ -315,7 +312,7 @@ class Comment: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class HeaderFiles: class Meta: global_type = False @@ -330,7 +327,7 @@ class HeaderFiles: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class TopicDocumentReferences: class Meta: global_type = False @@ -345,7 +342,7 @@ class TopicDocumentReferences: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class TopicRelatedTopics: class Meta: global_type = False @@ -360,7 +357,7 @@ class TopicRelatedTopics: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class TopicViewpoints: class Meta: global_type = False @@ -375,7 +372,7 @@ class TopicViewpoints: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Header: files: Optional[HeaderFiles] = field( default=None, @@ -387,7 +384,7 @@ class Header: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class TopicComments: class Meta: global_type = False @@ -402,7 +399,7 @@ class TopicComments: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Topic: reference_links: Optional[TopicReferenceLinks] = field( default=None, @@ -599,7 +596,7 @@ class Topic: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Markup: header: Optional[Header] = field( default=None, diff --git a/src/bcf/bcf/v3/model/project.py b/src/bcf/bcf/v3/model/project.py index ff07fa2c08..76a6922925 100644 --- a/src/bcf/bcf/v3/model/project.py +++ b/src/bcf/bcf/v3/model/project.py @@ -1,11 +1,8 @@ -import sys from dataclasses import dataclass, field from typing import Optional -DATACLASS_KWARGS = {} if sys.version_info < (3, 10) else {"slots": True, "kw_only": True} - -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Project: name: Optional[str] = field( default=None, @@ -28,7 +25,7 @@ class Project: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ProjectInfo: project: Project = field( metadata={ diff --git a/src/bcf/bcf/v3/model/version.py b/src/bcf/bcf/v3/model/version.py index dd8cc713e3..f3a44d2ab3 100644 --- a/src/bcf/bcf/v3/model/version.py +++ b/src/bcf/bcf/v3/model/version.py @@ -1,10 +1,7 @@ -import sys from dataclasses import dataclass, field -DATACLASS_KWARGS = {} if sys.version_info < (3, 10) else {"slots": True, "kw_only": True} - -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Version: version_id: str = field( metadata={ diff --git a/src/bcf/bcf/v3/model/visinfo.py b/src/bcf/bcf/v3/model/visinfo.py index 43a00f33d3..e2fa3d06d7 100644 --- a/src/bcf/bcf/v3/model/visinfo.py +++ b/src/bcf/bcf/v3/model/visinfo.py @@ -1,18 +1,14 @@ -import sys from dataclasses import dataclass, field from enum import Enum from typing import Optional -DATACLASS_KWARGS = {} if sys.version_info < (3, 10) else {"slots": True, "kw_only": True} - - class BitmapFormat(Enum): PNG = "png" JPG = "jpg" -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Component: originating_system: Optional[str] = field( default=None, @@ -43,7 +39,7 @@ class Component: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Direction: x: float = field( metadata={ @@ -68,7 +64,7 @@ class Direction: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Point: x: float = field( metadata={ @@ -93,7 +89,7 @@ class Point: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ViewSetupHints: spaces_visible: bool = field( default=False, @@ -118,7 +114,7 @@ class ViewSetupHints: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Bitmap: format: BitmapFormat = field( metadata={ @@ -166,7 +162,7 @@ class Bitmap: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ClippingPlane: location: Point = field( metadata={ @@ -184,7 +180,7 @@ class ClippingPlane: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ComponentColoringColorComponents: class Meta: global_type = False @@ -199,7 +195,7 @@ class ComponentColoringColorComponents: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ComponentSelection: component: list[Component] = field( default_factory=list, @@ -210,7 +206,7 @@ class ComponentSelection: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ComponentVisibilityExceptions: class Meta: global_type = False @@ -224,7 +220,7 @@ class ComponentVisibilityExceptions: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Line: start_point: Point = field( metadata={ @@ -242,7 +238,7 @@ class Line: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class OrthogonalCamera: """ Attributes @@ -292,7 +288,7 @@ class OrthogonalCamera: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class PerspectiveCamera: """ Attributes @@ -348,7 +344,7 @@ class PerspectiveCamera: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ComponentColoringColor: class Meta: global_type = False @@ -370,7 +366,7 @@ class ComponentColoringColor: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ComponentVisibility: view_setup_hints: Optional[ViewSetupHints] = field( default=None, @@ -395,7 +391,7 @@ class ComponentVisibility: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class VisualizationInfoBitmaps: class Meta: global_type = False @@ -409,7 +405,7 @@ class VisualizationInfoBitmaps: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class VisualizationInfoClippingPlanes: class Meta: global_type = False @@ -423,7 +419,7 @@ class VisualizationInfoClippingPlanes: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class VisualizationInfoLines: class Meta: global_type = False @@ -437,7 +433,7 @@ class VisualizationInfoLines: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class ComponentColoring: color: list[ComponentColoringColor] = field( default_factory=list, @@ -448,7 +444,7 @@ class ComponentColoring: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class Components: selection: Optional[ComponentSelection] = field( default=None, @@ -473,7 +469,7 @@ class Components: ) -@dataclass(**DATACLASS_KWARGS) +@dataclass(slots=True, kw_only=True) class VisualizationInfo: """ VisualizationInfo documentation. diff --git a/src/bcf/bcf/v3/topic.py b/src/bcf/bcf/v3/topic.py index 04753c006e..d82e4ed0f1 100644 --- a/src/bcf/bcf/v3/topic.py +++ b/src/bcf/bcf/v3/topic.py @@ -1,6 +1,7 @@ """BCF XML V3 Topic handler.""" from __future__ import annotations + import datetime import uuid import zipfile diff --git a/src/bcf/bcf/v3/visinfo.py b/src/bcf/bcf/v3/visinfo.py index 7880ddb10f..b3b99d7890 100644 --- a/src/bcf/bcf/v3/visinfo.py +++ b/src/bcf/bcf/v3/visinfo.py @@ -1,12 +1,12 @@ import uuid import zipfile -from typing import Any, Optional, Literal, Union from collections.abc import Iterable +from typing import Literal, Optional, Union +import ifcopenshell.util.placement +import ifcopenshell.util.unit import numpy as np from ifcopenshell import entity_instance -import ifcopenshell.util.unit -import ifcopenshell.util.placement from numpy.typing import NDArray import bcf.v3.model as mdl diff --git a/src/bcf/pyproject.toml b/src/bcf/pyproject.toml index 7047595ce1..b4e990f39c 100644 --- a/src/bcf/pyproject.toml +++ b/src/bcf/pyproject.toml @@ -140,3 +140,9 @@ max-attributes = 10 [tool.pylint.format] expected-line-ending-format = "LF" max-line-length = 120 + +[tool.ruff] +extend = "../../pyproject.toml" +lint.select = [ + "F401", # unused imports +] diff --git a/src/bcf/tests/v3/test_example_files.py b/src/bcf/tests/v3/test_example_files.py index e385b8634f..3f141afda6 100644 --- a/src/bcf/tests/v3/test_example_files.py +++ b/src/bcf/tests/v3/test_example_files.py @@ -1,4 +1,3 @@ -import json import os import zipfile from pathlib import Path @@ -7,7 +6,6 @@ from xsdata.models.datatype import XmlDateTime import bcf.v3.model as mdl from bcf.v3.bcfxml import BcfXml -from bcf.v3.topic import TopicHandler def test_doc_ref_internal() -> None: diff --git a/src/bonsai/Dockerfile b/src/bonsai/Dockerfile new file mode 100644 index 0000000000..9805ec0530 --- /dev/null +++ b/src/bonsai/Dockerfile @@ -0,0 +1,22 @@ +# Build Bonsai .zip. +# Usage: +# # While in `bonsai` folder. +# docker build -t bonsai-dist . +# # Output zip file will be in `dist` folder. +# # See possible values for variables in `Makefile`'s `dist` target description. +# docker run --rm -v "$PWD/../../:/work" -w /work -e PLATFORM=win -e PYVERSION=py313 bonsai-dist + +FROM ubuntu:24.04 +RUN apt-get update +RUN apt-get install -y make git wget unzip zip + +# Python +RUN apt-get install -y software-properties-common +RUN add-apt-repository ppa:deadsnakes/ppa +RUN apt-get update +RUN apt-get install -y python3.11 python3.11-venv + +RUN apt-get install -y npm + +WORKDIR /work +CMD cd src/bonsai && make dist PLATFORM=$PLATFORM PYVERSION=$PYVERSION diff --git a/src/bonsai/Makefile b/src/bonsai/Makefile index 9d06991485..6b4704b7b3 100644 --- a/src/bonsai/Makefile +++ b/src/bonsai/Makefile @@ -48,18 +48,33 @@ VERSION_PATCH:=$(shell cat '../../VERSION' | cut -d '.' -f 3) VERSION_DATE:=$(shell date '+%y%m%d') LAST_COMMIT_HASH:=$(shell git rev-parse HEAD) LAST_COMMIT_DATE:=$(shell git show -s --format=%cI) -PYVERSION:=py310 PYPI_IMP:=cp -ifeq ($(PYVERSION), py311) -PYLIBDIR:=python3.11 -PYNUMBER:=311 -PYPI_VERSION:=3.11 +ifdef PYVERSION +SUPPORTED_PYVERSIONS := py311 py312 py313 + +ifeq ($(filter $(PYVERSION),$(SUPPORTED_PYVERSIONS)),) +$(error Unsupported PYVERSION=$(PYVERSION). Must be one of $(SUPPORTED_PYVERSIONS)) +endif + +PYMINOR:=$(subst py3,,$(PYVERSION)) +PYLIBDIR:=python3.$(PYMINOR) +PYNUMBER:=3$(PYMINOR) +PYPI_VERSION:=3.$(PYMINOR) +endif # def PYVERSION + + +ifdef PLATFORM +SUPPORTED_PLATFORMS := linux macos macosm1 win + +ifeq ($(filter $(PLATFORM),$(SUPPORTED_PLATFORMS)),) +$(error Unsupported PLATFORM=$(PLATFORM). Must be one of $(SUPPORTED_PLATFORMS)) +endif + +ifeq ($(PLATFORM),macos) +ifeq ($(PYVERSION),py313) +$(error Blender 5.1 with Python 3.13 doesn't support intel macOS.) endif -ifeq ($(PYVERSION), py312) -PYLIBDIR:=python3.12 -PYNUMBER:=312 -PYPI_VERSION:=3.12 endif ifeq ($(PLATFORM), linux) @@ -86,8 +101,10 @@ PYPI_PLATFORM:=--platform win_amd64 BLENDER_PLATFORM:=windows-x64 endif +endif # def PLATFORM + # Current build commit hash. -OLD:=6924012 +OLD:=e8eb5e4 .PHONY: bump bump: ifndef NEW @@ -99,7 +116,10 @@ endif .PHONY: dist dist: ifndef PLATFORM - $(error PLATFORM is not set) + $(error PLATFORM is not set. Example values: $(SUPPORTED_PLATFORMS).) +endif +ifndef PYVERSION + $(error PYVERSION is not set. Example values: $(SUPPORTED_PYVERSIONS). ) endif rm -rf build mkdir -p build @@ -125,9 +145,6 @@ endif cd ../ifc5d && make dist && mv dist/*.whl ../bonsai/build/wheels/ cd ../ifccityjson && make dist && mv dist/*.whl ../bonsai/build/wheels/ cd build && . env/$(VENV_ACTIVATE) && $(PIP) download GitPython --dest=./wheels - # Provides audio playback for costing - # This is a REALLY IMPORTANT feature - cd build && . env/$(VENV_ACTIVATE) && $(PIP) wheel git+https://github.com/zdhoward/aud --wheel-dir=./wheels # IfcOpenShell dependency - support for new typing features cd build && . env/$(VENV_ACTIVATE) && $(PIP) download typing_extensions --dest=./wheels # Required by IfcCSV @@ -155,6 +172,9 @@ endif cd build && . env/$(VENV_ACTIVATE) && $(PIP) download six --dest=./wheels # Required by drawing module cd build && . env/$(VENV_ACTIVATE) && $(PIP) download lxml $(PYPI_PLATFORM) --python-version $(PYPI_VERSION) --implementation $(PYPI_IMP) --only-binary=:all: --dest=./wheels + # Required by drawing module for markdown hyperlinks in annotations + cd build && . env/$(VENV_ACTIVATE) && $(PIP) download markdown-it-py --dest=./wheels + cd build && . env/$(VENV_ACTIVATE) && $(PIP) download mdurl --dest=./wheels # Required by qto and drawing module cd build && . env/$(VENV_ACTIVATE) && $(PIP) download shapely $(PYPI_PLATFORM) --python-version $(PYPI_VERSION) --implementation $(PYPI_IMP) --only-binary=:all: --dest=./wheels # Required by the BIM type manager thumbnail generator @@ -186,7 +206,7 @@ endif cd build && . env/$(VENV_ACTIVATE) && $(PIP) download tzfpy $(PYPI_PLATFORM) --python-version $(PYPI_VERSION) --implementation $(PYPI_IMP) --only-binary=:all: --dest=./wheels # pyradiance is using different platform versions than defaults in our makefile. ifeq ($(PLATFORM), linux) - cd build && . env/$(VENV_ACTIVATE) && $(PIP) download pyradiance --platform manylinux_2_35_x86_64 --python-version $(PYPI_VERSION) --implementation $(PYPI_IMP) --only-binary=:all: --dest=./wheels + cd build && . env/$(VENV_ACTIVATE) && $(PIP) download pyradiance --platform manylinux_2_28_x86_64 --python-version $(PYPI_VERSION) --implementation $(PYPI_IMP) --only-binary=:all: --dest=./wheels else ifeq ($(PLATFORM), macos) cd build && . env/$(VENV_ACTIVATE) && $(PIP) download pyradiance --platform macosx_10_13_x86_64 --python-version $(PYPI_VERSION) --implementation $(PYPI_IMP) --only-binary=:all: --dest=./wheels else @@ -264,6 +284,11 @@ else $(SED) 's/version = "0.0.0"/version = "$(VERSION)-alpha$(VERSION_DATE)"/' build/pyproject.toml endif +# Blender 5.1+ requires Python 3.13. +ifeq ($(PYVERSION), py313) + $(SED) 's/blender_version_min = "4\.2\.0"/blender_version_min = "5.1.0"/' build/bonsai/blender_manifest.toml +endif + $(SED) "s/os-arch/$(BLENDER_PLATFORM)/" build/bonsai/blender_manifest.toml # Provides bonsai Add-on functionality @@ -285,12 +310,6 @@ endif fi mv build/wheels/*.whl build/bonsai/wheels/ - # Temporary workaround for Blender not handling non-3.11 wheels #5743. - # Use '-n' as on macos x86-64 doesn't have a binary wheel and it autoincludes 'cp311'. - prev_whl_name=$$(find build/bonsai/wheels/tzfpy-*.whl); \ - whl_name=$$(echo $$prev_whl_name | sed "s/-cp39-/-cp$(PYNUMBER)-/"); \ - mv --update=none "$$prev_whl_name" "$$whl_name"; - ifneq ($(PLATFORM), linux) # Safeguard: in case one of `pip download` will break, # it will produce a linux wheel for non-linux build (our github action machine is using linux). @@ -333,7 +352,11 @@ test: .PHONY: test-core test-core: +ifndef MODULE pytest -p no:pytest-blender test/core +else + pytest -p no:pytest-blender test/core/test_${MODULE}.py +endif .PHONY: test-bim test-bim: diff --git a/src/bonsai/bonsai/__init__.py b/src/bonsai/bonsai/__init__.py index ea0c4ca753..b4083b0eef 100644 --- a/src/bonsai/bonsai/__init__.py +++ b/src/bonsai/bonsai/__init__.py @@ -32,17 +32,16 @@ if IN_BLENDER: # and then as a bonsai-package. IN_PACKAGE = __package__ == "bonsai" -import re import platform -import traceback -import webbrowser -import uuid +import re import shutil +import traceback +import uuid +import webbrowser from collections import deque -from pathlib import Path -from typing import Union, Any from collections.abc import Generator - +from pathlib import Path +from typing import Any, Union last_commit_hash = "8888888" last_commit_date = "9999999" @@ -98,7 +97,7 @@ def initialize_bbim_semver(): def get_debug_info(): bbim_version = bbim_semver["version"] - return { + debug_info = { "os": platform.system(), "os_version": platform.version(), "python_version": platform.python_version(), @@ -113,6 +112,25 @@ def get_debug_info(): "last_error": last_error, } + # Add .blend file save information + if bpy.data.is_saved: + debug_info["blend_file_path"] = bpy.data.filepath + debug_info["blend_file_dirty"] = bpy.data.is_dirty + else: + debug_info["blend_file_path"] = "Not saved" + debug_info["blend_file_dirty"] = "N/A" + + # Add IFC file information + bim_props = tool.Blender.get_bim_props() + if bim_props.ifc_file: + debug_info["ifc_file_path"] = bim_props.ifc_file + debug_info["ifc_is_dirty"] = bim_props.is_dirty + else: + debug_info["ifc_file_path"] = "No IFC loaded" + debug_info["ifc_is_dirty"] = "N/A" + + return debug_info + def format_debug_info(info: dict): last_actions = "" diff --git a/src/bonsai/bonsai/bim/__init__.py b/src/bonsai/bonsai/bim/__init__.py index 79fc5fdd54..4302739aab 100644 --- a/src/bonsai/bonsai/bim/__init__.py +++ b/src/bonsai/bonsai/bim/__init__.py @@ -16,14 +16,16 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +import importlib import os +from collections.abc import Callable +from typing import Union + import bpy import bpy.utils.previews -import importlib -from bpy_extras.io_utils import ImportHelper, ExportHelper -from . import handler, ui, prop, operator -from typing import Union -from collections.abc import Callable +from bpy_extras.io_utils import ExportHelper, ImportHelper + +from . import handler, operator, prop, ui try: from bonsai.translations import translations_dict @@ -120,6 +122,7 @@ classes = [ operator.OpenUri, operator.ReloadIfcFile, operator.RevertClippingPlaneCut, + operator.SaveBlendMetadataFile, operator.SelectDir, operator.SelectIfcFile, operator.SelectURIAttribute, @@ -129,12 +132,16 @@ classes = [ prop.StrProperty, operator.BIM_OT_enum_property_search, # /!\ Register AFTER prop.StrProperty operator.BIM_OT_attribute_search_values, + operator.BIM_OT_manage_tab_visibility, + operator.BIM_OT_reset_ui_layout, prop.ObjProperty, prop.MultipleFileSelect, prop.Attribute, prop.ISODuration, prop.BIMAreaProperties, prop.BIMTabProperties, + prop.BIMTabVisibility, # Must be registered before BIMProperties + prop.BIMPanelVisibility, # Must be registered before BIMProperties prop.BIMProperties, prop.IfcParameter, prop.PsetQto, @@ -147,8 +154,14 @@ classes = [ prop.BIMSnapGroups, ui.BIM_UL_clipping_plane, ui.BIM_UL_generic, + ui.BIM_UL_tab_visibilities, + ui.BIM_UL_panel_visibilities, ui.DocPreferences, - ui.BIM_ADDON_preferences, + ui.GizmoPreferencesDoor, # Register before GizmoPreferences + ui.GizmoPreferencesWindow, # Register before GizmoPreferences + ui.GizmoPreferencesStair, # Register before GizmoPreferences + ui.GizmoPreferences, + # ui.DefaultParameters and ui.BIM_ADDON_preferences are registered separately after modules (see late_classes below) # Tabs panel ui.BIM_PT_tabs, # Project overview @@ -225,14 +238,33 @@ def on_register(scene): is_registering = False -def register(): - for cls in classes: +# Classes that need to be registered after modules (due to cross-module dependencies) +late_classes = ( + ui.DefaultParameters, # Register before BIM_ADDON_preferences + ui.BIM_ADDON_preferences, +) + + +def register_classes(classes_to_register): + for cls in classes_to_register: # Prevent crashes in Blender 4.4.0, see #6420. if issubclass(cls, (ImportHelper, ExportHelper)): assert getattr(cls, "bl_description", "") or cls.__doc__, cls bpy.utils.register_class(cls) + +def unregister_classes(classes_to_unregister): + for cls in reversed(classes_to_unregister): + if getattr(cls, "is_registered", None) is None: + bpy.utils.unregister_class(cls) + elif cls.is_registered: + bpy.utils.unregister_class(cls) + + +def register(): + register_classes(classes) + bpy.app.handlers.depsgraph_update_post.append(on_register) bpy.app.handlers.undo_post.append(handler.undo_post) bpy.app.handlers.redo_post.append(handler.redo_post) @@ -249,6 +281,7 @@ def register(): bpy.types.Curve.BIMMeshProperties = bpy.props.PointerProperty(type=prop.BIMMeshProperties) bpy.types.Camera.BIMMeshProperties = bpy.props.PointerProperty(type=prop.BIMMeshProperties) bpy.types.PointLight.BIMMeshProperties = bpy.props.PointerProperty(type=prop.BIMMeshProperties) + if hasattr(bpy.types, "UI_MT_button_context_menu"): bpy.types.UI_MT_button_context_menu.append(ui.draw_custom_context_menu) bpy.types.STATUSBAR_HT_header.append(ui.draw_statusbar) @@ -256,6 +289,9 @@ def register(): for mod in modules.values(): mod.register() + # Delay registering classes that depend on module classes + register_classes(late_classes) + wm = bpy.context.window_manager if wm.keyconfigs.addon: km = wm.keyconfigs.addon.keymaps.new(name="Window", space_type="EMPTY") @@ -287,11 +323,7 @@ def unregister(): bpy.utils.previews.remove(icons) - for cls in reversed(classes): - if getattr(cls, "is_registered", None) is None: - bpy.utils.unregister_class(cls) - elif cls.is_registered: - bpy.utils.unregister_class(cls) + unregister_classes(classes) bpy.app.handlers.load_post.remove(handler.load_post) bpy.app.handlers.load_post.remove(handler.loadIfcStore) @@ -306,6 +338,9 @@ def unregister(): bpy.types.UI_MT_button_context_menu.remove(ui.draw_custom_context_menu) bpy.types.STATUSBAR_HT_header.remove(ui.draw_statusbar) + # Unregister late classes before modules + unregister_classes(late_classes) + for mod in reversed(list(modules.values())): mod.unregister() diff --git a/src/bonsai/bonsai/bim/data/assets/default.css b/src/bonsai/bonsai/bim/data/assets/default.css index 1070bc8e91..68307f4c3f 100644 --- a/src/bonsai/bonsai/bim/data/assets/default.css +++ b/src/bonsai/bonsai/bim/data/assets/default.css @@ -20,6 +20,8 @@ * { stroke-linecap: round; stroke-linejoin: round; } text, tspan { /* 2.5mm */ fill: black; stroke: none; font-family: 'OpenGost Type B TT', 'DejaVu Sans Condensed', 'Liberation Sans', 'Arial Narrow', 'Arial'; font-size: 4.13px; } +a text, a tspan { fill: blue !important; text-decoration: underline;} +a:hover { cursor: pointer; } .cut { fill: black; stroke: black; stroke-linecap: 'round'; stroke-width: 0.35; fill-rule: evenodd; } .projection { fill: white; stroke: black; stroke-linecap: 'round'; stroke-width: 0.25; } .surface { stroke: none; fill: #fff; fill-rule: evenodd; } diff --git a/src/bonsai/bonsai/bim/data/assets/shading_styles.json b/src/bonsai/bonsai/bim/data/assets/shading_styles.json index 602b8a652e..cf88db2949 100644 --- a/src/bonsai/bonsai/bim/data/assets/shading_styles.json +++ b/src/bonsai/bonsai/bim/data/assets/shading_styles.json @@ -7,12 +7,6 @@ 1.0, 1.0 ], - "scene.render.bake_bias": 0.0010000000474974513, - "scene.render.bake_margin": 16, - "scene.render.bake_margin_type": "ADJACENT_FACES", - "scene.render.bake_samples": 256, - "scene.render.bake_type": "NORMALS", - "scene.render.bake_user_scale": 0.0, "scene.render.border_max_x": 1.0, "scene.render.border_max_y": 1.0, "scene.render.border_min_x": 0.0, @@ -54,11 +48,6 @@ "scene.render.stamp_note_text": "", "scene.render.threads": 20, "scene.render.threads_mode": "AUTO", - "scene.render.use_bake_clear": true, - "scene.render.use_bake_lores_mesh": false, - "scene.render.use_bake_multires": false, - "scene.render.use_bake_selected_to_active": false, - "scene.render.use_bake_user_scale": false, "scene.render.use_border": false, "scene.render.use_compositing": true, "scene.render.use_crop_to_border": false, @@ -253,12 +242,6 @@ 1.0, 1.0 ], - "scene.render.bake_bias": 0.0010000000474974513, - "scene.render.bake_margin": 16, - "scene.render.bake_margin_type": "ADJACENT_FACES", - "scene.render.bake_samples": 256, - "scene.render.bake_type": "NORMALS", - "scene.render.bake_user_scale": 0.0, "scene.render.border_max_x": 1.0, "scene.render.border_max_y": 1.0, "scene.render.border_min_x": 0.0, @@ -300,11 +283,6 @@ "scene.render.stamp_note_text": "", "scene.render.threads": 20, "scene.render.threads_mode": "AUTO", - "scene.render.use_bake_clear": true, - "scene.render.use_bake_lores_mesh": false, - "scene.render.use_bake_multires": false, - "scene.render.use_bake_selected_to_active": false, - "scene.render.use_bake_user_scale": false, "scene.render.use_border": false, "scene.render.use_compositing": true, "scene.render.use_crop_to_border": false, @@ -377,7 +355,7 @@ 1.0, 1.0 ], - "scene.display.shading.studio_light": "Default", + "scene.display.shading.studio_light": "forest.exr", "scene.display.shading.studiolight_background_alpha": 0.0, "scene.display.shading.studiolight_background_blur": 0.0, "scene.display.shading.studiolight_intensity": 0.0, @@ -503,18 +481,12 @@ "scene.eevee.shadow_ray_count": 1, "scene.eevee.shadow_step_count": 6, "scene.eevee.shadow_resolution_scale": 1.0, - "scene.render.bake_bias": 0.0010000000474974513, - "scene.render.bake_margin": 16, - "scene.render.bake_margin_type": "ADJACENT_FACES", - "scene.render.bake_samples": 256, - "scene.render.bake_type": "NORMALS", - "scene.render.bake_user_scale": 0.0, "scene.render.border_max_x": 1.0, "scene.render.border_max_y": 1.0, "scene.render.border_min_x": 0.0, "scene.render.border_min_y": 0.0, "scene.render.dither_intensity": 1.0, - "scene.render.engine": "BLENDER_EEVEE_NEXT", + "scene.render.engine": "BLENDER_EEVEE", "scene.render.film_transparent": false, "scene.render.filter_size": 1.5, "scene.render.fps": 24, @@ -550,11 +522,6 @@ "scene.render.stamp_note_text": "", "scene.render.threads": 20, "scene.render.threads_mode": "AUTO", - "scene.render.use_bake_clear": true, - "scene.render.use_bake_lores_mesh": false, - "scene.render.use_bake_multires": false, - "scene.render.use_bake_selected_to_active": false, - "scene.render.use_bake_user_scale": false, "scene.render.use_border": false, "scene.render.use_compositing": true, "scene.render.use_crop_to_border": false, @@ -627,7 +594,7 @@ 0.800000011920929, 0.800000011920929 ], - "scene.display.shading.studio_light": "Default", + "scene.display.shading.studio_light": "forest.exr", "scene.display.shading.studiolight_background_alpha": 0.0, "scene.display.shading.studiolight_background_blur": 0.0, "scene.display.shading.studiolight_intensity": 0.0, diff --git a/src/bonsai/bonsai/bim/data/webui/sioserver.py b/src/bonsai/bonsai/bim/data/webui/sioserver.py index 4701268232..91c3c4e8eb 100644 --- a/src/bonsai/bonsai/bim/data/webui/sioserver.py +++ b/src/bonsai/bonsai/bim/data/webui/sioserver.py @@ -1,6 +1,5 @@ -import sys import os - +import sys bonsai_lib_path = os.environ.get("BONSAI_LIB_PATH") bonsai_version = os.environ.get("BONSAI_VERSION") @@ -9,13 +8,14 @@ if bonsai_lib_path: sys.path.insert(0, bonsai_lib_path) import argparse -from aiohttp import web -import socketio -import pystache -import json import base64 +import json import xml.etree.ElementTree as ET +import pystache +import socketio +from aiohttp import web + sio_port = 8080 # default port sio = socketio.AsyncServer(cors_allowed_origins="*", async_mode="aiohttp", max_http_buffer_size=10000000) diff --git a/src/bonsai/bonsai/bim/export_ifc.py b/src/bonsai/bonsai/bim/export_ifc.py index d507481141..7295c72e34 100644 --- a/src/bonsai/bonsai/bim/export_ifc.py +++ b/src/bonsai/bonsai/bim/export_ifc.py @@ -17,26 +17,30 @@ # along with Bonsai. If not, see . from __future__ import annotations -import os -import bpy -import json + import datetime -import zipfile +import json +import os import tempfile -import ifcopenshell -import ifcopenshell.api -import ifcopenshell.util.placement -import ifcopenshell.util.unit -import bonsai.tool as tool -import bonsai.core.geometry -import bonsai.core.aggregate -import bonsai.core.spatial -import bonsai.core.style -from bonsai.bim.ifc import IfcStore -from mathutils import Vector -from typing import Union +import zipfile from logging import Logger from math import radians +from typing import Union + +import bpy +import ifcopenshell +import ifcopenshell.api +import ifcopenshell.util.element +import ifcopenshell.util.placement +import ifcopenshell.util.unit +from mathutils import Vector + +import bonsai.core.aggregate +import bonsai.core.geometry +import bonsai.core.spatial +import bonsai.core.style +import bonsai.tool as tool +from bonsai.bim.ifc import IfcStore class IfcExporter: diff --git a/src/bonsai/bonsai/bim/handler.py b/src/bonsai/bonsai/bim/handler.py index c7cb10cdde..231b44c671 100644 --- a/src/bonsai/bonsai/bim/handler.py +++ b/src/bonsai/bonsai/bim/handler.py @@ -17,26 +17,31 @@ # along with Bonsai. If not, see . import os +import weakref +from collections.abc import Callable +from math import cos +from typing import Union + import bpy +import ifcopenshell.api.owner.settings import ifcopenshell.util.element import ifcopenshell.util.representation import ifcopenshell.util.unit -import ifcopenshell.api.owner.settings +from bpy.app.handlers import persistent +from mathutils import Vector + import bonsai.bim import bonsai.tool as tool -import weakref -from bpy.app.handlers import persistent from bonsai.bim.ifc import IfcStore -from bonsai.bim.module.model.data import AuthoringData from bonsai.bim.module.aggregate.decorator import AggregateDecorator from bonsai.bim.module.georeference.decorator import GeoreferenceDecorator -from bonsai.bim.module.model.decorator import WallAxisDecorator, SlabDirectionDecorator, BoundingBoxDecorator +from bonsai.bim.module.model.data import AuthoringData +from bonsai.bim.module.model.decorator import ( + BoundingBoxDecorator, + SlabDirectionDecorator, + WallAxisDecorator, +) from bonsai.bim.module.nest.decorator import NestDecorator -from mathutils import Vector -from math import cos -from typing import Union -from collections.abc import Callable - cwd = os.path.dirname(os.path.realpath(__file__)) global_subscription_owner = object() @@ -202,8 +207,8 @@ def refresh_ui_data(): Note that calling non-ifc-operators by itself doesn't refresh the UI data and it need to be refreshed manually if needed. """ - from bonsai.bim import modules import bonsai.bim.ui + from bonsai.bim import modules bonsai.bim.ui.refresh() diff --git a/src/bonsai/bonsai/bim/helper.py b/src/bonsai/bonsai/bim/helper.py index 49f49582b4..9267134988 100644 --- a/src/bonsai/bonsai/bim/helper.py +++ b/src/bonsai/bonsai/bim/helper.py @@ -17,24 +17,31 @@ # along with Bonsai. If not, see . from __future__ import annotations + import importlib -import bpy import json +from collections.abc import Callable, Iterable, Sequence +from types import EllipsisType +from typing import TYPE_CHECKING, Any, Optional, Union + +import bpy import ifcopenshell import ifcopenshell.ifcopenshell_wrapper as W import ifcopenshell.util.attribute import ifcopenshell.util.element import ifcopenshell.util.unit -from ifcopenshell.util.doc import get_attribute_doc, get_predefined_type_doc, get_property_doc +from ifcopenshell.util.doc import ( + get_attribute_doc, + get_predefined_type_doc, + get_property_doc, +) + import bonsai.tool as tool -from types import EllipsisType -from typing import Optional, Any, Union, TYPE_CHECKING -from collections.abc import Callable, Iterable, Sequence if TYPE_CHECKING: import bonsai.bim.prop - from bonsai.bim.prop import Attribute from bonsai.bim.module.search.prop import BIMFilterGroup + from bonsai.bim.prop import Attribute # ImportCallback return values: # - None - property should be imported by default workflow @@ -428,7 +435,11 @@ def get_enum_items( else: annotations_data = data - prop = annotations_data.__annotations__[prop_name] + try: + annotations = annotations_data.__annotations__ + except AttributeError: + annotations = type(annotations_data).__annotations__ + prop = annotations[prop_name] items = prop.keywords.get("items") if items is None: return @@ -498,6 +509,8 @@ def draw_filter( if data.data["saved_searches"]: row.operator("bim.load_search", text="", icon="IMPORT").module = module row.operator("bim.save_search", text="", icon="EXPORT").module = module + if data.data["saved_searches"]: + row.operator("bim.remove_search", text="", icon="REMOVE").module = module if module != "search": if module == "drawing_include": row.operator("bim.edit_element_filter", icon="CHECKMARK", text="").filter_mode = "INCLUDE" @@ -505,62 +518,272 @@ def draw_filter( row.operator("bim.edit_element_filter", icon="CHECKMARK", text="").filter_mode = "EXCLUDE" row.operator("bim.enable_editing_element_filter", icon="CANCEL", text="").filter_mode = "NONE" row = layout.row(align=True) - row.operator("bim.add_filter_group", text="Add Search Group", icon="ADD").module = module - row.operator("bim.edit_filter_query", text="", icon="FILTER").module = module + preferences = tool.Blender.get_addon_preferences() + if not preferences.chain_filter_with_set_operations: + row.operator("bim.add_filter_group", text="Add Search Group", icon="ADD").module = module + else: + row.prop(sprops, "facet", text="") + op = row.operator("bim.add_filter", text="Add Filter", icon="ADD") + op.type = sprops.facet + op.index = 0 + op.module = module + op = row.operator("bim.edit_filter_query", text="", icon="FILTER") + if "module" in op.bl_rna.properties: + op.module = module for i, filter_group in enumerate(filter_groups): box = layout.box() - row = box.row(align=True) - row.prop(sprops, "facet", text="") - op = row.operator("bim.add_filter", text="Add Filter", icon="ADD") - op.type = sprops.facet - op.index = i - op.module = module - op = row.operator("bim.remove_filter_group", text="", icon="X") - op.index = i - op.module = module + preferences = tool.Blender.get_addon_preferences() + if not preferences.chain_filter_with_set_operations: + row = box.row(align=True) + row.prop(sprops, "facet", text="") + op = row.operator("bim.add_filter", text="Add Filter", icon="ADD") + op.type = sprops.facet + op.index = i + op.module = module + op = row.operator("bim.remove_filter_group", text="", icon="X") + op.index = i + op.module = module for j, ifc_filter in enumerate(filter_group.filters): if ifc_filter.type == "entity": row = box.row(align=True) + preferences = tool.Blender.get_addon_preferences() + show_mode_toggle = preferences.chain_filter_with_set_operations and j > 0 + if show_mode_toggle: + mode_icons = {"ADD": "ADD", "SUBTRACT": "REMOVE", "FILTER": "FILTER"} + op = row.operator( + "bim.toggle_filter_inclusion", + icon=mode_icons.get(ifc_filter.filter_mode, "ADD"), + text="", + depress=ifc_filter.filter_mode != "ADD", + ) + op.group_index = i + op.filter_index = j + op.module = module row.prop(ifc_filter, "value", text="", icon="FILE_3D") + op = row.operator("bim.filter_value_suggestions", text="", icon="VIEWZOOM") + op.group_index = i + op.filter_index = j + op.module = module + op.filter_type = ifc_filter.type elif ifc_filter.type == "attribute": row = box.row(align=True) + if tool.Blender.get_addon_preferences().chain_filter_with_set_operations and j > 0: + mode_icons = {"ADD": "ADD", "SUBTRACT": "REMOVE", "FILTER": "FILTER"} + op = row.operator( + "bim.toggle_filter_inclusion", + icon=mode_icons.get(ifc_filter.filter_mode, "ADD"), + text="", + depress=ifc_filter.filter_mode != "ADD", + ) + op.group_index = i + op.filter_index = j + op.module = module row.prop(ifc_filter, "name", text="", icon="COPY_ID") + op = row.operator("bim.filter_value_suggestions", text="", icon="VIEWZOOM") + op.group_index = i + op.filter_index = j + op.module = module + op.filter_type = ifc_filter.type + op.suggestion_type = "attribute_name" row.prop(ifc_filter, "value", text="") + if ifc_filter.name: + op = row.operator("bim.filter_value_suggestions", text="", icon="VIEWZOOM") + op.group_index = i + op.filter_index = j + op.module = module + op.filter_type = ifc_filter.type + op.suggestion_type = "attribute_value" elif ifc_filter.type == "type": row = box.row(align=True) + if tool.Blender.get_addon_preferences().chain_filter_with_set_operations and j > 0: + mode_icons = {"ADD": "ADD", "SUBTRACT": "REMOVE", "FILTER": "FILTER"} + op = row.operator( + "bim.toggle_filter_inclusion", + icon=mode_icons.get(ifc_filter.filter_mode, "ADD"), + text="", + depress=ifc_filter.filter_mode != "ADD", + ) + op.group_index = i + op.filter_index = j + op.module = module row.prop(ifc_filter, "value", text="", icon="FILE_VOLUME") + op = row.operator("bim.filter_value_suggestions", text="", icon="VIEWZOOM") + op.group_index = i + op.filter_index = j + op.module = module + op.filter_type = ifc_filter.type elif ifc_filter.type == "material": row = box.row(align=True) + if tool.Blender.get_addon_preferences().chain_filter_with_set_operations and j > 0: + mode_icons = {"ADD": "ADD", "SUBTRACT": "REMOVE", "FILTER": "FILTER"} + op = row.operator( + "bim.toggle_filter_inclusion", + icon=mode_icons.get(ifc_filter.filter_mode, "ADD"), + text="", + depress=ifc_filter.filter_mode != "ADD", + ) + op.group_index = i + op.filter_index = j + op.module = module row.prop(ifc_filter, "value", text="", icon="MATERIAL") + op = row.operator("bim.filter_value_suggestions", text="", icon="VIEWZOOM") + op.group_index = i + op.filter_index = j + op.module = module + op.filter_type = ifc_filter.type elif ifc_filter.type == "property": row = box.row(align=True) + if tool.Blender.get_addon_preferences().chain_filter_with_set_operations and j > 0: + mode_icons = {"ADD": "ADD", "SUBTRACT": "REMOVE", "FILTER": "FILTER"} + op = row.operator( + "bim.toggle_filter_inclusion", + icon=mode_icons.get(ifc_filter.filter_mode, "ADD"), + text="", + depress=ifc_filter.filter_mode != "ADD", + ) + op.group_index = i + op.filter_index = j + op.module = module row.prop(ifc_filter, "pset", text="", icon="PROPERTIES") + op = row.operator("bim.filter_value_suggestions", text="", icon="VIEWZOOM") + op.group_index = i + op.filter_index = j + op.module = module + op.filter_type = ifc_filter.type + op.suggestion_type = "pset" row.prop(ifc_filter, "name", text="") + if ifc_filter.pset: + op = row.operator("bim.filter_value_suggestions", text="", icon="VIEWZOOM") + op.group_index = i + op.filter_index = j + op.module = module + op.filter_type = ifc_filter.type + op.suggestion_type = "property_name" row.prop(ifc_filter, "comparison", text="") row.prop(ifc_filter, "value", text="") + if ifc_filter.pset and ifc_filter.name: + op = row.operator("bim.filter_value_suggestions", text="", icon="VIEWZOOM") + op.group_index = i + op.filter_index = j + op.module = module + op.filter_type = ifc_filter.type + op.suggestion_type = "property_value" elif ifc_filter.type == "classification": row = box.row(align=True) + if tool.Blender.get_addon_preferences().chain_filter_with_set_operations and j > 0: + mode_icons = {"ADD": "ADD", "SUBTRACT": "REMOVE", "FILTER": "FILTER"} + op = row.operator( + "bim.toggle_filter_inclusion", + icon=mode_icons.get(ifc_filter.filter_mode, "ADD"), + text="", + depress=ifc_filter.filter_mode != "ADD", + ) + op.group_index = i + op.filter_index = j + op.module = module row.prop(ifc_filter, "value", text="", icon="OUTLINER") + op = row.operator("bim.filter_value_suggestions", text="", icon="VIEWZOOM") + op.group_index = i + op.filter_index = j + op.module = module + op.filter_type = ifc_filter.type elif ifc_filter.type == "location": row = box.row(align=True) + if tool.Blender.get_addon_preferences().chain_filter_with_set_operations and j > 0: + mode_icons = {"ADD": "ADD", "SUBTRACT": "REMOVE", "FILTER": "FILTER"} + op = row.operator( + "bim.toggle_filter_inclusion", + icon=mode_icons.get(ifc_filter.filter_mode, "ADD"), + text="", + depress=ifc_filter.filter_mode != "ADD", + ) + op.group_index = i + op.filter_index = j + op.module = module row.prop(ifc_filter, "value", text="", icon="PACKAGE") + op = row.operator("bim.filter_value_suggestions", text="", icon="VIEWZOOM") + op.group_index = i + op.filter_index = j + op.module = module + op.filter_type = ifc_filter.type elif ifc_filter.type == "group": row = box.row(align=True) + if tool.Blender.get_addon_preferences().chain_filter_with_set_operations and j > 0: + mode_icons = {"ADD": "ADD", "SUBTRACT": "REMOVE", "FILTER": "FILTER"} + op = row.operator( + "bim.toggle_filter_inclusion", + icon=mode_icons.get(ifc_filter.filter_mode, "ADD"), + text="", + depress=ifc_filter.filter_mode != "ADD", + ) + op.group_index = i + op.filter_index = j + op.module = module row.prop(ifc_filter, "value", text="", icon="OUTLINER_COLLECTION") + op = row.operator("bim.filter_value_suggestions", text="", icon="VIEWZOOM") + op.group_index = i + op.filter_index = j + op.module = module + op.filter_type = ifc_filter.type elif ifc_filter.type == "parent": row = box.row(align=True) + if tool.Blender.get_addon_preferences().chain_filter_with_set_operations and j > 0: + mode_icons = {"ADD": "ADD", "SUBTRACT": "REMOVE", "FILTER": "FILTER"} + op = row.operator( + "bim.toggle_filter_inclusion", + icon=mode_icons.get(ifc_filter.filter_mode, "ADD"), + text="", + depress=ifc_filter.filter_mode != "ADD", + ) + op.group_index = i + op.filter_index = j + op.module = module row.prop(ifc_filter, "value", text="", icon="FILE_PARENT") + op = row.operator("bim.filter_value_suggestions", text="", icon="VIEWZOOM") + op.group_index = i + op.filter_index = j + op.module = module + op.filter_type = ifc_filter.type elif ifc_filter.type == "query": row = box.row(align=True) + if tool.Blender.get_addon_preferences().chain_filter_with_set_operations and j > 0: + mode_icons = {"ADD": "ADD", "SUBTRACT": "REMOVE", "FILTER": "FILTER"} + op = row.operator( + "bim.toggle_filter_inclusion", + icon=mode_icons.get(ifc_filter.filter_mode, "ADD"), + text="", + depress=ifc_filter.filter_mode != "ADD", + ) + op.group_index = i + op.filter_index = j + op.module = module row.prop(ifc_filter, "name", text="", icon="POINTCLOUD_DATA") row.prop(ifc_filter, "comparison", text="") row.prop(ifc_filter, "value", text="") elif ifc_filter.type == "instance": row = box.row(align=True) + preferences = tool.Blender.get_addon_preferences() + show_mode_toggle = preferences.chain_filter_with_set_operations and j > 0 + if show_mode_toggle: + mode_icons = {"ADD": "ADD", "SUBTRACT": "REMOVE", "FILTER": "FILTER"} + op = row.operator( + "bim.toggle_filter_inclusion", + icon=mode_icons.get(ifc_filter.filter_mode, "ADD"), + text="", + depress=ifc_filter.filter_mode != "ADD", + ) + op.group_index = i + op.filter_index = j + op.module = module row.prop(ifc_filter, "value", text="", icon="GRIP") + op = row.operator("bim.filter_value_suggestions", text="", icon="VIEWZOOM") + op.group_index = i + op.filter_index = j + op.module = module + op.filter_type = ifc_filter.type op = row.operator("bim.select_filter_elements", text="", icon="EYEDROPPER") op.group_index = i op.index = j diff --git a/src/bonsai/bonsai/bim/ifc.py b/src/bonsai/bonsai/bim/ifc.py index 881de8adf9..f7d23e1dbe 100644 --- a/src/bonsai/bonsai/bim/ifc.py +++ b/src/bonsai/bonsai/bim/ifc.py @@ -17,26 +17,28 @@ # along with Bonsai. If not, see . from __future__ import annotations -import os -import bpy -import uuid -import shutil + import hashlib -import zipfile +import os +import shutil import tempfile import traceback +import uuid +import zipfile +from collections.abc import Callable +from pathlib import Path +from typing import Literal, NotRequired, Optional, TypedDict, Union + +import bpy import ifcopenshell import ifcopenshell.geom import ifcopenshell.ifcopenshell_wrapper +from ifcopenshell.file import UndoSystemError + import bonsai import bonsai.bim.handler import bonsai.tool as tool -from ifcopenshell.file import UndoSystemError -from pathlib import Path from bonsai.tool.brick import BrickStore -from typing import Union, Optional, TypedDict, NotRequired, Literal -from collections.abc import Callable - IFC_CONNECTED_TYPE = Union[bpy.types.Material, bpy.types.Object] diff --git a/src/bonsai/bonsai/bim/import_ifc.py b/src/bonsai/bonsai/bim/import_ifc.py index 1765b1ca24..6e04800dd4 100644 --- a/src/bonsai/bonsai/bim/import_ifc.py +++ b/src/bonsai/bonsai/bim/import_ifc.py @@ -17,32 +17,36 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy -import time + import json -import ifcpatch import logging -import traceback -import mathutils -import numpy as np -import numpy.typing as npt import multiprocessing +import time +import traceback +from collections.abc import Iterable +from typing import Any, Literal, Optional, Union + +import bpy import ifcopenshell +import ifcopenshell.api.pset import ifcopenshell.geom import ifcopenshell.ifcopenshell_wrapper as W -import ifcopenshell.util.unit import ifcopenshell.util.element import ifcopenshell.util.geolocation import ifcopenshell.util.placement import ifcopenshell.util.representation import ifcopenshell.util.shape -import bonsai.tool as tool -from bonsai.bim.ifc import IfcStore, IFC_CONNECTED_TYPE -from bonsai.tool.loader import OBJECT_DATA_TYPE -from typing import Union, Optional, Any, Literal -from collections.abc import Iterable +import ifcopenshell.util.unit +import ifcpatch +import mathutils +import numpy as np +import numpy.typing as npt from ifcopenshell.util.shape import MatrixType +import bonsai.tool as tool +from bonsai.bim.ifc import IFC_CONNECTED_TYPE, IfcStore +from bonsai.tool.loader import OBJECT_DATA_TYPE + class MaterialCreator: mesh: bpy.types.Mesh @@ -888,6 +892,48 @@ class IfcImporter: obj, tool.Loader.apply_blender_offset_to_matrix_world(obj, self.get_element_matrix(element)) ) + if element.is_a("IfcAnnotation") and getattr(element, "ObjectType", None) == "IMAGE": + image = None + if obj.data and obj.data.materials and obj.data.materials[0]: + material = obj.data.materials[0] + if material.use_nodes and material.node_tree: + for node in material.node_tree.nodes: + if node.type == "TEX_IMAGE" and node.image: + image = node.image + break + if image: + import bmesh + + bm = bmesh.new() + bm.from_mesh(obj.data) + if not bm.loops.layers.uv: + uv_layer = bm.loops.layers.uv.new() + else: + uv_layer = bm.loops.layers.uv.active + + if bm.verts: + min_x = min(v.co.x for v in bm.verts) + max_x = max(v.co.x for v in bm.verts) + min_y = min(v.co.y for v in bm.verts) + max_y = max(v.co.y for v in bm.verts) + + width = max_x - min_x + height = max_y - min_y + + for face in bm.faces: + for loop in face.loops: + vert = loop.vert + u = (vert.co.x - min_x) / width if width > 0 else 0.5 + v = (vert.co.y - min_y) / height if height > 0 else 0.5 + + u = max(0.0, min(1.0, u)) + v = max(0.0, min(1.0, v)) + + loop[uv_layer].uv = (u, v) + + bm.to_mesh(obj.data) + bm.free() + obj.data.update() return obj def load_existing_meshes(self) -> None: @@ -1237,8 +1283,7 @@ class IfcImporter: if not pset: return if "Aggregate_Index" not in pset.keys(): - ifcopenshell.api.run( - "pset.edit_pset", + ifcopenshell.api.pset.edit_pset( self.file, pset=self.file.by_id(pset["id"]), properties={"Aggregate_Index": aggregate_index, "Name": name}, @@ -1261,7 +1306,7 @@ class IfcImportSettings: self.should_load_geometry = True self.should_clean_mesh = False self.should_cache = True - self.deflection_tolerance = 0.001 + self.deflection_tolerance = 0.05 # Default is 0.001, but I find this to be more practical self.angular_tolerance = 0.5 self.void_limit = 30 self.style_limit = 300 diff --git a/src/bonsai/bonsai/bim/module/aggregate/__init__.py b/src/bonsai/bonsai/bim/module/aggregate/__init__.py index daafdf201c..9f081ecaec 100644 --- a/src/bonsai/bonsai/bim/module/aggregate/__init__.py +++ b/src/bonsai/bonsai/bim/module/aggregate/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.BIM_OT_add_aggregate, diff --git a/src/bonsai/bonsai/bim/module/aggregate/data.py b/src/bonsai/bonsai/bim/module/aggregate/data.py index ad58f6defb..22c7505bf3 100644 --- a/src/bonsai/bonsai/bim/module/aggregate/data.py +++ b/src/bonsai/bonsai/bim/module/aggregate/data.py @@ -16,11 +16,13 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bonsai.tool as tool -import ifcopenshell.util.element from typing import Union +import bpy +import ifcopenshell.util.element + +import bonsai.tool as tool + def refresh(): AggregateData.is_loaded = False diff --git a/src/bonsai/bonsai/bim/module/aggregate/decorator.py b/src/bonsai/bonsai/bim/module/aggregate/decorator.py index 877e7f41e0..080f965bf8 100644 --- a/src/bonsai/bonsai/bim/module/aggregate/decorator.py +++ b/src/bonsai/bonsai/bim/module/aggregate/decorator.py @@ -21,11 +21,12 @@ import bpy import gpu import ifcopenshell import ifcopenshell.util.element -import bonsai.tool as tool from bpy.types import SpaceView3D from bpy_extras import view3d_utils from gpu_extras.batch import batch_for_shader from mathutils import Vector + +import bonsai.tool as tool from bonsai.bim.module.geometry.decorator import ItemDecorator diff --git a/src/bonsai/bonsai/bim/module/aggregate/operator.py b/src/bonsai/bonsai/bim/module/aggregate/operator.py index 54147c9e34..e9f23afece 100644 --- a/src/bonsai/bonsai/bim/module/aggregate/operator.py +++ b/src/bonsai/bonsai/bim/module/aggregate/operator.py @@ -16,16 +16,19 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.group import ifcopenshell.api.pset +import ifcopenshell.api.root import ifcopenshell.util.element -import bonsai.tool as tool + import bonsai.core.aggregate as core import bonsai.core.spatial -from typing import TYPE_CHECKING +import bonsai.tool as tool class BIM_OT_aggregate_assign_object(bpy.types.Operator, tool.Ifc.Operator): @@ -126,6 +129,10 @@ class BIM_OT_aggregate_unassign_object(bpy.types.Operator, tool.Ifc.Operator): # Second pass: delete aggregates that now have no parts deleted_aggregates = [] for aggregate in aggregates_to_check: + # Skip spatial elements - they should not be deleted even if empty + if aggregate.is_a("IfcSpatialElement"): + continue + related_objects = ifcopenshell.util.element.get_parts(aggregate) if len(related_objects) == 0: aggregate_name = aggregate.Name or f"{aggregate.is_a()} #{aggregate.id()}" @@ -217,7 +224,7 @@ class BIM_OT_add_aggregate(bpy.types.Operator, tool.Ifc.Operator): tool.Collector, tool.Spatial, container=current_container, - element_obj=aggregate, + objs=[aggregate], ) core.assign_object(tool.Ifc, tool.Aggregate, tool.Collector, relating_obj=aggregate, related_obj=obj) @@ -321,6 +328,21 @@ class BIM_OT_select_aggregate(bpy.types.Operator): aggregate_obj.select_set(True) bpy.context.view_layer.objects.active = aggregate_obj + # copy selection query to clipboard + result = "" + for aggregate in all_parts: + aggregate_class = aggregate.is_a() + aggregate_name = aggregate.Name or "" + query = f'parent = "{aggregate_name}"' + if not result: + result = query + else: + result += f" + {query}" + + if result: + bpy.context.window_manager.clipboard = result + self.report({"INFO"}, f"({result}) was copied to the clipboard.") + self.one_level_deep = False # <-- forcibly reset return {"FINISHED"} diff --git a/src/bonsai/bonsai/bim/module/aggregate/prop.py b/src/bonsai/bonsai/bim/module/aggregate/prop.py index 03a3d0f533..241663882f 100644 --- a/src/bonsai/bonsai/bim/module/aggregate/prop.py +++ b/src/bonsai/bonsai/bim/module/aggregate/prop.py @@ -16,24 +16,29 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Union + import bpy import ifcopenshell.util.element -import bonsai.tool as tool -from bonsai.bim.prop import StrProperty, Attribute -from bonsai.bim.module.spatial.data import SpatialData -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from bonsai.bim.module.aggregate.decorator import AggregateDecorator, AggregateModeDecorator -from typing import TYPE_CHECKING, Union +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.module.aggregate.decorator import ( + AggregateDecorator, + AggregateModeDecorator, +) +from bonsai.bim.module.spatial.data import SpatialData +from bonsai.bim.prop import Attribute, StrProperty def can_aggregate(relating_obj: bpy.types.Object, related_obj: bpy.types.Object) -> bool: diff --git a/src/bonsai/bonsai/bim/module/aggregate/ui.py b/src/bonsai/bonsai/bim/module/aggregate/ui.py index e9c596f9ac..d693843401 100644 --- a/src/bonsai/bonsai/bim/module/aggregate/ui.py +++ b/src/bonsai/bonsai/bim/module/aggregate/ui.py @@ -17,10 +17,11 @@ # along with Bonsai. If not, see . from bpy.types import Panel + +import bonsai.tool as tool +from bonsai.bim.ifc import IfcStore from bonsai.bim.module.aggregate.data import AggregateData from bonsai.bim.module.group.data import GroupsData, ObjectGroupsData -from bonsai.bim.ifc import IfcStore -import bonsai.tool as tool class BIM_PT_aggregate(Panel): diff --git a/src/bonsai/bonsai/bim/module/alignment/operator.py b/src/bonsai/bonsai/bim/module/alignment/operator.py index 58c139b639..0705dcb1b9 100644 --- a/src/bonsai/bonsai/bim/module/alignment/operator.py +++ b/src/bonsai/bonsai/bim/module/alignment/operator.py @@ -18,25 +18,25 @@ # pyright: reportUnnecessaryTypeIgnoreComment=error +import calendar +import json import os - -import ifcopenshell.api.alignment +import time +from datetime import datetime import bpy -import json -import time -import calendar -import isodate -import bonsai.core.sequence as core -import bonsai.tool as tool -import bonsai.bim.module.sequence.helper as helper +import ifcopenshell.api.alignment import ifcopenshell.api.spatial import ifcopenshell.geom -import ifcopenshell.util.sequence import ifcopenshell.util.selector -from datetime import datetime -from dateutil import parser, relativedelta +import ifcopenshell.util.sequence +import isodate from bpy_extras.io_utils import ImportHelper +from dateutil import parser, relativedelta + +import bonsai.bim.module.sequence.helper as helper +import bonsai.core.sequence as core +import bonsai.tool as tool class ImportAlignmentCSV(bpy.types.Operator, tool.Ifc.Operator, ImportHelper): diff --git a/src/bonsai/bonsai/bim/module/attribute/__init__.py b/src/bonsai/bonsai/bim/module/attribute/__init__.py index 7348a2cffb..1e1402d6f5 100644 --- a/src/bonsai/bonsai/bim/module/attribute/__init__.py +++ b/src/bonsai/bonsai/bim/module/attribute/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.EnableEditingAttributes, diff --git a/src/bonsai/bonsai/bim/module/attribute/data.py b/src/bonsai/bonsai/bim/module/attribute/data.py index 8c5000a128..32f6f895ce 100644 --- a/src/bonsai/bonsai/bim/module/attribute/data.py +++ b/src/bonsai/bonsai/bim/module/attribute/data.py @@ -18,6 +18,7 @@ import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/bim/module/attribute/operator.py b/src/bonsai/bonsai/bim/module/attribute/operator.py index fb39efe91e..13901c0f81 100644 --- a/src/bonsai/bonsai/bim/module/attribute/operator.py +++ b/src/bonsai/bonsai/bim/module/attribute/operator.py @@ -16,22 +16,25 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import json +from typing import TYPE_CHECKING, Any, Literal, Union + +import bpy import ifcopenshell import ifcopenshell.api.attribute import ifcopenshell.guid import ifcopenshell.util.element + import bonsai.bim.helper -import bonsai.tool as tool import bonsai.core.attribute as core import bonsai.core.spatial -from typing import TYPE_CHECKING, Any, Union, Literal +import bonsai.tool as tool if TYPE_CHECKING: - from bonsai.bim.prop import Attribute import bpy.stub_internal.rna_enums as rna_enums + from bonsai.bim.prop import Attribute + def get_objs_for_operation( operator_properties: "AttributesOperator", context: bpy.types.Context diff --git a/src/bonsai/bonsai/bim/module/attribute/prop.py b/src/bonsai/bonsai/bim/module/attribute/prop.py index 97246cf7ce..98ffb00c5c 100644 --- a/src/bonsai/bonsai/bim/module/attribute/prop.py +++ b/src/bonsai/bonsai/bim/module/attribute/prop.py @@ -16,21 +16,23 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Union + import bpy -import bonsai.tool as tool -from bonsai.bim.prop import StrProperty, Attribute -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Union +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.prop import Attribute, StrProperty class BIMAttributeProperties(PropertyGroup): diff --git a/src/bonsai/bonsai/bim/module/attribute/ui.py b/src/bonsai/bonsai/bim/module/attribute/ui.py index d0b109a7a8..84813e8d1e 100644 --- a/src/bonsai/bonsai/bim/module/attribute/ui.py +++ b/src/bonsai/bonsai/bim/module/attribute/ui.py @@ -17,12 +17,15 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bonsai.bim.helper + +from typing import TYPE_CHECKING + import bpy.types from bpy.types import Panel -from bonsai.bim.module.attribute.data import AttributesData + +import bonsai.bim.helper import bonsai.tool as tool -from typing import TYPE_CHECKING +from bonsai.bim.module.attribute.data import AttributesData if TYPE_CHECKING: from bonsai.bim.module.attribute.prop import BIMExplorerProperties, ExplorerEntity @@ -58,7 +61,7 @@ def draw_ui(context: bpy.types.Context, layout: bpy.types.UILayout, attributes) class BIM_PT_object_attributes(Panel): - bl_label = "Attributes" + bl_label = "Object Attributes" bl_idname = "BIM_PT_object_attributes" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" diff --git a/src/bonsai/bonsai/bim/module/augin/__init__.py b/src/bonsai/bonsai/bim/module/augin/__init__.py index 8b8009c4e6..bff5e9449d 100644 --- a/src/bonsai/bonsai/bim/module/augin/__init__.py +++ b/src/bonsai/bonsai/bim/module/augin/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( prop.AuginProperties, diff --git a/src/bonsai/bonsai/bim/module/augin/operator.py b/src/bonsai/bonsai/bim/module/augin/operator.py index b578beb554..10d802569a 100644 --- a/src/bonsai/bonsai/bim/module/augin/operator.py +++ b/src/bonsai/bonsai/bim/module/augin/operator.py @@ -16,14 +16,16 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +import datetime import os -import bpy -import string import random import shutil -import requests +import string import tempfile -import datetime + +import bpy +import requests + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/bim/module/augin/ui.py b/src/bonsai/bonsai/bim/module/augin/ui.py index 65ca3ac7f9..dfd6e49730 100644 --- a/src/bonsai/bonsai/bim/module/augin/ui.py +++ b/src/bonsai/bonsai/bim/module/augin/ui.py @@ -17,6 +17,7 @@ # along with Bonsai. If not, see . import bpy.types + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/bim/module/bcf/__init__.py b/src/bonsai/bonsai/bim/module/bcf/__init__.py index e7153974f4..000f343727 100644 --- a/src/bonsai/bonsai/bim/module/bcf/__init__.py +++ b/src/bonsai/bonsai/bim/module/bcf/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.ActivateBcfViewpoint, diff --git a/src/bonsai/bonsai/bim/module/bcf/bcfstore.py b/src/bonsai/bonsai/bim/module/bcf/bcfstore.py index 13be3faf1d..a1fec8aa6e 100644 --- a/src/bonsai/bonsai/bim/module/bcf/bcfstore.py +++ b/src/bonsai/bonsai/bim/module/bcf/bcfstore.py @@ -17,12 +17,14 @@ # along with Bonsai. If not, see . import os -import bpy +from typing import Union + import bcf import bcf.bcfxml import bcf.v2.bcfxml +import bpy + import bonsai.tool as tool -from typing import Union class BcfStore: diff --git a/src/bonsai/bonsai/bim/module/bcf/operator.py b/src/bonsai/bonsai/bim/module/bcf/operator.py index 1c6137e93b..b0a6f1f699 100644 --- a/src/bonsai/bonsai/bim/module/bcf/operator.py +++ b/src/bonsai/bonsai/bim/module/bcf/operator.py @@ -17,6 +17,20 @@ # along with Bonsai. If not, see . import os +import tempfile +import uuid +import webbrowser +from math import atan, cos, degrees, radians, sin, tan +from pathlib import Path + +import bcf +import bcf.agnostic.topic +import bcf.agnostic.visinfo +import bcf.bcfxml +import bcf.v2.bcfxml +import bcf.v2.model +import bcf.v2.topic +import bcf.v2.visinfo import bcf.v3 import bcf.v3.bcfxml import bcf.v3.document @@ -24,30 +38,18 @@ import bcf.v3.model import bcf.v3.topic import bcf.v3.visinfo import bpy -import bcf -import bcf.bcfxml -import bcf.v2.bcfxml -import bcf.v2.model -import bcf.v2.topic -import bcf.v2.visinfo -import bcf.agnostic.topic -import bcf.agnostic.visinfo -import uuid -import numpy as np -import tempfile -import webbrowser import ifcopenshell import ifcopenshell.util.geolocation import ifcopenshell.util.unit -import bonsai.tool as tool -import bonsai.bim.module.bcf.prop as bcf_prop -import bonsai.bim.module.bcf.bcfstore as bcfstore -from bpy_extras.io_utils import ImportHelper, ExportHelper -from pathlib import Path -from math import radians, degrees, atan, tan, cos, sin -from mathutils import Vector, Matrix, Euler, geometry +import numpy as np +from bpy_extras.io_utils import ExportHelper, ImportHelper +from mathutils import Euler, Matrix, Vector, geometry from xsdata.models.datatype import XmlDateTime +import bonsai.bim.module.bcf.bcfstore as bcfstore +import bonsai.bim.module.bcf.prop as bcf_prop +import bonsai.tool as tool + class NewBcfProject(bpy.types.Operator): bl_idname = "bim.new_bcf_project" diff --git a/src/bonsai/bonsai/bim/module/bcf/prop.py b/src/bonsai/bonsai/bim/module/bcf/prop.py index 6a01115821..b720a2ff74 100644 --- a/src/bonsai/bonsai/bim/module/bcf/prop.py +++ b/src/bonsai/bonsai/bim/module/bcf/prop.py @@ -16,24 +16,26 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bonsai.tool as tool -from . import bcfstore -from bonsai.bim.prop import StrProperty -from bpy.types import PropertyGroup -from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, - BoolProperty, - IntProperty, - FloatProperty, - FloatVectorProperty, - CollectionProperty, -) -from bcf.agnostic.extensions import get_extensions_attributes from typing import TYPE_CHECKING, Union +import bpy +from bcf.agnostic.extensions import get_extensions_attributes +from bpy.props import ( + BoolProperty, + CollectionProperty, + EnumProperty, + FloatProperty, + FloatVectorProperty, + IntProperty, + PointerProperty, + StringProperty, +) +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.prop import StrProperty + +from . import bcfstore bcfviewpoints_enum = None diff --git a/src/bonsai/bonsai/bim/module/bcf/ui.py b/src/bonsai/bonsai/bim/module/bcf/ui.py index d0d25ecd10..e3478f63cf 100644 --- a/src/bonsai/bonsai/bim/module/bcf/ui.py +++ b/src/bonsai/bonsai/bim/module/bcf/ui.py @@ -17,15 +17,19 @@ # along with Bonsai. If not, see . from __future__ import annotations + import os -import bpy -import bonsai.tool as tool -from . import bcfstore -from bpy.types import Panel from typing import TYPE_CHECKING +import bpy +from bpy.types import Panel + +import bonsai.tool as tool + +from . import bcfstore + if TYPE_CHECKING: - from bonsai.bim.module.bcf.prop import BcfTopic, BCFProperties + from bonsai.bim.module.bcf.prop import BCFProperties, BcfTopic class BIM_PT_bcf(Panel): diff --git a/src/bonsai/bonsai/bim/module/boundary/__init__.py b/src/bonsai/bonsai/bim/module/boundary/__init__.py index cf2f78a7da..fe11440adc 100644 --- a/src/bonsai/bonsai/bim/module/boundary/__init__.py +++ b/src/bonsai/bonsai/bim/module/boundary/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, operator, prop + +from . import operator, prop, ui classes = ( operator.AddBoundary, diff --git a/src/bonsai/bonsai/bim/module/boundary/data.py b/src/bonsai/bonsai/bim/module/boundary/data.py index e7f82caf4c..58ccadc713 100644 --- a/src/bonsai/bonsai/bim/module/boundary/data.py +++ b/src/bonsai/bonsai/bim/module/boundary/data.py @@ -17,6 +17,7 @@ # along with Bonsai. If not, see . import bpy + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/bim/module/boundary/decorator.py b/src/bonsai/bonsai/bim/module/boundary/decorator.py index c7875c94bf..1f5859824e 100644 --- a/src/bonsai/bonsai/bim/module/boundary/decorator.py +++ b/src/bonsai/bonsai/bim/module/boundary/decorator.py @@ -16,12 +16,13 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import gpu import bmesh -import bonsai.tool as tool +import gpu from bpy.types import SpaceView3D -from mathutils import Vector from gpu_extras.batch import batch_for_shader +from mathutils import Vector + +import bonsai.tool as tool class BoundaryDecorator: diff --git a/src/bonsai/bonsai/bim/module/boundary/operator.py b/src/bonsai/bonsai/bim/module/boundary/operator.py index 89b4bf6e72..4b26a0a4d9 100644 --- a/src/bonsai/bonsai/bim/module/boundary/operator.py +++ b/src/bonsai/bonsai/bim/module/boundary/operator.py @@ -16,34 +16,36 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bmesh import logging -import shapely -import shapely.ops -import mathutils -import numpy as np import multiprocessing +from math import acos, degrees, inf, pi, radians +from typing import Optional, Union + +import bmesh +import bpy import ifcopenshell.api import ifcopenshell.api.boundary import ifcopenshell.api.root import ifcopenshell.geom -import ifcopenshell.util.unit -import ifcopenshell.util.shape import ifcopenshell.util.element import ifcopenshell.util.placement import ifcopenshell.util.representation -import bonsai.tool as tool -import bonsai.bim.import_ifc as import_ifc -from math import pi, inf, degrees, acos, radians -from mathutils import Vector, Matrix -from bonsai.bim.ifc import IfcStore -from bonsai.bim.module.model.decorator import ProfileDecorator -from bonsai.bim.module.boundary.decorator import BoundaryDecorator +import ifcopenshell.util.shape +import ifcopenshell.util.unit +import mathutils +import numpy as np +import shapely +import shapely.ops from ifcopenshell.util.shape_builder import ShapeBuilder +from mathutils import Matrix, Vector + +import bonsai.bim.import_ifc as import_ifc import bonsai.core import bonsai.core.geometry -from typing import Union, Optional +import bonsai.tool as tool +from bonsai.bim.ifc import IfcStore +from bonsai.bim.module.boundary.decorator import BoundaryDecorator +from bonsai.bim.module.model.decorator import ProfileDecorator def disable_editing_boundary_geometry(context): diff --git a/src/bonsai/bonsai/bim/module/boundary/prop.py b/src/bonsai/bonsai/bim/module/boundary/prop.py index dc76de0e00..cd7e0b9de3 100644 --- a/src/bonsai/bonsai/bim/module/boundary/prop.py +++ b/src/bonsai/bonsai/bim/module/boundary/prop.py @@ -16,21 +16,23 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Union + import bpy -from bpy.types import PropertyGroup -from bonsai.bim.prop import ObjProperty from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) +from bpy.types import PropertyGroup + import bonsai.tool as tool -from typing import TYPE_CHECKING, Union +from bonsai.bim.prop import ObjProperty def space_filter(self: "BIMObjectBoundaryProperties", object: bpy.types.Object) -> bool: diff --git a/src/bonsai/bonsai/bim/module/boundary/ui.py b/src/bonsai/bonsai/bim/module/boundary/ui.py index ba7592b34c..54694d752c 100644 --- a/src/bonsai/bonsai/bim/module/boundary/ui.py +++ b/src/bonsai/bonsai/bim/module/boundary/ui.py @@ -18,6 +18,7 @@ import bpy from bpy.types import Panel, UIList + import bonsai.tool as tool from bonsai.bim.module.boundary.data import SpaceBoundariesData diff --git a/src/bonsai/bonsai/bim/module/brick/__init__.py b/src/bonsai/bonsai/bim/module/brick/__init__.py index 6f5077f767..64d1bd3156 100644 --- a/src/bonsai/bonsai/bim/module/brick/__init__.py +++ b/src/bonsai/bonsai/bim/module/brick/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddBrick, diff --git a/src/bonsai/bonsai/bim/module/brick/data.py b/src/bonsai/bonsai/bim/module/brick/data.py index b7ac6f61e1..bae294d713 100644 --- a/src/bonsai/bonsai/bim/module/brick/data.py +++ b/src/bonsai/bonsai/bim/module/brick/data.py @@ -17,11 +17,12 @@ # along with Bonsai. If not, see . import bpy + import bonsai.tool as tool from bonsai.tool.brick import BrickStore try: - from rdflib import URIRef, BNode + from rdflib import BNode, URIRef except: # See #1860 print("Warning: brickschema not available.") diff --git a/src/bonsai/bonsai/bim/module/brick/operator.py b/src/bonsai/bonsai/bim/module/brick/operator.py index 94a9f9fe54..cb0a5f675f 100644 --- a/src/bonsai/bonsai/bim/module/brick/operator.py +++ b/src/bonsai/bonsai/bim/module/brick/operator.py @@ -17,12 +17,14 @@ # along with Bonsai. If not, see . import os + import bpy import ifcopenshell.api -import bonsai.tool as tool -import bonsai.core.brick as core +from bpy_extras.io_utils import ExportHelper, ImportHelper + import bonsai.bim.handler -from bpy_extras.io_utils import ImportHelper, ExportHelper +import bonsai.core.brick as core +import bonsai.tool as tool from bonsai.bim.ifc import IfcStore from bonsai.tool.brick import BrickStore diff --git a/src/bonsai/bonsai/bim/module/brick/prop.py b/src/bonsai/bonsai/bim/module/brick/prop.py index 4b738a0c77..9fe6d78407 100644 --- a/src/bonsai/bonsai/bim/module/brick/prop.py +++ b/src/bonsai/bonsai/bim/module/brick/prop.py @@ -16,24 +16,26 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy -from bonsai.bim.module.brick.data import BrickschemaData, BrickschemaReferencesData -from bonsai.bim.prop import StrProperty, Attribute -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) +from bpy.types import PropertyGroup + import bonsai.core.brick as core import bonsai.tool.brick as tool +from bonsai.bim.module.brick.data import BrickschemaData, BrickschemaReferencesData +from bonsai.bim.prop import Attribute, StrProperty from bonsai.tool.brick import BrickStore -from typing import TYPE_CHECKING def update_active_brick_index(self, context): diff --git a/src/bonsai/bonsai/bim/module/brick/ui.py b/src/bonsai/bonsai/bim/module/brick/ui.py index a845b12e8e..aa910c272f 100644 --- a/src/bonsai/bonsai/bim/module/brick/ui.py +++ b/src/bonsai/bonsai/bim/module/brick/ui.py @@ -16,8 +16,9 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bonsai.tool as tool from bpy.types import Panel, UIList + +import bonsai.tool as tool from bonsai.bim.helper import prop_with_search from bonsai.bim.module.brick.data import BrickschemaData, BrickschemaReferencesData from bonsai.tool.brick import BrickStore diff --git a/src/bonsai/bonsai/bim/module/bsdd/__init__.py b/src/bonsai/bonsai/bim/module/bsdd/__init__.py index 607e2754c2..25d6f501f0 100644 --- a/src/bonsai/bonsai/bim/module/bsdd/__init__.py +++ b/src/bonsai/bonsai/bim/module/bsdd/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddBSDDProperties, diff --git a/src/bonsai/bonsai/bim/module/bsdd/data.py b/src/bonsai/bonsai/bim/module/bsdd/data.py index 7905ca75c1..6e916d3355 100644 --- a/src/bonsai/bonsai/bim/module/bsdd/data.py +++ b/src/bonsai/bonsai/bim/module/bsdd/data.py @@ -18,8 +18,9 @@ import bpy import ifcopenshell -import ifcopenshell.util.date import ifcopenshell.util.classification +import ifcopenshell.util.date + import bonsai.tool as tool from bonsai.bim.ifc import IfcStore diff --git a/src/bonsai/bonsai/bim/module/bsdd/operator.py b/src/bonsai/bonsai/bim/module/bsdd/operator.py index 3a6d46d1fa..d3f5533c1a 100644 --- a/src/bonsai/bonsai/bim/module/bsdd/operator.py +++ b/src/bonsai/bonsai/bim/module/bsdd/operator.py @@ -16,13 +16,15 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . import textwrap +from typing import Any + import bpy import bsdd -import bonsai.tool as tool import ifcopenshell.api.pset import ifcopenshell.util.element + +import bonsai.tool as tool from bonsai.core import bsdd as core -from typing import Any class LoadBSDDDictionaries(bpy.types.Operator): diff --git a/src/bonsai/bonsai/bim/module/bsdd/prop.py b/src/bonsai/bonsai/bim/module/bsdd/prop.py index 3b427ba626..347cdab1b2 100644 --- a/src/bonsai/bonsai/bim/module/bsdd/prop.py +++ b/src/bonsai/bonsai/bim/module/bsdd/prop.py @@ -16,23 +16,25 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal, Union + import bpy -import bonsai.tool as tool +from bpy.props import ( + BoolProperty, + CollectionProperty, + EnumProperty, + FloatProperty, + FloatVectorProperty, + IntProperty, + PointerProperty, + StringProperty, +) from bpy.types import PropertyGroup + +import bonsai.tool as tool from bonsai.bim.module.bsdd.data import BSDDData from bonsai.bim.module.classification.data import ClassificationsData from bonsai.bim.prop import Attribute, StrProperty -from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, - BoolProperty, - IntProperty, - FloatProperty, - FloatVectorProperty, - CollectionProperty, -) -from typing import Union, TYPE_CHECKING, Literal def get_active_dictionary(self: "BIMBSDDProperties", context: object) -> tool.Blender.BLENDER_ENUM_ITEMS: diff --git a/src/bonsai/bonsai/bim/module/bsdd/ui.py b/src/bonsai/bonsai/bim/module/bsdd/ui.py index 39b2f9140e..c6966c01d8 100644 --- a/src/bonsai/bonsai/bim/module/bsdd/ui.py +++ b/src/bonsai/bonsai/bim/module/bsdd/ui.py @@ -17,14 +17,22 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy -import bonsai.tool as tool -from bonsai.bim.module.bsdd.data import BSDDData -from bpy.types import Panel, UIList + from typing import TYPE_CHECKING +import bpy +from bpy.types import Panel, UIList + +import bonsai.tool as tool +from bonsai.bim.module.bsdd.data import BSDDData + if TYPE_CHECKING: - from bonsai.bim.module.bsdd.prop import BIMBSDDProperties, BSDDDictionary, BSDDClassification, BSDDProperty + from bonsai.bim.module.bsdd.prop import ( + BIMBSDDProperties, + BSDDClassification, + BSDDDictionary, + BSDDProperty, + ) class BIM_PT_bsdd(Panel): diff --git a/src/bonsai/bonsai/bim/module/cad/__init__.py b/src/bonsai/bonsai/bim/module/cad/__init__.py index 601c4da1c3..6ddca2dd96 100644 --- a/src/bonsai/bonsai/bim/module/cad/__init__.py +++ b/src/bonsai/bonsai/bim/module/cad/__init__.py @@ -17,6 +17,7 @@ # along with Bonsai. If not, see . import bpy + from . import operator, prop, workspace classes = ( diff --git a/src/bonsai/bonsai/bim/module/cad/operator.py b/src/bonsai/bonsai/bim/module/cad/operator.py index 06f026a577..857d757ca1 100644 --- a/src/bonsai/bonsai/bim/module/cad/operator.py +++ b/src/bonsai/bonsai/bim/module/cad/operator.py @@ -16,17 +16,18 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import math -import bmesh -import mathutils -import bpy_extras -import bonsai.tool as tool -from mathutils import Vector, Matrix -from math import pi, radians, sin, cos, sqrt -import ifcopenshell.util.unit +from math import cos, pi, radians, sin, sqrt from typing import Union +import bmesh +import bpy +import bpy_extras +import ifcopenshell.util.unit +import mathutils +from mathutils import Matrix, Vector + +import bonsai.tool as tool messages = { "SHARED_VERTEX": "Shared Vertex, no intersection possible", diff --git a/src/bonsai/bonsai/bim/module/cad/prop.py b/src/bonsai/bonsai/bim/module/cad/prop.py index 7247408f00..db737b51dc 100644 --- a/src/bonsai/bonsai/bim/module/cad/prop.py +++ b/src/bonsai/bonsai/bim/module/cad/prop.py @@ -16,12 +16,14 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -from bonsai.bim.module.model.data import AuthoringData -from bpy.types import PropertyGroup from math import pi from typing import TYPE_CHECKING +import bpy +from bpy.types import PropertyGroup + +from bonsai.bim.module.model.data import AuthoringData + class BIMCadProperties(PropertyGroup): resolution: bpy.props.IntProperty(name="Arc Resolution", min=1, default=1) diff --git a/src/bonsai/bonsai/bim/module/cad/workspace.py b/src/bonsai/bonsai/bim/module/cad/workspace.py index 017f493682..b384463ac2 100644 --- a/src/bonsai/bonsai/bim/module/cad/workspace.py +++ b/src/bonsai/bonsai/bim/module/cad/workspace.py @@ -17,13 +17,15 @@ # along with Bonsai. If not, see . import os +from functools import partial + import bpy -import bonsai.tool as tool -import bonsai.bim.module.type.prop as type_prop import ifcopenshell.util.unit from bpy.types import WorkSpaceTool + +import bonsai.bim.module.type.prop as type_prop +import bonsai.tool as tool from bonsai.bim.module.model.data import AuthoringData, RailingData, RoofData -from functools import partial def load_custom_icons(): diff --git a/src/bonsai/bonsai/bim/module/clash/__init__.py b/src/bonsai/bonsai/bim/module/clash/__init__.py index fa6acf5b47..6bfabacfab 100644 --- a/src/bonsai/bonsai/bim/module/clash/__init__.py +++ b/src/bonsai/bonsai/bim/module/clash/__init__.py @@ -17,13 +17,15 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddClashSet, operator.AddClashSource, operator.ExecuteIfcClash, operator.ExportClashSets, + operator.HideClash, operator.ImportClashSets, operator.LoadSmartGroupsForActiveClashSet, operator.RemoveClashSet, diff --git a/src/bonsai/bonsai/bim/module/clash/data.py b/src/bonsai/bonsai/bim/module/clash/data.py index b994a1b750..4ecbb229a4 100644 --- a/src/bonsai/bonsai/bim/module/clash/data.py +++ b/src/bonsai/bonsai/bim/module/clash/data.py @@ -16,9 +16,11 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import json + +import bpy import ifcopenshell.util.element + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/bim/module/clash/decorator.py b/src/bonsai/bonsai/bim/module/clash/decorator.py index 91ecc1fc16..d1d0daf095 100644 --- a/src/bonsai/bonsai/bim/module/clash/decorator.py +++ b/src/bonsai/bonsai/bim/module/clash/decorator.py @@ -17,13 +17,14 @@ # along with Bonsai. If not, see . import blf -import gpu import bmesh -import bonsai.tool as tool +import gpu from bpy.types import SpaceView3D -from mathutils import Vector -from gpu_extras.batch import batch_for_shader from bpy_extras.view3d_utils import location_3d_to_region_2d +from gpu_extras.batch import batch_for_shader +from mathutils import Vector + +import bonsai.tool as tool class ClashDecorator: diff --git a/src/bonsai/bonsai/bim/module/clash/operator.py b/src/bonsai/bonsai/bim/module/clash/operator.py index 4509c0083a..688568270f 100644 --- a/src/bonsai/bonsai/bim/module/clash/operator.py +++ b/src/bonsai/bonsai/bim/module/clash/operator.py @@ -16,22 +16,24 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os -import bpy import json -import tempfile -import bmesh import logging -import numpy as np -import ifcopenshell -import bonsai.tool as tool -from pathlib import Path -from bpy_extras.io_utils import ExportHelper, ImportHelper +import os +import tempfile from math import radians +from pathlib import Path +from typing import TYPE_CHECKING + +import bmesh +import bpy +import ifcopenshell +import numpy as np +from bpy_extras.io_utils import ExportHelper, ImportHelper from mathutils import Matrix, Vector + +import bonsai.tool as tool from bonsai.bim.ifc import IfcStore from bonsai.bim.module.clash.decorator import ClashDecorator -from typing import TYPE_CHECKING class ExportClashSets(bpy.types.Operator, ExportHelper): @@ -443,6 +445,27 @@ class SelectClash(bpy.types.Operator): return {"FINISHED"} +class HideClash(bpy.types.Operator): + bl_idname = "bim.hide_clash" + bl_label = "Hide Clash" + bl_options = {"REGISTER", "UNDO"} + bl_description = "Hide the clash decorator" + + @classmethod + def poll(cls, context): + if not ClashDecorator.is_installed: + cls.poll_message_set("No clash selected.") + return False + return True + + def execute(self, context): + ClashDecorator.uninstall() + for area in context.screen.areas: + if area.type == "VIEW_3D": + area.tag_redraw() + return {"FINISHED"} + + class SmartClashGroup(bpy.types.Operator): bl_idname = "bim.smart_clash_group" bl_label = "Smart Group Clashes" diff --git a/src/bonsai/bonsai/bim/module/clash/prop.py b/src/bonsai/bonsai/bim/module/clash/prop.py index a7c6101b73..5f42a400e7 100644 --- a/src/bonsai/bonsai/bim/module/clash/prop.py +++ b/src/bonsai/bonsai/bim/module/clash/prop.py @@ -16,23 +16,25 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal, Union + import bpy -import bonsai.tool as tool -from bonsai.bim.prop import StrProperty, Attribute, BIMFilterGroup -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from ifcopenshell.geom.main import ClashType, CLASH_TYPE_ITEMS +from bpy.types import PropertyGroup +from ifcopenshell.geom.main import CLASH_TYPE_ITEMS, ClashType from mathutils import Vector -from typing import TYPE_CHECKING, Literal, Union + +import bonsai.tool as tool +from bonsai.bim.prop import Attribute, BIMFilterGroup, StrProperty class ClashSource(PropertyGroup): diff --git a/src/bonsai/bonsai/bim/module/clash/ui.py b/src/bonsai/bonsai/bim/module/clash/ui.py index f0ad45baa3..a6ef267d84 100644 --- a/src/bonsai/bonsai/bim/module/clash/ui.py +++ b/src/bonsai/bonsai/bim/module/clash/ui.py @@ -17,15 +17,23 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy -import bonsai.tool as tool -import bonsai.bim.helper -from bpy.types import Panel -from bonsai.bim.module.clash.data import ClashData + from typing import TYPE_CHECKING, assert_never +import bpy +from bpy.types import Panel + +import bonsai.bim.helper +import bonsai.tool as tool +from bonsai.bim.module.clash.data import ClashData + if TYPE_CHECKING: - from bonsai.bim.module.clash.prop import BIMClashProperties, ClashSet, SmartClashGroup, Clash + from bonsai.bim.module.clash.prop import ( + BIMClashProperties, + Clash, + ClashSet, + SmartClashGroup, + ) class BIM_PT_ifcclash(Panel): @@ -165,6 +173,7 @@ class BIM_PT_ifcclash(Panel): layout.template_list("BIM_UL_clashes", "", props.active_clash_set, "clashes", props, "active_clash_index") row = layout.row() row.operator("bim.select_clash") + row.operator("bim.hide_clash", text="", icon="HIDE_ON") else: row.label(text="Clashes Are Not Loaded", icon="PIVOT_CURSOR") diff --git a/src/bonsai/bonsai/bim/module/classification/__init__.py b/src/bonsai/bonsai/bim/module/classification/__init__.py index 6d33b50ee6..155bbdd6ee 100644 --- a/src/bonsai/bonsai/bim/module/classification/__init__.py +++ b/src/bonsai/bonsai/bim/module/classification/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddClassification, diff --git a/src/bonsai/bonsai/bim/module/classification/data.py b/src/bonsai/bonsai/bim/module/classification/data.py index acc88af10a..9685e8faa9 100644 --- a/src/bonsai/bonsai/bim/module/classification/data.py +++ b/src/bonsai/bonsai/bim/module/classification/data.py @@ -16,12 +16,14 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import Any, Literal, Union + import bpy import ifcopenshell -import ifcopenshell.util.date import ifcopenshell.util.classification +import ifcopenshell.util.date + import bonsai.tool as tool -from typing import Any, Literal, Union from bonsai.bim.ifc import IfcStore @@ -104,6 +106,7 @@ class ReferencesData: if element: for reference in ifcopenshell.util.classification.get_references(element): data = reference.get_info() + data["ifcClassificationReference"] = reference del data["ReferencedSource"] results.append(data) return results diff --git a/src/bonsai/bonsai/bim/module/classification/operator.py b/src/bonsai/bonsai/bim/module/classification/operator.py index 600b86a3d5..7bf699cc31 100644 --- a/src/bonsai/bonsai/bim/module/classification/operator.py +++ b/src/bonsai/bonsai/bim/module/classification/operator.py @@ -19,13 +19,14 @@ import bpy import ifcopenshell import ifcopenshell.api -import ifcopenshell.api.pset import ifcopenshell.api.classification +import ifcopenshell.api.pset import ifcopenshell.util.classification import ifcopenshell.util.element -import bonsai.tool as tool -import bonsai.bim.helper from bpy_extras.io_utils import ImportHelper + +import bonsai.bim.helper +import bonsai.tool as tool from bonsai.bim.ifc import IfcStore @@ -257,7 +258,9 @@ class EnableEditingClassificationReference(bpy.types.Operator): def execute(self, context): props = tool.Classification.get_classification_reference_props() props.reference_attributes.clear() - bonsai.bim.helper.import_attributes(tool.Ifc.get().by_id(self.reference), props.reference_attributes) + ifc_reference = tool.Ifc.get().by_id(self.reference) + bonsai.bim.helper.import_attributes(ifc_reference, props.reference_attributes) + props.classification_system_name = ifc_reference.ReferencedSource.Name or "" props.active_reference_id = self.reference return {"FINISHED"} @@ -324,9 +327,13 @@ class EditClassificationReference(bpy.types.Operator, tool.Ifc.Operator): props = tool.Classification.get_classification_reference_props() attributes = bonsai.bim.helper.export_attributes(props.reference_attributes) ifc_file = tool.Ifc.get() + reference_entity = ifc_file.by_id(props.active_reference_id) + referenced_source = reference_entity.ReferencedSource + if props.classification_system_name: + referenced_source.Name = props.classification_system_name ifcopenshell.api.classification.edit_reference( ifc_file, - reference=ifc_file.by_id(props.active_reference_id), + reference=reference_entity, attributes=attributes, ) bpy.ops.bim.disable_editing_classification_reference() diff --git a/src/bonsai/bonsai/bim/module/classification/prop.py b/src/bonsai/bonsai/bim/module/classification/prop.py index d85e4e8c4e..454f861f07 100644 --- a/src/bonsai/bonsai/bim/module/classification/prop.py +++ b/src/bonsai/bonsai/bim/module/classification/prop.py @@ -16,22 +16,27 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy -import bonsai.tool as tool -from bonsai.bim.prop import Attribute -from bonsai.bim.module.classification.data import ClassificationsData, ObjectClassificationsData -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.module.classification.data import ( + ClassificationsData, + ObjectClassificationsData, +) +from bonsai.bim.prop import Attribute def get_available_classifications( @@ -95,6 +100,7 @@ class BIMClassificationReferenceProperties(PropertyGroup): classifications: EnumProperty(items=get_classifications, name="Classifications") reference_attributes: CollectionProperty(name="Reference Attributes", type=Attribute) active_reference_id: IntProperty(name="Active Reference Id") + classification_system_name: StringProperty(name="Classification System Name") if TYPE_CHECKING: is_adding: bool diff --git a/src/bonsai/bonsai/bim/module/classification/ui.py b/src/bonsai/bonsai/bim/module/classification/ui.py index 344c247af2..77310be49a 100644 --- a/src/bonsai/bonsai/bim/module/classification/ui.py +++ b/src/bonsai/bonsai/bim/module/classification/ui.py @@ -17,22 +17,29 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy -import bonsai.bim.helper -import bonsai.tool as tool -import bonsai.bim.module.classification.prop as classification_prop -from bpy.types import Panel, UIList -from bonsai.bim.module.classification.data import ( - ClassificationsData, - ObjectClassificationsData, - MaterialClassificationsData, - CostClassificationsData, - ZoneClassificationsData, -) + from typing import TYPE_CHECKING, Any, Union +import bpy +import ifcopenshell.util.classification +from bpy.types import Panel, UIList + +import bonsai.bim.helper +import bonsai.bim.module.classification.prop as classification_prop +import bonsai.tool as tool +from bonsai.bim.module.classification.data import ( + ClassificationsData, + CostClassificationsData, + MaterialClassificationsData, + ObjectClassificationsData, + ZoneClassificationsData, +) + if TYPE_CHECKING: - from bonsai.bim.module.classification.prop import BIMClassificationProperties, ClassificationReference + from bonsai.bim.module.classification.prop import ( + BIMClassificationProperties, + ClassificationReference, + ) class BIM_PT_classifications(Panel): @@ -152,7 +159,15 @@ class ReferenceUI: row = self.layout.row(align=True) row.label(text="No References") - for reference in self.data.data["references"]: + def get_classification_name(reference): + classification_entity = ifcopenshell.util.classification.get_classification( + reference["ifcClassificationReference"] + ) + return classification_entity.Name if classification_entity else "" + + sorted_references = sorted(self.data.data["references"], key=get_classification_name) + + for reference in sorted_references: if self.props.active_reference_id == reference["id"]: self.draw_editable_ui() else: @@ -248,10 +263,20 @@ class ReferenceUI: row = self.layout.row(align=True) row.operator("bim.edit_classification_reference", text="Save changes", icon="CHECKMARK") row.operator("bim.disable_editing_classification_reference", text="", icon="CANCEL") + row = self.layout.row() + row.prop(self.props, "classification_system_name", text="Classification System Name") + bonsai.bim.helper.draw_attributes(self.props.reference_attributes, self.layout) def draw_reference_ui(self, reference: dict[str, Any]) -> None: row = self.layout.row(align=True) + + classification_entity = ifcopenshell.util.classification.get_classification( + reference["ifcClassificationReference"] + ) + classification_name = classification_entity.Name if classification_entity else "" + row.label(text=classification_name, icon="OUTLINER_COLLECTION") + if self.file.schema == "IFC2X3": name = reference["ItemReference"] or "No Identification" else: diff --git a/src/bonsai/bonsai/bim/module/constraint/__init__.py b/src/bonsai/bonsai/bim/module/constraint/__init__.py index 54b5183023..858c1da130 100644 --- a/src/bonsai/bonsai/bim/module/constraint/__init__.py +++ b/src/bonsai/bonsai/bim/module/constraint/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.LoadObjectives, diff --git a/src/bonsai/bonsai/bim/module/constraint/data.py b/src/bonsai/bonsai/bim/module/constraint/data.py index 8a92de2c71..d44a7d2a55 100644 --- a/src/bonsai/bonsai/bim/module/constraint/data.py +++ b/src/bonsai/bonsai/bim/module/constraint/data.py @@ -17,9 +17,10 @@ # along with Bonsai. If not, see . import bpy -import bonsai.tool as tool from ifcopenshell.util.doc import get_entity_doc +import bonsai.tool as tool + def refresh(): ConstraintsData.is_loaded = False diff --git a/src/bonsai/bonsai/bim/module/constraint/operator.py b/src/bonsai/bonsai/bim/module/constraint/operator.py index 4297642c3b..976f4ff6a3 100644 --- a/src/bonsai/bonsai/bim/module/constraint/operator.py +++ b/src/bonsai/bonsai/bim/module/constraint/operator.py @@ -16,12 +16,14 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy import ifcopenshell.api import ifcopenshell.api.constraint + import bonsai.bim.helper import bonsai.tool as tool -from typing import TYPE_CHECKING def get_active_object(context: bpy.types.Context, obj_name: str) -> bpy.types.Object: diff --git a/src/bonsai/bonsai/bim/module/constraint/prop.py b/src/bonsai/bonsai/bim/module/constraint/prop.py index ec66f78211..c76d48e8a6 100644 --- a/src/bonsai/bonsai/bim/module/constraint/prop.py +++ b/src/bonsai/bonsai/bim/module/constraint/prop.py @@ -16,23 +16,25 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal + import bpy -from ifcopenshell.util.doc import get_entity_doc -import bonsai.tool as tool -from bonsai.bim.prop import Attribute -from bonsai.bim.module.constraint.data import ConstraintsData -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Literal +from bpy.types import PropertyGroup +from ifcopenshell.util.doc import get_entity_doc + +import bonsai.tool as tool +from bonsai.bim.module.constraint.data import ConstraintsData +from bonsai.bim.prop import Attribute def get_available_constraint_types(self, context): diff --git a/src/bonsai/bonsai/bim/module/constraint/ui.py b/src/bonsai/bonsai/bim/module/constraint/ui.py index 61b335d782..5ab3d7c93c 100644 --- a/src/bonsai/bonsai/bim/module/constraint/ui.py +++ b/src/bonsai/bonsai/bim/module/constraint/ui.py @@ -17,14 +17,21 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bonsai.tool as tool -from bpy.types import Panel, UIList -from bonsai.bim.helper import draw_attributes -from bonsai.bim.module.constraint.data import ConstraintsData, ObjectConstraintsData + from typing import TYPE_CHECKING +from bpy.types import Panel, UIList + +import bonsai.tool as tool +from bonsai.bim.helper import draw_attributes +from bonsai.bim.module.constraint.data import ConstraintsData, ObjectConstraintsData + if TYPE_CHECKING: - from bonsai.bim.module.constraint.prop import BIMConstraintProperties, BIMObjectConstraintProperties, Constraint + from bonsai.bim.module.constraint.prop import ( + BIMConstraintProperties, + BIMObjectConstraintProperties, + Constraint, + ) class BIM_PT_constraints(Panel): diff --git a/src/bonsai/bonsai/bim/module/context/__init__.py b/src/bonsai/bonsai/bim/module/context/__init__.py index 65665ae290..da24e53f55 100644 --- a/src/bonsai/bonsai/bim/module/context/__init__.py +++ b/src/bonsai/bonsai/bim/module/context/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddContext, diff --git a/src/bonsai/bonsai/bim/module/context/data.py b/src/bonsai/bonsai/bim/module/context/data.py index c0b2143801..ade8061a4b 100644 --- a/src/bonsai/bonsai/bim/module/context/data.py +++ b/src/bonsai/bonsai/bim/module/context/data.py @@ -16,11 +16,13 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bonsai.tool as tool -import ifcopenshell from typing import Any +import bpy +import ifcopenshell + +import bonsai.tool as tool + def refresh(): ContextData.is_loaded = False diff --git a/src/bonsai/bonsai/bim/module/context/operator.py b/src/bonsai/bonsai/bim/module/context/operator.py index fbf1f17963..88483dfc0c 100644 --- a/src/bonsai/bonsai/bim/module/context/operator.py +++ b/src/bonsai/bonsai/bim/module/context/operator.py @@ -17,8 +17,9 @@ # along with Bonsai. If not, see . import bpy -import bonsai.tool as tool + import bonsai.core.context as core +import bonsai.tool as tool class AddContext(bpy.types.Operator, tool.Ifc.Operator): diff --git a/src/bonsai/bonsai/bim/module/context/prop.py b/src/bonsai/bonsai/bim/module/context/prop.py index 3a6f3c226f..ff73c53a5a 100644 --- a/src/bonsai/bonsai/bim/module/context/prop.py +++ b/src/bonsai/bonsai/bim/module/context/prop.py @@ -16,21 +16,23 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy -from bonsai.bim.prop import StrProperty, Attribute -from bonsai.bim.module.context.data import ContextData -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING +from bpy.types import PropertyGroup + +from bonsai.bim.module.context.data import ContextData +from bonsai.bim.prop import Attribute, StrProperty class BIMContextProperties(PropertyGroup): diff --git a/src/bonsai/bonsai/bim/module/context/ui.py b/src/bonsai/bonsai/bim/module/context/ui.py index e8d0d337b4..3090da38fc 100644 --- a/src/bonsai/bonsai/bim/module/context/ui.py +++ b/src/bonsai/bonsai/bim/module/context/ui.py @@ -17,6 +17,7 @@ # along with Bonsai. If not, see . import bpy + import bonsai.bim.helper import bonsai.tool as tool from bonsai.bim.module.context.data import ContextData diff --git a/src/bonsai/bonsai/bim/module/cost/__init__.py b/src/bonsai/bonsai/bim/module/cost/__init__.py index 6f42a71bf9..9378a68ee1 100644 --- a/src/bonsai/bonsai/bim/module/cost/__init__.py +++ b/src/bonsai/bonsai/bim/module/cost/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddCostColumn, diff --git a/src/bonsai/bonsai/bim/module/cost/data.py b/src/bonsai/bonsai/bim/module/cost/data.py index 4b5198bb03..aab9ea9231 100644 --- a/src/bonsai/bonsai/bim/module/cost/data.py +++ b/src/bonsai/bonsai/bim/module/cost/data.py @@ -16,15 +16,17 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import Any, Union + import bpy import ifcopenshell import ifcopenshell.util.cost import ifcopenshell.util.date import ifcopenshell.util.element import ifcopenshell.util.unit -import bonsai.tool as tool from ifcopenshell.util.doc import get_entity_doc, get_predefined_type_doc -from typing import Any, Union + +import bonsai.tool as tool def refresh(): diff --git a/src/bonsai/bonsai/bim/module/cost/operator.py b/src/bonsai/bonsai/bim/module/cost/operator.py index 644871488c..48b672a2c2 100644 --- a/src/bonsai/bonsai/bim/module/cost/operator.py +++ b/src/bonsai/bonsai/bim/module/cost/operator.py @@ -18,16 +18,16 @@ # pyright: reportUnnecessaryTypeIgnoreComment=error -import bpy import textwrap -import ifcopenshell.api.nest -import bonsai.tool as tool -from bpy_extras.io_utils import ImportHelper, ExportHelper -import bonsai.tool as tool -import bonsai.core.cost as core from pathlib import Path +from typing import TYPE_CHECKING, Literal, get_args -from typing import get_args, TYPE_CHECKING, Literal +import bpy +import ifcopenshell.api.nest +from bpy_extras.io_utils import ExportHelper, ImportHelper + +import bonsai.core.cost as core +import bonsai.tool as tool class AddCostSchedule(bpy.types.Operator, tool.Ifc.Operator): diff --git a/src/bonsai/bonsai/bim/module/cost/prop.py b/src/bonsai/bonsai/bim/module/cost/prop.py index 3ce30e665e..121ca617e7 100644 --- a/src/bonsai/bonsai/bim/module/cost/prop.py +++ b/src/bonsai/bonsai/bim/module/cost/prop.py @@ -16,25 +16,31 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal, Union + import bpy import ifcopenshell.api import ifcopenshell.api.cost -import bonsai.tool as tool -from bonsai.bim.module.classification.data import CostClassificationsData -from bonsai.bim.module.cost.data import CostSchedulesData, CostItemRatesData, CostItemQuantitiesData -from bonsai.bim.prop import StrProperty, Attribute -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Literal, Union +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.module.classification.data import CostClassificationsData +from bonsai.bim.module.cost.data import ( + CostItemQuantitiesData, + CostItemRatesData, + CostSchedulesData, +) +from bonsai.bim.prop import Attribute, StrProperty def get_schedule_of_rates(self: "BIMCostProperties", context: bpy.types.Context) -> tool.Blender.BLENDER_ENUM_ITEMS: diff --git a/src/bonsai/bonsai/bim/module/cost/ui.py b/src/bonsai/bonsai/bim/module/cost/ui.py index e8eb58a855..73a578171f 100644 --- a/src/bonsai/bonsai/bim/module/cost/ui.py +++ b/src/bonsai/bonsai/bim/module/cost/ui.py @@ -17,13 +17,16 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Any + import bpy +from bpy.types import Panel, UIList + import bonsai.bim.helper import bonsai.bim.module.cost.prop as CostProp import bonsai.tool as tool -from bpy.types import Panel, UIList from bonsai.bim.module.cost.data import CostSchedulesData -from typing import Any, TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.cost.prop import BIMCostProperties, CostItemQuantity diff --git a/src/bonsai/bonsai/bim/module/covering/__init__.py b/src/bonsai/bonsai/bim/module/covering/__init__.py index 5e00a6dfbe..3cec5084c4 100644 --- a/src/bonsai/bonsai/bim/module/covering/__init__.py +++ b/src/bonsai/bonsai/bim/module/covering/__init__.py @@ -17,6 +17,7 @@ # along with Bonsai. If not, see . import bpy + from . import prop, workspace classes = ( diff --git a/src/bonsai/bonsai/bim/module/covering/prop.py b/src/bonsai/bonsai/bim/module/covering/prop.py index 3dc65903aa..3655d50c9f 100644 --- a/src/bonsai/bonsai/bim/module/covering/prop.py +++ b/src/bonsai/bonsai/bim/module/covering/prop.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy from bpy.types import PropertyGroup -from typing import TYPE_CHECKING class BIMCoveringProperties(PropertyGroup): diff --git a/src/bonsai/bonsai/bim/module/covering/workspace.py b/src/bonsai/bonsai/bim/module/covering/workspace.py index 3e44b0476d..68b2704166 100644 --- a/src/bonsai/bonsai/bim/module/covering/workspace.py +++ b/src/bonsai/bonsai/bim/module/covering/workspace.py @@ -18,13 +18,15 @@ import os +from functools import partial + import bpy import ifcopenshell +from bpy.types import WorkSpaceTool + import bonsai.tool as tool from bonsai.bim.helper import prop_with_search from bonsai.bim.module.model.data import AuthoringData -from bpy.types import WorkSpaceTool -from functools import partial class CoveringTool(WorkSpaceTool): diff --git a/src/bonsai/bonsai/bim/module/covetool/__init__.py b/src/bonsai/bonsai/bim/module/covetool/__init__.py index 6697f24301..beb75bb7af 100644 --- a/src/bonsai/bonsai/bim/module/covetool/__init__.py +++ b/src/bonsai/bonsai/bim/module/covetool/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( prop.CoveToolProject, diff --git a/src/bonsai/bonsai/bim/module/covetool/operator.py b/src/bonsai/bonsai/bim/module/covetool/operator.py index cccb164611..fa298ada9c 100644 --- a/src/bonsai/bonsai/bim/module/covetool/operator.py +++ b/src/bonsai/bonsai/bim/module/covetool/operator.py @@ -16,12 +16,14 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import json +from math import atan2, degrees + +import bpy import ifcopenshell import ifcopenshell.util.element + import bonsai.tool as tool -from math import degrees, atan2 from .api import Api diff --git a/src/bonsai/bonsai/bim/module/covetool/prop.py b/src/bonsai/bonsai/bim/module/covetool/prop.py index 06444de29f..42e59466d9 100644 --- a/src/bonsai/bonsai/bim/module/covetool/prop.py +++ b/src/bonsai/bonsai/bim/module/covetool/prop.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy from typing import TYPE_CHECKING +import bpy + class CoveToolProject(bpy.types.PropertyGroup): run_set: bpy.props.StringProperty(name="Run Set") diff --git a/src/bonsai/bonsai/bim/module/covetool/ui.py b/src/bonsai/bonsai/bim/module/covetool/ui.py index e26ac1338a..1a7015b139 100644 --- a/src/bonsai/bonsai/bim/module/covetool/ui.py +++ b/src/bonsai/bonsai/bim/module/covetool/ui.py @@ -17,12 +17,15 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy.types -import bonsai.tool as tool + from typing import TYPE_CHECKING +import bpy.types + +import bonsai.tool as tool + if TYPE_CHECKING: - from bonsai.bim.module.covetool.prop import CoveToolProperties, CoveToolProject + from bonsai.bim.module.covetool.prop import CoveToolProject, CoveToolProperties class BIM_PT_covetool(bpy.types.Panel): diff --git a/src/bonsai/bonsai/bim/module/csv/__init__.py b/src/bonsai/bonsai/bim/module/csv/__init__.py index 7a6b99906e..f544445b20 100644 --- a/src/bonsai/bonsai/bim/module/csv/__init__.py +++ b/src/bonsai/bonsai/bim/module/csv/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddCsvAttribute, diff --git a/src/bonsai/bonsai/bim/module/csv/operator.py b/src/bonsai/bonsai/bim/module/csv/operator.py index 34e20f6d9c..d42e8d3852 100644 --- a/src/bonsai/bonsai/bim/module/csv/operator.py +++ b/src/bonsai/bonsai/bim/module/csv/operator.py @@ -17,20 +17,23 @@ # along with Bonsai. If not, see . from __future__ import annotations -import os -import bpy + import json -import ifccsv import logging +import os import tempfile +from collections import Counter +from typing import TYPE_CHECKING + +import bpy +import ifccsv import ifcopenshell import ifcopenshell.util.selector -import bonsai.tool as tool -import bonsai.bim.module.drawing.scheduler as scheduler from bpy_extras.io_utils import ExportHelper, ImportHelper + +import bonsai.bim.module.drawing.scheduler as scheduler +import bonsai.tool as tool from bonsai.bim.handler import refresh_ui_data -from typing import TYPE_CHECKING -from collections import Counter if TYPE_CHECKING: import pandas as pd diff --git a/src/bonsai/bonsai/bim/module/csv/prop.py b/src/bonsai/bonsai/bim/module/csv/prop.py index 371776bef2..a698f89b76 100644 --- a/src/bonsai/bonsai/bim/module/csv/prop.py +++ b/src/bonsai/bonsai/bim/module/csv/prop.py @@ -16,20 +16,22 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal + import bpy -from bonsai.bim.prop import StrProperty, BIMFilterGroup -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Literal +from bpy.types import PropertyGroup + +from bonsai.bim.prop import BIMFilterGroup, StrProperty class CsvAttribute(PropertyGroup): diff --git a/src/bonsai/bonsai/bim/module/csv/ui.py b/src/bonsai/bonsai/bim/module/csv/ui.py index a407efc7d1..c40be1b037 100644 --- a/src/bonsai/bonsai/bim/module/csv/ui.py +++ b/src/bonsai/bonsai/bim/module/csv/ui.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from bpy.types import Panel + import bonsai.bim.helper import bonsai.tool as tool -from bpy.types import Panel from bonsai.bim.module.search.data import SearchData diff --git a/src/bonsai/bonsai/bim/module/debug/__init__.py b/src/bonsai/bonsai/bim/module/debug/__init__.py index c01cf03275..bd3ecac4f6 100644 --- a/src/bonsai/bonsai/bim/module/debug/__init__.py +++ b/src/bonsai/bonsai/bim/module/debug/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.ChangeLogLevel, diff --git a/src/bonsai/bonsai/bim/module/debug/operator.py b/src/bonsai/bonsai/bim/module/debug/operator.py index 0820d5e3d6..6e30a3cc0f 100644 --- a/src/bonsai/bonsai/bim/module/debug/operator.py +++ b/src/bonsai/bonsai/bim/module/debug/operator.py @@ -16,14 +16,18 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os -import sys -import bpy -import time -import random import logging -import subprocess +import os import platform +import random +import subprocess +import sys +import time +from collections import defaultdict +from pathlib import Path +from typing import TYPE_CHECKING, Any, Literal, Union, assert_never, get_args + +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.pset @@ -32,18 +36,16 @@ import ifcopenshell.ifcopenshell_wrapper as W import ifcopenshell.util.element import ifcopenshell.util.placement import ifcopenshell.util.unit -import bonsai.tool as tool +from bpy_extras.io_utils import ExportHelper, ImportHelper + +import bonsai.bim.handler +import bonsai.bim.import_ifc as import_ifc import bonsai.core.debug as core import bonsai.core.profile import bonsai.core.type -import bonsai.bim.handler -import bonsai.bim.import_ifc as import_ifc -from collections import defaultdict -from bpy_extras.io_utils import ImportHelper, ExportHelper -from pathlib import Path -from bonsai import get_debug_info, format_debug_info +import bonsai.tool as tool +from bonsai import format_debug_info, get_debug_info from bonsai.bim.ifc import IfcStore -from typing import get_args, Union, Any, TYPE_CHECKING, Literal, get_args, assert_never if TYPE_CHECKING: from bonsai.bim.prop import Attribute diff --git a/src/bonsai/bonsai/bim/module/debug/prop.py b/src/bonsai/bonsai/bim/module/debug/prop.py index 5a28b22f79..e52ec5ff7d 100644 --- a/src/bonsai/bonsai/bim/module/debug/prop.py +++ b/src/bonsai/bonsai/bim/module/debug/prop.py @@ -16,20 +16,22 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal, get_args + import bpy -from bonsai.bim.prop import StrProperty, Attribute -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Literal, get_args +from bpy.types import PropertyGroup + +from bonsai.bim.prop import Attribute, StrProperty DisplayType = Literal["BOUNDS", "WIRE", "SOLID", "TEXTURED"] diff --git a/src/bonsai/bonsai/bim/module/debug/ui.py b/src/bonsai/bonsai/bim/module/debug/ui.py index 76c2ac79f7..5ffa99cf35 100644 --- a/src/bonsai/bonsai/bim/module/debug/ui.py +++ b/src/bonsai/bonsai/bim/module/debug/ui.py @@ -17,9 +17,10 @@ # along with Bonsai. If not, see . import bpy -import bonsai.tool as tool from bpy.types import Panel +import bonsai.tool as tool + class BIM_PT_debug(Panel): bl_label = "Debug" @@ -109,23 +110,6 @@ class BIM_PT_debug(Panel): row.prop(props, "display_type", text="") row.operator("bim.override_display_type").display = props.display_type - layout.operator("bim.purge_unused_representations") - - row = layout.row(align=True) - row.prop(props, "ifc_class_purge", text="") - row.operator("bim.purge_unused_elements_by_class", text="Purge Orphaned", icon="TRASH") - row.operator("bim.print_unused_elements_stats", text="", icon="INFO") - - if context.active_object and (data := context.active_object.data): - mprops = tool.Geometry.get_mesh_props(data) - row = layout.row() - row.operator("bim.get_representation_ifc_parameters") - for index, ifc_parameter in enumerate(mprops.ifc_parameters): - row = layout.row(align=True) - row.prop(ifc_parameter, "name", text="") - row.prop(ifc_parameter, "value", text="") - row.operator("bim.update_parametric_representation", icon="FILE_REFRESH", text="").index = index - layout.label(text="Inspector:") row = layout.row(align=True) diff --git a/src/bonsai/bonsai/bim/module/demo/__init__.py b/src/bonsai/bonsai/bim/module/demo/__init__.py index 705e0be046..7dc5f18ff7 100644 --- a/src/bonsai/bonsai/bim/module/demo/__init__.py +++ b/src/bonsai/bonsai/bim/module/demo/__init__.py @@ -28,7 +28,8 @@ # system when the add-on loads. This is where it happens. import bpy -from . import ui, prop, operator + +from . import operator, prop, ui # You'll need to provide a list of every one of your classes here. If you forget # to specify your class, it won't load and you won't be able to use that diff --git a/src/bonsai/bonsai/bim/module/demo/operator.py b/src/bonsai/bonsai/bim/module/demo/operator.py index 001c8de692..fb1927c9bd 100644 --- a/src/bonsai/bonsai/bim/module/demo/operator.py +++ b/src/bonsai/bonsai/bim/module/demo/operator.py @@ -28,8 +28,9 @@ # "Operators", since they correlate to a single user operation. import bpy -import bonsai.tool as tool + import bonsai.core.demo as core +import bonsai.tool as tool # Each button correlates to a class like the one below. In this case, we're diff --git a/src/bonsai/bonsai/bim/module/demo/prop.py b/src/bonsai/bonsai/bim/module/demo/prop.py index 83df8ccfda..f206fe3156 100644 --- a/src/bonsai/bonsai/bim/module/demo/prop.py +++ b/src/bonsai/bonsai/bim/module/demo/prop.py @@ -33,20 +33,20 @@ from typing import TYPE_CHECKING import bpy -from bpy.types import PropertyGroup # Properties have many different data types. We won't use all of them in this # demo module, but this is a list for your reference. from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) +from bpy.types import PropertyGroup # All properties must belong in a property group. Usually, you'd have a group diff --git a/src/bonsai/bonsai/bim/module/demo/ui.py b/src/bonsai/bonsai/bim/module/demo/ui.py index 6005814cfa..cade6dbf03 100644 --- a/src/bonsai/bonsai/bim/module/demo/ui.py +++ b/src/bonsai/bonsai/bim/module/demo/ui.py @@ -27,6 +27,7 @@ # panels, buttons, labels, and input fields are laid out. import bpy + import bonsai.tool as tool from bonsai.bim.module.demo.data import DemoData diff --git a/src/bonsai/bonsai/bim/module/diff/__init__.py b/src/bonsai/bonsai/bim/module/diff/__init__.py index 2cfb1b3c7b..fdeaf49596 100644 --- a/src/bonsai/bonsai/bim/module/diff/__init__.py +++ b/src/bonsai/bonsai/bim/module/diff/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.ExecuteIfcDiff, diff --git a/src/bonsai/bonsai/bim/module/diff/data.py b/src/bonsai/bonsai/bim/module/diff/data.py index ac3e545f43..9fce7f38ba 100644 --- a/src/bonsai/bonsai/bim/module/diff/data.py +++ b/src/bonsai/bonsai/bim/module/diff/data.py @@ -16,8 +16,10 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import json + +import bpy + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/bim/module/diff/operator.py b/src/bonsai/bonsai/bim/module/diff/operator.py index 954e43ac1e..330deed410 100644 --- a/src/bonsai/bonsai/bim/module/diff/operator.py +++ b/src/bonsai/bonsai/bim/module/diff/operator.py @@ -16,15 +16,17 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import json import logging + +import bpy import ifcdiff import ifcopenshell +from bpy_extras.io_utils import ExportHelper, ImportHelper + import bonsai.bim.handler import bonsai.bim.import_ifc import bonsai.tool as tool -from bpy_extras.io_utils import ImportHelper, ExportHelper from bonsai.bim.ifc import IfcStore diff --git a/src/bonsai/bonsai/bim/module/diff/prop.py b/src/bonsai/bonsai/bim/module/diff/prop.py index 61da124a7c..c8f9d48c84 100644 --- a/src/bonsai/bonsai/bim/module/diff/prop.py +++ b/src/bonsai/bonsai/bim/module/diff/prop.py @@ -16,21 +16,23 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal, get_args + import bpy -from bonsai.bim.prop import StrProperty, BIMFilterGroup -from bonsai.bim.module.diff.data import DiffData -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Literal, get_args +from bpy.types import PropertyGroup + +from bonsai.bim.module.diff.data import DiffData +from bonsai.bim.prop import BIMFilterGroup, StrProperty def update_diff_json_file(self: "DiffProperties", context: bpy.types.Context) -> None: diff --git a/src/bonsai/bonsai/bim/module/diff/ui.py b/src/bonsai/bonsai/bim/module/diff/ui.py index 91e0a6b48e..383345e8b5 100644 --- a/src/bonsai/bonsai/bim/module/diff/ui.py +++ b/src/bonsai/bonsai/bim/module/diff/ui.py @@ -17,9 +17,10 @@ # along with Bonsai. If not, see . from bpy.types import Panel -from bonsai.bim.module.diff.data import DiffData + import bonsai.bim.helper import bonsai.tool as tool +from bonsai.bim.module.diff.data import DiffData class BIM_PT_diff(Panel): diff --git a/src/bonsai/bonsai/bim/module/document/__init__.py b/src/bonsai/bonsai/bim/module/document/__init__.py index f4eede1721..ac3bdfb1a3 100644 --- a/src/bonsai/bonsai/bim/module/document/__init__.py +++ b/src/bonsai/bonsai/bim/module/document/__init__.py @@ -17,27 +17,32 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddDocumentReference, operator.AddInformation, operator.AssignDocument, operator.DisableDocumentEditingUI, + operator.DisableObjectDocumentEditingUI, operator.DisableEditingDocument, operator.EditDocument, operator.EnableEditingDocument, - operator.LoadDocument, - operator.LoadParentDocument, + operator.LoadObjectDocuments, operator.LoadProjectDocuments, operator.RemoveDocument, operator.SelectDocumentObjects, + operator.ToggleDocument, operator.UnassignDocument, + operator.OpenIFCDocument, prop.Document, + prop.DocumentObject, prop.BIMDocumentProperties, ui.BIM_PT_documents, ui.BIM_PT_object_documents, ui.BIM_UL_documents, + ui.BIM_UL_document_objects, ) diff --git a/src/bonsai/bonsai/bim/module/document/data.py b/src/bonsai/bonsai/bim/module/document/data.py index 5cde82e499..97b4a1f206 100644 --- a/src/bonsai/bonsai/bim/module/document/data.py +++ b/src/bonsai/bonsai/bim/module/document/data.py @@ -17,9 +17,12 @@ # along with Bonsai. If not, see . import os + import bpy import ifcopenshell import ifcopenshell.util.schema +from natsort import natsorted + import bonsai.tool as tool @@ -35,30 +38,50 @@ class DocumentData: @classmethod def load(cls): cls.data = { - "total_information": cls.total_information(), - "parent_document": cls.parent_document(), + "total_documents": cls.total_documents(), + "document_objects": cls.document_objects(), } cls.is_loaded = True @classmethod - def total_information(cls): - return len( - [ - rel - for rel in tool.Ifc.get().by_type("IfcProject")[0].HasAssociations or [] - if rel.is_a("IfcRelAssociatesDocument") and rel.RelatingDocument.is_a("IfcDocumentInformation") - ] - ) + def total_documents(cls): + file = tool.Ifc.get() + return len(file.by_type("IfcDocumentInformation")) + len(file.by_type("IfcDocumentReference")) @classmethod - def parent_document(cls): + def document_objects(cls): + document_objects = {} + file = tool.Ifc.get() + + for rel in file.by_type("IfcRelAssociatesDocument"): + document_id = rel.RelatingDocument.id() + if document_id not in document_objects: + document_objects[document_id] = [] + + for related_object in rel.RelatedObjects: + element = related_object + obj = tool.Ifc.get_object(element) + if obj: + document_objects[document_id].append({"id": element.id(), "name": obj.name, "obj": obj}) + + return document_objects + + @classmethod + def load_document_objects_into_props(cls, document_id): + if not cls.is_loaded: + cls.load() + props = tool.Document.get_document_props() - if len(props.breadcrumbs): - parent = tool.Ifc.get().by_id(int(props.breadcrumbs[-1].name)) - if tool.Ifc.get_schema() == "IFC2X3": - return str(parent.DocumentId) - return str(parent.Identification) - return "" + props.document_objects.clear() + + if document_id not in cls.data["document_objects"]: + return + + sorted_objects = natsorted(cls.data["document_objects"][document_id], key=lambda x: x["name"].lower()) + + for obj_data in sorted_objects: + item = props.document_objects.add() + item.name = obj_data["name"] class ObjectDocumentData: @@ -72,6 +95,18 @@ class ObjectDocumentData: } cls.is_loaded = True + @staticmethod + def convert_to_file_uri(location: str) -> str: + if not location: + return "" + + uri = location + if "://" not in uri: + if not os.path.isabs(uri): + uri = os.path.abspath(os.path.join(os.path.dirname(tool.Ifc.get_path()), uri)) + uri = "file://" + uri + return uri + @classmethod def documents(cls): results = [] @@ -80,44 +115,61 @@ class ObjectDocumentData: return results for rel in getattr(element, "HasAssociations", []): if rel.is_a("IfcRelAssociatesDocument"): - if not rel.RelatingDocument.is_a("IfcDocumentReference"): + relating_document = rel.RelatingDocument + + is_information = relating_document.is_a("IfcDocumentInformation") + is_reference = relating_document.is_a("IfcDocumentReference") + + if not (is_information or is_reference): continue - name = rel.RelatingDocument.Name + name = relating_document.Name - if tool.Ifc.get_schema() == "IFC2X3": - if not name and rel.RelatingDocument.ReferenceToDocument: - name = rel.RelatingDocument.ReferenceToDocument[0].Name + location = None + identification = None - identification = rel.RelatingDocument.ItemReference - if not identification and rel.RelatingDocument.ReferenceToDocument: - identification = rel.RelatingDocument.ReferenceToDocument[0].DocumentId + if is_information: + if tool.Ifc.get_schema() == "IFC2X3": + identification = relating_document.DocumentId + else: + identification = relating_document.Identification - location = rel.RelatingDocument.Location + location = getattr(relating_document, "Location", None) + description = getattr(relating_document, "Description", "No description") else: - if not name and rel.RelatingDocument.ReferencedDocument: - name = rel.RelatingDocument.ReferencedDocument.Name + description = relating_document.Description + if tool.Ifc.get_schema() == "IFC2X3": + reference_to_document = relating_document.ReferenceToDocument + if not name and reference_to_document: + name = reference_to_document[0].Name - identification = rel.RelatingDocument.Identification - if not identification and rel.RelatingDocument.ReferencedDocument: - identification = rel.RelatingDocument.ReferencedDocument.Identification + identification = relating_document.ItemReference + if not identification and reference_to_document: + identification = reference_to_document[0].DocumentId + location = relating_document.Location + else: + referenced_document = relating_document.ReferencedDocument + if not name and referenced_document: + name = referenced_document.Name - location = rel.RelatingDocument.Location - if location is None and rel.RelatingDocument.ReferencedDocument: - location = rel.RelatingDocument.ReferencedDocument.Location + identification = relating_document.Identification + if not identification and referenced_document: + identification = referenced_document.Identification - if location: - if not "://" in location: - if not os.path.isabs(location): - location = os.path.abspath(os.path.join(os.path.dirname(tool.Ifc.get_path()), location)) - location = "file://" + location + location = relating_document.Location + if location is None and referenced_document: + location = referenced_document.Location + + location = cls.convert_to_file_uri(location) if location else None results.append( { - "id": rel.RelatingDocument.id(), + "id": relating_document.id(), "identification": identification, "name": name, "location": location, + "is_information": is_information, + "description": description, } ) return results diff --git a/src/bonsai/bonsai/bim/module/document/operator.py b/src/bonsai/bonsai/bim/module/document/operator.py index da75e16e63..a4e5cfc4ac 100644 --- a/src/bonsai/bonsai/bim/module/document/operator.py +++ b/src/bonsai/bonsai/bim/module/document/operator.py @@ -16,14 +16,14 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import json -import ifcopenshell.api -import ifcopenshell.util.attribute -import ifcopenshell.util.element + +import bpy + import bonsai.bim.handler -import bonsai.tool as tool import bonsai.core.document as core +import bonsai.tool as tool +from bonsai.bim.module.document.data import DocumentData, ObjectDocumentData class LoadProjectDocuments(bpy.types.Operator): @@ -33,30 +33,6 @@ class LoadProjectDocuments(bpy.types.Operator): def execute(self, context): core.load_project_documents(tool.Document) - bonsai.bim.handler.refresh_ui_data() # Update breadcrumbs data. - return {"FINISHED"} - - -class LoadDocument(bpy.types.Operator): - bl_idname = "bim.load_document" - bl_label = "Load Document" - bl_options = {"REGISTER", "UNDO"} - document: bpy.props.IntProperty() - - def execute(self, context): - core.load_document(tool.Document, document=tool.Ifc.get().by_id(self.document)) - bonsai.bim.handler.refresh_ui_data() # Update breadcrumbs data. - return {"FINISHED"} - - -class LoadParentDocument(bpy.types.Operator): - bl_idname = "bim.load_parent_document" - bl_label = "Load Parent Document" - bl_options = {"REGISTER", "UNDO"} - - def execute(self, context): - core.load_parent_document(tool.Document) - bonsai.bim.handler.refresh_ui_data() # Update breadcrumbs data. return {"FINISHED"} @@ -70,6 +46,16 @@ class DisableDocumentEditingUI(bpy.types.Operator): return {"FINISHED"} +class DisableObjectDocumentEditingUI(bpy.types.Operator): + bl_idname = "bim.disable_object_document_editing_ui" + bl_label = "Disable Object Document Editing UI" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + core.disable_object_document_editing_ui(tool.Document) + return {"FINISHED"} + + class EnableEditingDocument(bpy.types.Operator): bl_idname = "bim.enable_editing_document" bl_label = "Enable Editing Document" @@ -77,7 +63,7 @@ class EnableEditingDocument(bpy.types.Operator): document: bpy.props.IntProperty() def execute(self, context): - core.enable_editing_document(tool.Document, document=tool.Ifc.get().by_id(self.document)) + core.enable_editing_document(tool.Document, ifc_document=tool.Ifc.get().by_id(self.document)) return {"FINISHED"} @@ -97,7 +83,35 @@ class AddInformation(bpy.types.Operator, tool.Ifc.Operator): bl_options = {"REGISTER", "UNDO"} def _execute(self, context): - core.add_information(tool.Ifc, tool.Document) + props = tool.Document.get_document_props() + parent = None + if props.active_document: + selected_document = props.active_document + + if selected_document.document_type == "PROJECT": + parent = tool.Ifc.get().by_type("IfcProject")[0] + elif selected_document.document_type == "INFORMATION": + parent = tool.Ifc.get().by_id(selected_document.ifc_definition_id) + elif selected_document.document_type == "REFERENCE": + self.report({"ERROR"}, "Cannot add an information element as a child of a reference element") + return {"CANCELLED"} + else: + parent = tool.Ifc.get().by_type("IfcProject")[0] + + core.add_information(tool.Ifc, tool.Document, parent) + + expanded_docs = [] + try: + expanded_docs = json.loads(props.json_string) + except (AttributeError, json.JSONDecodeError): + pass + + if parent and parent.is_a("IfcDocumentInformation"): + if parent.id() not in expanded_docs: + expanded_docs.append(parent.id()) + + props.json_string = json.dumps(expanded_docs) + bpy.ops.bim.load_project_documents() class AddDocumentReference(bpy.types.Operator, tool.Ifc.Operator): @@ -106,7 +120,33 @@ class AddDocumentReference(bpy.types.Operator, tool.Ifc.Operator): bl_options = {"REGISTER", "UNDO"} def _execute(self, context): + props = tool.Document.get_document_props() + + if not props.active_document: + self.report({"ERROR"}, "No document selected") + return {"CANCELLED"} + + selected_document = props.active_document + + if selected_document.document_type != "INFORMATION": + self.report({"ERROR"}, "Cannot add a reference to a document that is not an information element") + return {"CANCELLED"} + + parent = tool.Ifc.get().by_id(selected_document.ifc_definition_id) + + props.document_attributes.clear() core.add_reference(tool.Ifc, tool.Document) + expanded_docs = [] + try: + expanded_docs = json.loads(props.json_string) + except (AttributeError, json.JSONDecodeError): + pass + + if parent.id() not in expanded_docs: + expanded_docs.append(parent.id()) + props.json_string = json.dumps(expanded_docs) + + bpy.ops.bim.load_project_documents() class EditDocument(bpy.types.Operator, tool.Ifc.Operator): @@ -116,7 +156,9 @@ class EditDocument(bpy.types.Operator, tool.Ifc.Operator): def _execute(self, context): props = tool.Document.get_document_props() - core.edit_document(tool.Ifc, tool.Document, document=tool.Ifc.get().by_id(props.active_document_id)) + if props.active_document_id: + core.edit_document(tool.Ifc, tool.Document, ifc_document=tool.Ifc.get().by_id(props.active_document_id)) + props.active_document_id = 0 class RemoveDocument(bpy.types.Operator, tool.Ifc.Operator): @@ -126,7 +168,7 @@ class RemoveDocument(bpy.types.Operator, tool.Ifc.Operator): document: bpy.props.IntProperty() def _execute(self, context): - core.remove_document(tool.Ifc, tool.Document, document=tool.Ifc.get().by_id(self.document)) + core.remove_document(tool.Ifc, tool.Document, ifc_document=tool.Ifc.get().by_id(self.document)) class AssignDocument(bpy.types.Operator, tool.Ifc.Operator): @@ -138,12 +180,15 @@ class AssignDocument(bpy.types.Operator, tool.Ifc.Operator): document: bpy.props.IntProperty() def _execute(self, context): - document = tool.Ifc.get().by_id(self.document) objs = [bpy.data.objects[self.obj]] if self.obj else tool.Blender.get_selected_objects() for obj in objs: element = tool.Ifc.get_entity(obj) if element: - core.assign_document(tool.Ifc, product=element, document=document) + core.assign_document(tool.Ifc, product=element, ifc_document=tool.Ifc.get().by_id(self.document)) + + tool.Document.update_document_objects(self.document) + ObjectDocumentData.load() + return {"FINISHED"} class UnassignDocument(bpy.types.Operator, tool.Ifc.Operator): @@ -154,12 +199,25 @@ class UnassignDocument(bpy.types.Operator, tool.Ifc.Operator): document: bpy.props.IntProperty() def _execute(self, context): - document = tool.Ifc.get().by_id(self.document) objs = [bpy.data.objects.get(self.obj)] if self.obj else tool.Blender.get_selected_objects() for obj in objs: - element = tool.Ifc.get_entity(obj) - if element: - core.unassign_document(tool.Ifc, product=element, document=document) + if obj: + element = tool.Ifc.get_entity(obj) + if element: + core.unassign_document(tool.Ifc, product=element, ifc_document=tool.Ifc.get().by_id(self.document)) + + props = tool.Document.get_document_props() + active_document_id = None + if props.active_document: + active_document_id = props.active_document.ifc_definition_id + + if active_document_id and active_document_id != self.document: + tool.Document.update_document_objects(active_document_id) + else: + tool.Document.update_document_objects() + + ObjectDocumentData.load() + return {"FINISHED"} class SelectDocumentObjects(bpy.types.Operator): @@ -182,3 +240,81 @@ class SelectDocumentObjects(bpy.types.Operator): i += 1 self.report({"INFO"}, f"{i} objects selected.") return {"FINISHED"} + + +class LoadObjectDocuments(bpy.types.Operator): + bl_idname = "bim.load_object_documents" + bl_label = "Load Object Documents" + bl_description = "Load documents to assign to the selected object" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + core.load_project_documents(tool.Document) + + props = tool.Document.get_document_props() + props.is_object_editing = True + ObjectDocumentData.load() + return {"FINISHED"} + + +class OpenIFCDocument(bpy.types.Operator): + bl_idname = "bim.open_ifc_document" + bl_label = "Open IFC Document" + bl_description = "Open the IFC document in a new Blender instance and load the project" + bl_options = {"REGISTER", "UNDO"} + + uri: bpy.props.StringProperty(name="URI") + + def execute(self, context): + import os + import subprocess + + if not self.uri or not self.uri.lower().startswith("file://"): + self.report({"ERROR"}, "Only local file:// URIs are supported") + return {"CANCELLED"} + + filepath = self.uri[7:] + + if not os.path.exists(filepath): + self.report({"ERROR"}, f"File not found: {filepath}") + return {"CANCELLED"} + + blender_path = bpy.app.binary_path + args = [ + blender_path, + "--python-expr", + "import bpy; bpy.ops.bim.load_project(filepath='{}')".format(filepath), + ] + subprocess.Popen(args) + self.report({"INFO"}, f"Opening {filepath} in a new Blender instance") + + return {"FINISHED"} + + +class ToggleDocument(bpy.types.Operator): + bl_idname = "bim.toggle_document" + bl_label = "Toggle Document" + bl_options = {"REGISTER", "UNDO"} + document: bpy.props.IntProperty() + option: bpy.props.StringProperty() + + def execute(self, context): + expanded_documents = [] + props = tool.Document.get_document_props() + try: + expanded_documents = json.loads(props.json_string) + except (AttributeError, json.JSONDecodeError): + expanded_documents = [] + + document_id = self.document + + document = tool.Ifc.get().by_id(document_id) + if document: + if self.option == "Expand" and document_id not in expanded_documents: + expanded_documents.append(document_id) + elif self.option == "Collapse" and document_id in expanded_documents: + expanded_documents.remove(document_id) + + props.json_string = json.dumps(expanded_documents) + bpy.ops.bim.load_project_documents() + return {"FINISHED"} diff --git a/src/bonsai/bonsai/bim/module/document/prop.py b/src/bonsai/bonsai/bim/module/document/prop.py index f4e4b16686..b1eb41cc2e 100644 --- a/src/bonsai/bonsai/bim/module/document/prop.py +++ b/src/bonsai/bonsai/bim/module/document/prop.py @@ -1,36 +1,21 @@ -# Bonsai - OpenBIM Blender Add-on -# Copyright (C) 2020, 2021 Dion Moult -# -# This file is part of Bonsai. -# -# Bonsai is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# Bonsai is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Union import bpy -import bonsai.tool as tool -from bonsai.bim.prop import StrProperty, Attribute -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Union +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.module.document.data import DocumentData, refresh +from bonsai.bim.prop import Attribute, StrProperty def update_document_name(self: "Document", context: bpy.types.Context) -> None: @@ -49,18 +34,50 @@ def update_document_identification(self: "Document", context: bpy.types.Context) tool.Document.set_external_reference_id(document, self.identification) +def update_active_document_index(self, context): + refresh() + if document := self.active_document: + if document.ifc_definition_id: + DocumentData.load_document_objects_into_props(document.ifc_definition_id) + + class Document(PropertyGroup): - name: StringProperty(name="Name", update=update_document_name) - identification: StringProperty(name="Identification", update=update_document_identification) - is_information: BoolProperty( - name="Is Information", - description="Whether element is IfcDocumentInformation, otherwise it's IfcDocumentReference.", + name: StringProperty(name="Name") + identification: StringProperty(name="Identification") + description: StringProperty(name="Description") + ifc_definition_id: IntProperty(name="IFC Definition ID") + location: StringProperty(name="Location", default="") + tree_depth: IntProperty(name="Tree Depth", default=0) + has_children: BoolProperty(name="Has Children", default=False) + is_expanded: BoolProperty(name="Is Expanded", default=False) + document_type: EnumProperty( + name="Document Type", + items=[ + ("PROJECT", "Project", "Virtual project root node"), + ("INFORMATION", "Information", "IfcDocumentInformation"), + ("REFERENCE", "Reference", "IfcDocumentReference"), + ], + default="INFORMATION", ) + + if TYPE_CHECKING: + name: str + identification: str + description: str + ifc_definition_id: int + location: str + tree_depth: int + has_children: bool + is_expanded: bool + document_type: str + + +class DocumentObject(PropertyGroup): + name: StringProperty(name="Name") ifc_definition_id: IntProperty(name="IFC Definition ID") if TYPE_CHECKING: - identification: str - is_information: bool + name: str ifc_definition_id: int @@ -68,17 +85,23 @@ class BIMDocumentProperties(PropertyGroup): document_attributes: CollectionProperty(name="Document Attributes", type=Attribute) active_document_id: IntProperty(name="Active Document Id") documents: CollectionProperty(name="Documents", type=Document) - breadcrumbs: CollectionProperty(name="Breadcrumbs", type=StrProperty) - active_document_index: IntProperty(name="Active Document Index") + active_document_index: IntProperty(name="Active Document Index", update=update_active_document_index) is_editing: BoolProperty(name="Is Editing", default=False) + is_object_editing: BoolProperty(name="Is Object Editing", default=False) + document_objects: CollectionProperty(name="Document Objects", type=DocumentObject) + active_document_object_index: IntProperty(name="Active Document Object Index") + json_string: StringProperty(name="JSON String", default="[]") if TYPE_CHECKING: document_attributes: bpy.types.bpy_prop_collection_idprop[Attribute] active_document_id: int documents: bpy.types.bpy_prop_collection_idprop[Document] - breadcrumbs: bpy.types.bpy_prop_collection_idprop[StrProperty] active_document_index: int is_editing: bool + is_object_editing: bool + document_objects: bpy.types.bpy_prop_collection_idprop[DocumentObject] + active_document_object_index: int + json_string: str @property def active_document(self) -> Union[Document, None]: diff --git a/src/bonsai/bonsai/bim/module/document/ui.py b/src/bonsai/bonsai/bim/module/document/ui.py index 5897edbad8..eda5d34a1d 100644 --- a/src/bonsai/bonsai/bim/module/document/ui.py +++ b/src/bonsai/bonsai/bim/module/document/ui.py @@ -16,8 +16,10 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bonsai.tool as tool +import bpy from bpy.types import Panel, UIList + +import bonsai.tool as tool from bonsai.bim.helper import draw_attributes from bonsai.bim.module.document.data import DocumentData, ObjectDocumentData @@ -42,7 +44,8 @@ class BIM_PT_documents(Panel): self.props = tool.Document.get_document_props() row = self.layout.row(align=True) - row.label(text="{} Documents Found".format(DocumentData.data["total_information"]), icon="FILE") + row.label(text="{} Documents found".format(DocumentData.data["total_documents"]), icon="FILE") + if self.props.is_editing: row.operator("bim.disable_document_editing_ui", text="", icon="CANCEL") else: @@ -52,34 +55,54 @@ class BIM_PT_documents(Panel): return row = self.layout.row(align=True) - if self.props.breadcrumbs: - row.operator("bim.load_parent_document", text="", icon="FRAME_PREV") - row.label(text=DocumentData.data["parent_document"]) - else: - row.alignment = "RIGHT" - row.operator("bim.add_information", text="", icon="ADD") - if self.props.breadcrumbs: - row.operator("bim.add_document_reference", text="", icon="FILE_HIDDEN") + row.alignment = "RIGHT" - active_document = self.props.active_document - - if self.props.active_document_id: + if self.props.active_document_id > 0: row.operator("bim.edit_document", text="", icon="CHECKMARK") row.operator("bim.disable_editing_document", text="", icon="CANCEL") - elif active_document: - ifc_definition_id = active_document.ifc_definition_id - row.operator("bim.select_document_objects", text="", icon="RESTRICT_SELECT_OFF").document = ( - ifc_definition_id - ) - row.operator("bim.assign_document", text="", icon="BRUSH_DATA").document = ifc_definition_id - row.operator("bim.enable_editing_document", text="", icon="GREASEPENCIL").document = ifc_definition_id - row.operator("bim.remove_document", text="", icon="X").document = ifc_definition_id + else: + if not self.props.active_document or self.props.active_document.document_type in ["INFORMATION", "PROJECT"]: + row.operator("bim.add_information", text="", icon="ADD") + if self.props.active_document and ( + self.props.active_document.document_type == "INFORMATION" + and self.props.active_document.document_type != "PROJECT" + ): + row.operator("bim.add_document_reference", text="", icon="FILE_HIDDEN") + + active_document = self.props.active_document + if active_document: + ifc_definition_id = active_document.ifc_definition_id + + if active_document.document_type != "PROJECT": + row.operator("bim.select_document_objects", text="", icon="RESTRICT_SELECT_OFF").document = ( + ifc_definition_id + ) + row.operator("bim.assign_document", text="", icon="BRUSH_DATA").document = ifc_definition_id + row.operator("bim.enable_editing_document", text="", icon="GREASEPENCIL").document = ( + ifc_definition_id + ) + row.operator("bim.remove_document", text="", icon="X").document = ifc_definition_id self.layout.template_list("BIM_UL_documents", "", self.props, "documents", self.props, "active_document_index") - if self.props.active_document_id: + if self.props.active_document_id > 0: + active_document = self.props.active_document draw_attributes(self.props.document_attributes, self.layout) + if self.props.is_editing and self.props.active_document: + document = self.props.active_document + box = self.layout.box() + row = box.row(align=True) + row.label(text="Assigned Objects", icon="OUTLINER_OB_EMPTY") + box.template_list( + "BIM_UL_document_objects", + "", + self.props, + "document_objects", + self.props, + "active_document_object_index", + ) + class BIM_PT_object_documents(Panel): bl_label = "Documents" @@ -102,65 +125,144 @@ class BIM_PT_object_documents(Panel): return True def draw(self, context): + obj = context.active_object if not ObjectDocumentData.is_loaded: ObjectDocumentData.load() - obj = context.active_object self.oprops = tool.Blender.get_object_bim_props(obj) self.props = tool.Document.get_document_props() self.file = tool.Ifc.get() - self.draw_add_ui() - - if not ObjectDocumentData.data["documents"]: - row = self.layout.row(align=True) - row.label(text="No Documents", icon="FILE") - - for document in ObjectDocumentData.data["documents"]: - row = self.layout.row(align=True) - row.label(text=document["identification"] or "*", icon="FILE") - row.label(text=document["name"] or "Unnamed") - if document["location"]: - row.operator("bim.open_uri", icon="URL", text="").uri = document["location"] - row.operator("bim.unassign_document", text="", icon="X").document = document["id"] - - def draw_add_ui(self): - if not self.props.is_editing: - row = self.layout.row(align=True) - row.operator("bim.load_project_documents", text="Assign Document References", icon="ADD") - return + doc_count = len(ObjectDocumentData.data["documents"]) row = self.layout.row(align=True) - if self.props.breadcrumbs: - row.operator("bim.load_parent_document", text="", icon="FRAME_PREV") - row.label(text=DocumentData.data["parent_document"]) + row.label(text="{} Documents Assigned".format(doc_count), icon="FILE") + + if self.props.is_object_editing: + row.operator("bim.disable_object_document_editing_ui", text="", icon="CANCEL") else: + row.operator("bim.load_object_documents", text="", icon="IMPORT") + + if not self.props.is_object_editing and doc_count == 0: + row = self.layout.row() + row.label(text="No documents assigned", icon="INFO") + return + + if self.props.is_object_editing: + self.draw_add_ui() + box = self.layout.box() + row = box.row(align=True) + row.label(text="Assigned Documents", icon="OUTLINER_OB_EMPTY") + + if doc_count > 0: + col = box.column(align=True) + for document in ObjectDocumentData.data["documents"]: + row = col.row(align=True) + + # Create a split layout to separate left and right sides + split = row.split(factor=0.7) # Adjust factor as needed (0.7 = 70% left, 30% right) + + # Left side - Document identification and name + left_side = split.row(align=True) + left_side.alignment = "LEFT" + left_side.label(text=document["identification"] or "*", icon="FILE") + left_side.label(text=document["name"] or "Unnamed") + + # Right side - Action buttons + right_side = split.row(align=True) + right_side.alignment = "RIGHT" # Align buttons to the right + + if document["location"]: + if document["location"].lower().endswith(".ifc"): + right_side.operator("bim.open_ifc_document", icon="HIDE_OFF", text="").uri = document[ + "location" + ] + right_side.operator("bim.open_uri", icon="URL", text="").uri = document["location"] + + right_side.operator("bim.unassign_document", text="", icon="X").document = document["id"] + + def draw_add_ui(self): + if self.props.is_object_editing: + row = self.layout.row(align=True) row.alignment = "RIGHT" - if self.props.documents and self.props.active_document_index < len(self.props.documents): - document = self.props.documents[self.props.active_document_index] - if not document.is_information: - row.operator("bim.assign_document", text="", icon="ADD").document = document.ifc_definition_id - row.operator("bim.disable_document_editing_ui", text="", icon="CANCEL") + if self.props.active_document: + document = self.props.active_document - self.layout.template_list("BIM_UL_documents", "", self.props, "documents", self.props, "active_document_index") + assigned_doc_ids = [] + for doc in ObjectDocumentData.data["documents"]: + assigned_doc_ids.append(doc["id"]) + + if ( + document.document_type == "INFORMATION" + and document.document_type != "PROJECT" + and document.ifc_definition_id not in assigned_doc_ids + ): + doc_op = row.operator("bim.assign_document", text="", icon="BRUSH_DATA") + doc_op.document = document.ifc_definition_id + elif document.ifc_definition_id in assigned_doc_ids: + row.label(text="", icon="CHECKMARK") + self.layout.template_list( + "BIM_UL_documents", "", self.props, "documents", self.props, "active_document_index" + ) class BIM_UL_documents(UIList): def draw_item(self, context, layout, data, item, icon, active_data, active_propname): if item: row = layout.row(align=True) + indent_depth = 0 - if item.is_information: - op = row.operator("bim.load_document", text="", emboss=False, icon="DISCLOSURE_TRI_RIGHT") - op.document = item.ifc_definition_id - row.label(text="", icon="FILE") - else: + if item.document_type != "PROJECT": + if item.tree_depth > 1: + indent_depth = item.tree_depth - 1 + + for i in range(indent_depth): row.label(text="", icon="BLANK1") - row.label(text="", icon="FILE_HIDDEN") + if item.document_type == "PROJECT": + row.label(text="", icon="OUTLINER_COLLECTION") + row.label(text=item.name) + return + + if item.document_type == "INFORMATION" and item.has_children: + op = row.operator( + "bim.toggle_document", icon="TRIA_DOWN" if item.is_expanded else "TRIA_RIGHT", text="", emboss=False + ) + op.document = item.ifc_definition_id + op.option = "Collapse" if item.is_expanded else "Expand" + elif item.document_type == "INFORMATION": + row.label(text="", icon="BLANK1") + + if item.document_type == "INFORMATION": + row.label(text="", icon="FILE") + text = " - ".join([x for x in [item.location, item.description, item.name] if x]) + else: + row.label(text="", icon="FILE_HIDDEN") + text = " - ".join([x for x in [item.location, item.description] if x]) split1 = row.split(factor=0.1) - # split1.label(text=item.identification) split1.prop(item, "identification", text="", emboss=False) - split2 = split1.split(factor=0.9) - split2.prop(item, "name", text="", emboss=False) + split2 = split1.split(factor=0.8) + split2.label(text=text) + + if item.location: + uri = ObjectDocumentData.convert_to_file_uri(item.location) + if item.location.lower().endswith(".ifc"): + row.operator("bim.open_ifc_document", icon="HIDE_OFF", text="").uri = uri + row.operator("bim.open_uri", icon="URL", text="").uri = uri + + +class BIM_UL_document_objects(UIList): + def draw_item(self, context, layout, data, item, icon, active_data, active_propname): + if item: + row = layout.row(align=True) + row.prop(item, "name", text="", emboss=False, icon="OBJECT_DATA") + row.operator("bim.select_object", text="", icon="RESTRICT_SELECT_OFF").obj_name = item.name + + props = tool.Document.get_document_props() + if props.active_document: + document = props.active_document + + op = row.operator("bim.unassign_document", text="", icon="X") + op.document = document.ifc_definition_id + op.obj = item.name diff --git a/src/bonsai/bonsai/bim/module/drawing/__init__.py b/src/bonsai/bonsai/bim/module/drawing/__init__.py index 187020fc77..9f172ce2bb 100644 --- a/src/bonsai/bonsai/bim/module/drawing/__init__.py +++ b/src/bonsai/bonsai/bim/module/drawing/__init__.py @@ -17,11 +17,15 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator, handler, gizmos, workspace + +import bonsai.tool as tool + +from . import gizmos, handler, operator, prop, ui, workspace classes = ( operator.ActivateDrawing, operator.ActivateDrawingFromSheet, + operator.ActivateDrawingByAnnotation, operator.ActivateDrawingStyle, operator.ActivateModel, operator.AddAnnotation, @@ -41,6 +45,7 @@ classes = ( operator.CleanWireframes, operator.ContractSheet, operator.ConvertSVGToDXF, + operator.CopyTextToSelection, operator.CreateDrawing, operator.CreateSheets, operator.DisableAddAnnotationType, @@ -63,6 +68,17 @@ classes = ( operator.EnableEditingText, operator.ExcludeAnnotation, operator.ExpandSheet, + operator.ToggleElementValuesPanel, + operator.ToggleElementValuesCategory, + operator.SelectElementValues, + operator.InsertFormattedLiteralPopup, + operator.AddElementValueRow, + operator.RemoveElementValueRow, + operator.ElementValueSuggestionsPopup, + operator.FormatElementValueRow, + operator.ApplyElementValueRowsToLiteral, + operator.ShowCategoryHelp, + operator.ShowElementValuesInstructions, operator.LoadDrawings, operator.LoadReferences, operator.LoadSchedules, @@ -87,8 +103,10 @@ classes = ( operator.SelectAllDrawings, operator.SelectAllSheets, operator.SelectAssignedProduct, + operator.SelectSimilarTextLiteralValue, operator.ToggleTargetView, operator.OpenDocumentationWebUi, + operator.FilterSelectedObjectsIfIntersectedByCamera, prop.Variable, prop.Drawing, prop.Document, @@ -96,6 +114,7 @@ classes = ( prop.Sheet, prop.DocProperties, prop.BIMCameraProperties, + prop.ElementValueRow, prop.LiteralProps, prop.BIMTextProperties, prop.BIMAssignedProductProperties, @@ -111,9 +130,22 @@ classes = ( ui.BIM_PT_text, ui.BIM_UL_drawinglist, ui.BIM_UL_sheets, + # Core gizmos (shared across modules) + gizmos.BIM_OT_gizmo_value_input, + gizmos.GizmoArrow, + gizmos.GizmoArrow2D, + gizmos.GizmoCone, + gizmos.GizmoDimension, + gizmos.GizmoLock, + gizmos.GizmoArc, + gizmos.GizmoPen, + gizmos.GizmoValidate, + gizmos.GizmoCancel, + gizmos.GizmoPlus, + gizmos.GizmoMinus, + gizmos.GizmoCycle, + # Drawing-specific gizmos gizmos.UglyDotGizmo, - gizmos.DotGizmo, - gizmos.DimensionLabelGizmo, gizmos.ExtrusionGuidesGizmo, gizmos.ExtrusionWidget, workspace.LaunchAnnotationTypeManager, @@ -121,6 +153,14 @@ classes = ( ) +def menu_func(self, context): + active_obj = context.active_object + if active_obj: + element = tool.Ifc.get_entity(active_obj) + if element and element.is_a("IfcAnnotation") and element.ObjectType in ["SECTION", "ELEVATION"]: + self.layout.operator("bim.activate_drawing_by_annotation", text="Go to Drawing") + + def register(): if not bpy.app.background: bpy.utils.register_tool(workspace.AnnotationTool, after={"bim.bim_tool"}, separator=True, group=False) @@ -133,6 +173,7 @@ def register(): bpy.app.handlers.load_post.append(handler.load_post) bpy.app.handlers.depsgraph_update_pre.append(handler.depsgraph_update_pre_handler) bpy.types.VIEW3D_MT_image_add.append(ui.add_object_button) + bpy.types.VIEW3D_MT_object_context_menu.append(menu_func) def unregister(): @@ -147,3 +188,4 @@ def unregister(): bpy.app.handlers.load_post.remove(handler.load_post) bpy.app.handlers.depsgraph_update_pre.remove(handler.depsgraph_update_pre_handler) bpy.types.VIEW3D_MT_image_add.remove(ui.add_object_button) + bpy.types.VIEW3D_MT_object_context_menu.remove(menu_func) diff --git a/src/bonsai/bonsai/bim/module/drawing/annotation.py b/src/bonsai/bonsai/bim/module/drawing/annotation.py index 9589b9ac00..18d914872a 100644 --- a/src/bonsai/bonsai/bim/module/drawing/annotation.py +++ b/src/bonsai/bonsai/bim/module/drawing/annotation.py @@ -17,16 +17,19 @@ # along with Bonsai. If not, see . from __future__ import annotations -import os -import bpy + import math -import bmesh -import bonsai.tool as tool -import ifcopenshell.util.element +import os from pathlib import Path -from mathutils import Vector, Matrix from typing import Optional +import bmesh +import bpy +import ifcopenshell.util.element +from mathutils import Matrix, Vector + +import bonsai.tool as tool + class Annotator: @staticmethod diff --git a/src/bonsai/bonsai/bim/module/drawing/data.py b/src/bonsai/bonsai/bim/module/drawing/data.py index af8fac3cdf..1668d386d3 100644 --- a/src/bonsai/bonsai/bim/module/drawing/data.py +++ b/src/bonsai/bonsai/bim/module/drawing/data.py @@ -16,17 +16,20 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os -import bpy import json -import ifcopenshell.util.element -import ifcopenshell.util.representation -import ifcopenshell.util.unit -import bonsai.tool as tool +import os from pathlib import Path from typing import Any, Union + +import bpy +import ifcopenshell.util.element +import ifcopenshell.util.representation +import ifcopenshell.util.selector +import ifcopenshell.util.unit from natsort import natsorted +import bonsai.tool as tool + def refresh(): ProductAssignmentsData.is_loaded = False @@ -335,41 +338,37 @@ class DecoratorData: @classmethod def get_text_data(cls, obj: bpy.types.Object) -> dict[str, Any]: - """used by Ifc Annotations with ObjectType = "TEXT" / "TEXT_LEADER"\n + """used by Ifc Annotations with ObjectType = "TEXT" / "TEXT_LEADER" returns font size in mm for current ifc text object""" element = tool.Ifc.get_entity(obj) assert element # getting font size pset_data = ifcopenshell.util.element.get_pset(element, "EPset_Annotation") or {} - # use `regular` as default # get font size classes = pset_data.get("Classes", None) or "regular" classes_split = classes.split() - # prioritize smaller font sizes just like in svg font_size_type = next( (font_size_type for font_size_type in FONT_SIZES if font_size_type in classes_split), "regular" ) font_size = FONT_SIZES[font_size_type] symbol = tool.Drawing.get_annotation_symbol(element) newline_at = pset_data.get("Newline_At", 0) - reverse_list = pset_data.get("Reverse_List", False) - list_separator = pset_data.get("List_Separator") or ", " # other attributes literals = tool.Drawing.get_text_literal(obj, return_list=True) assert isinstance(literals, list) literals_data: list[dict[str, Any]] = [] - product = tool.Drawing.get_assigned_product(element) or element + + product = cls.get_product_for_element_values(obj, element) + for literal in literals: literal_value = literal.Literal literal_data = { "Literal": literal_value, "BoxAlignment": literal.BoxAlignment, - "CurrentValue": tool.Drawing.replace_text_literal_variables( - literal_value, product, reverse_list, list_separator - ), + "CurrentValue": tool.Drawing.replace_text_literal_variables(literal_value, product), } literals_data.append(literal_data) @@ -378,10 +377,406 @@ class DecoratorData: "FontSize": font_size, "Symbol": symbol, "Newline_At": newline_at, - "Reverse_List": reverse_list, - "List_Separator": list_separator, } + @classmethod + def get_product_for_element_values(cls, text_obj: bpy.types.Object, element: ifcopenshell.entity_instance): + """Get the product to use for element values - either ProductUsed or assigned product""" + props = tool.Drawing.get_text_props(text_obj) + if props.literals: + for literal_props in props.literals: + if hasattr(literal_props, "product_used") and literal_props.product_used: + return tool.Ifc.get_entity(literal_props.product_used) + + assigned_product = tool.Drawing.get_assigned_product(element) + if assigned_product: + return assigned_product + + return element + + @classmethod + def get_element_value_by_key(cls, element: ifcopenshell.entity_instance, key: str): + """Get element value by its key using IfcOpenShell selector syntax""" + try: + # Basic keys + if key == "id": + return element.id() + elif key == "class": + return element.is_a() + elif key == "predefined_type": + return ifcopenshell.util.element.get_predefined_type(element) + + # Direct attributes + elif hasattr(element, key): + return getattr(element, key) + + # Material keys + elif key.startswith("material"): + return cls._get_material_value(element, key) + + # Type keys + elif key.startswith("type."): + if hasattr(element, "IsTypedBy") and element.IsTypedBy: + element_type = element.IsTypedBy[0].RelatingType + attr_name = key.split(".", 1)[1] + if hasattr(element_type, attr_name): + return getattr(element_type, attr_name) + + elif key == "types.count": + if hasattr(element, "IsTypedBy") and element.IsTypedBy: + element_type = element.IsTypedBy[0].RelatingType + occurrence_count = 0 + if hasattr(element_type, "Types"): + for rel in element_type.Types: + if hasattr(rel, "RelatedObjects"): + occurrence_count += len(rel.RelatedObjects) + return occurrence_count + + elif key == "occurrences.count": + if element.is_a("IfcTypeProduct"): + occurrence_count = 0 + if hasattr(element, "Types"): + for rel in element.Types: + if hasattr(rel, "RelatedObjects"): + occurrence_count += len(rel.RelatedObjects) + return occurrence_count + + # Spatial keys + elif key.startswith("container."): + container = ifcopenshell.util.element.get_container(element) + if container: + attr_name = key.split(".", 1)[1] + if hasattr(container, attr_name): + return getattr(container, attr_name) + + elif key.startswith("space."): + container = ifcopenshell.util.element.get_container(element) + current = container + while current: + if current.is_a("IfcSpace"): + attr_name = key.split(".", 1)[1] + if hasattr(current, attr_name): + return getattr(current, attr_name) + break + current = ifcopenshell.util.element.get_aggregate(current) + + elif key.startswith("storey."): + container = ifcopenshell.util.element.get_container(element) + current = container + while current: + if current.is_a("IfcBuildingStorey"): + attr_name = key.split(".", 1)[1] + if hasattr(current, attr_name): + return getattr(current, attr_name) + break + current = ifcopenshell.util.element.get_aggregate(current) + + elif key.startswith("building."): + container = ifcopenshell.util.element.get_container(element) + current = container + while current: + if current.is_a("IfcBuilding"): + attr_name = key.split(".", 1)[1] + if hasattr(current, attr_name): + return getattr(current, attr_name) + break + current = ifcopenshell.util.element.get_aggregate(current) + + elif key.startswith("site."): + container = ifcopenshell.util.element.get_container(element) + current = container + while current: + if current.is_a("IfcSite"): + attr_name = key.split(".", 1)[1] + if hasattr(current, attr_name): + return getattr(current, attr_name) + break + current = ifcopenshell.util.element.get_aggregate(current) + + # Parent keys + elif key.startswith("parent."): + parent = ifcopenshell.util.element.get_aggregate(element) + if parent: + attr_name = key.split(".", 1)[1] + if hasattr(parent, attr_name): + return getattr(parent, attr_name) + + # Group, system, zone keys + elif key.startswith(("group.", "system.", "zone.")): + prefix = key.split(".")[0] + attr_name = key.split(".", 1)[1] + + if hasattr(element, "HasAssignments"): + for assignment in element.HasAssignments: + if assignment.is_a("IfcRelAssignsToGroup"): + group = assignment.RelatingGroup + if ( + prefix == "group" + and group.is_a("IfcGroup") + and not group.is_a("IfcSystem") + and not group.is_a("IfcZone") + ): + if hasattr(group, attr_name): + return getattr(group, attr_name) + elif prefix == "system" and group.is_a("IfcSystem"): + if hasattr(group, attr_name): + return getattr(group, attr_name) + elif prefix == "zone" and group.is_a("IfcZone"): + if hasattr(group, attr_name): + return getattr(group, attr_name) + + elif key in ("groups.count", "systems.count", "zones.count"): + prefix = key.split(".")[0] + count = 0 + + if hasattr(element, "HasAssignments"): + for assignment in element.HasAssignments: + if assignment.is_a("IfcRelAssignsToGroup"): + group = assignment.RelatingGroup + if ( + prefix == "groups" + and group.is_a("IfcGroup") + and not group.is_a("IfcSystem") + and not group.is_a("IfcZone") + ): + count += 1 + elif prefix == "systems" and group.is_a("IfcSystem"): + count += 1 + elif prefix == "zones" and group.is_a("IfcZone"): + count += 1 + + return count + + # Classification keys + elif key.startswith("classification."): + import re + + match = re.match(r"classification\.(\d+)\.(\w+)", key) + if match: + idx = int(match.group(1)) + attr_name = match.group(2) + classifications = ifcopenshell.util.classification.get_references(element) + if classifications and 0 <= idx < len(classifications): + classification = classifications[idx] + if hasattr(classification, attr_name): + return getattr(classification, attr_name) + + elif key == "classification.count": + classifications = ifcopenshell.util.classification.get_references(element) + return len(classifications) if classifications else 0 + + # Profile keys + elif key.startswith("profiles."): + import re + + if key == "profiles.count": + material = ifcopenshell.util.element.get_material(element, should_skip_usage=True) + if material and material.is_a("IfcMaterialProfileSet") and hasattr(material, "MaterialProfiles"): + return len(material.MaterialProfiles) + return 0 + + match = re.match(r"profiles\.(\d+)\.(\w+)", key) + if match: + idx = int(match.group(1)) + attr_name = match.group(2) + material = ifcopenshell.util.element.get_material(element, should_skip_usage=True) + if material and material.is_a("IfcMaterialProfileSet") and hasattr(material, "MaterialProfiles"): + if 0 <= idx < len(material.MaterialProfiles): + profile_item = material.MaterialProfiles[idx] + if hasattr(profile_item, "Profile") and profile_item.Profile: + profile = profile_item.Profile + if hasattr(profile, attr_name): + return getattr(profile, attr_name) + return None + + elif key.startswith("profile."): + attr_name = key.split(".", 1)[1] + if hasattr(element, "Representation") and element.Representation: + for representation in element.Representation.Representations: + if hasattr(representation, "Items"): + for item in representation.Items: + if item.is_a("IfcExtrudedAreaSolid") and hasattr(item, "SweptArea"): + profile = item.SweptArea + if hasattr(profile, attr_name): + return getattr(profile, attr_name) + return None + + # Style keys + elif key.startswith("styles."): + import re + + if key == "styles.count": + try: + styles = ifcopenshell.util.element.get_styles(element) + return len(styles) if styles else 0 + except: + return 0 + + match = re.match(r"styles\.(\d+)\.(\w+)", key) + if match: + idx = int(match.group(1)) + attr_name = match.group(2) + try: + styles = ifcopenshell.util.element.get_styles(element) + if styles and 0 <= idx < len(styles): + style = styles[idx] + if attr_name == "Color" and style.is_a("IfcSurfaceStyle"): + # Extract color from surface style + if hasattr(style, "Styles"): + for surface_style_elem in style.Styles: + if surface_style_elem.is_a("IfcSurfaceStyleRendering"): + if hasattr(surface_style_elem, "SurfaceColour"): + color = surface_style_elem.SurfaceColour + return f"RGB({color.Red:.2f}, {color.Green:.2f}, {color.Blue:.2f})" + elif hasattr(style, attr_name): + return getattr(style, attr_name) + except: + pass + return None + + # Coordinate keys + elif key in ("x", "y", "z"): + if hasattr(element, "ObjectPlacement") and element.ObjectPlacement: + matrix = ifcopenshell.util.placement.get_local_placement(element.ObjectPlacement) + if matrix is not None: + if key == "x": + return matrix[0][3] + elif key == "y": + return matrix[1][3] + elif key == "z": + return matrix[2][3] + return None + + elif key in ("easting", "northing", "elevation"): + if hasattr(element, "ObjectPlacement") and element.ObjectPlacement: + try: + matrix = ifcopenshell.util.placement.get_local_placement(element.ObjectPlacement) + if matrix is not None: + ifc_file = element.wrapped_data.file + project = ifc_file.by_type("IfcProject")[0] if ifc_file.by_type("IfcProject") else None + + if project: + for context in project.RepresentationContexts or []: + if context.is_a("IfcGeometricRepresentationContext") and hasattr( + context, "HasCoordinateOperation" + ): + for coord_op in context.HasCoordinateOperation: + if coord_op.is_a("IfcMapConversion"): + if key == "easting": + return matrix[0][3] + coord_op.Eastings + elif key == "northing": + return matrix[1][3] + coord_op.Northings + elif key == "elevation": + return matrix[2][3] + coord_op.OrthogonalHeight + except: + pass + return None + + # Property sets / Quantity sets (must be checked last to avoid conflicts) + elif "." in key: + parts = key.split(".", 1) + if len(parts) == 2: + pset_name, prop_name = parts + psets = ifcopenshell.util.element.get_psets(element, psets_only=True) + qsets = ifcopenshell.util.element.get_psets(element, qtos_only=True) + all_psets = {**psets, **qsets} + + if pset_name in all_psets and prop_name in all_psets[pset_name]: + return all_psets[pset_name][prop_name] + + # Check for regex patterns (e.g., /Pset_.*Common/) + import re + + if pset_name.startswith("/") and pset_name.endswith("/"): + pattern = pset_name[1:-1] + try: + regex = re.compile(pattern) + for actual_pset_name in all_psets.keys(): + if regex.match(actual_pset_name): + if prop_name in all_psets[actual_pset_name]: + return all_psets[actual_pset_name][prop_name] + elif prop_name.startswith("/") and prop_name.endswith("/"): + prop_pattern = prop_name[1:-1] + prop_regex = re.compile(prop_pattern) + for actual_prop_name, prop_value in all_psets[actual_pset_name].items(): + if prop_regex.match(actual_prop_name): + return prop_value + except re.error: + pass + + except Exception as e: + print(f"Error getting value for key '{key}': {e}") + + return None + + @classmethod + def _get_material_value(cls, element: ifcopenshell.entity_instance, key: str): + """Extract material values using correct selector syntax""" + material = ifcopenshell.util.element.get_material(element, should_skip_usage=True) + if not material: + return None + + if key == "materials.count": + if material.is_a("IfcMaterialLayerSetUsage") and material.ForLayerSet: + layer_set = material.ForLayerSet + if hasattr(layer_set, "MaterialLayers"): + return len(layer_set.MaterialLayers) + elif material.is_a("IfcMaterialLayerSet") and hasattr(material, "MaterialLayers"): + return len(material.MaterialLayers) + elif material.is_a("IfcMaterialProfileSet") and hasattr(material, "MaterialProfiles"): + return len(material.MaterialProfiles) + elif material.is_a("IfcMaterialConstituentSet") and hasattr(material, "MaterialConstituents"): + return len(material.MaterialConstituents) + elif material.is_a("IfcMaterial"): + return 1 + return 0 + + if key == "material.Name": + return getattr(material, "Name", None) + + elif key.startswith("material.item."): + import re + + match = re.match(r"material\.item\.(\d+)\.(\w+)", key) + if match: + item_idx = int(match.group(1)) + prop_name = match.group(2) + + items = cls._get_material_items(material) + if items and 0 <= item_idx < len(items): + item = items[item_idx] + if prop_name == "Name" and hasattr(item, "Material") and item.Material: + return getattr(item.Material, "Name", None) + elif prop_name == "LayerThickness" and hasattr(item, "LayerThickness"): + return getattr(item, "LayerThickness", None) + elif hasattr(item, prop_name): + return getattr(item, prop_name, None) + + match = re.match(r"material\.item\.Material\.Name\.(\d+)", key) + if match: + item_idx = int(match.group(1)) + items = cls._get_material_items(material) + if items and 0 <= item_idx < len(items): + item = items[item_idx] + if hasattr(item, "Material") and item.Material: + return getattr(item.Material, "Name", None) + + return None + + @classmethod + def _get_material_items(cls, material): + """Get material items (layers, profiles, or constituents) from material""" + if material.is_a("IfcMaterialLayerSetUsage") and hasattr(material, "ForLayerSet") and material.ForLayerSet: + if hasattr(material.ForLayerSet, "MaterialLayers"): + return material.ForLayerSet.MaterialLayers + elif material.is_a("IfcMaterialLayerSet") and hasattr(material, "MaterialLayers"): + return material.MaterialLayers + elif material.is_a("IfcMaterialProfileSet") and hasattr(material, "MaterialProfiles"): + return material.MaterialProfiles + elif material.is_a("IfcMaterialConstituentSet") and hasattr(material, "MaterialConstituents"): + return material.MaterialConstituents + return None + @classmethod def get_dimension_data(cls, obj: bpy.types.Object) -> dict[str, Any]: """used by Ifc Annotations with ObjectType: @@ -514,3 +909,390 @@ class AnnotationData: ) return sorted(relating_types, key=lambda x: x["name"]) + + +class ElementValuesData: + data = {} + is_loaded = False + + @classmethod + def load(cls): + cls.is_loaded = True + + @classmethod + def get_flattened_keys(cls, available_keys: dict[str, list[tuple[str, str]]]) -> list[tuple[str, str]]: + """Flatten all keys from all categories into a single list for numbering""" + all_keys_flat = [] + for cat_name, cat_keys in available_keys.items(): + for cat_key, cat_desc in cat_keys: + all_keys_flat.append((cat_key, cat_desc)) + return all_keys_flat + + @classmethod + def get_available_element_value_keys( + cls, element: ifcopenshell.entity_instance + ) -> dict[str, list[tuple[str, str]]]: + """Get all available selector syntax keys for the element""" + keys = {} + + keys["Basic"] = cls._get_basic_keys(element) + + keys["Attributes"] = cls._get_attribute_keys(element) + + keys["Property Sets"] = cls._get_pset_keys(element) + keys["Quantity Sets"] = cls._get_qset_keys(element) + + keys["Type"] = cls._get_type_keys(element) + keys["Spatial"] = cls._get_spatial_keys(element) + keys["Parent"] = cls._get_parent_keys(element) + keys["Groups"] = cls._get_group_keys(element) + keys["Systems"] = cls._get_system_keys(element) + keys["Zones"] = cls._get_zone_keys(element) + + keys["Material"] = cls._get_material_keys(element) + keys["Styles"] = cls._get_style_keys(element) + + keys["Classification"] = cls._get_classification_keys(element) + + keys["Profiles"] = cls._get_profile_keys(element) + + keys["Coordinates"] = cls._get_coordinate_keys() + + return keys + + @classmethod + def _get_basic_keys(cls, element): + keys = [] + keys.append(("id", f"IFC ID: {element.id()}")) + keys.append(("class", f"IFC Class: {element.is_a()}")) + + predefined_type = ifcopenshell.util.element.get_predefined_type(element) + if predefined_type and predefined_type != "NOTDEFINED": + keys.append(("predefined_type", f"Predefined Type: {predefined_type}")) + + return keys + + @classmethod + def _get_attribute_keys(cls, element): + keys = [] + excluded_attrs = {"id", "type", "GlobalId", "OwnerHistory", "ObjectPlacement", "Representation"} + + for attr_name in element.get_info().keys(): + if attr_name not in excluded_attrs: + attr_value = getattr(element, attr_name, None) + if attr_value is not None: + keys.append((attr_name, f"{attr_name}: {attr_value}")) + + return keys + + @classmethod + def _get_pset_keys(cls, element): + keys = [] + psets = ifcopenshell.util.element.get_psets(element, psets_only=True) + if psets: + for pset_name, props in psets.items(): + for prop_name, prop_value in props.items(): + if isinstance(prop_value, (str, int, float, bool)): + keys.append((f"{pset_name}.{prop_name}", f"{pset_name}.{prop_name}: {prop_value}")) + return keys + + @classmethod + def _get_qset_keys(cls, element): + keys = [] + qsets = ifcopenshell.util.element.get_psets(element, qtos_only=True) + if qsets: + for qset_name, quantities in qsets.items(): + for qty_name, qty_value in quantities.items(): + if isinstance(qty_value, (str, int, float)): + keys.append((f"{qset_name}.{qty_name}", f"{qset_name}.{qty_name}: {qty_value}")) + return keys + + @classmethod + def _get_material_keys(cls, element): + keys = [] + material = ifcopenshell.util.element.get_material(element, should_skip_usage=True) + if not material: + return keys + + if hasattr(material, "Name") and material.Name: + keys.append(("material.Name", f"Material: {material.Name}")) + + material_count = 0 + if material.is_a("IfcMaterialLayerSetUsage") and material.ForLayerSet: + layer_set = material.ForLayerSet + if hasattr(layer_set, "MaterialLayers"): + material_count = len(layer_set.MaterialLayers) + for i, layer in enumerate(layer_set.MaterialLayers): + if layer.Material and layer.Material.Name: + keys.append( + (f"material.item.Material.Name.{i}", f"Layer {i+1} Material Name: {layer.Material.Name}") + ) + if hasattr(layer, "LayerThickness") and layer.LayerThickness: + keys.append( + (f"material.item.{i}.LayerThickness", f"Layer {i+1} Thickness: {layer.LayerThickness}") + ) + + elif material.is_a("IfcMaterialLayerSet") and hasattr(material, "MaterialLayers"): + material_count = len(material.MaterialLayers) + for i, layer in enumerate(material.MaterialLayers): + if layer.Material and layer.Material.Name: + keys.append( + (f"material.item.Material.Name.{i}", f"Layer {i+1} Material Name: {layer.Material.Name}") + ) + if hasattr(layer, "LayerThickness") and layer.LayerThickness: + keys.append((f"material.item.{i}.LayerThickness", f"Layer {i+1} Thickness: {layer.LayerThickness}")) + + elif material.is_a("IfcMaterialProfileSet") and hasattr(material, "MaterialProfiles"): + material_count = len(material.MaterialProfiles) + for i, profile in enumerate(material.MaterialProfiles): + if profile.Material and profile.Material.Name: + keys.append( + (f"material.item.Material.Name.{i}", f"Profile {i+1} Material Name: {profile.Material.Name}") + ) + + elif material.is_a("IfcMaterialConstituentSet") and hasattr(material, "MaterialConstituents"): + material_count = len(material.MaterialConstituents) + for i, constituent in enumerate(material.MaterialConstituents): + if constituent.Material and constituent.Material.Name: + keys.append( + ( + f"material.item.Material.Name.{i}", + f"Constituent {i+1} Material Name: {constituent.Material.Name}", + ) + ) + + elif material.is_a("IfcMaterial"): + material_count = 1 + + if material_count > 0: + keys.append(("materials.count", f"Material Count: {material_count}")) + + return keys + + @classmethod + def _get_style_keys(cls, element): + """Get presentation styles from the element""" + keys = [] + + styles = ifcopenshell.util.element.get_styles(element) + if styles: + keys.append(("styles.count", f"Style Count: {len(styles)}")) + for i, style in enumerate(styles): + if hasattr(style, "Name") and style.Name: + keys.append((f"styles.{i}.Name", f"Style {i+1} Name: {style.Name}")) + if style.is_a("IfcSurfaceStyle") and hasattr(style, "Styles"): + for surface_style_elem in style.Styles: + if surface_style_elem.is_a("IfcSurfaceStyleRendering"): + if hasattr(surface_style_elem, "SurfaceColour"): + color = surface_style_elem.SurfaceColour + if hasattr(color, "Red") and hasattr(color, "Green") and hasattr(color, "Blue"): + rgb = f"RGB({color.Red:.2f}, {color.Green:.2f}, {color.Blue:.2f})" + keys.append((f"styles.{i}.Color", f"Style {i+1} Color: {rgb}")) + + return keys + + @classmethod + def _get_type_keys(cls, element): + keys = [] + + if hasattr(element, "IsTypedBy") and element.IsTypedBy: + element_type = element.IsTypedBy[0].RelatingType + if hasattr(element_type, "Name") and element_type.Name: + keys.append(("type.Name", f"Type Name: {element_type.Name}")) + + if element.is_a("IfcTypeProduct"): + occurrence_count = 0 + if hasattr(element, "Types"): + for rel in element.Types: + if hasattr(rel, "RelatedObjects"): + occurrence_count += len(rel.RelatedObjects) + keys.append(("occurrences.count", f"Occurrence Count: {occurrence_count}")) + + elif hasattr(element, "IsTypedBy") and element.IsTypedBy: + element_type = element.IsTypedBy[0].RelatingType + occurrence_count = 0 + if hasattr(element_type, "Types"): + for rel in element_type.Types: + if hasattr(rel, "RelatedObjects"): + occurrence_count += len(rel.RelatedObjects) + keys.append(("types.count", f"Type Occurrence Count: {occurrence_count}")) + + return keys + + @classmethod + def _get_spatial_keys(cls, element): + keys = [] + + container = ifcopenshell.util.element.get_container(element) + if container and hasattr(container, "Name") and container.Name: + keys.append(("container.Name", f"Container: {container.Name}")) + + space = None + current = container + while current: + if current.is_a("IfcSpace"): + space = current + break + current = ifcopenshell.util.element.get_aggregate(current) + if space and hasattr(space, "Name") and space.Name: + keys.append(("space.Name", f"Space: {space.Name}")) + + storey = None + current = container + while current: + if current.is_a("IfcBuildingStorey"): + storey = current + break + current = ifcopenshell.util.element.get_aggregate(current) + if storey and hasattr(storey, "Name") and storey.Name: + keys.append(("storey.Name", f"Storey: {storey.Name}")) + + building = None + current = container + while current: + if current.is_a("IfcBuilding"): + building = current + break + current = ifcopenshell.util.element.get_aggregate(current) + if building and hasattr(building, "Name") and building.Name: + keys.append(("building.Name", f"Building: {building.Name}")) + + site = None + current = container + while current: + if current.is_a("IfcSite"): + site = current + break + current = ifcopenshell.util.element.get_aggregate(current) + if site and hasattr(site, "Name") and site.Name: + keys.append(("site.Name", f"Site: {site.Name}")) + + return keys + + @classmethod + def _get_parent_keys(cls, element): + keys = [] + parent = ifcopenshell.util.element.get_aggregate(element) + if parent and hasattr(parent, "Name") and parent.Name: + keys.append((f"parent.name", f"Parent: {parent.Name}")) + return keys + + @classmethod + def _get_group_keys(cls, element): + keys = [] + groups = [] + if hasattr(element, "HasAssignments"): + for assignment in element.HasAssignments: + if assignment.is_a("IfcRelAssignsToGroup"): + group = assignment.RelatingGroup + if group.is_a("IfcGroup") and not group.is_a("IfcSystem") and not group.is_a("IfcZone"): + groups.append(group) + if group.Name: + keys.append((f"group.Name", f"Group: {group.Name}")) + + if groups: + keys.append(("groups.count", f"Group Count: {len(groups)}")) + + return keys + + @classmethod + def _get_system_keys(cls, element): + keys = [] + systems = [] + if hasattr(element, "HasAssignments"): + for assignment in element.HasAssignments: + if assignment.is_a("IfcRelAssignsToGroup"): + group = assignment.RelatingGroup + if group.is_a("IfcSystem"): + systems.append(group) + if group.Name: + keys.append((f"system.Name", f"System: {group.Name}")) + + if systems: + keys.append(("systems.count", f"System Count: {len(systems)}")) + + return keys + + @classmethod + def _get_zone_keys(cls, element): + keys = [] + zones = [] + if hasattr(element, "HasAssignments"): + for assignment in element.HasAssignments: + if assignment.is_a("IfcRelAssignsToGroup"): + group = assignment.RelatingGroup + if group.is_a("IfcZone"): + zones.append(group) + if group.Name: + keys.append((f"zone.Name", f"Zone: {group.Name}")) + + if zones: + keys.append(("zones.count", f"Zone Count: {len(zones)}")) + + return keys + + @classmethod + def _get_classification_keys(cls, element): + keys = [] + classifications = ifcopenshell.util.classification.get_references(element) + if classifications: + for i, classification in enumerate(classifications): + if hasattr(classification, "Name") and classification.Name: + keys.append((f"classification.{i}.Name", f"Classification {i+1}: {classification.Name}")) + if hasattr(classification, "Identification") and classification.Identification: + keys.append( + ( + f"classification.{i}.Identification", + f"Classification {i+1} ID: {classification.Identification}", + ) + ) + + keys.append(("classification.count", f"Classification Count: {len(classifications)}")) + + return keys + + @classmethod + def _get_coordinate_keys(cls): + return [ + ("x", "X Coordinate"), + ("y", "Y Coordinate"), + ("z", "Z Coordinate"), + ("easting", "Easting"), + ("northing", "Northing"), + ("elevation", "Elevation"), + ] + + @classmethod + def _get_profile_keys(cls, element): + """Get profile definitions from the element""" + keys = [] + + material = ifcopenshell.util.element.get_material(element, should_skip_usage=True) + if material: + profiles = [] + if material.is_a("IfcMaterialProfileSet") and hasattr(material, "MaterialProfiles"): + for profile in material.MaterialProfiles: + if hasattr(profile, "Profile") and profile.Profile: + profiles.append(profile.Profile) + + if profiles: + keys.append(("profiles.count", f"Profile Count: {len(profiles)}")) + for i, profile in enumerate(profiles): + if hasattr(profile, "ProfileName") and profile.ProfileName: + keys.append((f"profiles.{i}.ProfileName", f"Profile {i+1} Name: {profile.ProfileName}")) + if hasattr(profile, "ProfileType") and profile.ProfileType: + keys.append((f"profiles.{i}.ProfileType", f"Profile {i+1} Type: {profile.ProfileType}")) + + if hasattr(element, "Representation") and element.Representation: + for representation in element.Representation.Representations: + if hasattr(representation, "Items"): + for item in representation.Items: + if item.is_a("IfcExtrudedAreaSolid") and hasattr(item, "SweptArea"): + profile = item.SweptArea + if hasattr(profile, "ProfileName") and profile.ProfileName: + keys.append(("profile.ProfileName", f"Swept Profile Name: {profile.ProfileName}")) + if hasattr(profile, "ProfileType") and profile.ProfileType: + keys.append(("profile.ProfileType", f"Swept Profile Type: {profile.ProfileType}")) + break + + return keys diff --git a/src/bonsai/bonsai/bim/module/drawing/decoration.py b/src/bonsai/bonsai/bim/module/drawing/decoration.py index f6db70462f..705fabfcf9 100644 --- a/src/bonsai/bonsai/bim/module/drawing/decoration.py +++ b/src/bonsai/bonsai/bim/module/drawing/decoration.py @@ -16,32 +16,35 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import gpu -import bpy -import blf import math +import os +from collections.abc import Generator, Iterator +from functools import cache +from math import acos, atan, cos, degrees, pi, radians, sin +from pathlib import Path +from timeit import default_timer as timer +from typing import Optional, Union + +import blf import bmesh -import shapely -import numpy as np +import bpy +import gpu import ifcopenshell import ifcopenshell.util.element import ifcopenshell.util.representation import ifcopenshell.util.unit -import bonsai.tool as tool -import bonsai.bim.module.drawing.helper as helper -from pathlib import Path -from math import pi, sin, cos, acos, atan, degrees, radians +import numpy as np +import shapely from bpy.types import SpaceView3D -from mathutils import Vector, Matrix from bpy_extras.view3d_utils import location_3d_to_region_2d from gpu_extras.batch import batch_for_shader +from mathutils import Matrix, Vector + +import bonsai.bim.module.drawing.helper as helper +import bonsai.tool as tool from bonsai.bim.module.drawing.data import DecoratorData, DrawingsData -from bonsai.bim.module.drawing.shaders import add_verts_sequence, add_offsets from bonsai.bim.module.drawing.helper import format_distance -from timeit import default_timer as timer -from functools import cache -from typing import Optional, Union -from collections.abc import Iterator +from bonsai.bim.module.drawing.shaders import add_offsets, add_verts_sequence UNSPECIAL_ELEMENT_COLOR = (0.2, 0.2, 0.2, 1) # GREY @@ -172,15 +175,11 @@ class BaseDecorator: def get_camera_width_mm(self): # Horrific prototype code to ensure bgl draws at drawing scales # https://blender.stackexchange.com/questions/16493/is-there-a-way-to-fit-the-viewport-to-the-current-field-of-view - def is_landscape(render): - return render.resolution_x > render.resolution_y - camera = bpy.context.scene.camera render = bpy.context.scene.render - if is_landscape(render): - camera_width_model = camera.data.ortho_scale - else: - camera_width_model = camera.data.ortho_scale / render.resolution_y * render.resolution_x + + # Always use the camera's ortho_scale as the width in model space + camera_width_model = camera.data.ortho_scale scale = tool.Drawing.get_scale_ratio(tool.Drawing.get_diagram_scale(camera)["Scale"]) camera_width_mm = scale * camera_width_model @@ -189,29 +188,26 @@ class BaseDecorator: def camera_zoom_to_factor(self, zoom): return math.pow(((zoom / 50) + math.sqrt(2)) / 2, 2) - def get_splines(self, obj): + def get_splines(self, obj: bpy.types.Object) -> Generator[list[Vector]]: """Iterates through splines - Args: - obj: Blender object with Curve data - Yields: - verts: points of each spline, world coords + :param obj: Blender object with Curve data + :yield: points of each spline, world coords """ + assert type(obj.data) is bpy.types.Curve for spline in obj.data.splines: spline_points = spline.bezier_points if spline.bezier_points else spline.points if len(spline_points) < 2: continue yield [obj.matrix_world @ p.co for p in spline_points] - def get_path_geom(self, obj, topo=True): + def get_path_geom(self, obj: bpy.types.Object, topo: bool = True): """Parses path geometry into line segments - Args: - obj: Blender object with data of type Curve - topo: bool; if types of vertices are needed + :param obj: Blender object with data of type Curve + :param topo: if types of vertices are needed - Returns: - vertices: 3-tuples of coords + :return: vertices: 3-tuples of coords indices: 2-tuples of each segment verices' indices topology: types of vertices 0: internal @@ -242,11 +238,9 @@ class BaseDecorator: def get_mesh_geom(self, obj, check_mode=True): """Parses mesh geometry into line segments - Args: - obj: Blender object with data of type Mesh + :param obj: Blender object with data of type Mesh - Returns: - vertices: 3-tuples of coords + :return: vertices: 3-tuples of coords indices: 2-tuples of each segment verices' indices """ if check_mode and obj.data.is_editmode: @@ -377,11 +371,9 @@ class BaseDecorator: ): """Draw text label - Args: - pos: bottom-center - multiline: \n characters will be interpreted as line breaks - - aligned and centered at segment middle + :param pos: bottom-center + :param multiline: ``\n`` characters will be interpreted as line breaks + aligned and centered at segment middle NOTE: `blf.draw` seems to ignore the \n character, so we have to split the text ourselves and use the `line_no` argument of `draw_label` @@ -499,7 +491,7 @@ class BaseDecorator: self.draw_label(context, text=text, line_no=line_number_start, multiline=True, **draw_label_kwargs) @cache - def format_value(self, context, value, custom_unit=None): + def format_value(self, context, value, suppress_zero_inches=False, custom_unit=None, in_unit_length=False): drawing_pset_data = DrawingsData.data["active_drawing_pset_data"] precision = drawing_pset_data.get("MetricPrecision", None) if not precision: @@ -510,8 +502,9 @@ class BaseDecorator: value, precision=precision, decimal_places=decimal_places, - suppress_zero_inches=True, + suppress_zero_inches=suppress_zero_inches, custom_unit=custom_unit, + in_unit_length=in_unit_length, ) def draw_asterisk(self, context: bpy.types.Context, pos: Vector, rotation: float = 0.0, scale: float = 1.0) -> None: @@ -753,7 +746,12 @@ class DimensionDecorator(BaseDecorator): if not show_description_only: length = (v1 - v0).length - text = self.format_value(context, length, custom_unit=dimension_data["custom_unit"]) + text = self.format_value( + context, + length, + suppress_zero_inches=dimension_data["suppress_zero_inches"], + custom_unit=dimension_data["custom_unit"], + ) if isinstance(self, DiameterDecorator): text = "D" + text text = text_prefix + text + text_suffix @@ -1208,7 +1206,11 @@ class PlanLevelDecorator(BaseDecorator): abs_z = verts[0].z z = helper.get_relative_z(obj, element, abs_z) - rl = self.format_value(context, z) + # Z is in meters (Blender world space), convert to project units (feet) + unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) + z = z / unit_scale # Convert meters to feet + + rl = self.format_value(context, z, in_unit_length=True) text = "{}{}".format("" if z < 0 else "+", rl) return text @@ -1281,7 +1283,11 @@ class SectionLevelDecorator(BaseDecorator): def get_text(): z = verts[0].z - rl = self.format_value(context, z) + # Z is in meters (Blender world space), convert to project units (feet) + unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) + z = z / unit_scale # Convert meters to feet + + rl = self.format_value(context, z, in_unit_length=True) text = "RL {}{}".format("" if z < 0 else "+", rl) return text @@ -1617,6 +1623,8 @@ class SymbolDecorator(BaseDecorator): class CutDecorator: installed = None cache = {} + local_view_has_annotation = False + was_in_local_view = False @classmethod def install(cls, context): @@ -1641,6 +1649,31 @@ class CutDecorator: if not context.scene.camera: return + # Check if any viewport is in local view + in_local_view = False + for area in context.screen.areas: + if area.type == "VIEW_3D": + space = area.spaces.active + if isinstance(space, bpy.types.SpaceView3D) and space.local_view: + in_local_view = True + break + + # If just entering local view (transition from False to True) + if in_local_view and not self.__class__.was_in_local_view: + self.__class__.local_view_has_annotation = False + for obj in context.selected_objects: + element = tool.Ifc.get_entity(obj) + if element and element.is_a("IfcAnnotation"): + self.__class__.local_view_has_annotation = True + break + + # Update the state for next time + self.__class__.was_in_local_view = in_local_view + + # Skip decorations if in local view and no IfcAnnotation was selected when entering + if in_local_view and not self.__class__.local_view_has_annotation: + return + self.addon_prefs = tool.Blender.get_addon_preferences() selected_elements_color = self.addon_prefs.decorator_color_selected self.fallback_colour = (0.3, 0.3, 0.3, 1) @@ -1729,26 +1762,34 @@ class CutDecorator: shader.uniform_float("color", color) batch.draw(shader) - def cache_camera_matrix(self): + def cache_camera_matrix(self) -> None: + assert bpy.context.scene and bpy.context.scene.camera obj = bpy.context.scene.camera - # Explicit `dtype` for Blender <5.0 compatibility. DecoratorData.camera_location_checksum = repr( - np.array(obj.matrix_world.translation, dtype=np.float32).tobytes() + tool.Blender.np_array_legacy(obj.matrix_world.translation).tobytes() ) - DecoratorData.camera_rotation_checksum = repr(np.array(obj.matrix_world.to_3x3(), dtype=np.float32).tobytes()) + DecoratorData.camera_rotation_checksum = repr(tool.Blender.np_array_legacy(obj.matrix_world.to_3x3()).tobytes()) - def is_camera_moved(self): + def is_camera_moved(self) -> bool: if not DecoratorData.camera_location_checksum: self.cache_camera_matrix() return True # Let's be conservative + + assert bpy.context.scene and bpy.context.scene.camera obj = bpy.context.scene.camera - loc_check = np.frombuffer(eval(DecoratorData.camera_location_checksum), dtype=np.float32) - loc_real = np.array(obj.matrix_world.translation).flatten() + + # Handle both old float64 and new float32 checksums for version compatibility + loc_checksum_bytes: bytes = eval(DecoratorData.camera_location_checksum) + loc_check = tool.Blender.np_frombuffer_legacy(loc_checksum_bytes, 3) + loc_real = tool.Blender.np_array_legacy(obj.matrix_world.translation) if not np.allclose(loc_check, loc_real, atol=1e-4): # 0.1 mm self.cache_camera_matrix() return True - rot_check = np.frombuffer(eval(DecoratorData.camera_rotation_checksum), dtype=np.float32).reshape(3, 3) - rot_real = np.array(obj.matrix_world.to_3x3()) + + # Handle both old float64 and new float32 checksums for version compatibility + rot_checksum_bytes: bytes = eval(DecoratorData.camera_rotation_checksum) + rot_check = tool.Blender.np_frombuffer_legacy(rot_checksum_bytes, 9) + rot_real = tool.Blender.np_array_legacy(obj.matrix_world.to_3x3()) rot_dot = np.dot(rot_check, rot_real.T) angle_rad = np.arccos(np.clip((np.trace(rot_dot) - 1) / 2, -1, 1)) if angle_rad > 0.0017453292519943296: # 0.1 degrees @@ -1953,6 +1994,8 @@ class DecorationsHandler: installed = None handler = None + local_view_has_annotation = False + was_in_local_view = False @classmethod def install(cls, context): @@ -1977,20 +2020,75 @@ class DecorationsHandler: for object_type in ("SLOPE_ANGLE", "SLOPE_FRACTION", "SLOPE_PERCENT"): self.decorators[object_type] = self.decorators["FALL"] self.decorators["MULTI_SYMBOL"] = self.decorators["SYMBOL"] + prefs = tool.Blender.get_addon_preferences() + if drawing_font := prefs.doc.drawing_font: + # Try Blender addon font folder drawing_font_path = tool.Blender.get_data_dir_path(Path("fonts") / drawing_font) - if drawing_font_path.is_file(): - font_id = blf.load(drawing_font_path.__str__()) - for decorator in self.decorators.values(): - decorator.font_id = font_id + + if not drawing_font_path.is_file(): + # 2 — Fallback search: Windows font directories + # TODO - Linux + win_font_dirs = [ + Path(os.environ.get("WINDIR", "C:\\Windows")) / "Fonts", + # Add any custom enterprise paths here if needed + ] + + found_font = None + for font_dir in win_font_dirs: + candidate = font_dir / drawing_font + if candidate.is_file(): + found_font = candidate + break + + if found_font: + drawing_font_path = found_font + else: + print(f"[BIM] Font '{drawing_font}' not found in addon or Windows fonts.") + return # Bail out without assigning fonts + + font_id = blf.load(str(drawing_font_path)) + + for decorator in self.decorators.values(): + decorator.font_id = font_id def __call__(self, context): + # Check if any viewport is in local view + in_local_view = False + for area in context.screen.areas: + if area.type == "VIEW_3D": + space = area.spaces.active + if isinstance(space, bpy.types.SpaceView3D) and space.local_view: + in_local_view = True + break + + # If just entering local view (transition from False to True) + if in_local_view and not self.__class__.was_in_local_view: + self.__class__.local_view_has_annotation = False + for obj in context.selected_objects: + element = tool.Ifc.get_entity(obj) + if element and element.is_a("IfcAnnotation"): + self.__class__.local_view_has_annotation = True + break + + # Update the state for next time + self.__class__.was_in_local_view = in_local_view + + # Skip decorations if in local view and no IfcAnnotation was selected when entering + if in_local_view and not self.__class__.local_view_has_annotation: + return + + # disable decorations when not in camera view + if context.region_data.view_perspective != "CAMERA": + return + if not DrawingsData.is_loaded: DrawingsData.load() if not DecoratorData.is_loaded: DecoratorData.load(self) - for obj, decorator in DecoratorData.data["object_decorators"]: + object_decorators = DecoratorData.data.get("object_decorators", []) + for obj, decorator in object_decorators: decorator.decorate(context, obj) diff --git a/src/bonsai/bonsai/bim/module/drawing/gizmos.py b/src/bonsai/bonsai/bim/module/drawing/gizmos.py index 34458c0920..a83bd0a46a 100644 --- a/src/bonsai/bonsai/bim/module/drawing/gizmos.py +++ b/src/bonsai/bonsai/bim/module/drawing/gizmos.py @@ -1,4 +1,5 @@ # Bonsai - OpenBIM Blender Add-on +# Copyright (C) 2020, 2021 Dion Moult # Copyright (C) 2020, 2021 Maxim Vasilyev # # This file is part of Bonsai. @@ -16,48 +17,1701 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import blf -import gpu -import bonsai.tool as tool -from bpy import types -from mathutils import Vector -from mathutils import geometry -from bpy_extras import view3d_utils -from bonsai.bim.module.drawing.shaders import DotsGizmoShader, ExtrusionGuidesShader -from ifcopenshell.util.unit import si_conversions +""" +Gizmo infrastructure for parametric BIM element editing. +This module provides a framework for interactive 3D gizmos that allow users to +manipulate parametric properties of BIM elements (doors, windows, stairs) directly +in the viewport. -"""Gizmos under the hood +Architecture Overview +===================== -## Transforms: +The gizmo system follows a configuration-driven approach where element-specific +gizmo groups (e.g., GizmoDoorEdition) inherit from BaseParametricGizmoGroup and +declare their gizmos via configuration dataclasses: -source/blender/windowmanager/gizmo/WM_gizmo_types.h -matrix_basis -- "Transformation of this gizmo." = placement in scene -matrix_offset -- "Custom offset from origin." = local transforms according to state/value -matrix_space -- "The space this gizmo is being modified in." used by some gizmos for undefined purposes -matrix_world -- final matrix, scaled according to viewport zoom and custom scale_basis + class GizmoDoorEdition(bpy.types.GizmoGroup, BaseParametricGizmoGroup): + dimension_gizmo_props = [ + DimensionGizmoConfig("overall_width", axis=(1, 0, 0)), + DimensionGizmoConfig("overall_height", axis=(0, 0, 1)), + ] -source/blender/windowmanager/gizmo/intern/wm_gizmo.c:WM_gizmo_calc_matrix_final_params -final = space @ (autoscale * (basis @ offset)) -final = space @ (basis @ offset) -- if gizmo.use_draw_scale == False -final = space @ ((autoscale * basis) @ offset) -- if gizmo.use_draw_offset_scale +Key Components +============== -source/blender/windowmanager/gizmo/intern/wm_gizmo.c:wm_gizmo_calculate_scale -autoscale = gizmo.scale_basis * magic(preferences, matrix_space, matrix_basis, context.region_data) -magic -- making 1.0 to match preferences.view.gizmo_size pixels (75 by default) +Configuration Classes: + - DimensionGizmoConfig: Configures dimension line gizmos with text display +Base Gizmo Classes: + - GizmoMovable: Base for draggable gizmos with keyboard input support + - GizmoDimension: Dimension line gizmo with arrows and text labels + - GizmoArrow2D: 2D arrow gizmo for property manipulation -## Selection +Mixin Classes: + - BaseParametricGizmoGroup: Provides common setup/update methods for gizmo groups -select_id -- apparently, id of a selectable part -test_select -- expected to return id of selection, doesn't seem to work -draw_select -- fake-draw of selection geometry for gpu-side cursor tracking +Utility Classes: + - GPUStateScope: Context manager for GPU state save/restore + - NumericInputState: Tracks keyboard numeric input during modal operations +Global State: + - _gizmo_modal_context: Module-level dataclass instance for modal operator communication + (workaround for Blender's ID property limitations) + +Data Flow +========= + +1. User selects a parametric element (door, window, stair) +2. GizmoGroup.poll() checks if gizmos should be shown +3. GizmoGroup.setup() creates gizmos based on configs +4. GizmoGroup.refresh() updates gizmo positions from element properties +5. User interacts with gizmo -> invoke() -> modal() -> exit() +6. Property changes are written back via move_set_cb callbacks +7. Element mesh is regenerated via operators (e.g., bim.finish_editing_door) + +Snapping System +=============== + +The module includes a mesh vertex snapping system: + - build_snap_cache(): Builds KD-tree from nearby object vertices + - snap_to_mesh(): Snaps 3D position to nearest vertex within threshold + - Uses screen-space distance filtering for accurate snapping + +View-Dependent Positioning +========================== + +Dimension gizmos automatically reposition based on camera view direction to avoid +overlapping with geometry. The get_local_view_direction() helper determines if the +camera is viewing from the positive or negative side of each axis. """ +__all__ = [ # noqa: RUF022 (unsorted `__all__`) + "GizmoColor", + "GizmoAxis", + "TextAlignment", + "CoordinateSpace", + "ModalState", + "DimensionGizmoConfig", + "DimensionDrawConfig", + "ViewDirection", + "GizmoModalContext", + "get_modal_context", + "get_validated_modal_context", + "ParametricProps", + "NumericInputState", + "GPUStateScope", + "set_snap_point", + "clear_snap_point", + "snap_to_mesh", + "build_snap_cache", + "clear_snap_cache", + "get_billboard_rotation", + "get_camera_direction", + "generate_circle_vertices", + "create_circle_arc", + "BIM_OT_gizmo_value_input", + "GizmoMovable", + "GizmoLock", + "GizmoArc", + "GizmoPen", + "GizmoValidate", + "GizmoCancel", + "GizmoPlus", + "GizmoMinus", + "GizmoCycle", + "GizmoArrow", + "GizmoArrow2D", + "GizmoCone", + "GizmoDimension", + "DimensionRenderer", + "CycleTypeMixin", + "BaseParametricGizmoGroup", + "UglyDotGizmo", + "ExtrusionGuidesGizmo", + "ExtrusionWidget", +] -# some geometries for Gizmo.custom_shape shaders +import math +from collections.abc import Callable, Iterator +from dataclasses import dataclass +from enum import Enum +from typing import Any, Literal, Protocol, get_args, runtime_checkable + +import blf +import bpy +import gpu +import numpy as np +from bpy import types +from bpy_extras import view3d_utils +from bpy_extras.view3d_utils import ( + location_3d_to_region_2d, + region_2d_to_origin_3d, + region_2d_to_vector_3d, +) +from gpu_extras.batch import batch_for_shader +from ifcopenshell.util.unit import si_conversions +from mathutils import Matrix, Vector +from mathutils.geometry import intersect_line_line +from mathutils.kdtree import KDTree + +import bonsai.tool as tool +from bonsai.bim.module.drawing.shaders import ExtrusionGuidesShader + +SNAP_POINT_SIZE = 10.0 +SNAP_POINT_COLOR = (1.0, 0.5, 0.0, 1.0) +SNAP_MAX_RADIUS = 50.0 +SNAP_SCREEN_DISTANCE = 15 +SNAP_WORLD_DISTANCE = 0.2 +# Query multiple 3D-nearest candidates because screen-nearest may differ from 3D-nearest +SNAP_KD_CANDIDATES = 64 + +ARROW_SHAFT_LENGTH = 0.8 +ARROW_HEAD_LENGTH = 0.2 +ARROW_WIDTH = 0.015 +ARROW_HEAD_WIDTH_MULTIPLIER = 10 +ARROW_CIRCLE_SEGMENTS = 8 + +CONE_LENGTH = 1.0 +CONE_RADIUS = 0.35 +CONE_SEGMENTS = 16 + +ARC_SEGMENTS = 24 +ARC_LINE_WIDTH = 0.015 + +PRECISION_MODE_MULTIPLIER = 0.1 + +RAY_CAST_DISTANCE = 1000 +DEFAULT_POINT_SIZE = 1.0 + +# Characters allowed for keyboard numeric input (supports units and formulas) +_DIGITS = set("0123456789") +_OPERATORS = {".", "-", "+", "*", "/"} +_METRIC_UNITS = {"m", "c", "d"} # m, cm, dm, mm +_IMPERIAL_UNITS = {"f", "t", "i", "n", "'", '"'} # ft, in, ', " +_SPECIAL = {"=", " "} # Formula prefix, spaces + +NUMERIC_INPUT_CHARS = _DIGITS | _OPERATORS | _METRIC_UNITS | _IMPERIAL_UNITS | _SPECIAL + + +class GizmoColor(Enum): + """Color identifiers for dimension gizmos. + + Maps axis directions to colors following BIM/CAD conventions: + - RED: X-axis (width) + - GREEN: Y-axis (depth) + - BLUE: Z-axis (height) + + Use GizmoColor.from_axis() to auto-derive color from axis direction. + """ + + RED = "RED" + GREEN = "GREEN" + BLUE = "BLUE" + + @classmethod + def from_axis(cls, axis: tuple[int, int, int]) -> "GizmoColor": + """Derive color from axis direction. + + Args: + axis: Direction tuple (x, y, z) with at least one non-zero component. + + Returns: + GizmoColor based on the first non-zero axis component. + """ + if axis[0] != 0: + return cls.RED + elif axis[1] != 0: + return cls.GREEN + return cls.BLUE + + +class TextAlignment(Enum): + """Text alignment options for dimension gizmo labels. + + Controls where the dimension value text is positioned along the dimension line. + """ + + START = "start" # Align text to the start of the dimension line + CENTER = "center" # Center text on the dimension line (default) + END = "end" # Align text to the end of the dimension line + + +# Type alias for gizmo axis direction tuples +# Each component must be -1, 0, or 1 to indicate direction along that axis +GizmoAxis = tuple[Literal[-1, 0, 1], Literal[-1, 0, 1], Literal[-1, 0, 1]] + + +class CoordinateSpace(Enum): + """Coordinate space identifiers for gizmo positioning. + + Clarifies which space a position or direction is expressed in: + - LOCAL: Object-local coordinates (relative to element origin) + - WORLD: World/scene coordinates (absolute position) + - SCREEN: 2D screen-space coordinates (pixels) + + Usage: + # Document coordinate space in function signatures + def get_position(self, space: CoordinateSpace = CoordinateSpace.LOCAL) -> Vector: + ... + + # Or use as documentation in comments + local_pos = Vector((0, 0, 1)) # CoordinateSpace.LOCAL + world_pos = matrix_world @ local_pos # CoordinateSpace.WORLD + """ + + LOCAL = "local" # Object-local space (relative to element matrix_world) + WORLD = "world" # World/scene space (absolute coordinates) + SCREEN = "screen" # 2D screen space (pixel coordinates) + + +class ModalState(Enum): + """State machine states for modal gizmo operations. + + Used to track the current interaction mode during gizmo manipulation. + Helps organize modal operator logic and determine valid state transitions. + + States: + IDLE: No interaction active, waiting for user input + DRAGGING: User is dragging the gizmo with the mouse + KEYBOARD_INPUT: User is typing a numeric value + SNAPPING: Dragging with snap enabled (Ctrl held) + PRECISION: Dragging with precision mode (Shift held) + + State transitions: + IDLE -> DRAGGING: Mouse press on gizmo + IDLE -> KEYBOARD_INPUT: Numeric key press + DRAGGING -> SNAPPING: Ctrl pressed during drag + DRAGGING -> PRECISION: Shift pressed during drag + SNAPPING -> DRAGGING: Ctrl released + PRECISION -> DRAGGING: Shift released + * -> IDLE: Mouse release, Enter, Escape + """ + + IDLE = "idle" + DRAGGING = "dragging" + KEYBOARD_INPUT = "keyboard_input" + SNAPPING = "snapping" + PRECISION = "precision" + + def is_active(self) -> bool: + """Check if this state represents an active interaction.""" + return self != ModalState.IDLE + + def allows_keyboard_input(self) -> bool: + """Check if this state allows transitioning to keyboard input.""" + return self in (ModalState.IDLE, ModalState.DRAGGING) + + +@dataclass(slots=True) +class GizmoModalContext: + """Typed context for modal gizmo operations. + + This replaces the untyped dict pattern for passing state between gizmos + and the BIM_OT_gizmo_value_input modal operator. Blender ID properties + don't support function callbacks, so we use this module-level instance. + + Attributes: + move_set_cb: Callback to set the property value + active_gizmo: The gizmo currently being manipulated + gizmo_group: The gizmo group containing the active gizmo + start_location: World-space position where interaction started + axis_direction: Direction vector for the gizmo axis + active_obj: The Blender object being edited + delta_scale: Multiplier for delta values (e.g., 2.0 for symmetric properties) + click_offset: Offset from click position to gizmo tip + hidden_gizmos: Set of gizmos hidden during modal operation + """ + + move_set_cb: Callable[[float], None] | None = None + active_gizmo: bpy.types.Gizmo | None = None + gizmo_group: bpy.types.GizmoGroup | None = None + start_location: Vector | None = None + axis_direction: Vector | None = None + active_obj: bpy.types.Object | None = None + delta_scale: float = 1.0 + click_offset: float = 0.0 + hidden_gizmos: set[bpy.types.Gizmo] | None = None + + def clear(self) -> None: + """Reset all fields to default values.""" + self.move_set_cb = None + self.active_gizmo = None + self.gizmo_group = None + self.start_location = None + self.axis_direction = None + self.active_obj = None + self.delta_scale = 1.0 + self.click_offset = 0.0 + self.hidden_gizmos = None + + +# Module-level instance for modal gizmo context +_gizmo_modal_context = GizmoModalContext() + + +def get_modal_context() -> GizmoModalContext: + """Get the global modal gizmo context. + + Provides access to the module-level context without exposing the private variable. + Use this when reading context values that may be None. + + Returns: + The global GizmoModalContext instance. + """ + return _gizmo_modal_context + + +def get_validated_modal_context() -> GizmoModalContext: + """Get the modal context, validating that essential fields are set. + + Use this when the context is expected to be fully initialized (e.g., during + modal operator execution). Raises RuntimeError if the context is incomplete. + + Returns: + The global GizmoModalContext instance with essential fields validated. + + Raises: + RuntimeError: If active_gizmo or gizmo_group is None. + """ + ctx = _gizmo_modal_context + if ctx.active_gizmo is None: + raise RuntimeError("Modal context not initialized: active_gizmo is None") + if ctx.gizmo_group is None: + raise RuntimeError("Modal context not initialized: gizmo_group is None") + return ctx + + +class GPUStateScope: + """Context manager for saving and restoring GPU state. + + Automatically saves GPU state on entry and restores it on exit, + ensuring proper cleanup even if an exception occurs. + + Usage: + with GPUStateScope(depth_test='NONE', blend='ALPHA'): + ... + + with GPUStateScope(depth_test='NONE', blend='ALPHA', ortho_2d=(width, height)): + # 2D screen-space drawing + ... + """ + + __slots__ = ( + "_saved_depth_test", + "_saved_blend", + "_saved_projection", + "_saved_modelview", + "_depth_test", + "_blend", + "_ortho_2d", + ) + + def __init__( + self, + depth_test: str | None = None, + blend: str | None = None, + ortho_2d: tuple[float, float] | None = None, + ): + """Initialize with optional state overrides. + + Args: + depth_test: Depth test mode ('NONE', 'LESS', 'LESS_EQUAL', etc.) or None to keep current + blend: Blend mode ('NONE', 'ALPHA', 'ALPHA_PREMULT', etc.) or None to keep current + ortho_2d: If provided, set up 2D orthographic projection with (width, height) + """ + self._depth_test = depth_test + self._blend = blend + self._ortho_2d = ortho_2d + self._saved_depth_test: str = "" + self._saved_blend: str = "" + self._saved_projection: Matrix | None = None + self._saved_modelview: Matrix | None = None + + def __enter__(self) -> "GPUStateScope": + self._saved_depth_test = gpu.state.depth_test_get() + self._saved_blend = gpu.state.blend_get() + + if self._depth_test is not None: + gpu.state.depth_test_set(self._depth_test) + if self._blend is not None: + gpu.state.blend_set(self._blend) + + if self._ortho_2d is not None: + self._saved_projection = gpu.matrix.get_projection_matrix() + self._saved_modelview = gpu.matrix.get_model_view_matrix() + + width, height = self._ortho_2d + ortho = Matrix.Identity(4) + ortho[0][0] = 2.0 / width + ortho[0][3] = -1.0 + ortho[1][1] = 2.0 / height + ortho[1][3] = -1.0 + ortho[2][2] = -1.0 + + gpu.matrix.load_matrix(Matrix.Identity(4)) + gpu.matrix.load_projection_matrix(ortho) + + return self + + def __exit__(self, exc_type, exc_val, exc_tb) -> None: + if self._saved_projection is not None: + gpu.matrix.load_projection_matrix(self._saved_projection) + if self._saved_modelview is not None: + gpu.matrix.load_matrix(self._saved_modelview) + + gpu.state.depth_test_set(self._saved_depth_test) + gpu.state.blend_set(self._saved_blend) + return None + + +class DimensionTextRenderer: + """Handles text rendering for dimension gizmos. + + Extracted from GizmoDimension to follow Single Responsibility Principle. + This class manages all text drawing operations including value text, + property tooltips, and text backgrounds. + + Usage: + renderer = DimensionTextRenderer.get_instance() + renderer.draw_value_text(context, screen_pos, perpendicular, value, color) + renderer.draw_property_tooltip(context, screen_pos, prop_name, color) + """ + + _instance: "DimensionTextRenderer | None" = None + _tri_shader = None + + # Text rendering parameters + VALUE_FONT_SIZE = 11 + TOOLTIP_FONT_SIZE = 10 + TEXT_PADDING = 3 + TOOLTIP_OFFSET = 15 + BACKGROUND_ALPHA = 0.7 + + @classmethod + def get_instance(cls) -> "DimensionTextRenderer": + """Get singleton instance of the text renderer.""" + if cls._instance is None: + cls._instance = cls() + return cls._instance + + @classmethod + def _get_tri_shader(cls): + """Get cached UNIFORM_COLOR shader for triangles.""" + if cls._tri_shader is None: + cls._tri_shader = gpu.shader.from_builtin("UNIFORM_COLOR") + return cls._tri_shader + + def draw_value_text( + self, + context: bpy.types.Context, + screen_pos: tuple[float, float], + perpendicular: Vector, + value: float, + color: tuple[float, float, float], + offset_sign: int = 1, + alignment: TextAlignment | str = TextAlignment.CENTER, + ) -> None: + """Draw formatted dimension value text at the given screen position. + + Args: + context: Blender context + screen_pos: Screen-space position (x, y) + perpendicular: Perpendicular direction vector for offset + value: Dimension value to format and display + color: Text color (r, g, b) + offset_sign: 1 for above/right, -1 for below/left + alignment: TextAlignment enum value + """ + # Normalize string to enum for comparison + if isinstance(alignment, str): + alignment = TextAlignment(alignment) + + is_negative = value < 0 + text = tool.Unit.format_distance(abs(value)) + if is_negative: + text = "-" + text + + font_id = 0 + font_size = tool.Blender.scale_font_size(self.VALUE_FONT_SIZE) + blf.size(font_id, font_size) + blf.enable(font_id, blf.SHADOW) + blf.shadow(font_id, 6, 0, 0, 0, 1) + + text_width, text_height = blf.dimensions(font_id, text) + offset_distance = (text_height + 4) * offset_sign + + if alignment == TextAlignment.START: + text_x = screen_pos[0] + perpendicular[0] * offset_distance + text_y = screen_pos[1] - text_height / 2 + perpendicular[1] * offset_distance + else: + text_x = screen_pos[0] - text_width / 2 + perpendicular[0] * offset_distance + text_y = screen_pos[1] - text_height / 2 + perpendicular[1] * offset_distance + + self._draw_text_background(context, text_x, text_y, text_width, text_height) + + blf.color(font_id, *color, 1.0) + blf.position(font_id, text_x, text_y, 0) + blf.draw(font_id, text) + blf.disable(font_id, blf.SHADOW) + + def draw_property_tooltip( + self, + context: bpy.types.Context, + screen_pos: tuple[float, float], + prop_name: str, + color: tuple[float, float, float], + ) -> None: + """Draw a tooltip showing the property name near the given screen position. + + Args: + context: Blender context + screen_pos: Screen-space position (x, y) + prop_name: Property name to display (will be converted to Title Case) + color: Text color (r, g, b) + """ + prop_display = prop_name.replace("_", " ").title() + + font_id = 0 + font_size = tool.Blender.scale_font_size(self.TOOLTIP_FONT_SIZE) + blf.size(font_id, font_size) + blf.enable(font_id, blf.SHADOW) + blf.shadow(font_id, 6, 0, 0, 0, 1) + + text_width, text_height = blf.dimensions(font_id, prop_display) + + tooltip_x = screen_pos[0] + self.TOOLTIP_OFFSET + tooltip_y = screen_pos[1] + self.TOOLTIP_OFFSET + + self._draw_text_background(context, tooltip_x, tooltip_y, text_width, text_height) + + blf.color(font_id, *color, 1.0) + blf.position(font_id, tooltip_x, tooltip_y, 0) + blf.draw(font_id, prop_display) + blf.disable(font_id, blf.SHADOW) + + def _draw_text_background( + self, + context: bpy.types.Context, + x: float, + y: float, + width: float, + height: float, + ) -> None: + """Draw a semi-transparent background behind text.""" + padding = self.TEXT_PADDING + theme = context.preferences.themes.items()[0][1] + bg_color = (*theme.user_interface.wcol_menu_back.inner[:3], self.BACKGROUND_ALPHA) + + vertices = [ + (x - padding, y - padding), + (x + width + padding, y - padding), + (x + width + padding, y + height + padding), + (x - padding, y + height + padding), + ] + indices = [(0, 1, 2), (0, 2, 3)] + + shader = self._get_tri_shader() + shader.bind() + batch = batch_for_shader(shader, "TRIS", {"pos": vertices}, indices=indices) + shader.uniform_float("color", bg_color) + batch.draw(shader) + + +@dataclass(slots=True, frozen=True) +class DimensionDrawConfig: + """Immutable configuration for drawing a dimension line. + + Groups the many parameters needed by DimensionRenderer.draw() into a + single configuration object, improving readability and maintainability. + + Attributes: + start_world: World-space start position + end_world: World-space end position + axis_world: Normalized axis direction in world space + dimension_length: Length of the dimension (for drawing the line) + color: Base color (r, g, b) + alpha: Base alpha (0.0 to 1.0) + is_highlight: Whether gizmo is highlighted/hovered + highlight_color: Highlight color (r, g, b) + highlight_alpha: Highlight alpha + show_start_arrow: Whether to show arrow at start + show_end_arrow: Whether to show arrow at end + show_extension_lines: Whether to show extension lines + text_offset_sign: 1 for above/right, -1 for below/left + text_alignment: TextAlignment value for text positioning along line + prop_name: Property name for tooltip (shown when highlighted) + display_value: Value to display as text (can be negative); uses dimension_length if None + """ + + start_world: Vector + end_world: Vector + axis_world: Vector + dimension_length: float + color: tuple[float, float, float] = (1.0, 1.0, 1.0) + alpha: float = 1.0 + is_highlight: bool = False + highlight_color: tuple[float, float, float] = (1.0, 1.0, 0.5) + highlight_alpha: float = 1.0 + show_start_arrow: bool = False + show_end_arrow: bool = True + show_extension_lines: bool = True + text_offset_sign: Literal[-1, 1] = 1 + text_alignment: TextAlignment = TextAlignment.CENTER + prop_name: str | None = None + display_value: float | None = None + + +@dataclass(slots=True, frozen=True) +class ViewDirection: + """Immutable representation of camera view direction relative to an element's local space. + + Provides a cleaner API than tuple unpacking for view-dependent gizmo positioning. + + With: + view = self.get_view_direction(context, mw) + if view.from_back: ... + + Attributes: + from_negative_y: True if camera is on the -Y side (viewing from "back") + from_negative_x: True if camera is on the -X side (viewing from "left") + + Properties: + from_back: Alias for from_negative_y (more intuitive for doors/windows) + from_front: Inverse of from_back + from_left: Alias for from_negative_x + from_right: Inverse of from_left + """ + + from_negative_y: bool = False + from_negative_x: bool = False + + @property + def from_back(self) -> bool: + """True if viewing from the back (-Y) side of the element.""" + return self.from_negative_y + + @property + def from_front(self) -> bool: + """True if viewing from the front (+Y) side of the element.""" + return not self.from_negative_y + + @property + def from_left(self) -> bool: + """True if viewing from the left (-X) side of the element.""" + return self.from_negative_x + + @property + def from_right(self) -> bool: + """True if viewing from the right (+X) side of the element.""" + return not self.from_negative_x + + @classmethod + def from_context(cls, context: bpy.types.Context, world_matrix: Matrix) -> "ViewDirection": + """Create ViewDirection from Blender context and object world matrix. + + Args: + context: Blender context with region_data + world_matrix: Object's world transformation matrix + + Returns: + ViewDirection instance, defaults to (False, False) if region data unavailable. + """ + rv3d = context.region_data + if not rv3d: + return cls() + + view_direction = Vector(rv3d.view_rotation @ Vector((0, 0, -1))) + local_view_dir = world_matrix.inverted().to_3x3() @ view_direction + + return cls( + from_negative_y=local_view_dir.y < 0, + from_negative_x=local_view_dir.x < 0, + ) + + +class DimensionRenderer: + """Handles rendering of dimension line graphics. + + Extracted from GizmoDimension to follow Single Responsibility Principle. + This class manages all dimension drawing operations including lines, + arrows, and extension lines in screen space. + + Usage: + renderer = DimensionRenderer.get_instance() + config = DimensionDrawConfig(start_world, end_world, axis_world, length, color) + renderer.draw(context, config) + # Or use legacy method signature: + renderer.draw(context, start_world, end_world, ...) + """ + + _instance: "DimensionRenderer | None" = None + _line_shader = None + _tri_shader = None + + # Visual parameters (in pixels) + ARROW_SIZE = 10 + EXTENSION_LENGTH = 4 + LINE_WIDTH = 2.0 + MIN_PIXELS_FOR_DETAILS = 35 + + @classmethod + def get_instance(cls) -> "DimensionRenderer": + """Get singleton instance of the dimension renderer.""" + if cls._instance is None: + cls._instance = cls() + return cls._instance + + @classmethod + def _get_line_shader(cls): + """Get cached POLYLINE_UNIFORM_COLOR shader.""" + if cls._line_shader is None: + cls._line_shader = gpu.shader.from_builtin("POLYLINE_UNIFORM_COLOR") + return cls._line_shader + + @classmethod + def _get_tri_shader(cls): + """Get cached UNIFORM_COLOR shader for triangles.""" + if cls._tri_shader is None: + cls._tri_shader = gpu.shader.from_builtin("UNIFORM_COLOR") + return cls._tri_shader + + def draw( + self, + context: bpy.types.Context, + start_world: Vector, + end_world: Vector, + axis_world: Vector, + dimension_length: float, + color: tuple[float, float, float], + alpha: float, + is_highlight: bool, + highlight_color: tuple[float, float, float], + highlight_alpha: float, + show_start_arrow: bool = False, + show_end_arrow: bool = True, + show_extension_lines: bool = True, + text_offset_sign: int = 1, + text_alignment: TextAlignment = TextAlignment.CENTER, + prop_name: str | None = None, + display_value: float | None = None, + ) -> None: + """Draw complete dimension graphics in screen space. + + Args: + context: Blender context + start_world: World-space start position + end_world: World-space end position + axis_world: Normalized axis direction in world space + dimension_length: Length of the dimension (for drawing the line) + color: Base color (r, g, b) + alpha: Base alpha + is_highlight: Whether gizmo is highlighted/hovered + highlight_color: Highlight color (r, g, b) + highlight_alpha: Highlight alpha + show_start_arrow: Whether to show arrow at start + show_end_arrow: Whether to show arrow at end + show_extension_lines: Whether to show extension lines + text_offset_sign: 1 for above/right, -1 for below/left + text_alignment: TextAlignment enum for text positioning + prop_name: Property name for tooltip (shown when highlighted) + display_value: Value to display as text (can be negative); uses dimension_length if None + """ + if dimension_length < 0: + return + + # Use display_value for text if provided, otherwise use dimension_length + text_value = display_value if display_value is not None else dimension_length + + region = context.region + rv3d = context.region_data + if not region or not rv3d: + return + + start_screen = location_3d_to_region_2d(region, rv3d, start_world) + end_screen = location_3d_to_region_2d(region, rv3d, end_world) + + if not start_screen or not end_screen: + return + + direction = Vector((end_screen[0] - start_screen[0], end_screen[1] - start_screen[1])) + length_screen = direction.length + + actual_value_is_zero = dimension_length <= 0.001 + + # When screen length is zero due to viewing angle (not actual value), skip drawing + if length_screen < 1 and not actual_value_is_zero: + return + + # When actual value is zero, determine direction from 3D axis projection + if length_screen < 1 and actual_value_is_zero: + test_world = start_world + axis_world * 0.1 + test_screen = location_3d_to_region_2d(region, rv3d, test_world) + if test_screen: + direction = Vector((test_screen[0] - start_screen[0], test_screen[1] - start_screen[1])) + if direction.length > 0.001: + direction.normalize() + else: + direction = Vector((1, 0)) + else: + direction = Vector((1, 0)) + else: + direction.normalize() + + perpendicular = Vector((-direction[1], direction[0])) + + vertices = [] + indices = [] + + line_start = (start_screen[0], start_screen[1]) + line_end = (end_screen[0], end_screen[1]) + + if show_start_arrow: + line_start = ( + start_screen[0] + direction[0] * self.ARROW_SIZE, + start_screen[1] + direction[1] * self.ARROW_SIZE, + ) + if show_end_arrow: + line_end = ( + end_screen[0] - direction[0] * self.ARROW_SIZE, + end_screen[1] - direction[1] * self.ARROW_SIZE, + ) + + vertices.append(line_start) + vertices.append(line_end) + indices.append((0, 1)) + + arrow_triangles = [] + + if show_start_arrow: + arrow_triangles.extend( + self._build_arrow_triangle(start_screen, direction, perpendicular, pointing_backward=False) + ) + + if show_end_arrow: + arrow_triangles.extend( + self._build_arrow_triangle(end_screen, direction, perpendicular, pointing_backward=True) + ) + + if show_extension_lines and length_screen >= self.MIN_PIXELS_FOR_DETAILS: + idx = len(vertices) + ext_start_top, ext_start_bottom = self._build_extension_line_vertices(start_screen, perpendicular) + vertices.append(ext_start_top) + vertices.append(ext_start_bottom) + indices.append((idx, idx + 1)) + + idx = len(vertices) + ext_end_top, ext_end_bottom = self._build_extension_line_vertices(end_screen, perpendicular) + vertices.append(ext_end_top) + vertices.append(ext_end_bottom) + indices.append((idx, idx + 1)) + + if is_highlight: + draw_color = (*highlight_color, highlight_alpha) + else: + draw_color = (*color, alpha) + + with GPUStateScope(depth_test="NONE", blend="ALPHA", ortho_2d=(region.width, region.height)): + shader = self._get_line_shader() + shader.bind() + shader.uniform_float("viewportSize", (region.width, region.height)) + shader.uniform_float("lineWidth", self.LINE_WIDTH) + shader.uniform_float("color", draw_color) + + line_batch = batch_for_shader(shader, "LINES", {"pos": vertices}, indices=indices) + line_batch.draw(shader) + + if arrow_triangles: + tri_shader = self._get_tri_shader() + tri_shader.bind() + tri_shader.uniform_float("color", draw_color) + tri_batch = batch_for_shader(tri_shader, "TRIS", {"pos": arrow_triangles}) + tri_batch.draw(tri_shader) + + if length_screen >= self.MIN_PIXELS_FOR_DETAILS: + center_screen = ( + (start_screen[0] + end_screen[0]) / 2, + (start_screen[1] + end_screen[1]) / 2, + ) + text_color = highlight_color if is_highlight else color + DimensionTextRenderer.get_instance().draw_value_text( + context, center_screen, perpendicular, text_value, text_color, text_offset_sign, text_alignment + ) + + if is_highlight and prop_name: + tooltip_color = highlight_color + DimensionTextRenderer.get_instance().draw_property_tooltip( + context, (end_screen[0], end_screen[1]), prop_name, tooltip_color + ) + + def _build_arrow_triangle( + self, position: Vector, direction: Vector, perpendicular: Vector, pointing_backward: bool + ) -> list[tuple[float, float]]: + """Build triangle vertices for an arrow head.""" + sign = -1 if pointing_backward else 1 + arrow_tip = (position[0], position[1]) + arrow_back_left = ( + position[0] + sign * direction[0] * self.ARROW_SIZE + perpendicular[0] * self.ARROW_SIZE * 0.5, + position[1] + sign * direction[1] * self.ARROW_SIZE + perpendicular[1] * self.ARROW_SIZE * 0.5, + ) + arrow_back_right = ( + position[0] + sign * direction[0] * self.ARROW_SIZE - perpendicular[0] * self.ARROW_SIZE * 0.5, + position[1] + sign * direction[1] * self.ARROW_SIZE - perpendicular[1] * self.ARROW_SIZE * 0.5, + ) + return [arrow_tip, arrow_back_left, arrow_back_right] + + def _build_extension_line_vertices( + self, position: Vector, perpendicular: Vector + ) -> tuple[tuple[float, float], tuple[float, float]]: + """Build extension line endpoints perpendicular to the dimension.""" + top = ( + position[0] + perpendicular[0] * self.EXTENSION_LENGTH, + position[1] + perpendicular[1] * self.EXTENSION_LENGTH, + ) + bottom = ( + position[0] - perpendicular[0] * self.EXTENSION_LENGTH, + position[1] - perpendicular[1] * self.EXTENSION_LENGTH, + ) + return (top, bottom) + + +@dataclass(slots=True, frozen=True) +class SnapCache: + """Immutable snap cache with combined KD-tree for vertex snapping.""" + + # Combined KD-tree with all world vertices from all objects + kd_tree: KDTree + # All world vertices indexed by global vertex index (tuples for memory efficiency) + all_vertices: list[tuple[float, float, float]] + + +@dataclass(slots=True) +class NumericInputState: + """State for keyboard numeric input during gizmo operations.""" + + characters: list[str] + parsed_value: float + is_active: bool + is_valid: bool + + @classmethod + def create_default(cls) -> "NumericInputState": + return cls(characters=[], parsed_value=0.0, is_active=False, is_valid=True) + + def reset(self) -> None: + self.characters.clear() + self.parsed_value = 0.0 + self.is_active = False + self.is_valid = True + + def get_input_string(self) -> str: + return "".join(self.characters) + + def is_relative_mode(self) -> bool: + input_str = self.get_input_string() + return input_str.startswith("+") or input_str.startswith("-") + + def calculate_final_value(self, init_value: float, invert_delta: bool = False) -> float: + if self.is_relative_mode(): + delta = self.parsed_value + if invert_delta: + delta = -delta + return init_value + delta + return self.parsed_value + + def parse(self) -> None: + """Parse the current input string and update parsed_value and is_valid.""" + if not self.characters: + self.parsed_value = 0.0 + self.is_valid = True + return + + input_str = self.get_input_string() + is_valid, value = tool.Unit.parse_distance_string(input_str) + + if is_valid: + self.parsed_value = value + self.is_valid = True + else: + try: + self.parsed_value = float(input_str) + self.is_valid = True + except ValueError: + self.parsed_value = 0.0 + self.is_valid = False + + +@runtime_checkable +class ParametricProps(Protocol): + """Protocol defining the common interface for parametric element properties. + + All parametric property classes (BIMDoorProperties, BIMWindowProperties, + BIMStairProperties, etc.) should implement this interface. This enables + type-safe code in BaseParametricGizmoGroup without importing concrete classes. + + Example: + def update_gizmos(self, props: ParametricProps) -> None: + if props.is_editing: + # Safe to access common properties + ... + """ + + is_editing: bool + + +@dataclass(slots=True) +class DimensionGizmoConfig: + """Configuration for a dimension gizmo. + + Used to declaratively configure dimension line gizmos in BaseParametricGizmoGroup subclasses. + This enables a data-driven approach that reduces boilerplate code for setting up + dimension gizmos with consistent behavior. + + Color and prop_name are auto-derived if not specified: + - axis (1,0,0) or (-1,0,0) -> RED + - axis (0,1,0) or (0,-1,0) -> GREEN + - axis (0,0,1) or (0,0,-1) -> BLUE + - prop_name: "attr_name" -> "Attr Name" (underscores to spaces, title case) + + Examples: + # Basic dimension - uses attr_name to read/write property + DimensionGizmoConfig( + attr_name="overall_width", + axis=(1, 0, 0), + min_value=0.01, + ) + + # Custom value calculation - for computed properties + DimensionGizmoConfig( + attr_name="total_length", + axis=(1, 0, 0), + compute_value=lambda props: props.tread_run * props.num_treads, + apply_value=lambda props, val: setattr(props, "target_length", val), + ) + + # Conditional visibility - hide when not applicable + DimensionGizmoConfig( + attr_name="nosing_length", + axis=(-1, 0, 0), + visibility_condition=lambda props: props.nosing_length > 0, + ) + + Attributes: + attr_name: Property name to bind to (e.g., "overall_width"). Used to generate + gizmo attribute name as f"dimension_{attr_name}_gizmo". + axis: Direction tuple (x, y, z) for the dimension line. Determines color if not + specified and defines drag direction. Use negative values for reversed directions. + color: Optional override. One of "RED", "GREEN", "BLUE". Auto-derived from axis. + prop_name: Display name for tooltips. Defaults to attr_name with underscores + replaced by spaces and title-cased. + min_value: Minimum allowed value when dragging (default 0.0). + invert_delta: If True, reverses the drag direction effect. + delta_scale: Multiplier for drag delta (default 1.0). Use <1 for fine control. + text_offset_sign: 1 or -1 to position text above/below dimension line. + text_alignment: "start", "center", or "end" for text positioning along line. + show_start_arrow: Whether to show arrow at start point (default False). + show_end_arrow: Whether to show arrow at end point (default True). + compute_value: Optional function(props) -> float for computed dimension values. + If None, reads directly from getattr(props, attr_name). + apply_value: Optional function(props, value) to apply new values after drag. + If None, uses setattr(props, attr_name, value). + visibility_condition: Optional function(props) -> bool. If returns False, + the gizmo is hidden. Used for conditional gizmos. + matrix_position: Optional function(props) -> Vector for gizmo position. + If provided, eliminates need for get_dimension_matrix_{attr_name} method. + The returned Vector is the local-space position where the gizmo origin + will be placed. Combined with axis to create the full transformation matrix. + """ + + attr_name: str + axis: GizmoAxis + color: GizmoColor | str | None = None # GizmoColor enum, string ("RED"/"GREEN"/"BLUE"), or None for auto + prop_name: str | None = None + min_value: float = 0.0 + invert_delta: bool = False + delta_scale: float = 1.0 + text_offset_sign: Literal[-1, 1] = 1 + text_alignment: TextAlignment | str = TextAlignment.CENTER + show_start_arrow: bool = False + show_end_arrow: bool = True + compute_value: Callable[[Any], float] | None = None + apply_value: Callable[[Any, float], None] | None = None + visibility_condition: Callable[[Any], bool] | None = None + matrix_position: Callable[[Any], "Vector"] | None = None # Optional: function(props) -> Vector position + + def __post_init__(self): + # Validate attr_name + if not self.attr_name or not isinstance(self.attr_name, str): + raise ValueError("attr_name must be a non-empty string") + + # Validate axis + if len(self.axis) != 3: + raise ValueError(f"axis must be a 3-tuple, got {len(self.axis)} elements") + if not any(self.axis): + raise ValueError("axis must have at least one non-zero component") + + # Normalize and validate text_alignment + if isinstance(self.text_alignment, str): + try: + self.text_alignment = TextAlignment(self.text_alignment) + except ValueError: + valid = [e.value for e in TextAlignment] + raise ValueError(f"text_alignment must be one of {valid}, got '{self.text_alignment}'") + elif not isinstance(self.text_alignment, TextAlignment): + raise ValueError(f"text_alignment must be TextAlignment enum or string, got {type(self.text_alignment)}") + + # Validate text_offset_sign + if self.text_offset_sign not in (1, -1): + raise ValueError(f"text_offset_sign must be 1 or -1, got {self.text_offset_sign}") + + # Normalize and validate color + if self.color is None: + # Auto-derive from axis direction + self.color = GizmoColor.from_axis(self.axis) + elif isinstance(self.color, str): + # Convert string to enum + try: + self.color = GizmoColor(self.color) + except ValueError: + raise ValueError(f"color must be 'RED', 'GREEN', or 'BLUE', got '{self.color}'") + elif not isinstance(self.color, GizmoColor): + raise ValueError(f"color must be GizmoColor enum, string, or None, got {type(self.color)}") + + # Auto-derive prop_name from attr_name if not specified + if self.prop_name is None: + self.prop_name = self.attr_name.replace("_", " ").title() + + def __repr__(self) -> str: + """Concise representation showing key configuration values.""" + parts = [f"attr_name={self.attr_name!r}", f"axis={self.axis}"] + if self.color: + parts.append(f"color={self.color.name}") + if self.visibility_condition: + parts.append("visibility_condition=") + if self.matrix_position: + parts.append("matrix_position=") + if self.compute_value: + parts.append("compute_value=") + if self.min_value != 0.0: + parts.append(f"min_value={self.min_value}") + if self.invert_delta: + parts.append("invert_delta=True") + return f"DimensionGizmoConfig({', '.join(parts)})" + + +class SnapManager: + """Manages snap point visualization and mesh snapping with caching.""" + + def __init__(self): + self._snap_point: tuple[float, float, float] | Vector | None = None + self._draw_handler = None + self._shader = None + self._snap_cache: SnapCache | None = None + + def set_snap_point(self, point: tuple[float, float, float] | Vector | None) -> None: + """Set snap point and register draw handler if needed.""" + self._snap_point = point + if self._draw_handler is None and point is not None: + self._draw_handler = bpy.types.SpaceView3D.draw_handler_add(self._draw, (), "WINDOW", "POST_VIEW") + self._redraw_viewport() + + def clear(self) -> None: + """Clear snap point and unregister handler.""" + self._snap_point = None + if self._draw_handler is not None: + bpy.types.SpaceView3D.draw_handler_remove(self._draw_handler, "WINDOW") + self._draw_handler = None + self._redraw_viewport() + + def _draw(self) -> None: + """Draw snap point as a dot.""" + if self._snap_point is None: + return + + if self._shader is None: + self._shader = gpu.shader.from_builtin("UNIFORM_COLOR") + + self._shader.bind() + self._shader.uniform_float("color", SNAP_POINT_COLOR) + gpu.state.point_size_set(SNAP_POINT_SIZE) + + batch = batch_for_shader(self._shader, "POINTS", {"pos": [self._snap_point]}) + batch.draw(self._shader) + + gpu.state.point_size_set(DEFAULT_POINT_SIZE) + + @staticmethod + def _redraw_viewport() -> None: + """Force 3D viewport redraw.""" + for area in bpy.context.screen.areas: + if area.type == "VIEW_3D": + area.tag_redraw() + + def build_snap_cache( + self, context: bpy.types.Context, active_obj: bpy.types.Object, include_active: bool = False + ) -> None: + """Build unified cache with combined KD-tree for vertex snapping. + + Uses foreach_get for fast vertex data extraction and NumPy for + batch matrix transformation. + + Args: + context: The current Blender context. + active_obj: The active object being edited. + include_active: If True, include the active object's vertices in snapping targets. + """ + self._snap_cache = None + + mesh_objects = [obj for obj in context.visible_objects if obj.type == "MESH" and obj.visible_get()] + + if not include_active: + mesh_objects = [obj for obj in mesh_objects if obj != active_obj] + + if not mesh_objects: + return + + depsgraph = context.evaluated_depsgraph_get() + all_vertices: list[tuple[float, float, float]] = [] + + for obj in mesh_objects: + mesh_data = obj.data + if not hasattr(mesh_data, "vertices") or not mesh_data.vertices: + continue + + obj_eval = obj.evaluated_get(depsgraph) + mesh = obj_eval.to_mesh() + + try: + vertex_count = len(mesh.vertices) + if vertex_count == 0: + continue + + coords = np.empty(vertex_count * 3, dtype=np.float32) + mesh.vertices.foreach_get("co", coords) # type: ignore[arg-type] + coords = coords.reshape(-1, 3) + + matrix = np.array(obj_eval.matrix_world, dtype=np.float32) + ones = np.ones((vertex_count, 1), dtype=np.float32) + coords_h = np.hstack([coords, ones]) + world_coords = (coords_h @ matrix.T)[:, :3] + + all_vertices.extend(tuple(co) for co in world_coords) + finally: + obj_eval.to_mesh_clear() + + if not all_vertices: + return + + kd_tree = KDTree(len(all_vertices)) + for i, v in enumerate(all_vertices): + kd_tree.insert(v, i) + kd_tree.balance() + + self._snap_cache = SnapCache( + kd_tree=kd_tree, + all_vertices=all_vertices, + ) + + def clear_snap_cache(self) -> None: + self._snap_cache = None + + @staticmethod + def _calc_snap_distance_sq( + point_3d: Vector, + location: Vector, + mouse_vec: Vector | None, + region: bpy.types.Region | None, + rv3d: bpy.types.RegionView3D | None, + ) -> float: + """Calculate squared distance - screen-space if mouse coords available, else world-space.""" + if mouse_vec is not None and region is not None and rv3d is not None: + point_2d = location_3d_to_region_2d(region, rv3d, point_3d) + if point_2d is not None: + return (mouse_vec - point_2d).length_squared + return float("inf") + return (point_3d - location).length_squared + + @staticmethod + def _find_closest_vertex( + world_vertices: list[Vector], + location: Vector, + mouse_vec: Vector | None, + region: bpy.types.Region | None, + rv3d: bpy.types.RegionView3D | None, + closest_point: Vector | None, + closest_dist_sq: float, + kd_tree: KDTree | None = None, + ) -> tuple[Vector | None, float]: + """Find the closest vertex to snap to using KD-tree if available.""" + if kd_tree is not None: + for _, idx, _ in kd_tree.find_n(location, SNAP_KD_CANDIDATES): + v_co = world_vertices[idx] + dist_sq = SnapManager._calc_snap_distance_sq(v_co, location, mouse_vec, region, rv3d) + if dist_sq < closest_dist_sq: + closest_dist_sq = dist_sq + closest_point = v_co + else: + for v_co in world_vertices: + dist_sq = SnapManager._calc_snap_distance_sq(v_co, location, mouse_vec, region, rv3d) + if dist_sq < closest_dist_sq: + closest_dist_sq = dist_sq + closest_point = v_co + return closest_point, closest_dist_sq + + @staticmethod + def _get_nearby_objects( + mesh_objects: list[bpy.types.Object], + location: Vector, + ) -> list[bpy.types.Object]: + """Filter objects to those within SNAP_MAX_RADIUS of location.""" + radius_sq = SNAP_MAX_RADIUS * SNAP_MAX_RADIUS + nearby_objects = [] + + for obj in mesh_objects: + bbox_corners = [obj.matrix_world @ Vector(corner) for corner in obj.bound_box] + if not bbox_corners: + continue + + bbox_min = Vector( + ( + min(c.x for c in bbox_corners), + min(c.y for c in bbox_corners), + min(c.z for c in bbox_corners), + ) + ) + bbox_max = Vector( + ( + max(c.x for c in bbox_corners), + max(c.y for c in bbox_corners), + max(c.z for c in bbox_corners), + ) + ) + + closest = Vector( + ( + max(bbox_min.x, min(location.x, bbox_max.x)), + max(bbox_min.y, min(location.y, bbox_max.y)), + max(bbox_min.z, min(location.z, bbox_max.z)), + ) + ) + + if (location - closest).length_squared <= radius_sq: + nearby_objects.append(obj) + + return nearby_objects + + def snap_to_mesh( + self, + location: Vector, + context: bpy.types.Context, + active_obj: bpy.types.Object, + mouse_coords: tuple[float, float] | None = None, + include_active: bool = False, + ) -> Vector: + """Snap a location to the nearest vertex if snapping is enabled. + + Only vertex snapping is supported. Returns the original location if + snapping is disabled or VERTEX is not in the snap elements. + + Args: + location: The 3D location to snap from. + context: The current Blender context. + active_obj: The active object being edited. + mouse_coords: Optional mouse coordinates for screen-space distance. + include_active: If True, include the active object's vertices in snapping targets. + """ + tool_settings = context.scene.tool_settings + + if not tool_settings.use_snap: + return location + + if "VERTEX" not in tool_settings.snap_elements_base: + return location + + region = context.region + rv3d = context.region_data + use_screen_distance = mouse_coords is not None and region is not None and rv3d is not None + mouse_vec = Vector(mouse_coords) if mouse_coords is not None else None + + closest_point: Vector | None = None + closest_dist_sq = float("inf") + + if self._snap_cache is not None: + closest_point, closest_dist_sq = self._snap_from_cache(location, mouse_vec, region, rv3d) + else: + closest_point, closest_dist_sq = self._snap_without_cache( + location, context, active_obj, mouse_vec, region, rv3d, include_active + ) + + max_dist_sq = SNAP_SCREEN_DISTANCE**2 if use_screen_distance else SNAP_WORLD_DISTANCE**2 + if closest_point and closest_dist_sq < max_dist_sq: + return closest_point + + return location + + def _snap_from_cache( + self, + location: Vector, + mouse_vec: Vector | None, + region: bpy.types.Region | None, + rv3d: bpy.types.RegionView3D | None, + ) -> tuple[Vector | None, float]: + """Find closest vertex using cached KD-tree. + + Searches from both the target location AND a secondary location derived from + the mouse position to handle cases where click offset causes the mouse to be + far from the target location on screen. + """ + if self._snap_cache is None: + return None, float("inf") + + cache = self._snap_cache + + closest_point, closest_dist_sq = SnapManager._find_closest_vertex( + cache.all_vertices, location, mouse_vec, region, rv3d, None, float("inf"), cache.kd_tree + ) + + # Also search from mouse's 3D position to handle click offset cases + if mouse_vec is not None and region is not None and rv3d is not None: + mouse_origin = region_2d_to_origin_3d(region, rv3d, mouse_vec) + mouse_direction = region_2d_to_vector_3d(region, rv3d, mouse_vec) + view_distance = (location - mouse_origin).length + mouse_3d = mouse_origin + mouse_direction * view_distance + + closest_point, closest_dist_sq = SnapManager._find_closest_vertex( + cache.all_vertices, mouse_3d, mouse_vec, region, rv3d, closest_point, closest_dist_sq, cache.kd_tree + ) + + return closest_point, closest_dist_sq + + def _snap_without_cache( + self, + location: Vector, + context: bpy.types.Context, + active_obj: bpy.types.Object, + mouse_vec: Vector | None, + region: bpy.types.Region | None, + rv3d: bpy.types.RegionView3D | None, + include_active: bool = False, + ) -> tuple[Vector | None, float]: + """Find closest vertex without cache (fallback path).""" + mesh_objects = [obj for obj in context.visible_objects if obj.type == "MESH" and obj.visible_get()] + + if not include_active: + mesh_objects = [obj for obj in mesh_objects if obj != active_obj] + + if not mesh_objects: + return None, float("inf") + + nearby_objects = set(SnapManager._get_nearby_objects(mesh_objects, location)) + + if mouse_vec is not None and region is not None and rv3d is not None: + mouse_origin = region_2d_to_origin_3d(region, rv3d, mouse_vec) + mouse_direction = region_2d_to_vector_3d(region, rv3d, mouse_vec) + view_distance = (location - mouse_origin).length + mouse_3d = mouse_origin + mouse_direction * view_distance + nearby_objects.update(SnapManager._get_nearby_objects(mesh_objects, mouse_3d)) + + if not nearby_objects: + return None, float("inf") + + closest_point: Vector | None = None + closest_dist_sq = float("inf") + depsgraph = context.evaluated_depsgraph_get() + + for obj in nearby_objects: + mesh_data = obj.data + if not hasattr(mesh_data, "vertices") or not mesh_data.vertices: + continue + + obj_eval = obj.evaluated_get(depsgraph) + mesh = obj_eval.to_mesh() + + try: + if not mesh or not mesh.vertices: + continue + + world_vertices = [obj_eval.matrix_world @ v.co for v in mesh.vertices] + closest_point, closest_dist_sq = SnapManager._find_closest_vertex( + world_vertices, location, mouse_vec, region, rv3d, closest_point, closest_dist_sq + ) + finally: + obj_eval.to_mesh_clear() + + return closest_point, closest_dist_sq + + +_snap_manager = SnapManager() + + +def set_snap_point(point: tuple[float, float, float] | Vector | None) -> None: + _snap_manager.set_snap_point(point) + + +def clear_snap_point() -> None: + _snap_manager.clear() + + +def snap_to_mesh( + location: Vector, + context: bpy.types.Context, + active_obj: bpy.types.Object, + mouse_coords: tuple[float, float] | None = None, + include_active: bool = False, +) -> Vector: + return _snap_manager.snap_to_mesh(location, context, active_obj, mouse_coords, include_active) + + +def build_snap_cache(context: bpy.types.Context, active_obj: bpy.types.Object, include_active: bool = False) -> None: + _snap_manager.build_snap_cache(context, active_obj, include_active) + + +def clear_snap_cache() -> None: + _snap_manager.clear_snap_cache() + + +def get_billboard_rotation(context: bpy.types.Context) -> Matrix: + """Get rotation matrix that makes an object face the camera.""" + rv3d = context.region_data + if rv3d is None: + return Matrix.Identity(4) + return rv3d.view_matrix.to_3x3().transposed().to_4x4() + + +def get_camera_direction(context: bpy.types.Context, position: Vector) -> Vector | None: + """Get normalized direction from position towards camera.""" + rv3d = context.region_data + if rv3d is None: + return None + + if rv3d.is_perspective: + view_origin = rv3d.view_matrix.inverted().translation + return (view_origin - position).normalized() + return Vector(rv3d.view_matrix.inverted().col[2][:3]).normalized() + + +def generate_circle_vertices( + center: tuple[float, float, float] | Vector, radius: float, segments: int, plane: str = "XY" +) -> list[tuple[float, float, float]]: + """Generate circle vertices in specified plane ('XY', 'XZ', or 'YZ').""" + vertices = [] + for i in range(segments + 1): + angle = (2 * math.pi * i) / segments + cos_a = radius * math.cos(angle) + sin_a = radius * math.sin(angle) + + if plane == "XY": + vertices.append((center[0] + cos_a, center[1] + sin_a, center[2])) + elif plane == "XZ": + vertices.append((center[0] + cos_a, center[1], center[2] + sin_a)) + else: + vertices.append((center[0], center[1] + cos_a, center[2] + sin_a)) + + return vertices + + +def create_circle_arc( + radius: float = 1.0, + segments: int = ARC_SEGMENTS, + direction: str = "LEFT", + line_width: float = ARC_LINE_WIDTH, + angle_min: float = 0.0, + angle_max: float = 90.0, +) -> tuple[tuple[float, float, float], ...]: + """Create a circle arc with cross-section thickness for visibility from all angles.""" + half_width = line_width / 2 + angle_min_rad = math.radians(angle_min) + angle_max_rad = math.radians(angle_max) + angle_range = angle_max_rad - angle_min_rad + + arc_points = [] + if direction == "LEFT": + for i in range(segments + 1): + angle = angle_min_rad + angle_range * (i / segments) + x = radius * math.cos(angle) + y = radius * math.sin(angle) + arc_points.append((x, y)) + else: + for i in range(segments + 1): + angle = angle_min_rad + angle_range * (i / segments) + x = -radius * math.cos(angle) + y = radius * math.sin(angle) + arc_points.append((x, y)) + + arc_triangles = [] + for i in range(len(arc_points) - 1): + x1, y1 = arc_points[i] + x2, y2 = arc_points[i + 1] + + dx, dy = x2 - x1, y2 - y1 + length = (dx**2 + dy**2) ** 0.5 + if length > 0: + px, py = -dy / length * half_width, dx / length * half_width + + arc_triangles.extend( + [ + (x1 + px, y1 + py, 0.0), + (x1 - px, y1 - py, 0.0), + (x2 + px, y2 + py, 0.0), + ] + ) + arc_triangles.extend( + [ + (x2 + px, y2 + py, 0.0), + (x1 - px, y1 - py, 0.0), + (x2 - px, y2 - py, 0.0), + ] + ) + + arc_triangles.extend( + [ + (x1, y1, -half_width), + (x2, y2, -half_width), + (x1, y1, +half_width), + ] + ) + arc_triangles.extend( + [ + (x1, y1, +half_width), + (x2, y2, -half_width), + (x2, y2, +half_width), + ] + ) + + return tuple(arc_triangles) + + +# ============================================================================ +# Gizmos under the hood +# ============================================================================ +# +# ## Transforms: +# +# source/blender/windowmanager/gizmo/WM_gizmo_types.h +# matrix_basis -- "Transformation of this gizmo." = placement in scene +# matrix_offset -- "Custom offset from origin." = local transforms according to state/value +# matrix_space -- "The space this gizmo is being modified in." used by some gizmos for undefined purposes +# matrix_world -- final matrix, scaled according to viewport zoom and custom scale_basis +# +# source/blender/windowmanager/gizmo/intern/wm_gizmo.c:WM_gizmo_calc_matrix_final_params +# final = space @ (autoscale * (basis @ offset)) +# final = space @ (basis @ offset) -- if gizmo.use_draw_scale == False +# final = space @ ((autoscale * basis) @ offset) -- if gizmo.use_draw_offset_scale +# +# source/blender/windowmanager/gizmo/intern/wm_gizmo.c:wm_gizmo_calculate_scale +# autoscale = gizmo.scale_basis * magic(preferences, matrix_space, matrix_basis, context.region_data) +# magic -- making 1.0 to match preferences.view.gizmo_size pixels (75 by default) +# +# +# ## Selection +# +# select_id -- apparently, id of a selectable part +# test_select -- expected to return id of selection, doesn't seem to work +# draw_select -- fake-draw of selection geometry for gpu-side cursor tracking +# ============================================================================ + + +# Some geometries for Gizmo.custom_shape shaders CUBE = ( (+1, +1, +1), @@ -250,13 +1904,11 @@ X3DISC = ( class CustomGizmo: - # FIXME: highliting/selection doesnt work + # FIXME: highlighting/selection doesn't work def draw_very_custom_shape(self, ctx, custom_shape, select_id=None): - # create shader and batch shader_wrapper, batch = custom_shape shader = shader_wrapper.get_shader() - # setup params shader.bind() if select_id is not None: gpu.select.load_id(select_id) @@ -269,11 +1921,8 @@ class CustomGizmo: shader_wrapper.glenable() shader_wrapper.uniform_region(ctx) - # using `with` block to make sure matrix multiplication - # won't affect other shaders with gpu.matrix.push_pop(): - # using matrix_world seems to be unaffected by matrix_offset - # therefore we use basis @ offset + # matrix_world is unaffected by matrix_offset, so use basis @ offset matrix = self.matrix_basis @ self.matrix_offset gpu.matrix.multiply_matrix(matrix) batch.draw(shader) @@ -355,7 +2004,7 @@ class UglyDotGizmo(OffsetHandle, types.Gizmo): def refresh(self): offset = self.target_get_value("offset") / self.scale_value - self.matrix_offset.translation.z = offset # z-shift + self.matrix_offset.translation.z = offset def draw(self, ctx): self.refresh() @@ -366,37 +2015,6 @@ class UglyDotGizmo(OffsetHandle, types.Gizmo): self.draw_custom_shape(self.custom_shape, select_id=select_id) -# TODO: dead code? -class DotGizmo(CustomGizmo, OffsetHandle, types.Gizmo): - """Single dot viewport-aligned""" - - # FIXME: make it selectable - bl_idname = "BIM_GT_dot_2d" - bl_target_properties = ({"id": "offset", "type": "FLOAT", "array_length": 1},) - - __slots__ = ( - "scale_value", - "custom_shape", - ) - - def setup(self): - shader = DotsGizmoShader() - self.custom_shape = shader, shader.batch(pos=((0, 0, 0),)), shader.prog - self.use_draw_scale = False - - def refresh(self): - offset = self.target_get_value("offset") / self.scale_value - self.matrix_offset.translation.z = offset # z-shifted - - def draw(self, ctx): - self.refresh() - self.draw_very_custom_shape(ctx, self.custom_shape) - - def draw_select(self, ctx, select_id): - self.refresh() - self.draw_very_custom_shape(ctx, self.custom_shape, select_id=select_id) - - class ExtrusionGuidesGizmo(CustomGizmo, types.Gizmo): """Extrusion guides @@ -430,49 +2048,6 @@ class ExtrusionGuidesGizmo(CustomGizmo, types.Gizmo): self.matrix_offset.col[2][2] = depth # z-scaled -# TODO: dead code? -class DimensionLabelGizmo(types.Gizmo): - """Text label for a dimension""" - - # does not work properly, fonts are totally screwed up - - bl_idname = "BIM_GT_dimension_label" - bl_target_properties = ({"id": "value", "type": "FLOAT", "array_length": 1},) - - __slots__ = "text_label" - - def setup(self): - pass - - def refresh(self, ctx): - value = self.target_get_value("value") - self.matrix_offset.translation.z = value * 0.5 - unit_system = ctx.scene.unit_settings.system - self.text_label = bpy.utils.units.to_string(unit_system, "LENGTH", value, 3, split_unit=False) - - def draw(self, ctx): - self.refresh(ctx) - self.draw_text(ctx) - - def draw_text(self, ctx): - font_id = 0 - font_size = 16 - dpi = ctx.preferences.system.dpi - - # pos = self.matrix_world @ Vector((0, 0, 0, 1)) - # pos = Vector((0, 0, 0.5)) - # region = ctx.region - # region3d = ctx.region_data - # pos = view3d_utils.location_3d_to_region_2d(region, region3d, pos) - - # text = self.text_label - - blf.size(font_id, font_size, dpi) - blf.position(font_id, 0, 0, 0) - blf.color(font_id, *self.color, self.alpha) - blf.draw(font_id, "ABC") - - class ExtrusionWidget(types.GizmoGroup): bl_idname = "bim.extrusion_widget" bl_label = "Extrusion Gizmos" @@ -492,9 +2067,11 @@ class ExtrusionWidget(types.GizmoGroup): def setup(self, context: bpy.types.Context) -> None: target = context.object - assert target + if not target: + return mesh = target.data - assert isinstance(mesh, bpy.types.Mesh) + if not isinstance(mesh, bpy.types.Mesh): + return prop = tool.Geometry.get_mesh_props(mesh).ifc_parameters.get("IfcExtrudedAreaSolid/Depth") basis = target.matrix_world.normalized() @@ -521,16 +2098,11 @@ class ExtrusionWidget(types.GizmoGroup): gz.target_set_prop("depth", prop, "value") gz.scale_value = scale_value - # gz = self.label = self.gizmos.new('GIZMO_GT_dimension_label') - # gz.matrix_basis = basis - # gz.color = tuple(theme.gizmo_secondary) - # gz.alpha = 0.5 - # gz.use_draw_modal = True - # gz.target_set_prop('value', target.demo, 'depth') - def refresh(self, context: bpy.types.Context) -> None: """updating gizmos""" target = context.active_object + if not target: + return basis = target.matrix_world.normalized() self.handle.matrix_basis = basis self.guides.matrix_basis = basis @@ -539,10 +2111,14 @@ class ExtrusionWidget(types.GizmoGroup): """updating object""" bpy.ops.bim.update_parametric_representation() target = context.active_object - assert target + if not target: + return mesh = target.data - assert isinstance(mesh, bpy.types.Mesh) + if not isinstance(mesh, bpy.types.Mesh): + return prop = tool.Geometry.get_mesh_props(mesh).ifc_parameters.get("IfcExtrudedAreaSolid/Depth") + if prop is None: + return self.handle.target_set_prop("offset", prop, "value") self.guides.target_set_prop("depth", prop, "value") @@ -568,3 +2144,2710 @@ class ExtrusionWidget(types.GizmoGroup): elif length_unit == "THOU": scale_value /= si_conversions["thou"] return scale_value + + +# ============================================================================ +# Core Gizmo Classes +# ============================================================================ + + +class BIM_OT_gizmo_value_input(bpy.types.Operator): + """Enter a numeric value for a gizmo property. Click or Enter to confirm, ESC to cancel.""" + + bl_idname = "bim.gizmo_value_input" + bl_label = "Gizmo Value Input" + bl_options = {"REGISTER", "UNDO", "INTERNAL"} + + prop_name: bpy.props.StringProperty(name="Property Name", default="Value") + init_value: bpy.props.FloatProperty(name="Initial Value", default=0.0) + invert_delta: bpy.props.BoolProperty(name="Invert Delta", default=False) + + def invoke(self, context, event): + self._keyboard_input = NumericInputState.create_default() + self._move_set_cb = _gizmo_modal_context.move_set_cb + self._active_gizmo = _gizmo_modal_context.active_gizmo + self._gizmo_group = _gizmo_modal_context.gizmo_group + self._hidden_gizmos: list[bpy.types.Gizmo] = [] + self._original_color: tuple[float, float, float] | None = None + + self._start_location: Vector = _gizmo_modal_context.start_location or Vector() + self._axis_direction: Vector = _gizmo_modal_context.axis_direction or Vector((0, 0, 1)) + self._active_obj: bpy.types.Object | None = _gizmo_modal_context.active_obj + self._delta_scale: float = _gizmo_modal_context.delta_scale + self._click_offset: float = _gizmo_modal_context.click_offset + self._mouse_delta: float = 0.0 + + self._initial_snap_state: bool = context.scene.tool_settings.use_snap + self._snap_cache_built: bool = False + self._is_snapping: bool = False + + self._hide_other_gizmos() + self._set_highlight_color() + + context.window_manager.modal_handler_add(self) + self._update_header(context) + return {"RUNNING_MODAL"} + + def _set_highlight_color(self) -> None: + if not self._active_gizmo: + return + self._original_color = tuple(self._active_gizmo.color) + self._active_gizmo.color = self._active_gizmo.color_highlight + + def _restore_color(self) -> None: + if self._active_gizmo and self._original_color: + self._active_gizmo.color = self._original_color + + def _hide_other_gizmos(self) -> None: + if not self._gizmo_group or not self._active_gizmo: + return + + hidden_set: set[bpy.types.Gizmo] = set() + for gizmo in self._gizmo_group.gizmos: + if gizmo != self._active_gizmo: + gizmo.hide = True + hidden_set.add(gizmo) + self._hidden_gizmos.append(gizmo) + + _gizmo_modal_context.hidden_gizmos = hidden_set + + def _restore_gizmo_visibility(self) -> None: + _gizmo_modal_context.hidden_gizmos = None + for gizmo in self._hidden_gizmos: + gizmo.hide = False + self._hidden_gizmos.clear() + + def modal(self, context, event): + kb = self._keyboard_input + + if event.value == "PRESS" and event.ascii and event.ascii.lower() in NUMERIC_INPUT_CHARS: + kb.characters.append(event.ascii) + kb.is_active = True + kb.parse() + self._apply_value() + self._update_header(context) + return {"RUNNING_MODAL"} + + if event.type == "BACK_SPACE" and event.value == "PRESS": + if kb.characters: + kb.characters.pop() + kb.parse() + self._apply_value() + self._update_header(context) + return {"RUNNING_MODAL"} + + if event.type in {"RET", "NUMPAD_ENTER"} and event.value == "PRESS": + if kb.is_valid: + self._apply_value() + self._cleanup(context) + return {"FINISHED"} + + if event.type == "LEFTMOUSE" and event.value == "PRESS": + if kb.characters: + if kb.is_valid: + self._apply_value() + self._cleanup(context) + return {"FINISHED"} + self._cleanup(context) + return {"CANCELLED"} + + if event.type == "ESC" and event.value == "PRESS": + if self._move_set_cb: + self._move_set_cb(self.init_value) + self._cleanup(context) + return {"CANCELLED"} + + if event.type == "RIGHTMOUSE" and event.value == "PRESS": + if self._move_set_cb: + self._move_set_cb(self.init_value) + self._cleanup(context) + return {"CANCELLED"} + + if event.type == "MOUSEMOVE" and not kb.characters: + self._handle_mouse_move(context, event) + return {"RUNNING_MODAL"} + + return {"RUNNING_MODAL"} + + def _handle_mouse_move(self, context, event) -> None: + region = context.region + rv3d = context.region_data + tool_settings = context.scene.tool_settings + if not region or not rv3d: + return + + self._is_snapping = not self._initial_snap_state if event.ctrl else self._initial_snap_state + + if self._is_snapping and not self._snap_cache_built and self._active_obj: + build_snap_cache(context, self._active_obj) + self._snap_cache_built = True + + current_coord = (event.mouse_region_x, event.mouse_region_y) + view_origin = region_2d_to_origin_3d(region, rv3d, current_coord) + view_direction = region_2d_to_vector_3d(region, rv3d, current_coord) + + result = intersect_line_line( + view_origin, + view_origin + view_direction * RAY_CAST_DISTANCE, + self._start_location, + self._start_location + self._axis_direction * RAY_CAST_DISTANCE, + ) + current_3d = result[1] if result else self._start_location + + delta = (current_3d - self._start_location).dot(self._axis_direction) + + # Snap the dimension tip (not mouse position) to nearby vertices + if self._is_snapping and self._active_obj: + tip_3d = current_3d - self._axis_direction * self._click_offset + + original_snap = tool_settings.use_snap + tool_settings.use_snap = True + snapped_tip = snap_to_mesh(tip_3d, context, self._active_obj, current_coord) + tool_settings.use_snap = original_snap + + if snapped_tip != tip_3d: + # snap_to_mesh may return a tuple from the cache, ensure it's a Vector + snapped_tip_vec = Vector(snapped_tip) if not isinstance(snapped_tip, Vector) else snapped_tip + delta = (snapped_tip_vec - self._start_location).dot(self._axis_direction) + self._click_offset + set_snap_point(snapped_tip) + else: + clear_snap_point() + else: + clear_snap_point() + + if event.shift: + delta *= PRECISION_MODE_MULTIPLIER + + if self.invert_delta: + delta = -delta + + delta *= self._delta_scale + self._mouse_delta = delta + + if self._move_set_cb: + self._move_set_cb(self.init_value + delta) + + self._update_header(context) + + def _apply_value(self) -> None: + if not self._move_set_cb or not self._keyboard_input.is_valid: + return + final_value = self._keyboard_input.calculate_final_value(self.init_value, self.invert_delta) + self._move_set_cb(final_value) + + def _update_header(self, context) -> None: + if not context.area: + return + kb = self._keyboard_input + + if kb.characters: + input_str = kb.get_input_string() + preview = kb.calculate_final_value(self.init_value, self.invert_delta) + validity = "" if kb.is_valid else " [invalid]" + header = f"{self.prop_name}: {preview:.3f}m | Input: {input_str}_{validity}" + header += " | Click/Enter: Confirm | ESC: Cancel" + else: + current_value = self.init_value + self._mouse_delta + header = f"{self.prop_name}: {current_value:.3f}m" + hints = [] + if self._is_snapping: + hints.append("Snapping: ON") + hints.extend(["Ctrl: Snap", "Shift: Precision", "Type: Enter Value"]) + header += " | " + " | ".join(hints) + header += " | Click/Enter: Confirm | ESC: Cancel" + + context.area.header_text_set(header) + + def _cleanup(self, context) -> None: + try: + if context.area: + context.area.header_text_set(None) + finally: + try: + self._restore_color() + finally: + try: + self._restore_gizmo_visibility() + if self._gizmo_group and hasattr(self._gizmo_group, "refresh"): + self._gizmo_group.refresh(context) + if context.area: + context.area.tag_redraw() + finally: + clear_snap_point() + clear_snap_cache() + _gizmo_modal_context.clear() + + +class GizmoMovable(bpy.types.Gizmo): + """Base class for draggable gizmos. Ctrl: snap, Shift: precision, Keyboard: direct input. + + Click without dragging enters a keyboard-only input mode for accessibility. + """ + + __slots__ = ( + "custom_shape", + "init_value", + "move_get_cb", + "move_set_cb", + "axis", + "local_axis", + "start_location", + "active_obj", + "initial_snap_state", + "invert_delta", + "delta_scale", + "prop_name", + "keyboard_input", + "gizmo_group", + "_snap_cache_built", + "_start_mouse_pos", + "_has_dragged", + ) + + # Class-level cached shader (created once, reused across all instances) + _cached_tri_shader = None + + @classmethod + def _get_tri_shader(cls): + """Get cached UNIFORM_COLOR shader for triangles.""" + if cls._cached_tri_shader is None: + cls._cached_tri_shader = gpu.shader.from_builtin("UNIFORM_COLOR") + return cls._cached_tri_shader + + # Threshold in pixels for considering mouse movement as a drag + DRAG_THRESHOLD = 5 + + def invoke(self, context: bpy.types.Context, event: bpy.types.Event) -> set: + self.init_value = self.move_get_cb() if self.move_get_cb else 0.0 + self.start_location = self.matrix_basis.translation.copy() + self.active_obj = context.active_object + self.initial_snap_state = context.scene.tool_settings.use_snap + self.keyboard_input = NumericInputState.create_default() + self._snap_cache_built = False + self._start_mouse_pos = (event.mouse_region_x, event.mouse_region_y) + self._has_dragged = False + if not hasattr(self, "prop_name") or self.prop_name is None: + self.prop_name = "Value" + prop_name = getattr(self, "prop_name", "Value") + bpy.ops.ed.undo_push(message=f"Gizmo: {prop_name}") + if self.initial_snap_state and self.active_obj: + build_snap_cache(context, self.active_obj) + self._snap_cache_built = True + + self._hide_other_gizmos() + + return {"RUNNING_MODAL"} + + def _hide_other_gizmos(self) -> None: + """Hide all other gizmos in the group during interaction.""" + gizmo_group = getattr(self, "gizmo_group", None) + if not gizmo_group: + return + + hidden_set: set[bpy.types.Gizmo] = set() + for gizmo in gizmo_group.gizmos: + if gizmo != self: + gizmo.hide = True + hidden_set.add(gizmo) + + _gizmo_modal_context.hidden_gizmos = hidden_set + + def _restore_gizmo_visibility(self) -> None: + """Restore visibility of gizmos hidden during interaction.""" + _gizmo_modal_context.hidden_gizmos = None + + def exit(self, context: bpy.types.Context, cancel: bool) -> None: + if context.area: + context.area.header_text_set(None) + if hasattr(self, "keyboard_input"): + self.keyboard_input.reset() + + should_invoke_keyboard = ( + not cancel and hasattr(self, "_has_dragged") and not self._has_dragged and self.move_set_cb is not None + ) + + if should_invoke_keyboard: + _gizmo_modal_context.move_set_cb = self.move_set_cb + _gizmo_modal_context.active_gizmo = self + _gizmo_modal_context.gizmo_group = getattr(self, "gizmo_group", None) + _gizmo_modal_context.start_location = self.start_location.copy() + _gizmo_modal_context.axis_direction = self.get_axis_direction() + _gizmo_modal_context.active_obj = self.active_obj + _gizmo_modal_context.delta_scale = getattr(self, "delta_scale", 1.0) + bpy.ops.bim.gizmo_value_input( + "INVOKE_DEFAULT", + prop_name=getattr(self, "prop_name", "Value"), + init_value=self.init_value, + invert_delta=getattr(self, "invert_delta", False), + ) + elif cancel and self.move_set_cb: + self.move_set_cb(self.init_value) + + if not should_invoke_keyboard: + self._restore_gizmo_visibility() + + if hasattr(self, "initial_snap_state"): + context.scene.tool_settings.use_snap = self.initial_snap_state + clear_snap_point() + clear_snap_cache() + + def get_axis_direction(self) -> Vector: + """Get the world-space axis direction, transforming local_axis if set.""" + if hasattr(self, "local_axis") and self.active_obj: + obj_rotation = self.active_obj.matrix_world.to_3x3() + axis_direction: Vector = obj_rotation @ self.local_axis + axis_direction.normalize() + return axis_direction + return self.axis + + def modal(self, context: bpy.types.Context, event: bpy.types.Event, tweak) -> set: + region = context.region + rv3d = context.region_data + tool_settings = context.scene.tool_settings + + keyboard_result = self._handle_keyboard_input(context, event) + if keyboard_result is not None: + return keyboard_result + + if self.keyboard_input.is_active: + return {"RUNNING_MODAL"} + + if not region or not rv3d: + return {"RUNNING_MODAL"} + + tool_settings.use_snap = not self.initial_snap_state if event.ctrl else self.initial_snap_state + + if tool_settings.use_snap and not self._snap_cache_built and self.active_obj: + build_snap_cache(context, self.active_obj) + self._snap_cache_built = True + + current_coord = (event.mouse_region_x, event.mouse_region_y) + + if not self._has_dragged and hasattr(self, "_start_mouse_pos"): + dx = current_coord[0] - self._start_mouse_pos[0] + dy = current_coord[1] - self._start_mouse_pos[1] + if (dx * dx + dy * dy) > (self.DRAG_THRESHOLD**2): + self._has_dragged = True + view_origin = region_2d_to_origin_3d(region, rv3d, current_coord) + view_direction = region_2d_to_vector_3d(region, rv3d, current_coord) + + axis_direction = self.get_axis_direction() + + result = intersect_line_line( + view_origin, + view_origin + view_direction * RAY_CAST_DISTANCE, + self.start_location, + self.start_location + axis_direction * RAY_CAST_DISTANCE, + ) + current_3d = result[1] if result else self.start_location + + delta = (current_3d - self.start_location).dot(axis_direction) + + if tool_settings.use_snap and self.active_obj: + snapped_pos = snap_to_mesh(current_3d, context, self.active_obj, current_coord) + if snapped_pos != current_3d: + # snap_to_mesh may return a tuple from the cache, ensure it's a Vector + snapped_pos_vec = Vector(snapped_pos) if not isinstance(snapped_pos, Vector) else snapped_pos + delta = (snapped_pos_vec - self.start_location).dot(axis_direction) + set_snap_point(snapped_pos) + else: + clear_snap_point() + else: + clear_snap_point() + + if event.shift: + delta *= PRECISION_MODE_MULTIPLIER + + if getattr(self, "invert_delta", False): + delta = -delta + + delta_scale = getattr(self, "delta_scale", 1.0) + delta *= delta_scale + + kb = self.keyboard_input + final_delta = kb.parsed_value if kb.parsed_value != 0.0 else delta + + if self.move_set_cb: + self.move_set_cb(self.init_value + final_delta) + + self._update_header(context, self.init_value + final_delta, tool_settings.use_snap, event.shift) + + return {"RUNNING_MODAL"} + + def _handle_keyboard_input(self, context: bpy.types.Context, event: bpy.types.Event) -> set[str] | None: + """Handle keyboard numeric input.""" + kb = self.keyboard_input + + if event.value == "PRESS" and event.ascii and event.ascii.lower() in NUMERIC_INPUT_CHARS: + kb.characters.append(event.ascii) + kb.is_active = True + kb.parse() + self._apply_keyboard_value() + self._update_header_typing(context) + return {"RUNNING_MODAL"} + + if event.type == "BACK_SPACE" and event.value == "PRESS": + if kb.characters: + kb.characters.pop() + kb.parse() + self._apply_keyboard_value() + self._update_header_typing(context) + elif kb.is_active: + kb.reset() + if self.move_set_cb: + self.move_set_cb(self.init_value) + return {"RUNNING_MODAL"} + + if event.type in {"RET", "NUMPAD_ENTER"} and event.value == "PRESS": + if kb.is_active and kb.is_valid: + final_value = kb.calculate_final_value(self.init_value, getattr(self, "invert_delta", False)) + kb.characters.clear() + kb.is_active = False + self._update_header(context, final_value, False, False) + return {"RUNNING_MODAL"} + + if event.type == "ESC" and event.value == "PRESS" and kb.is_active: + kb.reset() + if self.move_set_cb: + self.move_set_cb(self.init_value) + return {"RUNNING_MODAL"} + + return None + + def _apply_keyboard_value(self) -> None: + kb = self.keyboard_input + if self.move_set_cb and kb.is_valid: + final_value = kb.calculate_final_value(self.init_value, getattr(self, "invert_delta", False)) + self.move_set_cb(final_value) + + def _update_header_typing(self, context: bpy.types.Context) -> None: + if not context.area: + return + kb = self.keyboard_input + input_str = kb.get_input_string() + preview = kb.calculate_final_value(self.init_value, getattr(self, "invert_delta", False)) + + validity = "" if kb.is_valid else " [invalid]" + prop_display = getattr(self, "prop_name", "Value") + + header = f"{prop_display}: {preview:.3f}m | Input: {input_str}_{validity}" + header += " | Enter: Confirm | Backspace: Delete | ESC: Cancel" + context.area.header_text_set(header) + + def _update_header(self, context: bpy.types.Context, value: float, is_snapping: bool, is_precision: bool) -> None: + if not context.area: + return + prop_display = getattr(self, "prop_name", "Value") + hints = [] + if is_snapping: + hints.append("Snapping: ON") + if is_precision: + hints.append("Precision (0.1x)") + hints.extend(["Ctrl: Snap", "Shift: Precision", "Type: Enter Value"]) + + header_text = f"{prop_display}: {value:.3f}m | " + " | ".join(hints) + context.area.header_text_set(header_text) + + def draw_property_tooltip(self, context: bpy.types.Context) -> None: + """Draw a tooltip showing the property name near the gizmo when highlighted.""" + if not self.is_highlight: + return + if not hasattr(self, "prop_name") or not self.prop_name: + return + + region = context.region + rv3d = context.region_data + if not region or not rv3d: + return + + gizmo_pos = self.matrix_basis.translation + screen_pos = location_3d_to_region_2d(region, rv3d, gizmo_pos) + if not screen_pos: + return + + prop_display = self.prop_name.replace("_", " ").title() + + font_id = 0 + font_size = tool.Blender.scale_font_size(10) + blf.size(font_id, font_size) + blf.enable(font_id, blf.SHADOW) + blf.shadow(font_id, 6, 0, 0, 0, 1) + + text_width, text_height = blf.dimensions(font_id, prop_display) + + tooltip_x = screen_pos[0] + 15 + tooltip_y = screen_pos[1] + 15 + + with GPUStateScope(depth_test="NONE", blend="ALPHA", ortho_2d=(region.width, region.height)): + padding = 3 + theme = context.preferences.themes.items()[0][1] + bg_color = (*theme.user_interface.wcol_menu_back.inner[:3], 0.7) + + vertices = [ + (tooltip_x - padding, tooltip_y - padding), + (tooltip_x + text_width + padding, tooltip_y - padding), + (tooltip_x + text_width + padding, tooltip_y + text_height + padding), + (tooltip_x - padding, tooltip_y + text_height + padding), + ] + indices = [(0, 1, 2), (0, 2, 3)] + + shader = self._get_tri_shader() + shader.bind() + batch = batch_for_shader(shader, "TRIS", {"pos": vertices}, indices=indices) + shader.uniform_float("color", bg_color) + batch.draw(shader) + + blf.color(font_id, self.color_highlight[0], self.color_highlight[1], self.color_highlight[2], 1.0) + blf.position(font_id, tooltip_x, tooltip_y, 0) + blf.draw(font_id, prop_display) + + blf.disable(font_id, blf.SHADOW) + + +class GizmoLock(bpy.types.Gizmo): + """Lock icon gizmo that switches between closed and open states.""" + + bl_idname = "VIEW3D_GT_lock" + + __slots__ = ( + "custom_shape_closed", + "custom_shape_open", + "prop_path", + ) + + tris_closed = ( + (-0.12838619947433472, 1.3143587112426758, 0.0), + (0.025773197412490845, 1.411454677581787, 0.0), + (-0.0144234299659729, 1.541273593902588, 0.0), + (-0.0144234299659729, 1.541273593902588, 0.0), + (0.025773197412490845, 1.411454677581787, 0.0), + (0.20782703161239624, 1.4184625148773193, 0.0), + (0.23792517185211182, 1.5509872436523438, 0.0), + (0.20782703161239624, 1.4184625148773193, 0.0), + (0.3689943850040436, 1.3335046768188477, 0.0), + (0.4613226056098938, 1.433225393295288, 0.0), + (0.3689943850040436, 1.3335046768188477, 0.0), + (0.4660903215408325, 1.1793451309204102, 0.0), + (0.5959094166755676, 1.2195416688919067, 0.0), + (0.4660903215408325, 1.1793451309204102, 0.0), + (0.47309836745262146, 0.997291088104248, 0.0), + (0.6056233048439026, 0.9671931266784668, 0.0), + (0.47309836745262146, 0.997291088104248, 0.0), + (0.3881405293941498, 0.8361238241195679, 0.0), + (-0.48786139488220215, 0.7437955141067505, 0.0), + (0.48786139488220215, 4.5077928945147505e-08, 0.0), + (0.48786139488220215, 0.7437955141067505, 0.0), + (-0.12838619947433472, 1.3143587112426758, 0.0), + (-0.0144234299659729, 1.541273593902588, 0.0), + (-0.22810709476470947, 1.406686782836914, 0.0), + (-0.0144234299659729, 1.541273593902588, 0.0), + (0.20782703161239624, 1.4184625148773193, 0.0), + (0.23792517185211182, 1.5509872436523438, 0.0), + (0.23792517185211182, 1.5509872436523438, 0.0), + (0.3689943850040436, 1.3335046768188477, 0.0), + (0.4613226056098938, 1.433225393295288, 0.0), + (0.4613226056098938, 1.433225393295288, 0.0), + (0.4660903215408325, 1.1793451309204102, 0.0), + (0.5959094166755676, 1.2195416688919067, 0.0), + (0.5959094166755676, 1.2195416688919067, 0.0), + (0.47309836745262146, 0.997291088104248, 0.0), + (0.6056233048439026, 0.9671931266784668, 0.0), + (0.6056233048439026, 0.9671931266784668, 0.0), + (0.3881405293941498, 0.8361238241195679, 0.0), + (0.48786142468452454, 0.74379563331604, 0.0), + (-0.48786139488220215, 0.7437955141067505, 0.0), + (-0.48786139488220215, 4.5077928945147505e-08, 0.0), + (0.48786139488220215, 4.5077928945147505e-08, 0.0), + ) + + tris_open = ( + (-0.3519617021083832, 0.7437955141067505, 0.0), + (-0.3048076927661896, 0.9197763204574585, 0.0), + (-0.4225003123283386, 0.9877263307571411, 0.0), + (-0.4225003123283386, 0.9877263307571411, 0.0), + (-0.3048076927661896, 0.9197763204574585, 0.0), + (-0.1759808510541916, 1.0486031770706177, 0.0), + (-0.24393069744110107, 1.1662957668304443, 0.0), + (-0.1759808510541916, 1.0486031770706177, 0.0), + (2.9078805141580233e-08, 1.0957571268081665, 0.0), + (2.9078805141580233e-08, 1.2316569089889526, 0.0), + (2.9078805141580233e-08, 1.0957571268081665, 0.0), + (0.1759808510541916, 1.0486031770706177, 0.0), + (0.243930846452713, 1.1662957668304443, 0.0), + (0.1759808510541916, 1.0486031770706177, 0.0), + (0.30480796098709106, 0.9197763204574585, 0.0), + (0.4225005805492401, 0.9877263307571411, 0.0), + (0.30480796098709106, 0.9197763204574585, 0.0), + (0.35196200013160706, 0.7437955141067505, 0.0), + (-0.48786139488220215, 0.7437955141067505, 0.0), + (0.48786139488220215, 4.5077928945147505e-08, 0.0), + (0.48786139488220215, 0.7437955141067505, 0.0), + (-0.3519617021083832, 0.7437955141067505, 0.0), + (-0.4225003123283386, 0.9877263307571411, 0.0), + (-0.48786139488220215, 0.7437955141067505, 0.0), + (-0.4225003123283386, 0.9877263307571411, 0.0), + (-0.1759808510541916, 1.0486031770706177, 0.0), + (-0.24393069744110107, 1.1662957668304443, 0.0), + (-0.24393069744110107, 1.1662957668304443, 0.0), + (2.9078805141580233e-08, 1.0957571268081665, 0.0), + (2.9078805141580233e-08, 1.2316569089889526, 0.0), + (2.9078805141580233e-08, 1.2316569089889526, 0.0), + (0.1759808510541916, 1.0486031770706177, 0.0), + (0.243930846452713, 1.1662957668304443, 0.0), + (0.243930846452713, 1.1662957668304443, 0.0), + (0.30480796098709106, 0.9197763204574585, 0.0), + (0.4225005805492401, 0.9877263307571411, 0.0), + (0.4225005805492401, 0.9877263307571411, 0.0), + (0.35196200013160706, 0.7437955141067505, 0.0), + (0.487861692905426, 0.74379563331604, 0.0), + (-0.48786139488220215, 0.7437955141067505, 0.0), + (-0.48786139488220215, 4.5077928945147505e-08, 0.0), + (0.48786139488220215, 4.5077928945147505e-08, 0.0), + ) + + def get_custom_shape(self, context: bpy.types.Context) -> object: + """Get the appropriate custom shape based on lock state.""" + obj = context.active_object + if not obj: + return self.custom_shape_closed + + try: + is_open = obj.path_resolve(self.prop_path) + return self.custom_shape_open if is_open else self.custom_shape_closed + except (ValueError, KeyError, AttributeError): + return self.custom_shape_closed + + def setup(self) -> None: + self.custom_shape_closed = self.new_custom_shape("TRIS", self.tris_closed) + self.custom_shape_open = self.new_custom_shape("TRIS", self.tris_open) + + def draw(self, context: bpy.types.Context) -> None: + self.draw_custom_shape(self.get_custom_shape(context)) + + def draw_select(self, context: bpy.types.Context, select_id: int) -> None: + self.draw_custom_shape(self.get_custom_shape(context), select_id=select_id) + + +class GizmoArc(bpy.types.Gizmo): + """Arc gizmo for door swing visualization.""" + + bl_idname = "VIEW3D_GT_arc" + + __slots__ = ( + "custom_shape_left", + "custom_shape_right", + "prop_path", + ) + + def setup(self) -> None: + """Create arc shapes for LEFT and RIGHT directions.""" + arc_left = create_circle_arc(radius=1.0, direction="LEFT", angle_min=2.0, angle_max=90.0) + arc_right = create_circle_arc(radius=1.0, direction="RIGHT", angle_min=2.0, angle_max=90.0) + + self.custom_shape_left = self.new_custom_shape(type="TRIS", verts=arc_left) + self.custom_shape_right = self.new_custom_shape(type="TRIS", verts=arc_right) + + def _get_shape_for_direction(self, context: bpy.types.Context) -> object: + """Get arc shape based on door swing direction.""" + obj = context.active_object + if not obj: + return self.custom_shape_left + + try: + direction_value = obj.path_resolve(self.prop_path) + if "RIGHT" in str(direction_value): + return self.custom_shape_right + except (ValueError, KeyError, AttributeError): + pass + + return self.custom_shape_left + + def draw(self, context: bpy.types.Context) -> None: + self.draw_custom_shape(self._get_shape_for_direction(context)) + + def draw_select(self, context: bpy.types.Context, select_id: int) -> None: + self.draw_custom_shape(self._get_shape_for_direction(context), select_id=select_id) + + +class GizmoPen(bpy.types.Gizmo): + """Pen/edit icon gizmo for entering edit mode.""" + + bl_idname = "VIEW3D_GT_pen" + + __slots__ = ("custom_shape",) + + tris = ( + (-0.07595771551132202, -0.2948460578918457, 0.0), + (0.16886109113693237, 0.23203276097774506, 0.0), + (0.062240585684776306, 0.28157487511634827, 0.0), + (0.07201281189918518, 0.30260589718818665, 0.0), + (0.21042980253696442, 0.321493536233902, 0.0), + (0.17863331735134125, 0.25306373834609985, 0.0), + (0.062240585684776306, 0.28157487511634827, 0.0), + (-0.1825782209634781, -0.2453039139509201, 0.0), + (-0.07595771551132202, -0.2948460578918457, 0.0), + (-0.1825782209634781, -0.2453039139509201, 0.0), + (-0.19114767014980316, -0.4032624065876007, 0.0), + (-0.07595771551132202, -0.2948460578918457, 0.0), + (0.07201281189918518, 0.30260589718818665, 0.0), + (0.10380929708480835, 0.371035635471344, 0.0), + (0.21042980253696442, 0.321493536233902, 0.0), + ) + + def setup(self) -> None: + self.custom_shape = self.new_custom_shape("TRIS", self.tris) + + def draw(self, context: bpy.types.Context) -> None: + self.draw_custom_shape(self.custom_shape) + + def draw_select(self, context: bpy.types.Context, select_id: int) -> None: + self.draw_custom_shape(self.custom_shape, select_id=select_id) + + +class GizmoValidate(bpy.types.Gizmo): + """Validate/checkmark icon gizmo for confirming edits.""" + + bl_idname = "VIEW3D_GT_validate" + + __slots__ = ("custom_shape",) + + tris = ( + (0.36775994300842285, 0.205583393573761, 0.0), + (0.030080009251832962, -0.1881658434867859, 0.0), + (0.030080009251832962, -0.3380376696586609, 0.0), + (-0.22017201781272888, -0.16090886294841766, 0.0), + (0.030080009251832962, -0.1881658434867859, 0.0), + (-0.22017201781272888, -0.011037036776542664, 0.0), + (0.36775994300842285, 0.205583393573761, 0.0), + (0.36775994300842285, 0.355455219745636, 0.0), + (0.030080009251832962, -0.1881658434867859, 0.0), + (-0.22017201781272888, -0.16090886294841766, 0.0), + (0.030080009251832962, -0.3380376696586609, 0.0), + (0.030080009251832962, -0.1881658434867859, 0.0), + ) + + def setup(self) -> None: + self.custom_shape = self.new_custom_shape("TRIS", self.tris) + + def draw(self, context: bpy.types.Context) -> None: + self.draw_custom_shape(self.custom_shape) + + def draw_select(self, context: bpy.types.Context, select_id: int) -> None: + self.draw_custom_shape(self.custom_shape, select_id=select_id) + + +class GizmoCancel(bpy.types.Gizmo): + """Cancel/X icon gizmo for canceling edits.""" + + bl_idname = "VIEW3D_GT_cancel" + + __slots__ = ("custom_shape",) + + tris = ( + (0.0, 0.048707593232393265, 0.0), + (0.0, -0.048707593232393265, 0.0), + (0.048707593232393265, 0.0, 0.0), + (0.0, 0.048707593232393265, 0.0), + (-0.21918421983718872, 0.2678918242454529, 0.0), + (-0.048707593232393265, 0.0, 0.0), + (-0.21918421983718872, 0.2678918242454529, 0.0), + (-0.2678918242454529, 0.21918421983718872, 0.0), + (-0.048707593232393265, 0.0, 0.0), + (-0.048707593232393265, 0.0, 0.0), + (-0.2678918242454529, -0.21918421983718872, 0.0), + (-0.21918421983718872, -0.2678918242454529, 0.0), + (0.2678918242454529, 0.21918421983718872, 0.0), + (0.21918421983718872, 0.2678918242454529, 0.0), + (0.0, 0.048707593232393265, 0.0), + (0.21918421983718872, -0.2678918242454529, 0.0), + (0.2678918242454529, -0.21918421983718872, 0.0), + (0.048707593232393265, 0.0, 0.0), + (0.048707593232393265, 0.0, 0.0), + (0.2678918242454529, 0.21918421983718872, 0.0), + (0.0, 0.048707593232393265, 0.0), + (0.0, 0.048707593232393265, 0.0), + (-0.048707593232393265, 0.0, 0.0), + (0.0, -0.048707593232393265, 0.0), + (-0.048707593232393265, 0.0, 0.0), + (-0.21918421983718872, -0.2678918242454529, 0.0), + (0.0, -0.048707593232393265, 0.0), + (0.0, -0.048707593232393265, 0.0), + (0.21918421983718872, -0.2678918242454529, 0.0), + (0.048707593232393265, 0.0, 0.0), + ) + + def setup(self) -> None: + self.custom_shape = self.new_custom_shape("TRIS", self.tris) + + def draw(self, context: bpy.types.Context) -> None: + self.draw_custom_shape(self.custom_shape) + + def draw_select(self, context: bpy.types.Context, select_id: int) -> None: + self.draw_custom_shape(self.custom_shape, select_id=select_id) + + +class GizmoPlus(bpy.types.Gizmo): + """Plus icon gizmo for incrementing values.""" + + bl_idname = "VIEW3D_GT_plus" + + __slots__ = ("custom_shape",) + + tris = ( + (-0.375, -0.075, 0.0), + (-0.375, 0.075, 0.0), + (0.375, 0.075, 0.0), + (-0.375, -0.075, 0.0), + (0.375, 0.075, 0.0), + (0.375, -0.075, 0.0), + (-0.075, -0.375, 0.0), + (-0.075, 0.375, 0.0), + (0.075, 0.375, 0.0), + (-0.075, -0.375, 0.0), + (0.075, 0.375, 0.0), + (0.075, -0.375, 0.0), + ) + + def setup(self) -> None: + self.custom_shape = self.new_custom_shape("TRIS", self.tris) + + def draw(self, context: bpy.types.Context) -> None: + self.draw_custom_shape(self.custom_shape) + + def draw_select(self, context: bpy.types.Context, select_id: int) -> None: + self.draw_custom_shape(self.custom_shape, select_id=select_id) + + +class GizmoMinus(bpy.types.Gizmo): + """Minus icon gizmo for decrementing values.""" + + bl_idname = "VIEW3D_GT_minus" + + __slots__ = ("custom_shape",) + + tris = ( + (-0.375, -0.075, 0.0), + (-0.375, 0.075, 0.0), + (0.375, 0.075, 0.0), + (-0.375, -0.075, 0.0), + (0.375, 0.075, 0.0), + (0.375, -0.075, 0.0), + ) + + def setup(self) -> None: + self.custom_shape = self.new_custom_shape("TRIS", self.tris) + + def draw(self, context: bpy.types.Context) -> None: + self.draw_custom_shape(self.custom_shape) + + def draw_select(self, context: bpy.types.Context, select_id: int) -> None: + self.draw_custom_shape(self.custom_shape, select_id=select_id) + + +def _generate_circular_arrow_tris() -> tuple[tuple[float, float, float], ...]: + """Generate circular arrow geometry covering ~300 degrees.""" + triangles = [] + radius = 0.375 + line_width = 0.10 + half_width = line_width / 2 + + segments = 20 + start_angle = math.radians(30) + end_angle = math.radians(330) + angle_range = end_angle - start_angle + + arc_points = [] + for i in range(segments + 1): + angle = start_angle + angle_range * (i / segments) + x = radius * math.cos(angle) + y = radius * math.sin(angle) + arc_points.append((x, y)) + + for i in range(len(arc_points) - 1): + x1, y1 = arc_points[i] + x2, y2 = arc_points[i + 1] + + dx, dy = x2 - x1, y2 - y1 + length = (dx**2 + dy**2) ** 0.5 + if length > 0: + px, py = -dy / length * half_width, dx / length * half_width + + triangles.extend( + [ + (x1 + px, y1 + py, 0.0), + (x1 - px, y1 - py, 0.0), + (x2 + px, y2 + py, 0.0), + ] + ) + triangles.extend( + [ + (x2 + px, y2 + py, 0.0), + (x1 - px, y1 - py, 0.0), + (x2 - px, y2 - py, 0.0), + ] + ) + + triangles.extend( + [ + (x1, y1, -half_width), + (x2, y2, -half_width), + (x1, y1, +half_width), + ] + ) + triangles.extend( + [ + (x1, y1, +half_width), + (x2, y2, -half_width), + (x2, y2, +half_width), + ] + ) + + arrow_size = 0.30 + end_x, end_y = arc_points[-1] + prev_x, prev_y = arc_points[-2] + tangent_x = end_x - prev_x + tangent_y = end_y - prev_y + tangent_len = (tangent_x**2 + tangent_y**2) ** 0.5 + if tangent_len > 0: + tangent_x /= tangent_len + tangent_y /= tangent_len + + tip_x = end_x + tangent_x * arrow_size * 0.5 + tip_y = end_y + tangent_y * arrow_size * 0.5 + + perp_x = -tangent_y * arrow_size + perp_y = tangent_x * arrow_size + + triangles.extend( + [ + (tip_x, tip_y, 0.0), + (end_x - perp_x * 0.5, end_y - perp_y * 0.5, 0.0), + (end_x + perp_x * 0.5, end_y + perp_y * 0.5, 0.0), + ] + ) + + triangles.extend( + [ + (tip_x, tip_y, 0.0), + (end_x, end_y, -arrow_size * 0.5), + (end_x, end_y, +arrow_size * 0.5), + ] + ) + + return tuple(triangles) + + +class GizmoCycle(bpy.types.Gizmo): + """Circular arrow icon gizmo for cycling through enum values.""" + + bl_idname = "VIEW3D_GT_cycle" + + __slots__ = ("custom_shape",) + + tris = _generate_circular_arrow_tris() + + def setup(self) -> None: + self.custom_shape = self.new_custom_shape("TRIS", self.tris) + + def draw(self, context: bpy.types.Context) -> None: + self.draw_custom_shape(self.custom_shape) + + def draw_select(self, context: bpy.types.Context, select_id: int) -> None: + self.draw_custom_shape(self.custom_shape, select_id=select_id) + + +class GizmoArrow(GizmoMovable): + """Arrow gizmo for directional value editing.""" + + bl_idname = "BIM_GT_gizmo_arrow" + bl_target_properties = ({"id": "offset", "type": "FLOAT", "array_length": 1},) + + def _get_arrow_triangles(self) -> tuple[tuple[float, float, float], ...]: + triangles = [] + + triangles.extend( + [ + (0, -ARROW_WIDTH, 0), + (ARROW_SHAFT_LENGTH, -ARROW_WIDTH, 0), + (0, +ARROW_WIDTH, 0), + ] + ) + triangles.extend( + [ + (0, +ARROW_WIDTH, 0), + (ARROW_SHAFT_LENGTH, -ARROW_WIDTH, 0), + (ARROW_SHAFT_LENGTH, +ARROW_WIDTH, 0), + ] + ) + + triangles.extend( + [ + (0, 0, -ARROW_WIDTH), + (ARROW_SHAFT_LENGTH, 0, -ARROW_WIDTH), + (0, 0, +ARROW_WIDTH), + ] + ) + triangles.extend( + [ + (0, 0, +ARROW_WIDTH), + (ARROW_SHAFT_LENGTH, 0, -ARROW_WIDTH), + (ARROW_SHAFT_LENGTH, 0, +ARROW_WIDTH), + ] + ) + + head_width = ARROW_WIDTH * ARROW_HEAD_WIDTH_MULTIPLIER + triangles.extend( + [ + (ARROW_SHAFT_LENGTH, -head_width, 0), + (ARROW_SHAFT_LENGTH + ARROW_HEAD_LENGTH, 0, 0), + (ARROW_SHAFT_LENGTH, +head_width, 0), + ] + ) + + triangles.extend( + [ + (ARROW_SHAFT_LENGTH, 0, -head_width), + (ARROW_SHAFT_LENGTH + ARROW_HEAD_LENGTH, 0, 0), + (ARROW_SHAFT_LENGTH, 0, +head_width), + ] + ) + + for i in range(ARROW_CIRCLE_SEGMENTS): + angle1 = (2 * math.pi * i) / ARROW_CIRCLE_SEGMENTS + angle2 = (2 * math.pi * (i + 1)) / ARROW_CIRCLE_SEGMENTS + + y1 = head_width * math.cos(angle1) + z1 = head_width * math.sin(angle1) + y2 = head_width * math.cos(angle2) + z2 = head_width * math.sin(angle2) + + triangles.extend( + [ + (ARROW_SHAFT_LENGTH, 0, 0), + (ARROW_SHAFT_LENGTH, y1, z1), + (ARROW_SHAFT_LENGTH, y2, z2), + ] + ) + + return tuple(triangles) + + def setup(self) -> None: + self.custom_shape = self.new_custom_shape("TRIS", self._get_arrow_triangles()) + + def draw(self, context: bpy.types.Context) -> None: + self.draw_custom_shape(self.custom_shape) + self.draw_property_tooltip(context) + + def draw_select(self, context: bpy.types.Context, select_id: int) -> None: + self.draw_custom_shape(self.custom_shape, select_id=select_id) + + +class GizmoArrow2D(GizmoMovable): + """Flat 2D arrow that rotates around its axis to face the camera.""" + + bl_idname = "BIM_GT_gizmo_arrow_2d" + bl_target_properties = ({"id": "offset", "type": "FLOAT", "array_length": 1},) + + ARROW_2D_SHAFT_LENGTH = 0.5 + ARROW_2D_HEAD_LENGTH = 0.5 + ARROW_2D_WIDTH = 0.25 + ARROW_2D_HEAD_WIDTH = 0.75 + + def _get_arrow_2d_triangles(self) -> tuple[tuple[float, float, float], ...]: + """Generate flat arrow geometry in XY plane, pointing along +X.""" + shaft = self.ARROW_2D_SHAFT_LENGTH + head = self.ARROW_2D_HEAD_LENGTH + w = self.ARROW_2D_WIDTH / 2 + hw = self.ARROW_2D_HEAD_WIDTH / 2 + + return ( + # Shaft + (0, -w, 0), + (shaft, -w, 0), + (0, w, 0), + (0, w, 0), + (shaft, -w, 0), + (shaft, w, 0), + # Head + (shaft, -hw, 0), + (shaft + head, 0, 0), + (shaft, hw, 0), + ) + + def setup(self) -> None: + self.custom_shape = self.new_custom_shape("TRIS", self._get_arrow_2d_triangles()) + + def draw(self, context: bpy.types.Context) -> None: + self.draw_custom_shape(self.custom_shape) + self.draw_property_tooltip(context) + + def draw_select(self, context: bpy.types.Context, select_id: int) -> None: + self.draw_custom_shape(self.custom_shape, select_id=select_id) + + def draw_prepare(self, context: bpy.types.Context) -> None: + """Rotate around arrow axis to face camera.""" + position = self.matrix_basis.translation + to_camera = get_camera_direction(context, position) + if to_camera is None: + return + + axis_world = Vector(self.matrix_basis.col[0][:3]).normalized() + to_camera_projected = to_camera - axis_world * to_camera.dot(axis_world) + + if to_camera_projected.length_squared < 1e-6: + return + + to_camera_projected.normalize() + + local_z_world = Vector(self.matrix_basis.col[2][:3]).normalized() + local_z_projected = local_z_world - axis_world * local_z_world.dot(axis_world) + + if local_z_projected.length_squared < 1e-6: + return + + local_z_projected.normalize() + + cross = local_z_projected.cross(to_camera_projected) + dot = local_z_projected.dot(to_camera_projected) + sign = 1.0 if cross.dot(axis_world) >= 0 else -1.0 + angle = sign * math.acos(max(-1.0, min(1.0, dot))) + + axis_rot = Matrix.Rotation(angle, 4, "X") + current_scale = self.matrix_offset.to_scale() if self.matrix_offset else Vector((1, 1, 1)) + self.matrix_offset = axis_rot @ Matrix.Scale(current_scale[0], 4) + + +class GizmoCone(GizmoMovable): + """Cone gizmo for directional value editing.""" + + bl_idname = "BIM_GT_gizmo_cone" + bl_target_properties = ({"id": "offset", "type": "FLOAT", "array_length": 1},) + + def _get_cone_triangles(self) -> tuple[tuple[float, float, float], ...]: + triangles = [] + cone_tip_x = CONE_LENGTH + + for i in range(CONE_SEGMENTS): + angle1 = (2 * math.pi * i) / CONE_SEGMENTS + angle2 = (2 * math.pi * (i + 1)) / CONE_SEGMENTS + + y1 = CONE_RADIUS * math.cos(angle1) + z1 = CONE_RADIUS * math.sin(angle1) + y2 = CONE_RADIUS * math.cos(angle2) + z2 = CONE_RADIUS * math.sin(angle2) + + triangles.extend( + [ + (cone_tip_x, 0, 0), + (0, y1, z1), + (0, y2, z2), + ] + ) + + triangles.extend( + [ + (0, 0, 0), + (0, y2, z2), + (0, y1, z1), + ] + ) + + return tuple(triangles) + + def setup(self) -> None: + self.custom_shape = self.new_custom_shape("TRIS", self._get_cone_triangles()) + + def draw(self, context: bpy.types.Context) -> None: + self.draw_custom_shape(self.custom_shape) + + def draw_select(self, context: bpy.types.Context, select_id: int) -> None: + self.draw_custom_shape(self.custom_shape, select_id=select_id) + + +class GizmoDimension(GizmoMovable): + """Dimension line gizmo that displays a measurement with extension lines and text. + + The dimension line is drawn from (0, 0, 0) to (length, 0, 0) in local space, + with extension lines at both ends and a text label showing the formatted value. + Clicking on the dimension line allows editing the value similar to arrow gizmos. + + The arrows, extension lines, and text are drawn in screen space for constant size, + while the main dimension line spans the actual world-space distance. + """ + + bl_idname = "BIM_GT_gizmo_dimension" + bl_target_properties = ({"id": "offset", "type": "FLOAT", "array_length": 1},) + + # Class-level cached shaders (created once, reused across all instances) + _cached_line_shader = None + _cached_tri_shader = None + + @classmethod + def _get_line_shader(cls): + """Get cached POLYLINE_UNIFORM_COLOR shader.""" + if cls._cached_line_shader is None: + cls._cached_line_shader = gpu.shader.from_builtin("POLYLINE_UNIFORM_COLOR") + return cls._cached_line_shader + + @classmethod + def _get_tri_shader(cls): + """Get cached UNIFORM_COLOR shader for triangles.""" + if cls._cached_tri_shader is None: + cls._cached_tri_shader = gpu.shader.from_builtin("UNIFORM_COLOR") + return cls._cached_tri_shader + + __slots__ = ( + "custom_shape", + "init_value", + "move_get_cb", + "move_set_cb", + "axis", + "local_axis", + "start_location", + "active_obj", + "initial_snap_state", + "invert_delta", + "delta_scale", + "prop_name", + "keyboard_input", + "gizmo_group", + "_snap_cache_built", + "_start_mouse_pos", + "_has_dragged", + "_dimension_length", + "_display_value", # Actual value for display (can be negative) + "text_offset_sign", # -1 to offset text below/left, +1 for above/right (default) + "show_start_arrow", # Whether to show arrow at start (origin) of dimension + "show_end_arrow", # Whether to show arrow at end of dimension + "text_alignment", # TextAlignment enum: CENTER (default) or START (left-aligned at offset from line) + "_original_value", # Original property value before interaction + "_click_offset", # Offset from dimension tip to click position (for snap correction) + "show_extension_lines", # Whether to show extension lines at dimension endpoints + ) + + ARROW_SIZE = 10 + EXTENSION_LENGTH = 4 + LINE_WIDTH = 2.0 + MIN_PIXELS_FOR_DETAILS = 35 + HIT_WIDTH = 0.03 + MIN_HIT_LENGTH = 0.05 + + def _get_clickable_shape(self) -> tuple[tuple[float, float, float], ...]: + """Generate a simple clickable bar shape (unit length along X).""" + hw = self.HIT_WIDTH / 2 + return ( + (0, -hw, -hw), + (1, -hw, -hw), + (0, hw, -hw), + (0, hw, -hw), + (1, -hw, -hw), + (1, hw, -hw), + (0, -hw, hw), + (0, hw, hw), + (1, -hw, hw), + (1, -hw, hw), + (0, hw, hw), + (1, hw, hw), + (0, -hw, -hw), + (0, -hw, hw), + (1, -hw, -hw), + (1, -hw, -hw), + (0, -hw, hw), + (1, -hw, hw), + (0, hw, -hw), + (1, hw, -hw), + (0, hw, hw), + (0, hw, hw), + (1, hw, -hw), + (1, hw, hw), + ) + + def setup(self) -> None: + self.custom_shape = self.new_custom_shape("TRIS", self._get_clickable_shape()) + self._dimension_length = 1.0 + self._display_value = 1.0 + self.text_offset_sign = 1 + self.show_start_arrow = False + self.show_end_arrow = True + self.text_alignment = TextAlignment.CENTER + self.show_extension_lines = True + + def draw(self, context: bpy.types.Context) -> None: + """Draw dimension graphics using the DimensionRenderer singleton.""" + if not hasattr(self, "_dimension_length") or self._dimension_length < 0: + return + + axis_world = Vector(self.matrix_basis.col[0][:3]).normalized() + start_world = self.matrix_basis.translation.copy() + end_world = start_world + axis_world * self._dimension_length + + DimensionRenderer.get_instance().draw( + context=context, + start_world=start_world, + end_world=end_world, + axis_world=axis_world, + dimension_length=self._dimension_length, + color=(self.color[0], self.color[1], self.color[2]), + alpha=self.alpha, + is_highlight=self.is_highlight, + highlight_color=(self.color_highlight[0], self.color_highlight[1], self.color_highlight[2]), + highlight_alpha=self.alpha_highlight, + show_start_arrow=getattr(self, "show_start_arrow", False), + show_end_arrow=getattr(self, "show_end_arrow", True), + show_extension_lines=getattr(self, "show_extension_lines", True), + text_offset_sign=getattr(self, "text_offset_sign", 1), + text_alignment=getattr(self, "text_alignment", TextAlignment.CENTER), + prop_name=getattr(self, "prop_name", None), + display_value=getattr(self, "_display_value", self._dimension_length), + ) + + def _calculate_screen_endpoints(self, context: bpy.types.Context) -> tuple[Vector, Vector, Vector, float] | None: + """Calculate screen-space endpoints and direction for the dimension line. + + Returns: + Tuple of (start_screen, end_screen, direction, length_screen) or None if off-screen + """ + region = context.region + rv3d = context.region_data + if not region or not rv3d: + return None + + axis_world = Vector(self.matrix_basis.col[0][:3]).normalized() + start_world = self.matrix_basis.translation.copy() + end_world = start_world + axis_world * self._dimension_length + + start_screen = location_3d_to_region_2d(region, rv3d, start_world) + end_screen = location_3d_to_region_2d(region, rv3d, end_world) + + if not start_screen or not end_screen: + return None + + direction = Vector((end_screen[0] - start_screen[0], end_screen[1] - start_screen[1])) + length_screen = direction.length + + actual_value_is_zero = self._dimension_length <= 0.001 + + # When screen length is zero due to viewing angle (not actual value being 0), skip drawing + if length_screen < 1 and not actual_value_is_zero: + return None + + # When actual value is zero, determine direction from 3D axis projection + if length_screen < 1 and actual_value_is_zero: + test_world = start_world + axis_world * 0.1 + test_screen = location_3d_to_region_2d(region, rv3d, test_world) + if test_screen: + direction = Vector((test_screen[0] - start_screen[0], test_screen[1] - start_screen[1])) + if direction.length > 0.001: + direction.normalize() + else: + direction = Vector((1, 0)) + else: + direction = Vector((1, 0)) + else: + direction.normalize() + + return (Vector(start_screen), Vector(end_screen), direction, length_screen) + + def _build_arrow_triangle( + self, position: Vector, direction: Vector, perpendicular: Vector, pointing_backward: bool + ) -> list[tuple[float, float]]: + """Build triangle vertices for an arrow head. + + Args: + position: Screen position of the arrow tip + direction: Normalized direction vector of the dimension line + perpendicular: Perpendicular vector for arrow width + pointing_backward: If True, arrow points opposite to direction (for end arrow) + + Returns: + List of 3 vertex tuples forming the arrow triangle + """ + sign = -1 if pointing_backward else 1 + arrow_tip = (position[0], position[1]) + arrow_back_left = ( + position[0] + sign * direction[0] * self.ARROW_SIZE + perpendicular[0] * self.ARROW_SIZE * 0.5, + position[1] + sign * direction[1] * self.ARROW_SIZE + perpendicular[1] * self.ARROW_SIZE * 0.5, + ) + arrow_back_right = ( + position[0] + sign * direction[0] * self.ARROW_SIZE - perpendicular[0] * self.ARROW_SIZE * 0.5, + position[1] + sign * direction[1] * self.ARROW_SIZE - perpendicular[1] * self.ARROW_SIZE * 0.5, + ) + return [arrow_tip, arrow_back_left, arrow_back_right] + + def _build_extension_line_vertices( + self, position: Vector, perpendicular: Vector + ) -> tuple[tuple[float, float], tuple[float, float]]: + """Build extension line endpoints perpendicular to the dimension at given position. + + Returns: + Tuple of (top_vertex, bottom_vertex) + """ + top = ( + position[0] + perpendicular[0] * self.EXTENSION_LENGTH, + position[1] + perpendicular[1] * self.EXTENSION_LENGTH, + ) + bottom = ( + position[0] - perpendicular[0] * self.EXTENSION_LENGTH, + position[1] - perpendicular[1] * self.EXTENSION_LENGTH, + ) + return (top, bottom) + + def draw_select(self, context: bpy.types.Context, select_id: int) -> None: + # Scale the clickable shape to match the dimension length + # The custom_shape is unit length (0 to 1), so we need to scale by _dimension_length + # Use MIN_HIT_LENGTH to ensure small dimensions are still clickable + length = getattr(self, "_dimension_length", 1.0) + hit_length = max(length, self.MIN_HIT_LENGTH) + + # Save original matrix_offset and apply length scaling along local X axis + # Use matrix_offset for local transforms as per Blender gizmo conventions + original_offset = self.matrix_offset.copy() if self.matrix_offset else Matrix.Identity(4) + self.matrix_offset = Matrix.Diagonal((hit_length, 1.0, 1.0, 1.0)) + + self.draw_custom_shape(self.custom_shape, select_id=select_id) + + self.matrix_offset = original_offset + + def set_dimension_length(self, length: float) -> None: + """Set the length of the dimension line with validation.""" + # Validate input: reject NaN, Inf, and non-numeric values + if not isinstance(length, (int, float)) or math.isnan(length) or math.isinf(length): + length = 0.0 + # Store the actual value for display (can be negative) + self._display_value = max(-10000.0, min(length, 10000.0)) + # Clamp to valid range (0 to 10000 meters is reasonable for BIM) for drawing + self._dimension_length = max(0.0, min(abs(length), 10000.0)) + + def invoke(self, context: bpy.types.Context, event: bpy.types.Event) -> set: + """Initialize dimension gizmo interaction with click-position tracking. + + Click-position tracking prevents jarring value jumps when clicking: + + 1. Calculate where user clicked on the dimension axis (click_distance) + 2. Set start_location at the click position so delta=0 there + 3. Store _original_value for cancel/restore functionality + 4. Set init_value = click_distance for direct position mapping + + Result: When dragging, value = click_distance + mouse_delta, giving + intuitive "drag to position" behavior without any initial jump. + The value only changes when the user actually drags. + """ + self.init_value = self.move_get_cb() if self.move_get_cb else 0.0 + self.active_obj = context.active_object + self.initial_snap_state = context.scene.tool_settings.use_snap + self.keyboard_input = NumericInputState.create_default() + self._snap_cache_built = False + self._has_dragged = False + self._start_mouse_pos = (event.mouse_region_x, event.mouse_region_y) + if not hasattr(self, "prop_name") or self.prop_name is None: + self.prop_name = "Value" + + # Push undo step before making changes so Ctrl+Z can restore original state + prop_name = getattr(self, "prop_name", "Value") + bpy.ops.ed.undo_push(message=f"Gizmo: {prop_name}") + + axis_world = Vector(self.matrix_basis.col[0][:3]).normalized() + gizmo_origin = self.matrix_basis.translation.copy() + + # Calculate where user clicked on the axis + region = context.region + rv3d = context.region_data + click_distance = self.init_value # Default: assume click at current value endpoint + + if region and rv3d: + click_coord = (event.mouse_region_x, event.mouse_region_y) + view_origin = region_2d_to_origin_3d(region, rv3d, click_coord) + view_direction = region_2d_to_vector_3d(region, rv3d, click_coord) + + result = intersect_line_line( + view_origin, + view_origin + view_direction * RAY_CAST_DISTANCE, + gizmo_origin, + gizmo_origin + axis_world * RAY_CAST_DISTANCE, + ) + + if result: + click_on_axis = result[1] + click_distance = (click_on_axis - gizmo_origin).dot(axis_world) + + # Set start_location at the click position on the axis + # This makes delta=0 when mouse is at click position + self.start_location = gizmo_origin + axis_world * click_distance + + # With start_location at click point and init_value = click_distance: + # - When mouse moves to position p: delta = p - click_distance + # - final_value = click_distance + (p - click_distance) = p + # This gives us direct "position = value" behavior. + # The modal only updates after user has dragged, preserving original value until then. + self._original_value = self.init_value + + # Why _click_offset: Users rarely click exactly on the dimension tip. Without this + # correction, the value would jump to match cursor position. By storing the offset + # between click position and actual tip, we can subtract it during modal updates + # so the dimension "sticks" to the cursor naturally without initial jumps. + self._click_offset = click_distance - self._original_value + + self.init_value = click_distance + + if self.initial_snap_state and self.active_obj: + build_snap_cache(context, self.active_obj) + self._snap_cache_built = True + + self._hide_other_gizmos() + + return {"RUNNING_MODAL"} + + def _hide_other_gizmos(self) -> None: + """Hide all other gizmos in the group during interaction.""" + gizmo_group = getattr(self, "gizmo_group", None) + if not gizmo_group: + return + + hidden_set: set[bpy.types.Gizmo] = set() + for gizmo in gizmo_group.gizmos: + if gizmo != self: + gizmo.hide = True + hidden_set.add(gizmo) + + _gizmo_modal_context.hidden_gizmos = hidden_set + + def _restore_gizmo_visibility(self) -> None: + """Restore visibility of gizmos hidden during interaction.""" + _gizmo_modal_context.hidden_gizmos = None + + def modal(self, context: bpy.types.Context, event: bpy.types.Event, tweak) -> set: + """Override modal to apply click offset and prevent value jumps.""" + region = context.region + rv3d = context.region_data + tool_settings = context.scene.tool_settings + + keyboard_result = self._handle_keyboard_input(context, event) + if keyboard_result is not None: + return keyboard_result + + if self.keyboard_input.is_active: + return {"RUNNING_MODAL"} + + if not region or not rv3d: + return {"RUNNING_MODAL"} + + tool_settings.use_snap = not self.initial_snap_state if event.ctrl else self.initial_snap_state + + if tool_settings.use_snap and not self._snap_cache_built and self.active_obj: + build_snap_cache(context, self.active_obj) + self._snap_cache_built = True + + current_coord = (event.mouse_region_x, event.mouse_region_y) + + if not self._has_dragged and hasattr(self, "_start_mouse_pos"): + dx = current_coord[0] - self._start_mouse_pos[0] + dy = current_coord[1] - self._start_mouse_pos[1] + if (dx * dx + dy * dy) > (self.DRAG_THRESHOLD**2): + self._has_dragged = True + view_origin = region_2d_to_origin_3d(region, rv3d, current_coord) + view_direction = region_2d_to_vector_3d(region, rv3d, current_coord) + + axis_direction = self.get_axis_direction() + + result = intersect_line_line( + view_origin, + view_origin + view_direction * RAY_CAST_DISTANCE, + self.start_location, + self.start_location + axis_direction * RAY_CAST_DISTANCE, + ) + current_3d = result[1] if result else self.start_location + + delta = (current_3d - self.start_location).dot(axis_direction) + + if tool_settings.use_snap and self.active_obj: + # Snap the dimension tip (not mouse position) to target + # Calculate where the dimension tip would be with current delta + # The tip is at: gizmo_origin + axis * (init_value + delta) + # Since start_location = gizmo_origin + axis * click_offset (where user clicked), + # the tip is at: current_3d - axis * click_offset + click_offset = getattr(self, "_click_offset", 0.0) + tip_3d = current_3d - axis_direction * click_offset + + # Snap the tip position + snapped_tip = snap_to_mesh(tip_3d, context, self.active_obj, current_coord) + if snapped_tip != tip_3d: + # Adjust delta so the dimension tip lands on the snapped position + # snap_to_mesh may return a tuple from the cache, ensure it's a Vector + snapped_tip_vec = Vector(snapped_tip) if not isinstance(snapped_tip, Vector) else snapped_tip + delta = (snapped_tip_vec - self.start_location).dot(axis_direction) + click_offset + set_snap_point(snapped_tip) + else: + clear_snap_point() + else: + clear_snap_point() + + if event.shift: + delta *= PRECISION_MODE_MULTIPLIER + + if getattr(self, "invert_delta", False): + delta = -delta + + delta_scale = getattr(self, "delta_scale", 1.0) + delta *= delta_scale + + kb = self.keyboard_input + final_delta = kb.parsed_value if kb.parsed_value != 0.0 else delta + + # Use original value (before click offset) for relative dragging behavior + # This ensures no value jump - the value only changes by the drag delta + original_value = getattr(self, "_original_value", self.init_value) + + # Only update the value if user has dragged or is typing + # This prevents value jumps when just clicking without dragging + if self._has_dragged or kb.is_active: + if self.move_set_cb: + self.move_set_cb(original_value + final_delta) + self._update_header(context, original_value + final_delta, tool_settings.use_snap, event.shift) + else: + # Show original value in header until user drags + self._update_header(context, original_value, tool_settings.use_snap, event.shift) + + return {"RUNNING_MODAL"} + + # Minimum clickable length (in world units) when dimension is at 0 + MIN_CLICKABLE_LENGTH = 0.05 + + def draw_prepare(self, context: bpy.types.Context) -> None: + """Update the clickable shape to match dimension length.""" + if not hasattr(self, "_dimension_length"): + self._dimension_length = 1.0 + + # Scale the clickable shape to match the dimension length + # Use minimum length to ensure there's always a clickable area (for the arrow tip) + scale_x = max(self._dimension_length, self.MIN_CLICKABLE_LENGTH) + self.matrix_offset = Matrix.Scale(scale_x, 4, Vector((1, 0, 0))) + + def exit(self, context: bpy.types.Context, cancel: bool) -> None: + """Handle gizmo exit - restore original value if cancelled.""" + # Clear header text + if context.area: + context.area.header_text_set(None) + if hasattr(self, "keyboard_input"): + self.keyboard_input.reset() + + should_invoke_keyboard = ( + not cancel and hasattr(self, "_has_dragged") and not self._has_dragged and self.move_set_cb is not None + ) + + if should_invoke_keyboard: + _gizmo_modal_context.move_set_cb = self.move_set_cb + _gizmo_modal_context.active_gizmo = self + _gizmo_modal_context.gizmo_group = getattr(self, "gizmo_group", None) + # Use click position as start_location so delta=0 at current mouse position + # This prevents value jump when modal starts + _gizmo_modal_context.start_location = self.start_location.copy() + _gizmo_modal_context.axis_direction = self.get_axis_direction() + _gizmo_modal_context.active_obj = self.active_obj + _gizmo_modal_context.delta_scale = getattr(self, "delta_scale", 1.0) + # Pass click offset so modal can snap the dimension tip (not mouse position) + _gizmo_modal_context.click_offset = getattr(self, "_click_offset", 0.0) + # Use original value (before click offset adjustment) for the input modal + original_value = getattr(self, "_original_value", self.init_value) + bpy.ops.bim.gizmo_value_input( + "INVOKE_DEFAULT", + prop_name=getattr(self, "prop_name", "Value"), + init_value=original_value, + invert_delta=getattr(self, "invert_delta", False), + ) + elif cancel and hasattr(self, "_original_value") and self.move_set_cb: + self.move_set_cb(self._original_value) + + # (keyboard input modal handles its own visibility restoration) + if not should_invoke_keyboard: + self._restore_gizmo_visibility() + + if hasattr(self, "initial_snap_state"): + context.scene.tool_settings.use_snap = self.initial_snap_state + clear_snap_point() + clear_snap_cache() + + +class CycleTypeMixin: + """Mixin for operators that cycle through type literals. + + Subclasses must define: + element_checker: Class method name on tool.Blender.Modifier (e.g., "is_door") + props_getter: Method name on tool.Model (e.g., "get_door_props") + type_literal: The type literal from tool.Model (e.g., tool.Model.DoorType) + type_attr: Attribute name on props for the type (e.g., "door_type") + + Optional: + skip_element_check: If True, skip the element type validation (default False) + """ + + element_checker: str + props_getter: str + type_literal: type + type_attr: str + skip_element_check: bool = False + + reverse: bpy.props.BoolProperty(name="Reverse", default=False, options={"HIDDEN", "SKIP_SAVE"}) + + def invoke(self, context: bpy.types.Context, event: bpy.types.Event) -> set[str]: + """Set reverse direction based on Shift key.""" + self.reverse = event.shift + return self.execute(context) + + def _cycle_type(self, context: bpy.types.Context) -> set[str]: + """Common type cycling logic. Call from execute() or _execute().""" + obj = context.active_object + if not obj: + return {"CANCELLED"} + + if not self.skip_element_check: + element = tool.Ifc.get_entity(obj) + checker = getattr(tool.Blender.Modifier, self.element_checker) + if not element or not checker(element): + return {"CANCELLED"} + + props = getattr(tool.Model, self.props_getter)(obj) + types = get_args(self.type_literal) + current = getattr(props, self.type_attr) + idx = types.index(current) if current in types else 0 + direction = -1 if self.reverse else 1 + setattr(props, self.type_attr, types[(idx + direction) % len(types)]) + + return {"FINISHED"} + + +class BaseParametricGizmoGroup: + """Base mixin for parametric element gizmo groups (doors, windows, stairs, etc.). + + Coordinate System + ================= + + All parametric elements use IFC/Blender coordinate conventions: + + Door/Window local space (looking from interior toward exterior): + :: + + +Z (up) + | + | + |_______ +X (width) + / + / + +Y (depth, toward exterior) + + - X: Width direction (0 at left edge, positive toward right) + - Y: Depth direction (0 at interior face, positive toward exterior) + - Z: Height direction (0 at floor level, positive upward) + - Origin: Bottom-left corner at interior face + + Stair local space (viewed from above, looking down): + :: + + +Z (up) + | +Y (run/travel) + | / + | / + |/_______ +X (width) + + - X: Width direction (perpendicular to travel) + - Y: Run direction (direction of travel up the stair) + - Z: Height direction (0 at base, positive upward) + - Origin: Bottom of first riser, left edge + + Gizmo Positioning Strategy + ========================== + + Gizmos are positioned to avoid overlapping with geometry by using view-dependent + offsets. The `get_local_view_direction()` method determines which side of the + element the camera is viewing from, and gizmos are placed on the visible side. + + - Dimension gizmos: Positioned with GIZMO_OFFSET from geometry edges + - Icon gizmos: Positioned above element using ICON_Z_OFFSET, laid out horizontally + + Color Convention + ================ + + Gizmo colors follow Blender's axis convention: + - RED: X-axis dimensions (width) + - GREEN: Y-axis dimensions (depth) + - BLUE: Z-axis dimensions (height) + + View Direction API + ================== + + Use ``ViewDirection.from_context(context, mw)`` to determine camera position:: + + view = ViewDirection.from_context(context, obj.matrix_world) + if view.from_back: # Camera behind element (interior for doors) + y_pos = props.depth + if view.from_left: # Camera on left side + x_pos = -offset + + Negative Value Handling + ======================= + + Some dimensions support negative values (e.g., lining_offset). When negative, + the gizmo is flipped 180° using FLIP_MATRIX so the arrow points opposite. + """ + + # === Gizmo Colors === + # Match Blender axis convention: X=red, Y=green, Z=blue + COLOR_RED = (1.0, 0.2, 0.2) + COLOR_GREEN = (0.1, 0.8, 0.1) + COLOR_BLUE = (0.3, 0.3, 1.0) + + # === Dimension Gizmo Layout (meters) === + ARROW_SCALE = 0.25 # Scale factor for arrow gizmos + GIZMO_OFFSET = 0.15 # Distance from geometry edge to dimension line + GIZMO_STACK_OFFSET = 0.1 # Offset increment for stacking multiple gizmos to avoid overlap + GIZMO_CLAMP_MAX = 10000.0 # Maximum value for dimension clamping (meters) + + # Pre-computed flip matrix for negative value handling (180° rotation around Z) + FLIP_MATRIX = Matrix.Rotation(math.pi, 4, "Z") + + # === Icon Gizmo Layout (meters) === + # Icons are positioned in a horizontal row above the element: + # [Validate] [Cancel] [Cycle] + # 0.0 0.5 0.87 <- X positions (ICON_VALIDATE_X + offset) + EDITING_ICON_SCALE = 0.2 # Scale for editing icon gizmos (validate, cancel, cycle) + ICON_VALIDATE_X = 0.0 # X position of validate (checkmark) icon + ICON_CANCEL_X = 0.5 # X offset from validate for cancel (X) icon + ICON_CYCLE_X = 0.87 # X offset from validate for cycle (arrow) icon + ICON_Z_OFFSET = 0.5 # Height above element for icons + ICON_Y_OFFSET = GIZMO_OFFSET * 2 # Y offset to keep icons clear of geometry + + dimension_gizmo_props: list[DimensionGizmoConfig] = [] + enable_editing_operator: str = "" + finish_editing_operator: str = "" + cancel_editing_operator: str = "" + cycle_type_operator: str = "" + + @classmethod + def get_color_from_name(cls, color: GizmoColor | str) -> tuple[float, float, float]: + """Get color tuple from GizmoColor enum or color name string.""" + colors = { + GizmoColor.RED: cls.COLOR_RED, + GizmoColor.GREEN: cls.COLOR_GREEN, + GizmoColor.BLUE: cls.COLOR_BLUE, + } + if isinstance(color, GizmoColor): + return colors.get(color, cls.COLOR_RED) + # Handle legacy string input + return colors.get(GizmoColor(color.upper()), cls.COLOR_RED) + + @classmethod + def get_arrow_color_from_axis(cls, axis: tuple[int, int, int]) -> tuple[float, float, float]: + if axis[0] != 0: + return cls.COLOR_RED + elif axis[1] != 0: + return cls.COLOR_GREEN + return cls.COLOR_BLUE + + def get_axis_rotation_matrix(self, axis: tuple[int, int, int]) -> Matrix: + """Get a rotation matrix that aligns the X-axis with the given axis direction.""" + axis_vec = Vector(axis).normalized() + default_dir = Vector((1, 0, 0)) + return default_dir.rotation_difference(axis_vec).to_matrix().to_4x4() + + @staticmethod + def get_local_view_direction(context: bpy.types.Context, world_matrix: Matrix) -> tuple[bool, bool]: + """Calculate view direction in element's local space. + + Returns: + tuple of (viewing_from_negative_y, viewing_from_negative_x) + - viewing_from_negative_y: True if camera is on the -Y side of the element + - viewing_from_negative_x: True if camera is on the -X side of the element + + Returns (False, False) if region data is unavailable. + + Note: Consider using ViewDirection.from_context() for a cleaner API. + """ + rv3d = context.region_data + if not rv3d: + return False, False + + view_direction = Vector(rv3d.view_rotation @ Vector((0, 0, -1))) + local_view_dir = world_matrix.inverted().to_3x3() @ view_direction + + viewing_from_negative_y = local_view_dir.y < 0 + viewing_from_negative_x = local_view_dir.x < 0 + + return viewing_from_negative_y, viewing_from_negative_x + + def get_view_direction(self, context: bpy.types.Context, world_matrix: Matrix) -> "ViewDirection": + """Get view direction as a ViewDirection object for cleaner API. + + Example: + view = self.get_view_direction(context, mw) + if view.from_back: + y_pos = props.depth + else: + y_pos = 0 + """ + from_neg_y, from_neg_x = self.get_local_view_direction(context, world_matrix) + return ViewDirection(from_negative_y=from_neg_y, from_negative_x=from_neg_x) + + def update_gizmo_visibility(self, gizmo: bpy.types.Gizmo, is_editing: bool, pref_enabled: bool) -> bool: + """Update gizmo visibility based on modal state, editing state, and preference. + + Consolidates the common pattern: + if hidden_by_modal: + gizmo.hide = True + else: + gizmo.hide = not is_editing or not pref_enabled + + Args: + gizmo: The gizmo to update visibility for + is_editing: Whether the element is currently being edited + pref_enabled: Whether this gizmo type is enabled in preferences + + Returns: + True if the gizmo is now visible (not hidden), False otherwise + """ + if self.is_gizmo_hidden_by_modal(gizmo): + gizmo.hide = True + return False + gizmo.hide = not is_editing or not pref_enabled + return not gizmo.hide + + def get_y_position_for_view( + self, props, viewing_from_negative_y: bool, width_attr: str = "width", use_offset: bool = False + ) -> float: + """Get Y position based on view direction. + + Common helper for view-dependent gizmo positioning. Elements are positioned + at Y=0 or Y=width depending on which side the camera is viewing from. + + Args: + props: Element properties object + viewing_from_negative_y: True if viewing from -Y side + width_attr: Property name for element width (default "width", door/window use implicit overall_width logic) + use_offset: If True, adds/subtracts GIZMO_OFFSET from the position + + Returns: + Y position: width + offset when viewing from -Y, 0 - offset otherwise + """ + width = getattr(props, width_attr, 0) + if viewing_from_negative_y: + return width + (self.GIZMO_OFFSET if use_offset else 0) + return -self.GIZMO_OFFSET if use_offset else 0 + + def get_icon_y_for_view(self, props, viewing_from_negative_y: bool) -> float: + """Get Y position for editing icons based on view direction. + + Similar to get_y_position_for_view but always includes offset and + uses the element's furthest Y extent for positioning. + + Args: + props: Element properties object + viewing_from_negative_y: True if viewing from -Y side + + Returns: + Y position for icon row: -GIZMO_OFFSET when viewing from -Y, + width + GIZMO_OFFSET otherwise + """ + width = getattr(props, "width", 0) + if viewing_from_negative_y: + return -self.GIZMO_OFFSET + return width + self.GIZMO_OFFSET + + def compose_gizmo_matrix(self, translation: Vector, axis: tuple[int, int, int]) -> Matrix: + """Compose a gizmo transformation matrix from translation and axis. + + This is the standard pattern used for positioning gizmos: + translation @ rotation where rotation aligns X-axis with the given axis. + + Args: + translation: Position vector for the gizmo + axis: Direction axis tuple, e.g., (1, 0, 0) for X-axis + + Returns: + Combined transformation matrix (translation @ rotation) + """ + return Matrix.Translation(translation) @ self.get_axis_rotation_matrix(axis) + + def get_lining_y_position_for_view(self, props, viewing_from_negative_y: bool, use_offset: bool = True) -> float: + """Get Y position for lining-based elements (doors, windows) based on view direction. + + For elements with lining_offset property, this calculates the Y position + relative to lining_offset, flipping sides based on camera view direction. + + Args: + props: Element properties object (must have lining_offset attribute) + viewing_from_negative_y: True if viewing from -Y side + use_offset: If True, adds/subtracts GIZMO_OFFSET (default True) + + Returns: + Y position: lining_offset + GIZMO_OFFSET when viewing from -Y, + lining_offset - GIZMO_OFFSET otherwise + """ + lining_offset = getattr(props, "lining_offset", 0) + if viewing_from_negative_y: + return lining_offset + (self.GIZMO_OFFSET if use_offset else 0) + return lining_offset - (self.GIZMO_OFFSET if use_offset else 0) + + def get_x_positions_for_view( + self, width: float, offset: float, viewing_from_negative_x: bool + ) -> tuple[float, float]: + """Get X positions for height and lining gizmos based on view direction. + + When viewing from -X side, height goes to -X and lining goes to +X. + When viewing from +X side, height goes to +X and lining goes to -X. + + Args: + width: Element width (e.g., overall_width) + offset: Additional offset (e.g., casing_thickness) + viewing_from_negative_x: True if viewing from -X side + + Returns: + Tuple of (x_pos_height, x_pos_lining) + """ + if viewing_from_negative_x: + x_pos_height = -offset - self.GIZMO_OFFSET + x_pos_lining = width + offset + self.GIZMO_OFFSET + else: + x_pos_height = width + offset + self.GIZMO_OFFSET + x_pos_lining = -offset - self.GIZMO_OFFSET + return x_pos_height, x_pos_lining + + def get_dimension_matrix_lining_offset_default(self, props) -> Matrix: + """Default lining offset matrix for door/window elements. + + Position at element width + offset, at Y=0, below the element. + Override in subclass if different positioning is needed. + """ + width = getattr(props, "overall_width", 0) + return self.compose_gizmo_matrix(Vector((width + self.GIZMO_OFFSET, 0, -self.GIZMO_OFFSET)), (0, 1, 0)) + + def get_casing_offset(self, props) -> float: + """Get casing offset for view-dependent dimension positioning. + + Override in door to return casing_thickness when lining_offset is 0. + Default returns 0 (no casing offset). + """ + return 0.0 + + def _update_view_dependent_dimensions(self, context: bpy.types.Context, mw: Matrix, props) -> None: + """Update overall_width, overall_height, and lining_offset based on view direction. + + This base implementation handles the common pattern for door/window gizmos. + Subclasses can override get_casing_offset() to customize behavior. + """ + viewing_from_negative_y, viewing_from_negative_x = self.get_local_view_direction(context, mw) + y_pos = self.get_lining_y_position_for_view(props, viewing_from_negative_y) + + self.set_dimension_gizmo_position("overall_width", mw, Vector((0, y_pos, -self.GIZMO_OFFSET)), (1, 0, 0)) + + casing_offset = self.get_casing_offset(props) + x_pos_height, x_pos_lining = self.get_x_positions_for_view( + props.overall_width, casing_offset, viewing_from_negative_x + ) + self.set_dimension_gizmo_position("overall_height", mw, Vector((x_pos_height, y_pos, 0)), (0, 0, 1)) + self.set_dimension_gizmo_position( + "lining_offset", mw, Vector((x_pos_lining, 0, -self.GIZMO_OFFSET)), (0, 1, 0), props.lining_offset + ) + + def create_icon_gizmo( + self, + gizmo_type: str, + color: tuple[float, float, float], + operator: str, + prop_path: str | None = None, + alpha: float = 0.8, + **operator_props, + ) -> bpy.types.Gizmo: + """Create an icon gizmo with common settings. + + Args: + gizmo_type: Blender gizmo type (e.g., "VIEW3D_GT_lock", "VIEW3D_GT_plus") + color: RGB color tuple + operator: Operator ID to trigger (e.g., "bim.toggle_stair_property") + prop_path: Optional property path for lock icons (e.g., "BIMStairProperties.lock") + alpha: Opacity (default 0.8) + **operator_props: Additional operator properties to set + + Returns: + The created gizmo + """ + prefs = tool.Blender.get_addon_preferences() + highlight_color = prefs.decorator_color_selected[:3] + + gz = self.gizmos.new(gizmo_type) + gz.use_draw_scale = False + gz.color = color + gz.color_highlight = highlight_color + gz.alpha = alpha + if prop_path: + gz.prop_path = prop_path + op = gz.target_set_operator(operator) + for key, value in operator_props.items(): + setattr(op, key, value) + return gz + + def create_arc_gizmo( + self, + color: tuple[float, float, float], + operator: str, + prop_path: str | None = None, + alpha: float = 0.5, + **operator_props, + ) -> bpy.types.Gizmo: + """Create an arc gizmo for swing/rotation indicators (e.g., door swing). + + Args: + color: RGB color tuple + operator: Operator ID to trigger (e.g., "bim.toggle_door_swing") + prop_path: Optional property path (e.g., "BIMDoorProperties.door_type") + alpha: Opacity (default 0.5 for arc gizmos) + **operator_props: Additional operator properties to set + + Returns: + The created arc gizmo + """ + return self.create_icon_gizmo("VIEW3D_GT_arc", color, operator, prop_path, alpha, **operator_props) + + @classmethod + def is_element_type(cls, element) -> bool: + raise NotImplementedError("Subclass must implement is_element_type()") + + @classmethod + def poll(cls, context) -> bool: + prefs = tool.Blender.get_addon_preferences() + if not prefs.gizmos.draw_gizmos_in_3d_viewport: + return False + + obj = tool.Blender.get_active_object(is_selected=True) + if not obj: + return False + + if len(tool.Blender.get_selected_objects()) != 1: + return False + + element = tool.Ifc.get_entity(obj) + if not element or not cls.is_element_type(element): + return False + return True + + def setup(self, context: bpy.types.Context) -> None: + """Template method for gizmo setup. + + Subclasses should override setup_element_specific_gizmos() to add + element-specific gizmos (e.g., door swing arcs, stair lock icons). + """ + self.setup_editing_gizmos(context) + self.setup_dimension_gizmos(context) + self.setup_element_specific_gizmos(context) + + def setup_element_specific_gizmos(self, context: bpy.types.Context) -> None: + """Override to add element-specific gizmos. + + Called after setup_editing_gizmos and setup_dimension_gizmos. + Examples: door swing arcs, stair lock/plus/minus icons. + """ + pass + + def refresh(self, context: bpy.types.Context) -> None: + """Template method for gizmo refresh. + + Subclasses should override _refresh_element_specific() for element-specific updates + (e.g., door swing arcs, stair lock icons). + """ + if not self.is_setup_complete(): + return + obj = context.active_object + if not obj: + return + + props = self.get_props(obj) + mw = obj.matrix_world + self.update_editing_gizmos(context, mw, props) + self.update_dimension_gizmos(mw, props) + self._refresh_element_specific(context, mw, props) + + def _refresh_element_specific(self, context: bpy.types.Context, mw: "Matrix", props) -> None: # noqa: ARG002 + """Override for element-specific refresh logic. + + Called after update_editing_gizmos and update_dimension_gizmos. + Examples: door swing gizmos, stair lock/tread/plus/minus gizmos. + """ + pass + + # Subclass should define these class attributes for metadata-driven dispatch + # If not defined, subclass must override get_props() and get_gizmo_prefs() + props_getter: str | None = None # e.g., "get_door_props" + gizmo_pref_name: str | None = None # e.g., "door" + + def get_props(self, obj: bpy.types.Object) -> Any: + """Get properties for the element. + + Subclass can either: + 1. Define class attribute `props_getter` (e.g., "get_door_props") + 2. Override this method directly + """ + if self.props_getter: + return getattr(tool.Model, self.props_getter)(obj) + raise NotImplementedError("Subclass must define props_getter or override get_props()") + + @staticmethod + def get_addon_prefs(): + """Get addon preferences (cached accessor).""" + return tool.Blender.get_addon_preferences() + + def get_decoration_colors(self) -> tuple[tuple[float, float, float], tuple[float, float, float]]: + """Get default and highlight colors from preferences. + + Returns: + Tuple of (default_color, highlight_color) as RGB tuples. + """ + prefs = self.get_addon_prefs() + return prefs.decorations_colour[:3], prefs.decorator_color_selected[:3] + + def get_gizmo_prefs(self) -> Any: + """Get gizmo preferences for this element type. + + Subclass can either: + 1. Define class attribute `gizmo_pref_name` (e.g., "door") + 2. Override this method directly + """ + if self.gizmo_pref_name: + prefs = self.get_addon_prefs() + return getattr(prefs.gizmos, self.gizmo_pref_name) + raise NotImplementedError("Subclass must define gizmo_pref_name or override get_gizmo_prefs()") + + def is_setup_complete(self) -> bool: + """Check if gizmo setup has been completed. + + Returns True if essential gizmos have been created. This guard + prevents errors when refresh() is called before setup() completes. + + Subclasses can override to add additional checks. + """ + return hasattr(self, "validate_gizmo") + + def get_prop_min_value(self, attr_name: str) -> float: + return 0.0 + + def should_hide_gizmo(self, attr_name: str, props) -> bool: + return not props.is_editing + + def get_element_height(self, props) -> float: + return getattr(props, "overall_height", getattr(props, "height", 1.0)) + + def is_gizmo_hidden_by_modal(self, gizmo: bpy.types.Gizmo) -> bool: + """Check if a gizmo should be hidden because a modal operator is active. + + This is used to hide all gizmos except the active one during modal + operations like keyboard value input or mouse dragging. + """ + hidden_by_modal = _gizmo_modal_context.hidden_gizmos or set() + return gizmo in hidden_by_modal + + def iter_visible_dimension_gizmos(self) -> Iterator[tuple["DimensionGizmoConfig", bpy.types.Gizmo]]: + """Iterate over visible dimension gizmos with their configs. + + Yields: + Tuples of (config, gizmo) for each dimension gizmo that exists and is not hidden. + + Example: + for config, gizmo in self.iter_visible_dimension_gizmos(): + gizmo.draw_prepare(context) + """ + for config in getattr(self, "dimension_gizmo_props", []): + gizmo = getattr(self, f"dimension_{config.attr_name}_gizmo", None) + if gizmo and not gizmo.hide: + yield config, gizmo + + def get_dimension_gizmo_if_visible(self, attr_name: str) -> bpy.types.Gizmo | None: + """Get a dimension gizmo by attribute name if it exists and is visible. + + Simplifies the common pattern: + if hasattr(self, "dimension_X_gizmo") and not self.dimension_X_gizmo.hide: + to: + if gizmo := self.get_dimension_gizmo_if_visible("X"): + + Args: + attr_name: The dimension attribute name (without "dimension_" prefix and "_gizmo" suffix) + + Returns: + The gizmo if it exists and is not hidden, None otherwise. + """ + gizmo = getattr(self, f"dimension_{attr_name}_gizmo", None) + if gizmo and not gizmo.hide: + return gizmo + return None + + def get_gizmo_if_visible(self, gizmo_name: str) -> bpy.types.Gizmo | None: + """Get a gizmo by attribute name if it exists and is visible. + + Args: + gizmo_name: The full gizmo attribute name (e.g., "validate_gizmo", "lock_gizmo") + + Returns: + The gizmo if it exists and is not hidden, None otherwise. + """ + gizmo = getattr(self, gizmo_name, None) + if gizmo and not gizmo.hide: + return gizmo + return None + + def set_icon_gizmo_position( + self, + gizmo_name: str, + mw: Matrix, + x: float, + y: float, + z: float, + billboard_rot: Matrix, + scale: float = 0.5, + ) -> None: + """Set an icon gizmo's position with billboard rotation. + + Args: + gizmo_name: The gizmo attribute name (e.g., "validate_gizmo") + mw: Object's world matrix + x, y, z: Local position coordinates + billboard_rot: Billboard rotation matrix to face camera + scale: Gizmo scale factor (default 0.5) + """ + if gz := self.get_gizmo_if_visible(gizmo_name): + local_transform = Matrix.Translation(Vector((x, y, z))) @ billboard_rot @ Matrix.Scale(scale, 4) + gz.matrix_basis = mw @ local_transform + + def set_dimension_gizmo_position( + self, + attr_name: str, + mw: Matrix, + position: Vector, + axis: tuple[int, int, int], + value: float | None = None, + ) -> None: + """Set a dimension gizmo's position if visible. + + Args: + attr_name: The dimension attribute name (e.g., "overall_width") + mw: Object's world matrix + position: Local position as Vector or tuple (x, y, z) + axis: Direction axis tuple (e.g., (1, 0, 0) for X) + value: Optional value to check for negative flip. If None, no flip is applied. + """ + if gz := self.get_dimension_gizmo_if_visible(attr_name): + self._apply_dimension_matrix(gz, mw, self.compose_gizmo_matrix(position, axis), value) + + def _apply_dimension_matrix( + self, + gizmo: bpy.types.Gizmo, + mw: Matrix, + base_matrix: Matrix, + value: float | None = None, + ) -> None: + """Apply matrix to dimension gizmo, flipping for negative values. + + Consolidates negative value handling in one place. For negative values, + the gizmo is rotated 180° around Z so the dimension arrow points in the + opposite direction while keeping the origin at the same position. + + Args: + gizmo: The dimension gizmo to update + mw: Object's world matrix + base_matrix: Local transformation matrix + value: If negative, applies FLIP_MATRIX rotation + """ + if value is not None and value < 0: + gizmo.matrix_basis = mw @ base_matrix @ self.FLIP_MATRIX + else: + gizmo.matrix_basis = mw @ base_matrix + + def should_hide_dimension_gizmo( + self, gizmo: bpy.types.Gizmo, config: "DimensionGizmoConfig", props, gizmo_prefs + ) -> bool: + """Unified visibility check for dimension gizmos. + + Checks all hide conditions in priority order: + 1. Modal operator hiding + 2. User preference visibility toggle + 3. Editing state + 4. Custom visibility condition from config + + Args: + gizmo: The gizmo to check + config: Dimension gizmo configuration + props: Element properties object + gizmo_prefs: Gizmo visibility preferences + + Returns: + True if gizmo should be hidden, False otherwise + """ + if self.is_gizmo_hidden_by_modal(gizmo): + return True + if not getattr(gizmo_prefs, config.attr_name, True): + return True + if self.should_hide_gizmo(config.attr_name, props): + return True + if config.visibility_condition and not config.visibility_condition(props): + return True + return False + + def _setup_icon_gizmo( + self, + gizmo_type: str, + color: tuple[float, float, float], + operator: str, + highlight_color: tuple[float, float, float] | None = None, + alpha: float = 0.8, + ) -> bpy.types.Gizmo: + """Create and configure an icon gizmo with standard settings. + + Reduces boilerplate in setup_editing_gizmos. + + Args: + gizmo_type: Blender gizmo type identifier (e.g., "VIEW3D_GT_pen") + color: RGB color tuple + operator: Operator to invoke on click + highlight_color: Optional highlight color (defaults to prefs selection color) + alpha: Gizmo alpha (default 0.8) + + Returns: + Configured gizmo instance. + """ + if highlight_color is None: + _, highlight_color = self.get_decoration_colors() + + gizmo = self.gizmos.new(gizmo_type) + gizmo.use_draw_scale = False + gizmo.color = color + gizmo.color_highlight = highlight_color + gizmo.alpha = alpha + gizmo.target_set_operator(operator) + return gizmo + + def setup_editing_gizmos(self, context: bpy.types.Context) -> None: + default_color, highlight_color = self.get_decoration_colors() + + self.pen_gizmo = self._setup_icon_gizmo( + "VIEW3D_GT_pen", default_color, self.enable_editing_operator, highlight_color + ) + self.validate_gizmo = self._setup_icon_gizmo( + "VIEW3D_GT_validate", self.COLOR_GREEN, self.finish_editing_operator, highlight_color + ) + self.cancel_gizmo = self._setup_icon_gizmo( + "VIEW3D_GT_cancel", self.COLOR_RED, self.cancel_editing_operator, highlight_color + ) + + if self.cycle_type_operator: + self.cycle_gizmo = self._setup_icon_gizmo( + "VIEW3D_GT_cycle", default_color, self.cycle_type_operator, highlight_color + ) + + def _make_dimension_getter(self, config: DimensionGizmoConfig): + """Create getter closure for dimension gizmo.""" + if config.compute_value: + compute_fn = config.compute_value + + def move_get(): + obj = bpy.context.active_object + if not obj: + return 0.0 + return compute_fn(self.get_props(obj)) + + return move_get + + attr_name = config.attr_name + + def move_get(): + obj = bpy.context.active_object + if not obj: + return 0.0 + return getattr(self.get_props(obj), attr_name, 0.0) + + return move_get + + def _make_dimension_setter(self, config: DimensionGizmoConfig): + """Create setter closure for dimension gizmo.""" + if config.apply_value: + apply_fn, min_val = config.apply_value, config.min_value + + def move_set(value): + obj = bpy.context.active_object + if not obj: + return + apply_fn(self.get_props(obj), max(min_val, value)) + + return move_set + + attr_name, min_val = config.attr_name, config.min_value + + def move_set(value): + obj = bpy.context.active_object + if not obj: + return + setattr(self.get_props(obj), attr_name, max(min_val, value)) + + return move_set + + def setup_dimension_gizmos(self, context: bpy.types.Context) -> None: + """Set up dimension gizmos from dimension_gizmo_props configuration.""" + prefs = tool.Blender.get_addon_preferences() + highlight_color = prefs.decorator_color_selected[:3] + + for config in getattr(self, "dimension_gizmo_props", []): + gizmo = self.gizmos.new("BIM_GT_gizmo_dimension") + gizmo.move_get_cb = self._make_dimension_getter(config) + gizmo.move_set_cb = self._make_dimension_setter(config) + gizmo.axis = Vector(config.axis) + gizmo.local_axis = Vector(config.axis) + gizmo.invert_delta = config.invert_delta + gizmo.delta_scale = config.delta_scale + gizmo.prop_name = config.prop_name # Auto-derived in __post_init__ + gizmo.gizmo_group = self + gizmo.color = self.get_color_from_name(config.color) + gizmo.color_highlight = highlight_color + gizmo.alpha = 1.0 + gizmo.use_draw_modal = True + gizmo.use_draw_scale = False + gizmo.text_offset_sign = config.text_offset_sign + gizmo.text_alignment = config.text_alignment + gizmo.show_start_arrow = config.show_start_arrow + gizmo.show_end_arrow = config.show_end_arrow + setattr(self, f"dimension_{config.attr_name}_gizmo", gizmo) + + def update_dimension_gizmos(self, mw: Matrix, props) -> None: + """Update dimension gizmos from dimension_gizmo_props configuration.""" + gizmo_prefs = self.get_gizmo_prefs() + + for config in getattr(self, "dimension_gizmo_props", []): + gizmo = getattr(self, f"dimension_{config.attr_name}_gizmo", None) + if gizmo is None: + continue + + # Use unified visibility checker + if self.should_hide_dimension_gizmo(gizmo, config, props, gizmo_prefs): + gizmo.hide = True + continue + + gizmo.hide = False + + # Priority: config.matrix_position > get_dimension_matrix_* method > Identity + if config.matrix_position: + position = config.matrix_position(props) + base_matrix = self.compose_gizmo_matrix(position, config.axis) + else: + matrix_method = getattr(self, f"get_dimension_matrix_{config.attr_name}", None) + base_matrix = matrix_method(props) if matrix_method else Matrix.Identity(4) + + if config.compute_value: + value = config.compute_value(props) + else: + value = getattr(props, config.attr_name, 0.0) + + # Use consolidated negative value handling + self._apply_dimension_matrix(gizmo, mw, base_matrix, value) + gizmo.show_start_arrow = config.show_start_arrow + gizmo.show_end_arrow = config.show_end_arrow + gizmo.set_dimension_length(value) + + def get_icon_y_extent(self, props) -> tuple[float, float]: + """Get Y extents for icon positioning based on element geometry. + + Subclasses should override this to return the furthest geometry extents + in the +Y and -Y directions from the element origin. + + Returns: + Tuple of (positive_y_extent, negative_y_extent). + Both values should be positive (absolute distances). + The base implementation returns (0, 0). + + Example for a door: + return (lining_offset + lining_depth + 2*OFFSET, 2*OFFSET) + """ + return (0.0, 0.0) + + def get_icon_y_offset(self, context: bpy.types.Context, mw: Matrix) -> float: + """Get Y offset for icons based on view direction. + + Uses get_icon_y_extent() to determine how far to offset icons based on + the camera viewing direction. Icons are positioned beyond the geometry + on the side the camera is viewing from. + + Subclasses typically only need to override get_icon_y_extent(). + """ + obj = context.active_object + if not obj: + return self.ICON_Y_OFFSET + + props = self.get_props(obj) + positive_extent, negative_extent = self.get_icon_y_extent(props) + + viewing_from_negative_y, _ = self.get_local_view_direction(context, mw) + if viewing_from_negative_y: + return -negative_extent + return positive_extent + + def update_editing_gizmos(self, context: bpy.types.Context, mw: Matrix, props) -> None: + """Update editing icon gizmo positions to billboard toward camera.""" + icon_z = self.get_element_height(props) + self.ICON_Z_OFFSET + icon_y = self.get_icon_y_offset(context, mw) + billboard_rot = get_billboard_rotation(context) + + # This ensures icons face camera regardless of object rotation + local_pos_validate = Vector((self.ICON_VALIDATE_X, icon_y, icon_z)) + world_pos_validate = mw @ local_pos_validate + + icon_matrix_base = Matrix.Translation(world_pos_validate) @ billboard_rot @ Matrix.Scale(0.5, 4) + + if props.is_editing: + self.pen_gizmo.hide = True + self.validate_gizmo.hide = self.is_gizmo_hidden_by_modal(self.validate_gizmo) + self.validate_gizmo.matrix_basis = icon_matrix_base + + self.cancel_gizmo.hide = self.is_gizmo_hidden_by_modal(self.cancel_gizmo) + local_pos_cancel = Vector((self.ICON_VALIDATE_X + self.ICON_CANCEL_X, icon_y, icon_z)) + world_pos_cancel = mw @ local_pos_cancel + self.cancel_gizmo.matrix_basis = Matrix.Translation(world_pos_cancel) @ billboard_rot @ Matrix.Scale(0.5, 4) + + if self.cycle_type_operator: + self.cycle_gizmo.hide = self.is_gizmo_hidden_by_modal(self.cycle_gizmo) + local_pos_cycle = Vector((self.ICON_VALIDATE_X + self.ICON_CYCLE_X, icon_y, icon_z)) + world_pos_cycle = mw @ local_pos_cycle + self.cycle_gizmo.matrix_basis = ( + Matrix.Translation(world_pos_cycle) @ billboard_rot @ Matrix.Scale(0.30, 4) + ) + else: + self.pen_gizmo.hide = self.is_gizmo_hidden_by_modal(self.pen_gizmo) + self.pen_gizmo.matrix_basis = icon_matrix_base + self.validate_gizmo.hide = True + self.cancel_gizmo.hide = True + if self.cycle_type_operator: + self.cycle_gizmo.hide = True + + def draw_prepare(self, context: bpy.types.Context) -> None: + """Called before drawing - updates gizmos to face camera. + + This method updates editing gizmos and dimension gizmos. + Subclasses can override _update_dimension_gizmo_positions() to customize + dimension gizmo positioning based on view direction. + """ + obj = context.active_object + if not obj: + return + props = self.get_props(obj) + mw = obj.matrix_world + self.update_editing_gizmos(context, mw, props) + + self._update_dimension_gizmo_positions(context, mw, props) + + # Prepare dimension gizmos for drawing + for _, gizmo in self.iter_visible_dimension_gizmos(): + gizmo.draw_prepare(context) + + def _update_dimension_gizmo_positions( + self, context: bpy.types.Context, mw: "Matrix", props # noqa: ARG002 + ) -> None: + """Update dimension gizmo positions based on view direction. + + Override this method in subclasses to implement view-dependent + positioning for dimension gizmos. + + Args: + context: Blender context + mw: Object's world matrix + props: Element properties object + """ diff --git a/src/bonsai/bonsai/bim/module/drawing/handler.py b/src/bonsai/bonsai/bim/module/drawing/handler.py index 75bf62d506..026d274fb3 100644 --- a/src/bonsai/bonsai/bim/module/drawing/handler.py +++ b/src/bonsai/bonsai/bim/module/drawing/handler.py @@ -17,9 +17,10 @@ # along with Bonsai. If not, see . import bpy +from bpy.app.handlers import persistent + import bonsai.bim.module.drawing.decoration as decoration import bonsai.tool as tool -from bpy.app.handlers import persistent @persistent diff --git a/src/bonsai/bonsai/bim/module/drawing/helper.py b/src/bonsai/bonsai/bim/module/drawing/helper.py index bfd943afa6..ee8ecf805d 100644 --- a/src/bonsai/bonsai/bim/module/drawing/helper.py +++ b/src/bonsai/bonsai/bim/module/drawing/helper.py @@ -16,15 +16,18 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import math -import mathutils.geometry -import ifcopenshell -import ifcopenshell.util.unit -import bonsai.tool as tool -from mathutils import Vector from typing import Union +import bpy +import ifcopenshell +import ifcopenshell.util.element +import ifcopenshell.util.unit +import mathutils.geometry +from mathutils import Vector + +import bonsai.tool as tool + # Code taken and updated from https://blenderartists.org/t/detecting-intersection-of-bounding-boxes/457520/2 @@ -121,6 +124,45 @@ class BoundingBox: return retVal +def find_best_precision(fractional_inches, max_precision=256, base_tolerance=0.0001): + """ + Find the simplest fraction denominator that accurately represents the value. + Uses a sliding tolerance - smaller denominators get more tolerance. + + :param fractional_inches: The fractional part of inches (0.0 to 1.0) + :param max_precision: Maximum denominator to try (256 for imperial) + :param base_tolerance: Base tolerance in inches (very strict) + :return: Best denominator (power of 2: 2, 4, 8, 16, 32, 64, 128, 256) + """ + if abs(fractional_inches) < 0.00001: + return 1 # No fraction needed + + # Try denominators from coarsest to finest: 2, 4, 8, 16, 32, 64, 128, 256 + for exp in range(1, 9): # 2^1 to 2^8 + denom = 2**exp + if denom > max_precision: + break + + # Find nearest numerator for this denominator + numer = round(fractional_inches * denom) + + # Skip if numerator is 0 + if numer == 0: + continue + + # Check if this fraction is close enough + fraction_value = numer / denom + error = abs(fraction_value - fractional_inches) + + # Very strict tolerance - only simplify if it's a near-perfect match + # This keeps 3/256 as 3/256, but allows floating point errors to be cleaned up + if error < base_tolerance: + return denom + + # If no simpler fraction works, use max precision + return max_precision + + # This function stolen from https://github.com/kevancress/MeasureIt_ARCH/blob/dcf607ce0896aa2284463c6b4ae9cd023fc54cbe/measureit_arch_baseclass.py # MeasureIt-ARCH is GPL-v3 def format_distance( @@ -186,14 +228,18 @@ def format_distance( if unit_length == "INCHES": toInches = 1 if unit_length == "FEET": - toInches = 11.9999 + toInches = 12 else: toInches = 39.3700787401574887 - inPerFoot = 11.9999 + inPerFoot = 12.0 if isArea: toInches = 1550 - inPerFoot = 143.999 + inPerFoot = 144 + + decInches = value * toInches + decFeet = decInches / 12 + if not precision: precision = 256 elif precision == "1": @@ -202,8 +248,6 @@ def format_distance( precision = int(precision.split("/")[1]) base = int(precision) - decInches = value * toInches - decFeet = decInches / 12 # Separate ft and inches # Unless Inches are the specified Length Unit or unit_fraction is False @@ -219,20 +263,33 @@ def format_distance( # Separate Fractional Inches decInches = abs(decInches) # ignore the sign for inches inches = math.floor(decInches) # remove decimal - if inches != 0: - frac = round(base * (decInches - inches)) + + # Clean up floating point errors + fractional_inches = decInches - inches + tolerance = 0.01 # About 1/100 of an inch + + # If the fractional part is very small, treat it as zero + if fractional_inches < tolerance: + frac = 0 + # If very close to the next whole inch, round up + elif fractional_inches > (1.0 - tolerance): + frac = 0 + inches += 1 else: - frac = round(base * (decInches)) + # Calculate fraction normally + if inches != 0: + frac = round(base * fractional_inches) + else: + frac = round(base * fractional_inches) # Set proper numerator and denominator if frac != base: - numcycles = int(math.log2(base)) - for i in range(numcycles): - if frac % 2 == 0: - frac = int(frac / 2) - base = int(base / 2) - else: - break + # Simplify using GCD + from math import gcd + + divisor = gcd(int(frac), int(base)) + frac = int(frac / divisor) + base = int(base / divisor) else: frac = 0 inches += 1 @@ -251,31 +308,44 @@ def format_distance( frac = None if not isArea: add_inches = bool(inches) or not suppress_zero_inches or (inches == 0 and frac) + tx_dist = "" if feet: tx_dist += str(feet) + "'" if not feet and not add_inches: tx_dist += str(feet) + "'" - if feet and add_inches: + + if not feet and add_inches: + if value < 0: + tx_dist += "-0' - " + else: + tx_dist += "0' - " + elif feet and add_inches: tx_dist += " - " - if not feet and value < 0: - tx_dist += "-" if add_inches: - if feet == 0 and inches == 0: - pass + if feet == 0 and inches == 0 and not frac: + # Special case: exactly zero, show "0" + tx_dist += "0" + elif feet == 0 and inches == 0: + pass # Has fraction, will be added below else: tx_dist += str(inches) if add_inches and frac: if feet == 0 and inches == 0: - pass + pass # Has fraction, will be added below else: tx_dist += " " if frac: tx_dist += str(frac) + "/" + str(base) if add_inches or frac: - tx_dist += '"' + # Only add inch symbol if we actually added inch content + if inches > 0 or frac > 0 or feet == 0: + tx_dist += '"' + if precision == "12" and unit_system == "IMPERIAL": tx_dist = str(round(decFeet)) + "'" + if tx_dist == '"': + tx_dist = "0' - 0\"" else: fmt = "%1.3f" sq_feet = round(value * toInches / inPerFoot, 4) @@ -421,8 +491,8 @@ def ortho_view_frame( Similar to `bpy.types.Camera.view_frame` - :arg camera: camera of drawing - :arg margin: margins, in scene units + :param camera: camera of drawing + :param margin: margins, in scene units :return: (xmin, xmax, ymin, ymax, zmin, zmax) in local camera coordinates """ props = tool.Drawing.get_camera_props(camera) @@ -437,14 +507,14 @@ def ortho_view_frame( def almost_zero(v): - return abs(v) < 1e-5 + return abs(v) < 1e-4 def clip_segment(bounds, segm): """Clipping line segment to bounds - :arg bounds: (xmin, xmax, ymin, ymax) - :arg segm: 2 vertices of the segment + :param bounds: (xmin, xmax, ymin, ymax) + :param segm: 2 vertices of the segment :return: 2 new vertices of segment or None if segment outside the bounding box """ # Liang–Barsky algorithm @@ -493,8 +563,8 @@ def clip_segment(bounds, segm): def elevate_segment(bounds, segm): """Elevate line xy-perpendicular segment vertically - :arg bounds: (xmin, xmax, ymin, ymax) - :arg segm: 2 vertices of the segment + :param bounds: (xmin, xmax, ymin, ymax) + :param segm: 2 vertices of the segment :return: 2 new vertices of segment or None if segment outside the bounding box """ _, _, ymin, ymax, zmin, _ = bounds @@ -544,13 +614,11 @@ def add_newline_between_words(text: str, newline_at: int) -> str: def get_relative_z(obj: bpy.types.Object, element, abs_z: float) -> float: """Return relative Z of an element, accounting for its spatial container. - Args: - obj: The Blender object representing the element. - element: The IFC entity for the object. - abs_z: The absolute Z value in world coordinates. + :param obj: The Blender object representing the element. + :param element: The IFC entity for the object. + :param abs_z: The absolute Z value in world coordinates. - Returns: - Relative Z value if the element is inside a spatial container, + :return: Relative Z value if the element is inside a spatial container, otherwise the absolute Z. """ z = abs_z diff --git a/src/bonsai/bonsai/bim/module/drawing/operator.py b/src/bonsai/bonsai/bim/module/drawing/operator.py index d1f0bb872e..d02e4c6c76 100644 --- a/src/bonsai/bonsai/bim/module/drawing/operator.py +++ b/src/bonsai/bonsai/bim/module/drawing/operator.py @@ -16,55 +16,73 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os -import bpy -import json -import time -import bmesh -import shutil import hashlib -import shapely -import shapely.ops -import subprocess -import numpy as np +import json import multiprocessing +import os +import re +import shutil +import subprocess +import time +from math import radians +from pathlib import Path +from timeit import default_timer as timer +from typing import ( + TYPE_CHECKING, + Any, + Literal, + NamedTuple, + Optional, + TypedDict, + Union, + get_args, +) + +import bmesh +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.document import ifcopenshell.api.pset import ifcopenshell.api.style -import ifcopenshell.ifcopenshell_wrapper import ifcopenshell.geom +import ifcopenshell.ifcopenshell_wrapper import ifcopenshell.util.element import ifcopenshell.util.representation import ifcopenshell.util.selector import ifcopenshell.util.unit -import bonsai.bim.helper +import numpy as np +import shapely +import shapely.ops +from bpy_extras.image_utils import load_image +from bpy_extras.io_utils import ImportHelper +from lxml import etree +from mathutils import Color, Matrix, Vector + +import bonsai.bim.export_ifc import bonsai.bim.handler -import bonsai.tool as tool -import bonsai.core.geometry -import bonsai.core.drawing as core -import bonsai.bim.module.drawing.svgwriter as svgwriter +import bonsai.bim.helper import bonsai.bim.module.drawing.annotation as annotation import bonsai.bim.module.drawing.sheeter as sheeter -import bonsai.bim.export_ifc -from bpy_extras.io_utils import ImportHelper -from bonsai.bim.module.drawing.decoration import CutDecorator -from bonsai.bim.module.drawing.data import DecoratorData -from typing import NamedTuple, Union, Optional, Literal, TYPE_CHECKING, Any, TypedDict, get_args -from lxml import etree -from math import radians -from mathutils import Vector, Color, Matrix -from timeit import default_timer as timer -from bonsai.bim.module.drawing.prop import RasterStyleProperty, RASTER_STYLE_PROPERTIES_EXCLUDE +import bonsai.bim.module.drawing.svgwriter as svgwriter +import bonsai.core.drawing as core +import bonsai.core.geometry +import bonsai.tool as tool from bonsai.bim.ifc import IfcStore -from pathlib import Path -from bpy_extras.image_utils import load_image +from bonsai.bim.module.drawing.data import DecoratorData, ElementValuesData +from bonsai.bim.module.drawing.decoration import CutDecorator +from bonsai.bim.module.drawing.prop import ( + RASTER_STYLE_PROPERTIES_EXCLUDE, + RasterStyleProperty, +) +from bonsai.bim.module.drawing.ui import get_current_product_for_element_values +from bonsai.bim.prop import StrProperty if TYPE_CHECKING: + from bpy.stub_internal import rna_enums + from bonsai.bim.module.drawing.prop import RenderType from bonsai.bim.module.project.prop import Link - from bpy.stub_internal import rna_enums cwd = os.path.dirname(os.path.realpath(__file__)) @@ -296,7 +314,15 @@ class CreateDrawing(bpy.types.Operator): self.drawing_index = drawing_i if self.print_all: bpy.ops.bim.activate_drawing(drawing=drawing_id, should_view_from_camera=False) + original_cache_setting = self.props.should_use_underlay_cache + self.props.should_use_underlay_cache = False + # Force Blender to process all pending operations + for area in context.screen.areas: + area.tag_redraw() + + # Process events to let Blender finish internal cleanup + bpy.ops.wm.redraw_timer(type="DRAW_WIN_SWAP", iterations=1) self.camera = context.scene.camera assert (camera_element := tool.Ifc.get_entity(self.camera)) self.camera_element = camera_element @@ -339,6 +365,23 @@ class CreateDrawing(bpy.types.Operator): f"Failed to create drawing '{self.drawing.Name}' - drawing has underlay but there's no active drawing underlay style.", ) return {"FINISHED"} + + # Clear any local camera setup and force viewport to use scene camera + for area in context.screen.areas: + if area.type == "VIEW_3D": + for space in area.spaces: + if space.type == "VIEW_3D": + # Clear local camera to ensure we use scene.camera + space.use_local_camera = False + space.camera = context.scene.camera + space.region_3d.view_perspective = "CAMERA" + print(f"Set viewport camera to: {context.scene.camera.name}") + break + + # Force complete scene update + context.view_layer.update() + context.evaluated_depsgraph_get() + underlay_svg = self.generate_underlay(context) with profile("Generate linework"): @@ -932,6 +975,31 @@ class CreateDrawing(bpy.types.Operator): return svg_path + # Add target_view and scale classes to the parent group from IFC data + if group is not None: + existing_classes = group.get("class", "").split() + + # Add target_view class + if hasattr(self, "cprops") and getattr(self.cprops, "target_view", None): + target_view_class = tool.Drawing.canonicalise_class_name(str(self.cprops.target_view)) + target_view_full_class = f"target-view-{target_view_class}" + if target_view_full_class not in existing_classes: + existing_classes.append(target_view_full_class) + + # Add scale class from EPset_Drawing.Scale + drawing_pset = ifcopenshell.util.element.get_pset(self.camera_element, "EPset_Drawing") + if drawing_pset and drawing_pset.get("Scale"): + scale_value = drawing_pset["Scale"] + # Remove "1/" prefix if it exists + if isinstance(scale_value, str) and scale_value.startswith("1/"): + scale_value = scale_value[2:] + scale_class = tool.Drawing.canonicalise_class_name(str(scale_value)) + scale_full_class = f"scale-{scale_class}" + if scale_full_class not in existing_classes: + existing_classes.append(scale_full_class) + + group.set("class", " ".join(existing_classes)) + if self.cprops.cut_mode == "BISECT": self.remove_cut_linework(root) self.generate_bisect_linework(context, root) @@ -981,8 +1049,8 @@ class CreateDrawing(bpy.types.Operator): closed_polygons = shapely.polygonize(unioned_boundaries.geoms) for polygon in closed_polygons.geoms: - # Less than 1mm2 is not worth styling on sheet - if polygon.area < 1: + # Less than 0.1mm2 is not worth styling on sheet + if polygon.area < 0.1: continue centroid = polygon.centroid centroid = centroid if polygon.contains(centroid) else polygon.representative_point() @@ -1287,11 +1355,6 @@ class CreateDrawing(bpy.types.Operator): tool.Drawing.canonicalise_class_name(key) + "-" + tool.Drawing.canonicalise_class_name(str(value)) ) - # ─── Target View ─────────────────────────────────────────── - if getattr(self.cprops, "target_view", None): - target_view_class = tool.Drawing.canonicalise_class_name(str(self.cprops.target_view)) - classes.append(f"target-view-{target_view_class}") - return classes def is_manifold(self, obj) -> bool: @@ -2701,11 +2764,28 @@ class ActivateDrawingStyle(bpy.types.Operator, tool.Ifc.Operator): def set_raster_style(self, context: bpy.types.Context) -> None: scene = context.scene # Do not remove. It is used in exec later assert (space := tool.Blender.get_view3d_space()) # Do not remove. It is used in exec later - style = json.loads(self.drawing_style.raster_style) + style: dict[str, Any] = json.loads(self.drawing_style.raster_style) + + VIEWPORT_SHADING_TYPE = "scene.display.shading.type" def preprocess(path: str, value: Any) -> tuple[str, Any, bool, bool]: warning = False skip = False + + BLENDER_5_REMOVED = ( + "scene.render.bake_bias", + "scene.render.bake_margin", + "scene.render.bake_margin_type", + "scene.render.bake_samples", + "scene.render.bake_type", + "scene.render.bake_user_scale", + "scene.render.use_bake_clear", + "scene.render.use_bake_lores_mesh", + "scene.render.use_bake_multires", + "scene.render.use_bake_selected_to_active", + "scene.render.use_bake_user_scale", + ) + # 25.11.07, Blender 5+ if path == "scene.render.engine" and value in ("BLENDER_EEVEE", "BLENDER_EEVEE_NEXT"): if value == "BLENDER_EEVEE_NEXT": @@ -2715,8 +2795,28 @@ class ActivateDrawingStyle(bpy.types.Operator, tool.Ifc.Operator): ) warning = True value = tool.Blender.get_eevee_name() + elif tool.Blender.BLENDER_5 and path in BLENDER_5_REMOVED: + print( + f"Warning: Property '{path}' is removed " + "since Blender 5.0 and should be also removed from shading_styles.json." + ) + warning = True + skip = True + # @25.11.11 + elif ( + path == "scene.display.shading.studio_light" + and value == "Default" + and style[VIEWPORT_SHADING_TYPE] in ("RENDERED", "MATERIAL") + ): + value = "forest.exr" + print( + f"Warning: Value 'Default' for property '{path}' and " + f"'{VIEWPORT_SHADING_TYPE}' = '{style[VIEWPORT_SHADING_TYPE]}' is outdated " + "and should be replaced with 'forest.exr' in shading_styles.json." + ) + warning = True # @25.05.12 - if path == "scene.display.shading.wireframe_color_type" and value == "MATERIAL": + elif path == "scene.display.shading.wireframe_color_type" and value == "MATERIAL": value = "THEME" print( f"Warning: Value 'MATERIAL' is outdated for property '{path}' " @@ -2750,7 +2850,16 @@ class ActivateDrawingStyle(bpy.types.Operator, tool.Ifc.Operator): return path, value, warning, skip - for path, value in style.items(): + paths = list(style.keys()) + PRIORITY_PATHS = ( + # `scene.display.shading.studio_light` values depend on `.type` + # so we got to set it first. + VIEWPORT_SHADING_TYPE, + ) + paths.sort(key=lambda p: p not in PRIORITY_PATHS) + + for path in paths: + value = style[path] path, value, warning, skip = preprocess(path, value) self.has_warnings_during_activation |= warning @@ -2985,9 +3094,20 @@ class AddReference(bpy.types.Operator, tool.Ifc.Operator, ImportHelper): use_relative_path: bpy.props.BoolProperty(name="Use Relative Path", default=True) filename_ext = ".svg" + files: bpy.props.CollectionProperty(type=bpy.types.OperatorFileListElement) + directory: bpy.props.StringProperty(subtype="DIR_PATH") + def _execute(self, context): - filepath = tool.Ifc.get_uri(self.filepath, use_relative_path=self.use_relative_path) - core.add_document(tool.Ifc, tool.Drawing, "REFERENCE", uri=filepath) + # Handle both single and multiple file selection + if self.files: + for file_elem in self.files: + filepath = os.path.join(self.directory, file_elem.name) + uri = tool.Ifc.get_uri(filepath, use_relative_path=self.use_relative_path) + core.add_document(tool.Ifc, tool.Drawing, "REFERENCE", uri=uri) + else: + # Fallback for single file (backward compatibility) + filepath = tool.Ifc.get_uri(self.filepath, use_relative_path=self.use_relative_path) + core.add_document(tool.Ifc, tool.Drawing, "REFERENCE", uri=filepath) class RemoveReference(bpy.types.Operator, tool.Ifc.Operator): @@ -3061,11 +3181,33 @@ class EditText(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.edit_text" bl_label = "Edit Text" bl_description = "Save changes to the text annotation and\ndisable the text editing options" - bl_options = {"REGISTER", "UNDO"} def _execute(self, context): - core.edit_text(tool.Drawing, obj=context.active_object) + core.edit_text(tool.Drawing, obj=tool.Blender.get_active_object()) + tool.Blender.update_viewport() + + +class CopyTextToSelection(bpy.types.Operator, tool.Ifc.Operator): + bl_idname = "bim.copy_text_to_selection" + bl_label = "Copy Text To Selection" + bl_description = "Copy text formatting or literals to selected objects" + bl_options = {"REGISTER", "UNDO"} + attribute: bpy.props.StringProperty() + + def _execute(self, context): + apply_objs = [ + obj + for obj in tool.Blender.get_selected_objects() + if (element := tool.Ifc.get_entity(obj)) + and tool.Drawing.is_annotation_object_type(element, ["TEXT", "TEXT_LEADER"]) + ] + core.copy_text_to_selection( + tool.Drawing, + attribute=self.attribute, + attribute_obj=tool.Blender.get_active_object(), + apply_objs=apply_objs, + ) tool.Blender.update_viewport() @@ -3077,7 +3219,44 @@ class EnableEditingText(bpy.types.Operator, tool.Ifc.Operator): bl_options = {"REGISTER", "UNDO"} def _execute(self, context): - core.enable_editing_text(tool.Drawing, obj=context.active_object) + obj = context.active_object + props = tool.Drawing.get_text_props(obj) + core.enable_editing_text(tool.Drawing, obj=obj) + + text_element = tool.Ifc.get_entity(obj) + assigned_product_entity = tool.Drawing.get_assigned_product(text_element) if text_element else None + assigned_product_obj = tool.Ifc.get_object(assigned_product_entity) if assigned_product_entity else None + + if "_bonsai_element_value_rows_backup" in obj: + try: + literals_backup = json.loads(obj["_bonsai_element_value_rows_backup"]) + for i, literal_backup in enumerate(literals_backup): + if i < len(props.literals): + literal_props = props.literals[i] + + if assigned_product_obj: + literal_props.product_used = assigned_product_obj + elif "product_used" in literal_backup and literal_backup["product_used"]: + product_name = literal_backup["product_used"] + if product_name in bpy.data.objects: + literal_props.product_used = bpy.data.objects[product_name] + + literal_props.element_value_rows.clear() + if "element_value_rows" in literal_backup: + for row_data in literal_backup["element_value_rows"]: + new_row = literal_props.element_value_rows.add() + new_row.category = row_data.get("category", "") + new_row.element_key = row_data.get("element_key", "") + new_row.formatted_value = row_data.get("formatted_value", "") + new_row.separator = row_data.get("separator", "") + except (json.JSONDecodeError, KeyError) as e: + print(f"Failed to restore element_value_rows: {e}") + else: + if assigned_product_obj: + for literal_props in props.literals: + literal_props.product_used = assigned_product_obj + + return {"FINISHED"} class DisableEditingText(bpy.types.Operator, tool.Ifc.Operator): @@ -3209,15 +3388,31 @@ class AssignSelectedObjectAsProduct(bpy.types.Operator): element1 = tool.Ifc.get_entity(obj1) element2 = tool.Ifc.get_entity(obj2) assert element1 and element2 - if element1.is_a("IfcAnnotation"): + + # Check if at least one object is an IfcAnnotation + is_annotation1 = element1.is_a("IfcAnnotation") + is_annotation2 = element2.is_a("IfcAnnotation") + + if not (is_annotation1 or is_annotation2): + self.report({"ERROR"}, "At least one of the selected objects must be IfcAnnotation.") + return {"CANCELLED"} + + # If both are annotations, use the currently active object as relating product + if is_annotation1 and is_annotation2: + active_obj = context.active_object + if active_obj == obj1: + other_selected_object = obj1 + bpy.context.view_layer.objects.active = obj2 + else: + other_selected_object = obj2 + bpy.context.view_layer.objects.active = obj1 + # If only one is an annotation, make it the active object + elif is_annotation1: other_selected_object = obj2 bpy.context.view_layer.objects.active = obj1 - elif element2.is_a("IfcAnnotation"): + else: other_selected_object = obj1 bpy.context.view_layer.objects.active = obj2 - else: - self.report({"ERROR"}, "One of the selected objects must be IfcAnnotation.") - return {"CANCELLED"} assert (active_obj := context.active_object) props = tool.Drawing.get_object_assigned_product_props(active_obj) @@ -3415,6 +3610,15 @@ class LoadDrawings(bpy.types.Operator, tool.Ifc.Operator): bl_options = {"REGISTER", "UNDO"} + @classmethod + def poll(cls, context): + # Operator is not accessible through UI if IFC project is not saved, + # but adding poll check to avoid using Drawings UI in scripts with unsaved project. + if tool.Ifc.get_path(): + return True + cls.poll_message_set("IFC project is not saved.") + return False + def _execute(self, context): core.load_drawings(tool.Drawing) @@ -3614,18 +3818,100 @@ class AddReferenceImage(bpy.types.Operator, tool.Ifc.Operator, ImportHelper): options={"SKIP_SAVE"}, ) + x_length: bpy.props.FloatProperty( + name="X Length", + description="Width of the reference image in project units", + default=1.0, + min=0.001, + soft_min=0.01, + precision=3, + ) + y_length: bpy.props.FloatProperty( + name="Y Length", + description="Height of the reference image in project units", + default=1.0, + min=0.001, + soft_min=0.01, + precision=3, + ) + + show_dimensions_dialog: bpy.props.BoolProperty(default=False, options={"HIDDEN", "SKIP_SAVE"}) + def draw(self, context): layout = self.layout - if Path(tool.Ifc.get_path()).is_file(): - layout.prop(self, "use_relative_path") + + if getattr(self, "show_dimensions_dialog", False): + if tool.Ifc.get(): + length_unit = ifcopenshell.util.unit.get_project_unit(tool.Ifc.get(), "LENGTHUNIT") + if length_unit: + unit_name = ifcopenshell.util.unit.get_full_unit_name(length_unit).lower() + else: + unit_name = "project units" + layout.label(text=f"Set Reference Image Dimensions (in {unit_name}):") + else: + layout.label(text="Set Reference Image Dimensions (in project units):") + layout.separator() + layout.prop(self, "x_length") + layout.prop(self, "y_length") else: - self.use_relative_path = False - layout.label(text="Save the .ifc file first ") - layout.label(text="to use relative paths.") - layout.prop(self, "override_existing_image") - layout.prop(self, "use_existing_object_by_name") + if Path(tool.Ifc.get_path()).is_file(): + layout.prop(self, "use_relative_path") + else: + self.use_relative_path = False + layout.label(text="Save the .ifc file first ") + layout.label(text="to use relative paths.") + layout.prop(self, "override_existing_image") + layout.prop(self, "use_existing_object_by_name") + + def invoke(self, context, event): + if not getattr(self, "show_dimensions_dialog", False): + context.window_manager.fileselect_add(self) + return {"RUNNING_MODAL"} + else: + return context.window_manager.invoke_props_dialog(self) + + def execute(self, context): + if not getattr(self, "show_dimensions_dialog", False): + abs_path = Path(self.filepath).absolute().resolve() + if self.override_existing_image: + params = {"check_existing": True, "force_reload": True} + else: + params = {"check_existing": False} + + try: + image = load_image(abs_path.name, str(abs_path.parent), **params) + + image_width_px = image.size[0] + image_height_px = image.size[1] + aspect_ratio = image_width_px / image_height_px + + if aspect_ratio >= 1.0: + self.x_length = 1.0 + self.y_length = 1.0 / aspect_ratio + else: + self.x_length = aspect_ratio + self.y_length = 1.0 + + bpy.data.images.remove(image) + + except Exception as e: + self.report({"ERROR"}, f"Failed to load image: {str(e)}") + return {"CANCELLED"} + + self.show_dimensions_dialog = True + return context.window_manager.invoke_props_dialog(self) + + return self._execute(context) def _execute(self, context): + space = tool.Blender.get_view3d_space() + if space.shading.color_type != "TEXTURE": + space.shading.color_type = "TEXTURE" + self.report( + {"WARNING"}, + '"Object Color" for Viewport Shading: Solid changed to "Texture" to see the reference image properly.', + ) + abs_path = Path(self.filepath).absolute().resolve() image_filepath = Path(tool.Ifc.get_uri(self.filepath, use_relative_path=self.use_relative_path)) ifc_file = tool.Ifc.get() @@ -3634,13 +3920,39 @@ class AddReferenceImage(bpy.types.Operator, tool.Ifc.Operator, ImportHelper): params = {"check_existing": True, "force_reload": True} else: params = {"check_existing": False} - image = load_image(abs_path.name, abs_path.parent, **params) + image = load_image(abs_path.name, str(abs_path.parent), **params) def bm_add_image_plane(mesh): bm = tool.Blender.get_bmesh_for_mesh(mesh, clean=True) - plane_scale = (Vector(image.size) / min(image.size)).to_3d() + + unit_scale = ifcopenshell.util.unit.calculate_unit_scale(ifc_file) + plane_scale = Vector((self.x_length * unit_scale / 2.0, self.y_length * unit_scale / 2.0, 1.0)) matrix = Matrix.LocRotScale(None, None, plane_scale) bmesh.ops.create_grid(bm, x_segments=1, y_segments=1, size=1, matrix=matrix, calc_uvs=False) + + if not bm.loops.layers.uv: + uv_layer = bm.loops.layers.uv.new() + else: + uv_layer = bm.loops.layers.uv.active + + min_x = min(v.co.x for v in bm.verts) + max_x = max(v.co.x for v in bm.verts) + min_y = min(v.co.y for v in bm.verts) + max_y = max(v.co.y for v in bm.verts) + + width = max_x - min_x + height = max_y - min_y + + for face in bm.faces: + for loop in face.loops: + vert = loop.vert + u = (vert.co.x - min_x) / width if width > 0 else 0.5 + v = (vert.co.y - min_y) / height if height > 0 else 0.5 + + u = max(0.0, min(1.0, u)) + v = max(0.0, min(1.0, v)) + loop[uv_layer].uv = (u, v) + tool.Blender.apply_bmesh(mesh, bm) if self.use_existing_object_by_name: @@ -3661,6 +3973,23 @@ class AddReferenceImage(bpy.types.Operator, tool.Ifc.Operator, ImportHelper): ) tool.Blender.remove_data_block(temp_mesh) + element = tool.Ifc.get_entity(obj) + if element and isinstance(obj.data, bpy.types.Mesh): + representation = ifcopenshell.util.representation.get_representation(element, "Model", "Body", "MODEL_VIEW") + if representation and representation.Items: + item_id = representation.Items[0].id() + num_faces = len(obj.data.polygons) + obj.data["ios_item_ids"] = [item_id] * num_faces + tool.Blender.Attribute.fill_attribute(obj.data, "ios_item_ids", "FACE", "INT", [item_id] * num_faces) + + for item in representation.Items: + if item.is_a("IfcPolygonalFaceSet") and item.Coordinates: + new_coords = [] + for vertex in obj.data.vertices: + co = obj.matrix_world @ vertex.co + new_coords.append([co.x, co.y, co.z]) + item.Coordinates.CoordList = new_coords + tool.Blender.set_active_object(obj) material = bpy.data.materials.new(name=image_filepath.stem) @@ -3701,6 +4030,8 @@ class AddReferenceImage(bpy.types.Operator, tool.Ifc.Operator, ImportHelper): tool.Style.reload_material_from_ifc(material) tool.Geometry.record_object_materials(obj) + return {"FINISHED"} + class ConvertSVGToDXF(bpy.types.Operator): bl_idname = "bim.convert_svg_to_dxf" @@ -3785,3 +4116,1319 @@ class ExcludeAnnotation(bpy.types.Operator, tool.Ifc.Operator): if referenced_element := tool.Drawing.get_annotation_element(element): tool.Drawing.exclude_annotation_from_drawing(referenced_element, drawing) core.sync_references(tool.Ifc, tool.Collector, tool.Drawing, drawing=drawing) + + +class ActivateDrawingByAnnotation(bpy.types.Operator, tool.Ifc.Operator): + bl_idname = "bim.activate_drawing_by_annotation" + bl_label = "Activate Drawing" + bl_description = "Activate the drawing corresponding to the selected annotation" + bl_options = {"REGISTER", "UNDO"} + + @classmethod + def poll(cls, context): + # Check if an annotation object is selected + if not context.selected_objects: + cls.poll_message_set("No object selected") + return False + + active_obj = context.active_object + if not active_obj: + cls.poll_message_set("No active object") + return False + + element = tool.Ifc.get_entity(active_obj) + if not element: + cls.poll_message_set("Selected object is not an IFC element") + return False + + # Check if it's an IfcAnnotation with ObjectType = "SECTION" or "ELEVATION" + if not element.is_a("IfcAnnotation") or element.ObjectType not in ["SECTION", "ELEVATION"]: + cls.poll_message_set("Selected object is not a drawing annotation") + return False + + return True + + def _execute(self, context): + active_obj = context.active_object + element = tool.Ifc.get_entity(active_obj) + + if not element or not element.is_a("IfcAnnotation") or element.ObjectType not in ["SECTION", "ELEVATION"]: + self.report({"ERROR"}, "Selected object is not a drawing annotation") + return {"CANCELLED"} + + # Find the drawing/camera element that this annotation references + drawing_element = self.find_drawing_from_annotation(element) + + if not drawing_element: + self.report({"ERROR"}, "Could not find drawing element for this annotation") + return {"CANCELLED"} + + # Use the existing ActivateDrawing operator with the drawing element's ID + bpy.ops.bim.activate_drawing(drawing=drawing_element.id()) + + return {"FINISHED"} + + def find_drawing_from_annotation(self, annotation_element): + """Find the drawing/camera element that this annotation references.""" + ifc = tool.Ifc.get() + + # Check IfcRelAssignsToProduct relationships + for rel in ifc.get_inverse(annotation_element): + if rel.is_a("IfcRelAssignsToProduct") and rel.RelatingProduct: + if rel.RelatingProduct.is_a("IfcAnnotation"): + # Found the drawing element! + return rel.RelatingProduct + + return None + + +class SelectSimilarTextLiteralValue(bpy.types.Operator): + bl_idname = "bim.select_similar_text_literal_value" + bl_label = "" + bl_description = "Click to select all text annotations with this value\n\nSHIFT+CLICK to remove from selection" + bl_options = {"REGISTER", "UNDO"} + + literal_value: bpy.props.StringProperty() + literal_index: bpy.props.IntProperty(default=0) + attribute_type: bpy.props.StringProperty(default="text") + display_text: bpy.props.StringProperty() + remove_from_selection: bpy.props.BoolProperty(default=False, options={"SKIP_SAVE"}) + + def invoke(self, context, event): + if hasattr(event, "type") and event.type == "LEFTMOUSE": + self.remove_from_selection = event.shift + elif hasattr(event, "shift"): + self.remove_from_selection = event.shift + + return self.execute(context) + + def execute(self, context): + if not self.literal_value and self.attribute_type in ["text", "path", "box_alignment", "font_size"]: + return {"CANCELLED"} + + editing_status = {} + for obj in context.visible_objects: + obj_props = tool.Drawing.get_text_props(obj) + editing_status[obj] = obj_props.is_editing if hasattr(obj_props, "is_editing") else False + + count = 0 + for obj in context.visible_objects: + element = tool.Ifc.get_entity(obj) + if not element or not tool.Drawing.is_annotation_object_type(element, ["TEXT", "TEXT_LEADER"]): + continue + + obj_props = tool.Drawing.get_text_props(obj) + should_select = False + + if self.attribute_type in ["text", "path", "box_alignment", "font_size", "literal", "resolved_text"]: + was_editing = obj_props.is_editing if hasattr(obj_props, "is_editing") else False + if not was_editing: + core.enable_editing_text(tool.Drawing, obj=obj) + + if self.attribute_type == "font_size": + should_select = str(obj_props.font_size) == self.literal_value + elif self.attribute_type == "literal": + for idx, literal in enumerate(obj_props.literals): + if len(literal.attributes) > 0: + if literal.attributes[0].string_value == self.literal_value: + should_select = True + break + elif self.attribute_type == "resolved_text": + for idx, literal in enumerate(obj_props.literals): + if len(literal.attributes) > 0: + raw_value = literal.attributes[0].string_value + assigned_element = tool.Drawing.get_assigned_product(element) or element + resolved_value = tool.Drawing.replace_text_literal_variables(raw_value, assigned_element) + if resolved_value == self.literal_value: + should_select = True + break + else: + for idx, literal in enumerate(obj_props.literals): + if self.attribute_type == "text" and len(literal.attributes) > 0: + raw_value = literal.attributes[0].string_value + assigned_element = tool.Drawing.get_assigned_product(element) or element + resolved_value = tool.Drawing.replace_text_literal_variables(raw_value, assigned_element) + if resolved_value == self.literal_value: + should_select = True + break + elif self.attribute_type == "path" and len(literal.attributes) > 1: + attr = literal.attributes[1] + if attr.data_type == "enum": + if attr.enum_value == self.literal_value: + should_select = True + break + else: + if attr.string_value == self.literal_value: + should_select = True + break + elif self.attribute_type == "box_alignment": + box_alignment_attr = next( + (attr for attr in literal.attributes if attr.name == "BoxAlignment"), None + ) + if box_alignment_attr and box_alignment_attr.string_value == self.literal_value: + should_select = True + break + + if should_select: + obj.select_set(not self.remove_from_selection) + count += 1 + + for obj, was_editing in editing_status.items(): + obj_props = tool.Drawing.get_text_props(obj) + if hasattr(obj_props, "is_editing"): + if was_editing and not obj_props.is_editing: + core.enable_editing_text(tool.Drawing, obj=obj) + elif not was_editing and obj_props.is_editing: + core.disable_editing_text(tool.Drawing, obj=obj) + + if self.attribute_type in ["text", "path", "box_alignment"]: + result = f'literal[{self.literal_index}].{self.attribute_type} = "{self.literal_value}"' + else: + result = f'{self.attribute_type} = "{self.literal_value}"' + + verb = "Deselected" if self.remove_from_selection else "Selected" + self.report( + {"INFO"}, + f"{verb} {count} objects with {self.attribute_type} '{self.literal_value}'.", + ) + + return {"FINISHED"} + + +class FilterSelectedObjectsIfIntersectedByCamera(bpy.types.Operator): + bl_idname = "bim.filter_selected_objects_if_intersected_by_camera" + bl_label = "Filter Selected Objects If Intersected by Camera" + bl_options = {"REGISTER", "UNDO"} + bl_description = "Deselect objects that are not intersected by the active camera view" + + @classmethod + def poll(cls, context): + return context.scene.camera is not None and len(context.selected_objects) > 0 + + def execute(self, context): + self.filter_selected_objects_if_intersected_by_camera(context) + return {"FINISHED"} + + def filter_selected_objects_if_intersected_by_camera(self, context: bpy.types.Context) -> None: + camera_obj = context.scene.camera + if not camera_obj: + return + + camera = camera_obj.data + if not isinstance(camera, bpy.types.Camera): + return + + cam_matrix = camera_obj.matrix_world + cam_origin = cam_matrix.translation + cam_direction = cam_matrix.to_quaternion() @ Vector((0.0, 0.0, -1.0)) + plane_normal = cam_direction.normalized() + plane_point = cam_origin + + def point_plane_distance(point): + return (point - plane_point).dot(plane_normal) + + selected_objects = [obj for obj in context.selected_objects if obj != camera_obj] + + deselected = 0 + for obj in selected_objects: + bbox_world = [obj.matrix_world @ Vector(corner) for corner in obj.bound_box] + distances = [point_plane_distance(p) for p in bbox_world] + min_d = min(distances) + max_d = max(distances) + + intersects = (min_d <= 0.0 <= max_d) or (max_d <= 0.0 <= min_d) + + if not intersects: + obj.select_set(False) + deselected += 1 + + remaining_selected = len([obj for obj in context.selected_objects if obj != camera_obj]) + self.report( + {"INFO"}, f"Filtered to {remaining_selected} object(s) intersecting camera plane (deselected {deselected})" + ) + return {"FINISHED"} + + +class SelectElementValues(bpy.types.Operator): + bl_idname = "bim.select_element_values" + bl_label = "Select Element Values" + bl_description = "Select a property or quantity from the assigned product to insert into the text literal" + bl_options = {"REGISTER", "UNDO"} + + literal_prop_id: bpy.props.IntProperty() + expanded_category: bpy.props.StringProperty(default="Basic") + + def invoke(self, context, event): + return context.window_manager.invoke_props_dialog(self, width=600) + + def draw(self, context): + obj = context.active_object + element = tool.Ifc.get_entity(obj) + assigned_product = tool.Drawing.get_assigned_product(element) + if not assigned_product: + self.layout.label(text="No product assigned to this annotation", icon="ERROR") + return + + if not ElementValuesData.is_loaded: + ElementValuesData.load() + available_keys = ElementValuesData.get_available_element_value_keys(assigned_product) + + for category_name, keys in available_keys.items(): + if not keys: + continue + + box = self.layout.box() + box.label(text=category_name, icon=self.get_category_icon(category_name)) + + for key, description in keys: + row = box.row() + row.label(text=description) + + def execute(self, context): + return {"FINISHED"} + + def get_category_icon(self, category_name): + icons = { + "Basic": "OBJECT_DATA", + "Attributes": "PROPERTIES", + "Property Sets": "PROPERTIES", + "Quantity Sets": "SNAP_VOLUME", + "Type": "OUTLINER_OB_MESH", + "Spatial": "HOME", + "Parent": "FILE_PARENT", + "Classification": "BOOKMARKS", + "Groups": "GROUP", + "Systems": "SYSTEM", + "Zones": "MESH_CIRCLE", + "Material": "MATERIAL", + "Coordinates": "EMPTY_ARROWS", + } + return icons.get(category_name, "DOT") + + +class ToggleElementValuesPanel(bpy.types.Operator): + bl_idname = "bim.toggle_element_values_panel" + bl_label = "Toggle Element Values Panel" + bl_options = {"REGISTER", "UNDO"} + + literal_prop_id: bpy.props.IntProperty() + + def execute(self, context): + obj = context.active_object + if not obj: + return {"CANCELLED"} + + props = tool.Drawing.get_text_props(obj) + if self.literal_prop_id >= len(props.literals): + return {"CANCELLED"} + + literal_props = props.literals[self.literal_prop_id] + + current_state = getattr(literal_props, "show_element_values", False) + literal_props.show_element_values = not current_state + + return {"FINISHED"} + + +class ToggleElementValuesCategory(bpy.types.Operator): + bl_idname = "bim.toggle_element_values_category" + bl_label = "Toggle Element Values Category" + bl_options = {"REGISTER", "UNDO"} + + category_name: bpy.props.StringProperty() + literal_prop_id: bpy.props.IntProperty() + is_currently_expanded: bpy.props.BoolProperty() + + def execute(self, context): + obj = context.active_object + if not obj: + return {"CANCELLED"} + + props = tool.Drawing.get_text_props(obj) + if self.literal_prop_id >= len(props.literals): + return {"CANCELLED"} + + literal_props = props.literals[self.literal_prop_id] + + if self.is_currently_expanded: + literal_props.expanded_category = "" + else: + literal_props.expanded_category = self.category_name + + return {"FINISHED"} + + +class InsertFormattedLiteralPopup(bpy.types.Operator): + bl_idname = "bim.insert_formatted_literal_popup" + bl_label = "Insert Formatted Element Value" + bl_description = "Insert element value with formatting options" + bl_options = {"REGISTER", "UNDO"} + + literal_prop_id: bpy.props.IntProperty() + element_value_key: bpy.props.StringProperty() + value_number: bpy.props.IntProperty() + + formatting_type: bpy.props.EnumProperty( + name="Formatting", + items=[ + ("NONE", "No Formatting", "Insert value as-is"), + ("UPPER", "Uppercase", "Convert to uppercase"), + ("LOWER", "Lowercase", "Convert to lowercase"), + ("TITLE", "Title Case", "Convert to title case"), + ("ROUND", "Round Number", "Round to specified precision"), + ("INT", "Integer", "Truncate decimal part"), + ("NUMBER", "Format Number", "Format with separators"), + ("METRIC_LENGTH", "Metric Length", "Format as metric length"), + ("IMPERIAL_LENGTH", "Imperial Length", "Format as imperial length"), + ("CUSTOM", "Custom Expression", "Create custom expression with functions"), + ], + default="NONE", + ) + + round_precision: bpy.props.StringProperty( + name="Precision", description="Rounding precision (e.g. 0.1, 0.01, 0.001, 1, 10, 100)", default="0.01" + ) + + decimal_separator: bpy.props.StringProperty( + name="Decimal Separator", description="Decimal separator character", default=".", maxlen=1 + ) + + thousands_separator: bpy.props.StringProperty( + name="Thousands Separator", description="Thousands separator character", default=",", maxlen=1 + ) + + metric_decimals: bpy.props.IntProperty( + name="Decimal Places", description="Number of decimal places to show", default=2, min=0, max=10 + ) + + metric_precision: bpy.props.StringProperty( + name="Metric Precision", + description="Rounding precision for metric length (e.g. 0.1, 0.01, 0.001)", + default="0.01", + ) + + imperial_precision: bpy.props.IntProperty( + name="Fraction Precision", description="Imperial fraction precision (1/N)", default=4, min=1, max=64 + ) + + imperial_input_unit: bpy.props.EnumProperty( + name="Input Unit", + items=[ + ("foot", "Feet", "Input value is in feet"), + ("inch", "Inches", "Input value is in inches"), + ], + default="foot", + ) + + imperial_output_unit: bpy.props.EnumProperty( + name="Output Format", + items=[ + ("foot", "Feet and Inches", "Display as feet and inches"), + ("inch", "Inches Only", "Display as inches only"), + ], + default="foot", + ) + + custom_expression: bpy.props.StringProperty( + name="Custom Expression", + description=( + "Custom expression using functions like concat(), upper(), round(), etc.\n" + "Use {{value}} as placeholder for the selected element value.\n" + "Examples:\n" + '- concat("Name: ", {{value}})\n' + '- upper(concat("Type: ", {{value}}))' + ), + default='concat({{value}}, " - additional text")', + ) + + def invoke(self, context, event): + return context.window_manager.invoke_props_dialog(self, width=450) + + def draw(self, context): + layout = self.layout + + box = layout.box() + box.label(text=f"Element Value: {self.element_value_key}", icon="PROPERTIES") + + layout.prop(self, "formatting_type") + + if self.formatting_type == "ROUND": + layout.prop(self, "round_precision") + elif self.formatting_type == "NUMBER": + col = layout.column() + col.prop(self, "decimal_separator") + col.prop(self, "thousands_separator") + elif self.formatting_type == "METRIC_LENGTH": + col = layout.column() + col.prop(self, "metric_precision") + col.prop(self, "metric_decimals") + elif self.formatting_type == "IMPERIAL_LENGTH": + col = layout.column() + col.prop(self, "imperial_precision") + col.prop(self, "imperial_input_unit") + col.prop(self, "imperial_output_unit") + elif self.formatting_type == "CUSTOM": + col = layout.column() + col.prop(self, "custom_expression", text="") + + obj = bpy.context.active_object + if obj: + element = tool.Ifc.get_entity(obj) + + props = tool.Drawing.get_text_props(obj) + product = None + + if props.literals: + for literal_props in props.literals: + if hasattr(literal_props, "product_used") and literal_props.product_used: + product = tool.Ifc.get_entity(literal_props.product_used) + break + + if not product: + product = tool.Drawing.get_assigned_product(element) + + if not product: + product = element + + if product: + all_categories = ElementValuesData.get_available_element_value_keys(product) + + available_keys = [] + for cat_name, cat_keys in all_categories.items(): + for cat_key, cat_desc in cat_keys: + available_keys.append( + ( + cat_key, + f"[{cat_name}] {cat_desc.split(': ', 1)[-1] if ': ' in cat_desc else cat_desc}", + ) + ) + + if available_keys: + help_box = col.box() + help_box.scale_y = 0.7 + help_box.label(text="Available attributes:", icon="INFO") + + for i, (key, desc) in enumerate(available_keys[:5]): + help_box.label(text="{{value{}}} = {} ({})".format(i + 1, key, desc)) + + if len(available_keys) > 5: + help_box.label(text=f"... and {len(available_keys) - 5} more attributes") + + help_box = col.box() + help_box.scale_y = 0.8 + help_box.label(text="Available functions:", icon="INFO") + help_box.label(text="• concat(text1, text2, ...) - combine values") + help_box.label(text="• upper(value) - uppercase") + help_box.label(text="• lower(value) - lowercase") + help_box.label(text="• round(value, precision) - round number") + help_box.label(text="• Use {{value}} for current element value") + + preview_box = layout.box() + preview_box.label(text="Preview:", icon="PROPERTIES") + formatted_syntax = self._generate_formatted_syntax() + + preview_text = formatted_syntax + if len(preview_text) > 60: + words = preview_text.split() + lines = [] + current_line = "" + for word in words: + if len(current_line + " " + word) > 60 and current_line: + lines.append(current_line) + current_line = word + else: + current_line = (current_line + " " + word).strip() + if current_line: + lines.append(current_line) + + for line in lines: + preview_box.label(text=line) + else: + preview_box.label(text=preview_text) + + def _get_all_available_keys(self, element): + """Get all available element value keys in a flat list with their descriptions""" + available_keys = [] + + all_categories = ElementValuesData.get_available_element_value_keys(element) + + for category_name, keys in all_categories.items(): + for key, description in keys: + available_keys.append( + (key, f"[{category_name}] {description.split(': ', 1)[-1] if ': ' in description else description}") + ) + + return available_keys + + def _generate_formatted_syntax(self) -> str: + """Generate the formatted selector syntax based on current settings""" + base_value = f"{{{{{self.element_value_key}}}}}" + + if self.formatting_type == "NONE": + return base_value + elif self.formatting_type == "UPPER": + return f"``upper({base_value})`` " + elif self.formatting_type == "LOWER": + return f"``lower({base_value})`` " + elif self.formatting_type == "TITLE": + return f"``title({base_value})`` " + elif self.formatting_type == "ROUND": + return f"``round({base_value}, {self.round_precision})`` " + elif self.formatting_type == "INT": + return f"``int({base_value})`` " + elif self.formatting_type == "NUMBER": + return f"``number({base_value}, {self.decimal_separator}, {self.thousands_separator})`` " + elif self.formatting_type == "METRIC_LENGTH": + return f"``metric_length({base_value}, {self.metric_precision}, {self.metric_decimals})`` " + elif self.formatting_type == "IMPERIAL_LENGTH": + return f'``imperial_length({base_value}, {self.imperial_precision}, "{self.imperial_input_unit}", "{self.imperial_output_unit}")`` ' + elif self.formatting_type == "CUSTOM": + custom_expr = self.custom_expression.replace("{{value}}", base_value) + return f"``{custom_expr}``" + + return base_value + + def execute(self, context): + obj = context.active_object + assert obj + props = tool.Drawing.get_text_props(obj) + literal_props = props.literals[self.literal_prop_id] + + formatted_syntax = self._generate_formatted_syntax() + + for attr in literal_props.attributes: + if attr.name == "Literal": + current_text = attr.string_value or "" + + if current_text: + attr.string_value = f"{current_text} {formatted_syntax}" + else: + attr.string_value = formatted_syntax + break + + tool.Blender.update_viewport() + return {"FINISHED"} + + +class ShowCategoryHelp(bpy.types.Operator): + bl_idname = "bim.show_category_help" + bl_label = "Category Help" + bl_description = "Show help for this element value category" + bl_options = {"REGISTER"} + + category_name: bpy.props.StringProperty() + + def invoke(self, context, event): + return context.window_manager.invoke_props_dialog(self, width=600) + + def draw(self, context): + layout = self.layout + + category_help = { + "Basic": { + "title": "BASIC KEYS", + "icon": "DOT", + "items": [ + ("id", "IFC entity ID", "{{id}} → '12345'"), + ("class", "IFC class name", "{{class}} → 'IfcWall'"), + ("predefined_type", "Predefined type", "{{predefined_type}} → 'SOLIDWALL'"), + ], + }, + "Attributes": { + "title": "ATTRIBUTES", + "icon": "PROPERTIES", + "items": [ + ("Name", "Element name", "{{Name}} → 'Wall-001'"), + ("Description", "Element description", "{{Description}} → 'Exterior wall'"), + ("Tag", "Element tag", "{{Tag}} → 'W-01'"), + ("ObjectType", "Object type", "{{ObjectType}} → 'Load Bearing'"), + ], + "note": "All IFC attributes are accessible by their name", + }, + "Property Sets": { + "title": "PROPERTY SETS", + "icon": "ALIGN_JUSTIFY", + "items": [ + ("Pset_*.PropertyName", "Property value", "{{Pset_WallCommon.FireRating}} → 'REI 120'"), + ("Pset_*.IsExternal", "Boolean property", "{{Pset_WallCommon.IsExternal}} → 'True'"), + ], + "note": "Access any property from any property set using Pset_Name.PropertyName syntax", + }, + "Quantity Sets": { + "title": "QUANTITY SETS", + "icon": "ALIGN_JUSTIFY", + "items": [ + ("Qto_*.QuantityName", "Quantity value", "{{Qto_WallBaseQuantities.NetArea}} → '45.5'"), + ("Qto_*.NetVolume", "Volume quantity", "{{Qto_WallBaseQuantities.NetVolume}} → '9.1'"), + ], + "note": "Access any quantity from quantity sets using Qto_Name.QuantityName syntax", + }, + "Type": { + "title": "TYPE INFORMATION", + "icon": "OUTLINER_OB_MESH", + "items": [ + ("type.Name", "Type element name", "{{type.Name}} → 'WT-200mm-Concrete'"), + ("types.count", "Number of instances of this type", "{{types.count}} → '15'"), + ("occurrences.count", "Same as types.count", "{{occurrences.count}} → '15'"), + ], + "example": "Type: {{type.Name}} ({{types.count}} instances)", + }, + "Spatial": { + "title": "SPATIAL HIERARCHY", + "icon": "HOME", + "items": [ + ("container.Name", "Immediate spatial container", "{{container.Name}} → 'Level 2'"), + ("space.Name", "Containing space", "{{space.Name}} → 'Office 205'"), + ("storey.Name", "Building storey", "{{storey.Name}} → 'Level 2'"), + ("building.Name", "Building", "{{building.Name}} → 'Building A'"), + ("site.Name", "Site", "{{site.Name}} → 'Main Campus'"), + ], + "example": "{{building.Name}} / {{storey.Name}} / {{space.Name}}", + }, + "Parent": { + "title": "PARENT (AGGREGATION)", + "icon": "OUTLINER_DATA_GP_LAYER", + "items": [ + ("parent.name", "Aggregate parent element", "{{parent.name}} → 'Curtain Wall-01'"), + ], + "note": "Used for aggregated elements like mullions in curtain walls", + }, + "Material": { + "title": "MATERIALS", + "icon": "MATERIAL", + "items": [ + ("material.Name", "Material name", "{{material.Name}} → 'Concrete'"), + ("materials.count", "Number of layers/profiles", "{{materials.count}} → '3'"), + ( + "material.item.Material.Name.0", + "First layer material", + "{{material.item.Material.Name.0}} → 'Brick'", + ), + ( + "material.item.Material.Name.1", + "Second layer material", + "{{material.item.Material.Name.1}} → 'Insulation'", + ), + ("material.item.0.LayerThickness", "Layer thickness", "{{material.item.0.LayerThickness}} → '0.1'"), + ], + "example": "{{materials.count}} layers: {{material.item.Material.Name.0}}", + }, + "Styles": { + "title": "PRESENTATION STYLES", + "icon": "COLOR", + "items": [ + ("styles.count", "Number of styles", "{{styles.count}} → '1'"), + ("styles.0.Name", "Style name (indexed)", "{{styles.0.Name}} → 'Red'"), + ("styles.0.Color", "RGB color value", "{{styles.0.Color}} → 'RGB(1.00, 0.00, 0.00)'"), + ], + }, + "Profiles": { + "title": "PROFILES", + "icon": "OUTLINER_DATA_CURVES", + "items": [ + ("profiles.count", "Number of profiles", "{{profiles.count}} → '2'"), + ("profiles.0.ProfileName", "Profile name (indexed)", "{{profiles.0.ProfileName}} → 'HEA200'"), + ("profiles.0.ProfileType", "Profile type (indexed)", "{{profiles.0.ProfileType}} → 'AREA'"), + ("profile.ProfileName", "Single swept profile", "{{profile.ProfileName}} → 'Rectangle'"), + ], + }, + "Groups": { + "title": "GROUPS", + "icon": "OUTLINER_OB_GROUP_INSTANCE", + "items": [ + ("group.Name", "Group name", "{{group.Name}} → 'Phase 1'"), + ("groups.count", "Number of group assignments", "{{groups.count}} → '2'"), + ], + }, + "Systems": { + "title": "SYSTEMS", + "icon": "OUTLINER_OB_GROUP_INSTANCE", + "items": [ + ("system.Name", "System name", "{{system.Name}} → 'HVAC-01'"), + ("systems.count", "Number of system assignments", "{{systems.count}} → '1'"), + ], + }, + "Zones": { + "title": "ZONES", + "icon": "OUTLINER_OB_GROUP_INSTANCE", + "items": [ + ("zone.Name", "Zone name", "{{zone.Name}} → 'Fire Zone A'"), + ("zones.count", "Number of zone assignments", "{{zones.count}} → '1'"), + ], + }, + "Classification": { + "title": "CLASSIFICATION", + "icon": "PRESET", + "items": [ + ("classification.0.Name", "Classification name (indexed)", "{{classification.0.Name}} → 'Walls'"), + ( + "classification.0.Identification", + "Classification code (indexed)", + "{{classification.0.Identification}} → 'E20'", + ), + ("classification.count", "Number of classification references", "{{classification.count}} → '2'"), + ], + }, + "Coordinates": { + "title": "COORDINATES", + "icon": "ORIENTATION_VIEW", + "items": [ + ("x", "Local X coordinate", "{{x}} → '10.5'"), + ("y", "Local Y coordinate", "{{y}} → '5.2'"), + ("z", "Local Z coordinate", "{{z}} → '3.0'"), + ("easting", "Map easting coordinate", "{{easting}} → '500123.45'"), + ("northing", "Map northing coordinate", "{{northing}} → '6750234.56'"), + ("elevation", "Map elevation", "{{elevation}} → '123.45'"), + ], + }, + } + + if self.category_name in category_help: + info = category_help[self.category_name] + layout.label(text=info["title"], icon=info["icon"]) + + box = layout.box() + for key, desc, example in info["items"]: + col = box.column(align=True) + col.scale_y = 0.85 + col.label(text=f"{key} - {desc}") + col.label(text=f" {example}") + box.separator(factor=0.3) + + if "note" in info: + note_box = layout.box() + note_box.label(text="Note:", icon="INFO") + note_box.label(text=info["note"]) + + if "example" in info: + ex_box = layout.box() + ex_box.label(text="Example:", icon="SCRIPTPLUGINS") + ex_box.label(text=info["example"]) + else: + layout.label(text=f"No help available for '{self.category_name}'") + + def execute(self, context): + return {"FINISHED"} + + +class AddElementValueRow(bpy.types.Operator): + bl_idname = "bim.add_element_value_row" + bl_label = "Add Element Value Row" + bl_description = "Add a new element value row" + bl_options = {"REGISTER", "UNDO"} + + literal_prop_id: bpy.props.IntProperty() + + def execute(self, context): + obj = context.active_object + if not obj: + return {"CANCELLED"} + + props = tool.Drawing.get_text_props(obj) + if self.literal_prop_id >= len(props.literals): + return {"CANCELLED"} + + literal_props = props.literals[self.literal_prop_id] + new_row = literal_props.element_value_rows.add() + new_row.category = literal_props.category_for_adding + new_row.element_key = "" + new_row.formatted_value = "" + + if len(literal_props.element_value_rows) == 1: + new_row.separator = "" + else: + new_row.separator = " - " + + return {"FINISHED"} + + +class RemoveElementValueRow(bpy.types.Operator): + bl_idname = "bim.remove_element_value_row" + bl_label = "Remove Element Value Row" + bl_description = "Remove this element value row" + bl_options = {"REGISTER", "UNDO"} + + literal_prop_id: bpy.props.IntProperty() + row_index: bpy.props.IntProperty() + + def execute(self, context): + obj = context.active_object + if not obj: + return {"CANCELLED"} + + props = tool.Drawing.get_text_props(obj) + if self.literal_prop_id >= len(props.literals): + return {"CANCELLED"} + + literal_props = props.literals[self.literal_prop_id] + if self.row_index < len(literal_props.element_value_rows): + literal_props.element_value_rows.remove(self.row_index) + + return {"FINISHED"} + + +class ElementValueSuggestionsPopup(bpy.types.Operator): + bl_idname = "bim.element_value_suggestions_popup" + bl_label = "Element Value Suggestions" + bl_description = "Show suggestions for element values in the selected category" + bl_options = {"REGISTER", "UNDO"} + + literal_prop_id: bpy.props.IntProperty() + row_index: bpy.props.IntProperty() + category: bpy.props.StringProperty() + search_query: bpy.props.StringProperty(name="Search", description="Search for element values") + + collection_keys: bpy.props.CollectionProperty(type=StrProperty) + collection_descriptions: bpy.props.CollectionProperty(type=StrProperty) + + selected_key: bpy.props.StringProperty() + + def invoke(self, context, event): + obj = context.active_object + if not obj: + return {"CANCELLED"} + + props = tool.Drawing.get_text_props(obj) + if self.literal_prop_id >= len(props.literals): + return {"CANCELLED"} + + literal_props = props.literals[self.literal_prop_id] + current_product = get_current_product_for_element_values(obj, literal_props) + + if not current_product: + self.report({"ERROR"}, "No product selected. Use eyedropper to select an object.") + return {"CANCELLED"} + + element = tool.Ifc.get_entity(current_product) + if not element: + self.report({"ERROR"}, "Selected object has no IFC data") + return {"CANCELLED"} + + if not ElementValuesData.is_loaded: + ElementValuesData.load() + + available_keys = ElementValuesData.get_available_element_value_keys(element) + + if self.category not in available_keys: + self.report({"ERROR"}, f"Category '{self.category}' not found") + return {"CANCELLED"} + + keys = available_keys[self.category] + if not keys: + self.report({"INFO"}, f"No values available for category '{self.category}'") + return {"CANCELLED"} + + self.collection_keys.clear() + self.collection_descriptions.clear() + for key, description in keys: + self.collection_keys.add().name = key + self.collection_descriptions.add().name = description + + return context.window_manager.invoke_props_dialog(self, width=500) + + def draw(self, context): + layout = self.layout + + layout.prop_search(self, "selected_key", self, "collection_descriptions", text="Value") + + def execute(self, context): + if not self.selected_key: + return {"CANCELLED"} + + obj = context.active_object + if not obj: + return {"CANCELLED"} + + props = tool.Drawing.get_text_props(obj) + if self.literal_prop_id >= len(props.literals): + return {"CANCELLED"} + + literal_props = props.literals[self.literal_prop_id] + if self.row_index >= len(literal_props.element_value_rows): + return {"CANCELLED"} + + value_row = literal_props.element_value_rows[self.row_index] + + for idx, desc_item in enumerate(self.collection_descriptions): + if desc_item.name == self.selected_key: + actual_key = self.collection_keys[idx].name + value_row.element_key = actual_key + value_row.formatted_value = f"{{{{{actual_key}}}}}" + break + + return {"FINISHED"} + + +class FormatElementValueRow(bpy.types.Operator): + bl_idname = "bim.format_element_value_row" + bl_label = "Format Element Value" + bl_description = "Format element value with functions" + bl_options = {"REGISTER", "UNDO"} + + literal_prop_id: bpy.props.IntProperty() + row_index: bpy.props.IntProperty() + + formatting_type: bpy.props.EnumProperty( + name="Formatting", + items=[ + ("NONE", "No Formatting", "Insert value as-is"), + ("UPPER", "Uppercase", "Convert to uppercase"), + ("LOWER", "Lowercase", "Convert to lowercase"), + ("TITLE", "Title Case", "Convert to title case"), + ("ROUND", "Round Number", "Round to specified precision"), + ("INT", "Integer", "Truncate decimal part"), + ("NUMBER", "Format Number", "Format with separators"), + ("METRIC_LENGTH", "Metric Length", "Format as metric length"), + ("IMPERIAL_LENGTH", "Imperial Length", "Format as imperial length"), + ("CUSTOM", "Custom Expression", "Create custom expression with functions"), + ], + default="NONE", + ) + + round_precision: bpy.props.StringProperty( + name="Precision", description="Rounding precision (e.g. 0.1, 0.01, 0.001, 1, 10, 100)", default="0.01" + ) + + decimal_separator: bpy.props.StringProperty( + name="Decimal Separator", description="Decimal separator character", default=".", maxlen=1 + ) + + thousands_separator: bpy.props.StringProperty( + name="Thousands Separator", description="Thousands separator character", default=",", maxlen=1 + ) + + metric_decimals: bpy.props.IntProperty( + name="Decimal Places", description="Number of decimal places to show", default=2, min=0, max=10 + ) + + metric_precision: bpy.props.StringProperty( + name="Metric Precision", + description="Rounding precision for metric length (e.g. 0.1, 0.01, 0.001)", + default="0.01", + ) + + imperial_precision: bpy.props.IntProperty( + name="Fraction Precision", description="Imperial fraction precision (1/N)", default=4, min=1, max=64 + ) + + imperial_input_unit: bpy.props.EnumProperty( + name="Input Unit", + items=[ + ("foot", "Feet", "Input value is in feet"), + ("inch", "Inches", "Input value is in inches"), + ], + default="foot", + ) + + imperial_output_unit: bpy.props.EnumProperty( + name="Output Format", + items=[ + ("foot", "Feet and Inches", "Display as feet and inches"), + ("inch", "Inches Only", "Display as inches only"), + ], + default="foot", + ) + + custom_expression: bpy.props.StringProperty( + name="Custom Expression", + description=("Custom expression using functions\n" "Use {{value}} as placeholder for the current row's value."), + default='concat({{value}}, " - additional text")', + ) + + def invoke(self, context, event): + obj = context.active_object + if not obj: + return {"CANCELLED"} + + props = tool.Drawing.get_text_props(obj) + if self.literal_prop_id >= len(props.literals): + return {"CANCELLED"} + + literal_props = props.literals[self.literal_prop_id] + if self.row_index >= len(literal_props.element_value_rows): + return {"CANCELLED"} + + row = literal_props.element_value_rows[self.row_index] + self._load_formatting_from_row(row) + + return context.window_manager.invoke_props_dialog(self, width=450) + + def _load_formatting_from_row(self, row): + """Parse the formatted_value to load existing formatting settings""" + import re + + formatted_value = row.formatted_value + + if not formatted_value or formatted_value == f"{{{{{row.element_key}}}}}": + self.formatting_type = "NONE" + return + + if formatted_value.startswith("``") and formatted_value.endswith("``"): + expression = formatted_value[2:-2].strip() + else: + self.formatting_type = "NONE" + return + + if match := re.match(r"upper\(\{\{[^}]+\}\}\)", expression): + self.formatting_type = "UPPER" + + elif match := re.match(r"lower\(\{\{[^}]+\}\}\)", expression): + self.formatting_type = "LOWER" + + elif match := re.match(r"title\(\{\{[^}]+\}\}\)", expression): + self.formatting_type = "TITLE" + + elif match := re.match(r"int\(\{\{[^}]+\}\}\)", expression): + self.formatting_type = "INT" + + elif match := re.match(r"round\(\{\{[^}]+\}\},\s*([^)]+)\)", expression): + self.formatting_type = "ROUND" + self.round_precision = match.group(1).strip() + + elif match := re.match(r"number\(\{\{[^}]+\}\},\s*([^,]+),\s*([^)]+)\)", expression): + self.formatting_type = "NUMBER" + self.decimal_separator = match.group(1).strip() + self.thousands_separator = match.group(2).strip() + + elif match := re.match(r"metric_length\(\{\{[^}]+\}\},\s*([^,]+),\s*([^)]+)\)", expression): + self.formatting_type = "METRIC_LENGTH" + self.metric_precision = match.group(1).strip() + self.metric_decimals = int(match.group(2).strip()) + + elif match := re.match(r'imperial_length\(\{\{[^}]+\}\},\s*(\d+),\s*"([^"]+)",\s*"([^"]+)"\)', expression): + self.formatting_type = "IMPERIAL_LENGTH" + self.imperial_precision = int(match.group(1).strip()) + self.imperial_input_unit = match.group(2).strip() + self.imperial_output_unit = match.group(3).strip() + + else: + self.formatting_type = "CUSTOM" + self.custom_expression = expression + + def draw(self, context): + layout = self.layout + obj = context.active_object + props = tool.Drawing.get_text_props(obj) + literal_props = props.literals[self.literal_prop_id] + row = literal_props.element_value_rows[self.row_index] + + box = layout.box() + box.label(text=f"Element Value: {row.element_key}", icon="PROPERTIES") + + layout.prop(self, "formatting_type") + + if self.formatting_type == "ROUND": + layout.prop(self, "round_precision") + elif self.formatting_type == "NUMBER": + col = layout.column() + col.prop(self, "decimal_separator") + col.prop(self, "thousands_separator") + elif self.formatting_type == "METRIC_LENGTH": + col = layout.column() + col.prop(self, "metric_precision") + col.prop(self, "metric_decimals") + elif self.formatting_type == "IMPERIAL_LENGTH": + col = layout.column() + col.prop(self, "imperial_precision") + col.prop(self, "imperial_input_unit") + col.prop(self, "imperial_output_unit") + elif self.formatting_type == "CUSTOM": + col = layout.column() + col.prop(self, "custom_expression", text="") + + preview_box = layout.box() + preview_box.label(text="Preview:", icon="PROPERTIES") + formatted_syntax = self._generate_formatted_syntax(row.element_key) + preview_box.label(text=formatted_syntax) + + def _generate_formatted_syntax(self, element_key: str) -> str: + """Generate the formatted selector syntax based on current settings""" + base_value = f"{{{{{element_key}}}}}" + + if self.formatting_type == "NONE": + return base_value + elif self.formatting_type == "UPPER": + return f"``upper({base_value})``" + elif self.formatting_type == "LOWER": + return f"``lower({base_value})``" + elif self.formatting_type == "TITLE": + return f"``title({base_value})``" + elif self.formatting_type == "ROUND": + return f"``round({base_value}, {self.round_precision})``" + elif self.formatting_type == "INT": + return f"``int({base_value})``" + elif self.formatting_type == "NUMBER": + return f"``number({base_value}, {self.decimal_separator}, {self.thousands_separator})``" + elif self.formatting_type == "METRIC_LENGTH": + return f"``metric_length({base_value}, {self.metric_precision}, {self.metric_decimals})``" + elif self.formatting_type == "IMPERIAL_LENGTH": + return f'``imperial_length({base_value}, {self.imperial_precision}, "{self.imperial_input_unit}", "{self.imperial_output_unit}")``' + elif self.formatting_type == "CUSTOM": + custom_expr = self.custom_expression.replace("{{value}}", base_value) + return f"``{custom_expr}``" + + return base_value + + def execute(self, context): + obj = context.active_object + if not obj: + return {"CANCELLED"} + + props = tool.Drawing.get_text_props(obj) + literal_props = props.literals[self.literal_prop_id] + row = literal_props.element_value_rows[self.row_index] + + formatted_syntax = self._generate_formatted_syntax(row.element_key) + row.formatted_value = formatted_syntax + + tool.Blender.update_viewport() + return {"FINISHED"} + + +class ApplyElementValueRowsToLiteral(bpy.types.Operator): + bl_idname = "bim.apply_element_value_rows_to_literal" + bl_label = "Apply Element Values to Literal" + bl_description = "Concatenate all element value rows and apply to the literal" + bl_options = {"REGISTER", "UNDO"} + + literal_prop_id: bpy.props.IntProperty() + + def execute(self, context): + obj = context.active_object + if not obj: + return {"CANCELLED"} + + props = tool.Drawing.get_text_props(obj) + if self.literal_prop_id >= len(props.literals): + return {"CANCELLED"} + + literal_props = props.literals[self.literal_prop_id] + + parts = [] + for row in literal_props.element_value_rows: + if row.element_key: + if row.category == "Custom String": + parts.append(row.element_key) + else: + if row.formatted_value and row.formatted_value != f"{{{{{row.element_key}}}}}": + updated_formatted = self._update_formatted_value(row.element_key, row.formatted_value) + row.formatted_value = updated_formatted + value_part = updated_formatted + else: + default_format = f"{{{{{row.element_key}}}}}" + row.formatted_value = default_format + value_part = default_format + + parts.append(row.separator + value_part) + + concatenated_value = "".join(parts) + + for attr in literal_props.attributes: + if attr.name == "Literal": + attr.string_value = concatenated_value + break + + tool.Blender.update_viewport() + return {"FINISHED"} + + def _update_formatted_value(self, new_element_key: str, old_formatted_value: str) -> str: + """ + Update formatted value by replacing old element key placeholders with new one. + This preserves formatting functions like upper(), round(), etc. + """ + import re + + pattern = r"\{\{[^}]+\}\}" + + new_base_value = f"{{{{{new_element_key}}}}}" + updated_value = re.sub(pattern, new_base_value, old_formatted_value) + + return updated_value + + +class ShowElementValuesInstructions(bpy.types.Operator): + bl_idname = "bim.show_element_values_instructions" + bl_label = "Element Values - Quick Start Guide" + bl_description = "Show general tips and formatting instructions for element values" + bl_options = {"REGISTER"} + + def invoke(self, context, event): + return context.window_manager.invoke_props_dialog(self, width=700) + + def draw(self, context): + layout = self.layout + layout.label(text="Element Values - Building Custom Literals", icon="INFO") + + box = layout.box() + row = box.row() + row.label(text="Full Documentation:", icon="URL") + row.operator("wm.url_open", text="IFC Selector Syntax Guide", icon="URL").url = ( + "https://docs.ifcopenshell.org/ifcopenshell-python/selector_syntax.html#getting-element-values" + ) + + box = layout.box() + box.label(text="WORKFLOW: BUILDING LITERALS WITH ROWS", icon="SEQUENCE") + col = box.column(align=True) + col.scale_y = 0.85 + col.label(text="1. Select a category from the dropdown (Basic, Property Sets, etc.)") + col.label(text="2. Click 'Add Element' to create a new row") + col.label(text="3. Use the magnifying glass icon to browse available values for that category") + col.label(text="4. Optionally, click the format icon (star) to apply formatting (uppercase, round, etc.)") + col.label(text="5. Repeat to add more rows, each with its own separator text") + col.label(text="6. Click 'Apply to Literal' to concatenate all rows into the final text") + + box = layout.box() + box.label(text="SEPARATORS & CUSTOM TEXT", icon="THREE_DOTS") + col = box.column(align=True) + col.scale_y = 0.85 + col.label(text="• Each row has a separator field (shown before the value)") + col.label(text="• Default separator is ' - ' but you can change it to spaces, commas, newlines, etc.") + col.label(text="• Use 'Custom String' category to add plain text without any element key") + col.label(text="• Example: 'Custom String' row with 'Wall: ' → 'Custom String' with 'Type-' → 'Name' key") + col.label(text="• Result: 'Wall: Type-WALL-001' (combining custom text with element values)") + + box = layout.box() + box.label(text="SELECTING SOURCE ELEMENT", icon="EYEDROPPER") + col = box.column(align=True) + col.scale_y = 0.85 + col.label(text="• By default, uses the assigned product (if any) or the text annotation object itself") + col.label(text="• Use the eyedropper next to 'Element Values:' to select a different object") + col.label(text="• Useful for referencing values from related elements (like types, spaces, storeys)") + col.label(text="• The 'Source:' label shows which object is currently being used") + + box = layout.box() + box.label(text="FORMATTING FUNCTIONS (click star icon on any row)", icon="SHADERFX") + col = box.column(align=True) + col.scale_y = 0.8 + + col.label(text="Text Case:") + col.label(text=" • Uppercase, Lowercase, Title Case") + col.label(text=" Example: upper({{Name}}) → 'WALL-001'") + + col.separator(factor=0.5) + col.label(text="Numbers:") + col.label(text=" • Round - Round to precision (0.01, 0.1, 1, 10, etc.)") + col.label(text=" • Integer - Remove decimal part") + col.label(text=" • Number - Format with separators (1,234.56)") + + col.separator(factor=0.5) + col.label(text="Lengths:") + col.label(text=" • Metric Length - Format as metric with units (45.50 m²)") + col.label(text=" • Imperial Length - Format as feet-inches (10'-6\")") + + col.separator(factor=0.5) + col.label(text="Custom Expression:") + col.label(text=" • Write your own using functions: concat(), upper(), round(), etc.") + col.label(text=" • Use {{value}} as placeholder for the current row's value") + + box = layout.box() + box.label(text="TIPS & ADVANCED USAGE", icon="LIGHTPROBE_VOLUME") + col = box.column(align=True) + col.scale_y = 0.8 + col.label(text="• Category counts show available values: 'Property Sets (12)'") + col.label(text="• Regex patterns work in property set names: /Pset_.*Common/") + col.label(text="• Combine multiple formatted rows for complex labels") + col.label(text="• Each row remembers its own formatting when you re-edit it") + + def execute(self, context): + return {"FINISHED"} diff --git a/src/bonsai/bonsai/bim/module/drawing/prop.py b/src/bonsai/bonsai/bim/module/drawing/prop.py index 4dd025afc0..b323b8d41e 100644 --- a/src/bonsai/bonsai/bim/module/drawing/prop.py +++ b/src/bonsai/bonsai/bim/module/drawing/prop.py @@ -16,39 +16,45 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os -import bpy -import json import enum +import json +import os +from collections.abc import Callable +from pathlib import Path +from typing import TYPE_CHECKING, Any, Literal, Union, get_args + +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.pset import ifcopenshell.util.element -import bonsai.tool as tool -import bonsai.core.drawing as core -import bonsai.bim.module.drawing.annotation as annotation -import bonsai.bim.module.drawing.decoration as decoration -from mathutils import Matrix -from bonsai.bim.prop import BIMFilterGroup -from bonsai.bim.module.drawing.data import DrawingsData, DecoratorData, SheetsData, AnnotationData -from bonsai.bim.module.drawing.data import refresh as refresh_drawing_data -from pathlib import Path -from bonsai.bim.prop import Attribute, StrProperty -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + BoolVectorProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, - BoolVectorProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Literal, Any, get_args, Union -from collections.abc import Callable +from bpy.types import PropertyGroup +from mathutils import Matrix +import bonsai.bim.module.drawing.annotation as annotation +import bonsai.bim.module.drawing.decoration as decoration +import bonsai.core.drawing as core +import bonsai.tool as tool +from bonsai.bim.module.drawing.data import ( + AnnotationData, + DecoratorData, + DrawingsData, + ElementValuesData, + SheetsData, +) +from bonsai.bim.module.drawing.data import refresh as refresh_drawing_data +from bonsai.bim.prop import Attribute, BIMFilterGroup, StrProperty diagram_scales_enum = [] @@ -687,6 +693,107 @@ BOX_ALIGNMENT_POSITIONS = [ ] +class ElementValueRow(PropertyGroup): + """Represents a single element value row with category, key, and formatted value""" + + category: EnumProperty( + name="Category", + items=[ + ("Basic", "Basic", "Basic element information"), + ("Attributes", "Attributes", "IFC Attributes"), + ("Property Sets", "Property Sets", "Property Sets"), + ("Quantity Sets", "Quantity Sets", "Quantity Sets"), + ("Type", "Type", "Type information"), + ("Spatial", "Spatial", "Spatial relationships"), + ("Parent", "Parent", "Parent relationships"), + ("Classification", "Classification", "Classifications"), + ("Groups", "Groups", "Group assignments"), + ("Systems", "Systems", "System assignments"), + ("Zones", "Zones", "Zone assignments"), + ("Material", "Material", "Material information"), + ("Styles", "Styles", "Style information"), + ("Profiles", "Profiles", "Profile information"), + ("Coordinates", "Coordinates", "Coordinate information"), + ("Custom String", "Custom String", "Custom text (no element key)"), + ], + default="Basic", + ) + + element_key: StringProperty( + name="Element Key", + description="The element value key (e.g., 'id', 'Name', 'Pset_WallCommon.Reference')", + default="", + ) + + formatted_value: StringProperty( + name="Formatted Value", + description="The formatted value string with selector syntax (e.g., '{{id}}' or '``upper({{Name}})``')", + default="", + ) + + separator: StringProperty( + name="Separator", + description="Text to insert before this value when concatenating (e.g., ' - ', ', ', '\\n')", + default=" - ", + ) + + if TYPE_CHECKING: + category: str + element_key: str + formatted_value: str + separator: str + + +def get_category_items_with_counts(self, context): + """Generate category items with counts dynamically""" + category_metadata = [ + ("Basic", "Basic", "Basic element information", "OBJECT_DATA"), + ("Attributes", "Attributes", "IFC Attributes", "PROPERTIES"), + ("Property Sets", "Property Sets", "Property Sets", "ALIGN_JUSTIFY"), + ("Quantity Sets", "Quantity Sets", "Quantity Sets", "SNAP_VOLUME"), + ("Type", "Type", "Type information", "FILE_VOLUME"), + ("Spatial", "Spatial", "Spatial relationships", "HOME"), + ("Parent", "Parent", "Parent relationships", "FILE_PARENT"), + ("Classification", "Classification", "Classifications", "BOOKMARKS"), + ("Groups", "Groups", "Group assignments", "OUTLINER_COLLECTION"), + ("Systems", "Systems", "System assignments", "SYSTEM"), + ("Zones", "Zones", "Zone assignments", "MESH_CIRCLE"), + ("Material", "Material", "Material information", "MATERIAL"), + ("Styles", "Styles", "Style information", "COLOR"), + ("Profiles", "Profiles", "Profile information", "OUTLINER_DATA_CURVES"), + ("Coordinates", "Coordinates", "Coordinate information", "EMPTY_ARROWS"), + ("Custom String", "Custom String", "Add custom text (no element key)", "SMALL_CAPS"), + ] + + obj = context.active_object + + if obj and tool.Ifc.get_entity(obj): + try: + element = tool.Ifc.get_entity(obj) + text_element = element + + if hasattr(self, "product_used"): + if self.product_used: + element = tool.Ifc.get_entity(self.product_used) + else: + assigned = tool.Drawing.get_assigned_product(text_element) + if assigned: + element = assigned + + available_keys = ElementValuesData.get_available_element_value_keys(element) + items = [] + for i, (identifier, base_name, description, icon) in enumerate(category_metadata): + count = len(available_keys.get(identifier, [])) + display_name = f"{base_name} ({count})" if count > 0 else base_name + items.append((identifier, display_name, description, icon, i)) + + return items + except Exception as e: + pass + + return [(id, name, desc, icon, i) for i, (id, name, desc, icon) in enumerate(category_metadata)] + + class LiteralProps(PropertyGroup): def set_box_alignment(self, new_value): markers = new_value.count(True) @@ -725,16 +832,60 @@ class LiteralProps(PropertyGroup): } return text_data + show_element_values: bpy.props.BoolProperty( + name="Show Element Values", description="Show/hide the element values panel", default=False + ) + + expanded_category: bpy.props.StringProperty( + name="Expanded Category", description="Currently expanded category in the element values panel", default="" + ) + + element_values_filter: bpy.props.StringProperty( + name="Element Values Filter", description="Search filter for element values", default="" + ) + + product_used: PointerProperty( + name="Product Used", + type=bpy.types.Object, + description="Object to use for fetching element values. If empty, uses assigned product", + ) + + element_value_rows: CollectionProperty( + name="Element Value Rows", + type=ElementValueRow, + description="Collection of element value rows for building the literal value", + ) + + category_for_adding: EnumProperty( + name="Category for Adding", + items=get_category_items_with_counts, + default=0, + description="Category to use when adding a new element value row", + ) + if TYPE_CHECKING: attributes: bpy.types.bpy_prop_collection_idprop[Attribute] value: str box_alignment: tuple[bool, bool, bool, bool, bool, bool, bool, bool, bool] ifc_definition_id: int + element_value_rows: bpy.types.bpy_prop_collection_idprop[ElementValueRow] + category_for_adding: str class BIMTextProperties(PropertyGroup): is_editing: BoolProperty(name="Is Editing", default=False) literals: CollectionProperty(name="Literals", type=LiteralProps) + newline_at: IntProperty(name="Newline At") + symbol: EnumProperty( # pyright: ignore[reportRedeclaration] + name="Symbol", + description="Symbol from symbols.svg to use for this text.", + items=[(s, s, "") for s in ["NO SYMBOL", "CUSTOM SYMBOL"] + tool.Drawing.DEFAULT_SYMBOLS], + default="NO SYMBOL", + ) + custom_symbol: StringProperty( # pyright: ignore[reportRedeclaration] + name="Custom Symbol", + description="Non-default symbol to use for this text.", + ) font_size: EnumProperty( items=[ ("1.8", "1.8 - Small", ""), @@ -746,32 +897,34 @@ class BIMTextProperties(PropertyGroup): default="2.5", name="Font Size", ) - newline_at: IntProperty(name="Newline At") - reverse_list: BoolProperty(name="Reverse List", description="Reverses the order of any list.", default=False) - list_separator: StringProperty( # pyright: ignore[reportRedeclaration] - name="List Separator", - description="Text used to separate lists. Uses a comma (, ) if empty.", + align_horizontal: EnumProperty( + items=[ + ("left", "Left", "", "ALIGN_LEFT", 0), + ("middle", "Middle", "", "ALIGN_CENTER", 1), + ("right", "Right", "", "ALIGN_RIGHT", 2), + ], + default="left", + name="Horizontal Alignment", ) - symbol: EnumProperty( # pyright: ignore[reportRedeclaration] - name="Symbol", - description="Symbol from symbols.svg to use for this text.", - items=[(s, s, "") for s in ["NO SYMBOL", "CUSTOM SYMBOL"] + tool.Drawing.DEFAULT_SYMBOLS], - default="NO SYMBOL", - ) - custom_symbol: StringProperty( # pyright: ignore[reportRedeclaration] - name="Custom Symbol", - description="Non-default symbol to use for this text.", + align_vertical: EnumProperty( + items=[ + ("top", "Top", "", "ALIGN_TOP", 0), + ("middle", "Middle", "", "ALIGN_MIDDLE", 1), + ("bottom", "Bottom", "", "ALIGN_BOTTOM", 2), + ], + default="middle", + name="Vertical Alignment", ) if TYPE_CHECKING: is_editing: bool literals: bpy.types.bpy_prop_collection_idprop[LiteralProps] - font_size: str newline_at: int - reverse_list: bool - list_separator: str symbol: Union[str, Literal["NO SYMBOL", "CUSTOM SYMBOL"]] custom_symbol: str + font_size: str + align_horizontal: str + align_vertical: str def get_symbol(self) -> Union[str, None]: if self.symbol == "NO SYMBOL": @@ -806,8 +959,6 @@ class BIMTextProperties(PropertyGroup): "FontSize": float(self.font_size), "Newline_At": int(self.newline_at), "Symbol": self.get_symbol(), - "Reverse_List": self.reverse_list, - "List_Separator": self.list_separator or ", ", } return text_data diff --git a/src/bonsai/bonsai/bim/module/drawing/scheduler.py b/src/bonsai/bonsai/bim/module/drawing/scheduler.py index 6eefa35030..3b120e8d99 100644 --- a/src/bonsai/bonsai/bim/module/drawing/scheduler.py +++ b/src/bonsai/bonsai/bim/module/drawing/scheduler.py @@ -18,22 +18,23 @@ import os import re -import bpy import string -import svgwrite +from pathlib import Path +from textwrap import wrap + +import bpy import openpyxl import openpyxl.cell # Unnecessary, bug in typeshed. import openpyxl.utils # Unnecessary, bug in typeshed. -import bonsai.tool as tool - -from bonsai.bim.module.drawing.svgwriter import SvgWriter +import svgwrite from odf.opendocument import load as load_ods -from odf.table import Table, TableRow, TableColumn, TableCell -from odf.text import P from odf.style import Style -from textwrap import wrap -from pathlib import Path +from odf.table import Table, TableCell, TableColumn, TableRow +from odf.text import P + +import bonsai.tool as tool from bonsai.bim.ifc import IfcStore +from bonsai.bim.module.drawing.svgwriter import SvgWriter DEBUG = False @@ -544,11 +545,10 @@ class Scheduler: """ Adds text to svg. - Args: - p_tags: list of cell's P tags from odt file - box_alignment: alignment of text in box - wrap_text: if True, text will be wrapped to fit in cell - cell_width: width of cell, used for wrapping text + :param p_tags: list of cell's P tags from odt file + :param box_alignment: alignment of text in box + :param wrap_text: if True, text will be wrapped to fit in cell + :param cell_width: width of cell, used for wrapping text """ text_lines = [str(p) for p in p_tags] box_alignment_params = SvgWriter.get_box_alignment_parameters(box_alignment) diff --git a/src/bonsai/bonsai/bim/module/drawing/shaders.py b/src/bonsai/bonsai/bim/module/drawing/shaders.py index 020fc53147..2efd6ea285 100644 --- a/src/bonsai/bonsai/bim/module/drawing/shaders.py +++ b/src/bonsai/bonsai/bim/module/drawing/shaders.py @@ -16,11 +16,10 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -from gpu_extras.batch import batch_for_shader import gpu +from gpu_extras.batch import batch_for_shader from mathutils import Vector - # NOTES: # Since Metal doesn't support geometry shaders we stick to builtin shaders # and generate all geometry data in python before passing it to the shader. diff --git a/src/bonsai/bonsai/bim/module/drawing/sheeter.py b/src/bonsai/bonsai/bim/module/drawing/sheeter.py index 15ac314e8b..7d8ebb67f4 100644 --- a/src/bonsai/bonsai/bim/module/drawing/sheeter.py +++ b/src/bonsai/bonsai/bim/module/drawing/sheeter.py @@ -16,20 +16,22 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os -import bpy -import uuid -import shutil import ntpath -import pystache +import os +import re +import shutil import urllib.parse +import uuid import xml.etree.ElementTree as ET -import bonsai.tool as tool -import ifcopenshell.util.geolocation from pathlib import Path from xml.dom import minidom + +import bpy +import ifcopenshell.util.geolocation +import pystache from mathutils import Vector -import re + +import bonsai.tool as tool VIEW_TITLE_OFFSET_Y = 5 DRAWING_PADDING = 10 @@ -341,17 +343,29 @@ class SheetBuilder: assert style_data is not None text = "" brackets_level = 0 + selector_buffer = "" # Buffer to accumulate selectors across lines + for l in style_data: if l == "{": if brackets_level == 0: - cur_line = text.splitlines()[-1] - text = text[: -len(cur_line)] + # Get all accumulated selector text (may span multiple lines) + # Find where the last rule ended (after last }) or start of text + last_close = text.rfind("}") + if last_close == -1: + selector_text = text + text = "" + else: + selector_text = text[last_close + 1 :] + text = text[: last_close + 1] + + # Process all selectors (split by comma) css_selectors = [] - # making sure cases like "text, tspan" will be - # converted to "text.prefix, tspan.prefix" - for css_selector in cur_line.split(","): - css_selector = f"{css_selector.strip()}.{prefix}" - css_selectors.append(css_selector) + for css_selector in selector_text.split(","): + css_selector = css_selector.strip() + if css_selector: # Only process non-empty selectors + css_selector = f"{css_selector}.{prefix}" + css_selectors.append(css_selector) + text += ", ".join(css_selectors) + " " brackets_level += 1 elif l == "}": diff --git a/src/bonsai/bonsai/bim/module/drawing/svgwriter.py b/src/bonsai/bonsai/bim/module/drawing/svgwriter.py index 18900be5e5..ef64fdefc6 100644 --- a/src/bonsai/bonsai/bim/module/drawing/svgwriter.py +++ b/src/bonsai/bonsai/bim/module/drawing/svgwriter.py @@ -16,32 +16,34 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +import math import os import re -import bpy -import math -import bmesh import shutil -from bpy.types import SplineBezierPoints, SplinePoints -import mathutils import xml.etree.ElementTree as ET -import svgwrite -import svgwrite.container -import svgwrite.text +from collections.abc import Callable, Sequence +from math import acos, atan, ceil, degrees, pi +from pathlib import Path +from typing import Optional, Self, Union + +import bmesh +import bpy import ifcopenshell import ifcopenshell.util.element import ifcopenshell.util.representation import ifcopenshell.util.selector import ifcopenshell.util.unit -import bonsai.tool as tool +import mathutils +import svgwrite +import svgwrite.container +import svgwrite.text +from bpy.types import SplineBezierPoints, SplinePoints +from markdown_it import MarkdownIt +from mathutils import Vector, geometry + import bonsai.bim.module.drawing.helper as helper -from bonsai.bim.module.drawing.data import DrawingsData -from bonsai.bim.module.drawing.data import DecoratorData -from math import pi, ceil, atan, degrees, acos -from mathutils import geometry, Vector -from typing import Optional, Self, Union -from collections.abc import Callable, Sequence -from pathlib import Path +import bonsai.tool as tool +from bonsai.bim.module.drawing.data import DecoratorData, DrawingsData class External(svgwrite.container.Group): @@ -61,6 +63,142 @@ class External(svgwrite.container.Group): return self.xml +def parse_markdown_it(text: str) -> list[dict[str, Union[str, None]]]: + """ + Parse markdown (links, breaks, bold, italic, bullet points) from text and return structured information. + Returns a list of dicts with keys: + - 'text': the text content + - 'url': link target if present, else None + - 'break': True if this is a line break (\n or
), else False + - 'bold': True if bold, else False + - 'italic': True if italic, else False + - \u2022 for bullet points (you start a bullet point list by prefixing \n before the first - bullet point) + + Example: + Hello **bold** *italic* [World](http://ex.com)\n + - Bullet 1\n + - Bullet 2
Another [Link](http://foo.com) + [ + {'text': 'Hello ', 'url': None, 'break': False, 'bold': False, 'italic': False}, + {'text': 'bold', 'url': None, 'break': False, 'bold': True, 'italic': False}, + {'text': ' ', 'url': None, 'break': False, 'bold': False, 'italic': False}, + {'text': 'italic', 'url': None, 'break': False, 'bold': False, 'italic': True}, + {'text': ' ', 'url': None, 'break': False, 'bold': False, 'italic': False}, + {'text': 'World', 'url': 'http://ex.com', 'break': False, 'bold': False, 'italic': False}, + {'text': None, 'url': None, 'break': True, 'bold': False, 'italic': False}, + {'text': '\u2022 ', 'url': None, 'break': True, 'bold': False, 'italic': False}, + {'text': 'Bullet 1', 'url': None, 'break': False, 'bold': False, 'italic': False}, + {'text': None, 'url': None, 'break': True, 'bold': False, 'italic': False}, + {'text': '\u2022 ', 'url': None, 'break': True, 'bold': False, 'italic': False}, + {'text': 'Bullet 2 ', 'url': None, 'break': False, 'bold': False, 'italic': False}, + {'text': None, 'url': None, 'break': True, 'bold': False, 'italic': False}, + {'text': 'Another ', 'url': None, 'break': False, 'bold': False, 'italic': False}, + {'text': 'Link', 'url': 'http://foo.com', 'break': False, 'bold': False, 'italic': False} + ] + """ + md = MarkdownIt("commonmark") + tokens = md.parse(text) + segments = [] + bold = False + italic = False + link_opening = None + link_text = None + i = 0 + while i < len(tokens): + token = tokens[i] + if token.type == "bullet_list_open": + i += 1 + while i < len(tokens) and tokens[i].type != "bullet_list_close": + if tokens[i].type == "list_item_open": + segments.append({"text": "\u2022 ", "url": None, "break": True, "bold": False, "italic": False}) + j = i + 1 + while j < len(tokens) and tokens[j].type != "list_item_close": + if tokens[j].type == "inline": + for child in tokens[j].children or []: + if child.type == "softbreak": + segments.append( + {"text": None, "url": None, "break": True, "bold": False, "italic": False} + ) + elif child.type == "html_inline" and child.content.strip().lower() == "
": + segments.append( + {"text": None, "url": None, "break": True, "bold": False, "italic": False} + ) + elif child.type == "strong_open": + bold = True + elif child.type == "strong_close": + bold = False + elif child.type == "em_open": + italic = True + elif child.type == "em_close": + italic = False + elif child.type == "link_open": + link_opening = child + elif child.type == "text" and link_opening: + link_text = child.content + elif child.type == "link_close" and link_opening: + url = link_opening.attrGet("href") + if url and link_text: + segments.append( + { + "text": link_text, + "url": url, + "break": False, + "bold": bold, + "italic": italic, + } + ) + link_opening = None + link_text = None + elif child.type == "text" and not link_opening: + segments.append( + { + "text": child.content, + "url": None, + "break": False, + "bold": bold, + "italic": italic, + } + ) + j += 1 + i = j + else: + i += 1 + i += 1 + elif token.type == "inline": + for child in token.children or []: + if child.type == "softbreak": + segments.append({"text": None, "url": None, "break": True, "bold": False, "italic": False}) + elif child.type == "html_inline" and child.content.strip().lower() == "
": + segments.append({"text": None, "url": None, "break": True, "bold": False, "italic": False}) + elif child.type == "strong_open": + bold = True + elif child.type == "strong_close": + bold = False + elif child.type == "em_open": + italic = True + elif child.type == "em_close": + italic = False + elif child.type == "link_open": + link_opening = child + elif child.type == "text" and link_opening: + link_text = child.content + elif child.type == "link_close" and link_opening: + url = link_opening.attrGet("href") + if url and link_text: + segments.append({"text": link_text, "url": url, "break": False, "bold": bold, "italic": italic}) + link_opening = None + link_text = None + elif child.type == "text" and not link_opening: + segments.append( + {"text": child.content, "url": None, "break": False, "bold": bold, "italic": italic} + ) + i += 1 + segments = [seg for seg in segments if seg.get("text") is not None or seg.get("break", False)] + if not segments: + return [{"text": text, "url": None, "break": False, "bold": False, "italic": False}] + return segments + + class SvgWriter: metadata: list[str] resource_paths: dict[tool.Drawing.ResourceType, Union[str, None]] @@ -142,14 +280,16 @@ class SvgWriter: self.height = self.raw_height * self.svg_scale def add_stylesheet(self): - path = self.resource_paths["Stylesheet"] - if not path: + paths = self.resource_paths["Stylesheet"] + if not paths: return - if not os.path.exists(path): - print(f"WARNING. Couldn't find stylesheet for the drawing by the path: {path}") - return - with open(path, "r") as stylesheet: - self.svg.defs.add(self.svg.style(stylesheet.read())) + path_list = [p.strip() for p in paths.split(",")] + for path in path_list: + if not os.path.exists(path): + print(f"WARNING. Couldn't find stylesheet for the drawing by the path: {path}") + continue + with open(path, "r") as stylesheet: + self.svg.defs.add(self.svg.style(stylesheet.read())) def add_markers(self): path = self.resource_paths["Markers"] @@ -202,6 +342,15 @@ class SvgWriter: ) -> Self: self.precision = precision self.decimal_places = decimal_places + + # Sort annotations to ensure FILLAREA types are drawn first (at the bottom) + def sort_key(element): + predefined_type = ifcopenshell.util.element.get_predefined_type(element) + # Return 0 for FILLAREA to draw them first, 1 for everything else + return 0 if predefined_type == "FILL_AREA" else 1 + + annotations = sorted(annotations, key=sort_key) + for element in annotations: obj = tool.Ifc.get_object(element) if ( @@ -840,11 +989,6 @@ class SvgWriter: symbol = tool.Drawing.get_annotation_symbol(element) newline_at = tool.Drawing.get_newline_at(element) - # Get reverse_list and list_separator from EPset_Annotation - pset_data = ifcopenshell.util.element.get_pset(element, "EPset_Annotation") or {} - reverse_list = pset_data.get("Reverse_List", False) - list_separator = pset_data.get("List_Separator") or ", " - template_text_fields = [] if symbol: symbol_transform = self.get_symbol_transform(text_position_svg_str, angle, text_obj) @@ -861,7 +1005,7 @@ class SvgWriter: # NOTE: zip makes sure that we iterate over the shortest list for field, text_literal in zip(template_text_fields, text_literals): field.text = tool.Drawing.replace_text_literal_variables( - text_literal.Literal, product or element, reverse_list, list_separator + text_literal.Literal, product or element ) field.attrib["class"] = classes_str @@ -881,22 +1025,79 @@ class SvgWriter: line_number = 0 for text_literal in text_literals: - text = tool.Drawing.replace_text_literal_variables( - text_literal.Literal, product or element, reverse_list, list_separator - ) - text_tags = self.create_text_tag( - text, - text_position_svg, - angle, - text_literal.BoxAlignment, - classes_str, - fill_bg=fill_bg, - line_number_start=line_number, - newline_at=newline_at, - ) - for tag in text_tags: - self.svg.add(tag) - line_number += len(tag.elements) + text = tool.Drawing.replace_text_literal_variables(text_literal.Literal, product or element) + + text_segments = parse_markdown_it(text) + + if len(text_segments) == 1 and text_segments[0]["url"] is None and not text_segments[0].get("break", False): + text_tags = self.create_text_tag( + text, + text_position_svg, + angle, + text_literal.BoxAlignment, + classes_str, + fill_bg=fill_bg, + line_number_start=line_number, + newline_at=newline_at, + ) + for tag in text_tags: + self.svg.add(tag) + line_number += len(text_tags) + else: + base_text_attrs = SvgWriter.get_box_alignment_parameters(text_literal.BoxAlignment) + text_position_svg_str = ", ".join(map(str, text_position_svg)) + text_transform = f"translate({text_position_svg_str}) rotate({angle})" + + text_tag = self.svg.text("", transform=text_transform, class_=classes_str, **base_text_attrs) + + line_idx = 0 + new_line = True + bullet_next = False + for idx, segment in enumerate(text_segments): + if segment.get("break", False): + if segment.get("text") == "\u2022 ": + bullet_next = True + line_idx += 1 + new_line = True + continue + if segment["text"] is None: + continue + text_content = segment["text"] + if bullet_next: + text_content = "\u2022 " + (text_content or "") + bullet_next = False + + if new_line: + dy, x, y = f"{line_idx}em", 0, 0 + new_line = False + else: + dy, x, y = None, None, None + + tspan = self.svg.tspan(text_content, class_=classes_str) + if segment.get("bold", False): + tspan.attribs["font-weight"] = "bold" + if segment.get("italic", False): + tspan.attribs["font-style"] = "italic" + if dy is not None: + tspan.attribs["dy"] = dy + if x is not None: + tspan.attribs["x"] = x + if y is not None: + tspan.attribs["y"] = y + + if segment["url"]: + link_element = self.svg.a(href=segment["url"], target="_blank") + link_element.add(tspan) + text_tag.add(link_element) + else: + text_tag.add(tspan) + + if fill_bg: + fill_bg_tag = self.add_fill_bg(text_tag) + self.svg.add(fill_bg_tag) + + self.svg.add(text_tag) + line_number += 1 def draw_empty_annotation(self, obj: bpy.types.Object, classes: list[str]) -> None: x_offset = self.raw_width / 2 diff --git a/src/bonsai/bonsai/bim/module/drawing/ui.py b/src/bonsai/bonsai/bim/module/drawing/ui.py index 252a3c9148..556459b8b6 100644 --- a/src/bonsai/bonsai/bim/module/drawing/ui.py +++ b/src/bonsai/bonsai/bim/module/drawing/ui.py @@ -17,19 +17,23 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Optional, Union + import bpy +from bpy.types import Panel + import bonsai.bim.helper import bonsai.tool as tool -from bpy.types import Panel from bonsai.bim.module.drawing.data import ( - ProductAssignmentsData, - SheetsData, + DecoratorData, DocumentsData, DrawingsData, ElementFiltersData, - DecoratorData, + ElementValuesData, + ProductAssignmentsData, + SheetsData, ) -from typing import TYPE_CHECKING, Union if TYPE_CHECKING: from bonsai.bim.module.drawing.prop import DocProperties, Drawing, Sheet @@ -481,13 +485,13 @@ class BIM_PT_sheets(Panel): ifc_file = tool.Ifc.get() ifc_annotations = ifc_file.by_type("IfcAnnotation") drawingid = None - for annotation in ifc_annotations: + if annotation.ObjectType != "DRAWING": + continue Annotation_Name = annotation.Name.replace(",", "") # Remove commas if Annotation_Name == drawingname: drawingid = annotation.id() break - if drawingid is not None: op.drawing = drawingid @@ -549,6 +553,61 @@ class BIM_PT_product_assignments(Panel): col.enabled = bool(ProductAssignmentsData.data["relating_product"]) +def get_category_icon(category_name): + """Get appropriate icon for each category""" + icons = { + "Basic": "OBJECT_DATA", + "Attributes": "PROPERTIES", + "Property Sets": "PROPERTIES", + "Quantity Sets": "SNAP_VOLUME", + "Type": "OUTLINER_OB_MESH", + "Spatial": "HOME", + "Parent": "FILE_PARENT", + "Classification": "BOOKMARKS", + "Groups": "GROUP", + "Systems": "SYSTEM", + "Zones": "MESH_CIRCLE", + "Material": "MATERIAL", + "Profiles": "MESH_DATA", + "Coordinates": "EMPTY_ARROWS", + } + return icons.get(category_name, "DOT") + + +def get_current_product_for_element_values(obj: bpy.types.Object, literal_props) -> Optional[bpy.types.Object]: + """Get the product to use for fetching element values - either explicitly set or assigned product""" + if hasattr(literal_props, "product_used") and literal_props.product_used: + return literal_props.product_used + + element = tool.Ifc.get_entity(obj) + if element: + return tool.Drawing.get_assigned_product(element) or obj + return obj + + +def get_category_icon(category: str) -> str: + """Get the icon for an element value category""" + icons = { + "Basic": "OBJECT_DATA", + "Attributes": "PROPERTIES", + "Property Sets": "ALIGN_JUSTIFY", + "Quantity Sets": "SNAP_VOLUME", + "Type": "FILE_VOLUME", + "Spatial": "HOME", + "Parent": "FILE_PARENT", + "Classification": "BOOKMARKS", + "Groups": "OUTLINER_COLLECTION", + "Systems": "SYSTEM", + "Zones": "MESH_CIRCLE", + "Material": "MATERIAL", + "Styles": "COLOR", + "Profiles": "OUTLINER_DATA_CURVES", + "Coordinates": "EMPTY_ARROWS", + "Custom String": "SMALL_CAPS", + } + return icons.get(category, "DOT") + + class BIM_PT_text(Panel): bl_label = "Text" bl_idname = "BIM_PT_text" @@ -561,10 +620,10 @@ class BIM_PT_text(Panel): @classmethod def poll(cls, context): if not tool.Ifc.get() or not context.active_object: - return + return False element = tool.Ifc.get_entity(context.active_object) if not element: - return + return False return tool.Drawing.is_annotation_object_type(element, ["TEXT", "TEXT_LEADER"]) def draw_text_editing_ui( @@ -585,55 +644,171 @@ class BIM_PT_text(Panel): row.operator("bim.add_text_literal", icon="ADD", text="Add Literal") else: row.operator("bim.edit_text", icon="CHECKMARK") - row.operator("bim.add_text_literal", icon="ADD", text="") row.operator("bim.disable_editing_text", icon="CANCEL", text="") row = self.layout.row(align=True) row.prop(props, "font_size") + row.operator("bim.copy_text_to_selection", text="", icon="COPYDOWN").attribute = "FONT_SIZE" + row = self.layout.row() + row.label(text="Alignment") + row.prop(props, "align_horizontal", text="", expand=True) + row.prop(props, "align_vertical", text="", expand=True) + row.operator("bim.copy_text_to_selection", text="", icon="COPYDOWN").attribute = "ALIGNMENT" + row = self.layout.row(align=True) row.prop(props, "newline_at") - row = self.layout.row(align=True) - row.prop(props, "reverse_list") - row = self.layout.row(align=True) - row.prop(props, "list_separator") + row.operator("bim.copy_text_to_selection", text="", icon="COPYDOWN").attribute = "WRAP_LENGTH" row = self.layout.row(align=True) row.prop(props, "symbol") if props.symbol == "CUSTOM SYMBOL": row = self.layout.row(align=True) row.prop(props, "custom_symbol", text="") + select_op = row.operator("bim.select_similar_text_literal_value", text="", icon="RESTRICT_SELECT_OFF") + select_op.literal_value = str(props.newline_at) + select_op.attribute_type = "newline" + row.operator("bim.copy_text_to_selection", text="", icon="COPYDOWN").attribute = "SYMBOL" + + row = self.layout.row(align=True) + row.label(text="Literals:") + row.operator("bim.copy_text_to_selection", text="", icon="COPYDOWN").attribute = "LITERALS" + row.operator("bim.add_text_literal", icon="ADD", text="") for i, literal_props in enumerate(props.literals): box = self.layout.box() - row = self.layout.row(align=True) + if len(literal_props.attributes): + row = box.row(align=True) + bonsai.bim.helper.draw_attribute(literal_props.attributes[0], row, enable_search=True) + if i > 0: + row.operator("bim.order_text_literal_up", icon="TRIA_UP", text="").literal_prop_id = i + if i < len(props.literals) - 1: + row.operator("bim.order_text_literal_down", icon="TRIA_DOWN", text="").literal_prop_id = i + row.operator("bim.remove_text_literal", icon="X", text="").literal_prop_id = i + + expand_icon = "DOWNARROW_HLT" if getattr(literal_props, "show_element_values", False) else "RIGHTARROW" + op = row.operator("bim.toggle_element_values_panel", icon=expand_icon, text="") + op.literal_prop_id = i + + element = tool.Ifc.get_entity(obj) + assigned_element = tool.Drawing.get_assigned_product(element) or element + resolved_value = tool.Drawing.replace_text_literal_variables( + literal_props.attributes[0].string_value, + assigned_element, + ) + row = box.row(align=True) + row.label(text="CurrentValue:") + row.label(text=str(resolved_value)) + + # Show the element values panel if expanded + if getattr(literal_props, "show_element_values", False): + values_box = box.box() + + help_row = values_box.row(align=True) + help_row.operator("bim.show_element_values_instructions", text="Instructions", icon="QUESTION") + + element_values_row = values_box.row(align=True) + element_values_row.label(text="Element Values:", icon="PROPERTIES") + element_values_row.prop(literal_props, "product_used", text="", icon="EYEDROPPER") + + current_product = get_current_product_for_element_values(obj, literal_props) + + product_name = ( + current_product.name if (current_product and hasattr(current_product, "name")) else "Unknown" + ) + source_row = values_box.row() + source_row.label(text=f"Source: {product_name}", icon="OBJECT_DATA") + + element = tool.Ifc.get_entity(current_product) if current_product else None + if element: + add_row = values_box.row(align=True) + add_row.prop(literal_props, "category_for_adding", text="") + + op = add_row.operator("bim.add_element_value_row", text="Add Element", icon="ADD") + op.literal_prop_id = i + + if len(literal_props.element_value_rows) > 0: + for row_idx, value_row in enumerate(literal_props.element_value_rows): + row = values_box.row(align=True) + + is_custom_string = value_row.category == "Custom String" + + if is_custom_string: + category_icon = get_category_icon(value_row.category) + row.prop(value_row, "element_key", text="", icon=category_icon) + else: + split = row.split(factor=0.25, align=True) + + sep_col = split.row(align=True) + sep_col.prop(value_row, "separator", text="") + + key_col = split.row(align=True) + category_icon = get_category_icon(value_row.category) + key_col.prop(value_row, "element_key", text="", icon=category_icon) + + op = row.operator("bim.element_value_suggestions_popup", text="", icon="VIEWZOOM") + op.literal_prop_id = i + op.row_index = row_idx + op.category = value_row.category + + op = row.operator("bim.format_element_value_row", text="", icon="SHADERFX") + op.literal_prop_id = i + op.row_index = row_idx + + op = row.operator("bim.remove_element_value_row", text="", icon="X") + op.literal_prop_id = i + op.row_index = row_idx + + apply_row = values_box.row() + apply_row.scale_y = 1.2 + op = apply_row.operator( + "bim.apply_element_value_rows_to_literal", text="Apply to Literal", icon="CHECKMARK" + ) + op.literal_prop_id = i + else: + error_row = values_box.row() + error_row.label(text="Selected object has no IFC data", icon="ERROR") + + if len(literal_props.attributes) > 1: + attr = literal_props.attributes[1] + row = box.row(align=True) + if getattr(attr, "data_type", None) == "enum" and getattr(attr, "enum_items", None): + row.prop(attr, "enum_value", text="Path") + select_value = attr.enum_value + else: + row.prop(attr, "string_value", text="Path") + select_value = attr.string_value + + other_attributes = [a for a in literal_props.attributes[2:] if a.name != "BoxAlignment"] + if other_attributes: + bonsai.bim.helper.draw_attributes(other_attributes, box) row = box.row(align=True) - row.label(text=f"Literal[{i}]:") - if i > 0: - row.operator("bim.order_text_literal_up", icon="TRIA_UP", text="").literal_prop_id = i - if i < len(props.literals) - 1: - row.operator("bim.order_text_literal_down", icon="TRIA_DOWN", text="").literal_prop_id = i - row.operator("bim.remove_text_literal", icon="X", text="").literal_prop_id = i - - # skip BoxAlignment since we're going to format it ourselves - attributes = [a for a in literal_props.attributes if a.name != "BoxAlignment"] - popup_active_attribute = attributes[0] if popup_mode else None - bonsai.bim.helper.draw_attributes(attributes, box, popup_active_attribute=popup_active_attribute) - - row = box.row(align=True) - cols = [row.column(align=True) for i in range(3)] - for i in range(9): - cols[i % 3].prop( + cols = [row.column(align=True) for j in range(3)] + for j in range(9): + cols[j % 3].prop( literal_props, "box_alignment", text="", - index=i, - icon="RADIOBUT_ON" if literal_props.box_alignment[i] else "RADIOBUT_OFF", + index=j, + icon="RADIOBUT_ON" if literal_props.box_alignment[j] else "RADIOBUT_OFF", ) col = row.column(align=True) - col.label(text=" Text box alignment:") - col.label(text=f' {literal_props.attributes["BoxAlignment"].string_value}') + alignment_label_row = col.row(align=True) + alignment_label_row.label(text=" Text box alignment:") + + box_alignment_value = ( + literal_props.attributes[ + next( + (idx for idx, attr in enumerate(literal_props.attributes) if attr.name == "BoxAlignment"), + -1, + ) + ].string_value + if any(attr.name == "BoxAlignment" for attr in literal_props.attributes) + else "N/A" + ) + + col.label(text=f" {box_alignment_value}") def draw(self, context): obj = context.active_object @@ -641,32 +816,52 @@ class BIM_PT_text(Panel): props = tool.Drawing.get_text_props(obj) if props.is_editing: - self.draw_text_editing_ui(context) - else: - text_data = DecoratorData.get_text_data(obj) + return self.draw_text_editing_ui(context) + text_data = DecoratorData.get_text_data(obj) - row = self.layout.row() - row.operator("bim.enable_editing_text", icon="GREASEPENCIL") + row = self.layout.row() + row.operator("bim.enable_editing_text", icon="GREASEPENCIL") - row = self.layout.row(align=True) - row.label(text="FontSize") - row.label(text=str(text_data["FontSize"])) - row = self.layout.row(align=True) - row.label(text="Newline_At") - row.label(text=str(text_data["Newline_At"])) - row = self.layout.row(align=True) - row.label(text="Reverse_List") - row.label(text=str(text_data["Reverse_List"])) - row = self.layout.row(align=True) - row.label(text="List_Separator") - row.label(text=str(text_data["List_Separator"])) + row = self.layout.row(align=True) + row.label(text="FontSize") + click_op = row.operator("bim.select_similar_text_literal_value", text=str(text_data["FontSize"]), emboss=False) + click_op.literal_value = str(text_data["FontSize"]) + click_op.attribute_type = "font_size" + click_op.display_text = str(text_data["FontSize"]) - for literal_data in text_data["Literals"]: - box = self.layout.box() - for attribute in literal_data: - row = box.row(align=True) - row.label(text=attribute) - row.label(text=literal_data[attribute]) + row = self.layout.row(align=True) + row.label(text="Newline_At") + click_op = row.operator( + "bim.select_similar_text_literal_value", text=str(text_data["Newline_At"]), emboss=False + ) + click_op.literal_value = str(text_data["Newline_At"]) + click_op.attribute_type = "newline" + click_op.display_text = str(text_data["Newline_At"]) + + for i, literal_data in enumerate(text_data["Literals"]): + box = self.layout.box() + box.label(text=f"Literal[{i}]:") + + # Combine both approaches: clickable attributes from PR #7292 and display from PR #7106 + for attribute in literal_data: + row = box.row(align=True) + row.label(text=attribute) + click_op = row.operator( + "bim.select_similar_text_literal_value", + text=str(literal_data[attribute]), + emboss=False, + ) + click_op.literal_value = str(literal_data[attribute]) + click_op.literal_index = i + if attribute == "Literal": + click_op.attribute_type = "literal" + elif attribute == "Path": + click_op.attribute_type = "path" + elif attribute == "BoxAlignment": + click_op.attribute_type = "box_alignment" + else: + click_op.attribute_type = "text" + click_op.display_text = str(literal_data[attribute]) class BIM_UL_drawinglist(bpy.types.UIList): diff --git a/src/bonsai/bonsai/bim/module/drawing/workspace.py b/src/bonsai/bonsai/bim/module/drawing/workspace.py index b938514c70..bc7463073e 100644 --- a/src/bonsai/bonsai/bim/module/drawing/workspace.py +++ b/src/bonsai/bonsai/bim/module/drawing/workspace.py @@ -18,18 +18,20 @@ import os +from functools import partial + import bpy import ifcopenshell.api.group import ifcopenshell.util.element +import ifcopenshell.util.representation +from bpy.types import WorkSpaceTool + +import bonsai.core.drawing as core import bonsai.core.geometry import bonsai.core.type -import bonsai.core.drawing as core import bonsai.tool as tool -import ifcopenshell.util.representation -from bonsai.bim.module.drawing.data import DecoratorData, AnnotationData from bonsai.bim.helper import prop_with_search -from bpy.types import WorkSpaceTool -from functools import partial +from bonsai.bim.module.drawing.data import AnnotationData, DecoratorData class LaunchAnnotationTypeManager(bpy.types.Operator): @@ -166,7 +168,7 @@ def create_annotation_occurrence(context): ) assert element - bonsai.core.type.assign_type(tool.Ifc, tool.Type, element=element, type=relating_type) + bonsai.core.type.assign_type(tool.Ifc, tool.Model, tool.Type, element=element, type=relating_type) ifcopenshell.api.group.assign_group(ifc_file, group=tool.Drawing.get_drawing_group(drawing), products=[element]) tool.Collector.assign(obj) @@ -259,6 +261,9 @@ class AnnotationToolUI: add_layout_hotkey_operator( cls.layout, "Readjust", "S_G", "Readjust tags based on the products they are assigned to" ) + row = cls.layout.row(align=True) + props = tool.Drawing.get_document_props() + row.operator("bim.filter_selected_objects_if_intersected_by_camera", text="Filter by Camera") class Hotkey(bpy.types.Operator, tool.Ifc.Operator): diff --git a/src/bonsai/bonsai/bim/module/fm/__init__.py b/src/bonsai/bonsai/bim/module/fm/__init__.py index dc26a6379c..5b54adb71b 100644 --- a/src/bonsai/bonsai/bim/module/fm/__init__.py +++ b/src/bonsai/bonsai/bim/module/fm/__init__.py @@ -19,7 +19,8 @@ # pyright: reportAttributeAccessIssue=false import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.ExecuteIfcFM, diff --git a/src/bonsai/bonsai/bim/module/fm/data.py b/src/bonsai/bonsai/bim/module/fm/data.py index fa4a9c4c6a..80a686e364 100644 --- a/src/bonsai/bonsai/bim/module/fm/data.py +++ b/src/bonsai/bonsai/bim/module/fm/data.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os -import ifcfm import importlib +import os + +import ifcfm def refresh(): diff --git a/src/bonsai/bonsai/bim/module/fm/operator.py b/src/bonsai/bonsai/bim/module/fm/operator.py index cda36598db..629251282a 100644 --- a/src/bonsai/bonsai/bim/module/fm/operator.py +++ b/src/bonsai/bonsai/bim/module/fm/operator.py @@ -16,16 +16,18 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os -import bpy import json -import ifcfm import logging +import os import tempfile + +import bpy +import ifcfm import ifcopenshell -import bonsai.tool as tool from bpy_extras.io_utils import ExportHelper, ImportHelper +import bonsai.tool as tool + class ExecuteIfcFM(bpy.types.Operator, ExportHelper): bl_idname = "bim.execute_ifcfm" diff --git a/src/bonsai/bonsai/bim/module/fm/prop.py b/src/bonsai/bonsai/bim/module/fm/prop.py index 25db89224f..2eb1ae4739 100644 --- a/src/bonsai/bonsai/bim/module/fm/prop.py +++ b/src/bonsai/bonsai/bim/module/fm/prop.py @@ -16,22 +16,24 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal + import bpy +from bpy.props import ( + BoolProperty, + CollectionProperty, + EnumProperty, + FloatProperty, + FloatVectorProperty, + IntProperty, + PointerProperty, + StringProperty, +) +from bpy.types import PropertyGroup + import bonsai.tool as tool from bonsai.bim.module.fm.data import FMData from bonsai.bim.prop import MultipleFileSelect, StrProperty -from bpy.types import PropertyGroup -from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, - BoolProperty, - IntProperty, - FloatProperty, - FloatVectorProperty, - CollectionProperty, -) -from typing import TYPE_CHECKING, Literal def get_engine(self: "BIMFMProperties", context: object) -> tool.Blender.BLENDER_ENUM_ITEMS: diff --git a/src/bonsai/bonsai/bim/module/fm/ui.py b/src/bonsai/bonsai/bim/module/fm/ui.py index fa889c61fd..69e51ea6dc 100644 --- a/src/bonsai/bonsai/bim/module/fm/ui.py +++ b/src/bonsai/bonsai/bim/module/fm/ui.py @@ -16,8 +16,9 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bonsai.tool as tool from bpy.types import Panel + +import bonsai.tool as tool from bonsai.bim.module.fm.data import FMData diff --git a/src/bonsai/bonsai/bim/module/geometry/__init__.py b/src/bonsai/bonsai/bim/module/geometry/__init__.py index 77a2c8b63b..bc64947436 100644 --- a/src/bonsai/bonsai/bim/module/geometry/__init__.py +++ b/src/bonsai/bonsai/bim/module/geometry/__init__.py @@ -16,12 +16,14 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -from . import ui, prop, operator -from bpy.app.handlers import persistent -import ifcopenshell.util.element import math +import bpy +import ifcopenshell.util.element +from bpy.app.handlers import persistent + +from . import operator, prop, ui + classes = ( operator.AddCurvelikeItem, operator.AddHalfSpaceSolidItem, @@ -30,6 +32,7 @@ classes = ( operator.AddSweptAreaSolidItem, operator.AssignRepresentationLayer, operator.CopyRepresentation, + operator.DirectProfileEdit, operator.DisableEditingRepresentationItemShapeAspect, operator.DisableEditingRepresentationItemStyle, operator.DisableEditingRepresentationItems, @@ -160,6 +163,8 @@ def register(): addon_keymaps.append((km, kmi)) kmi = km.keymap_items.new("bim.override_mode_set_edit", "TAB", "PRESS") addon_keymaps.append((km, kmi)) + kmi = km.keymap_items.new("bim.direct_profile_edit", "SPACE", "PRESS") + addon_keymaps.append((km, kmi)) # Deletion. kmi = km.keymap_items.new("bim.override_object_delete", "X", "PRESS") addon_keymaps.append((km, kmi)) @@ -178,6 +183,8 @@ def register(): kmi = km.keymap_items.new("bim.override_mode_set_object", "TAB", "PRESS") kmi.properties.should_save = True addon_keymaps.append((km, kmi)) + kmi = km.keymap_items.new("bim.direct_profile_edit", "SPACE", "PRESS") + addon_keymaps.append((km, kmi)) kmi = km.keymap_items.new("wm.call_menu", "P", "PRESS") kmi.properties.name = ui.BIM_MT_hotkey_separate.bl_idname addon_keymaps.append((km, kmi)) diff --git a/src/bonsai/bonsai/bim/module/geometry/data.py b/src/bonsai/bonsai/bim/module/geometry/data.py index 2e7d6c4205..05344ab87e 100644 --- a/src/bonsai/bonsai/bim/module/geometry/data.py +++ b/src/bonsai/bonsai/bim/module/geometry/data.py @@ -16,16 +16,18 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import Any, Union + import bpy import ifcopenshell.util.element import ifcopenshell.util.geolocation import ifcopenshell.util.placement import ifcopenshell.util.representation import ifcopenshell.util.unit -import bonsai.tool as tool -from typing import Any, Union from mathutils import Vector +import bonsai.tool as tool + def refresh(): ViewportData.is_loaded = False diff --git a/src/bonsai/bonsai/bim/module/geometry/decorator.py b/src/bonsai/bonsai/bim/module/geometry/decorator.py index 14f48d8eec..c5a82c1d59 100644 --- a/src/bonsai/bonsai/bim/module/geometry/decorator.py +++ b/src/bonsai/bonsai/bim/module/geometry/decorator.py @@ -16,18 +16,20 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy +from collections.abc import Sequence + import blf -import gpu import bmesh +import bpy +import gpu import ifcopenshell -import bonsai.tool as tool import numpy as np from bpy.types import SpaceView3D -from mathutils import Vector, Matrix -from gpu_extras.batch import batch_for_shader from bpy_extras.view3d_utils import location_3d_to_region_2d -from collections.abc import Sequence +from gpu_extras.batch import batch_for_shader +from mathutils import Matrix, Vector + +import bonsai.tool as tool class ItemDecorator: @@ -74,7 +76,7 @@ class ItemDecorator: special_verts = [] special_edges = [] - if len(obj.data.loop_triangles) > 0: + if (total_triangles := len(obj.data.loop_triangles)) > 0: verts = [tuple(obj.matrix_world @ v.co) for v in obj.data.vertices] tris = [tuple(t.vertices) for t in obj.data.loop_triangles] diff --git a/src/bonsai/bonsai/bim/module/geometry/helper.py b/src/bonsai/bonsai/bim/module/geometry/helper.py index 7f70df4b96..511669d60d 100644 --- a/src/bonsai/bonsai/bim/module/geometry/helper.py +++ b/src/bonsai/bonsai/bim/module/geometry/helper.py @@ -16,19 +16,21 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy +from math import pi, pow +from typing import Any, Optional, TypeVar, Union + import bmesh -import shapely +import bpy +import ifcopenshell +import ifcopenshell.util.shape +import ifcopenshell.util.unit import mathutils import numpy as np -import ifcopenshell -import ifcopenshell.util.unit -import ifcopenshell.util.shape -import bonsai.tool as tool -from math import pi, pow -from mathutils import Vector, Matrix, geometry -from typing import Union, Any, TypeVar, Optional +import shapely from ifcopenshell.util.shape_builder import ShapeBuilder +from mathutils import Matrix, Vector, geometry + +import bonsai.tool as tool T = TypeVar("T") diff --git a/src/bonsai/bonsai/bim/module/geometry/operator.py b/src/bonsai/bonsai/bim/module/geometry/operator.py index 248fc9c948..fbd694d219 100644 --- a/src/bonsai/bonsai/bim/module/geometry/operator.py +++ b/src/bonsai/bonsai/bim/module/geometry/operator.py @@ -17,17 +17,30 @@ # along with Bonsai. If not, see . import re -import bpy +from collections.abc import Sequence +from time import time +from typing import ( + TYPE_CHECKING, + Any, + Literal, + NamedTuple, + Union, + assert_never, + get_args, +) + import bmesh -import numpy as np -import numpy.typing as npt +import bpy import ifcopenshell +import ifcopenshell.api +import ifcopenshell.api.boundary import ifcopenshell.api.drawing -import ifcopenshell.api.group -import ifcopenshell.api.pset import ifcopenshell.api.geometry +import ifcopenshell.api.grid +import ifcopenshell.api.group import ifcopenshell.api.layer import ifcopenshell.api.material +import ifcopenshell.api.pset import ifcopenshell.api.root import ifcopenshell.api.style import ifcopenshell.util.element @@ -35,25 +48,23 @@ import ifcopenshell.util.placement import ifcopenshell.util.representation import ifcopenshell.util.shape_builder import ifcopenshell.util.unit -import ifcopenshell.api -import ifcopenshell.api.boundary -import ifcopenshell.api.grid +import numpy as np +import numpy.typing as npt +from ifcopenshell.util.shape_builder import ShapeBuilder +from mathutils import Matrix, Quaternion, Vector + +import bonsai.bim.handler +import bonsai.core.aggregate +import bonsai.core.drawing import bonsai.core.geometry import bonsai.core.geometry as core -import bonsai.core.aggregate import bonsai.core.nest -import bonsai.core.style import bonsai.core.root -import bonsai.core.drawing +import bonsai.core.spatial +import bonsai.core.style import bonsai.tool as tool -import bonsai.bim.handler -from bonsai.bim.module.model.data import AuthoringData -from mathutils import Vector, Matrix, Quaternion -from time import time from bonsai.bim.ifc import IfcStore -from ifcopenshell.util.shape_builder import ShapeBuilder -from collections.abc import Sequence -from typing import Any, Union, Literal, get_args, TYPE_CHECKING, assert_never, NamedTuple +from bonsai.bim.module.model.data import AuthoringData from bonsai.bim.module.model.decorator import ProfileDecorator if TYPE_CHECKING: @@ -597,7 +608,11 @@ class UpdateRepresentation(bpy.types.Operator, tool.Ifc.Operator): tool.Material.ensure_material_unassigned([element_type]) ifcopenshell.api.material.unassign_material(self.file, products=[product]) tool.Material.ensure_material_unassigned([product]) - data = obj.data # Required after ensure_material_unassigned + + # Required after ensure_material_unassigned, since data might be recreated. + data = obj.data + assert tool.Geometry.is_data_supported_for_adding_representation(data) + mprops = tool.Geometry.get_mesh_props(data) else: # These objects are parametrically based on an axis and should not be modified as a mesh if extrusion := tool.Model.get_extrusion(old_representation): @@ -809,9 +824,17 @@ class OverrideDelete(bpy.types.Operator): @classmethod def poll(cls, context): - return len(context.selected_objects) > 0 + # Match `object.delete` poll for consistency. + # `object.delete` poll just checks for OBJECT mode. + poll = bpy.ops.object.delete.poll() + if poll: + return True + cls.poll_message_set("Only available in OBJECT mode") + return False def execute(self, context): + if not context.selected_objects: + return {"FINISHED"} # Deep magick from the dawn of time if tool.Ifc.get() is None: bpy.ops.object.delete(use_global=self.use_global, confirm=self.confirm) @@ -823,6 +846,8 @@ class OverrideDelete(bpy.types.Operator): return IfcStore.execute_ifc_operator(self, context) def invoke(self, context, event): + if not context.selected_objects: + return {"FINISHED"} assert context.window_manager ifc_file = tool.Ifc.get() if ifc_file is None: @@ -964,6 +989,10 @@ class OverrideDelete(bpy.types.Operator): except: continue + # Skip spatial elements - they should not be deleted even if empty + if aggregate.is_a("IfcSpatialElement"): + continue + related_objects = ifcopenshell.util.element.get_parts(aggregate) if len(related_objects) == 0: aggregate_name = aggregate.Name or f"{aggregate.is_a()} #{aggregate.id()}" @@ -1030,9 +1059,18 @@ class OverrideOutlinerDelete(bpy.types.Operator, tool.Ifc.Operator): @classmethod def poll(cls, context) -> bool: - return len(getattr(context, "selected_ids", [])) > 0 + # Match `outliner.delete` poll for consistency. + # `outliner.delete` just checks `area.type` == `OUTLINER`. + poll = bpy.ops.outliner.delete.poll() + if poll: + return True + cls.poll_message_set("Only available from Outliner.") + return False def execute(self, context): + if len(getattr(context, "selected_ids", [])) == 0: + return {"FINISHED"} + # In this override, we don't check self.hierarchy. This effectively # makes Delete and Delete Hierarchy identical. This is on purpose, since # non-hierarchical deletion may imply a whole bunch of potentially @@ -1051,6 +1089,9 @@ class OverrideOutlinerDelete(bpy.types.Operator, tool.Ifc.Operator): return {"FINISHED"} def invoke(self, context, event): + if len(getattr(context, "selected_ids", [])) == 0: + return {"FINISHED"} + assert context.window_manager ifc_file = tool.Ifc.get() if ifc_file: @@ -1121,10 +1162,18 @@ class OverrideDuplicateMove(bpy.types.Operator): is_interactive: bpy.props.BoolProperty(name="Is Interactive", default=True) @classmethod - def poll(cls, context): - return len(context.selected_objects) > 0 + def poll(cls, context) -> bool: + # Match `object.duplicate_move` poll for consistency. + # `object.duplicate_move` poll checks for OBJECT mode. + poll = bpy.ops.object.duplicate_move.poll() + if poll: + return True + cls.poll_message_set("Only available in OBJECT mode") + return False def execute(self, context): + if not context.selected_objects: + return {"FINISHED"} return OverrideDuplicateMove.execute_duplicate_operator(self, context, linked=False) def _execute(self, context): @@ -1147,7 +1196,7 @@ class OverrideDuplicateMove(bpy.types.Operator): @staticmethod def execute_ifc_duplicate_operator(operator: bpy.types.Operator, context: bpy.types.Context, linked: bool = False): - objects_to_remove = set() + objects_to_remove: set[bpy.types.Object] = set() for obj in context.selected_objects: element = tool.Ifc.get_entity(obj) @@ -1166,13 +1215,84 @@ class OverrideDuplicateMove(bpy.types.Operator): for obj in objects_to_remove: tool.Blender.deselect_object(obj) + # Expand selection to include all parts of selected aggregates + objects_to_duplicate = set(context.selected_objects) - objects_to_remove + expanded_objects = set(objects_to_duplicate) + + for obj in objects_to_duplicate: + element = tool.Ifc.get_entity(obj) + if element and element.is_a("IfcElementAssembly"): + parts = tool.Aggregate.get_parts_recursively(element) + for part in parts: + part_obj = tool.Ifc.get_object(part) + if part_obj: + expanded_objects.add(part_obj) + + # Store parent aggregate relationships + parent_aggregates = {} + + for obj in expanded_objects: + element = tool.Ifc.get_entity(obj) + if element and element.is_a("IfcElementAssembly"): + parent_aggregate = ifcopenshell.util.element.get_aggregate(element) + if parent_aggregate: + parent_aggregates[element] = parent_aggregate + old_to_new, new_active_obj = tool.Geometry.duplicate_ifc_objects( - set(context.selected_objects) - objects_to_remove, + expanded_objects, linked=linked, active_object=context.active_object, ) + + # Restore parent aggregate relationships, but only for parents that were NOT duplicated + for old_elem, new_elems in old_to_new.items(): + if old_elem in parent_aggregates: + old_parent = parent_aggregates[old_elem] + + # Check if the parent was also duplicated + if old_parent in old_to_new: + # The duplication already created the correct nested relationship + continue + + # Parent was NOT duplicated, so we need to assign to the original parent + for new_elem in new_elems: + new_obj = tool.Ifc.get_object(new_elem) + parent_obj = tool.Ifc.get_object(old_parent) + if new_obj and parent_obj: + bonsai.core.aggregate.assign_object( + tool.Ifc, + tool.Aggregate, + tool.Collector, + relating_obj=parent_obj, + related_obj=new_obj, + ) + + # Select all duplicated objects and their parts + all_objects_to_select = set() + for old_elem, new_elems in old_to_new.items(): + for new_elem in new_elems: + new_obj = tool.Ifc.get_object(new_elem) + if new_obj: + all_objects_to_select.add(new_obj) + + # If it's an aggregate, also select all its parts + if new_elem.is_a("IfcElementAssembly"): + parts = tool.Aggregate.get_parts_recursively(new_elem) + for part in parts: + part_obj = tool.Ifc.get_object(part) + if part_obj: + all_objects_to_select.add(part_obj) + + # Deselect everything first + bpy.ops.object.select_all(action="DESELECT") + + # Select all the duplicated objects + for obj in all_objects_to_select: + obj.select_set(True) + if new_active_obj: context.view_layer.objects.active = new_active_obj + return old_to_new @@ -1205,6 +1325,9 @@ class DuplicateMoveLinkedAggregateMacro(bpy.types.Macro): bl_options = {"REGISTER", "UNDO"} +OldToNewType = dict[ifcopenshell.entity_instance, list[ifcopenshell.entity_instance]] + + class DuplicateMoveLinkedAggregate(bpy.types.Operator): bl_idname = "bim.object_duplicate_move_linked_aggregate" bl_label = "IFC Duplicate and Move Linked Aggregate" @@ -1227,9 +1350,9 @@ class DuplicateMoveLinkedAggregate(bpy.types.Operator): self.new_active_obj = None self.group_name = "BBIM_Linked_Aggregate" self.pset_name = "BBIM_Linked_Aggregate" - old_to_new = {} + all_old_to_new = {} # Track all duplicates created - def select_objects_and_add_data(element): + def select_objects_and_add_data(element: ifcopenshell.entity_instance) -> None: add_linked_aggregate_group(element) obj = tool.Ifc.get_object(element) obj.select_set(True) @@ -1243,8 +1366,6 @@ class DuplicateMoveLinkedAggregate(bpy.types.Operator): select_objects_and_add_data(part) else: index = add_linked_aggregate_pset(part, index) - # index += 1 - obj = tool.Ifc.get_object(part) obj.select_set(True) @@ -1257,20 +1378,15 @@ class DuplicateMoveLinkedAggregate(bpy.types.Operator): if not pset: pset = ifcopenshell.api.pset.add_pset(ifc_file, product=element, name=self.pset_name) - ifcopenshell.api.pset.edit_pset( ifc_file, pset=pset, properties=properties, ) - index += 1 - else: - pass - return index - def add_linked_aggregate_group(element): + def add_linked_aggregate_group(element: ifcopenshell.entity_instance) -> None: linked_aggregate_group = None product_groups_name = [ r.RelatingGroup.Name @@ -1283,25 +1399,21 @@ class DuplicateMoveLinkedAggregate(bpy.types.Operator): linked_aggregate_group = ifcopenshell.api.group.add_group(ifc_file, name=self.group_name) ifcopenshell.api.group.assign_group(ifc_file, products=[element], group=linked_aggregate_group) - def custom_incremental_naming_for_element_assembly(old_to_new): + def custom_incremental_naming_for_element_assembly(old_to_new: OldToNewType) -> None: for new in old_to_new.values(): if new[0].is_a("IfcElementAssembly"): - group_elements: list[ifcopenshell.entity_instance] = next( - r.RelatedObjects - for r in getattr(new[0], "HasAssignments", []) or [] - if r.is_a("IfcRelAssignsToGroup") - if "BBIM_Linked_Aggregate" in r.RelatingGroup.Name - ) - pset = ifcopenshell.util.element.get_pset(new[0], "BBIM_Linked_Aggregate") new_obj = tool.Ifc.get_object(new[0]) - new_obj.name = pset["Name"] + "_" + str(pset["Aggregate_Index"]) + new_obj.name = f"{pset['Name']}_{pset['Aggregate_Index']:02d}" def get_max_index(parts): - psets = [ifcopenshell.util.element.get_pset(p, "BBIM_Linked_Aggregate") for p in parts] - index = [i["Index"] for i in psets if i] - if len(index) > 0: - index = max(index) + psets = [ + ifcopenshell.util.element.get_pset(p, "BBIM_Linked_Aggregate") + for p in parts + if ifcopenshell.util.element.get_pset(p, "BBIM_Linked_Aggregate") + ] + if psets: + index = max([i["Index"] for i in psets if i]) return index else: return 0 @@ -1315,23 +1427,28 @@ class DuplicateMoveLinkedAggregate(bpy.types.Operator): if r.is_a("IfcRelAssignsToGroup") if "BBIM_Linked_Aggregate" in r.RelatingGroup.Name ] - ifcopenshell.api.group.assign_group(ifc_file, group=linked_aggregate_group[0], products=new) - - group_elements: list[ifcopenshell.entity_instance] = next( - r.RelatedObjects - for r in getattr(new[0], "HasAssignments", []) or [] - if r.is_a("IfcRelAssignsToGroup") - if "BBIM_Linked_Aggregate" in r.RelatingGroup.Name - ) + if linked_aggregate_group: + ifcopenshell.api.group.assign_group(ifc_file, group=linked_aggregate_group[0], products=new) pset = ifcopenshell.util.element.get_pset(old, "BBIM_Linked_Aggregate") if pset: new_pset = ifcopenshell.api.pset.add_pset(ifc_file, product=new[0], name=self.pset_name) if pset["Index"] == 0: + group_elements = [] + if new[0].is_a("IfcElementAssembly"): + group_elements = next( + ( + r.RelatedObjects + for r in getattr(new[0], "HasAssignments", []) or [] + if r.is_a("IfcRelAssignsToGroup") + and "BBIM_Linked_Aggregate" in r.RelatingGroup.Name + ), + [], + ) properties = { "Index": pset["Index"], "Name": pset["Name"], - "Aggregate_Index": len(group_elements) - 1, + "Aggregate_Index": len(group_elements) - 1 if group_elements else 0, } else: properties = {"Index": pset["Index"]} @@ -1351,43 +1468,73 @@ class DuplicateMoveLinkedAggregate(bpy.types.Operator): location_diff = new_obj.location - base_obj_location new_obj.location = context.scene.cursor.location + location_diff - if len(context.selected_objects) != 1: + # Process multiple selected aggregates + selected_aggregates = [] + for obj in context.selected_objects: + selected_element = tool.Ifc.get_entity(obj) + if not selected_element: + continue + + # Find the aggregate element + if selected_element.is_a("IfcElementAssembly"): + selected_aggregates.append(selected_element) + elif selected_element.Decomposes: + if selected_element.Decomposes[0].RelatingObject.is_a("IfcElementAssembly"): + selected_aggregates.append(selected_element.Decomposes[0].RelatingObject) + + # Remove duplicates + selected_aggregates = list(set(selected_aggregates)) + + if not selected_aggregates: + self.report({"INFO"}, "No Linked Aggregates selected.") return {"FINISHED"} - selected_obj = context.selected_objects[0] - selected_element = tool.Ifc.get_entity(selected_obj) - assert selected_element - - if selected_element.is_a("IfcElementAssembly"): - pass - elif selected_element.Decomposes: - if selected_element.Decomposes[0].RelatingObject.is_a("IfcElementAssembly"): - selected_element = selected_element.Decomposes[0].RelatingObject - selected_obj = tool.Ifc.get_object(selected_element) - else: - self.report({"INFO"}, "Object is not part of a IfcElementAssembly.") - return {"FINISHED"} - - select_objects_and_add_data(selected_element) - - old_to_new = OverrideDuplicateMove.execute_ifc_duplicate_operator(self, context, linked=True) - - tool.Root.recreate_aggregate(old_to_new) - - copy_linked_aggregate_data(old_to_new) - - custom_incremental_naming_for_element_assembly(old_to_new) - - if location_from_3d_cursor: - get_location_from_3d_cursor(old_to_new, selected_element) - + # Deselect all first bpy.ops.object.select_all(action="DESELECT") - new_aggregate = old_to_new[selected_element][0] - tool.Blender.set_active_object(tool.Ifc.get_object(new_aggregate)) + + # Process each selected aggregate + for aggregate in selected_aggregates: + aggregate_obj = tool.Ifc.get_object(aggregate) + + # Select and prepare the aggregate for duplication + select_objects_and_add_data(aggregate) + + # Duplicate the aggregate + old_to_new = OverrideDuplicateMove.execute_ifc_duplicate_operator(self, context, linked=True) + all_old_to_new.update(old_to_new) # Collect all duplicates + + # Recreate aggregate structure + tool.Root.recreate_aggregate(old_to_new) + + # Copy linked aggregate data + copy_linked_aggregate_data(old_to_new) + + # Apply custom naming + custom_incremental_naming_for_element_assembly(old_to_new) + + # Apply 3D cursor location if requested + if location_from_3d_cursor: + get_location_from_3d_cursor(old_to_new, aggregate) + + # Deselect for next iteration + bpy.ops.object.select_all(action="DESELECT") + + # Select all newly created aggregates + for aggregate in selected_aggregates: + if aggregate in all_old_to_new: + new_aggregate = all_old_to_new[aggregate][0] + new_aggregate_obj = tool.Ifc.get_object(new_aggregate) + if new_aggregate_obj: + new_aggregate_obj.select_set(True) + + # Set active object to the first new aggregate + if all_old_to_new: + first_new_aggregate = next(iter(all_old_to_new.values()))[0] + context.view_layer.objects.active = tool.Ifc.get_object(first_new_aggregate) bonsai.bim.handler.refresh_ui_data() - return old_to_new + return all_old_to_new class DuplicateLinkedAggregateTo3dCursor(bpy.types.Operator): @@ -1423,8 +1570,9 @@ class RefreshLinkedAggregate(bpy.types.Operator, tool.Ifc.Operator): self.pset_name = "BBIM_Linked_Aggregate" refresh_start_time = time() old_to_new = {} - original_data: dict[int, dict[int, str]] = {} + original_data: dict[int, dict[int, dict[str, Any]]] = {} + # Define all nested functions FIRST def delete_objects(element: ifcopenshell.entity_instance) -> None: """Remove IfcElementAssembly and it's parts.""" parts = ifcopenshell.util.element.get_parts(element) @@ -1469,17 +1617,20 @@ class RefreshLinkedAggregate(bpy.types.Operator, tool.Ifc.Operator): ) tool.Blender.update_viewport() - def get_original_data(element: ifcopenshell.entity_instance) -> dict[int, dict[int, str]]: - group = next( + def get_original_data(element: ifcopenshell.entity_instance) -> dict[int, dict[int, dict[str, Any]]]: + group: int = next( r.RelatingGroup for r in getattr(element, "HasAssignments", []) or [] if r.is_a("IfcRelAssignsToGroup") if self.group_name in r.RelatingGroup.Name ).id() - original_data[group] = {} - pset = ifcopenshell.util.element.get_pset(element, self.pset_name) - index = pset["Index"] + # Initialize if not exists + if group not in original_data: + original_data[group] = {} + + pset: dict[str, Any] = ifcopenshell.util.element.get_pset(element, self.pset_name) + index: int = pset["Index"] annotations = get_assignments(element) container = ifcopenshell.util.element.get_container(element) original_data[group][index] = { @@ -1493,7 +1644,13 @@ class RefreshLinkedAggregate(bpy.types.Operator, tool.Ifc.Operator): if parts: for part in parts: if part.is_a("IfcElementAssembly"): - original_data | get_original_data(part) + # Recursively collect data from nested assemblies + nested_data = get_original_data(part) + # Merge nested data into original_data + for nested_group_id, nested_group_data in nested_data.items(): + if nested_group_id not in original_data: + original_data[nested_group_id] = {} + original_data[nested_group_id].update(nested_group_data) else: try: pset = ifcopenshell.util.element.get_pset(part, self.pset_name) @@ -1517,50 +1674,102 @@ class RefreshLinkedAggregate(bpy.types.Operator, tool.Ifc.Operator): ): # if element has parts it means it is the base of and aggregate or sub-aggregate aggregate = element - group = next( - r.RelatingGroup - for r in getattr(aggregate, "HasAssignments", []) or [] - if r.is_a("IfcRelAssignsToGroup") - if self.group_name in r.RelatingGroup.Name - ).id() - if not group: + # Get the new group + new_group_entity = next( + ( + r.RelatingGroup + for r in getattr(aggregate, "HasAssignments", []) or [] + if r.is_a("IfcRelAssignsToGroup") + if self.group_name in r.RelatingGroup.Name + ), + None, + ) + + if not new_group_entity: return pset = ifcopenshell.util.element.get_pset(element, self.pset_name) + if not pset: + return + index = pset["Index"] + # Find the matching old group by looking for the same aggregate name + matching_group_id = None if index == 0: - obj.name = pset["Name"] + "_" + str(original_data[group][index]["Aggregate_Index"]) + # This is a root assembly - find by Name + aggregate_name = pset.get("Name") + for group_id, group_data in original_data.items(): + if 0 in group_data and group_data[0].get("Name") == aggregate_name: + matching_group_id = group_id + break + else: + # This is a part - find the group that has this index + for group_id, group_data in original_data.items(): + if index in group_data: + matching_group_id = group_id + break + + if matching_group_id is None: + return + + if index == 0: + obj.name = pset["Name"] + "_" + str(original_data[matching_group_id][index]["Aggregate_Index"]) ifc_file = tool.Ifc.get() ifcopenshell.api.pset.edit_pset( ifc_file, ifc_file.by_id(pset["id"]), - properties={"Aggregate_Index": int(original_data[group][index]["Aggregate_Index"])}, + properties={"Aggregate_Index": int(original_data[matching_group_id][index]["Aggregate_Index"])}, ) - bonsai.core.spatial.assign_container( - tool.Ifc, - tool.Collector, - tool.Spatial, - container=original_data[group][index]["Container"], - element_obj=obj, - ) - for part in ifcopenshell.util.element.get_parts(tool.Ifc.get_entity(obj)): - tool.Collector.assign(tool.Ifc.get_object(part)) - assignments = original_data[group][index]["Assignment"] + + # Only assign container if element is not already aggregated under another element + # Aggregated elements should not be in the spatial structure + if not ifcopenshell.util.element.get_aggregate(element): + bonsai.core.spatial.assign_container( + tool.Ifc, + tool.Collector, + tool.Spatial, + container=original_data[matching_group_id][index]["Container"], + objs=[obj], + ) + for part in ifcopenshell.util.element.get_parts(tool.Ifc.get_entity(obj)): + tool.Collector.assign(tool.Ifc.get_object(part)) + + assignments = original_data[matching_group_id][index]["Assignment"] if assignments: assign_to_annotations(obj, assignments) else: try: - obj.name = original_data[group][index]["Name"] + obj.name = original_data[matching_group_id][index]["Name"] except: pass try: - assignments = original_data[group][index]["Assignment"] + assignments = original_data[matching_group_id][index]["Assignment"] except: assignments = [] if assignments: assign_to_annotations(obj, assignments) + def get_original_matrix( + element: ifcopenshell.entity_instance, base_instance: ifcopenshell.entity_instance + ) -> tuple[Matrix, tuple[Vector, Quaternion, Vector]]: + selected_obj = tool.Ifc.get_object(base_instance) + selected_matrix = selected_obj.matrix_world + object_duplicate = tool.Ifc.get_object(element) + duplicate_matrix = object_duplicate.matrix_world.decompose() + + return selected_matrix, duplicate_matrix + + def set_new_matrix( + selected_matrix: Matrix, duplicate_matrix: tuple[Vector, Quaternion, Vector], old_to_new: dict + ) -> None: + for old, new in old_to_new.items(): + new_obj = tool.Ifc.get_object(new[0]) + new_base_matrix = Matrix.LocRotScale(*duplicate_matrix) + matrix_diff = Matrix.inverted(selected_matrix) @ new_obj.matrix_world + new_obj_matrix = new_base_matrix @ matrix_diff + new_obj.matrix_world = new_obj_matrix + def get_element_assembly(element: ifcopenshell.entity_instance) -> Union[ifcopenshell.entity_instance, None]: if element.is_a("IfcElementAssembly"): return element @@ -1604,26 +1813,6 @@ class RefreshLinkedAggregate(bpy.types.Operator, tool.Ifc.Operator): return list(set(linked_aggregate_groups)), selected_parents - def get_original_matrix( - element: ifcopenshell.entity_instance, base_instance: ifcopenshell.entity_instance - ) -> tuple[Matrix, tuple[Vector, Quaternion, Vector]]: - selected_obj = tool.Ifc.get_object(base_instance) - selected_matrix = selected_obj.matrix_world - object_duplicate = tool.Ifc.get_object(element) - duplicate_matrix = object_duplicate.matrix_world.decompose() - - return selected_matrix, duplicate_matrix - - def set_new_matrix( - selected_matrix: Matrix, duplicate_matrix: tuple[Vector, Quaternion, Vector], old_to_new: dict - ) -> None: - for old, new in old_to_new.items(): - new_obj = tool.Ifc.get_object(new[0]) - new_base_matrix = Matrix.LocRotScale(*duplicate_matrix) - matrix_diff = Matrix.inverted(selected_matrix) @ new_obj.matrix_world - new_obj_matrix = new_base_matrix @ matrix_diff - new_obj.matrix_world = new_obj_matrix - active_element = tool.Ifc.get_entity(context.active_object) if not active_element: self.report({"INFO"}, "Object has no Ifc metadata.") @@ -1660,6 +1849,7 @@ class RefreshLinkedAggregate(bpy.types.Operator, tool.Ifc.Operator): base_pset = ifcopenshell.util.element.get_pset(base_instance, self.pset_name) base_obj = tool.Ifc.get_object(base_instance) base_obj.name = base_pset["Name"] + "_" + str(base_pset["Aggregate_Index"]) + for element in instances_to_refresh: if element.GlobalId == base_instance.GlobalId: continue @@ -1668,7 +1858,12 @@ class RefreshLinkedAggregate(bpy.types.Operator, tool.Ifc.Operator): selected_matrix, duplicate_matrix = get_original_matrix(element, base_instance) - original_data = get_original_data(element) + # Merge data instead of overwriting + element_original_data = get_original_data(element) + for group_id, group_data in element_original_data.items(): + if group_id not in original_data: + original_data[group_id] = {} + original_data[group_id].update(group_data) delete_objects(element) @@ -1682,7 +1877,7 @@ class RefreshLinkedAggregate(bpy.types.Operator, tool.Ifc.Operator): set_new_matrix(selected_matrix, duplicate_matrix, old_to_new) for old, new in old_to_new.items(): - if element_aggregate and new[0].is_a("IfcElementAssembly"): + if element_aggregate and new[0].is_a("IfcElementAssembly") and old == base_instance: new_aggregate = ifcopenshell.util.element.get_aggregate(new[0]) if not new_aggregate: @@ -1847,6 +2042,7 @@ class OverrideJoin(bpy.types.Operator, tool.Ifc.Operator): return position items = list(representation.Items) + skipped_objects = [] for obj in context.selected_editable_objects: if obj == self.target: continue @@ -1866,12 +2062,8 @@ class OverrideJoin(bpy.types.Operator, tool.Ifc.Operator): assert obj_rep if obj_rep.RepresentationType != representation_type: obj.select_set(False) - self.report( - {"ERROR"}, - f"IFC join failed - object '{obj.name}' has a different representation type " - f"({obj_rep.RepresentationType})\nthan target '{self.target.name}' ({representation_type}).", - ) - return + skipped_objects.append((obj.name, obj_rep.RepresentationType)) + continue placement = np.array(obj.matrix_world) placement[M_TRANSLATION] /= si_conversion @@ -1951,6 +2143,9 @@ class OverrideJoin(bpy.types.Operator, tool.Ifc.Operator): items.append(copied_item) ifcopenshell.api.root.remove_product(ifc_file, product=element) + if skipped_objects: + skipped_info = ", ".join(f"'{name}' ({rep_type})" for name, rep_type in skipped_objects) + self.report({"INFO"}, f"Skipped incompatible objects: {skipped_info}") representation.Items = items bpy.ops.object.join() core.switch_representation( @@ -2346,6 +2541,14 @@ class OverrideModeSetObject(bpy.types.Operator, tool.Ifc.Operator): props = tool.Geometry.get_geometry_props() item = tool.Geometry.get_active_representation(obj) assert item + + # Fix vertex order for annotation items + rep_obj = props.representation_obj + if rep_obj: + element = tool.Ifc.get_entity(rep_obj) + if element and self._is_annotation_object(element): + tool.Geometry.ensure_annotation_vertex_order(obj) + if tool.Geometry.is_meshlike_item(item): if tool.Geometry.is_geometric_data(obj.data) and ( item.is_a("IfcVertex") or item.is_a("IfcEdge") or obj.data.polygons @@ -2485,6 +2688,416 @@ class OverrideModeSetObject(bpy.types.Operator, tool.Ifc.Operator): props.mode = "EDIT" props.is_changing_mode = False + def _is_annotation_object(self, element: ifcopenshell.entity_instance) -> bool: + """Check if element is an annotation object that needs vertex order preservation.""" + if not element.is_a("IfcAnnotation"): + return False + + # Object types that have semantic vertex order (arrow direction, text position) + annotation_types_with_order = { + "TEXT_LEADER", + "DIMENSION", + "RADIUS", + "DIAMETER", + "ANGLE", + "FALL", + "SLOPE_ANGLE", + "SLOPE_FRACTION", + "SLOPE_PERCENT", + "STAIR_ARROW", + "PLAN_LEVEL", + "SECTION_LEVEL", + "SECTION", + "ELEVATION", + } + + return element.ObjectType in annotation_types_with_order + + +class DirectProfileEdit(bpy.types.Operator, tool.Ifc.Operator): + bl_idname = "bim.direct_profile_edit" + bl_label = "IFC Direct Profile Edit" + bl_description = "Directly enter profile/axis edit mode, or exit back to object mode" + bl_options = {"REGISTER", "UNDO"} + + @classmethod + def poll(cls, context): + # Only allow in OBJECT or EDIT modes + if context.mode not in ("OBJECT", "EDIT_MESH", "EDIT_CURVE"): + return False + + # Must have an active object + if not context.active_object: + return False + + # In edit mode, we're good to go (we'll exit) + if context.mode in ("EDIT_MESH", "EDIT_CURVE"): + return True + + # In object mode, check if it's an editable object type + obj = context.active_object + + # Only mesh and curve objects are editable + if obj.type not in ("MESH", "CURVE"): + return False + + return True + + def _execute(self, context): + # Ensure we're only working with the active object + # Deselect all other objects if multiple are selected + active_obj = context.active_object + if active_obj and context.mode == "OBJECT": + if len(context.selected_objects) > 1: + self.report( + {"WARNING"}, + "Currently Direct Profile Edit only works on one object at a time. Operating on active object only.", + ) + bpy.ops.object.select_all(action="DESELECT") + active_obj.select_set(True) + context.view_layer.objects.active = active_obj + + # If we're already in edit mode, exit to object mode and SAVE changes + if context.mode in ("EDIT_MESH", "EDIT_CURVE"): + return self.handle_exit_edit_mode(context) + + # We're in object mode, try to enter profile/axis edit + return self.handle_enter_edit_mode(context) + + def handle_exit_edit_mode(self, context): + """Handle exiting from edit mode and saving changes.""" + obj = context.active_object + if not obj: + return {"CANCELLED"} + + # Check if we're editing a representation item + if tool.Geometry.is_representation_item(obj): + return self.exit_item_edit_mode(context, obj) + + # Check if we're editing an element-level profile or axis + element = tool.Ifc.get_entity(obj) + if element and tool.Geometry.has_mesh_properties(obj.data): + return self.exit_element_edit_mode(context, obj, element) + + # For other edit modes, use standard operator + return bpy.ops.bim.override_mode_set_object() + + def exit_item_edit_mode(self, context, obj): + """Exit from representation item editing.""" + try: + # Make absolutely sure we're in object mode before proceeding + if context.mode != "OBJECT": + bpy.ops.object.mode_set(mode="OBJECT", toggle=False) + + item = tool.Geometry.get_active_representation(obj) + if not item: + return bpy.ops.bim.override_mode_set_object() + + # Fix vertex order for annotation items + props = tool.Geometry.get_geometry_props() + rep_obj = props.representation_obj + if rep_obj: + element = tool.Ifc.get_entity(rep_obj) + if element and OverrideModeSetObject._is_annotation_object(self, element): + tool.Geometry.ensure_annotation_vertex_order(obj) + + # Handle SweptAreaSolid + if item.is_a("IfcSweptAreaSolid"): + from bonsai.bim.module.model.decorator import ProfileDecorator + + ProfileDecorator.uninstall() + + profile = tool.Model.export_profile(obj) + if not profile: + + def msg(self, context): + self.layout.label(text="INVALID PROFILE") + + context.window_manager.popup_menu(msg, title="Error", icon="ERROR") + tool.Blender.toggle_edit_mode(context) + ProfileDecorator.install(context) + return {"CANCELLED"} + + old_profile = item.SweptArea + profile.ProfileName = old_profile.ProfileName + + ifc_file = tool.Ifc.get() + for inverse in ifc_file.get_inverse(old_profile): + ifcopenshell.util.element.replace_attribute(inverse, old_profile, profile) + + tool.Profile.replace_profile_in_profiles_ui(old_profile.id(), profile.id()) + ifcopenshell.util.element.remove_deep2(ifc_file, old_profile) + + if props.representation_obj: + tool.Geometry.reload_representation(props.representation_obj) + tool.Geometry.disable_item_mode() + + return {"FINISHED"} + + # Handle curvelike items (annotations) + elif tool.Geometry.is_curvelike_item(item): + from bonsai.bim.module.model.decorator import ProfileDecorator + + ProfileDecorator.uninstall() + + new = tool.Model.export_curves(obj) + + if not new: + + def msg(self, context): + self.layout.label(text="INVALID PROFILE") + + context.window_manager.popup_menu(msg, title="Error", icon="ERROR") + tool.Blender.toggle_edit_mode(context) + ProfileDecorator.install(context) + return {"CANCELLED"} + + additional_curves = [] + if len(new) > 1: + additional_curves = new[1:] + new = new[0] + + ifc_file = tool.Ifc.get() + for inverse in ifc_file.get_inverse(item): + ifcopenshell.util.element.replace_attribute(inverse, item, new) + ifcopenshell.util.element.remove_deep2(ifc_file, item) + + tool.Ifc.link(new, obj.data) + tool.Geometry.import_item(obj) + + for curve_item in additional_curves: + representation = tool.Geometry.get_active_representation(props.representation_obj) + representation = ifcopenshell.util.representation.resolve_representation(representation) + representation.Items = list(representation.Items) + [curve_item] + + mesh = bpy.data.meshes.new("temp") + new_obj = bpy.data.objects.new("temp", mesh) + tool.Geometry.name_item_object(new_obj, curve_item) + tool.Ifc.link(curve_item, mesh) + bpy.context.collection.objects.link(new_obj) + props.add_item_object(new_obj, curve_item) + new_obj.matrix_world = obj.matrix_world + tool.Geometry.import_item(new_obj) + + if additional_curves: + tool.Root.reload_item_decorator() + + # Reload representation and exit item mode + tool.Geometry.reload_representation(props.representation_obj) + tool.Geometry.disable_item_mode() + + return {"FINISHED"} + + # Handle meshlike items + elif tool.Geometry.is_meshlike_item(item): + if tool.Geometry.is_geometric_data(obj.data) and ( + item.is_a("IfcVertex") or item.is_a("IfcEdge") or obj.data.polygons + ): + tool.Geometry.edit_meshlike_item(obj) + else: + tool.Geometry.import_item(obj) + tool.Root.reload_item_decorator() + + # Exit item mode to return to object mode + tool.Geometry.disable_item_mode() + + return {"FINISHED"} + + # Fallback + else: + return bpy.ops.bim.override_mode_set_object() + + except Exception as e: + self.report({"ERROR"}, f"Failed to save item changes: {str(e)}") + return {"CANCELLED"} + + def exit_element_edit_mode(self, context, obj, element): + """Exit from element-level profile or axis editing.""" + try: + mesh_props = tool.Geometry.get_mesh_props(obj.data) + + # Check if we're editing axis + if mesh_props.subshape_type == "AXIS": + return bpy.ops.bim.edit_extrusion_axis() + + # Otherwise, we're editing a profile + body = ifcopenshell.util.representation.get_representation(element, "Model", "Body", "MODEL_VIEW") + if body: + body = ifcopenshell.util.representation.resolve_representation(body) + extrusion = tool.Model.get_extrusion(body) + if extrusion: + return bpy.ops.bim.edit_extrusion_profile() + except Exception as e: + self.report({"ERROR"}, f"Failed to save profile/axis changes: {str(e)}") + return {"CANCELLED"} + + # Fallback to standard operator + return bpy.ops.bim.override_mode_set_object() + + def handle_enter_edit_mode(self, context): + """Handle entering edit mode from object mode.""" + obj = context.active_object + if not obj: + return {"CANCELLED"} + + # Check if object has mesh or curve data + if not hasattr(obj, "data") or not obj.data: + self.report({"INFO"}, "Object has no editable data") + return {"CANCELLED"} + + element = tool.Ifc.get_entity(obj) + if not element: + self.report({"INFO"}, "Active object is not an IFC element") + return {"CANCELLED"} + + # Check if this is a LAYER2 element (wall, railing, etc.) + try: + material_usage = tool.Model.get_usage_type(element) + except: + material_usage = None + + if material_usage == "LAYER2": + self.report({"ERROR"}, "LAYER2 elements (walls, railings, etc.) cannot use profile editing.") + return {"CANCELLED"} + + # Try to get representation + try: + representation = tool.Geometry.get_active_representation(obj) + except: + representation = None + + if not representation: + self.report({"INFO"}, "Object has no active representation") + return {"CANCELLED"} + + # Check for PROFILE usage (beams, columns, members) - should edit axis + if material_usage == "PROFILE": + try: + return bpy.ops.bim.enable_editing_extrusion_axis() + except Exception as e: + self.report({"ERROR"}, f"Failed to enable axis editing: {str(e)}") + return {"CANCELLED"} + + # Check if this is an element with an extrusion profile (LAYER3, etc) + try: + body = ifcopenshell.util.representation.get_representation(element, "Model", "Body", "MODEL_VIEW") + if body: + body = ifcopenshell.util.representation.resolve_representation(body) + extrusion = tool.Model.get_extrusion(body) + if extrusion and not tool.Geometry.is_representation_item(obj): + return bpy.ops.bim.enable_editing_extrusion_profile() + except Exception as e: + self.report({"ERROR"}, f"Failed to enable profile editing: {str(e)}") + return {"CANCELLED"} + + # Otherwise, try to enter item mode and edit SweptAreaSolid + return self.enter_item_edit_mode(context, obj) + + def enter_item_edit_mode(self, context, obj): + """Enter item mode for representation item editing.""" + try: + props = tool.Geometry.get_geometry_props() + if not props.representation_obj: + bpy.ops.bim.import_representation_items() + props = tool.Geometry.get_geometry_props() + + # Find an editable item - prioritize SweptAreaSolid but allow others + editable_item_obj = None + swept_solid_obj = None + + for item_obj_data in props.item_objs: + item_obj = item_obj_data.obj + if not item_obj: + continue + try: + item = tool.Geometry.get_active_representation(item_obj) + if not item: + continue + + # Prioritize SweptAreaSolid + if item.is_a("IfcSweptAreaSolid"): + swept_solid_obj = item_obj + editable_item_obj = item_obj + break + + # But accept other editable types as fallback + if not editable_item_obj: + editable_item_obj = item_obj + except: + continue + + if not editable_item_obj: + self.report({"INFO"}, "No editable representation item found") + tool.Geometry.disable_item_mode() + return {"CANCELLED"} + + # Select and activate the editable object + bpy.ops.object.select_all(action="DESELECT") + editable_item_obj.select_set(True) + context.view_layer.objects.active = editable_item_obj + + # Get the item to determine how to edit it + item = tool.Geometry.get_active_representation(editable_item_obj) + + # Handle SweptAreaSolid with profile import + if item.is_a("IfcSweptAreaSolid"): + profile = item.SweptArea + res = tool.Model.import_profile(profile, obj=editable_item_obj) + if res is None: + self.report({"ERROR"}, "Couldn't import profile for editing") + tool.Geometry.disable_item_mode() + return {"CANCELLED"} + + tool.Ifc.link(item, editable_item_obj.data) + tool.Blender.toggle_edit_mode(context) + + from bonsai.bim.module.model.decorator import ProfileDecorator + + ProfileDecorator.install(context) + + if not bpy.app.background: + tool.Blender.set_viewport_tool("bim.cad_tool") + + return {"FINISHED"} + + # Handle other item types (annotations, curves, etc.) + elif tool.Geometry.is_curvelike_item(item): + tool.Model.import_curve(item, obj=editable_item_obj) + tool.Ifc.link(item, editable_item_obj.data) + tool.Blender.toggle_edit_mode(context) + + from bonsai.bim.module.model.decorator import ProfileDecorator + + ProfileDecorator.install(context) + + if not bpy.app.background: + tool.Blender.set_viewport_tool("bim.cad_tool") + + return {"FINISHED"} + + # Handle meshlike items + elif tool.Geometry.is_meshlike_item(item): + tool.Geometry.dissolve_triangulated_edges(editable_item_obj) + tool.Blender.select_and_activate_single_object(context, editable_item_obj) + assert isinstance(mesh := editable_item_obj.data, bpy.types.Mesh) + props = tool.Geometry.get_mesh_props(mesh) + props.mesh_checksum = tool.Geometry.get_mesh_checksum(mesh) + tool.Blender.toggle_edit_mode(context) + return {"FINISHED"} + + else: + self.report({"INFO"}, f"Editing {item.is_a()} geometry is not yet supported") + tool.Geometry.disable_item_mode() + return {"CANCELLED"} + + except Exception as e: + self.report({"ERROR"}, f"Failed to enter item edit mode: {str(e)}") + try: + tool.Geometry.disable_item_mode() + except: + pass + return {"CANCELLED"} + class FlipObject(bpy.types.Operator): bl_idname = "bim.flip_object" @@ -3053,6 +3666,33 @@ class ImportRepresentationItems(bpy.types.Operator, tool.Ifc.Operator): tool.Root.reload_item_decorator() + element = tool.Ifc.get_entity(obj) + if ( + element + and element.is_a("IfcAnnotation") + and element.ObjectType + in { + "TEXT_LEADER", + "DIMENSION", + "RADIUS", + "DIAMETER", + "ANGLE", + "FALL", + "SLOPE_ANGLE", + "SLOPE_FRACTION", + "SLOPE_PERCENT", + "STAIR_ARROW", + "PLAN_LEVEL", + "SECTION_LEVEL", + "SECTION", + "ELEVATION", + } + ): + for item_obj_data in props.item_objs: + item_obj = item_obj_data.obj + if item_obj and isinstance(item_obj.data, bpy.types.Mesh) and item_obj.data.vertices: + item_obj.data["bonsai_first_vert_co"] = item_obj.data.vertices[0].co[:] + class UpdateItemAttributes(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.update_item_attributes" diff --git a/src/bonsai/bonsai/bim/module/geometry/prop.py b/src/bonsai/bonsai/bim/module/geometry/prop.py index 1f8e00c11b..5336eef1c0 100644 --- a/src/bonsai/bonsai/bim/module/geometry/prop.py +++ b/src/bonsai/bonsai/bim/module/geometry/prop.py @@ -16,23 +16,25 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import ifcopenshell +from typing import TYPE_CHECKING, Literal, Optional, Union + import bpy -import bonsai.tool as tool -from bonsai.bim.prop import StrProperty, Attribute, ObjProperty -from bonsai.bim.module.geometry.data import RepresentationsData, ViewportData -from bpy.types import PropertyGroup +import ifcopenshell from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import Optional, TYPE_CHECKING, Union, Literal +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.module.geometry.data import RepresentationsData, ViewportData +from bonsai.bim.prop import Attribute, ObjProperty, StrProperty def get_contexts(self: "BIMObjectGeometryProperties", context: bpy.types.Context) -> list[tuple[str, str, str]]: diff --git a/src/bonsai/bonsai/bim/module/geometry/ui.py b/src/bonsai/bonsai/bim/module/geometry/ui.py index c4ae6e5491..2af216c7a1 100644 --- a/src/bonsai/bonsai/bim/module/geometry/ui.py +++ b/src/bonsai/bonsai/bim/module/geometry/ui.py @@ -17,16 +17,17 @@ # along with Bonsai. If not, see . import bpy +from bpy.types import Menu, Panel, UIList + import bonsai.bim import bonsai.tool as tool -from bpy.types import Panel, Menu, UIList from bonsai.bim.helper import prop_with_search from bonsai.bim.module.geometry.data import ( - RepresentationsData, - RepresentationItemsData, ConnectionsData, - PlacementData, DerivedCoordinatesData, + PlacementData, + RepresentationItemsData, + RepresentationsData, ) from bonsai.bim.module.layer.data import LayersData diff --git a/src/bonsai/bonsai/bim/module/georeference/__init__.py b/src/bonsai/bonsai/bim/module/georeference/__init__.py index 407cd8fead..39ee8f4143 100644 --- a/src/bonsai/bonsai/bim/module/georeference/__init__.py +++ b/src/bonsai/bonsai/bim/module/georeference/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddGeoreferencing, diff --git a/src/bonsai/bonsai/bim/module/georeference/data.py b/src/bonsai/bonsai/bim/module/georeference/data.py index 059368abc7..cf86314f9a 100644 --- a/src/bonsai/bonsai/bim/module/georeference/data.py +++ b/src/bonsai/bonsai/bim/module/georeference/data.py @@ -18,14 +18,15 @@ import bpy -import numpy as np -import bonsai.tool as tool import ifcopenshell.util.element import ifcopenshell.util.geolocation import ifcopenshell.util.schema import ifcopenshell.util.unit -from mathutils import Matrix, Vector +import numpy as np from ifcopenshell.util.doc import get_entity_doc +from mathutils import Matrix, Vector + +import bonsai.tool as tool def refresh(): diff --git a/src/bonsai/bonsai/bim/module/georeference/decorator.py b/src/bonsai/bonsai/bim/module/georeference/decorator.py index 55fcbc1d64..6cece45cc8 100644 --- a/src/bonsai/bonsai/bim/module/georeference/decorator.py +++ b/src/bonsai/bonsai/bim/module/georeference/decorator.py @@ -16,18 +16,20 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy +from math import radians + import blf -import gpu import bmesh +import bpy +import gpu import ifcopenshell import ifcopenshell.util.geolocation -import bonsai.tool as tool -from math import radians from bpy.types import SpaceView3D -from mathutils import Vector, Matrix -from gpu_extras.batch import batch_for_shader from bpy_extras.view3d_utils import location_3d_to_region_2d +from gpu_extras.batch import batch_for_shader +from mathutils import Matrix, Vector + +import bonsai.tool as tool from bonsai.bim.module.georeference.data import GeoreferenceData @@ -53,12 +55,13 @@ class GeoreferenceDecorator: pass cls.is_installed = False - def draw_batch(self, shader_type, content_pos, color, indices=None): + def draw_batch(self, shader_type, content_pos, color, indices=None, should_scale=True): if not tool.Blender.validate_shader_batch_data(content_pos, indices): return props = tool.Georeference.get_georeference_props() - self.scale = props.visualization_scale - content_pos = [v * self.scale for v in content_pos] + if should_scale: + scale = tool.Georeference.get_georeference_props().visualization_scale + content_pos = [v * scale for v in content_pos] shader = self.line_shader if shader_type == "LINES" else self.shader batch = batch_for_shader(shader, shader_type, {"pos": content_pos}, indices=indices) shader.uniform_float("color", color) @@ -141,12 +144,13 @@ class GeoreferenceDecorator: if wcs["blender_location"].length < 1000: position = wcs["blender_location"].copy() + position -= Vector((0, 0.1, 0)) + self.draw_text_at_position(context, text, position, should_scale=False) else: position = wcs["blender_location"].normalized() * 3 text += "\n(Warning: Actual XYZ Not Shown)" - position -= Vector((0, 0.1, 0)) - - self.draw_text_at_position(context, text, position) + position -= Vector((0, 0.1, 0)) + self.draw_text_at_position(context, text, position) if props.has_blender_offset: text = "IFC Local Origin" @@ -165,8 +169,10 @@ class GeoreferenceDecorator: self.draw_text_at_position(context, text, location) blf.disable(self.font_id, blf.SHADOW) - def draw_text_at_position(self, context, text, position): - position = [v * self.scale for v in position] + def draw_text_at_position(self, context, text, position, should_scale=True): + if should_scale: + scale = tool.Georeference.get_georeference_props().visualization_scale + position = [v * scale for v in position] coords_2d = location_3d_to_region_2d(context.region, context.region_data, position) if not coords_2d: return @@ -309,8 +315,8 @@ class GeoreferenceDecorator: if wcs["blender_location"].length < 1000: verts = [Vector((0, 0, 0)), wcs["blender_location"]] edges = [[0, 1]] - self.draw_batch("LINES", verts, decorator_color_special, edges) - self.draw_batch("POINTS", verts[1:], decorator_color_special) + self.draw_batch("LINES", verts, decorator_color_special, edges, should_scale=False) + self.draw_batch("POINTS", verts[1:], decorator_color_special, should_scale=False) else: location = wcs["blender_location"].normalized() edges = [[0, 1]] @@ -332,7 +338,7 @@ class GeoreferenceDecorator: self.draw_batch("LINES", verts, decorator_color_special, edges) self.draw_dashed_line(location * 3, location * 6, decorator_color_error) - def draw_dashed_line(self, start, end, colour): + def draw_dashed_line(self, start, end, colour, should_scale=True): direction = (end - start).normalized() distance = (end - start).length current_distance = Vector((0, 0, 0)) @@ -347,7 +353,7 @@ class GeoreferenceDecorator: edges = [[i, i + 1] for i in range(0, len(points), 2)] verts = points - self.draw_batch("LINES", verts, colour, edges) + self.draw_batch("LINES", verts, colour, edges, should_scale=should_scale) def calculate_angles(self, context): self.pn_angle = 0.0 diff --git a/src/bonsai/bonsai/bim/module/georeference/operator.py b/src/bonsai/bonsai/bim/module/georeference/operator.py index 7d8f98dd6c..6c82e6684c 100644 --- a/src/bonsai/bonsai/bim/module/georeference/operator.py +++ b/src/bonsai/bonsai/bim/module/georeference/operator.py @@ -17,10 +17,10 @@ # along with Bonsai. If not, see . import bpy - -import bonsai.tool as tool -import bonsai.core.georeference as core from bpy_extras.io_utils import ImportHelper + +import bonsai.core.georeference as core +import bonsai.tool as tool from bonsai.bim.module.georeference.decorator import GeoreferenceDecorator diff --git a/src/bonsai/bonsai/bim/module/georeference/prop.py b/src/bonsai/bonsai/bim/module/georeference/prop.py index 0a5eecf4c1..5a1a37f06f 100644 --- a/src/bonsai/bonsai/bim/module/georeference/prop.py +++ b/src/bonsai/bonsai/bim/module/georeference/prop.py @@ -16,24 +16,26 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy import ifcopenshell.util.geolocation -import bonsai.tool as tool -from bonsai.bim.prop import Attribute -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) +from bpy.types import PropertyGroup + +import bonsai.tool as tool from bonsai.bim.module.georeference.data import GeoreferenceData from bonsai.bim.module.georeference.decorator import GeoreferenceDecorator -from typing import TYPE_CHECKING +from bonsai.bim.prop import Attribute def get_coordinate_operation_class( @@ -215,7 +217,7 @@ class BIMGeoreferenceProperties(PropertyGroup): description="Affects the georeference decorator size", default=1, soft_min=0.1, - soft_max=50, + soft_max=100, ) grid_north_angle: StringProperty(name="Grid North Angle", update=update_grid_north_angle) x_axis_abscissa: StringProperty(name="X Axis Abscissa", update=update_grid_north_vector) diff --git a/src/bonsai/bonsai/bim/module/georeference/ui.py b/src/bonsai/bonsai/bim/module/georeference/ui.py index 3dfec3a9f5..93e16b0fbe 100644 --- a/src/bonsai/bonsai/bim/module/georeference/ui.py +++ b/src/bonsai/bonsai/bim/module/georeference/ui.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bonsai.tool as tool from bpy.types import Panel -from bonsai.bim.helper import draw_attributes, draw_attribute + +import bonsai.tool as tool +from bonsai.bim.helper import draw_attribute, draw_attributes from bonsai.bim.module.georeference.data import GeoreferenceData diff --git a/src/bonsai/bonsai/bim/module/gis/__init__.py b/src/bonsai/bonsai/bim/module/gis/__init__.py index 4f0707c693..2e0eeecad3 100644 --- a/src/bonsai/bonsai/bim/module/gis/__init__.py +++ b/src/bonsai/bonsai/bim/module/gis/__init__.py @@ -17,9 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import prop -from . import operator -from . import ui + +from . import operator, prop, ui classes = ( prop.BIMCityJsonProperties, diff --git a/src/bonsai/bonsai/bim/module/gis/prop.py b/src/bonsai/bonsai/bim/module/gis/prop.py index bbf12aeb07..1e6ae61614 100644 --- a/src/bonsai/bonsai/bim/module/gis/prop.py +++ b/src/bonsai/bonsai/bim/module/gis/prop.py @@ -16,8 +16,9 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from bpy.props import BoolProperty, CollectionProperty, EnumProperty, StringProperty from bpy.types import PropertyGroup -from bpy.props import StringProperty, BoolProperty, EnumProperty, CollectionProperty + from bonsai.bim.prop import StrProperty diff --git a/src/bonsai/bonsai/bim/module/group/__init__.py b/src/bonsai/bonsai/bim/module/group/__init__.py index 86e8536672..6fd4ed5408 100644 --- a/src/bonsai/bonsai/bim/module/group/__init__.py +++ b/src/bonsai/bonsai/bim/module/group/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddGroup, diff --git a/src/bonsai/bonsai/bim/module/group/data.py b/src/bonsai/bonsai/bim/module/group/data.py index 60b97e77f0..c7be2ff393 100644 --- a/src/bonsai/bonsai/bim/module/group/data.py +++ b/src/bonsai/bonsai/bim/module/group/data.py @@ -20,6 +20,7 @@ import bpy import ifcopenshell import ifcopenshell.util.cost import ifcopenshell.util.element + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/bim/module/group/operator.py b/src/bonsai/bonsai/bim/module/group/operator.py index 40c3e418a1..66872ed90a 100644 --- a/src/bonsai/bonsai/bim/module/group/operator.py +++ b/src/bonsai/bonsai/bim/module/group/operator.py @@ -16,13 +16,15 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal, get_args + import bpy import ifcopenshell.api import ifcopenshell.api.group import ifcopenshell.util.element + import bonsai.bim.helper import bonsai.tool as tool -from typing import TYPE_CHECKING, Literal, get_args class LoadGroups(bpy.types.Operator, tool.Ifc.Operator): diff --git a/src/bonsai/bonsai/bim/module/group/prop.py b/src/bonsai/bonsai/bim/module/group/prop.py index e96f6f8a2a..48bff62e35 100644 --- a/src/bonsai/bonsai/bim/module/group/prop.py +++ b/src/bonsai/bonsai/bim/module/group/prop.py @@ -16,22 +16,24 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Union + import bpy -import bonsai.tool as tool -from bonsai.bim.prop import StrProperty, Attribute -from bonsai.bim.module.pset.data import refresh as refresh_pset -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Union +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.module.pset.data import refresh as refresh_pset +from bonsai.bim.prop import Attribute, StrProperty def update_active_group_index(self, context): diff --git a/src/bonsai/bonsai/bim/module/group/ui.py b/src/bonsai/bonsai/bim/module/group/ui.py index ac437e9c42..a9620c8ffc 100644 --- a/src/bonsai/bonsai/bim/module/group/ui.py +++ b/src/bonsai/bonsai/bim/module/group/ui.py @@ -17,12 +17,15 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING + import bpy -import bonsai.tool as tool from bpy.types import Panel, UIList + +import bonsai.tool as tool from bonsai.bim.helper import draw_attributes from bonsai.bim.module.group.data import GroupsData, ObjectGroupsData -from typing import TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.group.prop import BIMGroupProperties, Group diff --git a/src/bonsai/bonsai/bim/module/ifcgit/__init__.py b/src/bonsai/bonsai/bim/module/ifcgit/__init__.py index ae946e4e9d..df47b7774c 100644 --- a/src/bonsai/bonsai/bim/module/ifcgit/__init__.py +++ b/src/bonsai/bonsai/bim/module/ifcgit/__init__.py @@ -16,8 +16,8 @@ # Massimo Fabbro import bpy -from . import ui, prop, operator +from . import operator, prop, ui classes = ( operator.AddFileToRepo, diff --git a/src/bonsai/bonsai/bim/module/ifcgit/data.py b/src/bonsai/bonsai/bim/module/ifcgit/data.py index 18ffe0e55c..9cb9f2655d 100644 --- a/src/bonsai/bonsai/bim/module/ifcgit/data.py +++ b/src/bonsai/bonsai/bim/module/ifcgit/data.py @@ -1,7 +1,8 @@ -import bpy import os import shutil +import bpy + # import tool import bonsai.tool as tool diff --git a/src/bonsai/bonsai/bim/module/ifcgit/operator.py b/src/bonsai/bonsai/bim/module/ifcgit/operator.py index 8457c69fc7..829a0a62a2 100644 --- a/src/bonsai/bonsai/bim/module/ifcgit/operator.py +++ b/src/bonsai/bonsai/bim/module/ifcgit/operator.py @@ -1,10 +1,12 @@ import os import re +from typing import TYPE_CHECKING + import bpy + import bonsai.core.ifcgit as core import bonsai.tool as tool from bonsai.bim.module.ifcgit.data import IfcGitData, refresh -from typing import TYPE_CHECKING class CreateRepo(bpy.types.Operator): diff --git a/src/bonsai/bonsai/bim/module/ifcgit/prop.py b/src/bonsai/bonsai/bim/module/ifcgit/prop.py index 128cfcd44b..cba3ca632c 100644 --- a/src/bonsai/bonsai/bim/module/ifcgit/prop.py +++ b/src/bonsai/bonsai/bim/module/ifcgit/prop.py @@ -1,15 +1,17 @@ +from typing import TYPE_CHECKING, Literal + import bpy -import bonsai.tool as tool -from bpy.types import PropertyGroup from bpy.props import ( - StringProperty, BoolProperty, CollectionProperty, - IntProperty, EnumProperty, + IntProperty, + StringProperty, ) +from bpy.types import PropertyGroup + +import bonsai.tool as tool from bonsai.bim.module.ifcgit.data import IfcGitData -from typing import TYPE_CHECKING, Literal def git_branches(self: "IfcGitProperties", context: bpy.types.Context) -> tool.Blender.BLENDER_ENUM_ITEMS: diff --git a/src/bonsai/bonsai/bim/module/ifcgit/ui.py b/src/bonsai/bonsai/bim/module/ifcgit/ui.py index 631f33c7e1..d8b7357e7b 100644 --- a/src/bonsai/bonsai/bim/module/ifcgit/ui.py +++ b/src/bonsai/bonsai/bim/module/ifcgit/ui.py @@ -1,15 +1,17 @@ from __future__ import annotations -import bpy -import time + import os import platform -import bonsai.tool as tool +import time from typing import TYPE_CHECKING +import bpy + +import bonsai.tool as tool from bonsai.bim.module.ifcgit.data import IfcGitData if TYPE_CHECKING: - from bonsai.bim.module.ifcgit.prop import IfcGitProperties, IfcGitListItem + from bonsai.bim.module.ifcgit.prop import IfcGitListItem, IfcGitProperties class IFCGIT_PT_panel(bpy.types.Panel): diff --git a/src/bonsai/bonsai/bim/module/layer/__init__.py b/src/bonsai/bonsai/bim/module/layer/__init__.py index 9ee1c57fb4..06d5175833 100644 --- a/src/bonsai/bonsai/bim/module/layer/__init__.py +++ b/src/bonsai/bonsai/bim/module/layer/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddPresentationLayer, diff --git a/src/bonsai/bonsai/bim/module/layer/data.py b/src/bonsai/bonsai/bim/module/layer/data.py index f55b4c2900..4550d3257e 100644 --- a/src/bonsai/bonsai/bim/module/layer/data.py +++ b/src/bonsai/bonsai/bim/module/layer/data.py @@ -16,10 +16,12 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import Any + import bpy import ifcopenshell + import bonsai.tool as tool -from typing import Any def refresh(): diff --git a/src/bonsai/bonsai/bim/module/layer/operator.py b/src/bonsai/bonsai/bim/module/layer/operator.py index d1b5a0580b..8475bebd54 100644 --- a/src/bonsai/bonsai/bim/module/layer/operator.py +++ b/src/bonsai/bonsai/bim/module/layer/operator.py @@ -16,13 +16,15 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy import ifcopenshell.api import ifcopenshell.api.layer import ifcopenshell.util.element + import bonsai.bim.helper import bonsai.tool as tool -from typing import TYPE_CHECKING def get_active_mesh(context: bpy.types.Context, mesh_name: str) -> bpy.types.Mesh: diff --git a/src/bonsai/bonsai/bim/module/layer/prop.py b/src/bonsai/bonsai/bim/module/layer/prop.py index 079ba262de..26a6c3680d 100644 --- a/src/bonsai/bonsai/bim/module/layer/prop.py +++ b/src/bonsai/bonsai/bim/module/layer/prop.py @@ -16,21 +16,23 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy -import bonsai.tool as tool -from bonsai.bim.prop import StrProperty, Attribute -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.prop import Attribute, StrProperty def update_layer_property(self: "Layer", context: bpy.types.Context, *, property: str) -> None: diff --git a/src/bonsai/bonsai/bim/module/layer/ui.py b/src/bonsai/bonsai/bim/module/layer/ui.py index d7fcdec215..b4de131ad6 100644 --- a/src/bonsai/bonsai/bim/module/layer/ui.py +++ b/src/bonsai/bonsai/bim/module/layer/ui.py @@ -17,12 +17,15 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING + import bpy +from bpy.types import Mesh, Panel, UIList + import bonsai.tool as tool -from bpy.types import Panel, UIList, Mesh from bonsai.bim.helper import draw_attributes from bonsai.bim.module.layer.data import LayersData -from typing import TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.layer.prop import BIMLayerProperties, Layer diff --git a/src/bonsai/bonsai/bim/module/library/__init__.py b/src/bonsai/bonsai/bim/module/library/__init__.py index 5017772cfe..a3ef2c3060 100644 --- a/src/bonsai/bonsai/bim/module/library/__init__.py +++ b/src/bonsai/bonsai/bim/module/library/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddLibrary, diff --git a/src/bonsai/bonsai/bim/module/library/data.py b/src/bonsai/bonsai/bim/module/library/data.py index 87ad7c23ae..0d26369035 100644 --- a/src/bonsai/bonsai/bim/module/library/data.py +++ b/src/bonsai/bonsai/bim/module/library/data.py @@ -17,6 +17,7 @@ # along with Bonsai. If not, see . import bpy + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/bim/module/library/operator.py b/src/bonsai/bonsai/bim/module/library/operator.py index 6f4e971465..6c7abe8be5 100644 --- a/src/bonsai/bonsai/bim/module/library/operator.py +++ b/src/bonsai/bonsai/bim/module/library/operator.py @@ -18,8 +18,9 @@ import bpy import ifcopenshell.api -import bonsai.tool as tool + import bonsai.core.library as core +import bonsai.tool as tool class AddLibrary(bpy.types.Operator, tool.Ifc.Operator): diff --git a/src/bonsai/bonsai/bim/module/library/prop.py b/src/bonsai/bonsai/bim/module/library/prop.py index 24defdf9ea..69647c195f 100644 --- a/src/bonsai/bonsai/bim/module/library/prop.py +++ b/src/bonsai/bonsai/bim/module/library/prop.py @@ -16,22 +16,24 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal + import bpy -import bonsai.tool as tool -from bonsai.bim.prop import StrProperty, Attribute -from bonsai.bim.module.library.data import LibrariesData -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Literal +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.module.library.data import LibrariesData +from bonsai.bim.prop import Attribute, StrProperty def update_active_reference_index(self, context): diff --git a/src/bonsai/bonsai/bim/module/library/ui.py b/src/bonsai/bonsai/bim/module/library/ui.py index bfc64e3020..f76e6a3251 100644 --- a/src/bonsai/bonsai/bim/module/library/ui.py +++ b/src/bonsai/bonsai/bim/module/library/ui.py @@ -17,12 +17,15 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING + import bpy +from bpy.types import Panel, UIList + import bonsai.bim.helper import bonsai.tool as tool -from bpy.types import Panel, UIList from bonsai.bim.module.library.data import LibrariesData, LibraryReferencesData -from typing import TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.library.prop import BIMLibraryProperties, LibraryReference diff --git a/src/bonsai/bonsai/bim/module/light/__init__.py b/src/bonsai/bonsai/bim/module/light/__init__.py index 002419e38e..82e1187d4e 100644 --- a/src/bonsai/bonsai/bim/module/light/__init__.py +++ b/src/bonsai/bonsai/bim/module/light/__init__.py @@ -16,17 +16,17 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -from . import ui, prop, operator, list - -import stat -from pathlib import Path - import importlib import importlib.util +import stat import traceback +from pathlib import Path + +import bpy import pyradiance +from . import list, operator, prop, ui + def get_pyradiance_path(): return importlib.util.find_spec("pyradiance").submodule_search_locations[0] diff --git a/src/bonsai/bonsai/bim/module/light/data.py b/src/bonsai/bonsai/bim/module/light/data.py index abe9d9e87d..d708b6170f 100644 --- a/src/bonsai/bonsai/bim/module/light/data.py +++ b/src/bonsai/bonsai/bim/module/light/data.py @@ -17,10 +17,11 @@ # along with Bonsai. If not, see . import bpy -import bonsai.tool as tool import ifcopenshell.util.geolocation from mathutils import Vector +import bonsai.tool as tool + def refresh(): SolarData.is_loaded = False diff --git a/src/bonsai/bonsai/bim/module/light/decorator.py b/src/bonsai/bonsai/bim/module/light/decorator.py index 77cd20ddbd..9cfb9ae186 100644 --- a/src/bonsai/bonsai/bim/module/light/decorator.py +++ b/src/bonsai/bonsai/bim/module/light/decorator.py @@ -16,16 +16,18 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy +from math import degrees, radians + import blf -import gpu import bmesh -import bonsai.tool as tool +import bpy +import gpu from bpy.types import SpaceView3D -from math import radians, degrees -from mathutils import Vector, Matrix -from gpu_extras.batch import batch_for_shader from bpy_extras.view3d_utils import location_3d_to_region_2d +from gpu_extras.batch import batch_for_shader +from mathutils import Matrix, Vector + +import bonsai.tool as tool from bonsai.bim.module.light.data import SolarData diff --git a/src/bonsai/bonsai/bim/module/light/list.py b/src/bonsai/bonsai/bim/module/light/list.py index 57d3060f75..385c45a14b 100644 --- a/src/bonsai/bonsai/bim/module/light/list.py +++ b/src/bonsai/bonsai/bim/module/light/list.py @@ -17,7 +17,7 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy + import json import os from typing import TYPE_CHECKING diff --git a/src/bonsai/bonsai/bim/module/light/operator.py b/src/bonsai/bonsai/bim/module/light/operator.py index a5312fdbc5..cbb625b058 100644 --- a/src/bonsai/bonsai/bim/module/light/operator.py +++ b/src/bonsai/bonsai/bim/module/light/operator.py @@ -16,29 +16,30 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +import json +import math +import multiprocessing import os import subprocess import pyradiance as pr from datetime import datetime -import bpy -import bonsai.tool as tool +from math import radians from pathlib import Path -from typing import Union, TYPE_CHECKING -import json -import math -import time +from typing import TYPE_CHECKING, Union + +import bpy import ifcopenshell import ifcopenshell.util.geolocation import webbrowser import ifcopenshell.geom import multiprocessing import requests -from math import radians +from bpy_extras.io_utils import ExportHelper, ImportHelper from mathutils import Vector + +import bonsai.tool as tool from bonsai.bim.module.light.data import SolarData -from bpy_extras.io_utils import ExportHelper -from bpy_extras.io_utils import ImportHelper ifc_materials = [] diff --git a/src/bonsai/bonsai/bim/module/light/prop.py b/src/bonsai/bonsai/bim/module/light/prop.py index f161c92e50..14875eb907 100644 --- a/src/bonsai/bonsai/bim/module/light/prop.py +++ b/src/bonsai/bonsai/bim/module/light/prop.py @@ -16,27 +16,29 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +import datetime +import json +import os +from math import pi, radians +from typing import TYPE_CHECKING, Literal, Union + import bpy import pytz import tzfpy -import json -import datetime -import bonsai.tool as tool -from typing import TYPE_CHECKING, Literal, Union -from math import radians, pi -from mathutils import Euler, Vector, Matrix, Quaternion from bpy.props import ( - IntProperty, - StringProperty, + BoolProperty, + CollectionProperty, EnumProperty, FloatProperty, FloatVectorProperty, - BoolProperty, - CollectionProperty, + IntProperty, PointerProperty, + StringProperty, ) -import os from bpy.types import PropertyGroup +from mathutils import Euler, Matrix, Quaternion, Vector + +import bonsai.tool as tool from bonsai.bim.module.light.data import SolarData from bonsai.bim.module.light.decorator import SolarDecorator diff --git a/src/bonsai/bonsai/bim/module/light/ui.py b/src/bonsai/bonsai/bim/module/light/ui.py index b6ec4ef88e..ab560155e0 100644 --- a/src/bonsai/bonsai/bim/module/light/ui.py +++ b/src/bonsai/bonsai/bim/module/light/ui.py @@ -17,9 +17,11 @@ # along with Bonsai. If not, see . import calendar -import bpy -import bonsai.tool as tool from typing import TYPE_CHECKING + +import bpy + +import bonsai.tool as tool from bonsai.bim.module.light.data import SolarData diff --git a/src/bonsai/bonsai/bim/module/material/__init__.py b/src/bonsai/bonsai/bim/module/material/__init__.py index c7f7756bc9..5f14b170ee 100644 --- a/src/bonsai/bonsai/bim/module/material/__init__.py +++ b/src/bonsai/bonsai/bim/module/material/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddConstituent, diff --git a/src/bonsai/bonsai/bim/module/material/data.py b/src/bonsai/bonsai/bim/module/material/data.py index efe79c1731..36c93add4f 100644 --- a/src/bonsai/bonsai/bim/module/material/data.py +++ b/src/bonsai/bonsai/bim/module/material/data.py @@ -17,15 +17,17 @@ # along with Bonsai. If not, see . import os +from typing import Any, Union + import bpy import ifcopenshell -import ifcopenshell.util.element import ifcopenshell.util.doc +import ifcopenshell.util.element import ifcopenshell.util.schema +from natsort import natsorted + import bonsai.tool as tool from bonsai.bim.module.drawing.helper import format_distance -from typing import Any, Union -from natsort import natsorted def refresh(): @@ -176,6 +178,7 @@ class ObjectMaterialData: cls.data["active_material_constituents"] = cls.active_material_constituents() # after material_name and type_material cls.data["is_type_material_overridden"] = cls.is_type_material_overridden() + cls.data["bbim_material_layer_pset"] = cls.bbim_material_layer_pset() cls.is_loaded = True @@ -426,3 +429,35 @@ class ObjectMaterialData: # so we check occurrence material explicitly occurrence_material = ifcopenshell.util.element.get_material(cls.element, should_inherit=False) return bool(occurrence_material) + + @classmethod + def bbim_material_layer_pset(cls) -> Union[dict[str, Any], None]: + """Load BBIM_MaterialLayer pset data for display in UI.""" + if not cls.element: + return None + + pset_data = ifcopenshell.util.element.get_pset(cls.element, "BBIM_MaterialLayer") + if not pset_data or not pset_data.get("UseCustomOffset", False): + return None + + # Keep offset in SI units - format_distance will handle conversion + custom_offset_si = pset_data.get("CustomOffset", 0.0) + + # Get the appropriate reference based on usage type + usage_type = tool.Model.get_usage_type(cls.element) + custom_reference = None + reference_label = None + + if usage_type == "LAYER2": + custom_reference = pset_data.get("CustomWallReference", "") + reference_label = "Wall Reference" + elif usage_type == "LAYER3": + custom_reference = pset_data.get("CustomSlabReference", "") + reference_label = "Slab Reference" + + return { + "use_custom_offset": pset_data.get("UseCustomOffset", False), + "custom_offset": custom_offset_si, # Store in SI units + "custom_reference": custom_reference, + "reference_label": reference_label, + } diff --git a/src/bonsai/bonsai/bim/module/material/operator.py b/src/bonsai/bonsai/bim/module/material/operator.py index eef35d519c..81ef17e6e4 100644 --- a/src/bonsai/bonsai/bim/module/material/operator.py +++ b/src/bonsai/bonsai/bim/module/material/operator.py @@ -16,20 +16,22 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import json +from typing import TYPE_CHECKING, Any, Literal, Union + +import bpy import ifcopenshell.api import ifcopenshell.api.material import ifcopenshell.api.profile import ifcopenshell.api.style import ifcopenshell.util.element import ifcopenshell.util.representation + import bonsai.bim.helper -import bonsai.tool as tool -import bonsai.core.material as core import bonsai.bim.module.model.profile as model_profile -from typing import Any, Union, TYPE_CHECKING, Literal -from bonsai.bim.module.model import wall, slab +import bonsai.core.material as core +import bonsai.tool as tool +from bonsai.bim.module.model import slab, wall if TYPE_CHECKING: from bonsai.bim.prop import Attribute @@ -509,6 +511,10 @@ class EnableEditingAssignedMaterial(bpy.types.Operator): bonsai.bim.helper.import_attributes(material[0], props.material_set_attributes) else: bonsai.bim.helper.import_attributes(material, props.material_set_attributes) + + # Load custom offset from BBIM_MaterialLayer pset + tool.Model.load_custom_offset_from_pset(element, obj) + return {"FINISHED"} def import_attributes_callback( @@ -622,12 +628,16 @@ class EditAssignedMaterial(bpy.types.Operator, tool.Ifc.Operator): layer_sets_to_regenerate.add(obj_material_usage.ForLayerSet) + # Save custom offset to BBIM_MaterialLayer pset + tool.Model.save_custom_offset_to_pset(obj_element, obj) + for layer_set in layer_sets_to_regenerate: wall.DumbWallPlaner().regenerate_from_layer_set(layer_set) slab.DumbSlabPlaner().regenerate_from_layer_set(layer_set) if material_set_usage.is_a("IfcMaterialProfileSetUsage"): - attributes["CardinalPoint"] = int(attributes["CardinalPoint"]) + if "CardinalPoint" in attributes: + attributes["CardinalPoint"] = int(attributes["CardinalPoint"]) ifcopenshell.api.material.edit_profile_usage( self.file, usage=material_set_usage, diff --git a/src/bonsai/bonsai/bim/module/material/prop.py b/src/bonsai/bonsai/bim/module/material/prop.py index 2fbd8d2847..27567ab27e 100644 --- a/src/bonsai/bonsai/bim/module/material/prop.py +++ b/src/bonsai/bonsai/bim/module/material/prop.py @@ -16,26 +16,28 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import ifcopenshell +from typing import TYPE_CHECKING + import bpy +import ifcopenshell +from bpy.props import ( + BoolProperty, + CollectionProperty, + EnumProperty, + FloatProperty, + FloatVectorProperty, + IntProperty, + PointerProperty, + StringProperty, +) +from bpy.types import PropertyGroup from ifcopenshell.util.doc import get_entity_doc + import bonsai.tool as tool from bonsai.bim.module.classification.data import MaterialClassificationsData from bonsai.bim.module.material.data import MaterialsData, ObjectMaterialData from bonsai.bim.module.profile.data import ProfileData -from bonsai.bim.prop import StrProperty, Attribute -from bpy.types import PropertyGroup -from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, - BoolProperty, - IntProperty, - FloatProperty, - FloatVectorProperty, - CollectionProperty, -) -from typing import TYPE_CHECKING +from bonsai.bim.prop import Attribute, StrProperty def get_profile_classes(self, context): diff --git a/src/bonsai/bonsai/bim/module/material/ui.py b/src/bonsai/bonsai/bim/module/material/ui.py index 5c1b7d05b2..2ac1908327 100644 --- a/src/bonsai/bonsai/bim/module/material/ui.py +++ b/src/bonsai/bonsai/bim/module/material/ui.py @@ -17,17 +17,21 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bonsai.bim.helper -import bonsai.tool as tool -import bpy -from bpy.types import Panel, UIList -from bonsai.bim.helper import draw_attributes -from bonsai.bim.helper import prop_with_search -from bonsai.bim.module.material.data import MaterialsData, ObjectMaterialData + from typing import TYPE_CHECKING, Any +import bpy +import ifcopenshell.util.element +import ifcopenshell.util.unit +from bpy.types import Panel, UIList + +import bonsai.bim.helper +import bonsai.tool as tool +from bonsai.bim.helper import draw_attributes, prop_with_search +from bonsai.bim.module.material.data import MaterialsData, ObjectMaterialData + if TYPE_CHECKING: - from bonsai.bim.module.material.prop import Material, BIMMaterialProperties + from bonsai.bim.module.material.prop import BIMMaterialProperties, Material class BIM_PT_materials(Panel): @@ -134,8 +138,6 @@ class BIM_PT_object_material(Panel): @classmethod def poll(cls, context): - if not tool.Blender.is_tab(context, "GEOMETRY"): - return False if not (obj := context.active_object): return False ifc_id = tool.Blender.get_ifc_definition_id(obj) @@ -228,31 +230,47 @@ class BIM_PT_object_material(Panel): self.draw_read_only_set_ui() def draw_editable_set_ui(self): - bonsai.bim.helper.draw_attributes(self.props.material_set_attributes, self.layout) - bonsai.bim.helper.draw_attributes(self.props.material_set_usage_attributes, self.layout) + # Material Set Attributes Section + row = self.layout.row(align=True) + box = row.box() + bonsai.bim.helper.draw_attributes(self.props.material_set_attributes, box) + bonsai.bim.helper.draw_attributes(self.props.material_set_usage_attributes, box) + + # Custom Offset Section self.draw_custom_offset() - if ObjectMaterialData.data["set_item_name"] == "profile" and not self.mprops.profiles: - row = self.layout.row(align=True) - row.label(text="No Profiles Available") - row.operator("bim.add_profile_def", icon="ADD", text="") - else: - layout = self.layout - layout.separator() - layout.separator() - row = self.layout.row(align=True) - if ObjectMaterialData.data["set_item_name"] == "profile": - prop_with_search(row, self.mprops, "profiles", icon="ITALIC", text="") - prop_with_search(row, self.props, "material", icon="MATERIAL", text="") - op = row.operator(f"bim.add_{ObjectMaterialData.data['set_item_name']}", icon="ADD", text="") - setattr(op, f"{ObjectMaterialData.data['set_item_name']}_set", ObjectMaterialData.data["set"]["id"]) + + # Dynamic header based on material set type + set_item_name = ObjectMaterialData.data["set_item_name"] + header_map = { + "layer": "Material Layers", + "profile": "Material Profiles", + "constituent": "Material Constituents", + "list_item": "Material List Items", + } + header_text = header_map.get(set_item_name, "Material Items") + self.layout.label(text=header_text) total_items = len(ObjectMaterialData.data["set_items"]) - layout = self.layout - box = layout.box() + row = self.layout.row(align=True) + box = row.box() + + # Add Material Section (at the top of this box) + if ObjectMaterialData.data["set_item_name"] == "profile" and not self.mprops.profiles: + box_row = box.row(align=True) + box_row.label(text="No Profiles Available") + box_row.operator("bim.add_profile_def", icon="ADD", text="") + else: + box_row = box.row(align=True) + if ObjectMaterialData.data["set_item_name"] == "profile": + prop_with_search(box_row, self.mprops, "profiles", icon="ITALIC", text="") + prop_with_search(box_row, self.props, "material", icon="MATERIAL", text="") + op = box_row.operator(f"bim.add_{ObjectMaterialData.data['set_item_name']}", icon="ADD", text="") + setattr(op, f"{ObjectMaterialData.data['set_item_name']}_set", ObjectMaterialData.data["set"]["id"]) + active_object = bpy.context.active_object - self.layerset_bounds(box, active_object, location="Top_Exterior") + self.layerset_bounds(box, active_object, location="Top_Interior") if not ObjectMaterialData.data["set_items"]: row = box.row() @@ -269,7 +287,7 @@ class BIM_PT_object_material(Panel): else: self.draw_read_only_set_item_ui(box, set_item) - self.layerset_bounds(box, active_object, location="Bottom_Interior") + self.layerset_bounds(box, active_object, location="Bottom_Exterior") def draw_editable_set_item_profile_ui(self, box, set_item): # box = self.layout.box() @@ -335,29 +353,100 @@ class BIM_PT_object_material(Panel): setattr(op, f"{ObjectMaterialData.data['set_item_name']}_index", set_item["index"]) def draw_read_only_set_ui(self): + # Material Set Information Section + row = self.layout.row(align=True) + box = row.box() + if ObjectMaterialData.data["material_class"] != "IfcMaterialList": - row = self.layout.row(align=True) + box_row = box.row(align=True) set_name = ObjectMaterialData.data["set"]["name"] - row.label(text="Name") - row.label(text=set_name) + box_row.label(text="Name") + box_row.label(text=set_name) if value := ObjectMaterialData.data["set"]["description"]: - row = self.layout.row(align=True) - row.label(text="Description") - row.label(text=value) + box_row = box.row(align=True) + box_row.label(text="Description") + box_row.label(text=value) if ObjectMaterialData.data["material_class"] == "IfcMaterialProfileSetUsage": if value := ObjectMaterialData.data["set_usage"].get("cardinal_point"): - row = self.layout.row(align=True) - row.label(text="Cardinal Point") - row.label(text=value) + box_row = box.row(align=True) + box_row.label(text="Cardinal Point") + box_row.label(text=value) if ObjectMaterialData.data["total_thickness"]: - row = self.layout.row(align=True) - row.label(text="Total Thickness*") - row.label(text=ObjectMaterialData.data["total_thickness"]) + box_row = box.row(align=True) + box_row.label(text="Total Thickness*") + box_row.label(text=ObjectMaterialData.data["total_thickness"]) - box = self.layout.box() + # Display OffsetFromReferenceLine for layer sets + if "Layer" in ObjectMaterialData.data["material_class"]: + obj = bpy.context.active_object + if obj: + element = tool.Ifc.get_entity(obj) + if element: + material = ifcopenshell.util.element.get_material(element) + if material and material.is_a("IfcMaterialLayerSetUsage"): + offset_value = material.OffsetFromReferenceLine + # Format the offset value + unit_system = bpy.context.scene.unit_settings.system + prefs = tool.Blender.get_addon_preferences() + precision = None + if unit_system == "IMPERIAL": + precision = prefs.doc.imperial_precision + from bonsai.bim.module.drawing.helper import format_distance + + formatted_offset = format_distance( + offset_value, precision=precision, suppress_zero_inches=True, in_unit_length=True + ) + box_row = box.row(align=True) + box_row.label(text="Offset From Reference Line") + box_row.label(text=formatted_offset) + + # BBIM_MaterialLayer Pset Section + if pset_data := ObjectMaterialData.data.get("bbim_material_layer_pset"): + self.layout.label(text="BBIM_MaterialLayer Pset") + + row = self.layout.row(align=True) + box = row.box() + + # Custom Offset value - format using format_distance + unit_system = bpy.context.scene.unit_settings.system + prefs = tool.Blender.get_addon_preferences() + precision = None + if unit_system == "IMPERIAL": + precision = prefs.doc.imperial_precision + from bonsai.bim.module.drawing.helper import format_distance + + formatted_custom_offset = format_distance( + pset_data["custom_offset"], precision=precision, suppress_zero_inches=True, in_unit_length=True + ) + box_row = box.row(align=True) + box_row.label(text="Custom Offset") + box_row.label(text=formatted_custom_offset) + + # Reference (if exists) + if pset_data["custom_reference"]: + box_row = box.row(align=True) + box_row.label(text=pset_data["reference_label"]) + box_row.label(text=pset_data["custom_reference"]) + + # Dynamic header based on material set type + set_item_name = ObjectMaterialData.data.get("set_item_name") + if set_item_name: + header_map = { + "layer": "Material Layers", + "profile": "Material Profiles", + "constituent": "Material Constituents", + "list_item": "Material List Items", + } + header_text = header_map.get(set_item_name, "Material Items") + else: + header_text = "Materials" + + self.layout.label(text=header_text) + row = self.layout.row(align=True) + box = row.box() active_object = bpy.context.active_object self.layerset_bounds(box, active_object, location="Top_Interior") @@ -403,20 +492,27 @@ class BIM_PT_object_material(Panel): set_usage = ObjectMaterialData.data.get("set_usage", {}) layer_set_direction = set_usage.get("layer_set_direction") if layer_set_direction: - box = self.layout.box() - row = box.row(align=True) - row.prop(self.props, "use_custom_offset", text="Use Custom Offset") - row = box.row(align=True) - if layer_set_direction == "AXIS2": - row.prop(self.props, "custom_wall_reference", text="Reference") - row.enabled = self.props.use_custom_offset - if layer_set_direction == "AXIS3": - row.prop(self.props, "custom_slab_reference", text="Reference") - row.enabled = self.props.use_custom_offset + row = self.layout.row(align=True) + row.label(text="BBIM_MaterialLayer Pset") - row = box.row(align=True) - row.prop(self.props, "custom_offset", text="Custom Offset") - row.enabled = self.props.use_custom_offset + # Add indentation with a row that has a separator + row = self.layout.row(align=True) + # row.separator(factor=2.0) # Adjust factor for more/less indent + + box = row.box() + box_row = box.row(align=True) + box_row.prop(self.props, "use_custom_offset", text="Use Custom Offset") + box_row = box.row(align=True) + if layer_set_direction == "AXIS2": + box_row.prop(self.props, "custom_wall_reference", text="Reference") + box_row.enabled = self.props.use_custom_offset + if layer_set_direction == "AXIS3": + box_row.prop(self.props, "custom_slab_reference", text="Reference") + box_row.enabled = self.props.use_custom_offset + + box_row = box.row(align=True) + box_row.prop(self.props, "custom_offset", text="Custom Offset") + box_row.enabled = self.props.use_custom_offset class BIM_UL_materials(UIList): diff --git a/src/bonsai/bonsai/bim/module/misc/__init__.py b/src/bonsai/bonsai/bim/module/misc/__init__.py index 27ab626183..a71e467b7f 100644 --- a/src/bonsai/bonsai/bim/module/misc/__init__.py +++ b/src/bonsai/bonsai/bim/module/misc/__init__.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.DrawSystemArrows, operator.GetConnectedSystemElements, + operator.IfcSverchokUseBonsaiFile, operator.ResizeToStorey, operator.SetOverrideColour, operator.SnapSpacesTogether, diff --git a/src/bonsai/bonsai/bim/module/misc/operator.py b/src/bonsai/bonsai/bim/module/misc/operator.py index 15fca6b547..33703331f8 100644 --- a/src/bonsai/bonsai/bim/module/misc/operator.py +++ b/src/bonsai/bonsai/bim/module/misc/operator.py @@ -16,18 +16,20 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal, assert_never, get_args + import bpy -import numpy as np import ifcopenshell import ifcopenshell.util.geolocation import ifcopenshell.util.placement import ifcopenshell.util.unit -import bonsai.tool as tool -import bonsai.core.misc as core +import numpy as np +from mathutils import Euler, Matrix, Vector + import bonsai.core.geometry as core_geometry +import bonsai.core.misc as core import bonsai.core.root -from mathutils import Vector, Matrix, Euler -from typing import TYPE_CHECKING, Literal, get_args, assert_never +import bonsai.tool as tool class SetOverrideColour(bpy.types.Operator): @@ -348,3 +350,24 @@ class DrawSystemArrows(bpy.types.Operator, tool.Ifc.Operator): ) ) return matrix + + +class IfcSverchokUseBonsaiFile(bpy.types.Operator, tool.Ifc.Operator): + bl_idname = "bim.ifcsverchok_use_bonsai_file" + bl_label = "Use Bonsai IFC File" + bl_description = "Apply current IfcSverchok tree to the active Bonsai file." + bl_options = {"REGISTER", "UNDO"} + + def _execute(self, context): + import sverchok.node_tree + + ifc_file = tool.Ifc.get() + if ifc_file is None: + self.report({"ERROR"}, "No active IFC file.") + return {"CANCELLED"} + + space_data = context.space_data + assert isinstance(space_data, bpy.types.SpaceNodeEditor) + node_tree = space_data.node_tree + assert isinstance(node_tree, sverchok.node_tree.SverchCustomTree) + tool.Model.run_ifcsverchok_graph_on_bonsai_file(node_tree) diff --git a/src/bonsai/bonsai/bim/module/misc/prop.py b/src/bonsai/bonsai/bim/module/misc/prop.py index 3201cbd94d..889e1f5099 100644 --- a/src/bonsai/bonsai/bim/module/misc/prop.py +++ b/src/bonsai/bonsai/bim/module/misc/prop.py @@ -17,18 +17,19 @@ # along with Bonsai. If not, see . import bpy -from bonsai.bim.prop import StrProperty, Attribute -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) +from bpy.types import PropertyGroup + +from bonsai.bim.prop import Attribute, StrProperty class BIMMiscProperties(PropertyGroup): diff --git a/src/bonsai/bonsai/bim/module/model/__init__.py b/src/bonsai/bonsai/bim/module/model/__init__.py index fa9ce7cafa..9fbd631003 100644 --- a/src/bonsai/bonsai/bim/module/model/__init__.py +++ b/src/bonsai/bonsai/bim/module/model/__init__.py @@ -16,33 +16,33 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import NamedTuple + import bpy + from . import ( - handler, - prop, - ui, - grid, array, + covering, + door, + external, + grid, + handler, + mep, + opening, product, - wall, + profile, + prop, + railing, roof, slab, space, - covering, stair, - window, - opening, - mep, - workspace, - profile, sverchok_modifier, - door, - railing, - roof, - mep, - external, + ui, + wall, + window, + workspace, ) -from typing import NamedTuple classes = ( array.AddArray, @@ -50,9 +50,10 @@ classes = ( array.EditArray, array.EnableEditingArray, array.ApplyArray, + array.RegenerateArray, array.RemoveArray, - array.SelectArrayParent, array.SelectAllArrayObjects, + array.SelectArrayParent, array.Input3DCursorXArray, array.Input3DCursorYArray, array.Input3DCursorZArray, @@ -140,7 +141,6 @@ classes = ( prop.BIMRailingProperties, prop.BIMRoofProperties, prop.BIMPolylineProperties, - prop.BIMProductPreviewProperties, prop.BIMExternalParametricGeometryProperties, ui.BIM_PT_array, ui.BIM_PT_stair, @@ -161,6 +161,11 @@ classes = ( stair.FinishEditingStair, stair.EnableEditingStair, stair.RemoveStair, + stair.ToggleStairProperty, + stair.AdjustStairTreads, + stair.SetStairTreads, + stair.CycleStairType, + stair.GizmoStairEdition, sverchok_modifier.CreateNewSverchokGraph, sverchok_modifier.UpdateDataFromSverchok, sverchok_modifier.DeleteSverchokGraph, @@ -172,12 +177,17 @@ classes = ( window.FinishEditingWindow, window.EnableEditingWindow, window.RemoveWindow, + window.CycleWindowType, + window.GizmoWindowEdition, door.BIM_OT_add_door, door.AddDoor, door.CancelEditingDoor, door.FinishEditingDoor, door.EnableEditingDoor, door.RemoveDoor, + door.ToggleDoorSwing, + door.CycleDoorType, + door.GizmoDoorEdition, railing.BIM_OT_add_railing, railing.CopyRailingParameters, railing.AddRailing, @@ -253,7 +263,6 @@ def register(): bpy.types.Scene.BIMModelProperties = bpy.props.PointerProperty(type=prop.BIMModelProperties) bpy.types.Scene.BIMPolylineProperties = bpy.props.PointerProperty(type=prop.BIMPolylineProperties) - bpy.types.Scene.BIMProductPreviewProperties = bpy.props.PointerProperty(type=prop.BIMProductPreviewProperties) bpy.types.Object.BIMArrayProperties = bpy.props.PointerProperty(type=prop.BIMArrayProperties) bpy.types.Object.BIMStairProperties = bpy.props.PointerProperty(type=prop.BIMStairProperties) bpy.types.Object.BIMSverchokProperties = bpy.props.PointerProperty(type=prop.BIMSverchokProperties) @@ -278,7 +287,6 @@ def unregister(): del bpy.types.Scene.BIMModelProperties del bpy.types.Scene.BIMPolylineProperties - del bpy.types.Scene.BIMProductPreviewProperties del bpy.types.Object.BIMArrayProperties del bpy.types.Object.BIMStairProperties del bpy.types.Object.BIMSverchokProperties diff --git a/src/bonsai/bonsai/bim/module/model/array.py b/src/bonsai/bonsai/bim/module/model/array.py index ec1bce2096..5f045435ac 100644 --- a/src/bonsai/bonsai/bim/module/model/array.py +++ b/src/bonsai/bonsai/bim/module/model/array.py @@ -16,15 +16,17 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import json + +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.pset import ifcopenshell.util.element import ifcopenshell.util.unit +from mathutils import Matrix, Vector + import bonsai.tool as tool -from mathutils import Vector, Matrix class AddArray(bpy.types.Operator, tool.Ifc.Operator): @@ -59,7 +61,6 @@ class AddArray(bpy.types.Operator, tool.Ifc.Operator): "y": 0.0, "z": 0.0, "use_local_space": True, - "sync_children": False, "method": "OFFSET", } @@ -78,28 +79,27 @@ class AddArray(bpy.types.Operator, tool.Ifc.Operator): pset=pset, properties={"Parent": element.GlobalId, "Data": ifc_file.create_entity("IfcText", json.dumps(data))}, ) - return {"FINISHED"} -class DisableEditingArray(bpy.types.Operator, tool.Ifc.Operator): +class DisableEditingArray(bpy.types.Operator): bl_idname = "bim.disable_editing_array" bl_label = "Disable Editing Array" bl_options = {"REGISTER", "UNDO"} - def _execute(self, context): + def execute(self, context): obj = context.active_object assert obj tool.Model.get_array_props(obj).is_editing = -1 return {"FINISHED"} -class EnableEditingArray(bpy.types.Operator, tool.Ifc.Operator): +class EnableEditingArray(bpy.types.Operator): bl_idname = "bim.enable_editing_array" bl_label = "Enable Editing Array" bl_options = {"REGISTER", "UNDO"} item: bpy.props.IntProperty() - def _execute(self, context): + def execute(self, context): obj = context.active_object assert obj element = tool.Ifc.get_entity(obj) @@ -120,11 +120,9 @@ class EnableEditingArray(bpy.types.Operator, tool.Ifc.Operator): props.y = data["y"] * si_conversion props.z = data["z"] * si_conversion props.use_local_space = data.get("use_local_space", False) - props.sync_children = data.get("sync_children", False) props.method = data.get("method", "OFFSET") props.is_editing = self.item - return {"FINISHED"} @@ -149,31 +147,25 @@ class EditArray(bpy.types.Operator, tool.Ifc.Operator): "y": props.y / si_conversion, "z": props.z / si_conversion, "use_local_space": props.use_local_space, - "sync_children": props.sync_children, "method": props.method, } props.is_editing = -1 try: - parent = tool.Ifc.get_object(tool.Ifc.get().by_guid(pset["Parent"])) + parent_element = tool.Ifc.get().by_guid(pset["Parent"]) + parent = tool.Ifc.get_object(parent_element) except: return {"FINISHED"} + tool.Blender.Modifier.Array.remove_constraints(parent_element) tool.Model.regenerate_array(parent, data) - - pset = tool.Ifc.get().by_id(pset["id"]) - data = tool.Ifc.get().createIfcText(json.dumps(data)) - ifcopenshell.api.pset.edit_pset(tool.Ifc.get(), pset=pset, properties={"Data": data}) - tool.Blender.Modifier.Array.set_children_lock_state(element, self.item, True) tool.Blender.Modifier.Array.constrain_children_to_parent(element) # clears the relating_array_object so it doesn't show again next time props.relating_array_object = None - return {"FINISHED"} - class ApplyArray(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.apply_array" @@ -190,6 +182,33 @@ class ApplyArray(bpy.types.Operator, tool.Ifc.Operator): return {"FINISHED"} +class RegenerateArray(bpy.types.Operator, tool.Ifc.Operator): + bl_idname = "bim.regenerate_array" + bl_label = "Regenerate Array" + bl_options = {"REGISTER", "UNDO"} + + def _execute(self, context): + obj = context.active_object + element = tool.Ifc.get_entity(obj) + pset = ifcopenshell.util.element.get_pset(element, "BBIM_Array") + try: + parent_element = tool.Ifc.get().by_guid(pset["Parent"]) + parent = tool.Ifc.get_object(parent_element) + except: + return {"FINISHED"} + pset = ifcopenshell.util.element.get_pset(parent_element, "BBIM_Array") + arrays = json.loads(pset["Data"]) + pset = tool.Ifc.get().by_id(pset["id"]) + for array in arrays: + for child in set(array["children"]): + if child_obj := tool.Ifc.get_object(tool.Ifc.get().by_guid(child)): + tool.Geometry.delete_ifc_object(child_obj) + array["children"].clear() + print("cleared array", arrays) + tool.Model.regenerate_array(obj, arrays) + tool.Blender.Modifier.Array.constrain_children_to_parent(element) + + class RemoveArray(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.remove_array" bl_label = "Remove Array" @@ -214,7 +233,8 @@ class RemoveArray(bpy.types.Operator, tool.Ifc.Operator): props.is_editing = -1 try: - parent = tool.Ifc.get_object(tool.Ifc.get().by_guid(pset["Parent"])) + parent_element = tool.Ifc.get().by_guid(pset["Parent"]) + parent = tool.Ifc.get_object(parent_element) except: return {"FINISHED"} @@ -224,9 +244,10 @@ class RemoveArray(bpy.types.Operator, tool.Ifc.Operator): if not self.keep_objs: data[self.item]["count"] = 1 + tool.Blender.Modifier.Array.remove_constraints(parent_element) tool.Model.regenerate_array(parent, data, array_layers_to_apply=[self.item] if self.keep_objs else []) - pset = tool.Ifc.get().by_id(pset["id"]) + pset = tool.Pset.get_element_pset(element, "BBIM_Array") if len(data) == 1: ifcopenshell.api.pset.remove_pset(tool.Ifc.get(), product=element, pset=pset) else: @@ -235,8 +256,6 @@ class RemoveArray(bpy.types.Operator, tool.Ifc.Operator): ifcopenshell.api.pset.edit_pset(tool.Ifc.get(), pset=pset, properties={"Data": data}) tool.Blender.Modifier.Array.constrain_children_to_parent(element) - return {"FINISHED"} - class SelectArrayParent(bpy.types.Operator): bl_idname = "bim.select_array_parent" diff --git a/src/bonsai/bonsai/bim/module/model/covering.py b/src/bonsai/bonsai/bim/module/model/covering.py index 72eba944d1..468554b9be 100644 --- a/src/bonsai/bonsai/bim/module/model/covering.py +++ b/src/bonsai/bonsai/bim/module/model/covering.py @@ -20,8 +20,9 @@ import bpy import ifcopenshell import ifcopenshell.util.element -import bonsai.tool as tool + import bonsai.core.covering as core +import bonsai.tool as tool class AddInstanceFlooringCoveringFromCursor(bpy.types.Operator, tool.Ifc.Operator): diff --git a/src/bonsai/bonsai/bim/module/model/data.py b/src/bonsai/bonsai/bim/module/model/data.py index 2c96e42925..0b97e05e77 100644 --- a/src/bonsai/bonsai/bim/module/model/data.py +++ b/src/bonsai/bonsai/bim/module/model/data.py @@ -16,17 +16,19 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import math import json +import math +from math import degrees +from typing import Any, Optional, Union + +import bpy import ifcopenshell import ifcopenshell.util.element import ifcopenshell.util.schema from ifcopenshell.util.doc import get_entity_doc, get_predefined_type_doc -import bonsai.tool as tool -from math import degrees from natsort import natsorted -from typing import Union, Optional, Any + +import bonsai.tool as tool def refresh(): @@ -52,6 +54,11 @@ class AuthoringData: cls.is_loaded = True cls.props = tool.Model.get_model_props() cls.data["default_container"] = cls.default_container() + if tool.Ifc.get().schema == "IFC2X3": + if ifc_element_type == "IfcDoorType": + ifc_element_type = "IfcDoorStyle" + elif ifc_element_type == "IfcWindowType": + ifc_element_type = "IfcWindowStyle" cls.data["ifc_element_type"] = ifc_element_type cls.data["ifc_classes"] = cls.ifc_classes() cls.data["ifc_class_current"] = cls.ifc_class_current() diff --git a/src/bonsai/bonsai/bim/module/model/decorator.py b/src/bonsai/bonsai/bim/module/model/decorator.py index aad4c647ee..328804d4c6 100644 --- a/src/bonsai/bonsai/bim/module/model/decorator.py +++ b/src/bonsai/bonsai/bim/module/model/decorator.py @@ -17,26 +17,27 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy + +import math +from itertools import chain +from math import cos, radians, sin, tan +from typing import Any, Literal, Union + import blf +import bmesh import bpy import gpu -import bmesh import ifcopenshell -import bonsai.tool as tool -import math import mathutils -from math import sin, cos, radians from bpy.types import SpaceView3D from bpy_extras import view3d_utils -from mathutils import Vector, Matrix +from bpy_extras.view3d_utils import location_3d_to_region_2d from gpu_extras.batch import batch_for_shader from gpu_extras.presets import draw_circle_2d -from typing import Union +from mathutils import Matrix, Quaternion, Vector + +import bonsai.tool as tool from bonsai.bim.module.drawing.helper import format_distance -from itertools import chain -from typing import Union, Any -from bpy_extras.view3d_utils import location_3d_to_region_2d def transparent_color(color, alpha=0.1): @@ -521,6 +522,9 @@ class PolylineDecorator: color = self.addon_prefs.decorations_colour blf.color(self.font_id, *color) + + screen_coords = {} + for i in range(len(self.polyline_points)): if i < 1 and self.measure_type == "POLY_AREA": continue @@ -528,40 +532,32 @@ class PolylineDecorator: continue dim_text_pos = (Vector(self.polyline_points[i].position) + Vector(self.polyline_points[i - 1].position)) / 2 dim_text_coords = view3d_utils.location_3d_to_region_2d(region, rv3d, dim_text_pos) - - formatted_value = self.polyline_points[i].dim - - blf.position(self.font_id, dim_text_coords[0], dim_text_coords[1], 0) - text = "d: " + formatted_value - text_length = blf.dimensions(self.font_id, text) - self.draw_text_background(context, dim_text_coords, text_length) - blf.draw(self.font_id, text) + if dim_text_coords: + formatted_value = self.polyline_points[i].dim + text = "d: " + formatted_value + screen_coords[f"distance_{i}"] = (Vector(dim_text_coords), text) if i == 1: continue angle_text_pos = Vector(self.polyline_points[i - 1].position) angle_text_coords = view3d_utils.location_3d_to_region_2d(region, rv3d, angle_text_pos) - blf.position(self.font_id, angle_text_coords[0], angle_text_coords[1], 0) - text = "a: " + self.polyline_points[i].angle - text_length = blf.dimensions(self.font_id, text) - self.draw_text_background(context, angle_text_coords, text_length) - blf.draw(self.font_id, text) + if angle_text_coords: + text = "a: " + self.polyline_points[i].angle + screen_coords[f"angle_{i}"] = (Vector(angle_text_coords), text) if self.measure_type == "SINGLE": axis_line, axis_line_center = self.calculate_measurement_x_y_and_z(context) for i, dim_text_pos in enumerate(axis_line_center): dim_text_coords = view3d_utils.location_3d_to_region_2d(region, rv3d, dim_text_pos) - pos = blf.position(self.font_id, dim_text_coords[0], dim_text_coords[1], 0) - value = round((axis_line[i][1] - axis_line[i][0]).length, 4) - direction = axis_line[i][1] - axis_line[i][0] - if (i == 0 and direction.x < 0) or (i == 1 and direction.y < 0) or (i == 2 and direction.z < 0): - value = -value - prefix = "xyz"[i] - formatted_value = tool.Polyline.format_input_ui_units(value) - text = f"{prefix}: {formatted_value}" - text_length = blf.dimensions(self.font_id, text) - self.draw_text_background(context, dim_text_coords, text_length) - blf.draw(self.font_id, text) + if dim_text_coords: + value = round((axis_line[i][1] - axis_line[i][0]).length, 4) + direction = axis_line[i][1] - axis_line[i][0] + if (i == 0 and direction.x < 0) or (i == 1 and direction.y < 0) or (i == 2 and direction.z < 0): + value = -value + prefix = "xyz"[i] + formatted_value = tool.Polyline.format_input_ui_units(value) + text = f"{prefix}: {formatted_value}" + screen_coords[f"xyz_{i}"] = (Vector(dim_text_coords), text) # Area and Length text polyline_verts = [Vector((p.x, p.y, p.z)) for p in self.polyline_points] @@ -569,35 +565,107 @@ class PolylineDecorator: # Area if self.measure_type == "POLY_AREA" and self.polyline_data.area: if len(polyline_verts) < 3: + blf.disable(self.font_id, blf.SHADOW) return - center = sum(polyline_verts, Vector()) / len(polyline_verts) # Center between all polyline points + center = sum(polyline_verts, Vector()) / len(polyline_verts) if polyline_verts[0] == polyline_verts[-1]: - center = sum(polyline_verts[:-1], Vector()) / len( - polyline_verts[:-1] - ) # Doesn't use the last point if is a closed polyline + center = sum(polyline_verts[:-1], Vector()) / len(polyline_verts[:-1]) area_text_coords = view3d_utils.location_3d_to_region_2d(region, rv3d, center) - value = self.polyline_data.area - text = f"area: {value}" - text_length = blf.dimensions(self.font_id, text) - area_text_coords[0] -= text_length[0] / 2 # Center text horizontally - blf.position(self.font_id, area_text_coords[0], area_text_coords[1], 0) - self.draw_text_background(context, area_text_coords, text_length) - blf.draw(self.font_id, text) + if area_text_coords: + value = self.polyline_data.area + text = f"area: {value}" + text_length = blf.dimensions(self.font_id, text) + area_text_coords = list(area_text_coords) + area_text_coords[0] -= text_length[0] / 2 + screen_coords["area"] = (Vector(area_text_coords), text) # Length if self.measure_type in {"POLYLINE", "POLY_AREA"}: if len(polyline_verts) < 3: + blf.disable(self.font_id, blf.SHADOW) return total_length_text_coords = view3d_utils.location_3d_to_region_2d(region, rv3d, polyline_verts[-1]) - blf.position(self.font_id, total_length_text_coords[0], total_length_text_coords[1], 0) - value = self.polyline_data.total_length - text = f"length: {value}" + if total_length_text_coords: + value = self.polyline_data.total_length + text = f"length: {value}" + screen_coords["length"] = (Vector(total_length_text_coords), text) + + self.adjust_overlapping_labels(screen_coords) + + for label_key, (screen_co, text) in screen_coords.items(): + blf.position(self.font_id, screen_co.x, screen_co.y, 0) + blf.color(self.font_id, 1, 1, 1, 1) text_length = blf.dimensions(self.font_id, text) - self.draw_text_background(context, total_length_text_coords, text_length) + self.draw_text_background(context, screen_co, text_length) blf.draw(self.font_id, text) blf.disable(self.font_id, blf.SHADOW) + def adjust_overlapping_labels(self, screen_coords): + font_id = self.font_id + text_dimensions = {} + + for label_key, (screen_co, text) in screen_coords.items(): + text_dimensions[label_key] = blf.dimensions(font_id, text) + + if text_dimensions: + first_height = next(iter(text_dimensions.values()))[1] + min_spacing = max(2, first_height * 0.3) + else: + min_spacing = 2 + + label_keys = list(screen_coords.keys()) + for pass_num in range(3): # 3 passes to try to optimize complex overlaps + for i in range(len(label_keys)): + for j in range(i + 1, len(label_keys)): + key1, key2 = label_keys[i], label_keys[j] + co1, _ = screen_coords[key1] + co2, _ = screen_coords[key2] + dim1 = text_dimensions[key1] + dim2 = text_dimensions[key2] + + bounds1 = { + "left": co1.x - min_spacing, + "right": co1.x + dim1[0] + min_spacing, + "top": co1.y + dim1[1] + min_spacing, + "bottom": co1.y - min_spacing, + } + bounds2 = { + "left": co2.x - min_spacing, + "right": co2.x + dim2[0] + min_spacing, + "top": co2.y + dim2[1] + min_spacing, + "bottom": co2.y - min_spacing, + } + + if ( + bounds1["left"] < bounds2["right"] + and bounds1["right"] > bounds2["left"] + and bounds1["bottom"] < bounds2["top"] + and bounds1["top"] > bounds2["bottom"] + ): + x_overlap = min(bounds1["right"], bounds2["right"]) - max(bounds1["left"], bounds2["left"]) + y_overlap = min(bounds1["top"], bounds2["top"]) - max(bounds1["bottom"], bounds2["bottom"]) + + separation_multiplier = 1.25 + + # Move labels in the direction requiring less movement + if x_overlap < y_overlap: + separation_distance = (x_overlap / 2 + min_spacing) * separation_multiplier + if co1.x < co2.x: + co1.x -= separation_distance + co2.x += separation_distance + else: + co1.x += separation_distance + co2.x -= separation_distance + else: + separation_distance = (y_overlap / 2 + min_spacing) * separation_multiplier + if co1.y < co2.y: + co1.y -= separation_distance + co2.y += separation_distance + else: + co1.y += separation_distance + co2.y -= separation_distance + def draw_measurements_poly(self, context): self.shader_config(context) polyline_verts: list[Vector] = [] @@ -879,13 +947,43 @@ class PolylineDecorator: class ProductDecorator: is_installed = False handlers = [] + preview_mode: Literal["PROFILE_VERTICAL", "PROFILE_HORIZONTAL", "LAYER2", "LAYER3", "GENERIC"] relating_type = None + obj_data: dict[str, list] = {} + obj_matrix_i = None @classmethod def install(cls, context): + from bonsai.bim.module.geometry.decorator import ItemDecorator + if cls.is_installed: cls.uninstall() + + props = tool.Model.get_model_props() + handler = cls() + if ( + (props.relating_type_id) + and (relating_type := tool.Ifc.get().by_id(int(props.relating_type_id))) + and (relating_type_obj := tool.Ifc.get_object(relating_type)) + ): + handler.relating_type = relating_type + if tool.Model.get_usage_type(relating_type) == "PROFILE": + if relating_type.is_a() in {"IfcColumnType", "IfcPileType"}: + handler.preview_mode = "PROFILE_VERTICAL" + else: + handler.preview_mode = "PROFILE_HORIZONTAL" + elif tool.Model.get_usage_type(relating_type) == "LAYER2": + handler.preview_mode = "LAYER2" + elif tool.Model.get_usage_type(relating_type) == "LAYER3": + handler.preview_mode = "LAYER3" + else: + handler.preview_mode = "GENERIC" + if relating_type_obj.data: + handler.obj_data = ItemDecorator.get_obj_data(relating_type_obj) + handler.obj_data["raw_verts"] = [Vector(v) for v in handler.obj_data["verts"]] + handler.obj_matrix_i = relating_type_obj.matrix_world.inverted() + cls.handlers.append( SpaceView3D.draw_handler_add(handler.draw_product_preview, (context,), "WINDOW", "POST_VIEW") ) @@ -893,10 +991,6 @@ class ProductDecorator: @classmethod def uninstall(cls): - props = tool.Model.get_product_preview_props() # updated by model/polyline.py - props.verts.clear() - props.edges.clear() - props.tris.clear() for handler in cls.handlers: try: SpaceView3D.draw_handler_remove(handler, "WINDOW") @@ -912,14 +1006,6 @@ class ProductDecorator: shader.uniform_float("color", color) batch.draw(shader) - def get_product_preview_data(self, context) -> dict[str, Any]: - props = tool.Model.get_product_preview_props() - data: dict[str, Any] = {} - data["verts"] = [(*v.value_3d,) for v in props.verts] - data["edges"] = [(int(e.value_2d[0]), int(e.value_2d[1])) for e in props.edges] - data["tris"] = [(int(t.value_3d[0]), int(t.value_3d[1]), int(t.value_3d[2])) for t in props.tris] - return data - def draw_product_preview(self, context): def transparent_color(color, alpha=0.1): color = [i for i in color] @@ -945,12 +1031,549 @@ class ProductDecorator: else: return - product_preview_data = self.get_product_preview_data(context) - if product_preview_data: - self.draw_batch("LINES", product_preview_data["verts"], decorator_color, product_preview_data["edges"]) - self.draw_batch( - "TRIS", product_preview_data["verts"], transparent_color(decorator_color), product_preview_data["tris"] + if self.preview_mode == "LAYER2": + data = self.get_wall_preview_data() + elif self.preview_mode == "LAYER3": + data = self.get_slab_preview_data() + elif self.preview_mode == "PROFILE_VERTICAL": + data = self.get_vertical_profile_preview_data() + elif self.preview_mode == "PROFILE_HORIZONTAL": + data = self.get_horizontal_profile_preview_data() + elif self.preview_mode == "GENERIC": + data = self.get_generic_preview_data() + if data: + self.draw_batch("LINES", data["verts"], decorator_color, data["edges"]) + self.draw_batch("TRIS", data["verts"], transparent_color(decorator_color), data["tris"]) + + def get_wall_preview_data(self): + relating_type = self.relating_type + # Get properties from object type + model_props = tool.Model.get_model_props() + direction_sense = model_props.direction_sense + direction = 1 + if direction_sense == "NEGATIVE": + direction = -1 + + layers = tool.Model.get_material_layer_parameters(relating_type) + if not layers["thickness"]: + return + thickness = layers["thickness"] + thickness *= direction + + offset_type = model_props.offset_type_vertical + unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) + offset = model_props.offset * unit_scale + + height = float(model_props.extrusion_depth) + rl = float(model_props.rl1) + x_angle = float(model_props.x_angle) + if x_angle > radians(90) or x_angle < radians(-90): + height *= -1 + angle_distance = height * tan(x_angle) + thickness *= 1 / cos(x_angle) + + data = {} + data["verts"] = [] + + # Verts + polyline_vertices = [] + polyline_props = tool.Model.get_polyline_props() + polyline_data = polyline_props.insertion_polyline + polyline_points = polyline_data[0].polyline_points if polyline_data else [] + if len(polyline_points) < 2: + data = [] + return + for point in polyline_points: + polyline_vertices.append(Vector((point.x, point.y, point.z))) + + is_closed = False + if ( + polyline_vertices[0].x == polyline_vertices[-1].x + and polyline_vertices[0].y == polyline_vertices[-1].y + and polyline_vertices[0].z == polyline_vertices[-1].z + ): + is_closed = True + polyline_vertices.pop(-1) # Remove the last point. The edges are going to inform that the shape is closed. + + bm_base = tool.Model.create_bmesh_from_vertices(polyline_vertices, is_closed) + base_vertices = tool.Cad.offset_edges(bm_base, offset) + offset_base_verts = tool.Cad.offset_edges(bm_base, thickness + offset) + top_vertices = tool.Cad.offset_edges(bm_base, angle_distance + offset) + offset_top_verts = tool.Cad.offset_edges(bm_base, angle_distance + thickness + offset) + if is_closed: + base_vertices.append(base_vertices[0]) + offset_base_verts.append(offset_base_verts[0]) + top_vertices.append(top_vertices[0]) + offset_top_verts.append(offset_top_verts[0]) + + if offset_base_verts is not None: + for v in base_vertices: + data["verts"].append((v.co.x, v.co.y, v.co.z + rl)) + + for v in offset_base_verts[::-1]: + data["verts"].append((v.co.x, v.co.y, v.co.z + rl)) + + for v in top_vertices: + data["verts"].append((v.co.x, v.co.y, v.co.z + rl + height)) + + for v in offset_top_verts[::-1]: + data["verts"].append((v.co.x, v.co.y, v.co.z + rl + height)) + + bm_base.free() + + # Edges and Tris + points = [] + side_edges_1 = [] + side_edges_2 = [] + base_edges = [] + + for i in range(len(data["verts"])): + points.append(Vector(data["verts"][i])) + + n = len(points) // 2 + bottom_side_1 = [[i, (i + 1) % (n)] for i in range((n - 1) // 2)] + bottom_side_2 = [[i, (i + 1) % (n)] for i in range(n // 2, n - 1)] + bottom_connections = [[i, n - i - 1] for i in range(n // 2)] + bottom_loop = bottom_connections + bottom_side_1 + bottom_side_2 + side_edges_1.extend(bottom_side_1) + side_edges_2.extend(bottom_side_2) + base_edges.extend(bottom_loop) + + upper_side_1 = [[i + n for i in edges] for edges in bottom_side_1] + upper_side_2 = [[i + n for i in edges] for edges in bottom_side_2] + upper_loop = [[i + n for i in edges] for edges in bottom_loop] + side_edges_1.extend(upper_side_1) + side_edges_2.extend(upper_side_2) + base_edges.extend(upper_loop) + + loops = [side_edges_1, side_edges_2, base_edges] + + data["edges"] = [] + data["tris"] = [] + for i, group in enumerate(loops): + bm = bmesh.new() + + new_verts = [bm.verts.new(v) for v in points] + new_edges = [bm.edges.new((new_verts[e[0]], new_verts[e[1]])) for e in group] + + bm.verts.index_update() + bm.edges.index_update() + + if i == 2: + new_faces = bmesh.ops.contextual_create(bm, geom=bm.edges) + new_faces = bmesh.ops.bridge_loops(bm, edges=bm.edges, use_pairs=True, use_cyclic=True) + + bm.verts.index_update() + bm.edges.index_update() + edges = [[v.index for v in e.verts] for e in bm.edges] + tris = [[l.vert.index for l in loop] for loop in bm.calc_loop_triangles()] + data["edges"].extend(edges) + data["tris"].extend(tris) + + data["edges"] = list(set(tuple(e) for e in data["edges"])) + data["tris"] = list(set(tuple(t) for t in data["tris"])) + return data + + def get_slab_preview_data(self): + relating_type = self.relating_type + model_props = tool.Model.get_model_props() + x_angle = 0 if tool.Cad.is_x(model_props.x_angle, 0, tolerance=0.001) else model_props.x_angle + direction_sense = model_props.direction_sense + direction = 1 + if direction_sense == "NEGATIVE": + direction = -1 + + layers = tool.Model.get_material_layer_parameters(relating_type) + if not layers["thickness"]: + return + thickness = layers["thickness"] * abs(1 / cos(x_angle)) + thickness *= direction + + offset_type = model_props.offset_type_horizontal + unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) + offset = model_props.offset * abs(1 / cos(x_angle)) * unit_scale + + data = {} + data["verts"] = [] + # Verts + polyline_vertices = [] + polyline_props = tool.Model.get_polyline_props() + polyline_data = polyline_props.insertion_polyline + polyline_points = polyline_data[0].polyline_points if polyline_data else [] + if len(polyline_points) < 3: + data = [] + return + for point in polyline_points: + polyline_vertices.append(Vector((point.x, point.y, point.z))) + if x_angle: + # Get vertices relative to the first polyline point as origin + local_vertices = [v - Vector(polyline_vertices[0]) for v in polyline_vertices] + # Make the transformation relative to the x_angle + transformed_vertices = [Vector((v.x, v.y * (1 / cos(x_angle)), v.z)) for v in local_vertices] + # Convert back to world origin + polyline_vertices = [v + Vector(polyline_vertices[0]) for v in transformed_vertices] + if offset != 0: + polyline_vertices = [v + Vector((0, 0, offset)) for v in polyline_vertices] + is_closed = True + if ( + polyline_vertices[0].x == polyline_vertices[-1].x + and polyline_vertices[0].y == polyline_vertices[-1].y + and polyline_vertices[0].z == polyline_vertices[-1].z + ): + polyline_vertices.pop(-1) # Remove the last point. The edges are going to inform that the shape is closed. + bm = tool.Model.create_bmesh_from_vertices(polyline_vertices, is_closed) + bm.verts.ensure_lookup_table() + if x_angle: + rot_mat = Matrix.Rotation(x_angle, 3, "X") + if abs(x_angle) > (pi / 2): + rot_mat = rot_mat @ Matrix.Scale(-1, 3, (0, 1, 0)) + bmesh.ops.rotate(bm, cent=Vector(bm.verts[0].co), verts=bm.verts, matrix=rot_mat) + new_faces = bmesh.ops.contextual_create(bm, geom=bm.edges) + new_faces = bmesh.ops.extrude_face_region(bm, geom=bm.edges[:] + bm.faces[:]) + new_verts = [e for e in new_faces["geom"] if isinstance(e, bmesh.types.BMVert)] + new_faces = bmesh.ops.translate(bm, verts=new_verts, vec=(0.0, 0.0, thickness)) + bm.verts.index_update() + bm.edges.index_update() + verts = [tuple(v.co) for v in bm.verts] + edges = [[v.index for v in e.verts] for e in bm.edges] + tris = [[loop.vert.index for loop in triangles] for triangles in bm.calc_loop_triangles()] + data["verts"] = verts + data["edges"] = edges + data["tris"] = tris + return data + + def get_vertical_profile_preview_data(self) -> dict[str, Any]: + relating_type = self.relating_type + material = ifcopenshell.util.element.get_material(relating_type) + try: + profile = material.MaterialProfiles[0].Profile + except: + return {} + + model_props = tool.Model.get_model_props() + extrusion_depth = model_props.extrusion_depth + cardinal_point = model_props.cardinal_point + rot_mat = Quaternion() + if relating_type.is_a("IfcBeamType"): + y_rot = Quaternion((0.0, 1.0, 0.0), radians(90)) + z_rot = Quaternion((0.0, 0.0, 1.0), radians(90)) + rot_mat = y_rot @ z_rot + # Get profile data + settings = ifcopenshell.geom.settings() + settings.set("dimensionality", ifcopenshell.ifcopenshell_wrapper.CURVES_SURFACES_AND_SOLIDS) + shape = ifcopenshell.geom.create_shape(settings, profile) + + verts = shape.verts + if not verts: + raise RuntimeError(f"Profile shape has no vertices, it probably is invalid: '{profile}'.") + + edges = shape.edges + + grouped_verts = [[verts[i], verts[i + 1], 0] for i in range(0, len(verts), 3)] + grouped_edges = [[edges[i], edges[i + 1]] for i in range(0, len(edges), 2)] + + # Create offsets based on cardinal point + min_x = min(v[0] for v in grouped_verts) + max_x = max(v[0] for v in grouped_verts) + min_y = min(v[1] for v in grouped_verts) + max_y = max(v[1] for v in grouped_verts) + + x_offset = (max_x - min_x) / 2 + y_offset = (max_y - min_y) / 2 + + match cardinal_point: + case "1": + grouped_verts = [(v[0] - x_offset, v[1] + y_offset, v[2]) for v in grouped_verts] + case "2": + grouped_verts = [(v[0], v[1] + y_offset, v[2]) for v in grouped_verts] + case "3": + grouped_verts = [(v[0] + x_offset, v[1] + y_offset, v[2]) for v in grouped_verts] + case "4": + grouped_verts = [(v[0] - x_offset, v[1], v[2]) for v in grouped_verts] + case "5": + grouped_verts = [(v[0], v[1], v[2]) for v in grouped_verts] + case "6": + grouped_verts = [(v[0] + x_offset, v[1], v[2]) for v in grouped_verts] + case "7": + grouped_verts = [(v[0] - x_offset, v[1] - y_offset, v[2]) for v in grouped_verts] + case "8": + grouped_verts = [(v[0], v[1] - y_offset, v[2]) for v in grouped_verts] + case "9": + grouped_verts = [(v[0] + x_offset, v[1] - y_offset, v[2]) for v in grouped_verts] + + # Create extrusion bmesh + bm = bmesh.new() + + grouped_verts.append(grouped_verts[0]) # Close profile + new_verts = [bm.verts.new(v) for v in grouped_verts] + new_edges = [bm.edges.new((new_verts[i], new_verts[i + 1])) for i in range(len(grouped_verts) - 1)] + + bm.verts.index_update() + bm.edges.index_update() + + bmesh.ops.remove_doubles(bm, verts=bm.verts, dist=0.001) + + new_faces = bmesh.ops.contextual_create(bm, geom=bm.edges) + + new_faces = bmesh.ops.extrude_face_region(bm, geom=bm.faces, use_dissolve_ortho_edges=True) + new_verts = [e for e in new_faces["geom"] if isinstance(e, bmesh.types.BMVert)] + new_faces = bmesh.ops.translate(bm, verts=new_verts, vec=(0.0, 0.0, extrusion_depth)) + + bm.verts.index_update() + bm.edges.index_update() + tris = [[loop.vert.index for loop in triangles] for triangles in bm.calc_loop_triangles()] + + # Calculate rotation, mouse position, angle and cardinal point + polyline_props = tool.Model.get_polyline_props() + snap_prop = polyline_props.snap_mouse_point[0] + mouse_point = Vector((snap_prop.x, snap_prop.y, snap_prop.z)) + data = {} + + verts = [tuple(v.co) for v in bm.verts] + verts = [tuple(rot_mat @ Vector(v)) for v in verts] + verts = [tuple(Vector(v) + mouse_point) for v in verts] + min_z = min(v.co.z for v in bm.verts) + max_z = max(v.co.z for v in bm.verts) + # Add axis verts + verts.append(tuple(mouse_point)) + verts.append(tuple(mouse_point + Vector((0, 0, max_z)))) + # Add only profile edges + edges = [] + for edge in bm.edges: + if (edge.verts[0].co.z == min_z and edge.verts[1].co.z == min_z) or ( + edge.verts[0].co.z == max_z and edge.verts[1].co.z == max_z + ): + edges.append(edge) + # Add axis edge + edges = [(edge.verts[0].index, edge.verts[1].index) for edge in edges] + edges.append((len(verts) - 1, len(verts) - 2)) + data["verts"] = verts + data["edges"] = edges + data["tris"] = tris + + bm.free() + return data + + def get_horizontal_profile_preview_data(self) -> dict[str, Any]: + relating_type = self.relating_type + material = ifcopenshell.util.element.get_material(relating_type) + try: + profile_curve = material.MaterialProfiles[0].Profile + except: + return {} + + model_props = tool.Model.get_model_props() + cardinal_point = model_props.cardinal_point + + polyline_verts = [] + polyline_props = tool.Model.get_polyline_props() + polyline_data = polyline_props.insertion_polyline + polyline_points = polyline_data[0].polyline_points if polyline_data else [] + if len(polyline_points) < 2: + return {} + for point in polyline_points: + polyline_verts.append(Vector((point.x, point.y, point.z))) + polyline_edges = [(i, i + 1) for i in range(len(polyline_verts) - 1)] + + # Get profile shape + settings = ifcopenshell.geom.settings() + settings.set("dimensionality", ifcopenshell.ifcopenshell_wrapper.CURVES_SURFACES_AND_SOLIDS) + shape = ifcopenshell.geom.create_shape(settings, profile_curve) + + verts = shape.verts + if not verts: + raise RuntimeError(f"Profile shape has no vertices, it probably is invalid: '{profile_curve}'.") + + edges = shape.edges + + grouped_verts = [[verts[i], verts[i + 1], 0] for i in range(0, len(verts), 3)] + grouped_edges = [[edges[i], edges[i + 1]] for i in range(0, len(edges), 2)] + + # Create offsets based on cardinal point + min_x = min(v[0] for v in grouped_verts) + max_x = max(v[0] for v in grouped_verts) + min_y = min(v[1] for v in grouped_verts) + max_y = max(v[1] for v in grouped_verts) + + x_offset = (max_x - min_x) / 2 + y_offset = (max_y - min_y) / 2 + + match cardinal_point: + case "1": + grouped_verts = [(v[0] - x_offset, v[1] + y_offset, v[2]) for v in grouped_verts] + case "2": + grouped_verts = [(v[0], v[1] + y_offset, v[2]) for v in grouped_verts] + case "3": + grouped_verts = [(v[0] + x_offset, v[1] + y_offset, v[2]) for v in grouped_verts] + case "4": + grouped_verts = [(v[0] - x_offset, v[1], v[2]) for v in grouped_verts] + case "5": + grouped_verts = [(v[0], v[1], v[2]) for v in grouped_verts] + case "6": + grouped_verts = [(v[0] + x_offset, v[1], v[2]) for v in grouped_verts] + case "7": + grouped_verts = [(v[0] - x_offset, v[1] - y_offset, v[2]) for v in grouped_verts] + case "8": + grouped_verts = [(v[0], v[1] - y_offset, v[2]) for v in grouped_verts] + case "9": + grouped_verts = [(v[0] + x_offset, v[1] - y_offset, v[2]) for v in grouped_verts] + + data: dict[str, Any] = {} + data["verts"] = [] + data["edges"] = [] + data["tris"] = [] + + grouped_verts = [(v) for v in grouped_verts] + + all_bm = bmesh.new() + for i in range(len(polyline_verts) - 1): + mesh = bpy.data.meshes.new("TempMesh") + # Create the initial mesh from the profile verts + bm = tool.Model.create_bmesh_from_vertices(grouped_verts, is_closed=True) + bm.verts.ensure_lookup_table() + # Creates the clipping plane formed by two segments. + # The first one is for the profile start, based on the current and previous segment of the polyline. + # The second is for the profile end, based on the current and the next segment. + if i == 0: + d = (polyline_verts[i + 1] - polyline_verts[i]).normalized() + clip_start = d + else: + d1 = (polyline_verts[i] - polyline_verts[i - 1]).normalized() + d2 = (polyline_verts[i] - polyline_verts[i + 1]).normalized() + clip_start = (d1 - d2).normalized() + + if i == len(polyline_verts) - 2: + d = (polyline_verts[i + 1] - polyline_verts[i]).normalized() + clip_end = d + else: + d1 = (polyline_verts[i + 1] - polyline_verts[i]).normalized() + d2 = (polyline_verts[i + 1] - polyline_verts[i + 2]).normalized() + clip_end = (d1 - d2).normalized() + + # Rotates the profile face to the right direction + direction = polyline_verts[i + 1] - polyline_verts[i] + position = polyline_verts[i] + rotation_matrix = direction.to_track_quat("Z", "Y").to_matrix().to_4x4() + bmesh.ops.transform(bm, verts=bm.verts, matrix=rotation_matrix) + bmesh.ops.translate(bm, verts=bm.verts, vec=position) + bmesh.ops.translate(bm, verts=bm.verts, vec=-direction) + + # Extrude and move the new face + last_face = bmesh.ops.extrude_face_region(bm, geom=bm.edges[:] + bm.faces[:]) + new_verts = [e for e in last_face["geom"] if isinstance(e, bmesh.types.BMVert)] + bmesh.ops.translate(bm, verts=new_verts, vec=direction * 3) + # Apply the cutting planes + cut = bmesh.ops.bisect_plane( + bm, + geom=bm.verts[:] + bm.edges[:] + bm.faces[:], + plane_co=polyline_verts[i], + plane_no=clip_start, + clear_inner=True, ) + bm.verts.index_update() + bm.edges.index_update() + cut = bmesh.ops.bisect_plane( + bm, + geom=bm.verts[:] + bm.edges[:] + bm.faces[:], + plane_co=polyline_verts[i + 1], + plane_no=clip_end, + clear_outer=True, + ) + + bm.to_mesh(mesh) + bm.free() + mesh.update() + all_bm.from_mesh(mesh) + bpy.data.meshes.remove(bpy.data.meshes["TempMesh"]) + + # It's necessary to add the mesh to an object to get the expected result. + mesh = bpy.data.meshes.new("TempMesh2") + all_bm.to_mesh(mesh) + all_bm.free() + obj = bpy.data.objects.new("TempObj", mesh) + bm = bmesh.new() + bm.from_mesh(obj.data) + bpy.data.meshes.remove(bpy.data.meshes["TempMesh2"]) + + verts = [tuple(v.co) for v in bm.verts] + edges = [[v.index for v in e.verts] for e in bm.edges] + tris = [[loop.vert.index for loop in triangles] for triangles in bm.calc_loop_triangles()] + data["verts"] = verts + data["edges"] = edges + data["tris"] = tris + bm.free() + return data + + def get_generic_preview_data(self): + if not (data := self.obj_data): + return + relating_type = self.relating_type + model_props = tool.Model.get_model_props() + if relating_type.is_a("IfcDoorType"): + rl = float(model_props.rl1) + elif relating_type.is_a("IfcWindowType"): + rl = float(model_props.rl2) + else: + rl = 0 + polyline_props = tool.Model.get_polyline_props() + snap_prop = polyline_props.snap_mouse_point[0] + default_container_elevation = tool.Root.get_default_container_elevation() + mouse_point = Vector((snap_prop.x, snap_prop.y, default_container_elevation)) + snap_obj = bpy.data.objects.get(snap_prop.snap_object) + snap_element = tool.Ifc.get_entity(snap_obj) + rot_mat = Matrix() + if relating_type.is_a() in ["IfcDoorType", "IfcWindowType"] and snap_element and snap_element.is_a("IfcWall"): + layers = tool.Model.get_material_layer_parameters(snap_element) + axes = tool.Model.get_wall_axis(snap_obj, layers=layers) + axis_base = axes["base"] + axis_side = axes["side"] + point_on_base_axis = tool.Cad.point_on_edge(mouse_point, axis_base) + point_on_side_axis = tool.Cad.point_on_edge(mouse_point, axis_side) + if (point_on_base_axis - mouse_point).length_squared <= (point_on_side_axis - mouse_point).length_squared: + # mouse is snapped to the base axis, the preview looks exactly like the placed door / window + rot_mat = snap_obj.matrix_world + else: + # mouse is snapped to the side axis, the preview is inverted, rotate it now and correct x position later + rot_mat = ( + (snap_obj.matrix_world.to_quaternion() @ Quaternion(Vector((0, 0, 1)), radians(180))) + .to_matrix() + .to_4x4() + ) + + mouse_point.z = snap_obj.matrix_world.translation.z + + if snap_element and (container := ifcopenshell.util.element.get_container(snap_element)): + container_obj = tool.Ifc.get_object(container) + mouse_point.z = container_obj.location.z + + obj_type = tool.Ifc.get_object(relating_type) + + subcontexts = tool.Drawing.get_active_drawing_subcontexts() + if not subcontexts: + subcontexts = [("Model", "Body", "MODEL_VIEW")] + + active_context = tool.Geometry.get_active_representation_context(obj_type) + active_context_params = tool.Geometry.get_subcontext_parameters(active_context) + for subcontext in subcontexts: + if subcontext == active_context_params: + break + + representation = ifcopenshell.util.representation.get_representation(relating_type, *subcontext) + if representation: + bonsai.core.geometry.switch_representation( + tool.Ifc, + tool.Geometry, + obj_type, + representation, + ) + context.view_layer.update() + break + + translate_mouse = Matrix.Translation(mouse_point) + translate_rl = Matrix.Translation((0.0, 0.0, rl)) + combined_m = translate_mouse @ rot_mat @ translate_rl @ self.obj_matrix_i + data["verts"] = [tuple(combined_m @ v) for v in data["raw_verts"]] + return data class WallAxisDecorator: diff --git a/src/bonsai/bonsai/bim/module/model/door.py b/src/bonsai/bonsai/bim/module/model/door.py index f04fcd81b7..dbdf5e8dcf 100644 --- a/src/bonsai/bonsai/bim/module/model/door.py +++ b/src/bonsai/bonsai/bim/module/model/door.py @@ -17,8 +17,13 @@ # along with Bonsai. If not, see . -import bpy +import collections +import collections.abc +import json +from typing import TYPE_CHECKING, get_args + import bmesh +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.geometry @@ -28,21 +33,23 @@ import ifcopenshell.util.element import ifcopenshell.util.representation import ifcopenshell.util.schema import ifcopenshell.util.unit -import bonsai.tool as tool -import bonsai.core.geometry +from mathutils import Matrix, Vector + import bonsai.core.geometry as core import bonsai.core.root -from bonsai.bim.module.model.window import create_bm_window, create_bm_box +import bonsai.tool as tool +from bonsai.bim.module.drawing import gizmos as gizmo +from bonsai.bim.module.drawing.gizmos import DimensionGizmoConfig +from bonsai.bim.module.model.window import create_bm_box, create_bm_window -from mathutils import Vector, Matrix -from typing import Union, Any, Optional - -import json -import collections -import collections.abc +if TYPE_CHECKING: + from bonsai.bim.module.model.prop import BIMDoorProperties V_ = tool.Blender.V_ +# Shorthand for gizmo offset constants used in DimensionGizmoConfig lambdas +_G = gizmo.BaseParametricGizmoGroup + def update_door_modifier_representation(obj: bpy.types.Object) -> None: props = tool.Model.get_door_props(obj) @@ -140,7 +147,7 @@ def update_door_modifier_representation(obj: bpy.types.Object) -> None: plan_representation = ifcopenshell.api.geometry.add_door_representation(ifc_file, **representation_data) tool.Model.replace_object_ifc_representation(plan_annotation, obj, plan_representation) - bonsai.core.geometry.switch_representation( + core.switch_representation( tool.Ifc, tool.Geometry, obj=obj, @@ -192,8 +199,8 @@ def bm_mirror( def create_bm_extruded_profile( bm: bmesh.types.BMesh, points: list[Vector], - edges: Optional[list[tuple[int, int]]] = None, - faces: Optional[list[list[int]]] = None, + edges: list[tuple[int, int]] | None = None, + faces: list[list[int]] | None = None, position: Vector = V_(0, 0, 0).freeze(), magnitude: float = 1.0, extrusion_vector: Vector = V_(0, 0, 1).freeze(), @@ -278,7 +285,7 @@ def create_bm_door_lining( new_faces = [bm.faces.new([new_verts[vi] for vi in face[1]]) for face in faces] extruded = bmesh.ops.extrude_face_region(bm, geom=new_faces) - extrusion_vector = Vector((0, 1, 0)) * depth + extrusion_vector = V_(0, 1, 0) * depth translate_verts = [v for v in extruded["geom"] if isinstance(v, bmesh.types.BMVert)] bmesh.ops.translate(bm, vec=extrusion_vector, verts=translate_verts) @@ -291,6 +298,8 @@ def update_door_modifier_bmesh(context: bpy.types.Context) -> None: obj = context.active_object assert obj props = tool.Model.get_door_props(obj) + if not props.is_editing: + return overall_width = props.overall_width overall_height = props.overall_height @@ -408,7 +417,10 @@ def update_door_modifier_bmesh(context: bpy.types.Context) -> None: if door_swing_type == "LEFT": bm_mirror( - bm, door_handle_verts, mirror_axes=V_(1, 0, 0), mirror_point=panel_position + V_(panel_size.x / 2, 0, 0) + bm, + door_handle_verts, + mirror_axes=V_(1, 0, 0), + mirror_point=panel_position + V_(panel_size.x / 2, 0, 0), ) door_handle_mirrored_verts = bm_mirror( @@ -467,6 +479,7 @@ def update_door_modifier_bmesh(context: bpy.types.Context) -> None: lining_offset_verts = lining_verts + door_verts + window_lining_verts + frame_verts + glass_verts bmesh.ops.translate(bm, vec=V_(0, lining_offset, 0), verts=lining_offset_verts) bmesh.ops.remove_doubles(bm, verts=bm.verts, dist=0.0001) + bmesh.ops.recalc_face_normals(bm, faces=bm.faces) if bpy.context.active_object.mode == "EDIT": bmesh.update_edit_mesh(obj.data) @@ -478,14 +491,14 @@ def update_door_modifier_bmesh(context: bpy.types.Context) -> None: class BIM_OT_add_door(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "mesh.add_door" - bl_label = "Door" + bl_label = "Add Door" bl_options = {"REGISTER", "UNDO"} @classmethod - def poll(cls, context): + def poll(cls, context: bpy.types.Context) -> bool: return tool.Ifc.get() and context.mode == "OBJECT" - def _execute(self, context): + def _execute(self, context: bpy.types.Context) -> set[str]: ifc_file = tool.Ifc.get() if not ifc_file: self.report({"ERROR"}, "You need to start IFC project first to create a door.") @@ -504,7 +517,7 @@ class BIM_OT_add_door(bpy.types.Operator, tool.Ifc.Operator): element = bonsai.core.root.assign_class( tool.Ifc, tool.Collector, tool.Root, obj=obj, ifc_class="IfcDoor", should_add_representation=False ) - bonsai.core.geometry.edit_object_placement(tool.Ifc, tool.Geometry, tool.Surveyor, obj=obj) + core.edit_object_placement(tool.Ifc, tool.Geometry, tool.Surveyor, obj=obj) if tool.Ifc.get_schema() != "IFC2X3": element.PredefinedType = "DOOR" @@ -528,6 +541,8 @@ class AddDoor(bpy.types.Operator, tool.Ifc.Operator): assert element props = tool.Model.get_door_props(obj) + tool.Blender.get_addon_preferences().default_parameters.door.copy_to(props) + door_data = props.get_general_kwargs(convert_to_project_units=True) lining_props = props.get_lining_kwargs(convert_to_project_units=True) panel_props = props.get_panel_kwargs(convert_to_project_units=True) @@ -546,7 +561,7 @@ class AddDoor(bpy.types.Operator, tool.Ifc.Operator): ) update_door_modifier_representation(obj) - def _execute(self, context): + def _execute(self, context: bpy.types.Context) -> set[str]: # noqa: ARG002 for obj in tool.Blender.get_selected_objects(): if not tool.Blender.Modifier.is_eligible_for_door_modifier(obj): continue @@ -557,6 +572,7 @@ class AddDoor(bpy.types.Operator, tool.Ifc.Operator): class CancelEditingDoor(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.cancel_editing_door" bl_label = "Cancel Editing Door on Selected Objects" + bl_description = "Cancel editing and revert door parameters to their previous values" bl_options = {"REGISTER", "UNDO"} def cancel_editing_door_on_object(self, obj: bpy.types.Object) -> None: @@ -573,7 +589,7 @@ class CancelEditingDoor(bpy.types.Operator, tool.Ifc.Operator): props.set_props_kwargs_from_ifc_data(data) body = ifcopenshell.util.representation.get_representation(element, "Model", "Body", "MODEL_VIEW") - bonsai.core.geometry.switch_representation( + core.switch_representation( tool.Ifc, tool.Geometry, obj=obj, @@ -582,7 +598,7 @@ class CancelEditingDoor(bpy.types.Operator, tool.Ifc.Operator): props.is_editing = False - def _execute(self, context): + def _execute(self, context: bpy.types.Context) -> set[str]: # noqa: ARG002 for obj in tool.Blender.get_selected_objects(): self.cancel_editing_door_on_object(obj) return {"FINISHED"} @@ -591,9 +607,10 @@ class CancelEditingDoor(bpy.types.Operator, tool.Ifc.Operator): class FinishEditingDoor(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.finish_editing_door" bl_label = "Finish Editing Door on Selected Objects" + bl_description = "Apply changes and finish editing door parameters" bl_options = {"REGISTER", "UNDO"} - def finish_editing_door_on_object(self, obj): + def finish_editing_door_on_object(self, obj: bpy.types.Object) -> None: element = tool.Ifc.get_entity(obj) assert element if not tool.Blender.Modifier.is_door(element): @@ -618,7 +635,7 @@ class FinishEditingDoor(bpy.types.Operator, tool.Ifc.Operator): door_data = tool.Ifc.get().createIfcText(json.dumps(door_data, default=list)) ifcopenshell.api.pset.edit_pset(tool.Ifc.get(), pset=pset, properties={"Data": door_data}) - def _execute(self, context): + def _execute(self, context: bpy.types.Context) -> set[str]: # noqa: ARG002 for obj in tool.Blender.get_selected_objects(): self.finish_editing_door_on_object(obj) return {"FINISHED"} @@ -627,9 +644,10 @@ class FinishEditingDoor(bpy.types.Operator, tool.Ifc.Operator): class EnableEditingDoor(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.enable_editing_door" bl_label = "Enable Editing Door on Selected Objects" + bl_description = "Enter edit mode to modify door parameters interactively" bl_options = {"REGISTER", "UNDO"} - def edit_door_on_obj(self, obj): + def edit_door_on_obj(self, obj: bpy.types.Object) -> None: element = tool.Ifc.get_entity(obj) assert element if not tool.Blender.Modifier.is_door(element): @@ -644,7 +662,7 @@ class EnableEditingDoor(bpy.types.Operator, tool.Ifc.Operator): props.set_props_kwargs_from_ifc_data(data) props.is_editing = True - def _execute(self, context): + def _execute(self, context: bpy.types.Context) -> set[str]: # noqa: ARG002 for obj in tool.Blender.get_selected_objects(): self.edit_door_on_obj(obj) return {"FINISHED"} @@ -655,7 +673,7 @@ class RemoveDoor(bpy.types.Operator, tool.Ifc.Operator): bl_label = "Remove Door on Selected Objects" bl_options = {"REGISTER", "UNDO"} - def remove_door_on_object(self, obj): + def remove_door_on_object(self, obj: bpy.types.Object) -> None: element = tool.Ifc.get_entity(obj) assert element if not tool.Blender.Modifier.is_door(element): @@ -666,7 +684,286 @@ class RemoveDoor(bpy.types.Operator, tool.Ifc.Operator): pset = tool.Pset.get_element_pset(element, "BBIM_Door") ifcopenshell.api.pset.remove_pset(tool.Ifc.get(), product=element, pset=pset) - def _execute(self, context): + def _execute(self, context: bpy.types.Context) -> set[str]: # noqa: ARG002 for obj in tool.Blender.get_selected_objects(): self.remove_door_on_object(obj) return {"FINISHED"} + + +class ToggleDoorSwing(bpy.types.Operator, tool.Ifc.Operator): + """Toggle door swing direction and optionally flip door geometry. + + Shift+Click (when flip_geometry=True): Flip geometry only without changing door direction""" + + bl_idname = "bim.toggle_door_swing" + bl_label = "Toggle Door Swing" + bl_options = {"REGISTER", "UNDO"} + + flip_geometry: bpy.props.BoolProperty(name="Flip Geometry", default=False) + flip_local_axes: bpy.props.EnumProperty( + name="Flip Local Axes", items=(("XY", "XY", ""), ("YZ", "YZ", ""), ("XZ", "XZ", "")), default="XY" + ) + skip_direction_change: bpy.props.BoolProperty( + name="Skip Direction Change", default=False, options={"HIDDEN", "SKIP_SAVE"} + ) + + def invoke(self, context: bpy.types.Context, event: bpy.types.Event) -> set[str]: + self.skip_direction_change = event.shift + return self.execute(context) + + def _toggle_swing_direction(self, obj: bpy.types.Object) -> bool: + """Toggle door swing direction between LEFT and RIGHT.""" + props = tool.Model.get_door_props(obj) + current_type = props.door_type + + if "LEFT" in current_type: + props.door_type = current_type.replace("LEFT", "RIGHT") + return True + elif "RIGHT" in current_type: + props.door_type = current_type.replace("RIGHT", "LEFT") + return True + return False + + def _execute(self, context: bpy.types.Context) -> set[str]: # noqa: ARG002 + obj = tool.Blender.get_active_object() + if not obj: + return {"CANCELLED"} + + element = tool.Ifc.get_entity(obj) + if not element: + return {"CANCELLED"} + + is_door = tool.Blender.Modifier.is_door(element) + + if self.flip_geometry: + tool.Geometry.flip_object(obj, self.flip_local_axes) + if not self.skip_direction_change and is_door: + self._toggle_swing_direction(obj) + elif is_door: + self._toggle_swing_direction(obj) + else: + return {"CANCELLED"} + + return {"FINISHED"} + + +class CycleDoorType(bpy.types.Operator, tool.Ifc.Operator, gizmo.CycleTypeMixin): + """Cycle through available door types. Shift+click to cycle in reverse.""" + + bl_idname = "bim.cycle_door_type" + bl_label = "Cycle Door Type" + bl_options = {"REGISTER", "UNDO"} + + element_checker = "is_door" + props_getter = "get_door_props" + type_literal = tool.Model.DoorType + type_attr = "door_type" + + def _execute(self, context: bpy.types.Context) -> set[str]: + return self._cycle_type(context) + + +class GizmoDoorEdition(bpy.types.GizmoGroup, gizmo.BaseParametricGizmoGroup): + bl_idname = "OBJECT_GGT_bim_door_edition" + bl_label = "Door Editing Gizmo" + bl_space_type = "VIEW_3D" + bl_region_type = "WINDOW" + bl_options = {"3D", "PERSISTENT"} + + enable_editing_operator = "bim.enable_editing_door" + finish_editing_operator = "bim.finish_editing_door" + cancel_editing_operator = "bim.cancel_editing_door" + cycle_type_operator = "bim.cycle_door_type" + + # Declarative dimension gizmo configuration with visibility and position + # matrix_position lambdas replace the get_dimension_matrix_* methods + dimension_gizmo_props = [ + DimensionGizmoConfig( + attr_name="overall_width", + axis=(1, 0, 0), + min_value=0.01, + text_offset_sign=-1, + # Position set dynamically in _update_dimension_gizmo_positions based on view + ), + DimensionGizmoConfig( + attr_name="overall_height", + axis=(0, 0, 1), + min_value=0.01, + text_alignment="start", + # Position set dynamically in _update_dimension_gizmo_positions based on view + ), + DimensionGizmoConfig( + attr_name="threshold_thickness", + axis=(0, 0, 1), + matrix_position=lambda p: V_(p.overall_width / 2, p.threshold_offset + p.threshold_depth, 0), + ), + DimensionGizmoConfig( + attr_name="threshold_depth", + axis=(0, 1, 0), + visibility_condition=lambda p: p.has_threshold_depth(), + matrix_position=lambda p: V_(p.overall_width / 2, p.threshold_offset, p.threshold_thickness), + ), + DimensionGizmoConfig( + attr_name="threshold_offset", + axis=(0, 1, 0), + matrix_position=lambda p: V_(p.overall_width / 2 - _G.GIZMO_STACK_OFFSET, 0, p.threshold_thickness), + ), + DimensionGizmoConfig( + attr_name="lining_offset", + axis=(0, 1, 0), + min_value=-10.0, + # Position set dynamically in _update_dimension_gizmo_positions based on view + ), + DimensionGizmoConfig( + attr_name="lining_depth", + axis=(0, 1, 0), + matrix_position=lambda p: V_(p.overall_width, p.lining_offset, p.overall_height), + ), + DimensionGizmoConfig( + attr_name="lining_thickness", + axis=(-1, 0, 0), + matrix_position=lambda p: V_(p.overall_width, p.lining_depth / 2, p.overall_height / 2), + ), + DimensionGizmoConfig( + attr_name="transom_offset", + axis=(0, 0, 1), + visibility_condition=lambda p: p.has_transom(), + matrix_position=lambda p: V_(p.overall_width / 2, p.lining_offset, 0), + ), + DimensionGizmoConfig( + attr_name="transom_thickness", + axis=(0, 0, 1), + matrix_position=lambda p: V_(p.overall_width / 2, p.lining_offset, p.transom_offset), + ), + DimensionGizmoConfig( + attr_name="casing_thickness", + axis=(-1, 0, 0), + visibility_condition=lambda p: p.has_casing(), + matrix_position=lambda p: V_( + p.lining_thickness, p.lining_depth + p.lining_offset + p.casing_depth / 2, p.overall_height / 2 + ), + ), + DimensionGizmoConfig( + attr_name="casing_depth", + axis=(0, 1, 0), + visibility_condition=lambda p: p.has_casing_depth(), + matrix_position=lambda p: V_( + p.lining_thickness - p.casing_thickness, p.lining_depth + p.lining_offset, p.overall_height / 2 + ), + ), + DimensionGizmoConfig( + attr_name="panel_depth", + axis=(0, 1, 0), + matrix_position=lambda p: V_( + p.lining_to_panel_offset_x + p.overall_width * p.panel_width_ratio / 2, + p.lining_offset + p.lining_to_panel_offset_y, + p.threshold_thickness + p.get_panel_center_z(), + ), + ), + DimensionGizmoConfig( + attr_name="frame_thickness", + axis=(-1, 0, 0), + visibility_condition=lambda p: p.has_transom(), + matrix_position=lambda p: V_( + p.overall_width, + p.lining_offset + p.lining_to_panel_offset_y + p.frame_depth / 2, + p.get_transom_window_center_z(), + ), + ), + DimensionGizmoConfig( + attr_name="frame_depth", + axis=(0, 1, 0), + visibility_condition=lambda p: p.has_transom(), + matrix_position=lambda p: V_( + p.overall_width - p.frame_thickness, + p.lining_offset + p.lining_to_panel_offset_y, + p.get_transom_window_center_z(), + ), + ), + ] + + props_getter = "get_door_props" + gizmo_pref_name = "door" + + @classmethod + def is_element_type(cls, element: ifcopenshell.entity_instance) -> bool: + return tool.Blender.Modifier.is_door(element) + + def get_icon_y_extent(self, props: "BIMDoorProperties") -> tuple[float, float]: + """Get Y extents for door icon positioning. + + Door geometry extends in +Y direction from lining/threshold. + Icons are positioned beyond max(threshold_offset + depth, lining_offset + depth). + """ + furthest_y = ( + max( + props.threshold_offset + props.threshold_depth, + props.lining_offset + props.lining_depth, + ) + + 2 * self.GIZMO_OFFSET + ) + return (furthest_y, furthest_y) + + def setup_element_specific_gizmos(self, context: bpy.types.Context) -> None: + """Create door-specific swing arc gizmos.""" + prefs = tool.Blender.get_addon_preferences() + inactive_color = prefs.decorator_color_background[:3] + special_color = prefs.decorator_color_special[:3] + + self.gizmo_door_type = self.create_arc_gizmo( + special_color, + "bim.toggle_door_swing", + prop_path="BIMDoorProperties.door_type", + flip_geometry=False, + ) + self.gizmo_flip_arc = self.create_arc_gizmo( + inactive_color, + "bim.toggle_door_swing", + prop_path="BIMDoorProperties.door_type", + flip_geometry=True, + flip_local_axes="XY", + ) + + def _refresh_element_specific( + self, context: bpy.types.Context, mw: Matrix, props: "BIMDoorProperties" # noqa: ARG002 + ) -> None: + """Update door-specific swing arc gizmos.""" + self.update_swing_gizmos(mw, props) + + def get_casing_offset(self, props: "BIMDoorProperties") -> float: + """Override to return casing_thickness when lining_offset is 0.""" + return props.get_casing_offset() + + def _update_dimension_gizmo_positions( + self, context: bpy.types.Context, mw: Matrix, props: "BIMDoorProperties" + ) -> None: + """Update dimension gizmo positions based on camera view direction.""" + self._update_view_dependent_dimensions(context, mw, props) + + def update_swing_gizmos(self, mw: Matrix, props: "BIMDoorProperties") -> None: + """Update swing gizmo position and color based on editing state.""" + prefs = tool.Blender.get_addon_preferences() + door_gizmo_prefs = prefs.gizmos.door + + door_type_visible = self.update_gizmo_visibility( + self.gizmo_door_type, props.is_editing, door_gizmo_prefs.swing_arc + ) + flip_arc_visible = self.update_gizmo_visibility( + self.gizmo_flip_arc, props.is_editing, door_gizmo_prefs.flip_arc + ) + + if not door_type_visible and not flip_arc_visible: + return + + swing_x_offset = props.overall_width if "RIGHT" in props.door_type else 0.0 + base_swing_transform = Matrix.Translation(V_(swing_x_offset, props.lining_offset, 0)) @ Matrix.Scale( + props.overall_width, 4 + ) + + if door_type_visible: + self.gizmo_door_type.matrix_basis = mw @ base_swing_transform + self.gizmo_door_type.color = prefs.decorations_colour[:3] + + if flip_arc_visible: + mirror_y = Matrix.Scale(-1, 4, (0, 1, 0)) + self.gizmo_flip_arc.matrix_basis = mw @ base_swing_transform @ mirror_y diff --git a/src/bonsai/bonsai/bim/module/model/external.py b/src/bonsai/bonsai/bim/module/model/external.py index cde84cd536..5ed99f29e8 100644 --- a/src/bonsai/bonsai/bim/module/model/external.py +++ b/src/bonsai/bonsai/bim/module/model/external.py @@ -17,9 +17,7 @@ # along with Bonsai. If not, see . import bpy -import bmesh -import ifcopenshell import bonsai.tool as tool @@ -32,9 +30,23 @@ class ApplyExternalParametricGeometry(bpy.types.Operator, tool.Ifc.Operator): def _execute(self, context): obj = context.active_object assert obj - assert (active_representation := tool.Geometry.get_active_representation(obj)) - ifc_context = active_representation.ContextOfItems - tool.Model.add_representation(obj, ifc_context) props = tool.Model.get_epg_props(obj) + + # TODO: consider nodes being empty. + if props.geometry_source == "GEONODES": + assert (active_representation := tool.Geometry.get_active_representation(obj)) + ifc_context = active_representation.ContextOfItems + + tool.Model.add_representation(obj, ifc_context) + elif props.geometry_source == "IFCSVERCHOK": + import ifcsverchok.helper as helper + + nodes = props.sverchok_nodes + assert nodes is not None + tool.Model.run_ifcsverchok_graph_on_bonsai_file(nodes) + output_node = tool.Model.get_ifcsverchok_shape_output(nodes) + representation = helper.get_socket_value(output_node.inputs, "Representation") + tool.Model.replace_object_ifc_representation(representation.ContextOfItems, obj, representation) + props.is_editing = False return {"FINISHED"} diff --git a/src/bonsai/bonsai/bim/module/model/grid.py b/src/bonsai/bonsai/bim/module/model/grid.py index 4bac1b3f94..df4f140ebc 100644 --- a/src/bonsai/bonsai/bim/module/model/grid.py +++ b/src/bonsai/bonsai/bim/module/model/grid.py @@ -16,16 +16,18 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy import ifcopenshell.api import ifcopenshell.api.grid -import bonsai.tool as tool +from bpy.props import FloatProperty, IntProperty +from bpy.types import Operator +from mathutils import Vector + import bonsai.core.geometry import bonsai.core.root -from bpy.types import Operator -from bpy.props import FloatProperty, IntProperty -from mathutils import Vector -from typing import TYPE_CHECKING +import bonsai.tool as tool def add_object(self: "BIM_OT_add_object", context: bpy.types.Context) -> None: diff --git a/src/bonsai/bonsai/bim/module/model/handler.py b/src/bonsai/bonsai/bim/module/model/handler.py index 76ebbf57ee..47075cdcfa 100644 --- a/src/bonsai/bonsai/bim/module/model/handler.py +++ b/src/bonsai/bonsai/bim/module/model/handler.py @@ -19,9 +19,10 @@ import bpy import ifcopenshell import ifcopenshell.api -from bonsai.bim.module.model import product, wall, slab, profile, opening, task from bpy.app.handlers import persistent +from bonsai.bim.module.model import opening, product, profile, slab, task, wall + @persistent def load_post(*args): @@ -36,24 +37,11 @@ def load_post(*args): "sequence.edit_task_time", "Bonsai.Task.CalculateQuantities", task.calculate_quantities ) - ifcopenshell.api.add_post_listener( - "type.assign_type", "Bonsai.DumbWall.RegenerateFromType", wall.DumbWallPlaner().regenerate_from_type - ) - - ifcopenshell.api.add_post_listener( - "type.assign_type", "Bonsai.DumbSlab.RegenerateFromType", slab.DumbSlabPlaner().regenerate_from_type - ) - ifcopenshell.api.add_post_listener( "material.edit_profile", "Bonsai.DumbProfile.RegenerateFromProfile", profile.DumbProfileRegenerator().regenerate_from_profile, ) - ifcopenshell.api.add_post_listener( - "type.assign_type", - "Bonsai.DumbProfile.RegenerateFromType", - profile.DumbProfileRegenerator().regenerate_from_type, - ) ifcopenshell.api.add_post_listener( "type.assign_type", diff --git a/src/bonsai/bonsai/bim/module/model/mep.py b/src/bonsai/bonsai/bim/module/model/mep.py index ab96e60b0d..cdb2538d28 100644 --- a/src/bonsai/bonsai/bim/module/model/mep.py +++ b/src/bonsai/bonsai/bim/module/model/mep.py @@ -16,13 +16,16 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import math import collections import collections.abc -import bmesh -import re import json +import math +import re +from copy import copy +from math import asin, cos, degrees, pi, radians, sin, tan + +import bmesh +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.geometry @@ -35,14 +38,13 @@ import ifcopenshell.util.representation import ifcopenshell.util.system import ifcopenshell.util.unit import numpy as np -import bonsai.core.type -import bonsai.core.root -import bonsai.core.geometry -import bonsai.tool as tool -from math import pi, degrees, radians, sin, cos, asin, tan -from copy import copy -from mathutils import Vector, Matrix from ifcopenshell.util.shape_builder import ShapeBuilder +from mathutils import Matrix, Vector + +import bonsai.core.geometry +import bonsai.core.root +import bonsai.core.type +import bonsai.tool as tool from bonsai.bim.module.model.profile import DumbProfileJoiner from bonsai.tool.cad import VTX_PRECISION diff --git a/src/bonsai/bonsai/bim/module/model/opening.py b/src/bonsai/bonsai/bim/module/model/opening.py index 2d9ca711d9..b0806ec33d 100644 --- a/src/bonsai/bonsai/bim/module/model/opening.py +++ b/src/bonsai/bonsai/bim/module/model/opening.py @@ -16,38 +16,40 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +import json +import logging +from collections import defaultdict +from collections.abc import Sequence +from math import pi, radians +from typing import Any, Optional, Union, cast + +import bmesh import bpy import gpu -import json -import bmesh -import shapely -import logging -import numpy as np import ifcopenshell import ifcopenshell.api -import ifcopenshell.api.geometry import ifcopenshell.api.feature +import ifcopenshell.api.geometry import ifcopenshell.api.root import ifcopenshell.geom -import ifcopenshell.util.shape import ifcopenshell.util.element -import ifcopenshell.util.shape_builder import ifcopenshell.util.placement import ifcopenshell.util.representation +import ifcopenshell.util.shape +import ifcopenshell.util.shape_builder import ifcopenshell.util.unit -import bonsai.tool as tool -import bonsai.core.geometry -import bonsai.bim.import_ifc as import_ifc -from collections import defaultdict -from math import pi, radians -from mathutils import Vector, Matrix, Euler -from bpy.types import Operator -from bpy.types import SpaceView3D +import numpy as np +import shapely from bpy.props import FloatProperty +from bpy.types import Operator, SpaceView3D from bpy_extras.object_utils import AddObjectHelper, object_data_add from gpu_extras.batch import batch_for_shader -from typing import Union, Optional, Any, cast -from collections.abc import Sequence +from mathutils import Euler, Matrix, Vector + +import bonsai.bim.import_ifc as import_ifc +import bonsai.core.geometry +import bonsai.tool as tool +from bonsai.bim.module.drawing.decoration import DecoratorData class FilledOpeningGenerator: @@ -132,6 +134,7 @@ class FilledOpeningGenerator: existing_opening_occurrence = self.get_existing_opening_occurrence_if_any(filling) + # CREATE THE OPENING FIRST opening = ifcopenshell.api.root.create_entity( tool.Ifc.get(), ifc_class="IfcOpeningElement", @@ -145,20 +148,69 @@ class FilledOpeningGenerator: is_si=True, ) + # NOW HANDLE REPRESENTATION + # Variables to track if we should reuse a mapped representation + reuse_mapped_representation = False + existing_mapping_source = None + representation = None + if existing_opening_occurrence: representation = ifcopenshell.util.representation.get_representation( existing_opening_occurrence, "Model", "Body", "MODEL_VIEW" ) assert representation - representation = ifcopenshell.util.representation.resolve_representation(representation) + + # Check if mapped representation - PRESERVE the mapping structure + if ( + representation.RepresentationType == "MappedRepresentation" + and len(representation.Items) == 1 + and representation.Items[0].is_a("IfcMappedItem") + ): + # Store the existing RepresentationMap to reuse it + existing_mapping_source = representation.Items[0].MappingSource + reuse_mapped_representation = True + else: + representation = ifcopenshell.util.representation.resolve_representation(representation) + + if not reuse_mapped_representation: + # Check for library template before generating from filling + template_rep = self.get_opening_template_from_type(filling) + + if template_rep: + representation = template_rep + else: + representation = self.generate_opening_from_filling( + filling, filling_obj, opening_thickness_si=opening_thickness_si + ) + + # Create mapped representation + if reuse_mapped_representation: + # Reuse the existing RepresentationMap - don't create a new one! + context = ifcopenshell.util.representation.get_context(tool.Ifc.get(), "Model", "Body", "MODEL_VIEW") + new_mapped_item = tool.Ifc.get().create_entity( + "IfcMappedItem", + MappingSource=existing_mapping_source, + MappingTarget=tool.Ifc.get().create_entity( + "IfcCartesianTransformationOperator3D", + Axis1=tool.Ifc.get().create_entity("IfcDirection", DirectionRatios=(1.0, 0.0, 0.0)), + Axis2=tool.Ifc.get().create_entity("IfcDirection", DirectionRatios=(0.0, 1.0, 0.0)), + LocalOrigin=tool.Ifc.get().create_entity("IfcCartesianPoint", Coordinates=(0.0, 0.0, 0.0)), + Scale=1.0, + Axis3=tool.Ifc.get().create_entity("IfcDirection", DirectionRatios=(0.0, 0.0, 1.0)), + ), + ) + mapped_representation = tool.Ifc.get().create_entity( + "IfcShapeRepresentation", + ContextOfItems=context, + RepresentationIdentifier="Body", + RepresentationType="MappedRepresentation", + Items=[new_mapped_item], + ) else: - representation = self.generate_opening_from_filling( - filling, filling_obj, opening_thickness_si=opening_thickness_si + mapped_representation = ifcopenshell.api.geometry.map_representation( + tool.Ifc.get(), representation=representation ) - mapped_representation = ifcopenshell.api.geometry.map_representation( - tool.Ifc.get(), representation=representation - ) ifcopenshell.api.geometry.assign_representation( tool.Ifc.get(), product=opening, representation=mapped_representation ) @@ -203,38 +255,109 @@ class FilledOpeningGenerator: voided_element = opening.VoidsElements[0].RelatingBuildingElement opening_rep = ifcopenshell.util.representation.get_representation(opening, "Model", "Body", "MODEL_VIEW") + + # ALWAYS preserve the existing opening representation (Tessellation, SweptSolid, etc.) + preserved_representation = None + if opening_rep: + if ( + opening_rep.RepresentationType == "MappedRepresentation" + and len(opening_rep.Items) == 1 + and opening_rep.Items[0].is_a("IfcMappedItem") + ): + # For mapped representations, copy the underlying representation + preserved_representation = ifcopenshell.util.element.copy_deep( + tool.Ifc.get(), + opening_rep.Items[0].MappingSource.MappedRepresentation, + exclude=["IfcGeometricRepresentationContext"], + ) + else: + # For direct representations (non-mapped), copy them too + preserved_representation = ifcopenshell.util.element.copy_deep( + tool.Ifc.get(), opening_rep, exclude=["IfcGeometricRepresentationContext"] + ) + ifcopenshell.api.geometry.unassign_representation(tool.Ifc.get(), product=opening, representation=opening_rep) ifcopenshell.api.geometry.remove_representation(tool.Ifc.get(), representation=opening_rep) existing_opening_occurrence = self.get_existing_opening_occurrence_if_any(filling) + # Priority order for choosing representation: + # 1. Existing occurrence with MappedRepresentation (preserve mapping!) + # 2. Library template with Tessellation + # 3. Preserved representation from old opening (maintain user's work) + # 4. Generate from filling (last resort) + + representation_to_use = None + reuse_mapped_representation = False + existing_mapping_source = None + if existing_opening_occurrence: representation = ifcopenshell.util.representation.get_representation( existing_opening_occurrence, "Model", "Body", "MODEL_VIEW" ) - representation = ifcopenshell.util.representation.resolve_representation(representation) - mapped_representation = ifcopenshell.api.geometry.map_representation( - tool.Ifc.get(), representation=representation - ) - ifcopenshell.api.geometry.assign_representation( - tool.Ifc.get(), product=opening, representation=mapped_representation - ) - else: + + if ( + representation + and representation.RepresentationType == "MappedRepresentation" + and len(representation.Items) == 1 + and representation.Items[0].is_a("IfcMappedItem") + ): + # PRESERVE the mapped structure - reuse the same RepresentationMap + existing_mapping_source = representation.Items[0].MappingSource + reuse_mapped_representation = True + else: + representation_to_use = ifcopenshell.util.representation.resolve_representation(representation) + + if not representation_to_use and not reuse_mapped_representation: + template_rep = self.get_opening_template_from_type(filling) + if template_rep and template_rep.RepresentationType == "Tessellation": + representation_to_use = template_rep + + if not representation_to_use and not reuse_mapped_representation and preserved_representation: + representation_to_use = preserved_representation + + if not representation_to_use and not reuse_mapped_representation: opening_obj = tool.Ifc.get_object(opening) if opening_obj: tool.Ifc.unlink(element=opening) tool.Blender.remove_data_blocks([opening_obj], remove_unused_data=True) filling_obj = tool.Ifc.get_object(filling) - representation = self.generate_opening_from_filling(filling, filling_obj) - mapped_representation = ifcopenshell.api.geometry.map_representation( - tool.Ifc.get(), representation=representation + representation_to_use = self.generate_opening_from_filling(filling, filling_obj) + + # Create the mapped representation + if reuse_mapped_representation: + # Reuse existing RepresentationMap - don't create a new one! + context = ifcopenshell.util.representation.get_context(tool.Ifc.get(), "Model", "Body", "MODEL_VIEW") + new_mapped_item = tool.Ifc.get().create_entity( + "IfcMappedItem", + MappingSource=existing_mapping_source, + MappingTarget=tool.Ifc.get().create_entity( + "IfcCartesianTransformationOperator3D", + Axis1=tool.Ifc.get().create_entity("IfcDirection", DirectionRatios=(1.0, 0.0, 0.0)), + Axis2=tool.Ifc.get().create_entity("IfcDirection", DirectionRatios=(0.0, 1.0, 0.0)), + LocalOrigin=tool.Ifc.get().create_entity("IfcCartesianPoint", Coordinates=(0.0, 0.0, 0.0)), + Scale=1.0, + Axis3=tool.Ifc.get().create_entity("IfcDirection", DirectionRatios=(0.0, 0.0, 1.0)), + ), ) - ifcopenshell.api.geometry.assign_representation( - tool.Ifc.get(), product=opening, representation=mapped_representation + mapped_representation = tool.Ifc.get().create_entity( + "IfcShapeRepresentation", + ContextOfItems=context, + RepresentationIdentifier="Body", + RepresentationType="MappedRepresentation", + Items=[new_mapped_item], + ) + else: + mapped_representation = ifcopenshell.api.geometry.map_representation( + tool.Ifc.get(), representation=representation_to_use ) - # update voided object representation or all it's parts if it's an aggregate + ifcopenshell.api.geometry.assign_representation( + tool.Ifc.get(), product=opening, representation=mapped_representation + ) + + # update voided object representation... voided_elements = ifcopenshell.util.element.get_parts(voided_element) or [voided_element] for voided_element in voided_elements: voided_obj = tool.Ifc.get_object(voided_element) @@ -248,6 +371,36 @@ class FilledOpeningGenerator: representation=representation, ) + def get_opening_template_from_type( + self, filling: ifcopenshell.entity_instance + ) -> Union[ifcopenshell.entity_instance, None]: + """ + Check if the filling's type has a stored opening template from library import. + """ + element_type = ifcopenshell.util.element.get_type(filling) + + if not element_type: + return None + + desc = element_type.Description + + if not desc or "||BonsaiOpeningTemplate:" not in desc: + return None + + # Extract template ID + marker = desc.split("||BonsaiOpeningTemplate:")[-1] + template_id = int(marker.split("||")[0]) + + try: + template_rep = tool.Ifc.get().by_id(template_id) + # Make a copy so we don't reuse the same representation instance + copied = ifcopenshell.util.element.copy_deep( + tool.Ifc.get(), template_rep, exclude=["IfcGeometricRepresentationContext"] + ) + return copied + except: + return None + def generate_opening_from_filling( self, filling: ifcopenshell.entity_instance, @@ -415,6 +568,12 @@ class RecalculateFill(bpy.types.Operator, tool.Ifc.Operator): obj=building_obj, representation=representation, ) + + # Refresh cut decorator + DecoratorData.cut_cache.clear() + DecoratorData.fill_cache.clear() + DecoratorData.slice_cache.clear() + return {"FINISHED"} diff --git a/src/bonsai/bonsai/bim/module/model/polyline.py b/src/bonsai/bonsai/bim/module/model/polyline.py index edd0b8981a..de169796f6 100644 --- a/src/bonsai/bonsai/bim/module/model/polyline.py +++ b/src/bonsai/bonsai/bim/module/model/polyline.py @@ -17,579 +17,31 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy + import copy import math +from typing import Any, Literal, Optional, Union + import bmesh +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.geom -import ifcopenshell.util.unit import ifcopenshell.util.element import ifcopenshell.util.placement import ifcopenshell.util.representation import ifcopenshell.util.type +import ifcopenshell.util.unit import mathutils.geometry -import bonsai.core.type -import bonsai.core.root +from lark import Lark, Transformer +from mathutils import Vector + import bonsai.core.geometry import bonsai.core.model as core +import bonsai.core.root +import bonsai.core.type import bonsai.tool as tool -from math import pi, sin, cos, degrees, tan, radians -from mathutils import Vector, Matrix, Quaternion -from bonsai.bim.module.model.opening import FilledOpeningGenerator from bonsai.bim.module.model.decorator import PolylineDecorator -from bonsai.bim.module.geometry.decorator import ItemDecorator -from typing import Optional, Union, Literal, Any -from lark import Lark, Transformer - - -def create_bmesh_from_vertices(vertices, is_closed=False): - bm = bmesh.new() - - new_verts = [bm.verts.new(v) for v in vertices] - if is_closed: - new_edges = [bm.edges.new((new_verts[i], new_verts[i + 1])) for i in range(len(new_verts) - 1)] - new_edges.append( - bm.edges.new((new_verts[-1], new_verts[0])) - ) # Add an edge between the last an first point to make it closed. - else: - new_edges = [bm.edges.new((new_verts[i], new_verts[i + 1])) for i in range(len(new_verts) - 1)] - - bm.verts.index_update() - bm.edges.index_update() - return bm - - -def get_wall_preview_data(context, relating_type): - # Get properties from object type - model_props = tool.Model.get_model_props() - direction_sense = model_props.direction_sense - direction = 1 - if direction_sense == "NEGATIVE": - direction = -1 - - layers = tool.Model.get_material_layer_parameters(relating_type) - if not layers["thickness"]: - return - thickness = layers["thickness"] - thickness *= direction - - offset_type = model_props.offset_type_vertical - unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) - offset = model_props.offset * unit_scale - - height = float(model_props.extrusion_depth) - rl = float(model_props.rl1) - x_angle = float(model_props.x_angle) - if x_angle > radians(90) or x_angle < radians(-90): - height *= -1 - angle_distance = height * tan(x_angle) - thickness *= 1 / cos(x_angle) - - data = {} - data["verts"] = [] - - # Verts - polyline_vertices = [] - polyline_props = tool.Model.get_polyline_props() - polyline_data = polyline_props.insertion_polyline - polyline_points = polyline_data[0].polyline_points if polyline_data else [] - if len(polyline_points) < 2: - data = [] - return - for point in polyline_points: - polyline_vertices.append(Vector((point.x, point.y, point.z))) - - is_closed = False - if ( - polyline_vertices[0].x == polyline_vertices[-1].x - and polyline_vertices[0].y == polyline_vertices[-1].y - and polyline_vertices[0].z == polyline_vertices[-1].z - ): - is_closed = True - polyline_vertices.pop(-1) # Remove the last point. The edges are going to inform that the shape is closed. - - bm_base = create_bmesh_from_vertices(polyline_vertices, is_closed) - base_vertices = tool.Cad.offset_edges(bm_base, offset) - offset_base_verts = tool.Cad.offset_edges(bm_base, thickness + offset) - top_vertices = tool.Cad.offset_edges(bm_base, angle_distance + offset) - offset_top_verts = tool.Cad.offset_edges(bm_base, angle_distance + thickness + offset) - if is_closed: - base_vertices.append(base_vertices[0]) - offset_base_verts.append(offset_base_verts[0]) - top_vertices.append(top_vertices[0]) - offset_top_verts.append(offset_top_verts[0]) - - if offset_base_verts is not None: - for v in base_vertices: - data["verts"].append((v.co.x, v.co.y, v.co.z + rl)) - - for v in offset_base_verts[::-1]: - data["verts"].append((v.co.x, v.co.y, v.co.z + rl)) - - for v in top_vertices: - data["verts"].append((v.co.x, v.co.y, v.co.z + rl + height)) - - for v in offset_top_verts[::-1]: - data["verts"].append((v.co.x, v.co.y, v.co.z + rl + height)) - - bm_base.free() - - # Edges and Tris - points = [] - side_edges_1 = [] - side_edges_2 = [] - base_edges = [] - - for i in range(len(data["verts"])): - points.append(Vector(data["verts"][i])) - - n = len(points) // 2 - bottom_side_1 = [[i, (i + 1) % (n)] for i in range((n - 1) // 2)] - bottom_side_2 = [[i, (i + 1) % (n)] for i in range(n // 2, n - 1)] - bottom_connections = [[i, n - i - 1] for i in range(n // 2)] - bottom_loop = bottom_connections + bottom_side_1 + bottom_side_2 - side_edges_1.extend(bottom_side_1) - side_edges_2.extend(bottom_side_2) - base_edges.extend(bottom_loop) - - upper_side_1 = [[i + n for i in edges] for edges in bottom_side_1] - upper_side_2 = [[i + n for i in edges] for edges in bottom_side_2] - upper_loop = [[i + n for i in edges] for edges in bottom_loop] - side_edges_1.extend(upper_side_1) - side_edges_2.extend(upper_side_2) - base_edges.extend(upper_loop) - - loops = [side_edges_1, side_edges_2, base_edges] - - data["edges"] = [] - data["tris"] = [] - for i, group in enumerate(loops): - bm = bmesh.new() - - new_verts = [bm.verts.new(v) for v in points] - new_edges = [bm.edges.new((new_verts[e[0]], new_verts[e[1]])) for e in group] - - bm.verts.index_update() - bm.edges.index_update() - - if i == 2: - new_faces = bmesh.ops.contextual_create(bm, geom=bm.edges) - new_faces = bmesh.ops.bridge_loops(bm, edges=bm.edges, use_pairs=True, use_cyclic=True) - - bm.verts.index_update() - bm.edges.index_update() - edges = [[v.index for v in e.verts] for e in bm.edges] - tris = [[l.vert.index for l in loop] for loop in bm.calc_loop_triangles()] - data["edges"].extend(edges) - data["tris"].extend(tris) - - data["edges"] = list(set(tuple(e) for e in data["edges"])) - data["tris"] = list(set(tuple(t) for t in data["tris"])) - - return data - - -def get_slab_preview_data(context, relating_type): - model_props = tool.Model.get_model_props() - x_angle = 0 if tool.Cad.is_x(model_props.x_angle, 0, tolerance=0.001) else model_props.x_angle - direction_sense = model_props.direction_sense - direction = 1 - if direction_sense == "NEGATIVE": - direction = -1 - - layers = tool.Model.get_material_layer_parameters(relating_type) - if not layers["thickness"]: - return - thickness = layers["thickness"] * abs(1 / cos(x_angle)) - thickness *= direction - - offset_type = model_props.offset_type_horizontal - unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) - offset = model_props.offset * abs(1 / cos(x_angle)) * unit_scale - - data = {} - data["verts"] = [] - # Verts - polyline_vertices = [] - polyline_props = tool.Model.get_polyline_props() - polyline_data = polyline_props.insertion_polyline - polyline_points = polyline_data[0].polyline_points if polyline_data else [] - if len(polyline_points) < 3: - data = [] - return - for point in polyline_points: - polyline_vertices.append(Vector((point.x, point.y, point.z))) - if x_angle: - # Get vertices relative to the first polyline point as origin - local_vertices = [v - Vector(polyline_vertices[0]) for v in polyline_vertices] - # Make the transformation relative to the x_angle - transformed_vertices = [Vector((v.x, v.y * (1 / cos(x_angle)), v.z)) for v in local_vertices] - # Convert back to world origin - polyline_vertices = [v + Vector(polyline_vertices[0]) for v in transformed_vertices] - if offset != 0: - polyline_vertices = [v + Vector((0, 0, offset)) for v in polyline_vertices] - is_closed = True - if ( - polyline_vertices[0].x == polyline_vertices[-1].x - and polyline_vertices[0].y == polyline_vertices[-1].y - and polyline_vertices[0].z == polyline_vertices[-1].z - ): - polyline_vertices.pop(-1) # Remove the last point. The edges are going to inform that the shape is closed. - bm = create_bmesh_from_vertices(polyline_vertices, is_closed) - bm.verts.ensure_lookup_table() - if x_angle: - rot_mat = Matrix.Rotation(x_angle, 3, "X") - if abs(x_angle) > (pi / 2): - rot_mat = rot_mat @ Matrix.Scale(-1, 3, (0, 1, 0)) - bmesh.ops.rotate(bm, cent=Vector(bm.verts[0].co), verts=bm.verts, matrix=rot_mat) - new_faces = bmesh.ops.contextual_create(bm, geom=bm.edges) - new_faces = bmesh.ops.extrude_face_region(bm, geom=bm.edges[:] + bm.faces[:]) - new_verts = [e for e in new_faces["geom"] if isinstance(e, bmesh.types.BMVert)] - new_faces = bmesh.ops.translate(bm, verts=new_verts, vec=(0.0, 0.0, thickness)) - bm.verts.index_update() - bm.edges.index_update() - verts = [tuple(v.co) for v in bm.verts] - edges = [[v.index for v in e.verts] for e in bm.edges] - tris = [[loop.vert.index for loop in triangles] for triangles in bm.calc_loop_triangles()] - data["verts"] = verts - data["edges"] = edges - data["tris"] = tris - return data - - -def get_vertical_profile_preview_data( - context: bpy.types.Context, relating_type: ifcopenshell.entity_instance -) -> dict[str, Any]: - material = ifcopenshell.util.element.get_material(relating_type) - try: - profile = material.MaterialProfiles[0].Profile - except: - return {} - - model_props = tool.Model.get_model_props() - extrusion_depth = model_props.extrusion_depth - cardinal_point = model_props.cardinal_point - rot_mat = Quaternion() - if relating_type.is_a("IfcBeamType"): - y_rot = Quaternion((0.0, 1.0, 0.0), radians(90)) - z_rot = Quaternion((0.0, 0.0, 1.0), radians(90)) - rot_mat = y_rot @ z_rot - # Get profile data - settings = ifcopenshell.geom.settings() - settings.set("dimensionality", ifcopenshell.ifcopenshell_wrapper.CURVES_SURFACES_AND_SOLIDS) - shape = ifcopenshell.geom.create_shape(settings, profile) - - verts = shape.verts - if not verts: - raise RuntimeError(f"Profile shape has no vertices, it probably is invalid: '{profile}'.") - - edges = shape.edges - - grouped_verts = [[verts[i], verts[i + 1], 0] for i in range(0, len(verts), 3)] - grouped_edges = [[edges[i], edges[i + 1]] for i in range(0, len(edges), 2)] - - # Create offsets based on cardinal point - min_x = min(v[0] for v in grouped_verts) - max_x = max(v[0] for v in grouped_verts) - min_y = min(v[1] for v in grouped_verts) - max_y = max(v[1] for v in grouped_verts) - - x_offset = (max_x - min_x) / 2 - y_offset = (max_y - min_y) / 2 - - match cardinal_point: - case "1": - grouped_verts = [(v[0] - x_offset, v[1] + y_offset, v[2]) for v in grouped_verts] - case "2": - grouped_verts = [(v[0], v[1] + y_offset, v[2]) for v in grouped_verts] - case "3": - grouped_verts = [(v[0] + x_offset, v[1] + y_offset, v[2]) for v in grouped_verts] - case "4": - grouped_verts = [(v[0] - x_offset, v[1], v[2]) for v in grouped_verts] - case "5": - grouped_verts = [(v[0], v[1], v[2]) for v in grouped_verts] - case "6": - grouped_verts = [(v[0] + x_offset, v[1], v[2]) for v in grouped_verts] - case "7": - grouped_verts = [(v[0] - x_offset, v[1] - y_offset, v[2]) for v in grouped_verts] - case "8": - grouped_verts = [(v[0], v[1] - y_offset, v[2]) for v in grouped_verts] - case "9": - grouped_verts = [(v[0] + x_offset, v[1] - y_offset, v[2]) for v in grouped_verts] - - # Create extrusion bmesh - bm = bmesh.new() - - grouped_verts.append(grouped_verts[0]) # Close profile - new_verts = [bm.verts.new(v) for v in grouped_verts] - new_edges = [bm.edges.new((new_verts[i], new_verts[i + 1])) for i in range(len(grouped_verts) - 1)] - - bm.verts.index_update() - bm.edges.index_update() - - bmesh.ops.remove_doubles(bm, verts=bm.verts, dist=0.001) - - new_faces = bmesh.ops.contextual_create(bm, geom=bm.edges) - - new_faces = bmesh.ops.extrude_face_region(bm, geom=bm.faces, use_dissolve_ortho_edges=True) - new_verts = [e for e in new_faces["geom"] if isinstance(e, bmesh.types.BMVert)] - new_faces = bmesh.ops.translate(bm, verts=new_verts, vec=(0.0, 0.0, extrusion_depth)) - - bm.verts.index_update() - bm.edges.index_update() - tris = [[loop.vert.index for loop in triangles] for triangles in bm.calc_loop_triangles()] - - # Calculate rotation, mouse position, angle and cardinal point - polyline_props = tool.Model.get_polyline_props() - snap_prop = polyline_props.snap_mouse_point[0] - mouse_point = Vector((snap_prop.x, snap_prop.y, snap_prop.z)) - data = {} - - verts = [tuple(v.co) for v in bm.verts] - verts = [tuple(rot_mat @ Vector(v)) for v in verts] - verts = [tuple(Vector(v) + mouse_point) for v in verts] - min_z = min(v.co.z for v in bm.verts) - max_z = max(v.co.z for v in bm.verts) - # Add axis verts - verts.append(tuple(mouse_point)) - verts.append(tuple(mouse_point + Vector((0, 0, max_z)))) - # Add only profile edges - edges = [] - for edge in bm.edges: - if (edge.verts[0].co.z == min_z and edge.verts[1].co.z == min_z) or ( - edge.verts[0].co.z == max_z and edge.verts[1].co.z == max_z - ): - edges.append(edge) - # Add axis edge - edges = [(edge.verts[0].index, edge.verts[1].index) for edge in edges] - edges.append((len(verts) - 1, len(verts) - 2)) - data["verts"] = verts - data["edges"] = edges - data["tris"] = tris - - bm.free() - - return data - - -def get_horizontal_profile_preview_data( - context: bpy.types.Context, relating_type: ifcopenshell.entity_instance -) -> dict[str, Any]: - material = ifcopenshell.util.element.get_material(relating_type) - try: - profile_curve = material.MaterialProfiles[0].Profile - except: - return {} - - model_props = tool.Model.get_model_props() - cardinal_point = model_props.cardinal_point - - polyline_verts = [] - polyline_props = tool.Model.get_polyline_props() - polyline_data = polyline_props.insertion_polyline - polyline_points = polyline_data[0].polyline_points if polyline_data else [] - if len(polyline_points) < 2: - return {} - for point in polyline_points: - polyline_verts.append(Vector((point.x, point.y, point.z))) - polyline_edges = [(i, i + 1) for i in range(len(polyline_verts) - 1)] - - # Get profile shape - settings = ifcopenshell.geom.settings() - settings.set("dimensionality", ifcopenshell.ifcopenshell_wrapper.CURVES_SURFACES_AND_SOLIDS) - shape = ifcopenshell.geom.create_shape(settings, profile_curve) - - verts = shape.verts - if not verts: - raise RuntimeError(f"Profile shape has no vertices, it probably is invalid: '{profile_curve}'.") - - edges = shape.edges - - grouped_verts = [[verts[i], verts[i + 1], 0] for i in range(0, len(verts), 3)] - grouped_edges = [[edges[i], edges[i + 1]] for i in range(0, len(edges), 2)] - - # Create offsets based on cardinal point - min_x = min(v[0] for v in grouped_verts) - max_x = max(v[0] for v in grouped_verts) - min_y = min(v[1] for v in grouped_verts) - max_y = max(v[1] for v in grouped_verts) - - x_offset = (max_x - min_x) / 2 - y_offset = (max_y - min_y) / 2 - - match cardinal_point: - case "1": - grouped_verts = [(v[0] - x_offset, v[1] + y_offset, v[2]) for v in grouped_verts] - case "2": - grouped_verts = [(v[0], v[1] + y_offset, v[2]) for v in grouped_verts] - case "3": - grouped_verts = [(v[0] + x_offset, v[1] + y_offset, v[2]) for v in grouped_verts] - case "4": - grouped_verts = [(v[0] - x_offset, v[1], v[2]) for v in grouped_verts] - case "5": - grouped_verts = [(v[0], v[1], v[2]) for v in grouped_verts] - case "6": - grouped_verts = [(v[0] + x_offset, v[1], v[2]) for v in grouped_verts] - case "7": - grouped_verts = [(v[0] - x_offset, v[1] - y_offset, v[2]) for v in grouped_verts] - case "8": - grouped_verts = [(v[0], v[1] - y_offset, v[2]) for v in grouped_verts] - case "9": - grouped_verts = [(v[0] + x_offset, v[1] - y_offset, v[2]) for v in grouped_verts] - - data: dict[str, Any] = {} - data["verts"] = [] - data["edges"] = [] - data["tris"] = [] - - grouped_verts = [(v) for v in grouped_verts] - - all_bm = bmesh.new() - for i in range(len(polyline_verts) - 1): - mesh = bpy.data.meshes.new("TempMesh") - # Create the initial mesh from the profile verts - bm = create_bmesh_from_vertices(grouped_verts, is_closed=True) - bm.verts.ensure_lookup_table() - # Creates the clipping plane formed by two segments. - # The first one is for the profile start, based on the current and previous segment of the polyline. - # The second is for the profile end, based on the current and the next segment. - if i == 0: - d = (polyline_verts[i + 1] - polyline_verts[i]).normalized() - clip_start = d - else: - d1 = (polyline_verts[i] - polyline_verts[i - 1]).normalized() - d2 = (polyline_verts[i] - polyline_verts[i + 1]).normalized() - clip_start = (d1 - d2).normalized() - - if i == len(polyline_verts) - 2: - d = (polyline_verts[i + 1] - polyline_verts[i]).normalized() - clip_end = d - else: - d1 = (polyline_verts[i + 1] - polyline_verts[i]).normalized() - d2 = (polyline_verts[i + 1] - polyline_verts[i + 2]).normalized() - clip_end = (d1 - d2).normalized() - - # Rotates the profile face to the right direction - direction = polyline_verts[i + 1] - polyline_verts[i] - position = polyline_verts[i] - rotation_matrix = direction.to_track_quat("Z", "Y").to_matrix().to_4x4() - bmesh.ops.transform(bm, verts=bm.verts, matrix=rotation_matrix) - bmesh.ops.translate(bm, verts=bm.verts, vec=position) - bmesh.ops.translate(bm, verts=bm.verts, vec=-direction) - - # Extrude and move the new face - last_face = bmesh.ops.extrude_face_region(bm, geom=bm.edges[:] + bm.faces[:]) - new_verts = [e for e in last_face["geom"] if isinstance(e, bmesh.types.BMVert)] - bmesh.ops.translate(bm, verts=new_verts, vec=direction * 3) - # Apply the cutting planes - cut = bmesh.ops.bisect_plane( - bm, - geom=bm.verts[:] + bm.edges[:] + bm.faces[:], - plane_co=polyline_verts[i], - plane_no=clip_start, - clear_inner=True, - ) - bm.verts.index_update() - bm.edges.index_update() - cut = bmesh.ops.bisect_plane( - bm, - geom=bm.verts[:] + bm.edges[:] + bm.faces[:], - plane_co=polyline_verts[i + 1], - plane_no=clip_end, - clear_outer=True, - ) - - bm.to_mesh(mesh) - bm.free() - mesh.update() - all_bm.from_mesh(mesh) - bpy.data.meshes.remove(bpy.data.meshes["TempMesh"]) - - # It's necessary to add the mesh to an object to get the expected result. - mesh = bpy.data.meshes.new("TempMesh2") - all_bm.to_mesh(mesh) - all_bm.free() - obj = bpy.data.objects.new("TempObj", mesh) - bm = bmesh.new() - bm.from_mesh(obj.data) - bpy.data.meshes.remove(bpy.data.meshes["TempMesh2"]) - - verts = [tuple(v.co) for v in bm.verts] - edges = [[v.index for v in e.verts] for e in bm.edges] - tris = [[loop.vert.index for loop in triangles] for triangles in bm.calc_loop_triangles()] - data["verts"] = verts - data["edges"] = edges - data["tris"] = tris - bm.free() - return data - - -def get_generic_product_preview_data(context, relating_type): - model_props = tool.Model.get_model_props() - if relating_type.is_a("IfcDoorType"): - rl = float(model_props.rl1) - elif relating_type.is_a("IfcWindowType"): - rl = float(model_props.rl2) - else: - rl = 0 - polyline_props = tool.Model.get_polyline_props() - snap_prop = polyline_props.snap_mouse_point[0] - default_container_elevation = tool.Root.get_default_container_elevation() - mouse_point = Vector((snap_prop.x, snap_prop.y, default_container_elevation)) - snap_obj = bpy.data.objects.get(snap_prop.snap_object) - snap_element = tool.Ifc.get_entity(snap_obj) - rot_mat = Quaternion() - if relating_type.is_a() in ["IfcDoorType", "IfcWindowType"] and snap_element and snap_element.is_a("IfcWall"): - layers = tool.Model.get_material_layer_parameters(snap_element) - axes = tool.Model.get_wall_axis(snap_obj, layers=layers) - axis_base = axes["base"] - axis_side = axes["side"] - point_on_base_axis = tool.Cad.point_on_edge(mouse_point, axis_base) - point_on_side_axis = tool.Cad.point_on_edge(mouse_point, axis_side) - if (point_on_base_axis - mouse_point).length_squared <= (point_on_side_axis - mouse_point).length_squared: - # mouse is snapped to the base axis, the preview looks exactly like the placed door / window - rot_mat = snap_obj.matrix_world.to_quaternion() - else: - # mouse is snapped to the side axis, the preview is inverted, rotate it now and correct x position later - rot_mat = snap_obj.matrix_world.to_quaternion() @ Quaternion(Vector((0, 0, 1)), radians(180)) - - mouse_point.z = snap_obj.matrix_world.translation.z - - if snap_element and (container := ifcopenshell.util.element.get_container(snap_element)): - container_obj = tool.Ifc.get_object(container) - mouse_point.z = container_obj.location.z - - obj_type = tool.Ifc.get_object(relating_type) - - subcontexts = tool.Drawing.get_active_drawing_subcontexts() - if not subcontexts: - subcontexts = [("Model", "Body", "MODEL_VIEW")] - - active_context = tool.Geometry.get_active_representation_context(obj_type) - active_context_params = tool.Geometry.get_subcontext_parameters(active_context) - for subcontext in subcontexts: - if subcontext == active_context_params: - break - - representation = ifcopenshell.util.representation.get_representation(relating_type, *subcontext) - if representation: - bonsai.core.geometry.switch_representation( - tool.Ifc, - tool.Geometry, - obj_type, - representation, - ) - context.view_layer.update() - break - - if obj_type.data: - data = ItemDecorator.get_obj_data(obj_type) - data["verts"] = [tuple(obj_type.matrix_world.inverted() @ Vector(v)) for v in data["verts"]] - data["verts"] = [tuple(rot_mat @ (Vector((v[0], v[1], (v[2] + rl)))) + mouse_point) for v in data["verts"]] - - return data class PolylineOperator: @@ -987,37 +439,6 @@ class PolylineOperator: tool.Blender.update_viewport() return {"RUNNING_MODAL"} - def get_product_preview_data(self, context: bpy.types.Context, relating_type: ifcopenshell.entity_instance) -> None: - if tool.Model.get_usage_type(relating_type) == "PROFILE": - if relating_type.is_a() in {"IfcColumnType", "IfcPileType"}: - data = get_vertical_profile_preview_data(context, relating_type) - else: - data = get_horizontal_profile_preview_data(context, relating_type) - elif tool.Model.get_usage_type(relating_type) == "LAYER2": - data = get_wall_preview_data(context, relating_type) - elif tool.Model.get_usage_type(relating_type) == "LAYER3": - data = get_slab_preview_data(context, relating_type) - else: - data = get_generic_product_preview_data(context, relating_type) - - # Update properties so it can be used by the decorator - props = tool.Model.get_product_preview_props() - props.verts.clear() - props.edges.clear() - props.tris.clear() - if not data: - return - - for vert in data["verts"]: - v = props.verts.add() - v.value_3d = vert - for edge in data["edges"]: - e = props.edges.add() - e.value_2d = edge - for tri in data["tris"]: - t = props.tris.add() - t.value_3d = tri - def set_offset(self, context: bpy.types.Context, relating_type: ifcopenshell.entity_instance) -> None: props = tool.Model.get_model_props() direction_sense = props.direction_sense diff --git a/src/bonsai/bonsai/bim/module/model/product.py b/src/bonsai/bonsai/bim/module/model/product.py index c08ff9131b..012cba4889 100644 --- a/src/bonsai/bonsai/bim/module/model/product.py +++ b/src/bonsai/bonsai/bim/module/model/product.py @@ -18,38 +18,41 @@ # # pyright: reportUnnecessaryTypeIgnoreComment=error -import bpy +import json +from typing import TYPE_CHECKING, Any, Literal, Optional, Union, assert_never, get_args + import bmesh -import mathutils -import numpy as np +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.geometry import ifcopenshell.api.system -import ifcopenshell.util.system import ifcopenshell.util.element import ifcopenshell.util.placement import ifcopenshell.util.representation import ifcopenshell.util.shape_builder +import ifcopenshell.util.system import ifcopenshell.util.type import ifcopenshell.util.unit -import bonsai.tool as tool +import mathutils +import numpy as np +from bpy_extras.object_utils import AddObjectHelper +from mathutils import Matrix, Vector + import bonsai.core.aggregate -import bonsai.core.type -import bonsai.core.root import bonsai.core.geometry import bonsai.core.model as core +import bonsai.core.root import bonsai.core.spatial -from . import wall, slab, profile, mep -from bonsai.bim.ifc import IfcStore +import bonsai.core.type +import bonsai.tool as tool from bonsai.bim.helper import get_enum_items +from bonsai.bim.ifc import IfcStore from bonsai.bim.module.model.data import AuthoringData -from bonsai.bim.module.model.polyline import PolylineOperator from bonsai.bim.module.model.decorator import PolylineDecorator, ProductDecorator -from mathutils import Vector, Matrix -from bpy_extras.object_utils import AddObjectHelper -import json -from typing import Any, Union, Optional, Literal, get_args, assert_never, TYPE_CHECKING +from bonsai.bim.module.model.polyline import PolylineOperator + +from . import mep, profile, slab, wall class AddEmptyType(bpy.types.Operator, AddObjectHelper): @@ -249,8 +252,6 @@ class DrawOccurrence(bpy.types.Operator, PolylineOperator, tool.Ifc.Operator): if event.value == "RELEASE" and event.type == "LEFTMOUSE": self.create_occurrence(context, event) - self.get_product_preview_data(context, self.relating_type) - cancel = self.handle_cancelation(context, event) if cancel is not None: ProductDecorator.uninstall() @@ -379,7 +380,7 @@ class AddOccurrence(bpy.types.Operator, tool.Ifc.Operator): ifc_class=instance_class, should_add_representation=False, ) - bonsai.core.type.assign_type(tool.Ifc, tool.Type, element=element, type=relating_type) + bonsai.core.type.assign_type(tool.Ifc, tool.Model, tool.Type, element=element, type=relating_type) rprops = tool.Root.get_root_props() ifc_context = None @@ -432,7 +433,7 @@ class AddOccurrence(bpy.types.Operator, tool.Ifc.Operator): ) element = tool.Ifc.get_entity(obj) - bonsai.core.type.assign_type(tool.Ifc, tool.Type, element=element, type=relating_type) + bonsai.core.type.assign_type(tool.Ifc, tool.Model, tool.Type, element=element, type=relating_type) if existing_context: representation = ifcopenshell.util.representation.get_representation(element, existing_context) @@ -469,7 +470,7 @@ class AddOccurrence(bpy.types.Operator, tool.Ifc.Operator): parent = ifcopenshell.util.element.get_container(building_element) if parent: bonsai.core.spatial.assign_container( - tool.Ifc, tool.Collector, tool.Spatial, container=parent, element_obj=obj + tool.Ifc, tool.Collector, tool.Spatial, container=parent, objs=[obj] ) # set occurrences properties for the types defined with modifiers @@ -492,7 +493,7 @@ class AddOccurrence(bpy.types.Operator, tool.Ifc.Operator): else: if self.container_obj: bonsai.core.spatial.assign_container( - tool.Ifc, tool.Collector, tool.Spatial, container=self.container, element_obj=obj + tool.Ifc, tool.Collector, tool.Spatial, container=self.container, objs=[obj] ) if props.rl_mode == "BOTTOM": obj.location.z = self.container_obj.location.z - tool.Blender.get_object_bounding_box(obj)["min_z"] diff --git a/src/bonsai/bonsai/bim/module/model/profile.py b/src/bonsai/bonsai/bim/module/model/profile.py index ecc1b86163..572898c484 100644 --- a/src/bonsai/bonsai/bim/module/model/profile.py +++ b/src/bonsai/bonsai/bim/module/model/profile.py @@ -16,32 +16,37 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import copy +from math import atan2, degrees, pi +from typing import Any, Literal, Optional, Union + import bmesh -import mathutils.geometry +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.geometry import ifcopenshell.api.pset import ifcopenshell.api.type -import ifcopenshell.util.type -import ifcopenshell.util.unit import ifcopenshell.util.element import ifcopenshell.util.placement import ifcopenshell.util.representation -import bonsai.tool as tool -import bonsai.core.type +import ifcopenshell.util.type +import ifcopenshell.util.unit +import mathutils.geometry +from mathutils import Matrix, Vector + import bonsai.core.geometry import bonsai.core.material import bonsai.core.root +import bonsai.core.type +import bonsai.tool as tool from bonsai.bim.ifc import IfcStore -from math import pi, degrees, atan2 -from mathutils import Vector, Matrix -from bonsai.bim.module.model.decorator import ProfileDecorator, PolylineDecorator, ProductDecorator +from bonsai.bim.module.model.decorator import ( + PolylineDecorator, + ProductDecorator, + ProfileDecorator, +) from bonsai.bim.module.model.polyline import PolylineOperator -from typing import Union, Any, Optional, Literal - ProfileFrom2PointsReturn = Union[dict[str, Any], None] @@ -262,22 +267,6 @@ class DumbProfileRegenerator: results.extend(inverse.RelatedObjects) return results - def regenerate_from_type(self, usecase_path, ifc_file, settings): - relating_type = settings["relating_type"] - - new_material = ifcopenshell.util.element.get_material(relating_type) - if not new_material or not new_material.is_a("IfcMaterialProfileSet"): - return - - for related_object in settings["related_objects"]: - self._regenerate_from_type(related_object) - - def _regenerate_from_type(self, related_object: ifcopenshell.entity_instance) -> None: - obj = tool.Ifc.get_object(related_object) - if not obj or not tool.Geometry.get_active_representation(obj): - return - DumbProfileRecalculator().recalculate([obj]) - class ExtendProfile(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.extend_profile" @@ -1142,8 +1131,13 @@ class DrawPolylineProfile(bpy.types.Operator, PolylineOperator, tool.Ifc.Operato MEPGenerator().setup_ports(profile1["obj"]) else: + connect_IfcFlowSegments = tool.Ifc.get_entity(profiles[0]["obj"]).is_a("IfcFlowSegment") for profile1, profile2 in zip(profiles[:-1], profiles[1:]): DumbProfileJoiner().join_V(profile2["obj"], profile1["obj"]) + if connect_IfcFlowSegments: + bpy.ops.bim.mep_connect_elements( + obj1_name=profile1["obj"].name, obj2_name=profile2["obj"].name + ) def modal(self, context, event): return IfcStore.execute_ifc_operator(self, context, event, method="MODAL") @@ -1189,11 +1183,8 @@ class DrawPolylineProfile(bpy.types.Operator, PolylineOperator, tool.Ifc.Operato return {"FINISHED"} self.handle_keyboard_input(context, event) - self.handle_inserting_polyline(context, event) - self.get_product_preview_data(context, self.relating_type) - cancel = self.handle_cancelation(context, event) if cancel is not None: ProductDecorator.uninstall() diff --git a/src/bonsai/bonsai/bim/module/model/prop.py b/src/bonsai/bonsai/bim/module/model/prop.py index bea28085d5..ec79a49196 100644 --- a/src/bonsai/bonsai/bim/module/model/prop.py +++ b/src/bonsai/bonsai/bim/module/model/prop.py @@ -16,20 +16,31 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +import math +from collections.abc import Callable +from math import pi, radians +from typing import TYPE_CHECKING, Any, Literal, Optional, Union, get_args + import bpy import ifcopenshell import ifcopenshell.util.element +from bpy.types import NodeTree, PropertyGroup +from mathutils import Vector + import bonsai.tool as tool -import math -from bonsai.bim.prop import ObjProperty +from bonsai.bim.module.drawing.decoration import CutDecorator from bonsai.bim.module.model.data import AuthoringData -from bpy.types import PropertyGroup, NodeTree -from math import pi, radians -from bonsai.bim.module.model.decorator import WallAxisDecorator, SlabDirectionDecorator, BoundingBoxDecorator +from bonsai.bim.module.model.decorator import ( + BoundingBoxDecorator, + SlabDirectionDecorator, + WallAxisDecorator, +) from bonsai.bim.module.model.door import update_door_modifier_bmesh from bonsai.bim.module.model.window import update_window_modifier_bmesh -from bonsai.bim.module.drawing.decoration import CutDecorator -from typing import TYPE_CHECKING, Literal, get_args, Union, get_args, Any, Optional +from bonsai.bim.prop import ObjProperty + +if TYPE_CHECKING: + import sverchok.node_tree def get_ifc_class(self: "BIMModelProperties", context: bpy.types.Context) -> list[tuple[str, str, str]]: @@ -152,6 +163,54 @@ def update_window(self: "BIMWindowProperties", context: bpy.types.Context) -> No update_window_modifier_bmesh(context) +# Lazy-loaded module references for parametric element updates +# Using module-level lazy loading avoids circular imports and repeated import overhead +_updater_cache: dict[str, Callable] = {} + + +def _get_updater(module_name: str, func_name: str) -> Callable: + """Lazy-load an updater function to avoid circular imports. + + Args: + module_name: Module name within bonsai.bim.module.model (e.g., "stair") + func_name: Function name to import (e.g., "regenerate_stair_mesh") + + Returns: + The imported function, cached for subsequent calls. + """ + cache_key = f"{module_name}.{func_name}" + if cache_key not in _updater_cache: + import importlib + + module = importlib.import_module(f"bonsai.bim.module.model.{module_name}") + _updater_cache[cache_key] = getattr(module, func_name) + return _updater_cache[cache_key] + + +def update_stair(self: "BIMStairProperties", context: bpy.types.Context) -> None: + """Regenerate stair mesh when property changes.""" + obj = context.active_object + if obj and self.is_editing: + _get_updater("stair", "regenerate_stair_mesh")(obj) + + +def update_railing(self: "BIMRailingProperties", context: bpy.types.Context) -> None: + """Regenerate railing mesh when property changes.""" + if self.is_editing: + # Only FRAMELESS_PANEL can update live via bmesh. + # WALL_MOUNTED_HANDRAIL geometry is generated from IFC representation, + # so it only updates on "Finish Editing" to avoid modifying IFC during preview. + if self.railing_type == "FRAMELESS_PANEL": + _get_updater("railing", "update_railing_modifier_bmesh")(context) + + +def update_roof(self: "BIMRoofProperties", context: bpy.types.Context) -> None: + """Regenerate roof mesh when property changes.""" + obj = context.active_object + if obj and self.is_editing: + _get_updater("roof", "update_roof_modifier_bmesh")(obj) + + class BIMModelProperties(PropertyGroup): ifc_class: bpy.props.EnumProperty(items=get_ifc_class, name="Construction Class", update=update_ifc_class) relating_type_id: bpy.props.EnumProperty( @@ -217,7 +276,12 @@ class BIMModelProperties(PropertyGroup): rl3: bpy.props.FloatProperty(name="RL", default=1, subtype="DISTANCE", description="Z offset for space calculation") type_page: bpy.props.IntProperty(name="Type Page", default=1, min=1, update=update_type_page) x_angle: bpy.props.FloatProperty( - name="X Angle", default=0, subtype="ANGLE", min=math.radians(-180), max=math.radians(180), update=update_x_angle + name="X Angle", + default=0, + subtype="ANGLE", + min=math.radians(-180), + max=math.radians(180), + update=update_x_angle, ) type_name: bpy.props.StringProperty(name="Name", default="TYPEX") boundary_class: bpy.props.EnumProperty(items=get_boundary_class, name="Boundary Class") @@ -323,11 +387,6 @@ class BIMArrayProperties(PropertyGroup): name="Method", default="OFFSET", ) - sync_children: bpy.props.BoolProperty( - name="Sync Children", - description="Regenerate all children based on the parent object", - default=False, - ) relating_array_object: bpy.props.PointerProperty( type=bpy.types.Object, name="Copy Array Properties", @@ -348,160 +407,72 @@ class BIMArrayProperties(PropertyGroup): def update_total_length_target(self: "BIMStairProperties", context: bpy.types.Context) -> None: - """Update tread_run when total_length_target changes""" - # Calculate available length for default treads - available_length = self.total_length_target - n_default_treads = self.number_of_treads + 1 # number of risers - - # Subtract custom first tread if not locked and not zero - if not self.custom_tread_lock and self.custom_first_last_tread_run[0] != 0: - available_length -= self.custom_first_last_tread_run[0] - n_default_treads -= 1 - - # Subtract custom last tread if not locked and not zero - if not self.custom_tread_lock and self.custom_first_last_tread_run[1] != 0: - available_length -= self.custom_first_last_tread_run[1] - n_default_treads -= 1 - - # Calculate tread_run for remaining treads - if n_default_treads > 0: - self["tread_run"] = available_length / n_default_treads - else: - # All treads are custom, just use target length - self["tread_run"] = self.total_length_target / (self.number_of_treads + 1) + """Update tread_run when total_length_target changes.""" + self.update_tread_run_from_length() + # Must call update_stair here because self["prop"] bypasses property update callbacks + update_stair(self, context) def update_tread_run(self: "BIMStairProperties", context: bpy.types.Context) -> None: - """Update either number_of_treads or total_length_target when tread_run changes""" + """Update either number_of_treads or total_length_target when tread_run changes.""" if self.total_length_lock: - # Calculate how much length custom treads take up - custom_length = 0 - n_custom_treads = 0 - - if not self.custom_tread_lock: - if self.custom_first_last_tread_run[0] != 0: - custom_length += self.custom_first_last_tread_run[0] - n_custom_treads += 1 - if self.custom_first_last_tread_run[1] != 0: - custom_length += self.custom_first_last_tread_run[1] - n_custom_treads += 1 - # Calculate how many default treads fit in remaining space + custom_length, custom_count = self.get_custom_tread_info() available_length = self.total_length_target - custom_length if self.tread_run > 0: n_default_treads = available_length / self.tread_run - total_treads = n_default_treads + n_custom_treads # number_of_treads = number_of_risers - 1 - self["number_of_treads"] = int(total_treads - 1) + self["number_of_treads"] = int(n_default_treads + custom_count - 1) else: - # Calculate total length from current settings - n_default_treads = self.number_of_treads + 1 - total_length = 0 - - if not self.custom_tread_lock: - if self.custom_first_last_tread_run[0] != 0: - total_length += self.custom_first_last_tread_run[0] - n_default_treads -= 1 - if self.custom_first_last_tread_run[1] != 0: - total_length += self.custom_first_last_tread_run[1] - n_default_treads -= 1 - - total_length += n_default_treads * self.tread_run - self["total_length_target"] = total_length + self.update_total_length_from_treads() + # Must call update_stair here because self["prop"] bypasses property update callbacks + update_stair(self, context) def update_number_of_treads(self: "BIMStairProperties", context: bpy.types.Context) -> None: - """Update either tread_run or total_length_target when number_of_treads changes""" + """Update either tread_run or total_length_target when number_of_treads changes.""" if self.total_length_lock: - # Calculate available length for default treads - available_length = self.total_length_target - n_default_treads = self.number_of_treads + 1 - - if not self.custom_tread_lock: - if self.custom_first_last_tread_run[0] != 0: - available_length -= self.custom_first_last_tread_run[0] - n_default_treads -= 1 - if self.custom_first_last_tread_run[1] != 0: - available_length -= self.custom_first_last_tread_run[1] - n_default_treads -= 1 - - if n_default_treads > 0: - self["tread_run"] = available_length / n_default_treads - else: - self["tread_run"] = self.total_length_target / (self.number_of_treads + 1) + self.update_tread_run_from_length() else: - # Calculate total length from current settings - n_default_treads = self.number_of_treads + 1 - total_length = 0 - - if not self.custom_tread_lock: - if self.custom_first_last_tread_run[0] != 0: - total_length += self.custom_first_last_tread_run[0] - n_default_treads -= 1 - if self.custom_first_last_tread_run[1] != 0: - total_length += self.custom_first_last_tread_run[1] - n_default_treads -= 1 - - total_length += n_default_treads * self.tread_run - self["total_length_target"] = total_length + self.update_total_length_from_treads() + # Must call update_stair here because self["prop"] bypasses property update callbacks + update_stair(self, context) def update_custom_first_last_tread_run(self: "BIMStairProperties", context: bpy.types.Context) -> None: - """Update tread_run or total_length when custom treads change""" + """Update tread_run or total_length when custom treads change.""" if self.total_length_lock: - # Recalculate tread_run to maintain total length - available_length = self.total_length_target - n_default_treads = self.number_of_treads + 1 - - if not self.custom_tread_lock: - if self.custom_first_last_tread_run[0] != 0: - available_length -= self.custom_first_last_tread_run[0] - n_default_treads -= 1 - if self.custom_first_last_tread_run[1] != 0: - available_length -= self.custom_first_last_tread_run[1] - n_default_treads -= 1 - - if n_default_treads > 0: - self["tread_run"] = available_length / n_default_treads + self.update_tread_run_from_length() else: - # Recalculate total length - n_default_treads = self.number_of_treads + 1 - total_length = 0 - - if not self.custom_tread_lock: - if self.custom_first_last_tread_run[0] != 0: - total_length += self.custom_first_last_tread_run[0] - n_default_treads -= 1 - if self.custom_first_last_tread_run[1] != 0: - total_length += self.custom_first_last_tread_run[1] - n_default_treads -= 1 - - total_length += n_default_treads * self.tread_run - self["total_length_target"] = total_length + self.update_total_length_from_treads() + # Must call update_stair here because self["prop"] bypasses property update callbacks + update_stair(self, context) class BIMStairProperties(PropertyGroup): def validate_nosing_value(self, context: bpy.types.Context) -> None: if self.stair_type != "WOOD/STEEL" and self.nosing_length < 0: self["nosing_length"] = 0 + update_stair(self, context) def update_custom_tread_lock(self, context: bpy.types.Context) -> None: """When lock is enabled, sync custom treads with tread_run""" if self.custom_tread_lock: self["custom_first_last_tread_run"] = (self.tread_run, self.tread_run) + update_stair(self, context) non_si_units_props = ("is_editing", "number_of_treads", "has_top_nib", "stair_type", "custom_tread_lock") is_editing: bpy.props.BoolProperty(default=False) - width: bpy.props.FloatProperty(name="Width", default=1.2, soft_min=0.01, subtype="DISTANCE") - height: bpy.props.FloatProperty(name="Height", default=1.0, soft_min=0.01, subtype="DISTANCE") + width: bpy.props.FloatProperty(name="Width", default=1.2, min=0.01, subtype="DISTANCE", update=update_stair) + height: bpy.props.FloatProperty(name="Height", default=1.0, min=0.01, subtype="DISTANCE", update=update_stair) number_of_treads: bpy.props.IntProperty( - name="Number of Treads", default=6, soft_min=1, update=update_number_of_treads + name="Number of Treads", default=6, soft_min=1, min=0, update=update_number_of_treads ) total_length_target: bpy.props.FloatProperty( name="Total Length Target", default=3.0, - soft_min=0.01, + min=0.01, subtype="DISTANCE", update=update_total_length_target, description="Total Length Target, might not be exactly respected depending on the parameters", @@ -511,13 +482,19 @@ class BIMStairProperties(PropertyGroup): name="Lock Total Length", description="Lock Total Length when changing number of treads or tread run", ) - tread_depth: bpy.props.FloatProperty(name="Tread Depth", default=0.25, soft_min=0.01, subtype="DISTANCE") - tread_run: bpy.props.FloatProperty( - name="Tread Run", default=0.3, soft_min=0.01, subtype="DISTANCE", update=update_tread_run + tread_depth: bpy.props.FloatProperty( + name="Tread Depth", default=0.25, min=0.01, subtype="DISTANCE", update=update_stair ) - base_slab_depth: bpy.props.FloatProperty(name="Base Slab Depth", default=0.25, soft_min=0, subtype="DISTANCE") - top_slab_depth: bpy.props.FloatProperty(name="Top Slab Depth", default=0.25, soft_min=0, subtype="DISTANCE") - has_top_nib: bpy.props.BoolProperty(name="Has Top Nib", default=True) + tread_run: bpy.props.FloatProperty( + name="Tread Run", default=0.3, min=0.01, subtype="DISTANCE", update=update_tread_run + ) + base_slab_depth: bpy.props.FloatProperty( + name="Base Slab Depth", default=0.25, min=0, subtype="DISTANCE", update=update_stair + ) + top_slab_depth: bpy.props.FloatProperty( + name="Top Slab Depth", default=0.25, min=0, subtype="DISTANCE", update=update_stair + ) + has_top_nib: bpy.props.BoolProperty(name="Has Top Nib", default=True, update=update_stair) stair_type: bpy.props.EnumProperty( name="Stair Type", items=[(i, i.replace("/", " / ").title(), "") for i in get_args(tool.Model.StairType)], @@ -537,7 +514,7 @@ class BIMStairProperties(PropertyGroup): min=0, unit="LENGTH", size=2, - update=update_custom_first_last_tread_run, # Added update callback + update=update_custom_first_last_tread_run, ) nosing_length: bpy.props.FloatProperty( name="Nosing Length", @@ -550,7 +527,12 @@ class BIMStairProperties(PropertyGroup): update=validate_nosing_value, ) nosing_depth: bpy.props.FloatProperty( - name="Nosing Depth", description="Depth of the tread's nosing", min=0, default=0, unit="LENGTH" + name="Nosing Depth", + description="Depth of the tread's nosing", + min=0, + default=0, + unit="LENGTH", + update=update_stair, ) if TYPE_CHECKING: @@ -628,18 +610,126 @@ class BIMStairProperties(PropertyGroup): def set_props_kwargs_from_ifc_data(self, kwargs): kwargs = tool.Model.convert_data_to_si_units(kwargs, self.non_si_units_props) + tread_run = kwargs.get("tread_run", 0.3) # Determine lock state based on whether custom treads match tread_run # If custom_tread_lock wasn't saved (old files), infer it from the data if "custom_tread_lock" not in kwargs: custom_treads = kwargs.get("custom_first_last_tread_run", (0.0, 0.0)) - tread_run = kwargs.get("tread_run", 0.3) # Lock is off if either custom tread differs from tread_run and is not 0 - kwargs["custom_tread_lock"] = not any(ct != 0.0 and ct != tread_run for ct in custom_treads) + kwargs["custom_tread_lock"] = all(ct not in (0.0, tread_run) for ct in custom_treads) + + if "custom_first_last_tread_run" in kwargs: + custom_treads = kwargs["custom_first_last_tread_run"] + custom_treads = [tread_run if v is None else v for v in custom_treads] + kwargs["custom_first_last_tread_run"] = custom_treads for prop_name in kwargs: setattr(self, prop_name, kwargs[prop_name]) + def copy_to(self, target_props: "BIMStairProperties") -> None: + """Copy preset values to target stair properties.""" + target_props.custom_tread_lock = self.custom_tread_lock + for prop_name, prop_value in self.get_props_kwargs().items(): + # Skip custom_first_last_tread_run if it contains None values (when lock is enabled) + if prop_name == "custom_first_last_tread_run" and None in prop_value: + continue + setattr(target_props, prop_name, prop_value) + + def is_concrete_stair(self) -> bool: + return self.stair_type == "CONCRETE" + + def has_nosing(self) -> bool: + return self.nosing_length != 0.0 and self.stair_type != "WOOD/STEEL" + + def has_custom_treads(self) -> bool: + return not self.custom_tread_lock + + def has_tread_run_gizmo(self) -> bool: + return self.custom_tread_lock or self.number_of_treads > 2 + + def has_tread_depth(self) -> bool: + return self.stair_type != "GENERIC" + + def get_riser_height(self) -> float: + """Compute the riser height from total height and number of treads.""" + return self.height / (self.number_of_treads + 1) + + def set_riser_height(self, value: float) -> None: + """Apply riser height by adjusting the total stair height.""" + self.height = max(0.01, value) * (self.number_of_treads + 1) + + def get_total_run(self) -> float: + """Calculate the total horizontal run of the stair. + + Takes into account custom first/last tread runs when custom_tread_lock is False. + """ + number_of_rises = self.number_of_treads + 1 + total_run = 0.0 + default_rises = number_of_rises + + if not self.custom_tread_lock: + if self.custom_first_last_tread_run[0] is not None: # May be 0 though + default_rises -= 1 + total_run += self.custom_first_last_tread_run[0] + if self.custom_first_last_tread_run[1] is not None: # May be 0 though + default_rises -= 1 + total_run += self.custom_first_last_tread_run[1] + + total_run += self.tread_run * default_rises + return total_run + + def get_custom_tread_run(self, index: int) -> float: + """Get custom tread run value for first (0) or last (1) tread.""" + return self.custom_first_last_tread_run[index] + + def set_custom_tread_run(self, index: int, value: float) -> None: + """Set custom tread run value for first (0) or last (1) tread.""" + current = self.custom_first_last_tread_run + if index == 0: + self.custom_first_last_tread_run = (max(0.01, value), current[1]) + else: + self.custom_first_last_tread_run = (current[0], max(0.01, value)) + + def get_custom_tread_info(self) -> tuple[float, int]: + """Calculate total custom tread length and count. + + Returns: + Tuple of (custom_length, custom_count) + """ + custom_length = 0.0 + custom_count = 0 + if not self.custom_tread_lock: + if self.custom_first_last_tread_run[0] != 0: + custom_length += self.custom_first_last_tread_run[0] + custom_count += 1 + if self.custom_first_last_tread_run[1] != 0: + custom_length += self.custom_first_last_tread_run[1] + custom_count += 1 + return custom_length, custom_count + + def calculate_total_length(self) -> float: + """Calculate total stair run length from current properties.""" + custom_length, custom_count = self.get_custom_tread_info() + n_default_treads = self.number_of_treads + 1 - custom_count + return custom_length + n_default_treads * self.tread_run + + def update_tread_run_from_length(self) -> None: + """Recalculate tread_run to maintain total_length_target.""" + custom_length, custom_count = self.get_custom_tread_info() + available_length = self.total_length_target - custom_length + n_default_treads = self.number_of_treads + 1 - custom_count + + if n_default_treads > 0: + self["tread_run"] = available_length / n_default_treads + else: + # All treads are custom, use fallback + self["tread_run"] = self.total_length_target / (self.number_of_treads + 1) + + def update_total_length_from_treads(self) -> None: + """Recalculate total_length_target from current tread settings.""" + self["total_length_target"] = self.calculate_total_length() + class BIMSverchokProperties(PropertyGroup): node_group: bpy.props.PointerProperty(name="Node Group", type=NodeTree) @@ -652,19 +742,6 @@ def window_type_prop_update(self, context): update_window(self, context) -WindowType = Literal[ - "SINGLE_PANEL", - "DOUBLE_PANEL_HORIZONTAL", - "DOUBLE_PANEL_VERTICAL", - "TRIPLE_PANEL_BOTTOM", - "TRIPLE_PANEL_TOP", - "TRIPLE_PANEL_LEFT", - "TRIPLE_PANEL_RIGHT", - "TRIPLE_PANEL_HORIZONTAL", - "TRIPLE_PANEL_VERTICAL", -] - - # default prop values are in mm and converted later class BIMWindowProperties(PropertyGroup): non_si_units_props = ( @@ -693,7 +770,7 @@ class BIMWindowProperties(PropertyGroup): is_editing: bpy.props.BoolProperty(default=False) window_type: bpy.props.EnumProperty( name="Window Type", - items=[(i, i, "") for i in get_args(WindowType)], + items=[(i, i, "") for i in get_args(tool.Model.WindowType)], default="SINGLE_PANEL", update=window_type_prop_update, ) @@ -703,9 +780,11 @@ class BIMWindowProperties(PropertyGroup): overall_width: bpy.props.FloatProperty(name="Overall Width", default=0.6, subtype="DISTANCE", update=update_window) # lining properties - lining_depth: bpy.props.FloatProperty(name="Lining Depth", default=0.050, subtype="DISTANCE", update=update_window) + lining_depth: bpy.props.FloatProperty( + name="Lining Depth", default=0.050, min=0.001, subtype="DISTANCE", update=update_window + ) lining_thickness: bpy.props.FloatProperty( - name="Lining Thickness", default=0.050, subtype="DISTANCE", update=update_window + name="Lining Thickness", default=0.050, min=0.001, subtype="DISTANCE", update=update_window ) lining_offset: bpy.props.FloatProperty( name="Lining Offset", default=0.050, subtype="DISTANCE", update=update_window @@ -734,12 +813,13 @@ class BIMWindowProperties(PropertyGroup): update=update_window, ) transom_thickness: bpy.props.FloatProperty( - name="Transom Thickness", default=0.050, subtype="DISTANCE", update=update_window + name="Transom Thickness", default=0.050, min=0.001, subtype="DISTANCE", update=update_window ) first_transom_offset: bpy.props.FloatProperty( name="First Transom Offset", description="Distance from the first lining to the first transom center", default=0.3, + min=0.001, subtype="DISTANCE", update=update_window, ) @@ -766,7 +846,7 @@ class BIMWindowProperties(PropertyGroup): if TYPE_CHECKING: is_editing: bool - window_type: WindowType + window_type: tool.Model.WindowType overall_height: float overall_width: float lining_depth: float @@ -800,7 +880,7 @@ class BIMWindowProperties(PropertyGroup): return tool.Model.convert_data_to_project_units(kwargs, ["window_type"]) def get_lining_kwargs( - self, window_type: Optional[WindowType] = None, convert_to_project_units: bool = False + self, window_type: Optional[tool.Model.WindowType] = None, convert_to_project_units: bool = False ) -> dict[str, Any]: if not window_type: window_type = self.window_type @@ -858,17 +938,174 @@ class BIMWindowProperties(PropertyGroup): for prop_name in kwargs: setattr(self, prop_name, kwargs[prop_name]) + def copy_to(self, target_props: "BIMWindowProperties") -> None: + """Copy preset values to target window properties, excluding materials.""" + exclude_props = {"lining_material", "framing_material", "glazing_material"} + for kwargs_dict in (self.get_general_kwargs(), self.get_lining_kwargs(), self.get_panel_kwargs()): + for prop_name, prop_value in kwargs_dict.items(): + if prop_name not in exclude_props: + setattr(target_props, prop_name, prop_value) -DoorType = Literal[ - "SINGLE_SWING_LEFT", - "SINGLE_SWING_RIGHT", - "DOUBLE_SWING_LEFT", - "DOUBLE_SWING_RIGHT", - "DOUBLE_DOOR_SINGLE_SWING", - "SLIDING_TO_LEFT", - "SLIDING_TO_RIGHT", - "DOUBLE_DOOR_SLIDING", -] + # Window type feature mapping - centralized configuration for all window type checks + # Each window type maps to its features: mullion, second_mullion, transom, second_transom, panels + WINDOW_TYPE_FEATURES: dict[str, dict[str, bool | int]] = { + "SINGLE_PANEL": {"panels": 1}, + "DOUBLE_PANEL_VERTICAL": {"mullion": True, "panels": 2}, + "DOUBLE_PANEL_HORIZONTAL": {"transom": True, "panels": 2}, + "TRIPLE_PANEL_BOTTOM": {"mullion": True, "transom": True, "panels": 3}, + "TRIPLE_PANEL_TOP": {"mullion": True, "transom": True, "panels": 3}, + "TRIPLE_PANEL_LEFT": {"mullion": True, "transom": True, "panels": 3}, + "TRIPLE_PANEL_RIGHT": {"mullion": True, "transom": True, "panels": 3}, + "TRIPLE_PANEL_HORIZONTAL": {"transom": True, "second_transom": True, "panels": 3}, + "TRIPLE_PANEL_VERTICAL": {"mullion": True, "second_mullion": True, "panels": 3}, + } + + def _get_feature(self, feature: str, default: bool | int = False) -> bool | int: + return self.WINDOW_TYPE_FEATURES.get(self.window_type, {}).get(feature, default) + + def has_mullion(self) -> bool: + return bool(self._get_feature("mullion")) + + def has_second_mullion(self) -> bool: + return bool(self._get_feature("second_mullion")) + + def has_transom(self) -> bool: + return bool(self._get_feature("transom")) + + def has_second_transom(self) -> bool: + return bool(self._get_feature("second_transom")) + + def has_second_panel(self) -> bool: + return int(self._get_feature("panels", 1)) >= 2 + + def has_third_panel(self) -> bool: + return int(self._get_feature("panels", 1)) >= 3 + + def get_lining_to_panel_offset_y_full(self) -> float: + """Get the full Y offset for lining-to-panel positioning.""" + return (self.lining_depth - self.frame_depth[0]) + self.lining_to_panel_offset_y + + def get_panel_geometry(self, panel_index: int) -> tuple[float, float, float, float]: + """Get panel geometry (x_offset, z_offset, height, center_z) for a given panel index. + + Args: + panel_index: 0 for first panel, 1 for second, 2 for third + + Returns: + Tuple of (x_offset, z_offset, height, center_z) + """ + window_type = self.window_type + + if panel_index == 0: + # First panel position and height + if window_type == "DOUBLE_PANEL_HORIZONTAL": + x, z = 0, self.first_transom_offset + elif window_type == "TRIPLE_PANEL_HORIZONTAL": + x, z = 0, self.second_transom_offset + elif window_type in ("TRIPLE_PANEL_BOTTOM", "TRIPLE_PANEL_RIGHT", "TRIPLE_PANEL_TOP"): + x, z = 0, self.first_transom_offset + else: + x, z = 0, 0 + + if window_type == "TRIPLE_PANEL_HORIZONTAL": + height = self.overall_height - self.second_transom_offset + elif window_type in ( + "DOUBLE_PANEL_HORIZONTAL", + "TRIPLE_PANEL_BOTTOM", + "TRIPLE_PANEL_RIGHT", + "TRIPLE_PANEL_TOP", + ): + height = self.overall_height - self.first_transom_offset + else: + height = self.overall_height + + elif panel_index == 1: + # Second panel position and height + if window_type == "DOUBLE_PANEL_VERTICAL": + x, z = self.first_mullion_offset, 0 + elif window_type == "DOUBLE_PANEL_HORIZONTAL": + x, z = 0, 0 + elif window_type in ("TRIPLE_PANEL_BOTTOM", "TRIPLE_PANEL_LEFT", "TRIPLE_PANEL_RIGHT"): + x, z = self.first_mullion_offset, self.first_transom_offset + elif window_type == "TRIPLE_PANEL_TOP": + x, z = 0, 0 + elif window_type == "TRIPLE_PANEL_HORIZONTAL": + x, z = 0, self.first_transom_offset + elif window_type == "TRIPLE_PANEL_VERTICAL": + x, z = self.first_mullion_offset, 0 + else: + x, z = 0, 0 + + if window_type == "DOUBLE_PANEL_HORIZONTAL": + height = self.first_transom_offset + elif window_type == "DOUBLE_PANEL_VERTICAL": + height = self.overall_height + elif window_type in ("TRIPLE_PANEL_BOTTOM", "TRIPLE_PANEL_LEFT", "TRIPLE_PANEL_RIGHT"): + height = self.overall_height - self.first_transom_offset + elif window_type == "TRIPLE_PANEL_TOP": + height = self.first_transom_offset + elif window_type == "TRIPLE_PANEL_HORIZONTAL": + height = self.second_transom_offset - self.first_transom_offset + elif window_type == "TRIPLE_PANEL_VERTICAL": + height = self.overall_height + else: + height = self.overall_height + + else: # panel_index == 2 + # Third panel position and height + if window_type in ("TRIPLE_PANEL_BOTTOM", "TRIPLE_PANEL_RIGHT", "TRIPLE_PANEL_HORIZONTAL"): + x, z = 0, 0 + elif window_type in ("TRIPLE_PANEL_TOP", "TRIPLE_PANEL_LEFT"): + x, z = self.first_mullion_offset, 0 + elif window_type == "TRIPLE_PANEL_VERTICAL": + x, z = self.second_mullion_offset, 0 + else: + x, z = 0, 0 + + height = self.overall_height if window_type == "TRIPLE_PANEL_VERTICAL" else self.first_transom_offset + + center_z = z + height / 2 + return x, z, height, center_z + + def get_frame_position(self, panel_index: int, is_depth: bool) -> Vector: + """Get frame gizmo position for a given panel. + + Args: + panel_index: 0 for first panel, 1 for second, 2 for third + is_depth: True for depth gizmo, False for thickness gizmo + + Returns: + Position vector for the gizmo + """ + x_offset, _, _, center_z = self.get_panel_geometry(panel_index) + frame_depth = self.frame_depth[panel_index] + y_full = (self.lining_depth - frame_depth) + self.lining_to_panel_offset_y + y_pos = y_full + frame_depth + self.lining_offset + return Vector((x_offset + self.lining_to_panel_offset_x, y_pos, center_z)) + + def get_frame_value(self, attr_name: str, panel_index: int) -> float: + """Get frame property value (frame_depth or frame_thickness) for a specific panel. + + Args: + attr_name: Property name ("frame_depth" or "frame_thickness") + panel_index: Panel index (0, 1, or 2) + + Returns: + The value at the specified panel index + """ + return getattr(self, attr_name)[panel_index] + + def set_frame_value(self, attr_name: str, panel_index: int, value: float) -> None: + """Set frame property value (frame_depth or frame_thickness) for a specific panel. + + Args: + attr_name: Property name ("frame_depth" or "frame_thickness") + panel_index: Panel index (0, 1, or 2) + value: New value (clamped to min 0.0) + """ + current = getattr(self, attr_name) + new_value = tuple(current[:panel_index]) + (max(0.0, value),) + tuple(current[panel_index + 1 :]) + setattr(self, attr_name, new_value) class BIMDoorProperties(PropertyGroup): @@ -883,17 +1120,39 @@ class BIMDoorProperties(PropertyGroup): is_editing: bpy.props.BoolProperty(default=False) door_type: bpy.props.EnumProperty( name="Door Operation Type", - items=tuple((i, i, "") for i in get_args(DoorType)), + items=tuple((i, i, "") for i in get_args(tool.Model.DoorType)), default="SINGLE_SWING_LEFT", update=update_door, ) - overall_height: bpy.props.FloatProperty(name="Overall Height", default=2.0, subtype="DISTANCE", update=update_door) - overall_width: bpy.props.FloatProperty(name="Overall Width", default=0.9, subtype="DISTANCE", update=update_door) + overall_height: bpy.props.FloatProperty( + name="Overall Height", + default=2.0, + min=0, + subtype="DISTANCE", + update=update_door, + ) + overall_width: bpy.props.FloatProperty( + name="Overall Width", + default=0.9, + min=0, + subtype="DISTANCE", + update=update_door, + ) # lining properties - lining_depth: bpy.props.FloatProperty(name="Lining Depth", default=0.050, subtype="DISTANCE", update=update_door) + lining_depth: bpy.props.FloatProperty( + name="Lining Depth", + default=0.050, + min=0.001, + subtype="DISTANCE", + update=update_door, + ) lining_thickness: bpy.props.FloatProperty( - name="Lining Thickness", default=0.050, subtype="DISTANCE", update=update_door + name="Lining Thickness", + default=0.050, + min=0.001, + subtype="DISTANCE", + update=update_door, ) lining_offset: bpy.props.FloatProperty( name="Lining Offset", @@ -915,6 +1174,7 @@ class BIMDoorProperties(PropertyGroup): name="Transom Thickness", description="Set values > 0 to add a transom.\n" "`0.050 mm` is good as default value", default=0.000, + min=0, subtype="DISTANCE", update=update_door, ) @@ -922,6 +1182,7 @@ class BIMDoorProperties(PropertyGroup): name="Transom Offset", description="Distance from the bottom door opening to the beginning of the transom (unlike windows)", default=1.525, + min=0, subtype="DISTANCE", update=update_door, ) @@ -930,20 +1191,32 @@ class BIMDoorProperties(PropertyGroup): name="Casing Thickness", description="Set values > 0 and LiningOffset = 0 to add a casing.", default=0.075, + min=0, + subtype="DISTANCE", + update=update_door, + ) + casing_depth: bpy.props.FloatProperty( + name="Casing Depth", + default=0.005, + min=0.001, subtype="DISTANCE", update=update_door, ) - casing_depth: bpy.props.FloatProperty(name="Casing Depth", default=0.005, subtype="DISTANCE", update=update_door) threshold_thickness: bpy.props.FloatProperty( name="Threshold Thickness", description="Set values > 0 to add a threshold.", default=0.025, + min=0, subtype="DISTANCE", update=update_door, ) threshold_depth: bpy.props.FloatProperty( - name="Threshold Depth", default=0.1, subtype="DISTANCE", update=update_door + name="Threshold Depth", + default=0.1, + min=0.001, + subtype="DISTANCE", + update=update_door, ) threshold_offset: bpy.props.FloatProperty( name="Threshold Offset", @@ -954,7 +1227,13 @@ class BIMDoorProperties(PropertyGroup): ) # panel properties - panel_depth: bpy.props.FloatProperty(name="Panel Depth", default=0.035, subtype="DISTANCE", update=update_door) + panel_depth: bpy.props.FloatProperty( + name="Panel Depth", + default=0.035, + min=0, + subtype="DISTANCE", + update=update_door, + ) panel_width_ratio: bpy.props.FloatProperty( name="Panel Width Ratio", description="Width of this panel, given as ratio " "relative to the total clear opening width of the door", @@ -964,10 +1243,18 @@ class BIMDoorProperties(PropertyGroup): update=update_door, ) frame_thickness: bpy.props.FloatProperty( - name="Window Frame Thickness", default=0.035, subtype="DISTANCE", update=update_door + name="Window Frame Thickness", + default=0.035, + min=0, + subtype="DISTANCE", + update=update_door, ) frame_depth: bpy.props.FloatProperty( - name="Window Frame Depth", default=0.035, subtype="DISTANCE", update=update_door + name="Window Frame Depth", + default=0.035, + min=0, + subtype="DISTANCE", + update=update_door, ) # Material properties @@ -977,7 +1264,7 @@ class BIMDoorProperties(PropertyGroup): if TYPE_CHECKING: is_editing: bool - door_type: DoorType + door_type: tool.Model.DoorType overall_height: float overall_width: float @@ -1075,6 +1362,44 @@ class BIMDoorProperties(PropertyGroup): for prop_name in kwargs: setattr(self, prop_name, kwargs[prop_name]) + def copy_to(self, target_props: "BIMDoorProperties") -> None: + """Copy properties to target door properties, excluding materials.""" + exclude_props = {"lining_material", "framing_material", "glazing_material"} + for kwargs_dict in (self.get_general_kwargs(), self.get_lining_kwargs(), self.get_panel_kwargs()): + for prop_name, prop_value in kwargs_dict.items(): + if prop_name not in exclude_props: + setattr(target_props, prop_name, prop_value) + + def has_threshold_depth(self) -> bool: + """Check if threshold depth gizmo should be visible (has threshold).""" + return self.threshold_thickness > 0.0 + + def has_transom(self) -> bool: + """Check if transom-related gizmos should be visible (has transom).""" + return self.transom_thickness > 0.0 + + def has_casing(self) -> bool: + """Check if casing gizmos should be visible (no lining offset).""" + return self.lining_offset == 0.0 + + def has_casing_depth(self) -> bool: + """Check if casing depth gizmo should be visible (has casing and casing thickness > 0).""" + return self.lining_offset == 0.0 and self.casing_thickness > 0.0 + + def get_panel_center_z(self) -> float: + """Get the vertical center of the door panel for gizmo positioning.""" + if self.transom_thickness > 0: + return (self.transom_offset - self.threshold_thickness) / 2 + return (self.overall_height - self.threshold_thickness) / 2 + + def get_transom_window_center_z(self) -> float: + """Get the vertical center of the transom window for frame gizmo positioning.""" + return (self.transom_offset + self.transom_thickness / 2 + self.overall_height - self.lining_thickness) / 2 + + def get_casing_offset(self) -> float: + """Get casing offset for gizmo positioning (casing_thickness when lining_offset is 0).""" + return self.casing_thickness if self.lining_offset == 0.0 else 0.0 + RailingType = Literal["FRAMELESS_PANEL", "WALL_MOUNTED_HANDRAIL"] CapType = Literal["TO_END_POST_AND_FLOOR", "TO_END_POST", "TO_FLOOR", "TO_WALL", "180", "NONE"] @@ -1093,11 +1418,14 @@ class BIMRailingProperties(PropertyGroup): is_editing_path: bpy.props.BoolProperty(default=False) railing_type: bpy.props.EnumProperty( - name="Railing Type", items=[(i, i, "") for i in get_args(RailingType)], default="FRAMELESS_PANEL" + name="Railing Type", + items=[(i, i, "") for i in get_args(RailingType)], + default="FRAMELESS_PANEL", + update=update_railing, ) - height: bpy.props.FloatProperty(name="Height", default=1.0, subtype="DISTANCE") - thickness: bpy.props.FloatProperty(name="Thickness", default=0.050, subtype="DISTANCE") - spacing: bpy.props.FloatProperty(name="Spacing", default=0.050, subtype="DISTANCE") + height: bpy.props.FloatProperty(name="Height", default=1.0, subtype="DISTANCE", update=update_railing) + thickness: bpy.props.FloatProperty(name="Thickness", default=0.050, subtype="DISTANCE", update=update_railing) + spacing: bpy.props.FloatProperty(name="Spacing", default=0.050, subtype="DISTANCE", update=update_railing) # wall mounted handrail specific properties use_manual_supports: bpy.props.BoolProperty( @@ -1105,6 +1433,7 @@ class BIMRailingProperties(PropertyGroup): default=False, description="If enabled, supports are added on every vertex on the edges of the railing path.\n" "If disabled, supports are added automatically based on the support spacing", + update=update_railing, ) support_spacing: bpy.props.FloatProperty( name="Support Spacing", @@ -1112,16 +1441,20 @@ class BIMRailingProperties(PropertyGroup): min=0.01, description="Distance between supports if automatic supports are used", subtype="DISTANCE", + update=update_railing, + ) + railing_diameter: bpy.props.FloatProperty( + name="Railing Diameter", default=0.050, subtype="DISTANCE", update=update_railing ) - railing_diameter: bpy.props.FloatProperty(name="Railing Diameter", default=0.050, subtype="DISTANCE") clear_width: bpy.props.FloatProperty( name="Clear Width", default=0.040, description="Clear width between the railing and the wall", subtype="DISTANCE", + update=update_railing, ) terminal_type: bpy.props.EnumProperty( - name="Terminal Type", items=[(i, i, "") for i in get_args(CapType)], default="180" + name="Terminal Type", items=[(i, i, "") for i in get_args(CapType)], default="180", update=update_railing ) if TYPE_CHECKING: @@ -1174,6 +1507,11 @@ class BIMRailingProperties(PropertyGroup): for prop_name in kwargs: setattr(self, prop_name, kwargs[prop_name]) + def copy_to(self, target_props: "BIMRailingProperties") -> None: + """Copy preset values to target railing properties.""" + for prop_name, prop_value in self.get_general_kwargs().items(): + setattr(target_props, prop_name, prop_value) + def to_angle(percentage: float) -> float: return math.atan(percentage / 100) @@ -1190,9 +1528,11 @@ RoofGenerationMethod = Literal["HEIGHT", "ANGLE"] class BIMRoofProperties(PropertyGroup): def update_angle(self, context: bpy.types.Context) -> None: self["angle"] = to_angle(self.percentage) + update_roof(self, context) def update_percentage(self, context: bpy.types.Context) -> None: self["percentage"] = to_percentage(self.angle) + update_roof(self, context) non_si_units_props = ( "is_editing", @@ -1208,13 +1548,20 @@ class BIMRoofProperties(PropertyGroup): is_editing_path: bpy.props.BoolProperty(default=False) roof_type: bpy.props.EnumProperty( - name="Roof Type", items=[(i, i, "") for i in get_args(RoofType)], default="HIP/GABLE ROOF" + name="Roof Type", items=[(i, i, "") for i in get_args(RoofType)], default="HIP/GABLE ROOF", update=update_roof ) generation_method: bpy.props.EnumProperty( - name="Roof Generation Method", items=[(i, i, "") for i in get_args(RoofGenerationMethod)], default="ANGLE" + name="Roof Generation Method", + items=[(i, i, "") for i in get_args(RoofGenerationMethod)], + default="ANGLE", + update=update_roof, ) height: bpy.props.FloatProperty( - name="Height", default=1.0, description="Maximum height of the roof to be generated.", subtype="DISTANCE" + name="Height", + default=1.0, + description="Maximum height of the roof to be generated.", + subtype="DISTANCE", + update=update_roof, ) angle: bpy.props.FloatProperty( name="Slope Angle", @@ -1236,9 +1583,9 @@ class BIMRoofProperties(PropertyGroup): soft_min=to_percentage(radians(5.0)), soft_max=to_percentage(radians(60.0)), ) - roof_thickness: bpy.props.FloatProperty(name="Roof Thickness", default=0.1, subtype="DISTANCE") + roof_thickness: bpy.props.FloatProperty(name="Roof Thickness", default=0.1, subtype="DISTANCE", update=update_roof) rafter_edge_angle: bpy.props.FloatProperty( - name="Rafter Edge Angle", min=0, max=pi / 2, default=pi / 2, subtype="ANGLE" + name="Rafter Edge Angle", min=0, max=pi / 2, default=pi / 2, subtype="ANGLE", update=update_roof ) if TYPE_CHECKING: @@ -1276,6 +1623,11 @@ class BIMRoofProperties(PropertyGroup): for prop_name in kwargs: setattr(self, prop_name, kwargs[prop_name]) + def copy_to(self, target_props: "BIMRoofProperties") -> None: + """Copy preset values to target roof properties.""" + for prop_name, prop_value in self.get_general_kwargs().items(): + setattr(target_props, prop_name, prop_value) + class SnapMousePoint(PropertyGroup): x: bpy.props.FloatProperty(name="X") @@ -1346,27 +1698,20 @@ class ProductPreviewItem(PropertyGroup): value_2d: tuple[float, float] -class BIMProductPreviewProperties(PropertyGroup): - verts: bpy.props.CollectionProperty(type=ProductPreviewItem) - edges: bpy.props.CollectionProperty(type=ProductPreviewItem) - tris: bpy.props.CollectionProperty(type=ProductPreviewItem) - - if TYPE_CHECKING: - verts: bpy.types.bpy_prop_collection_idprop[ProductPreviewItem] - edges: bpy.types.bpy_prop_collection_idprop[ProductPreviewItem] - tris: bpy.types.bpy_prop_collection_idprop[ProductPreviewItem] - - def update_is_editing(self: "BIMExternalParametricGeometryProperties", context: bpy.types.Context) -> None: if self.is_editing: return + assert isinstance(self.id_data, bpy.types.Object) tool.Model.clean_up_parametric_geometry(self.id_data) - del self["is_editing"] - del self["geo_nodes"] + self.property_unset("is_editing") + self.property_unset("geo_nodes") + self.property_unset("sverchok_nodes") def update_geo_nodes(self: "BIMExternalParametricGeometryProperties", context: bpy.types.Context) -> None: + assert isinstance(self.id_data, bpy.types.Object) + if self.geo_nodes: tool.Model.setup_parametric_geometry(self.id_data) return @@ -1377,14 +1722,25 @@ def update_geo_nodes(self: "BIMExternalParametricGeometryProperties", context: b del self["geo_nodes"] +def poll_sverchok_nodes(self: "BIMExternalParametricGeometryProperties", node_tree: bpy.types.NodeTree) -> bool: + return node_tree.bl_idname == "SverchCustomTreeType" + + class BIMExternalParametricGeometryProperties(bpy.types.PropertyGroup): - is_editing: bpy.props.BoolProperty( + is_editing: bpy.props.BoolProperty( # pyright: ignore[reportRedeclaration] name="Is Editing Paramteric Geometry", description="Toggle editing parametric geometry.", default=False, update=update_is_editing, ) - geo_nodes: bpy.props.PointerProperty( + geometry_source: bpy.props.EnumProperty( # pyright: ignore[reportRedeclaration] + name="Geometry Source", + items=[ + ("GEONODES", "Geometry Nodes", ""), + ("IFCSVERCHOK", "IFC Sverchok", ""), + ], + ) + geo_nodes: bpy.props.PointerProperty( # pyright: ignore[reportRedeclaration] name="Geometry Nodes", description="Geometry nodes tree to use as a source for representation.", type=bpy.types.GeometryNodeTree, @@ -1392,6 +1748,15 @@ class BIMExternalParametricGeometryProperties(bpy.types.PropertyGroup): poll=lambda self, node_tree: not node_tree.name.startswith("BBIM_EPG"), ) + sverchok_nodes: bpy.props.PointerProperty( # pyright: ignore[reportRedeclaration] + name="Sverchok Nodes", + description="Sverchok node tree to use as a source for representation.", + type=bpy.types.NodeTree, + poll=poll_sverchok_nodes, + ) + if TYPE_CHECKING: is_editing: bool + geometry_source: Literal["GEONODES", "IFCSVERCHOK"] geo_nodes: Union[bpy.types.GeometryNodeTree, None] + sverchok_nodes: Union[sverchok.node_tree.SverchCustomTree, None] diff --git a/src/bonsai/bonsai/bim/module/model/railing.py b/src/bonsai/bonsai/bim/module/model/railing.py index 5e8d7a70dc..624b1b64a7 100644 --- a/src/bonsai/bonsai/bim/module/model/railing.py +++ b/src/bonsai/bonsai/bim/module/model/railing.py @@ -17,24 +17,25 @@ # along with Bonsai. If not, see . -import bpy +import json +from typing import Any + import bmesh +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.geometry import ifcopenshell.api.pset import ifcopenshell.util.representation import ifcopenshell.util.unit -import bonsai.core.root +from mathutils import Vector + import bonsai.core.geometry +import bonsai.core.root import bonsai.tool as tool from bonsai.bim.module.model.data import RailingData, refresh from bonsai.bim.module.model.decorator import ProfileDecorator -from mathutils import Vector -import json -from typing import Any - # reference: # https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcRailing.htm # https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcRailingType.htm @@ -106,6 +107,13 @@ def update_railing_modifier_ifc_data(context: bpy.types.Context) -> None: model_representation = ifcopenshell.api.geometry.add_railing_representation(ifc_file, **representation_data) tool.Model.replace_object_ifc_representation(body, obj, model_representation) + # recalculate normals to ensure correct shading + mesh = obj.data + if isinstance(mesh, bpy.types.Mesh): + bm = tool.Blender.get_bmesh_for_mesh(mesh, clean=False) + bmesh.ops.recalc_face_normals(bm, faces=bm.faces[:]) + tool.Blender.apply_bmesh(mesh, bm) + elif props.railing_type == "FRAMELESS_PANEL": tool.Model.add_body_representation(obj) @@ -335,6 +343,8 @@ class AddRailing(bpy.types.Operator, tool.Ifc.Operator): props = tool.Model.get_railing_props(obj) si_conversion = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) + tool.Blender.get_addon_preferences().default_parameters.railing.copy_to(props) + railing_data = props.get_general_kwargs(convert_to_project_units=True) path_data = get_path_data(obj) diff --git a/src/bonsai/bonsai/bim/module/model/roof.py b/src/bonsai/bonsai/bim/module/model/roof.py index dfcf4ebbf1..4038faa993 100644 --- a/src/bonsai/bonsai/bim/module/model/roof.py +++ b/src/bonsai/bonsai/bim/module/model/roof.py @@ -16,27 +16,27 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bmesh +import json +from math import cos, pi, radians, tan +from typing import Any, Literal, Union +import bmesh +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.pset import ifcopenshell.util.representation import ifcopenshell.util.unit +import mathutils.geometry +import shapely +from bpypolyskel import bpypolyskel +from mathutils import Matrix, Quaternion, Vector + import bonsai.core.root import bonsai.tool as tool from bonsai.bim.module.model.data import RoofData, refresh from bonsai.bim.module.model.decorator import ProfileDecorator -import json -from math import cos, tan, pi, radians -from mathutils import Vector, Matrix, Quaternion -import mathutils.geometry -from bpypolyskel import bpypolyskel -import shapely -from typing import Literal, Union, Any - # reference: # https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcRoof.htm # https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcRoofType.htm @@ -570,6 +570,8 @@ class AddRoof(bpy.types.Operator, tool.Ifc.Operator): props = tool.Model.get_roof_props(obj) si_conversion = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) + tool.Blender.get_addon_preferences().default_parameters.roof.copy_to(props) + # rejecting original roof shape to be safe # taking into account only it's bounding box dimensions if obj.dimensions.x == 0 or obj.dimensions.y == 0: diff --git a/src/bonsai/bonsai/bim/module/model/slab.py b/src/bonsai/bonsai/bim/module/model/slab.py index ddc7c1d9a8..602c36df11 100644 --- a/src/bonsai/bonsai/bim/module/model/slab.py +++ b/src/bonsai/bonsai/bim/module/model/slab.py @@ -16,9 +16,12 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import json +from math import acos, cos, degrees, pi, sin +from typing import Optional + import bmesh +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.geometry @@ -28,18 +31,21 @@ import ifcopenshell.api.type import ifcopenshell.util.element import ifcopenshell.util.placement import ifcopenshell.util.representation -import ifcopenshell.util.unit import ifcopenshell.util.type -import bonsai.core.type +import ifcopenshell.util.unit +from mathutils import Matrix, Vector + import bonsai.core.geometry import bonsai.core.root +import bonsai.core.type import bonsai.tool as tool from bonsai.bim.ifc import IfcStore -from math import cos, pi -from mathutils import Vector, Matrix -from bonsai.bim.module.model.decorator import ProfileDecorator, PolylineDecorator, ProductDecorator +from bonsai.bim.module.model.decorator import ( + PolylineDecorator, + ProductDecorator, + ProfileDecorator, +) from bonsai.bim.module.model.polyline import PolylineOperator -from typing import Optional class DumbSlabGenerator: @@ -236,38 +242,6 @@ class DumbSlabPlaner: for element in rel.RelatedObjects: self.change_thickness(element, total_thickness) - def regenerate_from_type(self, usecase_path, ifc_file, settings): - relating_type = settings["relating_type"] - - new_material = ifcopenshell.util.element.get_material(relating_type) - if not new_material or not new_material.is_a("IfcMaterialLayerSet"): - return - - parametric = ifcopenshell.util.element.get_psets(settings["relating_type"]).get("EPset_Parametric") - layer_set_direction = None - if parametric: - layer_set_direction = parametric.get("LayerSetDirection", layer_set_direction) - new_thickness = sum([l.LayerThickness for l in new_material.MaterialLayers]) - - self.unit_scale = ifcopenshell.util.unit.calculate_unit_scale(ifc_file) - for related_object in settings["related_objects"]: - self._regenerate_from_type(related_object, layer_set_direction, new_thickness) - - def _regenerate_from_type( - self, related_object: ifcopenshell.entity_instance, layer_set_direction: Optional[str], new_thickness: float - ) -> None: - obj = tool.Ifc.get_object(related_object) - if not obj or not tool.Geometry.get_active_representation(obj): - return - - material = ifcopenshell.util.element.get_material(related_object) - if not material or not material.is_a("IfcMaterialLayerSetUsage"): - return - if layer_set_direction: - material.LayerSetDirection = layer_set_direction - if material.LayerSetDirection == "AXIS3": - self.change_thickness(related_object, new_thickness) - def regenerate_from_occurence(self, element, material_set_usage): self.unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) layer_set = material_set_usage.ForLayerSet @@ -277,6 +251,7 @@ class DumbSlabPlaner: self.change_thickness(element, total_thickness) def change_thickness(self, element: ifcopenshell.entity_instance, thickness: float) -> None: + self.unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) if tool.Model.get_usage_type(element) != "LAYER3": return layer_params = tool.Model.get_material_layer_parameters(element) @@ -657,6 +632,8 @@ class EnableEditingExtrusionProfile(bpy.types.Operator, tool.Ifc.Operator): existing_x_angle = tool.Model.get_existing_x_angle(extrusion) layer_params = tool.Model.get_material_layer_parameters(element) + # TODO: review #7537 properly, this is a quick fix but something doesn't seem right. + original_rotation_x = 0 if extrusion.Position: position = Matrix(ifcopenshell.util.placement.get_axis2placement(extrusion.Position).tolist()) position.translation *= self.unit_scale @@ -706,6 +683,7 @@ class EditExtrusionProfile(bpy.types.Operator, tool.Ifc.Operator): extrusion = tool.Model.get_extrusion(body) existing_x_angle = tool.Model.get_existing_x_angle(extrusion) layer_params = tool.Model.get_material_layer_parameters(element) + if extrusion.Position: position = Matrix(ifcopenshell.util.placement.get_axis2placement(extrusion.Position).tolist()) position.translation *= self.unit_scale @@ -976,11 +954,8 @@ class DrawPolylineSlab(bpy.types.Operator, PolylineOperator, tool.Ifc.Operator): return {"FINISHED"} self.handle_keyboard_input(context, event) - self.handle_inserting_polyline(context, event) - self.get_product_preview_data(context, self.relating_type) - cancel = self.handle_cancelation(context, event) if cancel is not None: ProductDecorator.uninstall() diff --git a/src/bonsai/bonsai/bim/module/model/space.py b/src/bonsai/bonsai/bim/module/model/space.py index aeebea071b..baa7401358 100644 --- a/src/bonsai/bonsai/bim/module/model/space.py +++ b/src/bonsai/bonsai/bim/module/model/space.py @@ -18,8 +18,9 @@ import bpy -import bonsai.tool as tool + import bonsai.core.spatial as core +import bonsai.tool as tool class GenerateSpace(bpy.types.Operator, tool.Ifc.Operator): diff --git a/src/bonsai/bonsai/bim/module/model/stair.py b/src/bonsai/bonsai/bim/module/model/stair.py index 71bfa97a9a..5b52308542 100644 --- a/src/bonsai/bonsai/bim/module/model/stair.py +++ b/src/bonsai/bonsai/bim/module/model/stair.py @@ -16,21 +16,35 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import json + import bmesh +import bpy import ifcopenshell import ifcopenshell.api.pset import ifcopenshell.util.element import ifcopenshell.util.representation import ifcopenshell.util.unit +from mathutils import Matrix, Vector + import bonsai.core.root import bonsai.tool as tool -from mathutils import Vector +from bonsai.bim.module.drawing import gizmos as gizmo +from bonsai.bim.module.drawing.gizmos import DimensionGizmoConfig +from bonsai.tool.numeric_input import ( + IntegerInputState, + run_integer_input_modal, + update_header, +) + +V_ = tool.Blender.V_ +from typing import TYPE_CHECKING, get_args + from bmesh.types import BMVert -from bpy.types import Operator -from bpy.props import FloatProperty, IntProperty -from bpy_extras.object_utils import AddObjectHelper, object_data_add +from bpy.props import IntProperty + +if TYPE_CHECKING: + from bonsai.bim.module.model.prop import BIMStairProperties def regenerate_stair_mesh(obj: bpy.types.Object) -> None: @@ -131,14 +145,14 @@ def update_ifc_stair_props(obj: bpy.types.Object) -> None: class BIM_OT_add_stair(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "mesh.add_stair" - bl_label = "Stair" + bl_label = "Add Stair" bl_options = {"REGISTER", "UNDO"} @classmethod - def poll(cls, context): + def poll(cls, context: bpy.types.Context) -> bool: return tool.Ifc.get() and context.mode == "OBJECT" - def _execute(self, context): + def _execute(self, context: bpy.types.Context) -> set[str]: ifc_file = tool.Ifc.get() if not ifc_file: self.report({"ERROR"}, "You need to start IFC project first to create a stair.") @@ -180,7 +194,7 @@ class AddStair(bpy.types.Operator, tool.Ifc.Operator): bl_description = "Add Bonsai parametric stair to the active IFC element" bl_options = {"REGISTER", "UNDO"} - def _execute(self, context): + def _execute(self, context: bpy.types.Context) -> set[str]: obj = context.active_object assert obj element = tool.Ifc.get_entity(obj) @@ -188,6 +202,8 @@ class AddStair(bpy.types.Operator, tool.Ifc.Operator): props = tool.Model.get_stair_props(obj) ifc_file = tool.Ifc.get() + tool.Blender.get_addon_preferences().default_parameters.stair.copy_to(props) + # Use the special method that includes custom_tread_lock for IFC storage stair_data = props.get_props_kwargs_for_ifc_export(convert_to_project_units=True) pset = tool.Pset.get_element_pset(element, "BBIM_Stair") @@ -207,14 +223,16 @@ class AddStair(bpy.types.Operator, tool.Ifc.Operator): regenerate_stair_mesh(obj) update_ifc_stair_props(obj) tool.Model.add_body_representation(obj) + return {"FINISHED"} class CancelEditingStair(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.cancel_editing_stair" bl_label = "Cancel Editing Stair" + bl_description = "Cancel editing and revert stair parameters to their previous values" bl_options = {"REGISTER"} - def _execute(self, context): + def _execute(self, context: bpy.types.Context) -> set[str]: obj = context.active_object assert obj element = tool.Ifc.get_entity(obj) @@ -233,9 +251,10 @@ class CancelEditingStair(bpy.types.Operator, tool.Ifc.Operator): class FinishEditingStair(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.finish_editing_stair" bl_label = "Finish Editing Stair" + bl_description = "Apply changes and finish editing stair parameters" bl_options = {"REGISTER"} - def _execute(self, context): + def _execute(self, context: bpy.types.Context) -> set[str]: obj = context.active_object assert obj element = tool.Ifc.get_entity(obj) @@ -260,9 +279,10 @@ class FinishEditingStair(bpy.types.Operator, tool.Ifc.Operator): class EnableEditingStair(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.enable_editing_stair" bl_label = "Enable Editing Stair" + bl_description = "Enter edit mode to modify stair parameters interactively" bl_options = {"REGISTER"} - def _execute(self, context): + def _execute(self, context: bpy.types.Context) -> set[str]: obj = context.active_object assert obj props = tool.Model.get_stair_props(obj) @@ -279,7 +299,7 @@ class RemoveStair(bpy.types.Operator, tool.Ifc.Operator): bl_label = "Remove Stair" bl_options = {"REGISTER"} - def _execute(self, context): + def _execute(self, context: bpy.types.Context) -> set[str]: obj = context.active_object assert obj props = tool.Model.get_stair_props(obj) @@ -291,3 +311,460 @@ class RemoveStair(bpy.types.Operator, tool.Ifc.Operator): ifcopenshell.api.pset.remove_pset(tool.Ifc.get(), product=element, pset=pset) return {"FINISHED"} + + +class ToggleStairProperty(bpy.types.Operator): + """Toggle a boolean property on stair properties""" + + bl_idname = "bim.toggle_stair_property" + bl_label = "Toggle Stair Property" + bl_options = {"REGISTER", "UNDO"} + + property_name: bpy.props.StringProperty( + name="Property Name", + description="Name of the boolean property to toggle", + options={"HIDDEN", "SKIP_SAVE"}, + ) + + # Map property names to their descriptions + PROPERTY_DESCRIPTIONS: dict[str, str] = { + "total_length_lock": "Lock/unlock total stair length. When locked, changing treads adjusts tread depth", + "custom_tread_lock": "Lock/unlock first and last tread dimensions. When unlocked, they can differ from other treads", + } + + @classmethod + def description(cls, context: bpy.types.Context, properties: bpy.types.OperatorProperties) -> str: + prop_name = properties.property_name + return cls.PROPERTY_DESCRIPTIONS.get(prop_name, "Toggle a boolean property on stair properties") + + def execute(self, context: bpy.types.Context) -> set[str]: + obj = context.active_object + if not obj or not self.property_name: + return {"CANCELLED"} + + props = tool.Model.get_stair_props(obj) + if hasattr(props, self.property_name): + setattr(props, self.property_name, not getattr(props, self.property_name)) + return {"FINISHED"} + return {"CANCELLED"} + + +class AdjustStairTreads(bpy.types.Operator): + """Adjust the number of treads. Shift+click to enter a specific number.""" + + bl_idname = "bim.adjust_stair_treads" + bl_label = "Adjust Stair Treads" + bl_options = {"REGISTER", "UNDO"} + + increment: IntProperty(name="Increment", default=1) + + def invoke(self, context: bpy.types.Context, event: bpy.types.Event) -> set[str]: + if event.shift: + bpy.ops.bim.set_stair_treads("INVOKE_DEFAULT") + return {"FINISHED"} + return self.execute(context) + + def execute(self, context: bpy.types.Context) -> set[str]: + obj = context.active_object + if not obj: + return {"CANCELLED"} + + props = tool.Model.get_stair_props(obj) + new_value = props.number_of_treads + self.increment + if new_value >= 1: + props.number_of_treads = new_value + + return {"FINISHED"} + + +class SetStairTreads(bpy.types.Operator): + """Set the number of treads to a specific value.""" + + bl_idname = "bim.set_stair_treads" + bl_label = "Set Number of Treads" + bl_options = {"REGISTER", "UNDO", "INTERNAL"} + + def invoke(self, context: bpy.types.Context, event: bpy.types.Event) -> set[str]: # noqa: ARG002 + obj = context.active_object + if not obj: + return {"CANCELLED"} + + props = tool.Model.get_stair_props(obj) + self._input = IntegerInputState.from_value(props.number_of_treads, min_value=1) + self._original_value = props.number_of_treads + + bpy.ops.ed.undo_push(message="Set Number of Treads") + context.window_manager.modal_handler_add(self) + update_header(context, self._format_header()) + return {"RUNNING_MODAL"} + + def modal(self, context: bpy.types.Context, event: bpy.types.Event) -> set[str]: + return run_integer_input_modal(self, context, event) + + def _apply_value(self, context: bpy.types.Context) -> None: + obj = context.active_object + if not obj: + return + value = self._input.get_value() + if value is not None: + props = tool.Model.get_stair_props(obj) + props.number_of_treads = value + + def _restore_value(self, context: bpy.types.Context) -> None: + obj = context.active_object + if obj: + props = tool.Model.get_stair_props(obj) + props.number_of_treads = self._original_value + + def _format_header(self) -> str: + input_str = self._input.get_input_string() + validity = "" if self._input.is_valid else " [must be >= 1]" + return f"Number of Treads: {input_str}_{validity} | Enter to confirm, Esc to cancel" + + +class CycleStairType(bpy.types.Operator, gizmo.CycleTypeMixin): + """Cycle through stair types. Shift+click to cycle in reverse.""" + + bl_idname = "bim.cycle_stair_type" + bl_label = "Cycle Stair Type" + bl_options = {"REGISTER", "UNDO"} + + props_getter = "get_stair_props" + type_literal = tool.Model.StairType + type_attr = "stair_type" + skip_element_check = True + + def execute(self, context: bpy.types.Context) -> set[str]: + return self._cycle_type(context) + + +# Tread run accessors - callbacks that delegate to BIMStairProperties methods +_tread_run_accessors = { + 0: ( + lambda props: props.get_custom_tread_run(0), + lambda props, value: props.set_custom_tread_run(0, value), + ), + 1: ( + lambda props: props.get_custom_tread_run(1), + lambda props, value: props.set_custom_tread_run(1, value), + ), +} + +# Shorthand for gizmo offset constants used in DimensionGizmoConfig lambdas +_G = gizmo.BaseParametricGizmoGroup + + +class GizmoStairEdition(bpy.types.GizmoGroup, gizmo.BaseParametricGizmoGroup): + bl_idname = "OBJECT_GGT_bim_stair_edition" + bl_label = "Stair Editing Gizmo" + bl_space_type = "VIEW_3D" + bl_region_type = "WINDOW" + bl_options = {"3D", "PERSISTENT"} + + # === Stair-Specific Icon Layout (meters) === + # Additional icons for stair editing, positioned after standard icons: + # [Validate] [Cancel] [Cycle] [TreadLock] [Plus] [Minus] + ICON_TREAD_LOCK_X = 1.24 # X position for tread lock toggle icon + ICON_PLUS_X = 1.61 # X position for add tread (+) icon + ICON_MINUS_X = 1.98 # X position for remove tread (-) icon + ICON_PLUS_MINUS_SCALE = 0.24 # Scale for plus/minus icons (slightly larger) + ICON_CYCLE_SCALE = 0.3 # Scale for cycle type icon + ICON_Z_OFFSET = 0.5 # Z offset above geometry for editing icons + + enable_editing_operator = "bim.enable_editing_stair" + finish_editing_operator = "bim.finish_editing_stair" + cancel_editing_operator = "bim.cancel_editing_stair" + cycle_type_operator = "bim.cycle_stair_type" + + def get_icon_y_extent(self, props: "BIMStairProperties") -> tuple[float, float]: + """Get Y extents for stair icon positioning. + + Stair geometry extends from Y=0 to Y=width. + Icons are positioned beyond the width on either side. + """ + furthest_y = props.width + 2 * self.GIZMO_OFFSET + return (furthest_y, furthest_y) + + dimension_gizmo_props = [ + DimensionGizmoConfig( + attr_name="total_length_target", + axis=(1, 0, 0), + prop_name="Total Length", + min_value=0.01, + text_offset_sign=-1, + matrix_position=lambda p: V_(0, -_G.GIZMO_OFFSET, -_G.GIZMO_OFFSET), + ), + DimensionGizmoConfig( + attr_name="height", + axis=(0, 0, 1), + min_value=0.01, + text_alignment="start", + matrix_position=lambda p: V_(p.get_total_run() + _G.GIZMO_OFFSET, -_G.GIZMO_OFFSET, 0), + ), + DimensionGizmoConfig( + attr_name="width", + axis=(0, 1, 0), + min_value=0.01, + matrix_position=lambda p: V_(_G.GIZMO_OFFSET, 0, -_G.GIZMO_OFFSET), + ), + DimensionGizmoConfig( + attr_name="tread_run", + axis=(1, 0, 0), + min_value=0.01, + visibility_condition=lambda p: p.has_tread_run_gizmo(), + matrix_position=lambda p: V_( + 0 if p.custom_tread_lock else p.custom_first_last_tread_run[0], + 0, + p.get_riser_height() if p.custom_tread_lock else p.get_riser_height() * 2, + ), + ), + DimensionGizmoConfig( + attr_name="custom_first_tread_run", + axis=(1, 0, 0), + prop_name="First Tread", + min_value=0.01, + visibility_condition=lambda p: p.has_custom_treads(), + compute_value=_tread_run_accessors[0][0], + apply_value=_tread_run_accessors[0][1], + matrix_position=lambda p: V_(0, 0, p.get_riser_height()), + ), + DimensionGizmoConfig( + attr_name="custom_last_tread_run", + axis=(1, 0, 0), + prop_name="Last Tread", + min_value=0.01, + visibility_condition=lambda p: p.has_custom_treads(), + compute_value=_tread_run_accessors[1][0], + apply_value=_tread_run_accessors[1][1], + matrix_position=lambda p: V_(p.get_total_run() - p.custom_first_last_tread_run[1], 0, p.height), + ), + DimensionGizmoConfig( + attr_name="nosing_length", + axis=(-1, 0, 0), + matrix_position=lambda p: V_(0, p.width / 2, p.get_riser_height()), + ), + DimensionGizmoConfig( + attr_name="tread_depth", + axis=(0, 0, -1), + visibility_condition=lambda p: p.has_tread_depth(), + matrix_position=lambda p: V_(0, 0, p.get_riser_height()), + ), + DimensionGizmoConfig( + attr_name="riser_height", + axis=(0, 0, 1), + min_value=0.01, + text_alignment="start", + compute_value=lambda p: p.get_riser_height(), + apply_value=lambda p, v: p.set_riser_height(v), + matrix_position=lambda p: V_(p.tread_run, p.width, 0), + ), + DimensionGizmoConfig( + attr_name="nosing_depth", + axis=(0, 0, -1), + visibility_condition=lambda p: p.has_nosing(), + matrix_position=lambda p: V_(-p.nosing_length, p.width / 2, p.get_riser_height()), + ), + DimensionGizmoConfig( + attr_name="base_slab_depth", + axis=(0, 0, -1), + visibility_condition=lambda p: p.is_concrete_stair(), + matrix_position=lambda p: V_(0, p.width / 2, 0), + ), + DimensionGizmoConfig( + attr_name="top_slab_depth", + axis=(0, 0, -1), + visibility_condition=lambda p: p.is_concrete_stair(), + matrix_position=lambda p: V_(p.get_total_run(), p.width / 2, p.height), + ), + ] + + # Metadata-driven dispatch for props and preferences + props_getter = "get_stair_props" + gizmo_pref_name = "stair" + + @classmethod + def is_element_type(cls, element: ifcopenshell.entity_instance) -> bool: + return tool.Blender.Modifier.is_stair(element) + + def setup_element_specific_gizmos(self, context: bpy.types.Context) -> None: + """Create stair-specific icon gizmos (lock, plus, minus).""" + self.lock_gizmo = self.create_icon_gizmo( + "VIEW3D_GT_lock", + self.COLOR_BLUE, + "bim.toggle_stair_property", + prop_path="BIMStairProperties.total_length_lock", + property_name="total_length_lock", + ) + self.tread_lock_gizmo = self.create_icon_gizmo( + "VIEW3D_GT_lock", + (1.0, 1.0, 1.0), + "bim.toggle_stair_property", + prop_path="BIMStairProperties.custom_tread_lock", + property_name="custom_tread_lock", + ) + self.plus_gizmo = self.create_icon_gizmo( + "VIEW3D_GT_plus", self.COLOR_GREEN, "bim.adjust_stair_treads", increment=1 + ) + self.minus_gizmo = self.create_icon_gizmo( + "VIEW3D_GT_minus", self.COLOR_RED, "bim.adjust_stair_treads", increment=-1 + ) + + def _refresh_element_specific(self, context: bpy.types.Context, mw: Matrix, props: "BIMStairProperties") -> None: + """Update stair-specific lock and tread count gizmos.""" + billboard_rot = gizmo.get_billboard_rotation(context) + self.update_lock_gizmo(mw, props, billboard_rot) + self.update_tread_lock_gizmo(props) + self.update_tread_count_gizmos(props) + + def update_lock_gizmo(self, mw: Matrix, props: "BIMStairProperties", billboard_rot: Matrix) -> None: + """Update lock gizmo visibility, color, and position.""" + gizmo_prefs = self.get_gizmo_prefs() + if not self.update_gizmo_visibility(self.lock_gizmo, props.is_editing, gizmo_prefs.lock): + return # Hidden, skip positioning + + self.lock_gizmo.color = self.COLOR_RED if props.total_length_lock else self.COLOR_GREEN + + total_run = props.get_total_run() + local_transform = ( + Matrix.Translation(Vector((total_run + self.ICON_Z_OFFSET, -self.GIZMO_OFFSET, -self.GIZMO_OFFSET))) + @ billboard_rot + @ Matrix.Scale(self.EDITING_ICON_SCALE, 4) + ) + self.lock_gizmo.matrix_basis = mw @ local_transform + + def update_tread_lock_gizmo(self, props: "BIMStairProperties") -> None: + """Update visibility of tread lock gizmo. Positioning is handled in _update_editing_icon_positions.""" + if not hasattr(self, "tread_lock_gizmo"): + return + gizmo_prefs = self.get_gizmo_prefs() + self.update_gizmo_visibility(self.tread_lock_gizmo, props.is_editing, gizmo_prefs.lock) + + def update_tread_count_gizmos(self, props: "BIMStairProperties") -> None: + """Update visibility of +/- tread count gizmos. Positioning is handled in _update_editing_icon_positions.""" + if not hasattr(self, "plus_gizmo") or not hasattr(self, "minus_gizmo"): + return + gizmo_prefs = self.get_gizmo_prefs() + self.update_gizmo_visibility(self.plus_gizmo, props.is_editing, gizmo_prefs.plus) + # Minus has additional condition: number_of_treads > 1 + self.update_gizmo_visibility( + self.minus_gizmo, props.is_editing and props.number_of_treads > 1, gizmo_prefs.minus + ) + + def _update_dimension_gizmo_positions( + self, context: bpy.types.Context, mw: Matrix, props: "BIMStairProperties" + ) -> None: + """Update dimension gizmo positions based on camera view direction.""" + viewing_from_negative_y, viewing_from_negative_x = self.get_local_view_direction(context, mw) + billboard_rot = gizmo.get_billboard_rotation(context) + total_run = props.get_total_run() + riser_height = props.get_riser_height() + + self._update_overall_dimension_gizmos(mw, props, viewing_from_negative_y, viewing_from_negative_x, total_run) + self._update_tread_dimension_gizmos(mw, props, viewing_from_negative_y, total_run, riser_height) + self._update_detail_dimension_gizmos(mw, props, viewing_from_negative_y, riser_height) + self._update_lock_gizmo_position(mw, props, viewing_from_negative_y, billboard_rot, total_run) + self._update_editing_icon_positions(mw, props, viewing_from_negative_y, billboard_rot) + + def _update_overall_dimension_gizmos( + self, + mw: Matrix, + props: "BIMStairProperties", + viewing_from_negative_y: bool, + viewing_from_negative_x: bool, + total_run: float, + ) -> None: + """Update overall dimension gizmos (total_length, width, height).""" + y_pos_offset = self.get_y_position_for_view(props, viewing_from_negative_y, use_offset=True) + x_pos = total_run + self.GIZMO_OFFSET if viewing_from_negative_x else -self.GIZMO_OFFSET + + self.set_dimension_gizmo_position("total_length_target", mw, V_(0, y_pos_offset, -self.GIZMO_OFFSET), (1, 0, 0)) + self.set_dimension_gizmo_position("width", mw, V_(x_pos, 0, -self.GIZMO_OFFSET), (0, 1, 0)) + self.set_dimension_gizmo_position("height", mw, V_(total_run + self.GIZMO_OFFSET, y_pos_offset, 0), (0, 0, 1)) + + def _update_tread_dimension_gizmos( + self, + mw: Matrix, + props: "BIMStairProperties", + viewing_from_negative_y: bool, + total_run: float, + riser_height: float, + ) -> None: + """Update tread-related dimension gizmos (tread_run, custom first/last tread).""" + y_pos = self.get_y_position_for_view(props, viewing_from_negative_y, use_offset=False) + + # tread_run position depends on custom_tread_lock state + if props.custom_tread_lock: + tread_x, tread_z = 0, riser_height + else: + tread_x = props.custom_first_last_tread_run[0] + tread_z = riser_height * 2 + self.set_dimension_gizmo_position("tread_run", mw, V_(tread_x, y_pos, tread_z), (1, 0, 0)) + + self.set_dimension_gizmo_position("custom_first_tread_run", mw, V_(0, y_pos, riser_height), (1, 0, 0)) + + last_x = total_run - props.custom_first_last_tread_run[1] + self.set_dimension_gizmo_position("custom_last_tread_run", mw, V_(last_x, y_pos, props.height), (1, 0, 0)) + + def _update_detail_dimension_gizmos( + self, mw: Matrix, props: "BIMStairProperties", viewing_from_negative_y: bool, riser_height: float + ) -> None: + """Update detail dimension gizmos (nosing, tread depth, riser height).""" + y_pos = self.get_y_position_for_view(props, viewing_from_negative_y, use_offset=False) + + self.set_dimension_gizmo_position("nosing_length", mw, V_(0, props.width / 2, riser_height), (-1, 0, 0)) + self.set_dimension_gizmo_position("tread_depth", mw, V_(0, y_pos, riser_height), (0, 0, -1)) + self.set_dimension_gizmo_position("riser_height", mw, V_(props.tread_run, y_pos, 0), (0, 0, 1)) + self.set_dimension_gizmo_position( + "nosing_depth", mw, V_(-props.nosing_length, props.width / 2, riser_height), (0, 0, -1) + ) + + def _update_lock_gizmo_position( + self, + mw: Matrix, + props: "BIMStairProperties", + viewing_from_negative_y: bool, + billboard_rot: Matrix, + total_run: float, + ) -> None: + """Update lock gizmo position based on Y view direction.""" + y_pos = self.get_y_position_for_view(props, viewing_from_negative_y, use_offset=True) + self.set_icon_gizmo_position( + "lock_gizmo", + mw, + total_run + self.ICON_Z_OFFSET, + y_pos, + -self.GIZMO_OFFSET, + billboard_rot, + scale=self.EDITING_ICON_SCALE, + ) + + def _update_editing_icon_positions( + self, mw: Matrix, props: "BIMStairProperties", viewing_from_negative_y: bool, billboard_rot: Matrix + ) -> None: + """Update editing icon positions, flipping Y based on viewing angle.""" + if not props.is_editing: + return + + icon_z = props.height + self.ICON_Z_OFFSET + y_pos = self.get_icon_y_for_view(props, viewing_from_negative_y) + + self.set_icon_gizmo_position("validate_gizmo", mw, 0, y_pos, icon_z, billboard_rot) + self.set_icon_gizmo_position("cancel_gizmo", mw, self.ICON_CANCEL_X, y_pos, icon_z, billboard_rot) + self.set_icon_gizmo_position( + "cycle_gizmo", mw, self.ICON_CYCLE_X, y_pos, icon_z, billboard_rot, scale=self.ICON_CYCLE_SCALE + ) + self.set_icon_gizmo_position( + "tread_lock_gizmo", + mw, + self.ICON_TREAD_LOCK_X, + y_pos, + icon_z - self.EDITING_ICON_SCALE / 2, + billboard_rot, + scale=self.EDITING_ICON_SCALE, + ) + self.set_icon_gizmo_position( + "plus_gizmo", mw, self.ICON_PLUS_X, y_pos, icon_z, billboard_rot, scale=self.ICON_PLUS_MINUS_SCALE + ) + self.set_icon_gizmo_position( + "minus_gizmo", mw, self.ICON_MINUS_X, y_pos, icon_z, billboard_rot, scale=self.ICON_PLUS_MINUS_SCALE + ) diff --git a/src/bonsai/bonsai/bim/module/model/sverchok_modifier.py b/src/bonsai/bonsai/bim/module/model/sverchok_modifier.py index d30852f1eb..0a318b1fb1 100644 --- a/src/bonsai/bonsai/bim/module/model/sverchok_modifier.py +++ b/src/bonsai/bonsai/bim/module/model/sverchok_modifier.py @@ -16,18 +16,18 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bmesh +import json +import os.path +import zipfile +import bmesh +import bpy import ifcopenshell import ifcopenshell.api.pset import ifcopenshell.util.element -import bonsai.tool as tool +from bpy_extras.io_utils import ExportHelper, ImportHelper -import json -import zipfile -import os.path -from bpy_extras.io_utils import ImportHelper, ExportHelper +import bonsai.tool as tool def update_sverchok_modifier(context): diff --git a/src/bonsai/bonsai/bim/module/model/ui.py b/src/bonsai/bonsai/bim/module/model/ui.py index 535d6f0ad3..d8a297433b 100644 --- a/src/bonsai/bonsai/bim/module/model/ui.py +++ b/src/bonsai/bonsai/bim/module/model/ui.py @@ -16,32 +16,37 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from __future__ import annotations + +from collections.abc import Iterable +from typing import TYPE_CHECKING, Any + import bpy +from bpy.types import Menu, Panel + import bonsai.bim import bonsai.tool as tool -from bpy.types import Panel, Menu +from bonsai.bim import module from bonsai.bim.helper import prop_with_search from bonsai.bim.module.model.data import ( - AuthoringData, ArrayData, - StairData, - SverchokData, - WindowData, + AuthoringData, DoorData, RailingData, RoofData, + StairData, + SverchokData, + WindowData, ) -from bonsai.bim.module.model.stair import regenerate_stair_mesh -from bonsai.bim.module.model.railing import update_railing_modifier_bmesh -from bonsai.bim.module.model.roof import update_roof_modifier_bmesh -from collections.abc import Iterable -from typing import Any, TYPE_CHECKING if TYPE_CHECKING or bpy.app.version >= (5, 0, 0): import _bl_ui_utils.layout as bl_ui_utils_layout else: import bl_ui_utils.layout as bl_ui_utils_layout +if TYPE_CHECKING: + import bonsai.bim.module.model.prop as module_prop + class BIM_MT_type_manager_menu(bpy.types.Menu): bl_label = "Type Manager Menu" @@ -224,6 +229,7 @@ class BIM_PT_array(bpy.types.Panel): if ArrayData.data["parameters"]: row = self.layout.row(align=True) row.label(text=ArrayData.data["parameters"]["parent_name"], icon="CON_CHILDOF") + row.operator("bim.regenerate_array", icon="FILE_REFRESH", text="") row.operator("bim.select_array_parent", icon="OBJECT_DATA", text="") row.operator("bim.select_all_array_objects", icon="RESTRICT_SELECT_OFF", text="") @@ -241,7 +247,6 @@ class BIM_PT_array(bpy.types.Panel): row.prop(props, "method") row = box.row(align=True) row.prop(props, "use_local_space") - row.prop(props, "sync_children") col = box.column() row = col.row(align=True) row.prop(props, "x") @@ -305,49 +310,8 @@ class BIM_PT_stair(bpy.types.Panel): row.operator("bim.finish_editing_stair", icon="CHECKMARK", text="Finish Editing") row.operator("bim.cancel_editing_stair", icon="CANCEL", text="") row = self.layout.row(align=True) - for prop_name in props.get_props_kwargs(): - # Skip custom_tread_lock as it's handled with custom_first_last_tread_run - if prop_name == "custom_tread_lock": - continue - prop_value = getattr(props, prop_name) - - # Special handling for custom_first_last_tread_run - if prop_name == "custom_first_last_tread_run": - # Draw the lock toggle - row_lock = self.layout.row(align=True) - lock_text = ( - "Lock First/Last Treads" if not props.custom_tread_lock else "Unlock First/Last Treads" - ) - row_lock.prop( - props, - "custom_tread_lock", - text=lock_text, - icon="LOCKED" if props.custom_tread_lock else "UNLOCKED", - ) - - # Only show the custom values input if unlocked - if not props.custom_tread_lock: - prop_readable_name = props.bl_rna.properties[prop_name].name - self.layout.label(text=f"{prop_readable_name}:") - self.layout.prop(props, prop_name, text="") - elif isinstance(prop_value, Iterable) and not isinstance(prop_value, str): - prop_readable_name = props.bl_rna.properties[prop_name].name - self.layout.label(text=f"{prop_readable_name}:") - self.layout.prop(props, prop_name, text="") - else: - self.layout.prop(props, prop_name) - - if prop_name == "height": # Weak but we just want to insert this inside props drawing - row_length = self.layout.row(align=True) - row_length.prop(props, "total_length_target") - row_length.prop( - props, - "total_length_lock", - text="", - icon="LOCKED" if props.total_length_lock else "UNLOCKED", - ) - regenerate_stair_mesh(obj) + draw_stair_properties(self.layout, props) else: calculated_params = StairData.data["calculated_params"] row.operator("bim.enable_editing_stair", icon="GREASEPENCIL", text="") @@ -440,39 +404,11 @@ class BIM_PT_window(bpy.types.Panel): row.label(text="Window parameters", icon="OUTLINER_OB_LATTICE") if props.is_editing: - number_of_panels, panels_data = props.window_types_panels[props.window_type] row = self.layout.row(align=True) row.operator("bim.finish_editing_window", icon="CHECKMARK", text="Finish Editing") row.operator("bim.cancel_editing_window", icon="CANCEL", text="") - general_props = props.get_general_kwargs() - for prop in general_props: - self.layout.prop(props, prop) - - lining_props = props.get_lining_kwargs() - self.layout.label(text="Lining properties") - for prop in lining_props: - self.layout.prop(props, prop) - - panel_props = props.get_panel_kwargs() - self.layout.label(text="Panel properties") - - panel_box = self.layout.box() - row = panel_box.row() - cols = [row.column(align=True) for i in range(number_of_panels + 1)] - - cols[0].label(text="") - - for panel_i in range(number_of_panels): - r = cols[panel_i + 1].row() - r.alignment = "CENTER" - r.label(text=f"#{panel_i}") - r = cols[panel_i + 1].row() - - for prop in panel_props: - cols[0].label(text=f"{props.bl_rna.properties[prop].name}") - for panel_i in range(number_of_panels): - cols[panel_i + 1].prop(props, prop, index=panel_i, text="") + draw_window_properties(self.layout, props) self.layout.use_property_split = True self.layout.label(text="Material Properties") @@ -560,19 +496,7 @@ class BIM_PT_door(bpy.types.Panel): row.operator("bim.finish_editing_door", icon="CHECKMARK", text="Finish Editing") row.operator("bim.cancel_editing_door", icon="CANCEL", text="") - general_props = props.get_general_kwargs() - for prop in general_props: - self.layout.prop(props, prop) - - lining_props = props.get_lining_kwargs() - self.layout.label(text="Lining Properties") - for prop in lining_props: - self.layout.prop(props, prop) - - panel_props = props.get_panel_kwargs() - self.layout.label(text="Panel Properties") - for prop in panel_props: - self.layout.prop(props, prop) + draw_door_properties(self.layout, props) self.layout.use_property_split = True self.layout.label(text="Material Properties") @@ -643,17 +567,7 @@ class BIM_PT_railing(bpy.types.Panel): row.operator("bim.finish_editing_railing", icon="CHECKMARK", text="Finish Editing") row.operator("bim.cancel_editing_railing", icon="CANCEL", text="") - general_props = props.get_general_kwargs() - for prop in general_props: - if prop == "support_spacing" and props.use_manual_supports: - row = self.layout.row() - row.prop(props, prop) - row.active = False - continue - self.layout.prop(props, prop) - - update_railing_modifier_bmesh(context) - + draw_railing_properties(self.layout, props) elif props.is_editing_path: row.operator("bim.finish_editing_railing_path", icon="CHECKMARK", text="") row.operator("bim.cancel_editing_railing_path", icon="CANCEL", text="") @@ -708,11 +622,7 @@ class BIM_PT_roof(bpy.types.Panel): row.operator("bim.finish_editing_roof", icon="CHECKMARK", text="Finish Editing") row.operator("bim.cancel_editing_roof", icon="CANCEL", text="") - general_props = props.get_general_kwargs() - for prop in general_props: - self.layout.prop(props, prop) - - update_roof_modifier_bmesh(obj) + draw_roof_properties(self.layout, props) elif props.is_editing_path: row.operator("bim.finish_editing_roof_path", icon="CHECKMARK", text="") row.operator("bim.cancel_editing_roof_path", icon="CANCEL", text="") @@ -762,18 +672,158 @@ class BIM_PT_external_parametric_geometry(bpy.types.Panel): row.operator("bim.apply_external_parametric_geometry", icon="CHECKMARK", text="") row.prop(props, "is_editing", icon="CANCEL", text="") - row = layout.row(align=True) - row.prop_search(props, "geo_nodes", bpy.data, "node_groups") - if props.geo_nodes: - assert (modifier := tool.Model.get_epg_modifier(obj)) - inputs = tool.Model.get_parametric_geometry_inputs(modifier) - # NOTE: users won't be able to see inputs descriptions. - # If we add group node inputs as modifiers inputs, descriptions will be visible. - # But then we need to ensure inputs are up to date - # (e.g. probably just by adding a refresh button). - for input in inputs: - row = layout.row(align=True) - row.prop(input, "default_value", text=input.name) + layout.prop(props, "geometry_source") + if props.geometry_source == "GEONODES": + row = layout.row(align=True) + row.prop_search(props, "geo_nodes", bpy.data, "node_groups") + if props.geo_nodes: + assert (modifier := tool.Model.get_epg_modifier(obj)) + inputs = tool.Model.get_parametric_geometry_inputs(modifier) + # NOTE: users won't be able to see inputs descriptions. + # If we add group node inputs as modifiers inputs, descriptions will be visible. + # But then we need to ensure inputs are up to date + # (e.g. probably just by adding a refresh button). + for input in inputs: + row = layout.row(align=True) + row.prop(input, "default_value", text=input.name) + elif props.geometry_source == "IFCSVERCHOK": + row = layout.row(align=True) + row.prop(props, "sverchok_nodes") + if props.sverchok_nodes: + # TODO: Updating mesh in `draw` is not ideal, + # should find a way to update only on graph changes. + res = tool.Model.update_mesh_from_sverchok(obj, props.sverchok_nodes) + if res is not None: + layout.label(text=f"Error Updating from Graph, See System Console", icon="ERROR") + + layout.label(text="Parameters:") + box = layout.box() + + group_node = tool.Model.get_ifcsverchok_group_node(props.sverchok_nodes) + node_tree = group_node.node_tree + + for socket, interface_socket in zip(group_node.inputs, node_tree.sockets("INPUT")): + socket.draw_group_property(box, socket.name, interface_socket) + + +def draw_door_properties(layout: bpy.types.UILayout, props: module_prop.BIMDoorProperties) -> None: + """Draw door properties UI (shared between properties panel and preferences).""" + # General properties + general_props = props.get_general_kwargs() + for prop in general_props: + layout.prop(props, prop) + + # Lining properties + layout.label(text="Lining Properties") + lining_props = props.get_lining_kwargs() + for prop in lining_props: + layout.prop(props, prop) + + # Panel properties + layout.label(text="Panel Properties") + panel_props = props.get_panel_kwargs() + for prop in panel_props: + layout.prop(props, prop) + + +def draw_window_properties(layout: bpy.types.UILayout, props: module_prop.BIMWindowProperties) -> None: + """Draw window properties UI (shared between properties panel and preferences).""" + number_of_panels, panels_data = props.window_types_panels[props.window_type] + + # General and lining properties + general_props = props.get_general_kwargs() + for prop in general_props: + layout.prop(props, prop) + + layout.label(text="Lining Properties") + lining_props = props.get_lining_kwargs() + for prop in lining_props: + layout.prop(props, prop) + + # Panel properties (special layout for multiple panels) + panel_props = props.get_panel_kwargs() + layout.label(text="Panel Properties") + + panel_box = layout.box() + row = panel_box.row() + cols = [row.column(align=True) for i in range(number_of_panels + 1)] + + cols[0].label(text="") + + for panel_i in range(number_of_panels): + r = cols[panel_i + 1].row() + r.alignment = "CENTER" + r.label(text=f"#{panel_i}") + r = cols[panel_i + 1].row() + + for prop in panel_props: + cols[0].label(text=f"{props.bl_rna.properties[prop].name}") + for panel_i in range(number_of_panels): + cols[panel_i + 1].prop(props, prop, index=panel_i, text="") + + +def draw_railing_properties(layout: bpy.types.UILayout, props: module_prop.BIMRailingProperties) -> None: + """Draw railing properties UI (shared between properties panel and preferences).""" + general_props = props.get_general_kwargs() + for prop in general_props: + if prop == "support_spacing" and props.use_manual_supports: + row = layout.row() + row.prop(props, prop) + row.active = False + continue + layout.prop(props, prop) + + +def draw_roof_properties(layout: bpy.types.UILayout, props: module_prop.BIMRoofProperties) -> None: + """Draw roof properties UI (shared between properties panel and preferences).""" + # General properties + general_props = props.get_general_kwargs() + for prop in general_props: + layout.prop(props, prop) + + +def draw_stair_properties(layout: bpy.types.UILayout, props: module_prop.BIMStairProperties) -> None: + """Draw stair properties UI (shared between properties panel and preferences).""" + for prop_name in props.get_props_kwargs(): + # Skip custom_tread_lock as it's handled with custom_first_last_tread_run + if prop_name == "custom_tread_lock": + continue + + prop_value = getattr(props, prop_name) + + # Special handling for custom_first_last_tread_run + if prop_name == "custom_first_last_tread_run": + # Draw the lock toggle + row_lock = layout.row(align=True) + lock_text = "Lock First/Last Treads" if not props.custom_tread_lock else "Unlock First/Last Treads" + row_lock.prop( + props, + "custom_tread_lock", + text=lock_text, + icon="LOCKED" if props.custom_tread_lock else "UNLOCKED", + ) + + # Only show the custom values input if unlocked + if not props.custom_tread_lock: + prop_readable_name = props.bl_rna.properties[prop_name].name + layout.label(text=f"{prop_readable_name}:") + layout.prop(props, prop_name, text="") + elif isinstance(prop_value, Iterable) and not isinstance(prop_value, str): + prop_readable_name = props.bl_rna.properties[prop_name].name + layout.label(text=f"{prop_readable_name}:") + layout.prop(props, prop_name, text="") + else: + layout.prop(props, prop_name) + + if prop_name == "height": # Weak but we just want to insert this inside props drawing + row_length = layout.row(align=True) + row_length.prop(props, "total_length_target") + row_length.prop( + props, + "total_length_lock", + text="", + icon="LOCKED" if props.total_length_lock else "UNLOCKED", + ) def add_menu(self: bpy.types.Menu, context: bpy.types.Context) -> None: diff --git a/src/bonsai/bonsai/bim/module/model/wall.py b/src/bonsai/bonsai/bim/module/model/wall.py index 5b858dec83..ba3d93586b 100644 --- a/src/bonsai/bonsai/bim/module/model/wall.py +++ b/src/bonsai/bonsai/bim/module/model/wall.py @@ -18,37 +18,39 @@ # # pyright: reportUnnecessaryTypeIgnoreComment=error -import bpy import copy import math -import numpy as np +from math import acos, atan2, cos, degrees, pi, sin +from typing import TYPE_CHECKING, Any, Literal, Optional, Union, assert_never, get_args + +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.feature +import ifcopenshell.api.geometry import ifcopenshell.api.material import ifcopenshell.api.pset import ifcopenshell.api.root import ifcopenshell.api.type -import ifcopenshell.api.geometry -import ifcopenshell.util.unit import ifcopenshell.util.element import ifcopenshell.util.placement import ifcopenshell.util.representation import ifcopenshell.util.shape_builder import ifcopenshell.util.type +import ifcopenshell.util.unit import mathutils.geometry -import bonsai.core.type -import bonsai.core.root +import numpy as np +from mathutils import Matrix, Vector + import bonsai.core.geometry import bonsai.core.model as core +import bonsai.core.root +import bonsai.core.type import bonsai.tool as tool from bonsai.bim.ifc import IfcStore -from math import pi, sin, cos, degrees, atan2 -from mathutils import Vector, Matrix -from bonsai.bim.module.model.opening import FilledOpeningGenerator from bonsai.bim.module.model.decorator import PolylineDecorator, ProductDecorator +from bonsai.bim.module.model.opening import FilledOpeningGenerator from bonsai.bim.module.model.polyline import PolylineOperator -from typing import Optional, assert_never, TYPE_CHECKING, get_args, Literal, Union, Any class UnjoinWalls(bpy.types.Operator, tool.Ifc.Operator): @@ -397,6 +399,7 @@ class ChangeExtrusionDepth(bpy.types.Operator, tool.Ifc.Operator): for obj in selected_objs: element = tool.Ifc.get_entity(obj) assert element + representation = ifcopenshell.util.representation.get_representation(element, "Model", "Body", "MODEL_VIEW") if not representation: continue @@ -712,11 +715,8 @@ class DrawPolylineWall(bpy.types.Operator, PolylineOperator, tool.Ifc.Operator): return {"FINISHED"} self.handle_keyboard_input(context, event) - self.handle_inserting_polyline(context, event) - self.get_product_preview_data(context, self.relating_type) - cancel = self.handle_cancelation(context, event) if cancel is not None: ProductDecorator.uninstall() @@ -1057,37 +1057,6 @@ class DumbWallPlaner: walls.extend([tool.Ifc.get_object(e) for e in rel.RelatedObjects]) tool.Model.recalculate_walls([w for w in set(walls) if w]) - def regenerate_from_type(self, usecase_path, ifc_file, settings): - relating_type = settings["relating_type"] - - new_material = ifcopenshell.util.element.get_material(relating_type) - if not new_material or not new_material.is_a("IfcMaterialLayerSet"): - return - - parametric = ifcopenshell.util.element.get_psets(relating_type).get("EPset_Parametric") - layer_set_direction = None - if parametric: - layer_set_direction = parametric.get("LayerSetDirection", layer_set_direction) - - self.unit_scale = ifcopenshell.util.unit.calculate_unit_scale(ifc_file) - for related_object in settings["related_objects"]: - self._regenerate_from_type(related_object, layer_set_direction) - - def _regenerate_from_type( - self, related_object: ifcopenshell.entity_instance, layer_set_direction: Optional[str] - ) -> None: - obj = tool.Ifc.get_object(related_object) - if not obj or not tool.Geometry.get_active_representation(obj): - return - - material = ifcopenshell.util.element.get_material(related_object) - if not material or not material.is_a("IfcMaterialLayerSetUsage"): - return - if layer_set_direction: - material.LayerSetDirection = layer_set_direction - if material.LayerSetDirection == "AXIS2": - tool.Model.recalculate_walls([obj]) - class DumbWallJoiner: def __init__(self): diff --git a/src/bonsai/bonsai/bim/module/model/window.py b/src/bonsai/bonsai/bim/module/model/window.py index 76471c5ffe..ad473a110e 100644 --- a/src/bonsai/bonsai/bim/module/model/window.py +++ b/src/bonsai/bonsai/bim/module/model/window.py @@ -17,29 +17,38 @@ # along with Bonsai. If not, see . -import bpy -import json -import bmesh import collections import collections.abc +import json +from typing import TYPE_CHECKING, get_args + +import bmesh +import bpy import ifcopenshell -import ifcopenshell.api.geometry -import ifcopenshell.api.pset -import bonsai.tool as tool -import bonsai.core.root -import bonsai.core.geometry -from ifcopenshell.api.geometry.add_window_representation import DEFAULT_PANEL_SCHEMAS import ifcopenshell.api +import ifcopenshell.api.geometry import ifcopenshell.api.material +import ifcopenshell.api.pset import ifcopenshell.util.element import ifcopenshell.util.representation import ifcopenshell.util.shape_builder import ifcopenshell.util.unit from bmesh.types import BMVert -from mathutils import Vector -from typing import Optional, Union +from ifcopenshell.api.geometry.add_window_representation import DEFAULT_PANEL_SCHEMAS +from mathutils import Matrix, Vector + +import bonsai.core.geometry +import bonsai.core.root +import bonsai.tool as tool +from bonsai.bim.module.drawing import gizmos as gizmo +from bonsai.bim.module.drawing.gizmos import DimensionGizmoConfig + +if TYPE_CHECKING: + from bonsai.bim.module.model.prop import BIMWindowProperties V_ = tool.Blender.V_ +# Shorthand for gizmo offset constants used in DimensionGizmoConfig lambdas +_G = gizmo.BaseParametricGizmoGroup def update_window_modifier_representation(context: bpy.types.Context) -> None: @@ -139,7 +148,7 @@ def update_window_modifier_representation(context: bpy.types.Context) -> None: def create_bm_window_frame( - bm: bmesh.types.BMesh, size: Vector, thickness: Union[float, list[float]], position: Vector = V_(0, 0, 0).freeze() + bm: bmesh.types.BMesh, size: Vector, thickness: float | list[float], position: Vector = V_(0, 0, 0).freeze() ) -> list[bmesh.types.BMVert]: """`thickness` of the profile is defined as list in the following order: `(LEFT, TOP, RIGHT, BOTTOM)` @@ -226,7 +235,7 @@ def create_bm_window( frame_thickness: float, glass_thickness: float, position: Vector, - x_offsets: Optional[list] = None, + x_offsets: list | None = None, ) -> tuple[list[bmesh.types.BMVert], list[bmesh.types.BMVert], list[bmesh.types.BMVert]]: """`lining_thickness` and `x_offsets` are expected to be defined as a list, similarly to `create_bm_window_frame` `thickness` argument""" @@ -258,6 +267,9 @@ def update_window_modifier_bmesh(context: bpy.types.Context) -> None: obj = context.active_object assert obj props = tool.Model.get_window_props(obj) + if not props.is_editing: + return + panel_schema = DEFAULT_PANEL_SCHEMAS[props.window_type] accumulated_height = [0] * len(panel_schema[0]) built_panels = [] @@ -388,6 +400,7 @@ def update_window_modifier_bmesh(context: bpy.types.Context) -> None: bmesh.ops.translate(bm, vec=V_(0, lining_offset, 0), verts=bm.verts) bmesh.ops.remove_doubles(bm, verts=bm.verts, dist=0.0001) + bmesh.ops.recalc_face_normals(bm, faces=bm.faces) if bpy.context.active_object.mode == "EDIT": bmesh.update_edit_mesh(obj.data) @@ -399,7 +412,7 @@ def update_window_modifier_bmesh(context: bpy.types.Context) -> None: class BIM_OT_add_window(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "mesh.add_window" - bl_label = "Window" + bl_label = "Add Window" bl_options = {"REGISTER", "UNDO"} @classmethod @@ -444,13 +457,15 @@ class AddWindow(bpy.types.Operator, tool.Ifc.Operator): bl_description = "Add Bonsai parametric window to the active IFC element" bl_options = {"REGISTER", "UNDO"} - def _execute(self, context): + def _execute(self, context: bpy.types.Context) -> set[str]: obj = context.active_object assert obj element = tool.Ifc.get_entity(obj) assert element props = tool.Model.get_window_props(obj) + tool.Blender.get_addon_preferences().default_parameters.window.copy_to(props) + window_data = props.get_general_kwargs(convert_to_project_units=True) lining_props = props.get_lining_kwargs(convert_to_project_units=True) panel_props = props.get_panel_kwargs(convert_to_project_units=True) @@ -473,9 +488,10 @@ class AddWindow(bpy.types.Operator, tool.Ifc.Operator): class CancelEditingWindow(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.cancel_editing_window" bl_label = "Cancel Editing Window" + bl_description = "Cancel editing and revert window parameters to their previous values" bl_options = {"REGISTER"} - def _execute(self, context): + def _execute(self, context: bpy.types.Context) -> set[str]: obj = context.active_object assert obj element = tool.Ifc.get_entity(obj) @@ -501,9 +517,10 @@ class CancelEditingWindow(bpy.types.Operator, tool.Ifc.Operator): class FinishEditingWindow(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.finish_editing_window" bl_label = "Finish Editing Window" + bl_description = "Apply changes and finish editing window parameters" bl_options = {"REGISTER"} - def _execute(self, context): + def _execute(self, context: bpy.types.Context) -> set[str]: obj = context.active_object assert obj element = tool.Ifc.get_entity(obj) @@ -533,9 +550,10 @@ class FinishEditingWindow(bpy.types.Operator, tool.Ifc.Operator): class EnableEditingWindow(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.enable_editing_window" bl_label = "Enable Editing Window" + bl_description = "Enter edit mode to modify window parameters interactively" bl_options = {"REGISTER"} - def _execute(self, context): + def _execute(self, context: bpy.types.Context) -> set[str]: obj = context.active_object assert obj props = tool.Model.get_window_props(obj) @@ -558,7 +576,7 @@ class RemoveWindow(bpy.types.Operator, tool.Ifc.Operator): bl_label = "Remove Window" bl_options = {"REGISTER"} - def _execute(self, context): + def _execute(self, context: bpy.types.Context) -> set[str]: # noqa: ARG002 obj = context.active_object assert obj element = tool.Ifc.get_entity(obj) @@ -570,3 +588,226 @@ class RemoveWindow(bpy.types.Operator, tool.Ifc.Operator): ifcopenshell.api.pset.remove_pset(tool.Ifc.get(), product=element, pset=pset) return {"FINISHED"} + + +class CycleWindowType(bpy.types.Operator, tool.Ifc.Operator, gizmo.CycleTypeMixin): + """Cycle through available window types. Shift+click to cycle in reverse.""" + + bl_idname = "bim.cycle_window_type" + bl_label = "Cycle Window Type" + bl_options = {"REGISTER", "UNDO"} + + element_checker = "is_window" + props_getter = "get_window_props" + type_literal = tool.Model.WindowType + type_attr = "window_type" + + def _execute(self, context: bpy.types.Context) -> set[str]: + return self._cycle_type(context) + + +# Frame accessor factory - creates callbacks that delegate to BIMWindowProperties methods +def _make_frame_accessors(attr_name: str, panel_index: int) -> tuple[ + "collections.abc.Callable[[BIMWindowProperties], float]", + "collections.abc.Callable[[BIMWindowProperties, float], None]", +]: + """Create compute/apply callbacks for frame properties at a specific panel index. + + Args: + attr_name: Property name ("frame_depth" or "frame_thickness") + panel_index: Panel index (0, 1, or 2) + + Returns: + Tuple of (compute_fn, apply_fn) that delegate to BIMWindowProperties methods + """ + return ( + lambda props: props.get_frame_value(attr_name, panel_index), + lambda props, value: props.set_frame_value(attr_name, panel_index, value), + ) + + +_frame_accessors = { + (attr, idx): _make_frame_accessors(attr, idx) for attr in ("frame_depth", "frame_thickness") for idx in range(3) +} + + +class GizmoWindowEdition(bpy.types.GizmoGroup, gizmo.BaseParametricGizmoGroup): + bl_idname = "OBJECT_GGT_bim_window_edition" + bl_label = "Window Editing Gizmo" + bl_space_type = "VIEW_3D" + bl_region_type = "WINDOW" + bl_options = {"3D", "PERSISTENT"} + + enable_editing_operator = "bim.enable_editing_window" + finish_editing_operator = "bim.finish_editing_window" + cancel_editing_operator = "bim.cancel_editing_window" + cycle_type_operator = "bim.cycle_window_type" + + # matrix_position lambdas replace the get_dimension_matrix_* methods + dimension_gizmo_props = [ + DimensionGizmoConfig( + attr_name="overall_width", + axis=(1, 0, 0), + min_value=0.01, + text_offset_sign=-1, + matrix_position=lambda p: V_(0, p.lining_offset - _G.GIZMO_OFFSET, -_G.GIZMO_OFFSET), + ), + DimensionGizmoConfig( + attr_name="overall_height", + axis=(0, 0, 1), + min_value=0.01, + text_alignment="start", + matrix_position=lambda p: V_(p.overall_width + _G.GIZMO_OFFSET, p.lining_offset - _G.GIZMO_OFFSET, 0), + ), + DimensionGizmoConfig( + attr_name="lining_depth", + axis=(0, 1, 0), + matrix_position=lambda p: V_(p.overall_width / 2, p.lining_offset, p.overall_height), + ), + DimensionGizmoConfig( + attr_name="lining_thickness", + axis=(1, 0, 0), + matrix_position=lambda p: V_(0, p.lining_depth / 2 + p.lining_offset, p.overall_height / 2), + ), + DimensionGizmoConfig( + attr_name="lining_to_panel_offset_x", + axis=(1, 0, 0), + matrix_position=lambda p: V_( + 0, + p.get_lining_to_panel_offset_y_full() + p.frame_depth[0] + p.lining_offset, + p.lining_to_panel_offset_x, + ), + ), + DimensionGizmoConfig( + attr_name="lining_to_panel_offset_y", + axis=(0, 1, 0), + min_value=-10.0, + matrix_position=lambda p: V_( + p.overall_width - p.lining_to_panel_offset_x, + p.lining_depth + p.lining_offset, + p.lining_to_panel_offset_x, + ), + ), + DimensionGizmoConfig( + attr_name="frame_depth", + axis=(0, -1, 0), + compute_value=_frame_accessors[("frame_depth", 0)][0], + apply_value=_frame_accessors[("frame_depth", 0)][1], + matrix_position=lambda p: p.get_frame_position(0, is_depth=True), + ), + DimensionGizmoConfig( + attr_name="frame_thickness", + axis=(1, 0, 0), + compute_value=_frame_accessors[("frame_thickness", 0)][0], + apply_value=_frame_accessors[("frame_thickness", 0)][1], + matrix_position=lambda p: p.get_frame_position(0, is_depth=False), + ), + DimensionGizmoConfig( + attr_name="second_frame_depth", + axis=(0, -1, 0), + compute_value=_frame_accessors[("frame_depth", 1)][0], + apply_value=_frame_accessors[("frame_depth", 1)][1], + visibility_condition=lambda p: p.has_second_panel(), + matrix_position=lambda p: p.get_frame_position(1, is_depth=True), + ), + DimensionGizmoConfig( + attr_name="second_frame_thickness", + axis=(1, 0, 0), + compute_value=_frame_accessors[("frame_thickness", 1)][0], + apply_value=_frame_accessors[("frame_thickness", 1)][1], + visibility_condition=lambda p: p.has_second_panel(), + matrix_position=lambda p: p.get_frame_position(1, is_depth=False), + ), + DimensionGizmoConfig( + attr_name="third_frame_depth", + axis=(0, -1, 0), + compute_value=_frame_accessors[("frame_depth", 2)][0], + apply_value=_frame_accessors[("frame_depth", 2)][1], + visibility_condition=lambda p: p.has_third_panel(), + matrix_position=lambda p: p.get_frame_position(2, is_depth=True), + ), + DimensionGizmoConfig( + attr_name="third_frame_thickness", + axis=(1, 0, 0), + compute_value=_frame_accessors[("frame_thickness", 2)][0], + apply_value=_frame_accessors[("frame_thickness", 2)][1], + visibility_condition=lambda p: p.has_third_panel(), + matrix_position=lambda p: p.get_frame_position(2, is_depth=False), + ), + DimensionGizmoConfig( + attr_name="mullion_thickness", + axis=(1, 0, 0), + delta_scale=2.0, + visibility_condition=lambda p: p.has_mullion(), + matrix_position=lambda p: V_( + p.first_mullion_offset - p.mullion_thickness / 2, + p.lining_offset, + p.overall_height / 2 + 3 * _G.GIZMO_STACK_OFFSET, + ), + ), + DimensionGizmoConfig( + attr_name="first_mullion_offset", + axis=(1, 0, 0), + visibility_condition=lambda p: p.has_mullion(), + matrix_position=lambda p: V_(0, p.lining_offset, p.overall_height / 2 + _G.GIZMO_STACK_OFFSET), + ), + DimensionGizmoConfig( + attr_name="second_mullion_offset", + axis=(1, 0, 0), + visibility_condition=lambda p: p.has_second_mullion(), + matrix_position=lambda p: V_(0, p.lining_offset, p.overall_height / 2 + 2 * _G.GIZMO_STACK_OFFSET), + ), + DimensionGizmoConfig( + attr_name="transom_thickness", + axis=(0, 0, 1), + delta_scale=2.0, + visibility_condition=lambda p: p.has_transom(), + matrix_position=lambda p: V_( + p.overall_width / 2 + 2 * _G.GIZMO_STACK_OFFSET, + p.lining_offset, + p.first_transom_offset - p.transom_thickness / 2, + ), + ), + DimensionGizmoConfig( + attr_name="first_transom_offset", + axis=(0, 0, 1), + visibility_condition=lambda p: p.has_transom(), + matrix_position=lambda p: V_(p.overall_width / 2, p.lining_offset, 0), + ), + DimensionGizmoConfig( + attr_name="second_transom_offset", + axis=(0, 0, 1), + visibility_condition=lambda p: p.has_second_transom(), + matrix_position=lambda p: V_(p.overall_width / 2 + _G.GIZMO_STACK_OFFSET, p.lining_offset, 0), + ), + # lining_offset is handled specially in _update_dimension_gizmo_positions due to negative value support + DimensionGizmoConfig(attr_name="lining_offset", axis=(0, 1, 0), min_value=-10.0), + ] + + props_getter = "get_window_props" + gizmo_pref_name = "window" + + @classmethod + def is_element_type(cls, element: ifcopenshell.entity_instance) -> bool: + return tool.Blender.Modifier.is_window(element) + + def get_icon_y_extent(self, props: "BIMWindowProperties") -> tuple[float, float]: + """Get Y extents for window icon positioning. + + Window geometry can extend asymmetrically in +Y and -Y directions + depending on lining_offset (which can be negative). + """ + furthest_positive_y = ( + max(0, props.lining_offset) + props.lining_depth + props.lining_to_panel_offset_y + 2 * self.GIZMO_OFFSET + ) + furthest_negative_y = abs(min(0, props.lining_offset)) + 2 * self.GIZMO_OFFSET + return (furthest_positive_y, furthest_negative_y) + + # Window uses base class setup() and refresh() - no element-specific gizmos needed + + def _update_dimension_gizmo_positions( + self, context: bpy.types.Context, mw: Matrix, props: "BIMWindowProperties" + ) -> None: + """Update dimension gizmo positions based on camera view direction.""" + # Window uses base implementation with default casing_offset=0 + self._update_view_dependent_dimensions(context, mw, props) diff --git a/src/bonsai/bonsai/bim/module/model/workspace.py b/src/bonsai/bonsai/bim/module/model/workspace.py index 0aa7f7113e..7b7a91906d 100644 --- a/src/bonsai/bonsai/bim/module/model/workspace.py +++ b/src/bonsai/bonsai/bim/module/model/workspace.py @@ -18,19 +18,21 @@ import os import sys +from functools import partial +from typing import Any, Optional, Union + import bpy import bpy.utils.previews +from bpy.types import Menu, WorkSpaceTool + import bonsai.bim -import bonsai.tool as tool import bonsai.core.model as core -from bonsai.bim.module.model.wall import DumbWallJoiner, DumbWallAligner -from bonsai.bim.helper import prop_with_search, draw_attribute -from bpy.types import WorkSpaceTool, Menu +import bonsai.tool as tool +from bonsai.bim.helper import draw_attribute, prop_with_search from bonsai.bim.module.model.data import AuthoringData, ItemData -from bonsai.bim.module.system.data import PortData from bonsai.bim.module.model.prop import get_ifc_class -from typing import Optional, Union, Any -from functools import partial +from bonsai.bim.module.model.wall import DumbWallAligner, DumbWallJoiner +from bonsai.bim.module.system.data import PortData def load_custom_icons(): @@ -1322,6 +1324,20 @@ class Hotkey(bpy.types.Operator, tool.Ifc.Operator): if not bpy.context.selected_objects: return if self.active_material_usage == "LAYER2": + if len(bpy.context.selected_objects) != 2: + self.report( + {"ERROR"}, + "Exactly two LAYER2 items (walls, railings, etc) must be selected to perform a merge.", + ) + return + for item in bpy.context.selected_objects: + element = tool.Ifc.get_entity(item) + if tool.Model.get_usage_type(element) != "LAYER2": + self.report( + {"ERROR"}, + "Both selected items must be LAYER2 (walls, railings, etc) to perform a merge.", + ) + return bpy.ops.bim.merge_wall() else: if len(bpy.context.selected_objects) == 1: diff --git a/src/bonsai/bonsai/bim/module/nest/__init__.py b/src/bonsai/bonsai/bim/module/nest/__init__.py index 883fd00186..a4bf3de181 100644 --- a/src/bonsai/bonsai/bim/module/nest/__init__.py +++ b/src/bonsai/bonsai/bim/module/nest/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.BIM_OT_nest_assign_object, diff --git a/src/bonsai/bonsai/bim/module/nest/data.py b/src/bonsai/bonsai/bim/module/nest/data.py index 77ec0d020f..abe94997fe 100644 --- a/src/bonsai/bonsai/bim/module/nest/data.py +++ b/src/bonsai/bonsai/bim/module/nest/data.py @@ -17,9 +17,10 @@ # along with Bonsai. If not, see . import bpy -import bonsai.tool as tool import ifcopenshell.util.element +import bonsai.tool as tool + def refresh(): NestData.is_loaded = False diff --git a/src/bonsai/bonsai/bim/module/nest/decorator.py b/src/bonsai/bonsai/bim/module/nest/decorator.py index 5a16ef8e44..e9630ebc26 100644 --- a/src/bonsai/bonsai/bim/module/nest/decorator.py +++ b/src/bonsai/bonsai/bim/module/nest/decorator.py @@ -21,11 +21,12 @@ import bpy import gpu import ifcopenshell import ifcopenshell.util.element -import bonsai.tool as tool from bpy.types import SpaceView3D from bpy_extras import view3d_utils from gpu_extras.batch import batch_for_shader from mathutils import Vector + +import bonsai.tool as tool from bonsai.bim.module.geometry.decorator import ItemDecorator diff --git a/src/bonsai/bonsai/bim/module/nest/operator.py b/src/bonsai/bonsai/bim/module/nest/operator.py index 68b6839e79..9d7eb2df67 100644 --- a/src/bonsai/bonsai/bim/module/nest/operator.py +++ b/src/bonsai/bonsai/bim/module/nest/operator.py @@ -19,8 +19,9 @@ import bpy import ifcopenshell import ifcopenshell.util.element -import bonsai.tool as tool + import bonsai.core.nest as core +import bonsai.tool as tool class BIM_OT_nest_assign_object(bpy.types.Operator, tool.Ifc.Operator): diff --git a/src/bonsai/bonsai/bim/module/nest/prop.py b/src/bonsai/bonsai/bim/module/nest/prop.py index 6cb787b3d4..c36388398c 100644 --- a/src/bonsai/bonsai/bim/module/nest/prop.py +++ b/src/bonsai/bonsai/bim/module/nest/prop.py @@ -16,23 +16,25 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Union + import bpy -import bonsai.tool as tool -from bonsai.bim.prop import StrProperty, Attribute -from bonsai.bim.module.spatial.data import SpatialData -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) +from bpy.types import PropertyGroup + +import bonsai.tool as tool from bonsai.bim.module.nest.decorator import NestDecorator, NestModeDecorator -from typing import TYPE_CHECKING, Union +from bonsai.bim.module.spatial.data import SpatialData +from bonsai.bim.prop import Attribute, StrProperty def update_relating_object(self: "BIMObjectNestProperties", context: bpy.types.Context) -> None: diff --git a/src/bonsai/bonsai/bim/module/nest/ui.py b/src/bonsai/bonsai/bim/module/nest/ui.py index 2ea33de49a..6d61c5d66b 100644 --- a/src/bonsai/bonsai/bim/module/nest/ui.py +++ b/src/bonsai/bonsai/bim/module/nest/ui.py @@ -16,8 +16,9 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bonsai.tool as tool from bpy.types import Panel + +import bonsai.tool as tool from bonsai.bim.module.nest.data import NestData diff --git a/src/bonsai/bonsai/bim/module/owner/__init__.py b/src/bonsai/bonsai/bim/module/owner/__init__.py index 52c1c7cc19..6d24f2f5dc 100644 --- a/src/bonsai/bonsai/bim/module/owner/__init__.py +++ b/src/bonsai/bonsai/bim/module/owner/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddActor, diff --git a/src/bonsai/bonsai/bim/module/owner/data.py b/src/bonsai/bonsai/bim/module/owner/data.py index 9eb5b9e4c8..88a56d4b1f 100644 --- a/src/bonsai/bonsai/bim/module/owner/data.py +++ b/src/bonsai/bonsai/bim/module/owner/data.py @@ -16,13 +16,15 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import Any, Union + import bpy import ifcopenshell -import bonsai.tool as tool -from typing import Any, Union from ifcopenshell.util.doc import get_entity_doc from natsort import natsorted +import bonsai.tool as tool + def refresh(): PeopleData.is_loaded = False diff --git a/src/bonsai/bonsai/bim/module/owner/operator.py b/src/bonsai/bonsai/bim/module/owner/operator.py index 4d3434f00a..2470fd8227 100644 --- a/src/bonsai/bonsai/bim/module/owner/operator.py +++ b/src/bonsai/bonsai/bim/module/owner/operator.py @@ -16,12 +16,14 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, get_args + import bpy -import bonsai.tool as tool -import bonsai.core.owner as core import ifcopenshell.api.owner from ifcopenshell.api.owner.add_address import ADDRESS_TYPE -from typing import TYPE_CHECKING, get_args + +import bonsai.core.owner as core +import bonsai.tool as tool if TYPE_CHECKING: import bpy.stub_internal.rna_enums as rna_enums diff --git a/src/bonsai/bonsai/bim/module/owner/prop.py b/src/bonsai/bonsai/bim/module/owner/prop.py index ecd8b8f723..dfe2b95ecd 100644 --- a/src/bonsai/bonsai/bim/module/owner/prop.py +++ b/src/bonsai/bonsai/bim/module/owner/prop.py @@ -16,22 +16,24 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bonsai.tool as tool -from bonsai.bim.prop import StrProperty, Attribute -from bonsai.bim.module.owner.data import OwnerData, ActorData, ObjectActorData from typing import TYPE_CHECKING, Literal -from bpy.types import PropertyGroup + +import bpy from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.module.owner.data import ActorData, ObjectActorData, OwnerData +from bonsai.bim.prop import Attribute, StrProperty def get_user_person(self: "BIMOwnerProperties", context: bpy.types.Context) -> tool.Blender.BLENDER_ENUM_ITEMS: diff --git a/src/bonsai/bonsai/bim/module/owner/ui.py b/src/bonsai/bonsai/bim/module/owner/ui.py index f348804d77..f1e7ae9ea3 100644 --- a/src/bonsai/bonsai/bim/module/owner/ui.py +++ b/src/bonsai/bonsai/bim/module/owner/ui.py @@ -16,17 +16,19 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import Any + import bpy + import bonsai.bim.helper import bonsai.tool as tool -from typing import Any from bonsai.bim.module.owner.data import ( - PeopleData, + ActorData, + ApplicationsData, + ObjectActorData, OrganisationsData, OwnerData, - ActorData, - ObjectActorData, - ApplicationsData, + PeopleData, ) diff --git a/src/bonsai/bonsai/bim/module/patch/__init__.py b/src/bonsai/bonsai/bim/module/patch/__init__.py index 0a35e4b0d8..fd5de30d38 100644 --- a/src/bonsai/bonsai/bim/module/patch/__init__.py +++ b/src/bonsai/bonsai/bim/module/patch/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.ExecuteIfcPatch, diff --git a/src/bonsai/bonsai/bim/module/patch/operator.py b/src/bonsai/bonsai/bim/module/patch/operator.py index 5ff7e998ce..57413214d6 100644 --- a/src/bonsai/bonsai/bim/module/patch/operator.py +++ b/src/bonsai/bonsai/bim/module/patch/operator.py @@ -16,17 +16,19 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os -import bpy import json +import os +from pathlib import Path +from typing import TYPE_CHECKING, cast + +import bpy import ifcopenshell import ifcpatch -import bonsai.tool as tool -import bonsai.core.patch as core +from bpy_extras.io_utils import ExportHelper, ImportHelper + import bonsai.bim.handler -from bpy_extras.io_utils import ImportHelper, ExportHelper -from pathlib import Path -from typing import cast, TYPE_CHECKING +import bonsai.core.patch as core +import bonsai.tool as tool if TYPE_CHECKING: from bonsai.bim.prop import AttributeDataType diff --git a/src/bonsai/bonsai/bim/module/patch/prop.py b/src/bonsai/bonsai/bim/module/patch/prop.py index 3d372e5036..9382b4e786 100644 --- a/src/bonsai/bonsai/bim/module/patch/prop.py +++ b/src/bonsai/bonsai/bim/module/patch/prop.py @@ -16,25 +16,26 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import importlib import importlib.util from pathlib import Path -import ifcpatch -from bonsai.bim.prop import StrProperty, Attribute -from bpy.types import PropertyGroup -from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, - BoolProperty, - IntProperty, - FloatProperty, - FloatVectorProperty, - CollectionProperty, -) from typing import TYPE_CHECKING, Literal, Union +import bpy +import ifcpatch +from bpy.props import ( + BoolProperty, + CollectionProperty, + EnumProperty, + FloatProperty, + FloatVectorProperty, + IntProperty, + PointerProperty, + StringProperty, +) +from bpy.types import PropertyGroup + +from bonsai.bim.prop import Attribute, StrProperty ifcpatchrecipes_enum: list[tuple[str, str, str]] = [] diff --git a/src/bonsai/bonsai/bim/module/patch/ui.py b/src/bonsai/bonsai/bim/module/patch/ui.py index 8c165d692f..c3101b4705 100644 --- a/src/bonsai/bonsai/bim/module/patch/ui.py +++ b/src/bonsai/bonsai/bim/module/patch/ui.py @@ -17,12 +17,14 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy -import bonsai.tool as tool -from bonsai.bim.helper import prop_with_search -from bonsai.bim.helper import draw_attributes + from typing import TYPE_CHECKING +import bpy + +import bonsai.tool as tool +from bonsai.bim.helper import draw_attributes, prop_with_search + if TYPE_CHECKING: from bonsai.bim.prop import Attribute diff --git a/src/bonsai/bonsai/bim/module/profile/__init__.py b/src/bonsai/bonsai/bim/module/profile/__init__.py index 00a6728d32..d53deebb9c 100644 --- a/src/bonsai/bonsai/bim/module/profile/__init__.py +++ b/src/bonsai/bonsai/bim/module/profile/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator, data + +from . import data, operator, prop, ui classes = ( operator.AddProfileDef, diff --git a/src/bonsai/bonsai/bim/module/profile/data.py b/src/bonsai/bonsai/bim/module/profile/data.py index eb21a72f25..34ea4d1b7b 100644 --- a/src/bonsai/bonsai/bim/module/profile/data.py +++ b/src/bonsai/bonsai/bim/module/profile/data.py @@ -16,12 +16,14 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import Any + import bpy import bpy.utils import bpy.utils.previews import ifcopenshell.util.doc + import bonsai.tool as tool -from typing import Any def refresh(): diff --git a/src/bonsai/bonsai/bim/module/profile/operator.py b/src/bonsai/bonsai/bim/module/profile/operator.py index 99f47923e4..871d8f3b86 100644 --- a/src/bonsai/bonsai/bim/module/profile/operator.py +++ b/src/bonsai/bonsai/bim/module/profile/operator.py @@ -20,14 +20,15 @@ import bpy import ifcopenshell.api import ifcopenshell.api.profile import ifcopenshell.util.element + import bonsai.bim.helper -import bonsai.tool as tool import bonsai.bim.module.model.profile as model_profile import bonsai.core.profile as core -from bonsai.bim.module.model.decorator import ProfileDecorator -from bonsai.bim.module.profile.prop import generate_thumbnail_for_active_profile -from bonsai.bim.module.profile.data import refresh +import bonsai.tool as tool from bonsai.bim.module.geometry.helper import Helper +from bonsai.bim.module.model.decorator import ProfileDecorator +from bonsai.bim.module.profile.data import refresh +from bonsai.bim.module.profile.prop import generate_thumbnail_for_active_profile class LoadProfiles(bpy.types.Operator): diff --git a/src/bonsai/bonsai/bim/module/profile/prop.py b/src/bonsai/bonsai/bim/module/profile/prop.py index f69f6a6cd9..61e2546193 100644 --- a/src/bonsai/bonsai/bim/module/profile/prop.py +++ b/src/bonsai/bonsai/bim/module/profile/prop.py @@ -16,25 +16,27 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Union + import bpy import ifcopenshell -import ifcopenshell.util.schema import ifcopenshell.util.attribute -import bonsai.tool as tool -from bonsai.bim.prop import StrProperty, Attribute -from bonsai.bim.module.profile.data import ProfileData -from bpy.types import PropertyGroup +import ifcopenshell.util.schema from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Union +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.module.profile.data import ProfileData +from bonsai.bim.prop import Attribute, StrProperty def get_profile_classes(self: "BIMProfileProperties", context: bpy.types.Context) -> list[tuple[str, str, str]]: diff --git a/src/bonsai/bonsai/bim/module/profile/ui.py b/src/bonsai/bonsai/bim/module/profile/ui.py index 33b8ca7d58..3128fe82ea 100644 --- a/src/bonsai/bonsai/bim/module/profile/ui.py +++ b/src/bonsai/bonsai/bim/module/profile/ui.py @@ -17,13 +17,16 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING + import bpy +from bpy.types import Panel, UIList + import bonsai.bim.helper import bonsai.tool as tool -from bpy.types import Panel, UIList from bonsai.bim.module.profile.data import ProfileData from bonsai.bim.module.profile.prop import generate_thumbnail_for_active_profile -from typing import TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.profile.prop import BIMProfileProperties, Profile diff --git a/src/bonsai/bonsai/bim/module/project/__init__.py b/src/bonsai/bonsai/bim/module/project/__init__.py index 1316eb0325..53ebaff14e 100644 --- a/src/bonsai/bonsai/bim/module/project/__init__.py +++ b/src/bonsai/bonsai/bim/module/project/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator, workspace, gizmo, decorator + +from . import decorator, gizmo, operator, prop, ui, workspace classes = ( operator.AddProjectLibrary, @@ -42,6 +43,7 @@ classes = ( operator.ExportIFC, operator.FlipClippingPlane, operator.IFCFileHandlerOperator, + operator.ImageScalingTool, operator.LinkIfc, operator.LoadLink, operator.LoadLinkedProject, @@ -67,6 +69,7 @@ classes = ( operator.UnassignLibraryDeclaration, operator.UnlinkIfc, operator.UnloadLink, + operator.LoadBlendMetadataAndIFC, workspace.ExploreHotkey, prop.LibraryBreadcrumb, prop.LibraryElement, diff --git a/src/bonsai/bonsai/bim/module/project/data.py b/src/bonsai/bonsai/bim/module/project/data.py index 1f51737205..e2e960b382 100644 --- a/src/bonsai/bonsai/bim/module/project/data.py +++ b/src/bonsai/bonsai/bim/module/project/data.py @@ -17,13 +17,15 @@ # along with Bonsai. If not, see . import os -import bpy -import bonsai.tool as tool -import ifcopenshell.util.file -from bonsai.bim.ifc import IfcStore -from pathlib import Path from collections import defaultdict -from typing import Union, Any +from pathlib import Path +from typing import Any, Union + +import bpy +import ifcopenshell.util.file + +import bonsai.tool as tool +from bonsai.bim.ifc import IfcStore def refresh(): diff --git a/src/bonsai/bonsai/bim/module/project/decorator.py b/src/bonsai/bonsai/bim/module/project/decorator.py index fbb3e9ae97..14035ca91c 100644 --- a/src/bonsai/bonsai/bim/module/project/decorator.py +++ b/src/bonsai/bonsai/bim/module/project/decorator.py @@ -16,17 +16,19 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import gpu +from typing import Union + import blf -import bpy import bmesh -import bonsai.tool as tool +import bpy +import gpu +from bpy.app.handlers import persistent from bpy.types import SpaceView3D from bpy_extras import view3d_utils -from mathutils import Vector from gpu_extras.batch import batch_for_shader -from bpy.app.handlers import persistent -from typing import Union +from mathutils import Vector + +import bonsai.tool as tool from bonsai.bim.module.model.decorator import PolylineDecorator diff --git a/src/bonsai/bonsai/bim/module/project/gizmo.py b/src/bonsai/bonsai/bim/module/project/gizmo.py index bb372b9cb7..d91668eaa8 100644 --- a/src/bonsai/bonsai/bim/module/project/gizmo.py +++ b/src/bonsai/bonsai/bim/module/project/gizmo.py @@ -18,10 +18,11 @@ import bpy -import bonsai.tool as tool from bpy.types import GizmoGroup from mathutils import Matrix +import bonsai.tool as tool + class ClippingPlane(GizmoGroup): bl_idname = "OBJECT_GGT_bim_clipping_plane" diff --git a/src/bonsai/bonsai/bim/module/project/operator.py b/src/bonsai/bonsai/bim/module/project/operator.py index 2f5b9c906e..b6f63f13ca 100644 --- a/src/bonsai/bonsai/bim/module/project/operator.py +++ b/src/bonsai/bonsai/bim/module/project/operator.py @@ -16,58 +16,63 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os -import bpy -import time +import datetime import json import logging -import tempfile -import traceback +import os import subprocess -import datetime -import ifcopenshell.api.attribute -import numpy as np +import tempfile +import time +import traceback +from collections import defaultdict +from math import radians +from pathlib import Path +from typing import TYPE_CHECKING, Literal, Union, get_args + +import bpy import ifcopenshell import ifcopenshell.api +import ifcopenshell.api.attribute import ifcopenshell.api.nest import ifcopenshell.api.project import ifcopenshell.api.root import ifcopenshell.geom import ifcopenshell.ifcopenshell_wrapper as W +import ifcopenshell.util.element import ifcopenshell.util.file -import ifcopenshell.util.selector import ifcopenshell.util.geolocation import ifcopenshell.util.representation -import ifcopenshell.util.element -import ifcopenshell.util.representation +import ifcopenshell.util.selector import ifcopenshell.util.shape import ifcopenshell.util.shape_builder import ifcopenshell.util.unit +import numpy as np +from bpy.app.handlers import persistent +from bpy_extras.io_utils import ExportHelper, ImportHelper +from ifcopenshell.geom import ShapeElementType +from mathutils import Matrix, Vector + import bonsai.bim.handler import bonsai.bim.helper import bonsai.bim.schema -import bonsai.tool as tool import bonsai.core.project as core -from bpy_extras.io_utils import ExportHelper, ImportHelper +import bonsai.tool as tool +from bonsai.bim import export_ifc, import_ifc from bonsai.bim.ifc import IfcStore -from bonsai.bim.ui import IFCFileSelector -from bonsai.bim import import_ifc -from bonsai.bim import export_ifc -from math import radians -from pathlib import Path -from collections import defaultdict -from mathutils import Vector, Matrix -from bpy.app.handlers import persistent -from ifcopenshell.geom import ShapeElementType -from bonsai.bim.module.project.data import LinksData, ProjectLibraryData -from bonsai.bim.module.project.decorator import ProjectDecorator, ClippingPlaneDecorator, MeasureDecorator -from bonsai.bim.module.project.prop import BreadcrumbType -from bonsai.bim.module.model.decorator import PolylineDecorator, FaceAreaDecorator +from bonsai.bim.module.model.decorator import FaceAreaDecorator, PolylineDecorator from bonsai.bim.module.model.polyline import PolylineOperator -from typing import Union, TYPE_CHECKING, get_args, Literal +from bonsai.bim.module.project.data import LinksData, ProjectLibraryData +from bonsai.bim.module.project.decorator import ( + ClippingPlaneDecorator, + MeasureDecorator, + ProjectDecorator, +) +from bonsai.bim.module.project.prop import BreadcrumbType +from bonsai.bim.ui import IFCFileSelector if TYPE_CHECKING: import bpy.stub_internal.rna_enums as rna_enums + from bonsai.bim.module.project.prop import Link @@ -611,6 +616,8 @@ class AppendLibraryElement(bpy.types.Operator, tool.Ifc.Operator): if not element: return {"FINISHED"} if element.is_a("IfcTypeProduct"): + # Store opening template from library if it exists + self.store_opening_template_from_library(element, library_file) self.import_type_from_ifc(element, context) elif element.is_a("IfcProduct"): # NOTE: Non-types are not exposed in UI directly @@ -711,6 +718,53 @@ class AppendLibraryElement(bpy.types.Operator, tool.Ifc.Operator): if element.is_a("IfcSurfaceStyle") and not tool.Ifc.get_object_by_identifier(element.id()): ifc_importer.create_style(element) + def store_opening_template_from_library( + self, element: ifcopenshell.entity_instance, library_file: ifcopenshell.file + ) -> None: + """ + Find an opening representation in the library and copy it to the current file + as a template. Store the template ID on the type for later retrieval. + """ + try: + library_element = library_file.by_guid(element.GlobalId) + except: + return + + # Find occurrences with openings in the library + library_occurrences = ifcopenshell.util.element.get_types(library_element) + + for occurrence in library_occurrences: + if not getattr(occurrence, "FillsVoids", None): + continue + + library_opening = occurrence.FillsVoids[0].RelatingOpeningElement + library_opening_rep = ifcopenshell.util.representation.get_representation( + library_opening, "Model", "Body", "MODEL_VIEW" + ) + + if not library_opening_rep: + continue + + # Check if mapped representation + if ( + library_opening_rep.RepresentationType == "MappedRepresentation" + and len(library_opening_rep.Items) == 1 + and library_opening_rep.Items[0].is_a("IfcMappedItem") + ): + + mapped_rep = library_opening_rep.Items[0].MappingSource.MappedRepresentation + + # Store ALL representation types (Tessellation, SweptSolid, etc.) + template_rep = ifcopenshell.util.element.copy_deep( + self.file, mapped_rep, exclude=["IfcGeometricRepresentationContext"] + ) + + # Store reference in type's Description + current_desc = element.Description or "" + element.Description = f"{current_desc}||BonsaiOpeningTemplate:{template_rep.id()}" + return + break + class EditProjectLibrary(bpy.types.Operator): bl_idname = "bim.edit_project_library" @@ -1005,6 +1059,41 @@ class LoadProject(bpy.types.Operator, IFCFileSelector, ImportHelper): return tooltip def execute(self, context): + if ( + tool.Blender.get_addon_preferences().save_metadata_blend_file + and self.should_start_fresh_session + and not self.is_advanced + ): + filepath = self.get_filepath() + + # First, load the IFC file temporarily to check for metadata document + temp_ifc = None + has_metadata_doc = False + try: + temp_ifc = ifcopenshell.open(str(filepath)) + for doc in temp_ifc.by_type("IfcDocumentInformation"): + if getattr(doc, "Scope", None) == "BLEND_METADATA": + has_metadata_doc = True + break + except: + pass + finally: + temp_ifc = None + + if has_metadata_doc: + suffix = tool.Blender.get_addon_preferences().metadata_blend_file_suffix + if str(filepath).lower().endswith(".ifc"): + metadata_path = Path(str(filepath)[:-4] + suffix) + else: + metadata_path = Path(str(filepath) + suffix) + if metadata_path.exists() and metadata_path.is_file(): + try: + bpy.ops.bim.load_blend_metadata_and_ifc(filepath=filepath) + self.report({"INFO"}, f"Loaded metadata file: {metadata_path.name}") + return {"FINISHED"} + except Exception as e: + self.report({"WARNING"}, f"Failed to load metadata file, using regular load: {e}") + @persistent def load_handler(*args): bpy.app.handlers.load_post.remove(load_handler) @@ -1051,6 +1140,10 @@ class LoadProject(bpy.types.Operator, IFCFileSelector, ImportHelper): props.is_loading = True props.total_elements = len(tool.Ifc.get().by_type("IfcElement")) props.use_relative_project_path = self.use_relative_path + + metadata_doc = tool.Project.get_metadata_document_information() + props.should_save_metadata_for_this_file = metadata_doc is not None + tool.Blender.register_toolbar() tool.Project.add_recent_ifc_project(self.get_filepath_abs()) @@ -1679,6 +1772,22 @@ class ExportIFC(bpy.types.Operator, ExportHelper): settings.json_version = self.json_version settings.json_compact = self.json_compact + pprops = tool.Project.get_project_props() + if tool.Blender.get_addon_preferences().save_metadata_blend_file and pprops.should_save_metadata_for_this_file: + suffix = tool.Blender.get_addon_preferences().metadata_blend_file_suffix + if output_file.lower().endswith(".ifc"): + metadata_filename = os.path.basename(output_file)[:-4] + suffix + else: + metadata_filename = os.path.basename(output_file) + suffix + + if not tool.Project.get_metadata_document_information(): + tool.Project.create_metadata_document_information(metadata_filename) + else: + tool.Project.update_metadata_document_information(metadata_filename) + else: + if not pprops.should_save_metadata_for_this_file: + tool.Project.remove_metadata_document_information() + ifc_exporter = export_ifc.IfcExporter(settings) print("Starting export") settings.logger.info("Starting export") @@ -1693,15 +1802,33 @@ class ExportIFC(bpy.types.Operator, ExportHelper): bim_props = tool.Blender.get_bim_props() if bim_props.ifc_file != output_file and extension not in ("ifczip", "ifcjson"): tool.Ifc.set_path(output_file) - save_blend_file = bool(bpy.data.is_saved and bpy.data.is_dirty and bpy.data.filepath) - if save_blend_file: - bpy.ops.wm.save_mainfile(filepath=bpy.data.filepath) bim_props.is_dirty = False + + pprops = tool.Project.get_project_props() + if tool.Blender.get_addon_preferences().save_metadata_blend_file and pprops.should_save_metadata_for_this_file: + try: + bpy.ops.bim.save_blend_metadata_file() + suffix = tool.Blender.get_addon_preferences().metadata_blend_file_suffix + if output_file.lower().endswith(".ifc"): + blendmetadata_path = output_file[:-4] + suffix + else: + blendmetadata_path = output_file + suffix + self.report( + {"INFO"}, + f'IFC Project "{os.path.basename(output_file)}" And Metadata File Saved to: {os.path.basename(blendmetadata_path)}', + ) + except Exception as e: + self.report({"ERROR"}, f"Failed to save blend metadata file: {e}") + else: + save_blend_file = bool(bpy.data.is_saved and bpy.data.is_dirty and bpy.data.filepath) + if save_blend_file: + bpy.ops.wm.save_mainfile(filepath=bpy.data.filepath) + self.report( + {"INFO"}, + f'IFC Project "{os.path.basename(output_file)}" {"" if not save_blend_file else "And Current Blend File Are"} Saved', + ) + bonsai.bim.handler.refresh_ui_data() - self.report( - {"INFO"}, - f'IFC Project "{os.path.basename(output_file)}" {"" if not save_blend_file else "And Current Blend File Are"} Saved', - ) @classmethod def description(cls, context, properties): @@ -1726,9 +1853,10 @@ class LoadLinkedProject(bpy.types.Operator, ImportHelper): return ImportHelper.invoke(self, context, event) def execute(self, context): - import ifcpatch import multiprocessing + import ifcpatch + start = time.time() pprops = tool.Project.get_project_props() @@ -2038,7 +2166,11 @@ class QueryLinkedElement(bpy.types.Operator): def execute(self, context): import sqlite3 - from bpy_extras.view3d_utils import region_2d_to_vector_3d, region_2d_to_origin_3d + + from bpy_extras.view3d_utils import ( + region_2d_to_origin_3d, + region_2d_to_vector_3d, + ) LinksData.linked_data = {} props = tool.Project.get_project_props() @@ -2383,9 +2515,10 @@ class RefreshClippingPlanes(bpy.types.Operator): break def refresh_clipping_planes(self, context): - import bmesh from itertools import cycle + import bmesh + area = next(a for a in bpy.context.screen.areas if a.type == "VIEW_3D") region = next(r for r in area.regions if r.type == "WINDOW") data = region.data @@ -2445,7 +2578,10 @@ class CreateClippingPlane(bpy.types.Operator): bl_options = {"REGISTER", "UNDO"} def execute(self, context): - from bpy_extras.view3d_utils import region_2d_to_vector_3d, region_2d_to_origin_3d + from bpy_extras.view3d_utils import ( + region_2d_to_origin_3d, + region_2d_to_vector_3d, + ) # Clean up deleted planes props = tool.Project.get_project_props() @@ -2599,17 +2735,27 @@ class IFCFileHandlerOperator(bpy.types.Operator): # Keeping code in .invoke() as we'll probably add some # popup windows later. + def clean_up_path(path: str) -> str: + # In Blender 4.5.6 there was a bug producing unncesseary double slash prefix + # breaking the paths. Issue is not present in 5.0+ and presumably will be solved in 4.5.7 too. + # https://projects.blender.org/blender/blender/issues/153822 + if bpy.app.version == (4, 5, 6): + blender_prefix = "//" + if path.startswith(blender_prefix): + return path.removeprefix(blender_prefix) + return path + # `files` contain only .ifc files. filepath = Path(self.directory) # If user is just drag'n'dropping a single file -> load it as a new project, # if they're holding ALT -> link the file/files to the current project. if event.alt: # Passing self.files directly results in TypeError. - serialized_files = [{"name": f.name} for f in self.files] + serialized_files = [{"name": clean_up_path(f.name)} for f in self.files] return bpy.ops.bim.link_ifc(directory=self.directory, files=serialized_files) else: if len(self.files) == 1: - return bpy.ops.bim.load_project(filepath=(filepath / self.files[0].name).as_posix()) + return bpy.ops.bim.load_project(filepath=(filepath / clean_up_path(self.files[0].name)).as_posix()) else: self.report( {"INFO"}, @@ -2842,3 +2988,241 @@ class ClearMeasurement(bpy.types.Operator): MeasureDecorator.uninstall() tool.Blender.update_viewport() return {"FINISHED"} + + +class ImageScalingTool(bpy.types.Operator, PolylineOperator): + bl_idname = "bim.image_scaling_tool" + bl_label = "Image Scaling Tool" + bl_options = {"REGISTER", "UNDO"} + + @classmethod + def poll(cls, context): + return context.space_data.type == "VIEW_3D" + + def __init__(self, *args, **kwargs): + bpy.types.Operator.__init__(self, *args, **kwargs) + PolylineOperator.__init__(self) + self.input_options = ["DISTANCE"] + self.input_ui = tool.Polyline.create_input_ui(input_options=self.input_options) + self.selected_points = [] + self.target_object = None + self.current_distance_value = "" + self.is_typing_distance = False + self.calculated_distance = 0.0 + + if tool.Ifc.get(): + self.unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) + else: + self.unit_scale = tool.Blender.get_unit_scale() + + def modal(self, context, event): + if not self.target_object or not context.active_object or context.active_object != self.target_object: + self.report({"ERROR"}, "Image annotation was deselected. Tool cancelled.") + return self.cancel_tool(context) + + PolylineDecorator.update(event, self.tool_state, self.input_ui, self.snapping_points[0]) + tool.Blender.update_viewport() + + self.handle_lock_axis(context, event) + + if event.type in {"MIDDLEMOUSE", "WHEELUPMOUSE", "WHEELDOWNMOUSE"}: + self.handle_mouse_move(context, event) + return {"PASS_THROUGH"} + + self.handle_custom_instructions(context) + self.handle_mouse_move(context, event) + self.choose_axis(event, z=True) + self.choose_plane(event) + self.handle_snap_selection(context, event) + + if event.type == "LEFTMOUSE" and event.value == "PRESS": + if len(self.selected_points) < 2: + snapped_point = self.snapping_points[0] + point_3d = snapped_point["point"].copy() + self.selected_points.append(point_3d) + + if len(self.selected_points) == 2: + self.calculate_distance() + self.current_distance_value = f"{self.calculated_distance:.3f}" + self.is_typing_distance = False + self.input_ui.set_value("DISTANCE", self.calculated_distance) + + elif len(self.selected_points) == 2: + if event.type in {"RET", "NUMPAD_ENTER"} and event.value == "PRESS": + return self.apply_scaling(context) + + if event.unicode and event.unicode.isprintable() and event.value == "PRESS": + if event.unicode.isdigit() or event.unicode == ".": + if not self.is_typing_distance: + self.current_distance_value = event.unicode + self.is_typing_distance = True + else: + self.current_distance_value += event.unicode + + distance_value = float(self.current_distance_value) + self.input_ui.set_value("DISTANCE", distance_value) + + elif event.type in {"BACK_SPACE", "DEL"} and event.value == "PRESS": + if len(self.current_distance_value) > 0: + self.current_distance_value = self.current_distance_value[:-1] + distance_value = ( + float(self.current_distance_value) if self.current_distance_value else self.calculated_distance + ) + self.input_ui.set_value("DISTANCE", distance_value) + + self.handle_keyboard_input(context, event) + + result = self.handle_cancelation(context, event) + if result is not None: + return result + + return {"RUNNING_MODAL"} + + def invoke(self, context, event): + active_obj = context.active_object + self.target_object = active_obj + super().invoke(context, event) + return {"RUNNING_MODAL"} + + def cancel_tool(self, context): + context.workspace.status_text_set(text=None) + if hasattr(self, "tool_state"): + self.tool_state.plane_method = None + PolylineDecorator.uninstall() + tool.Blender.update_viewport() + return {"CANCELLED"} + + def handle_custom_instructions(self, context): + if len(self.selected_points) == 0: + instruction_text = "Click First Point on Image" + elif len(self.selected_points) == 1: + instruction_text = "Click Second Point on Image" + elif len(self.selected_points) == 2: + if self.is_typing_distance: + instruction_text = f"Distance: {self.current_distance_value} - Press Enter to Apply" + else: + instruction_text = f"Measured: {self.calculated_distance:.3f} - Type New Distance or Press Enter" + else: + instruction_text = "Image Scaling Tool" + + context.workspace.status_text_set(text=instruction_text) + + def calculate_distance(self): + if len(self.selected_points) == 2: + point1 = self.selected_points[0] + point2 = self.selected_points[1] + distance_3d = (point2 - point1).length + self.calculated_distance = distance_3d / self.unit_scale + + def apply_scaling(self, context): + if len(self.selected_points) != 2: + self.report({"ERROR"}, "Two points must be selected") + return {"CANCELLED"} + + target_distance = float(self.current_distance_value) + + if target_distance <= 0: + self.report({"ERROR"}, "Distance must be positive") + return {"CANCELLED"} + + if self.calculated_distance <= 0: + self.report({"ERROR"}, "Selected points are too close together") + return {"CANCELLED"} + + scale_factor = target_distance / self.calculated_distance + + if self.target_object: + import bmesh + + mesh = self.target_object.data + + bm = bmesh.new() + bm.from_mesh(mesh) + + bmesh.ops.scale(bm, vec=(scale_factor, scale_factor, 1.0), verts=bm.verts) + + if bm.loops.layers.uv: + uv_layer = bm.loops.layers.uv.active + + min_x = min(v.co.x for v in bm.verts) + max_x = max(v.co.x for v in bm.verts) + min_y = min(v.co.y for v in bm.verts) + max_y = max(v.co.y for v in bm.verts) + + width = max_x - min_x + height = max_y - min_y + + for face in bm.faces: + for loop in face.loops: + vert = loop.vert + u = (vert.co.x - min_x) / width if width > 0 else 0.5 + v = (vert.co.y - min_y) / height if height > 0 else 0.5 + + u = max(0.0, min(1.0, u)) + v = max(0.0, min(1.0, v)) + loop[uv_layer].uv = (u, v) + + bm.to_mesh(mesh) + bm.free() + mesh.update() + + element = tool.Ifc.get_entity(self.target_object) + if element and element.Representation: + for representation in element.Representation.Representations: + for item in representation.Items: + if item.is_a("IfcPolygonalFaceSet") and item.Coordinates: + new_coords = [] + for vertex in mesh.vertices: + co = self.target_object.matrix_world @ vertex.co + new_coords.append([co.x, co.y, co.z]) + + item.Coordinates.CoordList = new_coords + + self.report({"INFO"}, f"Applied scale factor: {scale_factor:.4f}") + + context.workspace.status_text_set(text=None) + self.tool_state.plane_method = None + PolylineDecorator.uninstall() + tool.Blender.update_viewport() + + return {"FINISHED"} + + +class LoadBlendMetadataAndIFC(bpy.types.Operator): + bl_idname = "bim.load_blend_metadata_and_ifc" + bl_label = "Load Blend Metadata and IFC" + bl_options = {"REGISTER", "UNDO"} + filepath: bpy.props.StringProperty(name="IFC File Path", default="") + + def execute(self, context): + ifc_file = self.filepath + if not ifc_file: + props = tool.Blender.get_bim_props() + ifc_file = getattr(props, "ifc_file", None) + + if not ifc_file: + self.report({"WARNING"}, "No IFC file path set.") + return {"CANCELLED"} + + suffix = tool.Blender.get_addon_preferences().metadata_blend_file_suffix + if ifc_file.lower().endswith(".ifc"): + metadata_path = ifc_file[:-4] + suffix + else: + metadata_path = ifc_file + suffix + + # Define a handler to load the IFC project after the blend file is loaded and context is restored + @persistent + def load_handler(*args): + bpy.app.handlers.load_post.remove(load_handler) + # After loading metadata, clear blend warning (no geometry loaded yet) + props = tool.Blender.get_bim_props() + props.has_blend_warning = False + # Load the IFC file into the current session (preserve layout) + bpy.ops.bim.load_project(filepath=ifc_file, should_start_fresh_session=False) + # Disable editing styles + bpy.ops.bim.disable_editing_styles() + self.report({"INFO"}, f"Loaded metadata and IFC: {metadata_path}, {ifc_file}") + + bpy.app.handlers.load_post.append(load_handler) + bpy.ops.wm.open_mainfile(filepath=metadata_path) + return {"FINISHED"} diff --git a/src/bonsai/bonsai/bim/module/project/prop.py b/src/bonsai/bonsai/bim/module/project/prop.py index 2cbdeb6e7b..08859af1f9 100644 --- a/src/bonsai/bonsai/bim/module/project/prop.py +++ b/src/bonsai/bonsai/bim/module/project/prop.py @@ -17,26 +17,28 @@ # along with Bonsai. If not, see . import os +from collections.abc import Generator +from typing import TYPE_CHECKING, Literal, Union, assert_never, get_args + import bpy import ifcopenshell.util.element import ifcopenshell.util.placement -import bonsai.tool as tool -import bonsai.bim.helper -from bonsai.bim.module.project.data import ProjectData, ProjectLibraryData -from bonsai.bim.ifc import IfcStore -from bonsai.bim.prop import StrProperty, ObjProperty, Attribute -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, BoolProperty, CollectionProperty, EnumProperty, FloatProperty, IntProperty, + PointerProperty, StringProperty, ) -from typing import TYPE_CHECKING, Literal, Union, get_args, assert_never -from collections.abc import Generator +from bpy.types import PropertyGroup + +import bonsai.bim.helper +import bonsai.tool as tool +from bonsai.bim.ifc import IfcStore +from bonsai.bim.module.project.data import ProjectData, ProjectLibraryData +from bonsai.bim.prop import Attribute, ObjProperty, StrProperty def get_export_schema(self: "BIMProjectProperties", context: bpy.types.Context) -> list[tuple[str, str, str]]: @@ -319,7 +321,7 @@ class BIMProjectProperties(PropertyGroup): ), default=False, ) - deflection_tolerance: FloatProperty(name="Deflection Tolerance", default=0.001) + deflection_tolerance: FloatProperty(name="Deflection Tolerance", default=0.05) angular_tolerance: FloatProperty(name="Angular Tolerance", default=0.5) void_limit: IntProperty( name="Void Limit", @@ -368,7 +370,7 @@ class BIMProjectProperties(PropertyGroup): load_indexed_maps: BoolProperty( name="Load Indexed Maps", description="Load indexed maps (UV and color maps)", - default=True, + default=False, # Very slow and hackishly implemented ) links: CollectionProperty(name="Links", type=Link) active_link_index: IntProperty(name="Active Link Index") @@ -411,6 +413,11 @@ class BIMProjectProperties(PropertyGroup): ) use_relative_project_path: BoolProperty(name="Use Relative Project Path", default=False) + should_save_metadata_for_this_file: BoolProperty( + name="Save Session Data for This File", + description="Enable saving session data (window layout, settings) to a metadata blend file for this specific IFC file", + default=False, + ) queried_obj: bpy.props.PointerProperty(type=bpy.types.Object) queried_obj_root: bpy.props.PointerProperty(type=bpy.types.Object) clipping_planes: bpy.props.CollectionProperty(type=ObjProperty) @@ -504,6 +511,7 @@ class BIMProjectProperties(PropertyGroup): parent_library: str use_relative_project_path: bool + should_save_metadata_for_this_file: bool queried_obj: Union[bpy.types.Object, None] queried_obj_root: Union[bpy.types.Object, None] clipping_planes: bpy.types.bpy_prop_collection_idprop[ObjProperty] diff --git a/src/bonsai/bonsai/bim/module/project/ui.py b/src/bonsai/bonsai/bim/module/project/ui.py index 03b4222008..79ed2c7d7a 100644 --- a/src/bonsai/bonsai/bim/module/project/ui.py +++ b/src/bonsai/bonsai/bim/module/project/ui.py @@ -17,19 +17,27 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy + import os -import ifcopenshell -import bonsai.bim -import bonsai.tool as tool -from bonsai.bim.helper import prop_with_search, draw_attributes -from bpy.types import Panel, Menu, UIList -from bonsai.bim.ifc import IfcStore -from bonsai.bim.module.project.data import ProjectData, LinksData from typing import TYPE_CHECKING +import bpy +import ifcopenshell +from bpy.types import Menu, Panel, UIList + +import bonsai.bim +import bonsai.tool as tool +from bonsai.bim.helper import draw_attributes, prop_with_search +from bonsai.bim.ifc import IfcStore +from bonsai.bim.module.project.data import LinksData, ProjectData + if TYPE_CHECKING: - from bonsai.bim.module.project.prop import LibraryElement, BIMProjectProperties, FilterCategory, Link + from bonsai.bim.module.project.prop import ( + BIMProjectProperties, + FilterCategory, + LibraryElement, + Link, + ) def file_import_menu(self, context): @@ -331,6 +339,17 @@ class BIM_PT_project(Panel): col.prop(props, "ifc_file", text="") row.operator("bim.select_ifc_file", icon="FILE_FOLDER", text="") + if tool.Blender.get_addon_preferences().save_metadata_blend_file: + suffix = tool.Blender.get_addon_preferences().metadata_blend_file_suffix + if props.ifc_file.lower().endswith(".ifc"): + metadata_filename = os.path.basename(props.ifc_file)[:-4] + suffix + else: + metadata_filename = os.path.basename(props.ifc_file) + suffix + row = self.layout.row(align=True) + row.use_property_split = False + pprops = tool.Project.get_project_props() + row.prop(pprops, "should_save_metadata_for_this_file", text=f"Save session data to: {metadata_filename}") + class BIM_PT_new_project_wizard(Panel): bl_label = "New Project Wizard" @@ -356,8 +375,13 @@ class BIM_PT_new_project_wizard(Panel): row.prop(props, "area_unit", text="Area Unit") row = self.layout.row() row.prop(props, "volume_unit", text="Volume Unit") + row = self.layout.row() + row.prop(props, "mass_unit", text="Mass Unit") + row = self.layout.row() + row.prop(props, "time_unit", text="Time Unit") prop_with_search(self.layout, pprops, "template_file", text="Template") + self.layout.use_property_split = True row = self.layout.row() row.operator("bim.create_project") @@ -635,6 +659,7 @@ class BIM_PT_purge(Panel): bl_parent_id = "BIM_PT_tab_quality_control" def draw(self, context): + props = tool.Debug.get_debug_props() layout = self.layout layout.operator("bim.purge_unused_objects", text="Purge Unused Profiles").object_type = "PROFILE" layout.operator("bim.purge_unused_objects", text="Purge Unused Types").object_type = "TYPE" @@ -655,3 +680,10 @@ class BIM_PT_purge(Panel): row.operator("bim.purge_unused_objects", text="Purge Unused").object_type = object_type merge_op = row.operator("bim.merge_identical_objects", text="Merge Identical") merge_op.object_type = object_type + + layout.operator("bim.purge_unused_representations") + + row = layout.row(align=True) + row.prop(props, "ifc_class_purge", text="") + row.operator("bim.purge_unused_elements_by_class", text="Purge Orphaned", icon="TRASH") + row.operator("bim.print_unused_elements_stats", text="", icon="INFO") diff --git a/src/bonsai/bonsai/bim/module/project/workspace.py b/src/bonsai/bonsai/bim/module/project/workspace.py index e7b9220fc1..a72981c625 100644 --- a/src/bonsai/bonsai/bim/module/project/workspace.py +++ b/src/bonsai/bonsai/bim/module/project/workspace.py @@ -17,9 +17,11 @@ # along with Bonsai. If not, see . import os + import bpy -import bonsai.tool as tool from bpy.types import WorkSpaceTool + +import bonsai.tool as tool from bonsai.bim.module.project.data import LinksData @@ -38,6 +40,7 @@ class ExploreTool(bpy.types.WorkSpaceTool): ("bim.explore_hotkey", {"type": "F", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "S_F")]}), ("bim.explore_hotkey", {"type": "C", "value": "PRESS", "alt": True}, {"properties": [("hotkey", "A_C")]}), ("bim.explore_hotkey", {"type": "M", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "S_M")]}), + ("bim.explore_hotkey", {"type": "S", "value": "PRESS", "shift": True}, {"properties": [("hotkey", "S_S")]}), ) def draw_settings(context, layout, ws_tool): @@ -71,6 +74,14 @@ class ExploreTool(bpy.types.WorkSpaceTool): row = layout.row(align=True) op = row.operator("bim.clear_measurement", text="", icon="X") + row = layout.row(align=True) + row.label(text="", icon="EVENT_SHIFT") + row.label(text="", icon="EVENT_S") + row = layout.row(align=True) + op = row.operator("bim.explore_hotkey", text="Image Scaling Tool", icon="IMAGE_PLANE") + op.hotkey = "S_S" + op.description = "Scale Image Annotation. Allows to scale an IfcReferenceImage. Select image, select tool. Check lower left corner instructions to select two points and provide real distance between them" + class ExploreHotkey(bpy.types.Operator): bl_idname = "bim.explore_hotkey" @@ -110,3 +121,20 @@ class ExploreHotkey(bpy.types.Operator): bpy.ops.bim.measure_face_area_tool("INVOKE_DEFAULT") else: bpy.ops.bim.measure_tool("INVOKE_DEFAULT", measure_type=measure_type) + + def hotkey_S_S(self): + active_obj = bpy.context.active_object + selected_objects = tool.Blender.get_selected_objects() + element = tool.Ifc.get_entity(active_obj) if active_obj else None + + if ( + not active_obj + or not element + or not element.is_a("IfcAnnotation") + or len(selected_objects) != 1 + or not tool.Drawing.is_annotation_object_type(element, "IMAGE") + ): + self.report({"ERROR"}, "Please select one image annotation first.") + return + + bpy.ops.bim.image_scaling_tool("INVOKE_DEFAULT") diff --git a/src/bonsai/bonsai/bim/module/pset/__init__.py b/src/bonsai/bonsai/bim/module/pset/__init__.py index 7e0d72061b..5284e88f36 100644 --- a/src/bonsai/bonsai/bim/module/pset/__init__.py +++ b/src/bonsai/bonsai/bim/module/pset/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddProposedProp, diff --git a/src/bonsai/bonsai/bim/module/pset/data.py b/src/bonsai/bonsai/bim/module/pset/data.py index 12b38efc98..969f54f387 100644 --- a/src/bonsai/bonsai/bim/module/pset/data.py +++ b/src/bonsai/bonsai/bim/module/pset/data.py @@ -23,9 +23,9 @@ import ifcopenshell import ifcopenshell.util.attribute import ifcopenshell.util.doc import ifcopenshell.util.element -import bonsai.tool as tool -import bonsai.bim.schema +import bonsai.bim.schema +import bonsai.tool as tool # TODO: Should this cache belong here? Dunno. Maybe. is_expanded: dict[int, bool] = {} diff --git a/src/bonsai/bonsai/bim/module/pset/operator.py b/src/bonsai/bonsai/bim/module/pset/operator.py index cbd7a7fe77..3257760531 100644 --- a/src/bonsai/bonsai/bim/module/pset/operator.py +++ b/src/bonsai/bonsai/bim/module/pset/operator.py @@ -16,21 +16,23 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import json -import ifcopenshell.api -import ifcopenshell.api.pset -import ifcopenshell.util.element -import bonsai.bim.schema -import bonsai.tool as tool -import bonsai.core.pset as core -import bonsai.bim.module.pset.data -from bonsai.bim.ifc import IfcStore from collections import defaultdict from typing import TYPE_CHECKING +import bpy +import ifcopenshell.api +import ifcopenshell.api.pset +import ifcopenshell.util.element + +import bonsai.bim.module.pset.data +import bonsai.bim.schema +import bonsai.core.pset as core +import bonsai.tool as tool +from bonsai.bim.ifc import IfcStore + if TYPE_CHECKING: - from bonsai.bim.module.pset.prop import RenamePropertyEntry, AddEditPropertyEntry + from bonsai.bim.module.pset.prop import AddEditPropertyEntry, RenamePropertyEntry class TogglePsetExpansion(bpy.types.Operator, tool.Ifc.Operator): @@ -569,7 +571,7 @@ class SavePsetAsTemplate(bpy.types.Operator, tool.PsetTemplate.PsetTemplateOpera template_file = IfcStore.pset_template_file assert template_file - tool.PsetTemplate.add_pset_as_template(pset, template_file) + tool.PsetTemplate.add_pset_as_template(pset.Name, template_file) template_file.write(IfcStore.pset_template_path) bonsai.bim.handler.refresh_ui_data() diff --git a/src/bonsai/bonsai/bim/module/pset/prop.py b/src/bonsai/bonsai/bim/module/pset/prop.py index d89ba62be1..4b16e15010 100644 --- a/src/bonsai/bonsai/bim/module/pset/prop.py +++ b/src/bonsai/bonsai/bim/module/pset/prop.py @@ -16,33 +16,35 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal, Union, get_args + import bpy -import bonsai.bim.schema import ifcopenshell import ifcopenshell.util.attribute import ifcopenshell.util.doc import ifcopenshell.util.element -import bonsai.tool as tool -from bonsai.bim.prop import Attribute, StrProperty -from bonsai.bim.module.pset.data import ( - AddEditCustomPropertiesData, - ObjectPsetsData, - MaterialPsetsData, - PsetsGeneralData, -) -from bonsai.bim.module.material.data import ObjectMaterialData -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import Union, Literal, TYPE_CHECKING, get_args, Literal +from bpy.types import PropertyGroup + +import bonsai.bim.schema +import bonsai.tool as tool +from bonsai.bim.module.material.data import ObjectMaterialData +from bonsai.bim.module.pset.data import ( + AddEditCustomPropertiesData, + MaterialPsetsData, + ObjectPsetsData, + PsetsGeneralData, +) +from bonsai.bim.prop import Attribute, StrProperty psetnames = {} qtonames = {} diff --git a/src/bonsai/bonsai/bim/module/pset/ui.py b/src/bonsai/bonsai/bim/module/pset/ui.py index abd3a8b90f..03d6f8bb36 100644 --- a/src/bonsai/bonsai/bim/module/pset/ui.py +++ b/src/bonsai/bonsai/bim/module/pset/ui.py @@ -17,26 +17,29 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Any, Literal, Optional, assert_never + import bpy -import bonsai.tool as tool from bpy.types import Panel -from bonsai.bim.helper import prop_with_search, get_display_value, draw_attribute + +import bonsai.tool as tool +from bonsai.bim.helper import draw_attribute, get_display_value, prop_with_search +from bonsai.bim.module.material.data import ObjectMaterialData from bonsai.bim.module.pset.data import ( - ObjectPsetsData, - ObjectQtosData, + GroupPsetData, + GroupQtosData, MaterialPsetsData, MaterialSetItemPsetsData, - TaskQtosData, - ResourceQtosData, - ResourcePsetsData, - GroupQtosData, - GroupPsetData, + ObjectPsetsData, + ObjectQtosData, ProfilePsetsData, + ResourcePsetsData, + ResourceQtosData, + TaskQtosData, WorkSchedulePsetsData, ZonePsetsData, ) -from bonsai.bim.module.material.data import ObjectMaterialData -from typing import Any, Optional, TYPE_CHECKING, assert_never, Literal if TYPE_CHECKING: from bonsai.bim.module.pset.prop import IfcProperty, PsetProperties diff --git a/src/bonsai/bonsai/bim/module/pset_template/__init__.py b/src/bonsai/bonsai/bim/module/pset_template/__init__.py index 204824cb11..dc67e900fb 100644 --- a/src/bonsai/bonsai/bim/module/pset_template/__init__.py +++ b/src/bonsai/bonsai/bim/module/pset_template/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddPropEnum, diff --git a/src/bonsai/bonsai/bim/module/pset_template/data.py b/src/bonsai/bonsai/bim/module/pset_template/data.py index 84d65f25f1..1725b974f1 100644 --- a/src/bonsai/bonsai/bim/module/pset_template/data.py +++ b/src/bonsai/bonsai/bim/module/pset_template/data.py @@ -17,14 +17,16 @@ # along with Bonsai. If not, see . import os -import bpy import pathlib +from typing import Any + +import bpy import ifcopenshell import ifcopenshell.util.attribute import ifcopenshell.util.doc + import bonsai.tool as tool from bonsai.bim.ifc import IfcStore -from typing import Any def refresh(): diff --git a/src/bonsai/bonsai/bim/module/pset_template/operator.py b/src/bonsai/bonsai/bim/module/pset_template/operator.py index 0711376439..e956917df3 100644 --- a/src/bonsai/bonsai/bim/module/pset_template/operator.py +++ b/src/bonsai/bonsai/bim/module/pset_template/operator.py @@ -17,12 +17,14 @@ # along with Bonsai. If not, see . import os + import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.pset_template -import bonsai.bim.schema + import bonsai.bim.handler +import bonsai.bim.schema import bonsai.tool as tool from bonsai.bim.ifc import IfcStore diff --git a/src/bonsai/bonsai/bim/module/pset_template/prop.py b/src/bonsai/bonsai/bim/module/pset_template/prop.py index fdd6188a76..9ec31b364f 100644 --- a/src/bonsai/bonsai/bim/module/pset_template/prop.py +++ b/src/bonsai/bonsai/bim/module/pset_template/prop.py @@ -17,26 +17,28 @@ # along with Bonsai. If not, see . import os +from typing import TYPE_CHECKING + import bpy import ifcopenshell import ifcopenshell.util.attribute -from ifcopenshell.util.doc import get_attribute_doc -import bonsai.tool as tool -from bonsai.bim.module.pset_template.data import PsetTemplatesData -from bonsai.bim.prop import StrProperty, Attribute -from bonsai.bim.ifc import IfcStore -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING +from bpy.types import PropertyGroup +from ifcopenshell.util.doc import get_attribute_doc + +import bonsai.tool as tool +from bonsai.bim.ifc import IfcStore +from bonsai.bim.module.pset_template.data import PsetTemplatesData +from bonsai.bim.prop import Attribute, StrProperty def updatePsetTemplateFiles(self, context): diff --git a/src/bonsai/bonsai/bim/module/pset_template/ui.py b/src/bonsai/bonsai/bim/module/pset_template/ui.py index af46fdc0e7..6576e8f56c 100644 --- a/src/bonsai/bonsai/bim/module/pset_template/ui.py +++ b/src/bonsai/bonsai/bim/module/pset_template/ui.py @@ -17,8 +17,9 @@ # along with Bonsai. If not, see . import bpy -import bonsai.tool as tool from bpy.types import Panel + +import bonsai.tool as tool from bonsai.bim.helper import prop_with_search from bonsai.bim.module.pset_template.data import PsetTemplatesData diff --git a/src/bonsai/bonsai/bim/module/qto/__init__.py b/src/bonsai/bonsai/bim/module/qto/__init__.py index f372462f73..f4d5becb73 100644 --- a/src/bonsai/bonsai/bim/module/qto/__init__.py +++ b/src/bonsai/bonsai/bim/module/qto/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.CalculateCircleRadius, diff --git a/src/bonsai/bonsai/bim/module/qto/calculator.py b/src/bonsai/bonsai/bim/module/qto/calculator.py index 091d7e1f9f..c0e5aa474f 100644 --- a/src/bonsai/bonsai/bim/module/qto/calculator.py +++ b/src/bonsai/bonsai/bim/module/qto/calculator.py @@ -16,21 +16,22 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import math +from typing import Literal, Optional, Union, assert_never + import bmesh -import mathutils -import bonsai.tool as tool +import bpy +import ifc5d.qto import ifcopenshell import ifcopenshell.geom import ifcopenshell.util.element -import ifc5d.qto -from mathutils import Vector, Matrix +import mathutils +from mathutils import Matrix, Vector from mathutils.bvhtree import BVHTree from shapely.geometry import Polygon from shapely.ops import unary_union -from typing import Literal, Union, Optional, assert_never +import bonsai.tool as tool AxisType = Literal["x", "y", "z"] VectorTuple = tuple[float, float, float] diff --git a/src/bonsai/bonsai/bim/module/qto/data.py b/src/bonsai/bonsai/bim/module/qto/data.py index ef780d749f..162a4bf7c6 100644 --- a/src/bonsai/bonsai/bim/module/qto/data.py +++ b/src/bonsai/bonsai/bim/module/qto/data.py @@ -17,6 +17,7 @@ # along with Bonsai. If not, see . import bpy + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/bim/module/qto/helper.py b/src/bonsai/bonsai/bim/module/qto/helper.py index 50253cbb63..d4f94c491f 100644 --- a/src/bonsai/bonsai/bim/module/qto/helper.py +++ b/src/bonsai/bonsai/bim/module/qto/helper.py @@ -16,11 +16,13 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bmesh -import bonsai.tool as tool from collections.abc import Callable +import bmesh +import bpy + +import bonsai.tool as tool + def calculate_height(obj: bpy.types.Object) -> float: return obj.dimensions[2] diff --git a/src/bonsai/bonsai/bim/module/qto/operator.py b/src/bonsai/bonsai/bim/module/qto/operator.py index eb2ccda282..572c65e258 100644 --- a/src/bonsai/bonsai/bim/module/qto/operator.py +++ b/src/bonsai/bonsai/bim/module/qto/operator.py @@ -19,8 +19,10 @@ import bpy import ifcopenshell import ifcopenshell.api -import bonsai.tool as tool +from ifcopenshell.util.profiler import Profiler + import bonsai.core.qto as core +import bonsai.tool as tool from bonsai.bim.module.qto import helper @@ -148,7 +150,8 @@ class CalculateSingleQuantity(bpy.types.Operator, tool.Ifc.Operator): } ifc_file = tool.Ifc.get() - results = ifc5d.qto.quantify(ifc_file, elements, rules) + with Profiler("Quantify function time:"): + results = ifc5d.qto.quantify(ifc_file, elements, rules) ifc5d.qto.edit_qtos(ifc_file, results) not_quantified_elements = elements - set(results.keys()) @@ -190,7 +193,8 @@ class PerformQuantityTakeOff(bpy.types.Operator, tool.Ifc.Operator): ) -> set[ifcopenshell.entity_instance]: rules = ifc5d.qto.rules[rule] ifc_file = tool.Ifc.get() - results = ifc5d.qto.quantify(ifc_file, elements, rules) + with Profiler("Quantify function time:"): + results = ifc5d.qto.quantify(ifc_file, elements, rules) ifc5d.qto.edit_qtos(ifc_file, results) not_quantified_elements = elements - set(results.keys()) return not_quantified_elements diff --git a/src/bonsai/bonsai/bim/module/qto/prop.py b/src/bonsai/bonsai/bim/module/qto/prop.py index 57e04d4cc1..9952285d30 100644 --- a/src/bonsai/bonsai/bim/module/qto/prop.py +++ b/src/bonsai/bonsai/bim/module/qto/prop.py @@ -16,23 +16,24 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bonsai.tool as tool -import ifc5d.qto -from bonsai.bim.prop import StrProperty, Attribute -from bpy.types import PropertyGroup -from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, - BoolProperty, - IntProperty, - FloatProperty, - FloatVectorProperty, - CollectionProperty, -) from typing import TYPE_CHECKING, Union +import bpy +import ifc5d.qto +from bpy.props import ( + BoolProperty, + CollectionProperty, + EnumProperty, + FloatProperty, + FloatVectorProperty, + IntProperty, + PointerProperty, + StringProperty, +) +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.prop import Attribute, StrProperty CALCULATOR_FUNCTION_ENUM_ITEMS: list[Union[tuple[str, str, str], None]] = [] diff --git a/src/bonsai/bonsai/bim/module/qto/ui.py b/src/bonsai/bonsai/bim/module/qto/ui.py index 9029a63066..032df25b20 100644 --- a/src/bonsai/bonsai/bim/module/qto/ui.py +++ b/src/bonsai/bonsai/bim/module/qto/ui.py @@ -17,6 +17,7 @@ # along with Bonsai. If not, see . import bpy + import bonsai.tool as tool from bonsai.bim.module.qto.data import QtoData diff --git a/src/bonsai/bonsai/bim/module/resource/__init__.py b/src/bonsai/bonsai/bim/module/resource/__init__.py index ae08660afd..89f21f4e29 100644 --- a/src/bonsai/bonsai/bim/module/resource/__init__.py +++ b/src/bonsai/bonsai/bim/module/resource/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddResource, diff --git a/src/bonsai/bonsai/bim/module/resource/data.py b/src/bonsai/bonsai/bim/module/resource/data.py index 601b61eb7b..cc862cf1dd 100644 --- a/src/bonsai/bonsai/bim/module/resource/data.py +++ b/src/bonsai/bonsai/bim/module/resource/data.py @@ -16,14 +16,16 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import Any + import bpy -import bonsai.tool as tool import ifcopenshell import ifcopenshell.util.constraint import ifcopenshell.util.cost import ifcopenshell.util.date import ifcopenshell.util.resource -from typing import Any + +import bonsai.tool as tool def refresh(): diff --git a/src/bonsai/bonsai/bim/module/resource/operator.py b/src/bonsai/bonsai/bim/module/resource/operator.py index 4d9a28c061..a82cc22918 100644 --- a/src/bonsai/bonsai/bim/module/resource/operator.py +++ b/src/bonsai/bonsai/bim/module/resource/operator.py @@ -18,10 +18,11 @@ import bpy import ifcopenshell.api.pset -from bpy_extras.io_utils import ImportHelper, ExportHelper -from bonsai.bim.module.resource.ui import draw_productivity_ui +from bpy_extras.io_utils import ExportHelper, ImportHelper + import bonsai.core.resource as core import bonsai.tool as tool +from bonsai.bim.module.resource.ui import draw_productivity_ui class LoadResources(bpy.types.Operator): diff --git a/src/bonsai/bonsai/bim/module/resource/prop.py b/src/bonsai/bonsai/bim/module/resource/prop.py index 350417aa69..4c6828e56c 100644 --- a/src/bonsai/bonsai/bim/module/resource/prop.py +++ b/src/bonsai/bonsai/bim/module/resource/prop.py @@ -16,27 +16,29 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal, get_args + import bpy import ifcopenshell.api import ifcopenshell.api.resource import ifcopenshell.util.resource -import bonsai.tool as tool +from bpy.props import ( + BoolProperty, + CollectionProperty, + EnumProperty, + FloatProperty, + FloatVectorProperty, + IntProperty, + PointerProperty, + StringProperty, +) +from bpy.types import PropertyGroup + import bonsai.bim.module.pset.data import bonsai.bim.module.resource.data import bonsai.bim.module.sequence.data +import bonsai.tool as tool from bonsai.bim.prop import Attribute, ISODuration -from bpy.types import PropertyGroup -from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, - BoolProperty, - IntProperty, - FloatProperty, - FloatVectorProperty, - CollectionProperty, -) -from typing import TYPE_CHECKING, Literal, get_args quantitytypes_enum: dict[str, tool.Blender.BLENDER_ENUM_ITEMS] = {} diff --git a/src/bonsai/bonsai/bim/module/resource/ui.py b/src/bonsai/bonsai/bim/module/resource/ui.py index b061600978..679eed8782 100644 --- a/src/bonsai/bonsai/bim/module/resource/ui.py +++ b/src/bonsai/bonsai/bim/module/resource/ui.py @@ -17,16 +17,19 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Any + import bpy -import bonsai.tool as tool -import bonsai.bim.helper from bpy.types import Panel, UIList + +import bonsai.bim.helper +import bonsai.tool as tool from bonsai.bim.module.resource.data import ResourceData -from typing import Any, TYPE_CHECKING if TYPE_CHECKING: + from bonsai.bim.module.resource.prop import BIMResourceTreeProperties, Resource from bonsai.bim.prop import ISODuration - from bonsai.bim.module.resource.prop import Resource, BIMResourceTreeProperties class BIM_PT_resources(Panel): diff --git a/src/bonsai/bonsai/bim/module/root/__init__.py b/src/bonsai/bonsai/bim/module/root/__init__.py index 3e6f280eb2..7192dcdff4 100644 --- a/src/bonsai/bonsai/bim/module/root/__init__.py +++ b/src/bonsai/bonsai/bim/module/root/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddElement, diff --git a/src/bonsai/bonsai/bim/module/root/data.py b/src/bonsai/bonsai/bim/module/root/data.py index 7690210c9b..7adf7b5fb9 100644 --- a/src/bonsai/bonsai/bim/module/root/data.py +++ b/src/bonsai/bonsai/bim/module/root/data.py @@ -17,13 +17,19 @@ # along with Bonsai. If not, see . from collections import defaultdict +from typing import Union + import bpy import ifcopenshell.util.attribute import ifcopenshell.util.element import ifcopenshell.util.schema -from ifcopenshell.util.doc import get_entity_doc, get_predefined_type_doc, get_class_suggestions +from ifcopenshell.util.doc import ( + get_class_suggestions, + get_entity_doc, + get_predefined_type_doc, +) + import bonsai.tool as tool -from typing import Union def refresh(): @@ -128,23 +134,55 @@ class IfcClassData: return [("FACE", "Face", "A planar face surface")] templates = [ ("EMPTY", "No Geometry", "Start with an empty object"), - None, - ( - "OBJ", - "Tessellation From Object", - "Use an object as a template to create a new tessellation", - ), - ( - "MESH", - "Custom Tessellation", - "Create a basic tessellated or faceted cube", - ), - ( - "EXTRUSION", - "Custom Extruded Solid", - "An extrusion from an arbitrary profile", - ), ] + + if ifc_class in ("IfcWindowType", "IfcWindowStyle", "IfcWindow"): + templates.extend([None, ("WINDOW", "Window", "Parametric window")]) + elif ifc_class in ("IfcDoorType", "IfcDoorStyle", "IfcDoor"): + templates.extend([None, ("DOOR", "Door", "Parametric door")]) + elif ifc_class in ("IfcStairType", "IfcStairFlightType", "IfcStair", "IfcStairFlight"): + templates.extend([None, ("STAIR", "Stair", "Parametric stair")]) + elif ifc_class in ("IfcRailingType", "IfcRailing"): + templates.extend([None, ("RAILING", "Railing", "Parametric railing")]) + elif ifc_class in ("IfcRoofType", "IfcRoof", "IfcSlabType", "IfcSlab", "IfcCovering", "IfcCoveringType"): + templates.extend([None, ("ROOF", "Roof", "Parametric roof with a constant pitch")]) + elif ifc_class and "Segment" in ifc_class: + templates.extend( + ( + None, + ( + "FLOW_SEGMENT_RECTANGULAR", + "Rectangular Distribution Segment", + "Works similarly to Profile, has distribution ports", + ), + ( + "FLOW_SEGMENT_RECTANGULAR_HOLLOW", + "Rectangular Hollow Distribution Segment", + "Works similarly to Profile, has distribution ports", + ), + ( + "FLOW_SEGMENT_CIRCULAR", + "Circular Distribution Segment", + "Works similarly to Profile, has distribution ports", + ), + ( + "FLOW_SEGMENT_CIRCULAR_HOLLOW", + "Circular Hollow Distribution Segment", + "Works similarly to Profile, has distribution ports", + ), + ) + ) + if ifc_class and "IfcCableCarrierSegment" in ifc_class: + templates.extend( + ( + ( + "FLOW_SEGMENT_U_SHAPE", + "U-Shape Distribution Segment", + "Uses IfcUShapeProfileDef, has distribution ports", + ), + ) + ) + if ifc_class.endswith("Type") or ifc_class.endswith("Style"): templates.extend( [ @@ -166,38 +204,26 @@ class IfcClassData: ), ] ) - if ifc_class in ("IfcWindowType", "IfcWindowStyle", "IfcWindow"): - templates.extend([None, ("WINDOW", "Window", "Parametric window")]) - elif ifc_class in ("IfcDoorType", "IfcDoorStyle", "IfcDoor"): - templates.extend([None, ("DOOR", "Door", "Parametric door")]) - elif ifc_class in ("IfcStairType", "IfcStairFlightType", "IfcStair", "IfcStairFlight"): - templates.extend([None, ("STAIR", "Stair", "Parametric stair")]) - elif ifc_class in ("IfcRailingType", "IfcRailing"): - templates.extend([None, ("RAILING", "Railing", "Parametric railing")]) - elif ifc_class in ("IfcRoofType", "IfcRoof", "IfcSlabType", "IfcSlab", "IfcCovering", "IfcCoveringType"): - templates.extend([None, ("ROOF", "Roof", "Parametric roof with a constant pitch")]) - elif ifc_class and "Segment" in ifc_class: - templates.extend( + templates.extend( + [ + None, ( - None, - ( - "FLOW_SEGMENT_RECTANGULAR", - "Rectangular Distribution Segment", - "Works similarly to Profile, has distribution ports", - ), - ( - "FLOW_SEGMENT_CIRCULAR", - "Circular Distribution Segment", - "Works similarly to Profile, has distribution ports", - ), - ( - "FLOW_SEGMENT_CIRCULAR_HOLLOW", - "Circular Hollow Distribution Segment", - "Works similarly to Profile, has distribution ports", - ), - ) - ) - + "OBJ", + "Tessellation From Object", + "Use an object as a template to create a new tessellation", + ), + ( + "MESH", + "Custom Tessellation", + "Create a basic tessellated or faceted cube", + ), + ( + "EXTRUSION", + "Custom Extruded Solid", + "An extrusion from an arbitrary profile", + ), + ] + ) return templates @classmethod diff --git a/src/bonsai/bonsai/bim/module/root/operator.py b/src/bonsai/bonsai/bim/module/root/operator.py index a5bf766ae2..ac766172bd 100644 --- a/src/bonsai/bonsai/bim/module/root/operator.py +++ b/src/bonsai/bonsai/bim/module/root/operator.py @@ -16,8 +16,10 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy +from typing import TYPE_CHECKING + import bmesh +import bpy import idprop import ifcopenshell import ifcopenshell.api @@ -25,20 +27,20 @@ import ifcopenshell.api.geometry import ifcopenshell.api.material import ifcopenshell.api.pset import ifcopenshell.api.root -import ifcopenshell.util.schema import ifcopenshell.util.element +import ifcopenshell.util.schema import ifcopenshell.util.shape_builder import ifcopenshell.util.type import ifcopenshell.util.unit -import bonsai.bim.handler -import bonsai.core.root as core -import bonsai.core.geometry -import bonsai.tool as tool -import bonsai.bim.module.root.prop as root_prop -from bonsai.bim.ifc import IfcStore -from bonsai.bim.helper import get_enum_items, prop_with_search from mathutils import Vector -from typing import TYPE_CHECKING + +import bonsai.bim.handler +import bonsai.bim.module.root.prop as root_prop +import bonsai.core.geometry +import bonsai.core.root as core +import bonsai.tool as tool +from bonsai.bim.helper import get_enum_items, prop_with_search +from bonsai.bim.ifc import IfcStore class EnableReassignClass(bpy.types.Operator): @@ -307,7 +309,7 @@ class AssignClass(bpy.types.Operator, tool.Ifc.Operator): with context.temp_override(selected_editable_objects=[obj]): bpy.ops.object.transform_apply(location=False, rotation=False, scale=True, properties=False) # object.transform_apply is losing normals. - if is_negative: + if is_negative and bpy.app.version >= (5, 1, 0): for polygon in obj.data.polygons: polygon.flip() @@ -695,6 +697,26 @@ class AddElement(bpy.types.Operator, tool.Ifc.Operator): XDim=default_x_dim / unit_scale, YDim=default_y_dim / unit_scale, ) + elif representation_template == "FLOW_SEGMENT_RECTANGULAR_HOLLOW": + default_x_dim = 0.4 + default_y_dim = 0.2 + default_thickness = 0.005 + default_inner_fillet_radius = 0.005 + default_outer_fillet_radius = 0.005 + profile_name = ( + f"{props.ifc_class}-{default_x_dim*1000}x{default_y_dim*1000}x{default_thickness*1000}" + ) + profile = tool.Ifc.get().create_entity( + "IfcRectangleHollowProfileDef", + ProfileName=profile_name, + ProfileType="AREA", + XDim=default_x_dim / unit_scale, + YDim=default_y_dim / unit_scale, + WallThickness=default_thickness / unit_scale, + InnerFilletRadius=default_inner_fillet_radius / unit_scale, + OuterFilletRadius=default_outer_fillet_radius / unit_scale, + ) + elif representation_template == "FLOW_SEGMENT_CIRCULAR": default_diameter = 0.1 profile_name = f"{props.ifc_class}-{default_diameter*1000}" @@ -715,6 +737,21 @@ class AddElement(bpy.types.Operator, tool.Ifc.Operator): Radius=(default_diameter / 2) / unit_scale, WallThickness=default_thickness, ) + elif representation_template == "FLOW_SEGMENT_U_SHAPE": + default_depth = 0.4 + default_flange_width = 0.2 + default_web_thickness = 0.005 + default_flange_thickness = 0.005 + profile_name = f"{props.ifc_class}-{default_depth*1000}x{default_flange_width*1000}x{default_web_thickness*1000}x{default_flange_thickness*1000}" + profile = tool.Ifc.get().create_entity( + "IfcUShapeProfileDef", + ProfileName=profile_name, + ProfileType="AREA", + Depth=default_depth / unit_scale, + FlangeWidth=default_flange_width / unit_scale, + WebThickness=default_web_thickness / unit_scale, + FlangeThickness=default_flange_thickness / unit_scale, + ) rel = ifcopenshell.api.material.assign_material( tool.Ifc.get(), products=[element], type="IfcMaterialProfileSet" diff --git a/src/bonsai/bonsai/bim/module/root/prop.py b/src/bonsai/bonsai/bim/module/root/prop.py index 9bd00c4c68..854eb6d0f0 100644 --- a/src/bonsai/bonsai/bim/module/root/prop.py +++ b/src/bonsai/bonsai/bim/module/root/prop.py @@ -16,25 +16,27 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Union + import bpy import ifcopenshell import ifcopenshell.util.element import ifcopenshell.util.schema import ifcopenshell.util.type -import bonsai.tool as tool -from bonsai.bim.module.root.data import IfcClassData -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Union +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.module.root.data import IfcClassData def get_ifc_predefined_types(self: "BIMRootProperties", context: bpy.types.Context) -> list[tuple[str, str]]: diff --git a/src/bonsai/bonsai/bim/module/root/ui.py b/src/bonsai/bonsai/bim/module/root/ui.py index facf619ad8..72eadb4e39 100644 --- a/src/bonsai/bonsai/bim/module/root/ui.py +++ b/src/bonsai/bonsai/bim/module/root/ui.py @@ -17,12 +17,13 @@ # along with Bonsai. If not, see . import bpy -import bonsai.tool as tool -import bonsai.bim.module.root.prop as root_prop from bpy.types import Panel + +import bonsai.bim.module.root.prop as root_prop +import bonsai.tool as tool from bonsai.bim.helper import prop_with_search -from bonsai.bim.module.root.data import IfcClassData from bonsai.bim.module.model.data import AuthoringData +from bonsai.bim.module.root.data import IfcClassData class BIM_PT_class(Panel): diff --git a/src/bonsai/bonsai/bim/module/search/__init__.py b/src/bonsai/bonsai/bim/module/search/__init__.py index e1849c63ae..5033fd3eb4 100644 --- a/src/bonsai/bonsai/bim/module/search/__init__.py +++ b/src/bonsai/bonsai/bim/module/search/__init__.py @@ -17,19 +17,23 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.ActivateContainerFilter, operator.ActivateIfcClassFilter, operator.AddFilter, operator.AddFilterGroup, + operator.ApplyFilterFromText, operator.ColourByProperty, operator.EditFilterQuery, + operator.FilterValueSuggestions, operator.LoadColourscheme, operator.LoadSearch, operator.RemoveFilter, operator.RemoveFilterGroup, + operator.RemoveSearch, operator.ResetObjectColours, operator.SaveColourscheme, operator.SaveSearch, @@ -40,6 +44,7 @@ classes = ( operator.SelectIfcClass, operator.SelectSimilar, operator.ShowAllElements, + operator.ToggleFilterInclusion, operator.ToggleFilterSelection, prop.BIMColour, prop.BIMFilterItem, @@ -55,7 +60,9 @@ classes = ( def register(): bpy.types.Scene.BIMSearchProperties = bpy.props.PointerProperty(type=prop.BIMSearchProperties) + bpy.types.TEXT_HT_header.append(operator.draw_text_editor_header) def unregister(): del bpy.types.Scene.BIMSearchProperties + bpy.types.TEXT_HT_header.remove(operator.draw_text_editor_header) diff --git a/src/bonsai/bonsai/bim/module/search/data.py b/src/bonsai/bonsai/bim/module/search/data.py index 4bde0aa359..8c2fad00b0 100644 --- a/src/bonsai/bonsai/bim/module/search/data.py +++ b/src/bonsai/bonsai/bim/module/search/data.py @@ -16,12 +16,14 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import json + +import bpy import ifcopenshell.util.element -import bonsai.tool as tool from natsort import natsorted +import bonsai.tool as tool + def refresh(): SearchData.is_loaded = False diff --git a/src/bonsai/bonsai/bim/module/search/operator.py b/src/bonsai/bonsai/bim/module/search/operator.py index 1fb164047b..83f401a122 100644 --- a/src/bonsai/bonsai/bim/module/search/operator.py +++ b/src/bonsai/bonsai/bim/module/search/operator.py @@ -16,31 +16,505 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import json import bisect +import json import traceback +from typing import TYPE_CHECKING, Literal, assert_never, get_args + +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.group import ifcopenshell.util.element import ifcopenshell.util.selector -import bonsai.tool as tool -import bonsai.core.search as core -from bonsai.bim.ifc import IfcStore -from natsort import natsorted -from bpy.types import PropertyGroup, Operator from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Literal, get_args, assert_never +from bpy.types import Operator, PropertyGroup +from natsort import natsorted + +import bonsai.core.search as core +import bonsai.tool as tool +from bonsai.bim.ifc import IfcStore +from bonsai.bim.prop import StrProperty + +if TYPE_CHECKING: + from bonsai.bim.prop import BIMFacet + + +def draw_text_editor_header(self: bpy.types.TEXT_HT_header, context: bpy.types.Context) -> None: + assert isinstance(context.space_data, bpy.types.SpaceTextEditor) + if context.space_data.text and context.space_data.text.name.startswith("FilterQuery_"): + layout = self.layout + layout.separator() + op = layout.operator("bim.apply_filter_from_text", text="Apply Filter Configuration", icon="CHECKMARK") + + +def update_filter_search_value(self: "FilterValueSuggestions", context: bpy.types.Context) -> None: + filter_groups = tool.Search.get_filter_groups(self.module) + ifc_filter = filter_groups[self.group_index].filters[self.filter_index] + + value = self.search_value + + if " < " in value: + value = value.split(" < ")[-1] + + if ifc_filter.type == "entity": + if " (superclass)" in value: + value = value.replace(" (superclass)", "") + if " > " in value: + value = value.split(" > ")[-1] + + elif ifc_filter.type == "instance": + if ": " in value: + value = value.split(": ")[-1] + elif " (" in value: + hierarchy_class = value.split(" (") + element_class = hierarchy_class[-1].rstrip(")") + element_name = hierarchy_class[0] if len(hierarchy_class) > 1 else None + + ifc_file = tool.Ifc.get() + if ifc_file: + for element_id in IfcStore.id_map.keys(): + try: + element = ifc_file.by_id(element_id) + if element.is_a() == element_class: + if element_name is None or (hasattr(element, "Name") and element.Name == element_name): + value = element.GlobalId + break + except: + continue + + elif ifc_filter.type == "parent": + if " (" in value: + value = value.split(" (")[0] + + if ifc_filter.type == "property": + if self.suggestion_type == "pset": + ifc_filter.pset = value + elif self.suggestion_type == "property_name": + ifc_filter.name = value + else: + ifc_filter.value = value + elif ifc_filter.type == "attribute": + if self.suggestion_type == "attribute_name": + ifc_filter.name = value + else: + ifc_filter.value = value + else: + ifc_filter.value = value + + if self.first_launch: + self.first_launch = False + else: + context.window.screen = context.window.screen + + +class FilterValueSuggestions(Operator): + bl_idname = "bim.filter_value_suggestions" + bl_label = "Filter Value Suggestions" + bl_description = "Get suggestions for filter values from the current IFC file" + bl_options = {"REGISTER", "UNDO"} + + group_index: IntProperty() + filter_index: IntProperty() + module: StringProperty(default="search") + filter_type: StringProperty() + suggestion_type: StringProperty(default="value") + + first_launch: BoolProperty(default=True, options={"SKIP_SAVE"}) + search_value: StringProperty( + name="Search", + description="Search for filter values", + update=update_filter_search_value, + default="", + options={"SKIP_SAVE"}, + ) + collection_values: CollectionProperty(type=StrProperty, options={"SKIP_SAVE"}) + + def execute(self, context): + return {"FINISHED"} + + def invoke(self, context, event): + ifc_file = tool.Ifc.get() + if not ifc_file: + self.report({"WARNING"}, "No IFC file loaded") + return {"CANCELLED"} + + filter_groups = tool.Search.get_filter_groups(self.module) + ifc_filter = filter_groups[self.group_index].filters[self.filter_index] + + string_suggestions = self.get_suggestions(ifc_file, ifc_filter) + if not string_suggestions: + self.report({"INFO"}, f"No suggestions available") + return {"CANCELLED"} + + self.collection_values.clear() + for suggestion in natsorted(string_suggestions): + self.collection_values.add().name = suggestion + + return context.window_manager.invoke_props_dialog(self, width=800) + + def draw(self, context): + layout = self.layout + assert layout + + filter_groups = tool.Search.get_filter_groups(self.module) + ifc_filter = filter_groups[self.group_index].filters[self.filter_index] + + label_map = { + "entity": "Select Class", + "type": "Select Type", + "material": "Select Material", + "location": "Select Location", + "group": "Select Group", + "classification": "Select Classification", + "parent": "Select Parent", + "instance": "Select GlobalId", + } + + if ifc_filter.type == "attribute": + if self.suggestion_type == "attribute_value": + label = f"Select Value for {ifc_filter.name}" + else: + label = "Select Attribute Name" + elif ifc_filter.type == "property": + if self.suggestion_type == "property_value": + label = f"Select Value for {ifc_filter.pset}.{ifc_filter.name}" + elif self.suggestion_type == "property_name": + label = f"Select Property from {ifc_filter.pset}" + else: + label = "Select Property Set" + else: + label = label_map.get(ifc_filter.type, "Select Value") + + row = layout.row() + row.label(text=label) + row = layout.row() + row.prop_search( + self, + "search_value", + self, + "collection_values", + text="", + results_are_suggestions=True, + ) + + def get_suggestions(self, ifc_file: ifcopenshell.file, ifc_filter: "BIMFacet") -> set[str]: + suggestions: set[str] = set() + + if ifc_filter.type == "entity": + suggestions = self.get_entity_suggestions(ifc_file) + elif ifc_filter.type == "type": + suggestions = self.get_type_suggestions(ifc_file) + elif ifc_filter.type == "material": + suggestions = self.get_material_suggestions(ifc_file) + elif ifc_filter.type == "location": + suggestions = self.get_location_suggestions(ifc_file) + elif ifc_filter.type == "group": + suggestions = self.get_group_suggestions(ifc_file) + elif ifc_filter.type == "classification": + suggestions = self.get_classification_suggestions(ifc_file) + elif ifc_filter.type == "parent": + suggestions = self.get_parent_suggestions(ifc_file) + elif ifc_filter.type == "instance": + suggestions = self.get_instance_suggestions(ifc_file) + elif ifc_filter.type == "attribute": + if self.suggestion_type == "attribute_name": + suggestions = self.get_attribute_names(ifc_file) + else: + suggestions = self.get_attribute_values(ifc_file, ifc_filter.name) + elif ifc_filter.type == "property": + if self.suggestion_type == "pset": + suggestions = self.get_property_sets(ifc_file) + elif self.suggestion_type == "property_name": + suggestions = self.get_property_names(ifc_file, ifc_filter.pset) + else: + suggestions = self.get_property_values(ifc_file, ifc_filter.pset, ifc_filter.name) + + return suggestions + + def build_hierarchy_path(self, element: ifcopenshell.entity_instance) -> list[str]: + path: list[str] = [] + current = element + + while current: + if hasattr(current, "Name") and current.Name: + path.insert(0, current.Name) + + parent = None + + if hasattr(current, "Decomposes") and current.Decomposes: + for rel in current.Decomposes: + if hasattr(rel, "RelatingObject"): + parent = rel.RelatingObject + break + + if not parent and hasattr(current, "ContainedInStructure") and current.ContainedInStructure: + for rel in current.ContainedInStructure: + if hasattr(rel, "RelatingStructure"): + parent = rel.RelatingStructure + break + + current = parent + + return path + + def get_entity_suggestions(self, ifc_file: ifcopenshell.file) -> set[str]: + all_classes: set[str] = set() + schema = tool.Ifc.schema() + + for element_id in IfcStore.id_map.keys(): + try: + element = ifc_file.by_id(element_id) + class_name = element.is_a() + + try: + entity = schema.declaration_by_name(class_name).as_entity() + assert entity + current = entity + + chain_names = [class_name] + while current.supertype(): + supertype = current.supertype() + assert supertype + chain_names.insert(0, supertype.name()) + current = supertype + + if len(chain_names) > 1: + all_classes.add(" > ".join(chain_names)) + for i in range(len(chain_names) - 1): + superclass_chain = " > ".join(chain_names[: i + 1]) + all_classes.add(f"{superclass_chain} (superclass)") + else: + all_classes.add(class_name) + except: + all_classes.add(class_name) + except: + continue + + return all_classes + + def get_type_suggestions(self, ifc_file: ifcopenshell.file) -> set[str]: + suggestions: set[str] = set() + for element_type in ifc_file.by_type("IfcTypeObject"): + if element_type.Name: + hierarchy_path = self.build_hierarchy_path(element_type) + if len(hierarchy_path) > 1: + suggestions.add(" < ".join(hierarchy_path)) + else: + suggestions.add(element_type.Name) + return suggestions + + def get_material_suggestions(self, ifc_file: ifcopenshell.file) -> set[str]: + suggestions = set() + for material in ifc_file.by_type("IfcMaterial"): + if material.Name: + suggestions.add(material.Name) + return suggestions + + def get_location_suggestions(self, ifc_file: ifcopenshell.file) -> set[str]: + suggestions: set[str] = set() + for spatial in ifc_file.by_type("IfcSpatialStructureElement"): + if spatial.Name: + hierarchy_path = self.build_hierarchy_path(spatial) + if len(hierarchy_path) > 1: + suggestions.add(" < ".join(hierarchy_path)) + else: + suggestions.add(spatial.Name) + return suggestions + + def get_group_suggestions(self, ifc_file: ifcopenshell.file) -> set[str]: + suggestions: set[str] = set() + for group in ifc_file.by_type("IfcGroup"): + if group.Name: + hierarchy_path = self.build_hierarchy_path(group) + if len(hierarchy_path) > 1: + suggestions.add(" < ".join(hierarchy_path)) + else: + suggestions.add(group.Name) + return suggestions + + def get_classification_suggestions(self, ifc_file: ifcopenshell.file) -> set[str]: + suggestions: set[str] = set() + for ref in ifc_file.by_type("IfcClassificationReference"): + if ref.Identification: + suggestions.add(ref.Identification) + return suggestions + + def get_parent_suggestions(self, ifc_file: ifcopenshell.file) -> set[str]: + suggestions: set[str] = set() + for element_id in IfcStore.id_map.keys(): + try: + element = ifc_file.by_id(element_id) + has_children = False + + if hasattr(element, "IsDecomposedBy") and element.IsDecomposedBy: + has_children = True + elif hasattr(element, "ContainsElements") and element.ContainsElements: + has_children = True + elif hasattr(element, "HasOpenings") and element.HasOpenings: + has_children = True + + if has_children: + hierarchy_path = self.build_hierarchy_path(element) + element_class = element.is_a() + + if len(hierarchy_path) > 0: + hierarchy_str = " < ".join(hierarchy_path) + suggestions.add(f"{hierarchy_str} ({element_class})") + else: + element_name = element.Name if hasattr(element, "Name") and element.Name else element_class + suggestions.add(f"{element_name} ({element_class})") + except: + continue + + return suggestions + + def get_instance_suggestions(self, ifc_file: ifcopenshell.file) -> set[str]: + suggestions: set[str] = set() + element_data: list[tuple[str, str]] = [] + + for element_id in IfcStore.id_map.keys(): + try: + element = ifc_file.by_id(element_id) + if hasattr(element, "GlobalId") and element.GlobalId: + hierarchy_path = self.build_hierarchy_path(element) + element_class = element.is_a() + + if len(hierarchy_path) > 0: + hierarchy_str = " < ".join(hierarchy_path) + display_str = f"{hierarchy_str} ({element_class})" + else: + display_str = f"({element_class})" + + element_data.append((display_str, element.GlobalId)) + except: + continue + + display_counts: dict[str, int] = {} + for display_str, global_id in element_data: + display_counts[display_str] = display_counts.get(display_str, 0) + 1 + + for display_str, global_id in element_data: + if display_counts[display_str] > 1: + suggestions.add(f"{display_str}: {global_id}") + else: + suggestions.add(display_str) + + return suggestions + + def get_property_sets(self, ifc_file: ifcopenshell.file) -> set[str]: + psets: set[str] = set() + for element_id in IfcStore.id_map.keys(): + try: + element = ifc_file.by_id(element_id) + for definition in getattr(element, "IsDefinedBy", []): + if definition.is_a("IfcRelDefinesByProperties"): + pset = definition.RelatingPropertyDefinition + if pset.is_a("IfcPropertySet") and pset.Name: + psets.add(pset.Name) + except: + continue + return psets + + def get_property_names(self, ifc_file: ifcopenshell.file, pset_name: str) -> set[str]: + property_names: set[str] = set() + for element_id in IfcStore.id_map.keys(): + try: + element = ifc_file.by_id(element_id) + for definition in getattr(element, "IsDefinedBy", []): + if definition.is_a("IfcRelDefinesByProperties"): + pset = definition.RelatingPropertyDefinition + if pset.is_a("IfcPropertySet") and pset.Name == pset_name: + if pset.HasProperties: + for prop in pset.HasProperties: + if hasattr(prop, "Name") and prop.Name: + property_names.add(prop.Name) + except: + continue + return property_names + + def get_property_values(self, ifc_file: ifcopenshell.file, pset_name: str, property_name: str) -> set[str]: + property_values: set[str] = set() + for element_id in IfcStore.id_map.keys(): + try: + element = ifc_file.by_id(element_id) + for definition in getattr(element, "IsDefinedBy", []): + if definition.is_a("IfcRelDefinesByProperties"): + pset = definition.RelatingPropertyDefinition + if pset.is_a("IfcPropertySet") and pset.Name == pset_name: + if pset.HasProperties: + for prop in pset.HasProperties: + if hasattr(prop, "Name") and prop.Name == property_name: + if prop.is_a("IfcPropertyEnumeratedValue"): + if hasattr(prop, "EnumerationReference") and prop.EnumerationReference: + enum_reference = prop.EnumerationReference + if hasattr(enum_reference, "EnumerationValues"): + for enum_value in enum_reference.EnumerationValues: + property_values.add(str(enum_value.wrappedValue)) + if hasattr(prop, "EnumerationValues") and prop.EnumerationValues: + for enum_value in prop.EnumerationValues: + property_values.add(str(enum_value.wrappedValue)) + elif hasattr(prop, "NominalValue") and prop.NominalValue: + property_values.add(str(prop.NominalValue.wrappedValue)) + except: + continue + return property_values + + def get_attribute_names(self, ifc_file: ifcopenshell.file) -> set[str]: + attribute_names: set[str] = set() + schema = tool.Ifc.schema() + + ifc_classes = set() + for element_id in IfcStore.id_map.keys(): + try: + element = ifc_file.by_id(element_id) + ifc_classes.add(element.is_a()) + except: + continue + + for ifc_class in ifc_classes: + try: + entity = schema.declaration_by_name(ifc_class).as_entity() + assert entity + attributes = entity.all_attributes() + for attr in attributes: + attribute_names.add(attr.name()) + except: + continue + + return attribute_names + + def get_attribute_values(self, ifc_file: ifcopenshell.file, attribute_name: str) -> set[str]: + attribute_values: set[str] = set() + + for element_id in IfcStore.id_map.keys(): + try: + element = ifc_file.by_id(element_id) + + if element.is_a("IfcRelationship") or element.is_a("IfcTypeObject"): + continue + + if hasattr(element, attribute_name): + value = getattr(element, attribute_name, None) + + if value is not None and value != "": + if not hasattr(value, "is_a") and not isinstance(value, (tuple, list)): + str_value = str(value) + if not str_value.startswith("#") and not str_value.startswith("("): + attribute_values.add(str_value) + except: + continue + + return attribute_values class AddFilterGroup(Operator): @@ -96,11 +570,38 @@ class AddFilter(Operator): def execute(self, context): filter_groups = tool.Search.get_filter_groups(self.module) + if self.index >= len(filter_groups): + filter_groups.add() new = filter_groups[self.index].filters.add() new.type = self.type return {"FINISHED"} +class ToggleFilterInclusion(Operator): + bl_idname = "bim.toggle_filter_inclusion" + bl_label = "Toggle Filter Mode" + bl_description = "Cycle between Add (+), Subtract (-), and Filter modes for this filter" + bl_options = {"REGISTER", "UNDO"} + + group_index: IntProperty() + filter_index: IntProperty() + module: StringProperty() + + def execute(self, context): + filter_groups = tool.Search.get_filter_groups(self.module) + filter_group = filter_groups[self.group_index] + ifc_filter = filter_group.filters[self.filter_index] + + if ifc_filter.filter_mode == "ADD": + ifc_filter.filter_mode = "SUBTRACT" + elif ifc_filter.filter_mode == "SUBTRACT": + ifc_filter.filter_mode = "FILTER" + else: + ifc_filter.filter_mode = "ADD" + + return {"FINISHED"} + + class SelectFilterElements(bpy.types.Operator): bl_idname = "bim.select_filter_elements" bl_label = "Select Filter Elements" @@ -120,6 +621,47 @@ class SelectFilterElements(bpy.types.Operator): return {"FINISHED"} +class ApplyFilterFromText(Operator, tool.Ifc.Operator): + bl_idname = "bim.apply_filter_from_text" + bl_label = "Apply Filter Configuration" + bl_description = "Apply the JSON filter configuration from the current text block" + bl_options = {"REGISTER", "UNDO"} + + @classmethod + def poll(cls, context): + if context.area and context.area.type == "TEXT_EDITOR": + space = context.space_data + if space.text and space.text.name.startswith("FilterQuery_"): + return True + return False + + def execute(self, context): + space = context.space_data + text = space.text + + if not text or not text.name.startswith("FilterQuery_"): + self.report({"ERROR"}, "No valid filter configuration text block") + return {"CANCELLED"} + + module = text.name.replace("FilterQuery_", "") + + try: + json_data = json.loads(text.as_string()) + filter_structure = json_data.get("filter_structure", []) + filter_groups = tool.Search.get_filter_groups(module) + tool.Search.import_filter_structure(filter_structure, filter_groups) + self.report({"INFO"}, "Filter configuration applied successfully") + + if len(context.window_manager.windows) > 1: + bpy.ops.wm.window_close() + + except Exception as e: + self.report({"ERROR"}, f"Invalid JSON: {str(e)}") + return {"CANCELLED"} + + return {"FINISHED"} + + class EditFilterQuery(Operator, tool.Ifc.Operator): bl_idname = "bim.edit_filter_query" bl_label = "Edit Filter Query" @@ -127,29 +669,82 @@ class EditFilterQuery(Operator, tool.Ifc.Operator): bl_options = {"REGISTER", "UNDO"} query: StringProperty(name="Query") old_query: StringProperty(name="Old Query") - module: StringProperty() + module: StringProperty(default="search") def _execute(self, context): - if self.query == self.old_query: - return + module = getattr(self, "module", "search") - filter_groups = tool.Search.get_filter_groups(self.module) - try: - tool.Search.import_filter_query(self.query, filter_groups) - except: - return + if not tool.Blender.get_addon_preferences().chain_filter_with_set_operations: + if self.query == self.old_query: + return + + filter_groups = tool.Search.get_filter_groups(module) + try: + tool.Search.import_filter_query(self.query, filter_groups) + except: + return def draw(self, context): - row = self.layout.row() - row.prop(self, "query", text="") + + if not tool.Blender.get_addon_preferences().chain_filter_with_set_operations: + row = self.layout.row() + row.prop(self, "query", text="") def invoke(self, context, event): - filter_groups = tool.Search.get_filter_groups(self.module) + module = getattr(self, "module", "search") + filter_groups = tool.Search.get_filter_groups(module) - self.query = tool.Search.export_filter_query(filter_groups) - self.old_query = self.query + if tool.Blender.get_addon_preferences().chain_filter_with_set_operations: + filter_structure = [] + for filter_group in filter_groups: + group_data = [] + for ifc_filter in filter_group.filters: + filter_data = { + "type": ifc_filter.type, + "name": ifc_filter.name, + "value": ifc_filter.value, + "pset": ifc_filter.pset, + "comparison": ifc_filter.comparison, + "filter_mode": ifc_filter.filter_mode, + } + group_data.append(filter_data) + filter_structure.append(group_data) - return context.window_manager.invoke_props_dialog(self) + query = tool.Search.export_filter_query(filter_groups) + json_data = {"type": "BBIM_Search", "query": query, "filter_structure": filter_structure} + + text_block_name = f"FilterQuery_{module}" + text = bpy.data.texts.get(text_block_name) + if not text: + text = bpy.data.texts.new(text_block_name) + + text.clear() + text.write(json.dumps(json_data, indent=2)) + + bpy.ops.wm.window_new() + new_window = context.window_manager.windows[-1] + + new_area = new_window.screen.areas[0] + new_area.type = "TEXT_EDITOR" + + text_space = None + for space in new_area.spaces: + if space.type == "TEXT_EDITOR": + text_space = space + break + + if text_space: + text_space.text = text + + self.report( + {"INFO"}, "Compact text editor opened. Edit JSON and click 'Apply Filter Configuration' in header" + ) + return {"FINISHED"} + + else: + self.query = tool.Search.export_filter_query(filter_groups) + self.old_query = self.query + return context.window_manager.invoke_props_dialog(self, width=400) class Search(Operator): @@ -174,16 +769,29 @@ class Search(Operator): else: assert_never(self.property_group) - results = ifcopenshell.util.selector.filter_elements( - tool.Ifc.get(), tool.Search.export_filter_query(props.filter_groups) - ) + preferences = tool.Blender.get_addon_preferences() + + # Migrate old ! prefix filters to new filter_mode system when preferences are enabled + if preferences.chain_filter_with_set_operations: + for filter_group in props.filter_groups: + for ifc_filter in filter_group.filters: + if ifc_filter.type not in ["entity", "instance"]: + continue + if ifc_filter.value.startswith("!"): + ifc_filter.value = ifc_filter.value[1:] + ifc_filter.filter_mode = "SUBTRACT" + + results = tool.Search.execute_filter_groups(props.filter_groups) + else: + results = ifcopenshell.util.selector.filter_elements( + tool.Ifc.get(), tool.Search.export_filter_query(props.filter_groups) + ) objs = [obj for e in results if isinstance(obj := tool.Ifc.get_object(e), bpy.types.Object)] - for obj in objs: - tool.Blender.set_object_selection(obj) - if objs: - tool.Blender.set_active_object(objs[0]) - self.report({"INFO"}, f"{len(results)} Results.") + active_object = next(iter(objs), None) + selection = tool.Blender.validate_object_selection(context, active_object, objs) + tool.Blender.set_objects_selection(*selection, clear_previous_selection=False) + self.report({"INFO"}, f"{len(results)} Results, {len(selection.selected_objects)} Objects Selected") return {"FINISHED"} @@ -242,13 +850,28 @@ class SaveSearch(Operator, tool.Ifc.Operator): try: query = tool.Search.export_filter_query(filter_groups) - results = ifcopenshell.util.selector.filter_elements(tool.Ifc.get(), query) + results = tool.Search.execute_filter_groups(filter_groups) + + filter_structure = [] + for filter_group in filter_groups: + group_data = [] + for ifc_filter in filter_group.filters: + filter_data = { + "type": ifc_filter.type, + "name": ifc_filter.name, + "value": ifc_filter.value, + "pset": ifc_filter.pset, + "comparison": ifc_filter.comparison, + "filter_mode": ifc_filter.filter_mode, + } + group_data.append(filter_data) + filter_structure.append(group_data) except: print(traceback.format_exc()) self.report({"ERROR"}, "Error occurred trying save search.") return - description = json.dumps({"type": "BBIM_Search", "query": query}) + description = json.dumps({"type": "BBIM_Search", "query": query, "filter_structure": filter_structure}) ifc_file = tool.Ifc.get() group = next( ( @@ -289,7 +912,12 @@ class LoadSearch(Operator, tool.Ifc.Operator): filter_groups = tool.Search.get_filter_groups(self.module) props = tool.Search.get_search_props() group = tool.Ifc.get().by_id(int(props.saved_searches)) - tool.Search.import_filter_query(tool.Search.get_group_query(group), filter_groups) + + group_data = tool.Search.get_group_data(group) + if group_data and "filter_structure" in group_data: + tool.Search.import_filter_structure(group_data["filter_structure"], filter_groups) + else: + tool.Search.import_filter_query(tool.Search.get_group_query(group), filter_groups) def draw(self, context): assert self.layout @@ -302,6 +930,41 @@ class LoadSearch(Operator, tool.Ifc.Operator): return context.window_manager.invoke_props_dialog(self) +class RemoveSearch(Operator, tool.Ifc.Operator): + bl_idname = "bim.remove_search" + bl_label = "Remove Search" + bl_description = "Remove a saved search filter" + bl_options = {"REGISTER", "UNDO"} + module: StringProperty() + + def _execute(self, context): + props = tool.Search.get_search_props() + group_id = props.saved_searches + if not group_id: + self.report({"ERROR"}, "No search selected for removal") + return + + group = tool.Ifc.get().by_id(int(group_id)) + group_name = group.Name or "Unnamed" + ifcopenshell.api.group.remove_group(tool.Ifc.get(), group=group) + tool.Search.patch_search_ifcgroups() + self.report({"INFO"}, f"Removed saved search: {group_name}") + + def draw(self, context): + self.layout.label(text="Select search to remove:", icon="ERROR") + row = self.layout.row() + props = tool.Search.get_search_props() + row.prop(props, "saved_searches", text="") + + def invoke(self, context, event): + tool.Search.patch_search_ifcgroups() + from bonsai.bim.module.search.data import SearchData + + if not SearchData.is_loaded: + SearchData.load() + return context.window_manager.invoke_props_dialog(self) + + class ColourByProperty(Operator): bl_idname = "bim.colour_by_property" bl_label = "Colour by Property" diff --git a/src/bonsai/bonsai/bim/module/search/prop.py b/src/bonsai/bonsai/bim/module/search/prop.py index 3cb8a12252..e3403b5abe 100644 --- a/src/bonsai/bonsai/bim/module/search/prop.py +++ b/src/bonsai/bonsai/bim/module/search/prop.py @@ -16,24 +16,31 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal, get_args + import bpy -import bonsai.tool as tool import ifcopenshell.util.schema -from bonsai.bim.prop import ObjProperty, BIMFilterGroup -from bonsai.bim.module.search.data import SearchData, ColourByPropertyData, SelectSimilarData -from bpy.types import PropertyGroup -from . import ui, prop, operator from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Literal, get_args +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.module.search.data import ( + ColourByPropertyData, + SearchData, + SelectSimilarData, +) +from bonsai.bim.prop import BIMFilterGroup, ObjProperty + +from . import operator, prop, ui def get_element_key(self: "BIMSearchProperties", context: bpy.types.Context) -> list[tuple[str, str, str]]: diff --git a/src/bonsai/bonsai/bim/module/search/ui.py b/src/bonsai/bonsai/bim/module/search/ui.py index 3481e3709b..3b01fdcbbe 100644 --- a/src/bonsai/bonsai/bim/module/search/ui.py +++ b/src/bonsai/bonsai/bim/module/search/ui.py @@ -17,15 +17,26 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy -import bonsai.tool as tool -import bonsai.bim.helper -from bpy.types import Panel -from bonsai.bim.module.search.data import SearchData, ColourByPropertyData, SelectSimilarData + from typing import TYPE_CHECKING +import bpy +from bpy.types import Panel + +import bonsai.bim.helper +import bonsai.tool as tool +from bonsai.bim.module.search.data import ( + ColourByPropertyData, + SearchData, + SelectSimilarData, +) + if TYPE_CHECKING: - from bonsai.bim.module.search.prop import BIMSearchProperties, BIMColour, BIMFilterItem + from bonsai.bim.module.search.prop import ( + BIMColour, + BIMFilterItem, + BIMSearchProperties, + ) class BIM_PT_search(Panel): diff --git a/src/bonsai/bonsai/bim/module/sequence/__init__.py b/src/bonsai/bonsai/bim/module/sequence/__init__.py index 3262b64527..e15d4e80ee 100644 --- a/src/bonsai/bonsai/bim/module/sequence/__init__.py +++ b/src/bonsai/bonsai/bim/module/sequence/__init__.py @@ -19,7 +19,8 @@ # pyright: reportAttributeAccessIssue=false import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddAnimationCamera, diff --git a/src/bonsai/bonsai/bim/module/sequence/data.py b/src/bonsai/bonsai/bim/module/sequence/data.py index 94df71eacd..7ea6050ca3 100644 --- a/src/bonsai/bonsai/bim/module/sequence/data.py +++ b/src/bonsai/bonsai/bim/module/sequence/data.py @@ -16,14 +16,16 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +import json +from typing import Any + import bpy -import bonsai.tool as tool import ifcopenshell import ifcopenshell.util.attribute import ifcopenshell.util.date from ifcopenshell.util.doc import get_predefined_type_doc -import json -from typing import Any + +import bonsai.tool as tool def refresh(): diff --git a/src/bonsai/bonsai/bim/module/sequence/helper.py b/src/bonsai/bonsai/bim/module/sequence/helper.py index 43dcd1d59b..50d2367144 100644 --- a/src/bonsai/bonsai/bim/module/sequence/helper.py +++ b/src/bonsai/bonsai/bim/module/sequence/helper.py @@ -18,12 +18,13 @@ from __future__ import annotations -import isodate +from datetime import datetime, timedelta +from typing import Any, Union + import bpy -from dateutil import parser import ifcopenshell.util.date -from datetime import timedelta, datetime -from typing import Union, Any +import isodate +from dateutil import parser from bonsai.bim.prop import ISODuration diff --git a/src/bonsai/bonsai/bim/module/sequence/operator.py b/src/bonsai/bonsai/bim/module/sequence/operator.py index c07b9a0496..2b4c317cd8 100644 --- a/src/bonsai/bonsai/bim/module/sequence/operator.py +++ b/src/bonsai/bonsai/bim/module/sequence/operator.py @@ -18,23 +18,23 @@ # pyright: reportUnnecessaryTypeIgnoreComment=error +import calendar +import time import types - from collections import Counter +from datetime import datetime from functools import cache +from typing import TYPE_CHECKING, Union, assert_never, get_args import bpy -import time -import calendar import ifcopenshell.api.pset import ifcopenshell.util.element +from bpy_extras.io_utils import ExportHelper, ImportHelper +from dateutil import parser, relativedelta + import bonsai.bim.schema import bonsai.core.sequence as core import bonsai.tool as tool -from datetime import datetime -from dateutil import parser, relativedelta -from bpy_extras.io_utils import ImportHelper, ExportHelper -from typing import Union, get_args, TYPE_CHECKING, assert_never if TYPE_CHECKING: from bpy.stub_internal.rna_enums import OperatorReturnItems diff --git a/src/bonsai/bonsai/bim/module/sequence/prop.py b/src/bonsai/bonsai/bim/module/sequence/prop.py index 1c35910e6c..6a5937ac45 100644 --- a/src/bonsai/bonsai/bim/module/sequence/prop.py +++ b/src/bonsai/bonsai/bim/module/sequence/prop.py @@ -16,32 +16,35 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal, Union, get_args + import bpy -import isodate import ifcopenshell.api import ifcopenshell.api.sequence import ifcopenshell.util.attribute import ifcopenshell.util.date -import bonsai.tool as tool -import bonsai.core.sequence as core -from bonsai.bim.module.sequence.data import SequenceData, AnimationColorSchemeData, refresh as refresh_sequence_data -import bonsai.bim.module.resource.data -import bonsai.bim.module.pset.data -from mathutils import Color -from bonsai.bim.prop import Attribute, ISODuration -from dateutil import parser -from bpy.types import PropertyGroup +import isodate from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Literal, Union, get_args +from bpy.types import PropertyGroup +from dateutil import parser +from mathutils import Color + +import bonsai.bim.module.pset.data +import bonsai.bim.module.resource.data +import bonsai.core.sequence as core +import bonsai.tool as tool +from bonsai.bim.module.sequence.data import AnimationColorSchemeData, SequenceData +from bonsai.bim.module.sequence.data import refresh as refresh_sequence_data +from bonsai.bim.prop import Attribute, ISODuration def getTaskColumns(self, context): diff --git a/src/bonsai/bonsai/bim/module/sequence/ui.py b/src/bonsai/bonsai/bim/module/sequence/ui.py index 9178268c3a..0ecd772276 100644 --- a/src/bonsai/bonsai/bim/module/sequence/ui.py +++ b/src/bonsai/bonsai/bim/module/sequence/ui.py @@ -16,26 +16,32 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Any, Optional + import bpy import ifcopenshell import isodate -import bonsai.tool as tool -import bonsai.bim.helper from bpy.types import Panel, UIList + +import bonsai.bim.helper +import bonsai.tool as tool from bonsai.bim.helper import draw_attributes from bonsai.bim.module.sequence.data import ( + AnimationColorSchemeData, + SequenceData, + StatusData, + TaskICOMData, WorkPlansData, WorkScheduleData, - SequenceData, - TaskICOMData, - AnimationColorSchemeData, - StatusData, ) -from typing import Any, Optional, TYPE_CHECKING if TYPE_CHECKING: + from bonsai.bim.module.sequence.prop import ( + BIMTaskTreeProperties, + BIMWorkScheduleProperties, + Task, + ) from bonsai.bim.prop import Attribute - from bonsai.bim.module.sequence.prop import BIMWorkScheduleProperties, BIMTaskTreeProperties, Task class BIM_PT_status(Panel): diff --git a/src/bonsai/bonsai/bim/module/spatial/__init__.py b/src/bonsai/bonsai/bim/module/spatial/__init__.py index 810766c552..57cc84a8f1 100644 --- a/src/bonsai/bonsai/bim/module/spatial/__init__.py +++ b/src/bonsai/bonsai/bim/module/spatial/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator, workspace + +from . import operator, prop, ui, workspace classes = ( operator.AssignContainer, @@ -38,6 +39,7 @@ classes = ( operator.SelectDecomposedElements, operator.SelectProduct, operator.SelectSimilarContainer, + operator.SetContainerVisibility, operator.SetDefaultContainer, operator.SetElementVisibility, operator.ToggleContainerElement, diff --git a/src/bonsai/bonsai/bim/module/spatial/data.py b/src/bonsai/bonsai/bim/module/spatial/data.py index baed31f49d..5885a9a76e 100644 --- a/src/bonsai/bonsai/bim/module/spatial/data.py +++ b/src/bonsai/bonsai/bim/module/spatial/data.py @@ -16,11 +16,13 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bonsai.tool as tool -import ifcopenshell.util.element from typing import Any +import bpy +import ifcopenshell.util.element + +import bonsai.tool as tool + def refresh(): SpatialData.is_loaded = False diff --git a/src/bonsai/bonsai/bim/module/spatial/decorator.py b/src/bonsai/bonsai/bim/module/spatial/decorator.py index 824fafec1f..8d66d4e8a6 100644 --- a/src/bonsai/bonsai/bim/module/spatial/decorator.py +++ b/src/bonsai/bonsai/bim/module/spatial/decorator.py @@ -17,13 +17,14 @@ # along with Bonsai. If not, see . import blf -import gpu import bmesh -import bonsai.tool as tool +import gpu from bpy.types import SpaceView3D -from mathutils import Vector -from gpu_extras.batch import batch_for_shader from bpy_extras.view3d_utils import location_3d_to_region_2d +from gpu_extras.batch import batch_for_shader +from mathutils import Vector + +import bonsai.tool as tool class GridDecorator: diff --git a/src/bonsai/bonsai/bim/module/spatial/operator.py b/src/bonsai/bonsai/bim/module/spatial/operator.py index e292a61781..23c0c28335 100644 --- a/src/bonsai/bonsai/bim/module/spatial/operator.py +++ b/src/bonsai/bonsai/bim/module/spatial/operator.py @@ -16,11 +16,14 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy import ifcopenshell.util.element -import bonsai.tool as tool -import bonsai.core.spatial as core + import bonsai.bim.handler +import bonsai.core.spatial as core +import bonsai.tool as tool class ReferenceStructure(bpy.types.Operator, tool.Ifc.Operator): @@ -150,16 +153,10 @@ class AssignContainer(bpy.types.Operator, tool.Ifc.Operator): "Assign the selected objects to the container selected in Spatial Manager.\n\n" "All elements-parts of an aggregate will be skipped.\n" "To assign a container, they should be unassigned from an aggregate first.\n\n" - "This will also move objects to the container collection in the outliner.\n" - "ALT + Click to ensure objects are only linked in the container collection" + "This will also move objects to the container collection in the outliner." ) bl_options = {"REGISTER", "UNDO"} container: bpy.props.IntProperty(options={"SKIP_SAVE"}) - remove_from_other_containers: bpy.props.BoolProperty(default=False, options={"SKIP_SAVE"}) - - def invoke(self, context, event): - self.remove_from_other_containers = event.alt - return self.execute(context) def _execute(self, context): if self.container: @@ -174,31 +171,9 @@ class AssignContainer(bpy.types.Operator, tool.Ifc.Operator): else: return - objs: list[bpy.types.Object] = [] - # In IFC element can be either contained of aggregated, - # tehrefore we skip aggregated elements here to prevent confusion. - # Can't handle it in `poll` since user might just select bunch of elements - # and try to assign a container to them - # and excluding aggregates because of the `poll` failing might get awkward. - skipped_aggregates = 0 - for obj in tool.Blender.get_selected_objects(): - if not (element := tool.Ifc.get_entity(obj)): - continue - if ifcopenshell.util.element.get_aggregate(element): - skipped_aggregates += 1 - continue - objs.append(obj) - - for element_obj in objs: - if self.remove_from_other_containers: - for col in element_obj.users_collection[:]: - col.objects.unlink(element_obj) - core.assign_container(tool.Ifc, tool.Collector, tool.Spatial, container=container, element_obj=element_obj) - - aggregates_msg = "" - if skipped_aggregates: - aggregates_msg = f" {skipped_aggregates} aggregated elements skipped." - self.report({"INFO"}, f"{len(objs)} elements assigned.{aggregates_msg}") + core.assign_container( + tool.Ifc, tool.Collector, tool.Spatial, container=container, objs=tool.Blender.get_selected_objects() + ) class EnableEditingContainer(bpy.types.Operator): @@ -233,7 +208,7 @@ class RemoveContainer(bpy.types.Operator, tool.Ifc.Operator): class CopyToContainer(bpy.types.Operator, tool.Ifc.Operator): """ - Copies selected 3D elements in the viewport to the selected spatial containers + Copies selected 3D elements in the viewport to the container selected in Spatial Manager. Example: bulk copy a wall to multiple storeys @@ -242,9 +217,13 @@ class CopyToContainer(bpy.types.Operator, tool.Ifc.Operator): Copying containers to other containers currently is not supported.""" bl_idname = "bim.copy_to_container" - bl_label = "Copy To Container" + bl_label = "Copy to Container" bl_options = {"REGISTER", "UNDO"} - container: bpy.props.IntProperty() + + container: bpy.props.IntProperty() # pyright: ignore[reportRedeclaration] + + if TYPE_CHECKING: + container: int def _execute(self, context): objs = tool.Spatial.get_selected_objects_without_containers() @@ -503,6 +482,54 @@ class SetDefaultContainer(bpy.types.Operator): return {"FINISHED"} +class SetContainerVisibility(bpy.types.Operator): + bl_idname = "bim.set_container_visibility" + bl_label = "Set Container Visibility" + bl_options = {"REGISTER", "UNDO"} + container: bpy.props.IntProperty() + should_include_children: bpy.props.BoolProperty(name="Should Include Children", default=True, options={"SKIP_SAVE"}) + mode: bpy.props.StringProperty(name="Mode") + + @classmethod + def description(cls, context, operator): + if operator.mode == "HIDE": + return "Hides the selected container and all children.\n" + "ALT+CLICK to ignore children" + elif operator.mode == "SHOW": + return "Shows the selected container and all children.\n" + "ALT+CLICK to ignore children" + return "Isolate the selected container and all children.\n" + "ALT+CLICK to ignore children" + + def invoke(self, context, event): + if event.type == "LEFTMOUSE" and event.alt: + self.should_include_children = False + return self.execute(context) + + def execute(self, context): + if self.mode == "ISOLATE": + if tool.Ifc.get_schema() == "IFC2X3": + containers = tool.Ifc.get().by_type("IfcSpatialStructureElement") + elif tool.Ifc.get_schema() != "IFC2X3": + containers = set(tool.Ifc.get().by_type("IfcSpatialElement")) + containers -= set(tool.Ifc.get().by_type("IfcSpatialZone")) + for container in containers: + if obj := tool.Ifc.get_object(container): + if collection := obj.BIMObjectProperties.collection: + collection.hide_viewport = True + should_hide = False + else: + should_hide = self.mode == "HIDE" + + container = tool.Ifc.get().by_id(self.container) + queue = [container] + while queue: + container = queue.pop() + if obj := tool.Ifc.get_object(container): + if collection := obj.BIMObjectProperties.collection: + collection.hide_viewport = should_hide + if self.should_include_children: + queue.extend(ifcopenshell.util.element.get_parts(container)) + return {"FINISHED"} + + class SetElementVisibility(bpy.types.Operator): bl_idname = "bim.set_element_visibility" bl_label = "Set Element Visibility" diff --git a/src/bonsai/bonsai/bim/module/spatial/prop.py b/src/bonsai/bonsai/bim/module/spatial/prop.py index 0b3652ca86..3d3d2e74f4 100644 --- a/src/bonsai/bonsai/bim/module/spatial/prop.py +++ b/src/bonsai/bonsai/bim/module/spatial/prop.py @@ -16,27 +16,29 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal, Union + import bpy -from bonsai.bim.prop import ObjProperty -from bonsai.bim.module.spatial.data import SpatialDecompositionData -from bpy.types import PropertyGroup -from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, - BoolProperty, - IntProperty, - FloatProperty, - FloatVectorProperty, - CollectionProperty, -) -import bonsai.tool as tool -import bonsai.bim.handler -import bonsai.core.geometry import ifcopenshell import ifcopenshell.api.attribute import ifcopenshell.util.unit -from typing import TYPE_CHECKING, Union, Literal +from bpy.props import ( + BoolProperty, + CollectionProperty, + EnumProperty, + FloatProperty, + FloatVectorProperty, + IntProperty, + PointerProperty, + StringProperty, +) +from bpy.types import PropertyGroup + +import bonsai.bim.handler +import bonsai.core.geometry +import bonsai.tool as tool +from bonsai.bim.module.spatial.data import SpatialDecompositionData +from bonsai.bim.prop import ObjProperty def get_subelement_class( @@ -48,18 +50,46 @@ def get_subelement_class( def update_elevation(self: "BIMContainer", context: bpy.types.Context) -> None: - try: - elevation = float(self.elevation) - if self.elevation != str(elevation): - self.elevation = str(elevation) - return - except: - elevation = 0 + # Try to parse the input string with unit support first + is_valid, parsed_elevation = tool.Unit.parse_distance_string(self.elevation, use_project_unit=True) + + if is_valid: + elevation = parsed_elevation + + # Format the string if it needs normalization: + # - Plain numbers (no units): "4" → "4' - 0"" + # - Missing symbols: "5'3" → "5' - 3"" + # - Inconsistent formatting: "5' 3 3/256" → "5' - 3 3/256"" + input_str = self.elevation.strip() + + # Check if input needs formatting (has feet/inch symbols or is plain number) + needs_formatting = ( + input_str.replace(".", "").replace("-", "").replace(" ", "").replace("/", "").isdigit() # Plain number + or "'" in input_str # Has feet symbol + or '"' in input_str # Has inch symbol + or " " in input_str.replace(" - ", "") # Has spaces (but not the formatted " - ") + ) + + # Only format if the current string doesn't match our standard format + if needs_formatting: + formatted = tool.Unit.format_distance(elevation) + if self.elevation != formatted: + self.elevation = formatted + return + else: + # Fall back to direct float conversion for backward compatibility + try: + elevation = float(self.elevation) + except Exception as e: + print(f"Elevation parsing failed for '{self.elevation}': {e}") + elevation = 0 + + # Update the object's position in the 3D scene if ifc_definition_id := self.ifc_definition_id: entity = tool.Ifc.get().by_id(ifc_definition_id) if obj := tool.Ifc.get_object(entity): - unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) - obj.matrix_world[2][3] = elevation * unit_scale + # elevation is already in meters, set it directly + obj.matrix_world[2][3] = elevation bonsai.core.geometry.edit_object_placement(tool.Ifc, tool.Geometry, tool.Surveyor, obj) @@ -69,6 +99,7 @@ def update_name(self: "BIMContainer", context: bpy.types.Context) -> None: tool.Spatial.edit_container_name(element, self.name) if obj := tool.Ifc.get_object(element): tool.Root.set_object_name(obj, element) + tool.Collector.assign(obj) bonsai.bim.handler.refresh_ui_data() @@ -143,8 +174,8 @@ def poll_container_obj(self: "BIMObjectSpatialProperties", container_obj: bpy.ty obj = self.id_data if ( (container := tool.Ifc.get_entity(container_obj)) - and (tool.Ifc.get_entity(obj)) - and tool.Spatial.can_contain(container, obj) + and (element := tool.Ifc.get_entity(obj)) + and tool.Spatial.can_contain(container, element) ): return True return False diff --git a/src/bonsai/bonsai/bim/module/spatial/ui.py b/src/bonsai/bonsai/bim/module/spatial/ui.py index 0372a6f77e..69d9068f85 100644 --- a/src/bonsai/bonsai/bim/module/spatial/ui.py +++ b/src/bonsai/bonsai/bim/module/spatial/ui.py @@ -17,14 +17,21 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Any, cast + import bpy from bpy.types import Panel, UIList -from bonsai.bim.module.spatial.data import SpatialData, SpatialDecompositionData + import bonsai.tool as tool -from typing import TYPE_CHECKING, cast, Any +from bonsai.bim.module.spatial.data import SpatialData, SpatialDecompositionData if TYPE_CHECKING: - from bonsai.bim.module.spatial.prop import BIMSpatialDecompositionProperties, BIMContainer, Element + from bonsai.bim.module.spatial.prop import ( + BIMContainer, + BIMSpatialDecompositionProperties, + Element, + ) class BIM_PT_spatial(Panel): @@ -132,6 +139,17 @@ class BIM_PT_spatial_decomposition(Panel): op = col.operator("bim.set_default_container", icon="OUTLINER_COLLECTION", text="Set Default") op.container = ifc_definition_id + if tool.Blender.get_addon_preferences().container_hide_show_isolate: + op = row.operator("bim.set_container_visibility", icon="FULLSCREEN_EXIT", text="") + op.mode = "ISOLATE" + op.container = ifc_definition_id + op = row.operator("bim.set_container_visibility", icon="HIDE_OFF", text="") + op.mode = "SHOW" + op.container = ifc_definition_id + op = row.operator("bim.set_container_visibility", icon="HIDE_ON", text="") + op.mode = "HIDE" + op.container = ifc_definition_id + # The only operator that's enabled for IfcProject. col = row.column(align=True) col.operator("bim.select_container", icon="OBJECT_DATA", text="").container = ifc_definition_id @@ -277,7 +295,7 @@ class BIM_UL_containers_manager(UIList): if item: row = layout.row(align=True) icon = self.icon_by_class.get(item.ifc_class, "META_PLANE") - split = row.split(factor=0.85) + split = row.split(factor=0.8) if item.long_name: split2 = split.split(factor=0.7) row = split2.row(align=True) diff --git a/src/bonsai/bonsai/bim/module/spatial/workspace.py b/src/bonsai/bonsai/bim/module/spatial/workspace.py index aa57b03631..6f34099861 100644 --- a/src/bonsai/bonsai/bim/module/spatial/workspace.py +++ b/src/bonsai/bonsai/bim/module/spatial/workspace.py @@ -18,12 +18,14 @@ import os +from functools import partial + import bpy +from bpy.types import WorkSpaceTool + +import bonsai.core.spatial import bonsai.tool as tool from bonsai.bim.module.model.data import AuthoringData -from bpy.types import WorkSpaceTool -import bonsai.core.spatial -from functools import partial class SpatialTool(WorkSpaceTool): diff --git a/src/bonsai/bonsai/bim/module/structural/__init__.py b/src/bonsai/bonsai/bim/module/structural/__init__.py index db72ad497c..3fa0cb9497 100644 --- a/src/bonsai/bonsai/bim/module/structural/__init__.py +++ b/src/bonsai/bonsai/bim/module/structural/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator, workspace + +from . import operator, prop, ui, workspace classes = ( operator.ShowLoads, diff --git a/src/bonsai/bonsai/bim/module/structural/data.py b/src/bonsai/bonsai/bim/module/structural/data.py index f3215ddff3..1cdfcc2297 100644 --- a/src/bonsai/bonsai/bim/module/structural/data.py +++ b/src/bonsai/bonsai/bim/module/structural/data.py @@ -17,9 +17,10 @@ # along with Bonsai. If not, see . import bpy -import bonsai.tool as tool import ifcopenshell.util.doc +import bonsai.tool as tool + def refresh(): StructuralBoundaryConditionsData.is_loaded = False diff --git a/src/bonsai/bonsai/bim/module/structural/decorator.py b/src/bonsai/bonsai/bim/module/structural/decorator.py index 2bcc90c647..32925be61c 100644 --- a/src/bonsai/bonsai/bim/module/structural/decorator.py +++ b/src/bonsai/bonsai/bim/module/structural/decorator.py @@ -16,16 +16,18 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -from mathutils import Vector -import numpy as np +from collections.abc import Iterable +from typing import Union + +import blf import bpy import gpu -import blf -import bonsai.tool as tool +import numpy as np from bpy.types import SpaceView3D from gpu_extras.batch import batch_for_shader -from typing import Union -from collections.abc import Iterable +from mathutils import Vector + +import bonsai.tool as tool from bonsai.bim.module.structural.load_decoration_data import ShaderInfo diff --git a/src/bonsai/bonsai/bim/module/structural/load_decoration_data.py b/src/bonsai/bonsai/bim/module/structural/load_decoration_data.py index 7df67e82d4..132c305ad1 100644 --- a/src/bonsai/bonsai/bim/module/structural/load_decoration_data.py +++ b/src/bonsai/bonsai/bim/module/structural/load_decoration_data.py @@ -16,20 +16,22 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bmesh -import numpy as np +from collections.abc import Iterable from math import sin -from mathutils import Vector +from typing import Literal, TypedDict + +import bmesh +import bpy import ifcopenshell import ifcopenshell.util.placement import ifcopenshell.util.representation import ifcopenshell.util.unit import ifcopenshell.util.unit as ifcunit +import numpy as np +from mathutils import Vector + import bonsai.tool as tool from bonsai.bim.module.structural.shader import DecorationShader -from typing import Literal, TypedDict -from collections.abc import Iterable class MemberInfo(TypedDict): diff --git a/src/bonsai/bonsai/bim/module/structural/operator.py b/src/bonsai/bonsai/bim/module/structural/operator.py index 9840f87c1e..edb3ab18ae 100644 --- a/src/bonsai/bonsai/bim/module/structural/operator.py +++ b/src/bonsai/bonsai/bim/module/structural/operator.py @@ -16,20 +16,22 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import json +from math import degrees +from typing import TYPE_CHECKING, Any, Literal + +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.aggregate import ifcopenshell.api.group import ifcopenshell.api.structural +from mathutils import Matrix, Vector + import bonsai.bim.helper import bonsai.core.structural as core import bonsai.tool as tool -from math import degrees -from mathutils import Vector, Matrix from bonsai.bim.module.structural.decorator import LoadsDecorator -from typing import Literal, Any, TYPE_CHECKING class ShowLoads(bpy.types.Operator): diff --git a/src/bonsai/bonsai/bim/module/structural/prop.py b/src/bonsai/bonsai/bim/module/structural/prop.py index c0db44fac6..24d6ead470 100644 --- a/src/bonsai/bonsai/bim/module/structural/prop.py +++ b/src/bonsai/bonsai/bim/module/structural/prop.py @@ -17,27 +17,29 @@ # along with Bonsai. If not, see . from math import radians +from typing import TYPE_CHECKING, Union + import bpy -import bonsai.tool as tool -from bonsai.bim.prop import StrProperty, Attribute -from bonsai.bim.module.structural.data import ( - StructuralLoadCasesData, - StructuralLoadsData, - BoundaryConditionsData, - LoadGroupDecorationData, -) -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Union +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.module.structural.data import ( + BoundaryConditionsData, + LoadGroupDecorationData, + StructuralLoadCasesData, + StructuralLoadsData, +) +from bonsai.bim.prop import Attribute, StrProperty def get_load_groups_to_show(self: "BIMStructuralProperties", context: bpy.types.Context) -> list[tuple[str, str, str]]: diff --git a/src/bonsai/bonsai/bim/module/structural/shader.py b/src/bonsai/bonsai/bim/module/structural/shader.py index 389ed34839..d6f92028d6 100644 --- a/src/bonsai/bonsai/bim/module/structural/shader.py +++ b/src/bonsai/bonsai/bim/module/structural/shader.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import gpu from typing import Literal +import gpu + class DecorationShader: "shader for the load decorations" diff --git a/src/bonsai/bonsai/bim/module/structural/ui.py b/src/bonsai/bonsai/bim/module/structural/ui.py index 44b56633a1..6d93bd3ffd 100644 --- a/src/bonsai/bonsai/bim/module/structural/ui.py +++ b/src/bonsai/bonsai/bim/module/structural/ui.py @@ -17,31 +17,34 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Any, Union + import bpy -import bonsai.tool as tool -import bonsai.bim.helper from bpy.types import Panel, UIList + +import bonsai.bim.helper +import bonsai.tool as tool from bonsai.bim.helper import draw_attributes, prop_with_search from bonsai.bim.module.structural.data import ( - StructuralBoundaryConditionsData, + BoundaryConditionsData, ConnectedStructuralMembersData, - StructuralMemberData, StructuralAnalysisModelsData, + StructuralBoundaryConditionsData, + StructuralConnectionData, StructuralLoadCasesData, StructuralLoadsData, - StructuralConnectionData, - BoundaryConditionsData, + StructuralMemberData, ) -from typing import TYPE_CHECKING, Any, Union if TYPE_CHECKING: from bonsai.bim.module.structural.prop import ( - BIMStructuralProperties, BIMObjectStructuralProperties, + BIMStructuralProperties, BoundaryCondition, - StructuralLoad, StructuralActivity, StructuralAnalysisModel, + StructuralLoad, ) diff --git a/src/bonsai/bonsai/bim/module/structural/workspace.py b/src/bonsai/bonsai/bim/module/structural/workspace.py index fbacac3e1a..407f017834 100644 --- a/src/bonsai/bonsai/bim/module/structural/workspace.py +++ b/src/bonsai/bonsai/bim/module/structural/workspace.py @@ -18,11 +18,13 @@ import os -import bpy -import bonsai.tool as tool -from bpy.types import WorkSpaceTool from functools import partial +import bpy +from bpy.types import WorkSpaceTool + +import bonsai.tool as tool + class StructuralTool(WorkSpaceTool): bl_space_type = "VIEW_3D" diff --git a/src/bonsai/bonsai/bim/module/style/__init__.py b/src/bonsai/bonsai/bim/module/style/__init__.py index ba44a727b1..6f13fd6f2d 100644 --- a/src/bonsai/bonsai/bim/module/style/__init__.py +++ b/src/bonsai/bonsai/bim/module/style/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.ActivateExternalStyle, diff --git a/src/bonsai/bonsai/bim/module/style/data.py b/src/bonsai/bonsai/bim/module/style/data.py index 83e453d7a5..dabf6f3ba7 100644 --- a/src/bonsai/bonsai/bim/module/style/data.py +++ b/src/bonsai/bonsai/bim/module/style/data.py @@ -16,12 +16,14 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import Union + import bpy import ifcopenshell import ifcopenshell.util.schema -import bonsai.tool as tool from ifcopenshell.util.doc import get_entity_doc -from typing import Union + +import bonsai.tool as tool def refresh(): diff --git a/src/bonsai/bonsai/bim/module/style/operator.py b/src/bonsai/bonsai/bim/module/style/operator.py index 4a036652f2..a26cce67f1 100644 --- a/src/bonsai/bonsai/bim/module/style/operator.py +++ b/src/bonsai/bonsai/bim/module/style/operator.py @@ -17,19 +17,21 @@ # along with Bonsai. If not, see . import os +from pathlib import Path +from typing import Any, Union + import bpy -import bonsai.bim.helper -import bonsai.tool as tool -import bonsai.core.style as core import ifcopenshell.api import ifcopenshell.api.style import ifcopenshell.util.representation import ifcopenshell.util.unit -from bonsai.bim.module.style.prop import ColourRgb from bpy_extras.io_utils import ImportHelper -from pathlib import Path from mathutils import Vector -from typing import Any, Union + +import bonsai.bim.helper +import bonsai.core.style as core +import bonsai.tool as tool +from bonsai.bim.module.style.prop import ColourRgb # TODO: is this still relevant or can it be deleted? diff --git a/src/bonsai/bonsai/bim/module/style/prop.py b/src/bonsai/bonsai/bim/module/style/prop.py index 42866486c2..b1660dfd4c 100644 --- a/src/bonsai/bonsai/bim/module/style/prop.py +++ b/src/bonsai/bonsai/bim/module/style/prop.py @@ -16,25 +16,25 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +import gettext +from typing import TYPE_CHECKING, Literal, Union, get_args + import bpy -import bonsai.tool as tool -from bonsai.bim.prop import StrProperty, Attribute -from bonsai.bim.module.style.data import StylesData -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) +from bpy.types import PropertyGroup -import gettext -from typing import Literal, Union, TYPE_CHECKING, get_args - +import bonsai.tool as tool +from bonsai.bim.module.style.data import StylesData +from bonsai.bim.prop import Attribute, StrProperty _ = gettext.gettext diff --git a/src/bonsai/bonsai/bim/module/style/ui.py b/src/bonsai/bonsai/bim/module/style/ui.py index 37c46b6d63..54ca4f5aa4 100644 --- a/src/bonsai/bonsai/bim/module/style/ui.py +++ b/src/bonsai/bonsai/bim/module/style/ui.py @@ -17,12 +17,15 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING + import bpy +from bpy.types import Panel, UIList + import bonsai.bim.helper import bonsai.tool as tool -from bpy.types import Panel, UIList -from bonsai.bim.module.style.data import StylesData, BlenderMaterialStyleData -from typing import TYPE_CHECKING +from bonsai.bim.module.style.data import BlenderMaterialStyleData, StylesData if TYPE_CHECKING: from bonsai.bim.module.style.prop import BIMStylesProperties, Style diff --git a/src/bonsai/bonsai/bim/module/system/__init__.py b/src/bonsai/bonsai/bim/module/system/__init__.py index 92782ae6fe..36901100f6 100644 --- a/src/bonsai/bonsai/bim/module/system/__init__.py +++ b/src/bonsai/bonsai/bim/module/system/__init__.py @@ -17,15 +17,18 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator, decorator + +from . import decorator, operator, prop, ui classes = ( operator.AddPort, + operator.AddRelatedPortConnection, operator.AddSystem, operator.AddZone, operator.AssignSystem, operator.AssignUnassignFlowControl, operator.ConnectPort, + operator.CycleFlowDirection, operator.DisableEditingSystem, operator.DisableEditingZone, operator.DisableSystemEditingUI, @@ -34,6 +37,7 @@ classes = ( operator.EditZone, operator.EnableEditingSystem, operator.EnableEditingZone, + operator.EstablishPathDirection, operator.HidePorts, operator.LoadSystems, operator.LoadZones, diff --git a/src/bonsai/bonsai/bim/module/system/data.py b/src/bonsai/bonsai/bim/module/system/data.py index 5db3d60114..c5d8897cc8 100644 --- a/src/bonsai/bonsai/bim/module/system/data.py +++ b/src/bonsai/bonsai/bim/module/system/data.py @@ -16,14 +16,16 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import Any, Union + import bpy import ifcopenshell import ifcopenshell.util.schema import ifcopenshell.util.system import ifcopenshell.util.unit from ifcopenshell.util.doc import get_entity_doc + import bonsai.tool as tool -from typing import Any, Union def refresh(): diff --git a/src/bonsai/bonsai/bim/module/system/decorator.py b/src/bonsai/bonsai/bim/module/system/decorator.py index c77b2f6879..f2448ba6e6 100644 --- a/src/bonsai/bonsai/bim/module/system/decorator.py +++ b/src/bonsai/bonsai/bim/module/system/decorator.py @@ -16,18 +16,19 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from math import cos, radians, sin + +import bmesh import bpy import gpu -import bmesh -import bonsai.tool as tool -from math import sin, cos, radians -from bpy.types import SpaceView3D -from mathutils import Vector, Matrix -from gpu_extras.batch import batch_for_shader import ifcopenshell -from bonsai.bim.module.system.data import SystemDecorationData from bpy.app.handlers import persistent +from bpy.types import SpaceView3D +from gpu_extras.batch import batch_for_shader +from mathutils import Matrix, Vector +import bonsai.tool as tool +from bonsai.bim.module.system.data import SystemDecorationData ERROR_ELEMENTS_COLOR = (1, 0.2, 0.322, 1) # RED UNSPECIAL_ELEMENT_COLOR = (0.2, 0.2, 0.2, 1) # GREY diff --git a/src/bonsai/bonsai/bim/module/system/operator.py b/src/bonsai/bonsai/bim/module/system/operator.py index add214c09d..089bd9f24b 100644 --- a/src/bonsai/bonsai/bim/module/system/operator.py +++ b/src/bonsai/bonsai/bim/module/system/operator.py @@ -16,15 +16,17 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy import ifcopenshell.api import ifcopenshell.api.system import ifcopenshell.util.system -import bonsai.tool as tool -import bonsai.core.system as core + import bonsai.bim.helper +import bonsai.core.system as core +import bonsai.tool as tool from bonsai.bim.module.system.data import PortData, SystemData -from typing import TYPE_CHECKING class LoadSystems(bpy.types.Operator): @@ -198,7 +200,16 @@ class ShowPorts(bpy.types.Operator, tool.Ifc.Operator): def _execute(self, context): # Ifc.Operator - as operator will sync object's position with IFC. - core.show_ports(tool.Ifc, tool.System, tool.Spatial, element=tool.Ifc.get_entity(context.active_object)) + element = tool.Ifc.get_entity(context.active_object) + core.show_ports(tool.Ifc, tool.System, tool.Spatial, element=element) + + for port in tool.System.get_ports(element): + connected_port = tool.System.get_connected_port(port) + if connected_port: + connected_port_obj = tool.Ifc.get_object(connected_port) + if not connected_port_obj: + parent_element = tool.System.get_port_relating_element(connected_port) + core.show_ports(tool.Ifc, tool.System, tool.Spatial, element=parent_element) class HidePorts(bpy.types.Operator, tool.Ifc.Operator): @@ -217,7 +228,7 @@ class HidePorts(bpy.types.Operator, tool.Ifc.Operator): class AddPort(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.add_port" - bl_description = "Add port at current cursor position" + bl_description = "Add USERDEFINED port at current cursor position" bl_label = "Add Port" bl_options = {"REGISTER", "UNDO"} @@ -246,7 +257,41 @@ class ConnectPort(bpy.types.Operator, tool.Ifc.Operator): def _execute(self, context): obj1 = context.active_object obj2 = context.selected_objects[0] if context.selected_objects[1] == obj1 else context.selected_objects[1] - core.connect_port(tool.Ifc, port1=tool.Ifc.get_entity(obj1), port2=tool.Ifc.get_entity(obj2)) + direction = tool.Ifc.get_entity(obj1).FlowDirection or "NOTDEFINED" + core.connect_port( + tool.Ifc, port1=tool.Ifc.get_entity(obj1), port2=tool.Ifc.get_entity(obj2), direction=direction + ) + + +class AddRelatedPortConnection(bpy.types.Operator, tool.Ifc.Operator): + bl_idname = "bim.add_related_port_connection" + bl_label = "Connect Port" + bl_options = {"REGISTER", "UNDO"} + + relating_port_id: bpy.props.IntProperty() + + def invoke(self, context, event): + return context.window_manager.invoke_props_dialog(self) + + def draw(self, context): + props = tool.System.get_system_props() + self.layout.prop(props, "related_port", text="Select Port") + + def _execute(self, context): + props = tool.System.get_system_props() + + if not props.related_port or props.related_port == "NONE": + return {"CANCELLED"} + + port_obj = bpy.data.objects.get(props.related_port) + related_port = tool.Ifc.get_entity(port_obj) + relating_port = tool.Ifc.get().by_id(self.relating_port_id) + + direction = relating_port.FlowDirection or "NOTDEFINED" + core.connect_port(tool.Ifc, port1=relating_port, port2=related_port, direction=direction) + PortData.is_loaded = False + + return {"FINISHED"} class DisconnectPort(bpy.types.Operator, tool.Ifc.Operator): @@ -256,6 +301,9 @@ class DisconnectPort(bpy.types.Operator, tool.Ifc.Operator): element_id: bpy.props.IntProperty(default=0, options={"SKIP_SAVE"}) + def invoke(self, context, event): + return context.window_manager.invoke_confirm(self, event) + def _execute(self, context): if self.element_id != 0: element = tool.Ifc.get().by_id(self.element_id) @@ -269,17 +317,19 @@ class MEPConnectElements(bpy.types.Operator, tool.Ifc.Operator): bl_label = "Connect MEP Elements" bl_description = "Connects two selected elements by their closest located ports and adjusts them" bl_options = {"REGISTER", "UNDO"} - - @classmethod - def poll(cls, context): - if not len(context.selected_objects) == 2: - cls.poll_message_set("Need to select 2 objects.") - return False - return True + obj1_name: bpy.props.StringProperty(name="Object 1") + obj2_name: bpy.props.StringProperty(name="Object 2") def _execute(self, context): - obj1 = context.active_object - obj2 = next(o for o in context.selected_objects if o != obj1) + if self.obj1_name and self.obj2_name: + obj1 = bpy.data.objects.get(self.obj1_name) + obj2 = bpy.data.objects.get(self.obj2_name) + else: + if not context.selected_objects or len(context.selected_objects) != 2: + self.report({"ERROR"}, "Need to select 2 objects.") + return {"CANCELLED"} + obj1 = context.active_object + obj2 = next(o for o in context.selected_objects if o != obj1) tool.Model.sync_object_ifc_position(obj1) tool.Model.sync_object_ifc_position(obj2) @@ -310,7 +360,8 @@ class MEPConnectElements(bpy.types.Operator, tool.Ifc.Operator): ports_distance[(port1, port2)] = distance closest_ports = min(ports_distance, key=lambda x: ports_distance[x]) - core.connect_port(tool.Ifc, *closest_ports) + direction = closest_ports[0].FlowDirection or "NOTDEFINED" + core.connect_port(tool.Ifc, *closest_ports, direction=direction) bpy.ops.bim.regenerate_distribution_element() return {"FINISHED"} @@ -379,6 +430,104 @@ class SetFlowDirection(bpy.types.Operator, tool.Ifc.Operator): return {"CANCELLED"} +class CycleFlowDirection(bpy.types.Operator, tool.Ifc.Operator): + bl_idname = "bim.cycle_flow_direction" + bl_label = "Cycle Flow Direction" + bl_options = {"REGISTER", "UNDO"} + port_id: bpy.props.IntProperty() + + @classmethod + def description(cls, context, operator): + port = tool.Ifc.get().by_id(operator.port_id) + if port and port.is_a("IfcDistributionPort"): + current_direction = port.FlowDirection or "NOTDEFINED" + return f"Current flow direction: {current_direction}. Click to cycle: SOURCE → SINK → SOURCEANDSINK → NOTDEFINED" + return "Cycle through flow directions: SOURCE → SINK → SOURCEANDSINK → NOTDEFINED → SOURCE..." + + def _execute(self, context): + port = tool.Ifc.get().by_id(self.port_id) + if not port or not port.is_a("IfcDistributionPort"): + return {"CANCELLED"} + + current_direction = port.FlowDirection or "NOTDEFINED" + + flow_cycle_map = { + "SOURCE": "SINK", + "SINK": "SOURCEANDSINK", + "SOURCEANDSINK": "NOTDEFINED", + "NOTDEFINED": "SOURCE", + } + next_direction = flow_cycle_map.get(current_direction, "SOURCE") + + tool.Ifc.run("attribute.edit_attributes", product=port, attributes={"FlowDirection": next_direction}) + + connected_port = tool.System.get_connected_port(port) + if connected_port: + connected_direction_map = { + "SOURCE": "SINK", + "SINK": "SOURCE", + "SOURCEANDSINK": "SOURCEANDSINK", + "NOTDEFINED": "NOTDEFINED", + } + connected_direction = connected_direction_map.get(next_direction, "NOTDEFINED") + tool.Ifc.run( + "attribute.edit_attributes", product=connected_port, attributes={"FlowDirection": connected_direction} + ) + + PortData.is_loaded = False + + return {"FINISHED"} + + +class EstablishPathDirection(bpy.types.Operator, tool.Ifc.Operator): + bl_idname = "bim.establish_path_direction" + bl_label = "Establish Path Direction" + bl_description = "Propagates flow direction through connected flow segments with two ports" + bl_options = {"REGISTER", "UNDO"} + port_id: bpy.props.IntProperty() + + def _execute(self, context): + connected_port = tool.Ifc.get().by_id(self.port_id) + + if not connected_port or not connected_port.is_a("IfcDistributionPort"): + self.report({"ERROR"}, "Invalid port specified.") + return {"CANCELLED"} + + direction_map = { + "SOURCE": "SINK", + "SINK": "SOURCE", + "SOURCEANDSINK": "SOURCEANDSINK", + "NOTDEFINED": "NOTDEFINED", + } + next_element = tool.System.get_port_relating_element(connected_port) + ports = tool.System.get_ports(next_element) + segments_processed = 0 + while len(ports) == 2: + if ports[0].id() == connected_port.id(): + other_port = ports[1] + else: + other_port = ports[0] + + new_direction = direction_map.get(connected_port.FlowDirection, "NOTDEFINED") + other_port.FlowDirection = new_direction + segments_processed += 1 + + connected_port = tool.System.get_connected_port(other_port) + if not connected_port: + break + connected_port.FlowDirection = direction_map.get(other_port.FlowDirection, "NOTDEFINED") + next_element = tool.System.get_port_relating_element(connected_port) + + if not next_element.is_a("IfcFlowSegment"): + print(f"DEBUG: next_element is not IfcFlowSegment, stopping") + break + + ports = tool.System.get_ports(next_element) + + self.report({"INFO"}, f"Established path direction through {segments_processed} flow segment(s).") + return {"FINISHED"} + + class LoadZones(bpy.types.Operator): bl_idname = "bim.load_zones" bl_label = "Load Zones" diff --git a/src/bonsai/bonsai/bim/module/system/prop.py b/src/bonsai/bonsai/bim/module/system/prop.py index a603446c9f..a40f50a90e 100644 --- a/src/bonsai/bonsai/bim/module/system/prop.py +++ b/src/bonsai/bonsai/bim/module/system/prop.py @@ -16,24 +16,26 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Union + import bpy -import bonsai.bim.handler -import bonsai.tool as tool -from bonsai.bim.module.system.data import SystemData -import bonsai.bim.module.system.decorator as decorator -from bonsai.bim.prop import StrProperty, Attribute -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING, Union +from bpy.types import PropertyGroup + +import bonsai.bim.handler +import bonsai.bim.module.system.decorator as decorator +import bonsai.tool as tool +from bonsai.bim.module.system.data import SystemData +from bonsai.bim.prop import Attribute, StrProperty def get_system_class(self: "BIMSystemProperties", context: bpy.types.Context) -> list[tuple[str, str, str]]: @@ -92,6 +94,28 @@ def toggle_decorations(self: "BIMSystemProperties", context: bpy.types.Context) decorator.SystemDecorator.uninstall() +def get_available_ports_for_connection( + self: "BIMSystemProperties", context: bpy.types.Context +) -> list[tuple[str, str, str]]: + items = [] + active_object_ports = set(tool.System.get_ports(tool.Ifc.get_entity(context.active_object))) + + ifc_file = tool.Ifc.get() + for ifc_port in ifc_file.by_type("IfcDistributionPort"): + port = tool.Ifc.get_object(ifc_port) + if not port: + continue + + if tool.System.get_connected_port(ifc_port) is not None or ifc_port in active_object_ports: + continue + + port_object = tool.Ifc.get_object(tool.System.get_port_relating_element(ifc_port)) + suggestion = f"{port_object.name} > {port.name}" + items.append((port.name, suggestion, "")) + + return items if items else [("NONE", "Ports are hidden or not available", "")] + + class BIMSystemProperties(PropertyGroup): system_attributes: CollectionProperty(name="System Attributes", type=Attribute) is_editing: BoolProperty(name="Is Editing", default=False) @@ -107,6 +131,11 @@ class BIMSystemProperties(PropertyGroup): should_draw_decorations: BoolProperty( name="Should Draw Decorations", description="Toggle system decorations", update=toggle_decorations ) + related_port: EnumProperty( + name="Connect To Port", + description="Select a port to connect to", + items=get_available_ports_for_connection, + ) if TYPE_CHECKING: system_attributes: bpy.types.bpy_prop_collection_idprop[Attribute] @@ -119,6 +148,7 @@ class BIMSystemProperties(PropertyGroup): edited_system_id: int system_class: str should_draw_decorations: bool + related_port: str @property def active_system_ui_item(self) -> Union[System, None]: diff --git a/src/bonsai/bonsai/bim/module/system/ui.py b/src/bonsai/bonsai/bim/module/system/ui.py index 2d555f24c2..e8f8b7daeb 100644 --- a/src/bonsai/bonsai/bim/module/system/ui.py +++ b/src/bonsai/bonsai/bim/module/system/ui.py @@ -17,23 +17,37 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy -import bonsai.bim.helper -import bonsai.tool as tool -from bonsai.bim.helper import prop_with_search, draw_attributes -from bpy.types import Panel, UIList -from bonsai.bim.module.system.data import SystemData, ZonesData, ActiveObjectZonesData, ObjectSystemData, PortData + from typing import TYPE_CHECKING +import bpy +from bpy.types import Panel, UIList + +import bonsai.bim.helper +import bonsai.tool as tool +from bonsai.bim.helper import draw_attributes, prop_with_search +from bonsai.bim.module.system.data import ( + ActiveObjectZonesData, + ObjectSystemData, + PortData, + SystemData, + ZonesData, +) + if TYPE_CHECKING: - from bonsai.bim.module.system.prop import BIMSystemProperties, System, BIMZoneProperties, Zone + from bonsai.bim.module.system.prop import ( + BIMSystemProperties, + BIMZoneProperties, + System, + Zone, + ) FLOW_DIRECTION_TO_ICON = { - "SOURCE": "FORWARD", - "SINK": "BACK", - "SOURCEANDSINK": "ARROW_LEFTRIGHT", - "NOTDEFINED": "CHECKBOX_DEHLT", + "SOURCE": "FULLSCREEN_ENTER", + "SINK": "FULLSCREEN_EXIT", + "SOURCEANDSINK": "CHECKBOX_DEHLT", + "NOTDEFINED": "QUESTION", } @@ -163,44 +177,87 @@ class BIM_PT_ports(Panel): return row = self.layout.row(align=True) - row.label(text="Change Flow Direction:") - - current_flow_direction = PortData.data["selected_objects_flow_direction"] - for flow_direction in FLOW_DIRECTION_TO_ICON.keys(): - row.operator( - "bim.set_flow_direction", - icon=FLOW_DIRECTION_TO_ICON[flow_direction], - depress=flow_direction == current_flow_direction, - text="", - ).direction = flow_direction - row.enabled = len(context.selected_objects) == 2 + row.label(text=f"Ports located in: {context.active_object.name} and connected Port/Objects:") row = self.layout.row(align=True) - row.label(text="Ports located on object and connected objects:") - row = self.layout.row(align=True) - cols = [row.column(align=True) for i in range(6)] + cols = [row.column(align=True) for i in range(9)] + cols[3].scale_x = 1.0 + cols[6].scale_x = 1.0 + cols[8].scale_x = 1.33 for port_data in PortData.data["located_ports_data"]: flow_direction_icon = FLOW_DIRECTION_TO_ICON[port_data["FlowDirection"] or "NOTDEFINED"] - if port_data["port_obj_name"]: - cols[0].label(text="", icon=flow_direction_icon) - cols[1].operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = port_data["id"] - cols[2].label(text=port_data["port_obj_name"]) + + if port_data["connected_obj_name"]: + cols[0].operator("bim.disconnect_port", text="", icon="UNLINKED").element_id = port_data["id"] + op = cols[1].operator("bim.cycle_flow_direction", text="", icon=flow_direction_icon, emboss=True) + op.port_id = port_data["id"] else: - cols[0].label(text="", icon=flow_direction_icon) - cols[1].label(text="", icon="HIDE_ON") - cols[2].label(text="Port is hidden") + op = cols[0].operator("bim.add_related_port_connection", text="", icon="PLUGIN") + op.relating_port_id = port_data["id"] + op = cols[1].operator("bim.cycle_flow_direction", text="", icon=flow_direction_icon, emboss=True) + op.port_id = port_data["id"] + + if port_data["port_obj_name"]: + cols[2].operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = port_data["id"] + cols[3].label(text=port_data["port_obj_name"]) + else: + cols[2].label(text="", icon="HIDE_ON") + cols[3].label(text="Port is hidden") if port_data["connected_obj_name"]: connected_obj = bpy.data.objects[port_data["connected_obj_name"]] - cols[3].operator("bim.disconnect_port", text="", icon="UNLINKED").element_id = port_data["id"] + + port = tool.Ifc.get().by_id(port_data["id"]) + connected_port = tool.System.get_connected_port(port) + if connected_port: + connected_port_obj = tool.Ifc.get_object(connected_port) + if connected_port_obj: + connected_port_flow_dir = FLOW_DIRECTION_TO_ICON[connected_port.FlowDirection or "NOTDEFINED"] + op = cols[4].operator( + "bim.cycle_flow_direction", text="", icon=connected_port_flow_dir, emboss=True + ) + op.port_id = connected_port.id() + cols[5].operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = ( + connected_port.id() + ) + cols[6].label(text=connected_port_obj.name) + else: + blank4 = cols[4].column(align=True) + blank4.scale_x = 0.1 + blank4.label(text="", icon="BLANK1") + blank5 = cols[5].column(align=True) + blank5.scale_x = 0.1 + blank5.label(text="", icon="BLANK1") + cols[6].label(text="Port is hidden") + else: + blank4 = cols[4].column(align=True) + blank4.scale_x = 0.1 + blank4.label(text="", icon="BLANK1") + blank5 = cols[5].column(align=True) + blank5.scale_x = 0.1 + blank5.label(text="", icon="BLANK1") + cols[6].label(text="") + ifc_id = tool.Blender.get_ifc_definition_id(connected_obj) - cols[4].operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = ifc_id - cols[5].label(text=port_data["connected_obj_name"]) + cols[7].operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = ifc_id + cols[8].label(text=port_data["connected_obj_name"]) else: - cols[3].label(text="", icon="UNLINKED") - cols[4].label(text="", icon="BLANK1") - cols[5].label(text="Port is disconnected") + blank4 = cols[4].column(align=True) + blank4.scale_x = 0.1 + blank4.label(text="", icon="BLANK1") + blank5 = cols[5].column(align=True) + blank5.scale_x = 0.1 + blank5.label(text="", icon="BLANK1") + + cols[6].label(text="Port is disconnected") + + blank7 = cols[7].column(align=True) + blank7.scale_x = 0.1 + blank7.label(text="", icon="BLANK1") + blank8 = cols[8].column(align=True) + blank8.scale_x = 0.1 + blank8.label(text="", icon="BLANK1") class BIM_PT_port(Panel): @@ -223,14 +280,8 @@ class BIM_PT_port(Panel): return True def draw(self, context): - self.props = tool.System.get_system_props() - layout = self.layout row = layout.row(align=True) - row.label(text="IfcDistributionPort") - row.operator("bim.connect_port", icon="PLUGIN", text="") - row.operator("bim.disconnect_port", icon="UNLINKED", text="") - row.operator("bim.remove_port", icon="X", text="") if not PortData.is_loaded: PortData.load() @@ -238,42 +289,60 @@ class BIM_PT_port(Panel): if not PortData.data["is_port"]: return - element = tool.Ifc.get_entity(context.active_object) - current_flow_direction = str(element.FlowDirection) - row = layout.row(align=True) - row.label(text="Flow Direction:") - row.label(text=current_flow_direction) - - # port located on - row = layout.row(align=True) relating_object_name = PortData.data["port_relating_object_name"] - relating_object = bpy.data.objects[relating_object_name] - row.label(text="Port located on:") - row.label(text=relating_object_name) - ifc_id = tool.Blender.get_ifc_definition_id(relating_object) - row.operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = ifc_id + row.label(text=f"IfcDistributionPort located in: {relating_object_name}") + row.operator("bim.remove_port", icon="X", text="") + + element = tool.Ifc.get_entity(context.active_object) - # object connected to the port row = layout.row(align=True) - connected_object_name = PortData.data["port_connected_object_name"] - if connected_object_name: - connected_object = bpy.data.objects[connected_object_name] - row.label(text="Port connected to:") - row.label(text=connected_object_name) - ifc_id = tool.Blender.get_ifc_definition_id(connected_object) - row.operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = ifc_id + cols = [row.column(align=True) for i in range(10)] + cols[3].scale_x = 1.0 + cols[6].scale_x = 1.0 + cols[8].scale_x = 1.33 + + flow_direction_icon = FLOW_DIRECTION_TO_ICON[element.FlowDirection or "NOTDEFINED"] + connected_port = tool.System.get_connected_port(element) + + if connected_port: + cols[0].operator("bim.disconnect_port", text="", icon="UNLINKED") + op = cols[1].operator("bim.cycle_flow_direction", text="", icon=flow_direction_icon, emboss=True) + op.port_id = element.id() else: - row.label(text="Port is not connected to any element") + cols[0].operator("bim.connect_port", icon="PLUGIN", text="") + op = cols[1].operator("bim.cycle_flow_direction", text="", icon=flow_direction_icon, emboss=True) + op.port_id = element.id() - row = layout.row(align=True) - row.label(text="Change Flow Direction:") - for flow_direction in FLOW_DIRECTION_TO_ICON.keys(): - row.operator( - "bim.set_flow_direction", - icon=FLOW_DIRECTION_TO_ICON[flow_direction], - depress=flow_direction == current_flow_direction, - text="", - ).direction = flow_direction + cols[2].operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = element.id() + cols[3].label(text=context.active_object.name) + + if connected_port: + connected_port_flow_dir = FLOW_DIRECTION_TO_ICON[connected_port.FlowDirection or "NOTDEFINED"] + op = cols[4].operator("bim.cycle_flow_direction", text="", icon=connected_port_flow_dir, emboss=True) + op.port_id = connected_port.id() + cols[5].operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = connected_port.id() + connected_port_obj = tool.Ifc.get_object(connected_port) + cols[6].label(text=connected_port_obj.name if connected_port_obj else "Hidden Port") + + connected_object_name = PortData.data["port_connected_object_name"] + if connected_object_name: + connected_obj = bpy.data.objects[connected_object_name] + ifc_id = tool.Blender.get_ifc_definition_id(connected_obj) + cols[7].operator("bim.select_entity", text="", icon="RESTRICT_SELECT_OFF").ifc_id = ifc_id + cols[8].label(text=connected_object_name) + else: + cols[7].label(text="", icon="BLANK1") + cols[8].label(text="") + cols[9].operator("bim.establish_path_direction", text="", icon="CON_FOLLOWPATH").port_id = ( + connected_port.id() + ) + else: + cols[4].label(text="", icon="BLANK1") + cols[5].label(text="", icon="BLANK1") + cols[6].label(text="Port is disconnected") + cols[7].label(text="", icon="BLANK1") + cols[8].label(text="") + cols[9].label(text="", icon="BLANK1") class BIM_PT_flow_controls(Panel): diff --git a/src/bonsai/bonsai/bim/module/tester/__init__.py b/src/bonsai/bonsai/bim/module/tester/__init__.py index f31ac5e69a..db63d97b55 100644 --- a/src/bonsai/bonsai/bim/module/tester/__init__.py +++ b/src/bonsai/bonsai/bim/module/tester/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.ExecuteIfcTester, diff --git a/src/bonsai/bonsai/bim/module/tester/data.py b/src/bonsai/bonsai/bim/module/tester/data.py index d845c210f9..1d1a1c4901 100644 --- a/src/bonsai/bonsai/bim/module/tester/data.py +++ b/src/bonsai/bonsai/bim/module/tester/data.py @@ -17,9 +17,10 @@ # along with Bonsai. If not, see . import bpy -import bonsai.tool as tool import ifctester.reporter +import bonsai.tool as tool + def refresh(): TesterData.is_loaded = False diff --git a/src/bonsai/bonsai/bim/module/tester/operator.py b/src/bonsai/bonsai/bim/module/tester/operator.py index 822ffd571c..6cb7999184 100644 --- a/src/bonsai/bonsai/bim/module/tester/operator.py +++ b/src/bonsai/bonsai/bim/module/tester/operator.py @@ -16,28 +16,30 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os -import bpy -import time -import tempfile -import webbrowser -import traceback -import subprocess -import socket -import sys -import threading import asyncio -import socketio -from aiohttp import web +import os +import socket +import subprocess +import sys +import tempfile +import threading +import time +import traceback +import webbrowser +from pathlib import Path +from typing import Union + +import bpy +import ifcopenshell import ifctester import ifctester.ids import ifctester.reporter -import ifcopenshell -import bonsai.tool as tool -import bonsai.bim.handler +import socketio +from aiohttp import web from bpy_extras.io_utils import ExportHelper -from pathlib import Path -from typing import Union + +import bonsai.bim.handler +import bonsai.tool as tool webapp_process = None websocket_server_thread = None diff --git a/src/bonsai/bonsai/bim/module/tester/prop.py b/src/bonsai/bonsai/bim/module/tester/prop.py index fb20a0d4cd..4beb07c533 100644 --- a/src/bonsai/bonsai/bim/module/tester/prop.py +++ b/src/bonsai/bonsai/bim/module/tester/prop.py @@ -19,19 +19,20 @@ from typing import TYPE_CHECKING import bpy -from bonsai.bim.module.tester.data import TesterData -from bonsai.bim.prop import StrProperty, MultipleFileSelect -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) +from bpy.types import PropertyGroup + +from bonsai.bim.module.tester.data import TesterData +from bonsai.bim.prop import MultipleFileSelect, StrProperty def update_active_specification_index(self: "IfcTesterProperties", context: bpy.types.Context) -> None: diff --git a/src/bonsai/bonsai/bim/module/tester/ui.py b/src/bonsai/bonsai/bim/module/tester/ui.py index 66648f4e43..e20bfde1c1 100644 --- a/src/bonsai/bonsai/bim/module/tester/ui.py +++ b/src/bonsai/bonsai/bim/module/tester/ui.py @@ -20,12 +20,12 @@ from __future__ import annotations from typing import TYPE_CHECKING -from bonsai.bim.ui import draw_multiline_text - import bpy from bpy.types import Panel, UIList + import bonsai.tool as tool from bonsai.bim.module.tester.data import TesterData +from bonsai.bim.ui import draw_multiline_text if TYPE_CHECKING: from bonsai.bim.module.tester.prop import ( diff --git a/src/bonsai/bonsai/bim/module/type/__init__.py b/src/bonsai/bonsai/bim/module/type/__init__.py index 646ab48fcf..0aa61167d6 100644 --- a/src/bonsai/bonsai/bim/module/type/__init__.py +++ b/src/bonsai/bonsai/bim/module/type/__init__.py @@ -17,14 +17,18 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AssignType, operator.AutoRenameOccurrences, operator.DisableEditingType, + operator.DisableEditingTypeAttributes, operator.DuplicateType, + operator.EditTypeAttributes, operator.EnableEditingType, + operator.EnableEditingTypeAttributes, operator.RemoveType, operator.RenameType, operator.SelectSimilarType, @@ -33,6 +37,7 @@ classes = ( operator.UnassignType, prop.BIMTypeProperties, ui.BIM_PT_type, + ui.BIM_PT_type_attributes, ) diff --git a/src/bonsai/bonsai/bim/module/type/data.py b/src/bonsai/bonsai/bim/module/type/data.py index d93b86261d..25beb2d36d 100644 --- a/src/bonsai/bonsai/bim/module/type/data.py +++ b/src/bonsai/bonsai/bim/module/type/data.py @@ -17,9 +17,10 @@ # along with Bonsai. If not, see . import bpy -import ifcopenshell.util.type import ifcopenshell.util.element +import ifcopenshell.util.type from ifcopenshell.util.doc import get_entity_doc + import bonsai.tool as tool @@ -42,6 +43,7 @@ class TypeData: "is_product": cls.is_product(), "total_instances": cls.total_instances(), "relating_type": cls.relating_type(), + "relating_type_attributes": cls.relating_type_attributes(), } ) @@ -92,3 +94,25 @@ class TypeData: element_type = ifcopenshell.util.element.get_type(element) if element_type: return {"id": element_type.id(), "name": f"{element_type.is_a()}/{element_type.Name or 'Unnamed'}"} + + @classmethod + def relating_type_attributes(cls): + results = [] + element = tool.Ifc.get_entity(bpy.context.active_object) + element_type = ifcopenshell.util.element.get_type(element) + if not element_type: + return results + + data = element_type.get_info() + if "GlobalId" in data: + excluded_keys = ["id", "type"] + else: + excluded_keys = ["type"] + exclude_value_types = (tuple, ifcopenshell.entity_instance) + for key, value in data.items(): + if value is None or isinstance(value, exclude_value_types) or key in excluded_keys: + continue + if key == "id": + key = "STEP ID" + results.append({"name": key, "value": str(value)}) + return results diff --git a/src/bonsai/bonsai/bim/module/type/operator.py b/src/bonsai/bonsai/bim/module/type/operator.py index 13cf08be2c..8d24989f12 100644 --- a/src/bonsai/bonsai/bim/module/type/operator.py +++ b/src/bonsai/bonsai/bim/module/type/operator.py @@ -16,21 +16,24 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy +from typing import TYPE_CHECKING + import bmesh +import bpy +import ifcopenshell.api +import ifcopenshell.api.attribute +import ifcopenshell.api.type import ifcopenshell.util.element -import ifcopenshell.util.schema import ifcopenshell.util.representation +import ifcopenshell.util.schema import ifcopenshell.util.type import ifcopenshell.util.unit -import ifcopenshell.api -import ifcopenshell.api.type + import bonsai.bim.helper -import bonsai.tool as tool import bonsai.core.geometry -import bonsai.core.type as core import bonsai.core.root -from typing import TYPE_CHECKING +import bonsai.core.type as core +import bonsai.tool as tool class AssignType(bpy.types.Operator, tool.Ifc.Operator): @@ -58,11 +61,33 @@ class AssignType(bpy.types.Operator, tool.Ifc.Operator): else: related_objects = tool.Blender.get_selected_objects() prefs = tool.Blender.get_addon_preferences() + + # Get the active drawing's target view + active_target_view = None + drawing_props = context.scene.DocProperties + if drawing_props.active_drawing_id: + active_drawing = tool.Ifc.get().by_id(drawing_props.active_drawing_id) + if active_drawing: + active_target_view = tool.Drawing.get_drawing_target_view(active_drawing) + for obj in related_objects: element = tool.Ifc.get_entity(obj) if not element or not element.is_a("IfcObject"): continue - core.assign_type(tool.Ifc, tool.Type, element=element, type=relating_type) + core.assign_type(tool.Ifc, tool.Model, tool.Type, element=element, type=relating_type) + + # Switch to the drawing's target view if available + if active_target_view and element.Representation: + for rep in element.Representation.Representations: + if rep.ContextOfItems.TargetView == active_target_view: + bonsai.core.geometry.switch_representation( + tool.Ifc, + tool.Geometry, + obj=obj, + representation=rep, + ) + break + if prefs.occurrence_name_style == "TYPE": obj.name = tool.Model.generate_occurrence_name(relating_type, element.is_a()) @@ -216,7 +241,7 @@ class SelectSimilarType(bpy.types.Operator): for related_object in objects: relating_type = ifcopenshell.util.element.get_type(tool.Ifc.get_entity(related_object)) if not relating_type: - related_object.select_set(False) + # Keep objects without a type selected (retain current selection) continue relating_types.add(relating_type) @@ -322,6 +347,15 @@ class DuplicateType(bpy.types.Operator, tool.Ifc.Operator): bl_label = "Duplicate Type" bl_options = {"REGISTER", "UNDO"} element: bpy.props.IntProperty() + name: bpy.props.StringProperty(name="Name") + description: bpy.props.StringProperty(name="Description") + assign_selected_objects: bpy.props.BoolProperty(default=False) + + if TYPE_CHECKING: + element: int + name: str + description: str + assign_selected_objects: bool def _execute(self, context): element = tool.Ifc.get().by_id(self.element) @@ -332,8 +366,28 @@ class DuplicateType(bpy.types.Operator, tool.Ifc.Operator): if obj.data: new_obj.data = obj.data.copy() new = bonsai.core.root.copy_class(tool.Ifc, tool.Collector, tool.Geometry, tool.Root, obj=new_obj) - new.Name += " Copy" + + # Apply the name and description from the dialog + new.Name = self.name + if self.description: + new.Description = self.description + + # Update the Blender object name to match the IFC element name + tool.Root.set_object_name(new_obj, new) + bpy.ops.bim.load_type_thumbnails() + + # Assign selected objects to the new type if requested + if self.assign_selected_objects: + selected_objects = tool.Blender.get_selected_objects() + prefs = tool.Blender.get_addon_preferences() + for selected_obj in selected_objects: + selected_element = tool.Ifc.get_entity(selected_obj) + if selected_element and selected_element.is_a("IfcObject"): + core.assign_type(tool.Ifc, tool.Model, tool.Type, element=selected_element, type=new) + if prefs.occurrence_name_style == "TYPE": + selected_obj.name = tool.Model.generate_occurrence_name(new, selected_element.is_a()) + if obj in context.selectable_objects: tool.Blender.select_and_activate_single_object(context, new_obj) else: @@ -347,3 +401,98 @@ class DuplicateType(bpy.types.Operator, tool.Ifc.Operator): props.ifc_class = new.is_a() props.relating_type_id = str(tool.Blender.get_ifc_definition_id(new_obj)) return {"FINISHED"} + + def invoke(self, context, event): + element = tool.Ifc.get().by_id(self.element) + self.name = (element.Name or "Unnamed") + " Copy" + self.description = element.Description or "" + return context.window_manager.invoke_props_dialog(self) + + def draw(self, context): + self.layout.prop(self, "name") + self.layout.prop(self, "description") + selected_objects = tool.Blender.get_selected_objects() + ifc_objects = [ + obj for obj in selected_objects if tool.Ifc.get_entity(obj) and tool.Ifc.get_entity(obj).is_a("IfcObject") + ] + if ifc_objects: + self.layout.prop( + self, "assign_selected_objects", text=f"Assign {len(ifc_objects)} Selected Object(s) to New Type" + ) + + +class EnableEditingTypeAttributes(bpy.types.Operator): + bl_idname = "bim.enable_editing_type_attributes" + bl_label = "Enable Editing Type Attributes" + bl_description = "Enable editing the attributes of the relating type" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + obj = context.active_object + if not obj: + return {"CANCELLED"} + + element = tool.Ifc.get_entity(obj) + if not element: + return {"CANCELLED"} + + element_type = ifcopenshell.util.element.get_type(element) + if not element_type: + return {"CANCELLED"} + + props = tool.Type.get_object_type_props(obj) + props.type_attributes.clear() + + bonsai.bim.helper.import_attributes(element_type, props.type_attributes) + props.is_editing_type_attributes = True + return {"FINISHED"} + + +class DisableEditingTypeAttributes(bpy.types.Operator): + bl_idname = "bim.disable_editing_type_attributes" + bl_label = "Disable Editing Type Attributes" + bl_description = "Disable editing the attributes of the relating type" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + obj = context.active_object + if not obj: + return {"CANCELLED"} + + props = tool.Type.get_object_type_props(obj) + props.type_attributes.clear() + props.property_unset("is_editing_type_attributes") + return {"FINISHED"} + + +class EditTypeAttributes(bpy.types.Operator, tool.Ifc.Operator): + bl_idname = "bim.edit_type_attributes" + bl_label = "Edit Type Attributes" + bl_description = "Save the changes to the relating type's attributes" + bl_options = {"REGISTER", "UNDO"} + + def _execute(self, context): + obj = context.active_object + if not obj: + return {"CANCELLED"} + + element = tool.Ifc.get_entity(obj) + if not element: + return {"CANCELLED"} + + element_type = ifcopenshell.util.element.get_type(element) + if not element_type: + return {"CANCELLED"} + + props = tool.Type.get_object_type_props(obj) + attributes = bonsai.bim.helper.export_attributes(props.type_attributes) + + ifcopenshell.api.attribute.edit_attributes(tool.Ifc.get(), product=element_type, attributes=attributes) + + type_obj = tool.Ifc.get_object(element_type) + if type_obj: + tool.Root.set_object_name(type_obj, element_type) + + bpy.ops.bim.disable_editing_type_attributes() + + return {"FINISHED"} diff --git a/src/bonsai/bonsai/bim/module/type/prop.py b/src/bonsai/bonsai/bim/module/type/prop.py index 814d678390..13141a7947 100644 --- a/src/bonsai/bonsai/bim/module/type/prop.py +++ b/src/bonsai/bonsai/bim/module/type/prop.py @@ -16,23 +16,26 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Union + import bpy import ifcopenshell.util.element import ifcopenshell.util.type -from bonsai.bim.module.type.data import TypeData -import bonsai.tool as tool -from typing import TYPE_CHECKING, Union -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) +from bpy.types import PropertyGroup + +import bonsai.tool as tool +from bonsai.bim.module.type.data import TypeData +from bonsai.bim.prop import Attribute def get_relating_type_class(self: "BIMTypeProperties", context: bpy.types.Context) -> list[tuple[str, str, str]]: @@ -90,9 +93,13 @@ class BIMTypeProperties(PropertyGroup): update=update_relating_type_from_object, poll=is_object_class_applicable, ) + is_editing_type_attributes: BoolProperty(name="Is Editing Type Attributes") + type_attributes: CollectionProperty(type=Attribute, name="Type Attributes") if TYPE_CHECKING: is_editing_type: bool relating_type_class: str relating_type: str relating_type_object: Union[bpy.types.Object, None] + is_editing_type_attributes: bool + type_attributes: bpy.types.bpy_prop_collection_idprop[Attribute] diff --git a/src/bonsai/bonsai/bim/module/type/ui.py b/src/bonsai/bonsai/bim/module/type/ui.py index f749ceb07e..fbd1edd446 100644 --- a/src/bonsai/bonsai/bim/module/type/ui.py +++ b/src/bonsai/bonsai/bim/module/type/ui.py @@ -17,10 +17,11 @@ # along with Bonsai. If not, see . import bpy -import bonsai.tool as tool -import bonsai.bim.module.type.prop as type_prop from bpy.types import Panel -from bonsai.bim.helper import prop_with_search + +import bonsai.bim.module.type.prop as type_prop +import bonsai.tool as tool +from bonsai.bim.helper import get_display_value, prop_with_search from bonsai.bim.module.type.data import TypeData @@ -96,6 +97,10 @@ class BIM_PT_type(Panel): op = row.operator("bim.select_type", icon="OBJECT_DATA", text="") op.relating_type = 0 # will only select the relating types of only the selected objects row.operator("bim.select_similar_type", icon="RESTRICT_SELECT_OFF", text="") + # Add duplicate button here with assign_selected_objects enabled + op = row.operator("bim.duplicate_type", icon="DUPLICATE", text="") + op.element = TypeData.data["relating_type"]["id"] + op.assign_selected_objects = True row.operator("bim.enable_editing_type", icon="GREASEPENCIL", text="") row.operator("bim.unassign_type", icon="X", text="") else: @@ -103,5 +108,51 @@ class BIM_PT_type(Panel): row.operator("bim.enable_editing_type", icon="GREASEPENCIL", text="") +class BIM_PT_type_attributes(Panel): + bl_label = "Type Attributes" + bl_idname = "BIM_PT_type_attributes" + bl_space_type = "PROPERTIES" + bl_region_type = "WINDOW" + bl_context = "object" + bl_parent_id = "BIM_PT_type" + + @classmethod + def poll(cls, context): + if not TypeData.is_loaded: + TypeData.load() + return bool(TypeData.data.get("is_product") and TypeData.data.get("relating_type")) + + def draw(self, context): + if not TypeData.is_loaded: + TypeData.load() + + assert (layout := self.layout) + assert (obj := context.active_object) + + if not TypeData.data.get("relating_type"): + layout.label(text="No Relating Type", icon="INFO") + return + + props = tool.Type.get_object_type_props(obj) + + if props.is_editing_type_attributes: + row = layout.row(align=True) + row.operator("bim.edit_type_attributes", icon="CHECKMARK", text="Save Attributes") + row.operator("bim.disable_editing_type_attributes", icon="CANCEL", text="") + + import bonsai.bim.helper + + bonsai.bim.helper.draw_attributes(props.type_attributes, layout) + else: + row = layout.row() + row.operator("bim.enable_editing_type_attributes", icon="GREASEPENCIL", text="Edit") + + for attribute in TypeData.data["relating_type_attributes"]: + row = layout.row(align=True) + row.label(text=attribute["name"]) + value = get_display_value(attribute["value"]) + row.label(text=value) + + def add_object_button(self, context): self.layout.operator("bim.add_occurrence", icon="PLUGIN") diff --git a/src/bonsai/bonsai/bim/module/unit/__init__.py b/src/bonsai/bonsai/bim/module/unit/__init__.py index 29f209dcd3..a6e65f605e 100644 --- a/src/bonsai/bonsai/bim/module/unit/__init__.py +++ b/src/bonsai/bonsai/bim/module/unit/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddContextDependentUnit, diff --git a/src/bonsai/bonsai/bim/module/unit/data.py b/src/bonsai/bonsai/bim/module/unit/data.py index 22977988bf..fc51ef3710 100644 --- a/src/bonsai/bonsai/bim/module/unit/data.py +++ b/src/bonsai/bonsai/bim/module/unit/data.py @@ -17,10 +17,11 @@ # along with Bonsai. If not, see . import ifcopenshell -import ifcopenshell.util.unit -import ifcopenshell.util.schema import ifcopenshell.util.attribute +import ifcopenshell.util.schema +import ifcopenshell.util.unit from ifcopenshell.util.doc import get_entity_doc + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/bim/module/unit/operator.py b/src/bonsai/bonsai/bim/module/unit/operator.py index f7c129aba1..da2c7edc1d 100644 --- a/src/bonsai/bonsai/bim/module/unit/operator.py +++ b/src/bonsai/bonsai/bim/module/unit/operator.py @@ -16,12 +16,14 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy import ifcopenshell.api import ifcopenshell.util.unit -import bonsai.tool as tool + import bonsai.core.unit as core -from typing import TYPE_CHECKING +import bonsai.tool as tool if TYPE_CHECKING: from bpy.stub_internal import rna_enums diff --git a/src/bonsai/bonsai/bim/module/unit/prop.py b/src/bonsai/bonsai/bim/module/unit/prop.py index a335532294..02fe7ac803 100644 --- a/src/bonsai/bonsai/bim/module/unit/prop.py +++ b/src/bonsai/bonsai/bim/module/unit/prop.py @@ -16,21 +16,23 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy -from bonsai.bim.prop import StrProperty, Attribute -from bonsai.bim.module.unit.data import UnitsData -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import TYPE_CHECKING +from bpy.types import PropertyGroup + +from bonsai.bim.module.unit.data import UnitsData +from bonsai.bim.prop import Attribute, StrProperty def get_unit_classes(self: "BIMUnitProperties", context: bpy.types.Context) -> list[tuple[str, str, str]]: diff --git a/src/bonsai/bonsai/bim/module/unit/ui.py b/src/bonsai/bonsai/bim/module/unit/ui.py index 9407ef01ac..703c43c3d5 100644 --- a/src/bonsai/bonsai/bim/module/unit/ui.py +++ b/src/bonsai/bonsai/bim/module/unit/ui.py @@ -17,13 +17,16 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bonsai.bim.helper -import bonsai.tool as tool + +from typing import TYPE_CHECKING + import bpy from bpy.types import Panel, UIList + +import bonsai.bim.helper +import bonsai.tool as tool from bonsai.bim.helper import prop_with_search from bonsai.bim.module.unit.data import UnitsData -from typing import TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.unit.prop import BIMUnitProperties, Unit diff --git a/src/bonsai/bonsai/bim/module/void/__init__.py b/src/bonsai/bonsai/bim/module/void/__init__.py index f89d514ad0..1fef345a89 100644 --- a/src/bonsai/bonsai/bim/module/void/__init__.py +++ b/src/bonsai/bonsai/bim/module/void/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.AddFilling, diff --git a/src/bonsai/bonsai/bim/module/void/data.py b/src/bonsai/bonsai/bim/module/void/data.py index a1999e8d21..6d1fcc12a2 100644 --- a/src/bonsai/bonsai/bim/module/void/data.py +++ b/src/bonsai/bonsai/bim/module/void/data.py @@ -16,11 +16,13 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from collections.abc import Generator +from typing import Any, Union + import bpy import ifcopenshell + import bonsai.tool as tool -from typing import Any, Union -from collections.abc import Generator def refresh(): diff --git a/src/bonsai/bonsai/bim/module/void/operator.py b/src/bonsai/bonsai/bim/module/void/operator.py index b7281a1ea7..8c584e0b14 100644 --- a/src/bonsai/bonsai/bim/module/void/operator.py +++ b/src/bonsai/bonsai/bim/module/void/operator.py @@ -21,10 +21,11 @@ import ifcopenshell.api import ifcopenshell.api.feature import ifcopenshell.util.element import ifcopenshell.util.representation -import bonsai.tool as tool + +import bonsai.bim.handler import bonsai.core.geometry import bonsai.core.root -import bonsai.bim.handler +import bonsai.tool as tool from bonsai.bim.module.model.opening import FilledOpeningGenerator @@ -102,6 +103,19 @@ class AddOpening(bpy.types.Operator, tool.Ifc.Operator): element_had_openings = tool.Geometry.has_openings(voided_element) body_context = ifcopenshell.util.representation.get_context(tool.Ifc.get(), "Model", "Body") if not element2: + # Apply scale transformation for vanilla Blender objects before creating IFC representation + # This ensures the opening geometry matches the visual scale of the object + if tool.Geometry.is_scaled(obj2): + if obj2.data: + # Make mesh data single-user if it's shared + if obj2.data.users > 1: + obj2.data = obj2.data.copy() + context_override = {} + context_override["object"] = context_override["active_object"] = obj2 + context_override["selected_objects"] = context_override["selected_editable_objects"] = [obj2] + with bpy.context.temp_override(**context_override): + bpy.ops.object.transform_apply(location=False, rotation=False, scale=True) + element2 = bonsai.core.root.assign_class( tool.Ifc, tool.Collector, diff --git a/src/bonsai/bonsai/bim/module/void/prop.py b/src/bonsai/bonsai/bim/module/void/prop.py index 0170dbd606..1c6bf088d9 100644 --- a/src/bonsai/bonsai/bim/module/void/prop.py +++ b/src/bonsai/bonsai/bim/module/void/prop.py @@ -16,10 +16,18 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING, Literal, Union, get_args + import bpy +from bpy.props import ( + BoolProperty, + CollectionProperty, + EnumProperty, + IntProperty, + PointerProperty, + StringProperty, +) from bpy.types import PropertyGroup -from bpy.props import PointerProperty, StringProperty, IntProperty, BoolProperty, CollectionProperty, EnumProperty -from typing import Union, TYPE_CHECKING, Literal, get_args OperatorType = Literal["DIFFERENCE", "INTERSECTION", "UNION"] diff --git a/src/bonsai/bonsai/bim/module/void/ui.py b/src/bonsai/bonsai/bim/module/void/ui.py index 8c80adca07..37415eb978 100644 --- a/src/bonsai/bonsai/bim/module/void/ui.py +++ b/src/bonsai/bonsai/bim/module/void/ui.py @@ -17,11 +17,14 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Any + import bpy -import bonsai.tool as tool from bpy.types import Panel, UIList + +import bonsai.tool as tool from bonsai.bim.module.void.data import BooleansData, VoidsData -from typing import Any, TYPE_CHECKING if TYPE_CHECKING: import bpy.stub_internal.rna_enums as rna_enums diff --git a/src/bonsai/bonsai/bim/module/web/__init__.py b/src/bonsai/bonsai/bim/module/web/__init__.py index de3f7015a4..d2d28e0f62 100644 --- a/src/bonsai/bonsai/bim/module/web/__init__.py +++ b/src/bonsai/bonsai/bim/module/web/__init__.py @@ -17,7 +17,8 @@ # along with Bonsai. If not, see . import bpy -from . import ui, prop, operator + +from . import operator, prop, ui classes = ( operator.ConnectToWebsocketServer, diff --git a/src/bonsai/bonsai/bim/module/web/data.py b/src/bonsai/bonsai/bim/module/web/data.py index db939cadfa..e74b7fa0b6 100644 --- a/src/bonsai/bonsai/bim/module/web/data.py +++ b/src/bonsai/bonsai/bim/module/web/data.py @@ -16,10 +16,12 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bonsai.tool as tool import os +import bpy + +import bonsai.tool as tool + def refresh(): WebData.is_loaded = False diff --git a/src/bonsai/bonsai/bim/module/web/operator.py b/src/bonsai/bonsai/bim/module/web/operator.py index 1c8bb21e9b..8efd15494e 100644 --- a/src/bonsai/bonsai/bim/module/web/operator.py +++ b/src/bonsai/bonsai/bim/module/web/operator.py @@ -17,7 +17,9 @@ # along with Bonsai. If not, see . import os + import bpy + import bonsai.core.web as core import bonsai.tool as tool diff --git a/src/bonsai/bonsai/bim/module/web/prop.py b/src/bonsai/bonsai/bim/module/web/prop.py index 66ffdd4995..1538454270 100644 --- a/src/bonsai/bonsai/bim/module/web/prop.py +++ b/src/bonsai/bonsai/bim/module/web/prop.py @@ -17,18 +17,19 @@ # along with Bonsai. If not, see . from typing import TYPE_CHECKING + import bpy -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) +from bpy.types import PropertyGroup class WebProperties(PropertyGroup): diff --git a/src/bonsai/bonsai/bim/module/web/ui.py b/src/bonsai/bonsai/bim/module/web/ui.py index 0a6fca55ae..88bd0e6e6f 100644 --- a/src/bonsai/bonsai/bim/module/web/ui.py +++ b/src/bonsai/bonsai/bim/module/web/ui.py @@ -17,6 +17,7 @@ # along with Bonsai. If not, see . from bpy.types import Panel + import bonsai.tool as tool from bonsai.bim.module.web.data import WebData diff --git a/src/bonsai/bonsai/bim/operator.py b/src/bonsai/bonsai/bim/operator.py index 517bfe34f1..456d5ed5a0 100644 --- a/src/bonsai/bonsai/bim/operator.py +++ b/src/bonsai/bonsai/bim/operator.py @@ -16,40 +16,43 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os import contextlib -import bpy -import bmesh -import time import logging -import textwrap -import shutil +import os import platform +import shutil import subprocess import tempfile +import textwrap +import time import webbrowser -import ifcopenshell -import bonsai.bim -import bonsai.tool as tool -import bonsai.bim.handler +from collections import namedtuple +from collections.abc import Iterable from enum import Enum -from bpy_extras.io_utils import ImportHelper -from bonsai.bim import import_ifc -from bonsai.bim.prop import StrProperty -from bonsai.bim.ui import IFCFileSelector -from bonsai.bim.helper import get_enum_items -from mathutils import Vector, Euler from math import radians from pathlib import Path -from collections import namedtuple -from typing import Union, TYPE_CHECKING, Literal, get_args -from collections.abc import Iterable +from typing import TYPE_CHECKING, Literal, Union, get_args + +import bmesh +import bpy +import ifcopenshell +from bpy_extras.io_utils import ImportHelper +from mathutils import Euler, Vector from natsort import natsorted +import bonsai.bim +import bonsai.bim.handler +import bonsai.tool as tool +from bonsai.bim import import_ifc +from bonsai.bim.helper import get_enum_items +from bonsai.bim.prop import StrProperty +from bonsai.bim.ui import IFCFileSelector + if TYPE_CHECKING: - from bonsai.bim.prop import MultipleFileSelect, Attribute from bpy.stub_internal import rna_enums + from bonsai.bim.prop import Attribute, MultipleFileSelect + class SetTab(bpy.types.Operator): bl_idname = "bim.set_tab" @@ -236,6 +239,125 @@ class SelectIfcFile(bpy.types.Operator, IFCFileSelector, ImportHelper): return ImportHelper.invoke(self, context, event) +class SaveBlendMetadataFile(bpy.types.Operator): + bl_idname = "bim.save_blend_metadata_file" + bl_label = "Save Blend Metadata File" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + """ + Save the current blend file as a metadata-only file (no geometry), preserving settings, window arrangement, geometry nodes, etc. + """ + props = tool.Blender.get_bim_props() + ifc_file = getattr(props, "ifc_file", None) + if not ifc_file: + self.report({"WARNING"}, "No IFC file path set.") + return {"CANCELLED"} + + suffix = tool.Blender.get_addon_preferences().metadata_blend_file_suffix + if ifc_file.lower().endswith(".ifc"): + blendmetadata_path = ifc_file[:-4] + suffix + else: + blendmetadata_path = ifc_file + suffix + + ifc_dir = os.path.dirname(ifc_file) + temp_path = os.path.join(ifc_dir, "__temp_blendmetadata.blend") + bpy.ops.wm.save_as_mainfile(filepath=temp_path, copy=True) + + cleanup_script = f""" +import bpy + +# Ensure all styles are loaded before attempting to remove them +try: + bpy.ops.bim.load_styles() +except Exception: + pass + +# 1. Collect all IfcStyle material names +ifcstyle_material_names = [] +try: + styles_props = getattr(bpy.context.scene, "BIMStylesProperties", None) + if styles_props is None and bpy.data.scenes: + styles_props = getattr(bpy.data.scenes[0], "BIMStylesProperties", None) + if styles_props: + for style in list(styles_props.styles): + material = getattr(style, "blender_material", None) + if material and material.name: + ifcstyle_material_names.append(material.name) +except Exception: + pass + +# 2. Purge IfcStore +try: + from bonsai.bim.ifc import IfcStore +except ImportError: + IfcStore = None + +if IfcStore: + try: + IfcStore.purge() + except Exception: + pass + +# 3. Remove all collections named IfcProject* +for collection in list(bpy.data.collections): + if collection.name.startswith('IfcProject'): + try: + bpy.data.collections.remove(collection, do_unlink=True) + except Exception: + pass + +# 4. Purge orphaned data blocks after removing IfcProject collections +try: + bpy.ops.outliner.orphans_purge(do_local_ids=True, do_linked_ids=True, do_recursive=True) +except Exception: + pass + +# 5. Remove all materials corresponding to the IfcStyles we collected +materials_removed = 0 +try: + for mat_name in ifcstyle_material_names: + if mat_name in bpy.data.materials: + try: + bpy.data.materials.remove(bpy.data.materials[mat_name], do_unlink=True) + materials_removed += 1 + except Exception: + pass +except Exception: + pass + +bpy.ops.wm.save_as_mainfile(filepath=r'{blendmetadata_path}') +""" + import tempfile + + with tempfile.NamedTemporaryFile("w", suffix=".py", delete=False) as script_file: + script_file.write(cleanup_script) + script_path = script_file.name + + blender_exe = bpy.app.binary_path + import subprocess + + result = subprocess.run( + [blender_exe, temp_path, "--background", "--python", script_path], capture_output=True, text=True + ) + + # Print the output from the background process (includes debug info) + if result.stdout: + print("\n=== Background Blender Output ===") + print(result.stdout) + if result.stderr: + print("\n=== Background Blender Errors ===") + print(result.stderr) + + try: + os.remove(temp_path) + os.remove(script_path) + except Exception: + pass + + return {"FINISHED"} + + # TODO: Unused operator. # Is there a need for this or 'DIR_PATH' propety subtype does almost the same, # but also has alt+click? @@ -1605,3 +1727,48 @@ class BIM_OT_attribute_remove_subitem(bpy.types.Operator): attr.is_null = True return {"FINISHED"} + + +class BIM_OT_manage_tab_visibility(bpy.types.Operator): + """Manage Tab Visibility""" + + bl_idname = "bim.manage_tab_visibility" + bl_label = "Manage Tab Visibility" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + from bonsai.bim.prop import get_tab + + bprops = tool.Blender.get_bim_props() + bprops.tab_visibilities.clear() + bprops.panel_visibilities.clear() + tabs = [item[0] for item in get_tab(None, None) if item and item[0] != "BLENDER"] + for tab in tabs: + new = bprops.tab_visibilities.add() + new.name = tab + + for attr_name in dir(bpy.types): + if attr_name.startswith("BIM_PT_tab_"): + panel_class = getattr(bpy.types, attr_name) + if not hasattr(panel_class, "bl_idname"): + assert False, panel_class + new = bprops.panel_visibilities.add() + new.name = panel_class.bl_idname + new.label = panel_class.bl_label + new.tab_name = panel_class.bim_tab_name + return {"FINISHED"} + + +class BIM_OT_reset_ui_layout(bpy.types.Operator): + """Reset UI Layout to Default""" + + bl_idname = "bim.reset_ui_layout" + bl_label = "Reset UI Layout" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + bprops = tool.Blender.get_bim_props() + bprops.tab_visibilities.clear() + bprops.panel_visibilities.clear() + bonsai.bim.handler.refresh_ui_data() + return {"FINISHED"} diff --git a/src/bonsai/bonsai/bim/prop.py b/src/bonsai/bonsai/bim/prop.py index 7a4464c986..4e93c1c690 100644 --- a/src/bonsai/bonsai/bim/prop.py +++ b/src/bonsai/bonsai/bim/prop.py @@ -16,35 +16,37 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os -import bpy import json +import os +from typing import TYPE_CHECKING, Any, Literal, Union, assert_never, get_args + +import bpy import ifcopenshell import ifcopenshell.util.pset import ifcopenshell.util.unit -from ifcopenshell.util.doc import ( - get_entity_doc, - get_attribute_doc, - get_property_set_doc, - get_property_doc, - get_predefined_type_doc, -) -import bonsai.bim -import bonsai.bim.schema -import bonsai.bim.handler -import bonsai.tool as tool -from bpy.types import PropertyGroup from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, + CollectionProperty, + EnumProperty, FloatProperty, FloatVectorProperty, - CollectionProperty, + IntProperty, + PointerProperty, + StringProperty, ) -from typing import Any, Union, Literal, get_args, TYPE_CHECKING, assert_never +from bpy.types import PropertyGroup +from ifcopenshell.util.doc import ( + get_attribute_doc, + get_entity_doc, + get_predefined_type_doc, + get_property_doc, + get_property_set_doc, +) + +import bonsai.bim +import bonsai.bim.handler +import bonsai.bim.schema +import bonsai.tool as tool cwd = os.path.dirname(os.path.realpath(__file__)) @@ -60,6 +62,10 @@ def update_tab(self: "BIMAreaProperties", context: bpy.types.Context) -> None: self.previous_tab = self.tab +def update_is_visible(self: "BIMTabVisibility", context: bpy.types.Context) -> None: + bonsai.bim.handler.refresh_ui_data() + + def update_global_tab(self: "BIMTabProperties", context: bpy.types.Context) -> None: tool.Blender.setup_tabs() screen = context.id_data @@ -92,7 +98,12 @@ def get_attribute_enum_values(prop: "Attribute", context: bpy.types.Context) -> # Support weird buildingSMART dictionary mappings which behave like enums items: list[tuple[str, str, str]] = [] - data = json.loads(prop.enum_items) + if not prop.enum_items: + return items + try: + data = json.loads(prop.enum_items) + except Exception: + return items if isinstance(data, dict): for k, v in data.items(): @@ -493,8 +504,9 @@ def get_tab( ("SCHEDULING", "Costing and Scheduling", "", "NLA", 6), ("FM", "Facility Management", "", "PACKAGE", 7), ("QUALITY", "Quality and Coordination", "", "COMMUNITY", 8), + ("BOOKMARK", "Bookmark", "", "SOLO_ON", 9), None, - ("BLENDER", "Blender Properties", "", "BLENDER", 9), + ("BLENDER", "Blender Properties", "", "BLENDER", 10), ] return get_tab.enum_items @@ -529,6 +541,29 @@ class BIMTabProperties(PropertyGroup): inactive_tab: bool +class BIMTabVisibility(PropertyGroup): + name: StringProperty(name="Tab Name") + is_visible: BoolProperty(name="Is Visible", default=True, update=update_is_visible) + + if TYPE_CHECKING: + name: str + is_visible: bool + + +class BIMPanelVisibility(PropertyGroup): + name: StringProperty(name="Name") + label: StringProperty(name="Label") + tab_name: StringProperty(name="Tab Name") + is_visible: BoolProperty(name="Is Visible in Tab", default=True, update=update_is_visible) + is_bookmarked: BoolProperty(name="Is Bookmarked", default=False, update=update_is_visible) + + if TYPE_CHECKING: + name: str + tab_name: str + is_visible: bool + is_bookmarked: bool + + class BIMProperties(PropertyGroup): is_dirty: BoolProperty(name="Is Dirty", default=False) schema_dir: StringProperty( @@ -556,6 +591,7 @@ class BIMProperties(PropertyGroup): area_unit: EnumProperty( default="SQUARE_METRE", items=[ + ("NONE", "None", ""), ("NANO/SQUARE_METRE", "Square Nanometre", ""), ("MICRO/SQUARE_METRE", "Square Micrometre", ""), ("MILLI/SQUARE_METRE", "Square Millimetre", ""), @@ -573,6 +609,7 @@ class BIMProperties(PropertyGroup): volume_unit: EnumProperty( default="CUBIC_METRE", items=[ + ("NONE", "None", ""), ("NANO/CUBIC_METRE", "Cubic Nanometre", ""), ("MICRO/CUBIC_METRE", "Cubic Micrometre", ""), ("MILLI/CUBIC_METRE", "Cubic Millimetre", ""), @@ -586,6 +623,33 @@ class BIMProperties(PropertyGroup): ], name="IFC Volume Unit", ) + mass_unit: EnumProperty( + items=[ + ("NONE", "None", ""), + ("GRAM", "Gram", "Grams"), + ("KILO/GRAM", "Kilogram", "Kilograms"), + ("MEGA/GRAM", "Tonne", "Metric Tons"), + ("pound", "Pound", "Pounds"), + ("ounce", "Ounce", "Ounces"), + ], + name="Mass Unit", + default="NONE", + ) + time_unit: EnumProperty( + items=[ + ("NONE", "None", ""), + ("SECOND", "Second", "Seconds"), + ("minute", "Minute", "Minutes"), + ("hour", "Hour", "Hours"), + ("day", "Day", "Days"), + ], + name="Time Unit", + default="NONE", + ) + tab_visibilities: CollectionProperty(type=BIMTabVisibility, name="Tab Visibilities") + active_tab_visibility_index: IntProperty(name="Active Tab Visibility Index") + panel_visibilities: CollectionProperty(type=BIMPanelVisibility, name="Panel Properties") + active_panel_visibility_index: IntProperty(name="Active Panel Property Index") if TYPE_CHECKING: is_dirty: bool @@ -599,6 +663,12 @@ class BIMProperties(PropertyGroup): section_line_decorator_width: float area_unit: str volume_unit: str + mass_unit: str + time_unit: str + tab_visibilities: bpy.types.bpy_prop_collection_idprop[BIMTabVisibility] + active_tab_visibility_index: int + panel_visibilities: bpy.types.bpy_prop_collection_idprop[BIMPanelVisibility] + active_panel_visibility_index: int class IfcParameter(PropertyGroup): @@ -732,12 +802,21 @@ class BIMFacet(PropertyGroup): ("!*=", "does not contain", ""), ], ) + filter_mode: EnumProperty( + items=[ + ("ADD", "Add", "Add results to the current selection"), + ("SUBTRACT", "Subtract", "Remove results from the current selection"), + ("FILTER", "Filter", "Filter the current selection"), + ], + default="ADD", + ) if TYPE_CHECKING: pset: str value: str type: str comparison: Literal["=", "!=", ">=", "<=", ">", "<", "*=", "!*="] + filter_mode: Literal["ADD", "SUBTRACT", "FILTER"] class BIMFilterGroup(PropertyGroup): diff --git a/src/bonsai/bonsai/bim/schema.py b/src/bonsai/bonsai/bim/schema.py index 7890f90006..4ef96e72a7 100644 --- a/src/bonsai/bonsai/bim/schema.py +++ b/src/bonsai/bonsai/bim/schema.py @@ -16,11 +16,13 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + +import bpy import ifcopenshell import ifcopenshell.util.pset + import bonsai.tool as tool -import bpy -from typing import TYPE_CHECKING if TYPE_CHECKING or bpy.app.version >= (5, 0, 0): import _bpy_restrict_state as bpy_restrict_state diff --git a/src/bonsai/bonsai/bim/ui.py b/src/bonsai/bonsai/bim/ui.py index aad6479c01..d224761609 100644 --- a/src/bonsai/bonsai/bim/ui.py +++ b/src/bonsai/bonsai/bim/ui.py @@ -17,35 +17,51 @@ # along with Bonsai. If not, see . import os -import bpy import platform -import platformdirs -import bonsai.bim.helper +import textwrap from pathlib import Path +from typing import TYPE_CHECKING, Literal, Optional + +import bpy +import platformdirs +from bpy.props import BoolProperty, IntProperty, StringProperty from bpy.types import Panel -from bpy.props import StringProperty, IntProperty, BoolProperty from ifcopenshell.util.doc import ( + get_attribute_doc, get_entity_doc, get_property_set_doc, get_type_doc, - get_attribute_doc, ) -from . import ifc -from bonsai import get_debug_info -import bonsai.bim -import bonsai.tool as tool from ifcopenshell.util.file import IfcHeaderExtractor -from bonsai.bim.prop import Attribute -from bonsai.bim.module.bsdd.prop import BIMBSDDProperties, BSDDProperty -from bonsai.bim.module.pset.prop import IfcProperty -from typing import Optional, TYPE_CHECKING, Literal from natsort import natsorted -import textwrap +import bonsai.bim +import bonsai.bim.helper +import bonsai.tool as tool +from bonsai import get_debug_info +from bonsai.bim.module.bsdd.prop import BIMBSDDProperties, BSDDProperty +from bonsai.bim.module.model.prop import ( + BIMDoorProperties, + BIMRailingProperties, + BIMRoofProperties, + BIMStairProperties, + BIMWindowProperties, +) +from bonsai.bim.module.model.ui import ( + draw_door_properties, + draw_railing_properties, + draw_roof_properties, + draw_stair_properties, + draw_window_properties, +) +from bonsai.bim.module.pset.prop import IfcProperty +from bonsai.bim.prop import Attribute + +from . import ifc if TYPE_CHECKING: - from bonsai.bim.prop import ObjProperty from bonsai.bim.module.project.prop import BIMProjectProperties + from bonsai.bim.prop import ObjProperty class IFCFileSelector: @@ -125,8 +141,8 @@ class IFCFileSelector: class BIM_PT_section_plane(Panel): - bl_label = "Temporary Section Cutaways" bl_idname = "BIM_PT_section_plane" + bl_label = "Temporary Section Cutaways" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "output" @@ -149,8 +165,8 @@ class BIM_PT_section_plane(Panel): class BIM_PT_section_with_cappings(Panel): - bl_label = "Section Cutaways With Cappings" bl_idname = "BIM_PT_section_with_cappings" + bl_label = "Section Cutaways With Cappings" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "output" @@ -228,6 +244,165 @@ class BIM_UL_generic(bpy.types.UIList): layout.label(text="", translate=False) +class BIM_UL_tab_visibilities(bpy.types.UIList): + def draw_item( + self, + context, + layout: bpy.types.UILayout, + data: bpy.types.PropertyGroup, + item: bpy.types.PropertyGroup, + icon, + active_data, + active_propname, + ) -> None: + row = layout.row() + row.prop(item, "name", text="", emboss=False) + row.prop(item, "is_visible", text="", icon="HIDE_OFF" if item.is_visible else "HIDE_ON", emboss=False) + + +class BIM_UL_panel_visibilities(bpy.types.UIList): + def draw_item( + self, + context, + layout: bpy.types.UILayout, + data: bpy.types.PropertyGroup, + item: bpy.types.PropertyGroup, + icon, + active_data, + active_propname, + ) -> None: + row = layout.row() + row.prop(item, "label", text="", emboss=False) + row.prop(item, "is_visible", text="", icon="HIDE_OFF" if item.is_visible else "HIDE_ON", emboss=False) + row.prop(item, "is_bookmarked", text="", icon="SOLO_ON" if item.is_bookmarked else "SOLO_OFF", emboss=False) + + +class GizmoPreferencesDoor(bpy.types.PropertyGroup): + """Property group for door gizmo visibility settings.""" + + overall_height: BoolProperty(name="Overall Height", default=True) + overall_width: BoolProperty(name="Overall Width", default=True) + threshold_thickness: BoolProperty(name="Threshold Thickness", default=True) + threshold_depth: BoolProperty(name="Threshold Depth", default=True) + threshold_offset: BoolProperty(name="Threshold Offset", default=True) + lining_offset: BoolProperty(name="Lining Offset", default=True) + lining_depth: BoolProperty(name="Lining Depth", default=True) + lining_thickness: BoolProperty(name="Lining Thickness", default=True) + transom_offset: BoolProperty(name="Transom Offset", default=True) + transom_thickness: BoolProperty(name="Transom Thickness", default=True) + casing_thickness: BoolProperty(name="Casing Thickness", default=True) + casing_depth: BoolProperty(name="Casing Depth", default=True) + swing_arc: BoolProperty(name="Swing Arc", default=True, description="Show door swing direction arc") + flip_arc: BoolProperty(name="Flip Arc", default=True, description="Show flip door orientation arc") + + if TYPE_CHECKING: + overall_height: bool + overall_width: bool + threshold_thickness: bool + threshold_depth: bool + threshold_offset: bool + lining_offset: bool + lining_depth: bool + lining_thickness: bool + transom_offset: bool + transom_thickness: bool + casing_thickness: bool + casing_depth: bool + swing_arc: bool + flip_arc: bool + + +class GizmoPreferencesWindow(bpy.types.PropertyGroup): + """Property group for window gizmo visibility settings.""" + + overall_height: BoolProperty(name="Overall Height", default=True) + overall_width: BoolProperty(name="Overall Width", default=True) + lining_offset: BoolProperty(name="Lining Offset", default=True) + lining_depth: BoolProperty(name="Lining Depth", default=True) + lining_thickness: BoolProperty(name="Lining Thickness", default=True) + lining_to_panel_offset_x: BoolProperty(name="Lining to Panel Offset X", default=True) + lining_to_panel_offset_y: BoolProperty(name="Lining to Panel Offset Y", default=True) + frame_depth: BoolProperty(name="Frame Depth", default=True) + frame_thickness: BoolProperty(name="Frame Thickness", default=True) + mullion_thickness: BoolProperty(name="Mullion Thickness", default=True) + first_mullion_offset: BoolProperty(name="First Mullion Offset", default=True) + second_mullion_offset: BoolProperty(name="Second Mullion Offset", default=True) + transom_thickness: BoolProperty(name="Transom Thickness", default=True) + first_transom_offset: BoolProperty(name="First Transom Offset", default=True) + second_transom_offset: BoolProperty(name="Second Transom Offset", default=True) + + if TYPE_CHECKING: + overall_height: bool + overall_width: bool + lining_offset: bool + lining_depth: bool + lining_thickness: bool + lining_to_panel_offset_x: bool + lining_to_panel_offset_y: bool + frame_depth: bool + frame_thickness: bool + mullion_thickness: bool + first_mullion_offset: bool + second_mullion_offset: bool + transom_thickness: bool + first_transom_offset: bool + second_transom_offset: bool + + +class GizmoPreferencesStair(bpy.types.PropertyGroup): + """Property group for stair gizmo visibility settings.""" + + width: BoolProperty(name="Width", default=True) + height: BoolProperty(name="Height", default=True) + tread_run: BoolProperty(name="Tread Run", default=True) + tread_depth: BoolProperty(name="Tread Depth", default=True) + riser_height: BoolProperty(name="Riser Height", default=True) + nosing_length: BoolProperty(name="Nosing Length", default=True) + nosing_depth: BoolProperty(name="Nosing Depth", default=True) + total_length_target: BoolProperty(name="Total Length Target", default=True) + base_slab_depth: BoolProperty(name="Base Slab Depth", default=True) + top_slab_depth: BoolProperty(name="Top Slab Depth", default=True) + lock: BoolProperty(name="Total Length Lock", default=True) + plus: BoolProperty(name="Add Tread (+)", default=True) + minus: BoolProperty(name="Remove Tread (-)", default=True) + cycle: BoolProperty(name="Cycle Stair Type", default=True) + + if TYPE_CHECKING: + width: bool + height: bool + tread_run: bool + tread_depth: bool + riser_height: bool + nosing_length: bool + nosing_depth: bool + total_length_target: bool + base_slab_depth: bool + top_slab_depth: bool + lock: bool + plus: bool + minus: bool + cycle: bool + + +class GizmoPreferences(bpy.types.PropertyGroup): + """Property group for all gizmo visibility settings.""" + + draw_gizmos_in_3d_viewport: BoolProperty( + name="Draw Gizmos In 3D Viewport", + default=True, + description="Show interactive gizmos in the 3D viewport for parametric elements", + ) + door: bpy.props.PointerProperty(type=GizmoPreferencesDoor) + window: bpy.props.PointerProperty(type=GizmoPreferencesWindow) + stair: bpy.props.PointerProperty(type=GizmoPreferencesStair) + + if TYPE_CHECKING: + draw_gizmos_in_3d_viewport: bool + door: GizmoPreferencesDoor + window: GizmoPreferencesWindow + stair: GizmoPreferencesStair + + class DocPreferences(bpy.types.PropertyGroup): sheets_dir: StringProperty( default=os.path.join("sheets") + os.path.sep, @@ -320,29 +495,63 @@ class DocPreferences(bpy.types.PropertyGroup): classes_no_cut: str +class DefaultParameters(bpy.types.PropertyGroup): + door: bpy.props.PointerProperty(type=BIMDoorProperties) + window: bpy.props.PointerProperty(type=BIMWindowProperties) + railing: bpy.props.PointerProperty(type=BIMRailingProperties) + roof: bpy.props.PointerProperty(type=BIMRoofProperties) + stair: bpy.props.PointerProperty(type=BIMStairProperties) + + class BIM_ADDON_preferences(bpy.types.AddonPreferences): bl_idname = tool.Blender.get_blender_addon_package_name() svg2pdf_command: StringProperty( name="SVG to PDF Command", - description='print sheet to pdf together with svg. Leave blank svg is just created, E.g. [["path to application eg. /Applications/Inkscape.app/Contents/MacOS/inkscape", "svg", "-o", "pdf"]]', + description=( + "print sheet to pdf together with svg. Leave blank svg is just created, " + 'E.g. [["path to application eg. /Applications/Inkscape.app/Contents/MacOS/inkscape", "svg", "-o", "pdf"]]' + '\n `"svg"`, `"pdf"` will be replaced automatically.' + ), ) svg2dxf_command: StringProperty( name="SVG to DXF Command", - description='E.g. [["inkscape", "svg", "-o", "eps"], ["pstoedit", "-dt", "-f", "dxf:-polyaslines -mm", "eps", "dxf", "-psarg", "-dNOSAFER"]]', + description=( + 'E.g. `[["inkscape", "svg", "-o", "eps"], ' + '["pstoedit", "-dt", "-f", "dxf:-polyaslines -mm", "eps", "dxf", "-psarg", "-dNOSAFER"]]`' + '\n `"svg"`, `"eps"`, `"dxf"` will be replaced automatically.' + ), ) svg_command: StringProperty( name="SVG Command", - description='Software to open generated drawing and sheets. Leave blank system default for .svg is used E.g. [["path to application eg. /Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge", "path"]]', + description=( + "Software to open generated drawing and sheets. Leave blank system default for .svg is used " + 'E.g. [["path to application eg. /Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge", "path"]]' + '\n `"path"` will be replaced with the path to the generated .svg file.' + ), ) layout_svg_command: StringProperty( name="Layout SVG Command", - description='Software to open layouts, before generated. Leave blank system default for .svg is used E.g. [["path to application eg. /Applications/Inkscape.app/Contents/MacOS/inkscape", "path"]]', + description=( + "Software to open layouts, before generated. Leave blank system default for .svg is used. " + 'E.g. `[["path to application eg. /Applications/Inkscape.app/Contents/MacOS/inkscape", "path"]]`' + '\n `"path"` will be replaced with the path to the generated .svg file.' + ), ) pdf_command: StringProperty( name="PDF Command", - description='Software to open .pdf, leave blank uses system default. E.g. [["path to application eg. /Applications/Inkscape.app/Contents/MacOS/inkscape", "path"]]', + description=( + "Software to open .pdf, leave blank uses system default. " + 'E.g. `[["path to application eg. /Applications/Inkscape.app/Contents/MacOS/inkscape", "path"]]`' + '\n `"path"` will be replaced with the path to the generated .pdf file.' + ), + ) + spreadsheet_command: StringProperty( + name="Spreadsheet Command", + description=( + 'E.g. [["libreoffice", "path"]]' + '\n `"path"` will be replaced with the path to the generated spreadsheet file.' + ), ) - spreadsheet_command: StringProperty(name="Spreadsheet Command", description='E.g. [["libreoffice", "path"]]') should_hide_empty_props: BoolProperty( name="Hide Empty Properties", default=True, @@ -351,12 +560,18 @@ class BIM_ADDON_preferences(bpy.types.AddonPreferences): should_setup_workspace: BoolProperty( name="Setup Workspace Layout for BIM", default=True, - description="If enabled, this will add a default workspace dedicated to working with BIM models.\nIt is recommended to keep this `Enabled`", + description=( + "If enabled, this will add a default workspace dedicated to working with BIM models.\n" + "It is recommended to keep this `Enabled`" + ), ) activate_workspace: BoolProperty( name="Activate BIM Workspace on Startup", default=True, - description="If enabled, this will automatically activate the BIM workspace when opening a project.\nIt is recommended to keep this `Enabled`", + description=( + "If enabled, this will automatically activate the BIM workspace when opening a project.\n" + "It is recommended to keep this `Enabled`" + ), ) should_setup_toolbar: BoolProperty( name="Always Show Toolbar In 3D Viewport", @@ -366,7 +581,9 @@ class BIM_ADDON_preferences(bpy.types.AddonPreferences): should_use_snap: BoolProperty( name="Enable Snapping on Startup", default=True, - description="If enabled, snapping will be enabled on new sessions.\nIt is recommended to keep this `Enabled`", + description=( + "If enabled, snapping will be enabled on new sessions.\n" "It is recommended to keep this `Enabled`" + ), ) should_play_chaching_sound: BoolProperty(name="Play A Cha-Ching Sound When Project Costs Updates", default=False) tmp_dir: StringProperty( @@ -428,7 +645,10 @@ class BIM_ADDON_preferences(bpy.types.AddonPreferences): max=100, subtype="PERCENTAGE", name="Non-Openings Opacity", - description="When modifying openings, other elements of the model will display with some transparency.\n0 is fully transparent and 100 is fully opaque", + description=( + "When modifying openings, other elements of the model will display with some transparency.\n" + "0 is fully transparent and 100 is fully opaque" + ), ) bsdd_load_preview_dictionaries: BoolProperty( @@ -456,6 +676,7 @@ class BIM_ADDON_preferences(bpy.types.AddonPreferences): name="Occurrence Name Function", description="Code that will be evaluated to generate occurrence name for CUSTOM occurrence name style", ) + gizmos: bpy.props.PointerProperty(type=GizmoPreferences) def update_data_dir(self, context: bpy.types.Context) -> None: import bonsai.bim.schema @@ -486,6 +707,41 @@ class BIM_ADDON_preferences(bpy.types.AddonPreferences): subtype="DIR_PATH", ) doc: bpy.props.PointerProperty(type=DocPreferences) + default_parameters: bpy.props.PointerProperty( + type=DefaultParameters, + name="Default Parameters", + description="Default parameters for BIM elements", + ) + + container_hide_show_isolate: BoolProperty( + name="Container hide/show/isolate", + description="Enable container hide/show/isolate feature in the UI", + default=False, + ) + + chain_filter_with_set_operations: BoolProperty( + name="NEW Filter mode: Enable chained filters with set operations", + description=( + "Enable chaining search filters with set operations: " + "ADD (union: combine sets), SUBTRACT (difference: remove from set), " + "FILTER (intersection: only elements in both sets), with autocomplete suggestions for filter values" + ), + default=False, + ) + + save_metadata_blend_file: BoolProperty( + name="Save non ifc data to metadata blend File", + description=( + "Save session data (window layout, settings) to a metadata blend file alongside the IFC file. " + "This file is automatically loaded when opening the project." + ), + default=False, + ) + metadata_blend_file_suffix: StringProperty( + name="Metadata File Suffix", + description="Custom suffix for the metadata blend file. Will be appended to the filename (without .ifc).", + default=".ifc.metadata.blend", + ) if TYPE_CHECKING: svg2pdf_command: str @@ -498,6 +754,7 @@ class BIM_ADDON_preferences(bpy.types.AddonPreferences): should_setup_workspace: bool activate_workspace: bool should_setup_toolbar: bool + should_use_snap: bool should_play_chaching_sound: bool tmp_dir: str decorations_colour: tuple[float, float, float, float] @@ -515,10 +772,16 @@ class BIM_ADDON_preferences(bpy.types.AddonPreferences): should_always_cache: bool occurrence_name_style: Literal["CLASS", "TYPE", "CUSTOM"] occurrence_name_function: str + gizmos: GizmoPreferences data_dir: str cache_dir: str pset_dir: str doc: DocPreferences + default_parameters: DefaultParameters + container_hide_show_isolate: bool + mass_time_units_in_wizard: bool + chain_filter_with_set_operations: bool + save_metadata_blend_file: bool def draw(self, context: bpy.types.Context) -> None: layout = self.layout @@ -544,6 +807,7 @@ class BIM_ADDON_preferences(bpy.types.AddonPreferences): bonsai.bim.helper.draw_expandable_panel(self.layout, context, "Directories", self.draw_directories) bonsai.bim.helper.draw_expandable_panel(self.layout, context, "Drawing", self.draw_drawing_settings) bonsai.bim.helper.draw_expandable_panel(self.layout, context, "Other", self.draw_other_settings) + bonsai.bim.helper.draw_expandable_panel(self.layout, context, "Extras", self.draw_extras_settings) def draw_commands(self, layout: bpy.types.UILayout, context: bpy.types.Context) -> None: layout.prop(self, "svg2pdf_command") @@ -561,10 +825,75 @@ class BIM_ADDON_preferences(bpy.types.AddonPreferences): layout.prop(self, "should_use_snap") layout.prop(self, "should_play_chaching_sound") + layout.prop(self.gizmos, "draw_gizmos_in_3d_viewport") + if self.gizmos.draw_gizmos_in_3d_viewport: + bonsai.bim.helper.draw_expandable_panel( + layout, + context, + "Gizmos Parameters", + self.draw_gizmo_parameters, + ) + + def draw_gizmo_parameters(self, layout: bpy.types.UILayout, context: bpy.types.Context) -> None: + layout.label(text="Toggle visibility of gizmos in editing mode") + box = layout.box() + bonsai.bim.helper.draw_expandable_panel(box, context, "Parametric Door", self.draw_door_gizmo_parameters) + bonsai.bim.helper.draw_expandable_panel(box, context, "Parametric Window", self.draw_window_gizmo_parameters) + bonsai.bim.helper.draw_expandable_panel(box, context, "Parametric Stair", self.draw_stair_gizmo_parameters) + + def draw_door_gizmo_parameters(self, layout: bpy.types.UILayout, context: bpy.types.Context) -> None: + from bonsai.bim.module.model.door import GizmoDoorEdition + + door_gizmos = self.gizmos.door + gizmo_prop_names = {p.attr_name for p in GizmoDoorEdition.dimension_gizmo_props} + # Add special gizmos not in dimension_gizmo_props + gizmo_prop_names.update(("swing_arc", "flip_arc")) + try: + annotations = door_gizmos.__annotations__ + except AttributeError: + annotations = type(door_gizmos).__annotations__ + for prop in annotations: + if prop in gizmo_prop_names: + layout.prop(door_gizmos, prop) + + def draw_window_gizmo_parameters(self, layout: bpy.types.UILayout, context: bpy.types.Context) -> None: + from bonsai.bim.module.model.window import GizmoWindowEdition + + window_gizmos = self.gizmos.window + gizmo_prop_names = {p.attr_name for p in GizmoWindowEdition.dimension_gizmo_props} + try: + annotations = window_gizmos.__annotations__ + except AttributeError: + annotations = type(window_gizmos).__annotations__ + for prop in annotations: + if prop in gizmo_prop_names: + layout.prop(window_gizmos, prop) + + def draw_stair_gizmo_parameters(self, layout: bpy.types.UILayout, context: bpy.types.Context) -> None: + from bonsai.bim.module.model.stair import GizmoStairEdition + + stair_gizmos = self.gizmos.stair + gizmo_prop_names = {p.attr_name for p in GizmoStairEdition.dimension_gizmo_props} + # Add special gizmos not in dimension_gizmo_props + special_gizmo_names = {"lock", "plus", "minus", "cycle"} + try: + annotations = stair_gizmos.__annotations__ + except AttributeError: + annotations = type(stair_gizmos).__annotations__ + for prop in annotations: + if prop in gizmo_prop_names or prop in special_gizmo_names: + layout.prop(stair_gizmos, prop) + def draw_model_settings(self, layout: bpy.types.UILayout, context: bpy.types.Context) -> None: layout.prop(self, "occurrence_name_style") if self.occurrence_name_style == "CUSTOM": layout.prop(self, "occurrence_name_function") + bonsai.bim.helper.draw_expandable_panel( + layout, + context, + "Default Parameters", + self.draw_default_parameters, + ) def draw_directories(self, layout: bpy.types.UILayout, context: bpy.types.Context) -> None: layout.prop(self, "data_dir") @@ -601,6 +930,39 @@ class BIM_ADDON_preferences(bpy.types.AddonPreferences): layout.row().prop(self, "decorator_color_error") layout.row().prop(self, "decorator_color_background") + def draw_default_parameters(self, layout: bpy.types.UILayout, context: bpy.types.Context) -> None: + box = layout.box() + bonsai.bim.helper.draw_expandable_panel( + box, + context, + "Door", + lambda _layout, _context: draw_door_properties(_layout, self.default_parameters.door), + ) + bonsai.bim.helper.draw_expandable_panel( + box, + context, + "Window", + lambda _layout, _context: draw_window_properties(_layout, self.default_parameters.window), + ) + bonsai.bim.helper.draw_expandable_panel( + box, + context, + "Railing", + lambda _layout, _context: draw_railing_properties(_layout, self.default_parameters.railing), + ) + bonsai.bim.helper.draw_expandable_panel( + box, + context, + "Roof", + lambda _layout, _context: draw_roof_properties(_layout, self.default_parameters.roof), + ) + bonsai.bim.helper.draw_expandable_panel( + box, + context, + "Stair", + lambda _layout, _context: draw_stair_properties(_layout, self.default_parameters.stair), + ) + def draw_other_settings(self, layout: bpy.types.UILayout, context: bpy.types.Context) -> None: layout.prop(self, "opening_focus_opacity") layout.prop(self, "should_disable_undo_on_save") @@ -611,9 +973,42 @@ class BIM_ADDON_preferences(bpy.types.AddonPreferences): layout.prop(self, "bsdd_load_inactive_dictionaries") layout.prop(self, "bsdd_load_test_dictionaries") + def draw_extras_settings(self, layout: bpy.types.UILayout, context: bpy.types.Context) -> None: + layout.prop(self, "container_hide_show_isolate") + layout.prop(self, "mass_time_units_in_wizard") + row = layout.row(align=True) + row.prop(self, "chain_filter_with_set_operations") + row.operator("bim.open_uri", text="", icon="HELP").uri = "https://community.osarch.org/discussion/3270" + layout.prop(self, "save_metadata_blend_file") + if self.save_metadata_blend_file: + row = layout.row() + row.separator() + row.prop(self, "metadata_blend_file_suffix") + + bprops = tool.Blender.get_bim_props() + if tab_visibilities := bprops.tab_visibilities: + row = layout.row() + row.operator("bim.reset_ui_layout", icon="LOOP_BACK") + row = layout.row(align=True) + row.template_list( + "BIM_UL_tab_visibilities", "", bprops, "tab_visibilities", bprops, "active_tab_visibility_index" + ) + row.template_list( + "BIM_UL_panel_visibilities", + "", + bprops, + "panel_visibilities", + bprops, + "active_panel_visibility_index", + ) + else: + row = layout.row() + row.operator("bim.manage_tab_visibility", icon="PREFERENCES") + # Scene panel groups class BIM_PT_tabs(Panel): + bl_idname = "BIM_PT_tabs" bl_label = "Bonsai" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" @@ -624,51 +1019,29 @@ class BIM_PT_tabs(Panel): def draw(self, context): if not UIData.is_loaded: UIData.load() - is_ifc_project = bool(tool.Ifc.get()) aprops = tool.Blender.get_area_props(context) - ifc_icon = f"{UIData.data['tabs_icon_color_mode']}_ifc" + addon_prefs = tool.Blender.get_addon_preferences() row = self.layout.row() row.alignment = "CENTER" - row.operator( - "bim.set_tab", - text="", - emboss=aprops.tab == "PROJECT", - icon_value=bonsai.bim.icons[ifc_icon].icon_id, - ).tab = "PROJECT" - self.draw_tab_entry(row, "FILE_3D", "OBJECT", is_ifc_project, aprops.tab == "OBJECT") - self.draw_tab_entry(row, "MATERIAL", "GEOMETRY", is_ifc_project, aprops.tab == "GEOMETRY") - self.draw_tab_entry(row, "DOCUMENTS", "DRAWINGS", is_ifc_project, aprops.tab == "DRAWINGS") - self.draw_tab_entry(row, "NETWORK_DRIVE", "SERVICES", is_ifc_project, aprops.tab == "SERVICES") - self.draw_tab_entry(row, "EDITMODE_HLT", "STRUCTURE", is_ifc_project, aprops.tab == "STRUCTURE") - self.draw_tab_entry(row, "NLA", "SCHEDULING", is_ifc_project, aprops.tab == "SCHEDULING") - self.draw_tab_entry(row, "PACKAGE", "FM", True, aprops.tab == "FM") - self.draw_tab_entry(row, "COMMUNITY", "QUALITY", True, aprops.tab == "QUALITY") + for tab in UIData.data["tabs"]: + self.draw_tab_entry(row, tab[1], tab[0], tab[2], aprops.tab == tab[0]) row.operator("bim.switch_tab", text="", emboss=False, icon="UV_SYNC_SELECT") - # Yes, that's right. row = self.layout.row() + # Yes, that's right. row.alignment = "CENTER" row.scale_y = 0.2 - for tab in [ - "PROJECT", - "OBJECT", - "GEOMETRY", - "DRAWINGS", - "SERVICES", - "STRUCTURE", - "SCHEDULING", - "FM", - "QUALITY", - "SWITCH", - ]: + + for tab in UIData.data["tabs"]: # Draw a little underscore below the active tab icon. - if aprops.tab == tab: + if aprops.tab == tab[0]: row.prop(aprops, "active_tab", text="", icon="BLANK1") else: row.prop(aprops, "inactive_tab", text="", icon="BLANK1", emboss=False) + row.prop(aprops, "inactive_tab", text="", icon="BLANK1", emboss=False) # space for Switch - row = self.layout.row(align=True) + row = self.layout.row() row.prop(aprops, "tab", text="") if bonsai.REINSTALLED_BBIM_VERSION: @@ -736,19 +1109,24 @@ class BIM_PT_tabs(Panel): def draw_tab_entry(self, row, icon, tab_name, enabled=True, highlight=True): tab_entry = row.row(align=True) - tab_entry.operator("bim.set_tab", text="", emboss=highlight, icon=icon).tab = tab_name + if isinstance(icon, int): + tab_entry.operator("bim.set_tab", text="", emboss=highlight, icon_value=icon).tab = tab_name + else: + tab_entry.operator("bim.set_tab", text="", emboss=highlight, icon=icon).tab = tab_name tab_entry.enabled = enabled class BIM_PT_tab_new_project_wizard(Panel): + bl_idname = "BIM_PT_tab_new_project_wizard" bl_label = "New Project Wizard" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" + bim_tab_name = "PROJECT" @classmethod def poll(cls, context): - if not tool.Blender.is_tab(context, "PROJECT"): + if not tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname): return False bim_props = tool.Blender.get_bim_props() pprops = tool.Project.get_project_props() @@ -763,94 +1141,109 @@ class BIM_PT_tab_new_project_wizard(Panel): class BIM_PT_tab_project_info(Panel): + bl_idname = "BIM_PT_tab_project_info" bl_label = "Project Info" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" + bim_tab_name = "PROJECT" @classmethod def poll(cls, context): - if not tool.Blender.is_tab(context, "PROJECT"): - return False - bim_props = tool.Blender.get_bim_props() - pprops = tool.Project.get_project_props() - if pprops.is_loading: - return True - elif tool.Ifc.get() or bim_props.ifc_file: - return True - return False + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname): + bim_props = tool.Blender.get_bim_props() + pprops = tool.Project.get_project_props() + if pprops.is_loading: + return True + elif tool.Ifc.get() or bim_props.ifc_file: + return True def draw(self, context): pass class BIM_PT_tab_spatial(Panel): + bl_idname = "BIM_PT_tab_spatial" bl_label = "Spatial" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" + bim_tab_name = "PROJECT" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "PROJECT") and tool.Ifc.get() + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname) and tool.Ifc.get(): + return True def draw(self, context): pass class BIM_PT_tab_project_setup(Panel): + bl_idname = "BIM_PT_tab_project_setup" bl_label = "Project Setup" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" + bim_tab_name = "PROJECT" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "PROJECT") + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname): + return True def draw(self, context): pass class BIM_PT_tab_stakeholders(Panel): + bl_idname = "BIM_PT_tab_stakeholders" bl_label = "Stakeholders" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" bl_options = {"DEFAULT_CLOSED"} + bim_tab_name = "PROJECT" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "PROJECT") and tool.Ifc.get() + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname) and tool.Ifc.get(): + return True def draw(self, context): pass class BIM_PT_tab_collaboration(Panel): + bl_idname = "BIM_PT_tab_collaboration" bl_label = "Collaboration" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" + bim_tab_name = "QUALITY" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "QUALITY") + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname): + return True def draw(self, context): pass class BIM_PT_tab_grouping_and_filtering(Panel): + bl_idname = "BIM_PT_tab_grouping_and_filtering" bl_label = "Grouping and Filtering" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" bl_options = {"HEADER_LAYOUT_EXPAND"} + bim_tab_name = "PROJECT" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "PROJECT") and tool.Ifc.get() + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname) and tool.Ifc.get(): + return True def draw(self, context): pass @@ -865,197 +1258,239 @@ class BIM_PT_tab_grouping_and_filtering(Panel): class BIM_PT_tab_geometry(Panel): + bl_idname = "BIM_PT_tab_geometry" bl_label = "Geometry" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" + bim_tab_name = "PROJECT" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "PROJECT") and tool.Ifc.get() + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname) and tool.Ifc.get(): + return True def draw(self, context): pass class BIM_PT_tab_status(Panel): + bl_idname = "BIM_PT_tab_status" bl_label = "Status" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" + bim_tab_name = "SCHEDULING" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "SCHEDULING") and tool.Ifc.get() + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname) and tool.Ifc.get(): + return True def draw(self, context): pass class BIM_PT_tab_qto(Panel): + bl_idname = "BIM_PT_tab_qto" bl_label = "Quantity Take-off" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" + bim_tab_name = "SCHEDULING" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "SCHEDULING") and tool.Ifc.get() + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname) and tool.Ifc.get(): + return True def draw(self, context): pass class BIM_PT_tab_resources(Panel): + bl_idname = "BIM_PT_tab_resources" bl_label = "Resources" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" + bim_tab_name = "SCHEDULING" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "SCHEDULING") and tool.Ifc.get() + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname) and tool.Ifc.get(): + return True def draw(self, context): pass class BIM_PT_tab_cost(Panel): + bl_idname = "BIM_PT_tab_cost" bl_label = "Cost" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" + bim_tab_name = "SCHEDULING" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "SCHEDULING") and tool.Ifc.get() + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname) and tool.Ifc.get(): + return True def draw(self, context): pass class BIM_PT_tab_sequence(Panel): + bl_idname = "BIM_PT_tab_sequence" bl_label = "Construction Scheduling" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" + bim_tab_name = "SCHEDULING" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "SCHEDULING") and tool.Ifc.get() + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname) and tool.Ifc.get(): + return True def draw(self, context): pass class BIM_PT_tab_structural(Panel): + bl_idname = "BIM_PT_tab_structural" bl_label = "Structural" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" + bim_tab_name = "STRUCTURE" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "STRUCTURE") and tool.Ifc.get() + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname) and tool.Ifc.get(): + return True def draw(self, context): pass class BIM_PT_tab_services(Panel): + bl_idname = "BIM_PT_tab_services" bl_label = "Services" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" + bim_tab_name = "SERVICES" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "SERVICES") and tool.Ifc.get() + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname) and tool.Ifc.get(): + return True def draw(self, context): pass class BIM_PT_tab_lighting(Panel): + bl_idname = "BIM_PT_tab_lighting" bl_label = "Lighting" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" + bim_tab_name = "SERVICES" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "SERVICES") and tool.Ifc.get() + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname) and tool.Ifc.get(): + return True def draw(self, context): pass class BIM_PT_tab_zones(Panel): + bl_idname = "BIM_PT_tab_zones" bl_label = "Zones" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" + bim_tab_name = "SERVICES" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "SERVICES") and tool.Ifc.get() + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname) and tool.Ifc.get(): + return True def draw(self, context): pass class BIM_PT_tab_solar_analysis(Panel): + bl_idname = "BIM_PT_tab_solar_analysis" bl_label = "Solar Analysis" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" + bim_tab_name = "SERVICES" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "SERVICES") and tool.Ifc.get() + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname) and tool.Ifc.get(): + return True def draw(self, context): pass class BIM_PT_tab_quality_control(Panel): + bl_idname = "BIM_PT_tab_quality_control" bl_label = "Quality Control" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" + bim_tab_name = "QUALITY" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "QUALITY") + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname): + return True def draw(self, context): pass class BIM_PT_tab_clash_detection(Panel): + bl_idname = "BIM_PT_tab_clash_detection" bl_label = "Clash Detection" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" + bim_tab_name = "QUALITY" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "QUALITY") + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname): + return True def draw(self, context): pass class BIM_PT_tab_sandbox(Panel): + bl_idname = "BIM_PT_tab_sandbox" bl_label = "Sandbox" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" bl_options = {"DEFAULT_CLOSED"} + bim_tab_name = "QUALITY" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "QUALITY") + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname): + return True def draw(self, context): row = self.layout.row() @@ -1064,17 +1499,19 @@ class BIM_PT_tab_sandbox(Panel): # Object panel groups class BIM_PT_tab_object_metadata(Panel): - bl_label = "Object Metadata" + bl_idname = "BIM_PT_tab_object_metadata" + bl_label = "Object" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" bl_order = 1 + bim_tab_name = "OBJECT" @classmethod def poll(cls, context): props = tool.Project.get_project_props() - return ( - tool.Blender.is_tab(context, "OBJECT") + if ( + tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname) and tool.Ifc.get() and (obj := context.active_object) # Hide links empty handles. @@ -1083,254 +1520,286 @@ class BIM_PT_tab_object_metadata(Panel): or not obj.instance_collection or not any(l.empty_handle == obj for l in props.links) ) - ) + ): + return True def draw(self, context): pass class BIM_PT_tab_placement(Panel): + bl_idname = "BIM_PT_tab_placement" bl_label = "Placement" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" bl_order = 1 + bim_tab_name = "GEOMETRY" @classmethod def poll(cls, context): - return ( - tool.Blender.is_tab(context, "GEOMETRY") + if ( + tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname) and tool.Ifc.get() and (obj := context.active_object) and tool.Ifc.get_entity(obj) - ) + ): + return True def draw(self, context): pass class BIM_PT_tab_representations(Panel): + bl_idname = "BIM_PT_tab_representations" bl_label = "Representations" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" bl_order = 1 + bim_tab_name = "GEOMETRY" @classmethod def poll(cls, context): - return ( - tool.Blender.is_tab(context, "GEOMETRY") - and tool.Ifc.get() - and tool.Geometry.get_active_or_representation_obj() - ) + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname) and tool.Ifc.get(): + return True def draw(self, context): pass class BIM_PT_tab_geometric_relationships(Panel): + bl_idname = "BIM_PT_tab_geometric_relationships" bl_label = "Geometric Relationships" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" bl_order = 1 bl_options = {"DEFAULT_CLOSED"} + bim_tab_name = "GEOMETRY" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "GEOMETRY") and tool.Ifc.get() + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname) and tool.Ifc.get(): + return True def draw(self, context): pass class BIM_PT_tab_parametric_geometry(Panel): + bl_idname = "BIM_PT_tab_parametric_geometry" bl_label = "Parametric Geometry" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" bl_order = 1 bl_options = {"DEFAULT_CLOSED"} + bim_tab_name = "GEOMETRY" @classmethod def poll(cls, context): - return ( - tool.Blender.is_tab(context, "GEOMETRY") - and tool.Ifc.get() - and (obj := context.active_object) - and tool.Ifc.get_entity(obj) - ) + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname) and tool.Ifc.get(): + return True def draw(self, context): pass class BIM_PT_tab_object_materials(Panel): + bl_idname = "BIM_PT_tab_object_materials" bl_label = "Object Materials" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" bl_order = 1 + bim_tab_name = "GEOMETRY" @classmethod def poll(cls, context): - return ( - tool.Blender.is_tab(context, "GEOMETRY") - and tool.Ifc.get() - and (obj := context.active_object) - and tool.Ifc.get_entity(obj) - ) + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname) and tool.Ifc.get(): + return True def draw(self, context): pass class BIM_PT_tab_materials(Panel): + bl_idname = "BIM_PT_tab_materials" bl_label = "Materials" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" bl_order = 1 + bim_tab_name = "GEOMETRY" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "GEOMETRY") and tool.Ifc.get() + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname) and tool.Ifc.get(): + return True def draw(self, context): pass class BIM_PT_tab_styles(Panel): + bl_idname = "BIM_PT_tab_styles" bl_label = "Styles" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" bl_order = 1 + bim_tab_name = "GEOMETRY" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "GEOMETRY") and tool.Ifc.get() + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname) and tool.Ifc.get(): + return True def draw(self, context): pass class BIM_PT_tab_profiles(Panel): + bl_idname = "BIM_PT_tab_profiles" bl_label = "Profiles" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" bl_order = 1 + bim_tab_name = "GEOMETRY" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "GEOMETRY") and tool.Ifc.get() + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname) and tool.Ifc.get(): + return True def draw(self, context): pass class BIM_PT_tab_sheets(Panel): + bl_idname = "BIM_PT_tab_sheets" bl_label = "Sheets" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" bl_order = 1 + bim_tab_name = "DRAWINGS" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "DRAWINGS") and tool.Ifc.get() + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname) and tool.Ifc.get(): + return True def draw(self, context): pass class BIM_PT_tab_drawings(Panel): + bl_idname = "BIM_PT_tab_drawings" bl_label = "Drawings" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" bl_order = 1 + bim_tab_name = "DRAWINGS" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "DRAWINGS") and tool.Ifc.get() + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname) and tool.Ifc.get(): + return True def draw(self, context): pass class BIM_PT_tab_schedules(Panel): + bl_idname = "BIM_PT_tab_schedules" bl_label = "Schedules" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" bl_order = 1 + bim_tab_name = "DRAWINGS" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "DRAWINGS") and tool.Ifc.get() + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname) and tool.Ifc.get(): + return True def draw(self, context): pass class BIM_PT_tab_references(Panel): + bl_idname = "BIM_PT_tab_references" bl_label = "References" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" bl_order = 1 + bim_tab_name = "DRAWINGS" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "DRAWINGS") and tool.Ifc.get() + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname) and tool.Ifc.get(): + return True def draw(self, context): pass class BIM_PT_tab_misc(Panel): - bl_label = "Misc." + bl_idname = "BIM_PT_tab_misc" + bl_label = "Misc" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" bl_order = 1 bl_options = {"DEFAULT_CLOSED"} + bim_tab_name = "OBJECT" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "OBJECT") and tool.Ifc.get() + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname) and tool.Ifc.get(): + return True def draw(self, context): pass class BIM_PT_tab_handover(Panel): - bl_label = "Commissioning and Handover" + bl_idname = "BIM_PT_tab_handover" + bl_label = "Handover" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" bl_order = 1 + bim_tab_name = "FM" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "FM") + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname): + return True def draw(self, context): pass class BIM_PT_tab_operations(Panel): - bl_label = "Operations and Maintenance" + bl_idname = "BIM_PT_tab_operations" + bl_label = "Operations" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "scene" bl_order = 2 + bim_tab_name = "FM" @classmethod def poll(cls, context): - return tool.Blender.is_tab(context, "FM") + if tool.Blender.should_show_panel(context, cls.bim_tab_name, cls.bl_idname): + return True def draw(self, context): pass @@ -1371,8 +1840,8 @@ class UIData: def load(cls): cls.data = { "version": cls.version(), - "tabs_icon_color_mode": cls.icon_color_mode("user_interface.wcol_regular.text"), "menu_icon_color_mode": cls.icon_color_mode("user_interface.wcol_menu.text"), + "tabs": cls.tabs(), } cls.is_loaded = True @@ -1384,6 +1853,28 @@ class UIData: def icon_color_mode(cls, color_path): return tool.Blender.detect_icon_color_mode(color_path) + @classmethod + def tabs(cls): + hidden_tabs = [t.name for t in tool.Blender.get_bim_props().tab_visibilities if not t.is_visible] + color_mode = cls.icon_color_mode("user_interface.wcol_regular.text") + is_ifc_project = bool(tool.Ifc.get()) + return [ + tab + for tab in [ + ("PROJECT", bonsai.bim.icons[f"{color_mode}_ifc"].icon_id, True), + ("OBJECT", "FILE_3D", is_ifc_project), + ("GEOMETRY", "MATERIAL", is_ifc_project), + ("DRAWINGS", "DOCUMENTS", is_ifc_project), + ("SERVICES", "NETWORK_DRIVE", is_ifc_project), + ("STRUCTURE", "EDITMODE_HLT", is_ifc_project), + ("SCHEDULING", "NLA", is_ifc_project), + ("FM", "PACKAGE", True), + ("QUALITY", "COMMUNITY", True), + ("BOOKMARK", "SOLO_ON", is_ifc_project), + ] + if tab[0] not in hidden_tabs + ] + def draw_statusbar(self, context): if not UIData.is_loaded: diff --git a/src/bonsai/bonsai/core/aggregate.py b/src/bonsai/bonsai/core/aggregate.py index a1f2723338..0b6719a180 100644 --- a/src/bonsai/bonsai/core/aggregate.py +++ b/src/bonsai/bonsai/core/aggregate.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional, Union if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/attribute.py b/src/bonsai/bonsai/core/attribute.py index fd41beda7a..2bc2340cd8 100644 --- a/src/bonsai/bonsai/core/attribute.py +++ b/src/bonsai/bonsai/core/attribute.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Union if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/brick.py b/src/bonsai/bonsai/core/brick.py index b285377d86..a21c6d0656 100644 --- a/src/bonsai/bonsai/core/brick.py +++ b/src/bonsai/bonsai/core/brick.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional, Union if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/bsdd.py b/src/bonsai/bonsai/core/bsdd.py index 3bb4513d40..1cbf610ea7 100644 --- a/src/bonsai/bonsai/core/bsdd.py +++ b/src/bonsai/bonsai/core/bsdd.py @@ -17,12 +17,14 @@ # along with Bonsai. If not, see . from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Any + +from typing import TYPE_CHECKING, Any, Optional if TYPE_CHECKING: import bpy - import ifcopenshell import bsdd + import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/context.py b/src/bonsai/bonsai/core/context.py index 626720fb33..49815881aa 100644 --- a/src/bonsai/bonsai/core/context.py +++ b/src/bonsai/bonsai/core/context.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/cost.py b/src/bonsai/bonsai/core/cost.py index fe55d3c31c..6cd2d916c3 100644 --- a/src/bonsai/bonsai/core/cost.py +++ b/src/bonsai/bonsai/core/cost.py @@ -17,12 +17,14 @@ # along with Bonsai. If not, see . from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union, Literal + +from typing import TYPE_CHECKING, Literal, Optional, Union if TYPE_CHECKING: import bpy import ifcopenshell import ifcopenshell.util.cost + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/covering.py b/src/bonsai/bonsai/core/covering.py index ffc140dac6..c308c861fc 100644 --- a/src/bonsai/bonsai/core/covering.py +++ b/src/bonsai/bonsai/core/covering.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/debug.py b/src/bonsai/bonsai/core/debug.py index 2446a6e148..b79bd4f0e7 100644 --- a/src/bonsai/bonsai/core/debug.py +++ b/src/bonsai/bonsai/core/debug.py @@ -18,11 +18,13 @@ from __future__ import annotations + from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/document.py b/src/bonsai/bonsai/core/document.py index e82360dbb9..e38fc5d1e1 100644 --- a/src/bonsai/bonsai/core/document.py +++ b/src/bonsai/bonsai/core/document.py @@ -17,113 +17,94 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: - import bpy import ifcopenshell + import bonsai.tool as tool def load_project_documents(document: tool.Document) -> None: document.clear_document_tree() document.import_project_documents() - document.clear_breadcrumbs() document.enable_editing_ui() -def load_document(document_tool: tool.Document, document: ifcopenshell.entity_instance) -> None: - document_tool.clear_document_tree() - document_tool.import_subdocuments(document) - document_tool.import_references(document) - document_tool.disable_editing_document() - document_tool.add_breadcrumb(document) - - -def load_parent_document(document: tool.Document) -> None: - document.clear_document_tree() - document.remove_latest_breadcrumb() - parent = document.get_active_breadcrumb() - if parent: - document.import_subdocuments(parent) - document.import_references(parent) - document.disable_editing_document() - else: - document.import_project_documents() - - def disable_document_editing_ui(document: tool.Document) -> None: document.disable_editing_ui() document.disable_editing_document() -def enable_editing_document(document_tool: tool.Document, document: ifcopenshell.entity_instance) -> None: - document_tool.import_document_attributes(document) - document_tool.set_active_document(document) +def disable_object_document_editing_ui(document: tool.Document) -> None: + document.disable_object_editing_ui() + + +def enable_editing_document(document: tool.Document, ifc_document: ifcopenshell.entity_instance) -> None: + document.set_active_document(ifc_document) + document.import_document_attributes(ifc_document) def disable_editing_document(document: tool.Document) -> None: - document.disable_editing_document() + document.clear_active_document() + document.clear_document_attributes() -def add_information(ifc: tool.Ifc, document: tool.Document) -> None: +def add_information(ifc: tool.Ifc, document: tool.Document, parent=None) -> ifcopenshell.entity_instance: document.clear_document_tree() - parent = document.get_active_breadcrumb() + + if parent is None: + parent = document.get_default_parent_for_information() + information = ifc.run("document.add_information", parent=parent) ifc.run("document.add_reference", information=information) - if parent: - document.import_subdocuments(parent) - document.import_references(parent) - else: - document.import_project_documents() + + if document.is_document_information(parent): + document.expand_document(parent) + + document.import_project_documents() + return information def add_reference(ifc: tool.Ifc, document: tool.Document) -> None: - parent = document.get_active_breadcrumb() - assert parent - ifc.run("document.add_reference", information=parent) + parent = document.get_selected_document_information() + + if parent: + reference = ifc.run("document.add_reference", information=parent) + reference.Location = "" + document.expand_document(parent) + + document.import_project_documents() + + +def edit_document(ifc: tool.Ifc, document: tool.Document, ifc_document: ifcopenshell.entity_instance) -> None: + attributes = document.export_document_attributes() + if document.is_document_information(ifc_document): + ifc.run("document.edit_information", information=ifc_document, attributes=attributes) + else: + ifc.run("document.edit_reference", reference=ifc_document, attributes=attributes) + document.disable_editing_document() document.clear_document_tree() - document.import_subdocuments(parent) - document.import_references(parent) + document.import_project_documents() -def edit_document(ifc: tool.Ifc, document_tool: tool.Document, document: ifcopenshell.entity_instance) -> None: - attributes = document_tool.export_document_attributes() - if document_tool.is_document_information(document): - ifc.run("document.edit_information", information=document, attributes=attributes) +def remove_document(ifc: tool.Ifc, document: tool.Document, ifc_document: ifcopenshell.entity_instance) -> None: + document.clear_document_tree() + if document.is_document_information(ifc_document): + ifc.run("document.remove_information", information=ifc_document) else: - ifc.run("document.edit_reference", reference=document, attributes=attributes) - document_tool.disable_editing_document() - document_tool.clear_document_tree() - parent = document_tool.get_active_breadcrumb() - if parent: - document_tool.import_subdocuments(parent) - document_tool.import_references(parent) - else: - document_tool.import_project_documents() - - -def remove_document(ifc: tool.Ifc, document_tool: tool.Document, document: ifcopenshell.entity_instance) -> None: - document_tool.clear_document_tree() - if document_tool.is_document_information(document): - ifc.run("document.remove_information", information=document) - else: - ifc.run("document.remove_reference", reference=document) - parent = document_tool.get_active_breadcrumb() - if parent: - document_tool.import_subdocuments(parent) - document_tool.import_references(parent) - else: - document_tool.import_project_documents() + ifc.run("document.remove_reference", reference=ifc_document) + document.import_project_documents() def assign_document( - ifc: tool.Ifc, product: ifcopenshell.entity_instance, document: ifcopenshell.entity_instance + ifc: tool.Ifc, product: ifcopenshell.entity_instance, ifc_document: ifcopenshell.entity_instance ) -> None: - ifc.run("document.assign_document", products=[product], document=document) + ifc.run("document.assign_document", products=[product], document=ifc_document) def unassign_document( - ifc: tool.Ifc, product: ifcopenshell.entity_instance, document: ifcopenshell.entity_instance + ifc: tool.Ifc, product: ifcopenshell.entity_instance, ifc_document: ifcopenshell.entity_instance ) -> None: - ifc.run("document.unassign_document", products=[product], document=document) + ifc.run("document.unassign_document", products=[product], document=ifc_document) diff --git a/src/bonsai/bonsai/core/drawing.py b/src/bonsai/bonsai/core/drawing.py index d769079acc..42b0f77fbb 100644 --- a/src/bonsai/bonsai/core/drawing.py +++ b/src/bonsai/bonsai/core/drawing.py @@ -17,13 +17,15 @@ # along with Bonsai. If not, see . from __future__ import annotations + from pathlib import Path -from typing import TYPE_CHECKING, Optional, Union, Literal +from typing import TYPE_CHECKING, Literal, Optional, Union if TYPE_CHECKING: import bpy import ifcopenshell import ifcopenshell.util.representation + import bonsai.tool as tool @@ -37,12 +39,44 @@ def disable_editing_text(drawing: type[tool.Drawing], obj: bpy.types.Object) -> def edit_text(drawing: type[tool.Drawing], obj: bpy.types.Object) -> None: - drawing.synchronise_ifc_and_text_attributes(obj) - drawing.update_text_size_pset(obj) - drawing.update_text_annotation_properties(obj) + literal_attributes = drawing.export_text_literal_attributes(obj) + drawing.edit_text_font_size(obj, drawing.export_font_size(obj)) + drawing.edit_text_wrap_length(obj, drawing.export_wrap_length(obj)) + drawing.edit_text_symbol(obj, drawing.export_symbol(obj)) + drawing.edit_text_literals(obj, literal_attributes) drawing.disable_editing_text(obj) +def copy_text_to_selection( + drawing: type[tool.Drawing], + attribute: Literal["FONT_SIZE", "ALIGNMENT", "WRAP_LENGTH", "SYMBOL", "LITERALS"], + attribute_obj: bpy.types.Object, + apply_objs: list[bpy.types.Object], +) -> None: + if attribute == "FONT_SIZE": + data = drawing.export_font_size(attribute_obj) + elif attribute == "ALIGNMENT": + data = drawing.export_alignment(attribute_obj) + elif attribute == "WRAP_LENGTH": + data = drawing.export_wrap_length(attribute_obj) + elif attribute == "SYMBOL": + data = drawing.export_symbol(attribute_obj) + elif attribute == "LITERALS": + data = drawing.export_text_literal_attributes(attribute_obj) + for obj in apply_objs: + if attribute == "FONT_SIZE": + drawing.edit_text_font_size(obj, data) + elif attribute == "ALIGNMENT": + drawing.edit_text_alignment(obj, data) + elif attribute == "WRAP_LENGTH": + drawing.edit_text_wrap_length(obj, data) + elif attribute == "SYMBOL": + drawing.edit_text_symbol(obj, data) + elif attribute == "LITERALS": + drawing.edit_text_literals(obj, data) + drawing.disable_editing_text(obj) + + def enable_editing_assigned_product(drawing: type[tool.Drawing], obj: bpy.types.Object) -> None: drawing.enable_editing_assigned_product(obj) drawing.import_assigned_product(obj) @@ -60,10 +94,18 @@ def edit_assigned_product( ) -> None: element = ifc.get_entity(obj) assert element - existing_product = drawing.get_assigned_product(element) - if existing_product != product: - if existing_product: + + # Temporarily accomodate existing bug and check for multiple products. + existing_products = drawing.get_assigned_product_workaround(element) + if existing_products != [product]: + + if product in existing_products: + assert product is not None + existing_products.remove(product) + + for existing_product in existing_products: ifc.run("drawing.unassign_product", relating_product=existing_product, related_object=element) + if product: ifc.run("drawing.assign_product", relating_product=product, related_object=element) @@ -389,6 +431,12 @@ def update_drawing_name( ) -> None: if drawing_tool.get_name(drawing) != name: ifc.run("attribute.edit_attributes", product=drawing, attributes={"Name": name}) + + # Update the camera object name + camera = ifc.get_object(drawing) + if camera and camera.name != name: + camera.name = name + group = drawing_tool.get_drawing_group(drawing) if drawing_tool.get_name(group) != name: ifc.run("attribute.edit_attributes", product=group, attributes={"Name": name}) @@ -479,12 +527,29 @@ def sync_references( potential_reference_elements = drawing_tool.get_potential_reference_elements(drawing) for element in potential_reference_elements: + # Skip spatial elements - their IFC placement is the source of truth + if element.is_a("IfcSpatialElement"): + continue + + # Skip grids - their IFC placement is the source of truth + if element.is_a("IfcGrid") or element.is_a("IfcGridAxis"): + continue + if (obj := ifc.get_object(element)) and ifc.is_moved(obj): drawing_tool.sync_object_placement(obj) for element in drawing_tool.get_group_elements(group): if not drawing_tool.is_auto_annotation(element): continue + + # Skip spatial elements - should never sync their placement + if element.is_a("IfcSpatialElement"): + continue + + # Skip grids + if element.is_a("IfcGrid") or element.is_a("IfcGridAxis"): + continue + if (obj := ifc.get_object(element)) and ifc.is_moved(obj): drawing_tool.sync_object_placement(obj) if not (reference_element := drawing_tool.get_assigned_product(element)): diff --git a/src/bonsai/bonsai/core/geometry.py b/src/bonsai/bonsai/core/geometry.py index 7f35d3bd2a..83ba921d30 100644 --- a/src/bonsai/bonsai/core/geometry.py +++ b/src/bonsai/bonsai/core/geometry.py @@ -17,12 +17,14 @@ # along with Bonsai. If not, see . from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union + from collections.abc import Sequence +from typing import TYPE_CHECKING, Optional, Union if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool @@ -147,7 +149,7 @@ def remove_representation( assert element element_type = geometry.get_element_type(element) data = None - has_switched_from_data = False + data_removed_by_switch_representation = False if element_type and (geometry.is_mapped_representation(representation) or geometry.is_type_product(element)): representation = geometry.resolve_mapped_representation(representation) data = geometry.get_representation_data(representation) @@ -155,7 +157,7 @@ def remove_representation( for element in geometry.get_elements_of_type(element_type): obj = ifc.get_object(element) if obj: - has_switched_from_data = True + data_removed_by_switch_representation = True geometry.switch_from_representation(obj, representation) obj = ifc.get_object(element_type) if obj: @@ -164,12 +166,13 @@ def remove_representation( else: data = geometry.get_representation_data(representation) if data and geometry.has_data_users(data): - has_switched_from_data = True + data_removed_by_switch_representation = True geometry.switch_from_representation(obj, representation) ifc.run("geometry.unassign_representation", product=element, representation=representation) ifc.run("geometry.remove_representation", representation=representation) - if data and not has_switched_from_data: + + if data and not data_removed_by_switch_representation: geometry.delete_data(data) diff --git a/src/bonsai/bonsai/core/georeference.py b/src/bonsai/bonsai/core/georeference.py index 419f4218ba..e74b5f577d 100644 --- a/src/bonsai/bonsai/core/georeference.py +++ b/src/bonsai/bonsai/core/georeference.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/ifcgit.py b/src/bonsai/bonsai/core/ifcgit.py index f3a2ead14a..703013e266 100644 --- a/src/bonsai/bonsai/core/ifcgit.py +++ b/src/bonsai/bonsai/core/ifcgit.py @@ -17,14 +17,16 @@ # along with Bonsai. If not, see . from __future__ import annotations + import platform from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: import bpy - import ifcopenshell - import bonsai.tool as tool import git + import ifcopenshell + + import bonsai.tool as tool def create_repo(ifcgit: type[tool.IfcGit], ifc: type[tool.Ifc]) -> None: diff --git a/src/bonsai/bonsai/core/library.py b/src/bonsai/bonsai/core/library.py index 53f5f8ce8c..e6c58bf0f7 100644 --- a/src/bonsai/bonsai/core/library.py +++ b/src/bonsai/bonsai/core/library.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/material.py b/src/bonsai/bonsai/core/material.py index 25a1df3e89..65c5955603 100644 --- a/src/bonsai/bonsai/core/material.py +++ b/src/bonsai/bonsai/core/material.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional, Union if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/misc.py b/src/bonsai/bonsai/core/misc.py index a69ffb2180..297b81eac8 100644 --- a/src/bonsai/bonsai/core/misc.py +++ b/src/bonsai/bonsai/core/misc.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/model.py b/src/bonsai/bonsai/core/model.py index c82de50e0e..6edce4d100 100644 --- a/src/bonsai/bonsai/core/model.py +++ b/src/bonsai/bonsai/core/model.py @@ -17,15 +17,16 @@ # along with Bonsai. If not, see . from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Literal + +from typing import TYPE_CHECKING, Literal, Optional if TYPE_CHECKING: import bpy import ifcopenshell - import bonsai.tool as tool - from mathutils import Vector - from bonsai.bim.module.model.wall import DumbWallJoiner, DumbWallAligner + + import bonsai.tool as tool + from bonsai.bim.module.model.wall import DumbWallAligner, DumbWallJoiner AlignType = Literal["CENTER", "EXTERIOR", "INTERIOR"] OffsetType = Literal["CENTER", "EXTERIOR", "INTERIOR"] diff --git a/src/bonsai/bonsai/core/nest.py b/src/bonsai/bonsai/core/nest.py index 645efa0eb6..4ab491666b 100644 --- a/src/bonsai/bonsai/core/nest.py +++ b/src/bonsai/bonsai/core/nest.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional, Union if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/owner.py b/src/bonsai/bonsai/core/owner.py index f2dd366138..90383e7885 100644 --- a/src/bonsai/bonsai/core/owner.py +++ b/src/bonsai/bonsai/core/owner.py @@ -17,14 +17,16 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional, Union if TYPE_CHECKING: import bpy import ifcopenshell - import bonsai.tool as tool - from ifcopenshell.api.owner.add_address import ADDRESS_TYPE from ifcopenshell.api.owner.add_actor import ACTOR_TYPE + from ifcopenshell.api.owner.add_address import ADDRESS_TYPE + + import bonsai.tool as tool def add_person(ifc: type[tool.Ifc]) -> ifcopenshell.entity_instance: diff --git a/src/bonsai/bonsai/core/patch.py b/src/bonsai/bonsai/core/patch.py index a715f11f74..4acee34494 100644 --- a/src/bonsai/bonsai/core/patch.py +++ b/src/bonsai/bonsai/core/patch.py @@ -18,11 +18,13 @@ from __future__ import annotations + from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/profile.py b/src/bonsai/bonsai/core/profile.py index 46e179229c..e102360062 100644 --- a/src/bonsai/bonsai/core/profile.py +++ b/src/bonsai/bonsai/core/profile.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/project.py b/src/bonsai/bonsai/core/project.py index f699c8bfe9..18dbd3fab2 100644 --- a/src/bonsai/bonsai/core/project.py +++ b/src/bonsai/bonsai/core/project.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/pset.py b/src/bonsai/bonsai/core/pset.py index 6a92f3d400..6af9f1e1ee 100644 --- a/src/bonsai/bonsai/core/pset.py +++ b/src/bonsai/bonsai/core/pset.py @@ -18,11 +18,13 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Union, Any + +from typing import TYPE_CHECKING, Any, Optional, Union if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/qto.py b/src/bonsai/bonsai/core/qto.py index d56130962b..40a866ac33 100644 --- a/src/bonsai/bonsai/core/qto.py +++ b/src/bonsai/bonsai/core/qto.py @@ -17,10 +17,12 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING if TYPE_CHECKING: import bpy + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/resource.py b/src/bonsai/bonsai/core/resource.py index a3423c98db..cab03b7ebc 100644 --- a/src/bonsai/bonsai/core/resource.py +++ b/src/bonsai/bonsai/core/resource.py @@ -19,12 +19,14 @@ # ############################################################################ # from __future__ import annotations -from typing import TYPE_CHECKING, Optional + from collections.abc import Iterable +from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/root.py b/src/bonsai/bonsai/core/root.py index baf13695f1..3a283a6a65 100644 --- a/src/bonsai/bonsai/core/root.py +++ b/src/bonsai/bonsai/core/root.py @@ -17,11 +17,15 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional +import ifcopenshell.util.element + if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool @@ -53,11 +57,32 @@ def copy_class( geometry.copy_data_links(data, copied_entities) geometry.change_object_data(obj, data, is_global=True) geometry.rename_object(data, geometry.get_representation_name(ifc.get_entity(data))) - root.assign_body_styles(new, obj) + # Only assign styles if element doesn't get them from material + if not _has_material_styles(ifc, new): + root.assign_body_styles(new, obj) collector.assign(obj) return new +def _has_material_styles(ifc: type[tool.Ifc], element: ifcopenshell.entity_instance) -> bool: + """Check if element has styles defined through its material. + + Returns True if any constituent material has a style representation, + which means styles should NOT be applied directly to the geometry. + """ + materials = ifcopenshell.util.element.get_materials(element) + + if not materials: + return False + + # Check if any of the constituent materials have styles + for material in materials: + if hasattr(material, "HasRepresentation") and material.HasRepresentation: + return True + + return False + + def assign_class( ifc: type[tool.Ifc], collector: type[tool.Collector], @@ -70,8 +95,7 @@ def assign_class( ifc_representation_class: Optional[str] = None, ) -> Optional[ifcopenshell.entity_instance]: """ - Args: - context: is not optional if `should_add_representation` is True + :param context: is not optional if ``should_add_representation`` is True TODO: Do NOT use should_add_representation. Because it internally calls geometry.add_representation which is 1,000 lines of Blender -> IFC magic. diff --git a/src/bonsai/bonsai/core/search.py b/src/bonsai/bonsai/core/search.py index 5e9d279df9..cc16fb56f6 100644 --- a/src/bonsai/bonsai/core/search.py +++ b/src/bonsai/bonsai/core/search.py @@ -17,10 +17,12 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING if TYPE_CHECKING: import bpy + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/sequence.py b/src/bonsai/bonsai/core/sequence.py index 610c7095b6..d62b4325ad 100644 --- a/src/bonsai/bonsai/core/sequence.py +++ b/src/bonsai/bonsai/core/sequence.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional, Union if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/spatial.py b/src/bonsai/bonsai/core/spatial.py index 16e11e0fa9..c464f84766 100644 --- a/src/bonsai/bonsai/core/spatial.py +++ b/src/bonsai/bonsai/core/spatial.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional, Union, assert_never if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool @@ -50,15 +52,22 @@ def assign_container( collector: type[tool.Collector], spatial: type[tool.Spatial], container: ifcopenshell.entity_instance, - element_obj: Optional[bpy.types.Object] = None, + objs: Optional[bpy.types.Object] = None, ) -> Union[ifcopenshell.entity_instance, None]: - if not spatial.can_contain(container, element_obj): - return - assert element_obj # Type checker. - rel = ifc.run("spatial.assign_container", products=[ifc.get_entity(element_obj)], relating_structure=container) - spatial.disable_editing(element_obj) - collector.assign(element_obj) - return rel + root_elements = set() + all_elements = set() + for obj in objs: + if not (element := ifc.get_entity(obj)): + continue + root_element = spatial.get_root_element(element) + root_elements.add(root_element) + spatial.disable_editing(obj) + all_elements.add(root_element) + all_elements.update(spatial.get_decomposition(root_element)) + if products := [e for e in root_elements if spatial.can_contain(container, root_element)]: + ifc.run("spatial.assign_container", products=products, relating_structure=container) + for element in all_elements: + collector.assign(ifc.get_object(element)) def enable_editing_container(spatial: type[tool.Spatial], obj: bpy.types.Object) -> None: @@ -96,7 +105,7 @@ def copy_to_container( copied_obj = spatial.duplicate_object_and_data(obj) spatial.set_relative_object_matrix(copied_obj, to_container_obj, matrix) result_objs.append(spatial.run_root_copy_class(obj=copied_obj)) - spatial.run_spatial_assign_container(container=to_container, element_obj=copied_obj) + spatial.run_spatial_assign_container(container=to_container, objs=[copied_obj]) spatial.disable_editing(obj) return result_objs diff --git a/src/bonsai/bonsai/core/structural.py b/src/bonsai/bonsai/core/structural.py index 4c31883fe5..c3f787905a 100644 --- a/src/bonsai/bonsai/core/structural.py +++ b/src/bonsai/bonsai/core/structural.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional, Union if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/style.py b/src/bonsai/bonsai/core/style.py index 85bb4200aa..20fd98509c 100644 --- a/src/bonsai/bonsai/core/style.py +++ b/src/bonsai/bonsai/core/style.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations -from typing import TYPE_CHECKING, Optional, Any + +from typing import TYPE_CHECKING, Any, Optional if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/core/system.py b/src/bonsai/bonsai/core/system.py index fcdb95e72d..418c472645 100644 --- a/src/bonsai/bonsai/core/system.py +++ b/src/bonsai/bonsai/core/system.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional, Union if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool @@ -123,9 +125,8 @@ def hide_ports(ifc: type[tool.Ifc], system: type[tool.System], element: ifcopens def add_port(ifc: type[tool.Ifc], system: type[tool.System], element: ifcopenshell.entity_instance) -> None: system.load_ports(element, system.get_ports(element)) - obj = system.create_empty_at_cursor_with_element_orientation(element) - port = system.run_root_assign_class(obj=obj, ifc_class="IfcDistributionPort", should_add_representation=False) - ifc.run("system.assign_port", element=element, port=port) + port = system.create_port_at_cursor(element) + system.load_ports(element, [port]) def remove_port(ifc: type[tool.Ifc], system: type[tool.System], port: ifcopenshell.entity_instance) -> None: @@ -133,8 +134,13 @@ def remove_port(ifc: type[tool.Ifc], system: type[tool.System], port: ifcopenshe ifc.run("root.remove_product", product=port) -def connect_port(ifc: type[tool.Ifc], port1: ifcopenshell.entity_instance, port2: ifcopenshell.entity_instance) -> None: - ifc.run("system.connect_port", port1=port1, port2=port2) +def connect_port( + ifc: type[tool.Ifc], + port1: ifcopenshell.entity_instance, + port2: ifcopenshell.entity_instance, + direction: str = "NOTDEFINED", +) -> None: + ifc.run("system.connect_port", port1=port1, port2=port2, direction=direction) def disconnect_port(ifc: type[tool.Ifc], port: ifcopenshell.entity_instance) -> None: diff --git a/src/bonsai/bonsai/core/tool.py b/src/bonsai/bonsai/core/tool.py index b611dd29a2..a0b6290b12 100644 --- a/src/bonsai/bonsai/core/tool.py +++ b/src/bonsai/bonsai/core/tool.py @@ -287,27 +287,36 @@ class Debug: @interface class Document: - def add_breadcrumb(cls, document): pass - def clear_breadcrumbs(cls): pass def clear_document_tree(cls): pass def disable_editing_document(cls): pass + def disable_object_editing_ui(cls): pass def disable_editing_ui(cls): pass def enable_editing_ui(cls): pass def export_document_attributes(cls): pass - def get_active_breadcrumb(cls): pass def import_document_attributes(cls, document): pass def import_project_documents(cls): pass - def import_references(cls, document): pass - def import_subdocuments(cls, document): pass def is_document_information(cls, document): pass - def remove_latest_breadcrumb(cls): pass def set_active_document(cls, document): pass + def clear_active_document(cls): pass + def clear_document_attributes(cls): pass + def expand_document(cls, document): pass + def get_default_parent_for_information(cls): pass + def get_selected_document_information(cls): pass + def get_document_information_id(cls, document): pass + def set_document_information_id(cls, document, value): pass + def get_external_reference_id(cls, reference): pass + def set_external_reference_id(cls, reference, value): pass + def get_document_references(cls, document): pass + def refresh_document_data(cls): pass + def load_document_objects_into_props(cls, document_id): pass + def update_document_objects(cls, document_id): pass @interface class Drawing: def activate_drawing(cls, camera): pass def add_literal(cls, **attributes): pass + def clear_annotation_relationships(cls, drawing): pass def copy_representation(cls, source, dest): pass def create_annotation_context(cls, target_view, object_type=None): pass def create_annotation_object(cls, drawing, object_type): pass @@ -325,6 +334,11 @@ class Drawing: def disable_editing_sheets(cls): pass def disable_editing_text(cls, obj): pass def does_file_exist(cls, uri): pass + def edit_text_alignment(cls, obj, alignment): pass + def edit_text_font_size(cls, obj, size): pass + def edit_text_literals(cls, obj, literals): pass + def edit_text_symbol(cls, obj, symbol): pass + def edit_text_wrap_length(cls, obj, wrap_length): pass def enable_editing(cls, obj): pass def enable_editing_assigned_product(cls, obj): pass def enable_editing_drawings(cls): pass @@ -342,6 +356,7 @@ class Drawing: def get_annotation_context(cls, target_view, object_type=None): pass def get_annotation_representation(cls, element_type): pass def get_assigned_product(cls, element): pass + def get_assigned_product_workaround(cls, element): pass def get_body_context(cls): pass def get_default_drawing_path(cls, name): pass def get_default_drawing_resource_path(cls, resource): pass @@ -392,10 +407,7 @@ class Drawing: def setup_shading_styles_path(cls, resource_path): pass def show_decorations(cls): pass def sync_object_placement(cls, obj): pass - def synchronise_ifc_and_text_attributes(cls, obj): pass def update_embedded_svg_location(cls, uri, old_location, new_location): pass - def update_text_annotation_properties(cls, obj): pass - def update_text_size_pset(cls, obj): pass @interface @@ -867,8 +879,6 @@ class Sequence: def get_animation_product_frames(cls, work_schedule, settings): pass def get_animation_settings(cls): pass def get_checked_tasks(cls): pass - def get_direct_nested_tasks(cls, task):pass - def get_direct_task_outputs(cls, task): pass def get_finish_date(cls): pass def get_highlighted_task(cls): pass def get_lag_time_attributes(cls): pass @@ -943,15 +953,17 @@ class Spatial: def get_active_container(cls): pass def get_container(cls, element): pass def get_decomposed_elements(cls, container, recursive): pass + def get_decomposition(cls, element): pass def get_object_matrix(cls, obj): pass def get_relative_object_matrix(cls, target_obj, relative_to_obj): pass + def get_root_element(cls, element): pass def get_selected_product_types(cls): pass def get_selected_products(cls): pass def import_spatial_decomposition(cls): pass def import_spatial_element(cls, element, level_index): pass def load_contained_elements(cls): pass def run_root_copy_class(cls, obj): pass - def run_spatial_assign_container(cls, container, element_obj): pass + def run_spatial_assign_container(cls, container, objs): pass def run_spatial_import_spatial_decomposition(cls): pass def select_object(cls, obj): pass def select_products(cls, products, unhide=False): pass @@ -1074,6 +1086,7 @@ class Surveyor: @interface class System: def create_empty_at_cursor_with_element_orientation(cls, element): pass + def create_port_at_cursor(cls, system): pass def delete_element_objects(cls, elements): pass def disable_editing_system(cls): pass def disable_system_editing_ui(cls): pass @@ -1114,16 +1127,15 @@ class Unit: def disable_editing_units(cls): pass def enable_editing_units(cls): pass def export_unit_attributes(cls): pass + def get_currency_name(cls): pass + def get_project_currency_unit(cls): pass def get_scene_unit_name(cls, unit_type): pass - def get_scene_unit_si_prefix(cls, unit_type): pass + def get_scene_unit_si_prefix(cls, name): pass def import_unit_attributes(cls, unit): pass def import_units(cls): pass - def is_scene_unit_metric(cls): pass + def is_si_unit(cls, name): pass def is_unit_class(cls, unit, ifc_class): pass def set_active_unit(cls, unit): pass - def get_project_currency_unit(cls): pass - def get_currency_name(cls): pass - @interface class Voider: diff --git a/src/bonsai/bonsai/core/type.py b/src/bonsai/bonsai/core/type.py index 226f00c461..a203b9ff76 100644 --- a/src/bonsai/bonsai/core/type.py +++ b/src/bonsai/bonsai/core/type.py @@ -17,25 +17,36 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bonsai.core.geometry + from typing import TYPE_CHECKING, Optional +import bonsai.core.geometry + if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool def assign_type( ifc: type[tool.Ifc], + model: type[tool.Model], type_tool: type[tool.Type], element: ifcopenshell.entity_instance, type: ifcopenshell.entity_instance, ) -> None: + usage_attributes = type_tool.record_material_usage_attributes(element) ifc.run("type.assign_type", related_objects=[element], relating_type=type) obj = ifc.get_object(element) - if type_tool.has_material_usage(element): - pass # for now, representation regeneration handled by API listeners + if (usage := model.get_usage_type(type)) and usage_attributes: + type_tool.restore_material_usage_attributes(element, usage_attributes) + if (usage := model.get_usage_type(type)) == "PROFILE": + model.regenerate_profile(obj) + elif usage == "LAYER2": + model.recalculate_walls([obj]) + elif usage == "LAYER3": + model.regenerate_slab(obj) else: type_data = type_tool.get_object_data(ifc.get_object(type)) if type_data: diff --git a/src/bonsai/bonsai/core/unit.py b/src/bonsai/bonsai/core/unit.py index a075c9c5e5..863821e6f5 100644 --- a/src/bonsai/bonsai/core/unit.py +++ b/src/bonsai/bonsai/core/unit.py @@ -18,30 +18,28 @@ from __future__ import annotations + from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool def assign_scene_units(ifc: type[tool.Ifc], unit: type[tool.Unit]) -> None: - if unit.is_scene_unit_metric(): - prefix = unit.get_scene_unit_si_prefix("LENGTHUNIT") - lengthunit = ifc.run("unit.add_si_unit", unit_type="LENGTHUNIT", prefix=prefix) - prefix = unit.get_scene_unit_si_prefix("AREAUNIT") - areaunit = ifc.run("unit.add_si_unit", unit_type="AREAUNIT", prefix=prefix) - prefix = unit.get_scene_unit_si_prefix("VOLUMEUNIT") - volumeunit = ifc.run("unit.add_si_unit", unit_type="VOLUMEUNIT", prefix=prefix) - else: - lengthunit = ifc.run("unit.add_conversion_based_unit", name=unit.get_scene_unit_name("LENGTHUNIT")) - areaunit = ifc.run("unit.add_conversion_based_unit", name=unit.get_scene_unit_name("AREAUNIT")) - volumeunit = ifc.run("unit.add_conversion_based_unit", name=unit.get_scene_unit_name("VOLUMEUNIT")) - - planeangleunit = ifc.run("unit.add_conversion_based_unit", name="degree") - - ifc.run("unit.assign_unit", units=[lengthunit, areaunit, volumeunit, planeangleunit]) + units = [] + for unit_type in ["LENGTHUNIT", "AREAUNIT", "VOLUMEUNIT", "MASSUNIT", "TIMEUNIT"]: + if name := unit.get_scene_unit_name(unit_type): + if unit.is_si_unit(name): + units.append( + ifc.run("unit.add_si_unit", unit_type=unit_type, prefix=unit.get_scene_unit_si_prefix(name)) + ) + else: + units.append(ifc.run("unit.add_conversion_based_unit", name=name)) + if units: + ifc.run("unit.assign_unit", units=units) def assign_unit(ifc: type[tool.Ifc], unit_tool: type[tool.Unit], unit: ifcopenshell.entity_instance) -> None: diff --git a/src/bonsai/bonsai/core/web.py b/src/bonsai/bonsai/core/web.py index 187d479b6b..b0d9222460 100644 --- a/src/bonsai/bonsai/core/web.py +++ b/src/bonsai/bonsai/core/web.py @@ -17,11 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + from typing import TYPE_CHECKING, Optional, Union if TYPE_CHECKING: import bpy import ifcopenshell + import bonsai.tool as tool diff --git a/src/bonsai/bonsai/tool/__init__.py b/src/bonsai/bonsai/tool/__init__.py index 8dae934981..68fbf0e381 100644 --- a/src/bonsai/bonsai/tool/__init__.py +++ b/src/bonsai/bonsai/tool/__init__.py @@ -39,8 +39,7 @@ from bonsai.tool.geometry import Geometry from bonsai.tool.georeference import Georeference from bonsai.tool.group import Group from bonsai.tool.ifc import Ifc -from bonsai.tool.ifcgit import IfcGit -from bonsai.tool.ifcgit import IfcGitRepo +from bonsai.tool.ifcgit import IfcGit, IfcGitRepo from bonsai.tool.layer import Layer from bonsai.tool.library import Library from bonsai.tool.loader import Loader diff --git a/src/bonsai/bonsai/tool/aggregate.py b/src/bonsai/bonsai/tool/aggregate.py index db037c2b02..43b155a5aa 100644 --- a/src/bonsai/bonsai/tool/aggregate.py +++ b/src/bonsai/bonsai/tool/aggregate.py @@ -17,15 +17,21 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Literal, Union + import bpy -import bonsai.core.tool -import bonsai.tool as tool import ifcopenshell.util.element import ifcopenshell.util.representation -from typing import Union, TYPE_CHECKING, Literal + +import bonsai.core.tool +import bonsai.tool as tool if TYPE_CHECKING: - from bonsai.bim.module.aggregate.prop import BIMAggregateProperties, BIMObjectAggregateProperties + from bonsai.bim.module.aggregate.prop import ( + BIMAggregateProperties, + BIMObjectAggregateProperties, + ) class Aggregate(bonsai.core.tool.Aggregate): diff --git a/src/bonsai/bonsai/tool/attribute.py b/src/bonsai/bonsai/tool/attribute.py index 0515edc04c..426283ac9e 100644 --- a/src/bonsai/bonsai/tool/attribute.py +++ b/src/bonsai/bonsai/tool/attribute.py @@ -17,23 +17,29 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy -import bonsai.core.tool -import bonsai.bim.helper as helper -import bonsai.tool as tool -import ifcopenshell + from typing import ( - Any, - Optional, - Union, - Literal, - TypeVar, TYPE_CHECKING, + Any, + Literal, + Optional, + TypeVar, + Union, assert_never, ) +import bpy +import ifcopenshell + +import bonsai.bim.helper as helper +import bonsai.core.tool +import bonsai.tool as tool + if TYPE_CHECKING: - from bonsai.bim.module.attribute.prop import BIMAttributeProperties, BIMExplorerProperties + from bonsai.bim.module.attribute.prop import ( + BIMAttributeProperties, + BIMExplorerProperties, + ) T = TypeVar("T") diff --git a/src/bonsai/bonsai/tool/bcf.py b/src/bonsai/bonsai/tool/bcf.py index b67a5a98db..c98cfeb4e0 100644 --- a/src/bonsai/bonsai/tool/bcf.py +++ b/src/bonsai/bonsai/tool/bcf.py @@ -17,23 +17,23 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bcf.v2.visinfo -import bonsai.core.tool -import bonsai.tool as tool -import bpy -import bcf.v2.model -import bcf.v2.model.visinfo -import bcf.v2.topic -import bcf.v3.model -import bcf.v3.model.visinfo -import bcf.v3.topic +from typing import TYPE_CHECKING, Any, Optional, TypeGuard, TypeVar, Union import bcf.agnostic.model import bcf.agnostic.topic import bcf.agnostic.visinfo +import bcf.v2.model +import bcf.v2.model.visinfo +import bcf.v2.topic +import bcf.v2.visinfo +import bcf.v3.model +import bcf.v3.model.visinfo +import bcf.v3.topic +import bpy -from typing import Any, Union, TypeVar, TypeGuard, Optional, TYPE_CHECKING +import bonsai.core.tool +import bonsai.tool as tool if TYPE_CHECKING: from bonsai.bim.module.bcf.prop import BCFProperties diff --git a/src/bonsai/bonsai/tool/blender.py b/src/bonsai/bonsai/tool/blender.py index 1747ae0b0f..e499f35106 100644 --- a/src/bonsai/bonsai/tool/blender.py +++ b/src/bonsai/bonsai/tool/blender.py @@ -17,53 +17,64 @@ # along with Bonsai. If not, see . from __future__ import annotations -import sys -import bpy -import bmesh + +import contextlib +import importlib import json import os import platform import subprocess -import contextlib +import sys import tempfile import traceback +import types +from collections.abc import Callable, Generator, Iterable, Sequence, Sized +from datetime import datetime +from functools import cache, lru_cache +from pathlib import Path +from typing import ( + TYPE_CHECKING, + Any, + Literal, + NamedTuple, + Optional, + TypeVar, + Union, + assert_never, +) + +import bmesh +import bpy +import ifcopenshell.api +import ifcopenshell.util.element import numpy as np import numpy.typing as npt from ifcopenshell import entity_instance -import ifcopenshell.api -import ifcopenshell.util.element +from mathutils import Matrix, Vector + +import bonsai.bim import bonsai.core.tool import bonsai.tool as tool -import bonsai.bim -import types -import importlib -from datetime import datetime -from mathutils import Vector -from pathlib import Path -from functools import lru_cache, cache from bonsai.bim.ifc import IFC_CONNECTED_TYPE -from typing import ( - Any, - Optional, - Union, - Literal, - TypeVar, - TYPE_CHECKING, - assert_never, -) -from collections.abc import Iterable, Callable, Generator, Sequence, Sized if TYPE_CHECKING: - from sun_position.properties import SunPosProperties import bpy.stub_internal.rna_enums as rna_enums - from bonsai.bim.prop import BIMProperties, BIMObjectProperties, BIMSnapProperties + from sun_position.properties import SunPosProperties + from bonsai.bim.module.attribute.prop import BIMAttributeProperties - from bonsai.bim.module.constraint.prop import BIMConstraintProperties, BIMObjectConstraintProperties + from bonsai.bim.module.constraint.prop import ( + BIMConstraintProperties, + BIMObjectConstraintProperties, + ) from bonsai.bim.module.covetool.prop import CoveToolProperties from bonsai.bim.module.csv.prop import CsvProperties from bonsai.bim.module.diff.prop import DiffProperties from bonsai.bim.module.fm.prop import BIMFMProperties - from bonsai.bim.module.light.prop import BIMSolarProperties, RadianceExporterProperties + from bonsai.bim.module.light.prop import ( + BIMSolarProperties, + RadianceExporterProperties, + ) + from bonsai.bim.prop import BIMObjectProperties, BIMProperties, BIMSnapProperties T = TypeVar("T") @@ -161,11 +172,19 @@ class Blender(bonsai.core.tool.Blender): screen.BIMAreaProperties.add() @classmethod - def is_tab(cls, context: bpy.types.Context, tab: str) -> bool: + def should_show_panel(cls, context: bpy.types.Context, tab: str, panel: str) -> bool: aprops = cls.get_area_props(context) if aprops.path_from_id() == "BIMAreaProperties" and context.area.spaces.active.search_filter: return True - return aprops.tab == tab + if (is_bookmark_tab := aprops.tab == "BOOKMARK") or aprops.tab == tab: + bprops = tool.Blender.get_bim_props() + if not (panel_visibility := bprops.panel_visibilities.get(panel)): + return not is_bookmark_tab + if is_bookmark_tab: + if panel_visibility.is_bookmarked: + return True + elif panel_visibility.is_visible: + return True @classmethod def is_default_scene(cls) -> bool: @@ -382,6 +401,14 @@ class Blender(bonsai.core.tool.Blender): assert isinstance(space, bpy.types.SpaceNodeEditor) if space.tree_type == "ShaderNodeTree": context_override = {"area": area, "space": space, "screen": screen} + + # Add window if screen differs from current context + context = bpy.context + if context and context.screen != screen: + window = next((w for w in context.window_manager.windows if w.screen == screen), None) + if window: + context_override["window"] = window + return context_override @classmethod @@ -692,13 +719,18 @@ class Blender(bonsai.core.tool.Blender): if active_object: active_object.select_set(True) + class ObjectsSelectionArgs(NamedTuple): + context: bpy.types.Context + active_object: bpy.types.Object | None + selected_objects: list[bpy.types.Object] + @classmethod def validate_object_selection( cls, context: bpy.types.Context, active_object: Union[bpy.types.Object, None] = None, selected_objects: Sequence[bpy.types.Object] = (), - ) -> tuple[bpy.types.Context, Union[bpy.types.Object, None], list[bpy.types.Object]]: + ) -> ObjectsSelectionArgs: """Validate object selection and return only valid objects. Can be used before ``set_objects_selection`` to avoid errors @@ -708,12 +740,15 @@ class Blender(bonsai.core.tool.Blender): assert context.view_layer view_layer_objects = set(context.view_layer.objects) - new_selected_objects = [o for o in selected_objects if cls.is_valid_data_block(o) and o in view_layer_objects] + def is_selectable(obj: bpy.types.Object) -> bool: + return cls.is_valid_data_block(obj) and obj in view_layer_objects - if active_object and not cls.is_valid_data_block(active_object): + new_selected_objects = [o for o in selected_objects if is_selectable(o)] + + if active_object and not is_selectable(active_object): active_object = None - return context, active_object, new_selected_objects + return cls.ObjectsSelectionArgs(context, active_object, new_selected_objects) @classmethod def clear_objects_selection(cls) -> None: @@ -731,7 +766,11 @@ class Blender(bonsai.core.tool.Blender): # Yes, accessing items through annotations is a bit hacky # but it's the only way to get the dynamic enum items # besides providing them to get_enum_safe explicitly. - prop_keywords = props.__annotations__[prop_name].keywords + try: + annotations = props.__annotations__ + except AttributeError: + annotations = type(props).__annotations__ + prop_keywords = annotations[prop_name].keywords items = prop_keywords.get("items") if items is None: return None @@ -1065,7 +1104,7 @@ class Blender(bonsai.core.tool.Blender): """Tries to validate the current BIM modifier parameters for the active object Goes into path editing mode if the modifier supports it - Returns True if an action was taken, False otherwise + :return: True if an action was taken, False otherwise """ if cls.is_roof(element): if cls.is_editing_roof_parameters(obj): @@ -1089,7 +1128,7 @@ class Blender(bonsai.core.tool.Blender): def try_canceling_editing_modifier_parameters_or_path(cls, obj: bpy.types.Object) -> bool: """Tries to cancel the current BIM modifier parameters or path edition for the active object - Returns True if an action was taken, False otherwise + :return: True if an action was taken, False otherwise """ if cls.is_editing_railing_path(obj): bpy.ops.bim.cancel_editing_railing_path() @@ -1203,7 +1242,8 @@ class Blender(bonsai.core.tool.Blender): @classmethod def constrain_children_to_parent(cls, parent_element: ifcopenshell.entity_instance) -> None: - parent_obj = tool.Ifc.get_object(parent_element) + if not (parent_obj := tool.Ifc.get_object(parent_element)): + return # Filtered out, arrayed void, etc assert isinstance(parent_obj, bpy.types.Object) children = cls.get_all_children_objects(parent_element) for child in children: @@ -1328,11 +1368,11 @@ class Blender(bonsai.core.tool.Blender): @classmethod def register_toolbar(cls): - import bonsai.bim.module.model.workspace as ws_model + import bonsai.bim.module.covering.workspace as ws_covering import bonsai.bim.module.drawing.workspace as ws_drawing + import bonsai.bim.module.model.workspace as ws_model import bonsai.bim.module.spatial.workspace as ws_spatial import bonsai.bim.module.structural.workspace as ws_structural - import bonsai.bim.module.covering.workspace as ws_covering if bpy.app.background: return @@ -1360,11 +1400,11 @@ class Blender(bonsai.core.tool.Blender): @classmethod def unregister_toolbar(cls): - import bonsai.bim.module.model.workspace as ws_model + import bonsai.bim.module.covering.workspace as ws_covering import bonsai.bim.module.drawing.workspace as ws_drawing + import bonsai.bim.module.model.workspace as ws_model import bonsai.bim.module.spatial.workspace as ws_spatial import bonsai.bim.module.structural.workspace as ws_structural - import bonsai.bim.module.covering.workspace as ws_covering if bpy.app.background: return @@ -1449,7 +1489,10 @@ class Blender(bonsai.core.tool.Blender): def override_scene_panel(cls, original_panel: bpy.types.Panel) -> None: @classmethod def poll_check_blender_tab(cls, context): - return tool.Blender.is_tab(context, "BLENDER") + aprops = tool.Blender.get_area_props(context) + if aprops.path_from_id() == "BIMAreaProperties" and context.area.spaces.active.search_filter: + return True + return aprops.tab == "BLENDER" polls = bonsai.bim.original_scene_panels_polls @@ -1672,12 +1715,10 @@ class Blender(bonsai.core.tool.Blender): - "user_interface.wcol_menu.text" (Menu Text) - "user_interface.wcol_menu.text_sel" (Menu Text Selected) - Args: - color_path (str, optional): The attribute path relative to bpy.context.preferences.themes[0]. - threshold (float, optional): The RGB sum threshold for determining dark mode. Default is 1.671. + :param color_path: The attribute path relative to bpy.context.preferences.themes[0]. + :param threshold: The RGB sum threshold for determining dark mode. Default is 1.671. - Returns: - str: 'dm' (dark mode) if the RGB sum is > threshold, otherwise 'lm' (light mode). + :return: 'dm' (dark mode) if the RGB sum is > threshold, otherwise 'lm' (light mode). """ full_path = f"bpy.context.preferences.themes[0].{color_path}" @@ -1741,8 +1782,8 @@ class Blender(bonsai.core.tool.Blender): @classmethod @lru_cache def get_list_of_tools(cls) -> tuple[str, ...]: - from bonsai.bim.module.model.workspace import BimTool from bonsai.bim.module.drawing.workspace import AnnotationTool + from bonsai.bim.module.model.workspace import BimTool return tuple(cls.bl_idname for cls in (BimTool.__subclasses__() + [BimTool, AnnotationTool])) @@ -2095,3 +2136,32 @@ class Blender(bonsai.core.tool.Blender): if cls.BLENDER_5: return "BLENDER_EEVEE" return "BLENDER_EEVEE_NEXT" + + @classmethod + def np_frombuffer_legacy(cls, bytedata: bytes, n: int) -> npt.NDArray[np.float32]: + """ + Read ``n`` float values from ``bytedata``, regardless if they are stored as ``float32`` or ``float64``. + Needed to support .blend files saved in Blender <5.0.0. + Also allows to work with .blend files from 5.0.0+ in older Blender versions. + + In ``bpy.app.version >= 5.0.0`` ``mathutils`` transitioned to use ``float32`` buffer type, + while in previous version they were using ``float64``. + In some cases we are storing raw bytes (e.g. object transforms cheksums), so old .blend files + might still have ``float64`` data stored. + + See https://projects.blender.org/blender/blender/issues/149283 + """ + if len(bytedata) == (n * 2): + return np.frombuffer(bytedata, dtype=np.float64).astype(np.float32) + return np.frombuffer(bytedata, dtype=np.float32) + + @classmethod + def np_array_legacy(cls, mathutils_type: Union[Vector, Matrix]) -> npt.NDArray[np.float32]: + """ + Converts ``mathutils`` types to ``np.float32`` arrays, regardless of Blender version. + + See ``np_frombuffer_legacy`` for more details. + """ + if cls.BLENDER_5: + return np.array(mathutils_type) + return np.array(mathutils_type, dtype=np.float32) diff --git a/src/bonsai/bonsai/tool/boundary.py b/src/bonsai/bonsai/tool/boundary.py index d09ebcbee1..16662919aa 100644 --- a/src/bonsai/bonsai/tool/boundary.py +++ b/src/bonsai/bonsai/tool/boundary.py @@ -17,16 +17,22 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from collections.abc import Sequence +from typing import TYPE_CHECKING, Any + import bpy import mathutils +from mathutils import Matrix, Vector + import bonsai.core.tool import bonsai.tool as tool -from mathutils import Matrix, Vector -from typing import Any, TYPE_CHECKING -from collections.abc import Sequence if TYPE_CHECKING: - from bonsai.bim.module.boundary.prop import BIMBoundaryProperties, BIMObjectBoundaryProperties + from bonsai.bim.module.boundary.prop import ( + BIMBoundaryProperties, + BIMObjectBoundaryProperties, + ) class Boundary(bonsai.core.tool.Boundary): diff --git a/src/bonsai/bonsai/tool/brick.py b/src/bonsai/bonsai/tool/brick.py index 9da53f4413..42b80cc288 100644 --- a/src/bonsai/bonsai/tool/brick.py +++ b/src/bonsai/bonsai/tool/brick.py @@ -17,28 +17,32 @@ # along with Bonsai. If not, see . from __future__ import annotations -import os -import bpy + import datetime +import os +from collections.abc import Generator +from contextlib import contextmanager +from pathlib import Path +from typing import TYPE_CHECKING, Any, Union + +import bpy import ifcopenshell import ifcopenshell.guid import ifcopenshell.util.brick import ifcopenshell.util.element import ifcopenshell.util.system + import bonsai.core.brick import bonsai.core.tool import bonsai.tool as tool -from pathlib import Path -from contextlib import contextmanager -from typing import Any, Union, TYPE_CHECKING -from collections.abc import Generator try: + import urllib.parse + import brickschema import brickschema.persistent from brickschema.namespaces import REF, A - import urllib.parse - from rdflib import Literal, URIRef, Namespace, BNode + from rdflib import BNode, Literal, Namespace, URIRef from rdflib.namespace import RDF except: # See #1860 @@ -46,7 +50,8 @@ except: if TYPE_CHECKING: import brickschema - from rdflib import Literal, URIRef, Namespace, BNode + from rdflib import BNode, Literal, Namespace, URIRef + from bonsai.bim.module.brick.prop import BIMBrickProperties # silence known rdflib_sqlalchemy TypeError warning diff --git a/src/bonsai/bonsai/tool/bsdd.py b/src/bonsai/bonsai/tool/bsdd.py index 337cf626c9..dc42708867 100644 --- a/src/bonsai/bonsai/tool/bsdd.py +++ b/src/bonsai/bonsai/tool/bsdd.py @@ -17,16 +17,19 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bonsai.core.tool -import bonsai.tool as tool -import bpy + import json +from typing import TYPE_CHECKING, Any, TypedDict, Union + +import bpy import bsdd import ifcopenshell.api.library -import ifcopenshell.util.type -import ifcopenshell.util.element import ifcopenshell.util.classification -from typing import Any, Union, TYPE_CHECKING, TypedDict +import ifcopenshell.util.element +import ifcopenshell.util.type + +import bonsai.core.tool +import bonsai.tool as tool if TYPE_CHECKING: from bonsai.bim.module.bsdd.prop import BIMBSDDProperties, BSDDDictionary diff --git a/src/bonsai/bonsai/tool/cad.py b/src/bonsai/bonsai/tool/cad.py index a83598a63f..4e3d8e1499 100644 --- a/src/bonsai/bonsai/tool/cad.py +++ b/src/bonsai/bonsai/tool/cad.py @@ -29,15 +29,18 @@ # - You can now derive the center from an arc without generating geometry from __future__ import annotations -import sys -import bpy -import math -import bmesh -import mathutils.geometry -from mathutils import Vector, Matrix, geometry + import itertools +import math +import sys from typing import TYPE_CHECKING, Union +import bmesh +import bpy +import mathutils.geometry +import numpy as np +from mathutils import Matrix, Vector, geometry + if TYPE_CHECKING: from bonsai.bim.module.cad.prop import BIMCadProperties @@ -188,6 +191,33 @@ class Cad: """ return geometry.intersect_line_plane(v1, v2, plane_co, plane_no) + def intersect_edge_plane_v2(v1, v2, plane_co, plane_no, eps=1e-9): + """ + Numpy version of intersect_edge_plane + > takes an edges as two vector, and a plane as origin point and normal + < return the intersection point or None + """ + + # References: https://rosettacode.org/wiki/Find_the_intersection_of_a_line_with_a_plane#Python, + # https://stackoverflow.com/a/18543221 + + p0 = np.array((v1.x, v1.y, v1.z), dtype=np.float64) + p1 = np.array((v2.x, v2.y, v2.z), dtype=np.float64) + pc = np.array((plane_co.x, plane_co.y, plane_co.z), dtype=np.float64) + n = np.array((plane_no.x, plane_no.y, plane_no.z), dtype=np.float64) + + u = p1 - p0 + dot = np.dot(u, n) + if abs(dot) < eps: + # Line is parallel to plane (no intersection or lies in plane) + return None + + w = pc - p0 + fac = np.dot(w, n) / dot + p = p0 + fac * u + + return Vector(p) + @classmethod def intersect_edges( cls, edge1: tuple[Vector, Vector], edge2: tuple[Vector, Vector] @@ -215,47 +245,50 @@ class Cad: def intersect_edges_v2(cls, edge1, edge2): """ Calculate the closest points on two line segments. - Note: This function doesn't use intersect_line_line + Note: This function doesn't use intersect_line_line and uses Numpy for calculations > edge1: tuple of two vectors (v1, v2) representing the first segment > edge2: tuple of two vectors (v3, v4) representing the second segment < returns: tuple of two vectors (C1, C2) or (None, None) if lines are parallel """ - # This function seems to work better then intersect_line_line + # This function seems to work better than intersect_line_line # in orthogonal view # https://en.wikipedia.org/wiki/Skew_lines#Nearest_points is_2d = False # Starting and ending points - P1, P1_end = edge1 - P2, P2_end = edge2 - if len(P1) == 2: + p1, p1_end = edge1 + p2, p2_end = edge2 + if len(p1) == 2: is_2d = True - P1, P1_end = P1.to_3d(), P1_end.to_3d() - P2, P2_end = P2.to_3d(), P2_end.to_3d() + p1, p1_end = p1.to_3d(), p1_end.to_3d() + p2, p2_end = p2.to_3d(), p2_end.to_3d() + p1 = np.array((p1.x, p1.y, p1.z), dtype=np.float64) + p1_end = np.array((p1_end.x, p1_end.y, p1_end.z), dtype=np.float64) + p2 = np.array((p2.x, p2.y, p2.z), dtype=np.float64) + p2_end = np.array((p2_end.x, p2_end.y, p2_end.z), dtype=np.float64) # Directions - d1 = (P1_end - P1).normalized() - d2 = (P2_end - P2).normalized() + d1 = p1_end - p1 + d2 = p2_end - p2 + d1 /= np.linalg.norm(d1) or 1 # equivalent of Vector.normalized() or Vector / Vector.length + d2 /= np.linalg.norm(d2) or 1 - n = d1.cross(d2) + n = np.cross(d1, d2) # if n is zero, lines are parallel - if abs(n.length) < 1e-6: + if abs(np.linalg.norm(n)) < 1e-6: return None, None - n2 = d2.cross(n) - - C1 = P1 + ((P2 - P1).dot(n2) / (d1.dot(n2))) * d1 - - n1 = d1.cross(n) - - C2 = P2 + ((P1 - P2).dot(n1) / (d2.dot(n1))) * d2 + n2 = np.cross(d2, n) + c1 = p1 + (np.dot((p2 - p1), n2) / (np.dot(d1, n2))) * d1 + n1 = np.cross(d1, n) + c2 = p2 + (np.dot((p1 - p2), n1) / (np.dot(d2, n1))) * d2 if is_2d: - return C1.to_2d(), C2.to_2d() + return Vector(c1[:2].copy()), Vector(c2[:2].copy()) else: - return C1, C2 + return Vector(c1), Vector(c2) @classmethod def get_intersection(cls, edge1, edge2): @@ -807,3 +840,160 @@ class Cad: v1 = v2 return new_verts + + @classmethod + def region_2d_to_vector_3d_np(cls, region: bpy.types.Region, rv3d: bpy.types.RegionView3d, coord: Vector) -> Vector: + """ + Numpy version of view3d_utils.region_2d_to_vector_3d + Return a direction vector from the viewport at the specific 2d region + coordinate. + + > region: region of the 3D viewport, typically bpy.context.region. + > rv3d: 3D region data, typically bpy.context.space_data.region_3d. + > coord: 2d coordinates relative to the region: + (event.mouse_region_x, event.mouse_region_y) for example. + < returns a normalized 3d vector. + """ + view_m = np.array(rv3d.view_matrix) + window_m = np.array(rv3d.window_matrix) + viewinv = np.linalg.inv(view_m) + + if rv3d.is_perspective: + # For better precision with large numbers, avoid using rv3d.perspective_matrix. See https://github.com/IfcOpenShell/IfcOpenShell/issues/7046 + # Calculate it with view_matrix and window_matrix as numpy arrays. + pers_m = window_m @ view_m + persinv = np.linalg.inv(pers_m) + + out = np.array( + [(2.0 * coord[0] / region.width) - 1.0, (2.0 * coord[1] / region.height) - 1.0, -0.5, 1.0], + dtype=np.float64, + ) + + w = out[:3].dot(persinv[3, :3]) + persinv[3, 3] + + viewinv_translation = viewinv[:3, 3] + view_vector = (persinv.dot(out)[:3] / w) - viewinv_translation + else: + view_vector = -viewinv[:3, 2].copy() # -Z column + + view_vector /= np.linalg.norm(view_vector) or 1 # equivalent to Vector.normalized() + return Vector(view_vector) + + @classmethod + def region_2d_to_location_3d_np( + cls, region: bpy.types.Region, rv3d: bpy.types.RegionView3d, coord: Vector, depth_location: Vector + ) -> Vector: + """ + Numpy version of view3d_utils.region_2d_to_location_3d + Return a 3d location from the region relative 2d coords, aligned with + *depth_location*. + + > region: region of the 3D viewport, typically bpy.context.region. + > rv3d: 3D region data, typically bpy.context.space_data.region_3d. + > coord: 2d coordinates relative to the region: + (event.mouse_region_x, event.mouse_region_y) for example. + < returns a normalized 3d vector. + """ + coord_vec = cls.region_2d_to_vector_3d_np(region, rv3d, coord) + depth_location = np.array([depth_location[0], depth_location[1], depth_location[2]], dtype=np.float64) + + origin_start = cls.region_2d_to_origin_3d_np(region, rv3d, coord) + origin_end = origin_start + coord_vec + + if rv3d.is_perspective: + viewinv = np.linalg.inv(rv3d.view_matrix) + view_vec = viewinv[:3, 2].copy() + return cls.intersect_edge_plane_v2( + Vector(origin_start), Vector(origin_end), Vector(depth_location), Vector(view_vec) + ) + else: + return cls.point_on_edge( + Vector(depth_location), + (Vector(origin_start), Vector(origin_end)), + ) + + @classmethod + def region_2d_to_origin_3d_np( + cls, region: bpy.types.Region, rv3d: bpy.types.RegionView3d, coord: Vector, *, clamp: float = None + ) -> Vector: + """ + Numpy version of view3d_utils.region_2d_to_origin_3d + Return the 3d view origin from the region relative 2d coords. + + .. note:: + + Orthographic views have a less obvious origin, + the far clip is used to define the viewport near/far extents. + Since far clip can be a very large value, + the result may give with numeric precision issues. + + To avoid this problem, you can optionally clamp the far clip to a + smaller value based on the data you're operating on. + + + > region: region of the 3D viewport, typically bpy.context.region. + > rv3d: 3D region data, typically bpy.context.space_data.region_3d. + > coord: 2d coordinates relative to the region: + (event.mouse_region_x, event.mouse_region_y) for example. + > clamp: clamp: Clamp the maximum far-clip value used. + (negative value will move the offset away from the view_location) + < returns the origin of the viewpoint in 3d space. + """ + + view_m = np.array(rv3d.view_matrix) + window_m = np.array(rv3d.window_matrix) + viewinv = np.linalg.inv(view_m) + + if rv3d.is_perspective: + origin_start = viewinv[:3, 3].copy() + else: + pers_m = window_m @ view_m # See https://github.com/IfcOpenShell/IfcOpenShell/issues/7046 + persinv = np.linalg.inv(pers_m) + + dx = (2.0 * coord[0] / region.width) - 1.0 + dy = (2.0 * coord[1] / region.height) - 1.0 + + origin_start = (persinv[:3, 0] * dx) + (persinv[:3, 1] * dy) + persinv[:3, 3] + + if clamp != 0.0: + if rv3d.view_perspective != "CAMERA": + origin_offset = persinv[:3, 2].copy() # column 2 + if clamp is not None: + c = float(clamp) + if c < 0.0: + origin_offset = -origin_offset + c = -c + length = np.linalg.norm(origin_offset) + if length > c and length > 0.0: + origin_offset = (origin_offset / length) * c + origin_start = origin_start - origin_offset + + return Vector(origin_start) + + @classmethod + def location_3d_to_region_2d_np( + cls, region: bpy.types.Region, rv3d: bpy.types.RegionView3d, coord: Vector, *, default=None + ) -> Vector: + """ + Numpy version of view3d_utils.location_3d_to_region_2d + Return the *region* relative 2d location of a 3d position. + + > region: region of the 3D viewport, typically bpy.context.region. + > rv3d: 3D region data, typically bpy.context.space_data.region_3d. + > coord: 2d coordinates relative to the region: + (event.mouse_region_x, event.mouse_region_y) for example. + < returns a 2d location. + """ + pt = np.array((coord[0], coord[1], coord[2], 1.0), dtype=np.float64) + view_m = np.array(rv3d.view_matrix) + window_m = np.array(rv3d.window_matrix) + pers_m = window_m @ view_m + prj = pers_m.dot(pt) # 4-vector + w = prj[3] + if w > 0.0: + width_half = region.width / 2.0 + height_half = region.height / 2.0 + x = width_half + width_half * (prj[0] / w) + y = height_half + height_half * (prj[1] / w) + return Vector((float(x), float(y))) + return default diff --git a/src/bonsai/bonsai/tool/clash.py b/src/bonsai/bonsai/tool/clash.py index 17582540e4..7c9961646c 100644 --- a/src/bonsai/bonsai/tool/clash.py +++ b/src/bonsai/bonsai/tool/clash.py @@ -17,17 +17,20 @@ # along with Bonsai. If not, see . from __future__ import annotations -import os -import bpy + import json -import ifcopenshell -import bonsai.core.tool -import bonsai.tool as tool +import os from contextlib import contextmanager -from mathutils import Vector +from typing import TYPE_CHECKING, Literal, Union, get_args + +import bpy +import ifcopenshell from ifcclash import ifcclash from ifcclash.ifcclash import ClashSource -from typing import TYPE_CHECKING, Union, Literal, get_args +from mathutils import Vector + +import bonsai.core.tool +import bonsai.tool as tool if TYPE_CHECKING: from bonsai.bim.module.clash.prop import BIMClashProperties diff --git a/src/bonsai/bonsai/tool/classification.py b/src/bonsai/bonsai/tool/classification.py index 3535e0a12f..7b2ebb073e 100644 --- a/src/bonsai/bonsai/tool/classification.py +++ b/src/bonsai/bonsai/tool/classification.py @@ -17,15 +17,21 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Union, assert_never + import bpy import ifcopenshell.api import ifcopenshell.util.classification + import bonsai.core.tool import bonsai.tool as tool -from typing import Union, assert_never, TYPE_CHECKING if TYPE_CHECKING: - from bonsai.bim.module.classification.prop import BIMClassificationReferenceProperties, BIMClassificationProperties + from bonsai.bim.module.classification.prop import ( + BIMClassificationProperties, + BIMClassificationReferenceProperties, + ) class Classification(bonsai.core.tool.Classification): diff --git a/src/bonsai/bonsai/tool/collector.py b/src/bonsai/bonsai/tool/collector.py index 65d5ae49bd..74a55d7dc1 100644 --- a/src/bonsai/bonsai/tool/collector.py +++ b/src/bonsai/bonsai/tool/collector.py @@ -16,11 +16,13 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import Union + import bpy +import ifcopenshell.util.element + import bonsai.core.tool import bonsai.tool as tool -import ifcopenshell.util.element -from typing import Union class Collector(bonsai.core.tool.Collector): diff --git a/src/bonsai/bonsai/tool/context.py b/src/bonsai/bonsai/tool/context.py index c1582cd37f..50223a6320 100644 --- a/src/bonsai/bonsai/tool/context.py +++ b/src/bonsai/bonsai/tool/context.py @@ -17,16 +17,19 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Any, Union + import bpy -import bonsai.bim.helper -import bonsai.tool as tool -import bonsai.core.tool import ifcopenshell -from typing import Any, Union, TYPE_CHECKING + +import bonsai.bim.helper +import bonsai.core.tool +import bonsai.tool as tool if TYPE_CHECKING: - from bonsai.bim.prop import Attribute from bonsai.bim.module.context.prop import BIMContextProperties + from bonsai.bim.prop import Attribute class Context(bonsai.core.tool.Context): diff --git a/src/bonsai/bonsai/tool/cost.py b/src/bonsai/bonsai/tool/cost.py index d1ee2a841c..663b16040e 100644 --- a/src/bonsai/bonsai/tool/cost.py +++ b/src/bonsai/bonsai/tool/cost.py @@ -17,26 +17,30 @@ # along with Bonsai. If not, see . from __future__ import annotations + +import json +from collections.abc import Generator +from pathlib import Path +from typing import TYPE_CHECKING, Any, Literal, Optional, Union, assert_never + +import aud import bpy -import bonsai.core.tool -import bonsai.tool as tool import ifcopenshell.api import ifcopenshell.api.cost import ifcopenshell.api.document import ifcopenshell.api.nest -import ifcopenshell.util.element -import ifcopenshell.util.date import ifcopenshell.util.cost +import ifcopenshell.util.date +import ifcopenshell.util.element import ifcopenshell.util.unit + import bonsai.bim.helper -import json -from pathlib import Path -from typing import Optional, Any, Union, Literal, TYPE_CHECKING, assert_never -from collections.abc import Generator +import bonsai.core.tool +import bonsai.tool as tool if TYPE_CHECKING: - from bonsai.bim.prop import Attribute from bonsai.bim.module.cost.prop import BIMCostProperties, CostItemQuantity + from bonsai.bim.prop import Attribute class Cost(bonsai.core.tool.Cost): @@ -140,25 +144,18 @@ class Cost(bonsai.core.tool.Cost): @classmethod def play_sound(cls) -> None: - if tool.Blender.get_addon_preferences().should_play_chaching_sound: + # Save ears for those running the tests in background mode. + if tool.Blender.get_addon_preferences().should_play_chaching_sound and not bpy.app.background: cls.play_chaching_sound() # lol @classmethod def play_chaching_sound(cls) -> None: # TODO: make pitch higher as costs rise - try: - import aud - - device = aud.Device() - # chaching.mp3 is by Lucish_ CC-BY-3.0 https://freesound.org/people/Lucish_/sounds/554841/ - sound = aud.Sound(tool.Blender.get_data_dir_path(filename="chaching.mp3").__str__()) - handle = device.play(sound) - sound_buffered = aud.Sound.buffer(sound) - handle_buffered = device.play(sound_buffered) - handle.stop() - handle_buffered.stop() - except: - pass # ah well + device = aud.Device() + # chaching.mp3 is by Lucish_ CC-BY-3.0 https://freesound.org/people/Lucish_/sounds/554841/ + filepath = tool.Blender.get_data_dir_path("chaching.mp3").__str__() + sound = aud.Sound(filepath) + device.play(sound) @classmethod def load_cost_schedule_tree(cls) -> None: @@ -581,9 +578,10 @@ class Cost(bonsai.core.tool.Cost): ) -> ifcopenshell.entity_instance: if not file_path: return - from ifc5d.csv2ifc import Csv2Ifc import time + from ifc5d.csv2ifc import Csv2Ifc + start = time.time() resolved_path = tool.Ifc.resolve_uri(file_path) @@ -804,8 +802,8 @@ class Cost(bonsai.core.tool.Cost): format: Literal["CSV", "ODS", "XLSX"], cost_schedule: Optional[ifcopenshell.entity_instance] = None, ) -> Union[str, None]: - import subprocess import os + import subprocess import sys if dirpath: diff --git a/src/bonsai/bonsai/tool/covering.py b/src/bonsai/bonsai/tool/covering.py index c83a6f3e09..018a39eb46 100644 --- a/src/bonsai/bonsai/tool/covering.py +++ b/src/bonsai/bonsai/tool/covering.py @@ -17,12 +17,15 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING + import bpy import ifcopenshell import ifcopenshell.util.element + import bonsai.core.tool import bonsai.tool as tool -from typing import TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.covering.prop import BIMCoveringProperties diff --git a/src/bonsai/bonsai/tool/debug.py b/src/bonsai/bonsai/tool/debug.py index 35e877e734..ccd30ddd74 100644 --- a/src/bonsai/bonsai/tool/debug.py +++ b/src/bonsai/bonsai/tool/debug.py @@ -17,25 +17,28 @@ # along with Bonsai. If not, see . from __future__ import annotations + +import json import os import re -import json +from collections import defaultdict +from collections.abc import Iterable +from typing import TYPE_CHECKING, Literal, Union, assert_never + import bmesh import bpy -import ifcopenshell.ifcopenshell_wrapper as W import ifcopenshell.api.material import ifcopenshell.api.owner import ifcopenshell.express +import ifcopenshell.ifcopenshell_wrapper as W import ifcopenshell.util.element import ifcopenshell.util.schema +from mathutils import Vector + import bonsai.core.style import bonsai.core.tool import bonsai.tool as tool from bonsai.bim.ifc import IfcStore -from mathutils import Vector -from collections import defaultdict -from typing import Literal, TYPE_CHECKING, assert_never, Union -from collections.abc import Iterable if TYPE_CHECKING: from bonsai.bim.module.debug.prop import BIMDebugProperties @@ -143,12 +146,11 @@ class Debug(bonsai.core.tool.Debug): Note that Styles UI (or other UI) should be updated manually after using this method. - Args: - object_type: The type of object to merge - by_name_or_identification_only: If True, merge based only on Name attribute (or equivalent identifier). - Strips .XXX suffix patterns (e.g., 'foo.001' matches 'foo', 'foo.002'). - For PERSON, uses Identification. For APPLICATION, uses ApplicationFullName. - For PERSON_AND_ORGANIZATION, uses combination of person and organization identifiers. + :param object_type: The type of object to merge + :param by_name_or_identification_only: If True, merge based only on Name attribute (or equivalent identifier). + Strips .XXX suffix patterns (e.g., 'foo.001' matches 'foo', 'foo.002'). + For PERSON, uses Identification. For APPLICATION, uses ApplicationFullName. + For PERSON_AND_ORGANIZATION, uses combination of person and organization identifiers. """ def normalize_name(name: str) -> str: diff --git a/src/bonsai/bonsai/tool/demo.py b/src/bonsai/bonsai/tool/demo.py index 745fcf914c..98375b3e3b 100644 --- a/src/bonsai/bonsai/tool/demo.py +++ b/src/bonsai/bonsai/tool/demo.py @@ -31,11 +31,13 @@ from __future__ import annotations +from typing import TYPE_CHECKING + import bpy import ifcopenshell + import bonsai.core.tool import bonsai.tool as tool -from typing import TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.demo.prop import BIMDemoProperties diff --git a/src/bonsai/bonsai/tool/document.py b/src/bonsai/bonsai/tool/document.py index 3a2f89aa94..5d0aaf1a8e 100644 --- a/src/bonsai/bonsai/tool/document.py +++ b/src/bonsai/bonsai/tool/document.py @@ -17,12 +17,17 @@ # along with Bonsai. If not, see . from __future__ import annotations + +import json +from typing import TYPE_CHECKING, Any, Union + import bpy import ifcopenshell.util.system +from natsort import natsorted + import bonsai.bim.helper import bonsai.core.tool import bonsai.tool as tool -from typing import Any, Union, TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.document.prop import BIMDocumentProperties @@ -33,17 +38,6 @@ class Document(bonsai.core.tool.Document): def get_document_props(cls) -> BIMDocumentProperties: return bpy.context.scene.BIMDocumentProperties - @classmethod - def add_breadcrumb(cls, document: ifcopenshell.entity_instance) -> None: - props = cls.get_document_props() - new = props.breadcrumbs.add() - new.name = str(document.id()) - - @classmethod - def clear_breadcrumbs(cls) -> None: - props = cls.get_document_props() - props.breadcrumbs.clear() - @classmethod def clear_document_tree(cls) -> None: props = cls.get_document_props() @@ -54,6 +48,11 @@ class Document(bonsai.core.tool.Document): props = cls.get_document_props() props.active_document_id = 0 + @classmethod + def disable_object_editing_ui(cls) -> None: + props = cls.get_document_props() + props.is_object_editing = False + @classmethod def disable_editing_ui(cls) -> None: props = cls.get_document_props() @@ -69,18 +68,15 @@ class Document(bonsai.core.tool.Document): props = cls.get_document_props() return bonsai.bim.helper.export_attributes(props.document_attributes) - @classmethod - def get_active_breadcrumb(cls) -> Union[ifcopenshell.entity_instance, None]: - props = cls.get_document_props() - if len(props.breadcrumbs): - return tool.Ifc.get().by_id(int(props.breadcrumbs[-1].name)) - @classmethod def import_document_attributes(cls, document: ifcopenshell.entity_instance) -> None: props = cls.get_document_props() props.document_attributes.clear() - def callback(attr_name: str, _, data: dict[str, Any]) -> Union[bool, None]: + def callback(attr_name: str, attr_value: Any, data: dict[str, Any]) -> Union[bool, None]: + if attr_name == "Location" and attr_value is None: + data[attr_name] = "" + return True if attr_name != "Name": return None # Proceed normally @@ -100,52 +96,132 @@ class Document(bonsai.core.tool.Document): def import_project_documents(cls) -> None: props = cls.get_document_props() props.documents.clear() - project = tool.Ifc.get().by_type("IfcProject")[0] + file = tool.Ifc.get() + try: + expanded_documents = json.loads(props.json_string) + except (AttributeError, json.JSONDecodeError): + expanded_documents = [] + + project = file.by_type("IfcProject")[0] if file.by_type("IfcProject") else None + if not project: + return + + document_children = {} + + for rel in file.by_type("IfcDocumentInformationRelationship"): + parent_id = rel.RelatingDocument.id() + if parent_id not in document_children: + document_children[parent_id] = [] + + for child in rel.RelatedDocuments: + document_children[parent_id].append(child) + + is_ifc2x3 = file.schema == "IFC2X3" + + if is_ifc2x3: + for ref in file.by_type("IfcDocumentReference"): + if ref.ReferenceToDocument: + parent = ref.ReferenceToDocument[0] + parent_id = parent.id() + if parent_id not in document_children: + document_children[parent_id] = [] + document_children[parent_id].append(ref) + else: + for ref in file.by_type("IfcDocumentReference"): + if ref.ReferencedDocument: + parent = ref.ReferencedDocument + parent_id = parent.id() + if parent_id not in document_children: + document_children[parent_id] = [] + document_children[parent_id].append(ref) + + root_documents = [] for rel in project.HasAssociations or []: if rel.is_a("IfcRelAssociatesDocument") and rel.RelatingDocument.is_a("IfcDocumentInformation"): - element = rel.RelatingDocument - new = props.documents.add() - new.ifc_definition_id = element.id() - new["name"] = element.Name or "Unnamed" - new.is_information = True - new["identification"] = cls.get_document_information_id(element) + is_child = False + for children in document_children.values(): + if rel.RelatingDocument in children: + is_child = True + break + + if not is_child: + root_documents.append(rel.RelatingDocument) + + root = props.documents.add() + root.ifc_definition_id = -project.id() + root.document_type = "PROJECT" + root.name = f"Project Documents ({project.Name or 'Unnamed Project'})" + root.identification = "" + root.location = "" + root.tree_depth = 0 + root.has_children = bool(root_documents) + + root_id = -project.id() + + root.is_expanded = root_id not in expanded_documents + + if root.is_expanded: + root_documents = natsorted( + root_documents, key=lambda doc: (cls.get_document_information_id(doc) or "", doc.Name or "") + ) + + for doc in root_documents: + cls._process_document(doc, props, document_children, expanded_documents, 1) @classmethod - def import_references(cls, document: ifcopenshell.entity_instance) -> None: - props = cls.get_document_props() - is_ifc2x3 = tool.Ifc.get_schema() == "IFC2X3" - references = cls.get_document_references(document) - for element in references: - new = props.documents.add() - new.ifc_definition_id = element.id() - # Use Description + Location instead of Name as IFC has a restriction - # for IfcDocumentReference to have Name only if it has no ReferencedDocument. - name = " - ".join([x for x in [element.Description, element.Location] if x]) - new["name"] = name or "Unnamed" - new["identification"] = cls.get_external_reference_id(element) - new.is_information = False + def _process_document(cls, document, props, document_children, expanded_documents, depth): + new = props.documents.add() + new.ifc_definition_id = document.id() + new.document_type = "INFORMATION" if document.is_a("IfcDocumentInformation") else "REFERENCE" + new.tree_depth = depth - @classmethod - def import_subdocuments(cls, document: ifcopenshell.entity_instance) -> None: - props = cls.get_document_props() - if document.IsPointer: - for element in document.IsPointer[0].RelatedDocuments or []: - new = props.documents.add() - new.ifc_definition_id = element.id() - new["name"] = element.Name or "Unnamed" - new.is_information = True - new["identification"] = cls.get_document_information_id(element) or "*" + new.name = document.Name or "" + new.identification = ( + cls.get_document_information_id(document) + if new.document_type == "INFORMATION" + else cls.get_external_reference_id(document) + ) + new.identification = new.identification or "" + new.description = document.Description or "" + new.location = document.Location or "" + + if new.document_type == "INFORMATION": + new.name = document.Name or "Unnamed" + + elif new.document_type == "REFERENCE": + file = document.file + if file.schema == "IFC2X3": + if document.ReferenceToDocument and not new.name: + new.name = document.ReferenceToDocument[0].Name or "" + else: + if document.ReferencedDocument and not new.name: + new.name = document.ReferencedDocument.Name or "" + + doc_id = document.id() + has_children = doc_id in document_children and bool(document_children[doc_id]) + new.has_children = has_children + new.is_expanded = doc_id in expanded_documents + + if has_children and new.is_expanded: + children = document_children[doc_id] + + info_children = natsorted( + [d for d in children if d.is_a("IfcDocumentInformation")], + key=lambda doc: (cls.get_document_information_id(doc) or "", doc.Name or ""), + ) + + ref_children = natsorted( + [d for d in children if not d.is_a("IfcDocumentInformation")], + key=lambda doc: (cls.get_external_reference_id(doc) or "", doc.Description or doc.Name or ""), + ) + + for child in info_children + ref_children: + cls._process_document(child, props, document_children, expanded_documents, depth + 1) @classmethod def is_document_information(cls, document: ifcopenshell.entity_instance) -> bool: return document.is_a("IfcDocumentInformation") - @classmethod - def remove_latest_breadcrumb(cls) -> None: - props = cls.get_document_props() - if len(props.breadcrumbs): - props.breadcrumbs.remove(len(props.breadcrumbs) - 1) - @classmethod def set_active_document(cls, document: ifcopenshell.entity_instance) -> None: props = cls.get_document_props() @@ -179,3 +255,65 @@ class Document(bonsai.core.tool.Document): if document.file.schema == "IFC2X3": return document.DocumentReferences or () return document.HasDocumentReferences + + @classmethod + def clear_active_document(cls) -> None: + props = cls.get_document_props() + props.active_document_id = 0 + + @classmethod + def clear_document_attributes(cls) -> None: + props = cls.get_document_props() + props.document_attributes.clear() + + @classmethod + def expand_document(cls, document: ifcopenshell.entity_instance) -> None: + props = cls.get_document_props() + try: + expanded_docs = json.loads(props.json_string) + except (AttributeError, json.JSONDecodeError): + expanded_docs = [] + + if document.id() not in expanded_docs: + expanded_docs.append(document.id()) + props.json_string = json.dumps(expanded_docs) + + @classmethod + def get_default_parent_for_information(cls) -> Union[ifcopenshell.entity_instance, None]: + file = tool.Ifc.get() + projects = file.by_type("IfcProject") + return projects[0] if projects else None + + @classmethod + def get_selected_document_information(cls) -> Union[ifcopenshell.entity_instance, None]: + props = cls.get_document_props() + + if props.active_document and props.active_document.document_type == "INFORMATION": + file = tool.Ifc.get() + return file.by_id(props.active_document.ifc_definition_id) + return None + + @classmethod + def refresh_document_data(cls) -> None: + import bonsai.bim.module.document.data as document_data + + document_data.DocumentData.is_loaded = False + document_data.DocumentData.load() + + @classmethod + def load_document_objects_into_props(cls, document_id: int) -> None: + import bonsai.bim.module.document.data as document_data + + document_data.DocumentData.load_document_objects_into_props(document_id) + + @classmethod + def update_document_objects(cls, document_id: Union[int, None] = None) -> None: + cls.refresh_document_data() + + if document_id is None: + props = cls.get_document_props() + if props.active_document and props.active_document.ifc_definition_id > 0: + document_id = props.active_document.ifc_definition_id + + if document_id: + cls.load_document_objects_into_props(document_id) diff --git a/src/bonsai/bonsai/tool/drawing.py b/src/bonsai/bonsai/tool/drawing.py index a53272b408..a7238c75dc 100644 --- a/src/bonsai/bonsai/tool/drawing.py +++ b/src/bonsai/bonsai/tool/drawing.py @@ -17,57 +17,63 @@ # along with Bonsai. If not, see . from __future__ import annotations -import os -import re + import collections import collections.abc -import bpy -import math import json -import lark -import bmesh -import shutil import logging -import shapely +import math +import os import platform -import mathutils +import re +import shutil import subprocess -import numpy as np -import bonsai.core.tool -import bonsai.core.geometry -import bonsai.core.type -import bonsai.tool as tool +from collections.abc import Iterable, Sequence +from fractions import Fraction +from pathlib import Path +from typing import TYPE_CHECKING, Any, Literal, NamedTuple, Optional, Union + +import bmesh +import bpy import ifcopenshell.api import ifcopenshell.api.context -import ifcopenshell.api.drawing import ifcopenshell.api.document +import ifcopenshell.api.drawing +import ifcopenshell.api.geometry import ifcopenshell.api.pset import ifcopenshell.api.root import ifcopenshell.geom -import ifcopenshell.util.representation import ifcopenshell.util.element +import ifcopenshell.util.placement +import ifcopenshell.util.representation import ifcopenshell.util.selector import ifcopenshell.util.shape +import ifcopenshell.util.unit +import lark +import mathutils +import numpy as np +import shapely +from ifcopenshell.util.shape_builder import ShapeBuilder +from lxml import etree +from mathutils import Matrix, Vector +from shapely.ops import unary_union + import bonsai.bim.helper import bonsai.bim.import_ifc +import bonsai.core.geometry import bonsai.core.root -from shapely.ops import unary_union -from lxml import etree -from mathutils import Vector, Matrix -from fractions import Fraction -from typing import Optional, Union, Any, Literal, TYPE_CHECKING, NamedTuple -from collections.abc import Iterable, Sequence -from pathlib import Path -from ifcopenshell.util.shape_builder import ShapeBuilder +import bonsai.core.tool +import bonsai.core.type +import bonsai.tool as tool if TYPE_CHECKING: from bonsai.bim.module.drawing.prop import ( + BIMAnnotationProperties, + BIMAssignedProductProperties, + BIMCameraProperties, + BIMTextProperties, DocProperties, Sheet, - BIMAnnotationProperties, - BIMTextProperties, - BIMCameraProperties, - BIMAssignedProductProperties, ) from bonsai.bim.module.drawing.prop import Drawing as DrawingProperties @@ -220,6 +226,7 @@ class Drawing(bonsai.core.tool.Drawing): def exclude_annotation_from_drawing( cls, element: ifcopenshell.entity_instance, drawing: ifcopenshell.entity_instance ) -> None: + ifc_file = tool.Ifc.get() pset = tool.Pset.get_element_pset(drawing, "EPset_Drawing") if not pset: pset = ifcopenshell.api.pset.add_pset(ifc_file, product=drawing, name="EPset_Drawing") @@ -601,6 +608,25 @@ class Drawing(bonsai.core.tool.Drawing): literals.append(literal_data) return literals + @classmethod + def export_font_size(cls, obj: bpy.types.Object) -> str: + return float(cls.get_text_props(obj).font_size) + + @classmethod + def export_alignment(cls, obj: bpy.types.Object) -> str: + props = cls.get_text_props(obj) + if (alignment := props.align_vertical + "-" + props.align_horizontal) == "middle-middle": + return "center" + return alignment + + @classmethod + def export_wrap_length(cls, obj: bpy.types.Object) -> str: + return cls.get_text_props(obj).newline_at + + @classmethod + def export_symbol(cls, obj: bpy.types.Object) -> str: + return cls.get_text_props(obj).get_symbol() + @classmethod def create_annotation_context( cls, target_view: str, object_type: Optional[str] = None @@ -828,43 +854,12 @@ class Drawing(bonsai.core.tool.Drawing): return props.is_editing_sheets @classmethod - def synchronise_ifc_and_text_attributes(cls, obj: bpy.types.Object) -> None: + def edit_text_literals(cls, obj: bpy.types.Object, literal_attributes: dict) -> None: assert (element := tool.Ifc.get_entity(obj)) assert (rep := cls.get_annotation_representation(element)) - - old_literals = cls.get_text_literal(obj, return_list=True) - assert isinstance(old_literals, list) - literals_attributes = cls.export_text_literal_attributes(obj) - props = cls.get_text_props(obj) - defined_ifc_ids = [l.ifc_definition_id for l in props.literals] - ifc_file = tool.Ifc.get() - - added_literals: list[ifcopenshell.entity_instance] = [] - new_literals: list[ifcopenshell.entity_instance] = [] - for ifc_definition_id, attributes in zip(defined_ifc_ids, literals_attributes): - # making sure all literals from text edit exist in ifc - if ifc_definition_id == 0: - literal = cls.add_literal(**attributes) - added_literals.append(literal) - else: - literal = ifc_file.by_id(ifc_definition_id) - ifcopenshell.api.drawing.edit_text_literal( - ifc_file, - text_literal=literal, - attributes=attributes, - ) - new_literals.append(literal) - - removed_literals = set(old_literals) - set(new_literals) - - # Add new literals and keep the order as defined in text props. - items = [i for i in rep.Items if i not in removed_literals] + added_literals - items.sort(key=lambda x: new_literals.index(x) if x in new_literals else -1) - rep.Items = items - - # Remove from ifc the literals that were removed during the edit. - for literal in removed_literals: - ifcopenshell.util.element.remove_deep2(ifc_file, literal) + for literal in cls.get_text_literal(obj, return_list=True): + ifcopenshell.util.element.remove_deep2(tool.Ifc.get(), literal) + rep.Items = [cls.add_literal(**a) for a in literal_attributes] @classmethod def add_literal(cls, **attributes: str) -> ifcopenshell.entity_instance: @@ -893,6 +888,33 @@ class Drawing(bonsai.core.tool.Drawing): return axis return product + @classmethod + def get_assigned_product_workaround( + cls, element: ifcopenshell.entity_instance + ) -> list[ifcopenshell.entity_instance]: + """Get all products assigned to the element. + + A workaround allowing to unassign accumulated products until we properly resolve #4014. + In theory annotations should have more than one product assigned, + but there's still undefined bug causing that in some cases. + """ + + assigned_products: list[ifcopenshell.entity_instance] = [] + for rel in element.HasAssignments: + if not rel.is_a("IfcRelAssignsToProduct"): + continue + assigned_products.append(rel.RelatingProduct) + + if len(assigned_products) > 1: + print( + f"WARNING. Detected multiple assigned products ({len(assigned_products)}) for annotation '{element}'." + "\nIf you can reproduce this, please report it to Bonsai developers " + "at https://github.com/IfcOpenShell/IfcOpenShell/issues/4014." + "\nAssigned products:\n" + "\n".join([str(p) for p in assigned_products]) + ) + + return assigned_products + @classmethod def import_annotations_in_group(cls, group: ifcopenshell.entity_instance) -> None: elements = set( @@ -1178,8 +1200,6 @@ class Drawing(bonsai.core.tool.Drawing): props.font_size = str(text_data["FontSize"]) props.newline_at = text_data["Newline_At"] props.set_symbol(text_data["Symbol"]) - props.reverse_list = text_data["Reverse_List"] - props.list_separator = text_data["List_Separator"] @classmethod def import_assigned_product(cls, obj: bpy.types.Object) -> None: @@ -1245,7 +1265,7 @@ class Drawing(bonsai.core.tool.Drawing): @classmethod def run_type_assign_type(cls, element: ifcopenshell.entity_instance, relating_type: ifcopenshell.entity_instance): - return bonsai.core.type.assign_type(tool.Ifc, tool.Type, element=element, type=relating_type) + return bonsai.core.type.assign_type(tool.Ifc, tool.Model, tool.Type, element=element, type=relating_type) @classmethod def reload_representation(cls, obj: bpy.types.Object, representation: ifcopenshell.entity_instance): @@ -1276,7 +1296,7 @@ class Drawing(bonsai.core.tool.Drawing): props.should_draw_decorations = True @classmethod - def update_text_size_pset(cls, obj: bpy.types.Object) -> None: + def edit_text_font_size(cls, obj: bpy.types.Object, font_size: float) -> None: """updates pset `EPset_Annotation.Classes` value based on current font size from `obj.BIMTextProperties.font_size` """ @@ -1286,7 +1306,6 @@ class Drawing(bonsai.core.tool.Drawing): element = tool.Ifc.get_entity(obj) assert element # updating text font size in EPset_Annotation.Classes - font_size = float(props.font_size) font_size_str = next((key for key in FONT_SIZES if FONT_SIZES[key] == font_size), None) classes = ifcopenshell.util.element.get_pset(element, "EPset_Annotation", "Classes") assert isinstance(classes, Union[str, None]) @@ -1307,34 +1326,32 @@ class Drawing(bonsai.core.tool.Drawing): pset = tool.Pset.get_element_pset(element, "EPset_Annotation") if not pset: pset = ifcopenshell.api.pset.add_pset(ifc_file, product=element, name="EPset_Annotation") - ifcopenshell.api.pset.edit_pset( - ifc_file, - pset=pset, - properties={"Classes": classes}, - ) + ifcopenshell.api.pset.edit_pset(ifc_file, pset=pset, properties={"Classes": classes}) @classmethod - def update_text_annotation_properties(cls, obj: bpy.types.Object) -> None: - """Update all EPset_Annotation properties from the text props""" - props = cls.get_text_props(obj) + def edit_text_wrap_length(cls, obj: bpy.types.Object, wrap_length: int) -> None: element = tool.Ifc.get_entity(obj) - assert element - ifc_file = tool.Ifc.get() pset = tool.Pset.get_element_pset(element, "EPset_Annotation") if not pset: pset = ifcopenshell.api.pset.add_pset(ifc_file, product=element, name="EPset_Annotation") + ifcopenshell.api.pset.edit_pset(ifc_file, pset=pset, properties={"Newline_At": wrap_length}) - ifcopenshell.api.pset.edit_pset( - ifc_file, - pset=pset, - properties={ - "Newline_At": int(props.newline_at), - "Symbol": props.get_symbol(), - "Reverse_List": props.reverse_list, - "List_Separator": props.list_separator or "", - }, - ) + @classmethod + def edit_text_symbol(cls, obj: bpy.types.Object, symbol: str) -> None: + element = tool.Ifc.get_entity(obj) + ifc_file = tool.Ifc.get() + pset = tool.Pset.get_element_pset(element, "EPset_Annotation") + if not pset: + pset = ifcopenshell.api.pset.add_pset(ifc_file, product=element, name="EPset_Annotation") + ifcopenshell.api.pset.edit_pset(ifc_file, pset=pset, properties={"Symbol": symbol}) + + @classmethod + def edit_text_alignment(cls, obj: bpy.types.Object, alignment: str) -> None: + ifc_literals = cls.get_text_literal(obj, return_list=True) + for ifc_literal in ifc_literals or []: + if ifc_literal.is_a("IfcTextLiteralWithExtent"): + ifc_literal.BoxAlignment = alignment # TODO below this point is highly experimental prototype code with no tests @@ -1594,7 +1611,12 @@ class Drawing(bonsai.core.tool.Drawing): xmin, xmax, ymin, ymax = helper.ortho_view_frame(camera.data)[:4] rl = ifcopenshell.util.placement.get_local_placement(storey.ObjectPlacement)[2][3] - y = (camera.matrix_world.inverted() @ Vector((0.0, 0.0, rl))).y + + # Convert RL from project units (feet) to meters for Blender world space + unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) + rl_meters = rl * unit_scale + + y = (camera.matrix_world.inverted() @ Vector((0.0, 0.0, rl_meters))).y if y < ymin or y > ymax: return @@ -1705,11 +1727,22 @@ class Drawing(bonsai.core.tool.Drawing): im = camera.matrix_world.inverted() v1, v2 = [im @ Vector((m @ np.append(v, 1.0))[:3]) for v in [v1, v2]] + target_view = cls.get_drawing_target_view(drawing) bounds = helper.ortho_view_frame(camera.data) - if not (points := helper.clip_segment(bounds, [v1, v2])): + + if target_view in ("PLAN_VIEW", "REFLECTED_PLAN_VIEW"): + # For plan views, clip to XY bounds and set Z=0 + if not (points := helper.clip_segment(bounds, [v1, v2])): + return + for v in points: + v.z = 0 + elif target_view in ("ELEVATION_VIEW", "SECTION_VIEW"): + # For section/elevation views, elevate the segment vertically + if not (points := helper.elevate_segment(bounds, [v1, v2])): + return + else: return - for v in points: - v.z = 0 + return points @classmethod @@ -1969,9 +2002,18 @@ class Drawing(bonsai.core.tool.Drawing): @classmethod def get_default_annotation_matrix(cls, camera, matrix_world=None): if matrix_world is None: - matrix_world = camera.matrix_world.copy() - annotation_offset = Vector((0, 0, -camera.data.clip_start - 0.05)) - annotation_offset = camera.matrix_world.to_quaternion() @ annotation_offset + # Use normalized camera matrix (without scale) for RCP compatibility + matrix_world = cls.get_camera_matrix(camera) + + # Check if this is an RCP (reflected ceiling plan) by checking for negative scale + camera_scale = camera.matrix_world.to_scale() + is_rcp = camera_scale.x < 0 or camera_scale.y < 0 or camera_scale.z < 0 + + # For RCP, the offset needs to be positive instead of negative + # because the Z axis is flipped 180° in get_camera_matrix + offset_direction = 1 if is_rcp else -1 + annotation_offset = Vector((0, 0, offset_direction * (camera.data.clip_start + 0.05))) + annotation_offset = matrix_world.to_quaternion() @ annotation_offset matrix_world.translation += annotation_offset return matrix_world @@ -2053,28 +2095,21 @@ class Drawing(bonsai.core.tool.Drawing): cls, text: str, product: Optional[ifcopenshell.entity_instance] = None, - reverse_list: bool = False, - list_separator: str = ", ", ) -> str: if not product: return text - if list_separator: - list_separator = list_separator.encode().decode("unicode_escape") - for command in re.findall("``.*?``", text): + for command in re.findall("``.+?``", text): original_command = command - for variable in re.findall("{{.*?}}", command): - value = ifcopenshell.util.selector.get_element_value(product, variable[2:-2]) - value = '"' + str(value).replace('"', '\\"') + '"' - command = command.replace(variable, value) - text = text.replace(original_command, ifcopenshell.util.selector.format(command[2:-2])) + command_content = command[2:-2] + try: + text = text.replace(original_command, ifcopenshell.util.selector.format(command_content, product)) + except Exception: + text = text.replace(original_command, "") for variable in re.findall("{{.*?}}", text): value = ifcopenshell.util.selector.get_element_value(product, variable[2:-2]) if isinstance(value, (list, tuple)): - if reverse_list: - value = list_separator.join(str(v) for v in reversed(value)) - else: - value = list_separator.join(str(v) for v in value) + value = ", ".join(str(v) for v in value) text = text.replace(variable, str(value)) return text @@ -2221,7 +2256,16 @@ class Drawing(bonsai.core.tool.Drawing): pset = ifcopenshell.util.element.get_psets(drawing).get("EPset_Drawing", {}) include = pset.get("Include", None) if include: - elements = ifcopenshell.util.selector.filter_elements(ifc_file, include) + try: + data = json.loads(include) + if isinstance(data, dict) and "filter_structure" in data: + elements = tool.Search.execute_filter_groups_from_json(data, ifc_file) + elif isinstance(data, dict) and "query" in data: + elements = ifcopenshell.util.selector.filter_elements(ifc_file, data["query"]) + else: + elements = ifcopenshell.util.selector.filter_elements(ifc_file, include) + except (json.JSONDecodeError, ValueError): + elements = ifcopenshell.util.selector.filter_elements(ifc_file, include) else: if ifc_file.schema == "IFC2X3": base_elements = set(ifc_file.by_type("IfcElement") + ifc_file.by_type("IfcSpatialStructureElement")) @@ -2235,7 +2279,7 @@ class Drawing(bonsai.core.tool.Drawing): if not i.is_a("IfcAnnotation"): updated_set.add(i) # add aggregate too, if element is host by one - if decomposes := i.Decomposes: + if hasattr(i, "Decomposes") and (decomposes := i.Decomposes): aggregate = decomposes[0].RelatingObject # remove IfcProject for class iterator. See https://github.com/IfcOpenShell/IfcOpenShell/issues/4361#issuecomment-2081223615 if aggregate.is_a("IfcProduct"): @@ -2248,7 +2292,18 @@ class Drawing(bonsai.core.tool.Drawing): exclude = pset.get("Exclude", None) if exclude: - elements -= ifcopenshell.util.selector.filter_elements(ifc_file, exclude) + try: + data = json.loads(exclude) + if isinstance(data, dict) and "filter_structure" in data: + exclude_elements = tool.Search.execute_filter_groups_from_json(data, ifc_file) + elements -= exclude_elements + elif isinstance(data, dict) and "query" in data: + elements -= ifcopenshell.util.selector.filter_elements(ifc_file, data["query"]) + else: + elements -= ifcopenshell.util.selector.filter_elements(ifc_file, exclude) + except (json.JSONDecodeError, ValueError): + elements -= ifcopenshell.util.selector.filter_elements(ifc_file, exclude) + elements -= ifcopenshell.util.selector.filter_elements(ifc_file, exclude) elements -= set(ifc_file.by_type("IfcOpeningElement")) return elements @@ -2262,7 +2317,18 @@ class Drawing(bonsai.core.tool.Drawing): # NOTE: EPset_Drawing.Include is not used to avoid adding other elements besides spaces exclude = pset.get("Exclude", None) if exclude: - elements -= ifcopenshell.util.selector.filter_elements(ifc_file, exclude) + try: + data = json.loads(exclude) + if isinstance(data, dict) and "filter_structure" in data: + exclude_elements = tool.Search.execute_filter_groups_from_json(data, ifc_file) + elements -= exclude_elements + elif isinstance(data, dict) and "query" in data: + elements -= ifcopenshell.util.selector.filter_elements(ifc_file, data["query"]) + else: + elements -= ifcopenshell.util.selector.filter_elements(ifc_file, exclude) + except (json.JSONDecodeError, ValueError): + elements -= ifcopenshell.util.selector.filter_elements(ifc_file, exclude) + elements -= ifcopenshell.util.selector.filter_elements(ifc_file, exclude) return elements @classmethod @@ -2703,9 +2769,10 @@ class Drawing(bonsai.core.tool.Drawing): @classmethod def convert_svg_to_dxf(cls, svg_filepath: Path, dxf_filepath: Path) -> None: - import ezdxf import xml.etree.ElementTree as ET + import ezdxf + SVG = "{http://www.w3.org/2000/svg}" IFC = "{http://www.ifcopenshell.org/ns}" diff --git a/src/bonsai/bonsai/tool/feature.py b/src/bonsai/bonsai/tool/feature.py index adc6cd9528..d58a8df55c 100644 --- a/src/bonsai/bonsai/tool/feature.py +++ b/src/bonsai/bonsai/tool/feature.py @@ -17,16 +17,19 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from collections.abc import Iterable +from typing import TYPE_CHECKING + import bpy -import bonsai.core.tool -import bonsai.tool as tool -import bonsai.bim.helper -import bonsai.core.geometry import ifcopenshell import ifcopenshell.api.feature import ifcopenshell.util.representation -from typing import TYPE_CHECKING -from collections.abc import Iterable + +import bonsai.bim.helper +import bonsai.core.geometry +import bonsai.core.tool +import bonsai.tool as tool if TYPE_CHECKING: from bonsai.bim.module.void.prop import BIMBooleanProperties diff --git a/src/bonsai/bonsai/tool/geometry.py b/src/bonsai/bonsai/tool/geometry.py index 879df2adf0..13ec6695d2 100644 --- a/src/bonsai/bonsai/tool/geometry.py +++ b/src/bonsai/bonsai/tool/geometry.py @@ -17,14 +17,27 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy -import bmesh -import struct + import hashlib import logging -import numpy as np -import numpy.typing as npt import multiprocessing +import struct +from collections import defaultdict +from collections.abc import Generator, Iterable, Iterator +from math import pi, radians +from typing import ( + TYPE_CHECKING, + Any, + Literal, + Optional, + TypeGuard, + Union, + cast, + get_args, +) + +import bmesh +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.boundary @@ -45,37 +58,30 @@ import ifcopenshell.util.shape import ifcopenshell.util.shape_builder import ifcopenshell.util.system import ifcopenshell.util.unit -import bonsai.core.tool +import numpy as np +import numpy.typing as npt +from mathutils import Matrix, Vector +from mathutils.bvhtree import BVHTree +from typing_extensions import TypeIs + +import bonsai.bim.helper +import bonsai.bim.import_ifc import bonsai.core.drawing import bonsai.core.geometry import bonsai.core.root import bonsai.core.spatial import bonsai.core.style import bonsai.core.system +import bonsai.core.tool import bonsai.tool as tool -import bonsai.bim.helper -import bonsai.bim.import_ifc -from collections import defaultdict -from math import radians, pi -from mathutils import Vector, Matrix -from mathutils.bvhtree import BVHTree from bonsai.bim.ifc import IfcStore -from typing import ( - Union, - Optional, - Literal, - TYPE_CHECKING, - get_args, - cast, - TypeGuard, - Any, -) -from collections.abc import Iterable, Iterator, Generator -from typing_extensions import TypeIs if TYPE_CHECKING: + from bonsai.bim.module.geometry.prop import ( + BIMGeometryProperties, + BIMObjectGeometryProperties, + ) from bonsai.bim.prop import Attribute, BIMMeshProperties - from bonsai.bim.module.geometry.prop import BIMObjectGeometryProperties, BIMGeometryProperties class Geometry(bonsai.core.tool.Geometry): @@ -1146,9 +1152,8 @@ class Geometry(bonsai.core.tool.Geometry): def record_object_position(cls, obj: bpy.types.Object) -> None: # These are recorded separately because they have different numerical tolerances props = tool.Blender.get_object_bim_props(obj) - # Explicit dtype for Blender <5.0 compatibility. - props.location_checksum = repr(np.array(obj.matrix_world.translation, dtype=np.float32).tobytes()) - props.rotation_checksum = repr(np.array(obj.matrix_world.to_3x3(), dtype=np.float32).tobytes()) + props.location_checksum = repr(tool.Blender.np_array_legacy(obj.matrix_world.translation).tobytes()) + props.rotation_checksum = repr(tool.Blender.np_array_legacy(obj.matrix_world.to_3x3()).tobytes()) @classmethod def remove_connection(cls, connection: ifcopenshell.entity_instance) -> None: @@ -1360,6 +1365,8 @@ class Geometry(bonsai.core.tool.Geometry): If no other representation present, will replace object with an empty. Method assumes that `obj` does have a current representation (it could be not `representation`). + + Will clean up old ``obj.data`` if no other users exist. """ element = tool.Ifc.get_entity(obj) assert element @@ -1378,7 +1385,11 @@ class Geometry(bonsai.core.tool.Geometry): # `representation` is the only representation for object. if new_representation is None: + old_data = obj.data + assert old_data is not None cls.recreate_object_with_data(obj, None) + if not cls.has_data_users(old_data): + cls.delete_data(old_data) return bonsai.core.geometry.switch_representation( @@ -1791,6 +1802,10 @@ class Geometry(bonsai.core.tool.Geometry): def import_item_attributes(cls, obj: bpy.types.Object) -> None: props = tool.Geometry.get_mesh_props(obj.data) props.item_attributes.clear() + element = tool.Ifc.get_entity(tool.Geometry.get_geometry_props().representation_obj) + if tool.Model.get_usage_type(element) == "LAYER3": + return # All LAYER3 attributes are parametrically determined from the IfcMaterialLayerSet + item = tool.Ifc.get().by_id(props.ifc_definition_id) allowed_attributes = [ a.name() @@ -1898,6 +1913,28 @@ class Geometry(bonsai.core.tool.Geometry): obj.data.transform(transformation_i) cls.record_object_position(obj) + # ADD THIS AT THE END - Store initial vertex order for annotations + if rep_obj and (element := tool.Ifc.get_entity(rep_obj)): + if element.is_a("IfcAnnotation") and element.ObjectType in { + "TEXT_LEADER", + "DIMENSION", + "RADIUS", + "DIAMETER", + "ANGLE", + "FALL", + "SLOPE_ANGLE", + "SLOPE_FRACTION", + "SLOPE_PERCENT", + "STAIR_ARROW", + "PLAN_LEVEL", + "SECTION_LEVEL", + "SECTION", + "ELEVATION", + }: + # Store the initial first vertex position + if isinstance(obj.data, bpy.types.Mesh) and obj.data.vertices: + obj.data["bonsai_first_vert_co"] = obj.data.vertices[0].co[:] + @classmethod def disable_item_mode(cls) -> None: props = tool.Geometry.get_geometry_props() @@ -2078,6 +2115,14 @@ class Geometry(bonsai.core.tool.Geometry): active_object: Optional[bpy.types.Object] = None, linked: bool = False, ) -> tuple[dict[ifcopenshell.entity_instance, list[ifcopenshell.entity_instance]], Union[bpy.types.Object, None]]: + """Duplicate IFC objects + + Duplication is surprisingly complicated because you might only select + part of a group of related items. + + TODO: write some tests and figure out how to make this function + actually understandable. + """ # Handle arrays objects_to_duplicate = set(objects_to_duplicate) arrays_to_duplicate, array_children = cls.process_arrays_for_duplication(objects_to_duplicate) @@ -2090,6 +2135,7 @@ class Geometry(bonsai.core.tool.Geometry): decomposition_relationships = tool.Root.get_decomposition_relationships(objects_to_duplicate) connection_relationships = tool.Root.get_connection_relationships(objects_to_duplicate) old_to_new: dict[ifcopenshell.entity_instance, list[ifcopenshell.entity_instance]] = {} + old_obj_name_to_new_obj_name: dict[str, str] = {} for obj in objects_to_duplicate: element = tool.Ifc.get_entity(obj) @@ -2141,6 +2187,7 @@ class Geometry(bonsai.core.tool.Geometry): collection.objects.link(new_obj) obj.select_set(False) new_obj.select_set(True) + old_obj_name_to_new_obj_name[obj.name] = new_obj.name if not element: continue @@ -2173,6 +2220,19 @@ class Geometry(bonsai.core.tool.Geometry): if new.is_a("IfcRelSpaceBoundary"): tool.Boundary.decorate_boundary(new_obj) + # Remap Blender parent relationships for duplicated objects + for old_obj_name, new_obj_name in old_obj_name_to_new_obj_name.items(): + new_obj = bpy.data.objects.get(new_obj_name) + if new_obj and new_obj.parent and new_obj.parent.name in old_obj_name_to_new_obj_name: + # Store world matrix before reparenting to preserve transform + world_matrix = new_obj.matrix_world.copy() + new_parent_name = old_obj_name_to_new_obj_name[new_obj.parent.name] + new_parent = bpy.data.objects.get(new_parent_name) + if new_parent: + new_obj.parent = new_parent + # Restore world transform by setting matrix_world + new_obj.matrix_world = world_matrix + # Recreate aggregate relationship for old in old_to_new.keys(): if old.is_a("IfcElementAssembly"): @@ -2319,3 +2379,94 @@ class Geometry(bonsai.core.tool.Geometry): continue objects.add(obj) return objects + + @classmethod + def ensure_annotation_vertex_order(cls, obj: bpy.types.Object) -> None: + """ + Ensure vertices form a continuous path from start to end. + Uses the original first vertex position as a reference point. + """ + mesh = obj.data + if not isinstance(mesh, bpy.types.Mesh): + return + + # Get the original first vertex position from custom properties + if "bonsai_first_vert_co" in mesh: + original_first_co = Vector(mesh["bonsai_first_vert_co"]) + else: + # Store it for next time + if mesh.vertices: + original_first_co = Vector(mesh.vertices[0].co) + mesh["bonsai_first_vert_co"] = original_first_co[:] + else: + return + + bm = bmesh.new() + bm.from_mesh(mesh) + bm.verts.ensure_lookup_table() + bm.edges.ensure_lookup_table() + + if len(bm.verts) == 0: + bm.free() + return + + # Find endpoints (vertices with only one connected edge) + endpoints = [v for v in bm.verts if len(v.link_edges) == 1] + + # Choose the endpoint closest to the original first vertex position + if len(endpoints) == 0: + # Closed loop - pick any vertex as start + start_vert = bm.verts[0] + elif len(endpoints) == 1: + # Single endpoint + start_vert = endpoints[0] + else: + # Choose endpoint closest to where the original first vertex was + start_vert = min(endpoints, key=lambda v: (v.co - original_first_co).length) + + # Build ordered vertex list by following edges + ordered_verts = [start_vert] + current_vert = start_vert + visited_edges = set() + + while True: + # Find next unvisited edge + next_edge = None + for edge in current_vert.link_edges: + if edge not in visited_edges: + next_edge = edge + break + + if not next_edge: + break + + visited_edges.add(next_edge) + next_vert = next_edge.other_vert(current_vert) + + # Avoid going back on ourselves + if next_vert not in ordered_verts: + ordered_verts.append(next_vert) + + current_vert = next_vert + + # Store vertex coordinates in the correct order + new_verts_co = [v.co.copy() for v in ordered_verts] + + # Update the stored first vertex position to the new first vertex + mesh["bonsai_first_vert_co"] = new_verts_co[0][:] + + # Clear and rebuild mesh with correct vertex order + bm.clear() + + # Create new vertices in order + new_verts = [bm.verts.new(co) for co in new_verts_co] + bm.verts.ensure_lookup_table() + + # Create edges connecting consecutive vertices + for i in range(len(new_verts) - 1): + bm.edges.new([new_verts[i], new_verts[i + 1]]) + + # Write back to mesh + bm.to_mesh(mesh) + bm.free() + mesh.update() diff --git a/src/bonsai/bonsai/tool/georeference.py b/src/bonsai/bonsai/tool/georeference.py index 7b56adbab2..eefdd12cd9 100644 --- a/src/bonsai/bonsai/tool/georeference.py +++ b/src/bonsai/bonsai/tool/georeference.py @@ -17,22 +17,25 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy + import json -import numpy as np +from typing import TYPE_CHECKING, Any, Literal, Union + +import bpy import ifcopenshell import ifcopenshell.api.georeference import ifcopenshell.util.geolocation import ifcopenshell.util.placement import ifcopenshell.util.unit +import numpy as np + +import bonsai.bim.helper import bonsai.core.tool import bonsai.tool as tool -import bonsai.bim.helper -from typing import Any, Union, Literal, TYPE_CHECKING if TYPE_CHECKING: - from bonsai.bim.prop import Attribute from bonsai.bim.module.georeference.prop import BIMGeoreferenceProperties + from bonsai.bim.prop import Attribute class Georeference(bonsai.core.tool.Georeference): diff --git a/src/bonsai/bonsai/tool/group.py b/src/bonsai/bonsai/tool/group.py index d800904bf8..f0f3664f6f 100644 --- a/src/bonsai/bonsai/tool/group.py +++ b/src/bonsai/bonsai/tool/group.py @@ -17,17 +17,21 @@ # along with Bonsai. If not, see . from __future__ import annotations + import json +from typing import TYPE_CHECKING, Literal, Union, assert_never + import bpy import ifcopenshell +from natsort import natsorted + import bonsai.bim.helper import bonsai.core.tool import bonsai.tool as tool -from typing import TYPE_CHECKING, Literal, assert_never, Union -from natsort import natsorted if TYPE_CHECKING: - from bonsai.bim.module.group.prop import BIMGroupProperties, Group as GroupProp + from bonsai.bim.module.group.prop import BIMGroupProperties + from bonsai.bim.module.group.prop import Group as GroupProp from bonsai.bim.module.system.prop import BIMSystemProperties, System diff --git a/src/bonsai/bonsai/tool/ifc.py b/src/bonsai/bonsai/tool/ifc.py index dfb2370272..8cbd2a112b 100644 --- a/src/bonsai/bonsai/tool/ifc.py +++ b/src/bonsai/bonsai/tool/ifc.py @@ -17,20 +17,23 @@ # along with Bonsai. If not, see . from __future__ import annotations + import os +from pathlib import Path +from typing import TYPE_CHECKING, Any, Literal, Optional, Union, final + import bpy -import numpy as np import ifcopenshell.api import ifcopenshell.ifcopenshell_wrapper as ifcopenshell_wrapper import ifcopenshell.util.element import ifcopenshell.util.schema -import bonsai.core.tool +import numpy as np + import bonsai.bim.handler import bonsai.bim.schema +import bonsai.core.tool import bonsai.tool as tool -from pathlib import Path -from bonsai.bim.ifc import IfcStore, IFC_CONNECTED_TYPE -from typing import Optional, Union, Any, final, Literal, TYPE_CHECKING +from bonsai.bim.ifc import IFC_CONNECTED_TYPE, IfcStore if TYPE_CHECKING: from bpy.stub_internal import rna_enums @@ -110,12 +113,19 @@ class Ifc(bonsai.core.tool.Ifc): oprops = tool.Blender.get_object_bim_props(obj) if not oprops.location_checksum: return True # Let's be conservative - loc_check = np.frombuffer(eval(oprops.location_checksum), dtype=np.float32) - loc_real = np.array(obj.matrix_world.translation).flatten() + + # Handle both old float64 and new float32 checksums for version compatibility + loc_checksum_bytes: bytes = eval(oprops.location_checksum) + loc_check = tool.Blender.np_frombuffer_legacy(loc_checksum_bytes, 3) + loc_real = tool.Blender.np_array_legacy(obj.matrix_world.translation) if not np.allclose(loc_check, loc_real, atol=1e-4): # 0.1 mm return True - rot_check = np.frombuffer(eval(oprops.rotation_checksum), dtype=np.float32).reshape(3, 3) - rot_real = np.array(obj.matrix_world.to_3x3()) + + # Handle both old float64 and new float32 checksums for version compatibility + rot_checksum_bytes: bytes = eval(oprops.rotation_checksum) + rot_check = tool.Blender.np_frombuffer_legacy(rot_checksum_bytes, 9) + rot_check = rot_check.reshape(3, 3) + rot_real = tool.Blender.np_array_legacy(obj.matrix_world.to_3x3()) rot_dot = np.dot(rot_check, rot_real.T) angle_rad = np.arccos(np.clip((np.trace(rot_dot) - 1) / 2, -1, 1)) if angle_rad > 0.0017453292519943296: # 0.1 degrees diff --git a/src/bonsai/bonsai/tool/ifcgit.py b/src/bonsai/bonsai/tool/ifcgit.py index 7dfb2431d0..db557542bc 100644 --- a/src/bonsai/bonsai/tool/ifcgit.py +++ b/src/bonsai/bonsai/tool/ifcgit.py @@ -17,17 +17,20 @@ # along with Bonsai. If not, see . from __future__ import annotations + +import logging import os import re import subprocess -import bpy -import logging import tempfile +from pathlib import Path +from typing import TYPE_CHECKING, Any, Literal, Union + +import bpy + +import bonsai.tool as tool from bonsai.bim import import_ifc from bonsai.bim.ifc import IfcStore -import bonsai.tool as tool -from pathlib import Path -from typing import TYPE_CHECKING, Union, Literal, Any # allows git import even if git executable isn't found os.environ["GIT_PYTHON_REFRESH"] = "quiet" @@ -61,10 +64,13 @@ class IfcGit: @classmethod def clone_repo(cls, remote_url: str, local_folder: str) -> git.Repo: - IfcGitRepo.repo = git.Repo.clone_from( + repo = git.Repo.clone_from( url=remote_url, to_path=local_folder, ) + # Close the repo to release stale subprocess + repo.close() + IfcGitRepo.repo = git.Repo(local_folder) cls.config_info_attributes(IfcGitRepo.repo) return IfcGitRepo.repo diff --git a/src/bonsai/bonsai/tool/layer.py b/src/bonsai/bonsai/tool/layer.py index 7b5775d20d..396cc13605 100644 --- a/src/bonsai/bonsai/tool/layer.py +++ b/src/bonsai/bonsai/tool/layer.py @@ -17,10 +17,13 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING + import bpy + import bonsai.core.tool import bonsai.tool as tool -from typing import TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.layer.prop import BIMLayerProperties diff --git a/src/bonsai/bonsai/tool/library.py b/src/bonsai/bonsai/tool/library.py index e16a159b00..861278e91c 100644 --- a/src/bonsai/bonsai/tool/library.py +++ b/src/bonsai/bonsai/tool/library.py @@ -17,12 +17,15 @@ # along with Bonsai. If not, see . from __future__ import annotations -import ifcopenshell + +from typing import TYPE_CHECKING, Any, Literal, Union + import bpy +import ifcopenshell + import bonsai.bim.helper import bonsai.core.tool import bonsai.tool as tool -from typing import Literal, Any, Union, TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.library.prop import BIMLibraryProperties diff --git a/src/bonsai/bonsai/tool/loader.py b/src/bonsai/bonsai/tool/loader.py index e28ceacaec..d81fec5fd2 100644 --- a/src/bonsai/bonsai/tool/loader.py +++ b/src/bonsai/bonsai/tool/loader.py @@ -17,11 +17,16 @@ # along with Bonsai. If not, see . from __future__ import annotations + +import logging import os import re -import bpy +from math import atan, radians +from pathlib import Path +from typing import Any, Optional, Union, cast + import bmesh -import logging +import bpy import ifcopenshell.geom import ifcopenshell.ifcopenshell_wrapper as W import ifcopenshell.util.element @@ -30,17 +35,15 @@ import ifcopenshell.util.placement import ifcopenshell.util.representation import ifcopenshell.util.shape import ifcopenshell.util.unit -import bonsai.core.tool -import bonsai.tool as tool -import bonsai.bim.import_ifc import numpy as np import numpy.typing as npt from ifcopenshell.util.shape_builder import np_to_4d -from math import atan, radians -from mathutils import Vector, Matrix -from pathlib import Path -from typing import Union, Any, Optional, cast +from mathutils import Matrix, Vector +from mathutils.kdtree import KDTree +import bonsai.bim.import_ifc +import bonsai.core.tool +import bonsai.tool as tool # Progressively we'll refactor loading elements into Blender objects into this # class. This will break down the monolithic import_ifc module and allow us to @@ -313,6 +316,7 @@ class Loader(bonsai.core.tool.Loader): # https://blender.stackexchange.com/questions/173206/how-to-efficiently-convert-a-pil-image-to-bpy-types-image # https://blender.stackexchange.com/questions/62072/does-blender-have-a-method-to-a-get-png-formatted-bytearray-for-an-image-via-pyt import io + from PIL import Image value = texture["RasterCode"] @@ -559,7 +563,18 @@ class Loader(bonsai.core.tool.Loader): bm_verts = np.array([v.co for v in bm.verts]) coords_scaled = np.array(faceset.Coordinates.CoordList) * si_conversion - coordinates_remap = [np.argmin(np.sum((bm_verts - co) ** 2, axis=1)) for co in coords_scaled] + # See #2824. IfcIndexedColourMap is not natively handled by IfcOpenShell + # As a result, we map IFC coords to Blender coords (highly wasteful but...) + # coordinates_remap = [np.argmin(np.sum((bm_verts - co) ** 2, axis=1)) for co in coords_scaled] + # Because this is O(N*M), here is a faster KDTree implementation. + kd = KDTree(len(bm_verts)) + for i, v in enumerate(bm_verts): + kd.insert((float(v[0]), float(v[1]), float(v[2])), i) + kd.balance() + coordinates_remap = np.empty(len(coords_scaled), dtype=np.int32) + for j, co in enumerate(coords_scaled): + _co, index, _dist = kd.find((float(co[0]), float(co[1]), float(co[2]))) + coordinates_remap[j] = index # ifc indices start with 1 remap_verts_to_blender = lambda ifc_verts: [coordinates_remap[i - 1] for i in ifc_verts] diff --git a/src/bonsai/bonsai/tool/material.py b/src/bonsai/bonsai/tool/material.py index 5e8b531c5c..6f862100e2 100644 --- a/src/bonsai/bonsai/tool/material.py +++ b/src/bonsai/bonsai/tool/material.py @@ -17,22 +17,28 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from collections import defaultdict +from typing import TYPE_CHECKING, Any, Optional, Union + import bpy import ifcopenshell import ifcopenshell.api.material -import bonsai.core.tool -import bonsai.core.material -import bonsai.tool as tool -import bonsai.bim.helper -import ifcopenshell.util.unit import ifcopenshell.util.element -from collections import defaultdict -from typing import Union, Any, TYPE_CHECKING, Optional +import ifcopenshell.util.unit + +import bonsai.bim.helper +import bonsai.core.material +import bonsai.core.tool +import bonsai.tool as tool if TYPE_CHECKING: # Avoid circular imports. + from bonsai.bim.module.material.prop import ( + BIMMaterialProperties, + BIMObjectMaterialProperties, + ) from bonsai.bim.module.material.prop import Material as MaterialItem - from bonsai.bim.module.material.prop import BIMMaterialProperties, BIMObjectMaterialProperties class Material(bonsai.core.tool.Material): diff --git a/src/bonsai/bonsai/tool/misc.py b/src/bonsai/bonsai/tool/misc.py index e2a8028181..890e8aac9b 100644 --- a/src/bonsai/bonsai/tool/misc.py +++ b/src/bonsai/bonsai/tool/misc.py @@ -16,17 +16,19 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy +from typing import Union + import bmesh +import bpy import ifcopenshell import ifcopenshell.util.element import ifcopenshell.util.placement import ifcopenshell.util.unit -import bonsai.core.tool +from mathutils import Matrix, Vector + import bonsai.core.root +import bonsai.core.tool import bonsai.tool as tool -from mathutils import Vector, Matrix -from typing import Union class Misc(bonsai.core.tool.Misc): diff --git a/src/bonsai/bonsai/tool/model.py b/src/bonsai/bonsai/tool/model.py index d818deaf1f..148f4a6b75 100644 --- a/src/bonsai/bonsai/tool/model.py +++ b/src/bonsai/bonsai/tool/model.py @@ -17,13 +17,26 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy -import json -import bmesh -import shapely + import collections import collections.abc -import numpy as np +import json +from collections.abc import Iterable, Sequence +from copy import deepcopy +from math import atan, cos, degrees, pi, radians +from typing import ( + TYPE_CHECKING, + Any, + Literal, + Optional, + TypedDict, + TypeVar, + Union, + assert_never, +) + +import bmesh +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.geometry @@ -37,34 +50,35 @@ import ifcopenshell.util.representation import ifcopenshell.util.shape import ifcopenshell.util.shape_builder import ifcopenshell.util.unit +import mathutils +import numpy as np +import shapely +from ifcopenshell.util.shape_builder import ShapeBuilder, np_to_3d +from mathutils import Matrix, Vector + import bonsai.core.geometry import bonsai.core.tool import bonsai.tool as tool -import mathutils -from math import atan, cos, degrees, pi, radians -from mathutils import Matrix, Vector -from copy import deepcopy from bonsai.bim import import_ifc -from ifcopenshell.util.shape_builder import ShapeBuilder, np_to_3d -from typing import Optional, Union, TypeVar, Any, Literal, TYPE_CHECKING, TypedDict, assert_never -from collections.abc import Iterable, Sequence - T = TypeVar("T") V_ = tool.Blender.V_ if TYPE_CHECKING: + import ifcsverchok.nodes.ifc.shape_builder.shape_output + import sverchok.node_tree + from sverchok.core.node_group import SvGroupTreeNode + from bonsai.bim.module.model.prop import ( - BIMModelProperties, - BIMDoorProperties, BIMArrayProperties, - BIMRoofProperties, - BIMWindowProperties, - BIMStairProperties, - BIMRailingProperties, + BIMDoorProperties, BIMExternalParametricGeometryProperties, + BIMModelProperties, BIMPolylineProperties, - BIMProductPreviewProperties, + BIMRailingProperties, + BIMRoofProperties, + BIMStairProperties, + BIMWindowProperties, ) @@ -106,11 +120,6 @@ class Model(bonsai.core.tool.Model): assert (scene := bpy.context.scene) return scene.BIMPolylineProperties # pyright: ignore[reportAttributeAccessIssue] - @classmethod - def get_product_preview_props(cls) -> BIMProductPreviewProperties: - assert (scene := bpy.context.scene) - return scene.BIMProductPreviewProperties # pyright: ignore[reportAttributeAccessIssue] - @classmethod def convert_si_to_unit(cls, value: T) -> T: if isinstance(value, (tuple, list)): @@ -142,9 +151,10 @@ class Model(bonsai.core.tool.Model): for prop_name in data: if prop_name in non_si_props: continue - prop_value = data[prop_name] + # `None` is used by `custom_first_last_tread_run`. + prop_value: Iterable[float | None] | float = data[prop_name] if isinstance(prop_value, collections.abc.Iterable): - data[prop_name] = [v * si_conversion for v in prop_value] + data[prop_name] = [v if v is None else v * si_conversion for v in prop_value] else: data[prop_name] = prop_value * si_conversion return data @@ -619,6 +629,71 @@ class Model(bonsai.core.tool.Model): if not openings[i].obj: openings.remove(i) + @classmethod + def save_custom_offset_to_pset(cls, element: ifcopenshell.entity_instance, obj: bpy.types.Object) -> None: + """Save custom offset settings to BBIM_MaterialLayer pset.""" + props = tool.Material.get_object_material_props(obj) + + if not props.use_custom_offset: + # Remove pset if custom offset is disabled + pset = ifcopenshell.util.element.get_pset(element, "BBIM_MaterialLayer") + if pset: + pset_entity = tool.Ifc.get().by_id(pset["id"]) + ifcopenshell.api.pset.remove_pset(tool.Ifc.get(), product=element, pset=pset_entity) + return + + # Determine which reference to save based on usage type + usage_type = tool.Model.get_usage_type(element) + custom_wall_reference = None + custom_slab_reference = None + + if usage_type == "LAYER2": + custom_wall_reference = props.custom_wall_reference + elif usage_type == "LAYER3": + custom_slab_reference = props.custom_slab_reference + + # Get or create pset + pset_data = ifcopenshell.util.element.get_pset(element, "BBIM_MaterialLayer") + if pset_data: + pset = tool.Ifc.get().by_id(pset_data["id"]) + else: + pset = ifcopenshell.api.pset.add_pset(tool.Ifc.get(), product=element, name="BBIM_MaterialLayer") + + # Save properties (store in SI units) + unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) + properties = { + "UseCustomOffset": props.use_custom_offset, + "CustomOffset": props.custom_offset / unit_scale, + "CustomWallReference": custom_wall_reference if custom_wall_reference else "", + "CustomSlabReference": custom_slab_reference if custom_slab_reference else "", + } + ifcopenshell.api.pset.edit_pset(tool.Ifc.get(), pset=pset, properties=properties) + + @classmethod + def load_custom_offset_from_pset(cls, element: ifcopenshell.entity_instance, obj: bpy.types.Object) -> None: + """Load custom offset settings from BBIM_MaterialLayer pset.""" + pset = ifcopenshell.util.element.get_pset(element, "BBIM_MaterialLayer") + if not pset: + return + + props = tool.Material.get_object_material_props(obj) + unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) + + # Load properties + props.use_custom_offset = pset.get("UseCustomOffset", False) + props.custom_offset = pset.get("CustomOffset", 0.0) * unit_scale # Convert from SI + + # Load the appropriate reference based on usage type + usage_type = tool.Model.get_usage_type(element) + if usage_type == "LAYER2": + custom_wall_ref = pset.get("CustomWallReference", "") + if custom_wall_ref: + props.custom_wall_reference = custom_wall_ref + elif usage_type == "LAYER3": + custom_slab_ref = pset.get("CustomSlabReference", "") + if custom_slab_ref: + props.custom_slab_reference = custom_slab_ref + class MaterialLayerParameters(TypedDict): """Float values are in project units.""" @@ -651,13 +726,35 @@ class Model(bonsai.core.tool.Model): ) @classmethod - def get_material_layer_custom_offset(cls, element: ifcopenshell.entity_instance, obj) -> MaterialLayerParameters: + def get_material_layer_custom_offset( + cls, element: ifcopenshell.entity_instance, obj: bpy.types.Object + ) -> Optional[float]: + """Get custom offset value, reading from pset if props are not set.""" unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) layer_params = tool.Model.get_material_layer_parameters(element) layer_offset = layer_params["offset"] thickness = layer_params["thickness"] / unit_scale props = tool.Material.get_object_material_props(obj) - if props.use_custom_offset: + + # Try to load from pset if not already in props + if not props.use_custom_offset: + pset = ifcopenshell.util.element.get_pset(element, "BBIM_MaterialLayer") + if pset and pset.get("UseCustomOffset", False): + # Load from pset + custom_offset = pset.get("CustomOffset", 0.0) + usage_type = tool.Model.get_usage_type(element) + + if usage_type == "LAYER2": + custom_offset_reference = pset.get("CustomWallReference", "CENTER") + elif usage_type == "LAYER3": + custom_offset_reference = pset.get("CustomSlabReference", "MIDDLE") + else: + return None + else: + return None + else: + # Use current props + custom_offset = props.custom_offset / unit_scale if tool.Model.get_usage_type(element) == "LAYER2": custom_offset_reference = props.custom_wall_reference elif tool.Model.get_usage_type(element) == "LAYER3": @@ -665,24 +762,22 @@ class Model(bonsai.core.tool.Model): else: return None - custom_offset = props.custom_offset - direction_sense = layer_params["direction_sense"] - if direction_sense == "POSITIVE" and custom_offset_reference in {"INTERIOR", "TOP"}: - layer_offset = custom_offset - thickness * unit_scale - if direction_sense == "POSITIVE" and custom_offset_reference in {"CENTER", "MIDDLE"}: - layer_offset = custom_offset - (thickness / 2) * unit_scale - if (direction_sense == "POSITIVE" and custom_offset_reference in {"EXTERIOR", "BOTTOM"}) or ( - direction_sense == "NEGATIVE" and custom_offset_reference in {"EXTERIOR", "TOP"} - ): - layer_offset = custom_offset - if direction_sense == "NEGATIVE" and custom_offset_reference in {"CENTER", "MIDDLE"}: - layer_offset = custom_offset + (thickness / 2) * unit_scale - if direction_sense == "NEGATIVE" and custom_offset_reference in {"INTERIOR", "BOTTOM"}: - layer_offset = custom_offset + thickness * unit_scale + direction_sense = layer_params["direction_sense"] - return layer_offset / unit_scale + if direction_sense == "POSITIVE" and custom_offset_reference in {"INTERIOR", "TOP"}: + layer_offset = custom_offset - thickness * unit_scale + if direction_sense == "POSITIVE" and custom_offset_reference in {"CENTER", "MIDDLE"}: + layer_offset = custom_offset - (thickness / 2) * unit_scale + if (direction_sense == "POSITIVE" and custom_offset_reference in {"EXTERIOR", "BOTTOM"}) or ( + direction_sense == "NEGATIVE" and custom_offset_reference in {"EXTERIOR", "TOP"} + ): + layer_offset = custom_offset + if direction_sense == "NEGATIVE" and custom_offset_reference in {"CENTER", "MIDDLE"}: + layer_offset = custom_offset + (thickness / 2) * unit_scale + if direction_sense == "NEGATIVE" and custom_offset_reference in {"INTERIOR", "BOTTOM"}: + layer_offset = custom_offset + thickness * unit_scale - return None + return layer_offset / unit_scale @classmethod def get_booleans( @@ -956,6 +1051,7 @@ class Model(bonsai.core.tool.Model): tool.Model.regenerate_array(obj, array_data) + array_pset = tool.Pset.get_element_pset(element, "BBIM_Array") json_data = tool.Ifc.get().createIfcText(json.dumps(array_data)) ifcopenshell.api.pset.edit_pset(tool.Ifc.get(), pset=array_pset, properties={"Data": json_data}) @@ -968,23 +1064,17 @@ class Model(bonsai.core.tool.Model): cls, parent_obj: bpy.types.Object, data: list[dict[str, Any]], array_layers_to_apply: Iterable[int] = tuple() ) -> None: """`array_layers_to_apply` - list of array layer indices to apply""" - tool.Blender.Modifier.Array.remove_constraints(tool.Ifc.get_entity(parent_obj)) + parent_element = tool.Ifc.get_entity(parent_obj) + + if pset := ifcopenshell.util.element.get_pset(parent_element, "BBIM_Array"): + ifcopenshell.api.pset.remove_pset( + tool.Ifc.get(), product=parent_element, pset=tool.Ifc.get().by_id(pset["id"]) + ) unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) obj_stack = [parent_obj] for array_i, array in enumerate(data): - # for `sync_children` we remove all previously generated children to regenerate them again - # to assure they are in complete sync (psets, etc) with the array parent - if array["sync_children"]: - removed_children = set(array["children"]) - for removed_child in removed_children: - element = tool.Ifc.get().by_guid(removed_child) - obj = tool.Ifc.get_object(element) - if obj: - tool.Geometry.delete_ifc_object(obj) - array["children"].clear() - child_i = 0 existing_children = set(array["children"]) total_existing_children = len(array["children"]) @@ -1004,29 +1094,27 @@ class Model(bonsai.core.tool.Model): offset = base_offset * i for obj in obj_stack: - # get currently proccesed array element and it's object - if child_i >= total_existing_children: - child_obj = tool.Spatial.duplicate_object_and_data(obj) - child_element = tool.Spatial.run_root_copy_class(obj=child_obj) - else: + try: global_id = array["children"][child_i] - try: - child_element = tool.Ifc.get().by_guid(global_id) - child_obj = tool.Ifc.get_object(child_element) - assert child_obj - except: - child_obj = tool.Spatial.duplicate_object_and_data(obj) - child_element = tool.Spatial.run_root_copy_class(obj=child_obj) + child_element = tool.Ifc.get().by_guid(global_id) + child_obj = tool.Ifc.get_object(child_element) + assert child_obj + except: + old_to_new, _ = tool.Geometry.duplicate_ifc_objects([parent_obj]) + child_element = next(iter(old_to_new.values()))[0] + child_obj = tool.Ifc.get_object(child_element) # add child pset - child_pset = tool.Pset.get_element_pset(child_element, "BBIM_Array") - if child_pset: - ifcopenshell.api.pset.edit_pset( - tool.Ifc.get(), - pset=child_pset, - properties={"Data": None}, - should_purge=False, + if not (child_pset := tool.Pset.get_element_pset(child_element, "BBIM_Array")): + child_pset = ifcopenshell.api.pset.add_pset( + tool.Ifc.get(), product=child_element, name="BBIM_Array" ) + ifcopenshell.api.pset.edit_pset( + tool.Ifc.get(), + pset=child_pset, + properties={"Data": None, "Parent": parent_element.GlobalId}, + should_purge=False, + ) # set child object position new_matrix = obj.matrix_world.copy() @@ -1062,6 +1150,12 @@ class Model(bonsai.core.tool.Model): bpy.context.view_layer.update() + pset = ifcopenshell.api.pset.add_pset(tool.Ifc.get(), product=parent_element, name="BBIM_Array") + json_data = tool.Ifc.get().createIfcText(json.dumps(data)) + ifcopenshell.api.pset.edit_pset( + tool.Ifc.get(), pset=pset, properties={"Data": json_data, "Parent": parent_element.GlobalId} + ) + @classmethod def replace_object_ifc_representation( cls, @@ -1100,6 +1194,7 @@ class Model(bonsai.core.tool.Model): return from PIL import Image, ImageDraw + from bonsai.bim.module.model.data import AuthoringData obj = tool.Ifc.get_object(element) @@ -1348,6 +1443,7 @@ class Model(bonsai.core.tool.Model): first_tread_run = props.custom_first_last_tread_run[0] / si_conversion last_tread_run = props.custom_first_last_tread_run[1] / si_conversion nosing_length = props.nosing_length / si_conversion + use_custom_first_last_tread_run = not props.custom_tread_lock else: assert pset_data number_of_treads: int = pset_data["number_of_treads"] @@ -1359,29 +1455,23 @@ class Model(bonsai.core.tool.Model): ) first_tread_run, last_tread_run = custom_first_last_tread_run nosing_length = pset_data.get("nosing_length", 0) + use_custom_first_last_tread_run = not pset_data.get("custom_tread_lock", True) calculated_params: dict[str, Any] = {} number_of_rises = number_of_treads + 1 calculated_params["Number of Risers"] = number_of_rises calculated_params["Tread Rise"] = round(height / number_of_rises, 5) - # calculate stair length - # Start with all treads using default tread_run - n_default_tread_runs = number_of_rises + # Calculate total length taking into account custom first/last tread runs : length = 0.0 - - # If first tread has custom width (non-None), use it instead of default. - if first_tread_run is not None: - n_default_tread_runs -= 1 + default_rises = number_of_rises + if use_custom_first_last_tread_run and first_tread_run is not None: + default_rises -= 1 length += first_tread_run - - # If last tread has custom width (non-None), use it instead of default - if last_tread_run is not None: - n_default_tread_runs -= 1 + if use_custom_first_last_tread_run and last_tread_run is not None: + default_rises -= 1 length += last_tread_run - - # Add remaining default tread runs - length += tread_run * n_default_tread_runs + length += tread_run * default_rises # Handle nosing length effects on total length # Nosing overlaps don't affect tread run spacing, @@ -1400,6 +1490,29 @@ class Model(bonsai.core.tool.Model): StairType = Literal["CONCRETE", "WOOD/STEEL", "GENERIC"] + DoorType = Literal[ + "SINGLE_SWING_LEFT", + "SINGLE_SWING_RIGHT", + "DOUBLE_SWING_LEFT", + "DOUBLE_SWING_RIGHT", + "DOUBLE_DOOR_SINGLE_SWING", + "SLIDING_TO_LEFT", + "SLIDING_TO_RIGHT", + "DOUBLE_DOOR_SLIDING", + ] + + WindowType = Literal[ + "SINGLE_PANEL", + "DOUBLE_PANEL_HORIZONTAL", + "DOUBLE_PANEL_VERTICAL", + "TRIPLE_PANEL_BOTTOM", + "TRIPLE_PANEL_TOP", + "TRIPLE_PANEL_LEFT", + "TRIPLE_PANEL_RIGHT", + "TRIPLE_PANEL_HORIZONTAL", + "TRIPLE_PANEL_VERTICAL", + ] + @classmethod def generate_stair_2d_profile( cls, @@ -1431,28 +1544,6 @@ class Model(bonsai.core.tool.Model): nosing_overlap_offset = -V_(nosing_overlap, 0) first_tread_run = custom_first_last_tread_run[0] if custom_first_last_tread_run[0] is not None else tread_run - # ============ DEBUG LOGGING START ============ - print("\n" + "=" * 80) - print("STAIR GENERATION DEBUG - WOOD/STEEL TYPE") - print("=" * 80) - print(f"Input Parameters:") - print(f" stair_type: {stair_type}") - print(f" number_of_treads: {number_of_treads}") - print(f" height: {height}") - print(f" width: {width}") - print(f" tread_run: {tread_run}") - print(f" tread_depth: {tread_depth}") - print(f" custom_first_last_tread_run: {custom_first_last_tread_run}") - print(f" nosing_length: {nosing_length}") - print(f"\nCalculated Parameters:") - print(f" number_of_risers: {number_of_risers}") - print(f" tread_rise: {tread_rise}") - print(f" nosing_overlap: {nosing_overlap}") - print(f" nosing_tread_gap: {nosing_tread_gap}") - print(f" nosing_overlap_offset: {nosing_overlap_offset}") - print("=" * 80 + "\n") - # ============ DEBUG LOGGING END ============ - def define_generic_stair_treads(): vertices.append(Vector([0, 0])) nonlocal nosing_depth, nosing_overlap @@ -1521,10 +1612,6 @@ class Model(bonsai.core.tool.Model): current_offset += tread_offset if stair_type == "WOOD/STEEL": - print("\n" + "-" * 80) - print("WOOD/STEEL STAIR GENERATION PROCESS") - print("-" * 80) - assert tread_depth is not None # full tread rectangle @@ -1535,11 +1622,6 @@ class Model(bonsai.core.tool.Model): default_tread_verts = get_tread_verts(size=V_(tread_run + nosing_overlap, tread_depth)) default_tread_offset = V_(tread_run + nosing_tread_gap, tread_rise) - print(f"\nDefault Tread Configuration:") - print(f" default_tread_verts: {default_tread_verts}") - print(f" default_tread_offset: {default_tread_offset}") - print(f" tread rectangle size: ({tread_run + nosing_overlap}, {tread_depth})") - def get_tread_data(i): # Check if this is first or last tread with custom run current_tread_run = None @@ -1548,48 +1630,29 @@ class Model(bonsai.core.tool.Model): elif i == number_of_risers - 1 and custom_first_last_tread_run[1] is not None: current_tread_run = custom_first_last_tread_run[1] - print(f"\n Tread {i}:") - print(f" Is first tread: {i == 0}") - print(f" Is last tread: {i == number_of_risers - 1}") - print(f" current_tread_run: {current_tread_run}") - if current_tread_run is not None: tread_offset = default_tread_offset.copy() tread_offset.x = current_tread_run + nosing_tread_gap # Handle zero-width treads if current_tread_run == 0: - print(f" → Zero-width tread, skipping geometry") - print(f" → tread_offset: {tread_offset}") return tread_offset, () tread_verts = get_tread_verts(size=V_(current_tread_run + nosing_overlap, tread_depth)) - print(f" → Custom tread") - print(f" → tread_offset: {tread_offset}") - print(f" → tread_verts: {tread_verts}") - print(f" → tread rectangle size: ({current_tread_run + nosing_overlap}, {tread_depth})") return tread_offset, tread_verts - print(f" → Using default tread") - print(f" → tread_offset: {default_tread_offset}") return default_tread_offset, default_tread_verts # each tread is a separate shape cur_offset = V_(0, 0) tread_index = 0 - print(f"\nGenerating Treads:") - print(f" Number of risers to process: {number_of_risers}") - for i in range(number_of_risers): tread_offset, tread_verts = get_tread_data(i) # Skip adding vertices/edges for zero-width treads if tread_verts: cur_trade_shape = [v + cur_offset + nosing_overlap_offset for v in tread_verts] - print(f" Adding geometry at cur_offset: {cur_offset}") - print(f" Final vertices (after offset): {cur_trade_shape}") - vertices.extend(cur_trade_shape) cur_vertex = tread_index * 4 @@ -1600,19 +1663,9 @@ class Model(bonsai.core.tool.Model): (cur_vertex + 3, cur_vertex), ) edges.extend(verts_to_add) - print(f" Edges added: {verts_to_add}") tread_index += 1 - else: - print(f" Skipped (no geometry)") cur_offset += tread_offset - print(f" New cur_offset: {cur_offset}") - - print(f"\nFinal Results:") - print(f" Total vertices: {len(vertices)}") - print(f" Total edges: {len(edges)}") - print(f" Total treads generated: {tread_index}") - print("-" * 80 + "\n") elif stair_type == "GENERIC": define_generic_stair_treads() @@ -2496,12 +2549,24 @@ class Model(bonsai.core.tool.Model): @classmethod def clean_up_parametric_geometry(cls, obj: bpy.types.Object) -> None: + # Geo nodes are using modifier. modifier = tool.Model.get_epg_modifier(obj) - assert modifier - node_tree = modifier.node_group - assert node_tree - bpy.data.node_groups.remove(node_tree) - obj.modifiers.clear() + if modifier is not None: + node_tree = modifier.node_group + assert node_tree + bpy.data.node_groups.remove(node_tree) + obj.modifiers.clear() + + # Sverchok are changing the mesh data to preview changes. + # TODO: probably should use modifiers with nodes and temp mesh instead. + active_representation = tool.Geometry.get_active_representation(obj) + assert active_representation is not None + bonsai.core.geometry.switch_representation( + tool.Ifc, + tool.Geometry, + obj=obj, + representation=active_representation, + ) @classmethod def get_parametric_geometry_inputs(cls, modifier: bpy.types.NodesModifier) -> list[bpy.types.NodeSocket]: @@ -2513,6 +2578,59 @@ class Model(bonsai.core.tool.Model): return [s for s in group_node.inputs if s.type != "GEOMETRY"] + @classmethod + def get_ifcsverchok_group_node(cls, node_tree: sverchok.node_tree.SverchCustomTree) -> SvGroupTreeNode: + from sverchok.core.node_group import SvGroupTreeNode + + return next(n for n in node_tree.nodes if isinstance(n, SvGroupTreeNode) and n.label == "BBIM_EPG") + + @classmethod + def get_ifcsverchok_shape_output( + cls, node_tree: sverchok.node_tree.SverchCustomTree + ) -> ifcsverchok.nodes.ifc.shape_builder.shape_output.SvSbShapeOutput: + from ifcsverchok.nodes.ifc.shape_builder.shape_output import SvSbShapeOutput + + group_node = cls.get_ifcsverchok_group_node(node_tree) + subtree = group_node.node_tree + return next(n for n in subtree.nodes if isinstance(n, SvSbShapeOutput)) + + @classmethod + def update_mesh_from_sverchok( + cls, obj: bpy.types.Object, node_tree: sverchok.node_tree.SverchCustomTree + ) -> str | None: + """ + :return: ``None`` if successful, otherwise error message. + """ + import ifcsverchok.helper as helper + + output_node = cls.get_ifcsverchok_shape_output(node_tree) + verts = helper.get_socket_value(output_node.outputs, "Vers", value_type="CONTAINER") + edges = helper.get_socket_value(output_node.outputs, "Edgs", value_type="CONTAINER") + faces = helper.get_socket_value(output_node.outputs, "Pols", value_type="CONTAINER") + mesh = obj.data + assert isinstance(mesh, bpy.types.Mesh) + mesh.clear_geometry() + + # `shade_flat=False`, because `from_pydata` is using method that doesn't support changing shading + # during `Panel.draw` execution. We shade flat later ourselves. + mesh.from_pydata(verts, edges, faces, shade_flat=False) + + def _name_convention_attribute_ensure(attributes, name, domain, data_type): + try: + attribute = attributes[name] + except KeyError: + return attributes.new(name, data_type, domain) + if attribute.domain == domain and attribute.data_type == data_type: + return attribute + attributes.remove(attribute) + return attributes.new(name, data_type, domain) + + sharp_faces = _name_convention_attribute_ensure(mesh.attributes, "sharp_face", "FACE", "BOOLEAN") + assert isinstance(sharp_faces, bpy.types.BoolAttribute) + data = sharp_faces.data + ones = np.ones(len(data), dtype=bool) + data.foreach_set("value", ones) + @classmethod def align_objects( cls, @@ -2625,3 +2743,57 @@ class Model(bonsai.core.tool.Model): material.OffsetFromReferenceLine = custom_offset cls.recreate_wall(element, wall) + + @classmethod + def regenerate_slab(cls, obj: bpy.types.Object) -> None: + from bonsai.bim.module.model.slab import DumbSlabPlaner + + element = tool.Ifc.get_entity(obj) + material_set = ifcopenshell.util.element.get_material(element, should_skip_usage=True) + new_thickness = sum([l.LayerThickness for l in material_set.MaterialLayers]) + DumbSlabPlaner().change_thickness(element, new_thickness) + + @classmethod + def regenerate_profile(cls, obj: bpy.types.Object) -> None: + from bonsai.bim.module.model.profile import DumbProfileRecalculator + + DumbProfileRecalculator().recalculate([obj]) + + @classmethod + def run_ifcsverchok_graph_on_bonsai_file(cls, node_tree: sverchok.node_tree.SverchCustomTree) -> None: + from ifcsverchok.ifcstore import SvIfcStore + from sverchok.core.update_system import UpdateTree + + # We should be very careful and use bonsai file just for 1 graph update. + # To avoid producing duplicated data in non-ephemeral file. + SvIfcStore.use_bonsai_file = True + try: + # The ones below refresh asyncronously, so we're using different method to get results synchronously. + # - bpy.ops.node.sverchok_update_context(force_mode=True) + # - node_tree.force_update() + # TODO: Ideally we should find shape output node and update only it's furtherest children. + # Because user might have some nodes just floating around unused. + # ` update_tree = UpdateTree.get(node_tree); update_tree.add_outdated(nodes)` can be used for this. + UpdateTree.reset_tree(node_tree) + nodes_to_update = UpdateTree.main_update(node_tree) + # Consuming generator, which triggers the update. + list(nodes_to_update) + finally: + SvIfcStore.use_bonsai_file = False + + @classmethod + def create_bmesh_from_vertices(cls, vertices, is_closed=False): + bm = bmesh.new() + + new_verts = [bm.verts.new(v) for v in vertices] + if is_closed: + new_edges = [bm.edges.new((new_verts[i], new_verts[i + 1])) for i in range(len(new_verts) - 1)] + new_edges.append( + bm.edges.new((new_verts[-1], new_verts[0])) + ) # Add an edge between the last an first point to make it closed. + else: + new_edges = [bm.edges.new((new_verts[i], new_verts[i + 1])) for i in range(len(new_verts) - 1)] + + bm.verts.index_update() + bm.edges.index_update() + return bm diff --git a/src/bonsai/bonsai/tool/nest.py b/src/bonsai/bonsai/tool/nest.py index 094299c499..a386e402ec 100644 --- a/src/bonsai/bonsai/tool/nest.py +++ b/src/bonsai/bonsai/tool/nest.py @@ -17,11 +17,14 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Union + import bpy +import ifcopenshell.util.element + import bonsai.core.tool import bonsai.tool as tool -import ifcopenshell.util.element -from typing import TYPE_CHECKING, Union if TYPE_CHECKING: from bonsai.bim.module.nest.prop import BIMNestProperties, BIMObjectNestProperties diff --git a/src/bonsai/bonsai/tool/numeric_input.py b/src/bonsai/bonsai/tool/numeric_input.py new file mode 100644 index 0000000000..123cb85f29 --- /dev/null +++ b/src/bonsai/bonsai/tool/numeric_input.py @@ -0,0 +1,168 @@ +# Bonsai - OpenBIM Blender Add-on +# Copyright (C) 2021 Dion Moult +# +# This file is part of Bonsai. +# +# Bonsai is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Bonsai is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Bonsai. If not, see . + +from dataclasses import dataclass, field +from typing import Literal, Protocol + +ModalResult = Literal["RUNNING_MODAL", "FINISHED", "CANCELLED"] + + +class IntegerInputOperator(Protocol): + """Protocol for operators using IntegerInputState.""" + + _input: "IntegerInputState" + + def _apply_value(self, context) -> None: ... + def _restore_value(self, context) -> None: ... + def _format_header(self) -> str: ... + + +@dataclass +class IntegerInputState: + """State for keyboard integer input during modal operations.""" + + characters: list[str] = field(default_factory=list) + is_valid: bool = True + min_value: int = 1 + _user_started_typing: bool = False + + @classmethod + def from_value(cls, value: int, min_value: int = 1) -> "IntegerInputState": + """Create state initialized with an existing value.""" + return cls( + characters=list(str(value)), + is_valid=True, + min_value=min_value, + _user_started_typing=False, + ) + + def get_input_string(self) -> str: + return "".join(self.characters) + + def get_value(self) -> int | None: + """Return parsed integer value, or None if invalid.""" + if not self.characters: + return None + try: + value = int(self.get_input_string()) + return value if value >= self.min_value else None + except ValueError: + return None + + def handle_digit(self, digit: str) -> None: + """Handle a digit key press.""" + if not self._user_started_typing: + self.characters.clear() + self._user_started_typing = True + self.characters.append(digit) + self._update_validity() + + def handle_backspace(self) -> None: + """Handle backspace key press.""" + self._user_started_typing = True + if self.characters: + self.characters.pop() + self._update_validity() + + def _update_validity(self) -> None: + """Update is_valid based on current input.""" + self.is_valid = self.get_value() is not None + + +def handle_numeric_event(state: IntegerInputState, event) -> tuple[bool, ModalResult | None]: + """ + Process a Blender event for numeric input. + + Returns: + (handled, result): + - handled: True if the event was consumed + - result: "FINISHED", "CANCELLED", or None if still running + """ + if event.value != "PRESS": + return False, None + + # Digit input + if event.ascii and event.ascii in "0123456789": + state.handle_digit(event.ascii) + return True, None + + # Backspace + if event.type == "BACK_SPACE": + state.handle_backspace() + return True, None + + # Confirm + if event.type in {"RET", "NUMPAD_ENTER"}: + if state.is_valid: + return True, "FINISHED" + return True, None # Invalid - don't confirm yet + + # Click confirm + if event.type == "LEFTMOUSE": + if state.characters and state.is_valid: + return True, "FINISHED" + return True, "FINISHED" # Empty or invalid - still finish + + # Cancel + if event.type in {"ESC", "RIGHTMOUSE"}: + return True, "CANCELLED" + + return False, None + + +def run_integer_input_modal(op: IntegerInputOperator, context, event) -> set[str]: + """ + Run the modal loop for an integer input operator. + + The operator must implement: + - _input: IntegerInputState + - _apply_value(context): Apply the current input value + - _restore_value(context): Restore original value on cancel + - _format_header(): Return the header string to display + + Returns the Blender modal return set (e.g., {"RUNNING_MODAL"}). + """ + handled, result = handle_numeric_event(op._input, event) + + if handled: + if result == "FINISHED": + op._apply_value(context) + cleanup_header(context) + return {"FINISHED"} + elif result == "CANCELLED": + op._restore_value(context) + cleanup_header(context) + return {"CANCELLED"} + else: + op._apply_value(context) + update_header(context, op._format_header()) + return {"RUNNING_MODAL"} + + return {"RUNNING_MODAL"} + + +def update_header(context, text: str) -> None: + """Update the area header text.""" + if context.area: + context.area.header_text_set(text) + + +def cleanup_header(context) -> None: + """Clear the area header text.""" + if context.area: + context.area.header_text_set(None) diff --git a/src/bonsai/bonsai/tool/owner.py b/src/bonsai/bonsai/tool/owner.py index 615fd64db8..9ed0bda219 100644 --- a/src/bonsai/bonsai/tool/owner.py +++ b/src/bonsai/bonsai/tool/owner.py @@ -17,12 +17,15 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Any, Literal, Union, assert_never + import bpy +import ifcopenshell + +import bonsai.bim.helper import bonsai.core.tool import bonsai.tool as tool -import bonsai.bim.helper -import ifcopenshell -from typing import Union, Any, TYPE_CHECKING, Literal, assert_never if TYPE_CHECKING: from bonsai.bim.module.owner.prop import BIMOwnerProperties diff --git a/src/bonsai/bonsai/tool/patch.py b/src/bonsai/bonsai/tool/patch.py index eb2b514173..6ae06b5e10 100644 --- a/src/bonsai/bonsai/tool/patch.py +++ b/src/bonsai/bonsai/tool/patch.py @@ -17,11 +17,14 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Any + import bpy import ifcopenshell import ifcpatch + import bonsai.core.tool -from typing import Any, TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.patch.prop import BIMPatchProperties diff --git a/src/bonsai/bonsai/tool/polyline.py b/src/bonsai/bonsai/tool/polyline.py index e4132c62d2..b288260d7d 100644 --- a/src/bonsai/bonsai/tool/polyline.py +++ b/src/bonsai/bonsai/tool/polyline.py @@ -16,19 +16,21 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bmesh import math +from dataclasses import dataclass, field +from math import cos, degrees, radians, sin, tan +from typing import Literal, Optional, Union + +import bmesh +import bpy import ifcopenshell import ifcopenshell.util.unit +from lark import Lark, Transformer +from mathutils import Matrix, Vector + import bonsai.core.tool import bonsai.tool as tool from bonsai.bim.module.drawing.helper import format_distance -from dataclasses import dataclass, field -from lark import Lark, Transformer -from math import degrees, radians, sin, cos, tan -from mathutils import Vector, Matrix -from typing import Optional, Union, Literal class Polyline(bonsai.core.tool.Polyline): @@ -172,23 +174,24 @@ class Polyline(bonsai.core.tool.Polyline): angle = tool.Cad.angle_3_vectors( second_to_last_point, last_point, mouse_vector, new_angle=None, degrees=True ) + angle_round_threshold = 1000 # Avoids rounding when distance is too big # Round angle to the nearest 0.05 - angle = round(angle / 0.05) * 0.05 + angle = round(angle / 0.05) * 0.05 if distance < angle_round_threshold else angle orientation_angle = tool.Cad.angle_3_vectors( world_second_to_last_point, last_point, mouse_vector, new_angle=None, degrees=True ) # Round angle to the nearest 0.05 - orientation_angle = round(orientation_angle / 0.05) * 0.05 + orientation_angle = round(orientation_angle / 0.05) * 0.05 if distance < angle_round_threshold else angle if distance == 0: angle = 0 orientation_angle = 0 if input_ui: if should_round: - angle = 5 * round(angle / 5) + angle = 5 * round(angle / 5) if distance < angle_round_threshold else angle factor = tool.Snap.get_increment_snap_value(context) distance = factor * round(distance / factor) input_ui.set_value("X", mouse_vector.x) diff --git a/src/bonsai/bonsai/tool/profile.py b/src/bonsai/bonsai/tool/profile.py index cfb36a06ab..99d2164a32 100644 --- a/src/bonsai/bonsai/tool/profile.py +++ b/src/bonsai/bonsai/tool/profile.py @@ -17,22 +17,25 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Union + import bpy import ifcopenshell import ifcopenshell.api.profile import ifcopenshell.geom import ifcopenshell.ifcopenshell_wrapper as W import ifcopenshell.util.element -import ifcopenshell.util.unit import ifcopenshell.util.placement import ifcopenshell.util.representation import ifcopenshell.util.shape +import ifcopenshell.util.unit import numpy as np +import PIL.ImageDraw + import bonsai.core.tool import bonsai.tool as tool -import PIL.ImageDraw from bonsai.bim.module.model.decorator import ProfileDecorator -from typing import Union, TYPE_CHECKING if TYPE_CHECKING: import bonsai.bim.module.profile.prop diff --git a/src/bonsai/bonsai/tool/project.py b/src/bonsai/bonsai/tool/project.py index bc2616fb15..d4df4c80de 100644 --- a/src/bonsai/bonsai/tool/project.py +++ b/src/bonsai/bonsai/tool/project.py @@ -17,26 +17,30 @@ # along with Bonsai. If not, see . from __future__ import annotations + import os +import shutil +from collections import defaultdict +from pathlib import Path +from typing import TYPE_CHECKING, NamedTuple, Optional, Union + import bpy import ifcopenshell import ifcopenshell.api.document import ifcopenshell.util.element import ifcopenshell.util.representation import ifcopenshell.util.unit +from ifcopenshell.api.project.append_asset import APPENDABLE_ASSET_TYPES + +import bonsai.bim.schema import bonsai.core.aggregate import bonsai.core.context -import bonsai.core.tool -import bonsai.core.root -import bonsai.core.unit import bonsai.core.owner -import bonsai.bim.schema +import bonsai.core.root +import bonsai.core.tool +import bonsai.core.unit import bonsai.tool as tool -from collections import defaultdict from bonsai.bim.ifc import IfcStore -from ifcopenshell.api.project.append_asset import APPENDABLE_ASSET_TYPES -from pathlib import Path -from typing import NamedTuple, Optional, Union, TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.project.prop import BIMProjectProperties, MeasureToolSettings @@ -502,3 +506,76 @@ class Project(bonsai.core.tool.Project): d2 = v3 - v2 normals.append((v1, d1.cross(d2).normalized())) return normals + + TEMP_PROJECT_PATH = Path.cwd() / "test/files/temp/test_project.ifc" + + @classmethod + def save_test_project(cls) -> None: + tmp = cls.TEMP_PROJECT_PATH.parent + # Clean up previous test project to avoid conflicts with non-updated assets. + if tmp.exists(): + shutil.rmtree(tmp) + bpy.ops.bim.save_project(filepath=cls.TEMP_PROJECT_PATH.__str__(), should_save_as=True) + + @classmethod + def get_metadata_document_information(cls) -> Optional[ifcopenshell.entity_instance]: + ifc_file = tool.Ifc.get() + if not ifc_file: + return None + for doc in ifc_file.by_type("IfcDocumentInformation"): + if getattr(doc, "Scope", None) == "BLEND_METADATA": + return doc + return None + + @classmethod + def create_metadata_document_information(cls, metadata_filename: str) -> ifcopenshell.entity_instance: + ifc_file = tool.Ifc.get() + if not ifc_file: + raise Exception("No IFC file loaded") + + doc = tool.Ifc.run("document.add_information", parent=None) + + if ifc_file.schema == "IFC2X3": + tool.Ifc.run( + "document.edit_information", + information=doc, + attributes={ + "DocumentId": "BLEND_METADATA", + "Name": "Blend Metadata", + "Scope": "BLEND_METADATA", + "Description": "References to blend metadata file for this IFC project", + "Location": metadata_filename, + }, + ) + else: + tool.Ifc.run( + "document.edit_information", + information=doc, + attributes={ + "Identification": "BLEND_METADATA", + "Name": "Blend Metadata", + "Scope": "BLEND_METADATA", + "Description": "References to blend metadata file for this IFC project", + "Location": metadata_filename, + }, + ) + + return doc + + @classmethod + def update_metadata_document_information(cls, metadata_filename: str) -> None: + doc = cls.get_metadata_document_information() + if not doc: + return + + ifc_file = tool.Ifc.get() + if not ifc_file: + return + + tool.Ifc.run("document.edit_information", information=doc, attributes={"Location": metadata_filename}) + + @classmethod + def remove_metadata_document_information(cls) -> None: + doc = cls.get_metadata_document_information() + if doc: + tool.Ifc.run("document.remove_information", information=doc) diff --git a/src/bonsai/bonsai/tool/pset.py b/src/bonsai/bonsai/tool/pset.py index b6901238ba..8eabcd155d 100644 --- a/src/bonsai/bonsai/tool/pset.py +++ b/src/bonsai/bonsai/tool/pset.py @@ -17,27 +17,29 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Any, Literal, Union, assert_never + import bpy import ifcopenshell import ifcopenshell.api.pset import ifcopenshell.util.attribute import ifcopenshell.util.element + import bonsai.bim.helper +import bonsai.bim.schema import bonsai.core.tool import bonsai.tool as tool -import bonsai.bim.schema -from typing import Union, Literal, Any, TYPE_CHECKING, assert_never - if TYPE_CHECKING: - from bonsai.bim.prop import Attribute from bonsai.bim.module.pset.prop import ( - PsetProperties, - GlobalPsetProperties, AddEditPropertyEntry, - RenamePropertyEntry, DeletePsetEntry, + GlobalPsetProperties, + PsetProperties, + RenamePropertyEntry, ) + from bonsai.bim.prop import Attribute class Pset(bonsai.core.tool.Pset): diff --git a/src/bonsai/bonsai/tool/pset_template.py b/src/bonsai/bonsai/tool/pset_template.py index 3da6dad2e5..e4c1c3dbe1 100644 --- a/src/bonsai/bonsai/tool/pset_template.py +++ b/src/bonsai/bonsai/tool/pset_template.py @@ -17,16 +17,19 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from pathlib import Path +from typing import TYPE_CHECKING, Literal, final + import bpy import ifcopenshell import ifcopenshell.api.pset_template import ifcopenshell.util.attribute import ifcopenshell.util.element + +import bonsai.bim import bonsai.core.tool import bonsai.tool as tool -import bonsai.bim -from pathlib import Path -from typing import Literal, final, TYPE_CHECKING from bonsai.bim.ifc import IfcStore if TYPE_CHECKING: @@ -61,19 +64,23 @@ class PsetTemplate(bonsai.core.tool.PsetTemplate): tool.Ifc.Operator._execute(self, context) @classmethod - def add_pset_as_template( - cls, pset: ifcopenshell.entity_instance, template_file: ifcopenshell.file - ) -> ifcopenshell.entity_instance: - # TODO: add tests. - pset_template = ifcopenshell.api.pset_template.add_pset_template(template_file, pset.Name) - for property in pset.HasProperties: - ifcopenshell.api.pset_template.add_prop_template( - template_file, - pset_template, - name=property.Name, - description=property.Description, - primary_measure_type=property.NominalValue.is_a(), - ) + def add_pset_as_template(cls, pset_name: str, template_file: ifcopenshell.file) -> ifcopenshell.entity_instance: + added_prop_names = set() + pset_template = ifcopenshell.api.pset_template.add_pset_template(template_file, pset_name) + for pset in tool.Ifc.get().by_type("IfcPropertySet"): + if pset.Name != pset_name: + continue + for prop in pset.HasProperties: + if prop.Name in added_prop_names: + continue + added_prop_names.add(prop.Name) + ifcopenshell.api.pset_template.add_prop_template( + template_file, + pset_template, + name=prop.Name, + description=prop.Description, + primary_measure_type=prop.NominalValue.is_a(), + ) return pset_template @classmethod diff --git a/src/bonsai/bonsai/tool/qto.py b/src/bonsai/bonsai/tool/qto.py index 0efa759335..4fd271b283 100644 --- a/src/bonsai/bonsai/tool/qto.py +++ b/src/bonsai/bonsai/tool/qto.py @@ -17,15 +17,18 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Any, Literal, Optional, Union + import bpy -import bonsai.core.tool -import bonsai.bim.schema -import bonsai.tool as tool import ifcopenshell -import ifcopenshell.util.unit import ifcopenshell.util.element +import ifcopenshell.util.unit from mathutils import Vector -from typing import Optional, Union, Literal, TYPE_CHECKING, Any + +import bonsai.bim.schema +import bonsai.core.tool +import bonsai.tool as tool if TYPE_CHECKING: from bonsai.bim.module.qto.prop import BIMQtoProperties diff --git a/src/bonsai/bonsai/tool/raycast.py b/src/bonsai/bonsai/tool/raycast.py index c3d35f7bcb..ee06066dd7 100644 --- a/src/bonsai/bonsai/tool/raycast.py +++ b/src/bonsai/bonsai/tool/raycast.py @@ -16,16 +16,18 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +import copy +from typing import Union + import bmesh import bpy -import copy +import mathutils import numpy as np from bpy_extras import view3d_utils +from mathutils import Vector + import bonsai.core.tool import bonsai.tool as tool -import mathutils -from mathutils import Vector -from typing import Union class Raycast(bonsai.core.tool.Raycast): @@ -93,7 +95,7 @@ class Raycast(bonsai.core.tool.Raycast): return None for v in bbox: - coord_2d = view3d_utils.location_3d_to_region_2d(context.region, context.space_data.region_3d, v) + coord_2d = tool.Cad.location_3d_to_region_2d_np(context.region, context.space_data.region_3d, v) if coord_2d is not None: transposed_bbox.append(coord_2d) @@ -180,8 +182,11 @@ class Raycast(bonsai.core.tool.Raycast): if not mouse_pos: mouse_pos = event.mouse_region_x, event.mouse_region_y - view_vector = view3d_utils.region_2d_to_vector_3d(region, rv3d, mouse_pos) - ray_origin = view3d_utils.region_2d_to_origin_3d(region, rv3d, mouse_pos) + view_vector = tool.Cad.region_2d_to_vector_3d_np(region, rv3d, mouse_pos) + ray_origin = tool.Cad.region_2d_to_origin_3d_np( + region, rv3d, mouse_pos, clamp=10 + ) # TODO clamp is hardcoded but might be necessary to adapt + ray_target = ray_origin + view_vector ray_direction = ray_target - ray_origin @@ -247,7 +252,7 @@ class Raycast(bonsai.core.tool.Raycast): snap_threshold = cls.calculate_snap_threshold(rv3d.view_distance) try: - loc = view3d_utils.region_2d_to_location_3d(region, rv3d, mouse_pos, ray_direction) + loc = tool.Cad.region_2d_to_location_3d_np(region, rv3d, mouse_pos, ray_direction) except: loc = Vector((0, 0, 0)) @@ -267,7 +272,9 @@ class Raycast(bonsai.core.tool.Raycast): points.append(snap_point) return points if obj and obj.type == "CURVE": + mw = obj.matrix_world.copy() obj = bpy.data.objects.new("new_object", obj.to_mesh().copy()) + obj.matrix_world = mw @ obj.matrix_world if not custom_bmesh: bm = bmesh.new() @@ -340,7 +347,7 @@ class Raycast(bonsai.core.tool.Raycast): snap_threshold = cls.calculate_snap_threshold(rv3d.view_distance) try: - loc = view3d_utils.region_2d_to_location_3d(region, rv3d, mouse_pos, ray_direction) + loc = tool.Cad.region_2d_to_location_3d_np(region, rv3d, mouse_pos, ray_direction) except: loc = Vector((0, 0, 0)) @@ -399,8 +406,8 @@ class Raycast(bonsai.core.tool.Raycast): default_container_elevation = 0.0 intersection = Vector((0, 0, default_container_elevation)) try: - loc = view3d_utils.region_2d_to_location_3d(region, rv3d, mouse_pos, ray_direction) - intersection = mathutils.geometry.intersect_line_plane(ray_target, loc, plane_origin, plane_normal) + loc = tool.Cad.region_2d_to_location_3d_np(region, rv3d, mouse_pos, ray_direction) + intersection = tool.Cad.intersect_edge_plane_v2(ray_target, loc, plane_origin, plane_normal) except: intersection = Vector((0, 0, default_container_elevation)) @@ -418,7 +425,7 @@ class Raycast(bonsai.core.tool.Raycast): snap_threshold = cls.calculate_snap_threshold(rv3d.view_distance) try: - loc = view3d_utils.region_2d_to_location_3d(region, rv3d, mouse_pos, ray_direction) + loc = tool.Cad.region_2d_to_location_3d_np(region, rv3d, mouse_pos, ray_direction) except: loc = Vector((0, 0, 0)) diff --git a/src/bonsai/bonsai/tool/resource.py b/src/bonsai/bonsai/tool/resource.py index 425dce1a76..c64b7b503b 100644 --- a/src/bonsai/bonsai/tool/resource.py +++ b/src/bonsai/bonsai/tool/resource.py @@ -19,25 +19,31 @@ # ############################################################################ # from __future__ import annotations -import bpy -import bonsai.core.tool -import bonsai.tool as tool -import bonsai.bim.helper + import json import time -import isodate from datetime import datetime +from typing import TYPE_CHECKING, Any, Literal, Union + +import bpy import ifcopenshell.api.pset import ifcopenshell.api.resource -import ifcopenshell.util.date as ifcdateutils -import ifcopenshell.util.cost -import ifcopenshell.util.resource import ifcopenshell.util.constraint -from typing import Any, Union, TYPE_CHECKING, Literal +import ifcopenshell.util.cost +import ifcopenshell.util.date as ifcdateutils +import ifcopenshell.util.resource +import isodate + +import bonsai.bim.helper +import bonsai.core.tool +import bonsai.tool as tool if TYPE_CHECKING: + from bonsai.bim.module.resource.prop import ( + BIMResourceProductivity, + BIMResourceProperties, + ) from bonsai.bim.prop import Attribute - from bonsai.bim.module.resource.prop import BIMResourceProperties, BIMResourceProductivity class Resource(bonsai.core.tool.Resource): diff --git a/src/bonsai/bonsai/tool/root.py b/src/bonsai/bonsai/tool/root.py index 22e8b42d81..be7e350adc 100644 --- a/src/bonsai/bonsai/tool/root.py +++ b/src/bonsai/bonsai/tool/root.py @@ -17,6 +17,9 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Any, Literal, Optional, Union + import bpy import ifcopenshell import ifcopenshell.api @@ -24,16 +27,16 @@ import ifcopenshell.api.feature import ifcopenshell.api.geometry import ifcopenshell.api.root import ifcopenshell.api.style -import ifcopenshell.util.representation import ifcopenshell.util.element import ifcopenshell.util.placement -import bonsai.core.tool +import ifcopenshell.util.representation + import bonsai.core.aggregate import bonsai.core.geometry +import bonsai.core.tool import bonsai.tool as tool -from typing import Union, Optional, Any, Literal, TYPE_CHECKING -from bonsai.bim.module.spatial.decorator import GridDecorator from bonsai.bim.module.geometry.decorator import ItemDecorator +from bonsai.bim.module.spatial.decorator import GridDecorator if TYPE_CHECKING: from bonsai.bim.module.root.prop import BIMRootProperties @@ -91,16 +94,38 @@ class Root(bonsai.core.tool.Root): elif dest.is_a("IfcTypeProduct"): if not source.RepresentationMaps: return copied_entities - dest.RepresentationMaps = [ - ifcopenshell.util.element.copy_deep( - tool.Ifc.get(), - m, - exclude=["IfcGeometricRepresentationContext"], - exclude_callback=exclude_callback, - copied_entities=copied_entities, - ) - for m in source.RepresentationMaps - ] + + # Copy representation maps while preserving mapped representation structures + new_maps = [] + for i, rep_map in enumerate(source.RepresentationMaps): + source_rep = rep_map.MappedRepresentation + + # Copy the map itself + new_map = ifcopenshell.util.element.copy(tool.Ifc.get(), rep_map) + + # Handle the mapped representation - preserve mapping structure if present + if ( + source_rep.RepresentationType == "MappedRepresentation" + and len(source_rep.Items) == 1 + and source_rep.Items[0].is_a("IfcMappedItem") + ): + # This is a mapped representation - preserve the structure + new_rep = ifcopenshell.util.element.copy(tool.Ifc.get(), source_rep) + new_rep.Items = [ifcopenshell.util.element.copy(tool.Ifc.get(), item) for item in source_rep.Items] + new_map.MappedRepresentation = new_rep + else: + # Not a mapped representation - use copy_deep as before + new_map.MappedRepresentation = ifcopenshell.util.element.copy_deep( + tool.Ifc.get(), + source_rep, + exclude=["IfcGeometricRepresentationContext"], + exclude_callback=exclude_callback, + copied_entities=copied_entities, + ) + + new_maps.append(new_map) + + dest.RepresentationMaps = new_maps return copied_entities @classmethod diff --git a/src/bonsai/bonsai/tool/search.py b/src/bonsai/bonsai/tool/search.py index 29e862b6b0..ffd3a1aef3 100644 --- a/src/bonsai/bonsai/tool/search.py +++ b/src/bonsai/bonsai/tool/search.py @@ -17,20 +17,23 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy + import json -import lark -import bonsai.tool as tool -import bonsai.core.tool +from itertools import cycle +from typing import TYPE_CHECKING, Literal, Union + +import bpy import ifcopenshell.guid import ifcopenshell.util.selector -from itertools import cycle +import lark + +import bonsai.core.tool +import bonsai.tool as tool from bonsai.bim.prop import BIMFacet -from typing import Union, Literal, TYPE_CHECKING if TYPE_CHECKING: - from bonsai.bim.prop import BIMFilterGroup from bonsai.bim.module.search.prop import BIMSearchProperties + from bonsai.bim.prop import BIMFilterGroup class Search(bonsai.core.tool.Search): @@ -42,6 +45,38 @@ class Search(bonsai.core.tool.Search): def get_group_query(cls, group: ifcopenshell.entity_instance) -> str: return json.loads(group.Description)["query"] + @classmethod + def get_group_data(cls, group: ifcopenshell.entity_instance) -> dict: + return json.loads(group.Description) + + @classmethod + def import_filter_structure( + cls, filter_structure: list, filter_groups: bpy.types.bpy_prop_collection_idprop[BIMFilterGroup] + ) -> None: + filter_groups.clear() + + for group_data in filter_structure: + if not isinstance(group_data, list): + continue + + filter_group = filter_groups.add() + + for filter_data in group_data: + if not isinstance(filter_data, dict): + continue + + ifc_filter = filter_group.filters.add() + ifc_filter.type = filter_data.get("type", "") + ifc_filter.name = filter_data.get("name", "") + ifc_filter.value = filter_data.get("value", "") + ifc_filter.pset = filter_data.get("pset", "") + ifc_filter.comparison = filter_data.get("comparison", "=") + filter_mode = filter_data.get("filter_mode", "ADD") + if filter_mode in ["ADD", "SUBTRACT", "FILTER"]: + ifc_filter.filter_mode = filter_mode + else: + ifc_filter.filter_mode = "ADD" + FilterModule = Union[Literal["search", "csv", "diff", "drawing_include", "drawing_exclude"], str] @classmethod @@ -80,53 +115,238 @@ class Search(bonsai.core.tool.Search): for ifc_filter in filter_group.filters: if not ifc_filter.value: continue - if ifc_filter.type == "instance": - if "bpy.data.texts" in ifc_filter.value: - data_name = ifc_filter.value.split("bpy.data.texts")[1][2:-2] - filter_group_query.append(bpy.data.texts[data_name].as_string()) - else: - filter_group_query.append(ifc_filter.value) - elif ifc_filter.type == "entity": - filter_group_query.append(ifc_filter.value) - elif ifc_filter.type == "attribute": - if not ifc_filter.name: - continue - comparison, value = cls.get_comparison_and_value(ifc_filter) - filter_group_query.append(f"{ifc_filter.name}{comparison}{value}") - elif ifc_filter.type == "type": - comparison, value = cls.get_comparison_and_value(ifc_filter) - filter_group_query.append(f"type{comparison}{value}") - elif ifc_filter.type == "material": - comparison, value = cls.get_comparison_and_value(ifc_filter) - filter_group_query.append(f"material{comparison}{value}") - elif ifc_filter.type == "property": - if not ifc_filter.pset or not ifc_filter.name: - continue - pset = cls.wrap_value(ifc_filter, ifc_filter.pset) - name = cls.wrap_value(ifc_filter, ifc_filter.name) - comparison = ifc_filter.comparison - value = cls.wrap_value(ifc_filter, ifc_filter.value) - filter_group_query.append(f"{pset}.{name} {comparison} {value}") - elif ifc_filter.type == "classification": - comparison, value = cls.get_comparison_and_value(ifc_filter) - filter_group_query.append(f"classification{comparison}{value}") - elif ifc_filter.type == "location": - comparison, value = cls.get_comparison_and_value(ifc_filter) - filter_group_query.append(f"location{comparison}{value}") - elif ifc_filter.type == "group": - comparison, value = cls.get_comparison_and_value(ifc_filter) - filter_group_query.append(f"group{comparison}{value}") - elif ifc_filter.type == "parent": - comparison, value = cls.get_comparison_and_value(ifc_filter) - filter_group_query.append(f"parent{comparison}{value}") - elif ifc_filter.type == "query": - keys = cls.wrap_value(ifc_filter, ifc_filter.name) - comparison = ifc_filter.comparison or "=" - value = cls.wrap_value(ifc_filter, ifc_filter.value) - filter_group_query.append(f"query:{keys}{comparison}{value}") - query.append(", ".join(filter_group_query)) + + query_part = cls._export_single_filter(ifc_filter) + if query_part: + filter_group_query.append(query_part) + + if filter_group_query: + query.append(", ".join(filter_group_query)) return " + ".join(query) + @classmethod + def _export_single_filter(cls, ifc_filter: BIMFacet) -> str: + preferences = tool.Blender.get_addon_preferences() + + if ifc_filter.type == "instance": + if "bpy.data.texts" in ifc_filter.value: + data_name = ifc_filter.value.split("bpy.data.texts")[1][2:-2] + value = bpy.data.texts[data_name].as_string() + else: + value = ifc_filter.value + + if preferences.chain_filter_with_set_operations: + value = value.lstrip("!") + if ifc_filter.filter_mode == "SUBTRACT": + value = f"!{value}" + return value + + elif ifc_filter.type == "entity": + value = ifc_filter.value + + if preferences.chain_filter_with_set_operations: + value = value.lstrip("!") + if ifc_filter.filter_mode == "SUBTRACT": + value = f"!{value}" + return value + elif ifc_filter.type == "attribute": + if not ifc_filter.name: + return "" + comparison, value = cls.get_comparison_and_value(ifc_filter) + return f"{ifc_filter.name}{comparison}{value}" + elif ifc_filter.type == "type": + comparison, value = cls.get_comparison_and_value(ifc_filter) + return f"type{comparison}{value}" + elif ifc_filter.type == "material": + comparison, value = cls.get_comparison_and_value(ifc_filter) + return f"material{comparison}{value}" + elif ifc_filter.type == "property": + if not ifc_filter.pset or not ifc_filter.name: + return "" + pset = cls.wrap_value(ifc_filter, ifc_filter.pset) + name = cls.wrap_value(ifc_filter, ifc_filter.name) + comparison = ifc_filter.comparison + value = cls.wrap_value(ifc_filter, ifc_filter.value) + return f"{pset}.{name} {comparison} {value}" + elif ifc_filter.type == "classification": + comparison, value = cls.get_comparison_and_value(ifc_filter) + return f"classification{comparison}{value}" + elif ifc_filter.type == "location": + comparison, value = cls.get_comparison_and_value(ifc_filter) + return f"location{comparison}{value}" + elif ifc_filter.type == "group": + comparison, value = cls.get_comparison_and_value(ifc_filter) + return f"group{comparison}{value}" + elif ifc_filter.type == "parent": + comparison, value = cls.get_comparison_and_value(ifc_filter) + return f"parent{comparison}{value}" + elif ifc_filter.type == "query": + keys = cls.wrap_value(ifc_filter, ifc_filter.name) + comparison = ifc_filter.comparison or "=" + value = cls.wrap_value(ifc_filter, ifc_filter.value) + return f"query:{keys}{comparison}{value}" + return "" + + @classmethod + def execute_filter_groups(cls, filter_groups: bpy.types.bpy_prop_collection_idprop[BIMFilterGroup]) -> set: + """ + Execute filter groups with simplified chaining support. + Within a single group chain, all filters chain sequentially with ADD/SUBTRACT/FILTER modes. + Groups are combined with union (same as original " + " behavior). + """ + preferences = tool.Blender.get_addon_preferences() + + all_group_results = [] + + for group_idx, filter_group in enumerate(filter_groups): + group_results = set() + + for filter_index, ifc_filter in enumerate(filter_group.filters): + if not ifc_filter.value: + continue + + query = cls._export_single_filter(ifc_filter) + if not query: + continue + + if filter_index == 0: + mode = "ADD" + else: + if preferences.chain_filter_with_set_operations: + mode = ifc_filter.filter_mode + else: + mode = "FILTER" if group_results else "ADD" + + if mode == "ADD": + results = ifcopenshell.util.selector.filter_elements(tool.Ifc.get(), query) + group_results.update(results) + + elif mode == "SUBTRACT": + if group_results: + query_without_prefix = query[1:] if query.startswith("!") else query + elements_to_remove = ifcopenshell.util.selector.filter_elements( + tool.Ifc.get(), query_without_prefix, elements=group_results + ) + group_results -= elements_to_remove + else: + results = ifcopenshell.util.selector.filter_elements(tool.Ifc.get(), query) + group_results.update(results) + + elif mode == "FILTER": + if group_results: + results = ifcopenshell.util.selector.filter_elements( + tool.Ifc.get(), query, elements=group_results + ) + group_results = results + else: + results = ifcopenshell.util.selector.filter_elements(tool.Ifc.get(), query) + group_results.update(results) + + if group_results: + all_group_results.append(group_results) + + final_results = set() + for group_results in all_group_results: + final_results.update(group_results) + + return final_results + + @classmethod + def execute_filter_groups_from_json( + cls, data: dict, ifc_file: ifcopenshell.file + ) -> set[ifcopenshell.entity_instance]: + """Execute filter groups from JSON data with filter_structure + + This is used by drawing include/exclude to properly handle ADD/SUBTRACT/FILTER modes + without needing to instantiate Blender property groups. + """ + filter_structure = data.get("filter_structure", []) + + all_group_results = [] + for group_data in filter_structure: + group_results = set() + + for filter_data in group_data: + filter_mode = filter_data.get("filter_mode", "ADD") + filter_type = filter_data.get("type", "") + value = filter_data.get("value", "") + + if not filter_type or not value: + continue + + query_part = None + if filter_type == "entity": + query_part = value + elif filter_type == "attribute": + name = filter_data.get("name", "") + if not name: + continue + comparison = filter_data.get("comparison", "=") + query_part = f"{name}{comparison}{cls._wrap_json_value(value)}" + elif filter_type == "property": + pset = filter_data.get("pset", "") + name = filter_data.get("name", "") + if not pset or not name: + continue + comparison = filter_data.get("comparison", " = ") + wrapped_pset = cls._wrap_json_value(pset) + wrapped_name = cls._wrap_json_value(name) + wrapped_value = cls._wrap_json_value(value) + query_part = f"{wrapped_pset}.{wrapped_name} {comparison} {wrapped_value}" + elif filter_type == "type": + query_part = f"type={cls._wrap_json_value(value)}" + elif filter_type == "material": + query_part = f"material={cls._wrap_json_value(value)}" + elif filter_type == "classification": + query_part = f"classification={cls._wrap_json_value(value)}" + elif filter_type == "location": + query_part = f"location={cls._wrap_json_value(value)}" + elif filter_type == "group": + query_part = f"group={cls._wrap_json_value(value)}" + elif filter_type == "parent": + query_part = f"parent={cls._wrap_json_value(value)}" + elif filter_type == "query": + name = filter_data.get("name", "") + if not name: + continue + keys = cls._wrap_json_value(name) + comparison = filter_data.get("comparison", "=") + wrapped_value = cls._wrap_json_value(value) + query_part = f"query:{keys}{comparison}{wrapped_value}" + elif filter_type == "instance": + query_part = value + + if not query_part: + continue + + if filter_mode == "FILTER" and group_results: + results = ifcopenshell.util.selector.filter_elements(ifc_file, query_part, elements=group_results) + group_results = results + elif filter_mode == "SUBTRACT": + results = ifcopenshell.util.selector.filter_elements(ifc_file, query_part) + group_results -= results + else: # ADD + results = ifcopenshell.util.selector.filter_elements(ifc_file, query_part) + group_results.update(results) + + if group_results: + all_group_results.append(group_results) + + final_results = set() + for group_results in all_group_results: + final_results.update(group_results) + + return final_results + + @classmethod + def _wrap_json_value(cls, value: str) -> str: + """Wrap value for use in query string""" + if value.startswith("/") and value.endswith("/"): + return value + elif value in ("NULL", "TRUE", "FALSE"): + return value + return '"' + value.replace('"', '\\"') + '"' + @classmethod def get_comparison_and_value( cls, ifc_filter: BIMFacet @@ -349,7 +569,8 @@ class ImportFilterQueryTransformer(lark.Transformer): def facet_list(self, args): new = self.filter_groups.add() global_ids = [] - for arg in args: + is_first_group = len(self.filter_groups) == 1 + for filter_index, arg in enumerate(args): if arg["type"] == "instance" and global_ids: if "bpy.data.texts" in new2.value: data_name = new2.value.split("bpy.data.texts")[1][2:-2] @@ -374,21 +595,26 @@ class ImportFilterQueryTransformer(lark.Transformer): new2.pset = arg["pset"] if "comparison" in arg: new2.comparison = arg["comparison"] or "=" + if "filter_mode" in arg: + new2.filter_mode = arg["filter_mode"] + elif not is_first_group and filter_index == 0 and arg["type"] in ("entity", "instance"): + if arg.get("filter_mode", "ADD") != "SUBTRACT": + new2.filter_mode = "FILTER" def facet(self, args): return args[0] def instance(self, args): if args[0].data == "not": - return {"type": "instance", "value": "!" + args[1].children[0].value} + return {"type": "instance", "value": args[1].children[0].value, "filter_mode": "SUBTRACT"} else: - return {"type": "instance", "value": args[0].children[0].value} + return {"type": "instance", "value": args[0].children[0].value, "filter_mode": "ADD"} def entity(self, args): if args[0].data == "not": - return {"type": "entity", "value": "!" + args[1].children[0].value} + return {"type": "entity", "value": args[1].children[0].value, "filter_mode": "SUBTRACT"} else: - return {"type": "entity", "value": args[0].children[0].value} + return {"type": "entity", "value": args[0].children[0].value, "filter_mode": "ADD"} def attribute(self, args): name, comparison, value = args diff --git a/src/bonsai/bonsai/tool/sequence.py b/src/bonsai/bonsai/tool/sequence.py index 4e3144dc26..8c5339d438 100644 --- a/src/bonsai/bonsai/tool/sequence.py +++ b/src/bonsai/bonsai/tool/sequence.py @@ -17,35 +17,37 @@ # along with Bonsai. If not, see . from __future__ import annotations + +import base64 +import json import os import re -import bpy -import json -import base64 -import ifcopenshell.api.sequence -import ifcopenshell.util.element -import pystache -import mathutils import webbrowser -import isodate -import ifcopenshell -import ifcopenshell.api.group -import ifcopenshell.ifcopenshell_wrapper as W -import ifcopenshell.util.date -import ifcopenshell.util.selector -import ifcopenshell.util.sequence -import bonsai.core.tool -import bonsai.tool as tool -import bonsai.bim.helper -from dateutil import parser +from collections.abc import Iterable from datetime import datetime from datetime import time as datetime_time -from typing import Optional, Any, Union, Literal, TYPE_CHECKING -from collections.abc import Iterable +from typing import TYPE_CHECKING, Any, Literal, Optional, Union + +import bpy +import ifcopenshell +import ifcopenshell.api.group +import ifcopenshell.api.sequence +import ifcopenshell.ifcopenshell_wrapper as W +import ifcopenshell.util.date +import ifcopenshell.util.element +import ifcopenshell.util.selector +import ifcopenshell.util.sequence +import isodate +import mathutils +import pystache +from dateutil import parser from mathutils import Color +import bonsai.bim.helper +import bonsai.core.tool +import bonsai.tool as tool + if TYPE_CHECKING: - from bonsai.bim.prop import Attribute from bonsai.bim.module.sequence.prop import ( BIMAnimationProperties, BIMStatusProperties, @@ -54,6 +56,7 @@ if TYPE_CHECKING: BIMWorkPlanProperties, BIMWorkScheduleProperties, ) + from bonsai.bim.prop import Attribute class Sequence(bonsai.core.tool.Sequence): @@ -566,14 +569,6 @@ class Sequence(bonsai.core.tool.Sequence): if len(tasks) and len(tasks) > props.active_task_index: return tool.Ifc.get().by_id(tasks[props.active_task_index].ifc_definition_id) - @classmethod - def get_direct_nested_tasks(cls, task: ifcopenshell.entity_instance) -> list[ifcopenshell.entity_instance]: - return ifcopenshell.util.sequence.get_nested_tasks(task) - - @classmethod - def get_direct_task_outputs(cls, task: ifcopenshell.entity_instance) -> list[ifcopenshell.entity_instance]: - return ifcopenshell.util.sequence.get_direct_task_outputs(task) - @classmethod def enable_editing_work_calendar_times(cls, work_calendar: ifcopenshell.entity_instance) -> None: props = cls.get_work_calendar_props() diff --git a/src/bonsai/bonsai/tool/snap.py b/src/bonsai/bonsai/tool/snap.py index 04ec6c538d..5c538dfc43 100644 --- a/src/bonsai/bonsai/tool/snap.py +++ b/src/bonsai/bonsai/tool/snap.py @@ -17,20 +17,23 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy + +import math +from typing import TYPE_CHECKING, Any, Union + import bmesh +import bpy import ifcopenshell import ifcopenshell.util.unit +import mathutils +from lark import Lark, Transformer +from mathutils import Matrix, Vector + import bonsai.core.tool import bonsai.tool as tool from bonsai.bim.module.drawing.data import DecoratorData from bonsai.bim.module.drawing.decoration import CutDecorator from bonsai.bim.module.model.decorator import PolylineDecorator -import math -import mathutils -from mathutils import Matrix, Vector -from lark import Lark, Transformer -from typing import Union, Any, TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.prop import BIMSnapGroups, BIMSnapProperties @@ -553,7 +556,11 @@ class Snap(bonsai.core.tool.Snap): def filter_snapping_points_by_type(snapping_points): options = ["Plane", "Axis"] props = tool.Snap.get_snap_props() - for prop in props.__annotations__.keys(): + try: + annotations = props.__annotations__ + except AttributeError: + annotations = type(props).__annotations__ + for prop in annotations.keys(): if getattr(props, prop): options.append(props.rna_type.properties[prop].name) @@ -563,7 +570,11 @@ class Snap(bonsai.core.tool.Snap): def filter_snapping_points_by_group(detected_snaps): options = ["Wireframe", "Axis", "Plane"] props = tool.Snap.get_snap_groups() - for prop in props.__annotations__.keys(): + try: + annotations = props.__annotations__ + except AttributeError: + annotations = type(props).__annotations__ + for prop in annotations.keys(): if getattr(props, prop): options.append(props.rna_type.properties[prop].name) filtered_groups = [group for group in detected_snaps if group["group"] in options] diff --git a/src/bonsai/bonsai/tool/spatial.py b/src/bonsai/bonsai/tool/spatial.py index 454d6b5b32..d38d895c22 100644 --- a/src/bonsai/bonsai/tool/spatial.py +++ b/src/bonsai/bonsai/tool/spatial.py @@ -17,43 +17,46 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy + +import json +from collections import defaultdict +from collections.abc import Generator, Iterable +from math import pi +from typing import TYPE_CHECKING, Any, Literal, Optional, Union + import bmesh -import shapely -import shapely.ops +import bpy import ifcopenshell import ifcopenshell.api.attribute import ifcopenshell.api.type import ifcopenshell.geom +import ifcopenshell.util.classification import ifcopenshell.util.element import ifcopenshell.util.placement import ifcopenshell.util.representation -import ifcopenshell.util.classification import ifcopenshell.util.shape_builder import ifcopenshell.util.type import ifcopenshell.util.unit -import bonsai.core.type -import bonsai.core.tool +import numpy as np +import shapely +import shapely.ops +from mathutils import Matrix, Vector +from natsort import natsorted +from shapely import Polygon + +import bonsai.core.geometry import bonsai.core.root import bonsai.core.spatial -import bonsai.core.geometry +import bonsai.core.tool +import bonsai.core.type import bonsai.core.unit import bonsai.tool as tool -import json -import numpy as np -from math import pi -from mathutils import Vector, Matrix -from shapely import Polygon -from typing import Optional, Union, Literal, Any, TYPE_CHECKING -from collections.abc import Generator, Iterable -from collections import defaultdict -from natsort import natsorted if TYPE_CHECKING: from bonsai.bim.module.spatial.prop import ( BIMGridProperties, - BIMSpatialDecompositionProperties, BIMObjectSpatialProperties, + BIMSpatialDecompositionProperties, ) @@ -71,9 +74,25 @@ class Spatial(bonsai.core.tool.Spatial): return bpy.context.scene.BIMGridProperties @classmethod - def can_contain(cls, container: ifcopenshell.entity_instance, element_obj: Union[bpy.types.Object, None]) -> bool: - if not (element := tool.Ifc.get_entity(element_obj)): - return False + def get_decomposition(cls, element: ifcopenshell.entity_instance) -> list(ifcopenshell.entity_instance): + return ifcopenshell.util.element.get_decomposition(element) + + @classmethod + def get_root_element(cls, element: ifcopenshell.entity_instance) -> ifcopenshell.entity_instance: + while True: + if parent := ( + ifcopenshell.util.element.get_aggregate(element) + or ifcopenshell.util.element.get_nest(element) + or ifcopenshell.util.element.get_filled_void(element) + or ifcopenshell.util.element.get_voided_element(element) + ): + element = parent + else: + break + return element + + @classmethod + def can_contain(cls, container: ifcopenshell.entity_instance, element: ifcopenshell.entity_instance) -> bool: if tool.Ifc.get_schema() == "IFC2X3": if not container.is_a("IfcSpatialStructureElement"): return False @@ -144,10 +163,10 @@ class Spatial(bonsai.core.tool.Spatial): @classmethod def run_spatial_assign_container( - cls, container: ifcopenshell.entity_instance, element_obj: bpy.types.Object + cls, container: ifcopenshell.entity_instance, objs: list[bpy.types.Object] ) -> Union[ifcopenshell.entity_instance, None]: return bonsai.core.spatial.assign_container( - tool.Ifc, tool.Collector, tool.Spatial, container=container, element_obj=element_obj + tool.Ifc, tool.Collector, tool.Spatial, container=container, objs=objs ) @classmethod @@ -496,7 +515,9 @@ class Spatial(bonsai.core.tool.Spatial): new.long_name = element.LongName or "" if not element.is_a("IfcProject"): elevation = ifcopenshell.util.placement.get_storey_elevation(element) - new["elevation"] = tool.Unit.format_value(elevation) + unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) + elevation_in_meters = elevation * unit_scale + new.elevation = tool.Unit.format_distance(elevation_in_meters) new.is_expanded = element.id() not in cls.contracted_containers new.level_index = level_index children = ifcopenshell.util.element.get_parts(element) @@ -1172,6 +1193,7 @@ class Spatial(bonsai.core.tool.Spatial): @classmethod def assign_type_to_obj(cls, obj: bpy.types.Object) -> None: + # TODO this code looks in the wrong spot and suspicious props = tool.Model.get_model_props() ifc_file = tool.Ifc.get() relating_type_id = props.relating_type_id @@ -1191,7 +1213,7 @@ class Spatial(bonsai.core.tool.Spatial): element: ifcopenshell.entity_instance, relating_type: ifcopenshell.entity_instance, ) -> None: - bonsai.core.type.assign_type(ifc, type, element=element, type=relating_type) + bonsai.core.type.assign_type(ifc, tool.Model, type, element=element, type=relating_type) @classmethod def regen_obj_representation(cls, obj: bpy.types.Object, body: ifcopenshell.entity_instance) -> None: diff --git a/src/bonsai/bonsai/tool/structural.py b/src/bonsai/bonsai/tool/structural.py index 3f218e52e9..b011f5df88 100644 --- a/src/bonsai/bonsai/tool/structural.py +++ b/src/bonsai/bonsai/tool/structural.py @@ -17,21 +17,30 @@ # along with Bonsai. If not, see . from __future__ import annotations + +import json +from typing import TYPE_CHECKING, Any, Union + import bpy import ifcopenshell import ifcopenshell.api.context import ifcopenshell.api.structural import ifcopenshell.util.attribute import ifcopenshell.util.representation -import json + import bonsai.bim.helper import bonsai.core.tool import bonsai.tool as tool -from typing import Union, Any, TYPE_CHECKING if TYPE_CHECKING: - from bonsai.bim.module.structural.prop import BIMStructuralProperties, BIMObjectStructuralProperties - from ifcopenshell.api.structural.edit_structural_boundary_condition import AttributeDict + from ifcopenshell.api.structural.edit_structural_boundary_condition import ( + AttributeDict, + ) + + from bonsai.bim.module.structural.prop import ( + BIMObjectStructuralProperties, + BIMStructuralProperties, + ) class Structural(bonsai.core.tool.Structural): diff --git a/src/bonsai/bonsai/tool/style.py b/src/bonsai/bonsai/tool/style.py index e6861b53dc..78cb19680e 100644 --- a/src/bonsai/bonsai/tool/style.py +++ b/src/bonsai/bonsai/tool/style.py @@ -17,23 +17,30 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from collections.abc import Sequence +from typing import TYPE_CHECKING, Any, Literal, Optional, Union + import bpy -import numpy as np import ifcopenshell import ifcopenshell.api.style import ifcopenshell.util.element import ifcopenshell.util.representation +import numpy as np +from mathutils import Color + +import bonsai.bim.helper import bonsai.core.style import bonsai.core.tool import bonsai.tool as tool -import bonsai.bim.helper -from mathutils import Color -from typing import Union, Any, Optional, Literal, TYPE_CHECKING -from collections.abc import Sequence if TYPE_CHECKING: + from bonsai.bim.module.style.prop import ( + BIMStyleProperties, + BIMStylesProperties, + ColourRgb, + ) from bonsai.bim.prop import Attribute - from bonsai.bim.module.style.prop import BIMStylesProperties, BIMStyleProperties, ColourRgb # fmt: off TEXTURE_MAPS_BY_METHODS = { diff --git a/src/bonsai/bonsai/tool/surveyor.py b/src/bonsai/bonsai/tool/surveyor.py index 7c203586f2..f59d9cd7da 100644 --- a/src/bonsai/bonsai/tool/surveyor.py +++ b/src/bonsai/bonsai/tool/surveyor.py @@ -20,12 +20,13 @@ import bpy import ifcopenshell.api import ifcopenshell.util.geolocation import ifcopenshell.util.unit -import bonsai.core.tool -import bonsai.tool as tool import numpy as np import numpy.typing as npt from mathutils import Matrix +import bonsai.core.tool +import bonsai.tool as tool + class Surveyor(bonsai.core.tool.Surveyor): @classmethod diff --git a/src/bonsai/bonsai/tool/system.py b/src/bonsai/bonsai/tool/system.py index efaaa802c5..8b949a36c9 100644 --- a/src/bonsai/bonsai/tool/system.py +++ b/src/bonsai/bonsai/tool/system.py @@ -17,26 +17,29 @@ # along with Bonsai. If not, see . from __future__ import annotations + +import re +from enum import Enum +from typing import TYPE_CHECKING, Any, Optional, Union + import bpy import ifcopenshell.api.geometry import ifcopenshell.api.system import ifcopenshell.util.element import ifcopenshell.util.system +from mathutils import Matrix, Vector +from natsort import natsorted + import bonsai.bim.helper import bonsai.core.geometry import bonsai.core.root import bonsai.core.tool import bonsai.tool as tool from bonsai.bim import import_ifc -import re -from mathutils import Matrix, Vector from bonsai.bim.module.system.data import ObjectSystemData, SystemDecorationData -from enum import Enum -from typing import TYPE_CHECKING, Optional, Any, Union -from natsort import natsorted if TYPE_CHECKING: - from bonsai.bim.module.system.prop import BIMSystemProperties, BIMZoneProperties, BIMZoneProperties + from bonsai.bim.module.system.prop import BIMSystemProperties, BIMZoneProperties class System(bonsai.core.tool.System): @@ -100,6 +103,7 @@ class System(bonsai.core.tool.System): @classmethod def create_empty_at_cursor_with_element_orientation(cls, element: ifcopenshell.entity_instance) -> bpy.types.Object: + # Is this necessary anymore? element_obj = tool.Ifc.get_object(element) obj = bpy.data.objects.new("Port", None) obj.matrix_world = element_obj.matrix_world @@ -107,6 +111,26 @@ class System(bonsai.core.tool.System): bpy.context.scene.collection.objects.link(obj) return obj + @classmethod + def create_port_at_cursor(cls, element: ifcopenshell.entity_instance) -> ifcopenshell.entity_instance: + ifc_file = tool.Ifc.get() + element_obj = tool.Ifc.get_object(element) + + port = ifcopenshell.api.system.add_port(ifc_file, element=element) + port.FlowDirection = "NOTDEFINED" + port.PredefinedType = "USERDEFINED" + + systems = ifcopenshell.util.system.get_element_systems(element) + system = systems[0] if systems else None + port.SystemType = getattr(system, "PredefinedType", None) or "USERDEFINED" + + matrix = element_obj.matrix_world.copy() + matrix.translation = bpy.context.scene.cursor.matrix.translation + + ifcopenshell.api.geometry.edit_object_placement(ifc_file, product=port, matrix=matrix, is_si=True) + + return port + @classmethod def delete_element_objects(cls, elements: list[ifcopenshell.entity_instance]) -> None: for element in elements: @@ -192,11 +216,22 @@ class System(bonsai.core.tool.System): ifc_importer.process_context_filter() ifc_importer.create_generic_elements(set(ports_to_create)) - container = ifcopenshell.util.element.get_container(element) - if container: - collection = tool.Blender.get_object_bim_props(tool.Ifc.get_object(container)).collection - ifc_importer.collections[container.GlobalId] = collection - ifc_importer.place_objects_in_collections() + if element.is_a("IfcTypeProduct"): + target_collection = None + for collection in obj.users_collection: + target_collection = collection + break + + if target_collection: + for port_obj in ifc_importer.added_data.values(): + if isinstance(port_obj, bpy.types.Object): + tool.Collector.link_collection_object_safe(target_collection, port_obj) + else: + container = ifcopenshell.util.element.get_container(element) + if container: + collection = tool.Blender.get_object_bim_props(tool.Ifc.get_object(container)).collection + ifc_importer.collections[container.GlobalId] = collection + ifc_importer.place_objects_in_collections() for port_obj in ifc_importer.added_data.values(): assert isinstance(port_obj, bpy.types.Object) diff --git a/src/bonsai/bonsai/tool/type.py b/src/bonsai/bonsai/tool/type.py index dab53ee14f..84a349f288 100644 --- a/src/bonsai/bonsai/tool/type.py +++ b/src/bonsai/bonsai/tool/type.py @@ -17,14 +17,17 @@ # along with Bonsai. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Union + import bpy import ifcopenshell import ifcopenshell.util.element import ifcopenshell.util.representation -import bonsai.core.tool + import bonsai.core.geometry +import bonsai.core.tool import bonsai.tool as tool -from typing import Union, TYPE_CHECKING if TYPE_CHECKING: from bonsai.bim.module.type.prop import BIMTypeProperties @@ -74,11 +77,13 @@ class Type(bonsai.core.tool.Type): def get_model_types(cls) -> list[ifcopenshell.entity_instance]: ifc_file = tool.Ifc.get() types = ifc_file.by_type("IfcElementType") - # exclude IfcSpatialElementType - types += ifc_file.by_type("IfcTypeProduct", include_subtypes=False) - if not tool.Ifc.get_schema().startswith("IFC4X3"): + if tool.Ifc.get_schema() == "IFC2X3": types += ifc_file.by_type("IfcWindowStyle") types += ifc_file.by_type("IfcDoorStyle") + types += ifc_file.by_type("IfcSpatialStructureElementType") + else: + types += ifc_file.by_type("IfcSpatialElementType") + types += ifc_file.by_type("IfcTypeProduct", include_subtypes=False) return types @classmethod @@ -138,3 +143,20 @@ class Type(bonsai.core.tool.Type): obj=obj, representation=representation, ) + + @classmethod + def record_material_usage_attributes(cls, element: ifcopenshell.entity_instance) -> dict | None: + if (material := ifcopenshell.util.element.get_material(element)) and "Usage" in material.is_a(): + return material.get_info() + + @classmethod + def restore_material_usage_attributes(cls, element: ifcopenshell.entity_instance, usage_attributes: dict) -> None: + if (material := ifcopenshell.util.element.get_material(element)) and material.is_a() == usage_attributes[ + "type" + ]: + if usage_attributes["type"] == "IfcMaterialLayerSetUsage": + for attr in ("LayerSetDirection", "DirectionSense", "OffsetFromReferenceLine", "ReferenceExtent"): + setattr(material, attr, usage_attributes.get(attr)) + elif usage_attributes["type"] == "IfcMaterialProfileSetUsage": + for attr in ("CardinalPoint", "ReferenceExtent"): + setattr(material, attr, usage_attributes.get(attr)) diff --git a/src/bonsai/bonsai/tool/unit.py b/src/bonsai/bonsai/tool/unit.py index 81bc92bd94..1221f28be9 100644 --- a/src/bonsai/bonsai/tool/unit.py +++ b/src/bonsai/bonsai/tool/unit.py @@ -17,21 +17,288 @@ # along with Bonsai. If not, see . from __future__ import annotations -import bpy + import json import math +from typing import TYPE_CHECKING, Any, Literal, Union, assert_never + +import bpy import ifcopenshell +from lark import Lark, Transformer + import bonsai.bim.helper import bonsai.core.tool import bonsai.tool as tool -from typing import Union, Literal, Any, TYPE_CHECKING, assert_never if TYPE_CHECKING: from bonsai.bim.module.unit.prop import BIMUnitProperties class Unit(bonsai.core.tool.Unit): - UNIT_TYPE = Literal["LENGTHUNIT", "AREAUNIT", "VOLUMEUNIT"] + UNIT_TYPE = Literal["LENGTHUNIT", "AREAUNIT", "VOLUMEUNIT", "MASSUNIT", "TIMEUNIT"] + + @staticmethod + def format_distance(meters: float, use_imperial: bool = None, **kwargs) -> str: + """ + Format a distance value in meters to a string in the project's unit system. + + :param meters: The distance value in meters + :param use_imperial: If True, format as imperial; if False, format as metric; if None, auto-detect from scene + :param kwargs: Additional arguments to pass to the underlying format_distance function + (hide_units, precision, decimal_places, etc.) + :return: Formatted string with units + """ + # Import the comprehensive format_distance from the helper module + from bonsai.bim.module.drawing import helper + + # The comprehensive function expects value in scene units, not meters + # So we pass meters directly since it handles unit conversion internally + return helper.format_distance( + meters, + hide_units=kwargs.get("hide_units", False), + precision=kwargs.get("precision"), + decimal_places=kwargs.get("decimal_places"), + **kwargs, + ) + + @classmethod + def parse_distance_string(cls, input_string: str, use_project_unit: bool = True) -> tuple[bool, float]: + """ + Parse a distance string with optional unit suffixes and convert to meters. + + This function parses distance inputs with units (e.g., "5m", "10ft", "3.5cm") + and converts them to meters (SI units) for use in IFC models. + + Supports: + - Metric units: mm, cm, dm, m + - Imperial units: ft/feet ('), in/inches (") + - Arithmetic expressions: +, -, *, / + - Fractions for imperial units (e.g., 1/2") + - Formula mode: values starting with "=" + + :param input_string: The string to parse (e.g., "5m", "10ft", "10'6\"", "3.5cm", "12in") + :param use_project_unit: If True, uses project unit scale; if False, uses Blender unit scale + :return: Tuple (is_valid, value_in_meters) where is_valid indicates successful parsing + and value_in_meters is the converted value in meters + + Examples: + >>> parse_distance_string("5m") + (True, 5.0) + >>> parse_distance_string("30cm") + (True, 0.3) + >>> parse_distance_string("10ft") + (True, 3.048) + >>> parse_distance_string("12in") + (True, 0.3048) + >>> parse_distance_string("5'6\"") + (True, 1.6764) + >>> parse_distance_string("invalid") + (False, 0.0) + """ + + grammar_imperial = r""" + start: (FORMULA dim expr) | dim + dim: imperial + + FORMULA: "=" + + imperial: feet_inches | feet_only | inches_only | plain_number + feet_only: NUMBER (FEET_SYM | FEET_TEXT) + inches_only: inch_value (INCH_SYM | INCH_TEXT) + feet_inches: NUMBER (FEET_SYM | FEET_TEXT) DASH? inch_value (INCH_SYM | INCH_TEXT)? + plain_number: NUMBER + + inch_value: NUMBER fraction | fraction | NUMBER + + fraction: NUMBER "/" NUMBER + + expr: (ADD | SUB) dim | (MUL | DIV) NUMBER + + NUMBER: /-?(?:\d+\.?\d*|\.\d+)/ + FEET_SYM: "'" + FEET_TEXT: "ft" + INCH_SYM: "\"" + INCH_TEXT: "in" + DASH: "-" + ADD: "+" + SUB: "-" + MUL: "*" + DIV: "/" + + %ignore " " + """ + + grammar_metric = r""" + start: FORMULA? dim expr? + dim: metric + + FORMULA: "=" + + metric: NUMBER (MM | CM | DM | M | DEG)? + + expr: (ADD | SUB | MUL | DIV) dim + + NUMBER: /-?(?:\d+\.?\d*|\.\d+)/ + MM: "mm" + CM: "cm" + DM: "dm" + M: "m" + DEG: "°" + ADD: "+" + SUB: "-" + MUL: "*" + DIV: "/" + + %ignore " " + """ + + class InputTransform(Transformer): + def NUMBER(self, n): + return float(n) + + def fraction(self, numbers): + return numbers[0] / numbers[1] + + def inch_value(self, args): + # Can be: NUMBER fraction, fraction, or NUMBER + if len(args) == 2: + # NUMBER fraction (e.g., "9 1/64") + return args[0] + args[1] + else: + # Just fraction or just NUMBER + return args[0] + + def plain_number(self, args): + # A plain number in imperial context is assumed to be feet + feet = args[0] + # Convert feet to meters (1 foot = 0.3048 meters) + return feet * 0.3048 + + def feet_only(self, args): + # args[0] is the number of feet, args[1] is the unit token (we can ignore it) + feet = args[0] + # Convert feet to meters (1 foot = 0.3048 meters) + return feet * 0.3048 + + def inches_only(self, args): + # args[0] is the inch_value, args[1] is the unit token + inches = args[0] + # Convert inches to meters (1 inch = 0.0254 meters) + return inches * 0.0254 + + def feet_inches(self, args): + # Extract feet and inches values + feet = args[0] + # Find the inch_value (it's a number, not a token) + inches = None + for arg in args[1:]: + if isinstance(arg, (int, float)): + inches = arg + break + if inches is None: + inches = 0 + + # If feet is negative, inches should also be negative (subtractive) + if feet < 0: + inches = -inches + + # Convert to meters + total_meters = (feet * 0.3048) + (inches * 0.0254) + return total_meters + + def imperial(self, args): + # Just return the value from the sub-rule (feet_only, inches_only, or feet_inches) + return args[0] + + def metric(self, args): + # args[0] is the NUMBER, args[1] if present is the unit + value = args[0] + if len(args) > 1: + unit = str(args[1]) + # Convert to meters based on unit + if unit == "mm": + value = value / 1000.0 + elif unit == "cm": + value = value / 100.0 + elif unit == "dm": + value = value / 10.0 + elif unit == "m": + value = value # already in meters + elif unit == "°": + value = value # degrees, pass through + # If no unit specified, assume it's already in the project's unit system + return value + + def dim(self, args): + return args[0] + + def expr(self, args): + op = args[0] + value = float(args[1]) + if op == "+": + return lambda x: x + value + elif op == "-": + return lambda x: x - value + elif op == "*": + return lambda x: x * value + elif op == "/": + return lambda x: x / value + + def FORMULA(self, args): + return args[0] + + def start(self, args): + i = 0 + if args[0] == "=": + i += 1 + else: + if len(args) > 1: + raise ValueError("Invalid input.") + dimension = args[i] + if len(args) > i + 1: + expression = args[i + 1] + return expression(dimension) + else: + return dimension + + try: + # Determine unit scale + if use_project_unit and tool.Ifc.get(): + unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) + else: + unit_scale = tool.Blender.get_unit_scale() + + # Try to parse with the project's default grammar first + if bpy.context.scene.unit_settings.system == "IMPERIAL": + primary_parser = Lark(grammar_imperial) + fallback_parser = Lark(grammar_metric) + else: + primary_parser = Lark(grammar_metric) + fallback_parser = Lark(grammar_imperial) + + # Try parsing with primary grammar + parse_tree = None + try: + parse_tree = primary_parser.parse(input_string) + except Exception as e: + # If primary fails, try fallback grammar (allows metric in imperial projects and vice versa) + try: + parse_tree = fallback_parser.parse(input_string) + except Exception as e2: + pass + + if parse_tree is None: + return False, 0.0 + + # Transform the parse tree to get the numeric result + transformer = InputTransform() + result = transformer.transform(parse_tree) + result = round(result, 6) + + return True, result + + except Exception as e: + return False, 0.0 @classmethod def get_unit_props(cls) -> BIMUnitProperties: @@ -66,44 +333,33 @@ class Unit(bonsai.core.tool.Unit): return bonsai.bim.helper.export_attributes(props.unit_attributes, callback=callback) @classmethod - def get_scene_unit_name(cls, unit_type: UNIT_TYPE) -> str: - bim_props = tool.Blender.get_bim_props() + def get_scene_unit_name(cls, unit_type: UNIT_TYPE) -> str | None: if unit_type == "LENGTHUNIT": - assert bpy.context.scene - props = bpy.context.scene.unit_settings - if props.length_unit == "MILES": - return "mile" - elif props.length_unit == "FEET" or props.length_unit == "ADAPTIVE": - return "foot" - elif props.length_unit == "INCHES": - return "inch" - elif props.length_unit == "THOU": - return "thou" - return "foot" - elif unit_type == "AREAUNIT": - return bim_props.area_unit - elif unit_type == "VOLUMEUNIT": - return bim_props.volume_unit - else: - assert_never(unit_type) + name = bpy.context.scene.unit_settings.length_unit + if name == "ADAPTIVE": + if bpy.context.scene.unit_settings.system == "IMPERIAL": + name = "foot" + else: + name = "METRE" + name = ( + {"MILES": "mile", "FEET": "foot", "INCHES": "inch", "THOU": "thou", "ADAPTIVE": "METERS"} + .get(name, name) + .replace("METERS", "METRE") + ) + if len(name) > len("METRE") and name.endswith("METRE"): + return f"{name[:-5]}/METRE" + return name + bim_props = tool.Blender.get_bim_props() + if (name := getattr(bim_props, f"{unit_type[:-4].lower()}_unit")) != "NONE": + return name @classmethod - def get_scene_unit_si_prefix(cls, unit_type: UNIT_TYPE) -> Union[str, None]: - bim_props = tool.Blender.get_bim_props() - if unit_type == "LENGTHUNIT": - assert bpy.context.scene - props = bpy.context.scene.unit_settings - if props.length_unit == "ADAPTIVE" or props.length_unit == "METERS": - return - return props.length_unit.replace("METERS", "") - elif unit_type == "AREAUNIT": - unit = bim_props.area_unit - elif unit_type == "VOLUMEUNIT": - unit = bim_props.volume_unit - else: - assert_never(unit_type) - if "/" in unit: - return unit.split("/")[0] + def is_si_unit(cls, name: str) -> bool: + return name[0].isupper() + + @classmethod + def get_scene_unit_si_prefix(cls, name: str) -> str | None: + return name.split("/")[0] if "/" in name else None @classmethod def import_unit_attributes(cls, unit: ifcopenshell.entity_instance) -> None: @@ -163,11 +419,6 @@ class Unit(bonsai.core.tool.Unit): new.is_assigned = unit in assigned_units new.ifc_class = unit.is_a() - @classmethod - def is_scene_unit_metric(cls) -> bool: - assert bpy.context.scene - return bpy.context.scene.unit_settings.system in ["METRIC", "NONE"] - @classmethod def is_unit_class(cls, unit: ifcopenshell.entity_instance, ifc_class: str) -> bool: return unit.is_a(ifc_class) diff --git a/src/bonsai/bonsai/tool/web.py b/src/bonsai/bonsai/tool/web.py index 7ab178bde7..35811b3819 100644 --- a/src/bonsai/bonsai/tool/web.py +++ b/src/bonsai/bonsai/tool/web.py @@ -17,37 +17,40 @@ # along with Bonsai. If not, see . from __future__ import annotations -from ifcopenshell.util.classification import get_classification_data, get_references -from ifcopenshell.util.selector import filter_elements -import ifcopenshell.util.cost + +import asyncio +import errno +import json +import os +import queue +import socket +import subprocess +import sys +import threading +import time +import webbrowser +from pathlib import Path +from time import sleep +from typing import TYPE_CHECKING, Any, Optional, Union + import bpy -from bonsai.bim.module.web.data import WebData -from ifcopenshell.util.element import get_psets, get_type, has_property -import bonsai.core.tool -import bonsai.tool as tool -import ifcopenshell.api.sequence import ifcopenshell.api.classification import ifcopenshell.api.cost -from typing import Any, Optional, TYPE_CHECKING, Union -from mathutils import Color -import time -import socket -import sys -import os -import errno -import subprocess -import webbrowser -import asyncio +import ifcopenshell.api.sequence +import ifcopenshell.util.cost import socketio -import threading -import queue -import json -from time import sleep -from pathlib import Path -import bonsai.core.sequence -import bonsai.core.cost from ifc5d.ifc2json import ifc5D2json +from ifcopenshell.util.classification import get_classification_data, get_references +from ifcopenshell.util.element import get_psets, get_type, has_property +from ifcopenshell.util.selector import filter_elements +from mathutils import Color + +import bonsai.core.cost +import bonsai.core.sequence +import bonsai.core.tool +import bonsai.tool as tool from bonsai.bim.ifc import IfcStore +from bonsai.bim.module.web.data import WebData if TYPE_CHECKING: from bonsai.bim.module.web.prop import WebProperties @@ -80,8 +83,7 @@ class Web(bonsai.core.tool.Web): This method creates a temporary socket to bind to a free port. It then retrieves the port number, and returns it. - Returns: - int: The port number that was generated. + :return: The port number that was generated. """ print("Generating port number") with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: @@ -97,11 +99,9 @@ class Web(bonsai.core.tool.Web): If the connection is refused, the port is available for use; otherwise, it is in use. - Args: - port (int): The port number to check. + :param port: The port number to check. - Returns: - bool: True if the port is available, False if it is in use. + :return: bool: True if the port is available, False if it is in use. """ with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: # connect_ex returns errno.SUCCESS (0) if the connection succeeds @@ -116,8 +116,7 @@ class Web(bonsai.core.tool.Web): This method sets up the environment, locates paths, and starts the WebSocket server process. - Args: - port (int): The port number on which to start the WebSocket server. + :param port: The port number on which to start the WebSocket server. """ import addon_utils @@ -156,8 +155,7 @@ class Web(bonsai.core.tool.Web): This method sets up an asynchronous Socket.IO client with reconnection attempts, starts an asyncio thread, connects to the WebSocket server, and sets the connection status. - Args: - port (int): The port number to connect to the WebSocket server. + :param port: The port number to connect to the WebSocket server. """ global ws_thread, sio @@ -239,11 +237,9 @@ class Web(bonsai.core.tool.Web): this method continuously checks for the existence of the WebSocket server's process ID (PID) in the running_pid JSON file. It waits for a maximum of 5 seconds before returning False. - Args: - port (int): The port number on which the WebSocket server is expected to be running. + :param port: The port number on which the WebSocket server is expected to be running. - Returns: - bool: True if the WebSocket server has started on the specified port within the maximum time limit, False otherwise. + :return: bool: True if the WebSocket server has started on the specified port within the maximum time limit, False otherwise. """ pid = ws_process.pid max_time = 5 @@ -273,12 +269,11 @@ class Web(bonsai.core.tool.Web): """ Sends data to the Web UI via Websocket connection. - Args: - data (Optional[Any]): The data to send. If None, just sends data from WebData. - data_key (str): The key under which to store the data in the payload. Defaults to "data". - event (str): The WebSocket event to emit. Defaults to "data". - namespace (str): The namespace for the WebSocket event. Defaults to "/blender". - use_web_data (bool): Whether to use data from WebData. Defaults to True. + :param data: The data to send. If None, just sends data from WebData. + :param data_key: The key under which to store the data in the payload. Defaults to "data". + :param event: The WebSocket event to emit. Defaults to "data". + :param namespace: The namespace for the WebSocket event. Defaults to "/blender". + :param use_web_data: Whether to use data from WebData. Defaults to True. """ global ws_thread @@ -302,8 +297,7 @@ class Web(bonsai.core.tool.Web): If the WebProperties.is_connected is False, it clears the queue and returns None to unregister the timer. If the queue is not empty, it processes each operator by calling the corresponding handling function. - Returns: - (Optional[float]): Returns None if the WebProperties.is_connected is False, otherwise returns 1.0 to continue the timer. + :return: Returns None if the WebProperties.is_connected is False, otherwise returns 1.0 to continue the timer. """ if not tool.Web.get_web_props().is_connected: with web_operator_queue.mutex: @@ -332,8 +326,7 @@ class Web(bonsai.core.tool.Web): """ this method handles the Schedules page operators. - Args: - operator_data (dict): A dictionary containing the operator data. + :param operator_data: A dictionary containing the operator data. """ if operator_data["type"] == "selection": bpy.ops.object.select_all(action="DESELECT") @@ -348,8 +341,7 @@ class Web(bonsai.core.tool.Web): """ this method handles the Cost page operators. - Args: - operator_data (dict): A dictionary containing the operator data. + :param operator_data: A dictionary containing the operator data. """ ifc_file = tool.Ifc.get() @@ -701,8 +693,7 @@ class Web(bonsai.core.tool.Web): """ this method handles the Sequencing page operators. - Args: - operator_data (dict): A dictionary containing the operator data. + :param operator_data: A dictionary containing the operator data. """ ifc_file = tool.Ifc.get() if operator_data["type"] == "getWorkSchedules": @@ -741,8 +732,7 @@ class Web(bonsai.core.tool.Web): """ this method handles the Documentation page operators. - Args: - operator_data (dict): A dictionary containing the operator data. + :param operator_data: A dictionary containing the operator data. """ if operator_data["type"] == "getDrawings": drawings_data = [] @@ -778,9 +768,8 @@ class Web(bonsai.core.tool.Web): """ Opens a web browser and navigates to the specified URL. - Args: - port (int): The port number to be used in the URL. - page (str): The page name to be appended to the URL. Default is an empty string which points to the index page. + :param port: The port number to be used in the URL. + :param page: The page name to be appended to the URL. Default is an empty string which points to the index page. """ webbrowser.open(f"http://127.0.0.1:{port}/{page}") @@ -859,8 +848,7 @@ class Web(bonsai.core.tool.Web): This method connects to the specified URL using WebSocket transport and registers an event listener for the `web_operator` event within the `/blender` namespace. - Args: - url (str): The URL of the WebSocket server to connect to. + :param url: The URL of the WebSocket server to connect to. """ await sio.connect(url, transports=["websocket"], namespaces="/blender") sio.on("web_operator", cls.sio_listen_web_operator, namespace="/blender") @@ -881,10 +869,9 @@ class Web(bonsai.core.tool.Web): This method emits an event with the provided data to the WebSocket server within the specified namespace. - Args: - data (Any): The data to send to the WebSocket server. - event (Optional[str]): The WebSocket event to emit. Defaults to "data". - namespace (Optional[str]): The namespace for the WebSocket event. Defaults to "/blender". + :param data: The data to send to the WebSocket server. + :param event: The WebSocket event to emit. Defaults to "data". + :param namespace: The namespace for the WebSocket event. Defaults to "/blender". """ await sio.emit(event, data, namespace=namespace) @@ -896,8 +883,7 @@ class Web(bonsai.core.tool.Web): This method receives data from the WebSocket server and attempts to place it into the `web_operator_queue`. If the queue is full, the data is discarded. - Args: - data (dict): The data received from the `web_operator` event. + :param data: The data received from the `web_operator` event. """ try: web_operator_queue.put_nowait(data) @@ -923,10 +909,9 @@ class AsyncioThread(threading.Thread): This class represents a thread that runs an asyncio event loop. It is used to handle asynchronous tasks in a separate thread from the main thread. - Args: - *args: Variable length argument list. These arguments are passed to the superclass constructor. - loop: An existing asyncio event loop. If None, a new event loop is created. - **kwargs: Arbitrary keyword arguments. These arguments are passed to the superclass constructor. + :param args: Variable length argument list. These arguments are passed to the superclass constructor. + :param loop: An existing asyncio event loop. If None, a new event loop is created. + :param kwargs: Arbitrary keyword arguments. These arguments are passed to the superclass constructor. """ super().__init__(*args, **kwargs) self.loop = loop or asyncio.new_event_loop() @@ -943,11 +928,9 @@ class AsyncioThread(threading.Thread): """ Run a coroutine in the asyncio event loop from a separate thread. - Args: - coro: The coroutine to be run. + :param coro: The coroutine to be run. - Returns: - The result of the coroutine. + :return: The result of the coroutine. """ return asyncio.run_coroutine_threadsafe(coro, loop=self.loop).result() diff --git a/src/bonsai/docs/guides/development/installation.rst b/src/bonsai/docs/guides/development/installation.rst index e68d90aa00..3446617ab6 100644 --- a/src/bonsai/docs/guides/development/installation.rst +++ b/src/bonsai/docs/guides/development/installation.rst @@ -200,6 +200,7 @@ Packaged installation - **Arch Linux**: `Direct from Git `__. - **Chocolatey on Windows**: `Unstable `__. +- **Fedora Linux**: `IfcOpenShell Copr repository `__. Tips for package managers ------------------------- diff --git a/src/bonsai/pytest.ini b/src/bonsai/pytest.ini index 001313dd30..e628606201 100644 --- a/src/bonsai/pytest.ini +++ b/src/bonsai/pytest.ini @@ -1,6 +1,7 @@ [pytest] markers = aggregate + array attribute boolean boundary diff --git a/src/bonsai/runpytest.py b/src/bonsai/runpytest.py index f9a55fdc27..9a00ea69b0 100755 --- a/src/bonsai/runpytest.py +++ b/src/bonsai/runpytest.py @@ -23,6 +23,7 @@ Usage: `blender -b -P runpytest.py -- ARGS` """ import sys + import pytest argv = [__file__] diff --git a/src/bonsai/scripts/bonsai_translations.py b/src/bonsai/scripts/bonsai_translations.py index de7f613210..7a0fe86ea9 100644 --- a/src/bonsai/scripts/bonsai_translations.py +++ b/src/bonsai/scripts/bonsai_translations.py @@ -4,20 +4,20 @@ try: # Ensure it's not fake-bpy-module. if not hasattr(bpy, "context"): raise ModuleNotFoundError - import bl_i18n_utils import addon_utils + import bl_i18n_utils BPY_IS_LOADED = True except ModuleNotFoundError: BPY_IS_LOADED = False -import shutil -import tempfile import importlib import os import re -from pathlib import Path +import shutil +import tempfile from dataclasses import dataclass, field +from pathlib import Path from typing import Optional bl_info = { @@ -274,7 +274,9 @@ if BPY_IS_LOADED: f"Couldn't find locale path in the source directory, creating dummy directory: {source_locale_path}.", ) - from ui_translate.settings import settings as ui_translate_settings # pyright: ignore[reportMissingImports] + from ui_translate.settings import ( + settings as ui_translate_settings, # pyright: ignore[reportMissingImports] + ) from ui_translate.update_ui import ( # pyright: ignore[reportMissingImports] UI_OT_i18n_updatetranslation_init_settings, ) diff --git a/src/bonsai/scripts/classifications/uniclass_classification.py b/src/bonsai/scripts/classifications/uniclass_classification.py index ce55fae9e7..299db8a469 100644 --- a/src/bonsai/scripts/classifications/uniclass_classification.py +++ b/src/bonsai/scripts/classifications/uniclass_classification.py @@ -1,4 +1,5 @@ import os + import ifcopenshell import pandas as pd diff --git a/src/bonsai/scripts/classifications/vbis.py b/src/bonsai/scripts/classifications/vbis.py index fe77308f82..7c4f43b967 100644 --- a/src/bonsai/scripts/classifications/vbis.py +++ b/src/bonsai/scripts/classifications/vbis.py @@ -1,12 +1,13 @@ import csv -import os import json +import os # import pystache import subprocess -import ifcopenshell from pathlib import Path +import ifcopenshell + class Generator: def __init__(self): diff --git a/src/bonsai/scripts/classifications/xml_classification.py b/src/bonsai/scripts/classifications/xml_classification.py index d75383a051..0a80fb68e7 100644 --- a/src/bonsai/scripts/classifications/xml_classification.py +++ b/src/bonsai/scripts/classifications/xml_classification.py @@ -1,9 +1,10 @@ """This script converts Graphisoft XML into an IFC file""" +import os import xml.etree.ElementTree as ET + import ifcopenshell import ifcopenshell.guid -import os class IFC4Extractor: diff --git a/src/bonsai/scripts/dev_environment.py b/src/bonsai/scripts/dev_environment.py index 96e647e102..e9a8d2a44f 100644 --- a/src/bonsai/scripts/dev_environment.py +++ b/src/bonsai/scripts/dev_environment.py @@ -37,8 +37,8 @@ if sys.platform not in available_platforms: REPO_PATH = r"" # BLENDER_PATH: Path to Blender's configuration folder. -# Usually don't need to change, just ensure Blender version matches. -BLENDER_VERSION = "4.5" +# User will be prompted for the Blender version. +BLENDER_VERSION = input("Enter your Blender version (e.g., 4.5, 4.2, 3.6): ").strip() if sys.platform == "win32": BLENDER_PATH = Path.home() / f"AppData/Roaming/Blender Foundation/Blender/{BLENDER_VERSION}" @@ -78,7 +78,8 @@ BONSAI_PATH = find_bonsai_path() # --------------------------- # Never changed by user. -PACKAGE_PATH = BLENDER_PATH / r"extensions/.local/lib/python3.11/site-packages" +PYTHON_VERSION = "3.13" if BLENDER_VERSION == "5.1" else "3.11" +PACKAGE_PATH = BLENDER_PATH / rf"extensions/.local/lib/python{PYTHON_VERSION}/site-packages" def main() -> None: @@ -193,7 +194,7 @@ def main() -> None: print(f"Downloading {url} -> {filepath}") urllib.request.urlretrieve(url, filepath) - input("Dev environment is all set. 🎉🎉\nPress Enter to continue..." "") + input("Dev environment is all set!! \nPress Enter to continue...") if __name__ == "__main__": diff --git a/src/bonsai/scripts/dev_environment_vscode_config.py b/src/bonsai/scripts/dev_environment_vscode_config.py new file mode 100644 index 0000000000..088810e05c --- /dev/null +++ b/src/bonsai/scripts/dev_environment_vscode_config.py @@ -0,0 +1,28 @@ +import json +from pathlib import Path + +import bpy + +import bonsai + +repo_path = Path(bonsai.__file__).resolve().parent +install_path = Path(bonsai.__file__).absolute().parent +assert repo_path != install_path, "Run `dev_environment.py` to setup the development environment symlinks first." + +repo_root = repo_path.parent.parent.parent +settings_path = repo_root / ".vscode" / "settings.json" +settings_path.parent.mkdir(parents=True, exist_ok=True) + +settings = json.loads(settings_path.read_text()) if settings_path.exists() else {} +settings.update( + { + "bonsai.localRoot": repo_path.as_posix(), + "bonsai.remoteRoot": install_path.as_posix(), + "bonsai.blenderPath": Path(bpy.app.binary_path).parent.as_posix(), + } +) +json_data = json.dumps(settings, indent=2) + +settings_path.write_text(json_data) + +print("\n\nBonsai/VSCode development environment configured successfully!\n\n") diff --git a/src/bonsai/scripts/dxf2ifc.py b/src/bonsai/scripts/dxf2ifc.py index 3fa34e379a..caef1df864 100644 --- a/src/bonsai/scripts/dxf2ifc.py +++ b/src/bonsai/scripts/dxf2ifc.py @@ -16,9 +16,9 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +import ezdxf import ifcopenshell import ifcopenshell.guid -import ezdxf class Dxf2Ifc: diff --git a/src/bonsai/scripts/extract.py b/src/bonsai/scripts/extract.py index dffaaf6d40..2b4166be81 100644 --- a/src/bonsai/scripts/extract.py +++ b/src/bonsai/scripts/extract.py @@ -16,9 +16,13 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import xml.sax, json, copy, pathlib -from bs4 import BeautifulSoup # pyright: ignore[reportMissingModuleSource] +import copy +import json +import pathlib import sys +import xml.sax + +from bs4 import BeautifulSoup # pyright: ignore[reportMissingModuleSource] sys.setrecursionlimit(100) diff --git a/src/bonsai/scripts/gbxml.py b/src/bonsai/scripts/gbxml.py index 8d23fe6018..7280c69c2a 100644 --- a/src/bonsai/scripts/gbxml.py +++ b/src/bonsai/scripts/gbxml.py @@ -16,15 +16,16 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import uuid import math import sys +import uuid + +import bpy +import bspy # pyright: ignore[reportMissingImports] # sys.path.append('C:\Program Files\Python37\Lib\site-packages') import lxml import lxml.etree -import bspy # pyright: ignore[reportMissingImports] from bspy import Gbxml # pyright: ignore[reportMissingImports] diff --git a/src/bonsai/scripts/generate_au_library.py b/src/bonsai/scripts/generate_au_library.py index 044f2fb090..43f05b45da 100644 --- a/src/bonsai/scripts/generate_au_library.py +++ b/src/bonsai/scripts/generate_au_library.py @@ -30,6 +30,7 @@ import ifcopenshell.api.pset import ifcopenshell.api.root import ifcopenshell.api.style import ifcopenshell.api.unit + import bonsai.tool as tool diff --git a/src/bonsai/scripts/generate_demo_library.py b/src/bonsai/scripts/generate_demo_library.py index 7a9e741dab..a77fc09ab7 100644 --- a/src/bonsai/scripts/generate_demo_library.py +++ b/src/bonsai/scripts/generate_demo_library.py @@ -16,6 +16,8 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from pathlib import Path + import bpy import ifcopenshell import ifcopenshell.api @@ -31,8 +33,8 @@ import ifcopenshell.api.style import ifcopenshell.api.unit import ifcopenshell.util.schema import ifcopenshell.util.shape_builder + import bonsai.tool as tool -from pathlib import Path def sync_guids(target_file: ifcopenshell.file, source_file: ifcopenshell.file) -> None: diff --git a/src/bonsai/scripts/generate_entourage_library.py b/src/bonsai/scripts/generate_entourage_library.py index 78ed71ac6a..7435186396 100644 --- a/src/bonsai/scripts/generate_entourage_library.py +++ b/src/bonsai/scripts/generate_entourage_library.py @@ -17,6 +17,8 @@ # along with Bonsai. If not, see . import os +from pathlib import Path + import bpy import ifcopenshell import ifcopenshell.api @@ -26,9 +28,8 @@ import ifcopenshell.api.project import ifcopenshell.api.root import ifcopenshell.api.style import ifcopenshell.api.unit -import bonsai.tool as tool -from pathlib import Path +import bonsai.tool as tool # When run from Blender BLEND_DIR = os.path.dirname(bpy.data.filepath) diff --git a/src/bonsai/scripts/generate_furniture_library.py b/src/bonsai/scripts/generate_furniture_library.py index 7212191be9..1c1572c854 100644 --- a/src/bonsai/scripts/generate_furniture_library.py +++ b/src/bonsai/scripts/generate_furniture_library.py @@ -16,7 +16,11 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import numpy as np +from itertools import chain +from math import cos, pi, tan +from pathlib import Path +from typing import Optional, Union + import ifcopenshell import ifcopenshell.api import ifcopenshell.api.context @@ -27,11 +31,8 @@ import ifcopenshell.api.root import ifcopenshell.api.style import ifcopenshell.api.unit import ifcopenshell.util.element -from math import cos, tan, pi -from pathlib import Path -from itertools import chain -from ifcopenshell.util.shape_builder import ShapeBuilder, V, np_to_3d, np_normalized -from typing import Optional, Union +import numpy as np +from ifcopenshell.util.shape_builder import ShapeBuilder, V, np_normalized, np_to_3d GeneratorOutput = Union[list[ifcopenshell.entity_instance], list[list[ifcopenshell.entity_instance]]] diff --git a/src/bonsai/scripts/generate_landscape_library.py b/src/bonsai/scripts/generate_landscape_library.py index 01e694e9d0..34d2366fd5 100644 --- a/src/bonsai/scripts/generate_landscape_library.py +++ b/src/bonsai/scripts/generate_landscape_library.py @@ -16,10 +16,16 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os -import bpy import csv +import os import random +from collections import namedtuple +from itertools import chain +from math import cos, pi, sin, tan +from pathlib import Path +from random import uniform + +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.context @@ -29,15 +35,10 @@ import ifcopenshell.api.root import ifcopenshell.api.style import ifcopenshell.api.unit import ifcopenshell.util.unit -import bonsai.tool as tool -from math import cos, sin, tan, pi -from pathlib import Path -from itertools import chain from ifcopenshell.util.shape_builder import ShapeBuilder -from collections import namedtuple -from mathutils import Vector, Matrix -from random import uniform +from mathutils import Matrix, Vector +import bonsai.tool as tool # When run from Blender BLEND_DIR = os.path.dirname(bpy.data.filepath) diff --git a/src/bonsai/scripts/generate_png_icons.py b/src/bonsai/scripts/generate_png_icons.py index d24b69fe90..a523163a20 100644 --- a/src/bonsai/scripts/generate_png_icons.py +++ b/src/bonsai/scripts/generate_png_icons.py @@ -5,9 +5,9 @@ # to run on mac: python3 generate_png_icons.py import os +import re import subprocess import xml.etree.ElementTree as ET -import re SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) SVG_FILE = os.path.join(SCRIPT_DIR, "bonsai_icons.svg") diff --git a/src/bonsai/scripts/generate_site_library.py b/src/bonsai/scripts/generate_site_library.py index e42ad4e4f2..0b0511e9da 100644 --- a/src/bonsai/scripts/generate_site_library.py +++ b/src/bonsai/scripts/generate_site_library.py @@ -25,6 +25,7 @@ import ifcopenshell.api.project import ifcopenshell.api.root import ifcopenshell.api.style import ifcopenshell.api.unit + import bonsai.tool as tool diff --git a/src/bonsai/scripts/generate_steel_profiles_library.py b/src/bonsai/scripts/generate_steel_profiles_library.py index 086c918689..c54818df4b 100644 --- a/src/bonsai/scripts/generate_steel_profiles_library.py +++ b/src/bonsai/scripts/generate_steel_profiles_library.py @@ -19,15 +19,16 @@ # fmt: off # pylint: skip-file +from math import cos, pi +from pathlib import Path + +import boltspy as bolts # pyright: ignore[reportMissingImports] import ifcopenshell import ifcopenshell.api import ifcopenshell.api.material import ifcopenshell.api.project import ifcopenshell.api.root import ifcopenshell.api.unit -import boltspy as bolts # pyright: ignore[reportMissingImports] -from math import cos, pi -from pathlib import Path from ifcopenshell.util.shape_builder import ShapeBuilder, V, ifc_safe_vector_type diff --git a/src/bonsai/scripts/generate_util_type_json.py b/src/bonsai/scripts/generate_util_type_json.py index c162800f54..7c44a9dfe9 100644 --- a/src/bonsai/scripts/generate_util_type_json.py +++ b/src/bonsai/scripts/generate_util_type_json.py @@ -18,6 +18,7 @@ # See bug #1300. Dodgy quick results that we should rebuild later. import json + import ifcopenshell import ifcopenshell.util.schema diff --git a/src/bonsai/scripts/geonodes_modifier_prototype.py b/src/bonsai/scripts/geonodes_modifier_prototype.py index 1b3dbfd8ab..16370c1ca2 100644 --- a/src/bonsai/scripts/geonodes_modifier_prototype.py +++ b/src/bonsai/scripts/geonodes_modifier_prototype.py @@ -17,14 +17,15 @@ # along with Bonsai. If not, see . +import json + +import bmesh +import bpy import ifcopenshell import ifcopenshell.api.pset import ifcopenshell.util.element -import bonsai.tool as tool -import bpy -import bmesh -import json +import bonsai.tool as tool # Below is the code for # prototype for geonodes modifier (similar to ifc sverchok modifier) diff --git a/src/bonsai/scripts/getIfcElements.py b/src/bonsai/scripts/getIfcElements.py index 335260f7e9..57e03d50c4 100644 --- a/src/bonsai/scripts/getIfcElements.py +++ b/src/bonsai/scripts/getIfcElements.py @@ -18,9 +18,9 @@ """This script converts the computer iterpretable listing ifcXML XSD into a JSON file""" -import xml.etree.ElementTree as ET import collections import json +import xml.etree.ElementTree as ET class IFC4Extractor: diff --git a/src/bonsai/scripts/get_all_qtos.py b/src/bonsai/scripts/get_all_qtos.py index 7f23dca55a..d364115559 100644 --- a/src/bonsai/scripts/get_all_qtos.py +++ b/src/bonsai/scripts/get_all_qtos.py @@ -1,13 +1,14 @@ """Update ifc5d json files with qtos from the provided pset templates path.""" import json -import ifcopenshell.util.pset -import ifcopenshell.util.type -import ifc5d from collections import defaultdict from pathlib import Path from typing import Union +import ifc5d +import ifcopenshell.util.pset +import ifcopenshell.util.type + def order_dict(dictionary): # https://stackoverflow.com/questions/22721579/sorting-a-nested-ordereddict-by-key-recursively diff --git a/src/bonsai/scripts/get_description.py b/src/bonsai/scripts/get_description.py index 2d581185aa..a05d5dc287 100644 --- a/src/bonsai/scripts/get_description.py +++ b/src/bonsai/scripts/get_description.py @@ -16,11 +16,12 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import os -import re import html import json +import os +import re from pathlib import Path + import ifcopenshell diff --git a/src/bonsai/scripts/get_volume_by_material.py b/src/bonsai/scripts/get_volume_by_material.py index 2f81862990..312878e53d 100644 --- a/src/bonsai/scripts/get_volume_by_material.py +++ b/src/bonsai/scripts/get_volume_by_material.py @@ -16,10 +16,11 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bmesh import pprint +import bmesh +import bpy + material_volumes = {} for obj in bpy.context.selected_objects: diff --git a/src/bonsai/scripts/headless_import.py b/src/bonsai/scripts/headless_import.py index 111b07d78b..7554eacc04 100644 --- a/src/bonsai/scripts/headless_import.py +++ b/src/bonsai/scripts/headless_import.py @@ -1,6 +1,7 @@ # This can be run using `blender -b -P headless_import.py` import bpy + import bonsai.tool as tool # When federating, you may wish to manually specify the origin to ensure models diff --git a/src/bonsai/scripts/obj2ifc-meshlab.py b/src/bonsai/scripts/obj2ifc-meshlab.py index 1d2739ca21..c8292bb0f7 100644 --- a/src/bonsai/scripts/obj2ifc-meshlab.py +++ b/src/bonsai/scripts/obj2ifc-meshlab.py @@ -19,21 +19,21 @@ # This can be packaged with `pyinstaller --onefile --hidden-import numpy --collect-all ifcopenshell --clean obj2ifc.py` import argparse -import pymeshlab # pyright: ignore[reportMissingImports] +from pathlib import Path + import ifcopenshell import ifcopenshell.api import ifcopenshell.api.aggregate import ifcopenshell.api.context import ifcopenshell.api.geometry +import ifcopenshell.api.owner.settings import ifcopenshell.api.project import ifcopenshell.api.root import ifcopenshell.api.spatial import ifcopenshell.api.unit -import ifcopenshell.api.owner.settings import ifcopenshell.guid -from pathlib import Path - import numpy as np +import pymeshlab # pyright: ignore[reportMissingImports] class Obj2Ifc: diff --git a/src/bonsai/scripts/obj2ifc.py b/src/bonsai/scripts/obj2ifc.py index dc91cedfd5..70f3bf7b41 100644 --- a/src/bonsai/scripts/obj2ifc.py +++ b/src/bonsai/scripts/obj2ifc.py @@ -19,21 +19,21 @@ # This can be packaged with `pyinstaller --onefile --hidden-import numpy --collect-all ifcopenshell --clean obj2ifc.py` import argparse -import pywavefront # pyright: ignore[reportMissingImports] +from pathlib import Path + import ifcopenshell import ifcopenshell.api import ifcopenshell.api.aggregate import ifcopenshell.api.context import ifcopenshell.api.geometry +import ifcopenshell.api.owner.settings import ifcopenshell.api.project import ifcopenshell.api.root import ifcopenshell.api.spatial import ifcopenshell.api.unit -import ifcopenshell.api.owner.settings import ifcopenshell.guid -from pathlib import Path - import numpy as np +import pywavefront # pyright: ignore[reportMissingImports] class Obj2Ifc: diff --git a/src/bonsai/scripts/replace_drawing_path.py b/src/bonsai/scripts/replace_drawing_path.py index eeca3911e0..500726082f 100644 --- a/src/bonsai/scripts/replace_drawing_path.py +++ b/src/bonsai/scripts/replace_drawing_path.py @@ -27,15 +27,15 @@ It works on the active ifc file (if exists). """ -import bonsai.tool as tool +import os +import sys +from sys import platform + import ifcopenshell import ifcopenshell.api.pset import ifcopenshell.util.element -import sys - -import os -from sys import platform +import bonsai.tool as tool file = tool.Ifc.get() if not file: diff --git a/src/bonsai/scripts/reregister_bonsai.py b/src/bonsai/scripts/reregister_bonsai.py index 437c9f5b34..ba9ab2ba2a 100644 --- a/src/bonsai/scripts/reregister_bonsai.py +++ b/src/bonsai/scripts/reregister_bonsai.py @@ -25,6 +25,7 @@ to ensure disable and enable occur in the same Blender session. import bpy + import bonsai.tool as tool bonsai_name = tool.Blender.get_blender_addon_package_name() diff --git a/src/bonsai/scripts/setup_pytest.py b/src/bonsai/scripts/setup_pytest.py index 25a58fa3c7..28dc7565f1 100644 --- a/src/bonsai/scripts/setup_pytest.py +++ b/src/bonsai/scripts/setup_pytest.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import sys import subprocess +import sys from pathlib import Path print("Here are the detected system paths:") @@ -28,28 +28,27 @@ base_python_path = str(Path(sys.executable).parent.parent) # path without bin/p print("Detected executable:", py_exec) -subprocess.call([py_exec, "-m", "ensurepip", "--user"]) -subprocess.call([py_exec, "-m", "pip", "install", "--upgrade", "pip"]) +subprocess.check_call([py_exec, "-m", "ensurepip", "--user"]) +subprocess.check_call([py_exec, "-m", "pip", "install", "--upgrade", "pip"]) sys_paths = [p for p in sys.path if "site-packages" in p and p.startswith(base_python_path)] +dependencies = ["pytest", "pytest-bdd", "pytest-blender", "pygments"] + if sys_paths: print("Detected installation directory:", sys_paths[-1]) - subprocess.call([py_exec, "-m", "pip", "install", f"--target={sys_paths[-1]}", "--upgrade", "pytest"]) - subprocess.call([py_exec, "-m", "pip", "install", f"--target={sys_paths[-1]}", "--upgrade", "pytest-bdd"]) - subprocess.call([py_exec, "-m", "pip", "install", f"--target={sys_paths[-1]}", "--upgrade", "pytest-blender"]) - subprocess.call([py_exec, "-m", "pip", "install", f"--target={sys_paths[-1]}", "--upgrade", "pygments"]) + command = [py_exec, "-m", "pip", "install", f"--target={sys_paths[-1]}", "--upgrade"] else: print("Could not detect installation directory. Good luck.") - subprocess.call([py_exec, "-m", "pip", "install", "--upgrade", "pytest"]) - subprocess.call([py_exec, "-m", "pip", "install", "--upgrade", "pytest-bdd"]) - subprocess.call([py_exec, "-m", "pip", "install", "--upgrade", "pytest-blender"]) - subprocess.call([py_exec, "-m", "pip", "install", "--upgrade", "pygments"]) + command = [py_exec, "-m", "pip", "install", "--upgrade"] + +for dep in dependencies: + subprocess.check_call(command + [dep]) try: + import pygments import pytest import pytest_bdd import pytest_blender - import pygments print("Test dependency installation was successful!") except Exception as e: diff --git a/src/bonsai/scripts/standalone_blender_import.py b/src/bonsai/scripts/standalone_blender_import.py index 27dc84e07f..a2b9908afb 100644 --- a/src/bonsai/scripts/standalone_blender_import.py +++ b/src/bonsai/scripts/standalone_blender_import.py @@ -1,6 +1,7 @@ +import multiprocessing + import ifcopenshell import ifcopenshell.geom -import multiprocessing class BlenderImporter: diff --git a/src/bonsai/scripts/standalone_drawer.py b/src/bonsai/scripts/standalone_drawer.py index 1b669adb3f..3eed11b9c9 100644 --- a/src/bonsai/scripts/standalone_drawer.py +++ b/src/bonsai/scripts/standalone_drawer.py @@ -1,10 +1,11 @@ -import sys -import ifcopenshell -import ifcopenshell.util.element -import ifcopenshell.geom import multiprocessing +import sys from typing import NamedTuple + +import ifcopenshell +import ifcopenshell.geom import ifcopenshell.ifcopenshell_wrapper as W +import ifcopenshell.util.element # W.turn_on_detailed_logging() diff --git a/src/bonsai/scripts/standalone_section_shader.py b/src/bonsai/scripts/standalone_section_shader.py index 970e58105b..20afd92fea 100644 --- a/src/bonsai/scripts/standalone_section_shader.py +++ b/src/bonsai/scripts/standalone_section_shader.py @@ -12,20 +12,16 @@ bl_info = { } -import bpy -from bpy.types import Operator, PropertyGroup, Panel -from mathutils import Vector, Matrix, Euler from math import radians + +import bpy from bpy.props import ( - PointerProperty, - StringProperty, - EnumProperty, BoolProperty, - IntProperty, - FloatProperty, FloatVectorProperty, - CollectionProperty, + PointerProperty, ) +from bpy.types import Operator, Panel, PropertyGroup +from mathutils import Euler, Vector class SectionCutawayManager: diff --git a/src/bonsai/scripts/waldo.py b/src/bonsai/scripts/waldo.py index 5ed734356c..00243c5782 100644 --- a/src/bonsai/scripts/waldo.py +++ b/src/bonsai/scripts/waldo.py @@ -1,4 +1,8 @@ -import numpy as np +# https://stackoverflow.com/a/9184560/9627415 +# Possible optimisation to linalg.norm? +from itertools import cycle +from math import radians + import ifcopenshell import ifcopenshell.api.aggregate import ifcopenshell.api.context @@ -12,14 +16,7 @@ import ifcopenshell.api.type import ifcopenshell.api.unit import ifcopenshell.util.placement import ifcopenshell.util.shape_builder - -# https://stackoverflow.com/a/9184560/9627415 -# Possible optimisation to linalg.norm? - -# from ifcopenshell.util.shape_builder import VectorType, SequenceOfVectors -from itertools import cycle -from collections import namedtuple -from math import sin, cos, radians +import numpy as np f = ifcopenshell.api.project.create_file() diff --git a/src/bonsai/test/bim/bootstrap.py b/src/bonsai/test/bim/bootstrap.py index 6d997bdd7f..c799c74c00 100644 --- a/src/bonsai/test/bim/bootstrap.py +++ b/src/bonsai/test/bim/bootstrap.py @@ -19,17 +19,19 @@ import os import re -import bpy -import pytest import webbrowser -import bonsai.bim.handler -import bonsai.tool as tool + +import bpy import ifcopenshell import ifcopenshell.util.element import ifcopenshell.util.representation -from bonsai.bim.ifc import IfcStore +import pytest from mathutils import Vector +import bonsai.bim.handler +import bonsai.tool as tool +from bonsai.bim.ifc import IfcStore + # Monkey-patch webbrowser opening since we want to test headlessly webbrowser.open = lambda x: True diff --git a/src/bonsai/test/bim/feature/array.feature b/src/bonsai/test/bim/feature/array.feature new file mode 100644 index 0000000000..23fa4c0080 --- /dev/null +++ b/src/bonsai/test/bim/feature/array.feature @@ -0,0 +1,276 @@ +@array +Feature: Array + +Scenario: Add array + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + When the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I see "No Array Found" + And I click "ADD" + Then the object "IfcColumn/Column" exists + And I see "Column" + And I see "1 Items" + And I don't see "No Array Found" + And the object "IfcColumn/Column" is at "0,0,0" + +Scenario: Enable editing array + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + And the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I click "ADD" + When I click "GREASEPENCIL" + Then I see "Count" + And I see "Method" + And I don't see "1 Items" + +Scenario: Disable editing array + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + And the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I click "ADD" + And I click "GREASEPENCIL" + When I click "CANCEL" + Then I see "1 Items" + And I don't see "Count" + +Scenario: Edit array + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + And the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I click "ADD" + And I click "GREASEPENCIL" + When I set the "Count" property to "2" + And I click "CHECKMARK" + Then the object "IfcColumn/Column.001" is in the collection "IfcBuildingStorey/My Storey" + And the object "IfcColumn/Column" is at "0,0,0" + And the object "IfcColumn/Column.001" is at "0,0,0" + And the object "IfcColumn/Column" dimensions are "0.5,0.6,3" + +Scenario: Edit array - offset method + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + And the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I click "ADD" + And I click "GREASEPENCIL" + When I set the "Count" property to "3" + And I set the "Method" property to "Offset" + And I set the "X" property to "1" + And I click "CHECKMARK" + Then the object "IfcColumn/Column.001" is in the collection "IfcBuildingStorey/My Storey" + And the object "IfcColumn/Column.002" is in the collection "IfcBuildingStorey/My Storey" + And the object "IfcColumn/Column" is at "0,0,0" + And the object "IfcColumn/Column.001" is at "1,0,0" + And the object "IfcColumn/Column.002" is at "2,0,0" + And the object "IfcColumn/Column" dimensions are "0.5,0.6,3" + And the object "IfcColumn/Column.001" dimensions are "0.5,0.6,3" + And the object "IfcColumn/Column.002" dimensions are "0.5,0.6,3" + +Scenario: Edit array - distribute method + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + And the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I click "ADD" + And I click "GREASEPENCIL" + When I set the "Count" property to "3" + And I set the "Method" property to "Distribute" + And I set the "X" property to "2" + And I click "CHECKMARK" + Then the object "IfcColumn/Column.001" is in the collection "IfcBuildingStorey/My Storey" + And the object "IfcColumn/Column.002" is in the collection "IfcBuildingStorey/My Storey" + And the object "IfcColumn/Column" is at "0,0,0" + And the object "IfcColumn/Column.001" is at "1,0,0" + And the object "IfcColumn/Column.002" is at "2,0,0" + And the object "IfcColumn/Column" dimensions are "0.5,0.6,3" + And the object "IfcColumn/Column.001" dimensions are "0.5,0.6,3" + And the object "IfcColumn/Column.002" dimensions are "0.5,0.6,3" + +Scenario: Edit array - local space + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + And the object "IfcColumn/Column" is rotated by "0,0,90" deg + And the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I click "ADD" + And I click "GREASEPENCIL" + When I set the "Count" property to "2" + And I set the "Method" property to "Offset" + And I set the "Use Local Space" property to "TRUE" + And I set the "X" property to "1" + And I click "CHECKMARK" + Then the object "IfcColumn/Column" is at "0,0,0" + And the object "IfcColumn/Column.001" is at "0,1,0" + +Scenario: Edit array - world space + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + And the object "IfcColumn/Column" is rotated by "0,0,90" deg + And the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I click "ADD" + And I click "GREASEPENCIL" + When I set the "Count" property to "2" + And I set the "Method" property to "Offset" + And I set the "Use Local Space" property to "FALSE" + And I set the "X" property to "1" + And I click "CHECKMARK" + Then the object "IfcColumn/Column" is at "0,0,0" + And the object "IfcColumn/Column.001" is at "1,0,0" + +Scenario: Edit array - decrease count + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + And the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I click "ADD" + And I click "GREASEPENCIL" + When I set the "Count" property to "3" + And I click "CHECKMARK" + And I click "GREASEPENCIL" + When I set the "Count" property to "2" + And I click "CHECKMARK" + Then the object "IfcColumn/Column.001" exists + And the object "IfcColumn/Column.002" does not exist + +Scenario: Edit array - multiple arrays + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + And the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I click "ADD" + And I click "GREASEPENCIL" + When I set the "Count" property to "3" + And I set the "Method" property to "Offset" + And I set the "X" property to "1" + And I click "CHECKMARK" + And I see "3 Items" + And I click "ADD" + And I click the "GREASEPENCIL" after the text "1 Items (Offset)" + And I set the "Count" property to "2" + And I set the "Method" property to "Offset" + And I set the "Y" property to "1" + And I click the "CHECKMARK" after the text "Count" + Then I see "3 Items" + And I see "2 Items" + Then the object "IfcColumn/Column.001" is in the collection "IfcBuildingStorey/My Storey" + And the object "IfcColumn/Column.002" is in the collection "IfcBuildingStorey/My Storey" + And the object "IfcColumn/Column.003" is in the collection "IfcBuildingStorey/My Storey" + And the object "IfcColumn/Column.004" is in the collection "IfcBuildingStorey/My Storey" + And the object "IfcColumn/Column.005" is in the collection "IfcBuildingStorey/My Storey" + And the object "IfcColumn/Column" is at "0,0,0" + And the object "IfcColumn/Column.001" is at "1,0,0" + And the object "IfcColumn/Column.002" is at "2,0,0" + And the object "IfcColumn/Column.003" is at "0,1,0" + And the object "IfcColumn/Column.004" is at "1,1,0" + And the object "IfcColumn/Column.005" is at "2,1,0" + And the object "IfcColumn/Column" dimensions are "0.5,0.6,3" + And the object "IfcColumn/Column.001" dimensions are "0.5,0.6,3" + And the object "IfcColumn/Column.002" dimensions are "0.5,0.6,3" + And the object "IfcColumn/Column.003" dimensions are "0.5,0.6,3" + And the object "IfcColumn/Column.004" dimensions are "0.5,0.6,3" + And the object "IfcColumn/Column.005" dimensions are "0.5,0.6,3" + +Scenario: Remove array + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + And the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I click "ADD" + And I click "GREASEPENCIL" + And I set the "Count" property to "2" + And I set the "Method" property to "Offset" + And I set the "X" property to "1" + And I click "CHECKMARK" + When I click "X" + Then the object "IfcColumn/Column" exists + And the object "IfcColumn/Column.001" does not exist + +Scenario: Regenerate array + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + And the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I click "ADD" + And I click "GREASEPENCIL" + And I set the "Count" property to "2" + And I click "CHECKMARK" + When I click "FILE_REFRESH" + Then the object "IfcColumn/Column" exists + And the object "IfcColumn/Column.001" exists + +Scenario: Apply array + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + And the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I click "ADD" + And I click "GREASEPENCIL" + And I set the "Count" property to "2" + And I click "CHECKMARK" + When I click "CHECKMARK" + Then the object "IfcColumn/Column" exists + And the object "IfcColumn/Column.001" exists + And I see "No Array Found" + +Scenario: Select array parent + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + And the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I click "ADD" + And I click "GREASEPENCIL" + And I set the "Count" property to "2" + And I click "CHECKMARK" + When the object "IfcColumn/Column.001" is selected + And I click "OBJECT_DATA" + Then the object "IfcColumn/Column" is selected + And the object "IfcColumn/Column.001" is not selected + +Scenario: Select all array objects + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcColumnType" + And I add the construction type + And the object "IfcColumn/Column" is selected + And I look at the "Array" panel + And I click "ADD" + And I click "GREASEPENCIL" + And I set the "Count" property to "2" + And I click "CHECKMARK" + When the object "IfcColumn/Column.001" is selected + And I click "RESTRICT_SELECT_OFF" + Then the object "IfcColumn/Column" is selected + And the object "IfcColumn/Column.001" is selected diff --git a/src/bonsai/test/bim/feature/boundary.feature b/src/bonsai/test/bim/feature/boundary.feature index 4b42a0bc2e..dcfaa8b802 100644 --- a/src/bonsai/test/bim/feature/boundary.feature +++ b/src/bonsai/test/bim/feature/boundary.feature @@ -22,6 +22,8 @@ Scenario: Add boundary from space And the cursor is at "0.5,0.5,0" And I deselect all objects And I press "bim.generate_space" + And I look at the "Spatial Decomposition" panel + And I set the "is_visible" property to "TRUE" When I select the object "IfcSpace/Space" And I press "bim.add_boundary" Then the object "IfcRelSpaceBoundary/None" exists diff --git a/src/bonsai/test/bim/feature/bsdd.feature b/src/bonsai/test/bim/feature/bsdd.feature index 29e6eb59e0..ed4ccfd23a 100644 --- a/src/bonsai/test/bim/feature/bsdd.feature +++ b/src/bonsai/test/bim/feature/bsdd.feature @@ -2,10 +2,10 @@ Feature: bSDD Scenario: Load bSDD dictionaries - Given an empty Blender session + Given an empty IFC project And I look at the "buildingSMART Data Dictionary" panel When I click "Load bSDD Dictionaries" - Then I see "Selected dictionary" + Then I see "Selected Dictionary:" And I see "LCA" in the "1st" list Scenario: Add classification from bSDD - add all dictionaries @@ -15,8 +15,7 @@ Scenario: Add classification from bSDD - add all dictionaries When I click "is_active" in the row where I see "LCA" in the "1st" list And I click "is_active" in the row where I see "BonsaiTestDict" in the "1st" list And I look at the "Classifications" panel - And I set the "classification_source" property to "buildingSMART Data Dictionary" - And I set the "active_dictionary" property to "All Dictionaries" + And I set the "classification_source" property to "All Active bSDDs" And I click "Add Classification From bSDD" Then I see "LCA" And I see "BonsaiTestDict" @@ -27,8 +26,7 @@ Scenario: Add classification from bSDD - add single dictionary And I click "Load bSDD Dictionaries" When I click "is_active" in the row where I see "BonsaiTestDict" in the "1st" list And I look at the "Classifications" panel - And I set the "classification_source" property to "buildingSMART Data Dictionary" - And I set the "active_dictionary" property to "BonsaiTestDict" + And I set the "classification_source" property to "BonsaiTestDict" And I click "Add Classification From bSDD" Then I see "BonsaiTestDict" And I don't see "LCA" @@ -41,8 +39,7 @@ Scenario: Search bSDD classifications - search all dictionaries And I click "is_active" in the row where I see "BonsaiTestDict" in the "1st" list And I select the object "IfcSite/My Site" And I look at the "Classification References" panel - And I set the "classification_source" property to "buildingSMART Data Dictionary" - And I set the "active_dictionary" property to "All Dictionaries" + And I set the "classification_source" property to "All Active bSDDs" And I click "VIEWZOOM" Then I see "Acidification" in the "1st" list And I see "BonsaiReferenceA" in the "1st" list @@ -54,8 +51,7 @@ Scenario: Search bSDD classifications - search single dictionary And I click "is_active" in the row where I see "BonsaiTestDict" in the "1st" list And I select the object "IfcSite/My Site" And I look at the "Classification References" panel - When I set the "classification_source" property to "buildingSMART Data Dictionary" - And I set the "active_dictionary" property to "BonsaiTestDict" + When I set the "classification_source" property to "BonsaiTestDict" And I click "VIEWZOOM" Then I see "BonsaiReferenceA" in the "1st" list And I don't see "Acidification" in the "1st" list @@ -68,8 +64,7 @@ Scenario: Add classification reference from bSDD - add classification only And I click "is_active" in the row where I see "BonsaiTestDict" in the "1st" list And I select the object "IfcSite/My Site" And I look at the "Classification References" panel - And I set the "classification_source" property to "buildingSMART Data Dictionary" - And I set the "active_dictionary" property to "All Dictionaries" + And I set the "classification_source" property to "All Active bSDDs" And I click "VIEWZOOM" Then I see "Acidification" in the "1st" list When I select the row where I see "Acidification" in the "1st" list @@ -77,29 +72,24 @@ Scenario: Add classification reference from bSDD - add classification only Then I see "Acidification" And I don't see "BonsaiReferenceA" -Scenario: Get bSDD classification properties - get associated properties then add classification +Scenario: Get bSDD classification properties - get and add associated properties Given an empty IFC project And I look at the "buildingSMART Data Dictionary" panel And I click "Load bSDD Dictionaries" When I click "is_active" in the row where I see "LCA" in the "1st" list And I select the object "IfcSite/My Site" - And I look at the "Classification References" panel - And I set the "classification_source" property to "buildingSMART Data Dictionary" - And I set the "active_dictionary" property to "All Dictionaries" - And I click "VIEWZOOM" - When I select the row where I see "Acidification" in the "1st" list - And I click "COPY_ID" - Then I see "SizeSet" - And I see "Height" - And I see "Volume" - And I see "No References" - When I set the "Height" property to "42" - And I click "Add Classification Reference" - Then I see "Acidification" - And I don't see "No References" - When I look at the "Property Sets" panel - Then I see "SizeSet" - And I see "Height" - And I see "42" - And I see "Volume" - And I see "0" + And I look at the "Property Sets" panel + And I set the "pset_name" property to "All Data Dictionaries" + And I click "FILE_REFRESH" + When I select the row where I see "Height" in the "2nd" list + And I click "is_selected" in the row where I see "Height" in the "2nd" list + And I click "is_selected" in the row where I see "Volume" in the "2nd" list + Then I look at the "Property Sets" panel + And I set the "height" property to "42" + And I set the "volume" property to "23" + When I click "Add bSDD Properties" + Then I look at the "Property Sets" panel + And I see "height" + And I see "42.0" + And I see "volume" + And I see "23.0" diff --git a/src/bonsai/test/bim/feature/document.feature b/src/bonsai/test/bim/feature/document.feature index 9b4a34cfb4..35509c2314 100644 --- a/src/bonsai/test/bim/feature/document.feature +++ b/src/bonsai/test/bim/feature/document.feature @@ -6,23 +6,6 @@ Scenario: Load project documents When I press "bim.load_project_documents" Then nothing happens -Scenario: Load document - Given an empty IFC project - And I press "bim.load_project_documents" - And I press "bim.add_information" - And the variable "information" is "{ifc}.by_type('IfcDocumentInformation')[-1].id()" - When I press "bim.load_document(document={information})" - Then nothing happens - -Scenario: Load parent document - Given an empty IFC project - And I press "bim.load_project_documents" - And I press "bim.add_information" - And the variable "information" is "{ifc}.by_type('IfcDocumentInformation')[-1].id()" - And I press "bim.load_document(document={information})" - When I press "bim.load_parent_document" - Then nothing happens - Scenario: Disable document editing UI Given an empty IFC project And I press "bim.load_project_documents" @@ -57,7 +40,8 @@ Scenario: Add document reference And I press "bim.load_project_documents" And I press "bim.add_information" And the variable "information" is "{ifc}.by_type('IfcDocumentInformation')[-1].id()" - And I press "bim.load_document(document={information})" + And I press "bim.load_project_documents" + And I set "scene.BIMDocumentProperties.active_document_index" to "1" When I press "bim.add_document_reference" Then nothing happens @@ -83,16 +67,12 @@ Scenario: Assign document And I press "bim.load_project_documents" And I press "bim.add_information" And the variable "information" is "{ifc}.by_type('IfcDocumentInformation')[-1].id()" - And I press "bim.load_document(document={information})" - And I press "bim.add_document_reference" - And the variable "reference" is "{ifc}.by_type('IfcDocumentReference')[-1].id()" And I add a cube And the object "Cube" is selected - And I look at the "Class" panel - And I set the "Products" property to "IfcElement" - And I set the "Class" property to "IfcWall" - And I click "Assign IFC Class" - When I press "bim.assign_document(document={reference})" + And I set "scene.BIMRootProperties.ifc_product" to "IfcElement" + And I set "scene.BIMRootProperties.ifc_class" to "IfcWall" + And I press "bim.assign_class" + When I press "bim.assign_document(document={information})" Then nothing happens Scenario: Unassign document @@ -100,15 +80,11 @@ Scenario: Unassign document And I press "bim.load_project_documents" And I press "bim.add_information" And the variable "information" is "{ifc}.by_type('IfcDocumentInformation')[-1].id()" - And I press "bim.load_document(document={information})" - And I press "bim.add_document_reference" - And the variable "reference" is "{ifc}.by_type('IfcDocumentReference')[-1].id()" And I add a cube And the object "Cube" is selected - And I look at the "Class" panel - And I set the "Products" property to "IfcElement" - And I set the "Class" property to "IfcWall" - And I click "Assign IFC Class" - And I press "bim.assign_document(document={reference})" - When I press "bim.unassign_document(document={reference})" - Then nothing happens + And I set "scene.BIMRootProperties.ifc_product" to "IfcElement" + And I set "scene.BIMRootProperties.ifc_class" to "IfcWall" + And I press "bim.assign_class" + And I press "bim.assign_document(document={information})" + When I press "bim.unassign_document(document={information})" + Then nothing happens \ No newline at end of file diff --git a/src/bonsai/test/bim/feature/drawing.feature b/src/bonsai/test/bim/feature/drawing.feature index 7a4d59c9d5..6a24168e4b 100644 --- a/src/bonsai/test/bim/feature/drawing.feature +++ b/src/bonsai/test/bim/feature/drawing.feature @@ -9,7 +9,7 @@ Scenario: Duplicate drawing And I set the "Products" property to "IfcElement" And I set the "Class" property to "IfcWall" And I click "Assign IFC Class" - And I save sample test files + And I save IFC project And I look at the "Drawings" panel And I click "IMPORT" And I click "ADD" @@ -27,7 +27,7 @@ Scenario: Duplicate drawing - without duplicating annotations And I set the "Products" property to "IfcElement" And I set the "Class" property to "IfcWall" And I click "Assign IFC Class" - And I save sample test files + And I save IFC project And I look at the "Drawings" panel And I click "IMPORT" And I click "ADD" @@ -50,7 +50,7 @@ Scenario: Duplicate drawing - with duplicating annotations And I set the "Products" property to "IfcElement" And I set the "Class" property to "IfcWall" And I click "Assign IFC Class" - And I save sample test files + And I save IFC project And I look at the "Drawings" panel And I click "IMPORT" And I click "ADD" @@ -73,7 +73,7 @@ Scenario: Create drawing And I set the "Products" property to "IfcElement" And I set the "Class" property to "IfcWall" And I click "Assign IFC Class" - And I save sample test files + And I save IFC project And I look at the "Drawings" panel And I click "IMPORT" And I click "ADD" @@ -93,7 +93,7 @@ Scenario: Create drawing after deleting a duplicated object And I set the "Class" property to "IfcWall" And I click "Assign IFC Class" And I duplicate the selected objects - And I save sample test files + And I save IFC project And I look at the "Drawings" panel And I click "IMPORT" And I click "ADD" @@ -112,7 +112,7 @@ Scenario: Activate drawing preserves visibility for non-ifc objects And I add a cube And the object "Cube" is visible And the object "Cube.001" is not visible - And I save sample test files + And I save IFC project And I look at the "Drawings" panel And I click "IMPORT" And I click "ADD" @@ -126,7 +126,7 @@ Scenario: Activate drawing preserves selection Given an empty IFC project And I add a cube And the object "Cube" is selected - And I save sample test files + And I save IFC project And I look at the "Drawings" panel And I click "IMPORT" And I click "ADD" @@ -143,12 +143,13 @@ Scenario: Remove drawing And I set the "Products" property to "IfcElement" And I set the "Class" property to "IfcWall" And I click "Assign IFC Class" - And I save sample test files + And I save IFC project And I look at the "Drawings" panel And I click "IMPORT" And I click "ADD" And I press "bim.toggle_target_view(option="EXPAND", target_view='PLAN_VIEW')" And I select the "PLAN_VIEW" item in the "BIM_UL_drawinglist" list + And the variable "drawing" is "IfcStore.get_file().by_type('IfcAnnotation')[0].id()" When I click "VIEW_CAMERA_UNSELECTED" in the row where I see "PLAN_VIEW" in the "1st" list Then the collection "IfcAnnotation/PLAN_VIEW" exists When I press "bim.remove_drawing(drawing={drawing})" @@ -156,13 +157,16 @@ Scenario: Remove drawing Scenario: Remove drawing - via object deletion Given an empty IFC project + And I save IFC project And I add a cube And the object "Cube" is selected And I look at the "Class" panel And I set the "Products" property to "IfcElement" And I set the "Class" property to "IfcWall" And I click "Assign IFC Class" - And I press "bim.add_drawing" + And I look at the "Drawings" panel + And I click "IMPORT" + And I click "ADD" And the variable "drawing" is "IfcStore.get_file().by_type('IfcAnnotation')[0].id()" And the collection "IfcAnnotation/PLAN_VIEW" exists And the object "IfcAnnotation/PLAN_VIEW" is selected @@ -177,7 +181,7 @@ Scenario: Remove drawing - deleting active drawing And I set the "Products" property to "IfcElement" And I set the "Class" property to "IfcWall" And I click "Assign IFC Class" - And I save sample test files + And I save IFC project And I look at the "Drawings" panel And I click "IMPORT" And I click "ADD" @@ -192,7 +196,7 @@ Scenario: Add annotation - text Given an empty IFC project And I add a cube And the object "Cube" is selected - And I save sample test files + And I save IFC project And I look at the "Drawings" panel And I click "IMPORT" And I click "ADD" @@ -206,7 +210,7 @@ Scenario: Add annotation - auto create context if it doesn't exist Given an empty IFC project And I add a cube And the object "Cube" is selected - And I save sample test files + And I save IFC project And I look at the "Geometric Representation Contexts" panel And I see "Plan" And I click the "X" after the text "Plan" @@ -227,7 +231,7 @@ Scenario: Create drawing - using shapely fill mode And I set the "Products" property to "IfcElement" And I set the "Class" property to "IfcWall" And I click "Assign IFC Class" - And I save sample test files + And I save IFC project And I look at the "Drawings" panel And I click "IMPORT" And I set the "location_hint" property to "My Storey" @@ -243,7 +247,7 @@ Scenario: Create drawing - using shapely fill mode Scenario: Add sheet Given an empty IFC project - And I save sample test files + And I save IFC project And I look at the "Sheets" panel And I click "IMPORT" When I click "ADD" @@ -252,7 +256,7 @@ Scenario: Add sheet Scenario: Create sheet Given an empty IFC project - And I save sample test files + And I save IFC project And I look at the "Sheets" panel And I click "IMPORT" And I click "ADD" @@ -269,7 +273,7 @@ Scenario: Add drawing to sheet And I set the "Products" property to "IfcElement" And I set the "Class" property to "IfcWall" And I click "Assign IFC Class" - And I save sample test files + And I save IFC project And I look at the "Drawings" panel And I click "IMPORT" And I click "ADD" @@ -294,7 +298,7 @@ Scenario: Create sheet - with a drawing added to it And I set the "Products" property to "IfcElement" And I set the "Class" property to "IfcWall" And I click "Assign IFC Class" - And I save sample test files + And I save IFC project And I look at the "Drawings" panel And I click "IMPORT" And I click "ADD" diff --git a/src/bonsai/test/bim/feature/geometry.feature b/src/bonsai/test/bim/feature/geometry.feature index 0f091fd9ca..3bbf22a5c2 100644 --- a/src/bonsai/test/bim/feature/geometry.feature +++ b/src/bonsai/test/bim/feature/geometry.feature @@ -102,8 +102,10 @@ Scenario: Remove representation - remove an active representation And I set "scene.BIMRootProperties.ifc_class" to "IfcWall" And I press "bim.assign_class" When the variable "representation_body" is "{ifc}.by_type('IfcShapeRepresentation')[0].id()" + And the variable "representation_context" is "{ifc}.by_type('IfcShapeRepresentation')[0].ContextOfItems.id()" And I press "bim.remove_representation(representation_id={representation_body})" Then the object "IfcWall/Cube" has no data + And the mesh "{representation_context}/{representation_body}" does not exist Scenario: Remove representation - remove an unloaded representation Given an empty IFC project @@ -292,14 +294,31 @@ Scenario: Override duplicate move - with active IFC data And I set the "Class" property to "IfcWall" And I click "Assign IFC Class" And the object "IfcWall/Cube" is selected - And additionally the object "IfcBuildingStorey/My Storey" is selected - And I set "scene.BIMSpatialDecompositionProperties.is_locked" to "False" When I duplicate the selected objects Then the object "IfcWall/Cube" exists And the object "IfcWall/Cube" is an "IfcWall" And the object "IfcWall/Cube.001" exists And the object "IfcWall/Cube.001" is an "IfcWall" And the object "IfcWall/Cube.001" has a "Tessellation" representation of "Model/Body/MODEL_VIEW" + +Scenario: Override duplicate move - with locked elements + Given an empty IFC project + And I add a cube + And the object "Cube" is selected + And I look at the "Class" panel + And I set the "Products" property to "IfcElement" + And I set the "Class" property to "IfcWall" + And I click "Assign IFC Class" + And the object "IfcWall/Cube" is selected + And I look at the "Spatial Decomposition" panel + And I set the "is_visible" property to "TRUE" + And additionally the object "IfcBuildingStorey/My Storey" is selected + Then I press "bim.override_object_duplicate_move" and expect error "Error: 'IfcBuildingStorey/My Storey' is locked. Unlock it via the Spatial panel in the Project Overview tab." + And the object "IfcWall/Cube" exists + And the object "IfcWall/Cube" is an "IfcWall" + And the object "IfcWall/Cube.001" exists + And the object "IfcWall/Cube.001" is an "IfcWall" + And the object "IfcWall/Cube.001" has a "Tessellation" representation of "Model/Body/MODEL_VIEW" And the object "IfcBuildingStorey/My Storey.001" does not exist Scenario: Override duplicate move - with unlocked elements @@ -310,8 +329,10 @@ Scenario: Override duplicate move - with unlocked elements And I set the "Products" property to "IfcElement" And I set the "Class" property to "IfcWall" And I click "Assign IFC Class" + And I look at the "Spatial Decomposition" panel + And I set the "is_visible" property to "TRUE" + And I set the "is_locked" property to "FALSE" And the object "IfcBuildingStorey/My Storey" is selected - And I set "scene.BIMSpatialDecompositionProperties.is_locked" to "False" When I duplicate the selected objects Then the object "IfcBuildingStorey/My Storey.001" exists And the object "IfcBuildingStorey/My Storey.001" is an "IfcBuildingStorey" @@ -333,9 +354,8 @@ Scenario: Override duplicate move - copying a coloured representation And the variable "style" is "{ifc}.by_type('IfcSurfaceStyle')[0].id()" And I press "bim.assign_style_to_selected(style_id={style})" When I duplicate the selected objects - And I press "bim.save_project(filepath='{cwd}/test/files/temp/export.ifc')" - And an empty Blender session is started - And I press "bim.load_project(filepath='{cwd}/test/files/temp/export.ifc', should_start_fresh_session=False)" + And I save IFC project + And I load previously saved IFC project Then the material "Style" colour is "1,0,0,1" And the object "IfcWall/Cube" has the material "Style" And the object "IfcWall/Cube.001" has the material "Style" @@ -507,6 +527,8 @@ Scenario: Override duplicate move linked - with active IFC data And I set the "Products" property to "IfcElement" And I set the "Class" property to "IfcWall" And I click "Assign IFC Class" + And I look at the "Spatial Decomposition" panel + And I set the "is_visible" property to "TRUE" And the object "IfcWall/Cube" is selected And additionally the object "IfcBuildingStorey/My Storey" is selected When I press "object.duplicate_move_linked" @@ -538,6 +560,9 @@ Scenario: Override paste buffer - with active IFC data And I set the "Class" property to "IfcWall" And I click "Assign IFC Class" And the object "IfcWall/Cube" is selected + And I look at the "Spatial Decomposition" panel + And I set the "is_visible" property to "TRUE" + And I set the "is_locked" property to "FALSE" And additionally the object "IfcBuildingStorey/My Storey" is selected When I press "view3d.copybuffer" # IFC elements unlinked on paste for safety @@ -555,8 +580,9 @@ Scenario: Duplicate linked aggregate When I duplicate linked aggregate the selected objects Then the object "IfcWall/Wall_01.001" exists And the object "IfcWall/Wall_02.001" exists - And the object "IfcElementAssembly/Assembly_01" exists - Then the object "IfcElementAssembly/Assembly" and "IfcElementAssembly/Assembly_01" belong to the same Linked Aggregate Group + # msgbus updates don't happen in background mode, so obj is not renamed to "IfcElementAssembly/Assembly_01" + And the object "Assembly_01" exists + Then the object "IfcElementAssembly/Assembly" and "Assembly_01" belong to the same Linked Aggregate Group Scenario: Refresh linked aggregate Given I load the IFC test file "/test/files/linked-aggregates.ifc" diff --git a/src/bonsai/test/bim/feature/model.feature b/src/bonsai/test/bim/feature/model.feature index 98930639fa..9ca843c1c5 100644 --- a/src/bonsai/test/bim/feature/model.feature +++ b/src/bonsai/test/bim/feature/model.feature @@ -755,3 +755,48 @@ Scenario: Generate a space from cursor location And I press "bim.generate_space" Then the object "IfcSpace/Space" exists And the object "IfcSpace/Space" dimensions are "1,0.8,3" + +Scenario: Add and edit parametric stair + Given an empty IFC project + And I add a cube + And the object "Cube" is selected + And I look at the "Class" panel + And I set the "Products" property to "IfcElement" + And I set the "Class" property to "IfcStairFlight" + And I click "Assign IFC Class" + And I look at the "Stair" panel + And I click "ADD" + And I look at the "Stair" panel + And I click "GREASEPENCIL" + And I look at the "Stair" panel + And I click "CHECKMARK" + +Scenario: Add and edit parametric window + Given an empty IFC project + And I add a cube + And the object "Cube" is selected + And I look at the "Class" panel + And I set the "Products" property to "IfcElement" + And I set the "Class" property to "IfcWindow" + And I click "Assign IFC Class" + And I look at the "BIM_PT_window" panel + And I click "ADD" + And I look at the "BIM_PT_window" panel + And I click "GREASEPENCIL" + And I look at the "BIM_PT_window" panel + And I click "CHECKMARK" + +Scenario: Add and edit parametric door + Given an empty IFC project + And I add a cube + And the object "Cube" is selected + And I look at the "Class" panel + And I set the "Products" property to "IfcElement" + And I set the "Class" property to "IfcDoor" + And I click "Assign IFC Class" + And I look at the "Door" panel + And I click "ADD" + And I look at the "Door" panel + And I click "GREASEPENCIL" + And I look at the "Door" panel + And I click "CHECKMARK" diff --git a/src/bonsai/test/bim/feature/project.feature b/src/bonsai/test/bim/feature/project.feature index f17d1721be..cb9aeec21e 100644 --- a/src/bonsai/test/bim/feature/project.feature +++ b/src/bonsai/test/bim/feature/project.feature @@ -679,7 +679,7 @@ Scenario: Load project elements - all georeferencing coordinate situations with Scenario: Link IFC Given an empty IFC project - When I press "bim.link_ifc(filepath='{cwd}/test/files/basic.ifc')" + When I link IFC project from "{cwd}/test/files/basic.ifc" Then "scene.BIMProjectProperties.links['{cwd}/test/files/basic.ifc'].is_loaded" is "True" And the collection "IfcProject/basic.ifc" exists And the object "Chunk" exists @@ -690,7 +690,7 @@ Scenario: Link IFC - disabled false origin mode # Not currently possible via UI And I set "scene.BIMProjectProperties.distance_limit" to "5" And I set "scene.BIMProjectProperties.false_origin_mode" to "DISABLED" - When I press "bim.link_ifc(filepath='{cwd}/test/files/geolocation.ifc', use_cache=False)" + When I link IFC project from "{cwd}/test/files/geolocation.ifc" Then the object "Chunk" exists And the object "Chunk" has a vertex at "2,2,-1" And the object "Chunk" has a vertex at "9,-1,-1" @@ -701,7 +701,7 @@ Scenario: Link IFC - from an empty IFC project - automatic false origin mode (0, # Not currently possible via UI And I set "scene.BIMProjectProperties.distance_limit" to "5" And I set "scene.BIMProjectProperties.false_origin_mode" to "AUTOMATIC" - When I press "bim.link_ifc(filepath='{cwd}/test/files/geolocation.ifc', use_cache=False)" + When I link IFC project from "{cwd}/test/files/geolocation.ifc" Then the object "Chunk" exists And the object "Chunk" has a vertex at "2,2,-1" And the object "Chunk" has a vertex at "9,-1,-1" @@ -712,7 +712,7 @@ Scenario: Link IFC - from an empty Blender session - automatic false origin mode # Not currently possible via UI And I set "scene.BIMProjectProperties.distance_limit" to "5" And I set "scene.BIMProjectProperties.false_origin_mode" to "AUTOMATIC" - When I press "bim.link_ifc(filepath='{cwd}/test/files/geolocation.ifc', use_cache=False)" + When I link IFC project from "{cwd}/test/files/geolocation.ifc" Then the object "Chunk" exists And the object "Chunk" has a vertex at "-11,-2,0" And the object "Chunk" has a vertex at "-4,-5,0" @@ -724,7 +724,7 @@ Scenario: Link IFC - manual false origin mode And I set "scene.BIMProjectProperties.distance_limit" to "5" And I set "scene.BIMProjectProperties.false_origin_mode" to "MANUAL" And I set "scene.BIMProjectProperties.false_origin" to "10000,0,0" - When I press "bim.link_ifc(filepath='{cwd}/test/files/geolocation.ifc', use_cache=False)" + When I link IFC project from "{cwd}/test/files/geolocation.ifc" Then the object "Chunk" exists And the object "Chunk" has a vertex at "-8,2,-1" And the object "Chunk" has a vertex at "-1,-1,-1" @@ -735,8 +735,8 @@ Scenario: Link IFC - automatic false origin mode - two different false origins a # Not currently possible via UI And I set "scene.BIMProjectProperties.distance_limit" to "5" And I set "scene.BIMProjectProperties.false_origin_mode" to "AUTOMATIC" - When I press "bim.link_ifc(filepath='{cwd}/test/files/geolocation.ifc', use_cache=False)" - And I press "bim.link_ifc(filepath='{cwd}/test/files/geolocation-mapconversion-angle.ifc', use_cache=False)" + When I link IFC project from "{cwd}/test/files/geolocation.ifc" + And I link IFC project from "{cwd}/test/files/geolocation-mapconversion-angle.ifc" Then the object "Col:IfcProject/geolocation.ifc:Chunk" exists And the object "Col:IfcProject/geolocation-mapconversion-angle.ifc:Chunk" exists And the object "Col:IfcProject/geolocation.ifc:Chunk" has a vertex at "-11,-2,0" @@ -751,8 +751,8 @@ Scenario: Link IFC - automatic false origin mode - two different false origins a # Not currently possible via UI And I set "scene.BIMProjectProperties.distance_limit" to "5" And I set "scene.BIMProjectProperties.false_origin_mode" to "AUTOMATIC" - When I press "bim.link_ifc(filepath='{cwd}/test/files/geolocation-mapconversion-angle.ifc', use_cache=False)" - And I press "bim.link_ifc(filepath='{cwd}/test/files/geolocation.ifc', use_cache=False)" + When I link IFC project from "{cwd}/test/files/geolocation-mapconversion-angle.ifc" + And I link IFC project from "{cwd}/test/files/geolocation.ifc" Then the object "Col:IfcProject/geolocation.ifc:Chunk" exists And the object "Col:IfcProject/geolocation-mapconversion-angle.ifc:Chunk" exists And the object "Col:IfcProject/geolocation-mapconversion-angle.ifc:Chunk" has a vertex at "-11,-2,0" @@ -767,9 +767,9 @@ Scenario: Link IFC - automatic false origin mode - three identical false origins # Not currently possible via UI And I set "scene.BIMProjectProperties.distance_limit" to "5" And I set "scene.BIMProjectProperties.false_origin_mode" to "AUTOMATIC" - When I press "bim.link_ifc(filepath='{cwd}/test/files/geolocation-unit1.ifc', use_cache=False)" - And I press "bim.link_ifc(filepath='{cwd}/test/files/geolocation-unit2.ifc', use_cache=False)" - And I press "bim.link_ifc(filepath='{cwd}/test/files/geolocation-unit3.ifc', use_cache=False)" + When I link IFC project from "{cwd}/test/files/geolocation-unit1.ifc" + And I link IFC project from "{cwd}/test/files/geolocation-unit2.ifc" + And I link IFC project from "{cwd}/test/files/geolocation-unit3.ifc" Then the object "Col:IfcProject/geolocation-unit1.ifc:Chunk" exists And the object "Col:IfcProject/geolocation-unit2.ifc:Chunk" exists And the object "Col:IfcProject/geolocation-unit3.ifc:Chunk" exists @@ -779,7 +779,7 @@ Scenario: Link IFC - automatic false origin mode - three identical false origins Scenario: Toggle link visibility - wireframe mode Given an empty IFC project - And I press "bim.link_ifc(filepath='{cwd}/test/files/basic.ifc')" + And I link IFC project from "{cwd}/test/files/basic.ifc" When I press "bim.toggle_link_visibility(link='{cwd}/test/files/basic.ifc', mode='WIREFRAME')" Then "scene.BIMProjectProperties.links['{cwd}/test/files/basic.ifc'].is_wireframe" is "True" And the object "Chunk" should display as "WIRE" @@ -789,7 +789,7 @@ Scenario: Toggle link visibility - wireframe mode Scenario: Toggle link selectability Given an empty IFC project - And I press "bim.link_ifc(filepath='{cwd}/test/files/basic.ifc')" + And I link IFC project from "{cwd}/test/files/basic.ifc" When I press "bim.toggle_link_selectability(link='{cwd}/test/files/basic.ifc')" Then "scene.BIMProjectProperties.links['{cwd}/test/files/basic.ifc'].is_selectable" is "False" And the collection "IfcProject/basic.ifc" is unselectable @@ -799,7 +799,7 @@ Scenario: Toggle link selectability Scenario: Toggle link visibility - visible mode Given an empty IFC project - And I press "bim.link_ifc(filepath='{cwd}/test/files/basic.ifc')" + And I link IFC project from "{cwd}/test/files/basic.ifc" When I press "bim.toggle_link_visibility(link='{cwd}/test/files/basic.ifc', mode='VISIBLE')" Then "scene.BIMProjectProperties.links['{cwd}/test/files/basic.ifc'].is_hidden" is "True" And the object "IfcProject/basic.ifc" is not visible @@ -809,14 +809,14 @@ Scenario: Toggle link visibility - visible mode Scenario: Unload link Given an empty Blender session - And I press "bim.link_ifc(filepath='{cwd}/test/files/basic.ifc')" + And I link IFC project from "{cwd}/test/files/basic.ifc" When I press "bim.unload_link(filepath='{cwd}/test/files/basic.ifc')" Then "scene.BIMProjectProperties.links['{cwd}/test/files/basic.ifc'].is_loaded" is "False" And the collection "IfcProject/basic.ifc" does not exist Scenario: Load link Given an empty Blender session - And I press "bim.link_ifc(filepath='{cwd}/test/files/basic.ifc')" + And I link IFC project from "{cwd}/test/files/basic.ifc" And I press "bim.unload_link(filepath='{cwd}/test/files/basic.ifc')" When I press "bim.load_link(filepath='{cwd}/test/files/basic.ifc')" Then "scene.BIMProjectProperties.links['{cwd}/test/files/basic.ifc'].is_loaded" is "True" @@ -824,7 +824,7 @@ Scenario: Load link Scenario: Unlink IFC Given an empty Blender session - And I press "bim.link_ifc(filepath='{cwd}/test/files/basic.ifc')" + And I link IFC project from "{cwd}/test/files/basic.ifc" And I press "bim.unload_link(filepath='{cwd}/test/files/basic.ifc')" When I press "bim.unlink_ifc(filepath='{cwd}/test/files/basic.ifc')" Then "scene.BIMProjectProperties.links.get('{cwd}/test/files/basic.ifc')" is "None" @@ -833,20 +833,21 @@ Scenario: Unlink IFC Scenario: Export IFC - blank project Given an empty IFC project - When I press "bim.save_project(filepath='{cwd}/test/files/temp/export.ifc')" + When I save IFC project Then nothing happens Scenario: Export IFC - with basic contents Given an empty Blender session And I press "bim.load_project(filepath='{cwd}/test/files/basic.ifc')" - When I press "bim.save_project(filepath='{cwd}/test/files/temp/export.ifc')" - Then "scene.BIMProperties.ifc_file" is "{cwd}/test/files/temp/export.ifc" + When I save IFC project + Then "scene.BIMProperties.ifc_file" is "{temp_project_path}" Scenario: Export IFC - with basic contents and saving as another file Given an empty Blender session And I press "bim.load_project(filepath='{cwd}/test/files/basic.ifc')" - When I press "bim.save_project(filepath='{cwd}/test/files/temp/export.ifc', should_save_as=True)" - Then "scene.BIMProperties.ifc_file" is "{cwd}/test/files/temp/export.ifc" + When I save IFC project + When I press "bim.save_project(filepath='{temp_project_path}', should_save_as=True)" + Then "scene.BIMProperties.ifc_file" is "{temp_project_path}" Scenario: Export IFC - with basic contents and saving as IfcJSON where import is not supported Given an empty Blender session @@ -872,29 +873,28 @@ Scenario: Export IFC - with basic contents and saving as a relative path Scenario: Export IFC - with deleted objects synchronised Given an empty IFC project - When the object "IfcBuildingStorey/My Storey" is selected - And I set "scene.BIMSpatialDecompositionProperties.is_locked" to "False" + And I look at the "Spatial Decomposition" panel + When I set the "is_visible" property to "TRUE" + And the object "IfcBuildingStorey/My Storey" is selected + And I set the "is_locked" property to "FALSE" And I delete the selected objects - And I press "bim.save_project(filepath='{cwd}/test/files/temp/export.ifc')" - And an empty Blender session is started - And I press "bim.load_project(filepath='{cwd}/test/files/temp/export.ifc')" + And I save IFC project + And I load previously saved IFC project Then the object "IfcBuildingStorey/My Storey" does not exist Scenario: Export IFC - with moved object location synchronised Given an empty IFC project When the object "IfcBuildingStorey/My Storey" is moved to "0,0,1" - And I press "bim.save_project(filepath='{cwd}/test/files/temp/export.ifc')" - And an empty Blender session is started - And I press "bim.load_project(filepath='{cwd}/test/files/temp/export.ifc')" + And I save IFC project + And I load previously saved IFC project Then the object "IfcBuildingStorey/My Storey" is at "0,0,1" Scenario: Export IFC - with moved grid axis location synchronised Given an empty IFC project And I press "mesh.add_grid" When the object "IfcGridAxis/01" is moved to "1,0,0" - And I press "bim.save_project(filepath='{cwd}/test/files/temp/export.ifc')" - And an empty Blender session is started - And I press "bim.load_project(filepath='{cwd}/test/files/temp/export.ifc')" + And I save IFC project + And I load previously saved IFC project Then the object "IfcGridAxis/01" bottom left corner is at "1,-2,0" Scenario: Export IFC - with changed object scale ignored @@ -907,7 +907,6 @@ Scenario: Export IFC - with changed object scale ignored And I click "Assign IFC Class" And the object "IfcWall/Cube" is selected When the object "IfcWall/Cube" is scaled to "2" - And I press "bim.save_project(filepath='{cwd}/test/files/temp/export.ifc')" - And an empty Blender session is started - And I press "bim.load_project(filepath='{cwd}/test/files/temp/export.ifc')" + And I save IFC project + And I load previously saved IFC project Then the object "IfcWall/Cube" dimensions are "2,2,2" diff --git a/src/bonsai/test/bim/feature/root.feature b/src/bonsai/test/bim/feature/root.feature index acd6c79938..1267e022a9 100644 --- a/src/bonsai/test/bim/feature/root.feature +++ b/src/bonsai/test/bim/feature/root.feature @@ -167,14 +167,18 @@ Scenario: Copy a wall Scenario: Copy a storey - when locked Given an empty IFC project + And I look at the "Spatial Decomposition" panel + And I set the "is_visible" property to "TRUE" And the object "IfcBuildingStorey/My Storey" is selected Then I expect an error "Error: 'IfcBuildingStorey/My Storey' is locked. Unlock it via the Spatial panel in the Project Overview tab." when "i_duplicate_the_selected_objects()" Then the object "IfcBuildingStorey/My Storey.001" does not exist Scenario: Copy a storey - when unlocked Given an empty IFC project + And I look at the "Spatial Decomposition" panel + And I set the "is_visible" property to "TRUE" And the object "IfcBuildingStorey/My Storey" is selected - And I set "scene.BIMSpatialDecompositionProperties.is_locked" to "False" + And I set the "is_locked" property to "FALSE" When I duplicate the selected objects Then the object "IfcBuildingStorey/My Storey" and "IfcBuildingStorey/My Storey.001" are different elements And the object "IfcBuildingStorey/My Storey" is in the collection "IfcBuildingStorey/My Storey" diff --git a/src/bonsai/test/bim/feature/spatial.feature b/src/bonsai/test/bim/feature/spatial.feature index de15d6df9b..3ed7a80b94 100644 --- a/src/bonsai/test/bim/feature/spatial.feature +++ b/src/bonsai/test/bim/feature/spatial.feature @@ -15,6 +15,7 @@ Scenario: Set default container Scenario: Select container Given an empty IFC project And I look at the "Spatial Decomposition" panel + And I set the "is_visible" property to "TRUE" When I select the row where I see "My Building" in the "1st" list And I click "OBJECT_DATA" Then the object "IfcBuilding/My Building" is selected @@ -73,6 +74,50 @@ Scenario: Assign container When I click "CHECKMARK" Then the object "IfcWall/Cube" is in the collection "IfcSite/My Site" +Scenario: Assign container - assign an aggregate which also affects children + Given an empty IFC project + And I add a cube + And the object "Cube" is selected + And I look at the "Class" panel + And I set the "Products" property to "IfcElement" + And I set the "Class" property to "IfcWall" + And I click "Assign IFC Class" + And the object "IfcWall/Cube" is selected + When I press "bim.add_aggregate" + Then the object "IfcElementAssembly/Default_Name" exists + And the object "IfcElementAssembly/Default_Name" is contained in object "IfcBuildingStorey/My Storey" + When I look at the "Spatial Decomposition" panel + And I select the "My Site" item in the "BIM_UL_containers_manager" list + And I click "Set Default" + And the object "IfcWall/Cube" is selected + And I look at the "Spatial Container" panel + And I click "GREASEPENCIL" + And I click "CHECKMARK" + Then the object "IfcWall/Cube" is in the collection "IfcSite/My Site" + And the object "IfcElementAssembly/Default_Name" is in the collection "IfcSite/My Site" + +Scenario: Assign container - assign a child which also affects parents + Given an empty IFC project + And I add a cube + And the object "Cube" is selected + And I look at the "Class" panel + And I set the "Products" property to "IfcElement" + And I set the "Class" property to "IfcWall" + And I click "Assign IFC Class" + And the object "IfcWall/Cube" is selected + When I press "bim.add_aggregate" + Then the object "IfcElementAssembly/Default_Name" exists + And the object "IfcElementAssembly/Default_Name" is contained in object "IfcBuildingStorey/My Storey" + When I look at the "Spatial Decomposition" panel + And I select the "My Site" item in the "BIM_UL_containers_manager" list + And I click "Set Default" + And the object "IfcElementAssembly/Default_Name" is selected + And I look at the "Spatial Container" panel + And I click "GREASEPENCIL" + And I click "CHECKMARK" + Then the object "IfcWall/Cube" is in the collection "IfcSite/My Site" + And the object "IfcElementAssembly/Default_Name" is in the collection "IfcSite/My Site" + Scenario: Copy to container Given an empty IFC project And I add a cube @@ -81,10 +126,10 @@ Scenario: Copy to container And I set the "Products" property to "IfcElement" And I set the "Class" property to "IfcWall" And I click "Assign IFC Class" - And the object "IfcSite/My Site" is selected - And additionally the object "IfcWall/Cube" is selected - And I press "bim.enable_editing_container" - When I press "bim.copy_to_container" + And I look at the "Spatial Decomposition" panel + When I select the "My Site" item in the "BIM_UL_containers_manager" list + And the object "IfcWall/Cube" is selected + When I click "MOD_DISPLACE" Then the object "IfcWall/Cube.001" is in the collection "IfcSite/My Site" Scenario: Reference structure @@ -222,6 +267,7 @@ Scenario: Set element visibility - Hide spatial container Scenario: Select spatial container Given an empty IFC project And I look at the "Spatial Decomposition" panel + And I set the "is_visible" property to "TRUE" When I select the "My Site" item in the "BIM_UL_containers_manager" list And I click "OBJECT_DATA" Then the object "IfcSite/My Site" is selected diff --git a/src/bonsai/test/bim/feature/type.feature b/src/bonsai/test/bim/feature/type.feature index 1efefef446..9bae601b30 100644 --- a/src/bonsai/test/bim/feature/type.feature +++ b/src/bonsai/test/bim/feature/type.feature @@ -110,7 +110,7 @@ Scenario: Assign type - assign to a type with a material layer set, which automa And the object "IfcWall/Unnamed" has a "100" thick layered material containing the material "Default" And the object "IfcWall/Unnamed" dimensions are ".5,.1,.5" -Scenario: Assign type - assign to a different type with a material layer set +Scenario: Assign type - assign to a different type with a LAYER2 material layer set Given an empty IFC project And I add a cube And the object "Cube" is selected @@ -149,6 +149,23 @@ Scenario: Assign type - assign to a different type with a material layer set Then the object "IfcWall/Cube" has a "200" thick layered material containing the material "Default" And the object "IfcWall/Cube" dimensions are "1,.2,1" +Scenario: Assign type - assign to a different type with a LAYER3 material layer set + Given an empty IFC project + And I load the demo construction library + And I set "scene.BIMModelProperties.ifc_class" to "IfcSlabType" + And the variable "element_type" is "[e for e in {ifc}.by_type('IfcSlabType') if e.Name == 'FLR200'][0].id()" + And I set "scene.BIMModelProperties.relating_type_id" to "{element_type}" + When I press "bim.add_occurrence" + Then the object "IfcSlab/Slab" is an "IfcSlab" + And the object "IfcSlab/Slab" dimensions are "1,1,0.2" + And the object "IfcSlab/Slab" bottom left corner is at "0,0,0" + And the object "IfcSlab/Slab" top right corner is at "1,1,0.2" + When I look at the "Type" panel + And I click "GREASEPENCIL" + And I set the "relating_type" property to "FLR300" + And I click "CHECKMARK" + Then the object "IfcSlab/Slab" dimensions are "1,1,0.3" + Scenario: Assign type - assign to a type with a material profile set Given an empty IFC project And I add a cube diff --git a/src/bonsai/test/bim/module/drawing/test_segment_clipping.py b/src/bonsai/test/bim/module/drawing/test_segment_clipping.py index 2a30f6a957..2846a3f2b7 100644 --- a/src/bonsai/test/bim/module/drawing/test_segment_clipping.py +++ b/src/bonsai/test/bim/module/drawing/test_segment_clipping.py @@ -18,8 +18,8 @@ import pytest from mathutils import Vector -from bonsai.bim.module.drawing.helper import clip_segment +from bonsai.bim.module.drawing.helper import clip_segment BOUNDS = (10, 30, 10, 30, None, None) diff --git a/src/bonsai/test/bim/stub.py b/src/bonsai/test/bim/stub.py index a5c498f81e..969cf98cbe 100644 --- a/src/bonsai/test/bim/stub.py +++ b/src/bonsai/test/bim/stub.py @@ -17,7 +17,7 @@ # along with Bonsai. If not, see . -from typing import Union, Any, Optional +from typing import Any, Optional, Union class bSDDClientStub: diff --git a/src/bonsai/test/bim/test_feature.py b/src/bonsai/test/bim/test_feature.py index aae89f9c76..9df6bbf627 100644 --- a/src/bonsai/test/bim/test_feature.py +++ b/src/bonsai/test/bim/test_feature.py @@ -16,27 +16,35 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from __future__ import annotations + import os -import bpy -import pytest +import pprint +import shutil import traceback +import types import webbrowser -import numpy as np -import test.bim.stub +from collections.abc import Generator +from inspect import signature +from math import radians +from pathlib import Path +from typing import Any, Union + +import bpy import ifcopenshell import ifcopenshell.util.element import ifcopenshell.util.representation -import bonsai.tool as tool -import bonsai.bim.handler -from bonsai.bim.ifc import IfcStore -from bonsai.tool.brick import BrickStore -from bonsai.bim.module.model.data import AuthoringData -from pytest_bdd import scenarios, given, when, then, parsers -from inspect import signature +import numpy as np +import pytest from mathutils import Vector -from math import radians -from pathlib import Path -from typing import Union, Any +from pytest_bdd import given, parsers, scenarios, then, when + +import bonsai.bim.handler +import bonsai.tool as tool +import test.bim.stub +from bonsai.bim.ifc import IfcStore +from bonsai.bim.module.model.data import AuthoringData +from bonsai.tool.brick import BrickStore scenarios("feature") @@ -46,6 +54,7 @@ variables = { "ifc": "tool.Ifc.get()", "pset_ifc": "IfcStore.pset_template_file", "classification_ifc": "IfcStore.classification_file", + "temp_project_path": tool.Project.TEMP_PROJECT_PATH.as_posix(), } # Monkey-patch webbrowser opening since we want to test headlessly @@ -54,33 +63,58 @@ webbrowser.open = lambda x: True tool.Bsdd.client = test.bim.stub.bSDDClientStub() +PYTEST_BLENDER_NO_BACKGROUND = bool(os.getenv("PYTEST_BLENDER_NO_BACKGROUND")) +"""Option to run Blender not in background. + +Can be useful for debugging, but has caveats - can't use ``wm.read_homefile`` +as resets the ``bpy.context`` and some it's members become `None`. +""" + +TMP = Path.cwd() / "test/files/temp" +TEST_FILES_DIR = Path.cwd() / "test/files" + +CLEAN_LINKED_FILES_CACHE = False + +EPSET_DRAWING = Path.cwd() / "bonsai/bim/data/pset/EPset_Drawing.ifc" +EPSET_DRAWING_BYTES = EPSET_DRAWING.read_bytes() +RELOAD_EPSET_DRAWING = False + class PanelSpy: - def __init__(self, panel: type[bpy.types.Panel]): + def __init__(self, blender_panel: type[bpy.types.Panel]): self.is_spy_dirty = True - self.panel = panel + self.blender_panel = blender_panel - def refresh_spy(self): + def refresh_spy(self) -> None: if self.is_spy_dirty: self.is_spy_dirty = False self.spied_attr: Union[str, None] = None self.spied_labels: list[str] = [] self.spied_props: list[dict[str, Any]] = [] self.spied_operators: list[dict[str, Any]] = [] - self.spied_lists: list[dict[str, Any]] = [] - self.panel.draw(self, bpy.context) + self.spied_lists: list[TemplateListSpy] = [] + if hasattr(self.blender_panel, "draw_header"): + self.blender_panel.draw_header(self, bpy.context) + self.blender_panel.draw(self, bpy.context) - def __getattr__(self, attr): + def __getattr__(self, attr: str) -> PanelSpy | Any: self.spied_attr = attr - if annotation := self.panel.__annotations__.get(attr, None): + try: + annotations = self.blender_panel.__annotations__ + except AttributeError: + annotations = type(self.blender_panel).__annotations__ + if annotation := annotations.get(attr, None): return annotation.keywords.get("default", None) # An operator property if attr == "layout": return self - if hasattr(self.panel, attr) and not callable(getattr(self.panel, attr)): - return getattr(self.panel, attr) + sentinel = object() + attr_value = getattr(self.blender_panel, attr, sentinel) + # Don't use `callable`, because we might have `Data` classes as panel attributes. + if attr_value is not sentinel and not isinstance(attr_value, types.FunctionType): + return attr_value return self - def __call__(self, *args, **kwargs): + def __call__(self, *args: Any, **kwargs: Any) -> PanelSpy | TemplateListSpy | OperatorSpy | Any: if self.spied_attr in ("row", "column", "box", "separator", "menu", "operator_menu_enum", "split"): return self elif self.spied_attr == "template_list": @@ -109,7 +143,11 @@ class PanelSpy: prop_type = props.bl_rna.properties[name].type enum_items = [] if prop_type == "ENUM": - prop_keywords = props.__annotations__[name].keywords + try: + annotations = props.__annotations__ + except AttributeError: + annotations = type(props).__annotations__ + prop_keywords = annotations[name].keywords items = prop_keywords.get("items") if items is not None: if isinstance(items, (list, tuple)): @@ -149,15 +187,20 @@ class PanelSpy: spied_operator = {"operator": operator, "icon": icon, "text": text, "kwargs": {}, "after": after} self.spied_operators.append(spied_operator) return OperatorSpy(spied_operator) + elif self.spied_attr == "panel": + default_closed = kwargs.get("default_closed", False) + header = self + panel = None if default_closed else self + return header, panel else: - getattr(self.panel, self.spied_attr)(self, *args, **kwargs) + return getattr(self.blender_panel, self.spied_attr)(self, *args, **kwargs) class OperatorSpy: - def __init__(self, spied_data): + def __init__(self, spied_data: dict[str, Any]): self.spied_data = spied_data - def __setattr__(self, name, value): + def __setattr__(self, name: str, value: Any) -> None: if name == "spied_data": # Allow direct setting of spied_data only during initialization super().__setattr__(name, value) @@ -166,17 +209,19 @@ class OperatorSpy: class TemplateListSpy(PanelSpy): - def __init__(self, template_list: type[bpy.types.UIList], spied_data: dict) -> None: + items: bpy.types.bpy_prop_collection_idprop[bpy.types.PropertyGroup] + active_index: int + active_item: bpy.types.PropertyGroup | None + blender_panel: type[bpy.types.UIList] + + def __init__(self, template_list: type[bpy.types.UIList], spied_data: dict[str, Any]): self.spied_data = spied_data self.items = getattr(self.spied_data["dataptr"], self.spied_data["propname"]) self.active_index = getattr(self.spied_data["active_dataptr"], self.spied_data["active_propname"]) - try: - self.active_item = self.items[self.active_index] - except: - self.active_item = None - self.panel = template_list + self.active_item = tool.Blender.get_active_uilist_element(self.items, self.active_index) + self.blender_panel = template_list - self.rows = [] + self.rows: list[TemplateListItemSpy] = [] for item in self.items: self.rows.append(TemplateListItemSpy(self, item)) @@ -188,16 +233,19 @@ class TemplateListSpy(PanelSpy): except: assert False, f"Could not set active index {index}" + def __repr__(self) -> str: + return f"TemplateListSpy({self.spied_data['listtype_name']}, {len(self.items)} items, active_index={self.active_index})" + class TemplateListItemSpy(PanelSpy): def __init__(self, parent: TemplateListSpy, item): - self.panel = parent.panel + self.blender_panel = blender_panel = parent.blender_panel self.spied_attr: Union[str, None] = None self.spied_labels: list[str] = [] self.spied_props: list[dict[str, Any]] = [] self.spied_operators: list[dict[str, Any]] = [] - if len(signature(parent.panel.draw_item).parameters) == 8: - parent.panel.draw_item( + if len(signature(blender_panel.draw_item).parameters) == 8: + blender_panel.draw_item( self, bpy.context, self, @@ -208,7 +256,7 @@ class TemplateListItemSpy(PanelSpy): parent.spied_data["active_propname"], ) else: - parent.panel.draw_item( + blender_panel.draw_item( self, bpy.context, self, @@ -222,7 +270,8 @@ class TemplateListItemSpy(PanelSpy): ) -ui_name_cache = {} +ui_name_cache: dict[str, str] = {} +"""Mapping of UI panel names to their bl_idnames (e.g. `xxx` in `bpy.types.xxx`).""" panel_spy: Union[PanelSpy, None] = None @@ -262,6 +311,25 @@ def vectors_are_equal(v1, v2): return all(is_x(v1[i], v2[i]) for i in range(len(v1))) +@pytest.fixture(scope="function", autouse=True) +def run_for_each_test() -> Generator[None]: + # Code before this runs before each test + yield + # Code after this runs after each test + + global CLEAN_LINKED_FILES_CACHE + if CLEAN_LINKED_FILES_CACHE: + for filepath in TEST_FILES_DIR.glob("*.ifc.cache.*"): + filepath.unlink() + CLEAN_LINKED_FILES_CACHE = False + + # pset_template tests are editing EPset_Drawing.ifc, so we need to restore it. + global RELOAD_EPSET_DRAWING + if RELOAD_EPSET_DRAWING: + EPSET_DRAWING.write_bytes(EPSET_DRAWING_BYTES) + RELOAD_EPSET_DRAWING = False + + @given("an untestable scenario") def an_untestable_scenario(): pass @@ -271,7 +339,8 @@ def an_untestable_scenario(): @when("an empty Blender session is started") def an_empty_blender_session(): IfcStore.purge() - bpy.ops.wm.read_homefile(app_template="") + if not PYTEST_BLENDER_NO_BACKGROUND: + bpy.ops.wm.read_homefile(app_template="", use_factory_startup=True) if len(bpy.data.objects) > 0: bpy.data.batch_remove(bpy.data.objects) bpy.ops.outliner.orphans_purge(do_local_ids=True, do_linked_ids=True, do_recursive=True) @@ -300,6 +369,31 @@ def an_empty_ifc_2x3_project(): bpy.ops.bim.create_project() +@given(parsers.parse("I load previously saved IFC project")) +@when(parsers.parse("I load previously saved IFC project")) +@then(parsers.parse("I load previously saved IFC project")) +def load_previously_saved_ifc_project() -> None: + filepath = tool.Project.TEMP_PROJECT_PATH + bpy.ops.bim.load_project(filepath=filepath.__str__()) + + +@given(parsers.parse("I save IFC project")) +@when(parsers.parse("I save IFC project")) +@then(parsers.parse("I save IFC project")) +def saving_ifc_project() -> None: + tool.Project.save_test_project() + + +@given(parsers.parse('I link IFC project from "{filepath}"')) +@when(parsers.parse('I link IFC project from "{filepath}"')) +@then(parsers.parse('I link IFC project from "{filepath}"')) +def i_link_ifc_project_from_filepath(filepath: str) -> None: + global CLEAN_LINKED_FILES_CACHE + filepath = replace_variables(filepath) + CLEAN_LINKED_FILES_CACHE = True + bpy.ops.bim.link_ifc(filepath=filepath, use_cache=False) + + @given("the Brickschema is stubbed") def the_brickschema_is_stubbed(): # This makes things run faster since we don't need to load the entire brick schema @@ -310,13 +404,19 @@ def the_brickschema_is_stubbed(): @given(parsers.parse('I look at the "{panel}" panel')) @when(parsers.parse('I look at the "{panel}" panel')) @then(parsers.parse('I look at the "{panel}" panel')) -def i_look_at_the_panel_panel(panel): - global ui_name_cache +def i_look_at_the_panel_panel(panel: str) -> None: + # Option to provide explicit panel name if panel names overlap. + panel_class = getattr(bpy.types, panel, None) + + if panel_class is None: + global ui_name_cache + create_ui_name_cache() + if panel not in ui_name_cache: + assert False, f"Panel '{panel}' not found in `bpy.types` and in {ui_name_cache}" + panel_class = getattr(bpy.types, ui_name_cache[panel]) + global panel_spy - create_ui_name_cache() - if panel not in ui_name_cache: - assert False, f"Panel {panel} not found in {ui_name_cache}" - panel_spy = PanelSpy(getattr(bpy.types, ui_name_cache[panel])) + panel_spy = PanelSpy(panel_class) panel_spy.refresh_spy() @@ -415,18 +515,21 @@ def i_dont_see_text_in_the_nth_list(text, nth): @given(parsers.parse('I click "{button}" in the row where I see "{text}" in the "{nth}" list')) @when(parsers.parse('I click "{button}" in the row where I see "{text}" in the "{nth}" list')) @then(parsers.parse('I click "{button}" in the row where I see "{text}" in the "{nth}" list')) -def i_click_button_in_the_row_where_i_see_text_in_the_nth_list(button, text, nth): +def i_click_button_in_the_row_where_i_see_text_in_the_nth_list(button: str, text: str, nth: str) -> None: """ - :param button: The text or icon of the button to click. + :param button: The text or icon or name of the button/prop to click. + :param text: The text to search for in the row. + :param nth: E.g. "1st", "2nd", "5th". """ + assert panel_spy panel_spy.refresh_spy() - nth = int("".join([c for c in nth if c.isnumeric()])) - if len(panel_spy.spied_lists) < nth: - assert False, f"{nth} list does not exist. Actual number of lists: {len(panel_spy.spied_lists)}" + nth_ = int("".join([c for c in nth if c.isnumeric()])) + if len(panel_spy.spied_lists) < nth_: + assert False, f"{nth_} list does not exist. Actual number of lists: {len(panel_spy.spied_lists)}" debug = [] for i, template_list in enumerate(panel_spy.spied_lists): - if i + 1 != nth: + if i + 1 != nth_: continue for row in template_list.rows: is_row = False @@ -440,7 +543,8 @@ def i_click_button_in_the_row_where_i_see_text_in_the_nth_list(button, text, nth is_row = True if is_row: _i_click_button_on_panel(button, row) - return True + # Success. + return debug = "\n".join(debug) assert False, f"Could not see '{text}' in any list. We saw:\n{debug}" @@ -502,7 +606,7 @@ def i_see_the_prop_property(prop): panel_spy.refresh_spy() assert [ p for p in panel_spy.spied_props if prop in (p["name"], p["text"], p["icon"]) - ], f"Property {prop} not found in {panel_spy.spied_props}" + ], f"Property {prop} not found in {pprint.pformat(panel_spy.spied_props)}" @given(parsers.parse('I don\'t see the "{prop}" property')) @@ -513,7 +617,7 @@ def i_dont_see_the_prop_property(prop): panel_spy.refresh_spy() assert not [ p for p in panel_spy.spied_props if prop in (p["name"], p["text"], p["icon"]) - ], f"Property {prop} not found in {panel_spy.spied_props}" + ], f"Property {prop} not found in {pprint.pformat(panel_spy.spied_props)}" @given(parsers.parse('I see the "{prop}" property is "{value}"')) @@ -528,7 +632,7 @@ def i_see_the_prop_property_is_value(prop, value): spied_prop["value"] == value ), f"Property {prop} value is not {value} - it is actually {spied_prop['value']}" return - assert False, f"Property {prop} not found in {panel_spy.spied_props}" + assert False, f"Property {prop} not found in {pprint.pformat(panel_spy.spied_props)}" @given(parsers.parse('I set the "{prop}" property to "{value}"')) @@ -538,12 +642,14 @@ def i_set_the_prop_property_to_value(prop: str, value: str): """ :param prop: Could be either property name, property text, property icon or property index (e.g. "1st", "2nd", "5th"). + :param value: + For boolean propeties - 'TRUE' or 'FALSE'. """ value = value.strip() assert panel_spy panel_spy.refresh_spy() is_nth = False - if prop[0].isnumeric() and (prop.endswith("st") or prop.endswith("nd") or prop.endswith("th")): + if prop[0].isnumeric() and prop.endswith(("st", "nd", "th")): is_nth = True for nth, spied_prop in enumerate(panel_spy.spied_props): if is_nth and nth != int(prop[:-2]) - 1: @@ -555,6 +661,8 @@ def i_set_the_prop_property_to_value(prop: str, value: str): setattr(spied_prop["props"], spied_prop["name"], True) elif value == "FALSE": setattr(spied_prop["props"], spied_prop["name"], False) + else: + assert False, f"Unexpected value for BOOLEAN property: '{value}'. Allowed values: TRUE, FALSE." elif spied_prop["prop_type"] == "FLOAT": setattr(spied_prop["props"], spied_prop["name"], float(value)) elif spied_prop["prop_type"] == "INT": @@ -590,12 +698,16 @@ def the_name_list_has_total_items(name, total): @given(parsers.parse('I select the "{item_name}" item in the "{list_name}" list')) @when(parsers.parse('I select the "{item_name}" item in the "{list_name}" list')) @then(parsers.parse('I can select the "{item_name}" item in the "{list_name}" list')) -def i_select_the_item_name_item_in_the_list_name_list(item_name, list_name): +def i_select_the_item_name_item_in_the_list_name_list(item_name: str, list_name: str) -> None: + """ + :param item_name: The ``.name`` of the item to select. + :param list_name: List type name, e.g. ``BIM_UL_containers_manager``. + """ assert panel_spy panel_spy.refresh_spy() for template_list in panel_spy.spied_lists: if list_name == template_list.spied_data["listtype_name"]: - item_names = [] + item_names: list[str] = [] for i, item in enumerate(template_list.items): item_names.append(item.name) if item.name == item_name: @@ -608,6 +720,8 @@ def i_select_the_item_name_item_in_the_list_name_list(item_name, list_name): @when("I load a new pset template file") def i_load_a_new_pset_template_file(): + global RELOAD_EPSET_DRAWING + RELOAD_EPSET_DRAWING = True props = tool.PsetTemplate.get_pset_template_props() IfcStore.pset_template_path = props.pset_template_files IfcStore.pset_template_file = ifcopenshell.open(IfcStore.pset_template_path) @@ -739,9 +853,11 @@ def i_press_operator_and_expect_error(operator, error_msg): assert False, f"Operator bpy.ops.{operator} ran without exception '{error_msg}'" +# TODO: We should rename 'I press' to 'I run' or 'I execute' +# to avoid confusion with 'I click'. @given(parsers.parse('I press "{operator}"')) @when(parsers.parse('I press "{operator}"')) -def i_press_operator(operator): +def i_press_operator(operator: str) -> types.NoneType: operator = replace_variables(operator) try: if "(" in operator: @@ -753,7 +869,7 @@ def i_press_operator(operator): assert False, f"Failed to run operator bpy.ops.{operator} because of {e}" -def _i_click_button_on_panel(button, panel_spy): +def _i_click_button_on_panel(button: str, panel_spy: PanelSpy) -> None: for spied_operator in panel_spy.spied_operators: if spied_operator["text"] == button or spied_operator["icon"] == button: spied_operator["operator"]("INVOKE_DEFAULT", **spied_operator["kwargs"]) @@ -766,11 +882,12 @@ def _i_click_button_on_panel(button, panel_spy): setattr(spied_prop["props"], spied_prop["name"], not bool(val)) panel_spy.is_spy_dirty = True return - if button == "OK" and panel_spy.panel.bl_rna.base.name == "Operator": + if button == "OK" and panel_spy.blender_panel.bl_rna.base.name == "Operator": # Clicked confirm on an operator's draw dialog - return i_press_operator(panel_spy.panel.bl_idname) + return i_press_operator(panel_spy.blender_panel.bl_idname) debug = "\n".join([f"{i} {v}" for i, v in enumerate(panel_spy.spied_operators)]) - debug += f"\nHere is the text we see:\n{panel_spy.spied_labels}\n... and props:\n {panel_spy.spied_props}" + debug_props = pprint.pformat(panel_spy.spied_props) + debug += f"\nHere is the text we see:\n{panel_spy.spied_labels}\n... and props:\n {debug_props}" assert False, f"Could not find {button}:\n{debug}" @@ -996,11 +1113,9 @@ def the_object_name_exists(name: str) -> bpy.types.Object: @then(parsers.parse('the object "{name}" does not exist')) -def the_object_name_does_not_exist(name) -> bpy.types.Object: +def the_object_name_does_not_exist(name) -> None: obj = bpy.data.objects.get(name) - if not obj: - assert True, f'The object "{name}" exists' - return obj + assert obj is None, f'The object "{name}" exists' @given(parsers.parse('the collection "{name}" exists')) @@ -1090,6 +1205,11 @@ def the_material_name_does_not_exist(name): assert bpy.data.materials.get(name) is None, "Material exists" +@then(parsers.parse('the mesh "{name}" does not exist')) +def the_mesh_name_does_not_exist(name: str) -> None: + assert bpy.data.meshes.get(name) is None, f"Mesh '{name}' exists" + + def get_ifc_material_by_name(name: str) -> Union[ifcopenshell.entity_instance, None]: ifc_file = tool.Ifc.get() material = next((m for m in ifc_file.by_type("IfcMaterial") if m.Name == name), None) @@ -1729,19 +1849,19 @@ def i_fail(): @given(parsers.parse("I save sample test files")) @when(parsers.parse("I save sample test files")) @then(parsers.parse("I save sample test files")) -def saving_sample_test_files(and_open_in_blender=None): - filepath = f"{variables['cwd']}/test/files/temp/sample_test_file" +def saving_sample_test_files() -> None: + filepath = TMP / "sample_test_file" print(f"Saved to {filepath}") - bpy.ops.bim.save_project(filepath=f"{filepath}.ifc", should_save_as=True) - bpy.ops.wm.save_as_mainfile(filepath=f"{filepath}.blend") + bpy.ops.bim.save_project(filepath=filepath.with_suffix(".ifc").__str__(), should_save_as=True) + bpy.ops.wm.save_as_mainfile(filepath=filepath.with_suffix(".blend").__str__()) @given(parsers.parse("I load test blend file")) @when(parsers.parse("I load test blend file")) @then(parsers.parse("I load test blend file")) def opening_sample_test_files_in_blender(): - filepath = f"{variables['cwd']}/test/files/temp/sample_test_file.blend" - bpy.ops.wm.open_mainfile(filepath=filepath, display_file_selector=False) + filepath = TMP / "sample_test_file.blend" + bpy.ops.wm.open_mainfile(filepath=filepath.__str__(), display_file_selector=False) # TODO: merge to single fixture with `saving_sample_test_files`; add "and wait" @@ -1763,3 +1883,16 @@ def run_pdb(): import pdb pdb.set_trace() + + +@given(parsers.parse("I start debugpy")) +@when(parsers.parse("I start debugpy")) +@then(parsers.parse("I start debugpy")) +def run_debugpy() -> types.NoneType: + import debugpy + + debugpy.listen(5678) + debugpy.wait_for_client() + + # Set a breakpoint here. + print("debugpy connected") diff --git a/src/bonsai/test/core/bootstrap.py b/src/bonsai/test/core/bootstrap.py index 837ce67b94..057ee9ffab 100644 --- a/src/bonsai/test/core/bootstrap.py +++ b/src/bonsai/test/core/bootstrap.py @@ -16,11 +16,13 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import sys import json +import sys +from typing import Any, Literal, Optional, Self, TypedDict + import pytest + import bonsai.core.tool -from typing import Any, Optional, TypedDict, Literal, Self @pytest.fixture @@ -135,6 +137,13 @@ def misc(): prophet.verify() +@pytest.fixture +def model(): + prophet = Prophecy(bonsai.core.tool.Model) + yield prophet + prophet.verify() + + @pytest.fixture def nest(): prophet = Prophecy(bonsai.core.tool.Nest) diff --git a/src/bonsai/test/core/test_aggregate.py b/src/bonsai/test/core/test_aggregate.py index 157b1c3999..4e7babe13a 100644 --- a/src/bonsai/test/core/test_aggregate.py +++ b/src/bonsai/test/core/test_aggregate.py @@ -17,7 +17,7 @@ # along with Bonsai. If not, see . import bonsai.core.aggregate as subject -from test.core.bootstrap import ifc, aggregate, collector +from test.core.bootstrap import aggregate, collector, ifc class TestEnableEditingAggregate: diff --git a/src/bonsai/test/core/test_attribute.py b/src/bonsai/test/core/test_attribute.py index aba74e1a4e..d62b832cd9 100644 --- a/src/bonsai/test/core/test_attribute.py +++ b/src/bonsai/test/core/test_attribute.py @@ -17,7 +17,7 @@ # along with Bonsai. If not, see . import bonsai.core.attribute as subject -from test.core.bootstrap import ifc, blender, root, spatial +from test.core.bootstrap import blender, ifc, root, spatial class TestCopyAttributeToSelection: diff --git a/src/bonsai/test/core/test_brick.py b/src/bonsai/test/core/test_brick.py index 10a4a7cfd1..c40df06973 100644 --- a/src/bonsai/test/core/test_brick.py +++ b/src/bonsai/test/core/test_brick.py @@ -17,7 +17,7 @@ # along with Bonsai. If not, see . import bonsai.core.brick as subject -from test.core.bootstrap import ifc, brick +from test.core.bootstrap import brick, ifc class TestLoadBrickProject: diff --git a/src/bonsai/test/core/test_context.py b/src/bonsai/test/core/test_context.py index 7388754765..2fd9e05834 100644 --- a/src/bonsai/test/core/test_context.py +++ b/src/bonsai/test/core/test_context.py @@ -17,7 +17,7 @@ # along with Bonsai. If not, see . import bonsai.core.context as subject -from test.core.bootstrap import ifc, context +from test.core.bootstrap import context, ifc class TestAddContext: diff --git a/src/bonsai/test/core/test_document.py b/src/bonsai/test/core/test_document.py index 48421c1fe4..bd9f743a3d 100644 --- a/src/bonsai/test/core/test_document.py +++ b/src/bonsai/test/core/test_document.py @@ -16,30 +16,18 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . - import bonsai.core.document as subject -from test.core.bootstrap import ifc, document +from test.core.bootstrap import document, ifc class TestLoadProjectDocuments: def test_run(self, document): document.clear_document_tree().should_be_called() document.import_project_documents().should_be_called() - document.clear_breadcrumbs().should_be_called() document.enable_editing_ui().should_be_called() subject.load_project_documents(document) -class TestLoadDocument: - def test_run(self, document): - document.clear_document_tree().should_be_called() - document.import_subdocuments("document").should_be_called() - document.import_references("document").should_be_called() - document.disable_editing_document().should_be_called() - document.add_breadcrumb("document").should_be_called() - subject.load_document(document, document="document") - - class TestDisableDocumentEditingUi: def test_run(self, document): document.disable_editing_ui().should_be_called() @@ -47,45 +35,71 @@ class TestDisableDocumentEditingUi: subject.disable_document_editing_ui(document) +class TestDisableObjectDocumentEditingUi: + def test_run(self, document): + document.disable_object_editing_ui().should_be_called() + subject.disable_object_document_editing_ui(document) + + class TestEnableEditingDocument: def test_run(self, document): - document.import_document_attributes("document").should_be_called() document.set_active_document("document").should_be_called() - subject.enable_editing_document(document, document="document") + document.import_document_attributes("document").should_be_called() + subject.enable_editing_document(document, ifc_document="document") class TestDisableEditingDocument: def test_run(self, document): - document.disable_editing_document().should_be_called() + document.clear_active_document().should_be_called() + document.clear_document_attributes().should_be_called() subject.disable_editing_document(document) class TestAddInformation: def test_add_and_reload_tree_at_project_root(self, ifc, document): document.clear_document_tree().should_be_called() - document.get_active_breadcrumb().should_be_called().will_return(None) - ifc.run("document.add_information", parent=None).should_be_called().will_return("information") + document.get_default_parent_for_information().should_be_called().will_return("default_parent") + ifc.run("document.add_information", parent="default_parent").should_be_called().will_return("information") ifc.run("document.add_reference", information="information").should_be_called() + document.is_document_information("default_parent").should_be_called().will_return(True) + document.expand_document("default_parent").should_be_called() document.import_project_documents().should_be_called() + subject.add_information(ifc, document) def test_add_and_reload_tree_at_current_parent(self, ifc, document): document.clear_document_tree().should_be_called() - document.get_active_breadcrumb().should_be_called().will_return("parent") ifc.run("document.add_information", parent="parent").should_be_called().will_return("information") ifc.run("document.add_reference", information="information").should_be_called() - document.import_subdocuments("parent").should_be_called() - document.import_references("parent").should_be_called() - subject.add_information(ifc, document) + document.is_document_information("parent").should_be_called().will_return(True) + document.expand_document("parent").should_be_called() + document.import_project_documents().should_be_called() + + subject.add_information(ifc, document, parent="parent") + + def test_add_without_expanding_if_parent_is_not_information(self, ifc, document): + document.clear_document_tree().should_be_called() + ifc.run("document.add_information", parent="parent").should_be_called().will_return("information") + ifc.run("document.add_reference", information="information").should_be_called() + document.is_document_information("parent").should_be_called().will_return(False) + document.import_project_documents().should_be_called() + + subject.add_information(ifc, document, parent="parent") class TestAddReference: - def test_run(self, ifc, document): - document.get_active_breadcrumb().should_be_called().will_return("parent") + def test_run_with_selected_parent(self, ifc, document): + document.get_selected_document_information().should_be_called().will_return("parent") ifc.run("document.add_reference", information="parent").should_be_called() - document.clear_document_tree().should_be_called() - document.import_subdocuments("parent").should_be_called() - document.import_references("parent").should_be_called() + document.expand_document("parent").should_be_called() + document.import_project_documents().should_be_called() + + subject.add_reference(ifc, document) + + def test_run_without_selected_parent(self, ifc, document): + document.get_selected_document_information().should_be_called().will_return(None) + document.import_project_documents().should_be_called() + subject.add_reference(ifc, document) @@ -96,9 +110,8 @@ class TestEditDocument: ifc.run("document.edit_information", information="document", attributes="attributes").should_be_called() document.disable_editing_document().should_be_called() document.clear_document_tree().should_be_called() - document.get_active_breadcrumb().should_be_called().will_return(None) document.import_project_documents().should_be_called() - subject.edit_document(ifc, document, document="document") + subject.edit_document(ifc, document, ifc_document="document") def test_edit_reference(self, ifc, document): document.export_document_attributes().should_be_called().will_return("attributes") @@ -106,10 +119,8 @@ class TestEditDocument: ifc.run("document.edit_reference", reference="document", attributes="attributes").should_be_called() document.disable_editing_document().should_be_called() document.clear_document_tree().should_be_called() - document.get_active_breadcrumb().should_be_called().will_return("parent") - document.import_subdocuments("parent").should_be_called() - document.import_references("parent").should_be_called() - subject.edit_document(ifc, document, document="document") + document.import_project_documents().should_be_called() + subject.edit_document(ifc, document, ifc_document="document") class TestRemoveDocument: @@ -117,27 +128,24 @@ class TestRemoveDocument: document.clear_document_tree().should_be_called() document.is_document_information("document").should_be_called().will_return(True) ifc.run("document.remove_information", information="document").should_be_called() - document.get_active_breadcrumb().should_be_called().will_return(None) document.import_project_documents().should_be_called() - subject.remove_document(ifc, document, document="document") + subject.remove_document(ifc, document, ifc_document="document") def test_remove_reference(self, ifc, document): document.clear_document_tree().should_be_called() document.is_document_information("document").should_be_called().will_return(False) ifc.run("document.remove_reference", reference="document").should_be_called() - document.get_active_breadcrumb().should_be_called().will_return("parent") - document.import_subdocuments("parent").should_be_called() - document.import_references("parent").should_be_called() - subject.remove_document(ifc, document, document="document") + document.import_project_documents().should_be_called() + subject.remove_document(ifc, document, ifc_document="document") class TestAssignDocument: def test_run(self, ifc): ifc.run("document.assign_document", products=["product"], document="document").should_be_called() - subject.assign_document(ifc, product="product", document="document") + subject.assign_document(ifc, product="product", ifc_document="document") class TestUnassignDocument: def test_run(self, ifc): ifc.run("document.unassign_document", products=["product"], document="document").should_be_called() - subject.unassign_document(ifc, product="product", document="document") + subject.unassign_document(ifc, product="product", ifc_document="document") diff --git a/src/bonsai/test/core/test_drawing.py b/src/bonsai/test/core/test_drawing.py index e12c7dd0f8..a83f026ad3 100644 --- a/src/bonsai/test/core/test_drawing.py +++ b/src/bonsai/test/core/test_drawing.py @@ -17,7 +17,7 @@ # along with Bonsai. If not, see . import bonsai.core.drawing as subject -from test.core.bootstrap import ifc, drawing, collector, geometry, blender, Prophecy +from test.core.bootstrap import Prophecy, blender, collector, drawing, geometry, ifc class TestEnableEditingText: @@ -58,23 +58,21 @@ class TestDisableEditingAssignedProduct: class TestEditAssignedProduct: def test_text_annotation(self, ifc, drawing): ifc.get_entity("obj").should_be_called().will_return("element") - drawing.get_assigned_product("element").should_be_called().will_return("existing_product") + drawing.get_assigned_product_workaround("element").should_be_called().will_return(["existing_product"]) ifc.run( "drawing.unassign_product", relating_product="existing_product", related_object="element" ).should_be_called() ifc.run("drawing.assign_product", relating_product="product", related_object="element").should_be_called() - drawing.is_annotation_object_type("element", ("TEXT", "TEXT_LEADER")).should_be_called().will_return(True) drawing.disable_editing_assigned_product("obj").should_be_called() subject.edit_assigned_product(ifc, drawing, obj="obj", product="product") def test_non_text_annotation(self, ifc, drawing): ifc.get_entity("obj").should_be_called().will_return("element") - drawing.get_assigned_product("element").should_be_called().will_return("existing_product") + drawing.get_assigned_product_workaround("element").should_be_called().will_return(["existing_product"]) ifc.run( "drawing.unassign_product", relating_product="existing_product", related_object="element" ).should_be_called() ifc.run("drawing.assign_product", relating_product="product", related_object="element").should_be_called() - drawing.is_annotation_object_type("element", ("TEXT", "TEXT_LEADER")).should_be_called().will_return(False) drawing.disable_editing_assigned_product("obj").should_be_called() subject.edit_assigned_product(ifc, drawing, obj="obj", product="product") @@ -398,6 +396,7 @@ class TestDuplicateDrawing: drawing.get_name("drawing").should_be_called().will_return("name") drawing.ensure_unique_drawing_name("name").should_be_called().will_return("unique_name") ifc.run("root.copy_class", product="drawing").should_be_called().will_return("new_drawing") + drawing.clear_annotation_relationships("new_drawing").should_be_called() drawing.copy_representation("drawing", "new_drawing").should_be_called() drawing.set_name("new_drawing", "unique_name").should_be_called() drawing.get_drawing_group("new_drawing").should_be_called().will_return("group") diff --git a/src/bonsai/test/core/test_geometry.py b/src/bonsai/test/core/test_geometry.py index 76e3dc9777..21ccb09220 100644 --- a/src/bonsai/test/core/test_geometry.py +++ b/src/bonsai/test/core/test_geometry.py @@ -18,7 +18,7 @@ import bonsai.core.geometry as subject import test.core.test_style -from test.core.bootstrap import ifc, surveyor, geometry, style +from test.core.bootstrap import geometry, ifc, style, surveyor class TestEditObjectPlacement: @@ -195,8 +195,9 @@ class TestAddRepresentation: class TestSwitchRepresentation: def test_switching_to_a_representation(self, ifc, geometry): - ifc.is_edited("obj").should_be_called().will_return(False) geometry.get_object_data("obj").should_be_called().will_return("current_obj_data") + ifc.get_entity("obj").should_be_called().will_return("element") + geometry.clear_cache("element").should_be_called() geometry.reimport_element_representations("obj", "mapped_rep", apply_openings=True).should_be_called() subject.switch_representation( ifc, @@ -206,34 +207,6 @@ class TestSwitchRepresentation: apply_openings=True, ) - def test_updating_a_representation_if_the_blender_object_has_been_edited_prior_to_switching(self, ifc, geometry): - ifc.is_edited("obj").should_be_called().will_return(True) - geometry.is_box_representation("mapped_rep").should_be_called().will_return(False) - geometry.get_representation_id("mapped_rep").should_be_called().will_return("representation_id") - geometry.run_geometry_update_representation(obj="obj").should_be_called() - geometry.does_representation_id_exist("representation_id").should_be_called().will_return(True) - geometry.get_object_data("obj").should_be_called().will_return("current_obj_data") - geometry.reimport_element_representations("obj", "mapped_rep", apply_openings=True).should_be_called() - subject.switch_representation( - ifc, - geometry, - obj="obj", - representation="mapped_rep", - ) - - def test_not_switching_if_an_updated_representation_is_the_same_one_we_were_going_to_switch_to(self, ifc, geometry): - ifc.is_edited("obj").should_be_called().will_return(True) - geometry.is_box_representation("mapped_rep").should_be_called().will_return(False) - geometry.get_representation_id("mapped_rep").should_be_called().will_return("representation_id") - geometry.run_geometry_update_representation(obj="obj").should_be_called() - geometry.does_representation_id_exist("representation_id").should_be_called().will_return(False) - subject.switch_representation( - ifc, - geometry, - obj="obj", - representation="mapped_rep", - ) - class TestGetRepresentationIfcParameters: def test_run(self, geometry): @@ -258,7 +231,6 @@ class TestRemoveRepresentation: geometry.switch_from_representation("type_obj", "representation").should_be_called() ifc.run("geometry.unassign_representation", product="type", representation="representation").should_be_called() ifc.run("geometry.remove_representation", representation="representation").should_be_called() - geometry.delete_data("data").should_be_called() subject.remove_representation(ifc, geometry, obj="obj", representation="mapped_rep") def test_removing_an_unused_mapped_representation(self, ifc, geometry): @@ -281,7 +253,6 @@ class TestRemoveRepresentation: "geometry.unassign_representation", product="element", representation="representation" ).should_be_called() ifc.run("geometry.remove_representation", representation="representation").should_be_called() - geometry.delete_data("data").should_be_called() subject.remove_representation(ifc, geometry, obj="obj", representation="representation") def test_removing_an_actively_used_representation(self, ifc, geometry): @@ -296,7 +267,6 @@ class TestRemoveRepresentation: "geometry.unassign_representation", product="element", representation="representation" ).should_be_called() ifc.run("geometry.remove_representation", representation="representation").should_be_called() - geometry.delete_data("data").should_be_called() subject.remove_representation(ifc, geometry, obj="obj", representation="representation") def test_removing_an_unused_representation(self, ifc, geometry): diff --git a/src/bonsai/test/core/test_georeference.py b/src/bonsai/test/core/test_georeference.py index 6048ae5828..b9b330d816 100644 --- a/src/bonsai/test/core/test_georeference.py +++ b/src/bonsai/test/core/test_georeference.py @@ -17,7 +17,7 @@ # along with Bonsai. If not, see . import bonsai.core.georeference as subject -from test.core.bootstrap import ifc, georeference +from test.core.bootstrap import georeference, ifc class TestAddGeoreferencing: diff --git a/src/bonsai/test/core/test_material.py b/src/bonsai/test/core/test_material.py index a8baee0c6c..a2cbf8c433 100644 --- a/src/bonsai/test/core/test_material.py +++ b/src/bonsai/test/core/test_material.py @@ -17,7 +17,7 @@ # along with Bonsai. If not, see . import bonsai.core.material as subject -from test.core.bootstrap import ifc, material, style, spatial +from test.core.bootstrap import ifc, material, spatial, style class TestAddMaterial: diff --git a/src/bonsai/test/core/test_misc.py b/src/bonsai/test/core/test_misc.py index 950799a098..716607c0d8 100644 --- a/src/bonsai/test/core/test_misc.py +++ b/src/bonsai/test/core/test_misc.py @@ -17,7 +17,7 @@ # along with Bonsai. If not, see . import bonsai.core.misc as subject -from test.core.bootstrap import misc, ifc +from test.core.bootstrap import ifc, misc class TestResizeToStorey: diff --git a/src/bonsai/test/core/test_nest.py b/src/bonsai/test/core/test_nest.py index d2eefc9109..36cbfafc60 100644 --- a/src/bonsai/test/core/test_nest.py +++ b/src/bonsai/test/core/test_nest.py @@ -17,7 +17,7 @@ # along with Bonsai. If not, see . import bonsai.core.nest as subject -from test.core.bootstrap import ifc, nest, collector +from test.core.bootstrap import collector, ifc, nest class TestEnableEditingNeset: diff --git a/src/bonsai/test/core/test_owner.py b/src/bonsai/test/core/test_owner.py index b648030407..12d5bf3fa1 100644 --- a/src/bonsai/test/core/test_owner.py +++ b/src/bonsai/test/core/test_owner.py @@ -18,7 +18,7 @@ import bonsai.core.owner as subject -from test.core.bootstrap import ifc, owner, Prophecy +from test.core.bootstrap import Prophecy, ifc, owner class TestAddPerson: diff --git a/src/bonsai/test/core/test_project.py b/src/bonsai/test/core/test_project.py index 7ecdc3c36c..462e1cabcd 100644 --- a/src/bonsai/test/core/test_project.py +++ b/src/bonsai/test/core/test_project.py @@ -18,7 +18,7 @@ import bonsai.core.project as subject -from test.core.bootstrap import ifc, project, spatial, georeference +from test.core.bootstrap import georeference, ifc, project, spatial class TestCreateProject: diff --git a/src/bonsai/test/core/test_root.py b/src/bonsai/test/core/test_root.py index 7d922627ac..121236803d 100644 --- a/src/bonsai/test/core/test_root.py +++ b/src/bonsai/test/core/test_root.py @@ -18,7 +18,7 @@ import bonsai.core.root as subject import test.core.test_geometry -from test.core.bootstrap import ifc, collector, geometry, root +from test.core.bootstrap import collector, geometry, ifc, root class TestCopyClass: diff --git a/src/bonsai/test/core/test_spatial.py b/src/bonsai/test/core/test_spatial.py index a2b824fc91..ddc6116fdf 100644 --- a/src/bonsai/test/core/test_spatial.py +++ b/src/bonsai/test/core/test_spatial.py @@ -17,7 +17,7 @@ # along with Bonsai. If not, see . import bonsai.core.spatial as subject -from test.core.bootstrap import ifc, collector, spatial +from test.core.bootstrap import collector, ifc, spatial class TestReferenceStructure: @@ -38,16 +38,19 @@ class TestDereferenceStructure: class TestAssignContainer: def test_run(self, ifc, collector, spatial): - spatial.can_contain("container", "element_obj").should_be_called().will_return(True) - ifc.get_entity("element_obj").should_be_called().will_return("element") - ifc.run( - "spatial.assign_container", products=["element"], relating_structure="container" - ).should_be_called().will_return("rel") - spatial.disable_editing("element_obj").should_be_called() - collector.assign("element_obj").should_be_called() - assert ( - subject.assign_container(ifc, collector, spatial, container="container", element_obj="element_obj") == "rel" - ) + ifc.get_entity("obj").should_be_called().will_return("element") + spatial.get_root_element("element").should_be_called().will_return("aggregate") + spatial.get_decomposition("aggregate").should_be_called().will_return(["element", "element2"]) + spatial.can_contain("container", "aggregate").should_be_called().will_return(True) + ifc.run("spatial.assign_container", products=["aggregate"], relating_structure="container").should_be_called() + spatial.disable_editing("obj").should_be_called() + ifc.get_object("aggregate").should_be_called().will_return("aggregate_obj") + ifc.get_object("element").should_be_called().will_return("obj") + ifc.get_object("element2").should_be_called().will_return("obj2") + collector.assign("aggregate_obj").should_be_called() + collector.assign("obj").should_be_called() + collector.assign("obj2").should_be_called() + subject.assign_container(ifc, collector, spatial, container="container", objs=["obj"]) class TestEnableEditingContainer: @@ -82,7 +85,7 @@ class TestCopyToContainer: spatial.duplicate_object_and_data("obj").should_be_called().will_return("new_obj") spatial.set_relative_object_matrix("new_obj", "to_container_obj", "matrix").should_be_called() spatial.run_root_copy_class(obj="new_obj").should_be_called() - spatial.run_spatial_assign_container(container="to_container", element_obj="new_obj").should_be_called() + spatial.run_spatial_assign_container(container="to_container", objs=["new_obj"]).should_be_called() spatial.disable_editing("obj").should_be_called() @@ -97,7 +100,7 @@ class TestCopyToContainer: spatial.duplicate_object_and_data("obj").should_be_called().will_return("new_obj") spatial.set_relative_object_matrix("new_obj", "to_container_obj", "matrix").should_be_called() spatial.run_root_copy_class(obj="new_obj").should_be_called() - spatial.run_spatial_assign_container(container="to_container", element_obj="new_obj").should_be_called() + spatial.run_spatial_assign_container(container="to_container", objs=["new_obj"]).should_be_called() spatial.disable_editing("obj").should_be_called() diff --git a/src/bonsai/test/core/test_style.py b/src/bonsai/test/core/test_style.py index ca8fc6b962..a2278cf008 100644 --- a/src/bonsai/test/core/test_style.py +++ b/src/bonsai/test/core/test_style.py @@ -17,7 +17,7 @@ # along with Bonsai. If not, see . import bonsai.core.style as subject -from test.core.bootstrap import ifc, material, style, spatial +from test.core.bootstrap import ifc, material, spatial, style class TestAddStyle: diff --git a/src/bonsai/test/core/test_system.py b/src/bonsai/test/core/test_system.py index d907059b98..0f7dd34b62 100644 --- a/src/bonsai/test/core/test_system.py +++ b/src/bonsai/test/core/test_system.py @@ -18,7 +18,7 @@ import bonsai.core.system as subject -from test.core.bootstrap import ifc, system, spatial, group +from test.core.bootstrap import group, ifc, spatial, system class TestLoadSystems: @@ -153,11 +153,10 @@ class TestAddPort: def test_run(self, ifc, system): system.get_ports("element").should_be_called().will_return(["port"]) system.load_ports("element", ["port"]).should_be_called() - system.create_empty_at_cursor_with_element_orientation("element").should_be_called().will_return("obj") - system.run_root_assign_class( - obj="obj", ifc_class="IfcDistributionPort", should_add_representation=False - ).should_be_called().will_return("port") - ifc.run("system.assign_port", element="element", port="port").should_be_called() + # system.create_empty_at_cursor_with_element_orientation("element").should_be_called().will_return("obj") + # system.run_root_assign_class(obj="obj", ifc_class="IfcDistributionPort", should_add_representation=False).should_be_called().will_return("port") + system.create_port_at_cursor("element").should_be_called().will_return("port") + system.load_ports("element", ["port"]).should_be_called() subject.add_port(ifc, system, element="element") diff --git a/src/bonsai/test/core/test_type.py b/src/bonsai/test/core/test_type.py index 68130c1fa8..e46cf8168f 100644 --- a/src/bonsai/test/core/test_type.py +++ b/src/bonsai/test/core/test_type.py @@ -17,11 +17,11 @@ # along with Bonsai. If not, see . import bonsai.core.type as subject -from test.core.bootstrap import ifc, type, geometry +from test.core.bootstrap import geometry, ifc, model, type class TestAssignType: - def test_assigning_and_switching_to_an_existing_type_data(self, ifc, type): + def test_assigning_and_switching_to_an_existing_type_data(self, ifc, model, type): ifc.run("type.assign_type", related_objects=["element"], relating_type="type").should_be_called() type.has_material_usage("element").should_be_called().will_return(False) ifc.get_object("type").should_be_called().will_return("type_obj") @@ -29,7 +29,7 @@ class TestAssignType: type.change_object_data("obj", "type_obj_data", is_global=False).should_be_called() ifc.get_object("element").should_be_called().will_return("obj") type.disable_editing("obj").should_be_called() - subject.assign_type(ifc, type, element="element", type="type") + subject.assign_type(ifc, model, type, element="element", type="type") def test_assigning_and_not_changing_data_if_the_type_has_no_data(self, ifc, type): ifc.run("type.assign_type", related_objects=["element"], relating_type="type").should_be_called() @@ -38,7 +38,7 @@ class TestAssignType: type.get_object_data("type_obj").should_be_called().will_return(None) ifc.get_object("element").should_be_called().will_return("obj") type.disable_editing("obj").should_be_called() - subject.assign_type(ifc, type, element="element", type="type") + subject.assign_type(ifc, model, type, element="element", type="type") class TestPurgeUnusedTypes: diff --git a/src/bonsai/test/core/test_unit.py b/src/bonsai/test/core/test_unit.py index d79b6b83fb..1c328fe84c 100644 --- a/src/bonsai/test/core/test_unit.py +++ b/src/bonsai/test/core/test_unit.py @@ -22,39 +22,91 @@ from test.core.bootstrap import ifc, unit class TestAssignSceneUnits: def test_creating_and_assigning_metric_units(self, ifc, unit): - unit.is_scene_unit_metric().should_be_called().will_return(True) - unit.get_scene_unit_si_prefix("LENGTHUNIT").should_be_called().will_return("prefix") - unit.get_scene_unit_si_prefix("AREAUNIT").should_be_called().will_return("prefix") - unit.get_scene_unit_si_prefix("VOLUMEUNIT").should_be_called().will_return("prefix") - ifc.run("unit.add_si_unit", unit_type="LENGTHUNIT", prefix="prefix").should_be_called().will_return( + unit.get_scene_unit_name("LENGTHUNIT").should_be_called().will_return("length_name") + unit.get_scene_unit_name("AREAUNIT").should_be_called().will_return("area_name") + unit.get_scene_unit_name("VOLUMEUNIT").should_be_called().will_return("volume_name") + unit.get_scene_unit_name("MASSUNIT").should_be_called().will_return("mass_name") + unit.get_scene_unit_name("TIMEUNIT").should_be_called().will_return("time_name") + unit.is_si_unit("length_name").should_be_called().will_return(True) + unit.is_si_unit("area_name").should_be_called().will_return(True) + unit.is_si_unit("volume_name").should_be_called().will_return(True) + unit.is_si_unit("mass_name").should_be_called().will_return(True) + unit.is_si_unit("time_name").should_be_called().will_return(True) + unit.get_scene_unit_si_prefix("length_name").should_be_called().will_return("length_prefix") + unit.get_scene_unit_si_prefix("area_name").should_be_called().will_return("area_prefix") + unit.get_scene_unit_si_prefix("volume_name").should_be_called().will_return("volume_prefix") + unit.get_scene_unit_si_prefix("mass_name").should_be_called().will_return("mass_prefix") + unit.get_scene_unit_si_prefix("time_name").should_be_called().will_return("time_prefix") + ifc.run("unit.add_si_unit", unit_type="LENGTHUNIT", prefix="length_prefix").should_be_called().will_return( "lengthunit" ) - - ifc.run("unit.add_si_unit", unit_type="AREAUNIT", prefix="prefix").should_be_called().will_return("areaunit") - - ifc.run("unit.add_si_unit", unit_type="VOLUMEUNIT", prefix="prefix").should_be_called().will_return( + ifc.run("unit.add_si_unit", unit_type="AREAUNIT", prefix="area_prefix").should_be_called().will_return( + "areaunit" + ) + ifc.run("unit.add_si_unit", unit_type="VOLUMEUNIT", prefix="volume_prefix").should_be_called().will_return( "volumeunit" ) + ifc.run("unit.add_si_unit", unit_type="MASSUNIT", prefix="mass_prefix").should_be_called().will_return( + "massunit" + ) + ifc.run("unit.add_si_unit", unit_type="TIMEUNIT", prefix="time_prefix").should_be_called().will_return( + "timeunit" + ) + ifc.run( + "unit.assign_unit", units=["lengthunit", "areaunit", "volumeunit", "massunit", "timeunit"] + ).should_be_called() + subject.assign_scene_units(ifc, unit) - ifc.run("unit.add_conversion_based_unit", name="degree").should_be_called().will_return("planeangleunit") - - ifc.run("unit.assign_unit", units=["lengthunit", "areaunit", "volumeunit", "planeangleunit"]).should_be_called() + def test_creating_and_assigning_only_specified_units(self, ifc, unit): + unit.get_scene_unit_name("LENGTHUNIT").should_be_called().will_return("length_name") + unit.get_scene_unit_name("AREAUNIT").should_be_called().will_return(None) + unit.get_scene_unit_name("VOLUMEUNIT").should_be_called().will_return(None) + unit.get_scene_unit_name("MASSUNIT").should_be_called().will_return(None) + unit.get_scene_unit_name("TIMEUNIT").should_be_called().will_return(None) + unit.is_si_unit("length_name").should_be_called().will_return(True) + unit.get_scene_unit_si_prefix("length_name").should_be_called().will_return("length_prefix") + ifc.run("unit.add_si_unit", unit_type="LENGTHUNIT", prefix="length_prefix").should_be_called().will_return( + "lengthunit" + ) + ifc.run("unit.assign_unit", units=["lengthunit"]).should_be_called() subject.assign_scene_units(ifc, unit) def test_creating_and_assigning_imperial_units(self, ifc, unit): - unit.is_scene_unit_metric().should_be_called().will_return(False) - unit.get_scene_unit_name("LENGTHUNIT").should_be_called().will_return("lengthname") - ifc.run("unit.add_conversion_based_unit", name="lengthname").should_be_called().will_return("lengthunit") + unit.get_scene_unit_name("LENGTHUNIT").should_be_called().will_return("length_name") + unit.get_scene_unit_name("AREAUNIT").should_be_called().will_return("area_name") + unit.get_scene_unit_name("VOLUMEUNIT").should_be_called().will_return("volume_name") + unit.get_scene_unit_name("MASSUNIT").should_be_called().will_return("mass_name") + unit.get_scene_unit_name("TIMEUNIT").should_be_called().will_return("time_name") + unit.is_si_unit("length_name").should_be_called().will_return(False) + unit.is_si_unit("area_name").should_be_called().will_return(False) + unit.is_si_unit("volume_name").should_be_called().will_return(False) + unit.is_si_unit("mass_name").should_be_called().will_return(False) + unit.is_si_unit("time_name").should_be_called().will_return(False) + ifc.run("unit.add_conversion_based_unit", name="length_name").should_be_called().will_return("lengthunit") + ifc.run("unit.add_conversion_based_unit", name="area_name").should_be_called().will_return("areaunit") + ifc.run("unit.add_conversion_based_unit", name="volume_name").should_be_called().will_return("volumeunit") + ifc.run("unit.add_conversion_based_unit", name="mass_name").should_be_called().will_return("massunit") + ifc.run("unit.add_conversion_based_unit", name="time_name").should_be_called().will_return("timeunit") + ifc.run( + "unit.assign_unit", units=["lengthunit", "areaunit", "volumeunit", "massunit", "timeunit"] + ).should_be_called() + subject.assign_scene_units(ifc, unit) - unit.get_scene_unit_name("AREAUNIT").should_be_called().will_return("areaname") - ifc.run("unit.add_conversion_based_unit", name="areaname").should_be_called().will_return("areaunit") - - unit.get_scene_unit_name("VOLUMEUNIT").should_be_called().will_return("volumename") - ifc.run("unit.add_conversion_based_unit", name="volumename").should_be_called().will_return("volumeunit") - - ifc.run("unit.add_conversion_based_unit", name="degree").should_be_called().will_return("planeangleunit") - - ifc.run("unit.assign_unit", units=["lengthunit", "areaunit", "volumeunit", "planeangleunit"]).should_be_called() + def test_creating_both_metric_and_imperial_units(self, ifc, unit): + # I know British doctors measure with stones so... + unit.get_scene_unit_name("LENGTHUNIT").should_be_called().will_return("length_name") + unit.get_scene_unit_name("AREAUNIT").should_be_called().will_return("area_name") + unit.get_scene_unit_name("VOLUMEUNIT").should_be_called().will_return(None) + unit.get_scene_unit_name("MASSUNIT").should_be_called().will_return(None) + unit.get_scene_unit_name("TIMEUNIT").should_be_called().will_return(None) + unit.is_si_unit("length_name").should_be_called().will_return(True) + unit.is_si_unit("area_name").should_be_called().will_return(False) + unit.get_scene_unit_si_prefix("length_name").should_be_called().will_return("length_prefix") + ifc.run("unit.add_si_unit", unit_type="LENGTHUNIT", prefix="length_prefix").should_be_called().will_return( + "lengthunit" + ) + ifc.run("unit.add_conversion_based_unit", name="area_name").should_be_called().will_return("areaunit") + ifc.run("unit.assign_unit", units=["lengthunit", "areaunit"]).should_be_called() subject.assign_scene_units(ifc, unit) diff --git a/src/bonsai/test/tool/test_aggregate.py b/src/bonsai/test/tool/test_aggregate.py index 20c31cacdc..bab71b2c4a 100644 --- a/src/bonsai/test/tool/test_aggregate.py +++ b/src/bonsai/test/tool/test_aggregate.py @@ -24,10 +24,11 @@ import ifcopenshell.api.root import ifcopenshell.api.spatial import ifcopenshell.api.unit import ifcopenshell.util.shape_builder + import bonsai.core.tool import bonsai.tool as tool -from test.bim.bootstrap import NewFile from bonsai.tool.aggregate import Aggregate as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_blender.py b/src/bonsai/test/tool/test_blender.py index 2db244abe1..43d04c7c19 100644 --- a/src/bonsai/test/tool/test_blender.py +++ b/src/bonsai/test/tool/test_blender.py @@ -16,14 +16,16 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from typing import TYPE_CHECKING + import bpy import ifcopenshell +import pytest + import bonsai.core.tool import bonsai.tool as tool -import pytest -from test.bim.bootstrap import NewFile -from typing import TYPE_CHECKING from bonsai.tool.blender import Blender as subject +from test.bim.bootstrap import NewFile if TYPE_CHECKING: import bpy.stub_internal.rna_enums as rna_enums diff --git a/src/bonsai/test/tool/test_brick.py b/src/bonsai/test/tool/test_brick.py index 7470dd5954..c3d1f429e3 100644 --- a/src/bonsai/test/tool/test_brick.py +++ b/src/bonsai/test/tool/test_brick.py @@ -17,22 +17,24 @@ # along with Bonsai. If not, see . import os + import bpy import brickschema import brickschema.persistent -from brickschema.namespaces import REF, A import ifcopenshell import ifcopenshell.api import ifcopenshell.api.aggregate import ifcopenshell.api.root import ifcopenshell.guid +from brickschema.namespaces import REF, A +from rdflib import Literal, Namespace, URIRef +from rdflib.namespace import RDF + import bonsai.core.tool import bonsai.tool as tool -from rdflib.namespace import RDF -from rdflib import Literal, URIRef, Namespace -from test.bim.bootstrap import NewFile from bonsai.tool.brick import Brick as subject from bonsai.tool.brick import BrickStore +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_cad.py b/src/bonsai/test/tool/test_cad.py index c02aaed8c6..2e84c71718 100644 --- a/src/bonsai/test/tool/test_cad.py +++ b/src/bonsai/test/tool/test_cad.py @@ -16,10 +16,11 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -from test.bim.bootstrap import NewFile -from bonsai.tool.cad import Cad as subject from mathutils import Vector +from bonsai.tool.cad import Cad as subject +from test.bim.bootstrap import NewFile + V = lambda *x: Vector([float(i) for i in x]) diff --git a/src/bonsai/test/tool/test_classification.py b/src/bonsai/test/tool/test_classification.py index b584050e8d..7bfe2a44d7 100644 --- a/src/bonsai/test/tool/test_classification.py +++ b/src/bonsai/test/tool/test_classification.py @@ -17,14 +17,16 @@ # along with Bonsai. If not, see . import os + import bpy import ifcopenshell import ifcopenshell.util.classification import ifcopenshell.util.element + import bonsai.core.tool import bonsai.tool as tool -from test.bim.bootstrap import NewFile from bonsai.tool.classification import Classification as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_collector.py b/src/bonsai/test/tool/test_collector.py index ba59aeef92..1ddd7e6381 100644 --- a/src/bonsai/test/tool/test_collector.py +++ b/src/bonsai/test/tool/test_collector.py @@ -24,6 +24,7 @@ import ifcopenshell.api.feature import ifcopenshell.api.group import ifcopenshell.api.spatial import ifcopenshell.util.element + import bonsai.core.tool import bonsai.tool as tool from bonsai.tool.collector import Collector as subject diff --git a/src/bonsai/test/tool/test_context.py b/src/bonsai/test/tool/test_context.py index f4035ecd97..c131028e98 100644 --- a/src/bonsai/test/tool/test_context.py +++ b/src/bonsai/test/tool/test_context.py @@ -18,9 +18,10 @@ import bpy import ifcopenshell -import test.bim.bootstrap + import bonsai.core.tool import bonsai.tool as tool +import test.bim.bootstrap from bonsai.tool.context import Context as subject diff --git a/src/bonsai/test/tool/test_debug.py b/src/bonsai/test/tool/test_debug.py index 24e875071b..7b434c4ee6 100644 --- a/src/bonsai/test/tool/test_debug.py +++ b/src/bonsai/test/tool/test_debug.py @@ -17,16 +17,18 @@ # along with Bonsai. If not, see . import os +from pathlib import Path + import bpy import ifcopenshell import ifcopenshell.api.style import ifcopenshell.util.schema + import bonsai.core.tool import bonsai.tool as tool -from test.bim.bootstrap import NewFile -from bonsai.tool.debug import Debug as subject from bonsai.bim.ifc import IfcStore -from pathlib import Path +from bonsai.tool.debug import Debug as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_document.py b/src/bonsai/test/tool/test_document.py index 9e3556afd5..5afb25cd65 100644 --- a/src/bonsai/test/tool/test_document.py +++ b/src/bonsai/test/tool/test_document.py @@ -16,14 +16,17 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +import json + import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.document + import bonsai.core.tool import bonsai.tool as tool -from test.bim.bootstrap import NewFile from bonsai.tool.document import Document as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): @@ -31,24 +34,6 @@ class TestImplementsTool(NewFile): assert isinstance(subject(), bonsai.core.tool.Document) -class TestAddBreadcrumb(NewFile): - def test_run(self): - ifc = ifcopenshell.file() - tool.Ifc().set(ifc) - document = ifc.createIfcDocumentInformation() - subject.add_breadcrumb(document) - props = tool.Document.get_document_props() - assert props.breadcrumbs[0].name == str(document.id()) - - -class TestClearBreadcrumbs(NewFile): - def test_run(self): - props = tool.Document.get_document_props() - props.breadcrumbs.add() - subject.clear_breadcrumbs() - assert len(props.breadcrumbs) == 0 - - class TestClearDocumentTree(NewFile): def test_run(self): props = tool.Document.get_document_props() @@ -103,15 +88,6 @@ class TestExportDocumentAttributes(NewFile): } -class TestGetActiveBreadcrumb(NewFile): - def test_run(self): - ifc = ifcopenshell.file() - tool.Ifc().set(ifc) - document = ifc.createIfcDocumentInformation() - subject.add_breadcrumb(document) - assert subject.get_active_breadcrumb() == document - - class TestImportDocumentAttributes(NewFile): def test_importing_information(self): ifc = ifcopenshell.file() @@ -166,51 +142,64 @@ class TestImportDocumentAttributes(NewFile): assert props.document_attributes["Description"].string_value == "Description" -class TestImportProjectDocuments(NewFile): +class TestImportProjectDocumentsExpanded(NewFile): def test_run(self): ifc = ifcopenshell.file() tool.Ifc().set(ifc) - ifc.createIfcProject() - document = ifcopenshell.api.document.add_information(ifc) - subject.import_project_documents() - props = tool.Document.get_document_props() - assert len(props.documents) == 1 - assert props.documents[0].ifc_definition_id == document.id() - assert props.documents[0].name == "Unnamed" - assert props.documents[0].identification == "X" - assert props.documents[0].is_information is True - - -class TestImportReferences(NewFile): - def test_run(self): - ifc = ifcopenshell.file() - tool.Ifc().set(ifc) - ifc.createIfcProject() + project = ifc.createIfcProject() document = ifcopenshell.api.document.add_information(ifc) reference = ifcopenshell.api.document.add_reference(ifc, information=document) - subject.import_references(document) + props = tool.Document.get_document_props() - assert len(props.documents) == 1 - assert props.documents[0].ifc_definition_id == reference.id() - assert props.documents[0].name == "Unnamed" - assert props.documents[0].identification == "X" - assert props.documents[0].is_information is False + expanded_docs = [document.id()] # Mark document as expanded + props.json_string = json.dumps(expanded_docs) + + subject.import_project_documents() + props = tool.Document.get_document_props() + + # Should have project root + document + reference = 3 total + assert len(props.documents) == 3 + + assert props.documents[0].ifc_definition_id == -project.id() + assert props.documents[0].document_type == "PROJECT" + + doc_info = next((d for d in props.documents if d.ifc_definition_id == document.id()), None) + assert doc_info is not None + assert doc_info.document_type == "INFORMATION" + + doc_ref = next((d for d in props.documents if d.ifc_definition_id == reference.id()), None) + assert doc_ref is not None + assert doc_ref.location == "" + assert doc_ref.identification == "X" + assert doc_ref.document_type == "REFERENCE" -class TestImportSubdocuments(NewFile): +class TestImportProjectDocumentsCollapsed(NewFile): def test_run(self): ifc = ifcopenshell.file() tool.Ifc().set(ifc) - ifc.createIfcProject() + project = ifc.createIfcProject() document = ifcopenshell.api.document.add_information(ifc) - subdocument = ifcopenshell.api.document.add_information(ifc, parent=document) - subject.import_subdocuments(document) + reference = ifcopenshell.api.document.add_reference(ifc, information=document) + props = tool.Document.get_document_props() - assert len(props.documents) == 1 - assert props.documents[0].ifc_definition_id == subdocument.id() - assert props.documents[0].name == "Unnamed" - assert props.documents[0].identification == "X" - assert props.documents[0].is_information is True + props.json_string = json.dumps([]) # Empty expanded list + + subject.import_project_documents() + props = tool.Document.get_document_props() + + # Should have project root + document = 2 total (reference not imported because parent is collapsed) + assert len(props.documents) == 2 + + assert props.documents[0].ifc_definition_id == -project.id() + assert props.documents[0].document_type == "PROJECT" + + doc_info = next((d for d in props.documents if d.ifc_definition_id == document.id()), None) + assert doc_info is not None + assert doc_info.document_type == "INFORMATION" + + doc_ref = next((d for d in props.documents if d.ifc_definition_id == reference.id()), None) + assert doc_ref is None class TestIsDocumentInformation(NewFile): @@ -222,15 +211,6 @@ class TestIsDocumentInformation(NewFile): assert subject.is_document_information(reference) is False -class TestRemoveLatestBreadcrumb(NewFile): - def test_run(self): - props = tool.Document.get_document_props() - props.breadcrumbs.add() - props.breadcrumbs.add() - subject.remove_latest_breadcrumb() - assert len(props.breadcrumbs) == 1 - - class TestSetActiveDocument(NewFile): def test_run(self): ifc = ifcopenshell.file() diff --git a/src/bonsai/test/tool/test_drawing.py b/src/bonsai/test/tool/test_drawing.py index 86ce456254..f7beb94358 100644 --- a/src/bonsai/test/tool/test_drawing.py +++ b/src/bonsai/test/tool/test_drawing.py @@ -17,10 +17,10 @@ # along with Bonsai. If not, see . import os +import xml.etree.ElementTree as ET from pathlib import Path -import numpy as np + import bpy -import mathutils import ifcopenshell import ifcopenshell.api.drawing import ifcopenshell.api.group @@ -28,14 +28,15 @@ import ifcopenshell.api.pset import ifcopenshell.api.root import ifcopenshell.guid import ifcopenshell.util.element -import bonsai.core.tool -import bonsai.tool as tool -from test.bim.bootstrap import NewFile -from bonsai.tool.drawing import Drawing as subject -from bonsai.bim.module.drawing.data import DecoratorData +import mathutils +import numpy as np from mathutils import Vector -import xml.etree.ElementTree as ET +import bonsai.core.tool +import bonsai.tool as tool +from bonsai.bim.module.drawing.data import DecoratorData +from bonsai.tool.drawing import Drawing as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): @@ -155,6 +156,9 @@ class TestDisableEditingText(NewFile): props = tool.Drawing.get_text_props(obj) props.is_editing = True subject.disable_editing_text(obj) + + # Props might get invalidated, since no properties set. + props = tool.Drawing.get_text_props(obj) assert props.is_editing == False @@ -812,8 +816,9 @@ class TestDrawingMaintainingSheetPosition(NewFile): def test_run(self): props = tool.Drawing.get_document_props() bpy.ops.bim.create_project() + tool.Project.save_test_project() ifc = tool.Ifc.get() - sheet_path = Path.cwd() / "layouts" / "A01 - UNTITLED.svg" + sheet_path = Path(tool.Ifc.get_path()).parent / "layouts" / "A01 - UNTITLED.svg" bpy.ops.mesh.primitive_cube_add(size=10, location=(0, 0, 4)) obj = bpy.data.objects["Cube"] @@ -867,6 +872,7 @@ class TestDrawingMaintainingSheetPosition(NewFile): class TestDrawingStyles(NewFile): def setup_project_with_drawing(self): bpy.ops.bim.create_project() + tool.Project.save_test_project() bpy.ops.bim.load_drawings() bpy.ops.bim.add_drawing() ifc = tool.Ifc.get() @@ -878,19 +884,13 @@ class TestDrawingStyles(NewFile): props = tool.Drawing.get_document_props() self.drawing_styles = props.drawing_styles - def test_drawing_styles_not_loaded_if_underlay_is_inactive(self): + def test_drawing_styles_are_loaded_even_if_underlay_is_inactive(self): self.setup_project_with_drawing() - assert len(self.drawing_styles) == 0 - - def test_drawing_styles_loaded_on_underlay_enabled(self): - self.setup_project_with_drawing() - assert (scene := bpy.context.scene) and (camera := scene.camera) - props = tool.Drawing.get_camera_props(camera) - props.has_underlay = True assert len(self.drawing_styles) == 3 def test_drawing_styles_reload(self): self.setup_project_with_drawing() + self.drawing_styles.clear() bpy.ops.bim.reload_drawing_styles() assert len(self.drawing_styles) == 3 @@ -928,3 +928,71 @@ class TestAddReferenceImage(NewFile): uv_node = material_nodes["Texture Coordinate"] assert len(uv_node.outputs["Generated"].links[:]) == 1 + + +class TestAddReference(NewFile): + def test_add_single_reference(self): + """Test adding a single reference file (backward compatibility)""" + bpy.ops.bim.create_project() + ifc_path = Path("test/files/temp/test.ifc").absolute() + bpy.ops.bim.save_project(filepath=str(ifc_path), should_save_as=True) + + # Create a temporary SVG file + svg_path = Path("test/files/temp/reference.svg").absolute() + svg_path.parent.mkdir(parents=True, exist_ok=True) + with open(svg_path, "w") as f: + f.write('') + + try: + # Add single reference + bpy.ops.bim.add_reference(filepath=str(svg_path)) + + # Verify reference was added + ifc = tool.Ifc.get() + references = [doc for doc in ifc.by_type("IfcDocumentInformation") if doc.Scope == "REFERENCE"] + assert len(references) == 1 + assert references[0].Name == "reference" + finally: + # Cleanup + if svg_path.exists(): + svg_path.unlink() + + def test_add_multiple_references(self): + """Test adding multiple reference files at once""" + bpy.ops.bim.create_project() + ifc_path = Path("test/files/temp/test.ifc").absolute() + bpy.ops.bim.save_project(filepath=str(ifc_path), should_save_as=True) + + # Create temporary SVG files + temp_dir = Path("test/files/temp").absolute() + temp_dir.mkdir(parents=True, exist_ok=True) + + svg_files = [] + for i in range(3): + svg_path = temp_dir / f"reference_{i}.svg" + with open(svg_path, "w") as f: + f.write('') + svg_files.append(svg_path) + + try: + # Test by directly calling core.add_document multiple times + # (simulating what the operator does with multiple files) + ifc = tool.Ifc.get() + for svg_file in svg_files: + uri = tool.Ifc.get_uri(str(svg_file), use_relative_path=True) + from bonsai.bim import core + + core.drawing.add_document(tool.Ifc, tool.Drawing, "REFERENCE", uri=uri) + + # Verify all references were added + references = [doc for doc in ifc.by_type("IfcDocumentInformation") if doc.Scope == "REFERENCE"] + assert len(references) == 3 + + reference_names = {ref.Name for ref in references} + expected_names = {f"reference_{i}" for i in range(3)} + assert reference_names == expected_names + finally: + # Cleanup + for svg_file in svg_files: + if svg_file.exists(): + svg_file.unlink() diff --git a/src/bonsai/test/tool/test_geometry.py b/src/bonsai/test/tool/test_geometry.py index a2107da12f..424e1fd876 100644 --- a/src/bonsai/test/tool/test_geometry.py +++ b/src/bonsai/test/tool/test_geometry.py @@ -16,19 +16,21 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import math -import numpy as np +from typing import Union + +import bpy import ifcopenshell import ifcopenshell.api.geometry import ifcopenshell.api.root import ifcopenshell.api.type +import numpy as np +from mathutils import Vector + import bonsai.core.tool import bonsai.tool as tool -from mathutils import Vector -from test.bim.bootstrap import NewFile from bonsai.tool.geometry import Geometry as subject -from typing import Union +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): @@ -321,8 +323,8 @@ class TestRecordObjectPosition(NewFile): obj = bpy.data.objects.new("Object", None) props = tool.Blender.get_object_bim_props(obj) subject.record_object_position(obj) - assert props.location_checksum == repr(np.array(obj.matrix_world.translation, dtype=np.float32).tobytes()) - assert props.rotation_checksum == repr(np.array(obj.matrix_world.to_3x3(), dtype=np.float32).tobytes()) + assert props.location_checksum == repr(tool.Blender.np_array_legacy(obj.matrix_world.translation).tobytes()) + assert props.rotation_checksum == repr(tool.Blender.np_array_legacy(obj.matrix_world.to_3x3()).tobytes()) class TestRemoveConnection(NewFile): diff --git a/src/bonsai/test/tool/test_georeference.py b/src/bonsai/test/tool/test_georeference.py index a6292abde4..2d29f8429b 100644 --- a/src/bonsai/test/tool/test_georeference.py +++ b/src/bonsai/test/tool/test_georeference.py @@ -16,19 +16,21 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import math + +import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.context import ifcopenshell.api.georeference import ifcopenshell.api.root import ifcopenshell.api.unit +from mathutils import Vector + import bonsai.core.tool import bonsai.tool as tool -from mathutils import Vector -from test.bim.bootstrap import NewFile from bonsai.tool.georeference import Georeference as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_ifc.py b/src/bonsai/test/tool/test_ifc.py index dcd533a58d..9542332d52 100644 --- a/src/bonsai/test/tool/test_ifc.py +++ b/src/bonsai/test/tool/test_ifc.py @@ -16,14 +16,17 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import ifcopenshell -import test.bim.bootstrap -import bonsai.core.tool -import bonsai.tool as tool -import pytest +import os import tempfile from pathlib import Path + +import bpy +import ifcopenshell +import pytest + +import bonsai.core.tool +import bonsai.tool as tool +import test.bim.bootstrap from bonsai.tool.ifc import Ifc as subject @@ -318,8 +321,10 @@ class TestUri(test.bim.bootstrap.NewFile): def test_normalize_path(self): # Posix format. - path = r"test\test.txt" - assert subject.normalize_path(path) == "test/test.txt" + if os.name == "nt": + # Limit to windows (#7348) + path = r"test\test.txt" + assert subject.normalize_path(path) == "test/test.txt" with tempfile.TemporaryDirectory() as tmp_dir: base_path = Path(tmp_dir) diff --git a/src/bonsai/test/tool/test_library.py b/src/bonsai/test/tool/test_library.py index 64d73f918b..b0bbbf3990 100644 --- a/src/bonsai/test/tool/test_library.py +++ b/src/bonsai/test/tool/test_library.py @@ -18,10 +18,11 @@ import bpy import ifcopenshell + import bonsai.core.tool import bonsai.tool as tool -from test.bim.bootstrap import NewFile from bonsai.tool.library import Library as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_loader.py b/src/bonsai/test/tool/test_loader.py index b128988aba..8817d3d92b 100644 --- a/src/bonsai/test/tool/test_loader.py +++ b/src/bonsai/test/tool/test_loader.py @@ -16,21 +16,23 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy -import bmesh import json +from pathlib import Path + +import bmesh +import bpy import ifcopenshell import ifcopenshell.api.library import ifcopenshell.api.style import ifcopenshell.util.schema -import bonsai.core.tool -import bonsai.tool as tool -from test.bim.bootstrap import NewFile -from bonsai.tool.loader import Loader as subject import numpy as np from ifcopenshell.util.shape_builder import ShapeBuilder from mathutils import Vector -from pathlib import Path + +import bonsai.core.tool +import bonsai.tool as tool +from bonsai.tool.loader import Loader as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): @@ -188,8 +190,8 @@ class TestCreatingStyles(NewFile): def get_png_raster_code(): import base64 - import zlib import struct + import zlib # https://blender.stackexchange.com/questions/62072/does-blender-have-a-method-to-a-get-png-formatted-bytearray-for-an-image-via-pyt width = 2 diff --git a/src/bonsai/test/tool/test_material.py b/src/bonsai/test/tool/test_material.py index ef423afb4c..870417a254 100644 --- a/src/bonsai/test/tool/test_material.py +++ b/src/bonsai/test/tool/test_material.py @@ -23,10 +23,11 @@ import ifcopenshell.api.material import ifcopenshell.api.pset import ifcopenshell.api.root import ifcopenshell.api.style + import bonsai.core.tool import bonsai.tool as tool -from test.bim.bootstrap import NewFile from bonsai.tool.material import Material as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_misc.py b/src/bonsai/test/tool/test_misc.py index 883755888a..c3d3cec2fe 100644 --- a/src/bonsai/test/tool/test_misc.py +++ b/src/bonsai/test/tool/test_misc.py @@ -16,16 +16,18 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import bpy import math -import numpy + +import bpy import ifcopenshell import ifcopenshell.api.aggregate import ifcopenshell.api.spatial import ifcopenshell.api.unit -import test.bim.bootstrap +import numpy + import bonsai.core.tool import bonsai.tool as tool +import test.bim.bootstrap from bonsai.tool.misc import Misc as subject diff --git a/src/bonsai/test/tool/test_model.py b/src/bonsai/test/tool/test_model.py index d69b2a532e..756268cbee 100644 --- a/src/bonsai/test/tool/test_model.py +++ b/src/bonsai/test/tool/test_model.py @@ -16,6 +16,9 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +import json +from typing import Any + import bpy import ifcopenshell import ifcopenshell.api.geometry @@ -26,14 +29,13 @@ import ifcopenshell.api.type import ifcopenshell.util.element import ifcopenshell.util.representation import ifcopenshell.util.shape_builder +import numpy as np +from ifcopenshell.util.shape_builder import ShapeBuilder, V + import bonsai.core.tool import bonsai.tool as tool -import numpy as np -import json -from typing import Any -from test.bim.bootstrap import NewFile from bonsai.tool.model import Model as subject -from ifcopenshell.util.shape_builder import V, ShapeBuilder +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_nest.py b/src/bonsai/test/tool/test_nest.py index 257bbcee88..14acfa18bc 100644 --- a/src/bonsai/test/tool/test_nest.py +++ b/src/bonsai/test/tool/test_nest.py @@ -20,10 +20,11 @@ import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.spatial + import bonsai.core.tool import bonsai.tool as tool -from test.bim.bootstrap import NewFile from bonsai.tool.nest import Nest as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_owner.py b/src/bonsai/test/tool/test_owner.py index 84ca456e96..bc4ed2d533 100644 --- a/src/bonsai/test/tool/test_owner.py +++ b/src/bonsai/test/tool/test_owner.py @@ -16,15 +16,17 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from functools import cache +from typing import Any + import bpy import ifcopenshell import ifcopenshell.api.owner + import bonsai.core.tool import bonsai.tool as tool -from test.bim.bootstrap import NewFile from bonsai.tool.owner import Owner as subject -from typing import Any -from functools import cache +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_patch.py b/src/bonsai/test/tool/test_patch.py index 8fce8974a9..955908f284 100644 --- a/src/bonsai/test/tool/test_patch.py +++ b/src/bonsai/test/tool/test_patch.py @@ -17,12 +17,14 @@ # along with Bonsai. If not, see . import os + import bpy import ifcopenshell + import bonsai.core.tool import bonsai.tool as tool -from test.bim.bootstrap import NewFile from bonsai.tool.patch import Patch as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_polyline.py b/src/bonsai/test/tool/test_polyline.py index 9dd1e8f41c..b55c6b52a6 100644 --- a/src/bonsai/test/tool/test_polyline.py +++ b/src/bonsai/test/tool/test_polyline.py @@ -21,10 +21,11 @@ import ifcopenshell import ifcopenshell.api.project import ifcopenshell.api.root import ifcopenshell.api.unit + import bonsai.core.tool import bonsai.tool as tool -from test.bim.bootstrap import NewFile from bonsai.tool.polyline import Polyline as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_project.py b/src/bonsai/test/tool/test_project.py index 5751660d83..06c3f8ec25 100644 --- a/src/bonsai/test/tool/test_project.py +++ b/src/bonsai/test/tool/test_project.py @@ -17,20 +17,22 @@ # along with Bonsai. If not, see . import contextlib +import tempfile +from pathlib import Path + import bpy import ifcopenshell import ifcopenshell.api.context import ifcopenshell.api.document import ifcopenshell.api.root import ifcopenshell.api.unit -import bonsai.core.tool -import bonsai.tool as tool -import tempfile import ifcpatch from ifcpatch.recipes import Ifc2Sql -from test.bim.bootstrap import NewFile + +import bonsai.core.tool +import bonsai.tool as tool from bonsai.tool.project import Project as subject -from pathlib import Path +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_pset.py b/src/bonsai/test/tool/test_pset.py index 9aa8e70289..9b01105748 100644 --- a/src/bonsai/test/tool/test_pset.py +++ b/src/bonsai/test/tool/test_pset.py @@ -20,6 +20,7 @@ import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.pset + import bonsai.core.tool import bonsai.tool as tool from bonsai.tool.pset import Pset as subject diff --git a/src/bonsai/test/tool/test_pset_template.py b/src/bonsai/test/tool/test_pset_template.py new file mode 100644 index 0000000000..d2aa408caa --- /dev/null +++ b/src/bonsai/test/tool/test_pset_template.py @@ -0,0 +1,49 @@ +# Bonsai - OpenBIM Blender Add-on +# Copyright (C) 2021 Dion Moult +# +# This file is part of Bonsai. +# +# Bonsai is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Bonsai is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Bonsai. If not, see . + +import bpy +import ifcopenshell +import ifcopenshell.api +import ifcopenshell.api.pset + +import bonsai.core.tool +import bonsai.tool as tool +from bonsai.tool.pset_template import PsetTemplate as subject +from test.bim.bootstrap import NewFile + + +class TestImplementsTool(NewFile): + def test_run(self): + assert isinstance(subject(), bonsai.core.tool.PsetTemplate) + + +class TestAddPsetAsTemplate(NewFile): + def test_run(self): + ifc = ifcopenshell.file() + tool.Ifc.set(ifc) + element1 = ifc.createIfcWall() + element2 = ifc.createIfcWall() + pset = ifcopenshell.api.pset.add_pset(ifc, product=element1, name="Foo") + prop = ifcopenshell.api.pset.edit_pset(ifc, pset=pset, properties={"Foo": "a"}) + pset = ifcopenshell.api.pset.add_pset(ifc, product=element2, name="Foo") + prop = ifcopenshell.api.pset.edit_pset(ifc, pset=pset, properties={"Bar": "b"}) + library = ifcopenshell.file() + assert (pset_template := subject.add_pset_as_template("Foo", library)) + assert pset_template.is_a("IfcPropertySetTemplate") + assert len(templates := pset_template.HasPropertyTemplates) == 2 + assert set(t.Name for t in templates) == {"Foo", "Bar"} diff --git a/src/bonsai/test/tool/test_qto.py b/src/bonsai/test/tool/test_qto.py index 2b06cbb3c9..9ec7dc4efd 100644 --- a/src/bonsai/test/tool/test_qto.py +++ b/src/bonsai/test/tool/test_qto.py @@ -25,11 +25,12 @@ import ifcopenshell.api.pset import ifcopenshell.api.root import ifcopenshell.api.unit import ifcopenshell.util.pset -import test.bim.bootstrap -import bonsai.core.tool -import bonsai.core.root -import bonsai.tool as tool + import bonsai.bim.import_ifc as import_ifc +import bonsai.core.root +import bonsai.core.tool +import bonsai.tool as tool +import test.bim.bootstrap from bonsai.tool.qto import Qto as subject diff --git a/src/bonsai/test/tool/test_root.py b/src/bonsai/test/tool/test_root.py index b27b556a03..39b853d63c 100644 --- a/src/bonsai/test/tool/test_root.py +++ b/src/bonsai/test/tool/test_root.py @@ -22,10 +22,11 @@ import ifcopenshell.api import ifcopenshell.api.feature import ifcopenshell.api.type import ifcopenshell.util.element + import bonsai.core.tool import bonsai.tool as tool -from test.bim.bootstrap import NewFile from bonsai.tool.root import Root as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_sequence.py b/src/bonsai/test/tool/test_sequence.py index 7dab2671b9..af915f0273 100644 --- a/src/bonsai/test/tool/test_sequence.py +++ b/src/bonsai/test/tool/test_sequence.py @@ -17,15 +17,17 @@ # along with Bonsai. If not, see . import os + import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.pset import ifcopenshell.api.root + import bonsai.core.tool import bonsai.tool as tool -from test.bim.bootstrap import NewFile from bonsai.tool.sequence import Sequence as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_spatial.py b/src/bonsai/test/tool/test_spatial.py index fd9316912a..005f370b01 100644 --- a/src/bonsai/test/tool/test_spatial.py +++ b/src/bonsai/test/tool/test_spatial.py @@ -16,17 +16,18 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . -import numpy as np import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.root import ifcopenshell.api.spatial +import numpy as np +from mathutils import Matrix + import bonsai.core.tool import bonsai.tool as tool from bonsai.tool.spatial import Spatial as subject from test.bim.bootstrap import NewFile -from mathutils import Matrix class TestImplementsTool(NewFile): @@ -42,9 +43,7 @@ class TestCanContain(NewFile): structure_obj = bpy.data.objects.new("Object", None) tool.Ifc.link(structure, structure_obj) element = ifc.createIfcWall() - element_obj = bpy.data.objects.new("Object", None) - tool.Ifc.link(element, element_obj) - assert subject.can_contain(structure, element_obj) is True + assert subject.can_contain(structure, element) is True def test_a_spatial_structure_element_can_contain_an_element_ifc2x3(self): ifc = ifcopenshell.file(schema="IFC2X3") @@ -53,9 +52,7 @@ class TestCanContain(NewFile): structure_obj = bpy.data.objects.new("Object", None) tool.Ifc.link(structure, structure_obj) element = ifc.createIfcWall() - element_obj = bpy.data.objects.new("Object", None) - tool.Ifc.link(element, element_obj) - assert subject.can_contain(structure, element_obj) is True + assert subject.can_contain(structure, element) is True def test_a_spatial_zone_element_cannot_contain_an_element(self): ifc = ifcopenshell.file() @@ -64,14 +61,7 @@ class TestCanContain(NewFile): structure_obj = bpy.data.objects.new("Object", None) tool.Ifc.link(structure, structure_obj) element = ifc.createIfcWall() - element_obj = bpy.data.objects.new("Object", None) - tool.Ifc.link(element, element_obj) - assert subject.can_contain(structure, element_obj) is False - - def test_unlinked_elements_cannot_contain_anything(self): - structure_obj = bpy.data.objects.new("Object", None) - element_obj = bpy.data.objects.new("Object", None) - assert subject.can_contain(structure_obj, element_obj) is False + assert subject.can_contain(structure, element) is False def test_a_non_spatial_element_cannot_contain_anything(self): ifc = ifcopenshell.file() @@ -80,9 +70,7 @@ class TestCanContain(NewFile): structure_obj = bpy.data.objects.new("Object", None) tool.Ifc.link(structure, structure_obj) element = ifc.createIfcWall() - element_obj = bpy.data.objects.new("Object", None) - tool.Ifc.link(element, element_obj) - assert subject.can_contain(structure, element_obj) is False + assert subject.can_contain(structure, element) is False def test_a_non_element_cannot_be_contained(self): ifc = ifcopenshell.file() @@ -91,9 +79,7 @@ class TestCanContain(NewFile): structure_obj = bpy.data.objects.new("Object", None) tool.Ifc.link(structure, structure_obj) element = ifc.createIfcTask() - element_obj = bpy.data.objects.new("Object", None) - tool.Ifc.link(element, element_obj) - assert subject.can_contain(structure, element_obj) is False + assert subject.can_contain(structure, element) is False def test_other_non_elements_that_have_a_contained_in_structure_attribute_can_be_contained(self): ifc = ifcopenshell.file() @@ -102,9 +88,7 @@ class TestCanContain(NewFile): structure_obj = bpy.data.objects.new("Object", None) tool.Ifc.link(structure, structure_obj) element = ifc.createIfcGrid() - element_obj = bpy.data.objects.new("Object", None) - tool.Ifc.link(element, element_obj) - assert subject.can_contain(structure, element_obj) is True + assert subject.can_contain(structure, element) is True class TestCanReference(NewFile): diff --git a/src/bonsai/test/tool/test_style.py b/src/bonsai/test/tool/test_style.py index 23c70461ee..743ac317ec 100644 --- a/src/bonsai/test/tool/test_style.py +++ b/src/bonsai/test/tool/test_style.py @@ -17,17 +17,19 @@ # along with Bonsai. If not, see . import os + import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.root import ifcopenshell.util.representation import pytest +from ifcopenshell.util.shape_builder import ShapeBuilder + import bonsai.core.tool import bonsai.tool as tool -from test.bim.bootstrap import NewFile from bonsai.tool.style import Style as subject -from ifcopenshell.util.shape_builder import ShapeBuilder +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_surveyor.py b/src/bonsai/test/tool/test_surveyor.py index 0228cd9271..782b171a6d 100644 --- a/src/bonsai/test/tool/test_surveyor.py +++ b/src/bonsai/test/tool/test_surveyor.py @@ -17,16 +17,16 @@ # along with Bonsai. If not, see . import bpy -import numpy as np import ifcopenshell import ifcopenshell.api import ifcopenshell.api.root import ifcopenshell.api.unit import ifcopenshell.util.geolocation +import numpy as np -import test.bim.bootstrap import bonsai.core.tool import bonsai.tool as tool +import test.bim.bootstrap from bonsai.tool import Surveyor as subject diff --git a/src/bonsai/test/tool/test_system.py b/src/bonsai/test/tool/test_system.py index de8e9026b0..3067ccfa09 100644 --- a/src/bonsai/test/tool/test_system.py +++ b/src/bonsai/test/tool/test_system.py @@ -16,19 +16,21 @@ # You should have received a copy of the GNU General Public License # along with Bonsai. If not, see . +from math import pi + import bpy import ifcopenshell import ifcopenshell.api import ifcopenshell.api.root import ifcopenshell.api.system import ifcopenshell.util.unit +import numpy as np +from mathutils import Euler, Matrix, Vector + import bonsai.core.tool import bonsai.tool as tool -import numpy as np -from test.bim.bootstrap import NewFile from bonsai.tool.system import System as subject -from mathutils import Euler, Vector, Matrix -from math import pi +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): @@ -104,6 +106,20 @@ class TestCreateEmptyAtCursorWithElementOrientation(NewFile): assert obj.matrix_world == bpy.context.scene.cursor.matrix +class TestCreatePortAtCursor(NewFile): + def test_run(self): + assert bpy.context.scene + ifc = ifcopenshell.file() + tool.Ifc().set(ifc) + system = ifcopenshell.api.system.add_system(ifc) + element = ifcopenshell.api.root.create_entity(ifc, ifc_class="IfcDuctSegment") + ifcopenshell.api.system.assign_system(ifc, products=[element], system=system) + obj = tool.Ifc.link(element, bpy.data.objects.new("Object", None)) + port = subject.create_port_at_cursor(element) + assert port.is_a("IfcDistributionPort") + assert ifcopenshell.util.system.get_ports(element) == [port] + + class TestDeleteElementObjects(NewFile): def test_run(self): ifc = ifcopenshell.file() diff --git a/src/bonsai/test/tool/test_type.py b/src/bonsai/test/tool/test_type.py index 5bbf3c4c42..0d91b1f4f0 100644 --- a/src/bonsai/test/tool/test_type.py +++ b/src/bonsai/test/tool/test_type.py @@ -20,10 +20,11 @@ import bpy import ifcopenshell import ifcopenshell.api.root import ifcopenshell.api.type + import bonsai.core.tool import bonsai.tool as tool -from test.bim.bootstrap import NewFile from bonsai.tool.type import Type as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): diff --git a/src/bonsai/test/tool/test_unit.py b/src/bonsai/test/tool/test_unit.py index 212c72a559..392650da71 100644 --- a/src/bonsai/test/tool/test_unit.py +++ b/src/bonsai/test/tool/test_unit.py @@ -21,10 +21,11 @@ import ifcopenshell import ifcopenshell.api.project import ifcopenshell.api.root import ifcopenshell.api.unit + import bonsai.core.tool import bonsai.tool as tool -from test.bim.bootstrap import NewFile from bonsai.tool.unit import Unit as subject +from test.bim.bootstrap import NewFile class TestImplementsTool(NewFile): @@ -32,6 +33,17 @@ class TestImplementsTool(NewFile): assert isinstance(subject(), bonsai.core.tool.Unit) +class TestParseDistanceString(NewFile): + def test_run(self): + assert subject.parse_distance_string("5m") == (True, 5.0) + assert subject.parse_distance_string("30cm") == (True, 0.3) + assert subject.parse_distance_string("10ft") == (True, 3.048) + assert subject.parse_distance_string("12in") == (True, 0.3048) + assert subject.parse_distance_string("5'6\"") == (True, 1.6764) + assert subject.parse_distance_string("-5'6\"") == (True, -1.6764) + assert subject.parse_distance_string("invalid") == (False, 0.0) + + class TestClearActiveUnit(NewFile): def test_run(self): props = tool.Unit.get_unit_props() @@ -130,37 +142,70 @@ class TestGetSceneUnitName(NewFile): assert subject.get_scene_unit_name("AREAUNIT") == "square foot" assert subject.get_scene_unit_name("VOLUMEUNIT") == "cubic inch" + def test_getting_an_si_name(self): + props = tool.Blender.get_bim_props() + bpy.context.scene.unit_settings.system = "METRIC" + bpy.context.scene.unit_settings.length_unit = "METERS" + props.area_unit = "SQUARE_METRE" + props.volume_unit = "CUBIC_METRE" + assert subject.get_scene_unit_name("LENGTHUNIT") == "METRE" + assert subject.get_scene_unit_name("AREAUNIT") == "SQUARE_METRE" + assert subject.get_scene_unit_name("VOLUMEUNIT") == "CUBIC_METRE" + bpy.context.scene.unit_settings.length_unit = "MILLIMETERS" + assert subject.get_scene_unit_name("LENGTHUNIT") == "MILLI/METRE" + bpy.context.scene.unit_settings.length_unit = "ADAPTIVE" + assert subject.get_scene_unit_name("LENGTHUNIT") == "METRE" + def test_getting_a_name_with_no_unit_system(self): assert bpy.context.scene bpy.context.scene.unit_settings.system = "NONE" - assert subject.get_scene_unit_name("LENGTHUNIT") == "foot" + assert subject.get_scene_unit_name("LENGTHUNIT") == "METRE" + bpy.context.scene.unit_settings.length_unit = "ADAPTIVE" + assert subject.get_scene_unit_name("LENGTHUNIT") == "METRE" + assert subject.get_scene_unit_name("AREAUNIT") == "SQUARE_METRE" + assert subject.get_scene_unit_name("VOLUMEUNIT") == "CUBIC_METRE" + + def test_getting_mass_unit_names(self): + """Test getting mass unit names for different systems""" + assert bpy.context.scene + props = tool.Blender.get_bim_props() + props.mass_unit = "GRAM" + assert subject.get_scene_unit_name("MASSUNIT") == "GRAM" + props.mass_unit = "KILO/GRAM" + assert subject.get_scene_unit_name("MASSUNIT") == "KILO/GRAM" + props.mass_unit = "MEGA/GRAM" + assert subject.get_scene_unit_name("MASSUNIT") == "MEGA/GRAM" + props.mass_unit = "pound" + assert subject.get_scene_unit_name("MASSUNIT") == "pound" + props.mass_unit = "ounce" + assert subject.get_scene_unit_name("MASSUNIT") == "ounce" + + def test_getting_time_unit_names(self): + """Test getting time unit names for different systems""" + assert bpy.context.scene + props = tool.Blender.get_bim_props() + + props.time_unit = "SECOND" + assert subject.get_scene_unit_name("TIMEUNIT") == "SECOND" + props.time_unit = "minute" + assert subject.get_scene_unit_name("TIMEUNIT") == "minute" + props.time_unit = "NONE" + assert not subject.get_scene_unit_name("TIMEUNIT") class TestGetSceneUnitSIPrefix: def test_run(self): assert bpy.context.scene - bpy.context.scene.unit_settings.system = "METRIC" - bpy.context.scene.unit_settings.length_unit = "METERS" - assert subject.get_scene_unit_si_prefix("LENGTHUNIT") is None - bpy.context.scene.unit_settings.length_unit = "MICROMETERS" - assert subject.get_scene_unit_si_prefix("LENGTHUNIT") == "MICRO" - bpy.context.scene.unit_settings.length_unit = "MILLIMETERS" - assert subject.get_scene_unit_si_prefix("LENGTHUNIT") == "MILLI" - bpy.context.scene.unit_settings.length_unit = "CENTIMETERS" - assert subject.get_scene_unit_si_prefix("LENGTHUNIT") == "CENTI" - bpy.context.scene.unit_settings.length_unit = "KILOMETERS" - assert subject.get_scene_unit_si_prefix("LENGTHUNIT") == "KILO" - bpy.context.scene.unit_settings.length_unit = "ADAPTIVE" - assert subject.get_scene_unit_si_prefix("LENGTHUNIT") is None - props = tool.Blender.get_bim_props() - props.area_unit = "SQUARE_METRE" - assert subject.get_scene_unit_si_prefix("AREAUNIT") is None - props.area_unit = "MILLI/SQUARE_METRE" - assert subject.get_scene_unit_si_prefix("AREAUNIT") == "MILLI" - props.volume_unit = "CUBIC_METRE" - assert subject.get_scene_unit_si_prefix("VOLUMEUNIT") is None - props.volume_unit = "MILLI/CUBIC_METRE" - assert subject.get_scene_unit_si_prefix("VOLUMEUNIT") == "MILLI" + assert subject.get_scene_unit_si_prefix("METRE") is None + assert subject.get_scene_unit_si_prefix("MICRO/METRE") == "MICRO" + assert subject.get_scene_unit_si_prefix("SQUARE_METRE") is None + assert subject.get_scene_unit_si_prefix("MILLI/SQUARE_METRE") == "MILLI" + assert subject.get_scene_unit_si_prefix("foot") is None + + def test_mass_and_time_unit_prefixes(self): + assert subject.get_scene_unit_si_prefix("KILO/GRAM") == "KILO" + assert subject.get_scene_unit_si_prefix("MEGA/GRAM") == "MEGA" + assert subject.get_scene_unit_si_prefix("GRAM") is None class TestImportUnitAttributes(NewFile): @@ -298,17 +343,95 @@ class TestImportUnits(NewFile): assert props.units[5].unit_type == unit6.UnitType assert props.units[5].ifc_class == unit6.is_a() + def test_importing_mass_and_time_units(self): + """Test importing mass and time conversion based units""" + ifc = ifcopenshell.api.project.create_file() + tool.Ifc.set(ifc) -class TestIsSceneUnitMetric(NewFile): - def test_run(self): - assert bpy.context.scene - props = bpy.context.scene.unit_settings - props.system = "METRIC" - assert subject.is_scene_unit_metric() is True - props.system = "IMPERIAL" - assert subject.is_scene_unit_metric() is False - props.system = "NONE" - assert subject.is_scene_unit_metric() is True + tonne_unit = ifcopenshell.api.unit.add_conversion_based_unit(ifc, name="tonne") + pound_unit = ifcopenshell.api.unit.add_conversion_based_unit(ifc, name="pound") + ounce_unit = ifcopenshell.api.unit.add_conversion_based_unit(ifc, name="ounce") + + minute_unit = ifcopenshell.api.unit.add_conversion_based_unit(ifc, name="minute") + hour_unit = ifcopenshell.api.unit.add_conversion_based_unit(ifc, name="hour") + day_unit = ifcopenshell.api.unit.add_conversion_based_unit(ifc, name="day") + + kg_unit = ifcopenshell.api.unit.add_si_unit(ifc, unit_type="MASSUNIT", prefix="KILO") + gram_unit = ifcopenshell.api.unit.add_si_unit(ifc, unit_type="MASSUNIT") + second_unit = ifcopenshell.api.unit.add_si_unit(ifc, unit_type="TIMEUNIT") + + ifcopenshell.api.root.create_entity(ifc, ifc_class="IfcProject") + ifcopenshell.api.unit.assign_unit(ifc, units=[tonne_unit, minute_unit, kg_unit]) + + subject.import_units() + props = tool.Unit.get_unit_props() + + assert len(props.units) == 15 + + unit_ids = [u.ifc_definition_id for u in props.units] + assert tonne_unit.id() in unit_ids + assert pound_unit.id() in unit_ids + assert ounce_unit.id() in unit_ids + assert minute_unit.id() in unit_ids + assert hour_unit.id() in unit_ids + assert day_unit.id() in unit_ids + assert kg_unit.id() in unit_ids + assert gram_unit.id() in unit_ids + assert second_unit.id() in unit_ids + + tonne_prop = next(u for u in props.units if u.ifc_definition_id == tonne_unit.id()) + assert tonne_prop.name == "tonne" + assert tonne_prop.unit_type == "MASSUNIT" + assert tonne_prop.is_assigned is True + assert tonne_prop.ifc_class == "IfcConversionBasedUnit" + + pound_prop = next(u for u in props.units if u.ifc_definition_id == pound_unit.id()) + assert pound_prop.name == "pound" + assert pound_prop.unit_type == "MASSUNIT" + assert pound_prop.is_assigned is False + assert pound_prop.ifc_class == "IfcConversionBasedUnit" + + ounce_prop = next(u for u in props.units if u.ifc_definition_id == ounce_unit.id()) + assert ounce_prop.name == "ounce" + assert ounce_prop.unit_type == "MASSUNIT" + assert ounce_prop.is_assigned is False + assert ounce_prop.ifc_class == "IfcConversionBasedUnit" + + kg_prop = next(u for u in props.units if u.ifc_definition_id == kg_unit.id()) + assert kg_prop.name == "KILOGRAM" + assert kg_prop.unit_type == "MASSUNIT" + assert kg_prop.is_assigned is True + assert kg_prop.ifc_class == "IfcSIUnit" + + gram_prop = next(u for u in props.units if u.ifc_definition_id == gram_unit.id()) + assert gram_prop.name == "GRAM" + assert gram_prop.unit_type == "MASSUNIT" + assert gram_prop.is_assigned is False + assert gram_prop.ifc_class == "IfcSIUnit" + + minute_prop = next(u for u in props.units if u.ifc_definition_id == minute_unit.id()) + assert minute_prop.name == "minute" + assert minute_prop.unit_type == "TIMEUNIT" + assert minute_prop.is_assigned is True + assert minute_prop.ifc_class == "IfcConversionBasedUnit" + + hour_prop = next(u for u in props.units if u.ifc_definition_id == hour_unit.id()) + assert hour_prop.name == "hour" + assert hour_prop.unit_type == "TIMEUNIT" + assert hour_prop.is_assigned is False + assert hour_prop.ifc_class == "IfcConversionBasedUnit" + + day_prop = next(u for u in props.units if u.ifc_definition_id == day_unit.id()) + assert day_prop.name == "day" + assert day_prop.unit_type == "TIMEUNIT" + assert day_prop.is_assigned is False + assert day_prop.ifc_class == "IfcConversionBasedUnit" + + second_prop = next(u for u in props.units if u.ifc_definition_id == second_unit.id()) + assert second_prop.name == "SECOND" + assert second_prop.unit_type == "TIMEUNIT" + assert second_prop.is_assigned is False + assert second_prop.ifc_class == "IfcSIUnit" class TestIsUnitClass: diff --git a/src/bsdd/bsdd.py b/src/bsdd/bsdd.py index 9a24d1dd1e..fbc14cc393 100644 --- a/src/bsdd/bsdd.py +++ b/src/bsdd/bsdd.py @@ -17,15 +17,15 @@ # along with bSDD. If not, see . from __future__ import annotations -import uuid +import http.server import time import urllib.parse -import requests +import uuid import webbrowser -import http.server -from typing import TypedDict, Literal, Optional, TYPE_CHECKING, Any -from typing_extensions import NotRequired +from typing import TYPE_CHECKING, Any, Literal, Optional, TypedDict +import requests +from typing_extensions import NotRequired if TYPE_CHECKING: import ifcopenshell @@ -184,7 +184,79 @@ class ClassPropertyContractV1(TypedDict): qudtCodes: NotRequired[list[str]] -class PropertyContractV4(TypedDict): +class ClassRelationItemContractV1(TypedDict): + relationType: str + classUri: str + className: NotRequired[str] + fraction: NotRequired[float] + dictionaryUri: NotRequired[str] + + +class ClassRelationsContractV1(TypedDict): + totalCount: NotRequired[int] + offset: NotRequired[int] + count: NotRequired[int] + classUri: NotRequired[str] + areReversedRelations: NotRequired[bool] + classRelations: NotRequired[list[ClassRelationItemContractV1]] + + +class ClassPropertiesContractV1(TypedDict): + classUri: NotRequired[str] + totalCount: NotRequired[int] + offset: NotRequired[int] + count: NotRequired[int] + classProperties: list[ClassPropertyContractV1] + + +class ClassPropertyItemContractV1(TypedDict): + name: str + propertySet: str + uri: str + description: NotRequired[str] + definition: NotRequired[str] + dataType: NotRequired[str] + dimension: NotRequired[str] + dimensionLength: NotRequired[int] + dimensionMass: NotRequired[int] + dimensionTime: NotRequired[int] + dimensionElectricCurrent: NotRequired[int] + dimensionThermodynamicTemperature: NotRequired[int] + dimensionAmountOfSubstance: NotRequired[int] + dimensionLuminousIntensity: NotRequired[int] + dynamicParameterPropertyCodes: NotRequired[list[str]] + example: NotRequired[str] + isDynamic: NotRequired[bool] + isRequired: NotRequired[bool] + isWritable: NotRequired[bool] + maxExclusive: NotRequired[float] + maxInclusive: NotRequired[float] + minExclusive: NotRequired[float] + minInclusive: NotRequired[float] + pattern: NotRequired[str] + physicalQuantity: NotRequired[str] + allowedValues: NotRequired[list[ClassPropertyValueItemContractV1]] + predefinedValue: NotRequired[str] + propertyCode: NotRequired[str] + propertyDictionaryName: NotRequired[str] + propertyDictionaryUri: NotRequired[str] + propertyUri: NotRequired[str] + propertyStatus: NotRequired[str] + propertyValueKind: NotRequired[str] + symbol: NotRequired[str] + units: NotRequired[list[str]] + qudtCodes: NotRequired[list[str]] + + +class ClassPropertyValueItemContractV1(TypedDict): + uri: NotRequired[str] + code: NotRequired[str] + value: str + description: NotRequired[str] + sortNumber: NotRequired[int] + + +class PropertyContractV5(TypedDict): dictionaryUri: NotRequired[str] activationDateUtc: str code: str @@ -710,16 +782,64 @@ class Client: params = {k: v for k, v in params.items() if v is not None} return self.get(endpoint, params) - def get_property(self, uri, include_classes=False, language_code="", version: int = 4) -> PropertyContractV4: + def get_class_relations( + self, + class_uri: str, + get_reverse_relations: bool = False, + search_text: str = "", + offset: int = 0, + limit: int = 1000, + language_code: str = "", + version=1, + ) -> ClassRelationsContractV1: """ - Get Property Detail - this API replaces Property + Get class relations or reverse relations (paginated) """ + endpoint = f"Class/Relations/v{version}" + params = { + "ClassUri": class_uri, + "GetReverseRelations": get_reverse_relations, + "SearchText": search_text, + "Offset": offset, + "Limit": limit, + "languageCode": language_code, + } + return self.get(endpoint, params) + def get_class_properties( + self, + class_uri: str, + property_set: str = "", + property_code: str = "", + search_text: str = "", + offset: int = 0, + limit: int = 1000, + language_code: str = "", + version=1, + ) -> ClassPropertiesContractV1: + """ + Get class properties (paginated) + """ + endpoint = f"Class/Properties/v{version}" + params = { + "ClassUri": class_uri, + "PropertySet": property_set, + "PropertyCode": property_code, + "SearchText": search_text, + "Offset": offset, + "Limit": limit, + "languageCode": language_code, + } + return self.get(endpoint, params) + + def get_property(self, uri, language_code="", version: int = 5) -> PropertyContractV5: + """ + Get Property details. + If you also need the list of classes using the property, then use api/Property/Classes + """ endpoint = f"Property/v{version}" params = { "uri": uri, - "includeClasses": include_classes, "LanguageCode": language_code, } return self.get(endpoint, params) @@ -864,7 +984,6 @@ class Client: def apply_ifc_classification_properties( ifc_file: ifcopenshell.file, element: ifcopenshell.entity_instance, classificationProperties: dict[str, Any] ) -> None: - import ifcopenshell.api import ifcopenshell.api.pset import ifcopenshell.util.element diff --git a/src/bsdd/bsdd_json.py b/src/bsdd/bsdd_json.py index e5f15878ea..becaac810b 100644 --- a/src/bsdd/bsdd_json.py +++ b/src/bsdd/bsdd_json.py @@ -1,12 +1,13 @@ from __future__ import annotations -from pydantic import BaseModel -from .type_hints import * -from typing import Optional, Literal -from datetime import datetime -from pydantic import BaseModel, Field, PrivateAttr, model_validator, ConfigDict import json import weakref +from datetime import datetime +from typing import Literal, Optional + +from pydantic import BaseModel, ConfigDict, Field, PrivateAttr, model_validator + +from .type_hints import * def _lower_first(s: str) -> str: diff --git a/src/bsdd/pyproject.toml b/src/bsdd/pyproject.toml index 2704dc673e..17fa72f37a 100644 --- a/src/bsdd/pyproject.toml +++ b/src/bsdd/pyproject.toml @@ -10,15 +10,16 @@ authors = [ ] description = "Library to interact with the buildingSMART Data Dictionary" readme = "README.md" -requires-python = ">=3.9" +requires-python = ">=3.10" keywords = ["IFC", "bSDD", "BIM"] classifiers = [ "Development Status :: 4 - Beta", "Programming Language :: Python", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)", @@ -26,6 +27,7 @@ classifiers = [ dependencies = [ "requests", "typing-extensions", + "pydantic", ] [project.optional-dependencies] @@ -41,3 +43,9 @@ Issues = "https://github.com/IfcOpenShell/IfcOpenShell/issues" [tool.setuptools] py-modules = ["bsdd","bsdd_json","type_hints"] + +[tool.ruff] +extend = "../../pyproject.toml" +lint.select = [ + "F401", # unused imports +] diff --git a/src/bsdd/tests/test_bsdd.py b/src/bsdd/tests/test_bsdd.py index aea17b9eb9..9dab01025c 100644 --- a/src/bsdd/tests/test_bsdd.py +++ b/src/bsdd/tests/test_bsdd.py @@ -37,6 +37,22 @@ def test_get_class(): ] +def test_get_class_relations(): + uri_light_fixture = next(l for l in get_ifc_classes()["classes"] if "IfcLightFixture" == l["code"])["uri"] + ifc4x3_light_fixture_relations = client.get_class_properties(uri_light_fixture, True) + assert "Electrical unit for light-line system" and "Tubelight system" in [ + r["className"] for r in ifc4x3_light_fixture_relations["classRelations"] + ] + + +def test_get_class_properties(): + uri_light_fixture = next(l for l in get_ifc_classes()["classes"] if "IfcLightFixture" == l["code"])["uri"] + ifc4x3_light_fixture_properties = client.get_class_properties(uri_light_fixture) + assert "Maintenance Factor" and "Light Fixture Mounting Type" in [ + l["name"] for l in ifc4x3_light_fixture_properties["classProperties"] + ] + + def test_search_class(): ss_heat_pump_sys = client.search_class("Ss_60_40_36", [nbs_uri]) li = [l + "source heat pump systems" for l in ["Air ", "Ground ", "Water "]] diff --git a/src/bsdd/type_hints.py b/src/bsdd/type_hints.py index ac9aa29923..6f825cdd80 100644 --- a/src/bsdd/type_hints.py +++ b/src/bsdd/type_hints.py @@ -1,7 +1,4 @@ -from typing import Literal, Annotated -from datetime import datetime -from pydantic import BeforeValidator - +from typing import Literal COUNTRY_CODE = Literal[ "AF", diff --git a/src/bsdd/yml_to_classes.py b/src/bsdd/yml_to_classes.py index ba53917051..981d3c4439 100644 --- a/src/bsdd/yml_to_classes.py +++ b/src/bsdd/yml_to_classes.py @@ -1,8 +1,8 @@ -import yaml import sys from pathlib import Path from typing import Any +import yaml type_to_python_type = { "string": "str", diff --git a/src/examples/CMakeLists.txt b/src/examples/CMakeLists.txt index ae5fc1aa11..79a2399821 100644 --- a/src/examples/CMakeLists.txt +++ b/src/examples/CMakeLists.txt @@ -17,31 +17,59 @@ # # ################################################################################ -if(SCHEMA_VERSIONS MATCHES "2x3") -ADD_EXECUTABLE(IfcParseExamples IfcParseExamples.cpp) -TARGET_LINK_LIBRARIES(IfcParseExamples IfcParse) -set_target_properties(IfcParseExamples PROPERTIES FOLDER Examples) -target_compile_features(IfcParseExamples PUBLIC cxx_std_17) - -if (WITH_OPENCASCADE) - -ADD_EXECUTABLE(IfcOpenHouse IfcOpenHouse.cpp) -TARGET_LINK_LIBRARIES(IfcOpenHouse ${IFCOPENSHELL_LIBRARIES} ${OPENCASCADE_LIBRARIES}) -set_target_properties(IfcOpenHouse PROPERTIES FOLDER Examples) - -ADD_EXECUTABLE(IfcAdvancedHouse IfcAdvancedHouse.cpp) -TARGET_LINK_LIBRARIES(IfcAdvancedHouse ${IFCOPENSHELL_LIBRARIES} ${OPENCASCADE_LIBRARIES}) -set_target_properties(IfcAdvancedHouse PROPERTIES FOLDER Examples) - +# Thils file can also be build standalone, outside of the IfcOpenShell build tree, +# to demonstrate the usage IfcOpenShell as a cmake package. +if(NOT BUILD_EXAMPLES) + set(STANDALONE_PROJECT ON) endif() -endif(SCHEMA_VERSIONS MATCHES "2x3") -if(SCHEMA_VERSIONS MATCHES "4x3_add2") - ADD_EXECUTABLE(IfcAlignment IfcAlignment.cpp) - TARGET_LINK_LIBRARIES(IfcAlignment ${IFCOPENSHELL_LIBRARIES}) - set_target_properties(IfcAlignment PROPERTIES FOLDER Examples) +if(STANDALONE_PROJECT) + cmake_minimum_required(VERSION 3.21) + project(IfcOpenShellExamples) - ADD_EXECUTABLE(IfcSimplifiedAlignment IfcSimplifiedAlignment.cpp) - TARGET_LINK_LIBRARIES(IfcSimplifiedAlignment ${IFCOPENSHELL_LIBRARIES}) - set_target_properties(IfcSimplifiedAlignment PROPERTIES FOLDER Examples) + set(CMAKE_CXX_STANDARD 17) + find_package(IfcOpenShell CONFIG REQUIRED) + set(SCHEMA_VERSIONS ${IFCOPENSHELL_SCHEMA_VERSIONS}) + set(WITH_OPENCASCADE ${IFCOPENSHELL_WITH_OPENCASCADE}) +else() + include_directories("${CMAKE_SOURCE_DIR}/../src") +endif() + +macro(build_example exe_name) + set (additional_targets ${ARGN}) + add_executable(${exe_name} ${exe_name}.cpp) + + if(STANDALONE_PROJECT) + target_link_libraries(${exe_name} IfcOpenShell::IfcParse $<$:IfcOpenShell::${additional_targets}>) + else() + target_include_directories(${exe_name} PRIVATE "${CMAKE_SOURCE_DIR}/../src") + target_link_libraries(${exe_name} IfcParse ${additional_targets}) + set_target_properties(${exe_name} PROPERTIES FOLDER Examples) + endif() + install(TARGETS ${exe_name}) +endmacro() + +if("4" IN_LIST SCHEMA_VERSIONS) + build_example(arbitrary_open_profile_def) + build_example(triangulated_faceset) +endif() + +if("2x3" IN_LIST SCHEMA_VERSIONS) + build_example(composite_profile_def) + build_example(csg_primitive) + build_example(ellipse_pies) + build_example(faces) + build_example(ifc_curve_rebar) + build_example(profiles) + build_example(IfcParseExamples) + + if(WITH_OPENCASCADE) + build_example(IfcOpenHouse geometry_serializer) + build_example(IfcAdvancedHouse geometry_serializer) + endif() +endif() + +if("4x3_add2" IN_LIST SCHEMA_VERSIONS) + build_example(IfcAlignment) + build_example(IfcSimplifiedAlignment) endif() diff --git a/src/examples/IfcAdvancedHouse.cpp b/src/examples/IfcAdvancedHouse.cpp index ad238a22fd..9b680bd79b 100644 --- a/src/examples/IfcAdvancedHouse.cpp +++ b/src/examples/IfcAdvancedHouse.cpp @@ -39,12 +39,12 @@ #include #define IfcSchema Ifc2x3 -#include "../ifcparse/macros.h" -#include "../ifcparse/Ifc2x3.h" -#include "../ifcparse/IfcBaseClass.h" -#include "../ifcparse/IfcHierarchyHelper.h" +#include "ifcparse/macros.h" +#include "ifcparse/Ifc2x3.h" +#include "ifcparse/IfcBaseClass.h" +#include "ifcparse/IfcHierarchyHelper.h" -#include "../ifcgeom/Serialization/Serialization.h" +#include "ifcgeom/Serialization/Serialization.h" #if USE_VLD #include diff --git a/src/examples/IfcAlignment.cpp b/src/examples/IfcAlignment.cpp index 450bb8e5cb..491aef1e79 100644 --- a/src/examples/IfcAlignment.cpp +++ b/src/examples/IfcAlignment.cpp @@ -30,8 +30,8 @@ // Disable warnings coming from IfcOpenShell #pragma warning(disable : 4018 4267 4250 4984 4985) -#include "../ifcparse/Ifc4x3_add2.h" -#include "../ifcparse/IfcHierarchyHelper.h" +#include "ifcparse/Ifc4x3_add2.h" +#include "ifcparse/IfcHierarchyHelper.h" #include #include @@ -489,6 +489,6 @@ int main() { } // That's it - save the model to a file - std::ofstream ofs("FHWA_Bridge_Geometry_Alignment_Example.ifc"); + std::ofstream ofs("IfcAlignment.ifc"); ofs << file; } diff --git a/src/examples/IfcOpenHouse.cpp b/src/examples/IfcOpenHouse.cpp index accac737fb..24654adca7 100644 --- a/src/examples/IfcOpenHouse.cpp +++ b/src/examples/IfcOpenHouse.cpp @@ -36,12 +36,12 @@ #include #define IfcSchema Ifc2x3 -#include "../ifcparse/macros.h" -#include "../ifcparse/Ifc2x3.h" -#include "../ifcparse/IfcBaseClass.h" -#include "../ifcparse/IfcHierarchyHelper.h" +#include "ifcparse/macros.h" +#include "ifcparse/Ifc2x3.h" +#include "ifcparse/IfcBaseClass.h" +#include "ifcparse/IfcHierarchyHelper.h" -#include "../ifcgeom/Serialization/Serialization.h" +#include "ifcgeom/Serialization/Serialization.h" #if USE_VLD #include diff --git a/src/examples/IfcParseExamples.cpp b/src/examples/IfcParseExamples.cpp index dcd3654d83..e8ad950919 100644 --- a/src/examples/IfcParseExamples.cpp +++ b/src/examples/IfcParseExamples.cpp @@ -20,9 +20,9 @@ // TODO: Multiple schemas #define IfcSchema Ifc2x3 -#include "../ifcparse/IfcFile.h" -#include "../ifcparse/IfcLogger.h" -#include "../ifcparse/Ifc2x3.h" +#include "ifcparse/IfcFile.h" +#include "ifcparse/IfcLogger.h" +#include "ifcparse/Ifc2x3.h" #include #include diff --git a/src/examples/IfcParseExamples_test.ifc b/src/examples/IfcParseExamples_test.ifc new file mode 100644 index 0000000000..9fec9e76b4 --- /dev/null +++ b/src/examples/IfcParseExamples_test.ifc @@ -0,0 +1,97 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition[DesignTransferView]'),'2;1'); +FILE_NAME('IfcParseExamples_test.ifc','2025-12-12T13:49:19+05:00',(''),(''),'IfcOpenShell 0.0.0','Bonsai 0.8.5-alpha251212-a47cbc3','Nobody'); +FILE_SCHEMA(('IFC2X3')); +ENDSEC; +DATA; +#1=IFCPERSON('HSeldon','Seldon','Hari',$,$,$,$,$); +#2=IFCORGANIZATION('APTR','Aperture Science',$,$,$); +#3=IFCPERSONANDORGANIZATION(#1,#2,$); +#4=IFCACTORROLE(.USERDEFINED.,'CONTRIBUTOR',$); +#5=IFCORGANIZATION('IfcOpenShell','IfcOpenShell','IfcOpenShell is an open source software library that helps users and software developers to work with IFC data.',(#4),(#6)); +#6=IFCTELECOMADDRESS(.USERDEFINED.,$,'WEBPAGE',$,$,$,$,'https://ifcopenshell.org'); +#7=IFCAPPLICATION(#5,'0.8.5','Bonsai','Bonsai-0.8.5'); +#8=IFCOWNERHISTORY(#3,#7,.READWRITE.,.ADDED.,1765520605,#3,#7,1765520605); +#9=IFCPROJECT('3GSSvm5SP5U96O5iar8uYb',#8,'My Project',$,$,$,$,(#22,#34),#17); +#10=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.); +#11=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); +#12=IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); +#13=IFCDIMENSIONALEXPONENTS(0,0,0,0,0,0,0); +#14=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); +#15=IFCMEASUREWITHUNIT(IFCREAL(0.0174532925199433),#14); +#16=IFCCONVERSIONBASEDUNIT(#13,.PLANEANGLEUNIT.,'degree',#15); +#17=IFCUNITASSIGNMENT((#12,#10,#16,#11)); +#18=IFCCARTESIANPOINT((0.,0.,0.)); +#19=IFCDIRECTION((0.,0.,1.)); +#20=IFCDIRECTION((1.,0.,0.)); +#21=IFCAXIS2PLACEMENT3D(#18,#19,#20); +#22=IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,1.E-05,#21,$); +#23=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#22,$,.MODEL_VIEW.,$); +#24=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Axis','Model',*,*,*,*,#22,$,.GRAPH_VIEW.,$); +#25=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Box','Model',*,*,*,*,#22,$,.MODEL_VIEW.,$); +#26=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Annotation','Model',*,*,*,*,#22,$,.SECTION_VIEW.,$); +#27=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Annotation','Model',*,*,*,*,#22,$,.ELEVATION_VIEW.,$); +#28=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Annotation','Model',*,*,*,*,#22,$,.MODEL_VIEW.,$); +#29=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Annotation','Model',*,*,*,*,#22,$,.PLAN_VIEW.,$); +#30=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Profile','Model',*,*,*,*,#22,$,.ELEVATION_VIEW.,$); +#31=IFCCARTESIANPOINT((0.,0.)); +#32=IFCDIRECTION((1.,0.)); +#33=IFCAXIS2PLACEMENT2D(#31,#32); +#34=IFCGEOMETRICREPRESENTATIONCONTEXT($,'Plan',2,1.E-05,#33,$); +#35=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Axis','Plan',*,*,*,*,#34,$,.GRAPH_VIEW.,$); +#36=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Plan',*,*,*,*,#34,$,.PLAN_VIEW.,$); +#37=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Annotation','Plan',*,*,*,*,#34,$,.PLAN_VIEW.,$); +#38=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Annotation','Plan',*,*,*,*,#34,$,.REFLECTED_PLAN_VIEW.,$); +#39=IFCOWNERHISTORY(#3,#7,.READWRITE.,.MODIFIED.,1765520605,#3,#7,1765520605); +#40=IFCSITE('2Ys4j4OOf3x9UYeALDJ_g3',#39,'My Site',$,$,#66,$,$,.ELEMENT.,$,$,$,$,$); +#46=IFCOWNERHISTORY(#3,#7,.READWRITE.,.MODIFIED.,1765520605,#3,#7,1765520605); +#47=IFCBUILDING('3e580MQFTCD9tCSaZWRPi9',#46,'My Building',$,$,#73,$,$,.ELEMENT.,$,$,$); +#53=IFCOWNERHISTORY(#3,#7,.READWRITE.,.MODIFIED.,1765520605,#3,#7,1765520605); +#54=IFCBUILDINGSTOREY('3XFkAr6KbAsP5wR3gxi3my',#53,'My Storey',$,$,#80,$,$,.ELEMENT.,$); +#60=IFCOWNERHISTORY(#3,#7,.READWRITE.,.ADDED.,1765520605,#3,#7,1765520605); +#61=IFCRELAGGREGATES('2OWfFyDQn0qP0Vd6NWGX7k',#60,$,$,#9,(#40)); +#62=IFCCARTESIANPOINT((0.,0.,0.)); +#63=IFCDIRECTION((0.,0.,1.)); +#64=IFCDIRECTION((1.,0.,0.)); +#65=IFCAXIS2PLACEMENT3D(#62,#63,#64); +#66=IFCLOCALPLACEMENT($,#65); +#67=IFCOWNERHISTORY(#3,#7,.READWRITE.,.ADDED.,1765520605,#3,#7,1765520605); +#68=IFCRELAGGREGATES('3_X_vfPpXDaO3NODBJgmSp',#67,$,$,#40,(#47)); +#69=IFCCARTESIANPOINT((0.,0.,0.)); +#70=IFCDIRECTION((0.,0.,1.)); +#71=IFCDIRECTION((1.,0.,0.)); +#72=IFCAXIS2PLACEMENT3D(#69,#70,#71); +#73=IFCLOCALPLACEMENT(#66,#72); +#74=IFCOWNERHISTORY(#3,#7,.READWRITE.,.ADDED.,1765520605,#3,#7,1765520605); +#75=IFCRELAGGREGATES('3ScF98CZD3pAa0SW$mhBHF',#74,$,$,#47,(#54)); +#76=IFCCARTESIANPOINT((0.,0.,0.)); +#77=IFCDIRECTION((0.,0.,1.)); +#78=IFCDIRECTION((1.,0.,0.)); +#79=IFCAXIS2PLACEMENT3D(#76,#77,#78); +#80=IFCLOCALPLACEMENT(#73,#79); +#110=IFCOWNERHISTORY(#3,#7,.READWRITE.,.MODIFIED.,1765529359,#3,#7,1765520632); +#111=IFCWALL('1lfiJzSCH1a8vjDuSLL4Ii',#110,'Cube',$,$,#203,$,$); +#112=IFCOWNERHISTORY(#3,#7,.READWRITE.,.MODIFIED.,1765520818,#3,#7,1765520632); +#113=IFCRELCONTAINEDINSPATIALSTRUCTURE('2Gqx6vP7jB4x_h65Tawn0f',#112,$,$,(#111,#182,#150),#54); +#149=IFCOWNERHISTORY(#3,#7,.READWRITE.,.MODIFIED.,1765529359,#3,#7,1765520810); +#150=IFCWINDOW('1eE0btB_54tBL59wLXKO1B',#149,'Cube',$,$,#208,$,$,$,$); +#181=IFCOWNERHISTORY(#3,#7,.READWRITE.,.MODIFIED.,1765529359,#3,#7,1765520818); +#182=IFCBUILDINGELEMENTPART('0fmaoBJgz0kPBavO$EJkPn',#181,'Cube',$,$,#198,$,$); +#194=IFCCARTESIANPOINT((-3.82147288322449,-0.987768530845642,1.78445267677307)); +#195=IFCDIRECTION((0.,0.,1.)); +#196=IFCDIRECTION((1.,0.,0.)); +#197=IFCAXIS2PLACEMENT3D(#194,#195,#196); +#198=IFCLOCALPLACEMENT(#80,#197); +#199=IFCCARTESIANPOINT((0.,0.,0.)); +#200=IFCDIRECTION((0.,0.,1.)); +#201=IFCDIRECTION((1.,0.,0.)); +#202=IFCAXIS2PLACEMENT3D(#199,#200,#201); +#203=IFCLOCALPLACEMENT(#80,#202); +#204=IFCCARTESIANPOINT((0.,4.25822639465332,0.)); +#205=IFCDIRECTION((0.,0.,1.)); +#206=IFCDIRECTION((1.,0.,0.)); +#207=IFCAXIS2PLACEMENT3D(#204,#205,#206); +#208=IFCLOCALPLACEMENT(#80,#207); +ENDSEC; +END-ISO-10303-21; diff --git a/src/examples/IfcSimplifiedAlignment.cpp b/src/examples/IfcSimplifiedAlignment.cpp index 4f4086f85d..1c88de4c29 100644 --- a/src/examples/IfcSimplifiedAlignment.cpp +++ b/src/examples/IfcSimplifiedAlignment.cpp @@ -30,8 +30,8 @@ // Disable warnings coming from IfcOpenShell #pragma warning(disable : 4018 4267 4250 4984 4985) -#include "../ifcparse/Ifc4x3_add2.h" -#include "../ifcparse/IfcAlignmentHelper.h" +#include "ifcparse/Ifc4x3_add2.h" +#include "ifcparse/IfcAlignmentHelper.h" #include @@ -159,6 +159,6 @@ int main() { } // That's it - save the model to a file - std::ofstream ofs("FHWA_Bridge_Geometry_Alignment_Example_Simplified.ifc"); + std::ofstream ofs("IfcSimplifiedAlignment.ifc"); ofs << file; } diff --git a/src/examples/README.md b/src/examples/README.md new file mode 100644 index 0000000000..e2eb238b23 --- /dev/null +++ b/src/examples/README.md @@ -0,0 +1,29 @@ + +Example of building examples outside of the IfcOpenShell build tree. + +```powershell +$IFCOPENSHELL_ROOT="L:\Projects\Github\IfcOpenShell" +$PREFIX_PATH="$IFCOPENSHELL_ROOT\_deps\boost_1_86_0\stage\vs2022-x64" +$PREFIX_PATH+=";$IFCOPENSHELL_ROOT\_installed-vs2022-x64" +$PREFIX_PATH+=";$IFCOPENSHELL_ROOT\_deps-vs2022-x64-installed\rocksdb" +$PREFIX_PATH+=";$IFCOPENSHELL_ROOT\_deps-vs2022-x64-installed\zstd" +$PREFIX_PATH+=";L:\Software\usr\libxml2" + +# + Support for IfcHouse and IfcAlignment examples. +$PREFIX_PATH+=";L:\Software\usr\eigen-3.3.9" +$PREFIX_PATH+=";L:\Projects\Github\IfcOpenShell\_deps-vs2022-x64-installed\cgal" +$PREFIX_PATH+=";L:\Projects\Github\IfcOpenShell\_deps-vs2022-x64-installed\mpir" +$PREFIX_PATH+=";L:\Projects\Github\IfcOpenShell\_deps-vs2022-x64-installed\mpfr" +$PREFIX_PATH+=";L:\Projects\Github\IfcOpenShell\_deps-vs2022-x64-installed\opencascade-7.8.1-new-layout" + +cmake .. -G Ninja -DCMAKE_PREFIX_PATH="$PREFIX_PATH" -DCMAKE_BUILD_TYPE=Release +ninja -v +./IfcParseExamples.exe "../IfcParseExamples_test.ifc" +# Scanning file... +# Done scanning file +# Done resolving references +# Found 3 elements in ..\IfcParseExamples_test.ifc: +# #182=IfcBuildingElementPart('0fmaoBJgz0kPBavO$EJkPn',#181,'Cube',$,$,#193,#183,$) +# #111=IfcWall('1lfiJzSCH1a8vjDuSLL4Ii',#110,'Cube',$,$,#119,#114,$) +# #150=IfcWindow('1eE0btB_54tBL59wLXKO1B',#149,'Cube',$,$,#188,#151,$,$,$) +``` diff --git a/src/examples/arbitrary_open_profile_def.cpp b/src/examples/arbitrary_open_profile_def.cpp index 45495736d5..1346c56a5d 100644 --- a/src/examples/arbitrary_open_profile_def.cpp +++ b/src/examples/arbitrary_open_profile_def.cpp @@ -28,16 +28,16 @@ #include #include -#include "../ifcparse/Ifc2x3.h" -#include "../ifcparse/IfcUtil.h" -#include "../ifcparse/IfcHierarchyHelper.h" +#define IfcSchema Ifc4 +#include "ifcparse/Ifc4.h" +#include "ifcparse/IfcHierarchyHelper.h" typedef std::string S; typedef IfcParse::IfcGlobalId guid; boost::none_t const null = boost::none; static int i = 0; -void create_product_from_item(IfcHierarchyHelper& file, IfcSchema::IfcRepresentationItem* item, const std::string& s) { +void create_product_from_item(IfcHierarchyHelper& file, IfcSchema::IfcRepresentationItem* item, const std::string& s) { IfcSchema::IfcBuildingElementProxy* product = new IfcSchema::IfcBuildingElementProxy( guid(), 0, S("product"), null, null, 0, 0, null, null); file.addBuildingProduct(product); @@ -50,7 +50,7 @@ void create_product_from_item(IfcHierarchyHelper& file, IfcSchema::IfcRepresenta items->push(item); if (s == "GeometricSet") { - IfcSchema::IfcGeometricSet* set = new IfcSchema::IfcGeometricSet(items->generalize()); + IfcSchema::IfcGeometricSet* set = new IfcSchema::IfcGeometricSet(items->as()); file.addEntity(set); items = IfcSchema::IfcRepresentationItem::list::ptr(new IfcSchema::IfcRepresentationItem::list()); items->push(set); @@ -67,7 +67,7 @@ void create_product_from_item(IfcHierarchyHelper& file, IfcSchema::IfcRepresenta product->setRepresentation(shape); } -void create_surfaces_from_profile(IfcHierarchyHelper& file, IfcSchema::IfcProfileDef* profile) { +void create_surfaces_from_profile(IfcHierarchyHelper& file, IfcSchema::IfcProfileDef* profile) { IfcSchema::IfcSurfaceOfLinearExtrusion* extrusion = new IfcSchema::IfcSurfaceOfLinearExtrusion(profile, file.addPlacement3d(), file.addTriplet(0, 0, 1), 100.); file.addEntity(extrusion); @@ -80,7 +80,7 @@ void create_surfaces_from_profile(IfcHierarchyHelper& file, IfcSchema::IfcProfil create_product_from_item(file, revolution, "GeometricSet"); } -void create_solids_from_profile(IfcHierarchyHelper& file, IfcSchema::IfcProfileDef* profile) { +void create_solids_from_profile(IfcHierarchyHelper& file, IfcSchema::IfcProfileDef* profile) { IfcSchema::IfcExtrudedAreaSolid* extrusion = new IfcSchema::IfcExtrudedAreaSolid(profile, file.addPlacement3d(), file.addTriplet(0, 0, 1), 100.); file.addEntity(extrusion); @@ -96,7 +96,7 @@ void create_solids_from_profile(IfcHierarchyHelper& file, IfcSchema::IfcProfileD create_product_from_item(file, revolution2, "SweptSolid"); } -void create_products_from_curve(IfcHierarchyHelper& file, IfcSchema::IfcBoundedCurve* curve) { +void create_products_from_curve(IfcHierarchyHelper& file, IfcSchema::IfcBoundedCurve* curve) { IfcSchema::IfcArbitraryOpenProfileDef* open = new IfcSchema::IfcArbitraryOpenProfileDef(IfcSchema::IfcProfileTypeEnum::IfcProfileType_CURVE, null, curve); IfcSchema::IfcCenterLineProfileDef* center_line = new IfcSchema::IfcCenterLineProfileDef(IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, curve, 10.); file.addEntity(open); @@ -107,9 +107,9 @@ void create_products_from_curve(IfcHierarchyHelper& file, IfcSchema::IfcBoundedC } int main(int argc, char** argv) { - const char filename[] = "IfcArbitraryOpenProfileDef.ifc"; - IfcHierarchyHelper file; - file.header().file_name().name(filename); + const char filename[] = "arbitrary_open_profile_def.ifc"; + IfcHierarchyHelper file; + file.header().file_name()->setname(filename); double coords1[] = {-50.0, 0.0}; double coords2[] = { 50.0, 0.0}; @@ -124,17 +124,18 @@ int main(int argc, char** argv) { IfcSchema::IfcEllipse* ellipse = new IfcSchema::IfcEllipse(file.addPlacement2d(), 50., 25.); file.addEntity(ellipse); - IfcEntityList::ptr trim1(new IfcEntityList); - IfcEntityList::ptr trim2(new IfcEntityList); + aggregate_of_instance::ptr trim1(new aggregate_of_instance); + aggregate_of_instance::ptr trim2(new aggregate_of_instance); trim1->push(new IfcSchema::IfcParameterValue( 0.)); trim2->push(new IfcSchema::IfcParameterValue(180.)); - IfcSchema::IfcTrimmedCurve* trim = new IfcSchema::IfcTrimmedCurve(ellipse, trim1, trim2, true, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); + IfcSchema::IfcTrimmedCurve* trim = new IfcSchema::IfcTrimmedCurve(ellipse, trim1->as(), trim2->as(), true, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); file.addEntity(trim); create_products_from_curve(file, trim); - file.getSingle()->setName("IfcArbitraryOpenProfileDef"); + using namespace std::string_literals; + file.getSingle()->setName("arbitrary_open_profile_def"s); std::ofstream f(filename); f << file; -} +} \ No newline at end of file diff --git a/src/examples/composite_profile_def.cpp b/src/examples/composite_profile_def.cpp index 5ff41a3b13..2b5f082f55 100644 --- a/src/examples/composite_profile_def.cpp +++ b/src/examples/composite_profile_def.cpp @@ -27,18 +27,18 @@ #include #include -#include "../ifcparse/Ifc2x3.h" -#include "../ifcparse/IfcUtil.h" -#include "../ifcparse/IfcHierarchyHelper.h" +#define IfcSchema Ifc2x3 +#include "ifcparse/Ifc2x3.h" +#include "ifcparse/IfcHierarchyHelper.h" typedef std::string S; typedef IfcParse::IfcGlobalId guid; boost::none_t const null = boost::none; int main(int argc, char** argv) { - const char filename[] = "IfcCompositeProfileDef.ifc"; - IfcHierarchyHelper file; - file.header().file_name().name(filename); + const char filename[] = "composite_profile_def.ifc"; + IfcHierarchyHelper file; + file.header().file_name()->setname(filename); double coords1[] = {100.0, 0.0}; double coords2[] = {200.0, 0.0}; @@ -112,7 +112,8 @@ int main(int argc, char** argv) { product->setRepresentation(shape); - file.getSingle()->setName("IfcCompositeProfileDef"); + using namespace std::string_literals; + file.getSingle()->setName("composite_profile_def"s); std::ofstream f(filename); f << file; diff --git a/src/examples/csg_primitive.cpp b/src/examples/csg_primitive.cpp index 190236ed6b..4d805a3375 100644 --- a/src/examples/csg_primitive.cpp +++ b/src/examples/csg_primitive.cpp @@ -27,9 +27,9 @@ #include #include -#include "../ifcparse/Ifc2x3.h" -#include "../ifcparse/IfcUtil.h" -#include "../ifcparse/IfcHierarchyHelper.h" +#define IfcSchema Ifc2x3 +#include "ifcparse/Ifc2x3.h" +#include "ifcparse/IfcHierarchyHelper.h" typedef std::string S; typedef IfcParse::IfcGlobalId guid; @@ -101,7 +101,7 @@ public: return operate(OP_INTERSECT, p); } - IfcSchema::IfcRepresentationItem* serialize(IfcHierarchyHelper& file) const { + IfcSchema::IfcRepresentationItem* serialize(IfcHierarchyHelper& file) const { IfcSchema::IfcRepresentationItem* my; if (op == OP_TERMINAL) { IfcSchema::IfcAxis2Placement3D* place = file.addPlacement3d(x,y,z,zx,zy,zz,xx,xy,xz); @@ -117,7 +117,7 @@ public: my = new IfcSchema::IfcRightCircularCone(place, b, a); } } else { - IfcSchema::IfcBooleanOperator::IfcBooleanOperator o; + IfcSchema::IfcBooleanOperator o = IfcSchema::IfcBooleanOperator::IfcBooleanOperator_UNION; if (op == OP_ADD) { o = IfcSchema::IfcBooleanOperator::IfcBooleanOperator_UNION; } else if (op == OP_SUBTRACT) { @@ -125,7 +125,7 @@ public: } else if (op == OP_INTERSECT) { o = IfcSchema::IfcBooleanOperator::IfcBooleanOperator_INTERSECTION; } - my = new IfcSchema::IfcBooleanResult(o, left->serialize(file), right->serialize(file)); + my = new IfcSchema::IfcBooleanResult(o, left->serialize(file)->as(), right->serialize(file)->as()); } file.addEntity(my); return my; @@ -133,9 +133,9 @@ public: }; int main(int argc, char** argv) { - const char filename[] = "IfcCsgPrimitive.ifc"; - IfcHierarchyHelper file; - file.header().file_name().name(filename); + const char filename[] = "csg_primitive.ifc"; + IfcHierarchyHelper file; + file.header().file_name()->setname(filename); IfcSchema::IfcRepresentationItem* csg1 = Node::Box(8000.,6000.,3000.).subtract( Node::Box(7600.,5600.,2800.).move(200.,200.,200.) @@ -186,7 +186,8 @@ int main(int argc, char** argv) { product->setRepresentation(shape); - file.getSingle()->setName("IfcCompositeProfileDef"); + using namespace std::string_literals; + file.getSingle()->setName("csg_primitive"s); std::ofstream f(filename); f << file; diff --git a/src/examples/ellipse_pies.cpp b/src/examples/ellipse_pies.cpp index 9994ca820d..8128c4377c 100644 --- a/src/examples/ellipse_pies.cpp +++ b/src/examples/ellipse_pies.cpp @@ -27,9 +27,9 @@ #include #include -#include "../ifcparse/Ifc2x3.h" -#include "../ifcparse/IfcUtil.h" -#include "../ifcparse/IfcHierarchyHelper.h" +#define IfcSchema Ifc2x3 +#include "ifcparse/Ifc2x3.h" +#include "ifcparse/IfcHierarchyHelper.h" typedef std::string S; typedef IfcParse::IfcGlobalId guid; @@ -44,7 +44,7 @@ typedef struct { static int i = 0; -void create_testcase_for(IfcHierarchyHelper& file, const EllipsePie& pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference pref) { +void create_testcase_for(IfcHierarchyHelper& file, const EllipsePie& pie, IfcSchema::IfcTrimmingPreference pref) { const double deg = 1. / 180. * 3.141592653; double flt1[] = {0. , 0. }; double flt2[] = {pie.r1 * cos(pie.t1*deg), pie.r2 * sin(pie.t1*deg)}; @@ -67,16 +67,16 @@ void create_testcase_for(IfcHierarchyHelper& file, const EllipsePie& pie, Ifc2x3 Ifc2x3::IfcEllipse* ellipse = new Ifc2x3::IfcEllipse(file.addPlacement2d(), pie.r1, pie.r2); file.addEntity(ellipse); - IfcEntityList::ptr trim1(new IfcEntityList); - IfcEntityList::ptr trim2(new IfcEntityList); - if (pref == Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER) { + aggregate_of_instance::ptr trim1(new aggregate_of_instance); + aggregate_of_instance::ptr trim2(new aggregate_of_instance); + if (pref == IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER) { trim1->push(new Ifc2x3::IfcParameterValue(pie.t1)); trim2->push(new Ifc2x3::IfcParameterValue(pie.t2)); } else { trim1->push(p2); trim2->push(p3); } - Ifc2x3::IfcTrimmedCurve* trim = new Ifc2x3::IfcTrimmedCurve(ellipse, trim1, trim2, true, pref); + Ifc2x3::IfcTrimmedCurve* trim = new Ifc2x3::IfcTrimmedCurve(ellipse, trim1->as(), trim2->as(), true, pref); file.addEntity(trim); Ifc2x3::IfcCompositeCurveSegment::list::ptr segments(new Ifc2x3::IfcCompositeCurveSegment::list()); @@ -124,25 +124,25 @@ void create_testcase_for(IfcHierarchyHelper& file, const EllipsePie& pie, Ifc2x3 int main(int argc, char** argv) { const std::string filename = "ellipse_pies.ifc"; - IfcHierarchyHelper file; + IfcHierarchyHelper file; { EllipsePie pie = {80., 50., 0., 150.}; - create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); - create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);} + create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); + create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);} { EllipsePie pie = {80, 50., 30., 300.}; - create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); - create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);} + create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); + create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);} { EllipsePie pie = {80, 50., 300., 30.}; - create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); - create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);} + create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); + create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);} { EllipsePie pie = {50., 80., 0., 150.}; - create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); - create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);} + create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); + create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);} { EllipsePie pie = {50, 80., 30., 300.}; - create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); - create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);} + create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); + create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);} { EllipsePie pie = {50, 80., 300., 30.}; - create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); - create_testcase_for(file, pie, Ifc2x3::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);} + create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); + create_testcase_for(file, pie, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN);} std::ofstream f(filename.c_str()); f << file; } diff --git a/src/examples/faces.cpp b/src/examples/faces.cpp index 985b23dd8e..f7e3858c58 100644 --- a/src/examples/faces.cpp +++ b/src/examples/faces.cpp @@ -22,18 +22,19 @@ * Example that generates various forms of IfcFace * * * ********************************************************************************/ +#include -#include "../ifcparse/Ifc2x3.h" -#include "../ifcparse/IfcUtil.h" -#include "../ifcparse/IfcHierarchyHelper.h" +#define IfcSchema Ifc2x3 +#include "ifcparse/Ifc2x3.h" +#include "ifcparse/IfcHierarchyHelper.h" typedef std::string S; typedef IfcParse::IfcGlobalId guid; -boost::none_t const null = (static_cast(0)); +boost::none_t const null = boost::none; static int x = 0; -void create_testcase(IfcHierarchyHelper& file, IfcSchema::IfcFace* face, const std::string& name) { +void create_testcase(IfcHierarchyHelper& file, IfcSchema::IfcFace* face, const std::string& name) { IfcSchema::IfcFace::list::ptr faces(new IfcSchema::IfcFace::list); faces->push(face); IfcSchema::IfcOpenShell* shell = new IfcSchema::IfcOpenShell(faces); @@ -57,14 +58,14 @@ void create_testcase(IfcHierarchyHelper& file, IfcSchema::IfcFace* face, const s file.getRepresentationContext("Model"), S("Body"), S("SurfaceModel"), items); reps->push(rep); - IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(0, 0, reps); + IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(boost::none, boost::none, reps); file.addEntity(shape); product->setRepresentation(shape); } int main(int argc, char** argv) { - IfcHierarchyHelper file; + IfcHierarchyHelper file; { IfcSchema::IfcCartesianPoint::list::ptr points (new IfcSchema::IfcCartesianPoint::list); points->push(file.addTriplet(-400, -400, 0)); @@ -192,7 +193,7 @@ int main(int argc, char** argv) { IfcSchema::IfcCartesianPoint::list::ptr trim2(new IfcSchema::IfcCartesianPoint::list); trim1->push(point1); trim2->push(point2); - IfcSchema::IfcTrimmedCurve* trimmed_curve = new IfcSchema::IfcTrimmedCurve(circle, trim1->generalize(), trim2->generalize(), true, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN); + IfcSchema::IfcTrimmedCurve* trimmed_curve = new IfcSchema::IfcTrimmedCurve(circle, trim1->generalize()->as(), trim2->generalize()->as(), true, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_CARTESIAN); IfcSchema::IfcArbitraryOpenProfileDef* profile = new IfcSchema::IfcArbitraryOpenProfileDef(IfcSchema::IfcProfileTypeEnum::IfcProfileType_CURVE, boost::none, trimmed_curve); IfcSchema::IfcAxis1Placement* place = new IfcSchema::IfcAxis1Placement(file.addTriplet(0., 0., 0.), file.addTriplet(1., 0., 0.)); IfcSchema::IfcSurfaceOfRevolution* surface = new IfcSchema::IfcSurfaceOfRevolution(profile, file.addPlacement3d(), place); @@ -200,8 +201,8 @@ int main(int argc, char** argv) { IfcSchema::IfcFace* face = new IfcSchema::IfcFaceSurface(bounds, surface, true); create_testcase(file, face, "face surface"); } - const std::string filename = "faces.ifc"; - file.header().file_name().name(filename); - std::ofstream f(filename.c_str()); + const char filename[] = "faces.ifc"; + file.header().file_name()->setname(filename); + std::ofstream f(filename); f << file; } \ No newline at end of file diff --git a/src/examples/ifc_curve_rebar.cpp b/src/examples/ifc_curve_rebar.cpp index 2ba269e015..0f66f7b45a 100644 --- a/src/examples/ifc_curve_rebar.cpp +++ b/src/examples/ifc_curve_rebar.cpp @@ -27,22 +27,24 @@ #include #include -#include "ifcparse\Ifc2x3.h" -#include "ifcparse\IfcUtil.h" -#include "ifcparse\IfcHierarchyHelper.h" -#include "ifcgeom\IfcGeom.h" +#define IfcSchema Ifc2x3 +#include "ifcparse/Ifc2x3.h" +#include "ifcparse/IfcHierarchyHelper.h" + +#include +const static double PI = boost::math::constants::pi(); typedef std::string S; typedef IfcParse::IfcGlobalId guid; boost::none_t const null = boost::none; -void create_curve_rebar(IfcHierarchyHelper& file) +void create_curve_rebar(IfcHierarchyHelper& file) { int dia = 24; int R = 3 * dia; int length = 12 * dia; - double crossSectionarea = M_PI * (dia / 2) * 2; + double crossSectionarea = PI * dia * dia / 4; IfcSchema::IfcReinforcingBar* rebar = new IfcSchema::IfcReinforcingBar( guid(), 0, S("test"), null, null, 0, 0, @@ -83,14 +85,15 @@ void create_curve_rebar(IfcHierarchyHelper& file) IfcSchema::IfcCircle* circle = new IfcSchema::IfcCircle(axis1, R); file.addEntity(circle); - IfcEntityList::ptr trim1(new IfcEntityList); - IfcEntityList::ptr trim2(new IfcEntityList); - + IfcSchema::IfcTrimmingSelect::list::ptr trim1(new IfcSchema::IfcTrimmingSelect::list); + IfcSchema::IfcTrimmingSelect::list::ptr trim2(new IfcSchema::IfcTrimmingSelect::list); + trim1->push(new IfcSchema::IfcParameterValue(180)); trim1->push(p2); trim2->push(new IfcSchema::IfcParameterValue(270)); trim2->push(p4); + IfcSchema::IfcTrimmedCurve* trimmed_curve = new IfcSchema::IfcTrimmedCurve(circle, trim1, trim2, false, IfcSchema::IfcTrimmingPreference::IfcTrimmingPreference_PARAMETER); file.addEntity(trimmed_curve); @@ -133,8 +136,8 @@ void create_curve_rebar(IfcHierarchyHelper& file) int main() { - IfcHierarchyHelper file; - file.header().file_name().name("ifc_curve_rebar.ifc"); + IfcHierarchyHelper file; + file.header().file_name()->setname("ifc_curve_rebar.ifc"); create_curve_rebar(file); std::ofstream f("ifc_curve_rebar.ifc"); f << file; diff --git a/src/examples/profiles.cpp b/src/examples/profiles.cpp index d171745dc7..78cc67f13f 100644 --- a/src/examples/profiles.cpp +++ b/src/examples/profiles.cpp @@ -27,21 +27,21 @@ #include #include -#include "../ifcparse/Ifc2x3.h" -#include "../ifcparse/IfcUtil.h" -#include "../ifcparse/IfcHierarchyHelper.h" +#define IfcSchema Ifc2x3 +#include "ifcparse/Ifc2x3.h" +#include "ifcparse/IfcHierarchyHelper.h" typedef std::string S; -typedef IfcWrite::IfcGuidHelper guid; -boost::none_t const null = (static_cast(0)); +typedef IfcParse::IfcGlobalId guid; +boost::none_t const null = boost::none; void create_testcase_for(IfcSchema::IfcProfileDef::list::ptr profiles) { IfcSchema::IfcProfileDef* profile = *profiles->begin(); - const std::string profile_type = IfcSchema::Type::ToString(profile->type()); + const std::string& profile_type = profile->declaration().name(); const std::string filename = profile_type + ".ifc"; - IfcHierarchyHelper file; - file.filename(filename); + IfcHierarchyHelper file; + file.header().file_name()->setname(filename); int i = 0; for (IfcSchema::IfcProfileDef::list::it it = profiles->begin(); it != profiles->end(); ++it, ++i) { @@ -54,7 +54,7 @@ void create_testcase_for(IfcSchema::IfcProfileDef::list::ptr profiles) { product->setObjectPlacement(file.addLocalPlacement(0, 100. * i)); - if (profile->is(IfcSchema::Type::IfcParameterizedProfileDef)) { + if (profile->declaration().is(IfcSchema::IfcParameterizedProfileDef::Class())) { ((IfcSchema::IfcParameterizedProfileDef*) profile)->setPosition(file.addPlacement2d()); } @@ -72,7 +72,7 @@ void create_testcase_for(IfcSchema::IfcProfileDef::list::ptr profiles) { file.getSingle(), S("Body"), S("SweptSolid"), items); reps->push(rep); - IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(0, 0, reps); + IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(null, null, reps); file.addEntity(rep); file.addEntity(shape); @@ -84,122 +84,123 @@ void create_testcase_for(IfcSchema::IfcProfileDef::list::ptr profiles) { } int main(int argc, char** argv) { + IfcSchema::get_schema(); // Ensure schema is initialized { IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list); - profiles->push(new Ifc2x3::IfcUShapeProfileDef( + profiles->push(new IfcSchema::IfcUShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 5.0, null, null, null, null)); - profiles->push(new Ifc2x3::IfcUShapeProfileDef( + profiles->push(new IfcSchema::IfcUShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 5.0, 2.0, 2.0, null, null)); - profiles->push(new Ifc2x3::IfcUShapeProfileDef( + profiles->push(new IfcSchema::IfcUShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 5.0, null, null, 4.0, null)); - profiles->push(new Ifc2x3::IfcUShapeProfileDef( + profiles->push(new IfcSchema::IfcUShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 5.0, 1.0, 3.0, 6.0, null)); create_testcase_for(profiles); } { IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list); - profiles->push(new Ifc2x3::IfcTShapeProfileDef( + profiles->push(new IfcSchema::IfcTShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 5.0, null, null, null, null, null, null)); - profiles->push(new Ifc2x3::IfcTShapeProfileDef( + profiles->push(new IfcSchema::IfcTShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 5.0, 2.0, 2.0, 2.0, null, null, null)); - profiles->push(new Ifc2x3::IfcTShapeProfileDef( + profiles->push(new IfcSchema::IfcTShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 5.0, null, null, null, 2.0, 2.0, null)); - profiles->push(new Ifc2x3::IfcTShapeProfileDef( + profiles->push(new IfcSchema::IfcTShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 5.0, 3.0, 2.0, 1.0, 2.0, 2.0, null)); create_testcase_for(profiles); } { IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list); - profiles->push(new Ifc2x3::IfcZShapeProfileDef( + profiles->push(new IfcSchema::IfcZShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 5.0, null, null)); - profiles->push(new Ifc2x3::IfcZShapeProfileDef( + profiles->push(new IfcSchema::IfcZShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 5.0, 2.0, 2.0)); create_testcase_for(profiles); } { IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list); - profiles->push(new Ifc2x3::IfcEllipseProfileDef( + profiles->push(new IfcSchema::IfcEllipseProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 25.0, 15.0)); - profiles->push(new Ifc2x3::IfcEllipseProfileDef( + profiles->push(new IfcSchema::IfcEllipseProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 15.0, 25.0)); create_testcase_for(profiles); } { IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list); - profiles->push(new Ifc2x3::IfcIShapeProfileDef( + profiles->push(new IfcSchema::IfcIShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 25.0, 50.0, 5.0, 5.0, null)); - profiles->push(new Ifc2x3::IfcIShapeProfileDef( + profiles->push(new IfcSchema::IfcIShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 25.0, 50.0, 5.0, 5.0, 2.0)); - profiles->push(new Ifc2x3::IfcAsymmetricIShapeProfileDef( + profiles->push(new IfcSchema::IfcAsymmetricIShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 25.0, 50.0, 5.0, 5.0, 2.0, 20.0, 10.0, 5.0, null)); create_testcase_for(profiles); } { IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list); - profiles->push(new Ifc2x3::IfcLShapeProfileDef( + profiles->push(new IfcSchema::IfcLShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, null, null, null, null, null)); - profiles->push(new Ifc2x3::IfcLShapeProfileDef( + profiles->push(new IfcSchema::IfcLShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 2.0, 2.0, null, null, null)); - profiles->push(new Ifc2x3::IfcLShapeProfileDef( + profiles->push(new IfcSchema::IfcLShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, null, null, 2.0, null, null)); - profiles->push(new Ifc2x3::IfcLShapeProfileDef( + profiles->push(new IfcSchema::IfcLShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 1.0, 2.0, 2.0, null, null)); create_testcase_for(profiles); } { IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list); - profiles->push(new Ifc2x3::IfcCShapeProfileDef( + profiles->push(new IfcSchema::IfcCShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 10.0, null, null)); - profiles->push(new Ifc2x3::IfcCShapeProfileDef( + profiles->push(new IfcSchema::IfcCShapeProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 10.0, 2.0, null)); create_testcase_for(profiles); } { IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list); - profiles->push(new Ifc2x3::IfcCircleProfileDef( + profiles->push(new IfcSchema::IfcCircleProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 25.0)); - profiles->push(new Ifc2x3::IfcCircleHollowProfileDef( + profiles->push(new IfcSchema::IfcCircleHollowProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 25.0, 5.0)); create_testcase_for(profiles); } { IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list); - profiles->push(new Ifc2x3::IfcRectangleProfileDef( + profiles->push(new IfcSchema::IfcRectangleProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0)); - profiles->push(new Ifc2x3::IfcRoundedRectangleProfileDef( + profiles->push(new IfcSchema::IfcRoundedRectangleProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0)); - profiles->push(new Ifc2x3::IfcRectangleHollowProfileDef( + profiles->push(new IfcSchema::IfcRectangleHollowProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, null, null)); - profiles->push(new Ifc2x3::IfcRectangleHollowProfileDef( + profiles->push(new IfcSchema::IfcRectangleHollowProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 25.0, 5.0, 2.0, 4.0)); create_testcase_for(profiles); } { IfcSchema::IfcProfileDef::list::ptr profiles (new IfcSchema::IfcProfileDef::list); - profiles->push(new Ifc2x3::IfcTrapeziumProfileDef( + profiles->push(new IfcSchema::IfcTrapeziumProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 30.0, 25.0, 0.0)); - profiles->push(new Ifc2x3::IfcTrapeziumProfileDef( + profiles->push(new IfcSchema::IfcTrapeziumProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 60.0, 25.0, -20.0)); - profiles->push(new Ifc2x3::IfcTrapeziumProfileDef( + profiles->push(new IfcSchema::IfcTrapeziumProfileDef( IfcSchema::IfcProfileTypeEnum::IfcProfileType_AREA, null, 0, 50.0, 10.0, 25.0, 30.0)); create_testcase_for(profiles); } diff --git a/src/examples/triangulated_faceset.cpp b/src/examples/triangulated_faceset.cpp index acf56d60c1..18eb1c3b73 100644 --- a/src/examples/triangulated_faceset.cpp +++ b/src/examples/triangulated_faceset.cpp @@ -23,15 +23,19 @@ * * ********************************************************************************/ -#include "../ifcparse/Ifc4.h" -#include "../ifcparse/IfcUtil.h" -#include "../ifcparse/IfcHierarchyHelper.h" +#include +#include +#include + +#define IfcSchema Ifc4 +#include "ifcparse/Ifc4.h" +#include "ifcparse/IfcHierarchyHelper.h" #include "suzanne_geometry.h" typedef std::string S; typedef IfcParse::IfcGlobalId guid; -boost::none_t const null = (static_cast(0)); +boost::none_t const null = boost::none; template std::vector< std::vector > create_vector_from_array(const T* arr, unsigned size) { @@ -50,7 +54,7 @@ std::vector< std::vector > create_vector_from_array(const T* arr, unsigned si } int main(int argc, char** argv) { - IfcHierarchyHelper file; + IfcHierarchyHelper file; IfcSchema::IfcBuildingElementProxy* product = new IfcSchema::IfcBuildingElementProxy( guid(), 0, S("Blender's Suzanne"), null, null, 0, 0, null, null); @@ -73,13 +77,13 @@ int main(int argc, char** argv) { file.getRepresentationContext("Model"), S("Body"), S("SurfaceModel"), items); reps->push(rep); - IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(0, 0, reps); + IfcSchema::IfcProductDefinitionShape* shape = new IfcSchema::IfcProductDefinitionShape(boost::none, boost::none, reps); file.addEntity(shape); product->setRepresentation(shape); - const std::string filename = "tesselated_faceset.ifc"; - file.header().file_name().name(filename); - std::ofstream f(filename.c_str()); + const std::string filename = "triangulated_faceset.ifc"; + file.header().file_name()->setname(filename); + std::ofstream f(filename); f << file; } diff --git a/src/ifc2ca/_deprecated/ca2ifc.py b/src/ifc2ca/_deprecated/ca2ifc.py index 5f9115396e..0f55d9d6d3 100644 --- a/src/ifc2ca/_deprecated/ca2ifc.py +++ b/src/ifc2ca/_deprecated/ca2ifc.py @@ -17,11 +17,12 @@ # along with Ifc2CA. If not, see . import json -import ifcopenshell -import ifcopenshell.guid import os from datetime import datetime +import ifcopenshell +import ifcopenshell.guid + class CA2IFC: def __init__(self, inputFilename, outputFilename): diff --git a/src/ifc2ca/_deprecated/scriptCodeAsterBonded.py b/src/ifc2ca/_deprecated/scriptCodeAsterBonded.py index 005e28fa4c..0b1184453b 100644 --- a/src/ifc2ca/_deprecated/scriptCodeAsterBonded.py +++ b/src/ifc2ca/_deprecated/scriptCodeAsterBonded.py @@ -16,11 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with Ifc2CA. If not, see . -import json -import numpy as np import itertools +import json from pathlib import Path +import numpy as np + flatten = itertools.chain.from_iterable ScaleFactor = 1.0 diff --git a/src/ifc2ca/_deprecated/scriptSalomeBonded.py b/src/ifc2ca/_deprecated/scriptSalomeBonded.py index a1c6030956..fb2bd575f9 100644 --- a/src/ifc2ca/_deprecated/scriptSalomeBonded.py +++ b/src/ifc2ca/_deprecated/scriptSalomeBonded.py @@ -16,15 +16,16 @@ # You should have received a copy of the GNU Lesser General Public License # along with Ifc2CA. If not, see . +import itertools +import json import os import time -import json +from pathlib import Path + +import numpy as np import salome import salome_notebook import salome_version -import numpy as np -import itertools -from pathlib import Path flatten = itertools.chain.from_iterable @@ -155,10 +156,11 @@ class MODEL: ### ### GEOM component ### - import GEOM - from salome.geom import geomBuilder import math + + import GEOM import SALOMEDS + from salome.geom import geomBuilder gg = salome.ImportComponentGUI("GEOM") if NEW_SALOME: diff --git a/src/ifc2ca/ifc2ca.py b/src/ifc2ca/ifc2ca.py index f8908b0aa7..728df67d45 100644 --- a/src/ifc2ca/ifc2ca.py +++ b/src/ifc2ca/ifc2ca.py @@ -17,6 +17,7 @@ # along with Ifc2CA. If not, see . from __future__ import annotations + import json import os import subprocess diff --git a/src/ifc4d/__main__.py b/src/ifc4d/__main__.py index d7e2a58307..86c36394e6 100644 --- a/src/ifc4d/__main__.py +++ b/src/ifc4d/__main__.py @@ -1,13 +1,11 @@ -import os -import sys import argparse -from ifc4d.p6xer2ifc import P6XER2Ifc -from ifc4d.p62ifc import P62Ifc -from ifc4d.msp2ifc import MSP2Ifc -from ifc4d.pp2ifc import PP2Ifc import ifcopenshell +from ifc4d.msp2ifc import MSP2Ifc +from ifc4d.p6xer2ifc import P6XER2Ifc +from ifc4d.p62ifc import P62Ifc +from ifc4d.pp2ifc import PP2Ifc parser = argparse.ArgumentParser() parser.add_argument("-f", "--file", action="store", type=str, required=True, help="schedule file name to be parsed") diff --git a/src/ifc4d/ifc4d/common.py b/src/ifc4d/ifc4d/common.py index d13840267a..296b8f36cb 100644 --- a/src/ifc4d/ifc4d/common.py +++ b/src/ifc4d/ifc4d/common.py @@ -1,12 +1,12 @@ from __future__ import annotations + +from datetime import date, datetime, timedelta +from typing import Any, TypedDict, Union + import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.control import ifcopenshell.api.resource import ifcopenshell.api.sequence -import ifcopenshell.util.date -from datetime import datetime, timedelta, date -from typing import Union, Any, TypedDict from typing_extensions import NotRequired diff --git a/src/ifc4d/ifc4d/csv2ifc.py b/src/ifc4d/ifc4d/csv2ifc.py index 1233734290..a908acdb53 100644 --- a/src/ifc4d/ifc4d/csv2ifc.py +++ b/src/ifc4d/ifc4d/csv2ifc.py @@ -17,23 +17,22 @@ # along with IfcResources. If not, see . from __future__ import annotations -import csv + import _csv -import ifcopenshell.api.resource -import isodate +import csv +import datetime +from typing import Any, Literal, NamedTuple, Optional, Union, cast, get_args + import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.cost import ifcopenshell.api.pset +import ifcopenshell.api.resource import ifcopenshell.api.root import ifcopenshell.api.unit import ifcopenshell.util.date import ifcopenshell.util.element import ifcopenshell.util.resource -import ifcopenshell.util.unit -import datetime -from typing import Any, Optional, Union, Literal, get_args, NamedTuple, cast - +import isodate SUPPORTED_COLUMN = Literal[ "HIERARCHY", diff --git a/src/ifc4d/ifc4d/csv4d2ifc.py b/src/ifc4d/ifc4d/csv4d2ifc.py index 9a33ea8198..4247a06bbc 100644 --- a/src/ifc4d/ifc4d/csv4d2ifc.py +++ b/src/ifc4d/ifc4d/csv4d2ifc.py @@ -18,13 +18,13 @@ import csv +import locale +import re + import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.root import ifcopenshell.api.sequence import ifcopenshell.util.date -import locale -import re class Csv2Ifc: diff --git a/src/ifc4d/ifc4d/ifc2msp.py b/src/ifc4d/ifc4d/ifc2msp.py index e7d540dd3a..a685f689dc 100644 --- a/src/ifc4d/ifc4d/ifc2msp.py +++ b/src/ifc4d/ifc4d/ifc2msp.py @@ -16,12 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with Ifc4D. If not, see . -import uuid import datetime +import uuid +import xml.etree.ElementTree as ET + import ifcopenshell import ifcopenshell.util.date import ifcopenshell.util.sequence -import xml.etree.ElementTree as ET class Ifc2Msp: diff --git a/src/ifc4d/ifc4d/ifc2p6.py b/src/ifc4d/ifc4d/ifc2p6.py index 1d4bfea195..a4634ca372 100644 --- a/src/ifc4d/ifc4d/ifc2p6.py +++ b/src/ifc4d/ifc4d/ifc2p6.py @@ -16,13 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with Ifc4D. If not, see . -import uuid import datetime +import uuid +import xml.etree.ElementTree as ET + import ifcopenshell import ifcopenshell.util.date import ifcopenshell.util.sequence -import xml.etree.ElementTree as ET -from .common import ScheduleIfcGenerator class Ifc2P6: diff --git a/src/ifc4d/ifc4d/msp2ifc.py b/src/ifc4d/ifc4d/msp2ifc.py index 2285a1a1ea..91ae683c84 100644 --- a/src/ifc4d/ifc4d/msp2ifc.py +++ b/src/ifc4d/ifc4d/msp2ifc.py @@ -17,15 +17,15 @@ # along with Ifc4D. If not, see . import datetime -from datetime import timedelta, date +import xml.etree.ElementTree as ET +from datetime import timedelta + import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.control import ifcopenshell.api.pset import ifcopenshell.api.root import ifcopenshell.api.sequence import ifcopenshell.util.date -import xml.etree.ElementTree as ET class MSP2Ifc: diff --git a/src/ifc4d/ifc4d/p62ifc.py b/src/ifc4d/ifc4d/p62ifc.py index aeb4338c07..7d4881161a 100644 --- a/src/ifc4d/ifc4d/p62ifc.py +++ b/src/ifc4d/ifc4d/p62ifc.py @@ -16,12 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with Ifc4D. If not, see . -import math import datetime -import ifcopenshell -import ifcopenshell.api -import ifcopenshell.util.date import xml.etree.ElementTree as ET + from .common import ScheduleIfcGenerator diff --git a/src/ifc4d/ifc4d/p6xer2ifc.py b/src/ifc4d/ifc4d/p6xer2ifc.py index 9e8bd1bfd9..935634767d 100644 --- a/src/ifc4d/ifc4d/p6xer2ifc.py +++ b/src/ifc4d/ifc4d/p6xer2ifc.py @@ -16,11 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with Ifc4D. If not, see . + from xerparser.reader import Reader -import ifcopenshell -import ifcopenshell.api -import ifcopenshell.util.date -from datetime import datetime, timedelta, date + from .common import ScheduleIfcGenerator diff --git a/src/ifc4d/ifc4d/pp2ifc.py b/src/ifc4d/ifc4d/pp2ifc.py index 5ce9b68b48..b2be0c753b 100644 --- a/src/ifc4d/ifc4d/pp2ifc.py +++ b/src/ifc4d/ifc4d/pp2ifc.py @@ -5,16 +5,15 @@ import sys print("In module products sys.path[0], __package__ ==", sys.path[0], __package__) sys.path.append(sys.path[0]) -import sqlite3 import datetime -from datetime import timedelta -import ifcopenshell.util.date -from .wpattern import AstaCalendarWorkPattern -from .common import ScheduleIfcGenerator, Calendar, WBSEntry, Activity +import sqlite3 import time from collections import defaultdict +from datetime import timedelta from typing import Any +from .common import Activity, Calendar, ScheduleIfcGenerator, WBSEntry +from .wpattern import AstaCalendarWorkPattern list_of_tables = [ "BAR", diff --git a/src/ifc4d/ifc4d/wpattern.py b/src/ifc4d/ifc4d/wpattern.py index cbadad53e0..0c2cc265b9 100644 --- a/src/ifc4d/ifc4d/wpattern.py +++ b/src/ifc4d/ifc4d/wpattern.py @@ -6,13 +6,11 @@ for each day as a key there is a list of working times with the format """ -import sys import re -from datetime import time, datetime +from datetime import datetime, time from typing import Any -from ifc4d.common import WorkSlot -ZIP_STRICT = {} if sys.version_info < (3, 10) else {"strict": True} +from ifc4d.common import WorkSlot class AstaCalendarWorkPattern: @@ -123,7 +121,7 @@ class AstaCalendarWorkPattern: self.values = self.get_values(string) self.dict_wp: list[WorkSlot] = [] - for value, day_name in zip(self.values[1:], self.day_names, **ZIP_STRICT): + for value, day_name in zip(self.values[1:], self.day_names, strict=True): splt_data = value.strip().split(",") workhours: list[dict[str, Any]] = [] if len(splt_data) >= 7: diff --git a/src/ifc4d/pyproject.toml b/src/ifc4d/pyproject.toml index 6bb2cc9f22..bbc101905a 100644 --- a/src/ifc4d/pyproject.toml +++ b/src/ifc4d/pyproject.toml @@ -28,3 +28,9 @@ Issues = "https://github.com/IfcOpenShell/IfcOpenShell/issues" [tool.setuptools.packages.find] include = ["ifc4d"] exclude = ["test*"] + +[tool.ruff] +extend = "../../pyproject.toml" +lint.select = [ + "F401", # unused imports +] diff --git a/src/ifc5d/Ex1 - BoQ without query.csv b/src/ifc5d/Ex1 - BoQ without query.csv new file mode 100644 index 0000000000..85dc89019e --- /dev/null +++ b/src/ifc5d/Ex1 - BoQ without query.csv @@ -0,0 +1,10 @@ +Index,Identification,Name,Unit,Value,Quantity +1,E.01,Walls,m3,, +2,E.01.01,Ground floor walls,m3,100,42 +2,E.01.02,First floor walls,m3,200,35 +1,A.02,Paintings,m2,, +2,A.03,Paintings with water,m2,, +3,B.05,White paintings,m2,25,45 +3,B.06,Colored paintings,m2,32,33 +2,C-01,Paintings with machine,m2,17,133 +2,C-02,Decorated paintings,m2,40,8 diff --git a/src/ifc5d/Ex2 - SoR.csv b/src/ifc5d/Ex2 - SoR.csv new file mode 100644 index 0000000000..07615e4f7d --- /dev/null +++ b/src/ifc5d/Ex2 - SoR.csv @@ -0,0 +1,7 @@ +Index,Identification,Name,Unit,Value,Quantity +1,A,Group A,,, +2,A.02,Paintings,m2,20,1 +2,A.03,Paintings with water,m2,23,1 +1,C,Group C,,, +2,C-01,Paintings with machine,m2,32,1 +2,C-02,Decorated paintings,m2,40,2 diff --git a/src/ifc5d/Ex3 - BoQ with query.csv b/src/ifc5d/Ex3 - BoQ with query.csv new file mode 100644 index 0000000000..d96d1adcd8 --- /dev/null +++ b/src/ifc5d/Ex3 - BoQ with query.csv @@ -0,0 +1,10 @@ +Index,Identification,Name,Unit,Value,Quantity,Query,Property +1,E.01,Walls,m3,,,, +2,E.01.01,Ground floor walls,m3,100,,"IfcWall, location=""Ground Floor""",GrossVolume +2,E.01.02,First floor walls,m3,200,,"IfcWall, location=""First Floor""",GrossVolume +1,A.02,Paintings,m2,,,, +2,A.03,Paintings with water,m2,,,, +3,B.05,White paintings,m2,25,45,, +3,B.06,Colored paintings,m2,32,33,, +2,C-01,Paintings with machine,m2,17,133,, +2,C-02,Decorated paintings,m2,40,8,, diff --git a/src/ifc5d/Ex4 - BoQ with description.csv b/src/ifc5d/Ex4 - BoQ with description.csv new file mode 100644 index 0000000000..ce3d5350cc --- /dev/null +++ b/src/ifc5d/Ex4 - BoQ with description.csv @@ -0,0 +1,10 @@ +Index,Identification,Name,Unit,Value,Quantity,Description +1,E.01,Walls,m3,,, +2,E.01.01,Ground floor walls,m3,100,42,"Semi-solid blocks of plain-faced common brick, with an apparent density (excluding holes) of 800 kg/m³; minor drilling 45%; apparent thermal conductivity 0.21 W/mK; characteristic mechanical strength parallel to the holes greater than or equal to 10 N/mm2, perpendicular to the holes greater than or equal to 2N/mm2" +2,E.01.02,First floor walls,m3,200,35,"Semi-solid blocks of plain-faced common brick, with an apparent density (excluding holes) of 800 kg/m³; minor drilling 45%; apparent thermal conductivity 0.21 W/mK; characteristic mechanical strength parallel to the holes greater than or equal to 10 N/mm2, perpendicular to the holes greater than or equal to 2N/mm2" +1,A.02,Painting,m2,,,"Painting with washable water-based wall paint for indoor/outdoor. The price includes and compensates the costs for the supply of paint, any scaffolding up to a maximum height of 4 m from the support surface, the costs for the protection of furniture, fixed systems or the protection of floors, the cleaning of the surfaces to be treated through the use of rags or net purposes in order to remove residues that can be easily removed. The cost of occasional and partial grouting of surfaces, in order to eliminate any small scratches, including sanding of the grouted parts, is also to be considered included and compensated. For 2 coats with brush or roller." +2,A.03,Washable painting,m2,,,"Supply and installation of washable tempera paint for interiors and exteriors. The price includes and compensates for the costs of supplying the paint, any scaffolding up to a maximum height of 4 meters from the support surface, the costs of protecting furnishings, fixed installations, or floors, and cleaning the surfaces to be treated using rags or clean brushes to remove easily removable residues. On previously prepared plaster. Apply two coats with a brush or roller. (Tempera colors from the color chart)." +3,B.05,White paintings,m2,25,45, +3,B.06,Colored paintings,m2,32,33, +2,C-01,External painting,m2,17,133,"Painting with plastic coating. The price includes and compensates for the costs of supplying the paint, any scaffolding up to a maximum height of 4 meters from the support surface, the costs of protecting furnishings, fixed systems, or floors, and cleaning the surfaces to be treated using rags or clean brushes to remove easily removable residues. On already prepared plaster. For 2 coats (interior textured finish)." +2,C-02,Decorated paintings,m2,40,8, diff --git a/src/ifc5d/Ex5 - SoR_with_description.csv b/src/ifc5d/Ex5 - SoR_with_description.csv new file mode 100644 index 0000000000..0517abcbde --- /dev/null +++ b/src/ifc5d/Ex5 - SoR_with_description.csv @@ -0,0 +1,7 @@ +Index,Identification,Name,Unit,Value,Quantity,Description +1,A,Group A,,,, +2,A.02,Paintings,m2,20,1,Paint made by the best painter in the world +2,A.03,Paintings with water,m2,23,1, +1,C,Group C,,,, +2,C-01,Paintings with machine,m2,32,1,Best painting in the world painted with the best painted machine accordingly with ISO9001 +2,C-02,Decorated paintings,m2,40,2, diff --git a/src/ifc5d/Ex6 - BoQ with categories.csv b/src/ifc5d/Ex6 - BoQ with categories.csv new file mode 100644 index 0000000000..b87f708333 --- /dev/null +++ b/src/ifc5d/Ex6 - BoQ with categories.csv @@ -0,0 +1,10 @@ +Index,Identification,Name,Unit,Material,Labor,Quantity +1,E.01,Walls,m3,,, +2,E.01.01,Ground floor walls,m3,55,45,42 +2,E.01.02,First floor walls,m3,120,80,35 +1,A.02,Painting,m2,,, +2,A.03,Washable painting,m2,,, +3,B.05,White paintings,m2,,,45 +3,B.06,Colored paintings,m2,,,33 +2,C-01,External painting,m2,,,133 +2,C-02,Decorated paintings,m2,,,8 diff --git a/src/ifc5d/Ex7 - BoQ with Rates.csv b/src/ifc5d/Ex7 - BoQ with Rates.csv new file mode 100644 index 0000000000..c7875efd38 --- /dev/null +++ b/src/ifc5d/Ex7 - BoQ with Rates.csv @@ -0,0 +1,10 @@ +Index,Identification,Name,Unit,Value,Quantity,RateSchedule,RateID +1,E.01,Walls,m3,,,, +2,E.01.01,Ground floor walls,m3,100,42,, +2,E.01.02,First floor walls,m3,200,35,, +1,A.02,Paintings,m2,,,, +2,A.03,Paintings with water,m2,,,, +3,B.05,White paintings,m2,,45,Ex2 - SoR,A.03 +3,B.06,Colored paintings,m2,32,33,, +2,C-01,Paintings with machine,m2,17,133,, +2,C-02,Decorated paintings,m2,40,8,, diff --git a/src/ifc5d/README.md b/src/ifc5d/README.md index 63e133463e..ba37664a88 100644 --- a/src/ifc5d/README.md +++ b/src/ifc5d/README.md @@ -32,6 +32,13 @@ csv2ifc.execute() ``` See example files as a CSV file format reference: +- Ex1 - BoQ without query.csv (a simple Bill of Quantities) +- Ex2 - SoR.csv (a simple Schedule of Rates) +- Ex3 - BoQ with query.csv (a simple BoQ with the query function) +- Ex4 - BoQ with description.csv (a simple BoQ with description column) +- Ex5 - SoR_with_description.csv (a simple SoR with description column) +- Ex6 - BoQ with categories.csv (a simple BoQ with categories columns) +- Ex7 - BoQ with Rates.csv (a simple BoQ that connect to an existing SoR. It needs an already loaded SoR.) - `sample_cost_schedule_house_FR.csv` / `.ods` - `schedule.csv`, `rates.csv` (schedule of rates example) @@ -124,4 +131,4 @@ path = "directory/cost_schedule" writer = Ifc5DOdsWriter(file=file, output=path) writer.write() -``` \ No newline at end of file +``` diff --git a/src/ifc5d/ifc5d/csv2ifc.py b/src/ifc5d/ifc5d/csv2ifc.py index 6e0cb7b5ea..c33d6e847e 100644 --- a/src/ifc5d/ifc5d/csv2ifc.py +++ b/src/ifc5d/ifc5d/csv2ifc.py @@ -17,19 +17,20 @@ # along with Ifc5D. If not, see . from __future__ import annotations + import csv +import locale +from pathlib import Path +from typing import Optional, TypedDict, Union + import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.control import ifcopenshell.api.cost import ifcopenshell.api.root -import ifcopenshell.util.unit -import ifcopenshell.util.selector -import ifcopenshell.util.element import ifcopenshell.util.cost -import locale -from pathlib import Path -from typing import Union, Optional, TypedDict +import ifcopenshell.util.element +import ifcopenshell.util.selector +import ifcopenshell.util.unit from typing_extensions import NotRequired diff --git a/src/ifc5d/ifc5d/ifc2json.py b/src/ifc5d/ifc5d/ifc2json.py index fae04126af..3b184ca1c7 100644 --- a/src/ifc5d/ifc5d/ifc2json.py +++ b/src/ifc5d/ifc5d/ifc2json.py @@ -1,11 +1,11 @@ -import ifcopenshell -import ifcopenshell.util.unit from typing import Any + +import ifcopenshell import ifcopenshell.util.cost import ifcopenshell.util.date +import ifcopenshell.util.unit from ifcopenshell.util.classification import get_references - CostItem = dict[str, Any] diff --git a/src/ifc5d/ifc5d/ifc5Dspreadsheet.py b/src/ifc5d/ifc5d/ifc5Dspreadsheet.py index 369232c401..5aab765c26 100644 --- a/src/ifc5d/ifc5d/ifc5Dspreadsheet.py +++ b/src/ifc5d/ifc5d/ifc5Dspreadsheet.py @@ -18,18 +18,20 @@ from __future__ import annotations -import os -import time + import argparse import datetime import logging +import os +import time +from collections import Counter +from typing import Optional, TypedDict, Union + import ifcopenshell -import ifcopenshell.util.element import ifcopenshell.util.cost import ifcopenshell.util.date +import ifcopenshell.util.element import ifcopenshell.util.unit -from collections import Counter -from typing import Union, Optional, Any, TypedDict class CostItem(TypedDict): @@ -418,9 +420,9 @@ class Ifc5DCsvWriter(Ifc5Dwriter): class Ifc5DOdsWriter(Ifc5Dwriter): def write(self) -> None: + from odf.number import CurrencyStyle, CurrencySymbol, Number from odf.opendocument import OpenDocumentSpreadsheet from odf.style import Style, TableCellProperties - from odf.number import NumberStyle, CurrencyStyle, CurrencySymbol, Number, Text super().write() @@ -448,9 +450,9 @@ class Ifc5DOdsWriter(Ifc5Dwriter): self.doc.save(os.path.join(self.output, file_name), True) def write_table(self, cost_schedule): - from odf.table import Table, TableRow, TableCell + from odf.number import CurrencySymbol, Number + from odf.table import Table, TableCell, TableRow from odf.text import P - from odf.number import NumberStyle, CurrencyStyle, CurrencySymbol, Number, Text def row(): return TableRow() @@ -594,11 +596,13 @@ class Ifc5DPdfWriter(Ifc5Dwriter): def write(self) -> None: import os - import ifc5d import shutil - import typst import tempfile + import typst + + import ifc5d + DEFAULT_OPTIONS = { "nested_structure_depth": 0, "parent_to_new_page_up_to_depth": 0, diff --git a/src/ifc5d/ifc5d/qto.py b/src/ifc5d/ifc5d/qto.py index deb14f0a22..955c6fd7af 100644 --- a/src/ifc5d/ifc5d/qto.py +++ b/src/ifc5d/ifc5d/qto.py @@ -18,24 +18,23 @@ import functools import itertools +import json +import multiprocessing import os import types -import json +from collections import defaultdict +from collections.abc import Iterable +from typing import Any, Literal, NamedTuple, Union, get_args + import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.pset import ifcopenshell.geom import ifcopenshell.ifcopenshell_wrapper as W -import ifcopenshell.util.unit import ifcopenshell.util.element +import ifcopenshell.util.representation import ifcopenshell.util.selector import ifcopenshell.util.shape -import ifcopenshell.util.representation -import ifcopenshell.util.type -import multiprocessing -from collections import defaultdict -from typing import Any, Literal, get_args, Union, NamedTuple -from collections.abc import Iterable +import ifcopenshell.util.unit class Function(NamedTuple): @@ -106,6 +105,7 @@ def quantify(ifc_file: ifcopenshell.file, elements: set[ifcopenshell.entity_inst for sty in entity_supertypes(ifc_file.schema_identifier, ty): if qtos := queries.get(casenorm.get(sty)): calculator.calculate(ifc_file, group_elements, qtos, results) + continue # Skip general path to avoid duplicate calculations # Fallback: per-query evaluation for query, qtos in queries.items(): @@ -544,8 +544,8 @@ class Blender(QtoCalculator): @classmethod def calculate(cls, ifc_file, elements, qtos, results): - import bonsai.tool as tool import bonsai.bim.module.qto.calculator as calculator + import bonsai.tool as tool unit_converter = SI2ProjectUnitConverter(ifc_file) formula_functions: dict[str, types.FunctionType] = {} diff --git a/src/ifc5d/pyproject.toml b/src/ifc5d/pyproject.toml index 4d89b8a108..8d51a63819 100644 --- a/src/ifc5d/pyproject.toml +++ b/src/ifc5d/pyproject.toml @@ -35,3 +35,9 @@ exclude = ["test*"] [tool.setuptools.package-data] "*" = ["*.*"] + +[tool.ruff] +extend = "../../pyproject.toml" +lint.select = [ + "F401", # unused imports +] diff --git a/src/ifc5d/test/test_csv2ifc.py b/src/ifc5d/test/test_csv2ifc.py index 49858ba386..c14a795da3 100644 --- a/src/ifc5d/test/test_csv2ifc.py +++ b/src/ifc5d/test/test_csv2ifc.py @@ -16,17 +16,18 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import tempfile import csv -import pytest +import tempfile +from pathlib import Path + import ifcopenshell import ifcopenshell.api.root import ifcopenshell.api.unit import ifcopenshell.util.cost -import ifcopenshell.util.element +import pytest + import ifc5d.csv2ifc import ifc5d.ifc5Dspreadsheet -from pathlib import Path class TestCsv2Ifc: diff --git a/src/ifcbimtester/bimtester/__init__.py b/src/ifcbimtester/bimtester/__init__.py index d76bea9460..180dbfaa6f 100644 --- a/src/ifcbimtester/bimtester/__init__.py +++ b/src/ifcbimtester/bimtester/__init__.py @@ -16,8 +16,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with BIMTester. If not, see . -from os.path import dirname -from os.path import realpath +from os.path import dirname, realpath __version__ = version = "0.0.0" diff --git a/src/ifcbimtester/bimtester/clean.py b/src/ifcbimtester/bimtester/clean.py index f457da2a59..d681a9fe29 100644 --- a/src/ifcbimtester/bimtester/clean.py +++ b/src/ifcbimtester/bimtester/clean.py @@ -16,10 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with BIMTester. If not, see . -import ifcopenshell import os from pathlib import Path +import ifcopenshell + class TestPurger: def __init__(self): diff --git a/src/ifcbimtester/bimtester/features/environment.py b/src/ifcbimtester/bimtester/features/environment.py index dc249f32d5..d9576dc885 100644 --- a/src/ifcbimtester/bimtester/features/environment.py +++ b/src/ifcbimtester/bimtester/features/environment.py @@ -17,15 +17,12 @@ # along with BIMTester. If not, see . import os -from behave.model import Scenario +from behave.model import Scenario from bimtester.ifc import IfcStore from bimtester.lang import switch_locale -from logfile import append_logfile -from logfile import create_logfile -from zoom_smart_view import add_smartview -from zoom_smart_view import create_zoom_set_of_smartviews - +from logfile import append_logfile, create_logfile +from zoom_smart_view import add_smartview, create_zoom_set_of_smartviews this_path = os.path.dirname(os.path.realpath(__file__)) diff --git a/src/ifcbimtester/bimtester/features/steps/aggregation/en.py b/src/ifcbimtester/bimtester/features/steps/aggregation/en.py index 70568d42cb..a2bbe621a1 100644 --- a/src/ifcbimtester/bimtester/features/steps/aggregation/en.py +++ b/src/ifcbimtester/bimtester/features/steps/aggregation/en.py @@ -16,8 +16,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with BIMTester. If not, see . -from behave import step, given, when, then, use_step_matcher - +from behave import given, step, then, use_step_matcher, when from bimtester import util from bimtester.ifc import IfcStore from bimtester.table import TableModel diff --git a/src/ifcbimtester/bimtester/features/steps/all.py b/src/ifcbimtester/bimtester/features/steps/all.py index a525eccf00..6c46e6450d 100644 --- a/src/ifcbimtester/bimtester/features/steps/all.py +++ b/src/ifcbimtester/bimtester/features/steps/all.py @@ -26,7 +26,7 @@ use_step_matcher("parse") from bimtester.features.steps.attributes_eleclasses import de, en use_step_matcher("parse") -from bimtester.features.steps.attributes_psets import en, de +from bimtester.features.steps.attributes_psets import de, en use_step_matcher("parse") from bimtester.features.steps.attributes_qsets import en diff --git a/src/ifcbimtester/bimtester/features/steps/application/en.py b/src/ifcbimtester/bimtester/features/steps/application/en.py index b2dbd5ffe7..9e40eb99b4 100644 --- a/src/ifcbimtester/bimtester/features/steps/application/en.py +++ b/src/ifcbimtester/bimtester/features/steps/application/en.py @@ -17,7 +17,6 @@ # along with BIMTester. If not, see . from behave import step - from bimtester.ifc import IfcStore from bimtester.lang import _ diff --git a/src/ifcbimtester/bimtester/features/steps/attributes_eleclasses/en.py b/src/ifcbimtester/bimtester/features/steps/attributes_eleclasses/en.py index f141eaee23..e032207acf 100644 --- a/src/ifcbimtester/bimtester/features/steps/attributes_eleclasses/en.py +++ b/src/ifcbimtester/bimtester/features/steps/attributes_eleclasses/en.py @@ -17,9 +17,7 @@ # along with BIMTester. If not, see . import ifcopenshell.util.element as eleutils - from behave import step - from bimtester import util from bimtester.ifc import IfcStore from bimtester.lang import _ diff --git a/src/ifcbimtester/bimtester/features/steps/attributes_psets/en.py b/src/ifcbimtester/bimtester/features/steps/attributes_psets/en.py index 6141213801..d9b41eb10a 100644 --- a/src/ifcbimtester/bimtester/features/steps/attributes_psets/en.py +++ b/src/ifcbimtester/bimtester/features/steps/attributes_psets/en.py @@ -16,9 +16,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with BIMTester. If not, see . -from behave import step -from behave import use_step_matcher - +from behave import step, use_step_matcher from bimtester import util from bimtester.ifc import IfcStore from bimtester.lang import _ @@ -48,6 +46,7 @@ def step_impl(context, ifc_class, property_path): ) def step_impl(context, ifc_class, property_path, pattern): import re + from ifcopenshell.util.element import get_psets pset_name, property_name = property_path.split(".") diff --git a/src/ifcbimtester/bimtester/features/steps/classification/en.py b/src/ifcbimtester/bimtester/features/steps/classification/en.py index 356d9cfd36..461b6b91e2 100644 --- a/src/ifcbimtester/bimtester/features/steps/classification/en.py +++ b/src/ifcbimtester/bimtester/features/steps/classification/en.py @@ -17,8 +17,8 @@ # along with BIMTester. If not, see . import json -from behave import step +from behave import step from bimtester import util from bimtester.ifc import IfcStore from bimtester.lang import _ diff --git a/src/ifcbimtester/bimtester/features/steps/element_classes/en.py b/src/ifcbimtester/bimtester/features/steps/element_classes/en.py index e41c0aad05..035ff05cf2 100644 --- a/src/ifcbimtester/bimtester/features/steps/element_classes/en.py +++ b/src/ifcbimtester/bimtester/features/steps/element_classes/en.py @@ -17,7 +17,6 @@ # along with BIMTester. If not, see . from behave import step - from bimtester import util from bimtester.ifc import IfcStore from bimtester.lang import _ diff --git a/src/ifcbimtester/bimtester/features/steps/geocoding/en.py b/src/ifcbimtester/bimtester/features/steps/geocoding/en.py index c9b4007d49..de0204ba55 100644 --- a/src/ifcbimtester/bimtester/features/steps/geocoding/en.py +++ b/src/ifcbimtester/bimtester/features/steps/geocoding/en.py @@ -17,7 +17,6 @@ # along with BIMTester. If not, see . from behave import step, use_step_matcher - from bimtester import util from bimtester.ifc import IfcStore from bimtester.lang import _ diff --git a/src/ifcbimtester/bimtester/features/steps/geolocation/en.py b/src/ifcbimtester/bimtester/features/steps/geolocation/en.py index 13aa359671..40568b6fe4 100644 --- a/src/ifcbimtester/bimtester/features/steps/geolocation/en.py +++ b/src/ifcbimtester/bimtester/features/steps/geolocation/en.py @@ -17,14 +17,13 @@ # along with BIMTester. If not, see . import math -import numpy as np + import ifcopenshell import ifcopenshell.util.element -import ifcopenshell.util.placement import ifcopenshell.util.geolocation - +import ifcopenshell.util.placement +import numpy as np from behave import step - from bimtester import util from bimtester.ifc import IfcStore from bimtester.lang import _ diff --git a/src/ifcbimtester/bimtester/features/steps/geometric_detail/en.py b/src/ifcbimtester/bimtester/features/steps/geometric_detail/en.py index 153cca30b5..5179a1d726 100644 --- a/src/ifcbimtester/bimtester/features/steps/geometric_detail/en.py +++ b/src/ifcbimtester/bimtester/features/steps/geometric_detail/en.py @@ -17,7 +17,6 @@ # along with BIMTester. If not, see . from behave import step - from bimtester import util from bimtester.ifc import IfcStore from bimtester.lang import _ diff --git a/src/ifcbimtester/bimtester/features/steps/model_federation/en.py b/src/ifcbimtester/bimtester/features/steps/model_federation/en.py index af0edc0975..db76d08484 100644 --- a/src/ifcbimtester/bimtester/features/steps/model_federation/en.py +++ b/src/ifcbimtester/bimtester/features/steps/model_federation/en.py @@ -18,9 +18,7 @@ import ifcopenshell.util.geolocation import ifcopenshell.util.placement - from behave import step - from bimtester import util from bimtester.ifc import IfcStore from bimtester.lang import _ diff --git a/src/ifcbimtester/bimtester/features/steps/project_setup/en.py b/src/ifcbimtester/bimtester/features/steps/project_setup/en.py index 84e3e84f58..c86990eb7d 100644 --- a/src/ifcbimtester/bimtester/features/steps/project_setup/en.py +++ b/src/ifcbimtester/bimtester/features/steps/project_setup/en.py @@ -17,7 +17,6 @@ # along with BIMTester. If not, see . from behave import step - from bimtester import util from bimtester.ifc import IfcStore from bimtester.lang import _ diff --git a/src/ifcbimtester/bimtester/features/steps/spatial_structure/en.py b/src/ifcbimtester/bimtester/features/steps/spatial_structure/en.py index 5eee990077..f57efa1713 100644 --- a/src/ifcbimtester/bimtester/features/steps/spatial_structure/en.py +++ b/src/ifcbimtester/bimtester/features/steps/spatial_structure/en.py @@ -17,7 +17,6 @@ # along with BIMTester. If not, see . from behave import step - from bimtester.ifc import IfcStore from bimtester.lang import _ diff --git a/src/ifcbimtester/bimtester/guiwidget.py b/src/ifcbimtester/bimtester/guiwidget.py index b9b02e81af..9c41a78b7e 100644 --- a/src/ifcbimtester/bimtester/guiwidget.py +++ b/src/ifcbimtester/bimtester/guiwidget.py @@ -16,18 +16,16 @@ # You should have received a copy of the GNU Lesser General Public License # along with BIMTester. If not, see . -import os import json +import os import sys import webbrowser +from PySide2 import QtCore, QtGui, QtWidgets + import bimtester.reports import bimtester.run -from PySide2 import QtCore -from PySide2 import QtGui -from PySide2 import QtWidgets - def run(): app = QtWidgets.QApplication(sys.argv) diff --git a/src/ifcbimtester/bimtester/reports.py b/src/ifcbimtester/bimtester/reports.py index df237f631b..2c250c7f85 100644 --- a/src/ifcbimtester/bimtester/reports.py +++ b/src/ifcbimtester/bimtester/reports.py @@ -19,8 +19,10 @@ import datetime import json import os -import pystache import sys + +import pystache + from bimtester.lang import _ diff --git a/src/ifcbimtester/bimtester/run.py b/src/ifcbimtester/bimtester/run.py index 5f0d58bd18..f4684cfb78 100644 --- a/src/ifcbimtester/bimtester/run.py +++ b/src/ifcbimtester/bimtester/run.py @@ -16,27 +16,29 @@ # You should have received a copy of the GNU Lesser General Public License # along with BIMTester. If not, see . -import os -import sys import json -import shutil import logging +import os +import shutil +import sys import tempfile + import ifcopenshell try: import ifcopenshell.express except: pass # They are using an old version of IfcOpenShell. Gracefully degrade for now. -import behave.formatter.pretty # Needed for pyinstaller to package it -from bimtester.ifc import IfcStore from distutils.dir_util import copy_tree -from behave.__main__ import main as behave_main - # TODO: refactor when this isn't super experimental from logging import StreamHandler +import behave.formatter.pretty # Needed for pyinstaller to package it +from behave.__main__ import main as behave_main + +from bimtester.ifc import IfcStore + class TestRunner: def __init__(self, ifc_path, schema_path=None, ifc=None): diff --git a/src/ifcbimtester/bimtester/util.py b/src/ifcbimtester/bimtester/util.py index a9e09b0b8e..16bdf06aa6 100644 --- a/src/ifcbimtester/bimtester/util.py +++ b/src/ifcbimtester/bimtester/util.py @@ -16,10 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with BIMTester. If not, see . +import json + import ifcopenshell import ifcopenshell.util.element import ifcopenshell.validate -import json + from bimtester.lang import _ diff --git a/src/ifcbimtester/cli.py b/src/ifcbimtester/cli.py index f091fc27ae..7172b62023 100644 --- a/src/ifcbimtester/cli.py +++ b/src/ifcbimtester/cli.py @@ -19,8 +19,9 @@ # along with BIMTester. If not, see . -import os import argparse +import os + import bimtester.clean import bimtester.reports import bimtester.run diff --git a/src/ifcbimtester/examples/steps/aggregation.py b/src/ifcbimtester/examples/steps/aggregation.py index 67435eee62..ccf46b5e0d 100644 --- a/src/ifcbimtester/examples/steps/aggregation.py +++ b/src/ifcbimtester/examples/steps/aggregation.py @@ -16,7 +16,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with BIMTester. If not, see . -from behave import step, given, when, then, use_step_matcher +from behave import given, step, then, use_step_matcher, when use_step_matcher("parse") diff --git a/src/ifcbimtester/examples/steps/attributes_eleclasses.py b/src/ifcbimtester/examples/steps/attributes_eleclasses.py index 466eff15c2..ed5475ac65 100644 --- a/src/ifcbimtester/examples/steps/attributes_eleclasses.py +++ b/src/ifcbimtester/examples/steps/attributes_eleclasses.py @@ -17,10 +17,8 @@ # along with BIMTester. If not, see . from behave import step - from utils import IfcFile - use_step_matcher("re") diff --git a/src/ifcbimtester/gui.py b/src/ifcbimtester/gui.py index 1fe0c6b674..6c5ada241b 100644 --- a/src/ifcbimtester/gui.py +++ b/src/ifcbimtester/gui.py @@ -21,5 +21,4 @@ from bimtester.guiwidget import run - run() diff --git a/src/ifcblender/io_import_scene_ifc/__init__.py b/src/ifcblender/io_import_scene_ifc/__init__.py index 29834b2356..c85864a6de 100644 --- a/src/ifcblender/io_import_scene_ifc/__init__.py +++ b/src/ifcblender/io_import_scene_ifc/__init__.py @@ -40,17 +40,18 @@ if "bpy" in locals(): if "ifcopenshell" in locals(): importlib.reload(ifcopenshell) +import logging +import os +from collections import defaultdict + +import bpy +import mathutils from bpy.props import ( BoolProperty, IntProperty, StringProperty, ) from bpy_extras.io_utils import ImportHelper -from collections import defaultdict -import bpy -import logging -import mathutils -import os major, minor = bpy.app.version[0:2] transpose_matrices = minor >= 62 diff --git a/src/ifccityjson/ifccityjson/__main__.py b/src/ifccityjson/ifccityjson/__main__.py index 284560b288..6a9e5e9881 100644 --- a/src/ifccityjson/ifccityjson/__main__.py +++ b/src/ifccityjson/ifccityjson/__main__.py @@ -17,7 +17,9 @@ # along with ifccityjson. If not, see . import argparse + from cjio import cityjson + from .cityjson2ifc import Cityjson2ifc diff --git a/src/ifccityjson/ifccityjson/cityjson2ifc/cityjson2ifc.py b/src/ifccityjson/ifccityjson/cityjson2ifc/cityjson2ifc.py index 441855baf4..f26f5c89d6 100644 --- a/src/ifccityjson/ifccityjson/cityjson2ifc/cityjson2ifc.py +++ b/src/ifccityjson/ifccityjson/cityjson2ifc/cityjson2ifc.py @@ -18,6 +18,8 @@ # along with ifccityjson. If not, see . import os +from datetime import datetime + import ifcopenshell import ifcopenshell.api import ifcopenshell.api.context @@ -26,10 +28,9 @@ import ifcopenshell.api.pset import ifcopenshell.api.root import ifcopenshell.api.unit import ifcopenshell.guid -from datetime import datetime -from .geometry import GeometryIO from . import __version__ +from .geometry import GeometryIO JSON_TO_IFC = { "Building": ["IfcBuilding"], diff --git a/src/ifcclash/README.md b/src/ifcclash/README.md new file mode 100644 index 0000000000..1a779c152e --- /dev/null +++ b/src/ifcclash/README.md @@ -0,0 +1,11 @@ +# IfcClash + +IFC clash detection library to handle intersections, collisions, and clearance checks between building elements in IFC models. + +## Features + +- **Multiple detection modes**: intersection, collision, and clearance checking +- **Flexible clash sets**: Compare elements within a single model or between multiple IFC files +- **Smart grouping**: Automatically group related clashes +- **Export options**: Export clash results to BCF-XML or JSON formats +- **Element filtering**: Use selectors to specify which elements to check for clashes diff --git a/src/ifcclash/ifcclash/__main__.py b/src/ifcclash/ifcclash/__main__.py index bc81131a53..13371a1119 100644 --- a/src/ifcclash/ifcclash/__main__.py +++ b/src/ifcclash/ifcclash/__main__.py @@ -18,10 +18,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcClash. If not, see . -import sys +import argparse import json import logging -import argparse +import sys + from .ifcclash import Clasher, ClashSettings parser = argparse.ArgumentParser(description="Clashes geometry between two IFC files") diff --git a/src/ifcclash/ifcclash/ifcclash.py b/src/ifcclash/ifcclash/ifcclash.py index 409fb914d7..6e8f05b3a8 100644 --- a/src/ifcclash/ifcclash/ifcclash.py +++ b/src/ifcclash/ifcclash/ifcclash.py @@ -20,15 +20,17 @@ from __future__ import annotations + import json -import time -import numpy as np import multiprocessing +import time +from logging import Logger +from typing import Literal, TypedDict, Union + import ifcopenshell import ifcopenshell.geom import ifcopenshell.util.selector -from logging import Logger -from typing import Literal, TypedDict, Union +import numpy as np from typing_extensions import NotRequired, assert_never @@ -256,9 +258,10 @@ class Clasher: json.dump(clash_sets, clashes_file, indent=4) def smart_group_clashes(self, clash_sets: list[ClashSet], max_clustering_distance: float): - from sklearn.cluster import OPTICS from collections import defaultdict + from sklearn.cluster import OPTICS + count_of_input_clashes = 0 count_of_clash_sets = 0 count_of_smart_groups = 0 diff --git a/src/ifcclash/make.py b/src/ifcclash/make.py index b4436f6e14..e15c972795 100644 --- a/src/ifcclash/make.py +++ b/src/ifcclash/make.py @@ -21,6 +21,5 @@ import os import subprocess - cmd = "pyinstaller ./bootstrap.py --name ifcclash --onefile --clean" subprocess.check_output(cmd, shell=True) diff --git a/src/ifcconvert/CMakeLists.txt b/src/ifcconvert/CMakeLists.txt new file mode 100644 index 0000000000..af46bc7dfe --- /dev/null +++ b/src/ifcconvert/CMakeLists.txt @@ -0,0 +1,27 @@ +# IfcConvert +if(WITH_RELATIONSHIP_VALIDATION) + file(GLOB IFCCONVERT_CPP_FILES *.cpp) + file(GLOB IFCCONVERT_H_FILES *.h) +else() + file(GLOB IFCCONVERT_CPP_FILES IfcConvert.cpp) + file(GLOB IFCCONVERT_H_FILES) +endif() +set(IFCCONVERT_FILES ${IFCCONVERT_CPP_FILES} ${IFCCONVERT_H_FILES}) +add_executable(IfcConvert ${IFCCONVERT_FILES}) + +target_link_libraries( + IfcConvert + PRIVATE + IfcGeom + IfcParse + Serializers + ${kernel_libraries} + ${OpenCASCADE_LIBRARIES} + ${Boost_LIBRARIES} + ${HDF5_LIBRARIES} + ${USD_LIBRARIES} + ${CGAL_LIBRARIES} + ${GLTF_LIBRARIES} +) + +install(TARGETS IfcConvert EXPORT ${IFCOPENSHELL_EXPORT_TARGETS}) diff --git a/src/ifcconvert/IfcConvert.cpp b/src/ifcconvert/IfcConvert.cpp index c41c1eab80..d31882ae4d 100644 --- a/src/ifcconvert/IfcConvert.cpp +++ b/src/ifcconvert/IfcConvert.cpp @@ -41,6 +41,7 @@ #include "../serializers/USDSerializer.h" #include "../serializers/TtlWktSerializer.h" #include "../serializers/RocksDbSerializer.h" +#include "../serializers/JsonSerializer.h" #include "../ifcgeom/IfcGeomFilter.h" #include "../ifcgeom/Iterator.h" @@ -49,10 +50,6 @@ #include "../ifcparse/utils.h" -#ifdef IFOPSH_WITH_CITYJSON -#include "./cityjson/geobim.h" -#endif - #ifdef IFOPSH_WITH_OPENCASCADE #include @@ -128,13 +125,13 @@ void print_usage(bool suggest_help = true) << " .stp STEP Standard for the Exchange of Product Data\n" << " .igs IGES Initial Graphics Exchange Specification\n" << " .xml XML Property definitions and decomposition tree\n" - << " .rdb RocksDB RocksDB Key-Value store serialization of IFC data\n" +#ifdef WITH_GLTF + << " .json JSON Property definitions and decomposition tree in xeokit json format\n" +#endif + << " .rdb RocksDB RocksDB Key-Value store serialization of IFC data\n" << " .svg SVG Scalable Vector Graphics (2D floor plan)\n" #ifdef WITH_HDF5 << " .h5 HDF Hierarchical Data Format storing positions, normals and indices\n" -#endif -#ifdef IFOPSH_WITH_CITYJSON - << " .cityjson City JSON format for geospatial data\n" #endif << " .ttl TTL/WKT RDF Turtle with Well-Known-Text geometry\n" << " .ifc IFC-SPF Industry Foundation Classes\n" @@ -654,9 +651,9 @@ int main(int argc, char** argv) { CACHE = IfcUtil::path::from_utf8(".cache"), HDF = IfcUtil::path::from_utf8(".h5"), XML = IfcUtil::path::from_utf8(".xml"), - // @todo this is just temporary as it doesn't make sense to require an extension for a DB + JSON = IfcUtil::path::from_utf8(".json"), + // @todo this is just temporary as it doesn't make sense to require an extension for a DB RDB = IfcUtil::path::from_utf8(".rdb"), - CITY_JSON = IfcUtil::path::from_utf8(".cityjson"), IFC = IfcUtil::path::from_utf8(".ifc"), USD = IfcUtil::path::from_utf8(".usd"), USDA = IfcUtil::path::from_utf8(".usda"), @@ -665,15 +662,23 @@ int main(int argc, char** argv) { // @todo clean up serializer selection // @todo detect program options that conflict with the chosen serializer - if (output_extension == XML) { + if (output_extension == XML || output_extension == JSON) { int exit_code = EXIT_FAILURE; try { if (init_input_file(IfcUtil::path::to_utf8(input_filename), ifc_file, no_progress || quiet, mmap)) { time_t start, end; time(&start); - XmlSerializer s(ifc_file, IfcUtil::path::to_utf8(output_temp_filename)); - Logger::Status("Writing XML output..."); - s.finalize(); + if (output_extension == XML) { + XmlSerializer s(ifc_file, IfcUtil::path::to_utf8(output_temp_filename)); + Logger::Status("Writing XML output..."); + s.finalize(); + } else { +#ifdef WITH_GLTF + JsonSerializer s(ifc_file, IfcUtil::path::to_utf8(output_temp_filename), JsonSerializer::JSON_DIALECT_CREOOX); + Logger::Status("Writing JSON output..."); + s.finalize(); +#endif + } time(&end); Logger::Status("Done! Conversion took " + format_duration(start, end)); @@ -742,84 +747,6 @@ int main(int argc, char** argv) { return exit_code; } #endif -#ifdef IFOPSH_WITH_CITYJSON - else if (output_extension == CITY_JSON || (output_extension == OBJ || output_extension == DAE || output_extension == GLB) && vmap.count("exterior-only") && exterior_only_algo != "none") { - - // none, convex-decomposition, minkowski-triangles or halfspace-snapping - boost::to_lower(exterior_only_algo); - - if (exterior_only_algo == "halfspace-snapping") { - cerr_ << "[Error] halfspace-snapping not implemented yet" << std::endl; - print_usage(); - return EXIT_FAILURE; - } else if (exterior_only_algo == "minkowski-triangles") { - // - } else if (exterior_only_algo == "convex-decomposition") { - // - } else if (exterior_only_algo == "none") { - // - } else { - cerr_ << "[Error] --exterior-only should be convex-decomposition|minkowski-triangles|halfspace-snapping" << std::endl; - print_usage(); - return EXIT_FAILURE; - } - - geobim_settings settings; - settings.input_filenames = { IfcUtil::path::to_utf8(input_filename) }; - settings.file = { new IfcParse::IfcFile(IfcUtil::path::to_utf8(input_filename)) }; - - /* - // No longer set, because we pass to real serializers now, awaiting a proper iterator adaptor - if (output_extension == OBJ) { - settings.obj_output_filename = IfcUtil::path::to_utf8(output_filename); - } - */ - - if (output_extension == CITY_JSON) { - // we don't have a cityjson serializer though - settings.cityjson_output_filename = IfcUtil::path::to_utf8(output_filename); - } - - // @todo - settings.radii = { "0.05" }; - settings.apply_openings = false; - settings.apply_openings_posthoc = true; - settings.debug = false; - settings.exact_segmentation = true; - settings.minkowski_triangles = exterior_only_algo == "minkowski-triangles"; - settings.no_erosion = false; - settings.spherical_padding = false; - if (num_threads != 1) { - settings.threads = num_threads; - } - - settings.settings.get().value = false; - settings.settings.get().value = false; - settings.settings.get().value = true; - settings.settings.get().value = true; - settings.settings.get().value = ifcopenshell::geometry::settings::NATIVE; - settings.settings.get().value = !settings.apply_openings; - - if (include_filter.type != geom_filter::UNUSED) { - settings.entity_names = include_filter.values; - settings.entity_names_included = true; - } else if (exclude_filter.type != geom_filter::UNUSED) { - settings.entity_names = exclude_filter.values; - settings.entity_names_included = false; - } else { - settings.entity_names = { { "IfcSpace", "IfcOpeningElement" } }; - settings.entity_names_included = false; - } - - elems_from_adaptor.emplace(); - perform(settings, *elems_from_adaptor); - - if (output_extension == CITY_JSON) { - return 0; - } - // else ... continue on to serialize elems_from_adaptor - } -#endif /// @todo Clean up this filter code further. std::vector used_filters; @@ -867,8 +794,8 @@ int main(int argc, char** argv) { geometry_settings.get().value = true; } - if (geometry_settings.get().get() && output_extension != DAE && output_extension != USD && output_extension != USDA && output_extension != USDC) { - cerr_ << "[Error] --use-element-hierarchy can be used only with .dae or .usd output.\n"; + if (geometry_settings.get().get() && output_extension != DAE && output_extension != USD && output_extension != USDA && output_extension != USDC && output_extension != GLB) { + cerr_ << "[Error] --use-element-hierarchy can be used only with .dae or .usd or .glb output.\n"; /// @todo Lots of duplicate error-and-exit code. write_log(!quiet); print_usage(); @@ -1359,12 +1286,14 @@ bool init_input_file(const std::string& filename, IfcParse::IfcFile*& ifc_file, requires_init = true; } - ifc_file->bypass_type("IfcRelDefinesByProperties"); - ifc_file->bypass_type("IfcPropertySetDefinition"); - ifc_file->bypass_type("IfcProperty"); - ifc_file->bypass_type("IfcMaterialProperties"); - ifc_file->bypass_type("IfcProfileProperties"); - ifc_file->bypass_type("IfcPhysicalQuantity"); + if (bypass_properties) { + ifc_file->bypass_type("IfcRelDefinesByProperties"); + ifc_file->bypass_type("IfcPropertySetDefinition"); + ifc_file->bypass_type("IfcProperty"); + ifc_file->bypass_type("IfcMaterialProperties"); + ifc_file->bypass_type("IfcProfileProperties"); + ifc_file->bypass_type("IfcPhysicalQuantity"); + } #ifdef USE_MMAP if (mmap) { diff --git a/src/ifcconvert/cityjson b/src/ifcconvert/cityjson deleted file mode 160000 index a9488c8d8f..0000000000 --- a/src/ifcconvert/cityjson +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a9488c8d8fd1c32eb23118596819ab54225cdfb4 diff --git a/src/ifccsv/README.md b/src/ifccsv/README.md new file mode 100644 index 0000000000..0b8395f963 --- /dev/null +++ b/src/ifccsv/README.md @@ -0,0 +1,12 @@ +# IfcCSV + +A utility to interact with IFC data through CSV. Export and import IFC data from and to CSV, ODS, XLSX formats, and pandas DataFrames. Enables bulk editing of IFC properties and schedules using spreadsheet tools. + +## Features + +- **Export IFC data**: Extract element properties and attributes to spreadsheet formats +- **Import changes**: Update IFC models from modified spreadsheets +- **Multiple formats**: Support for CSV, ODS (OpenDocument Spreadsheet), XLSX (Excel), and pandas DataFrames +- **Flexible queries**: Use selectors to specify which elements and attributes to export +- **Data transformations**: Group, summarize, format, and sort results +- **Preserve existing data**: Update existing spreadsheets while preserving formatting diff --git a/src/ifccsv/ifccsv.py b/src/ifccsv/ifccsv.py index 076e54d5c3..f6d3157f81 100755 --- a/src/ifccsv/ifccsv.py +++ b/src/ifccsv/ifccsv.py @@ -20,23 +20,21 @@ # This can be packaged with `pyinstaller --onefile --clean --icon=icon.ico ifccsv.py` +import argparse +import csv import os import re -import csv -import argparse +from collections.abc import Iterable +from statistics import mean +from typing import Literal, Optional, Union + import ifcopenshell import ifcopenshell.util.selector -import ifcopenshell.util.element -import ifcopenshell.util.schema -from statistics import mean -from typing import Optional, Union, Literal -from collections.abc import Iterable try: from odf.namespaces import OFFICENS - from odf.opendocument import OpenDocumentSpreadsheet, load - from odf.style import Style, TableCellProperties - from odf.table import Table, TableRow, TableCell + from odf.opendocument import load + from odf.table import Table, TableCell, TableRow from odf.text import P except: pass # No ODF support @@ -411,8 +409,7 @@ class IfcCsv: concat: str = ", ", ) -> None: """ - Args: - table: filepath to the table. + :param table: filepath to the table. """ ext: FILE_FORMAT = table.split(".")[-1].lower() diff --git a/src/ifccsv/pyproject.toml b/src/ifccsv/pyproject.toml index 4485d411e5..c012decd23 100644 --- a/src/ifccsv/pyproject.toml +++ b/src/ifccsv/pyproject.toml @@ -26,3 +26,9 @@ Issues = "https://github.com/IfcOpenShell/IfcOpenShell/issues" [tool.setuptools] py-modules = ["ifccsv"] + +[tool.ruff] +extend = "../../pyproject.toml" +lint.select = [ + "F401", # unused imports +] diff --git a/src/ifcdiff/README.md b/src/ifcdiff/README.md new file mode 100644 index 0000000000..93091c2c23 --- /dev/null +++ b/src/ifcdiff/README.md @@ -0,0 +1,19 @@ +# IfcDiff + +Compare IFC models for changes to geometry, properties, and structure. Compares the differences between two IFC models, including changes to geometry, properties, relationships, and spatial structure. Outputs differences in JSON format for further processing or reporting. + +## Features + +- **Element tracking**: Identify added and deleted elements between models +- **Relationship comparison**: Track changes in multiple relationship types: + - Geometry + - Attributes + - Type assignments + - Properties + - Spatial containers + - Aggregations + - Classifications +- **Flexible filtering**: Compare only specific element types using IFC selectors +- **Configurable depth**: Choose between shallow (first difference only) or deep (all differences) comparison +- **JSON export**: Export comparison results in JSON format for further processing +- **Precision control**: Configure geometric comparison precision diff --git a/src/ifcdiff/ifcdiff.py b/src/ifcdiff/ifcdiff.py index 889f23ca37..c7d6bb5d03 100755 --- a/src/ifcdiff/ifcdiff.py +++ b/src/ifcdiff/ifcdiff.py @@ -20,23 +20,23 @@ # This can be packaged with `pyinstaller --onefile --clean --icon=icon.ico ifcdiff.py` -import time +import argparse import json import logging -import argparse -import numpy as np import multiprocessing +import time +from typing import Any, Literal, Optional, Union + import ifcopenshell import ifcopenshell.geom -import ifcopenshell.util.element -import ifcopenshell.util.selector -import ifcopenshell.util.placement import ifcopenshell.util.classification +import ifcopenshell.util.element +import ifcopenshell.util.placement import ifcopenshell.util.representation +import ifcopenshell.util.selector +import numpy as np from deepdiff import DeepDiff from orderly_set import OrderedSet -from typing import Optional, Union, Literal, Any - __version__ = version = "0.0.0" diff --git a/src/ifcdiff/pyproject.toml b/src/ifcdiff/pyproject.toml index 128df11763..b23b6718e8 100644 --- a/src/ifcdiff/pyproject.toml +++ b/src/ifcdiff/pyproject.toml @@ -8,7 +8,7 @@ version = "0.0.0" authors = [ { name="Dion Moult", email="dion@thinkmoult.com" }, ] -description = "Compares the differences between two IFC models" +description = "Compare IFC models for changes to geometry, properties, and structure" readme = "README.md" keywords = ["IFC", "Diff"] classifiers = [ diff --git a/src/ifcdiff/test.py b/src/ifcdiff/test.py index c9e632091f..ca294a1ed4 100644 --- a/src/ifcdiff/test.py +++ b/src/ifcdiff/test.py @@ -16,7 +16,6 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcdiff import ifcopenshell import ifcopenshell.api.context import ifcopenshell.api.geometry @@ -24,6 +23,8 @@ import ifcopenshell.api.root import ifcopenshell.api.unit import ifcopenshell.util.representation +import ifcdiff + def setup_project() -> ifcopenshell.file: ifc_file = ifcopenshell.file(schema="IFC4") diff --git a/src/ifcfm/ifcfm/__init__.py b/src/ifcfm/ifcfm/__init__.py index 14fa76146d..ced960305c 100644 --- a/src/ifcfm/ifcfm/__init__.py +++ b/src/ifcfm/ifcfm/__init__.py @@ -17,15 +17,17 @@ # along with IfcFM. If not, see . from __future__ import annotations -import os -import re + import csv import importlib -import ifcopenshell.util.selector -from pathlib import Path +import os +import re from collections import defaultdict -from typing import Literal, Union, Any, TYPE_CHECKING from collections.abc import Callable +from pathlib import Path +from typing import TYPE_CHECKING, Any, Literal, Union + +import ifcopenshell.util.selector try: from openpyxl import Workbook @@ -37,7 +39,7 @@ try: import odf.namespaces as odf_ns from odf.opendocument import OpenDocumentSpreadsheet from odf.style import Style, TableCellProperties, TableProperties - from odf.table import Table, TableRow, TableCell + from odf.table import Table, TableCell, TableRow from odf.text import P except: pass # No ODF support diff --git a/src/ifcfm/ifcfm/__main__.py b/src/ifcfm/ifcfm/__main__.py index 9133611716..8affc93d29 100644 --- a/src/ifcfm/ifcfm/__main__.py +++ b/src/ifcfm/ifcfm/__main__.py @@ -16,10 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcFM. If not, see . -import ifcfm import argparse + import ifcopenshell +import ifcfm + parser = argparse.ArgumentParser(description="Extracts FM data from IFC to spreadsheets") parser.add_argument( "-p", diff --git a/src/ifcfm/ifcfm/basic.py b/src/ifcfm/ifcfm/basic.py index 62fbdd47e0..7cd5801c6d 100644 --- a/src/ifcfm/ifcfm/basic.py +++ b/src/ifcfm/ifcfm/basic.py @@ -16,6 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcFM. If not, see . +from typing import Any, Optional, Union + import ifcopenshell import ifcopenshell.util.classification import ifcopenshell.util.date @@ -23,7 +25,6 @@ import ifcopenshell.util.element import ifcopenshell.util.fm import ifcopenshell.util.placement import ifcopenshell.util.system -from typing import Any, Union, Optional def get_facilities(ifc_file: ifcopenshell.file) -> list[ifcopenshell.entity_instance]: diff --git a/src/ifcfm/ifcfm/cobie24.py b/src/ifcfm/ifcfm/cobie24.py index 778d49de79..f4848e1654 100644 --- a/src/ifcfm/ifcfm/cobie24.py +++ b/src/ifcfm/ifcfm/cobie24.py @@ -16,6 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcFM. If not, see . +from collections.abc import Generator +from typing import Any, Optional, Union + import ifcopenshell import ifcopenshell.geom import ifcopenshell.util.classification @@ -26,9 +29,6 @@ import ifcopenshell.util.placement import ifcopenshell.util.shape import ifcopenshell.util.system from ifcopenshell.util.shape_builder import np_matrix_to_euler -from typing import Any, Union, Optional -from collections.abc import Generator - # The original BIMServer plugin has a function called ifcToCOBie: # https://github.com/opensourceBIM/COBie-plugins/blob/master/COBieShared/src/org/bimserver/cobie/shared/serialization/COBieTabSerializer.java#L54 diff --git a/src/ifcfm/ifcfm/cobie24legacy.py b/src/ifcfm/ifcfm/cobie24legacy.py index 6e5eaf84c2..078529e892 100644 --- a/src/ifcfm/ifcfm/cobie24legacy.py +++ b/src/ifcfm/ifcfm/cobie24legacy.py @@ -16,6 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcFM. If not, see . +from typing import Any, Optional, Union + import ifcopenshell import ifcopenshell.guid import ifcopenshell.util.classification @@ -24,8 +26,6 @@ import ifcopenshell.util.element import ifcopenshell.util.fm import ifcopenshell.util.placement import ifcopenshell.util.system -from typing import Any, Union, Optional - # The original BIMServer plugin has a function called ifcToCOBie: # https://github.com/opensourceBIM/COBie-plugins/blob/master/COBieShared/src/org/bimserver/cobie/shared/serialization/COBieTabSerializer.java#L54 diff --git a/src/ifcgeom/CMakeLists.txt b/src/ifcgeom/CMakeLists.txt new file mode 100644 index 0000000000..31bb2e7bce --- /dev/null +++ b/src/ifcgeom/CMakeLists.txt @@ -0,0 +1,46 @@ +add_subdirectory(kernels) +set(kernel_libraries ${kernel_libraries} PARENT_SCOPE) + +if((BUILD_CONVERT OR BUILD_IFCPYTHON) AND WITH_OPENCASCADE) + add_subdirectory(Serialization) + set(IFCOPENSHELL_LIBRARIES ${IFCOPENSHELL_LIBRARIES} PARENT_SCOPE) +endif() + +add_subdirectory(mapping) + +# IfcGeom (schema agnostic) +file(GLOB SCHEMA_AGNOSTIC_H_FILES *.h) +file(GLOB SCHEMA_AGNOSTIC_CPP_FILES *.cpp) +set(SCHEMA_AGNOSTIC_FILES ${SCHEMA_AGNOSTIC_H_FILES} ${SCHEMA_AGNOSTIC_CPP_FILES}) + +add_library(IfcGeom ${SCHEMA_AGNOSTIC_FILES}) +set_target_properties( + IfcGeom + PROPERTIES + COMPILE_FLAGS -DIFC_GEOM_EXPORTS + VERSION "${PROJECT_VERSION}" + SOVERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}" + PUBLIC_HEADER "${SCHEMA_AGNOSTIC_H_FILES}" +) + +if(UNIX) + find_package(Threads) +endif() + +find_package(Eigen3 REQUIRED) + +target_link_libraries(IfcGeom ${mapping_libraries} ${CMAKE_THREAD_LIBS_INIT} "Eigen3::Eigen" ${CGAL_LIBRARIES}) + +if(WITH_OPENCASCADE) + target_link_libraries(IfcGeom TKernel) +endif() + +if(NOT WASM_BUILD) + target_link_libraries(IfcGeom IfcParse) +endif() + +install( + TARGETS IfcGeom + EXPORT ${IFCOPENSHELL_EXPORT_TARGETS} + PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/ifcgeom" +) diff --git a/src/ifcgeom/ConversionSettings.h b/src/ifcgeom/ConversionSettings.h index 720d25ba66..febd789f6b 100644 --- a/src/ifcgeom/ConversionSettings.h +++ b/src/ifcgeom/ConversionSettings.h @@ -452,6 +452,12 @@ namespace ifcopenshell { static constexpr bool defaultvalue = false; }; + struct MakeVolume : public SettingBase { + static constexpr const char* const name = "make-volume"; + static constexpr const char* const description = "Try to isolate and fix a valid volume from non-manifold elements prior to opening subtraction"; + static constexpr bool defaultvalue = false; + }; + struct DeferProcessingFirstElement : public SettingBase { static constexpr const char* const name = "defer-processing-first-element"; static constexpr const char* const description = "Don't process first element in Iterator::initialize call()"; @@ -647,7 +653,7 @@ namespace ifcopenshell { }; class Settings : public SettingsContainer< - std::tuple + std::tuple > {}; } diff --git a/src/ifcgeom/GeometrySerializer.h b/src/ifcgeom/GeometrySerializer.h index deef2c59c2..d8d4605de5 100644 --- a/src/ifcgeom/GeometrySerializer.h +++ b/src/ifcgeom/GeometrySerializer.h @@ -87,12 +87,17 @@ inline namespace settings { static constexpr const char* const description = "Use a geometrical section rather than full polyhedral output and footprint in TTL WKT"; static constexpr bool defaultvalue = false; }; + + struct SeparateZUpNode : public SettingBase { + static constexpr const char* const name = "separate-z-up-node"; + static constexpr const char* const description = "Introduce a separate Z-Up node into the GlTF hierarchy instead of multiplying the transform into the root node matrices"; + static constexpr bool defaultvalue = false; + }; } class SerializerSettings : public SettingsContainer < // @todo should we use tuple_cat here to unify the settings into a single class? - std::tuple -> + std::tuple> {}; } diff --git a/src/ifcgeom/IfcGeomRepresentation.cpp b/src/ifcgeom/IfcGeomRepresentation.cpp index 48346b2831..f0c150597e 100644 --- a/src/ifcgeom/IfcGeomRepresentation.cpp +++ b/src/ifcgeom/IfcGeomRepresentation.cpp @@ -91,7 +91,7 @@ bool IfcGeom::Representation::BRep::calculate_volume(double& volume) const { volume = 0.; return false; } - volume = s->area()->to_double(); + volume = s->volume()->to_double(); return true; } diff --git a/src/ifcgeom/Iterator.cpp b/src/ifcgeom/Iterator.cpp index 2ea32947a3..a7f700f4de 100644 --- a/src/ifcgeom/Iterator.cpp +++ b/src/ifcgeom/Iterator.cpp @@ -564,13 +564,19 @@ IfcGeom::Element* IfcGeom::Iterator::get() // We need to find all the parents while (parent_object != NULL && hasParent && parent_object->parent_id() != -1) { // Find the next parent - try { - parent_object = get_object(parent_object->parent_id()); - } catch (const std::exception& e) { - Logger::Error(e); - hasParent = false; - } - + auto pid = parent_object->parent_id(); + auto ifc_product = ifc_file->instance_by_id(pid)->as(); + if (ifc_product->declaration().name() == "IfcProject") { + hasParent = false; + } else { + try { + parent_object = get_object(pid); + } catch (const std::exception& e) { + Logger::Error(e); + hasParent = false; + } + } + // Add the previously found parent to the vector if (hasParent) parents.insert(parents.begin(), parent_object); diff --git a/src/ifcgeom/Serialization/CMakeLists.txt b/src/ifcgeom/Serialization/CMakeLists.txt new file mode 100644 index 0000000000..0c49136101 --- /dev/null +++ b/src/ifcgeom/Serialization/CMakeLists.txt @@ -0,0 +1,20 @@ +add_subdirectory(schema) + +add_library(geometry_serializer Serialization.cpp) +file(GLOB IFCGEOM_SERIALIZATION_H_FILE *.h) + +set_target_properties( + geometry_serializer + PROPERTIES COMPILE_FLAGS "-DIFC_GEOMSERIALIZATION_EXPORTS" PUBLIC_HEADER "${IFCGEOM_SERIALIZATION_H_FILE}" +) +target_link_libraries(geometry_serializer ${geometry_serializer_libraries} IfcParse) +set(IFCOPENSHELL_LIBRARIES ${IFCOPENSHELL_LIBRARIES} "geometry_serializer" ${geometry_serializer_libraries}) +set(IFCOPENSHELL_LIBRARIES ${IFCOPENSHELL_LIBRARIES} PARENT_SCOPE) + +install( + TARGETS geometry_serializer ${geometry_serializer_libraries} + EXPORT ${IFCOPENSHELL_EXPORT_TARGETS} + PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/ifcgeom/Serialization" +) + +set(geometry_serializer_libraries ${geometry_serializer_libraries} PARENT_SCOPE) diff --git a/src/ifcgeom/Serialization/schema/CMakeLists.txt b/src/ifcgeom/Serialization/schema/CMakeLists.txt new file mode 100644 index 0000000000..583c177634 --- /dev/null +++ b/src/ifcgeom/Serialization/schema/CMakeLists.txt @@ -0,0 +1,10 @@ +foreach(schema ${SCHEMA_VERSIONS}) + add_library(geometry_serializer_ifc${schema} OBJECT Serialization.cpp) + target_link_libraries(geometry_serializer_ifc${schema} ${OpenCASCADE_LIBRARIES}) + set_target_properties( + geometry_serializer_ifc${schema} + PROPERTIES COMPILE_FLAGS "-DIFC_GEOMSERIALIZATION_EXPORTS -DIfcSchema=Ifc${schema}" + ) + list(APPEND geometry_serializer_libraries geometry_serializer_ifc${schema}) +endforeach() +set(geometry_serializer_libraries ${geometry_serializer_libraries} PARENT_SCOPE) diff --git a/src/ifcgeom/infra_sweep_helper.cpp b/src/ifcgeom/infra_sweep_helper.cpp index f9d50f5b00..58f6d3108a 100644 --- a/src/ifcgeom/infra_sweep_helper.cpp +++ b/src/ifcgeom/infra_sweep_helper.cpp @@ -14,6 +14,27 @@ namespace { } } +namespace { +template > +bool has_intersection(const std::set& A, + const std::set& B) { + auto itA = A.begin(); + auto itB = B.begin(); + + while (itA != A.end() && itB != B.end()) { + if (Cmp()(*itA, *itB)) { + ++itA; + } else if (Cmp()(*itB, *itA)) { + ++itB; + } else { + return true; + } + } + return false; +} + +} + taxonomy::loft::ptr ifcopenshell::geometry::make_loft(const Settings& settings_, const IfcUtil::IfcBaseClass* inst, const taxonomy::function_item::ptr& fn, std::vector& cross_sections) { std::sort(cross_sections.begin(), cross_sections.end()); @@ -25,7 +46,7 @@ taxonomy::loft::ptr ifcopenshell::geometry::make_loft(const Settings& settings_, // @todo currently only the case is handled where directrix returns a function_item // @todo this "if" statement is not really required because the function returns at the start if the Directrix is not a function_item function if (fn) { - function_item_evaluator evaluator(settings_,fn); + function_item_evaluator evaluator(settings_, fn); double start = std::max(0., cross_sections.front().dist_along); double end = std::min(fn->length(), cross_sections.back().dist_along); @@ -45,6 +66,7 @@ taxonomy::loft::ptr ifcopenshell::geometry::make_loft(const Settings& settings_, // parameter is minimum number of steps num_steps = (size_t)std::ceil(param); } + auto delta_step = curve_length / num_steps; std::vector longitudes; for (auto& x : cross_sections) { longitudes.push_back(x.dist_along); @@ -52,7 +74,7 @@ taxonomy::loft::ptr ifcopenshell::geometry::make_loft(const Settings& settings_, longitudes.push_back(std::numeric_limits::infinity()); auto profile_index = longitudes.begin(); for (size_t i = 0; i <= num_steps; ++i) { - auto dist_along = start + curve_length / num_steps * i; + auto dist_along = start + delta_step * i; while (dist_along > *(profile_index + 1)) { profile_index++; if (profile_index == longitudes.end()) { @@ -60,6 +82,8 @@ taxonomy::loft::ptr ifcopenshell::geometry::make_loft(const Settings& settings_, } } + const bool is_last_placement_of_this_profile = profile_index + 1 >= longitudes.end() ? false : ((start + delta_step * (i+1)) > *(profile_index + 1)); + auto relative_dist_along = (dist_along - *profile_index) / (*(profile_index + 1) - *profile_index); const auto& profile_a = cross_sections[std::distance(longitudes.begin(), profile_index)].section_geometry; const auto& offset_a = cross_sections[std::distance(longitudes.begin(), profile_index)].offset; @@ -136,46 +160,234 @@ taxonomy::loft::ptr ifcopenshell::geometry::make_loft(const Settings& settings_, } auto interpolated_offset = lerp(offset_a, offset_b, relative_dist_along); - if (rotation_a && rotation_b) { - // @todo we don't support an overridden rotation on only one of the placements - // in which case we would need to lerp with the rotation component below in m4b. - interpolated_rotation = lerp(*rotation_a, *rotation_b, relative_dist_along); - } else { + if (rotation_a == rotation_b && rotation_a) { + // @todo we don't support an overridden rotation on only one of the placements + // in which case we would need to lerp with the rotation component below in m4b. + interpolated_rotation = lerp(*rotation_a, *rotation_b, relative_dist_along); + } else if (rotation_a != rotation_b) { Logger::Error("Direction vectors on cross section placements only supported when used consistently"); } + taxonomy::loop::ptr w1, w2; taxonomy::edge::ptr e1, e2; + taxonomy::point3::ptr p1, p2; + for (auto tmp_ : boost::combine(loops_a, loops_b)) { boost::tie(w1, w2) = tmp_; - if (w1->children.size() != w2->children.size()) { - Logger::Warning("Mismatching number of edges: " + - std::to_string(w1->children.size()) + " vs " + - std::to_string(w2->children.size()), - inst - ); - return nullptr; - } - std::vector points; - for (auto tmp__ : boost::combine(w1->children, w2->children)) { - boost::tie(e1, e2) = tmp__; - auto& p1 = boost::get(e1->start); - auto& p2 = boost::get(e2->start); - auto p3 = (lerp(p1->ccomponents(), p2->ccomponents(), relative_dist_along) + interpolated_offset).eval(); - // auto p4 = (interpolated_rotation * p3).eval(); - points.push_back(taxonomy::make(p3)); + if (w1->closed != w2->closed) { + Logger::Warning("Mismatching closed property on loops", inst); + return nullptr; + } + + if (w1->tags.is_initialized() != w2->tags.is_initialized()) { + Logger::Warning("Mismatching availability tags on loops", inst); + return nullptr; + } + + if (w1->tags) { + // check uniqueness + std::set tags_seen; + for (const auto& t : *w1->tags) { + if (tags_seen.find(t) != tags_seen.end()) { + Logger::Warning("Duplicate tag '" + t + "' on loft profile", inst); + return nullptr; + } + tags_seen.insert(t); + } } - if (!points.empty()) { - // close polygon by referencing first point - // @todo add a closed=true|false to polygon_from_points()? - points.push_back(points.front()); + + if (w2->tags) { + // check uniqueness + std::set tags_seen; + for (const auto& t : *w2->tags) { + if (tags_seen.find(t) != tags_seen.end()) { + Logger::Warning("Duplicate tag '" + t + "' on loft profile", inst); + return nullptr; + } + tags_seen.insert(t); + } + } + + std::map tag_to_point_on_w1, tag_to_point_on_w2; + + auto loop_to_points = [](const taxonomy::loop::ptr& loop, const boost::optional>& input_tags) -> std::pair, std::vector>> { + std::vector points; + std::vector> tags; + std::vector::const_iterator tag_it; + + if (!loop->closed.get_value_or(false)) { + points = {boost::get(loop->children[0]->start)}; + if (input_tags) { + tags = {{input_tags->front()}}; + tag_it = ++input_tags->begin(); + } + } + for (auto& e : loop->children) { + const auto& p1_ = boost::get(e->start); + const auto& p2_ = boost::get(e->end); + if (input_tags && p1_->ccomponents() == p2_->ccomponents()) { + tags.back().insert(*tag_it); + ++tag_it; + } else { + points.push_back(p2_); + if (input_tags) { + tags.emplace_back(); + tags.back().insert(*tag_it); + ++tag_it; + } + } + } + if (!input_tags) { + if (loop->closed.get_value_or(false)) { + // close polygon by referencing first point + points.push_back(points.front()); + } + } + return {points, tags}; + }; + + auto combine_tags = [](const std::vector>& tag_sets) -> std::set { + return std::accumulate( + tag_sets.begin(), tag_sets.end(), std::set{}, + [](std::set acc, + const std::set& m) { + acc.insert(m.begin(), m.end()); + return acc; + }); + }; + + auto join_tags = [](const std::set& tag_set) -> std::string { + std::string result; + for (auto it = tag_set.begin(); it != tag_set.end(); ++it) { + if (it != tag_set.begin()) { + result += ", "; + } + result += *it; + } + return result; + }; + + auto [w1_points, w1_tags] = loop_to_points(w1, w1->tags); + auto [w2_points, w2_tags] = loop_to_points(w2, w2->tags); + + if (w1->tags && w2->tags) { + { + auto it = w1_points.begin(); + auto jt = w1_tags.begin(); + while (it != w1_points.end() && jt != w1_tags.end()) { + for (auto& t : *jt) { + tag_to_point_on_w1[t] = *it; + } + ++it; + ++jt; + } + } + + { + auto it = w2_points.begin(); + auto jt = w2_tags.begin(); + while (it != w2_points.end() && jt != w2_tags.end()) { + for (auto& t : *jt) { + tag_to_point_on_w2[t] = *it; + } + ++it; + ++jt; + } + } + + auto w1_tags_combined = combine_tags(w1_tags); + auto w2_tags_combined = combine_tags(w2_tags); + + // For every point (which can have multiple tags in case of 0-width edges) there needs to be a corresponding point on the other profile + + for (auto& p1_tags : w1_tags) { + if (!has_intersection(p1_tags, w2_tags_combined)) { + Logger::Warning("No matching tags found on loft profiles: " + join_tags(p1_tags) + " not in " + join_tags(w2_tags_combined), inst); + return nullptr; + } + } + + for (auto& p2_tags : w2_tags) { + if (!has_intersection(p2_tags, w1_tags_combined)) { + Logger::Warning("No matching tags found on loft profiles: " + join_tags(p2_tags) + " not in " + join_tags(w1_tags_combined), inst); + return nullptr; + } + } + } else { + if (w1->children.size() != w2->children.size()) { + Logger::Warning("Mismatching number of edges: " + + std::to_string(w1->children.size()) + " vs " + + std::to_string(w2->children.size()), + inst); + return nullptr; + } } + std::vector points; + + std::vector common_tags_vec; + if (w1->tags) { + std::set common_tags; + for (const auto& t : *w1->tags) { + if (tag_to_point_on_w2.find(t) == tag_to_point_on_w2.end()) { + continue; + } + + const auto& p1_ = tag_to_point_on_w1[t]; + const auto& p2_ = tag_to_point_on_w2[t]; + + auto p3 = (lerp(p1_->ccomponents(), p2_->ccomponents(), relative_dist_along) + interpolated_offset).eval(); + + std::set tags_for_this_point_on_subsequent_profile = {t}; + + if (is_last_placement_of_this_profile) { + for (auto& ts : w2_tags) { + if (ts.find(t) != ts.end()) { + tags_for_this_point_on_subsequent_profile = ts; + } + } + } + + for (auto& x : tags_for_this_point_on_subsequent_profile) { + points.push_back(taxonomy::make(p3)); + common_tags_vec.push_back(x); + } + } + } else { + for (auto tmp__ : boost::combine(w1_points, w2_points)) { + boost::tie(p1, p2) = tmp__; + auto p3 = (lerp(p1->ccomponents(), p2->ccomponents(), relative_dist_along) + interpolated_offset).eval(); + points.push_back(taxonomy::make(p3)); + } + } + + /* + // This is handled in the loop_to_points() function above + if (!points.empty()) { + if (!w1->closed.get_value_or(true) && !w2->closed.get_value_or(true)) { + // open polygon, add last point + auto& p1 = boost::get(w1->children.back()->end); + auto& p2 = boost::get(w2->children.back()->end); + auto p3 = (lerp(p1->ccomponents(), p2->ccomponents(), relative_dist_along) + interpolated_offset).eval(); + points.push_back(taxonomy::make(p3)); + } else if (w1->closed.get_value_or(true) && w2->closed.get_value_or(true)) { + // close polygon by referencing first point + // @todo add a closed=true|false to polygon_from_points()? + points.push_back(points.front()); + } + } + */ + auto interpolated_loop = polygon_from_points(points); - interpolated_loop->external = w1->external; if (interpolated->kind() == taxonomy::FACE) { - std::static_pointer_cast(interpolated)->children.push_back(interpolated_loop); + interpolated_loop->external = w1->external; + std::static_pointer_cast(interpolated)->children.push_back(interpolated_loop); } else { + if (w1->tags) { + std::static_pointer_cast(interpolated)->tags = common_tags_vec; + } + std::static_pointer_cast(interpolated)->closed = w1->closed; std::static_pointer_cast(interpolated)->children = interpolated_loop->children; } } diff --git a/src/ifcgeom/kernels/CMakeLists.txt b/src/ifcgeom/kernels/CMakeLists.txt new file mode 100644 index 0000000000..6775a8f378 --- /dev/null +++ b/src/ifcgeom/kernels/CMakeLists.txt @@ -0,0 +1,46 @@ +find_package(Eigen3 REQUIRED) + +foreach(kernel ${GEOMETRY_KERNELS}) + string(TOUPPER ${kernel} KERNEL_UPPER) + file(GLOB IFCGEOM_H_FILES ${kernel}/*.h) + file(GLOB IFCGEOM_CPP_FILES ${kernel}/*.cpp) + set(IFCGEOM_FILES ${IFCGEOM_CPP_FILES} ${IFCGEOM_H_FILES}) + + set(KERNEL_TARGET "geometry_kernel_${kernel}") + + add_library(${KERNEL_TARGET} ${IFCGEOM_FILES}) + set_target_properties( + ${KERNEL_TARGET} + PROPERTIES COMPILE_FLAGS "-DIFC_GEOM_EXPORTS" PUBLIC_HEADER "${IFCGEOM_H_FILES}" + ) + list(APPEND kernel_libraries ${KERNEL_TARGET}) + target_link_libraries(${KERNEL_TARGET} ${${KERNEL_UPPER}_LIBRARIES} IfcGeom Eigen3::Eigen) + install( + TARGETS ${KERNEL_TARGET} + EXPORT ${IFCOPENSHELL_EXPORT_TARGETS} + PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/ifcgeom/kernels/${kernel}" + ) + + if(${kernel} STREQUAL "cgal") + find_package(CGAL REQUIRED) + target_link_libraries(${KERNEL_TARGET} IFCOPENSHELL_CGAL) + set_property(TARGET ${KERNEL_TARGET} APPEND_STRING PROPERTY COMPILE_FLAGS " -DCGAL_HAS_THREADS") + + set(KERNEL_TARGET_SIMPLE "${KERNEL_TARGET}_simple") + add_library(${KERNEL_TARGET_SIMPLE} ${IFCGEOM_FILES}) + set_target_properties( + ${KERNEL_TARGET_SIMPLE} + PROPERTIES COMPILE_FLAGS "-DIFC_GEOM_EXPORTS -DIFOPSH_SIMPLE_KERNEL -DCGAL_HAS_THREADS" + ) + list(APPEND kernel_libraries ${KERNEL_TARGET_SIMPLE}) + target_link_libraries(${KERNEL_TARGET_SIMPLE} ${${KERNEL_UPPER}_LIBRARIES} Eigen3::Eigen) + target_link_libraries(${KERNEL_TARGET_SIMPLE} IFCOPENSHELL_CGAL) + install(TARGETS ${KERNEL_TARGET_SIMPLE} EXPORT ${IFCOPENSHELL_EXPORT_TARGETS}) + elseif(${kernel} STREQUAL "opencascade") + target_link_libraries(${KERNEL_TARGET} ${OpenCASCADE_LIBRARIES}) + endif() +endforeach() + +set(kernel_libraries ${kernel_libraries} PARENT_SCOPE) + +install(FILES ifc_geomlibrary_api.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/ifcgeom/kernels/") diff --git a/src/ifcgeom/kernels/cgal/CgalKernel.cpp b/src/ifcgeom/kernels/cgal/CgalKernel.cpp index a2d4d01ebc..1e4a8866b9 100644 --- a/src/ifcgeom/kernels/cgal/CgalKernel.cpp +++ b/src/ifcgeom/kernels/cgal/CgalKernel.cpp @@ -1835,6 +1835,9 @@ bool CgalKernel::convert_impl(const taxonomy::boolean_result::ptr br, Conversion CGAL::Polygon_with_holes_2 pwh(p, ++it, loops.end()); CGAL::Gps_segment_traits_2 traits; if (!CGAL::are_holes_and_boundary_pairwise_disjoint(pwh, traits)) { +#ifdef IFOPSH_SIMPLE_KERNEL + throw std::runtime_error("Holes are not disjoint - use a different geometry kernel"); +#else // this is very slow. // the check is also slow... @@ -1851,6 +1854,7 @@ bool CgalKernel::convert_impl(const taxonomy::boolean_result::ptr br, Conversion result.difference(*it); } result.polygons_with_holes(std::back_inserter(pwhs)); +#endif } else { pwhs.push_back(pwh); } diff --git a/src/ifcgeom/kernels/ifc_geomlibrary_api.h b/src/ifcgeom/kernels/ifc_geomlibrary_api.h index 61ba3c3b20..91aeda7364 100644 --- a/src/ifcgeom/kernels/ifc_geomlibrary_api.h +++ b/src/ifcgeom/kernels/ifc_geomlibrary_api.h @@ -22,7 +22,7 @@ #ifdef IFC_SHARED_BUILD #ifdef _WIN32 -#ifdef IFC_GEOMLIBRARY_EXPORTS +#ifdef IFC_GEOM_EXPORTS #define IFC_GEOMLIBRARY_API __declspec(dllexport) #else #define IFC_GEOMLIBRARY_API __declspec(dllimport) diff --git a/src/ifcgeom/kernels/opencascade/IfcGeomTree.h b/src/ifcgeom/kernels/opencascade/IfcGeomTree.h index 997391fcd6..46e0f06731 100644 --- a/src/ifcgeom/kernels/opencascade/IfcGeomTree.h +++ b/src/ifcgeom/kernels/opencascade/IfcGeomTree.h @@ -1792,6 +1792,10 @@ namespace IfcGeom { auto& vs = elem->geometry().verts(); auto& fs = elem->geometry().faces(); + if (vs.empty() || fs.empty()) { + return; + } + gp_Trsf tr; tr.SetValues( m(0, 0), m(0, 1), m(0, 2), m(0, 3), @@ -1859,23 +1863,36 @@ namespace IfcGeom { candidates.push_back({ std::abs(Z.Dot(ref)), ref }); } - if (candidates.empty()) { - { - gp_XYZ ref(0, 0, 1); - candidates.push_back({ std::abs(Z.Dot(ref)), ref }); + gp_Ax3 ax3; + gp_Trsf trsf2; + + for (size_t attempt = 0; attempt < 2; ++attempt) { + + if (candidates.empty() || attempt == 1) { + { + gp_XYZ ref(0, 0, 1); + candidates.push_back({std::abs(Z.Dot(ref)), ref}); + } + { + gp_XYZ ref(1, 0, 0); + candidates.push_back({std::abs(Z.Dot(ref)), ref}); + } } + + auto X = std::min_element(candidates.begin(), candidates.end(), [](auto& p1, auto& p2) { return p1.first < p2.first; })->second; + { - gp_XYZ ref(1, 0, 0); - candidates.push_back({ std::abs(Z.Dot(ref)), ref }); + try { + ax3 = gp_Ax3(gp::Origin(), Z, X); + trsf2.SetTransformation(gp::XOY(), ax3); + } catch (Standard_ConstructionError&) { + // Try again, likely we have all identical normals in candidates so + // we cannot find a suitable candidate and need the two default axes + continue; + } } } - auto X = std::min_element(candidates.begin(), candidates.end(), [](auto& p1, auto& p2) { return p1.first < p2.first; })->second; - - gp_Trsf trsf2; - gp_Ax3 ax3(gp::Origin(), Z, X); - trsf2.SetTransformation(gp::XOY(), ax3); - Bnd_Box tmp; for (auto& p : vs_transformed) { diff --git a/src/ifcgeom/kernels/opencascade/OpenCascadeKernel.cpp b/src/ifcgeom/kernels/opencascade/OpenCascadeKernel.cpp index fcb390b6cc..a5a9d94149 100644 --- a/src/ifcgeom/kernels/opencascade/OpenCascadeKernel.cpp +++ b/src/ifcgeom/kernels/opencascade/OpenCascadeKernel.cpp @@ -29,6 +29,7 @@ #include "base_utils.h" #include +#include namespace { struct opening_sorter { @@ -132,11 +133,24 @@ bool IfcGeom::OpenCascadeKernel::convert_openings(const IfcUtil::IfcBaseEntity* parts.push_back(it3_shape); } - for (auto& entity_part : parts) { + for (auto entity_part : parts) { bool is_manifold = util::is_manifold(entity_part); if (!is_manifold) { - Logger::Warning("Non-manifold first operand"); + if (settings_.get().get()) { + BOPAlgo_MakerVolume mv; + mv.AddArgument(entity_part); + mv.SetAvoidInternalShapes(true); + try { + mv.Perform(); + entity_part = mv.Shape(); + Logger::Warning("Sucessfully detected exterior volume to non-manifold first operand"); + } catch (const Standard_Failure& e) { + Logger::Warning("MakeVolume failed: " + std::string(e.GetMessageString()), entity); + } + } else { + Logger::Warning("Non-manifold first operand, use --make-volume to try and make manifold"); + } } TopoDS_Shape entity_part_result; diff --git a/src/ifcgeom/kernels/opencascade/boolean_utils.cpp b/src/ifcgeom/kernels/opencascade/boolean_utils.cpp index 975ee00d0d..d41f1e4adf 100644 --- a/src/ifcgeom/kernels/opencascade/boolean_utils.cpp +++ b/src/ifcgeom/kernels/opencascade/boolean_utils.cpp @@ -1134,6 +1134,8 @@ bool IfcGeom::util::boolean_operation(const boolean_settings& settings, const To #endif builder->SetFuzzyValue(fuzz); builder->SetArguments(s1s); + // We use our own multi-threading in ifcopenshell on a per-product basis + builder->SetRunParallel(false); copy_operand(b, b_tmp); std::swap(b, b_tmp); builder->SetTools(b); diff --git a/src/ifcgeom/kernels/opencascade/loft.cpp b/src/ifcgeom/kernels/opencascade/loft.cpp index 188150b614..60997d24ad 100644 --- a/src/ifcgeom/kernels/opencascade/loft.cpp +++ b/src/ifcgeom/kernels/opencascade/loft.cpp @@ -27,12 +27,34 @@ #include #include #include +#include using namespace ifcopenshell::geometry; using namespace ifcopenshell::geometry::kernels; using namespace IfcGeom; using namespace IfcGeom::util; +// @todo duplicated +namespace { +template > +bool has_intersection(const std::set& A, + const std::set& B) { + auto itA = A.begin(); + auto itB = B.begin(); + + while (itA != A.end() && itB != B.end()) { + if (Cmp()(*itA, *itB)) { + ++itA; + } else if (Cmp()(*itB, *itA)) { + ++itB; + } else { + return true; + } + } + return false; +} +} + bool OpenCascadeKernel::convert(const taxonomy::loft::ptr loft, TopoDS_Shape& result) { if (loft->children.size() < 2) { return false; @@ -110,37 +132,125 @@ bool OpenCascadeKernel::convert(const taxonomy::loft::ptr loft, TopoDS_Shape& re BRep_Builder BB; BB.MakeCompound(comp); - // @todo this approach is - // potentially incorrect as there is no guarantee that the wires for - // subsequently placed profiles are traversed from an equivalent start vertex. + std::vector shps(loft->children.size()); + std::vector>> all_tags; - for (auto it = loft->children.begin(); it < loft->children.end() - 1; ++it) { + + std::ostringstream oss; + loft->children[0]->print(oss); + loft->children[1]->print(oss); + auto s = oss.str(); + std::wcout << s.c_str() << std::endl; + + // First convert all taxonomy items to TopoDS_Wire/Face + for (auto it = loft->children.begin(); it < loft->children.end(); ++it) { + auto i = std::distance(loft->children.begin(), it); + if ((*it)->kind() == taxonomy::FACE) { + if (!convert(std::static_pointer_cast((*it)), shps[i])) { + return false; + } + } + if ((*it)->kind() == taxonomy::LOOP) { + + // @todo duplicated with infra_sweep_helper + // I think make_loft() where should just return a shell instead, because + // this faceted lofting does not depend on any functionality in the geometry library + // and the branching with tags needs to be solved twice otherwise + auto loop_to_points = [](const taxonomy::loop::ptr& loop, const boost::optional>& input_tags) -> std::pair, std::vector>> { + std::vector points; + std::vector> tags; + std::vector::const_iterator tag_it; + + if (!loop->closed.get_value_or(false)) { + points = {boost::get(loop->children[0]->start)}; + if (input_tags) { + tags = {{input_tags->front()}}; + tag_it = ++input_tags->begin(); + } + } + for (auto& e : loop->children) { + const auto& p1 = boost::get(e->start); + const auto& p2 = boost::get(e->end); + if (input_tags && p1->ccomponents() == p2->ccomponents()) { + tags.back().insert(*tag_it); + ++tag_it; + } else { + points.push_back(p2); + if (input_tags) { + tags.emplace_back(); + tags.back().insert(*tag_it); + ++tag_it; + } + } + } + if (!input_tags) { + if (loop->closed.get_value_or(false)) { + // close polygon by referencing first point + points.push_back(points.front()); + } + } + return {points, tags}; + }; + + auto lp = std::static_pointer_cast(*it); + TopoDS_Wire w; + + if (lp->tags) { + auto [points, tags] = loop_to_points(lp, lp->tags); + BRepBuilderAPI_MakePolygon mp; + for (auto& p : points) { + const auto& xyz = p->ccomponents(); + mp.Add(gp_Pnt(xyz(0), xyz(1), xyz(2))); + } + w = mp.Wire(); + + if (lp->matrix && !lp->matrix->is_identity()) { + const auto& m = lp->matrix->ccomponents(); + gp_Trsf tr; + tr.SetValues( + m(0, 0), m(0, 1), m(0, 2), m(0, 3), m(1, 0), m(1, 1), m(1, 2), m(1, 3), m(2, 0), m(2, 1), m(2, 2), m(2, 3)); + w = TopoDS::Wire(BRepBuilderAPI_Transform(w, tr).Shape()); + } + + all_tags.push_back(tags); + } else { + if (!convert(std::static_pointer_cast((*it)), w)) { + return false; + } + } + + shps[i] = w; + } + if (shps[i].ShapeType() != TopAbs_FACE && shps[i].ShapeType() != TopAbs_WIRE) { + return false; + } + } + + /* + // With --dimensionality CURVES_SURFACES_AND_SOLIDS this will give the interpolated profiles as line geometry + { + for (auto& f : shps) { + BB.Add(comp, f); + } + } + result = comp; + return true; + */ + + // @todo this approach is + // potentially incorrect as there is no guarantee that the wires for + // subsequently placed profiles are traversed from an equivalent start vertex. + for (auto it = shps.begin(); it < shps.end() - 1; ++it) { + auto ii = std::distance(shps.begin(), it); auto jt = it + 1; - std::array fa = { *it, *jt }; - std::array shps; + std::array::const_iterator, 2> fa = { it, jt }; std::vector> ws; ws.emplace_back(); for (int i = 0; i < 2; ++i) { - if (fa[i]->kind() == taxonomy::FACE) { - if (!convert(std::static_pointer_cast(fa[i]), shps[i])) { - return false; - } - } - if (fa[i]->kind() == taxonomy::LOOP) { - TopoDS_Wire w; - if (!convert(std::static_pointer_cast(fa[i]), w)) { - return false; - } - shps[i] = w; - } - if (shps[i].ShapeType() != TopAbs_FACE && shps[i].ShapeType() != TopAbs_WIRE) { - return false; - } - - if (shps[i].ShapeType() == TopAbs_FACE) { - ws[0][i] = BRepTools::OuterWire(TopoDS::Face(shps[i])); + if (fa[i]->ShapeType() == TopAbs_FACE) { + ws[0][i] = BRepTools::OuterWire(TopoDS::Face(*fa[i])); size_t j = 1; - for (TopExp_Explorer exp(shps[i], TopAbs_WIRE); exp.More(); exp.Next()) { + for (TopExp_Explorer exp(*fa[i], TopAbs_WIRE); exp.More(); exp.Next()) { if (exp.Current() != ws[0][i]) { while (ws.size() <= j) { ws.emplace_back(); @@ -149,22 +259,110 @@ bool OpenCascadeKernel::convert(const taxonomy::loft::ptr loft, TopoDS_Shape& re } } } else { - ws[0][i] = TopoDS::Wire(shps[i]); + ws[0][i] = TopoDS::Wire(*fa[i]); } } - if (shps[0].ShapeType() == TopAbs_FACE) { + if (it->ShapeType() == TopAbs_FACE) { // When processing a sectioned *surface* there are no // begin and end caps that need to be added. - if (it == loft->children.begin()) { + if (it == shps.begin()) { // faces.Append(shps[0]); BB.Add(comp, shps[0]); } - if (jt == loft->children.end() - 1) { + if (jt == shps.end() - 1) { // faces.Append(shps[1]); BB.Add(comp, shps[1]); } } + if (!all_tags.empty()) { + // only open profiles have tags for now, so there is only one wire, no inner wires + const auto& wp = ws[0]; + std::array, 2> profile_points; + std::array>>::const_iterator, 2> tag_pairs = { + all_tags.begin() + std::distance(shps.begin(), it), + all_tags.begin() + std::distance(shps.begin(), jt)}; + + for (size_t i = 0; i < 2; ++i) { + TopTools_IndexedDataMapOfShapeListOfShape ancestors; + const auto& wire = wp[i]; + auto& result = profile_points[i]; + + TopExp::MapShapesAndAncestors( + wire, + TopAbs_VERTEX, + TopAbs_EDGE, + ancestors); + + TopoDS_Vertex v0, vn, previous; + TopExp::Vertices(wire, v0, vn); + + TopoDS_Vertex curr = v0; + result.push_back(BRep_Tool::Pnt(curr)); + + while (true) { + if (curr.IsSame(vn)) { + break; + } + + const TopTools_ListOfShape& incidentEdges = ancestors.FindFromKey(curr); + + for (TopTools_ListIteratorOfListOfShape it(incidentEdges); it.More(); it.Next()) { + const TopoDS_Edge& e = TopoDS::Edge(it.Value()); + + TopoDS_Vertex ev0, ev1; + TopExp::Vertices(e, ev0, ev1); + + TopoDS_Vertex other_on_edge = curr.IsSame(ev0) ? ev1 : ev0; + if (other_on_edge.IsSame(previous)) { + continue; + } else { + previous = curr; + curr = other_on_edge; + result.push_back(BRep_Tool::Pnt(curr)); + break; + } + } + } + } + + auto a = profile_points[0].begin(); + auto b = profile_points[1].begin(); + auto c = tag_pairs[0]->begin(); + auto d = tag_pairs[1]->begin(); + + if (!has_intersection(*c, *d)) { + throw std::runtime_error("Starting vertices do not have corresponding tags"); + } + + auto emit_triangle = [&](const gp_Pnt& p1, const gp_Pnt& p2, const gp_Pnt& p3) { + BB.Add(comp, BRepBuilderAPI_MakeFace(BRepBuilderAPI_MakePolygon(p1, p2, p3, true).Wire()).Face()); + }; + + while (c != (tag_pairs[0]->end() - 1) && d != (tag_pairs[0]->end() - 1)) { + if (c != (tag_pairs[0]->end() - 1) && has_intersection(*(c + 1), *d)) { + emit_triangle(*a, *(a + 1), *b); + ++a; + ++c; + } else if (d != (tag_pairs[1]->end() - 1) && has_intersection(*c, *(d + 1))) { + emit_triangle(*a, *(b + 1), *b); + ++b; + ++d; + } else if (c != (tag_pairs[0]->end() - 1) && d != (tag_pairs[1]->end() - 1) && has_intersection(*(c + 1), *(d + 1))) { + emit_triangle(*a, *(a + 1), *b); + emit_triangle(*(a + 1), *(b + 1), *b); + ++a; + ++b; + ++c; + ++d; + } else { + throw std::runtime_error("Unable to construct surface"); + } + } + + continue; + } + for (auto& wp : ws) { BRepTools_WireExplorer a(wp[0]); BRepTools_WireExplorer b(wp[1]); diff --git a/src/ifcgeom/kernels/opencascade/sweep_along_curve.cpp b/src/ifcgeom/kernels/opencascade/sweep_along_curve.cpp index 0cfcf7a355..c971291868 100644 --- a/src/ifcgeom/kernels/opencascade/sweep_along_curve.cpp +++ b/src/ifcgeom/kernels/opencascade/sweep_along_curve.cpp @@ -84,6 +84,50 @@ namespace { } bool OpenCascadeKernel::convert(const taxonomy::sweep_along_curve::ptr scs, TopoDS_Shape& result) { + using namespace ifcopenshell::geometry; + + bool applied_temporary_offset = false; + Eigen::Vector3d mean; + + auto curve = scs->curve; + + // Apply temporary offset if the geometry is far away from origin + // Re: https://github.com/IfcOpenShell/IfcOpenShell/issues/7408 + // The norm2 that used as a treshold is actually really small though + // is this a coincedence that it solves the problem in this one test case? + if (curve->kind() == taxonomy::LOOP && std::dynamic_pointer_cast(curve)->is_polyhedron()) { + Eigen::Vector3d sum = Eigen::Vector3d::Zero(); + size_t count = 0; + + visit_2(std::dynamic_pointer_cast(curve), [&](const taxonomy::point3::ptr& p) { + const Eigen::Vector3d& coords = p->ccomponents(); + + sum += coords; + ++count; + }); + + mean = (count > 0) ? (sum / static_cast(count)).eval() : Eigen::Vector3d::Zero().eval(); + + if (mean.norm() > 1.e2) { + curve = taxonomy::loop::ptr((taxonomy::loop*)scs->curve->clone_()); + applied_temporary_offset = true; + std::set unique_points; + for (auto& e : std::dynamic_pointer_cast(curve)->children) { + auto* a = boost::get(&e->start); + auto* b = boost::get(&e->end); + if (a) { + unique_points.insert(*a); + } + if (b) { + unique_points.insert(*b); + } + } + for (auto& p : unique_points) { + p->components() -= mean; + } + } + } + auto w = convert_curve(scs->curve); if (w.which() != 2) { Logger::Error("Unsupported directrix"); @@ -207,13 +251,13 @@ bool OpenCascadeKernel::convert(const taxonomy::sweep_along_curve::ptr scs, Topo for (int i = 0; i < 2; ++i) { for (TopExp_Explorer exp(face, TopAbs_WIRE); exp.More(); exp.Next()) { const auto& section = TopoDS::Wire(exp.Current()); - if (section.IsSame(outer) != i == 0) { + if (section.IsSame(outer) != (i == 0)) { continue; } BRepOffsetAPI_MakePipeShell builder(wire); builder.Add(section); - builder.SetTransitionMode(contains_circular_segments(wire) && wire_is_c1_continuous(wire, 1.e-2) ? BRepBuilderAPI_Transformed : BRepBuilderAPI_RightCorner); + builder.SetTransitionMode(contains_circular_segments(wire) && wire_is_c1_continuous(wire, 1.e-2) ? BRepBuilderAPI_Transformed : BRepBuilderAPI_RightCorner); if (directrix_on_plane) { builder.SetMode(pln.Axis().Direction()); } else if (!is_plane) { @@ -238,8 +282,8 @@ bool OpenCascadeKernel::convert(const taxonomy::sweep_along_curve::ptr scs, Topo mf1.reset(new BRepBuilderAPI_MakeFace(f1)); } - for (TopExp_Explorer exp(builder.Shape(), TopAbs_FACE); exp.More(); exp.Next()) { - BB.Add(comp, exp.Current()); + for (TopExp_Explorer exp2(builder.Shape(), TopAbs_FACE); exp2.More(); exp2.Next()) { + BB.Add(comp, exp2.Current()); } } } @@ -254,6 +298,12 @@ bool OpenCascadeKernel::convert(const taxonomy::sweep_along_curve::ptr scs, Topo result = BRepBuilderAPI_MakeSolid(comp).Solid(); + if (applied_temporary_offset) { + gp_Trsf trsf; + trsf.SetTranslation(gp_Vec(-mean.x(), -mean.y(), -mean.z())); + result.Move(trsf); + } + return true; } diff --git a/src/ifcgeom/mapping/CMakeLists.txt b/src/ifcgeom/mapping/CMakeLists.txt new file mode 100644 index 0000000000..4e185b9fa9 --- /dev/null +++ b/src/ifcgeom/mapping/CMakeLists.txt @@ -0,0 +1,20 @@ +find_package(Eigen3 REQUIRED) + +foreach(schema ${SCHEMA_VERSIONS}) + file(GLOB IFCGEOM_I_FILES *.i) + file(GLOB IFCGEOM_H_FILES *.h) + file(GLOB IFCGEOM_CPP_FILES *.cpp) + set(IFCGEOM_FILES ${IFCGEOM_CPP_FILES} ${IFCGEOM_H_FILES} ${IFCGEOM_I_FILES}) + + add_library(geometry_mapping_ifc${schema} OBJECT ${IFCGEOM_FILES}) + set_target_properties( + geometry_mapping_ifc${schema} + PROPERTIES COMPILE_FLAGS "-DIFC_GEOM_EXPORTS -DIfcSchema=Ifc${schema}" + ) + target_link_libraries(geometry_mapping_ifc${schema} IfcParse Eigen3::Eigen) + + list(APPEND mapping_libraries geometry_mapping_ifc${schema}) + install(TARGETS geometry_mapping_ifc${schema} EXPORT ${IFCOPENSHELL_EXPORT_TARGETS}) +endforeach() + +set(mapping_libraries ${mapping_libraries} PARENT_SCOPE) diff --git a/src/ifcgeom/mapping/IfcArbitraryOpenProfileDef.cpp b/src/ifcgeom/mapping/IfcArbitraryOpenProfileDef.cpp index ef39550354..e65152cb7f 100644 --- a/src/ifcgeom/mapping/IfcArbitraryOpenProfileDef.cpp +++ b/src/ifcgeom/mapping/IfcArbitraryOpenProfileDef.cpp @@ -24,5 +24,11 @@ using namespace ifcopenshell::geometry; taxonomy::ptr mapping::map_impl(const IfcSchema::IfcArbitraryOpenProfileDef* inst) { - return map(inst->Curve()); + auto mapped = map(inst->Curve()); + if (mapped->kind() == taxonomy::LOOP) { + auto r = taxonomy::loop::ptr((taxonomy::loop*)mapped->clone_()); + r->closed = false; + return r; + } + return mapped; } diff --git a/src/ifcgeom/mapping/IfcObjectPlacement.cpp b/src/ifcgeom/mapping/IfcObjectPlacement.cpp index be0c222e08..a0a37dd30f 100644 --- a/src/ifcgeom/mapping/IfcObjectPlacement.cpp +++ b/src/ifcgeom/mapping/IfcObjectPlacement.cpp @@ -21,7 +21,41 @@ #define mapping POSTFIX_SCHEMA(mapping) using namespace ifcopenshell::geometry; +#include + taxonomy::ptr mapping::map_impl(const IfcSchema::IfcObjectPlacement* inst) { + if (placement_rel_to_type_ || placement_rel_to_instance_) { + using QueueItem = std::pair; + std::deque q = {{inst, 0}}; + while (!q.empty()) { + auto [placement_entity, depth] = q.front(); + q.pop_front(); + + auto placement = placement_entity->as(); + if (!placement) { + continue; + } + + auto self_places = placement->PlacesObject(); + inst->ReferencedByPlacements(); + for (auto iter = self_places->begin(); iter != self_places->end(); ++iter) { + if ((placement_rel_to_type_ && (*iter)->declaration().is(*placement_rel_to_type_)) || + (placement_rel_to_instance_ && (*iter)->as() == placement_rel_to_instance_)) { + return taxonomy::make(); + } + } + + // Look for two levels deep, we want to know if we're at or *above* the + // element we're ignoring, but we don't want to traverse the entire model. + if (depth < 2) { + auto refs = placement->ReferencedByPlacements(); + for (auto& ref : *refs) { + q.emplace_back(ref, depth + 1); + } + } + } + } + const IfcSchema::IfcObjectPlacement* relative_to = nullptr; const IfcUtil::IfcBaseInterface* transform; diff --git a/src/ifcgeom/mapping/IfcOpenCrossProfileDef.cpp b/src/ifcgeom/mapping/IfcOpenCrossProfileDef.cpp new file mode 100644 index 0000000000..7f3c4f43c1 --- /dev/null +++ b/src/ifcgeom/mapping/IfcOpenCrossProfileDef.cpp @@ -0,0 +1,91 @@ +/******************************************************************************** + * * + * This file is part of IfcOpenShell. * + * * + * IfcOpenShell is free software: you can redistribute it and/or modify * + * it under the terms of the Lesser GNU General Public License as published by * + * the Free Software Foundation, either version 3.0 of the License, or * + * (at your option) any later version. * + * * + * IfcOpenShell is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * Lesser GNU General Public License for more details. * + * * + * You should have received a copy of the Lesser GNU General Public License * + * along with this program. If not, see . * + * * + ********************************************************************************/ + +#include "mapping.h" +#define mapping POSTFIX_SCHEMA(mapping) +using namespace ifcopenshell::geometry; + +#include "../../ifcgeom/profile_helper.h" +#include "../../ifcgeom/infra_sweep_helper.h" + +#include +const double PI = boost::math::constants::pi(); + +#ifdef SCHEMA_HAS_IfcOpenCrossProfileDef + + +taxonomy::ptr mapping::map_impl(const IfcSchema::IfcOpenCrossProfileDef* inst) { + if (inst->ProfileType() != IfcSchema::IfcProfileTypeEnum::IfcProfileType_CURVE) { + Logger::Warning("Expected IfcOpenCrossProfileDef.ProfileType to be CURVE", inst); + return nullptr; + } + + std::vector points; + taxonomy::point3::ptr start; + if (inst->OffsetPoint()) { + start = taxonomy::cast(map(inst->OffsetPoint())); + } else { + start = taxonomy::make(0., 0., 0.); + } + points.push_back(start); + + boost::optional> tags = inst->Tags(); + boost::optional tag = boost::none; + if (tags.has_value() && !tags.get().empty()) { + tag = tags.get()[0]; + } + + auto widths = inst->Widths(); + auto angles = inst->Slopes(); // these are actually angles, but the attribute is called Slopes + + if (widths.size() != angles.size()) { + Logger::Warning("Expected Widths and Slopes to be equal length, but got " + std::to_string(widths.size()) + " and " + std::to_string(angles.size()) + " respectively", inst); + return nullptr; + } + + auto horizontal_widths = inst->HorizontalWidths(); + + double x = start->ccomponents().x(); + double y = start->ccomponents().y(); + double z = start->ccomponents().z(); + for (size_t i = 0; i < widths.size(); ++i) { + double w = widths[i] * length_unit_; + double a = PI - angles[i] * angle_unit_; + double dx = (horizontal_widths ? w : w * std::cos(a)); + double dy = (horizontal_widths ? w * std::tan(a) : w * std::sin(a)); + double dz = 0.; + x -= dx; // subtract because X is positive to the left + y += dy; + z += dz; + + if (tags.has_value() && !tags.get().empty()) { + tag = tags.get()[i+1]; + } + + points.push_back(taxonomy::make(x, y, z)); + } + + auto mapped = polygon_from_points(points); + mapped->closed = false; + mapped->tags = tags; + + return mapped; +} + +#endif diff --git a/src/ifcgeom/mapping/IfcSectionedSurface.cpp b/src/ifcgeom/mapping/IfcSectionedSurface.cpp index c6b700f5e5..49fde15759 100644 --- a/src/ifcgeom/mapping/IfcSectionedSurface.cpp +++ b/src/ifcgeom/mapping/IfcSectionedSurface.cpp @@ -31,19 +31,20 @@ taxonomy::ptr mapping::map_impl(const IfcSchema::IfcSectionedSurface* inst) { std::vector cross_sections; auto dir = map(inst->Directrix()); - auto pwf = taxonomy::dcast(dir); - if (!pwf) { - // Only implement on alignment curves - Logger::Warning("IfcSectionedSurface is only implemented for piecewise function Directrix curves", inst); + auto fn = taxonomy::dcast(dir); + if (!fn) { + // Only implement on alignment curves + Logger::Warning("IfcSectionedSurface is only implemented for Directrix curves based on taxonomy::function_item", inst); return nullptr; - } + } + { auto css = inst->CrossSections(); auto csps = inst->CrossSectionPositions(); std::vector faces; - // The PointByDistanceExpressesions are factored out into (a) a cartesian offset relative to the + // The PointByDistanceExpressions are factored out into (a) a cartesian offset relative to the // reference frame along a certain curve location (b) the longitude. // The longitudes determine the range of the sweep and the offsets are interpolated in between @@ -109,7 +110,7 @@ taxonomy::ptr mapping::map_impl(const IfcSchema::IfcSectionedSurface* inst) { } } - return make_loft(settings_, inst, pwf, cross_sections); + return make_loft(settings_, inst, fn, cross_sections); } #endif diff --git a/src/ifcgeom/mapping/mapping.i b/src/ifcgeom/mapping/mapping.i index adc2e3c10b..c67d0f7f4a 100644 --- a/src/ifcgeom/mapping/mapping.i +++ b/src/ifcgeom/mapping/mapping.i @@ -135,6 +135,9 @@ BIND(IfcFixedReferenceSweptAreaSolid) #ifdef SCHEMA_HAS_IfcSectionedSolidHorizontal BIND(IfcSectionedSolidHorizontal) #endif +#ifdef SCHEMA_HAS_IfcOpenCrossProfileDef +BIND(IfcOpenCrossProfileDef) +#endif #ifdef SCHEMA_HAS_IfcSectionedSurface BIND(IfcSectionedSurface) #endif diff --git a/src/ifcgeom/taxonomy.cpp b/src/ifcgeom/taxonomy.cpp index e03c1010a3..7d509db8cb 100644 --- a/src/ifcgeom/taxonomy.cpp +++ b/src/ifcgeom/taxonomy.cpp @@ -822,11 +822,11 @@ namespace { boost::optional ifcopenshell::geometry::taxonomy::loop_to_function_item_upgrade_impl(ptr item) { - boost::optional fi_; + boost::optional function_item_; auto loop_ = dcast(item); if (loop_) { - if (loop_->fi.is_initialized()) { - fi_ = loop_->fi; + if (loop_->function_item.is_initialized()) { + function_item_ = loop_->function_item; } else { // piecewise_function is a specialization of function_item - callers don't need to know this detail piecewise_function::spans_t spans; @@ -880,9 +880,9 @@ boost::optional ifcopenshell::geometry::taxonomy::loop_to_fu return boost::none; } } - fi_ = make(0.0,spans); - loop_->fi = fi_; + function_item_ = make(0.0, spans); + loop_->function_item = function_item_; } } - return fi_; + return function_item_; } diff --git a/src/ifcgeom/taxonomy.h b/src/ifcgeom/taxonomy.h index bba587654e..ab8a222aee 100644 --- a/src/ifcgeom/taxonomy.h +++ b/src/ifcgeom/taxonomy.h @@ -928,7 +928,8 @@ typedef item const* ptr; DECLARE_PTR(loop) boost::optional external, closed; - boost::optional fi; + boost::optional function_item; + boost::optional> tags; bool is_polyhedron() const { for (auto& e : children) { @@ -1649,42 +1650,34 @@ typedef item const* ptr; } template - void visit_2(const typename U::ptr& c, const Fn& fn) { + void visit_2(const typename U::ptr& collection, const Fn& fn) { static_assert(std::is_same::value, "@todo Only implemented for point3"); - for (auto& i : c->children) { + for (auto& child : collection->children) { // @todo Sad... now that we have templated collection members, // we can't generally use collection_base anymore as a cast target. - if (auto s = taxonomy::dcast(i)) { - visit_2(s, fn); - } - else if (auto s = taxonomy::dcast(i)) { - visit_2(s, fn); - } - else if (auto s = taxonomy::dcast(i)) { - visit_2(s, fn); - } - else if (auto s = taxonomy::dcast(i)) { - visit_2(s, fn); - } - else if (auto s = taxonomy::dcast(i)) { - visit_2(s, fn); - } - else if (auto s = taxonomy::dcast(i)) { - visit_2(s, fn); - } - else if (auto s = taxonomy::dcast(i)) { - visit_2(s, fn); - } - else if (auto pt = taxonomy::dcast(i)) { + if (auto col = std::dynamic_pointer_cast(child)) { + visit_2(col, fn); + } else if (auto loop = std::dynamic_pointer_cast(child)) { + visit_2(loop, fn); + } else if (auto face = std::dynamic_pointer_cast(child)) { + visit_2(face, fn); + } else if (auto shell = std::dynamic_pointer_cast(child)) { + visit_2(shell, fn); + } else if (auto solid = std::dynamic_pointer_cast(child)) { + visit_2(solid, fn); + } else if (auto loft = std::dynamic_pointer_cast(child)) { + visit_2(loft, fn); + } else if (auto bl = std::dynamic_pointer_cast(child)) { + visit_2(bl, fn); + } else if (auto pt = std::dynamic_pointer_cast(child)) { fn(pt); - } - else if (auto l = taxonomy::dcast(i)) { + } else if (auto ed = std::dynamic_pointer_cast(child)) { // @todo maybe make edge a collection then as well? - if (l->start.which() == 1) { - fn(boost::get(l->start)); + if (ed->start.which() == 1) { + fn(boost::get(ed->start)); } - if (l->end.which() == 1) { - fn(boost::get(l->end)); + if (ed->end.which() == 1) { + fn(boost::get(ed->end)); } } } diff --git a/src/ifcgeomserver/CMakeLists.txt b/src/ifcgeomserver/CMakeLists.txt new file mode 100644 index 0000000000..07bbfeb21f --- /dev/null +++ b/src/ifcgeomserver/CMakeLists.txt @@ -0,0 +1,8 @@ +find_package(Boost REQUIRED) + +file(GLOB CPP_FILES *.cpp) +set(SOURCE_FILES ${CPP_FILES}) +add_executable(IfcGeomServer ${SOURCE_FILES}) +target_link_libraries(IfcGeomServer IfcGeom ${kernel_libraries} ${OpenCASCADE_LIBRARIES}) + +install(TARGETS IfcGeomServer EXPORT ${IFCOPENSHELL_EXPORT_TARGETS}) diff --git a/src/ifcmax/CMakeLists.txt b/src/ifcmax/CMakeLists.txt index 5ecadc882c..330e4529cb 100644 --- a/src/ifcmax/CMakeLists.txt +++ b/src/ifcmax/CMakeLists.txt @@ -32,22 +32,32 @@ endforeach() if(HAS_MAX) # build libraray for each found 3ds Max SDK foreach(max_year max_sdk IN ZIP_LISTS FOUND_MAX_YEARS FOUND_MAX_SDKS) - message(STATUS "Building IFCMax library for Autodesk 3ds Max SDK ${max_year}") - include_directories(${INCLUDE_DIRECTORIES} ${OCC_INCLUDE_DIR} ${OPENCOLLADA_INCLUDE_DIRS} ${ICU_INCLUDE_DIR} - ${Boost_INCLUDE_DIRS} ${max_sdk}/include + include_directories( + ${INCLUDE_DIRECTORIES} + ${OPENCOLLADA_INCLUDE_DIRS} + ${ICU_INCLUDE_DIR} + ${Boost_INCLUDE_DIRS} + ${max_sdk}/include ) # All recent versions of 3ds Max (2014 and newer) are 64-bit only so assume lib/x64 directory - link_directories(${LINK_DIRECTORIES} ${IfcOpenShell_BINARY_DIR} ${OCC_LIBRARY_DIR} ${OPENCOLLADA_LIBRARY_DIR} - ${ICU_LIBRARY_DIR} ${Boost_LIBRARY_DIRS} ${max_sdk}/lib/x64/Release + link_directories( + ${LINK_DIRECTORIES} + ${IfcOpenShell_BINARY_DIR} + ${OPENCOLLADA_LIBRARY_DIR} + ${ICU_LIBRARY_DIR} + ${Boost_LIBRARY_DIRS} + ${max_sdk}/lib/x64/Release ) add_library(IfcMax_${max_year} SHARED IfcMax.h IfcMax.cpp) # TODO: find the minimal subset of 3dsmax libraries to reference - target_link_libraries(IfcMax_${max_year} ${IFCOPENSHELL_LIBRARIES} + target_link_libraries( + IfcMax_${max_year} + ${IFCOPENSHELL_LIBRARIES} bmm.lib Comctl32.lib core.lib @@ -74,14 +84,13 @@ if(HAS_MAX) tessint.lib viewfile.lib zlibdll.lib - ${OPENCASCADE_LIBRARIES} + ${OpenCASCADE_LIBRARIES} ) set_target_properties(IfcMax_${max_year} PROPERTIES SUFFIX ".dli") - install(TARGETS IfcMax_${max_year} RUNTIME DESTINATION ${BINDIR}) + install(TARGETS IfcMax_${max_year}) endforeach() else() message(STATUS "Autodesk 3ds Max SDK not found, is required to build IFCMax.") endif() - diff --git a/src/ifcopenshell-python/Makefile b/src/ifcopenshell-python/Makefile index 0810ad0181..78370a46fb 100644 --- a/src/ifcopenshell-python/Makefile +++ b/src/ifcopenshell-python/Makefile @@ -55,6 +55,9 @@ endif ifeq ($(PLATFORM), linux64) PLATFORMTAG:=manylinux_2_31_x86_64 endif +ifeq ($(PLATFORM), linuxarm64) +PLATFORMTAG:=manylinux_2_31_aarch64 +endif ifeq ($(PLATFORM), macos64) PLATFORMTAG:=macosx_10_15_x86_64 endif @@ -66,7 +69,7 @@ PLATFORMTAG:=win_amd64 endif BINARY_VERSION:=0.8.4 -BUILD_COMMIT:=c9df87f +BUILD_COMMIT:=e8eb5e4 IOS_URL:=https://s3.amazonaws.com/ifcopenshell-builds/ifcopenshell-python-$(PYNUMBER)-v$(BINARY_VERSION)-$(BUILD_COMMIT)-$(PLATFORM).zip IFCCONVERT_URL:=https://s3.amazonaws.com/ifcopenshell-builds/IfcConvert-v$(BINARY_VERSION)-$(BUILD_COMMIT)-$(PLATFORM).zip diff --git a/src/ifcopenshell-python/docs/conf.py b/src/ifcopenshell-python/docs/conf.py index 12311f465e..dc15ece371 100644 --- a/src/ifcopenshell-python/docs/conf.py +++ b/src/ifcopenshell-python/docs/conf.py @@ -103,7 +103,13 @@ autoapi_dirs = [ # autoapi_dirs = ['../../bcf/bcf', '../../bsdd', '../../ifccsv', '../../ifcdiff', '../../ifcpatch/ifcpatch', '../../ifctester/ifctester'] # These are auto-generated based on the IFC schema, so exclude them -autoapi_ignore = ["*ifcopenshell/express/rules*"] +# Temporarily ignore bsdd files until they are packaged properly in the wheel. +autoapi_ignore = [ + "*ifcopenshell/express/rules*", + "*bsdd/bsdd_json.py", + "*bsdd/type_hints.py", + "*bsdd/yml_to_classes.py", +] # Custom autoapi templates to make it easier to read our docs autoapi_template_dir = "_autoapi_templates" diff --git a/src/ifcopenshell-python/docs/ifcconvert.rst b/src/ifcopenshell-python/docs/ifcconvert.rst index 6861eb1120..beef450578 100644 --- a/src/ifcopenshell-python/docs/ifcconvert.rst +++ b/src/ifcopenshell-python/docs/ifcconvert.rst @@ -2,8 +2,7 @@ IfcConvert ========== IfcConvert is a command-line application for converting IFC geometry into file -formats such as OBJ, DAE, GLB, STP, IGS, XML, SVG, H5, CityJSON, TTL/WKT, and -IFC-SPF itself. +formats such as OBJ, DAE, GLB, STP, IGS, XML, SVG, H5, TTL/WKT, and IFC-SPF itself. For other formats, you may use other IfcOpenShell utilities as shown in the table below. @@ -13,7 +12,8 @@ table below. +=========================+=========================+======================+ | .ifc | .obj, .dae, .glb, .stp, | IfcConvert | | | .igs, .xml, .svg, .h5, | | -| | .cityjson, .ttl, .ifc | | +| | .ttl, .ifc, .rdb, | | +| | .json (xeokit) | | +-------------------------+-------------------------+----------------------+ | .ifc | .dae, .abc, .usd, .obj, | Bonsai_ | | | .ply, .stl, .fbx, .glb, | | @@ -46,8 +46,6 @@ table below. +-------------------------+-------------------------+----------------------+ | .obj | .ifc | Bonsai_ | +-------------------------+-------------------------+----------------------+ -| .json (CityJSON) | .ifc | IfcCityJSON_ | -+-------------------------+-------------------------+----------------------+ | .xer (Oracle P6) | .ifc | Ifc4D_ | +-------------------------+-------------------------+----------------------+ | .xml (Oracle P6) | .ifc | Ifc4D_ | @@ -63,7 +61,6 @@ table below. .. _IfcCSV: ifccsv.html .. _Ifc4D: ifc4d.html .. _Ifc5D: ifc5d.html -.. _IfcCityJSON: ifccityjson.html .. _Ifc2JSON: other.html .. _Bonsai: bonsai.html diff --git a/src/ifcopenshell-python/docs/ifcconvert/usage.rst b/src/ifcopenshell-python/docs/ifcconvert/usage.rst index ffc64f1c08..3c6846d25b 100644 --- a/src/ifcopenshell-python/docs/ifcconvert/usage.rst +++ b/src/ifcopenshell-python/docs/ifcconvert/usage.rst @@ -70,7 +70,7 @@ CLI Manual $ IfcConvert -h - IfcOpenShell IfcConvert 0.8.1-c49ca69 (OCC 7.8.1) + IfcOpenShell IfcConvert 0.8.4-158fe92 (OCC 7.8.1) Usage: IfcConvert [options] [] Converts (the geometry in) an IFC file into one of the following formats: @@ -80,9 +80,10 @@ CLI Manual .stp STEP Standard for the Exchange of Product Data .igs IGES Initial Graphics Exchange Specification .xml XML Property definitions and decomposition tree + .json JSON Property definitions and decomposition tree in xeokit json format + .rdb RocksDB RocksDB Key-Value store serialization of IFC data .svg SVG Scalable Vector Graphics (2D floor plan) .h5 HDF Hierarchical Data Format storing positions, normals and indices - .cityjson City JSON format for geospatial data .ttl TTL/WKT RDF Turtle with Well-Known-Text geometry .ifc IFC-SPF Industry Foundation Classes @@ -109,7 +110,8 @@ CLI Manual Geometry options: --kernel arg (=opencascade) Geometry kernel to use (opencascade, - cgal, cgal-simple). + cgal, cgal-simple, hybrid-cgal-simple-o + pencascade). -j [ --threads ] arg (=1) Number of parallel processing threads for geometry interpretation. --center-model Centers the elements by applying the @@ -119,6 +121,11 @@ CLI Manual --center-model-geometry Centers the elements by applying the center point of all mesh vertices as an offset. + --model-offset arg Applies an arbitrary offset of form + 'x;y;z' to all placements. + --model-rotation arg Applies an arbitrary quaternion + rotation of form 'x;y;z;w' to all + placements. --include arg Specifies that the instances that match a specific filtering criteria are to be included in the geometrical output: @@ -208,13 +215,12 @@ CLI Manual of surface normals, even if the faces are not properly oriented in the IFC file. - --length-unit arg (= 1) - --angle-unit arg (= 1) - --precision arg (= 1e-05) --dimensionality arg (= 1) Specifies whether to include curves and/or surfaces and solids in the output result. Defaults to only - surfaces and solids. + surfaces and solids (SURFACES_AND_SOLID + S). Other possible values are CURVES, + CURVES_SURFACES_AND_SOLIDS. --layerset-first Assigns the first layer material of the layerset to the complete product. --disable-boolean-result Specifies whether to disable the @@ -263,9 +269,11 @@ CLI Manual geometrical output back to the unit of measure in which it is defined in the IFC file. Default is to use meters. - --context-ids arg - --context-ids arg - --context-ids arg + --context-ids arg List of comma separated context ids to + process - e.g. '15,29' (no quotes + needed). + --context-types arg Currently option has no effect. + --context-identifiers arg Currently option has no effect. --iterator-output arg (= 0) --disable-opening-subtractions Specifies whether to disable the boolean subtraction of @@ -305,10 +313,18 @@ CLI Manual geometry output. --circle-segments arg (= 16) Number of segments to approximate full circles in CGAL kernel. + --cgal-smooth-angle-degrees arg (= -1) + Angle in degrees under which adjacent + facets will have averaged vertex + normals in CGAL output. NB irrespective + of original IFC geometry types. + Defaults to -1 to disable smoothing. --keep-bounding-boxes Default is to removes IfcBoundingBox from model prior to converting geometry.Setting this option disables that behaviour + --compute-curvature Specifies whether function_item_evaluat + or.evaluate() computes curvature. --function-step-type arg (= 0) Indicates the method used for defining step size when evaluating function-based curves. Provides @@ -321,12 +337,24 @@ CLI Manual parallel. May decrease performance, but also decrease output size (in the future) - --model-offset arg Applies an arbitrary offset of form - 'x,y,z' to all placements. - --model-rotation arg Applies an arbitrary quaternion - rotation of form 'x,y,z,w' to all - placements. + --permissive-shape-reuse Traverse geometry-level transformations + and apply to product-level placement in + order to increase reuse of geometries --triangulation-type arg (= 0) Type of planar facet to be emitted + --cgal-original-edges Try to emit original edge face boundary + edges instead of recomputed ones based + on face normal. Falls back to + triangulated data in case of boolean + operands and faces with holes. + --cache-shapes Experimental as not all topology hash + functions fully implemented + --max-offset arg Maximum translation offset to be + observed after which median offset in + model gets removed and logged. Requires + --no-parallel-mapping. + --max-offset-deviation arg To retain field of view, completely + remove elements outside of the median + offset. Requires --no-parallel-mapping. Serialization options: --bounds arg Specifies the bounding rectangle, for @@ -422,3 +450,8 @@ CLI Manual --wkt-use-section Use a geometrical section rather than full polyhedral output and footprint in TTL WKT + --separate-z-up-node Introduce a separate Z-Up node into the + GlTF hierarchy instead of multiplying + the transform into the root node + matrices + diff --git a/src/ifcopenshell-python/docs/ifcopenshell-python/geometry_creation.rst b/src/ifcopenshell-python/docs/ifcopenshell-python/geometry_creation.rst index 65c21cafef..817630ad7d 100644 --- a/src/ifcopenshell-python/docs/ifcopenshell-python/geometry_creation.rst +++ b/src/ifcopenshell-python/docs/ifcopenshell-python/geometry_creation.rst @@ -340,8 +340,12 @@ In IFC, meshes may be stored as **Faceted BReps**, **Tessellations**, or # These vertices and faces represent a 2m square 1m high pyramid in SI units. # Note how they are nested lists. Each nested list represents a "mesh". There may be multiple meshes. - vertices = [[(0.,0.,0.), (0.,2.,0.), (2.,2.,0.), (2.,0.,0.), (1.,1.,1.)]] - faces = [[(0,1,2,3), (0,4,1), (1,4,2), (2,4,3), (3,4,0)]] + vertices = [ + [(0.,0.,0.), (0.,2.,0.), (2.,2.,0.), (2.,0.,0.), (1.,1.,1.)] # A single mesh + ] + faces = [ + [(0,1,2,3), (0,4,1), (1,4,2), (2,4,3), (3,4,0)] # A single mesh + ] representation = ifcopenshell.api.geometry.add_mesh_representation(model, context=body, vertices=vertices, faces=faces) .. image:: images/mesh-representation.png diff --git a/src/ifcopenshell-python/docs/ifcopenshell-python/geometry_processing.rst b/src/ifcopenshell-python/docs/ifcopenshell-python/geometry_processing.rst index 0c4753807a..6058781de4 100644 --- a/src/ifcopenshell-python/docs/ifcopenshell-python/geometry_processing.rst +++ b/src/ifcopenshell-python/docs/ifcopenshell-python/geometry_processing.rst @@ -19,7 +19,6 @@ edges, and faces, or alternatively an OpenCASCADE BRep. applications. See the `Geometry iterator`_ section below after reading this to see how to process geometry with multiple threads. - Here is a simple example of processing a single wall into a list of vertices and faces. In this example, a ``shape`` variable is returned, which holds geometry related information in ``shape.geometry``: @@ -33,8 +32,12 @@ related information in ``shape.geometry``: ifc_file = ifcopenshell.open('model.ifc') element = ifc_file.by_type('IfcWall')[0] + # Create a shape using a hybrid of the cgal-simple geometry kernel and opencascade as a fallback + # Choosing a geometry kernel has a big impact on speed and capability. + # It is recommended to use the "hybrid-cgal-simple-opencascade" kernel. settings = ifcopenshell.geom.settings() - shape = ifcopenshell.geom.create_shape(settings, element) + shape = ifcopenshell.geom.create_shape( + settings, element, geometry_library="hybrid-cgal-simple-opencascade") # The GUID of the element we processed print(shape.guid) @@ -224,7 +227,8 @@ Here is a simple example in Python: ifc_file = ifcopenshell.open('model.ifc') settings = ifcopenshell.geom.settings() - iterator = ifcopenshell.geom.iterator(settings, ifc_file, multiprocessing.cpu_count()) + iterator = ifcopenshell.geom.iterator( + settings, ifc_file, multiprocessing.cpu_count(), geometry_library="hybrid-cgal-simple-opencascade") if iterator.initialize(): while True: shape = iterator.get() @@ -252,7 +256,9 @@ only process wall elements. .. code-block:: python walls = ifc.by_type('IfcWall') - iterator = ifcopenshell.geom.iterator(settings, ifc, multiprocessing.cpu_count(), include=walls) + iterator = ifcopenshell.geom.iterator( + settings, ifc, multiprocessing.cpu_count(), + include=walls, geometry_library="hybrid-cgal-simple-opencascade") .. note:: diff --git a/src/ifcopenshell-python/docs/ifcopenshell-python/installation.rst b/src/ifcopenshell-python/docs/ifcopenshell-python/installation.rst index 9ff9b917e2..8d75712f71 100644 --- a/src/ifcopenshell-python/docs/ifcopenshell-python/installation.rst +++ b/src/ifcopenshell-python/docs/ifcopenshell-python/installation.rst @@ -34,8 +34,6 @@ ZIP packages +-------------+---------------------------------+-------------------------------+---------------------------------+-----------------------------------+ | | Linux 64bit | Windows 64bit | MacOS Intel 64bit | MacOS Silicon 64bit | +=============+=================================+===============================+=================================+===================================+ - | Python 3.9 | :ios_python_url:`py39-linux64` | :ios_python_url:`py39-win64` | :ios_python_url:`py39-macos64` | :ios_python_url:`py39-macosm164` | - +-------------+---------------------------------+-------------------------------+---------------------------------+-----------------------------------+ | Python 3.10 | :ios_python_url:`py310-linux64` | :ios_python_url:`py310-win64` | :ios_python_url:`py310-macos64` | :ios_python_url:`py310-macosm164` | +-------------+---------------------------------+-------------------------------+---------------------------------+-----------------------------------+ | Python 3.11 | :ios_python_url:`py311-linux64` | :ios_python_url:`py311-win64` | :ios_python_url:`py311-macos64` | :ios_python_url:`py311-macosm164` | diff --git a/src/ifcopenshell-python/docs/ifcopenshell-python/selector_syntax.rst b/src/ifcopenshell-python/docs/ifcopenshell-python/selector_syntax.rst index 67f7b792b3..2d0cc9e071 100644 --- a/src/ifcopenshell-python/docs/ifcopenshell-python/selector_syntax.rst +++ b/src/ifcopenshell-python/docs/ifcopenshell-python/selector_syntax.rst @@ -252,6 +252,10 @@ nest formulas, for example ``concat(title("foo"), lower("Bar"))`` will produce "``number({{value}}[, {{decimal_separator}}[, {{thousands_separator}}]])``", "``number(1234.56, "","", ""."")``", "``1.234,56``", "Formats {{value}} with an optional custom {{decimal_separator}} and {{thousands_separator}}. The default separators are ``.`` and ``,``." "``metric_length({{value}}, {{precision}}, {{decimals}})``", "``metric_length(3.123, 0.1, 2)``", "``3.10``", "Rounds ``{{value}}`` to the nearest ``{{precision}}`` then displays using a certain amount of decimal places." "``imperial_length({{value}}, {{precision}}, {{input_unit}}, {{output_unit}}, {{suppress_zero_inches}})``", "``imperial_length(3.0, 4, ""foot"", ""foot"", true)`` OR ``imperial_length(3.0, 4, ""foot"", ""foot"", false)``", "``3'`` OR ``3' - 0""``", "The ``{{value}}`` may be specified either as ``foot`` or ``inch`` depending on ``{{input_unit}}``. The ``{{value}}`` is then rounded to the nearest ``1/{{precision}}`` inch, then formatted using fractional feet and inches if ``{{output_unit}}`` is set to ``foot``, or just inches if ``{{output_unit}}`` is set to ``inch``. When ``{{suppress_zero_inches}}`` is ``true`` (default), measurements with zero inches will omit the inch portion (e.g., ``3'`` instead of ``3' - 0""``)." + "``sort({{values}})``", "``sort({{mats.Name}})``", "``Name1, Name2``", "Sorts a list of items." + "``reverse({{values}})``", "``reverse({{mats.Name}})``", "``Name2, Name1``", "Reverses a list of items." + "``join({{separator}}, {{values}})``", "``join("-", {{mats.Name}})``", "``Name1-Name2``", "Joins a list of items with a custom separator. By default, all lists a rendered as comma separated." + "``{{value1}}[+-*/]{{value2}}``", "``{{z}}+3``", "``5``", "Does arithmetic. Typical operators such as +, -, \*, and / are allowed and can be mixed with other variables and formatting functions." When using queries in an IfcAnnotation tag surround with backticks. Examples: diff --git a/src/ifcopenshell-python/docs/ifcopenshell/geometry_settings.rst b/src/ifcopenshell-python/docs/ifcopenshell/geometry_settings.rst index a41489a4dd..f73c7edc28 100644 --- a/src/ifcopenshell-python/docs/ifcopenshell/geometry_settings.rst +++ b/src/ifcopenshell-python/docs/ifcopenshell/geometry_settings.rst @@ -111,6 +111,32 @@ In Python, this is set when the iterator is constructed: import multiprocessing iterator = ifcopenshell.geom.iterator(settings, ifc_file, num_threads=multiprocessing.cpu_count()) +geometry_library +^^^^^^^^^^^^^^^^ + ++--------+-------------------+-------------+ +| Type | IfcConvert Option | Default | ++========+===================+=============+ +| STRING | ``--kernel`` | opencascade | ++--------+-------------------+-------------+ + +IfcOpenShell supports multiple geometry kernels to process geometry. Choosing the geometry kernel has trade-offs on geometric support, speed, and maturity. It is possible and recommended to chose a hybrid geometry kernel by providing the name ``hybrid-kernelX-kernelY``, where ``kernelX`` is the name of the first kernel to try, and ``kernelY`` is the name of the fallback kernel, for example ``hybrid-cgal-simple-opencascade``. + +.. csv-table:: + :header: "Comparison", "cgal-simple", "cgal", "opencascade" + + "Speed", "Very fast", "Fast", "Slow" + "Curves in extrusion footprints", "Only circle and ellipse arcs are converted to polylines", "Only circle and ellipse arcs are converted to polylines", "Full support including beziers and nurbs" + "Advanced (curved) breps", "No", "No", "Full support" + "Boolean operations", "No", "Full support", "Full support" + "Boolean operations with tolerance / fuzziness handling", "No", "Only manifold inputs", "Full support, including non-manifold inputs" + "Sweeps along alignment curves", "Partial", "Partial", "Full support" + +.. code-block:: python + + iterator = ifcopenshell.geom.iterator(settings, ifc_file, geometry_library="hybrid-cgal-simple-opencascade") + ifcopenshell.geom.create_shape(settings, element, geometry_library="opencascade") + Iterator settings ----------------- diff --git a/src/ifcopenshell-python/ifcopenshell/__init__.py b/src/ifcopenshell-python/ifcopenshell/__init__.py index c12d619b58..fb38426aff 100644 --- a/src/ifcopenshell-python/ifcopenshell/__init__.py +++ b/src/ifcopenshell-python/ifcopenshell/__init__.py @@ -54,13 +54,14 @@ Example: print(wall.Name) """ from __future__ import annotations + import os import sys -import zipfile import tempfile +import zipfile +from collections.abc import Generator, Sequence from pathlib import Path -from typing import Optional, Union, TYPE_CHECKING, Any, overload, Literal -from collections.abc import Sequence +from typing import TYPE_CHECKING, Any, Literal, Optional, Union, overload if TYPE_CHECKING: import ifcopenshell.express.schema_class @@ -88,12 +89,10 @@ except Exception: # `_file`, `_stream` is used only for annotations inside this file, # see https://github.com/microsoft/pyright/discussions/9065. -from .file import file as _file -from .file import file - -from .file import rocksdb_lazy_instance from . import guid from .entity_instance import entity_instance, register_schema_attributes +from .file import file, rocksdb_lazy_instance +from .file import file as _file from .sql import sqlite, sqlite_entity # explicitly specify available imported symbols @@ -103,6 +102,7 @@ __all__ = [ "file", "guid", "ifcopenshell_wrapper", + "rocksdb_lazy_instance", "sqlite", "sqlite_entity", "stream", @@ -110,8 +110,8 @@ __all__ = [ ] try: - from .stream import stream as _stream, stream_entity - from .stream import stream + from .stream import stream, stream_entity + from .stream import stream as _stream except: pass @@ -319,13 +319,11 @@ def stream2(path: Union[Path, str], mmap: bool = False, page_size: int = 0): """Streams the content of a file path from disk, yielding each instance as a dictionary. - Args: - path (Union[Path, str]): input file path - mmap (bool): open the file contents using memory mapping - page_size (int): open file in python and feed chunks to the parser + :param path: Input file path + :param mmap: Open the file contents using memory mapping + :param page_size: Open file in python and feed chunks to the parser. - Yields: - dict: entity instance dictionaries + :yield: Entity instance dictionaries """ if page_size: import builtins @@ -355,15 +353,12 @@ def stream2(path: Union[Path, str], mmap: bool = False, page_size: int = 0): yield inst -def stream2_from_string(data: str): +def stream2_from_string(data: str) -> Generator[dict]: """Streams the content of a file path from string, yielding each instance as a dictionary. - Args: - data (str): input data - - Yields: - dict: entity instance dictionaries + :param data: Input data string + :yield: entity instance dictionaries """ streamer = ifcopenshell_wrapper.stream_from_string(data) while streamer: @@ -371,14 +366,13 @@ def stream2_from_string(data: str): yield inst -def convert_path_to_rocksdb(ifcspf_path: Union[Path, str], rocksdb_path: Union[Path, str]): +def convert_path_to_rocksdb(ifcspf_path: Union[Path, str], rocksdb_path: Union[Path, str]) -> None: """Converts an IFC-SPF file on disk to the IfcOpenShell-specific RocksDB encoding. RocksDB is an embedded key-value store that allows partial reads and is therefore more memory efficient with larger files. - Args: - ifcspf_path (Union[Path, str]): Input file path - needs to exist - rocksdb_path (Union[Path, str]): RocksDB file path (directory) - may exist, but result may then be invalid + :param ifcspf_path: Input file path - needs to exist + :param rocksdb_path: RocksDB file path (directory) - may exist, but result may then be invalid """ ser = ifcopenshell_wrapper.RocksDbSerializer(str(ifcspf_path), str(rocksdb_path), True) ser.finalize() diff --git a/src/ifcopenshell-python/ifcopenshell/api/__init__.py b/src/ifcopenshell-python/ifcopenshell/api/__init__.py index 0eb95b2c65..49c3b471dd 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/__init__.py +++ b/src/ifcopenshell-python/ifcopenshell/api/__init__.py @@ -38,13 +38,16 @@ Also see how to `create a simple model from scratch `_. """ -import json -import numpy -import inspect import importlib -import ifcopenshell -from typing import Callable, Any, Optional, TYPE_CHECKING +import inspect +import json +from collections.abc import Callable from functools import partial +from typing import TYPE_CHECKING, Any, Optional + +import numpy + +import ifcopenshell if TYPE_CHECKING: import ifcopenshell.api @@ -186,8 +189,8 @@ def remove_all_listeners(): def extract_docs(module: str, usecase: str) -> dict[str, Any]: - import typing import collections + import typing inputs = collections.OrderedDict() @@ -303,8 +306,8 @@ def wrap_usecase(usecase_path, usecase): def wrap_usecases(path, name): """This developer feature wraps an API module's usecases with listeners.""" - import sys import pkgutil + import sys module_name = name.split(".")[-1] module = sys.modules[name] diff --git a/src/ifcopenshell-python/ifcopenshell/api/aggregate/assign_object.py b/src/ifcopenshell-python/ifcopenshell/api/aggregate/assign_object.py index 22d027b73b..a7e3e403d8 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/aggregate/assign_object.py +++ b/src/ifcopenshell-python/ifcopenshell/api/aggregate/assign_object.py @@ -16,14 +16,15 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Union + import ifcopenshell +import ifcopenshell.api.geometry import ifcopenshell.api.owner import ifcopenshell.api.spatial -import ifcopenshell.api.geometry import ifcopenshell.guid import ifcopenshell.util.element import ifcopenshell.util.placement -from typing import Union def assign_object( diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/__init__.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/__init__.py index 563376485f..2662015313 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/__init__.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/__init__.py @@ -47,45 +47,48 @@ Future versions of this API may support: 5. Adding a segment at any location along a curve """ +from ._get_segment_start_point_label import register_referent_name_callback from .add_stationing_referent import add_stationing_referent from .add_vertical_layout import add_vertical_layout from .add_zero_length_segment import add_zero_length_segment -from .create_layout_segment import create_layout_segment from .create import create from .create_as_offset_curve import create_as_offset_curve from .create_as_polyline import create_as_polyline from .create_by_pi_method import create_by_pi_method from .create_from_csv import create_from_csv -from .create_segment_representations import create_segment_representations +from .create_layout_segment import create_layout_segment from .create_representation import create_representation +from .create_segment_representations import create_segment_representations from .distance_along_from_station import distance_along_from_station from .get_alignment import get_alignment from .get_alignment_layout_nest import get_alignment_layout_nest +from .get_alignment_layouts import get_alignment_layouts from .get_alignment_segment_nest import get_alignment_segment_nest from .get_alignment_start_station import get_alignment_start_station -from .get_curve_segment_transition_code import get_curve_segment_transition_code -from .get_layout_segments import get_layout_segments -from .get_horizontal_layout import get_horizontal_layout -from .get_vertical_layout import get_vertical_layout -from .get_cant_layout import get_cant_layout -from .get_alignment_layouts import get_alignment_layouts from .get_axis_subcontext import get_axis_subcontext from .get_basis_curve import get_basis_curve +from .get_cant_layout import get_cant_layout from .get_child_alignments import get_child_alignments from .get_curve import get_curve +from .get_curve_segment_transition_code import get_curve_segment_transition_code +from .get_horizontal_layout import get_horizontal_layout from .get_layout_curve import get_layout_curve +from .get_layout_segments import get_layout_segments from .get_mapped_segments import get_mapped_segments from .get_parent_alignment import get_parent_alignment from .get_referent_nest import get_referent_nest +from .get_vertical_layout import get_vertical_layout from .has_zero_length_segment import has_zero_length_segment -from .layout_horizontal_alignment_by_pi_method import layout_horizontal_alignment_by_pi_method -from .layout_vertical_alignment_by_pi_method import layout_vertical_alignment_by_pi_method +from .layout_horizontal_alignment_by_pi_method import ( + layout_horizontal_alignment_by_pi_method, +) +from .layout_vertical_alignment_by_pi_method import ( + layout_vertical_alignment_by_pi_method, +) from .name_segments import name_segments from .update_fallback_position import update_fallback_position from .util import * -from ._get_segment_start_point_label import register_referent_name_callback - __all__ = [ "add_stationing_referent", "add_vertical_layout", @@ -122,4 +125,5 @@ __all__ = [ "name_segments", "register_referent_name_callback", "update_fallback_position", + "get_mapped_segments", ] diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/_add_segment_to_curve.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/_add_segment_to_curve.py index 4fcadc176e..e24a946ae7 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/_add_segment_to_curve.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/_add_segment_to_curve.py @@ -16,19 +16,26 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +import numpy as np + import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.alignment import ifcopenshell.geom -import ifcopenshell.util.unit import ifcopenshell.ifcopenshell_wrapper as ifcopenshell_wrapper -import numpy as np +import ifcopenshell.util.unit from ifcopenshell import entity_instance - -from ifcopenshell.api.alignment._update_curve_segment_transition_code import _update_curve_segment_transition_code -from ifcopenshell.api.alignment._map_alignment_horizontal_segment import _map_alignment_horizontal_segment -from ifcopenshell.api.alignment._map_alignment_vertical_segment import _map_alignment_vertical_segment -from ifcopenshell.api.alignment._map_alignment_cant_segment import _map_alignment_cant_segment +from ifcopenshell.api.alignment._map_alignment_cant_segment import ( + _map_alignment_cant_segment, +) +from ifcopenshell.api.alignment._map_alignment_horizontal_segment import ( + _map_alignment_horizontal_segment, +) +from ifcopenshell.api.alignment._map_alignment_vertical_segment import ( + _map_alignment_vertical_segment, +) +from ifcopenshell.api.alignment._update_curve_segment_transition_code import ( + _update_curve_segment_transition_code, +) def _add_curve_segment_to_composite_curve( diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/_add_segment_to_layout.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/_add_segment_to_layout.py index bb31342efb..70914a3353 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/_add_segment_to_layout.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/_add_segment_to_layout.py @@ -16,6 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +import math + +import numpy as np + import ifcopenshell import ifcopenshell.api.alignment import ifcopenshell.api.nest @@ -23,14 +27,11 @@ import ifcopenshell.api.pset import ifcopenshell.geom import ifcopenshell.util.alignment import ifcopenshell.util.unit -from ifcopenshell import ifcopenshell_wrapper -import numpy as np -import math -from ifcopenshell import entity_instance -from collections.abc import Sequence - +from ifcopenshell import entity_instance, ifcopenshell_wrapper from ifcopenshell.api.alignment._add_segment_to_curve import _add_segment_to_curve -from ifcopenshell.api.alignment._get_segment_start_point_label import _get_segment_start_point_label +from ifcopenshell.api.alignment._get_segment_start_point_label import ( + _get_segment_start_point_label, +) def _add_segment_to_layout(file: ifcopenshell.file, layout: entity_instance, segment: entity_instance) -> None: diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/_add_zero_length_segment.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/_add_zero_length_segment.py index 17be8ec45c..71da0d3938 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/_add_zero_length_segment.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/_add_zero_length_segment.py @@ -18,11 +18,11 @@ import ifcopenshell import ifcopenshell.api.alignment -import ifcopenshell.util import ifcopenshell.util.alignment from ifcopenshell import entity_instance - -from ifcopenshell.api.alignment._get_segment_start_point_label import _get_segment_start_point_label +from ifcopenshell.api.alignment._get_segment_start_point_label import ( + _get_segment_start_point_label, +) def _add_zero_length_segment(file: ifcopenshell.file, layout: entity_instance) -> None: diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/_create_geometric_representation.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/_create_geometric_representation.py index d6b070af78..933ee3a470 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/_create_geometric_representation.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/_create_geometric_representation.py @@ -16,14 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . + import ifcopenshell import ifcopenshell.api.alignment import ifcopenshell.api.geometry from ifcopenshell import entity_instance -import math -from collections.abc import Sequence - def _create_geometric_representation(file: ifcopenshell.file, alignment: entity_instance) -> None: """ diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/_create_offset_curve_representation.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/_create_offset_curve_representation.py index 402a6c3513..a5675a4dc2 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/_create_offset_curve_representation.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/_create_offset_curve_representation.py @@ -16,20 +16,19 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from collections.abc import Sequence + import ifcopenshell import ifcopenshell.api.alignment import ifcopenshell.api.geometry from ifcopenshell import entity_instance -import math -from collections.abc import Sequence - def _create_offset_curve_representation( file: ifcopenshell.file, alignment: entity_instance, offsets: Sequence[entity_instance] ) -> None: """ - Create geometric representation for the alignment based on an IfcPolyline + Create geometric representation for the alignment based on an IfcOffsetByDistances curve :param alignment: The alignment for which the representation is being created :return: None @@ -37,6 +36,11 @@ def _create_offset_curve_representation( expected_type = "IfcAlignment" if not alignment.is_a(expected_type): raise TypeError(f"Expected {expected_type} but got {alignment.is_a()}") + + expected_type = "IfcPointByDistanceExpression" + for offset in offsets: + if not offset.is_a(expected_type): + raise TypeError(f"Expected {expected_type} but got {offset.is_a()}") axis_geom_subcontext = ifcopenshell.api.alignment.get_axis_subcontext(file) diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/_create_polyline_representation.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/_create_polyline_representation.py index e8329a5b1a..4d31917fae 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/_create_polyline_representation.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/_create_polyline_representation.py @@ -16,14 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from collections.abc import Sequence + import ifcopenshell import ifcopenshell.api.alignment import ifcopenshell.api.geometry from ifcopenshell import entity_instance -import math -from collections.abc import Sequence - def _create_polyline_representation( file: ifcopenshell.file, alignment: entity_instance, points: Sequence[entity_instance] diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/_get_cant_segment.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/_get_cant_segment.py index ccf466828b..2abd74c189 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/_get_cant_segment.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/_get_cant_segment.py @@ -16,13 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell -import ifcopenshell.api.alignment -import ifcopenshell.api.geometry -from ifcopenshell import entity_instance -import math -from collections.abc import Sequence +import ifcopenshell.api.alignment +from ifcopenshell import entity_instance def _get_cant_segment(horizontal_segment: entity_instance) -> entity_instance: diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/_get_segment_start_point_label.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/_get_segment_start_point_label.py index b1bddfb2e6..6e5453489b 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/_get_segment_start_point_label.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/_get_segment_start_point_label.py @@ -16,10 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell -from ifcopenshell import entity_instance -from collections.abc import Sequence +from ifcopenshell import entity_instance _horizontal_callback = None _vertical_callback = None diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/_map_alignment_cant_segment.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/_map_alignment_cant_segment.py index c86edc110e..d7ae7526b4 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/_map_alignment_cant_segment.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/_map_alignment_cant_segment.py @@ -16,11 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +import math +from collections.abc import Sequence + import ifcopenshell from ifcopenshell import entity_instance -from ifcopenshell.api.alignment import get_axis_subcontext -from collections.abc import Sequence -import math def _get_axis(file: ifcopenshell.file, Ds: float, rail_head_distance: float) -> entity_instance: diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/_map_alignment_horizontal_segment.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/_map_alignment_horizontal_segment.py index 73802f2318..0ab7d7334b 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/_map_alignment_horizontal_segment.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/_map_alignment_horizontal_segment.py @@ -16,14 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell -from ifcopenshell import entity_instance -import ifcopenshell.ifcopenshell_wrapper as ifcopenshell_wrapper -import ifcopenshell.util -import ifcopenshell.util.unit -from collections.abc import Sequence import math +from collections.abc import Sequence +import ifcopenshell +import ifcopenshell.ifcopenshell_wrapper as ifcopenshell_wrapper +import ifcopenshell.util.unit +from ifcopenshell import entity_instance from ifcopenshell.api.alignment._get_cant_segment import _get_cant_segment diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/_map_alignment_vertical_segment.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/_map_alignment_vertical_segment.py index 1f8a1ef5d7..707cf0cba1 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/_map_alignment_vertical_segment.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/_map_alignment_vertical_segment.py @@ -16,11 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell -from ifcopenshell import ifcopenshell_wrapper -from ifcopenshell import entity_instance -from collections.abc import Sequence import math +from collections.abc import Sequence + +import ifcopenshell +from ifcopenshell import entity_instance def _polynomial_length(A: float, B: float, C: float, L: float) -> float: diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/_update_curve_segment_transition_code.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/_update_curve_segment_transition_code.py index 59154980dc..367bf2e2fd 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/_update_curve_segment_transition_code.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/_update_curve_segment_transition_code.py @@ -16,13 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell + import ifcopenshell.api.alignment -from ifcopenshell import ifcopenshell_wrapper -import ifcopenshell.geom from ifcopenshell import entity_instance -import numpy as np -import math def _update_curve_segment_transition_code(prev_segment: entity_instance, segment: entity_instance) -> None: diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/add_stationing_referent.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/add_stationing_referent.py index 2ac08a2fbf..2d70ace789 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/add_stationing_referent.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/add_stationing_referent.py @@ -16,17 +16,16 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +import numpy as np + import ifcopenshell import ifcopenshell.api.alignment -import ifcopenshell.api.nest import ifcopenshell.api.pset import ifcopenshell.geom import ifcopenshell.guid import ifcopenshell.util.element import ifcopenshell.util.unit -from ifcopenshell import entity_instance -from ifcopenshell import ifcopenshell_wrapper -import numpy as np +from ifcopenshell import entity_instance, ifcopenshell_wrapper def add_stationing_referent( diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/add_vertical_layout.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/add_vertical_layout.py index 06c1ef9fa8..09feb78a40 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/add_vertical_layout.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/add_vertical_layout.py @@ -24,9 +24,7 @@ import ifcopenshell.api.nest import ifcopenshell.guid import ifcopenshell.util.element import ifcopenshell.util.representation -import ifcopenshell.api from ifcopenshell import entity_instance - from ifcopenshell.api.alignment._add_zero_length_segment import _add_zero_length_segment diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/add_zero_length_segment.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/add_zero_length_segment.py index 5b36cddd75..96c3a9c1f2 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/add_zero_length_segment.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/add_zero_length_segment.py @@ -16,21 +16,30 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +import math + +import numpy as np + import ifcopenshell import ifcopenshell.api.alignment import ifcopenshell.api.nest import ifcopenshell.geom -import ifcopenshell.util.alignment -from ifcopenshell import entity_instance import ifcopenshell.ifcopenshell_wrapper as wrapper +import ifcopenshell.util.alignment import ifcopenshell.util.unit -import numpy as np -import math - -from ifcopenshell.api.alignment._get_segment_start_point_label import _get_segment_start_point_label -from ifcopenshell.api.alignment._map_alignment_horizontal_segment import _map_alignment_horizontal_segment -from ifcopenshell.api.alignment._map_alignment_vertical_segment import _map_alignment_vertical_segment -from ifcopenshell.api.alignment._update_curve_segment_transition_code import _update_curve_segment_transition_code +from ifcopenshell import entity_instance +from ifcopenshell.api.alignment._get_segment_start_point_label import ( + _get_segment_start_point_label, +) +from ifcopenshell.api.alignment._map_alignment_horizontal_segment import ( + _map_alignment_horizontal_segment, +) +from ifcopenshell.api.alignment._map_alignment_vertical_segment import ( + _map_alignment_vertical_segment, +) +from ifcopenshell.api.alignment._update_curve_segment_transition_code import ( + _update_curve_segment_transition_code, +) def add_zero_length_segment(file: ifcopenshell.file, layout: entity_instance, include_referent: bool = True) -> bool: diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/create.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/create.py index cd707920c0..d2682aaad1 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/create.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/create.py @@ -21,11 +21,11 @@ import ifcopenshell.api.aggregate import ifcopenshell.api.alignment import ifcopenshell.api.nest import ifcopenshell.util.alignment - from ifcopenshell import entity_instance - -from ifcopenshell.api.alignment._create_geometric_representation import _create_geometric_representation from ifcopenshell.api.alignment._add_zero_length_segment import _add_zero_length_segment +from ifcopenshell.api.alignment._create_geometric_representation import ( + _create_geometric_representation, +) def create( diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/create_as_offset_curve.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/create_as_offset_curve.py index a206fda69b..6ac56af362 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/create_as_offset_curve.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/create_as_offset_curve.py @@ -16,17 +16,14 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from collections.abc import Sequence + import ifcopenshell import ifcopenshell.api.aggregate -import ifcopenshell.api.alignment -import ifcopenshell.api.nest -import ifcopenshell.util.alignment - from ifcopenshell import entity_instance - -from ifcopenshell.api.alignment._create_offset_curve_representation import _create_offset_curve_representation - -from collections.abc import Sequence +from ifcopenshell.api.alignment._create_offset_curve_representation import ( + _create_offset_curve_representation, +) def create_as_offset_curve( @@ -42,7 +39,7 @@ def create_as_offset_curve( :param file: :param name: name assigned to IfcAlignment.Name - :param offsets: offsets from the basis curve that defines the offset curve, expected to be IfcOffsetCurveByDistances. + :param offsets: offsets from the basis curve that defines the offset curve, expected to be IfcPointByDistanceExpression. :param start_station: station value at the start of the alignment :return: Returns an IfcAlignment """ diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/create_as_polyline.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/create_as_polyline.py index 1048f1fa69..4988a31920 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/create_as_polyline.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/create_as_polyline.py @@ -16,18 +16,18 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +import math +from collections.abc import Sequence + import ifcopenshell import ifcopenshell.api.aggregate import ifcopenshell.api.alignment import ifcopenshell.api.nest import ifcopenshell.util.alignment - from ifcopenshell import entity_instance - -from ifcopenshell.api.alignment._create_polyline_representation import _create_polyline_representation - -import math -from collections.abc import Sequence +from ifcopenshell.api.alignment._create_polyline_representation import ( + _create_polyline_representation, +) def _create_layout(file: ifcopenshell.file, alignment: entity_instance, points: Sequence[entity_instance]): diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/create_by_pi_method.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/create_by_pi_method.py index 55f91b5cbe..e6ceba0572 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/create_by_pi_method.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/create_by_pi_method.py @@ -16,13 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell -import ifcopenshell.api.aggregate -import ifcopenshell.api.alignment -import ifcopenshell.api.nest -from ifcopenshell import entity_instance from collections.abc import Sequence +import ifcopenshell +import ifcopenshell.api.alignment +from ifcopenshell import entity_instance + def create_by_pi_method( file: ifcopenshell.file, diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/create_from_csv.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/create_from_csv.py index 4125f16bfc..3bd8ed275d 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/create_from_csv.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/create_from_csv.py @@ -16,15 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +import csv + import ifcopenshell import ifcopenshell.api.alignment -import ifcopenshell.api from ifcopenshell import entity_instance -from ifcopenshell.api.alignment import get_axis_subcontext - -from collections.abc import Sequence - -import csv def create_from_csv(file: ifcopenshell.file, filepath: str) -> entity_instance: diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/create_layout_segment.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/create_layout_segment.py index 3f6789fd98..52f329694b 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/create_layout_segment.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/create_layout_segment.py @@ -16,15 +16,14 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Union + +import numpy as np + import ifcopenshell import ifcopenshell.api.alignment import ifcopenshell.geom -from ifcopenshell import entity_instance -import math -from ifcopenshell import ifcopenshell_wrapper -import numpy as np -from typing import Union - +from ifcopenshell import entity_instance, ifcopenshell_wrapper from ifcopenshell.api.alignment._add_segment_to_layout import _add_segment_to_layout diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/create_representation.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/create_representation.py index c94ee873fa..896108367f 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/create_representation.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/create_representation.py @@ -19,9 +19,10 @@ import ifcopenshell import ifcopenshell.api.alignment from ifcopenshell import entity_instance - -from ifcopenshell.api.alignment._create_geometric_representation import _create_geometric_representation from ifcopenshell.api.alignment._add_segment_to_curve import _add_segment_to_curve +from ifcopenshell.api.alignment._create_geometric_representation import ( + _create_geometric_representation, +) def create_representation( diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/create_segment_representations.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/create_segment_representations.py index c6f479e656..d35429ce75 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/create_segment_representations.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/create_segment_representations.py @@ -17,9 +17,9 @@ # along with IfcOpenShell. If not, see . import ifcopenshell +import ifcopenshell.api.alignment import ifcopenshell.util.element import ifcopenshell.util.representation -import ifcopenshell.api.alignment from ifcopenshell import entity_instance diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_alignment_layout_nest.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_alignment_layout_nest.py index b870fd1692..2a6287f6eb 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_alignment_layout_nest.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_alignment_layout_nest.py @@ -16,7 +16,6 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from ifcopenshell import entity_instance diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_alignment_layouts.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_alignment_layouts.py index 897ab22da8..5e05cf1fe4 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_alignment_layouts.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_alignment_layouts.py @@ -16,12 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell -import ifcopenshell.util -from ifcopenshell import entity_instance from collections.abc import Sequence -import ifcopenshell.util.representation +from ifcopenshell import entity_instance def get_alignment_layouts(alignment: entity_instance) -> Sequence[entity_instance]: diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_alignment_segment_nest.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_alignment_segment_nest.py index fba39617ea..4fc732ed0c 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_alignment_segment_nest.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_alignment_segment_nest.py @@ -16,7 +16,6 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from ifcopenshell import entity_instance diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_axis_subcontext.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_axis_subcontext.py index 033c94d9bb..98e6646cc4 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_axis_subcontext.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_axis_subcontext.py @@ -17,8 +17,8 @@ # along with IfcOpenShell. If not, see . import ifcopenshell -import ifcopenshell.util.representation import ifcopenshell.api.context +import ifcopenshell.util.representation from ifcopenshell import entity_instance diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_basis_curve.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_basis_curve.py index b96c830757..7057640e02 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_basis_curve.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_basis_curve.py @@ -16,11 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell -import ifcopenshell.util -from ifcopenshell import entity_instance - import ifcopenshell.util.representation +from ifcopenshell import entity_instance def get_basis_curve(alignment: entity_instance) -> entity_instance: diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_child_alignments.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_child_alignments.py index c81018ce06..db3a74b35b 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_child_alignments.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_child_alignments.py @@ -16,12 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell -import ifcopenshell.util -from ifcopenshell import entity_instance from collections.abc import Sequence -import ifcopenshell.util.element +from ifcopenshell import entity_instance def get_child_alignments(alignment: entity_instance) -> Sequence[entity_instance]: diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_curve.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_curve.py index aeb018976a..1bf320db60 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_curve.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_curve.py @@ -16,11 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell -import ifcopenshell.util -from ifcopenshell import entity_instance - import ifcopenshell.util.representation +from ifcopenshell import entity_instance def get_curve(alignment: entity_instance) -> entity_instance: diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_curve_segment_transition_code.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_curve_segment_transition_code.py index 577b14d709..7fe4d30513 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_curve_segment_transition_code.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_curve_segment_transition_code.py @@ -16,13 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell -import ifcopenshell.api -from ifcopenshell import ifcopenshell_wrapper -import ifcopenshell.geom -from ifcopenshell import entity_instance + import numpy as np -import math + +import ifcopenshell.geom +from ifcopenshell import entity_instance, ifcopenshell_wrapper def get_curve_segment_transition_code( diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_layout_curve.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_layout_curve.py index 0b5a70b127..4b26754ee8 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_layout_curve.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_layout_curve.py @@ -16,7 +16,6 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell import ifcopenshell.api.alignment from ifcopenshell import entity_instance diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_layout_segments.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_layout_segments.py index cae8079f53..758693081b 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_layout_segments.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_layout_segments.py @@ -16,12 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell -import ifcopenshell.util -from ifcopenshell import entity_instance from collections.abc import Sequence -import ifcopenshell.util.element +from ifcopenshell import entity_instance def get_layout_segments(layout: entity_instance) -> Sequence[entity_instance]: diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_mapped_segments.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_mapped_segments.py index 12be6d90f1..0b8a3b65b3 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_mapped_segments.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_mapped_segments.py @@ -16,10 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell +from collections.abc import Sequence + import ifcopenshell.api.alignment from ifcopenshell import entity_instance -from collections.abc import Sequence def _get_curve_segment_count(segment: entity_instance) -> int: diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_parent_alignment.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_parent_alignment.py index 5115f9e37a..d99d832fd2 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_parent_alignment.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_parent_alignment.py @@ -16,12 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell -import ifcopenshell.util from ifcopenshell import entity_instance -import ifcopenshell.util.representation - def get_parent_alignment(alignment: entity_instance) -> entity_instance: """ diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/has_zero_length_segment.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/has_zero_length_segment.py index 036e4de59a..7daa9f23f1 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/has_zero_length_segment.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/has_zero_length_segment.py @@ -16,9 +16,6 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell -import ifcopenshell.api.alignment -import ifcopenshell.util.element from ifcopenshell import entity_instance diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/layout_horizontal_alignment_by_pi_method.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/layout_horizontal_alignment_by_pi_method.py index 3409fd761b..676e03e429 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/layout_horizontal_alignment_by_pi_method.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/layout_horizontal_alignment_by_pi_method.py @@ -16,15 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell -import ifcopenshell.api.alignment -from ifcopenshell import entity_instance - import math from collections.abc import Sequence -import ifcopenshell.util +import ifcopenshell +import ifcopenshell.api.alignment import ifcopenshell.util.unit +from ifcopenshell import entity_instance def layout_horizontal_alignment_by_pi_method( diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/layout_vertical_alignment_by_pi_method.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/layout_vertical_alignment_by_pi_method.py index 73470467af..542237cbc4 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/layout_vertical_alignment_by_pi_method.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/layout_vertical_alignment_by_pi_method.py @@ -16,13 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +import math +from collections.abc import Sequence + import ifcopenshell import ifcopenshell.api.alignment from ifcopenshell import entity_instance -import math -from collections.abc import Sequence - def layout_vertical_alignment_by_pi_method( file: ifcopenshell.file, layout: entity_instance, vpoints: Sequence[Sequence[float]], lengths: Sequence[float] diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/name_segments.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/name_segments.py index 6036332088..e010119b1a 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/name_segments.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/name_segments.py @@ -16,7 +16,6 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from ifcopenshell import entity_instance diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/update_fallback_position.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/update_fallback_position.py index 6cc653fb52..3cd4c05907 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/update_fallback_position.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/update_fallback_position.py @@ -16,10 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +import numpy as np + import ifcopenshell import ifcopenshell.util.placement from ifcopenshell import entity_instance -import numpy as np def update_fallback_position(file: ifcopenshell.file, lp: entity_instance): diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/util.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/util.py index 389f94576a..c36e635768 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/alignment/util.py +++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/util.py @@ -16,20 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell -import ifcopenshell.api.alignment -import math import numpy as np import ifcopenshell import ifcopenshell.geom -import ifcopenshell.guid -import ifcopenshell.template -from ifcopenshell import entity_instance -from ifcopenshell import ifcopenshell_wrapper -import ifcopenshell.util -import ifcopenshell.util.alignment +from ifcopenshell import entity_instance, ifcopenshell_wrapper def evaluate_representation(shape_rep: entity_instance, dist_along: float) -> np.ndarray: diff --git a/src/ifcopenshell-python/ifcopenshell/api/attribute/edit_attributes.py b/src/ifcopenshell-python/ifcopenshell/api/attribute/edit_attributes.py index 6199ddf3b7..1f46e70921 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/attribute/edit_attributes.py +++ b/src/ifcopenshell-python/ifcopenshell/api/attribute/edit_attributes.py @@ -16,15 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import sys -import ifcopenshell.api.owner -import ifcopenshell.util.element +from types import EllipsisType from typing import Any, Union -if sys.version_info >= (3, 10): - from types import EllipsisType -else: - EllipsisType = type(...) +import ifcopenshell.api.owner +import ifcopenshell.util.element def edit_attributes(file: ifcopenshell.file, product: ifcopenshell.entity_instance, attributes: dict[str, Any]) -> None: diff --git a/src/ifcopenshell-python/ifcopenshell/api/boundary/assign_connection_geometry.py b/src/ifcopenshell-python/ifcopenshell/api/boundary/assign_connection_geometry.py index 36e55f2d00..f974ea2cd2 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/boundary/assign_connection_geometry.py +++ b/src/ifcopenshell-python/ifcopenshell/api/boundary/assign_connection_geometry.py @@ -16,10 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.util.unit +from typing import Optional + import numpy as np import numpy.typing as npt -from typing import Optional + +import ifcopenshell.util.unit from ifcopenshell.util.shape_builder import SequenceOfVectors, V, ifc_safe_vector_type diff --git a/src/ifcopenshell-python/ifcopenshell/api/boundary/edit_attributes.py b/src/ifcopenshell-python/ifcopenshell/api/boundary/edit_attributes.py index 6980b1a2dd..ee11094d13 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/boundary/edit_attributes.py +++ b/src/ifcopenshell-python/ifcopenshell/api/boundary/edit_attributes.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Optional +import ifcopenshell + def edit_attributes( file: ifcopenshell.file, diff --git a/src/ifcopenshell-python/ifcopenshell/api/classification/add_classification.py b/src/ifcopenshell-python/ifcopenshell/api/classification/add_classification.py index 2932a5bb93..50cff83194 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/classification/add_classification.py +++ b/src/ifcopenshell-python/ifcopenshell/api/classification/add_classification.py @@ -16,11 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Union + import ifcopenshell import ifcopenshell.guid -import ifcopenshell.util.schema import ifcopenshell.util.date -from typing import Union, Any +import ifcopenshell.util.schema def add_classification( diff --git a/src/ifcopenshell-python/ifcopenshell/api/classification/add_reference.py b/src/ifcopenshell-python/ifcopenshell/api/classification/add_reference.py index 7f3d46bc96..10177821b4 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/classification/add_reference.py +++ b/src/ifcopenshell-python/ifcopenshell/api/classification/add_reference.py @@ -16,12 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Any, Optional, Union + import ifcopenshell import ifcopenshell.api.owner import ifcopenshell.guid import ifcopenshell.util.element import ifcopenshell.util.schema -from typing import Optional, Union, Any def add_reference( diff --git a/src/ifcopenshell-python/ifcopenshell/api/classification/edit_classification.py b/src/ifcopenshell-python/ifcopenshell/api/classification/edit_classification.py index b2091c0eca..133dc1bfc2 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/classification/edit_classification.py +++ b/src/ifcopenshell-python/ifcopenshell/api/classification/edit_classification.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_classification( file: ifcopenshell.file, classification: ifcopenshell.entity_instance, attributes: dict[str, Any] diff --git a/src/ifcopenshell-python/ifcopenshell/api/classification/edit_reference.py b/src/ifcopenshell-python/ifcopenshell/api/classification/edit_reference.py index f5a85d40f9..24e670f2f3 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/classification/edit_reference.py +++ b/src/ifcopenshell-python/ifcopenshell/api/classification/edit_reference.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_reference( file: ifcopenshell.file, reference: ifcopenshell.entity_instance, attributes: dict[str, Any] diff --git a/src/ifcopenshell-python/ifcopenshell/api/cogo/__init__.py b/src/ifcopenshell-python/ifcopenshell/api/cogo/__init__.py index bb1c7c5243..5fdb2bcea0 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/cogo/__init__.py +++ b/src/ifcopenshell-python/ifcopenshell/api/cogo/__init__.py @@ -22,8 +22,8 @@ Coordinate Geometry (cogo) functions primarily for survey points and control mon from .add_survey_point import add_survey_point from .assign_survey_point import assign_survey_point -from .edit_survey_point import edit_survey_point from .bearing2dd import bearing2dd +from .edit_survey_point import edit_survey_point __all__ = [ "add_survey_point", diff --git a/src/ifcopenshell-python/ifcopenshell/api/cogo/add_survey_point.py b/src/ifcopenshell-python/ifcopenshell/api/cogo/add_survey_point.py index c4a10661d3..20c0852a04 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/cogo/add_survey_point.py +++ b/src/ifcopenshell-python/ifcopenshell/api/cogo/add_survey_point.py @@ -16,11 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Union + import ifcopenshell import ifcopenshell.api.spatial import ifcopenshell.util.representation from ifcopenshell import entity_instance -from typing import Union def add_survey_point( diff --git a/src/ifcopenshell-python/ifcopenshell/api/cogo/assign_survey_point.py b/src/ifcopenshell-python/ifcopenshell/api/cogo/assign_survey_point.py index c9a6ba0acc..5117998c6f 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/cogo/assign_survey_point.py +++ b/src/ifcopenshell-python/ifcopenshell/api/cogo/assign_survey_point.py @@ -16,9 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell + from ifcopenshell import entity_instance -import typing def assign_survey_point(annotation: entity_instance, survey_point: entity_instance): diff --git a/src/ifcopenshell-python/ifcopenshell/api/cogo/edit_survey_point.py b/src/ifcopenshell-python/ifcopenshell/api/cogo/edit_survey_point.py index d2208dc649..1ee499e026 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/cogo/edit_survey_point.py +++ b/src/ifcopenshell-python/ifcopenshell/api/cogo/edit_survey_point.py @@ -16,9 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell + from ifcopenshell import entity_instance -import typing def edit_survey_point(annotation: entity_instance, x: float, y: float, z: float = 0.0): diff --git a/src/ifcopenshell-python/ifcopenshell/api/constraint/assign_constraint.py b/src/ifcopenshell-python/ifcopenshell/api/constraint/assign_constraint.py index ac021840c7..fb6364042a 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/constraint/assign_constraint.py +++ b/src/ifcopenshell-python/ifcopenshell/api/constraint/assign_constraint.py @@ -16,10 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Union + import ifcopenshell import ifcopenshell.api.owner import ifcopenshell.guid -from typing import Union def assign_constraint( diff --git a/src/ifcopenshell-python/ifcopenshell/api/constraint/edit_metric.py b/src/ifcopenshell-python/ifcopenshell/api/constraint/edit_metric.py index 3967846759..f788722b75 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/constraint/edit_metric.py +++ b/src/ifcopenshell-python/ifcopenshell/api/constraint/edit_metric.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_metric(file: ifcopenshell.file, metric: ifcopenshell.entity_instance, attributes: dict[str, Any]) -> None: """Edit the attributes of a metric diff --git a/src/ifcopenshell-python/ifcopenshell/api/constraint/edit_objective.py b/src/ifcopenshell-python/ifcopenshell/api/constraint/edit_objective.py index 3cd75356a7..cd2b17e66b 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/constraint/edit_objective.py +++ b/src/ifcopenshell-python/ifcopenshell/api/constraint/edit_objective.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_objective( file: ifcopenshell.file, objective: ifcopenshell.entity_instance, attributes: dict[str, Any] diff --git a/src/ifcopenshell-python/ifcopenshell/api/context/add_context.py b/src/ifcopenshell-python/ifcopenshell/api/context/add_context.py index a1a7839e09..0a6992ce8d 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/context/add_context.py +++ b/src/ifcopenshell-python/ifcopenshell/api/context/add_context.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Any, Optional + import ifcopenshell import ifcopenshell.util.representation -from typing import Optional, Any def add_context( diff --git a/src/ifcopenshell-python/ifcopenshell/api/context/edit_context.py b/src/ifcopenshell-python/ifcopenshell/api/context/edit_context.py index 1a7d567c58..15afc571f2 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/context/edit_context.py +++ b/src/ifcopenshell-python/ifcopenshell/api/context/edit_context.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_context(file: ifcopenshell.file, context: ifcopenshell.entity_instance, attributes: dict[str, Any]) -> None: """Edits the attributes of an IfcGeometricRepresentationContext diff --git a/src/ifcopenshell-python/ifcopenshell/api/control/assign_control.py b/src/ifcopenshell-python/ifcopenshell/api/control/assign_control.py index cd7c398a54..69ecb324eb 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/control/assign_control.py +++ b/src/ifcopenshell-python/ifcopenshell/api/control/assign_control.py @@ -16,10 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Union + import ifcopenshell import ifcopenshell.api.owner import ifcopenshell.guid -from typing import Union def assign_control( diff --git a/src/ifcopenshell-python/ifcopenshell/api/cost/add_cost_item.py b/src/ifcopenshell-python/ifcopenshell/api/cost/add_cost_item.py index 70c0cfc06c..1bdae9e9a1 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/cost/add_cost_item.py +++ b/src/ifcopenshell-python/ifcopenshell/api/cost/add_cost_item.py @@ -16,12 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.api.control -import ifcopenshell.api.root -import ifcopenshell.api.nest -import ifcopenshell.guid from typing import Optional +import ifcopenshell.api.control +import ifcopenshell.api.nest +import ifcopenshell.api.root +import ifcopenshell.guid + def add_cost_item( file: ifcopenshell.file, diff --git a/src/ifcopenshell-python/ifcopenshell/api/cost/add_cost_schedule.py b/src/ifcopenshell-python/ifcopenshell/api/cost/add_cost_schedule.py index 19f0762b69..cc88336cb4 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/cost/add_cost_schedule.py +++ b/src/ifcopenshell-python/ifcopenshell/api/cost/add_cost_schedule.py @@ -16,11 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.api.root -import ifcopenshell.api.sequence from datetime import datetime from typing import Optional +import ifcopenshell.api.root +import ifcopenshell.api.sequence + def add_cost_schedule( file: ifcopenshell.file, name: Optional[str] = None, predefined_type: str = "NOTDEFINED" diff --git a/src/ifcopenshell-python/ifcopenshell/api/cost/assign_cost_item_quantity.py b/src/ifcopenshell-python/ifcopenshell/api/cost/assign_cost_item_quantity.py index 2db09c45f6..20fc24ab37 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/cost/assign_cost_item_quantity.py +++ b/src/ifcopenshell-python/ifcopenshell/api/cost/assign_cost_item_quantity.py @@ -16,10 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.api.cost -import ifcopenshell.api.control from typing import Any +import ifcopenshell.api.control +import ifcopenshell.api.cost + def assign_cost_item_quantity( file: ifcopenshell.file, diff --git a/src/ifcopenshell-python/ifcopenshell/api/cost/calculate_cost_item_resource_value.py b/src/ifcopenshell-python/ifcopenshell/api/cost/calculate_cost_item_resource_value.py index fc53e2ff3d..e37b597b3d 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/cost/calculate_cost_item_resource_value.py +++ b/src/ifcopenshell-python/ifcopenshell/api/cost/calculate_cost_item_resource_value.py @@ -17,7 +17,6 @@ # along with IfcOpenShell. If not, see . import ifcopenshell.api.cost -import ifcopenshell.util.date import ifcopenshell.util.resource diff --git a/src/ifcopenshell-python/ifcopenshell/api/cost/copy_cost_item.py b/src/ifcopenshell-python/ifcopenshell/api/cost/copy_cost_item.py index fcf298ff7c..af1915d57f 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/cost/copy_cost_item.py +++ b/src/ifcopenshell-python/ifcopenshell/api/cost/copy_cost_item.py @@ -16,10 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Union + import ifcopenshell import ifcopenshell.api.nest import ifcopenshell.util.element -from typing import Union def copy_cost_item( diff --git a/src/ifcopenshell-python/ifcopenshell/api/cost/copy_cost_item_values.py b/src/ifcopenshell-python/ifcopenshell/api/cost/copy_cost_item_values.py index 01d0a02976..11e975fd53 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/cost/copy_cost_item_values.py +++ b/src/ifcopenshell-python/ifcopenshell/api/cost/copy_cost_item_values.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.util.element import ifcopenshell.api.cost +import ifcopenshell.util.element def copy_cost_item_values( diff --git a/src/ifcopenshell-python/ifcopenshell/api/cost/edit_cost_item.py b/src/ifcopenshell-python/ifcopenshell/api/cost/edit_cost_item.py index 813e306bc8..20770fb673 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/cost/edit_cost_item.py +++ b/src/ifcopenshell-python/ifcopenshell/api/cost/edit_cost_item.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_cost_item( file: ifcopenshell.file, cost_item: ifcopenshell.entity_instance, attributes: dict[str, Any] diff --git a/src/ifcopenshell-python/ifcopenshell/api/cost/edit_cost_item_quantity.py b/src/ifcopenshell-python/ifcopenshell/api/cost/edit_cost_item_quantity.py index 697d028a37..f5713cd33a 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/cost/edit_cost_item_quantity.py +++ b/src/ifcopenshell-python/ifcopenshell/api/cost/edit_cost_item_quantity.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_cost_item_quantity( file: ifcopenshell.file, physical_quantity: ifcopenshell.entity_instance, attributes: dict[str, Any] diff --git a/src/ifcopenshell-python/ifcopenshell/api/cost/edit_cost_schedule.py b/src/ifcopenshell-python/ifcopenshell/api/cost/edit_cost_schedule.py index d55e93330e..089c2b1336 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/cost/edit_cost_schedule.py +++ b/src/ifcopenshell-python/ifcopenshell/api/cost/edit_cost_schedule.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_cost_schedule( file: ifcopenshell.file, cost_schedule: ifcopenshell.entity_instance, attributes: dict[str, Any] diff --git a/src/ifcopenshell-python/ifcopenshell/api/cost/edit_cost_value.py b/src/ifcopenshell-python/ifcopenshell/api/cost/edit_cost_value.py index ebc09ed34c..e1be553922 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/cost/edit_cost_value.py +++ b/src/ifcopenshell-python/ifcopenshell/api/cost/edit_cost_value.py @@ -16,11 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell -import ifcopenshell.util.unit -import ifcopenshell.util.element from typing import Any +import ifcopenshell +import ifcopenshell.util.element +import ifcopenshell.util.unit + def edit_cost_value( file: ifcopenshell.file, cost_value: ifcopenshell.entity_instance, attributes: dict[str, Any] diff --git a/src/ifcopenshell-python/ifcopenshell/api/cost/edit_cost_value_formula.py b/src/ifcopenshell-python/ifcopenshell/api/cost/edit_cost_value_formula.py index 2f68a66023..1fd46a41c3 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/cost/edit_cost_value_formula.py +++ b/src/ifcopenshell-python/ifcopenshell/api/cost/edit_cost_value_formula.py @@ -16,12 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Any + import ifcopenshell import ifcopenshell.api.cost import ifcopenshell.util.cost -import ifcopenshell.util.unit -import ifcopenshell.util.element -from typing import Any def edit_cost_value_formula(file: ifcopenshell.file, cost_value: ifcopenshell.entity_instance, formula: str) -> None: diff --git a/src/ifcopenshell-python/ifcopenshell/api/document/add_information.py b/src/ifcopenshell-python/ifcopenshell/api/document/add_information.py index a5018c63cb..572de820a0 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/document/add_information.py +++ b/src/ifcopenshell-python/ifcopenshell/api/document/add_information.py @@ -16,11 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell -import ifcopenshell.guid -import ifcopenshell.api.owner from typing import Optional +import ifcopenshell +import ifcopenshell.api.owner +import ifcopenshell.guid + def add_information( file: ifcopenshell.file, parent: Optional[ifcopenshell.entity_instance] = None diff --git a/src/ifcopenshell-python/ifcopenshell/api/document/assign_document.py b/src/ifcopenshell-python/ifcopenshell/api/document/assign_document.py index a86a178e86..666d7420d1 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/document/assign_document.py +++ b/src/ifcopenshell-python/ifcopenshell/api/document/assign_document.py @@ -16,11 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Union + import ifcopenshell import ifcopenshell.api.owner import ifcopenshell.guid import ifcopenshell.util.element -from typing import Union def assign_document( diff --git a/src/ifcopenshell-python/ifcopenshell/api/document/edit_information.py b/src/ifcopenshell-python/ifcopenshell/api/document/edit_information.py index 56c1d40df4..c50e74de58 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/document/edit_information.py +++ b/src/ifcopenshell-python/ifcopenshell/api/document/edit_information.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_information( file: ifcopenshell.file, diff --git a/src/ifcopenshell-python/ifcopenshell/api/document/edit_reference.py b/src/ifcopenshell-python/ifcopenshell/api/document/edit_reference.py index 51ad195bf3..56bd3c8538 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/document/edit_reference.py +++ b/src/ifcopenshell-python/ifcopenshell/api/document/edit_reference.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_reference( file: ifcopenshell.file, diff --git a/src/ifcopenshell-python/ifcopenshell/api/drawing/edit_text_literal.py b/src/ifcopenshell-python/ifcopenshell/api/drawing/edit_text_literal.py index c083960e59..838fbb357a 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/drawing/edit_text_literal.py +++ b/src/ifcopenshell-python/ifcopenshell/api/drawing/edit_text_literal.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_text_literal( file: ifcopenshell.file, text_literal: ifcopenshell.entity_instance, attributes: dict[str, Any] diff --git a/src/ifcopenshell-python/ifcopenshell/api/feature/add_feature.py b/src/ifcopenshell-python/ifcopenshell/api/feature/add_feature.py index 5de3f2cf42..cfdff3819c 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/feature/add_feature.py +++ b/src/ifcopenshell-python/ifcopenshell/api/feature/add_feature.py @@ -17,9 +17,9 @@ # along with IfcOpenShell. If not, see . import ifcopenshell -import ifcopenshell.api.owner -import ifcopenshell.api.geometry import ifcopenshell.api.aggregate +import ifcopenshell.api.geometry +import ifcopenshell.api.owner import ifcopenshell.guid import ifcopenshell.util.element import ifcopenshell.util.placement diff --git a/src/ifcopenshell-python/ifcopenshell/api/feature/remove_feature.py b/src/ifcopenshell-python/ifcopenshell/api/feature/remove_feature.py index 6a1d5e5610..ff847b39eb 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/feature/remove_feature.py +++ b/src/ifcopenshell-python/ifcopenshell/api/feature/remove_feature.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.api.root import ifcopenshell.api.aggregate +import ifcopenshell.api.root import ifcopenshell.util.element diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_axis_representation.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_axis_representation.py index 02bd057cc6..b206cc2ef1 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_axis_representation.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_axis_representation.py @@ -16,8 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Any, Union + import ifcopenshell.util.unit -from typing import Union, Any COORD = Union[tuple[float, float], tuple[float, float, float]] diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_boolean.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_boolean.py index f5d0a31456..910df42d8c 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_boolean.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_boolean.py @@ -17,9 +17,11 @@ # along with IfcOpenShell. If not, see . from __future__ import annotations -import ifcopenshell.util.element + from typing import Literal +import ifcopenshell.util.element + def add_boolean( file: ifcopenshell.file, diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_door_representation.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_door_representation.py index d91b7b0327..a4460ce984 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_door_representation.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_door_representation.py @@ -17,18 +17,17 @@ # along with IfcOpenShell. If not, see . from __future__ import annotations -import sys -import ifcopenshell.util.unit -import ifcopenshell.api.geometry + import dataclasses -import numpy as np -from ifcopenshell.util.shape_builder import ShapeBuilder, V -from ifcopenshell.api.geometry.add_window_representation import create_ifc_window from math import cos, radians -from typing import Any, Optional, Literal, Union, get_args, overload +from typing import Any, Literal, Optional, Union, get_args, overload -DATACLASS_SLOTS = {} if sys.version_info < (3, 10) else {"slots": True} +import numpy as np +import ifcopenshell.api.geometry +import ifcopenshell.util.unit +from ifcopenshell.api.geometry.add_window_representation import create_ifc_window +from ifcopenshell.util.shape_builder import ShapeBuilder, V DOOR_TYPE = Literal[ "SINGLE_SWING_LEFT", @@ -99,7 +98,7 @@ def create_ifc_box( # we use dataclass as we need default values for arguments # it's okay to use slots since we don't need dynamic attributes -@dataclasses.dataclass(**DATACLASS_SLOTS) +@dataclasses.dataclass(slots=True) class DoorLiningProperties: LiningDepth: Optional[float] = None """Optional, defaults to 50mm.""" @@ -173,7 +172,7 @@ class DoorLiningProperties: setattr(self, attr, default_value * si_conversion) -@dataclasses.dataclass(**DATACLASS_SLOTS) +@dataclasses.dataclass(slots=True) class DoorPanelProperties: PanelDepth: Optional[float] = None """Frame thickness by Y axis. Optional, defaults to 35 mm.""" diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_mesh_representation.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_mesh_representation.py index 9a4b41a4df..91f816041f 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_mesh_representation.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_mesh_representation.py @@ -16,11 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.util.unit +from typing import Optional, TypeVar + import numpy as np import numpy.typing as npt -from ifcopenshell.util.shape_builder import ShapeBuilder, SequenceOfVectors, VectorType -from typing import Optional, TypeVar + +import ifcopenshell.util.unit +from ifcopenshell.util.shape_builder import SequenceOfVectors, ShapeBuilder, VectorType T = TypeVar("T") COORD_3D = tuple[float, float, float] diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_profile_representation.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_profile_representation.py index 9458131046..754b7ded03 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_profile_representation.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_profile_representation.py @@ -16,12 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Any, Literal, Optional, Union, get_args + import ifcopenshell.geom import ifcopenshell.util.element import ifcopenshell.util.shape import ifcopenshell.util.unit from ifcopenshell.util.data import Clipping -from typing import Any, Union, Optional, Literal, get_args VECTOR_3D = tuple[float, float, float] CardinalPointNumeric = Literal[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_railing_representation.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_railing_representation.py index 5f81c51fd0..a3af58dfbf 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_railing_representation.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_railing_representation.py @@ -16,24 +16,26 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from math import cos, pi, radians, sin, tan +from typing import Any, Literal, Optional + import numpy as np +from typing_extensions import assert_never + import ifcopenshell.util.unit from ifcopenshell.util.shape_builder import ( + SequenceOfVectors, ShapeBuilder, V, - SequenceOfVectors, is_x, np_angle, np_angle_signed, - np_normalized, - np_to_3d, - np_normal, np_intersect_line_line, np_lerp, + np_normal, + np_normalized, + np_to_3d, ) -from math import pi, cos, sin, tan, radians -from typing import Literal, Optional, Any -from typing_extensions import assert_never def mm(x: float) -> float: diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_representation.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_representation.py index 3f3a9881a7..0a1adb1ec1 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_representation.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_representation.py @@ -16,16 +16,19 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . from __future__ import annotations -import bpy.types + import math +from typing import TYPE_CHECKING, Any, Literal, Optional, Union + import bmesh -import ifcopenshell.util.shape_builder -import ifcopenshell.util.unit +import bpy.types import numpy as np import numpy.typing as npt -from mathutils import Vector, Matrix -from typing import Union, Optional, Literal, Any, TYPE_CHECKING -from ifcopenshell.util.shape_builder import ifc_safe_vector_type, VectorType +from mathutils import Matrix, Vector + +import ifcopenshell.util.shape_builder +import ifcopenshell.util.unit +from ifcopenshell.util.shape_builder import ifc_safe_vector_type if TYPE_CHECKING: import bonsai.tool as tool diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_shape_aspect.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_shape_aspect.py index 2f4ee941fe..afb8489a4c 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_shape_aspect.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_shape_aspect.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Optional +import ifcopenshell + def add_shape_aspect( file: ifcopenshell.file, diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_slab_representation.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_slab_representation.py index f6a6f85d1a..6e600eca9a 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_slab_representation.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_slab_representation.py @@ -16,11 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from math import cos, sin +from typing import Optional, Union + import ifcopenshell.util.element import ifcopenshell.util.unit from ifcopenshell.util.data import Clipping -from math import sin, cos -from typing import Any, Optional, Union def add_slab_representation( diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_wall_representation.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_wall_representation.py index 53e2f58660..ff62bae474 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_wall_representation.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_wall_representation.py @@ -16,10 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from math import cos, sin +from typing import Any, Optional, Union + import ifcopenshell.util.element import ifcopenshell.util.unit -from math import sin, cos, pi -from typing import Optional, Union, Any from ifcopenshell.util.data import Clipping diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_window_representation.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_window_representation.py index 298ec18f70..36848e7883 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/add_window_representation.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/add_window_representation.py @@ -17,17 +17,16 @@ # along with IfcOpenShell. If not, see . from __future__ import annotations -import sys -import numpy as np + import dataclasses +from itertools import chain +from typing import Any, Literal, Optional, Union, overload + +import numpy as np + import ifcopenshell.api.geometry import ifcopenshell.util.unit -from itertools import chain from ifcopenshell.util.shape_builder import ShapeBuilder, V -from typing import Any, Optional, Literal, Union, overload - -DATACLASS_SLOTS = {} if sys.version_info < (3, 10) else {"slots": True} -ZIP_STRICT = {} if sys.version_info < (3, 10) else {"strict": True} # SCHEMAS describe panels setup # where: @@ -169,7 +168,7 @@ def window_l_shape_check( """`lining_thickness` and `lining_to_panel_offset_x` expected to be defined as a list, similarly to `create_ifc_window_frame_simple` `thickness` argument""" l_shape_check = lining_to_panel_offset_y_full < lining_depth and any( - x_offset < th for th, x_offset in zip(lining_thickness, lining_to_panel_offset_x, **ZIP_STRICT) + x_offset < th for th, x_offset in zip(lining_thickness, lining_to_panel_offset_x, strict=True) ) return l_shape_check @@ -211,7 +210,7 @@ def create_ifc_window( second_lining_size = lining_size.copy() second_lining_size[np_Y] = lining_size[np_Y] - lining_to_panel_offset_y_full second_lining_position = V(0, lining_to_panel_offset_y_full, 0) - second_lining_thickness = [min(th, x_offset) for th, x_offset in zip(lining_thickness, x_offsets, **ZIP_STRICT)] + second_lining_thickness = [min(th, x_offset) for th, x_offset in zip(lining_thickness, x_offsets, strict=True)] second_lining_items = create_ifc_window_frame_simple( builder, second_lining_size, second_lining_thickness, second_lining_position @@ -241,7 +240,7 @@ def create_ifc_window( # we use dataclass as we need default values for arguments # it's okay to use slots since we don't need dynamic attributes -@dataclasses.dataclass(**DATACLASS_SLOTS) +@dataclasses.dataclass(slots=True) class WindowLiningProperties: LiningDepth: Optional[float] = None """Optional, defaults to 50mm.""" @@ -324,7 +323,7 @@ class WindowLiningProperties: setattr(self, attr, default_value * si_conversion) -@dataclasses.dataclass(**DATACLASS_SLOTS) +@dataclasses.dataclass(slots=True) class WindowPanelProperties: FrameDepth: Optional[float] = None """Frame thickness by Y axis. Optional, defaults to 35 mm.""" diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/assign_representation.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/assign_representation.py index 5b62fd4639..a1e03ece8b 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/assign_representation.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/assign_representation.py @@ -16,10 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.api.owner + import ifcopenshell.api.geometry +import ifcopenshell.api.owner import ifcopenshell.util.element -from typing import Any def assign_representation( diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/connect_element.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/connect_element.py index f737b54c77..1222d458a2 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/connect_element.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/connect_element.py @@ -16,11 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Optional + import ifcopenshell import ifcopenshell.api.owner import ifcopenshell.guid import ifcopenshell.util.element -from typing import Optional def connect_element( diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/connect_path.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/connect_path.py index 81fa276a2c..3135bef116 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/connect_path.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/connect_path.py @@ -16,11 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Optional + import ifcopenshell import ifcopenshell.api.owner import ifcopenshell.guid import ifcopenshell.util.element -from typing import Optional def connect_path( diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/connect_wall.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/connect_wall.py index 8666a38693..c63139b451 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/connect_wall.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/connect_wall.py @@ -16,13 +16,15 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Optional + import numpy as np + import ifcopenshell import ifcopenshell.api.geometry import ifcopenshell.util.placement import ifcopenshell.util.representation import ifcopenshell.util.shape_builder -from typing import Optional def connect_wall( diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/create_2pt_wall.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/create_2pt_wall.py index 3401b29c7a..72449ada84 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/create_2pt_wall.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/create_2pt_wall.py @@ -16,10 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Any + import numpy as np + import ifcopenshell.api.geometry import ifcopenshell.util.unit -from typing import Any def create_2pt_wall( diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/disconnect_path.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/disconnect_path.py index 787f7a5633..625bfd329c 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/disconnect_path.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/disconnect_path.py @@ -16,11 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell -import ifcopenshell.api -import ifcopenshell.util.element from typing import Optional +import ifcopenshell +import ifcopenshell.util.element + def disconnect_path( file: ifcopenshell.file, diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/edit_object_placement.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/edit_object_placement.py index 2e37e99e26..7fbe44ce12 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/edit_object_placement.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/edit_object_placement.py @@ -16,14 +16,16 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Any, Optional, Union + import numpy as np import numpy.typing as npt + import ifcopenshell.api.owner -import ifcopenshell.util.unit import ifcopenshell.util.element import ifcopenshell.util.placement +import ifcopenshell.util.unit from ifcopenshell.util.shape_builder import ShapeBuilder -from typing import Optional, Union, Any NPArrayOfFloats = npt.NDArray[np.float64] diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/regenerate_wall_representation.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/regenerate_wall_representation.py index 0cce951810..9143577438 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/regenerate_wall_representation.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/regenerate_wall_representation.py @@ -17,7 +17,12 @@ # along with IfcOpenShell. If not, see . import json +from collections import namedtuple +from math import cos, sin +from typing import Optional + import numpy as np + import ifcopenshell import ifcopenshell.api.context import ifcopenshell.api.geometry @@ -26,9 +31,6 @@ import ifcopenshell.util.placement import ifcopenshell.util.representation import ifcopenshell.util.shape_builder import ifcopenshell.util.unit -from collections import namedtuple -from math import sin, cos -from typing import Optional # https://stackoverflow.com/a/9184560/9627415 # Possible optimisation to linalg.norm? diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/unassign_representation.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/unassign_representation.py index 5dc3bf3aeb..db4f231aff 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/unassign_representation.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/unassign_representation.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Any + import ifcopenshell.api.geometry import ifcopenshell.util.element -from typing import Any def unassign_representation( diff --git a/src/ifcopenshell-python/ifcopenshell/api/geometry/validate_type.py b/src/ifcopenshell-python/ifcopenshell/api/geometry/validate_type.py index b5970e4d44..46bec8757b 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/geometry/validate_type.py +++ b/src/ifcopenshell-python/ifcopenshell/api/geometry/validate_type.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Union + import ifcopenshell.api.geometry import ifcopenshell.util.representation -from typing import Union def validate_type( diff --git a/src/ifcopenshell-python/ifcopenshell/api/georeference/edit_georeferencing.py b/src/ifcopenshell-python/ifcopenshell/api/georeference/edit_georeferencing.py index 0d4da93bcb..070797356b 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/georeference/edit_georeferencing.py +++ b/src/ifcopenshell-python/ifcopenshell/api/georeference/edit_georeferencing.py @@ -16,10 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Any, Optional + import ifcopenshell import ifcopenshell.api.pset import ifcopenshell.util.element -from typing import Optional, Any def edit_georeferencing( diff --git a/src/ifcopenshell-python/ifcopenshell/api/georeference/edit_true_north.py b/src/ifcopenshell-python/ifcopenshell/api/georeference/edit_true_north.py index 0a7e967fbd..5a39f917f4 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/georeference/edit_true_north.py +++ b/src/ifcopenshell-python/ifcopenshell/api/georeference/edit_true_north.py @@ -16,10 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Optional, Union + import ifcopenshell import ifcopenshell.util.element import ifcopenshell.util.geolocation -from typing import Union, Optional def edit_true_north(file: ifcopenshell.file, true_north: Optional[Union[tuple[float, float], float]] = 0.0) -> None: diff --git a/src/ifcopenshell-python/ifcopenshell/api/georeference/edit_wcs.py b/src/ifcopenshell-python/ifcopenshell/api/georeference/edit_wcs.py index 25fb4f3b6e..126072e254 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/georeference/edit_wcs.py +++ b/src/ifcopenshell-python/ifcopenshell/api/georeference/edit_wcs.py @@ -16,12 +16,14 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from math import cos, radians, sin + +import numpy as np + import ifcopenshell import ifcopenshell.util.element import ifcopenshell.util.unit -import numpy as np from ifcopenshell.util.shape_builder import ShapeBuilder -from math import sin, cos, radians def edit_wcs( diff --git a/src/ifcopenshell-python/ifcopenshell/api/grid/__init__.py b/src/ifcopenshell-python/ifcopenshell/api/grid/__init__.py index cc759ce7e0..4d821057da 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/grid/__init__.py +++ b/src/ifcopenshell-python/ifcopenshell/api/grid/__init__.py @@ -22,7 +22,6 @@ A grid in IFC may contain two or more axes running in two or more directions. """ from .. import wrap_usecases - from .create_axis_curve import create_axis_curve from .create_grid_axis import create_grid_axis from .remove_grid_axis import remove_grid_axis diff --git a/src/ifcopenshell-python/ifcopenshell/api/grid/create_axis_curve.py b/src/ifcopenshell-python/ifcopenshell/api/grid/create_axis_curve.py index b87eea94d0..a71c523c3f 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/grid/create_axis_curve.py +++ b/src/ifcopenshell-python/ifcopenshell/api/grid/create_axis_curve.py @@ -17,12 +17,19 @@ # along with IfcOpenShell. If not, see . from __future__ import annotations + +import numpy as np + import ifcopenshell import ifcopenshell.util.element -import ifcopenshell.util.unit import ifcopenshell.util.placement -import numpy as np -from ifcopenshell.util.shape_builder import VectorType, V, ifc_safe_vector_type, np_apply_matrix +import ifcopenshell.util.unit +from ifcopenshell.util.shape_builder import ( + V, + VectorType, + ifc_safe_vector_type, + np_apply_matrix, +) def create_axis_curve( diff --git a/src/ifcopenshell-python/ifcopenshell/api/grid/create_grid_axis.py b/src/ifcopenshell-python/ifcopenshell/api/grid/create_grid_axis.py index 77228434b0..da01050d92 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/grid/create_grid_axis.py +++ b/src/ifcopenshell-python/ifcopenshell/api/grid/create_grid_axis.py @@ -15,8 +15,9 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Literal + import ifcopenshell -from typing import Optional, Literal def create_grid_axis( diff --git a/src/ifcopenshell-python/ifcopenshell/api/group/add_group.py b/src/ifcopenshell-python/ifcopenshell/api/group/add_group.py index a2a877ef6e..4dd10adfe3 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/group/add_group.py +++ b/src/ifcopenshell-python/ifcopenshell/api/group/add_group.py @@ -16,10 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Optional + import ifcopenshell import ifcopenshell.api.owner import ifcopenshell.guid -from typing import Optional def add_group( diff --git a/src/ifcopenshell-python/ifcopenshell/api/group/assign_group.py b/src/ifcopenshell-python/ifcopenshell/api/group/assign_group.py index cb9cd95fea..544a889cc0 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/group/assign_group.py +++ b/src/ifcopenshell-python/ifcopenshell/api/group/assign_group.py @@ -16,10 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Union + import ifcopenshell import ifcopenshell.api.owner import ifcopenshell.guid -from typing import Union def assign_group( diff --git a/src/ifcopenshell-python/ifcopenshell/api/group/edit_group.py b/src/ifcopenshell-python/ifcopenshell/api/group/edit_group.py index 5a7a2b2018..55ee85e0f8 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/group/edit_group.py +++ b/src/ifcopenshell-python/ifcopenshell/api/group/edit_group.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_group(file: ifcopenshell.file, group: ifcopenshell.entity_instance, attributes: dict[str, Any]) -> None: """Edits the attributes of an IfcGroup diff --git a/src/ifcopenshell-python/ifcopenshell/api/layer/add_layer.py b/src/ifcopenshell-python/ifcopenshell/api/layer/add_layer.py index 8a3c1dc95f..a249106848 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/layer/add_layer.py +++ b/src/ifcopenshell-python/ifcopenshell/api/layer/add_layer.py @@ -15,8 +15,8 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . + import ifcopenshell -from typing import Optional def add_layer(file: ifcopenshell.file, name: str = "Unnamed") -> ifcopenshell.entity_instance: diff --git a/src/ifcopenshell-python/ifcopenshell/api/layer/add_layer_with_style.py b/src/ifcopenshell-python/ifcopenshell/api/layer/add_layer_with_style.py index f3af61a81c..ffdf67fec0 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/layer/add_layer_with_style.py +++ b/src/ifcopenshell-python/ifcopenshell/api/layer/add_layer_with_style.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell -from typing import Union, Literal from collections.abc import Sequence +from typing import Literal, Union + +import ifcopenshell IfcLogical = Union[bool, Literal["UNKNOWN"]] diff --git a/src/ifcopenshell-python/ifcopenshell/api/layer/edit_layer.py b/src/ifcopenshell-python/ifcopenshell/api/layer/edit_layer.py index 7203fabb0c..5e51b1ec39 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/layer/edit_layer.py +++ b/src/ifcopenshell-python/ifcopenshell/api/layer/edit_layer.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_layer(file: ifcopenshell.file, layer: ifcopenshell.entity_instance, attributes: dict[str, Any]) -> None: """Edits the attributes of an IfcPresentationLayerAssignment diff --git a/src/ifcopenshell-python/ifcopenshell/api/layer/unassign_layer.py b/src/ifcopenshell-python/ifcopenshell/api/layer/unassign_layer.py index 3eb0ed8fa1..1fc6b9762d 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/layer/unassign_layer.py +++ b/src/ifcopenshell-python/ifcopenshell/api/layer/unassign_layer.py @@ -17,7 +17,6 @@ # along with IfcOpenShell. If not, see . import ifcopenshell -import ifcopenshell.util.element def unassign_layer( diff --git a/src/ifcopenshell-python/ifcopenshell/api/library/add_library.py b/src/ifcopenshell-python/ifcopenshell/api/library/add_library.py index a8ce0690d4..7b144adb37 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/library/add_library.py +++ b/src/ifcopenshell-python/ifcopenshell/api/library/add_library.py @@ -17,8 +17,6 @@ # along with IfcOpenShell. If not, see . import ifcopenshell -import ifcopenshell.util.schema -import ifcopenshell.util.date def add_library(file: ifcopenshell.file, name: str) -> ifcopenshell.entity_instance: diff --git a/src/ifcopenshell-python/ifcopenshell/api/library/assign_reference.py b/src/ifcopenshell-python/ifcopenshell/api/library/assign_reference.py index a9b6169304..2d0cb59906 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/library/assign_reference.py +++ b/src/ifcopenshell-python/ifcopenshell/api/library/assign_reference.py @@ -16,11 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Union + import ifcopenshell import ifcopenshell.api.owner import ifcopenshell.guid import ifcopenshell.util.element -from typing import Union def assign_reference( diff --git a/src/ifcopenshell-python/ifcopenshell/api/library/edit_library.py b/src/ifcopenshell-python/ifcopenshell/api/library/edit_library.py index 4e12195bda..430ddc96a2 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/library/edit_library.py +++ b/src/ifcopenshell-python/ifcopenshell/api/library/edit_library.py @@ -15,11 +15,12 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell -import ifcopenshell.util.date import datetime from typing import Any +import ifcopenshell +import ifcopenshell.util.date + def edit_library(file: ifcopenshell.file, library: ifcopenshell.entity_instance, attributes: dict[str, Any]) -> None: """Edits the attributes of an IfcLibraryInformation diff --git a/src/ifcopenshell-python/ifcopenshell/api/library/edit_reference.py b/src/ifcopenshell-python/ifcopenshell/api/library/edit_reference.py index e6acacbd8f..7860c41943 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/library/edit_reference.py +++ b/src/ifcopenshell-python/ifcopenshell/api/library/edit_reference.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_reference( file: ifcopenshell.file, reference: ifcopenshell.entity_instance, attributes: dict[str, Any] diff --git a/src/ifcopenshell-python/ifcopenshell/api/library/unassign_reference.py b/src/ifcopenshell-python/ifcopenshell/api/library/unassign_reference.py index 5dd40749b9..5190b91ccb 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/library/unassign_reference.py +++ b/src/ifcopenshell-python/ifcopenshell/api/library/unassign_reference.py @@ -17,8 +17,8 @@ # along with IfcOpenShell. If not, see . import ifcopenshell -import ifcopenshell.util.element import ifcopenshell.api.owner +import ifcopenshell.util.element def unassign_reference( diff --git a/src/ifcopenshell-python/ifcopenshell/api/material/add_constituent.py b/src/ifcopenshell-python/ifcopenshell/api/material/add_constituent.py index 3a2dad4ba2..057ff0849e 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/material/add_constituent.py +++ b/src/ifcopenshell-python/ifcopenshell/api/material/add_constituent.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Optional +import ifcopenshell + def add_constituent( file: ifcopenshell.file, diff --git a/src/ifcopenshell-python/ifcopenshell/api/material/add_layer.py b/src/ifcopenshell-python/ifcopenshell/api/material/add_layer.py index 5fae2ed275..db717528ec 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/material/add_layer.py +++ b/src/ifcopenshell-python/ifcopenshell/api/material/add_layer.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Optional + import ifcopenshell import ifcopenshell.util.unit -from typing import Optional def add_layer( diff --git a/src/ifcopenshell-python/ifcopenshell/api/material/add_material.py b/src/ifcopenshell-python/ifcopenshell/api/material/add_material.py index 6b04f78be2..87f5e4cdb4 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/material/add_material.py +++ b/src/ifcopenshell-python/ifcopenshell/api/material/add_material.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Optional +import ifcopenshell + def add_material( file: ifcopenshell.file, diff --git a/src/ifcopenshell-python/ifcopenshell/api/material/add_material_set.py b/src/ifcopenshell-python/ifcopenshell/api/material/add_material_set.py index bd23688ac8..f679d4c8f0 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/material/add_material_set.py +++ b/src/ifcopenshell-python/ifcopenshell/api/material/add_material_set.py @@ -15,9 +15,9 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Literal +import ifcopenshell MATERIAL_SET_TYPE = Literal[ "IfcMaterialLayerSet", diff --git a/src/ifcopenshell-python/ifcopenshell/api/material/add_profile.py b/src/ifcopenshell-python/ifcopenshell/api/material/add_profile.py index 160f79e453..87746cee30 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/material/add_profile.py +++ b/src/ifcopenshell-python/ifcopenshell/api/material/add_profile.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Optional +import ifcopenshell + def add_profile( file: ifcopenshell.file, diff --git a/src/ifcopenshell-python/ifcopenshell/api/material/assign_material.py b/src/ifcopenshell-python/ifcopenshell/api/material/assign_material.py index 0e37eef148..47c888bb1c 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/material/assign_material.py +++ b/src/ifcopenshell-python/ifcopenshell/api/material/assign_material.py @@ -16,14 +16,15 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from collections import defaultdict +from typing import Any, Optional, Union + import ifcopenshell -import ifcopenshell.api.owner import ifcopenshell.api.material +import ifcopenshell.api.owner import ifcopenshell.guid import ifcopenshell.util.element import ifcopenshell.util.representation -from collections import defaultdict -from typing import Optional, Union, Any def assign_material( diff --git a/src/ifcopenshell-python/ifcopenshell/api/material/assign_profile.py b/src/ifcopenshell-python/ifcopenshell/api/material/assign_profile.py index ce269dbc86..4ed83c6a92 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/material/assign_profile.py +++ b/src/ifcopenshell-python/ifcopenshell/api/material/assign_profile.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . + import ifcopenshell.util.representation -from typing import Any def assign_profile( diff --git a/src/ifcopenshell-python/ifcopenshell/api/material/edit_assigned_material.py b/src/ifcopenshell-python/ifcopenshell/api/material/edit_assigned_material.py index 9a01322743..09886c90fd 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/material/edit_assigned_material.py +++ b/src/ifcopenshell-python/ifcopenshell/api/material/edit_assigned_material.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_assigned_material( file: ifcopenshell.file, element: ifcopenshell.entity_instance, attributes: dict[str, Any] diff --git a/src/ifcopenshell-python/ifcopenshell/api/material/edit_constituent.py b/src/ifcopenshell-python/ifcopenshell/api/material/edit_constituent.py index a7398ca5f0..165a3655d5 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/material/edit_constituent.py +++ b/src/ifcopenshell-python/ifcopenshell/api/material/edit_constituent.py @@ -15,8 +15,9 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Any, Optional + import ifcopenshell -from typing import Optional, Any def edit_constituent( diff --git a/src/ifcopenshell-python/ifcopenshell/api/material/edit_layer.py b/src/ifcopenshell-python/ifcopenshell/api/material/edit_layer.py index 68f3c6d832..b21530faa3 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/material/edit_layer.py +++ b/src/ifcopenshell-python/ifcopenshell/api/material/edit_layer.py @@ -15,8 +15,9 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Any, Optional + import ifcopenshell -from typing import Optional, Any def edit_layer( diff --git a/src/ifcopenshell-python/ifcopenshell/api/material/edit_layer_usage.py b/src/ifcopenshell-python/ifcopenshell/api/material/edit_layer_usage.py index 9d1ffb14ec..35916f9c50 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/material/edit_layer_usage.py +++ b/src/ifcopenshell-python/ifcopenshell/api/material/edit_layer_usage.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_layer_usage(file: ifcopenshell.file, usage: ifcopenshell.entity_instance, attributes: dict[str, Any]) -> None: """Edits the attributes of an IfcMaterialLayerSetUsage diff --git a/src/ifcopenshell-python/ifcopenshell/api/material/edit_material.py b/src/ifcopenshell-python/ifcopenshell/api/material/edit_material.py index ddf541503c..749f3b0ea0 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/material/edit_material.py +++ b/src/ifcopenshell-python/ifcopenshell/api/material/edit_material.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_material(file: ifcopenshell.file, material: ifcopenshell.entity_instance, attributes: dict[str, Any]) -> None: """Edits the attributes of an IfcMaterial""" diff --git a/src/ifcopenshell-python/ifcopenshell/api/material/edit_profile.py b/src/ifcopenshell-python/ifcopenshell/api/material/edit_profile.py index 3bc7479388..5dec072609 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/material/edit_profile.py +++ b/src/ifcopenshell-python/ifcopenshell/api/material/edit_profile.py @@ -18,6 +18,7 @@ from typing import Any, Optional + import ifcopenshell diff --git a/src/ifcopenshell-python/ifcopenshell/api/material/edit_profile_usage.py b/src/ifcopenshell-python/ifcopenshell/api/material/edit_profile_usage.py index 4c004ecfdd..2d7cdcbca8 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/material/edit_profile_usage.py +++ b/src/ifcopenshell-python/ifcopenshell/api/material/edit_profile_usage.py @@ -15,11 +15,12 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Any + import ifcopenshell.geom import ifcopenshell.util.representation import ifcopenshell.util.shape from ifcopenshell.geom import ShapeType -from typing import Any def edit_profile_usage( diff --git a/src/ifcopenshell-python/ifcopenshell/api/material/set_shape_aspect_constituents.py b/src/ifcopenshell-python/ifcopenshell/api/material/set_shape_aspect_constituents.py index d95f877fcf..bd0fdf9683 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/material/set_shape_aspect_constituents.py +++ b/src/ifcopenshell-python/ifcopenshell/api/material/set_shape_aspect_constituents.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.api.style import ifcopenshell.api.material +import ifcopenshell.api.style import ifcopenshell.util.element import ifcopenshell.util.representation diff --git a/src/ifcopenshell-python/ifcopenshell/api/material/unassign_material.py b/src/ifcopenshell-python/ifcopenshell/api/material/unassign_material.py index 51d11b3248..e7e2542d12 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/material/unassign_material.py +++ b/src/ifcopenshell-python/ifcopenshell/api/material/unassign_material.py @@ -16,10 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . + import ifcopenshell import ifcopenshell.api.owner import ifcopenshell.util.element -from typing import Any def unassign_material(file: ifcopenshell.file, products: list[ifcopenshell.entity_instance]) -> None: diff --git a/src/ifcopenshell-python/ifcopenshell/api/nest/assign_object.py b/src/ifcopenshell-python/ifcopenshell/api/nest/assign_object.py index 290ac58b05..d3432b617f 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/nest/assign_object.py +++ b/src/ifcopenshell-python/ifcopenshell/api/nest/assign_object.py @@ -16,11 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Union + import ifcopenshell import ifcopenshell.api.owner import ifcopenshell.guid import ifcopenshell.util.element -from typing import Union def assign_object( diff --git a/src/ifcopenshell-python/ifcopenshell/api/owner/add_actor.py b/src/ifcopenshell-python/ifcopenshell/api/owner/add_actor.py index 1456a99d5e..8b3a8306fd 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/owner/add_actor.py +++ b/src/ifcopenshell-python/ifcopenshell/api/owner/add_actor.py @@ -17,10 +17,10 @@ # along with IfcOpenShell. If not, see . -import ifcopenshell -import ifcopenshell.api.root from typing import Literal +import ifcopenshell +import ifcopenshell.api.root ACTOR_TYPE = Literal["IfcActor", "IfcOccupant"] diff --git a/src/ifcopenshell-python/ifcopenshell/api/owner/add_address.py b/src/ifcopenshell-python/ifcopenshell/api/owner/add_address.py index 791f41c6a2..7d40e9a420 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/owner/add_address.py +++ b/src/ifcopenshell-python/ifcopenshell/api/owner/add_address.py @@ -15,9 +15,9 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Literal +import ifcopenshell ADDRESS_TYPE = Literal["IfcPostalAddress", "IfcTelecomAddress"] diff --git a/src/ifcopenshell-python/ifcopenshell/api/owner/add_application.py b/src/ifcopenshell-python/ifcopenshell/api/owner/add_application.py index 665bebc292..e2869325d5 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/owner/add_application.py +++ b/src/ifcopenshell-python/ifcopenshell/api/owner/add_application.py @@ -16,10 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Optional, Union + import ifcopenshell.api import ifcopenshell.api.owner import ifcopenshell.api.pset -from typing import Optional, Any, Union def add_application( diff --git a/src/ifcopenshell-python/ifcopenshell/api/owner/create_owner_history.py b/src/ifcopenshell-python/ifcopenshell/api/owner/create_owner_history.py index 296834062e..39b118446c 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/owner/create_owner_history.py +++ b/src/ifcopenshell-python/ifcopenshell/api/owner/create_owner_history.py @@ -17,9 +17,10 @@ # along with IfcOpenShell. If not, see . import time +from typing import Union + import ifcopenshell import ifcopenshell.api.owner.settings -from typing import Union def create_owner_history(file: ifcopenshell.file) -> Union[ifcopenshell.entity_instance, None]: diff --git a/src/ifcopenshell-python/ifcopenshell/api/owner/edit_actor.py b/src/ifcopenshell-python/ifcopenshell/api/owner/edit_actor.py index 8ad238f994..e976d9e09e 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/owner/edit_actor.py +++ b/src/ifcopenshell-python/ifcopenshell/api/owner/edit_actor.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_actor(file: ifcopenshell.file, actor: ifcopenshell.entity_instance, attributes: dict[str, Any]) -> None: """Edits the attributes of an IfcActor diff --git a/src/ifcopenshell-python/ifcopenshell/api/owner/edit_address.py b/src/ifcopenshell-python/ifcopenshell/api/owner/edit_address.py index 52e80d6ef1..d274989eec 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/owner/edit_address.py +++ b/src/ifcopenshell-python/ifcopenshell/api/owner/edit_address.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_address(file: ifcopenshell.file, address: ifcopenshell.entity_instance, attributes: dict[str, Any]) -> None: """Edits the attributes of an IfcAddress diff --git a/src/ifcopenshell-python/ifcopenshell/api/owner/edit_application.py b/src/ifcopenshell-python/ifcopenshell/api/owner/edit_application.py index 3224169ff2..631265f522 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/owner/edit_application.py +++ b/src/ifcopenshell-python/ifcopenshell/api/owner/edit_application.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_application( file: ifcopenshell.file, application: ifcopenshell.entity_instance, attributes: dict[str, Any] diff --git a/src/ifcopenshell-python/ifcopenshell/api/owner/edit_organisation.py b/src/ifcopenshell-python/ifcopenshell/api/owner/edit_organisation.py index a2bb5e3eb6..2f0a8af568 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/owner/edit_organisation.py +++ b/src/ifcopenshell-python/ifcopenshell/api/owner/edit_organisation.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_organisation( file: ifcopenshell.file, organisation: ifcopenshell.entity_instance, attributes: dict[str, Any] diff --git a/src/ifcopenshell-python/ifcopenshell/api/owner/edit_person.py b/src/ifcopenshell-python/ifcopenshell/api/owner/edit_person.py index 6b697bd674..3c53fabdd4 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/owner/edit_person.py +++ b/src/ifcopenshell-python/ifcopenshell/api/owner/edit_person.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_person(file: ifcopenshell.file, person: ifcopenshell.entity_instance, attributes: dict[str, Any]) -> None: """Edits the attributes of an IfcPerson diff --git a/src/ifcopenshell-python/ifcopenshell/api/owner/edit_role.py b/src/ifcopenshell-python/ifcopenshell/api/owner/edit_role.py index fca80a16b0..8fb293c151 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/owner/edit_role.py +++ b/src/ifcopenshell-python/ifcopenshell/api/owner/edit_role.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_role(file: ifcopenshell.file, role: ifcopenshell.entity_instance, attributes: dict[str, Any]) -> None: """Edits the attributes of an IfcActorRole diff --git a/src/ifcopenshell-python/ifcopenshell/api/owner/remove_organisation.py b/src/ifcopenshell-python/ifcopenshell/api/owner/remove_organisation.py index acee11d9f5..fa5434d289 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/owner/remove_organisation.py +++ b/src/ifcopenshell-python/ifcopenshell/api/owner/remove_organisation.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.api.root import ifcopenshell.api.owner +import ifcopenshell.api.root def remove_organisation(file: ifcopenshell.file, organisation: ifcopenshell.entity_instance) -> None: diff --git a/src/ifcopenshell-python/ifcopenshell/api/owner/remove_person.py b/src/ifcopenshell-python/ifcopenshell/api/owner/remove_person.py index 0c618c1e74..4fc86d70c8 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/owner/remove_person.py +++ b/src/ifcopenshell-python/ifcopenshell/api/owner/remove_person.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.api.root import ifcopenshell.api.owner +import ifcopenshell.api.root def remove_person(file: ifcopenshell.file, person: ifcopenshell.entity_instance) -> None: diff --git a/src/ifcopenshell-python/ifcopenshell/api/owner/settings.py b/src/ifcopenshell-python/ifcopenshell/api/owner/settings.py index b5dedfff49..035107da73 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/owner/settings.py +++ b/src/ifcopenshell-python/ifcopenshell/api/owner/settings.py @@ -19,9 +19,10 @@ # Note: it is the intent for you to override these with your own functions -import ifcopenshell from typing import Union +import ifcopenshell + def get_application(ifc: ifcopenshell.file) -> Union[ifcopenshell.entity_instance, None]: """Returns the application representing the authoring software diff --git a/src/ifcopenshell-python/ifcopenshell/api/owner/update_owner_history.py b/src/ifcopenshell-python/ifcopenshell/api/owner/update_owner_history.py index 99ec6f18d5..0c29c70018 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/owner/update_owner_history.py +++ b/src/ifcopenshell-python/ifcopenshell/api/owner/update_owner_history.py @@ -17,11 +17,11 @@ # along with IfcOpenShell. If not, see . import time +from typing import Union + import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.owner.settings import ifcopenshell.util.element -from typing import Union def update_owner_history( diff --git a/src/ifcopenshell-python/ifcopenshell/api/profile/add_arbitrary_profile.py b/src/ifcopenshell-python/ifcopenshell/api/profile/add_arbitrary_profile.py index 80f3b8cf71..5874986031 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/profile/add_arbitrary_profile.py +++ b/src/ifcopenshell-python/ifcopenshell/api/profile/add_arbitrary_profile.py @@ -16,11 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import numpy.typing as npt -import ifcopenshell.util.unit -from ifcopenshell.util.shape_builder import V, SequenceOfVectors, ifc_safe_vector_type from typing import Optional, Union +import numpy.typing as npt + +import ifcopenshell.util.unit +from ifcopenshell.util.shape_builder import SequenceOfVectors, V, ifc_safe_vector_type + def add_arbitrary_profile( file: ifcopenshell.file, profile: SequenceOfVectors, name: Optional[str] = None diff --git a/src/ifcopenshell-python/ifcopenshell/api/profile/add_arbitrary_profile_with_voids.py b/src/ifcopenshell-python/ifcopenshell/api/profile/add_arbitrary_profile_with_voids.py index b813a3c65f..5a78cd400f 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/profile/add_arbitrary_profile_with_voids.py +++ b/src/ifcopenshell-python/ifcopenshell/api/profile/add_arbitrary_profile_with_voids.py @@ -16,11 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.util.unit -import numpy.typing as npt -from ifcopenshell.util.shape_builder import SequenceOfVectors, ifc_safe_vector_type, V from typing import Optional, Union +import numpy.typing as npt + +import ifcopenshell.util.unit +from ifcopenshell.util.shape_builder import SequenceOfVectors, V, ifc_safe_vector_type + def add_arbitrary_profile_with_voids( file: ifcopenshell.file, diff --git a/src/ifcopenshell-python/ifcopenshell/api/profile/add_parameterized_profile.py b/src/ifcopenshell-python/ifcopenshell/api/profile/add_parameterized_profile.py index 12c57532b0..02f93a4a20 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/profile/add_parameterized_profile.py +++ b/src/ifcopenshell-python/ifcopenshell/api/profile/add_parameterized_profile.py @@ -15,9 +15,9 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Literal +import ifcopenshell ProfileType = Literal["AREA", "CURVE"] diff --git a/src/ifcopenshell-python/ifcopenshell/api/profile/edit_profile.py b/src/ifcopenshell-python/ifcopenshell/api/profile/edit_profile.py index ba7bc3cfeb..4766f6c59b 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/profile/edit_profile.py +++ b/src/ifcopenshell-python/ifcopenshell/api/profile/edit_profile.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_profile(file: ifcopenshell.file, profile: ifcopenshell.entity_instance, attributes: dict[str, Any]) -> None: """Edits the attributes of an IfcProfileDef diff --git a/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py b/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py index 22eb022e99..0a5aee0e1c 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py +++ b/src/ifcopenshell-python/ifcopenshell/api/project/append_asset.py @@ -16,20 +16,21 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from collections.abc import Callable +from functools import partial +from typing import Any, Literal, Optional, Union, get_args + import ifcopenshell -import ifcopenshell.ifcopenshell_wrapper as W -import ifcopenshell.api.geometry -import ifcopenshell.api.type -import ifcopenshell.api.project import ifcopenshell.api.context +import ifcopenshell.api.geometry import ifcopenshell.api.owner.settings +import ifcopenshell.api.project +import ifcopenshell.api.type +import ifcopenshell.ifcopenshell_wrapper as W import ifcopenshell.util.element import ifcopenshell.util.geolocation import ifcopenshell.util.placement import ifcopenshell.util.unit -from typing import Optional, Any, Union, Literal, get_args, Callable -from functools import partial - APPENDABLE_ASSET = Literal[ "IfcTypeProduct", @@ -242,6 +243,59 @@ class Usecase: except RuntimeError: return None + def material_sets_are_equal(self, set1: ifcopenshell.entity_instance, set2: ifcopenshell.entity_instance) -> bool: + """Check if two material sets are structurally equivalent.""" + if set1.is_a() != set2.is_a(): + return False + + ifc_class = set1.is_a() + + if ifc_class == "IfcMaterialLayerSet": + layers1 = set1.MaterialLayers or [] + layers2 = set2.MaterialLayers or [] + if len(layers1) != len(layers2): + return False + for l1, l2 in zip(layers1, layers2): + if (l1.Material is None) != (l2.Material is None): + return False + if l1.Material and l1.Material.Name != l2.Material.Name: + return False + if l1.LayerThickness != l2.LayerThickness: + return False + + elif ifc_class == "IfcMaterialConstituentSet": + constituents1 = set1.MaterialConstituents or [] + constituents2 = set2.MaterialConstituents or [] + if len(constituents1) != len(constituents2): + return False + for c1, c2 in zip(constituents1, constituents2): + if (c1.Material is None) != (c2.Material is None): + return False + if c1.Material and c1.Material.Name != c2.Material.Name: + return False + if c1.Name != c2.Name: + return False + + elif ifc_class == "IfcMaterialProfileSet": + profiles1 = set1.MaterialProfiles or [] + profiles2 = set2.MaterialProfiles or [] + if len(profiles1) != len(profiles2): + return False + for p1, p2 in zip(profiles1, profiles2): + if (p1.Material is None) != (p2.Material is None): + return False + if p1.Material and p1.Material.Name != p2.Material.Name: + return False + if (p1.Profile is None) != (p2.Profile is None): + return False + if p1.Profile: + profile_name1 = getattr(p1.Profile, "ProfileName", None) + profile_name2 = getattr(p2.Profile, "ProfileName", None) + if profile_name1 != profile_name2: + return False + + return True + def get_existing_element(self, element: ifcopenshell.entity_instance) -> Union[ifcopenshell.entity_instance, None]: """Get existing element for a library element. @@ -263,13 +317,17 @@ class Usecase: name = element.Name return next((e for e in self.file.by_type("IfcMaterial") if e.Name == name), None) - elif element in MATERIAL_SETS: + elif element.is_a() in MATERIAL_SETS: ifc_class = element.is_a() name_attr = "LayerSetName" if ifc_class == "IfcMaterialLayerSet" else "Name" material_set_name = getattr(element, name_attr) if material_set_name is None: return - return next((e for e in self.file.by_type(ifc_class) if getattr(e, name_attr) == material_set_name), None) + for candidate in self.file.by_type(ifc_class): + if getattr(candidate, name_attr) == material_set_name: + if self.material_sets_are_equal(element, candidate): + return candidate + return None elif element.is_a("IfcProfileDef"): profile_name = element.ProfileName @@ -323,6 +381,7 @@ class Usecase: def append_type_product(self): self.whitelisted_inverse_attributes = { "IfcObjectDefinition": ["HasAssociations"], + "IfcDistributionElementType": ["IsNestedBy"], self.base_material_class: ["HasExternalReferences", "HasProperties", "HasRepresentation"], "IfcRepresentationItem": ["StyledByItem", "LayerAssignment"], "IfcRepresentation": ["LayerAssignments"], @@ -339,6 +398,7 @@ class Usecase: "IfcObjectDefinition": ["HasAssociations"], "IfcObject": ["IsDefinedBy.IfcRelDefinesByProperties"], "IfcElement": ["HasOpenings"], + "IfcDistributionElement": ["IsNestedBy"], self.base_material_class: ["HasExternalReferences", "HasProperties", "HasRepresentation"], "IfcRepresentationItem": [ "StyledByItem", @@ -511,6 +571,8 @@ class Usecase: return False elif element.is_a("IfcRoot") and self.by_guid(element.GlobalId) is not None: return False + elif element.is_a("IfcDistributionPort"): + return False elif element.is_a(self.target_class): return True elif self.target_class == "IfcProduct" and element.is_a("IfcTypeProduct"): @@ -664,12 +726,11 @@ class Usecase: name_attr = "LayerSetName" if ifc_class == "IfcMaterialLayerSet" else "Name" material_set_name = getattr(element, name_attr) if material_set_name is not None: - existing_material_set = next( - (e for e in ifc_file.by_type(ifc_class) if getattr(e, name_attr) == material_set_name), None - ) - if existing_material_set is not None: - reuse_identities[element_identity] = existing_material_set - return existing_material_set + for candidate in ifc_file.by_type(ifc_class): + if getattr(candidate, name_attr) == material_set_name: + if self.material_sets_are_equal(element, candidate): + reuse_identities[element_identity] = candidate + return candidate elif element.is_a("IfcPresentationStyle"): style_name = element.Name diff --git a/src/ifcopenshell-python/ifcopenshell/api/project/assign_declaration.py b/src/ifcopenshell-python/ifcopenshell/api/project/assign_declaration.py index 2daa7dc729..35f76ac7bd 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/project/assign_declaration.py +++ b/src/ifcopenshell-python/ifcopenshell/api/project/assign_declaration.py @@ -16,11 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Union + import ifcopenshell import ifcopenshell.api.owner import ifcopenshell.guid import ifcopenshell.util.element -from typing import Union def assign_declaration( diff --git a/src/ifcopenshell-python/ifcopenshell/api/project/create_file.py b/src/ifcopenshell-python/ifcopenshell/api/project/create_file.py index 41bc45fdd5..e122ba766b 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/project/create_file.py +++ b/src/ifcopenshell-python/ifcopenshell/api/project/create_file.py @@ -17,6 +17,7 @@ # along with IfcOpenShell. If not, see . import datetime + import ifcopenshell import ifcopenshell.util.schema diff --git a/src/ifcopenshell-python/ifcopenshell/api/pset/add_pset.py b/src/ifcopenshell-python/ifcopenshell/api/pset/add_pset.py index f1a99bd847..a1075334de 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/pset/add_pset.py +++ b/src/ifcopenshell-python/ifcopenshell/api/pset/add_pset.py @@ -16,11 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Any, Optional + import ifcopenshell import ifcopenshell.api.owner import ifcopenshell.api.pset import ifcopenshell.guid -from typing import Optional, Any def add_pset( diff --git a/src/ifcopenshell-python/ifcopenshell/api/pset/add_qto.py b/src/ifcopenshell-python/ifcopenshell/api/pset/add_qto.py index 695ca21dd8..229a43f4ae 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/pset/add_qto.py +++ b/src/ifcopenshell-python/ifcopenshell/api/pset/add_qto.py @@ -16,10 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Any + import ifcopenshell import ifcopenshell.api.owner import ifcopenshell.guid -from typing import Any def add_qto(file: ifcopenshell.file, product: ifcopenshell.entity_instance, name: str) -> ifcopenshell.entity_instance: diff --git a/src/ifcopenshell-python/ifcopenshell/api/pset/assign_pset.py b/src/ifcopenshell-python/ifcopenshell/api/pset/assign_pset.py index ed309944a1..908ffd9aad 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/pset/assign_pset.py +++ b/src/ifcopenshell-python/ifcopenshell/api/pset/assign_pset.py @@ -16,11 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Union + import ifcopenshell import ifcopenshell.api.owner import ifcopenshell.guid -import ifcopenshell.util.element -from typing import Union def assign_pset( diff --git a/src/ifcopenshell-python/ifcopenshell/api/pset/edit_pset.py b/src/ifcopenshell-python/ifcopenshell/api/pset/edit_pset.py index 35ef9ee6a8..97730760e7 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/pset/edit_pset.py +++ b/src/ifcopenshell-python/ifcopenshell/api/pset/edit_pset.py @@ -17,10 +17,11 @@ # along with IfcOpenShell. If not, see . import datetime +from typing import Any, Optional, Union + import ifcopenshell import ifcopenshell.util.element import ifcopenshell.util.pset -from typing import Optional, Any, Union def edit_pset( diff --git a/src/ifcopenshell-python/ifcopenshell/api/pset/edit_qto.py b/src/ifcopenshell-python/ifcopenshell/api/pset/edit_qto.py index 54405efdd1..41bd4fbecf 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/pset/edit_qto.py +++ b/src/ifcopenshell-python/ifcopenshell/api/pset/edit_qto.py @@ -16,11 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Any, Optional, Union + +from typing_extensions import assert_never + import ifcopenshell import ifcopenshell.api.pset import ifcopenshell.util.pset -from typing import Optional, Any, Union -from typing_extensions import assert_never FLOAT_TYPE_KEYWORDS = ( ("Area", ("area",)), diff --git a/src/ifcopenshell-python/ifcopenshell/api/pset/unassign_pset.py b/src/ifcopenshell-python/ifcopenshell/api/pset/unassign_pset.py index 24256f77fe..e172f7fed1 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/pset/unassign_pset.py +++ b/src/ifcopenshell-python/ifcopenshell/api/pset/unassign_pset.py @@ -17,8 +17,6 @@ # along with IfcOpenShell. If not, see . import ifcopenshell -import ifcopenshell.api.owner -import ifcopenshell.guid import ifcopenshell.util.element diff --git a/src/ifcopenshell-python/ifcopenshell/api/pset/unshare_pset.py b/src/ifcopenshell-python/ifcopenshell/api/pset/unshare_pset.py index 051905b2b7..d272f98495 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/pset/unshare_pset.py +++ b/src/ifcopenshell-python/ifcopenshell/api/pset/unshare_pset.py @@ -17,9 +17,7 @@ # along with IfcOpenShell. If not, see . import ifcopenshell -import ifcopenshell.api.owner import ifcopenshell.api.pset -import ifcopenshell.guid import ifcopenshell.util.element diff --git a/src/ifcopenshell-python/ifcopenshell/api/pset_template/add_prop_template.py b/src/ifcopenshell-python/ifcopenshell/api/pset_template/add_prop_template.py index 39d1987fa4..f9cb427d3b 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/pset_template/add_prop_template.py +++ b/src/ifcopenshell-python/ifcopenshell/api/pset_template/add_prop_template.py @@ -16,10 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Optional + import ifcopenshell import ifcopenshell.guid import ifcopenshell.util.pset -from typing import Optional def add_prop_template( diff --git a/src/ifcopenshell-python/ifcopenshell/api/pset_template/edit_prop_template.py b/src/ifcopenshell-python/ifcopenshell/api/pset_template/edit_prop_template.py index 3677a8e63e..b6ea4e823c 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/pset_template/edit_prop_template.py +++ b/src/ifcopenshell-python/ifcopenshell/api/pset_template/edit_prop_template.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_prop_template( file: ifcopenshell.file, prop_template: ifcopenshell.entity_instance, attributes: dict[str, Any] diff --git a/src/ifcopenshell-python/ifcopenshell/api/pset_template/edit_pset_template.py b/src/ifcopenshell-python/ifcopenshell/api/pset_template/edit_pset_template.py index d143b5554e..2fdd445f98 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/pset_template/edit_pset_template.py +++ b/src/ifcopenshell-python/ifcopenshell/api/pset_template/edit_pset_template.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_pset_template( file: ifcopenshell.file, pset_template: ifcopenshell.entity_instance, attributes: dict[str, Any] diff --git a/src/ifcopenshell-python/ifcopenshell/api/resource/add_resource.py b/src/ifcopenshell-python/ifcopenshell/api/resource/add_resource.py index 691ad2ec6a..642673f2dc 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/resource/add_resource.py +++ b/src/ifcopenshell-python/ifcopenshell/api/resource/add_resource.py @@ -16,10 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.api.root +from typing import Optional + import ifcopenshell.api.nest import ifcopenshell.api.project -from typing import Optional +import ifcopenshell.api.root def add_resource( diff --git a/src/ifcopenshell-python/ifcopenshell/api/resource/calculate_resource_usage.py b/src/ifcopenshell-python/ifcopenshell/api/resource/calculate_resource_usage.py index 545016bfd2..5c707fc5de 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/resource/calculate_resource_usage.py +++ b/src/ifcopenshell-python/ifcopenshell/api/resource/calculate_resource_usage.py @@ -16,11 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import math + import ifcopenshell.api import ifcopenshell.util.constraint import ifcopenshell.util.date -import ifcopenshell.util.element import ifcopenshell.util.resource diff --git a/src/ifcopenshell-python/ifcopenshell/api/resource/calculate_resource_work.py b/src/ifcopenshell-python/ifcopenshell/api/resource/calculate_resource_work.py index 0ec5f56fe4..fc597cce3a 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/resource/calculate_resource_work.py +++ b/src/ifcopenshell-python/ifcopenshell/api/resource/calculate_resource_work.py @@ -18,8 +18,6 @@ import ifcopenshell.api.resource import ifcopenshell.util.constraint -import ifcopenshell.util.date -import ifcopenshell.util.element import ifcopenshell.util.resource diff --git a/src/ifcopenshell-python/ifcopenshell/api/resource/edit_resource.py b/src/ifcopenshell-python/ifcopenshell/api/resource/edit_resource.py index 3476032c1a..27c27e519e 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/resource/edit_resource.py +++ b/src/ifcopenshell-python/ifcopenshell/api/resource/edit_resource.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_resource(file: ifcopenshell.file, resource: ifcopenshell.entity_instance, attributes: dict[str, Any]) -> None: """Edits the attributes of an IfcResource diff --git a/src/ifcopenshell-python/ifcopenshell/api/resource/edit_resource_quantity.py b/src/ifcopenshell-python/ifcopenshell/api/resource/edit_resource_quantity.py index 87a14774d8..18a2877484 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/resource/edit_resource_quantity.py +++ b/src/ifcopenshell-python/ifcopenshell/api/resource/edit_resource_quantity.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_resource_quantity( file: ifcopenshell.file, physical_quantity: ifcopenshell.entity_instance, attributes: dict[str, Any] diff --git a/src/ifcopenshell-python/ifcopenshell/api/resource/edit_resource_time.py b/src/ifcopenshell-python/ifcopenshell/api/resource/edit_resource_time.py index 7326a5fd90..45dc7cc5e1 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/resource/edit_resource_time.py +++ b/src/ifcopenshell-python/ifcopenshell/api/resource/edit_resource_time.py @@ -16,12 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Any + import ifcopenshell import ifcopenshell.api.sequence import ifcopenshell.util.constraint import ifcopenshell.util.date import ifcopenshell.util.resource -from typing import Any def edit_resource_time( diff --git a/src/ifcopenshell-python/ifcopenshell/api/root/copy_class.py b/src/ifcopenshell-python/ifcopenshell/api/root/copy_class.py index 167680bd78..f8c0efb7bb 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/root/copy_class.py +++ b/src/ifcopenshell-python/ifcopenshell/api/root/copy_class.py @@ -16,15 +16,14 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . + import ifcopenshell +import ifcopenshell.api.geometry import ifcopenshell.api.material import ifcopenshell.api.root import ifcopenshell.api.system -import ifcopenshell.api.geometry -import ifcopenshell.util.system import ifcopenshell.util.element import ifcopenshell.util.placement -from typing import Any def copy_class(file: ifcopenshell.file, product: ifcopenshell.entity_instance) -> ifcopenshell.entity_instance: diff --git a/src/ifcopenshell-python/ifcopenshell/api/root/create_entity.py b/src/ifcopenshell-python/ifcopenshell/api/root/create_entity.py index 96a3b130be..3179884d80 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/root/create_entity.py +++ b/src/ifcopenshell-python/ifcopenshell/api/root/create_entity.py @@ -16,10 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Optional + import ifcopenshell import ifcopenshell.api.owner import ifcopenshell.guid -from typing import Optional, Any def create_entity( diff --git a/src/ifcopenshell-python/ifcopenshell/api/root/reassign_class.py b/src/ifcopenshell-python/ifcopenshell/api/root/reassign_class.py index 18ff02b199..e8ed2b7173 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/root/reassign_class.py +++ b/src/ifcopenshell-python/ifcopenshell/api/root/reassign_class.py @@ -16,18 +16,18 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Literal, Optional, Union + import ifcopenshell import ifcopenshell.api.aggregate import ifcopenshell.api.geometry import ifcopenshell.api.pset import ifcopenshell.api.spatial import ifcopenshell.api.type -import ifcopenshell.guid -import ifcopenshell.util.representation -import ifcopenshell.util.type -import ifcopenshell.util.schema import ifcopenshell.util.element -from typing import Optional, Union, Literal +import ifcopenshell.util.representation +import ifcopenshell.util.schema +import ifcopenshell.util.type def reassign_class( diff --git a/src/ifcopenshell-python/ifcopenshell/api/root/remove_product.py b/src/ifcopenshell-python/ifcopenshell/api/root/remove_product.py index df17e3bb69..9f1724d914 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/root/remove_product.py +++ b/src/ifcopenshell-python/ifcopenshell/api/root/remove_product.py @@ -16,14 +16,14 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.api.type -import ifcopenshell.api.grid -import ifcopenshell.api.feature -import ifcopenshell.api.root -import ifcopenshell.api.pset import ifcopenshell.api.boundary -import ifcopenshell.api.material +import ifcopenshell.api.feature import ifcopenshell.api.geometry +import ifcopenshell.api.grid +import ifcopenshell.api.material +import ifcopenshell.api.pset +import ifcopenshell.api.root +import ifcopenshell.api.type import ifcopenshell.util.element diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/add_date_time.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/add_date_time.py index 96017a0807..3c029add56 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/add_date_time.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/add_date_time.py @@ -16,10 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.util.date from datetime import datetime from typing import Union +import ifcopenshell.util.date + def add_date_time(file: ifcopenshell.file, dt: datetime) -> Union[str, ifcopenshell.entity_instance]: """Add a new date time. diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/add_task.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/add_task.py index 36d7d452b1..b8d0d05c15 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/add_task.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/add_task.py @@ -16,12 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.api.control -import ifcopenshell.api.root -import ifcopenshell.api.nest -import ifcopenshell from typing import Optional +import ifcopenshell +import ifcopenshell.api.control +import ifcopenshell.api.nest +import ifcopenshell.api.root + def add_task( file: ifcopenshell.file, diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/add_time_period.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/add_time_period.py index 41e0785b1d..e10bc4ccb6 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/add_time_period.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/add_time_period.py @@ -16,12 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from datetime import time +from typing import Optional, Union + import ifcopenshell.api import ifcopenshell.util.date import ifcopenshell.util.sequence -from datetime import datetime, time -from datetime import timedelta -from typing import Optional, Union def add_time_period( diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/add_work_calendar.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/add_work_calendar.py index c530a766de..2be4456f0f 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/add_work_calendar.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/add_work_calendar.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.api.root import ifcopenshell.api.project +import ifcopenshell.api.root def add_work_calendar( diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/add_work_plan.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/add_work_plan.py index 75ab9944be..088199c82c 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/add_work_plan.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/add_work_plan.py @@ -16,13 +16,14 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.api.root -import ifcopenshell.api.project -import ifcopenshell.api.owner.settings -import ifcopenshell.api.sequence from datetime import datetime, time from typing import Optional, Union +import ifcopenshell.api.owner.settings +import ifcopenshell.api.project +import ifcopenshell.api.root +import ifcopenshell.api.sequence + def add_work_plan( file: ifcopenshell.file, diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/add_work_schedule.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/add_work_schedule.py index 35fa1052ce..06a3fa9e8f 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/add_work_schedule.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/add_work_schedule.py @@ -16,14 +16,14 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.api.root -import ifcopenshell.api.project +from datetime import datetime, time +from typing import Optional, Union + import ifcopenshell.api.aggregate import ifcopenshell.api.owner.settings +import ifcopenshell.api.project +import ifcopenshell.api.root import ifcopenshell.api.sequence -from datetime import time -from datetime import datetime -from typing import Union, Optional def add_work_schedule( diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/add_work_time.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/add_work_time.py index 05b4960e09..74317f620f 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/add_work_time.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/add_work_time.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Literal +import ifcopenshell + TIME_TYPE = Literal["WorkingTimes", "ExceptionTimes"] diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/assign_work_plan.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/assign_work_plan.py index 4b2fd704f4..6c4dae83f6 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/assign_work_plan.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/assign_work_plan.py @@ -16,11 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell -import ifcopenshell.api.project -import ifcopenshell.api.aggregate from typing import Union +import ifcopenshell +import ifcopenshell.api.aggregate +import ifcopenshell.api.project + def assign_work_plan( file: ifcopenshell.file, work_schedule: ifcopenshell.entity_instance, work_plan: ifcopenshell.entity_instance diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/calculate_task_duration.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/calculate_task_duration.py index d5f0e5947e..1751f57ec0 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/calculate_task_duration.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/calculate_task_duration.py @@ -17,10 +17,11 @@ # along with IfcOpenShell. If not, see . import math +from typing import Union + import ifcopenshell.api.sequence import ifcopenshell.util.date import ifcopenshell.util.element -from typing import Union def calculate_task_duration(file: ifcopenshell.file, task: ifcopenshell.entity_instance) -> None: diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/cascade_schedule.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/cascade_schedule.py index 65cbd5a58a..17f2fa3bd5 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/cascade_schedule.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/cascade_schedule.py @@ -17,10 +17,11 @@ # along with IfcOpenShell. If not, see . import datetime +from typing import Optional, Union + import ifcopenshell.util.date import ifcopenshell.util.sequence from ifcopenshell.util.sequence import DURATION_TYPE -from typing import Union, Optional def cascade_schedule(file: ifcopenshell.file, task: ifcopenshell.entity_instance) -> None: diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/create_baseline.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/create_baseline.py index 00764a4f7c..5a53add448 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/create_baseline.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/create_baseline.py @@ -16,15 +16,14 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Optional, Union + import ifcopenshell -import ifcopenshell.api.owner import ifcopenshell.api.control +import ifcopenshell.api.owner import ifcopenshell.api.sequence import ifcopenshell.guid -import ifcopenshell.util.element import ifcopenshell.util.sequence -import ifcopenshell.util.system -from typing import Optional, Union def create_baseline( diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/duplicate_task.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/duplicate_task.py index fb79581f6b..db9ed0f7db 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/duplicate_task.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/duplicate_task.py @@ -17,10 +17,10 @@ # along with IfcOpenShell. If not, see . import ifcopenshell -import ifcopenshell.guid import ifcopenshell.api.nest import ifcopenshell.api.owner import ifcopenshell.api.sequence +import ifcopenshell.guid import ifcopenshell.util.date import ifcopenshell.util.element diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_lag_time.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_lag_time.py index d55bf0e4b5..5bf53eecfa 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_lag_time.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_lag_time.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Any + import ifcopenshell.api.sequence import ifcopenshell.util.date -from typing import Any def edit_lag_time(file: ifcopenshell.file, lag_time: ifcopenshell.entity_instance, attributes: dict[str, Any]) -> None: diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_recurrence_pattern.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_recurrence_pattern.py index 519c5cdf25..4cfdb0f1b6 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_recurrence_pattern.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_recurrence_pattern.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Any + import ifcopenshell import ifcopenshell.util.sequence -from typing import Any def edit_recurrence_pattern( diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_sequence.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_sequence.py index 2686ec5ace..2569d8dab6 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_sequence.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_sequence.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Any + import ifcopenshell import ifcopenshell.api.sequence -from typing import Any def edit_sequence( diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_task.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_task.py index 3fa1b88caf..d2a2243805 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_task.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_task.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_task(file: ifcopenshell.file, task: ifcopenshell.entity_instance, attributes: dict[str, Any]) -> None: """Edits the attributes of an IfcTask diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_task_time.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_task_time.py index ffde70580f..06e266b6dc 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_task_time.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_task_time.py @@ -17,12 +17,13 @@ # along with IfcOpenShell. If not, see . import datetime -import ifcopenshell.api.sequence +from typing import Any + import ifcopenshell.api.resource +import ifcopenshell.api.sequence import ifcopenshell.util.constraint import ifcopenshell.util.date import ifcopenshell.util.sequence -from typing import Any def edit_task_time( diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_work_calendar.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_work_calendar.py index 83e56a4372..7dfb65de3f 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_work_calendar.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_work_calendar.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_work_calendar( file: ifcopenshell.file, work_calendar: ifcopenshell.entity_instance, attributes: dict[str, Any] diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_work_plan.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_work_plan.py index 145460e11c..67ed76c255 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_work_plan.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_work_plan.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.util.date from typing import Any +import ifcopenshell.util.date + def edit_work_plan( file: ifcopenshell.file, work_plan: ifcopenshell.entity_instance, attributes: dict[str, Any] diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_work_schedule.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_work_schedule.py index 98905b9a1f..158caff06d 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_work_schedule.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_work_schedule.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.util.date from typing import Any +import ifcopenshell.util.date + def edit_work_schedule( file: ifcopenshell.file, work_schedule: ifcopenshell.entity_instance, attributes: dict[str, Any] diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_work_time.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_work_time.py index 7fae8b4c18..0c3f5c625f 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_work_time.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/edit_work_time.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.util.date from typing import Any +import ifcopenshell.util.date + def edit_work_time( file: ifcopenshell.file, diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/recalculate_schedule.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/recalculate_schedule.py index 14e82822e3..bfb68051be 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/recalculate_schedule.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/recalculate_schedule.py @@ -17,7 +17,9 @@ # along with IfcOpenShell. If not, see . import datetime + import networkx as nx + import ifcopenshell.api.sequence import ifcopenshell.util.date import ifcopenshell.util.sequence diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/remove_task.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/remove_task.py index 107dcada2b..d42ad9a7b0 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/remove_task.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/remove_task.py @@ -17,9 +17,9 @@ # along with IfcOpenShell. If not, see . import ifcopenshell -import ifcopenshell.api.pset import ifcopenshell.api.nest import ifcopenshell.api.project +import ifcopenshell.api.pset import ifcopenshell.api.sequence import ifcopenshell.util.element diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/remove_work_plan.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/remove_work_plan.py index 1d7fd8ce3a..a0218b2074 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/remove_work_plan.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/remove_work_plan.py @@ -17,8 +17,8 @@ # along with IfcOpenShell. If not, see . import ifcopenshell -import ifcopenshell.api.project import ifcopenshell.api.aggregate +import ifcopenshell.api.project import ifcopenshell.util.element diff --git a/src/ifcopenshell-python/ifcopenshell/api/sequence/remove_work_schedule.py b/src/ifcopenshell-python/ifcopenshell/api/sequence/remove_work_schedule.py index d0bc15b0db..e9911e09ba 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/sequence/remove_work_schedule.py +++ b/src/ifcopenshell-python/ifcopenshell/api/sequence/remove_work_schedule.py @@ -17,9 +17,9 @@ # along with IfcOpenShell. If not, see . import ifcopenshell +import ifcopenshell.api.aggregate import ifcopenshell.api.project import ifcopenshell.api.sequence -import ifcopenshell.api.aggregate import ifcopenshell.util.element diff --git a/src/ifcopenshell-python/ifcopenshell/api/spatial/assign_container.py b/src/ifcopenshell-python/ifcopenshell/api/spatial/assign_container.py index 15f59905f6..a98e941776 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/spatial/assign_container.py +++ b/src/ifcopenshell-python/ifcopenshell/api/spatial/assign_container.py @@ -16,14 +16,15 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Union + import ifcopenshell -import ifcopenshell.guid -import ifcopenshell.api.owner -import ifcopenshell.api.geometry import ifcopenshell.api.aggregate +import ifcopenshell.api.geometry +import ifcopenshell.api.owner +import ifcopenshell.guid import ifcopenshell.util.element import ifcopenshell.util.placement -from typing import Union def assign_container( diff --git a/src/ifcopenshell-python/ifcopenshell/api/spatial/reference_structure.py b/src/ifcopenshell-python/ifcopenshell/api/spatial/reference_structure.py index 41452244d1..4446971f0d 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/spatial/reference_structure.py +++ b/src/ifcopenshell-python/ifcopenshell/api/spatial/reference_structure.py @@ -16,11 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Union + import ifcopenshell import ifcopenshell.api.owner import ifcopenshell.guid import ifcopenshell.util.element -from typing import Union def reference_structure( diff --git a/src/ifcopenshell-python/ifcopenshell/api/structural/__init__.py b/src/ifcopenshell-python/ifcopenshell/api/structural/__init__.py index 9406c5fc12..2baa262432 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/structural/__init__.py +++ b/src/ifcopenshell-python/ifcopenshell/api/structural/__init__.py @@ -39,7 +39,9 @@ from .edit_structural_load import edit_structural_load from .edit_structural_load_case import edit_structural_load_case from .remove_structural_analysis_model import remove_structural_analysis_model from .remove_structural_boundary_condition import remove_structural_boundary_condition -from .remove_structural_connection_condition import remove_structural_connection_condition +from .remove_structural_connection_condition import ( + remove_structural_connection_condition, +) from .remove_structural_load import remove_structural_load from .remove_structural_load_case import remove_structural_load_case from .remove_structural_load_group import remove_structural_load_group diff --git a/src/ifcopenshell-python/ifcopenshell/api/structural/add_structural_activity.py b/src/ifcopenshell-python/ifcopenshell/api/structural/add_structural_activity.py index 466d26526f..ef12a4cb12 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/structural/add_structural_activity.py +++ b/src/ifcopenshell-python/ifcopenshell/api/structural/add_structural_activity.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.api.root from typing import Literal +import ifcopenshell.api.root + def add_structural_activity( file: ifcopenshell.file, diff --git a/src/ifcopenshell-python/ifcopenshell/api/structural/add_structural_boundary_condition.py b/src/ifcopenshell-python/ifcopenshell/api/structural/add_structural_boundary_condition.py index 4e3ac0c1b9..c78bba2b68 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/structural/add_structural_boundary_condition.py +++ b/src/ifcopenshell-python/ifcopenshell/api/structural/add_structural_boundary_condition.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Optional +import ifcopenshell + def add_structural_boundary_condition( file: ifcopenshell.file, diff --git a/src/ifcopenshell-python/ifcopenshell/api/structural/add_structural_load.py b/src/ifcopenshell-python/ifcopenshell/api/structural/add_structural_load.py index ad79a58ce5..6a7d9eb03f 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/structural/add_structural_load.py +++ b/src/ifcopenshell-python/ifcopenshell/api/structural/add_structural_load.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.api from typing import Optional +import ifcopenshell.api + def add_structural_load( file: ifcopenshell.file, name: Optional[str] = None, ifc_class: str = "IfcStructuralLoadLinearForce" diff --git a/src/ifcopenshell-python/ifcopenshell/api/structural/assign_structural_analysis_model.py b/src/ifcopenshell-python/ifcopenshell/api/structural/assign_structural_analysis_model.py index dfae40d862..01254d7985 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/structural/assign_structural_analysis_model.py +++ b/src/ifcopenshell-python/ifcopenshell/api/structural/assign_structural_analysis_model.py @@ -16,11 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Union + import ifcopenshell import ifcopenshell.api.group -import ifcopenshell.api.owner -import ifcopenshell.guid -from typing import Union def assign_structural_analysis_model( diff --git a/src/ifcopenshell-python/ifcopenshell/api/structural/edit_structural_analysis_model.py b/src/ifcopenshell-python/ifcopenshell/api/structural/edit_structural_analysis_model.py index 65c03eb238..6d9b87b596 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/structural/edit_structural_analysis_model.py +++ b/src/ifcopenshell-python/ifcopenshell/api/structural/edit_structural_analysis_model.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_structural_analysis_model( file: ifcopenshell.file, structural_analysis_model: ifcopenshell.entity_instance, attributes: dict[str, Any] diff --git a/src/ifcopenshell-python/ifcopenshell/api/structural/edit_structural_boundary_condition.py b/src/ifcopenshell-python/ifcopenshell/api/structural/edit_structural_boundary_condition.py index f88eb7fc71..67eaadf46d 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/structural/edit_structural_boundary_condition.py +++ b/src/ifcopenshell-python/ifcopenshell/api/structural/edit_structural_boundary_condition.py @@ -15,8 +15,9 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Any, Literal, TypedDict, Union + import ifcopenshell -from typing import Any, TypedDict, Literal, Union class AttributeDict(TypedDict): diff --git a/src/ifcopenshell-python/ifcopenshell/api/structural/edit_structural_load.py b/src/ifcopenshell-python/ifcopenshell/api/structural/edit_structural_load.py index faa218a7a3..874db34655 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/structural/edit_structural_load.py +++ b/src/ifcopenshell-python/ifcopenshell/api/structural/edit_structural_load.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_structural_load( file: ifcopenshell.file, structural_load: ifcopenshell.entity_instance, attributes: dict[str, Any] diff --git a/src/ifcopenshell-python/ifcopenshell/api/structural/edit_structural_load_case.py b/src/ifcopenshell-python/ifcopenshell/api/structural/edit_structural_load_case.py index 02948c637d..511ef3fe87 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/structural/edit_structural_load_case.py +++ b/src/ifcopenshell-python/ifcopenshell/api/structural/edit_structural_load_case.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_structural_load_case( file: ifcopenshell.file, load_case: ifcopenshell.entity_instance, attributes: dict[str, Any] diff --git a/src/ifcopenshell-python/ifcopenshell/api/structural/remove_structural_boundary_condition.py b/src/ifcopenshell-python/ifcopenshell/api/structural/remove_structural_boundary_condition.py index d31811a739..6f17b4ffba 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/structural/remove_structural_boundary_condition.py +++ b/src/ifcopenshell-python/ifcopenshell/api/structural/remove_structural_boundary_condition.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Optional +import ifcopenshell + def remove_structural_boundary_condition( file: ifcopenshell.file, diff --git a/src/ifcopenshell-python/ifcopenshell/api/structural/remove_structural_load_case.py b/src/ifcopenshell-python/ifcopenshell/api/structural/remove_structural_load_case.py index 401db40dbc..6b381f81a1 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/structural/remove_structural_load_case.py +++ b/src/ifcopenshell-python/ifcopenshell/api/structural/remove_structural_load_case.py @@ -17,7 +17,6 @@ # along with IfcOpenShell. If not, see . import ifcopenshell -import ifcopenshell.api import ifcopenshell.util.element diff --git a/src/ifcopenshell-python/ifcopenshell/api/structural/remove_structural_load_group.py b/src/ifcopenshell-python/ifcopenshell/api/structural/remove_structural_load_group.py index 25acbbe9cc..26da2d157f 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/structural/remove_structural_load_group.py +++ b/src/ifcopenshell-python/ifcopenshell/api/structural/remove_structural_load_group.py @@ -17,7 +17,6 @@ # along with IfcOpenShell. If not, see . import ifcopenshell -import ifcopenshell.api import ifcopenshell.util.element diff --git a/src/ifcopenshell-python/ifcopenshell/api/structural/unassign_structural_analysis_model.py b/src/ifcopenshell-python/ifcopenshell/api/structural/unassign_structural_analysis_model.py index 2053e7d075..fcb3a2ead3 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/structural/unassign_structural_analysis_model.py +++ b/src/ifcopenshell-python/ifcopenshell/api/structural/unassign_structural_analysis_model.py @@ -18,8 +18,6 @@ import ifcopenshell import ifcopenshell.api.group -import ifcopenshell.api.owner -import ifcopenshell.util.element def unassign_structural_analysis_model( diff --git a/src/ifcopenshell-python/ifcopenshell/api/style/add_style.py b/src/ifcopenshell-python/ifcopenshell/api/style/add_style.py index 54e5ffd2a8..3b5c3acef8 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/style/add_style.py +++ b/src/ifcopenshell-python/ifcopenshell/api/style/add_style.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Optional +import ifcopenshell + def add_style( file: ifcopenshell.file, name: Optional[str] = None, ifc_class="IfcSurfaceStyle" diff --git a/src/ifcopenshell-python/ifcopenshell/api/style/add_surface_style.py b/src/ifcopenshell-python/ifcopenshell/api/style/add_surface_style.py index 55af1b35b2..e4c3f82c9c 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/style/add_surface_style.py +++ b/src/ifcopenshell-python/ifcopenshell/api/style/add_surface_style.py @@ -16,10 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Any, Literal, Optional + import ifcopenshell import ifcopenshell.api.style -from typing import Any, Optional, Literal - SURFACE_STYLE_TYPES = Literal[ "IfcSurfaceStyleShading", diff --git a/src/ifcopenshell-python/ifcopenshell/api/style/add_surface_textures.py b/src/ifcopenshell-python/ifcopenshell/api/style/add_surface_textures.py index 89505d1a98..49e1381da2 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/style/add_surface_textures.py +++ b/src/ifcopenshell-python/ifcopenshell/api/style/add_surface_textures.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . from __future__ import annotations + +from typing import TYPE_CHECKING, Any, Optional + import ifcopenshell -import ifcopenshell.api -from typing import TYPE_CHECKING, Optional, Any if TYPE_CHECKING: import bpy diff --git a/src/ifcopenshell-python/ifcopenshell/api/style/assign_item_style.py b/src/ifcopenshell-python/ifcopenshell/api/style/assign_item_style.py index 0712bc2f83..cf8b5dc1a6 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/style/assign_item_style.py +++ b/src/ifcopenshell-python/ifcopenshell/api/style/assign_item_style.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Optional, Union +import ifcopenshell + def assign_item_style( file: ifcopenshell.file, diff --git a/src/ifcopenshell-python/ifcopenshell/api/style/assign_material_style.py b/src/ifcopenshell-python/ifcopenshell/api/style/assign_material_style.py index a9050a3379..bccd0568f1 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/style/assign_material_style.py +++ b/src/ifcopenshell-python/ifcopenshell/api/style/assign_material_style.py @@ -16,10 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Any + import ifcopenshell import ifcopenshell.api.style import ifcopenshell.util.element -from typing import Any def assign_material_style( diff --git a/src/ifcopenshell-python/ifcopenshell/api/style/assign_representation_styles.py b/src/ifcopenshell-python/ifcopenshell/api/style/assign_representation_styles.py index b4d0fbe0e5..2182d354c1 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/style/assign_representation_styles.py +++ b/src/ifcopenshell-python/ifcopenshell/api/style/assign_representation_styles.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def assign_representation_styles( file: ifcopenshell.file, diff --git a/src/ifcopenshell-python/ifcopenshell/api/style/edit_presentation_style.py b/src/ifcopenshell-python/ifcopenshell/api/style/edit_presentation_style.py index 7a39629528..a259b7ac83 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/style/edit_presentation_style.py +++ b/src/ifcopenshell-python/ifcopenshell/api/style/edit_presentation_style.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_presentation_style( file: ifcopenshell.file, style: ifcopenshell.entity_instance, attributes: dict[str, Any] diff --git a/src/ifcopenshell-python/ifcopenshell/api/style/edit_surface_style.py b/src/ifcopenshell-python/ifcopenshell/api/style/edit_surface_style.py index 7f7f05948d..681ba6ccf6 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/style/edit_surface_style.py +++ b/src/ifcopenshell-python/ifcopenshell/api/style/edit_surface_style.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any, Union +import ifcopenshell + def edit_surface_style( file: ifcopenshell.file, style: ifcopenshell.entity_instance, attributes: dict[str, Any] diff --git a/src/ifcopenshell-python/ifcopenshell/api/style/remove_style.py b/src/ifcopenshell-python/ifcopenshell/api/style/remove_style.py index 3637dcaca7..cc8045b189 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/style/remove_style.py +++ b/src/ifcopenshell-python/ifcopenshell/api/style/remove_style.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from collections.abc import Iterable + import ifcopenshell.api.style import ifcopenshell.util.element -from collections.abc import Iterable def remove_style(file: ifcopenshell.file, style: ifcopenshell.entity_instance) -> None: diff --git a/src/ifcopenshell-python/ifcopenshell/api/style/unassign_representation_styles.py b/src/ifcopenshell-python/ifcopenshell/api/style/unassign_representation_styles.py index 47a542c1b7..ef2d516fb8 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/style/unassign_representation_styles.py +++ b/src/ifcopenshell-python/ifcopenshell/api/style/unassign_representation_styles.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def unassign_representation_styles( file: ifcopenshell.file, diff --git a/src/ifcopenshell-python/ifcopenshell/api/system/add_port.py b/src/ifcopenshell-python/ifcopenshell/api/system/add_port.py index 5c1ba67bda..3b8348f77b 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/system/add_port.py +++ b/src/ifcopenshell-python/ifcopenshell/api/system/add_port.py @@ -16,10 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Optional + import ifcopenshell import ifcopenshell.api.root import ifcopenshell.api.system -from typing import Optional def add_port( diff --git a/src/ifcopenshell-python/ifcopenshell/api/system/assign_flow_control.py b/src/ifcopenshell-python/ifcopenshell/api/system/assign_flow_control.py index 3b9273acf1..1be4d2c3bd 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/system/assign_flow_control.py +++ b/src/ifcopenshell-python/ifcopenshell/api/system/assign_flow_control.py @@ -16,10 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Union + import ifcopenshell import ifcopenshell.api.owner import ifcopenshell.guid -from typing import Union def assign_flow_control( diff --git a/src/ifcopenshell-python/ifcopenshell/api/system/assign_port.py b/src/ifcopenshell-python/ifcopenshell/api/system/assign_port.py index eee8780778..5422695fe5 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/system/assign_port.py +++ b/src/ifcopenshell-python/ifcopenshell/api/system/assign_port.py @@ -16,12 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . + import ifcopenshell -import ifcopenshell.api.owner import ifcopenshell.api.geometry +import ifcopenshell.api.owner import ifcopenshell.guid import ifcopenshell.util.placement -from typing import Any def assign_port( diff --git a/src/ifcopenshell-python/ifcopenshell/api/system/assign_system.py b/src/ifcopenshell-python/ifcopenshell/api/system/assign_system.py index 8677f748b4..ee1acff2c4 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/system/assign_system.py +++ b/src/ifcopenshell-python/ifcopenshell/api/system/assign_system.py @@ -16,10 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Union + import ifcopenshell import ifcopenshell.api.group import ifcopenshell.util.system -from typing import Union def assign_system( diff --git a/src/ifcopenshell-python/ifcopenshell/api/system/connect_port.py b/src/ifcopenshell-python/ifcopenshell/api/system/connect_port.py index d64f5c2064..6c43df1b8b 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/system/connect_port.py +++ b/src/ifcopenshell-python/ifcopenshell/api/system/connect_port.py @@ -16,11 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Any, Optional + import ifcopenshell import ifcopenshell.api.owner import ifcopenshell.guid import ifcopenshell.util.element -from typing import Optional, Any def connect_port( diff --git a/src/ifcopenshell-python/ifcopenshell/api/system/disconnect_port.py b/src/ifcopenshell-python/ifcopenshell/api/system/disconnect_port.py index 8ffbfcf380..b6b72a192b 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/system/disconnect_port.py +++ b/src/ifcopenshell-python/ifcopenshell/api/system/disconnect_port.py @@ -17,7 +17,6 @@ # along with IfcOpenShell. If not, see . import ifcopenshell -import ifcopenshell.api import ifcopenshell.util.element @@ -66,8 +65,6 @@ def disconnect_port(file: ifcopenshell.file, port: ifcopenshell.entity_instance) rels += port.ConnectedFrom or () for rel in rels: - rel.RelatingPort.FlowDirection = None - rel.RelatedPort.FlowDirection = None history = rel.OwnerHistory file.remove(rel) if history: diff --git a/src/ifcopenshell-python/ifcopenshell/api/system/edit_system.py b/src/ifcopenshell-python/ifcopenshell/api/system/edit_system.py index c90894ec7f..0615025f4c 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/system/edit_system.py +++ b/src/ifcopenshell-python/ifcopenshell/api/system/edit_system.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_system(file: ifcopenshell.file, system: ifcopenshell.entity_instance, attributes: dict[str, Any]) -> None: """Edits the attributes of an IfcSystem diff --git a/src/ifcopenshell-python/ifcopenshell/api/system/unassign_system.py b/src/ifcopenshell-python/ifcopenshell/api/system/unassign_system.py index 2921524094..725abc6fe3 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/system/unassign_system.py +++ b/src/ifcopenshell-python/ifcopenshell/api/system/unassign_system.py @@ -18,7 +18,6 @@ import ifcopenshell import ifcopenshell.api.group -import ifcopenshell.util.element def unassign_system( diff --git a/src/ifcopenshell-python/ifcopenshell/api/type/assign_type.py b/src/ifcopenshell-python/ifcopenshell/api/type/assign_type.py index f412d4dd2e..2c7abcd169 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/type/assign_type.py +++ b/src/ifcopenshell-python/ifcopenshell/api/type/assign_type.py @@ -16,13 +16,14 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Union + import ifcopenshell -import ifcopenshell.api.type -import ifcopenshell.api.owner import ifcopenshell.api.material +import ifcopenshell.api.owner +import ifcopenshell.api.type import ifcopenshell.guid import ifcopenshell.util.element -from typing import Union def assign_type( diff --git a/src/ifcopenshell-python/ifcopenshell/api/type/map_type_representations.py b/src/ifcopenshell-python/ifcopenshell/api/type/map_type_representations.py index 0c4c66ae16..5e2f7de989 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/type/map_type_representations.py +++ b/src/ifcopenshell-python/ifcopenshell/api/type/map_type_representations.py @@ -18,7 +18,6 @@ import ifcopenshell import ifcopenshell.api.geometry -import ifcopenshell.util.element def map_type_representations( diff --git a/src/ifcopenshell-python/ifcopenshell/api/unit/__init__.py b/src/ifcopenshell-python/ifcopenshell/api/unit/__init__.py index 4245b49c37..31ed3d0ddc 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/unit/__init__.py +++ b/src/ifcopenshell-python/ifcopenshell/api/unit/__init__.py @@ -26,9 +26,9 @@ equipment. from .. import wrap_usecases from .add_context_dependent_unit import add_context_dependent_unit from .add_conversion_based_unit import add_conversion_based_unit +from .add_derived_unit import add_derived_unit from .add_monetary_unit import add_monetary_unit from .add_si_unit import add_si_unit -from .add_derived_unit import add_derived_unit from .assign_unit import assign_unit from .edit_derived_unit import edit_derived_unit from .edit_monetary_unit import edit_monetary_unit diff --git a/src/ifcopenshell-python/ifcopenshell/api/unit/add_conversion_based_unit.py b/src/ifcopenshell-python/ifcopenshell/api/unit/add_conversion_based_unit.py index bb1e920257..b223f7cc46 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/unit/add_conversion_based_unit.py +++ b/src/ifcopenshell-python/ifcopenshell/api/unit/add_conversion_based_unit.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Optional + import ifcopenshell import ifcopenshell.util.unit -from typing import Optional def add_conversion_based_unit( @@ -32,7 +33,7 @@ def add_conversion_based_unit( function. You can choose from one of: inch, foot, yard, mile, square inch, square foot, square yard, acre, square mile, cubic inch, cubic foot, cubic yard, litre, fluid ounce UK, fluid ounce US, pint UK, pint - US, gallon UK, gallon US, degree, ounce, pound, ton UK, ton US, lbf, + US, gallon UK, gallon US, degree, ounce, pound, ton UK, ton US, tonne, lbf, kip, psi, ksi, minute, hour, day, btu, and fahrenheit. :param name: A converted name chosen from the list above. @@ -61,7 +62,11 @@ def add_conversion_based_unit( dimensions = ifcopenshell.util.unit.named_dimensions[unit_type] exponents = file.createIfcDimensionalExponents(*dimensions) si_name = ifcopenshell.util.unit.si_type_names[unit_type] - si_unit = file.createIfcSIUnit(UnitType=unit_type, Name=si_name) + + if unit_type == "MASSUNIT": + si_unit = file.createIfcSIUnit(UnitType=unit_type, Name=si_name, Prefix="KILO") + else: + si_unit = file.createIfcSIUnit(UnitType=unit_type, Name=si_name) conversion_real = ifcopenshell.util.unit.si_conversions.get(name, 1) value_component = file.create_entity("IfcReal", **{"wrappedValue": conversion_real}) diff --git a/src/ifcopenshell-python/ifcopenshell/api/unit/add_derived_unit.py b/src/ifcopenshell-python/ifcopenshell/api/unit/add_derived_unit.py index aba4388010..2c308b42d9 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/unit/add_derived_unit.py +++ b/src/ifcopenshell-python/ifcopenshell/api/unit/add_derived_unit.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . + import ifcopenshell.util.unit -from typing import Any, Optional def add_derived_unit( diff --git a/src/ifcopenshell-python/ifcopenshell/api/unit/add_si_unit.py b/src/ifcopenshell-python/ifcopenshell/api/unit/add_si_unit.py index 50da1c10f2..52f79f413b 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/unit/add_si_unit.py +++ b/src/ifcopenshell-python/ifcopenshell/api/unit/add_si_unit.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.util.unit from typing import Optional +import ifcopenshell.util.unit + def add_si_unit( file: ifcopenshell.file, unit_type: str = "LENGTHUNIT", prefix: Optional[str] = None diff --git a/src/ifcopenshell-python/ifcopenshell/api/unit/assign_unit.py b/src/ifcopenshell-python/ifcopenshell/api/unit/assign_unit.py index d57acbd435..7b5c2b6ae4 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/unit/assign_unit.py +++ b/src/ifcopenshell-python/ifcopenshell/api/unit/assign_unit.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Any, Optional + import ifcopenshell import ifcopenshell.util.unit -from typing import Optional, Any def assign_unit( @@ -55,8 +56,12 @@ def assign_unit( length = ifcopenshell.api.unit.add_si_unit(model, unit_type="LENGTHUNIT", prefix="MILLI") area = ifcopenshell.api.unit.add_si_unit(model, unit_type="AREAUNIT") - # Make it our default units, if we are doing a metric building - ifcopenshell.api.unit.assign_unit(model, units=[length, area]) + # Optionally, add mass and time units + mass = ifcopenshell.api.unit.add_si_unit(model, unit_type="MASSUNIT", prefix="KILO") + time = ifcopenshell.api.unit.add_si_unit(model, unit_type="TIMEUNIT") + + # Make these the default units for the project + ifcopenshell.api.unit.assign_unit(model, units=[length, area, mass, time]) # Alternatively, you may specify without any arguments to # automatically create millimeters, square meters, and cubic meters @@ -139,6 +144,7 @@ class Usecase: elif unit_type == "volume": dimensional_exponents = self.file.createIfcDimensionalExponents(3, 0, 0, 0, 0, 0, 0) name_prefix = "cubic" + si_unit = self.file.createIfcSIUnit( None, "{}UNIT".format(unit_type.upper()), diff --git a/src/ifcopenshell-python/ifcopenshell/api/unit/edit_derived_unit.py b/src/ifcopenshell-python/ifcopenshell/api/unit/edit_derived_unit.py index 5bc9bbd316..6c82e5edad 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/unit/edit_derived_unit.py +++ b/src/ifcopenshell-python/ifcopenshell/api/unit/edit_derived_unit.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_derived_unit(file: ifcopenshell.file, unit: ifcopenshell.entity_instance, attributes: dict[str, Any]) -> None: """Edits the attributes of an IfcDerivedUnit diff --git a/src/ifcopenshell-python/ifcopenshell/api/unit/edit_monetary_unit.py b/src/ifcopenshell-python/ifcopenshell/api/unit/edit_monetary_unit.py index bccc61afc0..62d3d1186f 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/unit/edit_monetary_unit.py +++ b/src/ifcopenshell-python/ifcopenshell/api/unit/edit_monetary_unit.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_monetary_unit(file: ifcopenshell.file, unit: ifcopenshell.entity_instance, attributes: dict[str, Any]) -> None: """Edits the attributes of an IfcMonetaryUnit diff --git a/src/ifcopenshell-python/ifcopenshell/api/unit/edit_named_unit.py b/src/ifcopenshell-python/ifcopenshell/api/unit/edit_named_unit.py index 683feb7216..87e3608138 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/unit/edit_named_unit.py +++ b/src/ifcopenshell-python/ifcopenshell/api/unit/edit_named_unit.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Any +import ifcopenshell + def edit_named_unit(file: ifcopenshell.file, unit: ifcopenshell.entity_instance, attributes: dict[str, Any]) -> None: """Edits the attributes of an IfcNamedUnit diff --git a/src/ifcopenshell-python/ifcopenshell/api/unit/remove_unit.py b/src/ifcopenshell-python/ifcopenshell/api/unit/remove_unit.py index a9920e0e5c..36ab2f73a2 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/unit/remove_unit.py +++ b/src/ifcopenshell-python/ifcopenshell/api/unit/remove_unit.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.util.unit import ifcopenshell.util.element +import ifcopenshell.util.unit def remove_unit(file: ifcopenshell.file, unit: ifcopenshell.entity_instance) -> None: diff --git a/src/ifcopenshell-python/ifcopenshell/api/unit/unassign_unit.py b/src/ifcopenshell-python/ifcopenshell/api/unit/unassign_unit.py index 443d9d0b1c..db968a960d 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/unit/unassign_unit.py +++ b/src/ifcopenshell-python/ifcopenshell/api/unit/unassign_unit.py @@ -15,9 +15,10 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell from typing import Optional +import ifcopenshell + def unassign_unit(file: ifcopenshell.file, units: Optional[list[ifcopenshell.entity_instance]] = None) -> None: """Unassigns units as default units for the project diff --git a/src/ifcopenshell-python/ifcopenshell/draw.py b/src/ifcopenshell-python/ifcopenshell/draw.py index e2e38d700b..5f6d761ceb 100644 --- a/src/ifcopenshell-python/ifcopenshell/draw.py +++ b/src/ifcopenshell-python/ifcopenshell/draw.py @@ -18,12 +18,17 @@ """2D drawing generation and serialisation""" -from functools import reduce import itertools -import math import json +import math import operator import warnings +from collections.abc import Callable, Sequence +from dataclasses import dataclass, field, fields +from functools import reduce +from xml.dom.minidom import parseString + +import numpy import shapely import ifcopenshell @@ -31,12 +36,6 @@ import ifcopenshell.geom import ifcopenshell.util.element import ifcopenshell.util.selector -from xml.dom.minidom import parseString -from dataclasses import dataclass, fields, field -from collections.abc import Callable, Sequence - -import numpy - W = ifcopenshell.ifcopenshell_wrapper WHITE = numpy.array((1.0, 1.0, 1.0)) @@ -670,9 +669,8 @@ def main( if __name__ == "__main__": - import sys - import time import argparse + import time times = [] diff --git a/src/ifcopenshell-python/ifcopenshell/entity_instance.py b/src/ifcopenshell-python/ifcopenshell/entity_instance.py index 5509167179..1dea67b793 100644 --- a/src/ifcopenshell-python/ifcopenshell/entity_instance.py +++ b/src/ifcopenshell-python/ifcopenshell/entity_instance.py @@ -18,19 +18,19 @@ from __future__ import annotations + import functools import importlib -import numbers import itertools +import numbers import operator import subprocess import sys import time -from typing import Union, Any, TypeVar, overload, TYPE_CHECKING, cast, NoReturn from collections.abc import Callable, Sequence +from typing import TYPE_CHECKING, Any, NoReturn, TypeVar, Union, cast, overload -from . import ifcopenshell_wrapper -from . import settings +from . import ifcopenshell_wrapper, settings if TYPE_CHECKING: import ifcopenshell @@ -466,8 +466,7 @@ class entity_instance: def is_entity(self) -> bool: """Tests whether the instance is an entity type as opposed to a simple data type. - Returns: - bool: True if the instance is an entity + :return: True if the instance is an entity """ schema_name = self.wrapped_data.is_a(True).split(".")[0] decl = ifcopenshell_wrapper.schema_by_name(schema_name).declaration_by_name(self.is_a()) @@ -499,13 +498,11 @@ class entity_instance: return op(a, b) TypeError: '<' not supported between instances of 'int' and 'str' - Args: - other (_type_): Right hand side (or lhs when reverse = True) - op (_type_): The comparison operator (likely from the operator module) - reverse (bool, optional): When true swaps lhs and rhs. Defaults to False. + :param other: Right hand side (or lhs when reverse = True) + :param op: The comparison operator (likely from the operator module) + :param reverse: When true swaps lhs and rhs. Defaults to False. - Returns: - bool: The comparison predicate applied to self and other + :return: bool: The comparison predicate applied to self and other """ if isinstance(other, entity_instance): diff --git a/src/ifcopenshell-python/ifcopenshell/express/rule_compiler.py b/src/ifcopenshell-python/ifcopenshell/express/rule_compiler.py index ab6caf93f8..41fc6764c1 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rule_compiler.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rule_compiler.py @@ -738,7 +738,7 @@ class AttributeGetattrTransformer(ast.NodeTransformer): while n := getattr(n, "parent", 0): parents.append(n) - custom_funcs = "is_entity", "usedin", "express_len", "express_getitem", "typeof" + custom_funcs = "is_entity", "usedin", "express_len", "express_getitem", "typeof", "express_getattr" function_defs = [p.name for p in parents if isinstance(p, ast.FunctionDef)] if any(fn in function_defs for fn in custom_funcs): return node @@ -750,12 +750,20 @@ class AttributeGetattrTransformer(ast.NodeTransformer): if node.attr == "create_entity": return node + if node.attr.startswith("__"): + return node + + # Don't rewrite at module scope (top-level, no indent) + enclosing_stmt = next((p for p in parents if isinstance(p, ast.stmt)), None) + if enclosing_stmt is not None and isinstance(getattr(enclosing_stmt, "parent", None), ast.Module): + return node + new_value = self.visit(node.value) # Replace the Attribute node with a call to the built-in `getattr` function return ast.copy_location( ast.Call( - func=ast.Name(id="getattr", ctx=ast.Load()), + func=ast.Name(id="express_getattr", ctx=ast.Load()), args=[ new_value, ast.Str(s=node.attr), @@ -772,7 +780,7 @@ class AttributeGetattrTransformer(ast.NodeTransformer): while n := getattr(n, "parent", 0): parents.append(n) - custom_funcs = "is_entity", "usedin", "express_len", "express_getitem", "typeof" + custom_funcs = "is_entity", "usedin", "express_len", "express_getitem", "typeof", "express_getattr" function_defs = [p.name for p in parents if isinstance(p, ast.FunctionDef)] if any(fn in function_defs for fn in custom_funcs): return node @@ -842,18 +850,21 @@ if __name__ == "__main__": print( """ +def is_indeterminate(v): + return v is None or type(v).__name__ == 'indeterminate_type' + def exists(v): if callable(v): try: return v() is not None except IndexError as e: return False - else: return v is not None + else: return not is_indeterminate(v) """, "\n", file=output, sep="\n", ) print( - "def nvl(v, default): return v if v is not None else default", + "def nvl(v, default): return v if not is_indeterminate(v) else default", "\n", file=output, sep="\n", @@ -871,14 +882,14 @@ def is_entity(inst): def express_len(v): if isinstance(v, ifcopenshell.entity_instance) and not is_entity(v): v = v[0] - elif v is None or v is INDETERMINATE: + elif is_indeterminate(v): return INDETERMINATE return len(v) old_range = range def range(*args): - if INDETERMINATE in args: + if any(map(is_indeterminate, args)): return yield from old_range(*args) @@ -937,6 +948,14 @@ def express_getitem(aggr, idx, default): except IndexError as e: return None +def express_getattr(aggr, name, default): + v = getattr(aggr, name, default) + if v is None: + return default + else: + return v + + EXPRESS_ONE_BASED_INDEXING = 1 diff --git a/src/ifcopenshell-python/ifcopenshell/express/rule_executor.py b/src/ifcopenshell-python/ifcopenshell/express/rule_executor.py index 0bf8ac439c..9201e480be 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rule_executor.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rule_executor.py @@ -9,7 +9,7 @@ from codegen import indent def reverse_compile(s): - return re.sub( + return re.sub(r'\bself\b', 'SELF', re.sub( r"\s*\-\s*EXPRESS_ONE_BASED_INDEXING", "", re.sub( @@ -22,11 +22,11 @@ def reverse_compile(s): .replace("len(", "SIZEOF(") .replace("assert ", "") .replace(" is not False", "") - .replace("getattr(", "") + .replace("express_getattr(", "") .replace("express_getitem(", ""), )[::-1], )[::-1], - ) + )) @dataclass diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC2X3.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC2X3.py index 345620bdae..33f8b79c6f 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC2X3.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC2X3.py @@ -1,5 +1,8 @@ import ifcopenshell +def is_indeterminate(v): + return v is None or type(v).__name__ == 'indeterminate_type' + def exists(v): if callable(v): try: @@ -7,10 +10,10 @@ def exists(v): except IndexError as e: return False else: - return v is not None + return not is_indeterminate(v) def nvl(v, default): - return v if v is not None else default + return v if not is_indeterminate(v) else default def is_entity(inst): if isinstance(inst, ifcopenshell.entity_instance): @@ -22,13 +25,13 @@ def is_entity(inst): def express_len(v): if isinstance(v, ifcopenshell.entity_instance) and (not is_entity(v)): v = v[0] - elif v is None or v is INDETERMINATE: + elif is_indeterminate(v): return INDETERMINATE return len(v) old_range = range def range(*args): - if INDETERMINATE in args: + if any(map(is_indeterminate, args)): return yield from old_range(*args) sizeof = express_len @@ -80,6 +83,13 @@ def express_getitem(aggr, idx, default): return aggr[idx] except IndexError as e: return None + +def express_getattr(aggr, name, default): + v = getattr(aggr, name, default) + if v is None: + return default + else: + return v EXPRESS_ONE_BASED_INDEXING = 1 def typeof(inst): @@ -140,1481 +150,1481 @@ INDETERMINATE = indeterminate_type() class enum_namespace: def __getattr__(self, k): - return getattr(k, 'upper', INDETERMINATE)() + return express_getattr(k, 'upper', INDETERMINATE)() IfcActionSourceTypeEnum = enum_namespace() -dead_load_g = getattr(IfcActionSourceTypeEnum, 'DEAD_LOAD_G', INDETERMINATE) -completion_g1 = getattr(IfcActionSourceTypeEnum, 'COMPLETION_G1', INDETERMINATE) -live_load_q = getattr(IfcActionSourceTypeEnum, 'LIVE_LOAD_Q', INDETERMINATE) -snow_s = getattr(IfcActionSourceTypeEnum, 'SNOW_S', INDETERMINATE) -wind_w = getattr(IfcActionSourceTypeEnum, 'WIND_W', INDETERMINATE) -prestressing_p = getattr(IfcActionSourceTypeEnum, 'PRESTRESSING_P', INDETERMINATE) -settlement_u = getattr(IfcActionSourceTypeEnum, 'SETTLEMENT_U', INDETERMINATE) -temperature_t = getattr(IfcActionSourceTypeEnum, 'TEMPERATURE_T', INDETERMINATE) -earthquake_e = getattr(IfcActionSourceTypeEnum, 'EARTHQUAKE_E', INDETERMINATE) -fire = getattr(IfcActionSourceTypeEnum, 'FIRE', INDETERMINATE) -impulse = getattr(IfcActionSourceTypeEnum, 'IMPULSE', INDETERMINATE) -impact = getattr(IfcActionSourceTypeEnum, 'IMPACT', INDETERMINATE) -transport = getattr(IfcActionSourceTypeEnum, 'TRANSPORT', INDETERMINATE) -erection = getattr(IfcActionSourceTypeEnum, 'ERECTION', INDETERMINATE) -propping = getattr(IfcActionSourceTypeEnum, 'PROPPING', INDETERMINATE) -system_imperfection = getattr(IfcActionSourceTypeEnum, 'SYSTEM_IMPERFECTION', INDETERMINATE) -shrinkage = getattr(IfcActionSourceTypeEnum, 'SHRINKAGE', INDETERMINATE) -creep = getattr(IfcActionSourceTypeEnum, 'CREEP', INDETERMINATE) -lack_of_fit = getattr(IfcActionSourceTypeEnum, 'LACK_OF_FIT', INDETERMINATE) -buoyancy = getattr(IfcActionSourceTypeEnum, 'BUOYANCY', INDETERMINATE) -ice = getattr(IfcActionSourceTypeEnum, 'ICE', INDETERMINATE) -current = getattr(IfcActionSourceTypeEnum, 'CURRENT', INDETERMINATE) -wave = getattr(IfcActionSourceTypeEnum, 'WAVE', INDETERMINATE) -rain = getattr(IfcActionSourceTypeEnum, 'RAIN', INDETERMINATE) -brakes = getattr(IfcActionSourceTypeEnum, 'BRAKES', INDETERMINATE) -userdefined = getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionSourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dead_load_g = IfcActionSourceTypeEnum.DEAD_LOAD_G +completion_g1 = IfcActionSourceTypeEnum.COMPLETION_G1 +live_load_q = IfcActionSourceTypeEnum.LIVE_LOAD_Q +snow_s = IfcActionSourceTypeEnum.SNOW_S +wind_w = IfcActionSourceTypeEnum.WIND_W +prestressing_p = IfcActionSourceTypeEnum.PRESTRESSING_P +settlement_u = IfcActionSourceTypeEnum.SETTLEMENT_U +temperature_t = IfcActionSourceTypeEnum.TEMPERATURE_T +earthquake_e = IfcActionSourceTypeEnum.EARTHQUAKE_E +fire = IfcActionSourceTypeEnum.FIRE +impulse = IfcActionSourceTypeEnum.IMPULSE +impact = IfcActionSourceTypeEnum.IMPACT +transport = IfcActionSourceTypeEnum.TRANSPORT +erection = IfcActionSourceTypeEnum.ERECTION +propping = IfcActionSourceTypeEnum.PROPPING +system_imperfection = IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION +shrinkage = IfcActionSourceTypeEnum.SHRINKAGE +creep = IfcActionSourceTypeEnum.CREEP +lack_of_fit = IfcActionSourceTypeEnum.LACK_OF_FIT +buoyancy = IfcActionSourceTypeEnum.BUOYANCY +ice = IfcActionSourceTypeEnum.ICE +current = IfcActionSourceTypeEnum.CURRENT +wave = IfcActionSourceTypeEnum.WAVE +rain = IfcActionSourceTypeEnum.RAIN +brakes = IfcActionSourceTypeEnum.BRAKES +userdefined = IfcActionSourceTypeEnum.USERDEFINED +notdefined = IfcActionSourceTypeEnum.NOTDEFINED IfcActionTypeEnum = enum_namespace() -permanent_g = getattr(IfcActionTypeEnum, 'PERMANENT_G', INDETERMINATE) -variable_q = getattr(IfcActionTypeEnum, 'VARIABLE_Q', INDETERMINATE) -extraordinary_a = getattr(IfcActionTypeEnum, 'EXTRAORDINARY_A', INDETERMINATE) -userdefined = getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionTypeEnum, 'NOTDEFINED', INDETERMINATE) +permanent_g = IfcActionTypeEnum.PERMANENT_G +variable_q = IfcActionTypeEnum.VARIABLE_Q +extraordinary_a = IfcActionTypeEnum.EXTRAORDINARY_A +userdefined = IfcActionTypeEnum.USERDEFINED +notdefined = IfcActionTypeEnum.NOTDEFINED IfcActuatorTypeEnum = enum_namespace() -electricactuator = getattr(IfcActuatorTypeEnum, 'ELECTRICACTUATOR', INDETERMINATE) -handoperatedactuator = getattr(IfcActuatorTypeEnum, 'HANDOPERATEDACTUATOR', INDETERMINATE) -hydraulicactuator = getattr(IfcActuatorTypeEnum, 'HYDRAULICACTUATOR', INDETERMINATE) -pneumaticactuator = getattr(IfcActuatorTypeEnum, 'PNEUMATICACTUATOR', INDETERMINATE) -thermostaticactuator = getattr(IfcActuatorTypeEnum, 'THERMOSTATICACTUATOR', INDETERMINATE) -userdefined = getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActuatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +electricactuator = IfcActuatorTypeEnum.ELECTRICACTUATOR +handoperatedactuator = IfcActuatorTypeEnum.HANDOPERATEDACTUATOR +hydraulicactuator = IfcActuatorTypeEnum.HYDRAULICACTUATOR +pneumaticactuator = IfcActuatorTypeEnum.PNEUMATICACTUATOR +thermostaticactuator = IfcActuatorTypeEnum.THERMOSTATICACTUATOR +userdefined = IfcActuatorTypeEnum.USERDEFINED +notdefined = IfcActuatorTypeEnum.NOTDEFINED IfcAddressTypeEnum = enum_namespace() -office = getattr(IfcAddressTypeEnum, 'OFFICE', INDETERMINATE) -site = getattr(IfcAddressTypeEnum, 'SITE', INDETERMINATE) -home = getattr(IfcAddressTypeEnum, 'HOME', INDETERMINATE) -distributionpoint = getattr(IfcAddressTypeEnum, 'DISTRIBUTIONPOINT', INDETERMINATE) -userdefined = getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) +office = IfcAddressTypeEnum.OFFICE +site = IfcAddressTypeEnum.SITE +home = IfcAddressTypeEnum.HOME +distributionpoint = IfcAddressTypeEnum.DISTRIBUTIONPOINT +userdefined = IfcAddressTypeEnum.USERDEFINED IfcAheadOrBehind = enum_namespace() -ahead = getattr(IfcAheadOrBehind, 'AHEAD', INDETERMINATE) -behind = getattr(IfcAheadOrBehind, 'BEHIND', INDETERMINATE) +ahead = IfcAheadOrBehind.AHEAD +behind = IfcAheadOrBehind.BEHIND IfcAirTerminalBoxTypeEnum = enum_namespace() -constantflow = getattr(IfcAirTerminalBoxTypeEnum, 'CONSTANTFLOW', INDETERMINATE) -variableflowpressuredependant = getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREDEPENDANT', INDETERMINATE) -variableflowpressureindependant = getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREINDEPENDANT', INDETERMINATE) -userdefined = getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirTerminalBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +constantflow = IfcAirTerminalBoxTypeEnum.CONSTANTFLOW +variableflowpressuredependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT +variableflowpressureindependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT +userdefined = IfcAirTerminalBoxTypeEnum.USERDEFINED +notdefined = IfcAirTerminalBoxTypeEnum.NOTDEFINED IfcAirTerminalTypeEnum = enum_namespace() -grille = getattr(IfcAirTerminalTypeEnum, 'GRILLE', INDETERMINATE) -register = getattr(IfcAirTerminalTypeEnum, 'REGISTER', INDETERMINATE) -diffuser = getattr(IfcAirTerminalTypeEnum, 'DIFFUSER', INDETERMINATE) -eyeball = getattr(IfcAirTerminalTypeEnum, 'EYEBALL', INDETERMINATE) -iris = getattr(IfcAirTerminalTypeEnum, 'IRIS', INDETERMINATE) -lineargrille = getattr(IfcAirTerminalTypeEnum, 'LINEARGRILLE', INDETERMINATE) -lineardiffuser = getattr(IfcAirTerminalTypeEnum, 'LINEARDIFFUSER', INDETERMINATE) -userdefined = getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +grille = IfcAirTerminalTypeEnum.GRILLE +register = IfcAirTerminalTypeEnum.REGISTER +diffuser = IfcAirTerminalTypeEnum.DIFFUSER +eyeball = IfcAirTerminalTypeEnum.EYEBALL +iris = IfcAirTerminalTypeEnum.IRIS +lineargrille = IfcAirTerminalTypeEnum.LINEARGRILLE +lineardiffuser = IfcAirTerminalTypeEnum.LINEARDIFFUSER +userdefined = IfcAirTerminalTypeEnum.USERDEFINED +notdefined = IfcAirTerminalTypeEnum.NOTDEFINED IfcAirToAirHeatRecoveryTypeEnum = enum_namespace() -fixedplatecounterflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECOUNTERFLOWEXCHANGER', INDETERMINATE) -fixedplatecrossflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECROSSFLOWEXCHANGER', INDETERMINATE) -fixedplateparallelflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATEPARALLELFLOWEXCHANGER', INDETERMINATE) -rotarywheel = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'ROTARYWHEEL', INDETERMINATE) -runaroundcoilloop = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'RUNAROUNDCOILLOOP', INDETERMINATE) -heatpipe = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'HEATPIPE', INDETERMINATE) -twintowerenthalpyrecoveryloops = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'TWINTOWERENTHALPYRECOVERYLOOPS', INDETERMINATE) -thermosiphonsealedtubeheatexchangers = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONSEALEDTUBEHEATEXCHANGERS', INDETERMINATE) -thermosiphoncoiltypeheatexchangers = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONCOILTYPEHEATEXCHANGERS', INDETERMINATE) -userdefined = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'NOTDEFINED', INDETERMINATE) +fixedplatecounterflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER +fixedplatecrossflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER +fixedplateparallelflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER +rotarywheel = IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL +runaroundcoilloop = IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP +heatpipe = IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE +twintowerenthalpyrecoveryloops = IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS +thermosiphonsealedtubeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS +thermosiphoncoiltypeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS +userdefined = IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED +notdefined = IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED IfcAlarmTypeEnum = enum_namespace() -bell = getattr(IfcAlarmTypeEnum, 'BELL', INDETERMINATE) -breakglassbutton = getattr(IfcAlarmTypeEnum, 'BREAKGLASSBUTTON', INDETERMINATE) -light = getattr(IfcAlarmTypeEnum, 'LIGHT', INDETERMINATE) -manualpullbox = getattr(IfcAlarmTypeEnum, 'MANUALPULLBOX', INDETERMINATE) -siren = getattr(IfcAlarmTypeEnum, 'SIREN', INDETERMINATE) -whistle = getattr(IfcAlarmTypeEnum, 'WHISTLE', INDETERMINATE) -userdefined = getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAlarmTypeEnum, 'NOTDEFINED', INDETERMINATE) +bell = IfcAlarmTypeEnum.BELL +breakglassbutton = IfcAlarmTypeEnum.BREAKGLASSBUTTON +light = IfcAlarmTypeEnum.LIGHT +manualpullbox = IfcAlarmTypeEnum.MANUALPULLBOX +siren = IfcAlarmTypeEnum.SIREN +whistle = IfcAlarmTypeEnum.WHISTLE +userdefined = IfcAlarmTypeEnum.USERDEFINED +notdefined = IfcAlarmTypeEnum.NOTDEFINED IfcAnalysisModelTypeEnum = enum_namespace() -in_plane_loading_2d = getattr(IfcAnalysisModelTypeEnum, 'IN_PLANE_LOADING_2D', INDETERMINATE) -out_plane_loading_2d = getattr(IfcAnalysisModelTypeEnum, 'OUT_PLANE_LOADING_2D', INDETERMINATE) -loading_3d = getattr(IfcAnalysisModelTypeEnum, 'LOADING_3D', INDETERMINATE) -userdefined = getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnalysisModelTypeEnum, 'NOTDEFINED', INDETERMINATE) +in_plane_loading_2d = IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D +out_plane_loading_2d = IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D +loading_3d = IfcAnalysisModelTypeEnum.LOADING_3D +userdefined = IfcAnalysisModelTypeEnum.USERDEFINED +notdefined = IfcAnalysisModelTypeEnum.NOTDEFINED IfcAnalysisTheoryTypeEnum = enum_namespace() -first_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'FIRST_ORDER_THEORY', INDETERMINATE) -second_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'SECOND_ORDER_THEORY', INDETERMINATE) -third_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'THIRD_ORDER_THEORY', INDETERMINATE) -full_nonlinear_theory = getattr(IfcAnalysisTheoryTypeEnum, 'FULL_NONLINEAR_THEORY', INDETERMINATE) -userdefined = getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnalysisTheoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +first_order_theory = IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY +second_order_theory = IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY +third_order_theory = IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY +full_nonlinear_theory = IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY +userdefined = IfcAnalysisTheoryTypeEnum.USERDEFINED +notdefined = IfcAnalysisTheoryTypeEnum.NOTDEFINED IfcArithmeticOperatorEnum = enum_namespace() -add = getattr(IfcArithmeticOperatorEnum, 'ADD', INDETERMINATE) -divide = getattr(IfcArithmeticOperatorEnum, 'DIVIDE', INDETERMINATE) -multiply = getattr(IfcArithmeticOperatorEnum, 'MULTIPLY', INDETERMINATE) -subtract = getattr(IfcArithmeticOperatorEnum, 'SUBTRACT', INDETERMINATE) +add = IfcArithmeticOperatorEnum.ADD +divide = IfcArithmeticOperatorEnum.DIVIDE +multiply = IfcArithmeticOperatorEnum.MULTIPLY +subtract = IfcArithmeticOperatorEnum.SUBTRACT IfcAssemblyPlaceEnum = enum_namespace() -site = getattr(IfcAssemblyPlaceEnum, 'SITE', INDETERMINATE) -factory = getattr(IfcAssemblyPlaceEnum, 'FACTORY', INDETERMINATE) -notdefined = getattr(IfcAssemblyPlaceEnum, 'NOTDEFINED', INDETERMINATE) +site = IfcAssemblyPlaceEnum.SITE +factory = IfcAssemblyPlaceEnum.FACTORY +notdefined = IfcAssemblyPlaceEnum.NOTDEFINED IfcBSplineCurveForm = enum_namespace() -polyline_form = getattr(IfcBSplineCurveForm, 'POLYLINE_FORM', INDETERMINATE) -circular_arc = getattr(IfcBSplineCurveForm, 'CIRCULAR_ARC', INDETERMINATE) -elliptic_arc = getattr(IfcBSplineCurveForm, 'ELLIPTIC_ARC', INDETERMINATE) -parabolic_arc = getattr(IfcBSplineCurveForm, 'PARABOLIC_ARC', INDETERMINATE) -hyperbolic_arc = getattr(IfcBSplineCurveForm, 'HYPERBOLIC_ARC', INDETERMINATE) -unspecified = getattr(IfcBSplineCurveForm, 'UNSPECIFIED', INDETERMINATE) +polyline_form = IfcBSplineCurveForm.POLYLINE_FORM +circular_arc = IfcBSplineCurveForm.CIRCULAR_ARC +elliptic_arc = IfcBSplineCurveForm.ELLIPTIC_ARC +parabolic_arc = IfcBSplineCurveForm.PARABOLIC_ARC +hyperbolic_arc = IfcBSplineCurveForm.HYPERBOLIC_ARC +unspecified = IfcBSplineCurveForm.UNSPECIFIED IfcBeamTypeEnum = enum_namespace() -beam = getattr(IfcBeamTypeEnum, 'BEAM', INDETERMINATE) -joist = getattr(IfcBeamTypeEnum, 'JOIST', INDETERMINATE) -lintel = getattr(IfcBeamTypeEnum, 'LINTEL', INDETERMINATE) -t_beam = getattr(IfcBeamTypeEnum, 'T_BEAM', INDETERMINATE) -userdefined = getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +beam = IfcBeamTypeEnum.BEAM +joist = IfcBeamTypeEnum.JOIST +lintel = IfcBeamTypeEnum.LINTEL +t_beam = IfcBeamTypeEnum.T_BEAM +userdefined = IfcBeamTypeEnum.USERDEFINED +notdefined = IfcBeamTypeEnum.NOTDEFINED IfcBenchmarkEnum = enum_namespace() -greaterthan = getattr(IfcBenchmarkEnum, 'GREATERTHAN', INDETERMINATE) -greaterthanorequalto = getattr(IfcBenchmarkEnum, 'GREATERTHANOREQUALTO', INDETERMINATE) -lessthan = getattr(IfcBenchmarkEnum, 'LESSTHAN', INDETERMINATE) -lessthanorequalto = getattr(IfcBenchmarkEnum, 'LESSTHANOREQUALTO', INDETERMINATE) -equalto = getattr(IfcBenchmarkEnum, 'EQUALTO', INDETERMINATE) -notequalto = getattr(IfcBenchmarkEnum, 'NOTEQUALTO', INDETERMINATE) +greaterthan = IfcBenchmarkEnum.GREATERTHAN +greaterthanorequalto = IfcBenchmarkEnum.GREATERTHANOREQUALTO +lessthan = IfcBenchmarkEnum.LESSTHAN +lessthanorequalto = IfcBenchmarkEnum.LESSTHANOREQUALTO +equalto = IfcBenchmarkEnum.EQUALTO +notequalto = IfcBenchmarkEnum.NOTEQUALTO IfcBoilerTypeEnum = enum_namespace() -water = getattr(IfcBoilerTypeEnum, 'WATER', INDETERMINATE) -steam = getattr(IfcBoilerTypeEnum, 'STEAM', INDETERMINATE) -userdefined = getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBoilerTypeEnum, 'NOTDEFINED', INDETERMINATE) +water = IfcBoilerTypeEnum.WATER +steam = IfcBoilerTypeEnum.STEAM +userdefined = IfcBoilerTypeEnum.USERDEFINED +notdefined = IfcBoilerTypeEnum.NOTDEFINED IfcBooleanOperator = enum_namespace() -union = getattr(IfcBooleanOperator, 'UNION', INDETERMINATE) -intersection = getattr(IfcBooleanOperator, 'INTERSECTION', INDETERMINATE) -difference = getattr(IfcBooleanOperator, 'DIFFERENCE', INDETERMINATE) +union = IfcBooleanOperator.UNION +intersection = IfcBooleanOperator.INTERSECTION +difference = IfcBooleanOperator.DIFFERENCE IfcBuildingElementProxyTypeEnum = enum_namespace() -userdefined = getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingElementProxyTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcBuildingElementProxyTypeEnum.USERDEFINED +notdefined = IfcBuildingElementProxyTypeEnum.NOTDEFINED IfcCableCarrierFittingTypeEnum = enum_namespace() -bend = getattr(IfcCableCarrierFittingTypeEnum, 'BEND', INDETERMINATE) -cross = getattr(IfcCableCarrierFittingTypeEnum, 'CROSS', INDETERMINATE) -reducer = getattr(IfcCableCarrierFittingTypeEnum, 'REDUCER', INDETERMINATE) -tee = getattr(IfcCableCarrierFittingTypeEnum, 'TEE', INDETERMINATE) -userdefined = getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableCarrierFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcCableCarrierFittingTypeEnum.BEND +cross = IfcCableCarrierFittingTypeEnum.CROSS +reducer = IfcCableCarrierFittingTypeEnum.REDUCER +tee = IfcCableCarrierFittingTypeEnum.TEE +userdefined = IfcCableCarrierFittingTypeEnum.USERDEFINED +notdefined = IfcCableCarrierFittingTypeEnum.NOTDEFINED IfcCableCarrierSegmentTypeEnum = enum_namespace() -cableladdersegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLELADDERSEGMENT', INDETERMINATE) -cabletraysegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRAYSEGMENT', INDETERMINATE) -cabletrunkingsegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRUNKINGSEGMENT', INDETERMINATE) -conduitsegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CONDUITSEGMENT', INDETERMINATE) -userdefined = getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableCarrierSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +cableladdersegment = IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT +cabletraysegment = IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT +cabletrunkingsegment = IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT +conduitsegment = IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT +userdefined = IfcCableCarrierSegmentTypeEnum.USERDEFINED +notdefined = IfcCableCarrierSegmentTypeEnum.NOTDEFINED IfcCableSegmentTypeEnum = enum_namespace() -cablesegment = getattr(IfcCableSegmentTypeEnum, 'CABLESEGMENT', INDETERMINATE) -conductorsegment = getattr(IfcCableSegmentTypeEnum, 'CONDUCTORSEGMENT', INDETERMINATE) -userdefined = getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +cablesegment = IfcCableSegmentTypeEnum.CABLESEGMENT +conductorsegment = IfcCableSegmentTypeEnum.CONDUCTORSEGMENT +userdefined = IfcCableSegmentTypeEnum.USERDEFINED +notdefined = IfcCableSegmentTypeEnum.NOTDEFINED IfcChangeActionEnum = enum_namespace() -nochange = getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE) -modified = getattr(IfcChangeActionEnum, 'MODIFIED', INDETERMINATE) -added = getattr(IfcChangeActionEnum, 'ADDED', INDETERMINATE) -deleted = getattr(IfcChangeActionEnum, 'DELETED', INDETERMINATE) -modifiedadded = getattr(IfcChangeActionEnum, 'MODIFIEDADDED', INDETERMINATE) -modifieddeleted = getattr(IfcChangeActionEnum, 'MODIFIEDDELETED', INDETERMINATE) +nochange = IfcChangeActionEnum.NOCHANGE +modified = IfcChangeActionEnum.MODIFIED +added = IfcChangeActionEnum.ADDED +deleted = IfcChangeActionEnum.DELETED +modifiedadded = IfcChangeActionEnum.MODIFIEDADDED +modifieddeleted = IfcChangeActionEnum.MODIFIEDDELETED IfcChillerTypeEnum = enum_namespace() -aircooled = getattr(IfcChillerTypeEnum, 'AIRCOOLED', INDETERMINATE) -watercooled = getattr(IfcChillerTypeEnum, 'WATERCOOLED', INDETERMINATE) -heatrecovery = getattr(IfcChillerTypeEnum, 'HEATRECOVERY', INDETERMINATE) -userdefined = getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcChillerTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcChillerTypeEnum.AIRCOOLED +watercooled = IfcChillerTypeEnum.WATERCOOLED +heatrecovery = IfcChillerTypeEnum.HEATRECOVERY +userdefined = IfcChillerTypeEnum.USERDEFINED +notdefined = IfcChillerTypeEnum.NOTDEFINED IfcCoilTypeEnum = enum_namespace() -dxcoolingcoil = getattr(IfcCoilTypeEnum, 'DXCOOLINGCOIL', INDETERMINATE) -watercoolingcoil = getattr(IfcCoilTypeEnum, 'WATERCOOLINGCOIL', INDETERMINATE) -steamheatingcoil = getattr(IfcCoilTypeEnum, 'STEAMHEATINGCOIL', INDETERMINATE) -waterheatingcoil = getattr(IfcCoilTypeEnum, 'WATERHEATINGCOIL', INDETERMINATE) -electricheatingcoil = getattr(IfcCoilTypeEnum, 'ELECTRICHEATINGCOIL', INDETERMINATE) -gasheatingcoil = getattr(IfcCoilTypeEnum, 'GASHEATINGCOIL', INDETERMINATE) -userdefined = getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dxcoolingcoil = IfcCoilTypeEnum.DXCOOLINGCOIL +watercoolingcoil = IfcCoilTypeEnum.WATERCOOLINGCOIL +steamheatingcoil = IfcCoilTypeEnum.STEAMHEATINGCOIL +waterheatingcoil = IfcCoilTypeEnum.WATERHEATINGCOIL +electricheatingcoil = IfcCoilTypeEnum.ELECTRICHEATINGCOIL +gasheatingcoil = IfcCoilTypeEnum.GASHEATINGCOIL +userdefined = IfcCoilTypeEnum.USERDEFINED +notdefined = IfcCoilTypeEnum.NOTDEFINED IfcColumnTypeEnum = enum_namespace() -column = getattr(IfcColumnTypeEnum, 'COLUMN', INDETERMINATE) -userdefined = getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcColumnTypeEnum, 'NOTDEFINED', INDETERMINATE) +column = IfcColumnTypeEnum.COLUMN +userdefined = IfcColumnTypeEnum.USERDEFINED +notdefined = IfcColumnTypeEnum.NOTDEFINED IfcCompressorTypeEnum = enum_namespace() -dynamic = getattr(IfcCompressorTypeEnum, 'DYNAMIC', INDETERMINATE) -reciprocating = getattr(IfcCompressorTypeEnum, 'RECIPROCATING', INDETERMINATE) -rotary = getattr(IfcCompressorTypeEnum, 'ROTARY', INDETERMINATE) -scroll = getattr(IfcCompressorTypeEnum, 'SCROLL', INDETERMINATE) -trochoidal = getattr(IfcCompressorTypeEnum, 'TROCHOIDAL', INDETERMINATE) -singlestage = getattr(IfcCompressorTypeEnum, 'SINGLESTAGE', INDETERMINATE) -booster = getattr(IfcCompressorTypeEnum, 'BOOSTER', INDETERMINATE) -opentype = getattr(IfcCompressorTypeEnum, 'OPENTYPE', INDETERMINATE) -hermetic = getattr(IfcCompressorTypeEnum, 'HERMETIC', INDETERMINATE) -semihermetic = getattr(IfcCompressorTypeEnum, 'SEMIHERMETIC', INDETERMINATE) -weldedshellhermetic = getattr(IfcCompressorTypeEnum, 'WELDEDSHELLHERMETIC', INDETERMINATE) -rollingpiston = getattr(IfcCompressorTypeEnum, 'ROLLINGPISTON', INDETERMINATE) -rotaryvane = getattr(IfcCompressorTypeEnum, 'ROTARYVANE', INDETERMINATE) -singlescrew = getattr(IfcCompressorTypeEnum, 'SINGLESCREW', INDETERMINATE) -twinscrew = getattr(IfcCompressorTypeEnum, 'TWINSCREW', INDETERMINATE) -userdefined = getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCompressorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dynamic = IfcCompressorTypeEnum.DYNAMIC +reciprocating = IfcCompressorTypeEnum.RECIPROCATING +rotary = IfcCompressorTypeEnum.ROTARY +scroll = IfcCompressorTypeEnum.SCROLL +trochoidal = IfcCompressorTypeEnum.TROCHOIDAL +singlestage = IfcCompressorTypeEnum.SINGLESTAGE +booster = IfcCompressorTypeEnum.BOOSTER +opentype = IfcCompressorTypeEnum.OPENTYPE +hermetic = IfcCompressorTypeEnum.HERMETIC +semihermetic = IfcCompressorTypeEnum.SEMIHERMETIC +weldedshellhermetic = IfcCompressorTypeEnum.WELDEDSHELLHERMETIC +rollingpiston = IfcCompressorTypeEnum.ROLLINGPISTON +rotaryvane = IfcCompressorTypeEnum.ROTARYVANE +singlescrew = IfcCompressorTypeEnum.SINGLESCREW +twinscrew = IfcCompressorTypeEnum.TWINSCREW +userdefined = IfcCompressorTypeEnum.USERDEFINED +notdefined = IfcCompressorTypeEnum.NOTDEFINED IfcCondenserTypeEnum = enum_namespace() -watercooledshelltube = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLTUBE', INDETERMINATE) -watercooledshellcoil = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLCOIL', INDETERMINATE) -watercooledtubeintube = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDTUBEINTUBE', INDETERMINATE) -watercooledbrazedplate = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDBRAZEDPLATE', INDETERMINATE) -aircooled = getattr(IfcCondenserTypeEnum, 'AIRCOOLED', INDETERMINATE) -evaporativecooled = getattr(IfcCondenserTypeEnum, 'EVAPORATIVECOOLED', INDETERMINATE) -userdefined = getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCondenserTypeEnum, 'NOTDEFINED', INDETERMINATE) +watercooledshelltube = IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE +watercooledshellcoil = IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL +watercooledtubeintube = IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE +watercooledbrazedplate = IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE +aircooled = IfcCondenserTypeEnum.AIRCOOLED +evaporativecooled = IfcCondenserTypeEnum.EVAPORATIVECOOLED +userdefined = IfcCondenserTypeEnum.USERDEFINED +notdefined = IfcCondenserTypeEnum.NOTDEFINED IfcConnectionTypeEnum = enum_namespace() -atpath = getattr(IfcConnectionTypeEnum, 'ATPATH', INDETERMINATE) -atstart = getattr(IfcConnectionTypeEnum, 'ATSTART', INDETERMINATE) -atend = getattr(IfcConnectionTypeEnum, 'ATEND', INDETERMINATE) -notdefined = getattr(IfcConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +atpath = IfcConnectionTypeEnum.ATPATH +atstart = IfcConnectionTypeEnum.ATSTART +atend = IfcConnectionTypeEnum.ATEND +notdefined = IfcConnectionTypeEnum.NOTDEFINED IfcConstraintEnum = enum_namespace() -hard = getattr(IfcConstraintEnum, 'HARD', INDETERMINATE) -soft = getattr(IfcConstraintEnum, 'SOFT', INDETERMINATE) -advisory = getattr(IfcConstraintEnum, 'ADVISORY', INDETERMINATE) -userdefined = getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstraintEnum, 'NOTDEFINED', INDETERMINATE) +hard = IfcConstraintEnum.HARD +soft = IfcConstraintEnum.SOFT +advisory = IfcConstraintEnum.ADVISORY +userdefined = IfcConstraintEnum.USERDEFINED +notdefined = IfcConstraintEnum.NOTDEFINED IfcControllerTypeEnum = enum_namespace() -floating = getattr(IfcControllerTypeEnum, 'FLOATING', INDETERMINATE) -proportional = getattr(IfcControllerTypeEnum, 'PROPORTIONAL', INDETERMINATE) -proportionalintegral = getattr(IfcControllerTypeEnum, 'PROPORTIONALINTEGRAL', INDETERMINATE) -proportionalintegralderivative = getattr(IfcControllerTypeEnum, 'PROPORTIONALINTEGRALDERIVATIVE', INDETERMINATE) -timedtwoposition = getattr(IfcControllerTypeEnum, 'TIMEDTWOPOSITION', INDETERMINATE) -twoposition = getattr(IfcControllerTypeEnum, 'TWOPOSITION', INDETERMINATE) -userdefined = getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcControllerTypeEnum, 'NOTDEFINED', INDETERMINATE) +floating = IfcControllerTypeEnum.FLOATING +proportional = IfcControllerTypeEnum.PROPORTIONAL +proportionalintegral = IfcControllerTypeEnum.PROPORTIONALINTEGRAL +proportionalintegralderivative = IfcControllerTypeEnum.PROPORTIONALINTEGRALDERIVATIVE +timedtwoposition = IfcControllerTypeEnum.TIMEDTWOPOSITION +twoposition = IfcControllerTypeEnum.TWOPOSITION +userdefined = IfcControllerTypeEnum.USERDEFINED +notdefined = IfcControllerTypeEnum.NOTDEFINED IfcCooledBeamTypeEnum = enum_namespace() -active = getattr(IfcCooledBeamTypeEnum, 'ACTIVE', INDETERMINATE) -passive = getattr(IfcCooledBeamTypeEnum, 'PASSIVE', INDETERMINATE) -userdefined = getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCooledBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +active = IfcCooledBeamTypeEnum.ACTIVE +passive = IfcCooledBeamTypeEnum.PASSIVE +userdefined = IfcCooledBeamTypeEnum.USERDEFINED +notdefined = IfcCooledBeamTypeEnum.NOTDEFINED IfcCoolingTowerTypeEnum = enum_namespace() -naturaldraft = getattr(IfcCoolingTowerTypeEnum, 'NATURALDRAFT', INDETERMINATE) -mechanicalinduceddraft = getattr(IfcCoolingTowerTypeEnum, 'MECHANICALINDUCEDDRAFT', INDETERMINATE) -mechanicalforceddraft = getattr(IfcCoolingTowerTypeEnum, 'MECHANICALFORCEDDRAFT', INDETERMINATE) -userdefined = getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoolingTowerTypeEnum, 'NOTDEFINED', INDETERMINATE) +naturaldraft = IfcCoolingTowerTypeEnum.NATURALDRAFT +mechanicalinduceddraft = IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT +mechanicalforceddraft = IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT +userdefined = IfcCoolingTowerTypeEnum.USERDEFINED +notdefined = IfcCoolingTowerTypeEnum.NOTDEFINED IfcCostScheduleTypeEnum = enum_namespace() -budget = getattr(IfcCostScheduleTypeEnum, 'BUDGET', INDETERMINATE) -costplan = getattr(IfcCostScheduleTypeEnum, 'COSTPLAN', INDETERMINATE) -estimate = getattr(IfcCostScheduleTypeEnum, 'ESTIMATE', INDETERMINATE) -tender = getattr(IfcCostScheduleTypeEnum, 'TENDER', INDETERMINATE) -pricedbillofquantities = getattr(IfcCostScheduleTypeEnum, 'PRICEDBILLOFQUANTITIES', INDETERMINATE) -unpricedbillofquantities = getattr(IfcCostScheduleTypeEnum, 'UNPRICEDBILLOFQUANTITIES', INDETERMINATE) -scheduleofrates = getattr(IfcCostScheduleTypeEnum, 'SCHEDULEOFRATES', INDETERMINATE) -userdefined = getattr(IfcCostScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCostScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +budget = IfcCostScheduleTypeEnum.BUDGET +costplan = IfcCostScheduleTypeEnum.COSTPLAN +estimate = IfcCostScheduleTypeEnum.ESTIMATE +tender = IfcCostScheduleTypeEnum.TENDER +pricedbillofquantities = IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES +unpricedbillofquantities = IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES +scheduleofrates = IfcCostScheduleTypeEnum.SCHEDULEOFRATES +userdefined = IfcCostScheduleTypeEnum.USERDEFINED +notdefined = IfcCostScheduleTypeEnum.NOTDEFINED IfcCoveringTypeEnum = enum_namespace() -ceiling = getattr(IfcCoveringTypeEnum, 'CEILING', INDETERMINATE) -flooring = getattr(IfcCoveringTypeEnum, 'FLOORING', INDETERMINATE) -cladding = getattr(IfcCoveringTypeEnum, 'CLADDING', INDETERMINATE) -roofing = getattr(IfcCoveringTypeEnum, 'ROOFING', INDETERMINATE) -insulation = getattr(IfcCoveringTypeEnum, 'INSULATION', INDETERMINATE) -membrane = getattr(IfcCoveringTypeEnum, 'MEMBRANE', INDETERMINATE) -sleeving = getattr(IfcCoveringTypeEnum, 'SLEEVING', INDETERMINATE) -wrapping = getattr(IfcCoveringTypeEnum, 'WRAPPING', INDETERMINATE) -userdefined = getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoveringTypeEnum, 'NOTDEFINED', INDETERMINATE) +ceiling = IfcCoveringTypeEnum.CEILING +flooring = IfcCoveringTypeEnum.FLOORING +cladding = IfcCoveringTypeEnum.CLADDING +roofing = IfcCoveringTypeEnum.ROOFING +insulation = IfcCoveringTypeEnum.INSULATION +membrane = IfcCoveringTypeEnum.MEMBRANE +sleeving = IfcCoveringTypeEnum.SLEEVING +wrapping = IfcCoveringTypeEnum.WRAPPING +userdefined = IfcCoveringTypeEnum.USERDEFINED +notdefined = IfcCoveringTypeEnum.NOTDEFINED IfcCurrencyEnum = enum_namespace() -aed = getattr(IfcCurrencyEnum, 'AED', INDETERMINATE) -aes = getattr(IfcCurrencyEnum, 'AES', INDETERMINATE) -ats = getattr(IfcCurrencyEnum, 'ATS', INDETERMINATE) -aud = getattr(IfcCurrencyEnum, 'AUD', INDETERMINATE) -bbd = getattr(IfcCurrencyEnum, 'BBD', INDETERMINATE) -beg = getattr(IfcCurrencyEnum, 'BEG', INDETERMINATE) -bgl = getattr(IfcCurrencyEnum, 'BGL', INDETERMINATE) -bhd = getattr(IfcCurrencyEnum, 'BHD', INDETERMINATE) -bmd = getattr(IfcCurrencyEnum, 'BMD', INDETERMINATE) -bnd = getattr(IfcCurrencyEnum, 'BND', INDETERMINATE) -brl = getattr(IfcCurrencyEnum, 'BRL', INDETERMINATE) -bsd = getattr(IfcCurrencyEnum, 'BSD', INDETERMINATE) -bwp = getattr(IfcCurrencyEnum, 'BWP', INDETERMINATE) -bzd = getattr(IfcCurrencyEnum, 'BZD', INDETERMINATE) -cad = getattr(IfcCurrencyEnum, 'CAD', INDETERMINATE) -cbd = getattr(IfcCurrencyEnum, 'CBD', INDETERMINATE) -chf = getattr(IfcCurrencyEnum, 'CHF', INDETERMINATE) -clp = getattr(IfcCurrencyEnum, 'CLP', INDETERMINATE) -cny = getattr(IfcCurrencyEnum, 'CNY', INDETERMINATE) -cys = getattr(IfcCurrencyEnum, 'CYS', INDETERMINATE) -czk = getattr(IfcCurrencyEnum, 'CZK', INDETERMINATE) -ddp = getattr(IfcCurrencyEnum, 'DDP', INDETERMINATE) -dem = getattr(IfcCurrencyEnum, 'DEM', INDETERMINATE) -dkk = getattr(IfcCurrencyEnum, 'DKK', INDETERMINATE) -egl = getattr(IfcCurrencyEnum, 'EGL', INDETERMINATE) -est = getattr(IfcCurrencyEnum, 'EST', INDETERMINATE) -eur = getattr(IfcCurrencyEnum, 'EUR', INDETERMINATE) -fak = getattr(IfcCurrencyEnum, 'FAK', INDETERMINATE) -fim = getattr(IfcCurrencyEnum, 'FIM', INDETERMINATE) -fjd = getattr(IfcCurrencyEnum, 'FJD', INDETERMINATE) -fkp = getattr(IfcCurrencyEnum, 'FKP', INDETERMINATE) -frf = getattr(IfcCurrencyEnum, 'FRF', INDETERMINATE) -gbp = getattr(IfcCurrencyEnum, 'GBP', INDETERMINATE) -gip = getattr(IfcCurrencyEnum, 'GIP', INDETERMINATE) -gmd = getattr(IfcCurrencyEnum, 'GMD', INDETERMINATE) -grx = getattr(IfcCurrencyEnum, 'GRX', INDETERMINATE) -hkd = getattr(IfcCurrencyEnum, 'HKD', INDETERMINATE) -huf = getattr(IfcCurrencyEnum, 'HUF', INDETERMINATE) -ick = getattr(IfcCurrencyEnum, 'ICK', INDETERMINATE) -idr = getattr(IfcCurrencyEnum, 'IDR', INDETERMINATE) -ils = getattr(IfcCurrencyEnum, 'ILS', INDETERMINATE) -inr = getattr(IfcCurrencyEnum, 'INR', INDETERMINATE) -irp = getattr(IfcCurrencyEnum, 'IRP', INDETERMINATE) -itl = getattr(IfcCurrencyEnum, 'ITL', INDETERMINATE) -jmd = getattr(IfcCurrencyEnum, 'JMD', INDETERMINATE) -jod = getattr(IfcCurrencyEnum, 'JOD', INDETERMINATE) -jpy = getattr(IfcCurrencyEnum, 'JPY', INDETERMINATE) -kes = getattr(IfcCurrencyEnum, 'KES', INDETERMINATE) -krw = getattr(IfcCurrencyEnum, 'KRW', INDETERMINATE) -kwd = getattr(IfcCurrencyEnum, 'KWD', INDETERMINATE) -kyd = getattr(IfcCurrencyEnum, 'KYD', INDETERMINATE) -lkr = getattr(IfcCurrencyEnum, 'LKR', INDETERMINATE) -luf = getattr(IfcCurrencyEnum, 'LUF', INDETERMINATE) -mtl = getattr(IfcCurrencyEnum, 'MTL', INDETERMINATE) -mur = getattr(IfcCurrencyEnum, 'MUR', INDETERMINATE) -mxn = getattr(IfcCurrencyEnum, 'MXN', INDETERMINATE) -myr = getattr(IfcCurrencyEnum, 'MYR', INDETERMINATE) -nlg = getattr(IfcCurrencyEnum, 'NLG', INDETERMINATE) -nzd = getattr(IfcCurrencyEnum, 'NZD', INDETERMINATE) -omr = getattr(IfcCurrencyEnum, 'OMR', INDETERMINATE) -pgk = getattr(IfcCurrencyEnum, 'PGK', INDETERMINATE) -php = getattr(IfcCurrencyEnum, 'PHP', INDETERMINATE) -pkr = getattr(IfcCurrencyEnum, 'PKR', INDETERMINATE) -pln = getattr(IfcCurrencyEnum, 'PLN', INDETERMINATE) -ptn = getattr(IfcCurrencyEnum, 'PTN', INDETERMINATE) -qar = getattr(IfcCurrencyEnum, 'QAR', INDETERMINATE) -rur = getattr(IfcCurrencyEnum, 'RUR', INDETERMINATE) -sar = getattr(IfcCurrencyEnum, 'SAR', INDETERMINATE) -scr = getattr(IfcCurrencyEnum, 'SCR', INDETERMINATE) -sek = getattr(IfcCurrencyEnum, 'SEK', INDETERMINATE) -sgd = getattr(IfcCurrencyEnum, 'SGD', INDETERMINATE) -skp = getattr(IfcCurrencyEnum, 'SKP', INDETERMINATE) -thb = getattr(IfcCurrencyEnum, 'THB', INDETERMINATE) -trl = getattr(IfcCurrencyEnum, 'TRL', INDETERMINATE) -ttd = getattr(IfcCurrencyEnum, 'TTD', INDETERMINATE) -twd = getattr(IfcCurrencyEnum, 'TWD', INDETERMINATE) -usd = getattr(IfcCurrencyEnum, 'USD', INDETERMINATE) -veb = getattr(IfcCurrencyEnum, 'VEB', INDETERMINATE) -vnd = getattr(IfcCurrencyEnum, 'VND', INDETERMINATE) -xeu = getattr(IfcCurrencyEnum, 'XEU', INDETERMINATE) -zar = getattr(IfcCurrencyEnum, 'ZAR', INDETERMINATE) -zwd = getattr(IfcCurrencyEnum, 'ZWD', INDETERMINATE) -nok = getattr(IfcCurrencyEnum, 'NOK', INDETERMINATE) +aed = IfcCurrencyEnum.AED +aes = IfcCurrencyEnum.AES +ats = IfcCurrencyEnum.ATS +aud = IfcCurrencyEnum.AUD +bbd = IfcCurrencyEnum.BBD +beg = IfcCurrencyEnum.BEG +bgl = IfcCurrencyEnum.BGL +bhd = IfcCurrencyEnum.BHD +bmd = IfcCurrencyEnum.BMD +bnd = IfcCurrencyEnum.BND +brl = IfcCurrencyEnum.BRL +bsd = IfcCurrencyEnum.BSD +bwp = IfcCurrencyEnum.BWP +bzd = IfcCurrencyEnum.BZD +cad = IfcCurrencyEnum.CAD +cbd = IfcCurrencyEnum.CBD +chf = IfcCurrencyEnum.CHF +clp = IfcCurrencyEnum.CLP +cny = IfcCurrencyEnum.CNY +cys = IfcCurrencyEnum.CYS +czk = IfcCurrencyEnum.CZK +ddp = IfcCurrencyEnum.DDP +dem = IfcCurrencyEnum.DEM +dkk = IfcCurrencyEnum.DKK +egl = IfcCurrencyEnum.EGL +est = IfcCurrencyEnum.EST +eur = IfcCurrencyEnum.EUR +fak = IfcCurrencyEnum.FAK +fim = IfcCurrencyEnum.FIM +fjd = IfcCurrencyEnum.FJD +fkp = IfcCurrencyEnum.FKP +frf = IfcCurrencyEnum.FRF +gbp = IfcCurrencyEnum.GBP +gip = IfcCurrencyEnum.GIP +gmd = IfcCurrencyEnum.GMD +grx = IfcCurrencyEnum.GRX +hkd = IfcCurrencyEnum.HKD +huf = IfcCurrencyEnum.HUF +ick = IfcCurrencyEnum.ICK +idr = IfcCurrencyEnum.IDR +ils = IfcCurrencyEnum.ILS +inr = IfcCurrencyEnum.INR +irp = IfcCurrencyEnum.IRP +itl = IfcCurrencyEnum.ITL +jmd = IfcCurrencyEnum.JMD +jod = IfcCurrencyEnum.JOD +jpy = IfcCurrencyEnum.JPY +kes = IfcCurrencyEnum.KES +krw = IfcCurrencyEnum.KRW +kwd = IfcCurrencyEnum.KWD +kyd = IfcCurrencyEnum.KYD +lkr = IfcCurrencyEnum.LKR +luf = IfcCurrencyEnum.LUF +mtl = IfcCurrencyEnum.MTL +mur = IfcCurrencyEnum.MUR +mxn = IfcCurrencyEnum.MXN +myr = IfcCurrencyEnum.MYR +nlg = IfcCurrencyEnum.NLG +nzd = IfcCurrencyEnum.NZD +omr = IfcCurrencyEnum.OMR +pgk = IfcCurrencyEnum.PGK +php = IfcCurrencyEnum.PHP +pkr = IfcCurrencyEnum.PKR +pln = IfcCurrencyEnum.PLN +ptn = IfcCurrencyEnum.PTN +qar = IfcCurrencyEnum.QAR +rur = IfcCurrencyEnum.RUR +sar = IfcCurrencyEnum.SAR +scr = IfcCurrencyEnum.SCR +sek = IfcCurrencyEnum.SEK +sgd = IfcCurrencyEnum.SGD +skp = IfcCurrencyEnum.SKP +thb = IfcCurrencyEnum.THB +trl = IfcCurrencyEnum.TRL +ttd = IfcCurrencyEnum.TTD +twd = IfcCurrencyEnum.TWD +usd = IfcCurrencyEnum.USD +veb = IfcCurrencyEnum.VEB +vnd = IfcCurrencyEnum.VND +xeu = IfcCurrencyEnum.XEU +zar = IfcCurrencyEnum.ZAR +zwd = IfcCurrencyEnum.ZWD +nok = IfcCurrencyEnum.NOK IfcCurtainWallTypeEnum = enum_namespace() -userdefined = getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCurtainWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCurtainWallTypeEnum.USERDEFINED +notdefined = IfcCurtainWallTypeEnum.NOTDEFINED IfcDamperTypeEnum = enum_namespace() -controldamper = getattr(IfcDamperTypeEnum, 'CONTROLDAMPER', INDETERMINATE) -firedamper = getattr(IfcDamperTypeEnum, 'FIREDAMPER', INDETERMINATE) -smokedamper = getattr(IfcDamperTypeEnum, 'SMOKEDAMPER', INDETERMINATE) -firesmokedamper = getattr(IfcDamperTypeEnum, 'FIRESMOKEDAMPER', INDETERMINATE) -backdraftdamper = getattr(IfcDamperTypeEnum, 'BACKDRAFTDAMPER', INDETERMINATE) -reliefdamper = getattr(IfcDamperTypeEnum, 'RELIEFDAMPER', INDETERMINATE) -blastdamper = getattr(IfcDamperTypeEnum, 'BLASTDAMPER', INDETERMINATE) -gravitydamper = getattr(IfcDamperTypeEnum, 'GRAVITYDAMPER', INDETERMINATE) -gravityreliefdamper = getattr(IfcDamperTypeEnum, 'GRAVITYRELIEFDAMPER', INDETERMINATE) -balancingdamper = getattr(IfcDamperTypeEnum, 'BALANCINGDAMPER', INDETERMINATE) -fumehoodexhaust = getattr(IfcDamperTypeEnum, 'FUMEHOODEXHAUST', INDETERMINATE) -userdefined = getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +controldamper = IfcDamperTypeEnum.CONTROLDAMPER +firedamper = IfcDamperTypeEnum.FIREDAMPER +smokedamper = IfcDamperTypeEnum.SMOKEDAMPER +firesmokedamper = IfcDamperTypeEnum.FIRESMOKEDAMPER +backdraftdamper = IfcDamperTypeEnum.BACKDRAFTDAMPER +reliefdamper = IfcDamperTypeEnum.RELIEFDAMPER +blastdamper = IfcDamperTypeEnum.BLASTDAMPER +gravitydamper = IfcDamperTypeEnum.GRAVITYDAMPER +gravityreliefdamper = IfcDamperTypeEnum.GRAVITYRELIEFDAMPER +balancingdamper = IfcDamperTypeEnum.BALANCINGDAMPER +fumehoodexhaust = IfcDamperTypeEnum.FUMEHOODEXHAUST +userdefined = IfcDamperTypeEnum.USERDEFINED +notdefined = IfcDamperTypeEnum.NOTDEFINED IfcDataOriginEnum = enum_namespace() -measured = getattr(IfcDataOriginEnum, 'MEASURED', INDETERMINATE) -predicted = getattr(IfcDataOriginEnum, 'PREDICTED', INDETERMINATE) -simulated = getattr(IfcDataOriginEnum, 'SIMULATED', INDETERMINATE) -userdefined = getattr(IfcDataOriginEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDataOriginEnum, 'NOTDEFINED', INDETERMINATE) +measured = IfcDataOriginEnum.MEASURED +predicted = IfcDataOriginEnum.PREDICTED +simulated = IfcDataOriginEnum.SIMULATED +userdefined = IfcDataOriginEnum.USERDEFINED +notdefined = IfcDataOriginEnum.NOTDEFINED IfcDerivedUnitEnum = enum_namespace() -angularvelocityunit = getattr(IfcDerivedUnitEnum, 'ANGULARVELOCITYUNIT', INDETERMINATE) -compoundplaneangleunit = getattr(IfcDerivedUnitEnum, 'COMPOUNDPLANEANGLEUNIT', INDETERMINATE) -dynamicviscosityunit = getattr(IfcDerivedUnitEnum, 'DYNAMICVISCOSITYUNIT', INDETERMINATE) -heatfluxdensityunit = getattr(IfcDerivedUnitEnum, 'HEATFLUXDENSITYUNIT', INDETERMINATE) -integercountrateunit = getattr(IfcDerivedUnitEnum, 'INTEGERCOUNTRATEUNIT', INDETERMINATE) -isothermalmoisturecapacityunit = getattr(IfcDerivedUnitEnum, 'ISOTHERMALMOISTURECAPACITYUNIT', INDETERMINATE) -kinematicviscosityunit = getattr(IfcDerivedUnitEnum, 'KINEMATICVISCOSITYUNIT', INDETERMINATE) -linearvelocityunit = getattr(IfcDerivedUnitEnum, 'LINEARVELOCITYUNIT', INDETERMINATE) -massdensityunit = getattr(IfcDerivedUnitEnum, 'MASSDENSITYUNIT', INDETERMINATE) -massflowrateunit = getattr(IfcDerivedUnitEnum, 'MASSFLOWRATEUNIT', INDETERMINATE) -moisturediffusivityunit = getattr(IfcDerivedUnitEnum, 'MOISTUREDIFFUSIVITYUNIT', INDETERMINATE) -molecularweightunit = getattr(IfcDerivedUnitEnum, 'MOLECULARWEIGHTUNIT', INDETERMINATE) -specificheatcapacityunit = getattr(IfcDerivedUnitEnum, 'SPECIFICHEATCAPACITYUNIT', INDETERMINATE) -thermaladmittanceunit = getattr(IfcDerivedUnitEnum, 'THERMALADMITTANCEUNIT', INDETERMINATE) -thermalconductanceunit = getattr(IfcDerivedUnitEnum, 'THERMALCONDUCTANCEUNIT', INDETERMINATE) -thermalresistanceunit = getattr(IfcDerivedUnitEnum, 'THERMALRESISTANCEUNIT', INDETERMINATE) -thermaltransmittanceunit = getattr(IfcDerivedUnitEnum, 'THERMALTRANSMITTANCEUNIT', INDETERMINATE) -vaporpermeabilityunit = getattr(IfcDerivedUnitEnum, 'VAPORPERMEABILITYUNIT', INDETERMINATE) -volumetricflowrateunit = getattr(IfcDerivedUnitEnum, 'VOLUMETRICFLOWRATEUNIT', INDETERMINATE) -rotationalfrequencyunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALFREQUENCYUNIT', INDETERMINATE) -torqueunit = getattr(IfcDerivedUnitEnum, 'TORQUEUNIT', INDETERMINATE) -momentofinertiaunit = getattr(IfcDerivedUnitEnum, 'MOMENTOFINERTIAUNIT', INDETERMINATE) -linearmomentunit = getattr(IfcDerivedUnitEnum, 'LINEARMOMENTUNIT', INDETERMINATE) -linearforceunit = getattr(IfcDerivedUnitEnum, 'LINEARFORCEUNIT', INDETERMINATE) -planarforceunit = getattr(IfcDerivedUnitEnum, 'PLANARFORCEUNIT', INDETERMINATE) -modulusofelasticityunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFELASTICITYUNIT', INDETERMINATE) -shearmodulusunit = getattr(IfcDerivedUnitEnum, 'SHEARMODULUSUNIT', INDETERMINATE) -linearstiffnessunit = getattr(IfcDerivedUnitEnum, 'LINEARSTIFFNESSUNIT', INDETERMINATE) -rotationalstiffnessunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALSTIFFNESSUNIT', INDETERMINATE) -modulusofsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFSUBGRADEREACTIONUNIT', INDETERMINATE) -accelerationunit = getattr(IfcDerivedUnitEnum, 'ACCELERATIONUNIT', INDETERMINATE) -curvatureunit = getattr(IfcDerivedUnitEnum, 'CURVATUREUNIT', INDETERMINATE) -heatingvalueunit = getattr(IfcDerivedUnitEnum, 'HEATINGVALUEUNIT', INDETERMINATE) -ionconcentrationunit = getattr(IfcDerivedUnitEnum, 'IONCONCENTRATIONUNIT', INDETERMINATE) -luminousintensitydistributionunit = getattr(IfcDerivedUnitEnum, 'LUMINOUSINTENSITYDISTRIBUTIONUNIT', INDETERMINATE) -massperlengthunit = getattr(IfcDerivedUnitEnum, 'MASSPERLENGTHUNIT', INDETERMINATE) -modulusoflinearsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFLINEARSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofrotationalsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFROTATIONALSUBGRADEREACTIONUNIT', INDETERMINATE) -phunit = getattr(IfcDerivedUnitEnum, 'PHUNIT', INDETERMINATE) -rotationalmassunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALMASSUNIT', INDETERMINATE) -sectionareaintegralunit = getattr(IfcDerivedUnitEnum, 'SECTIONAREAINTEGRALUNIT', INDETERMINATE) -sectionmodulusunit = getattr(IfcDerivedUnitEnum, 'SECTIONMODULUSUNIT', INDETERMINATE) -soundpowerunit = getattr(IfcDerivedUnitEnum, 'SOUNDPOWERUNIT', INDETERMINATE) -soundpressureunit = getattr(IfcDerivedUnitEnum, 'SOUNDPRESSUREUNIT', INDETERMINATE) -temperaturegradientunit = getattr(IfcDerivedUnitEnum, 'TEMPERATUREGRADIENTUNIT', INDETERMINATE) -thermalexpansioncoefficientunit = getattr(IfcDerivedUnitEnum, 'THERMALEXPANSIONCOEFFICIENTUNIT', INDETERMINATE) -warpingconstantunit = getattr(IfcDerivedUnitEnum, 'WARPINGCONSTANTUNIT', INDETERMINATE) -warpingmomentunit = getattr(IfcDerivedUnitEnum, 'WARPINGMOMENTUNIT', INDETERMINATE) -userdefined = getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) +angularvelocityunit = IfcDerivedUnitEnum.ANGULARVELOCITYUNIT +compoundplaneangleunit = IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT +dynamicviscosityunit = IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT +heatfluxdensityunit = IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT +integercountrateunit = IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT +isothermalmoisturecapacityunit = IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT +kinematicviscosityunit = IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT +linearvelocityunit = IfcDerivedUnitEnum.LINEARVELOCITYUNIT +massdensityunit = IfcDerivedUnitEnum.MASSDENSITYUNIT +massflowrateunit = IfcDerivedUnitEnum.MASSFLOWRATEUNIT +moisturediffusivityunit = IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT +molecularweightunit = IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT +specificheatcapacityunit = IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT +thermaladmittanceunit = IfcDerivedUnitEnum.THERMALADMITTANCEUNIT +thermalconductanceunit = IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT +thermalresistanceunit = IfcDerivedUnitEnum.THERMALRESISTANCEUNIT +thermaltransmittanceunit = IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT +vaporpermeabilityunit = IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT +volumetricflowrateunit = IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT +rotationalfrequencyunit = IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT +torqueunit = IfcDerivedUnitEnum.TORQUEUNIT +momentofinertiaunit = IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT +linearmomentunit = IfcDerivedUnitEnum.LINEARMOMENTUNIT +linearforceunit = IfcDerivedUnitEnum.LINEARFORCEUNIT +planarforceunit = IfcDerivedUnitEnum.PLANARFORCEUNIT +modulusofelasticityunit = IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT +shearmodulusunit = IfcDerivedUnitEnum.SHEARMODULUSUNIT +linearstiffnessunit = IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT +rotationalstiffnessunit = IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT +modulusofsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT +accelerationunit = IfcDerivedUnitEnum.ACCELERATIONUNIT +curvatureunit = IfcDerivedUnitEnum.CURVATUREUNIT +heatingvalueunit = IfcDerivedUnitEnum.HEATINGVALUEUNIT +ionconcentrationunit = IfcDerivedUnitEnum.IONCONCENTRATIONUNIT +luminousintensitydistributionunit = IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT +massperlengthunit = IfcDerivedUnitEnum.MASSPERLENGTHUNIT +modulusoflinearsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT +modulusofrotationalsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT +phunit = IfcDerivedUnitEnum.PHUNIT +rotationalmassunit = IfcDerivedUnitEnum.ROTATIONALMASSUNIT +sectionareaintegralunit = IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT +sectionmodulusunit = IfcDerivedUnitEnum.SECTIONMODULUSUNIT +soundpowerunit = IfcDerivedUnitEnum.SOUNDPOWERUNIT +soundpressureunit = IfcDerivedUnitEnum.SOUNDPRESSUREUNIT +temperaturegradientunit = IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT +thermalexpansioncoefficientunit = IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT +warpingconstantunit = IfcDerivedUnitEnum.WARPINGCONSTANTUNIT +warpingmomentunit = IfcDerivedUnitEnum.WARPINGMOMENTUNIT +userdefined = IfcDerivedUnitEnum.USERDEFINED IfcDimensionExtentUsage = enum_namespace() -origin = getattr(IfcDimensionExtentUsage, 'ORIGIN', INDETERMINATE) -target = getattr(IfcDimensionExtentUsage, 'TARGET', INDETERMINATE) +origin = IfcDimensionExtentUsage.ORIGIN +target = IfcDimensionExtentUsage.TARGET IfcDirectionSenseEnum = enum_namespace() -positive = getattr(IfcDirectionSenseEnum, 'POSITIVE', INDETERMINATE) -negative = getattr(IfcDirectionSenseEnum, 'NEGATIVE', INDETERMINATE) +positive = IfcDirectionSenseEnum.POSITIVE +negative = IfcDirectionSenseEnum.NEGATIVE IfcDistributionChamberElementTypeEnum = enum_namespace() -formedduct = getattr(IfcDistributionChamberElementTypeEnum, 'FORMEDDUCT', INDETERMINATE) -inspectionchamber = getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONCHAMBER', INDETERMINATE) -inspectionpit = getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONPIT', INDETERMINATE) -manhole = getattr(IfcDistributionChamberElementTypeEnum, 'MANHOLE', INDETERMINATE) -meterchamber = getattr(IfcDistributionChamberElementTypeEnum, 'METERCHAMBER', INDETERMINATE) -sump = getattr(IfcDistributionChamberElementTypeEnum, 'SUMP', INDETERMINATE) -trench = getattr(IfcDistributionChamberElementTypeEnum, 'TRENCH', INDETERMINATE) -valvechamber = getattr(IfcDistributionChamberElementTypeEnum, 'VALVECHAMBER', INDETERMINATE) -userdefined = getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionChamberElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +formedduct = IfcDistributionChamberElementTypeEnum.FORMEDDUCT +inspectionchamber = IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER +inspectionpit = IfcDistributionChamberElementTypeEnum.INSPECTIONPIT +manhole = IfcDistributionChamberElementTypeEnum.MANHOLE +meterchamber = IfcDistributionChamberElementTypeEnum.METERCHAMBER +sump = IfcDistributionChamberElementTypeEnum.SUMP +trench = IfcDistributionChamberElementTypeEnum.TRENCH +valvechamber = IfcDistributionChamberElementTypeEnum.VALVECHAMBER +userdefined = IfcDistributionChamberElementTypeEnum.USERDEFINED +notdefined = IfcDistributionChamberElementTypeEnum.NOTDEFINED IfcDocumentConfidentialityEnum = enum_namespace() -public = getattr(IfcDocumentConfidentialityEnum, 'PUBLIC', INDETERMINATE) -restricted = getattr(IfcDocumentConfidentialityEnum, 'RESTRICTED', INDETERMINATE) -confidential = getattr(IfcDocumentConfidentialityEnum, 'CONFIDENTIAL', INDETERMINATE) -personal = getattr(IfcDocumentConfidentialityEnum, 'PERSONAL', INDETERMINATE) -userdefined = getattr(IfcDocumentConfidentialityEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDocumentConfidentialityEnum, 'NOTDEFINED', INDETERMINATE) +public = IfcDocumentConfidentialityEnum.PUBLIC +restricted = IfcDocumentConfidentialityEnum.RESTRICTED +confidential = IfcDocumentConfidentialityEnum.CONFIDENTIAL +personal = IfcDocumentConfidentialityEnum.PERSONAL +userdefined = IfcDocumentConfidentialityEnum.USERDEFINED +notdefined = IfcDocumentConfidentialityEnum.NOTDEFINED IfcDocumentStatusEnum = enum_namespace() -draft = getattr(IfcDocumentStatusEnum, 'DRAFT', INDETERMINATE) -finaldraft = getattr(IfcDocumentStatusEnum, 'FINALDRAFT', INDETERMINATE) -final = getattr(IfcDocumentStatusEnum, 'FINAL', INDETERMINATE) -revision = getattr(IfcDocumentStatusEnum, 'REVISION', INDETERMINATE) -notdefined = getattr(IfcDocumentStatusEnum, 'NOTDEFINED', INDETERMINATE) +draft = IfcDocumentStatusEnum.DRAFT +finaldraft = IfcDocumentStatusEnum.FINALDRAFT +final = IfcDocumentStatusEnum.FINAL +revision = IfcDocumentStatusEnum.REVISION +notdefined = IfcDocumentStatusEnum.NOTDEFINED IfcDoorPanelOperationEnum = enum_namespace() -swinging = getattr(IfcDoorPanelOperationEnum, 'SWINGING', INDETERMINATE) -double_acting = getattr(IfcDoorPanelOperationEnum, 'DOUBLE_ACTING', INDETERMINATE) -sliding = getattr(IfcDoorPanelOperationEnum, 'SLIDING', INDETERMINATE) -folding = getattr(IfcDoorPanelOperationEnum, 'FOLDING', INDETERMINATE) -revolving = getattr(IfcDoorPanelOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = getattr(IfcDoorPanelOperationEnum, 'ROLLINGUP', INDETERMINATE) -userdefined = getattr(IfcDoorPanelOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +swinging = IfcDoorPanelOperationEnum.SWINGING +double_acting = IfcDoorPanelOperationEnum.DOUBLE_ACTING +sliding = IfcDoorPanelOperationEnum.SLIDING +folding = IfcDoorPanelOperationEnum.FOLDING +revolving = IfcDoorPanelOperationEnum.REVOLVING +rollingup = IfcDoorPanelOperationEnum.ROLLINGUP +userdefined = IfcDoorPanelOperationEnum.USERDEFINED +notdefined = IfcDoorPanelOperationEnum.NOTDEFINED IfcDoorPanelPositionEnum = enum_namespace() -left = getattr(IfcDoorPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = getattr(IfcDoorPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = getattr(IfcDoorPanelPositionEnum, 'RIGHT', INDETERMINATE) -notdefined = getattr(IfcDoorPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcDoorPanelPositionEnum.LEFT +middle = IfcDoorPanelPositionEnum.MIDDLE +right = IfcDoorPanelPositionEnum.RIGHT +notdefined = IfcDoorPanelPositionEnum.NOTDEFINED IfcDoorStyleConstructionEnum = enum_namespace() -aluminium = getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = getattr(IfcDoorStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = getattr(IfcDoorStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = getattr(IfcDoorStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -aluminium_plastic = getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_PLASTIC', INDETERMINATE) -plastic = getattr(IfcDoorStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -userdefined = getattr(IfcDoorStyleConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcDoorStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcDoorStyleConstructionEnum.STEEL +wood = IfcDoorStyleConstructionEnum.WOOD +aluminium_wood = IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD +aluminium_plastic = IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC +plastic = IfcDoorStyleConstructionEnum.PLASTIC +userdefined = IfcDoorStyleConstructionEnum.USERDEFINED +notdefined = IfcDoorStyleConstructionEnum.NOTDEFINED IfcDoorStyleOperationEnum = enum_namespace() -single_swing_left = getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_door_single_swing = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_door_double_swing = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_door_sliding = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -folding_to_left = getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_door_folding = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -revolving = getattr(IfcDoorStyleOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = getattr(IfcDoorStyleOperationEnum, 'ROLLINGUP', INDETERMINATE) -userdefined = getattr(IfcDoorStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT +double_door_single_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT +double_door_double_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +sliding_to_left = IfcDoorStyleOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT +double_door_sliding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING +folding_to_left = IfcDoorStyleOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT +double_door_folding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING +revolving = IfcDoorStyleOperationEnum.REVOLVING +rollingup = IfcDoorStyleOperationEnum.ROLLINGUP +userdefined = IfcDoorStyleOperationEnum.USERDEFINED +notdefined = IfcDoorStyleOperationEnum.NOTDEFINED IfcDuctFittingTypeEnum = enum_namespace() -bend = getattr(IfcDuctFittingTypeEnum, 'BEND', INDETERMINATE) -connector = getattr(IfcDuctFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcDuctFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcDuctFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcDuctFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = getattr(IfcDuctFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = getattr(IfcDuctFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcDuctFittingTypeEnum.BEND +connector = IfcDuctFittingTypeEnum.CONNECTOR +entry = IfcDuctFittingTypeEnum.ENTRY +exit = IfcDuctFittingTypeEnum.EXIT +junction = IfcDuctFittingTypeEnum.JUNCTION +obstruction = IfcDuctFittingTypeEnum.OBSTRUCTION +transition = IfcDuctFittingTypeEnum.TRANSITION +userdefined = IfcDuctFittingTypeEnum.USERDEFINED +notdefined = IfcDuctFittingTypeEnum.NOTDEFINED IfcDuctSegmentTypeEnum = enum_namespace() -rigidsegment = getattr(IfcDuctSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -flexiblesegment = getattr(IfcDuctSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -userdefined = getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigidsegment = IfcDuctSegmentTypeEnum.RIGIDSEGMENT +flexiblesegment = IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT +userdefined = IfcDuctSegmentTypeEnum.USERDEFINED +notdefined = IfcDuctSegmentTypeEnum.NOTDEFINED IfcDuctSilencerTypeEnum = enum_namespace() -flatoval = getattr(IfcDuctSilencerTypeEnum, 'FLATOVAL', INDETERMINATE) -rectangular = getattr(IfcDuctSilencerTypeEnum, 'RECTANGULAR', INDETERMINATE) -round = getattr(IfcDuctSilencerTypeEnum, 'ROUND', INDETERMINATE) -userdefined = getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctSilencerTypeEnum, 'NOTDEFINED', INDETERMINATE) +flatoval = IfcDuctSilencerTypeEnum.FLATOVAL +rectangular = IfcDuctSilencerTypeEnum.RECTANGULAR +round = IfcDuctSilencerTypeEnum.ROUND +userdefined = IfcDuctSilencerTypeEnum.USERDEFINED +notdefined = IfcDuctSilencerTypeEnum.NOTDEFINED IfcElectricApplianceTypeEnum = enum_namespace() -computer = getattr(IfcElectricApplianceTypeEnum, 'COMPUTER', INDETERMINATE) -directwaterheater = getattr(IfcElectricApplianceTypeEnum, 'DIRECTWATERHEATER', INDETERMINATE) -dishwasher = getattr(IfcElectricApplianceTypeEnum, 'DISHWASHER', INDETERMINATE) -electriccooker = getattr(IfcElectricApplianceTypeEnum, 'ELECTRICCOOKER', INDETERMINATE) -electricheater = getattr(IfcElectricApplianceTypeEnum, 'ELECTRICHEATER', INDETERMINATE) -facsimile = getattr(IfcElectricApplianceTypeEnum, 'FACSIMILE', INDETERMINATE) -freestandingfan = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGFAN', INDETERMINATE) -freezer = getattr(IfcElectricApplianceTypeEnum, 'FREEZER', INDETERMINATE) -fridge_freezer = getattr(IfcElectricApplianceTypeEnum, 'FRIDGE_FREEZER', INDETERMINATE) -handdryer = getattr(IfcElectricApplianceTypeEnum, 'HANDDRYER', INDETERMINATE) -indirectwaterheater = getattr(IfcElectricApplianceTypeEnum, 'INDIRECTWATERHEATER', INDETERMINATE) -microwave = getattr(IfcElectricApplianceTypeEnum, 'MICROWAVE', INDETERMINATE) -photocopier = getattr(IfcElectricApplianceTypeEnum, 'PHOTOCOPIER', INDETERMINATE) -printer = getattr(IfcElectricApplianceTypeEnum, 'PRINTER', INDETERMINATE) -refrigerator = getattr(IfcElectricApplianceTypeEnum, 'REFRIGERATOR', INDETERMINATE) -radiantheater = getattr(IfcElectricApplianceTypeEnum, 'RADIANTHEATER', INDETERMINATE) -scanner = getattr(IfcElectricApplianceTypeEnum, 'SCANNER', INDETERMINATE) -telephone = getattr(IfcElectricApplianceTypeEnum, 'TELEPHONE', INDETERMINATE) -tumbledryer = getattr(IfcElectricApplianceTypeEnum, 'TUMBLEDRYER', INDETERMINATE) -tv = getattr(IfcElectricApplianceTypeEnum, 'TV', INDETERMINATE) -vendingmachine = getattr(IfcElectricApplianceTypeEnum, 'VENDINGMACHINE', INDETERMINATE) -washingmachine = getattr(IfcElectricApplianceTypeEnum, 'WASHINGMACHINE', INDETERMINATE) -waterheater = getattr(IfcElectricApplianceTypeEnum, 'WATERHEATER', INDETERMINATE) -watercooler = getattr(IfcElectricApplianceTypeEnum, 'WATERCOOLER', INDETERMINATE) -userdefined = getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +computer = IfcElectricApplianceTypeEnum.COMPUTER +directwaterheater = IfcElectricApplianceTypeEnum.DIRECTWATERHEATER +dishwasher = IfcElectricApplianceTypeEnum.DISHWASHER +electriccooker = IfcElectricApplianceTypeEnum.ELECTRICCOOKER +electricheater = IfcElectricApplianceTypeEnum.ELECTRICHEATER +facsimile = IfcElectricApplianceTypeEnum.FACSIMILE +freestandingfan = IfcElectricApplianceTypeEnum.FREESTANDINGFAN +freezer = IfcElectricApplianceTypeEnum.FREEZER +fridge_freezer = IfcElectricApplianceTypeEnum.FRIDGE_FREEZER +handdryer = IfcElectricApplianceTypeEnum.HANDDRYER +indirectwaterheater = IfcElectricApplianceTypeEnum.INDIRECTWATERHEATER +microwave = IfcElectricApplianceTypeEnum.MICROWAVE +photocopier = IfcElectricApplianceTypeEnum.PHOTOCOPIER +printer = IfcElectricApplianceTypeEnum.PRINTER +refrigerator = IfcElectricApplianceTypeEnum.REFRIGERATOR +radiantheater = IfcElectricApplianceTypeEnum.RADIANTHEATER +scanner = IfcElectricApplianceTypeEnum.SCANNER +telephone = IfcElectricApplianceTypeEnum.TELEPHONE +tumbledryer = IfcElectricApplianceTypeEnum.TUMBLEDRYER +tv = IfcElectricApplianceTypeEnum.TV +vendingmachine = IfcElectricApplianceTypeEnum.VENDINGMACHINE +washingmachine = IfcElectricApplianceTypeEnum.WASHINGMACHINE +waterheater = IfcElectricApplianceTypeEnum.WATERHEATER +watercooler = IfcElectricApplianceTypeEnum.WATERCOOLER +userdefined = IfcElectricApplianceTypeEnum.USERDEFINED +notdefined = IfcElectricApplianceTypeEnum.NOTDEFINED IfcElectricCurrentEnum = enum_namespace() -alternating = getattr(IfcElectricCurrentEnum, 'ALTERNATING', INDETERMINATE) -direct = getattr(IfcElectricCurrentEnum, 'DIRECT', INDETERMINATE) -notdefined = getattr(IfcElectricCurrentEnum, 'NOTDEFINED', INDETERMINATE) +alternating = IfcElectricCurrentEnum.ALTERNATING +direct = IfcElectricCurrentEnum.DIRECT +notdefined = IfcElectricCurrentEnum.NOTDEFINED IfcElectricDistributionPointFunctionEnum = enum_namespace() -alarmpanel = getattr(IfcElectricDistributionPointFunctionEnum, 'ALARMPANEL', INDETERMINATE) -consumerunit = getattr(IfcElectricDistributionPointFunctionEnum, 'CONSUMERUNIT', INDETERMINATE) -controlpanel = getattr(IfcElectricDistributionPointFunctionEnum, 'CONTROLPANEL', INDETERMINATE) -distributionboard = getattr(IfcElectricDistributionPointFunctionEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -gasdetectorpanel = getattr(IfcElectricDistributionPointFunctionEnum, 'GASDETECTORPANEL', INDETERMINATE) -indicatorpanel = getattr(IfcElectricDistributionPointFunctionEnum, 'INDICATORPANEL', INDETERMINATE) -mimicpanel = getattr(IfcElectricDistributionPointFunctionEnum, 'MIMICPANEL', INDETERMINATE) -motorcontrolcentre = getattr(IfcElectricDistributionPointFunctionEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = getattr(IfcElectricDistributionPointFunctionEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = getattr(IfcElectricDistributionPointFunctionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricDistributionPointFunctionEnum, 'NOTDEFINED', INDETERMINATE) +alarmpanel = IfcElectricDistributionPointFunctionEnum.ALARMPANEL +consumerunit = IfcElectricDistributionPointFunctionEnum.CONSUMERUNIT +controlpanel = IfcElectricDistributionPointFunctionEnum.CONTROLPANEL +distributionboard = IfcElectricDistributionPointFunctionEnum.DISTRIBUTIONBOARD +gasdetectorpanel = IfcElectricDistributionPointFunctionEnum.GASDETECTORPANEL +indicatorpanel = IfcElectricDistributionPointFunctionEnum.INDICATORPANEL +mimicpanel = IfcElectricDistributionPointFunctionEnum.MIMICPANEL +motorcontrolcentre = IfcElectricDistributionPointFunctionEnum.MOTORCONTROLCENTRE +switchboard = IfcElectricDistributionPointFunctionEnum.SWITCHBOARD +userdefined = IfcElectricDistributionPointFunctionEnum.USERDEFINED +notdefined = IfcElectricDistributionPointFunctionEnum.NOTDEFINED IfcElectricFlowStorageDeviceTypeEnum = enum_namespace() -battery = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'BATTERY', INDETERMINATE) -capacitorbank = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITORBANK', INDETERMINATE) -harmonicfilter = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'HARMONICFILTER', INDETERMINATE) -inductorbank = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTORBANK', INDETERMINATE) -ups = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'UPS', INDETERMINATE) -userdefined = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +battery = IfcElectricFlowStorageDeviceTypeEnum.BATTERY +capacitorbank = IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK +harmonicfilter = IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER +inductorbank = IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK +ups = IfcElectricFlowStorageDeviceTypeEnum.UPS +userdefined = IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED IfcElectricGeneratorTypeEnum = enum_namespace() -userdefined = getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricGeneratorTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcElectricGeneratorTypeEnum.USERDEFINED +notdefined = IfcElectricGeneratorTypeEnum.NOTDEFINED IfcElectricHeaterTypeEnum = enum_namespace() -electricpointheater = getattr(IfcElectricHeaterTypeEnum, 'ELECTRICPOINTHEATER', INDETERMINATE) -electriccableheater = getattr(IfcElectricHeaterTypeEnum, 'ELECTRICCABLEHEATER', INDETERMINATE) -electricmatheater = getattr(IfcElectricHeaterTypeEnum, 'ELECTRICMATHEATER', INDETERMINATE) -userdefined = getattr(IfcElectricHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricHeaterTypeEnum, 'NOTDEFINED', INDETERMINATE) +electricpointheater = IfcElectricHeaterTypeEnum.ELECTRICPOINTHEATER +electriccableheater = IfcElectricHeaterTypeEnum.ELECTRICCABLEHEATER +electricmatheater = IfcElectricHeaterTypeEnum.ELECTRICMATHEATER +userdefined = IfcElectricHeaterTypeEnum.USERDEFINED +notdefined = IfcElectricHeaterTypeEnum.NOTDEFINED IfcElectricMotorTypeEnum = enum_namespace() -dc = getattr(IfcElectricMotorTypeEnum, 'DC', INDETERMINATE) -induction = getattr(IfcElectricMotorTypeEnum, 'INDUCTION', INDETERMINATE) -polyphase = getattr(IfcElectricMotorTypeEnum, 'POLYPHASE', INDETERMINATE) -reluctancesynchronous = getattr(IfcElectricMotorTypeEnum, 'RELUCTANCESYNCHRONOUS', INDETERMINATE) -synchronous = getattr(IfcElectricMotorTypeEnum, 'SYNCHRONOUS', INDETERMINATE) -userdefined = getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricMotorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dc = IfcElectricMotorTypeEnum.DC +induction = IfcElectricMotorTypeEnum.INDUCTION +polyphase = IfcElectricMotorTypeEnum.POLYPHASE +reluctancesynchronous = IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS +synchronous = IfcElectricMotorTypeEnum.SYNCHRONOUS +userdefined = IfcElectricMotorTypeEnum.USERDEFINED +notdefined = IfcElectricMotorTypeEnum.NOTDEFINED IfcElectricTimeControlTypeEnum = enum_namespace() -timeclock = getattr(IfcElectricTimeControlTypeEnum, 'TIMECLOCK', INDETERMINATE) -timedelay = getattr(IfcElectricTimeControlTypeEnum, 'TIMEDELAY', INDETERMINATE) -relay = getattr(IfcElectricTimeControlTypeEnum, 'RELAY', INDETERMINATE) -userdefined = getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricTimeControlTypeEnum, 'NOTDEFINED', INDETERMINATE) +timeclock = IfcElectricTimeControlTypeEnum.TIMECLOCK +timedelay = IfcElectricTimeControlTypeEnum.TIMEDELAY +relay = IfcElectricTimeControlTypeEnum.RELAY +userdefined = IfcElectricTimeControlTypeEnum.USERDEFINED +notdefined = IfcElectricTimeControlTypeEnum.NOTDEFINED IfcElementAssemblyTypeEnum = enum_namespace() -accessory_assembly = getattr(IfcElementAssemblyTypeEnum, 'ACCESSORY_ASSEMBLY', INDETERMINATE) -arch = getattr(IfcElementAssemblyTypeEnum, 'ARCH', INDETERMINATE) -beam_grid = getattr(IfcElementAssemblyTypeEnum, 'BEAM_GRID', INDETERMINATE) -braced_frame = getattr(IfcElementAssemblyTypeEnum, 'BRACED_FRAME', INDETERMINATE) -girder = getattr(IfcElementAssemblyTypeEnum, 'GIRDER', INDETERMINATE) -reinforcement_unit = getattr(IfcElementAssemblyTypeEnum, 'REINFORCEMENT_UNIT', INDETERMINATE) -rigid_frame = getattr(IfcElementAssemblyTypeEnum, 'RIGID_FRAME', INDETERMINATE) -slab_field = getattr(IfcElementAssemblyTypeEnum, 'SLAB_FIELD', INDETERMINATE) -truss = getattr(IfcElementAssemblyTypeEnum, 'TRUSS', INDETERMINATE) -userdefined = getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElementAssemblyTypeEnum, 'NOTDEFINED', INDETERMINATE) +accessory_assembly = IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY +arch = IfcElementAssemblyTypeEnum.ARCH +beam_grid = IfcElementAssemblyTypeEnum.BEAM_GRID +braced_frame = IfcElementAssemblyTypeEnum.BRACED_FRAME +girder = IfcElementAssemblyTypeEnum.GIRDER +reinforcement_unit = IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT +rigid_frame = IfcElementAssemblyTypeEnum.RIGID_FRAME +slab_field = IfcElementAssemblyTypeEnum.SLAB_FIELD +truss = IfcElementAssemblyTypeEnum.TRUSS +userdefined = IfcElementAssemblyTypeEnum.USERDEFINED +notdefined = IfcElementAssemblyTypeEnum.NOTDEFINED IfcElementCompositionEnum = enum_namespace() -complex = getattr(IfcElementCompositionEnum, 'COMPLEX', INDETERMINATE) -element = getattr(IfcElementCompositionEnum, 'ELEMENT', INDETERMINATE) -partial = getattr(IfcElementCompositionEnum, 'PARTIAL', INDETERMINATE) +complex = IfcElementCompositionEnum.COMPLEX +element = IfcElementCompositionEnum.ELEMENT +partial = IfcElementCompositionEnum.PARTIAL IfcEnergySequenceEnum = enum_namespace() -primary = getattr(IfcEnergySequenceEnum, 'PRIMARY', INDETERMINATE) -secondary = getattr(IfcEnergySequenceEnum, 'SECONDARY', INDETERMINATE) -tertiary = getattr(IfcEnergySequenceEnum, 'TERTIARY', INDETERMINATE) -auxiliary = getattr(IfcEnergySequenceEnum, 'AUXILIARY', INDETERMINATE) -userdefined = getattr(IfcEnergySequenceEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEnergySequenceEnum, 'NOTDEFINED', INDETERMINATE) +primary = IfcEnergySequenceEnum.PRIMARY +secondary = IfcEnergySequenceEnum.SECONDARY +tertiary = IfcEnergySequenceEnum.TERTIARY +auxiliary = IfcEnergySequenceEnum.AUXILIARY +userdefined = IfcEnergySequenceEnum.USERDEFINED +notdefined = IfcEnergySequenceEnum.NOTDEFINED IfcEnvironmentalImpactCategoryEnum = enum_namespace() -combinedvalue = getattr(IfcEnvironmentalImpactCategoryEnum, 'COMBINEDVALUE', INDETERMINATE) -disposal = getattr(IfcEnvironmentalImpactCategoryEnum, 'DISPOSAL', INDETERMINATE) -extraction = getattr(IfcEnvironmentalImpactCategoryEnum, 'EXTRACTION', INDETERMINATE) -installation = getattr(IfcEnvironmentalImpactCategoryEnum, 'INSTALLATION', INDETERMINATE) -manufacture = getattr(IfcEnvironmentalImpactCategoryEnum, 'MANUFACTURE', INDETERMINATE) -transportation = getattr(IfcEnvironmentalImpactCategoryEnum, 'TRANSPORTATION', INDETERMINATE) -userdefined = getattr(IfcEnvironmentalImpactCategoryEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEnvironmentalImpactCategoryEnum, 'NOTDEFINED', INDETERMINATE) +combinedvalue = IfcEnvironmentalImpactCategoryEnum.COMBINEDVALUE +disposal = IfcEnvironmentalImpactCategoryEnum.DISPOSAL +extraction = IfcEnvironmentalImpactCategoryEnum.EXTRACTION +installation = IfcEnvironmentalImpactCategoryEnum.INSTALLATION +manufacture = IfcEnvironmentalImpactCategoryEnum.MANUFACTURE +transportation = IfcEnvironmentalImpactCategoryEnum.TRANSPORTATION +userdefined = IfcEnvironmentalImpactCategoryEnum.USERDEFINED +notdefined = IfcEnvironmentalImpactCategoryEnum.NOTDEFINED IfcEvaporativeCoolerTypeEnum = enum_namespace() -directevaporativerandommediaaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER', INDETERMINATE) -directevaporativerigidmediaaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER', INDETERMINATE) -directevaporativeslingerspackagedaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER', INDETERMINATE) -directevaporativepackagedrotaryaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER', INDETERMINATE) -directevaporativeairwasher = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEAIRWASHER', INDETERMINATE) -indirectevaporativepackageaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEPACKAGEAIRCOOLER', INDETERMINATE) -indirectevaporativewetcoil = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEWETCOIL', INDETERMINATE) -indirectevaporativecoolingtowerorcoilcooler = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER', INDETERMINATE) -indirectdirectcombination = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTDIRECTCOMBINATION', INDETERMINATE) -userdefined = getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEvaporativeCoolerTypeEnum, 'NOTDEFINED', INDETERMINATE) +directevaporativerandommediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER +directevaporativerigidmediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER +directevaporativeslingerspackagedaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER +directevaporativepackagedrotaryaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER +directevaporativeairwasher = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER +indirectevaporativepackageaircooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER +indirectevaporativewetcoil = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL +indirectevaporativecoolingtowerorcoilcooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER +indirectdirectcombination = IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION +userdefined = IfcEvaporativeCoolerTypeEnum.USERDEFINED +notdefined = IfcEvaporativeCoolerTypeEnum.NOTDEFINED IfcEvaporatorTypeEnum = enum_namespace() -directexpansionshellandtube = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONSHELLANDTUBE', INDETERMINATE) -directexpansiontubeintube = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONTUBEINTUBE', INDETERMINATE) -directexpansionbrazedplate = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONBRAZEDPLATE', INDETERMINATE) -floodedshellandtube = getattr(IfcEvaporatorTypeEnum, 'FLOODEDSHELLANDTUBE', INDETERMINATE) -shellandcoil = getattr(IfcEvaporatorTypeEnum, 'SHELLANDCOIL', INDETERMINATE) -userdefined = getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEvaporatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +directexpansionshellandtube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE +directexpansiontubeintube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE +directexpansionbrazedplate = IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE +floodedshellandtube = IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE +shellandcoil = IfcEvaporatorTypeEnum.SHELLANDCOIL +userdefined = IfcEvaporatorTypeEnum.USERDEFINED +notdefined = IfcEvaporatorTypeEnum.NOTDEFINED IfcFanTypeEnum = enum_namespace() -centrifugalforwardcurved = getattr(IfcFanTypeEnum, 'CENTRIFUGALFORWARDCURVED', INDETERMINATE) -centrifugalradial = getattr(IfcFanTypeEnum, 'CENTRIFUGALRADIAL', INDETERMINATE) -centrifugalbackwardinclinedcurved = getattr(IfcFanTypeEnum, 'CENTRIFUGALBACKWARDINCLINEDCURVED', INDETERMINATE) -centrifugalairfoil = getattr(IfcFanTypeEnum, 'CENTRIFUGALAIRFOIL', INDETERMINATE) -tubeaxial = getattr(IfcFanTypeEnum, 'TUBEAXIAL', INDETERMINATE) -vaneaxial = getattr(IfcFanTypeEnum, 'VANEAXIAL', INDETERMINATE) -propelloraxial = getattr(IfcFanTypeEnum, 'PROPELLORAXIAL', INDETERMINATE) -userdefined = getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFanTypeEnum, 'NOTDEFINED', INDETERMINATE) +centrifugalforwardcurved = IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED +centrifugalradial = IfcFanTypeEnum.CENTRIFUGALRADIAL +centrifugalbackwardinclinedcurved = IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED +centrifugalairfoil = IfcFanTypeEnum.CENTRIFUGALAIRFOIL +tubeaxial = IfcFanTypeEnum.TUBEAXIAL +vaneaxial = IfcFanTypeEnum.VANEAXIAL +propelloraxial = IfcFanTypeEnum.PROPELLORAXIAL +userdefined = IfcFanTypeEnum.USERDEFINED +notdefined = IfcFanTypeEnum.NOTDEFINED IfcFilterTypeEnum = enum_namespace() -airparticlefilter = getattr(IfcFilterTypeEnum, 'AIRPARTICLEFILTER', INDETERMINATE) -odorfilter = getattr(IfcFilterTypeEnum, 'ODORFILTER', INDETERMINATE) -oilfilter = getattr(IfcFilterTypeEnum, 'OILFILTER', INDETERMINATE) -strainer = getattr(IfcFilterTypeEnum, 'STRAINER', INDETERMINATE) -waterfilter = getattr(IfcFilterTypeEnum, 'WATERFILTER', INDETERMINATE) -userdefined = getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFilterTypeEnum, 'NOTDEFINED', INDETERMINATE) +airparticlefilter = IfcFilterTypeEnum.AIRPARTICLEFILTER +odorfilter = IfcFilterTypeEnum.ODORFILTER +oilfilter = IfcFilterTypeEnum.OILFILTER +strainer = IfcFilterTypeEnum.STRAINER +waterfilter = IfcFilterTypeEnum.WATERFILTER +userdefined = IfcFilterTypeEnum.USERDEFINED +notdefined = IfcFilterTypeEnum.NOTDEFINED IfcFireSuppressionTerminalTypeEnum = enum_namespace() -breechinginlet = getattr(IfcFireSuppressionTerminalTypeEnum, 'BREECHINGINLET', INDETERMINATE) -firehydrant = getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREHYDRANT', INDETERMINATE) -hosereel = getattr(IfcFireSuppressionTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -sprinkler = getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLER', INDETERMINATE) -sprinklerdeflector = getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLERDEFLECTOR', INDETERMINATE) -userdefined = getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFireSuppressionTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +breechinginlet = IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET +firehydrant = IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT +hosereel = IfcFireSuppressionTerminalTypeEnum.HOSEREEL +sprinkler = IfcFireSuppressionTerminalTypeEnum.SPRINKLER +sprinklerdeflector = IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR +userdefined = IfcFireSuppressionTerminalTypeEnum.USERDEFINED +notdefined = IfcFireSuppressionTerminalTypeEnum.NOTDEFINED IfcFlowDirectionEnum = enum_namespace() -source = getattr(IfcFlowDirectionEnum, 'SOURCE', INDETERMINATE) -sink = getattr(IfcFlowDirectionEnum, 'SINK', INDETERMINATE) -sourceandsink = getattr(IfcFlowDirectionEnum, 'SOURCEANDSINK', INDETERMINATE) -notdefined = getattr(IfcFlowDirectionEnum, 'NOTDEFINED', INDETERMINATE) +source = IfcFlowDirectionEnum.SOURCE +sink = IfcFlowDirectionEnum.SINK +sourceandsink = IfcFlowDirectionEnum.SOURCEANDSINK +notdefined = IfcFlowDirectionEnum.NOTDEFINED IfcFlowInstrumentTypeEnum = enum_namespace() -pressuregauge = getattr(IfcFlowInstrumentTypeEnum, 'PRESSUREGAUGE', INDETERMINATE) -thermometer = getattr(IfcFlowInstrumentTypeEnum, 'THERMOMETER', INDETERMINATE) -ammeter = getattr(IfcFlowInstrumentTypeEnum, 'AMMETER', INDETERMINATE) -frequencymeter = getattr(IfcFlowInstrumentTypeEnum, 'FREQUENCYMETER', INDETERMINATE) -powerfactormeter = getattr(IfcFlowInstrumentTypeEnum, 'POWERFACTORMETER', INDETERMINATE) -phaseanglemeter = getattr(IfcFlowInstrumentTypeEnum, 'PHASEANGLEMETER', INDETERMINATE) -voltmeter_peak = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_PEAK', INDETERMINATE) -voltmeter_rms = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_RMS', INDETERMINATE) -userdefined = getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFlowInstrumentTypeEnum, 'NOTDEFINED', INDETERMINATE) +pressuregauge = IfcFlowInstrumentTypeEnum.PRESSUREGAUGE +thermometer = IfcFlowInstrumentTypeEnum.THERMOMETER +ammeter = IfcFlowInstrumentTypeEnum.AMMETER +frequencymeter = IfcFlowInstrumentTypeEnum.FREQUENCYMETER +powerfactormeter = IfcFlowInstrumentTypeEnum.POWERFACTORMETER +phaseanglemeter = IfcFlowInstrumentTypeEnum.PHASEANGLEMETER +voltmeter_peak = IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK +voltmeter_rms = IfcFlowInstrumentTypeEnum.VOLTMETER_RMS +userdefined = IfcFlowInstrumentTypeEnum.USERDEFINED +notdefined = IfcFlowInstrumentTypeEnum.NOTDEFINED IfcFlowMeterTypeEnum = enum_namespace() -electricmeter = getattr(IfcFlowMeterTypeEnum, 'ELECTRICMETER', INDETERMINATE) -energymeter = getattr(IfcFlowMeterTypeEnum, 'ENERGYMETER', INDETERMINATE) -flowmeter = getattr(IfcFlowMeterTypeEnum, 'FLOWMETER', INDETERMINATE) -gasmeter = getattr(IfcFlowMeterTypeEnum, 'GASMETER', INDETERMINATE) -oilmeter = getattr(IfcFlowMeterTypeEnum, 'OILMETER', INDETERMINATE) -watermeter = getattr(IfcFlowMeterTypeEnum, 'WATERMETER', INDETERMINATE) -userdefined = getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFlowMeterTypeEnum, 'NOTDEFINED', INDETERMINATE) +electricmeter = IfcFlowMeterTypeEnum.ELECTRICMETER +energymeter = IfcFlowMeterTypeEnum.ENERGYMETER +flowmeter = IfcFlowMeterTypeEnum.FLOWMETER +gasmeter = IfcFlowMeterTypeEnum.GASMETER +oilmeter = IfcFlowMeterTypeEnum.OILMETER +watermeter = IfcFlowMeterTypeEnum.WATERMETER +userdefined = IfcFlowMeterTypeEnum.USERDEFINED +notdefined = IfcFlowMeterTypeEnum.NOTDEFINED IfcFootingTypeEnum = enum_namespace() -footing_beam = getattr(IfcFootingTypeEnum, 'FOOTING_BEAM', INDETERMINATE) -pad_footing = getattr(IfcFootingTypeEnum, 'PAD_FOOTING', INDETERMINATE) -pile_cap = getattr(IfcFootingTypeEnum, 'PILE_CAP', INDETERMINATE) -strip_footing = getattr(IfcFootingTypeEnum, 'STRIP_FOOTING', INDETERMINATE) -userdefined = getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFootingTypeEnum, 'NOTDEFINED', INDETERMINATE) +footing_beam = IfcFootingTypeEnum.FOOTING_BEAM +pad_footing = IfcFootingTypeEnum.PAD_FOOTING +pile_cap = IfcFootingTypeEnum.PILE_CAP +strip_footing = IfcFootingTypeEnum.STRIP_FOOTING +userdefined = IfcFootingTypeEnum.USERDEFINED +notdefined = IfcFootingTypeEnum.NOTDEFINED IfcGasTerminalTypeEnum = enum_namespace() -gasappliance = getattr(IfcGasTerminalTypeEnum, 'GASAPPLIANCE', INDETERMINATE) -gasbooster = getattr(IfcGasTerminalTypeEnum, 'GASBOOSTER', INDETERMINATE) -gasburner = getattr(IfcGasTerminalTypeEnum, 'GASBURNER', INDETERMINATE) -userdefined = getattr(IfcGasTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGasTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +gasappliance = IfcGasTerminalTypeEnum.GASAPPLIANCE +gasbooster = IfcGasTerminalTypeEnum.GASBOOSTER +gasburner = IfcGasTerminalTypeEnum.GASBURNER +userdefined = IfcGasTerminalTypeEnum.USERDEFINED +notdefined = IfcGasTerminalTypeEnum.NOTDEFINED IfcGeometricProjectionEnum = enum_namespace() -graph_view = getattr(IfcGeometricProjectionEnum, 'GRAPH_VIEW', INDETERMINATE) -sketch_view = getattr(IfcGeometricProjectionEnum, 'SKETCH_VIEW', INDETERMINATE) -model_view = getattr(IfcGeometricProjectionEnum, 'MODEL_VIEW', INDETERMINATE) -plan_view = getattr(IfcGeometricProjectionEnum, 'PLAN_VIEW', INDETERMINATE) -reflected_plan_view = getattr(IfcGeometricProjectionEnum, 'REFLECTED_PLAN_VIEW', INDETERMINATE) -section_view = getattr(IfcGeometricProjectionEnum, 'SECTION_VIEW', INDETERMINATE) -elevation_view = getattr(IfcGeometricProjectionEnum, 'ELEVATION_VIEW', INDETERMINATE) -userdefined = getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGeometricProjectionEnum, 'NOTDEFINED', INDETERMINATE) +graph_view = IfcGeometricProjectionEnum.GRAPH_VIEW +sketch_view = IfcGeometricProjectionEnum.SKETCH_VIEW +model_view = IfcGeometricProjectionEnum.MODEL_VIEW +plan_view = IfcGeometricProjectionEnum.PLAN_VIEW +reflected_plan_view = IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW +section_view = IfcGeometricProjectionEnum.SECTION_VIEW +elevation_view = IfcGeometricProjectionEnum.ELEVATION_VIEW +userdefined = IfcGeometricProjectionEnum.USERDEFINED +notdefined = IfcGeometricProjectionEnum.NOTDEFINED IfcGlobalOrLocalEnum = enum_namespace() -global_coords = getattr(IfcGlobalOrLocalEnum, 'GLOBAL_COORDS', INDETERMINATE) -local_coords = getattr(IfcGlobalOrLocalEnum, 'LOCAL_COORDS', INDETERMINATE) +global_coords = IfcGlobalOrLocalEnum.GLOBAL_COORDS +local_coords = IfcGlobalOrLocalEnum.LOCAL_COORDS IfcHeatExchangerTypeEnum = enum_namespace() -plate = getattr(IfcHeatExchangerTypeEnum, 'PLATE', INDETERMINATE) -shellandtube = getattr(IfcHeatExchangerTypeEnum, 'SHELLANDTUBE', INDETERMINATE) -userdefined = getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcHeatExchangerTypeEnum, 'NOTDEFINED', INDETERMINATE) +plate = IfcHeatExchangerTypeEnum.PLATE +shellandtube = IfcHeatExchangerTypeEnum.SHELLANDTUBE +userdefined = IfcHeatExchangerTypeEnum.USERDEFINED +notdefined = IfcHeatExchangerTypeEnum.NOTDEFINED IfcHumidifierTypeEnum = enum_namespace() -steaminjection = getattr(IfcHumidifierTypeEnum, 'STEAMINJECTION', INDETERMINATE) -adiabaticairwasher = getattr(IfcHumidifierTypeEnum, 'ADIABATICAIRWASHER', INDETERMINATE) -adiabaticpan = getattr(IfcHumidifierTypeEnum, 'ADIABATICPAN', INDETERMINATE) -adiabaticwettedelement = getattr(IfcHumidifierTypeEnum, 'ADIABATICWETTEDELEMENT', INDETERMINATE) -adiabaticatomizing = getattr(IfcHumidifierTypeEnum, 'ADIABATICATOMIZING', INDETERMINATE) -adiabaticultrasonic = getattr(IfcHumidifierTypeEnum, 'ADIABATICULTRASONIC', INDETERMINATE) -adiabaticrigidmedia = getattr(IfcHumidifierTypeEnum, 'ADIABATICRIGIDMEDIA', INDETERMINATE) -adiabaticcompressedairnozzle = getattr(IfcHumidifierTypeEnum, 'ADIABATICCOMPRESSEDAIRNOZZLE', INDETERMINATE) -assistedelectric = getattr(IfcHumidifierTypeEnum, 'ASSISTEDELECTRIC', INDETERMINATE) -assistednaturalgas = getattr(IfcHumidifierTypeEnum, 'ASSISTEDNATURALGAS', INDETERMINATE) -assistedpropane = getattr(IfcHumidifierTypeEnum, 'ASSISTEDPROPANE', INDETERMINATE) -assistedbutane = getattr(IfcHumidifierTypeEnum, 'ASSISTEDBUTANE', INDETERMINATE) -assistedsteam = getattr(IfcHumidifierTypeEnum, 'ASSISTEDSTEAM', INDETERMINATE) -userdefined = getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcHumidifierTypeEnum, 'NOTDEFINED', INDETERMINATE) +steaminjection = IfcHumidifierTypeEnum.STEAMINJECTION +adiabaticairwasher = IfcHumidifierTypeEnum.ADIABATICAIRWASHER +adiabaticpan = IfcHumidifierTypeEnum.ADIABATICPAN +adiabaticwettedelement = IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT +adiabaticatomizing = IfcHumidifierTypeEnum.ADIABATICATOMIZING +adiabaticultrasonic = IfcHumidifierTypeEnum.ADIABATICULTRASONIC +adiabaticrigidmedia = IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA +adiabaticcompressedairnozzle = IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE +assistedelectric = IfcHumidifierTypeEnum.ASSISTEDELECTRIC +assistednaturalgas = IfcHumidifierTypeEnum.ASSISTEDNATURALGAS +assistedpropane = IfcHumidifierTypeEnum.ASSISTEDPROPANE +assistedbutane = IfcHumidifierTypeEnum.ASSISTEDBUTANE +assistedsteam = IfcHumidifierTypeEnum.ASSISTEDSTEAM +userdefined = IfcHumidifierTypeEnum.USERDEFINED +notdefined = IfcHumidifierTypeEnum.NOTDEFINED IfcInternalOrExternalEnum = enum_namespace() -internal = getattr(IfcInternalOrExternalEnum, 'INTERNAL', INDETERMINATE) -external = getattr(IfcInternalOrExternalEnum, 'EXTERNAL', INDETERMINATE) -notdefined = getattr(IfcInternalOrExternalEnum, 'NOTDEFINED', INDETERMINATE) +internal = IfcInternalOrExternalEnum.INTERNAL +external = IfcInternalOrExternalEnum.EXTERNAL +notdefined = IfcInternalOrExternalEnum.NOTDEFINED IfcInventoryTypeEnum = enum_namespace() -assetinventory = getattr(IfcInventoryTypeEnum, 'ASSETINVENTORY', INDETERMINATE) -spaceinventory = getattr(IfcInventoryTypeEnum, 'SPACEINVENTORY', INDETERMINATE) -furnitureinventory = getattr(IfcInventoryTypeEnum, 'FURNITUREINVENTORY', INDETERMINATE) -userdefined = getattr(IfcInventoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcInventoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +assetinventory = IfcInventoryTypeEnum.ASSETINVENTORY +spaceinventory = IfcInventoryTypeEnum.SPACEINVENTORY +furnitureinventory = IfcInventoryTypeEnum.FURNITUREINVENTORY +userdefined = IfcInventoryTypeEnum.USERDEFINED +notdefined = IfcInventoryTypeEnum.NOTDEFINED IfcJunctionBoxTypeEnum = enum_namespace() -userdefined = getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcJunctionBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcJunctionBoxTypeEnum.USERDEFINED +notdefined = IfcJunctionBoxTypeEnum.NOTDEFINED IfcLampTypeEnum = enum_namespace() -compactfluorescent = getattr(IfcLampTypeEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = getattr(IfcLampTypeEnum, 'FLUORESCENT', INDETERMINATE) -highpressuremercury = getattr(IfcLampTypeEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = getattr(IfcLampTypeEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -metalhalide = getattr(IfcLampTypeEnum, 'METALHALIDE', INDETERMINATE) -tungstenfilament = getattr(IfcLampTypeEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -userdefined = getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLampTypeEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLampTypeEnum.COMPACTFLUORESCENT +fluorescent = IfcLampTypeEnum.FLUORESCENT +highpressuremercury = IfcLampTypeEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLampTypeEnum.HIGHPRESSURESODIUM +metalhalide = IfcLampTypeEnum.METALHALIDE +tungstenfilament = IfcLampTypeEnum.TUNGSTENFILAMENT +userdefined = IfcLampTypeEnum.USERDEFINED +notdefined = IfcLampTypeEnum.NOTDEFINED IfcLayerSetDirectionEnum = enum_namespace() -axis1 = getattr(IfcLayerSetDirectionEnum, 'AXIS1', INDETERMINATE) -axis2 = getattr(IfcLayerSetDirectionEnum, 'AXIS2', INDETERMINATE) -axis3 = getattr(IfcLayerSetDirectionEnum, 'AXIS3', INDETERMINATE) +axis1 = IfcLayerSetDirectionEnum.AXIS1 +axis2 = IfcLayerSetDirectionEnum.AXIS2 +axis3 = IfcLayerSetDirectionEnum.AXIS3 IfcLightDistributionCurveEnum = enum_namespace() -type_a = getattr(IfcLightDistributionCurveEnum, 'TYPE_A', INDETERMINATE) -type_b = getattr(IfcLightDistributionCurveEnum, 'TYPE_B', INDETERMINATE) -type_c = getattr(IfcLightDistributionCurveEnum, 'TYPE_C', INDETERMINATE) -notdefined = getattr(IfcLightDistributionCurveEnum, 'NOTDEFINED', INDETERMINATE) +type_a = IfcLightDistributionCurveEnum.TYPE_A +type_b = IfcLightDistributionCurveEnum.TYPE_B +type_c = IfcLightDistributionCurveEnum.TYPE_C +notdefined = IfcLightDistributionCurveEnum.NOTDEFINED IfcLightEmissionSourceEnum = enum_namespace() -compactfluorescent = getattr(IfcLightEmissionSourceEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = getattr(IfcLightEmissionSourceEnum, 'FLUORESCENT', INDETERMINATE) -highpressuremercury = getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -lightemittingdiode = getattr(IfcLightEmissionSourceEnum, 'LIGHTEMITTINGDIODE', INDETERMINATE) -lowpressuresodium = getattr(IfcLightEmissionSourceEnum, 'LOWPRESSURESODIUM', INDETERMINATE) -lowvoltagehalogen = getattr(IfcLightEmissionSourceEnum, 'LOWVOLTAGEHALOGEN', INDETERMINATE) -mainvoltagehalogen = getattr(IfcLightEmissionSourceEnum, 'MAINVOLTAGEHALOGEN', INDETERMINATE) -metalhalide = getattr(IfcLightEmissionSourceEnum, 'METALHALIDE', INDETERMINATE) -tungstenfilament = getattr(IfcLightEmissionSourceEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -notdefined = getattr(IfcLightEmissionSourceEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLightEmissionSourceEnum.COMPACTFLUORESCENT +fluorescent = IfcLightEmissionSourceEnum.FLUORESCENT +highpressuremercury = IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM +lightemittingdiode = IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE +lowpressuresodium = IfcLightEmissionSourceEnum.LOWPRESSURESODIUM +lowvoltagehalogen = IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN +mainvoltagehalogen = IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN +metalhalide = IfcLightEmissionSourceEnum.METALHALIDE +tungstenfilament = IfcLightEmissionSourceEnum.TUNGSTENFILAMENT +notdefined = IfcLightEmissionSourceEnum.NOTDEFINED IfcLightFixtureTypeEnum = enum_namespace() -pointsource = getattr(IfcLightFixtureTypeEnum, 'POINTSOURCE', INDETERMINATE) -directionsource = getattr(IfcLightFixtureTypeEnum, 'DIRECTIONSOURCE', INDETERMINATE) -userdefined = getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLightFixtureTypeEnum, 'NOTDEFINED', INDETERMINATE) +pointsource = IfcLightFixtureTypeEnum.POINTSOURCE +directionsource = IfcLightFixtureTypeEnum.DIRECTIONSOURCE +userdefined = IfcLightFixtureTypeEnum.USERDEFINED +notdefined = IfcLightFixtureTypeEnum.NOTDEFINED IfcLoadGroupTypeEnum = enum_namespace() -load_group = getattr(IfcLoadGroupTypeEnum, 'LOAD_GROUP', INDETERMINATE) -load_case = getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE) -load_combination_group = getattr(IfcLoadGroupTypeEnum, 'LOAD_COMBINATION_GROUP', INDETERMINATE) -load_combination = getattr(IfcLoadGroupTypeEnum, 'LOAD_COMBINATION', INDETERMINATE) -userdefined = getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLoadGroupTypeEnum, 'NOTDEFINED', INDETERMINATE) +load_group = IfcLoadGroupTypeEnum.LOAD_GROUP +load_case = IfcLoadGroupTypeEnum.LOAD_CASE +load_combination_group = IfcLoadGroupTypeEnum.LOAD_COMBINATION_GROUP +load_combination = IfcLoadGroupTypeEnum.LOAD_COMBINATION +userdefined = IfcLoadGroupTypeEnum.USERDEFINED +notdefined = IfcLoadGroupTypeEnum.NOTDEFINED IfcLogicalOperatorEnum = enum_namespace() -logicaland = getattr(IfcLogicalOperatorEnum, 'LOGICALAND', INDETERMINATE) -logicalor = getattr(IfcLogicalOperatorEnum, 'LOGICALOR', INDETERMINATE) +logicaland = IfcLogicalOperatorEnum.LOGICALAND +logicalor = IfcLogicalOperatorEnum.LOGICALOR IfcMemberTypeEnum = enum_namespace() -brace = getattr(IfcMemberTypeEnum, 'BRACE', INDETERMINATE) -chord = getattr(IfcMemberTypeEnum, 'CHORD', INDETERMINATE) -collar = getattr(IfcMemberTypeEnum, 'COLLAR', INDETERMINATE) -member = getattr(IfcMemberTypeEnum, 'MEMBER', INDETERMINATE) -mullion = getattr(IfcMemberTypeEnum, 'MULLION', INDETERMINATE) -plate = getattr(IfcMemberTypeEnum, 'PLATE', INDETERMINATE) -post = getattr(IfcMemberTypeEnum, 'POST', INDETERMINATE) -purlin = getattr(IfcMemberTypeEnum, 'PURLIN', INDETERMINATE) -rafter = getattr(IfcMemberTypeEnum, 'RAFTER', INDETERMINATE) -stringer = getattr(IfcMemberTypeEnum, 'STRINGER', INDETERMINATE) -strut = getattr(IfcMemberTypeEnum, 'STRUT', INDETERMINATE) -stud = getattr(IfcMemberTypeEnum, 'STUD', INDETERMINATE) -userdefined = getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +brace = IfcMemberTypeEnum.BRACE +chord = IfcMemberTypeEnum.CHORD +collar = IfcMemberTypeEnum.COLLAR +member = IfcMemberTypeEnum.MEMBER +mullion = IfcMemberTypeEnum.MULLION +plate = IfcMemberTypeEnum.PLATE +post = IfcMemberTypeEnum.POST +purlin = IfcMemberTypeEnum.PURLIN +rafter = IfcMemberTypeEnum.RAFTER +stringer = IfcMemberTypeEnum.STRINGER +strut = IfcMemberTypeEnum.STRUT +stud = IfcMemberTypeEnum.STUD +userdefined = IfcMemberTypeEnum.USERDEFINED +notdefined = IfcMemberTypeEnum.NOTDEFINED IfcMotorConnectionTypeEnum = enum_namespace() -beltdrive = getattr(IfcMotorConnectionTypeEnum, 'BELTDRIVE', INDETERMINATE) -coupling = getattr(IfcMotorConnectionTypeEnum, 'COUPLING', INDETERMINATE) -directdrive = getattr(IfcMotorConnectionTypeEnum, 'DIRECTDRIVE', INDETERMINATE) -userdefined = getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMotorConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltdrive = IfcMotorConnectionTypeEnum.BELTDRIVE +coupling = IfcMotorConnectionTypeEnum.COUPLING +directdrive = IfcMotorConnectionTypeEnum.DIRECTDRIVE +userdefined = IfcMotorConnectionTypeEnum.USERDEFINED +notdefined = IfcMotorConnectionTypeEnum.NOTDEFINED IfcNullStyle = enum_namespace() -null = getattr(IfcNullStyle, 'NULL', INDETERMINATE) +null = IfcNullStyle.NULL IfcObjectTypeEnum = enum_namespace() -product = getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE) -process = getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE) -control = getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE) -resource = getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE) -actor = getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE) -group = getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE) -project = getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE) -notdefined = getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE) +product = IfcObjectTypeEnum.PRODUCT +process = IfcObjectTypeEnum.PROCESS +control = IfcObjectTypeEnum.CONTROL +resource = IfcObjectTypeEnum.RESOURCE +actor = IfcObjectTypeEnum.ACTOR +group = IfcObjectTypeEnum.GROUP +project = IfcObjectTypeEnum.PROJECT +notdefined = IfcObjectTypeEnum.NOTDEFINED IfcObjectiveEnum = enum_namespace() -codecompliance = getattr(IfcObjectiveEnum, 'CODECOMPLIANCE', INDETERMINATE) -designintent = getattr(IfcObjectiveEnum, 'DESIGNINTENT', INDETERMINATE) -healthandsafety = getattr(IfcObjectiveEnum, 'HEALTHANDSAFETY', INDETERMINATE) -requirement = getattr(IfcObjectiveEnum, 'REQUIREMENT', INDETERMINATE) -specification = getattr(IfcObjectiveEnum, 'SPECIFICATION', INDETERMINATE) -triggercondition = getattr(IfcObjectiveEnum, 'TRIGGERCONDITION', INDETERMINATE) -userdefined = getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcObjectiveEnum, 'NOTDEFINED', INDETERMINATE) +codecompliance = IfcObjectiveEnum.CODECOMPLIANCE +designintent = IfcObjectiveEnum.DESIGNINTENT +healthandsafety = IfcObjectiveEnum.HEALTHANDSAFETY +requirement = IfcObjectiveEnum.REQUIREMENT +specification = IfcObjectiveEnum.SPECIFICATION +triggercondition = IfcObjectiveEnum.TRIGGERCONDITION +userdefined = IfcObjectiveEnum.USERDEFINED +notdefined = IfcObjectiveEnum.NOTDEFINED IfcOccupantTypeEnum = enum_namespace() -assignee = getattr(IfcOccupantTypeEnum, 'ASSIGNEE', INDETERMINATE) -assignor = getattr(IfcOccupantTypeEnum, 'ASSIGNOR', INDETERMINATE) -lessee = getattr(IfcOccupantTypeEnum, 'LESSEE', INDETERMINATE) -lessor = getattr(IfcOccupantTypeEnum, 'LESSOR', INDETERMINATE) -lettingagent = getattr(IfcOccupantTypeEnum, 'LETTINGAGENT', INDETERMINATE) -owner = getattr(IfcOccupantTypeEnum, 'OWNER', INDETERMINATE) -tenant = getattr(IfcOccupantTypeEnum, 'TENANT', INDETERMINATE) -userdefined = getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOccupantTypeEnum, 'NOTDEFINED', INDETERMINATE) +assignee = IfcOccupantTypeEnum.ASSIGNEE +assignor = IfcOccupantTypeEnum.ASSIGNOR +lessee = IfcOccupantTypeEnum.LESSEE +lessor = IfcOccupantTypeEnum.LESSOR +lettingagent = IfcOccupantTypeEnum.LETTINGAGENT +owner = IfcOccupantTypeEnum.OWNER +tenant = IfcOccupantTypeEnum.TENANT +userdefined = IfcOccupantTypeEnum.USERDEFINED +notdefined = IfcOccupantTypeEnum.NOTDEFINED IfcOutletTypeEnum = enum_namespace() -audiovisualoutlet = getattr(IfcOutletTypeEnum, 'AUDIOVISUALOUTLET', INDETERMINATE) -communicationsoutlet = getattr(IfcOutletTypeEnum, 'COMMUNICATIONSOUTLET', INDETERMINATE) -poweroutlet = getattr(IfcOutletTypeEnum, 'POWEROUTLET', INDETERMINATE) -userdefined = getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOutletTypeEnum, 'NOTDEFINED', INDETERMINATE) +audiovisualoutlet = IfcOutletTypeEnum.AUDIOVISUALOUTLET +communicationsoutlet = IfcOutletTypeEnum.COMMUNICATIONSOUTLET +poweroutlet = IfcOutletTypeEnum.POWEROUTLET +userdefined = IfcOutletTypeEnum.USERDEFINED +notdefined = IfcOutletTypeEnum.NOTDEFINED IfcPermeableCoveringOperationEnum = enum_namespace() -grill = getattr(IfcPermeableCoveringOperationEnum, 'GRILL', INDETERMINATE) -louver = getattr(IfcPermeableCoveringOperationEnum, 'LOUVER', INDETERMINATE) -screen = getattr(IfcPermeableCoveringOperationEnum, 'SCREEN', INDETERMINATE) -userdefined = getattr(IfcPermeableCoveringOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPermeableCoveringOperationEnum, 'NOTDEFINED', INDETERMINATE) +grill = IfcPermeableCoveringOperationEnum.GRILL +louver = IfcPermeableCoveringOperationEnum.LOUVER +screen = IfcPermeableCoveringOperationEnum.SCREEN +userdefined = IfcPermeableCoveringOperationEnum.USERDEFINED +notdefined = IfcPermeableCoveringOperationEnum.NOTDEFINED IfcPhysicalOrVirtualEnum = enum_namespace() -physical = getattr(IfcPhysicalOrVirtualEnum, 'PHYSICAL', INDETERMINATE) -virtual = getattr(IfcPhysicalOrVirtualEnum, 'VIRTUAL', INDETERMINATE) -notdefined = getattr(IfcPhysicalOrVirtualEnum, 'NOTDEFINED', INDETERMINATE) +physical = IfcPhysicalOrVirtualEnum.PHYSICAL +virtual = IfcPhysicalOrVirtualEnum.VIRTUAL +notdefined = IfcPhysicalOrVirtualEnum.NOTDEFINED IfcPileConstructionEnum = enum_namespace() -cast_in_place = getattr(IfcPileConstructionEnum, 'CAST_IN_PLACE', INDETERMINATE) -composite = getattr(IfcPileConstructionEnum, 'COMPOSITE', INDETERMINATE) -precast_concrete = getattr(IfcPileConstructionEnum, 'PRECAST_CONCRETE', INDETERMINATE) -prefab_steel = getattr(IfcPileConstructionEnum, 'PREFAB_STEEL', INDETERMINATE) -userdefined = getattr(IfcPileConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPileConstructionEnum, 'NOTDEFINED', INDETERMINATE) +cast_in_place = IfcPileConstructionEnum.CAST_IN_PLACE +composite = IfcPileConstructionEnum.COMPOSITE +precast_concrete = IfcPileConstructionEnum.PRECAST_CONCRETE +prefab_steel = IfcPileConstructionEnum.PREFAB_STEEL +userdefined = IfcPileConstructionEnum.USERDEFINED +notdefined = IfcPileConstructionEnum.NOTDEFINED IfcPileTypeEnum = enum_namespace() -cohesion = getattr(IfcPileTypeEnum, 'COHESION', INDETERMINATE) -friction = getattr(IfcPileTypeEnum, 'FRICTION', INDETERMINATE) -support = getattr(IfcPileTypeEnum, 'SUPPORT', INDETERMINATE) -userdefined = getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPileTypeEnum, 'NOTDEFINED', INDETERMINATE) +cohesion = IfcPileTypeEnum.COHESION +friction = IfcPileTypeEnum.FRICTION +support = IfcPileTypeEnum.SUPPORT +userdefined = IfcPileTypeEnum.USERDEFINED +notdefined = IfcPileTypeEnum.NOTDEFINED IfcPipeFittingTypeEnum = enum_namespace() -bend = getattr(IfcPipeFittingTypeEnum, 'BEND', INDETERMINATE) -connector = getattr(IfcPipeFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcPipeFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcPipeFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcPipeFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = getattr(IfcPipeFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = getattr(IfcPipeFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPipeFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcPipeFittingTypeEnum.BEND +connector = IfcPipeFittingTypeEnum.CONNECTOR +entry = IfcPipeFittingTypeEnum.ENTRY +exit = IfcPipeFittingTypeEnum.EXIT +junction = IfcPipeFittingTypeEnum.JUNCTION +obstruction = IfcPipeFittingTypeEnum.OBSTRUCTION +transition = IfcPipeFittingTypeEnum.TRANSITION +userdefined = IfcPipeFittingTypeEnum.USERDEFINED +notdefined = IfcPipeFittingTypeEnum.NOTDEFINED IfcPipeSegmentTypeEnum = enum_namespace() -flexiblesegment = getattr(IfcPipeSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -rigidsegment = getattr(IfcPipeSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -gutter = getattr(IfcPipeSegmentTypeEnum, 'GUTTER', INDETERMINATE) -spool = getattr(IfcPipeSegmentTypeEnum, 'SPOOL', INDETERMINATE) -userdefined = getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPipeSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +flexiblesegment = IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT +rigidsegment = IfcPipeSegmentTypeEnum.RIGIDSEGMENT +gutter = IfcPipeSegmentTypeEnum.GUTTER +spool = IfcPipeSegmentTypeEnum.SPOOL +userdefined = IfcPipeSegmentTypeEnum.USERDEFINED +notdefined = IfcPipeSegmentTypeEnum.NOTDEFINED IfcPlateTypeEnum = enum_namespace() -curtain_panel = getattr(IfcPlateTypeEnum, 'CURTAIN_PANEL', INDETERMINATE) -sheet = getattr(IfcPlateTypeEnum, 'SHEET', INDETERMINATE) -userdefined = getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPlateTypeEnum, 'NOTDEFINED', INDETERMINATE) +curtain_panel = IfcPlateTypeEnum.CURTAIN_PANEL +sheet = IfcPlateTypeEnum.SHEET +userdefined = IfcPlateTypeEnum.USERDEFINED +notdefined = IfcPlateTypeEnum.NOTDEFINED IfcProcedureTypeEnum = enum_namespace() -advice_caution = getattr(IfcProcedureTypeEnum, 'ADVICE_CAUTION', INDETERMINATE) -advice_note = getattr(IfcProcedureTypeEnum, 'ADVICE_NOTE', INDETERMINATE) -advice_warning = getattr(IfcProcedureTypeEnum, 'ADVICE_WARNING', INDETERMINATE) -calibration = getattr(IfcProcedureTypeEnum, 'CALIBRATION', INDETERMINATE) -diagnostic = getattr(IfcProcedureTypeEnum, 'DIAGNOSTIC', INDETERMINATE) -shutdown = getattr(IfcProcedureTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = getattr(IfcProcedureTypeEnum, 'STARTUP', INDETERMINATE) -userdefined = getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProcedureTypeEnum, 'NOTDEFINED', INDETERMINATE) +advice_caution = IfcProcedureTypeEnum.ADVICE_CAUTION +advice_note = IfcProcedureTypeEnum.ADVICE_NOTE +advice_warning = IfcProcedureTypeEnum.ADVICE_WARNING +calibration = IfcProcedureTypeEnum.CALIBRATION +diagnostic = IfcProcedureTypeEnum.DIAGNOSTIC +shutdown = IfcProcedureTypeEnum.SHUTDOWN +startup = IfcProcedureTypeEnum.STARTUP +userdefined = IfcProcedureTypeEnum.USERDEFINED +notdefined = IfcProcedureTypeEnum.NOTDEFINED IfcProfileTypeEnum = enum_namespace() -curve = getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE) -area = getattr(IfcProfileTypeEnum, 'AREA', INDETERMINATE) +curve = IfcProfileTypeEnum.CURVE +area = IfcProfileTypeEnum.AREA IfcProjectOrderRecordTypeEnum = enum_namespace() -change = getattr(IfcProjectOrderRecordTypeEnum, 'CHANGE', INDETERMINATE) -maintenance = getattr(IfcProjectOrderRecordTypeEnum, 'MAINTENANCE', INDETERMINATE) -move = getattr(IfcProjectOrderRecordTypeEnum, 'MOVE', INDETERMINATE) -purchase = getattr(IfcProjectOrderRecordTypeEnum, 'PURCHASE', INDETERMINATE) -work = getattr(IfcProjectOrderRecordTypeEnum, 'WORK', INDETERMINATE) -userdefined = getattr(IfcProjectOrderRecordTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProjectOrderRecordTypeEnum, 'NOTDEFINED', INDETERMINATE) +change = IfcProjectOrderRecordTypeEnum.CHANGE +maintenance = IfcProjectOrderRecordTypeEnum.MAINTENANCE +move = IfcProjectOrderRecordTypeEnum.MOVE +purchase = IfcProjectOrderRecordTypeEnum.PURCHASE +work = IfcProjectOrderRecordTypeEnum.WORK +userdefined = IfcProjectOrderRecordTypeEnum.USERDEFINED +notdefined = IfcProjectOrderRecordTypeEnum.NOTDEFINED IfcProjectOrderTypeEnum = enum_namespace() -changeorder = getattr(IfcProjectOrderTypeEnum, 'CHANGEORDER', INDETERMINATE) -maintenanceworkorder = getattr(IfcProjectOrderTypeEnum, 'MAINTENANCEWORKORDER', INDETERMINATE) -moveorder = getattr(IfcProjectOrderTypeEnum, 'MOVEORDER', INDETERMINATE) -purchaseorder = getattr(IfcProjectOrderTypeEnum, 'PURCHASEORDER', INDETERMINATE) -workorder = getattr(IfcProjectOrderTypeEnum, 'WORKORDER', INDETERMINATE) -userdefined = getattr(IfcProjectOrderTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProjectOrderTypeEnum, 'NOTDEFINED', INDETERMINATE) +changeorder = IfcProjectOrderTypeEnum.CHANGEORDER +maintenanceworkorder = IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER +moveorder = IfcProjectOrderTypeEnum.MOVEORDER +purchaseorder = IfcProjectOrderTypeEnum.PURCHASEORDER +workorder = IfcProjectOrderTypeEnum.WORKORDER +userdefined = IfcProjectOrderTypeEnum.USERDEFINED +notdefined = IfcProjectOrderTypeEnum.NOTDEFINED IfcProjectedOrTrueLengthEnum = enum_namespace() -projected_length = getattr(IfcProjectedOrTrueLengthEnum, 'PROJECTED_LENGTH', INDETERMINATE) -true_length = getattr(IfcProjectedOrTrueLengthEnum, 'TRUE_LENGTH', INDETERMINATE) +projected_length = IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH +true_length = IfcProjectedOrTrueLengthEnum.TRUE_LENGTH IfcPropertySourceEnum = enum_namespace() -design = getattr(IfcPropertySourceEnum, 'DESIGN', INDETERMINATE) -designmaximum = getattr(IfcPropertySourceEnum, 'DESIGNMAXIMUM', INDETERMINATE) -designminimum = getattr(IfcPropertySourceEnum, 'DESIGNMINIMUM', INDETERMINATE) -simulated = getattr(IfcPropertySourceEnum, 'SIMULATED', INDETERMINATE) -asbuilt = getattr(IfcPropertySourceEnum, 'ASBUILT', INDETERMINATE) -commissioning = getattr(IfcPropertySourceEnum, 'COMMISSIONING', INDETERMINATE) -measured = getattr(IfcPropertySourceEnum, 'MEASURED', INDETERMINATE) -userdefined = getattr(IfcPropertySourceEnum, 'USERDEFINED', INDETERMINATE) -notknown = getattr(IfcPropertySourceEnum, 'NOTKNOWN', INDETERMINATE) +design = IfcPropertySourceEnum.DESIGN +designmaximum = IfcPropertySourceEnum.DESIGNMAXIMUM +designminimum = IfcPropertySourceEnum.DESIGNMINIMUM +simulated = IfcPropertySourceEnum.SIMULATED +asbuilt = IfcPropertySourceEnum.ASBUILT +commissioning = IfcPropertySourceEnum.COMMISSIONING +measured = IfcPropertySourceEnum.MEASURED +userdefined = IfcPropertySourceEnum.USERDEFINED +notknown = IfcPropertySourceEnum.NOTKNOWN IfcProtectiveDeviceTypeEnum = enum_namespace() -fusedisconnector = getattr(IfcProtectiveDeviceTypeEnum, 'FUSEDISCONNECTOR', INDETERMINATE) -circuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'CIRCUITBREAKER', INDETERMINATE) -earthfailuredevice = getattr(IfcProtectiveDeviceTypeEnum, 'EARTHFAILUREDEVICE', INDETERMINATE) -residualcurrentcircuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTCIRCUITBREAKER', INDETERMINATE) -residualcurrentswitch = getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTSWITCH', INDETERMINATE) -varistor = getattr(IfcProtectiveDeviceTypeEnum, 'VARISTOR', INDETERMINATE) -userdefined = getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProtectiveDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +fusedisconnector = IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR +circuitbreaker = IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER +earthfailuredevice = IfcProtectiveDeviceTypeEnum.EARTHFAILUREDEVICE +residualcurrentcircuitbreaker = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER +residualcurrentswitch = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH +varistor = IfcProtectiveDeviceTypeEnum.VARISTOR +userdefined = IfcProtectiveDeviceTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTypeEnum.NOTDEFINED IfcPumpTypeEnum = enum_namespace() -circulator = getattr(IfcPumpTypeEnum, 'CIRCULATOR', INDETERMINATE) -endsuction = getattr(IfcPumpTypeEnum, 'ENDSUCTION', INDETERMINATE) -splitcase = getattr(IfcPumpTypeEnum, 'SPLITCASE', INDETERMINATE) -verticalinline = getattr(IfcPumpTypeEnum, 'VERTICALINLINE', INDETERMINATE) -verticalturbine = getattr(IfcPumpTypeEnum, 'VERTICALTURBINE', INDETERMINATE) -userdefined = getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPumpTypeEnum, 'NOTDEFINED', INDETERMINATE) +circulator = IfcPumpTypeEnum.CIRCULATOR +endsuction = IfcPumpTypeEnum.ENDSUCTION +splitcase = IfcPumpTypeEnum.SPLITCASE +verticalinline = IfcPumpTypeEnum.VERTICALINLINE +verticalturbine = IfcPumpTypeEnum.VERTICALTURBINE +userdefined = IfcPumpTypeEnum.USERDEFINED +notdefined = IfcPumpTypeEnum.NOTDEFINED IfcRailingTypeEnum = enum_namespace() -handrail = getattr(IfcRailingTypeEnum, 'HANDRAIL', INDETERMINATE) -guardrail = getattr(IfcRailingTypeEnum, 'GUARDRAIL', INDETERMINATE) -balustrade = getattr(IfcRailingTypeEnum, 'BALUSTRADE', INDETERMINATE) -userdefined = getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailingTypeEnum, 'NOTDEFINED', INDETERMINATE) +handrail = IfcRailingTypeEnum.HANDRAIL +guardrail = IfcRailingTypeEnum.GUARDRAIL +balustrade = IfcRailingTypeEnum.BALUSTRADE +userdefined = IfcRailingTypeEnum.USERDEFINED +notdefined = IfcRailingTypeEnum.NOTDEFINED IfcRampFlightTypeEnum = enum_namespace() -straight = getattr(IfcRampFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -spiral = getattr(IfcRampFlightTypeEnum, 'SPIRAL', INDETERMINATE) -userdefined = getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRampFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcRampFlightTypeEnum.STRAIGHT +spiral = IfcRampFlightTypeEnum.SPIRAL +userdefined = IfcRampFlightTypeEnum.USERDEFINED +notdefined = IfcRampFlightTypeEnum.NOTDEFINED IfcRampTypeEnum = enum_namespace() -straight_run_ramp = getattr(IfcRampTypeEnum, 'STRAIGHT_RUN_RAMP', INDETERMINATE) -two_straight_run_ramp = getattr(IfcRampTypeEnum, 'TWO_STRAIGHT_RUN_RAMP', INDETERMINATE) -quarter_turn_ramp = getattr(IfcRampTypeEnum, 'QUARTER_TURN_RAMP', INDETERMINATE) -two_quarter_turn_ramp = getattr(IfcRampTypeEnum, 'TWO_QUARTER_TURN_RAMP', INDETERMINATE) -half_turn_ramp = getattr(IfcRampTypeEnum, 'HALF_TURN_RAMP', INDETERMINATE) -spiral_ramp = getattr(IfcRampTypeEnum, 'SPIRAL_RAMP', INDETERMINATE) -userdefined = getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRampTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_ramp = IfcRampTypeEnum.STRAIGHT_RUN_RAMP +two_straight_run_ramp = IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP +quarter_turn_ramp = IfcRampTypeEnum.QUARTER_TURN_RAMP +two_quarter_turn_ramp = IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP +half_turn_ramp = IfcRampTypeEnum.HALF_TURN_RAMP +spiral_ramp = IfcRampTypeEnum.SPIRAL_RAMP +userdefined = IfcRampTypeEnum.USERDEFINED +notdefined = IfcRampTypeEnum.NOTDEFINED IfcReflectanceMethodEnum = enum_namespace() -blinn = getattr(IfcReflectanceMethodEnum, 'BLINN', INDETERMINATE) -flat = getattr(IfcReflectanceMethodEnum, 'FLAT', INDETERMINATE) -glass = getattr(IfcReflectanceMethodEnum, 'GLASS', INDETERMINATE) -matt = getattr(IfcReflectanceMethodEnum, 'MATT', INDETERMINATE) -metal = getattr(IfcReflectanceMethodEnum, 'METAL', INDETERMINATE) -mirror = getattr(IfcReflectanceMethodEnum, 'MIRROR', INDETERMINATE) -phong = getattr(IfcReflectanceMethodEnum, 'PHONG', INDETERMINATE) -plastic = getattr(IfcReflectanceMethodEnum, 'PLASTIC', INDETERMINATE) -strauss = getattr(IfcReflectanceMethodEnum, 'STRAUSS', INDETERMINATE) -notdefined = getattr(IfcReflectanceMethodEnum, 'NOTDEFINED', INDETERMINATE) +blinn = IfcReflectanceMethodEnum.BLINN +flat = IfcReflectanceMethodEnum.FLAT +glass = IfcReflectanceMethodEnum.GLASS +matt = IfcReflectanceMethodEnum.MATT +metal = IfcReflectanceMethodEnum.METAL +mirror = IfcReflectanceMethodEnum.MIRROR +phong = IfcReflectanceMethodEnum.PHONG +plastic = IfcReflectanceMethodEnum.PLASTIC +strauss = IfcReflectanceMethodEnum.STRAUSS +notdefined = IfcReflectanceMethodEnum.NOTDEFINED IfcReinforcingBarRoleEnum = enum_namespace() -main = getattr(IfcReinforcingBarRoleEnum, 'MAIN', INDETERMINATE) -shear = getattr(IfcReinforcingBarRoleEnum, 'SHEAR', INDETERMINATE) -ligature = getattr(IfcReinforcingBarRoleEnum, 'LIGATURE', INDETERMINATE) -stud = getattr(IfcReinforcingBarRoleEnum, 'STUD', INDETERMINATE) -punching = getattr(IfcReinforcingBarRoleEnum, 'PUNCHING', INDETERMINATE) -edge = getattr(IfcReinforcingBarRoleEnum, 'EDGE', INDETERMINATE) -ring = getattr(IfcReinforcingBarRoleEnum, 'RING', INDETERMINATE) -userdefined = getattr(IfcReinforcingBarRoleEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingBarRoleEnum, 'NOTDEFINED', INDETERMINATE) +main = IfcReinforcingBarRoleEnum.MAIN +shear = IfcReinforcingBarRoleEnum.SHEAR +ligature = IfcReinforcingBarRoleEnum.LIGATURE +stud = IfcReinforcingBarRoleEnum.STUD +punching = IfcReinforcingBarRoleEnum.PUNCHING +edge = IfcReinforcingBarRoleEnum.EDGE +ring = IfcReinforcingBarRoleEnum.RING +userdefined = IfcReinforcingBarRoleEnum.USERDEFINED +notdefined = IfcReinforcingBarRoleEnum.NOTDEFINED IfcReinforcingBarSurfaceEnum = enum_namespace() -plain = getattr(IfcReinforcingBarSurfaceEnum, 'PLAIN', INDETERMINATE) -textured = getattr(IfcReinforcingBarSurfaceEnum, 'TEXTURED', INDETERMINATE) +plain = IfcReinforcingBarSurfaceEnum.PLAIN +textured = IfcReinforcingBarSurfaceEnum.TEXTURED IfcResourceConsumptionEnum = enum_namespace() -consumed = getattr(IfcResourceConsumptionEnum, 'CONSUMED', INDETERMINATE) -partiallyconsumed = getattr(IfcResourceConsumptionEnum, 'PARTIALLYCONSUMED', INDETERMINATE) -notconsumed = getattr(IfcResourceConsumptionEnum, 'NOTCONSUMED', INDETERMINATE) -occupied = getattr(IfcResourceConsumptionEnum, 'OCCUPIED', INDETERMINATE) -partiallyoccupied = getattr(IfcResourceConsumptionEnum, 'PARTIALLYOCCUPIED', INDETERMINATE) -notoccupied = getattr(IfcResourceConsumptionEnum, 'NOTOCCUPIED', INDETERMINATE) -userdefined = getattr(IfcResourceConsumptionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcResourceConsumptionEnum, 'NOTDEFINED', INDETERMINATE) +consumed = IfcResourceConsumptionEnum.CONSUMED +partiallyconsumed = IfcResourceConsumptionEnum.PARTIALLYCONSUMED +notconsumed = IfcResourceConsumptionEnum.NOTCONSUMED +occupied = IfcResourceConsumptionEnum.OCCUPIED +partiallyoccupied = IfcResourceConsumptionEnum.PARTIALLYOCCUPIED +notoccupied = IfcResourceConsumptionEnum.NOTOCCUPIED +userdefined = IfcResourceConsumptionEnum.USERDEFINED +notdefined = IfcResourceConsumptionEnum.NOTDEFINED IfcRibPlateDirectionEnum = enum_namespace() -direction_x = getattr(IfcRibPlateDirectionEnum, 'DIRECTION_X', INDETERMINATE) -direction_y = getattr(IfcRibPlateDirectionEnum, 'DIRECTION_Y', INDETERMINATE) +direction_x = IfcRibPlateDirectionEnum.DIRECTION_X +direction_y = IfcRibPlateDirectionEnum.DIRECTION_Y IfcRoleEnum = enum_namespace() -supplier = getattr(IfcRoleEnum, 'SUPPLIER', INDETERMINATE) -manufacturer = getattr(IfcRoleEnum, 'MANUFACTURER', INDETERMINATE) -contractor = getattr(IfcRoleEnum, 'CONTRACTOR', INDETERMINATE) -subcontractor = getattr(IfcRoleEnum, 'SUBCONTRACTOR', INDETERMINATE) -architect = getattr(IfcRoleEnum, 'ARCHITECT', INDETERMINATE) -structuralengineer = getattr(IfcRoleEnum, 'STRUCTURALENGINEER', INDETERMINATE) -costengineer = getattr(IfcRoleEnum, 'COSTENGINEER', INDETERMINATE) -client = getattr(IfcRoleEnum, 'CLIENT', INDETERMINATE) -buildingowner = getattr(IfcRoleEnum, 'BUILDINGOWNER', INDETERMINATE) -buildingoperator = getattr(IfcRoleEnum, 'BUILDINGOPERATOR', INDETERMINATE) -mechanicalengineer = getattr(IfcRoleEnum, 'MECHANICALENGINEER', INDETERMINATE) -electricalengineer = getattr(IfcRoleEnum, 'ELECTRICALENGINEER', INDETERMINATE) -projectmanager = getattr(IfcRoleEnum, 'PROJECTMANAGER', INDETERMINATE) -facilitiesmanager = getattr(IfcRoleEnum, 'FACILITIESMANAGER', INDETERMINATE) -civilengineer = getattr(IfcRoleEnum, 'CIVILENGINEER', INDETERMINATE) -comissioningengineer = getattr(IfcRoleEnum, 'COMISSIONINGENGINEER', INDETERMINATE) -engineer = getattr(IfcRoleEnum, 'ENGINEER', INDETERMINATE) -owner = getattr(IfcRoleEnum, 'OWNER', INDETERMINATE) -consultant = getattr(IfcRoleEnum, 'CONSULTANT', INDETERMINATE) -constructionmanager = getattr(IfcRoleEnum, 'CONSTRUCTIONMANAGER', INDETERMINATE) -fieldconstructionmanager = getattr(IfcRoleEnum, 'FIELDCONSTRUCTIONMANAGER', INDETERMINATE) -reseller = getattr(IfcRoleEnum, 'RESELLER', INDETERMINATE) -userdefined = getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) +supplier = IfcRoleEnum.SUPPLIER +manufacturer = IfcRoleEnum.MANUFACTURER +contractor = IfcRoleEnum.CONTRACTOR +subcontractor = IfcRoleEnum.SUBCONTRACTOR +architect = IfcRoleEnum.ARCHITECT +structuralengineer = IfcRoleEnum.STRUCTURALENGINEER +costengineer = IfcRoleEnum.COSTENGINEER +client = IfcRoleEnum.CLIENT +buildingowner = IfcRoleEnum.BUILDINGOWNER +buildingoperator = IfcRoleEnum.BUILDINGOPERATOR +mechanicalengineer = IfcRoleEnum.MECHANICALENGINEER +electricalengineer = IfcRoleEnum.ELECTRICALENGINEER +projectmanager = IfcRoleEnum.PROJECTMANAGER +facilitiesmanager = IfcRoleEnum.FACILITIESMANAGER +civilengineer = IfcRoleEnum.CIVILENGINEER +comissioningengineer = IfcRoleEnum.COMISSIONINGENGINEER +engineer = IfcRoleEnum.ENGINEER +owner = IfcRoleEnum.OWNER +consultant = IfcRoleEnum.CONSULTANT +constructionmanager = IfcRoleEnum.CONSTRUCTIONMANAGER +fieldconstructionmanager = IfcRoleEnum.FIELDCONSTRUCTIONMANAGER +reseller = IfcRoleEnum.RESELLER +userdefined = IfcRoleEnum.USERDEFINED IfcRoofTypeEnum = enum_namespace() -flat_roof = getattr(IfcRoofTypeEnum, 'FLAT_ROOF', INDETERMINATE) -shed_roof = getattr(IfcRoofTypeEnum, 'SHED_ROOF', INDETERMINATE) -gable_roof = getattr(IfcRoofTypeEnum, 'GABLE_ROOF', INDETERMINATE) -hip_roof = getattr(IfcRoofTypeEnum, 'HIP_ROOF', INDETERMINATE) -hipped_gable_roof = getattr(IfcRoofTypeEnum, 'HIPPED_GABLE_ROOF', INDETERMINATE) -gambrel_roof = getattr(IfcRoofTypeEnum, 'GAMBREL_ROOF', INDETERMINATE) -mansard_roof = getattr(IfcRoofTypeEnum, 'MANSARD_ROOF', INDETERMINATE) -barrel_roof = getattr(IfcRoofTypeEnum, 'BARREL_ROOF', INDETERMINATE) -rainbow_roof = getattr(IfcRoofTypeEnum, 'RAINBOW_ROOF', INDETERMINATE) -butterfly_roof = getattr(IfcRoofTypeEnum, 'BUTTERFLY_ROOF', INDETERMINATE) -pavilion_roof = getattr(IfcRoofTypeEnum, 'PAVILION_ROOF', INDETERMINATE) -dome_roof = getattr(IfcRoofTypeEnum, 'DOME_ROOF', INDETERMINATE) -freeform = getattr(IfcRoofTypeEnum, 'FREEFORM', INDETERMINATE) -notdefined = getattr(IfcRoofTypeEnum, 'NOTDEFINED', INDETERMINATE) +flat_roof = IfcRoofTypeEnum.FLAT_ROOF +shed_roof = IfcRoofTypeEnum.SHED_ROOF +gable_roof = IfcRoofTypeEnum.GABLE_ROOF +hip_roof = IfcRoofTypeEnum.HIP_ROOF +hipped_gable_roof = IfcRoofTypeEnum.HIPPED_GABLE_ROOF +gambrel_roof = IfcRoofTypeEnum.GAMBREL_ROOF +mansard_roof = IfcRoofTypeEnum.MANSARD_ROOF +barrel_roof = IfcRoofTypeEnum.BARREL_ROOF +rainbow_roof = IfcRoofTypeEnum.RAINBOW_ROOF +butterfly_roof = IfcRoofTypeEnum.BUTTERFLY_ROOF +pavilion_roof = IfcRoofTypeEnum.PAVILION_ROOF +dome_roof = IfcRoofTypeEnum.DOME_ROOF +freeform = IfcRoofTypeEnum.FREEFORM +notdefined = IfcRoofTypeEnum.NOTDEFINED IfcSIPrefix = enum_namespace() -exa = getattr(IfcSIPrefix, 'EXA', INDETERMINATE) -peta = getattr(IfcSIPrefix, 'PETA', INDETERMINATE) -tera = getattr(IfcSIPrefix, 'TERA', INDETERMINATE) -giga = getattr(IfcSIPrefix, 'GIGA', INDETERMINATE) -mega = getattr(IfcSIPrefix, 'MEGA', INDETERMINATE) -kilo = getattr(IfcSIPrefix, 'KILO', INDETERMINATE) -hecto = getattr(IfcSIPrefix, 'HECTO', INDETERMINATE) -deca = getattr(IfcSIPrefix, 'DECA', INDETERMINATE) -deci = getattr(IfcSIPrefix, 'DECI', INDETERMINATE) -centi = getattr(IfcSIPrefix, 'CENTI', INDETERMINATE) -milli = getattr(IfcSIPrefix, 'MILLI', INDETERMINATE) -micro = getattr(IfcSIPrefix, 'MICRO', INDETERMINATE) -nano = getattr(IfcSIPrefix, 'NANO', INDETERMINATE) -pico = getattr(IfcSIPrefix, 'PICO', INDETERMINATE) -femto = getattr(IfcSIPrefix, 'FEMTO', INDETERMINATE) -atto = getattr(IfcSIPrefix, 'ATTO', INDETERMINATE) +exa = IfcSIPrefix.EXA +peta = IfcSIPrefix.PETA +tera = IfcSIPrefix.TERA +giga = IfcSIPrefix.GIGA +mega = IfcSIPrefix.MEGA +kilo = IfcSIPrefix.KILO +hecto = IfcSIPrefix.HECTO +deca = IfcSIPrefix.DECA +deci = IfcSIPrefix.DECI +centi = IfcSIPrefix.CENTI +milli = IfcSIPrefix.MILLI +micro = IfcSIPrefix.MICRO +nano = IfcSIPrefix.NANO +pico = IfcSIPrefix.PICO +femto = IfcSIPrefix.FEMTO +atto = IfcSIPrefix.ATTO IfcSIUnitName = enum_namespace() -ampere = getattr(IfcSIUnitName, 'AMPERE', INDETERMINATE) -becquerel = getattr(IfcSIUnitName, 'BECQUEREL', INDETERMINATE) -candela = getattr(IfcSIUnitName, 'CANDELA', INDETERMINATE) -coulomb = getattr(IfcSIUnitName, 'COULOMB', INDETERMINATE) -cubic_metre = getattr(IfcSIUnitName, 'CUBIC_METRE', INDETERMINATE) -degree_celsius = getattr(IfcSIUnitName, 'DEGREE_CELSIUS', INDETERMINATE) -farad = getattr(IfcSIUnitName, 'FARAD', INDETERMINATE) -gram = getattr(IfcSIUnitName, 'GRAM', INDETERMINATE) -gray = getattr(IfcSIUnitName, 'GRAY', INDETERMINATE) -henry = getattr(IfcSIUnitName, 'HENRY', INDETERMINATE) -hertz = getattr(IfcSIUnitName, 'HERTZ', INDETERMINATE) -joule = getattr(IfcSIUnitName, 'JOULE', INDETERMINATE) -kelvin = getattr(IfcSIUnitName, 'KELVIN', INDETERMINATE) -lumen = getattr(IfcSIUnitName, 'LUMEN', INDETERMINATE) -lux = getattr(IfcSIUnitName, 'LUX', INDETERMINATE) -metre = getattr(IfcSIUnitName, 'METRE', INDETERMINATE) -mole = getattr(IfcSIUnitName, 'MOLE', INDETERMINATE) -newton = getattr(IfcSIUnitName, 'NEWTON', INDETERMINATE) -ohm = getattr(IfcSIUnitName, 'OHM', INDETERMINATE) -pascal = getattr(IfcSIUnitName, 'PASCAL', INDETERMINATE) -radian = getattr(IfcSIUnitName, 'RADIAN', INDETERMINATE) -second = getattr(IfcSIUnitName, 'SECOND', INDETERMINATE) -siemens = getattr(IfcSIUnitName, 'SIEMENS', INDETERMINATE) -sievert = getattr(IfcSIUnitName, 'SIEVERT', INDETERMINATE) -square_metre = getattr(IfcSIUnitName, 'SQUARE_METRE', INDETERMINATE) -steradian = getattr(IfcSIUnitName, 'STERADIAN', INDETERMINATE) -tesla = getattr(IfcSIUnitName, 'TESLA', INDETERMINATE) -volt = getattr(IfcSIUnitName, 'VOLT', INDETERMINATE) -watt = getattr(IfcSIUnitName, 'WATT', INDETERMINATE) -weber = getattr(IfcSIUnitName, 'WEBER', INDETERMINATE) +ampere = IfcSIUnitName.AMPERE +becquerel = IfcSIUnitName.BECQUEREL +candela = IfcSIUnitName.CANDELA +coulomb = IfcSIUnitName.COULOMB +cubic_metre = IfcSIUnitName.CUBIC_METRE +degree_celsius = IfcSIUnitName.DEGREE_CELSIUS +farad = IfcSIUnitName.FARAD +gram = IfcSIUnitName.GRAM +gray = IfcSIUnitName.GRAY +henry = IfcSIUnitName.HENRY +hertz = IfcSIUnitName.HERTZ +joule = IfcSIUnitName.JOULE +kelvin = IfcSIUnitName.KELVIN +lumen = IfcSIUnitName.LUMEN +lux = IfcSIUnitName.LUX +metre = IfcSIUnitName.METRE +mole = IfcSIUnitName.MOLE +newton = IfcSIUnitName.NEWTON +ohm = IfcSIUnitName.OHM +pascal = IfcSIUnitName.PASCAL +radian = IfcSIUnitName.RADIAN +second = IfcSIUnitName.SECOND +siemens = IfcSIUnitName.SIEMENS +sievert = IfcSIUnitName.SIEVERT +square_metre = IfcSIUnitName.SQUARE_METRE +steradian = IfcSIUnitName.STERADIAN +tesla = IfcSIUnitName.TESLA +volt = IfcSIUnitName.VOLT +watt = IfcSIUnitName.WATT +weber = IfcSIUnitName.WEBER IfcSanitaryTerminalTypeEnum = enum_namespace() -bath = getattr(IfcSanitaryTerminalTypeEnum, 'BATH', INDETERMINATE) -bidet = getattr(IfcSanitaryTerminalTypeEnum, 'BIDET', INDETERMINATE) -cistern = getattr(IfcSanitaryTerminalTypeEnum, 'CISTERN', INDETERMINATE) -shower = getattr(IfcSanitaryTerminalTypeEnum, 'SHOWER', INDETERMINATE) -sink = getattr(IfcSanitaryTerminalTypeEnum, 'SINK', INDETERMINATE) -sanitaryfountain = getattr(IfcSanitaryTerminalTypeEnum, 'SANITARYFOUNTAIN', INDETERMINATE) -toiletpan = getattr(IfcSanitaryTerminalTypeEnum, 'TOILETPAN', INDETERMINATE) -urinal = getattr(IfcSanitaryTerminalTypeEnum, 'URINAL', INDETERMINATE) -washhandbasin = getattr(IfcSanitaryTerminalTypeEnum, 'WASHHANDBASIN', INDETERMINATE) -wcseat = getattr(IfcSanitaryTerminalTypeEnum, 'WCSEAT', INDETERMINATE) -userdefined = getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSanitaryTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +bath = IfcSanitaryTerminalTypeEnum.BATH +bidet = IfcSanitaryTerminalTypeEnum.BIDET +cistern = IfcSanitaryTerminalTypeEnum.CISTERN +shower = IfcSanitaryTerminalTypeEnum.SHOWER +sink = IfcSanitaryTerminalTypeEnum.SINK +sanitaryfountain = IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN +toiletpan = IfcSanitaryTerminalTypeEnum.TOILETPAN +urinal = IfcSanitaryTerminalTypeEnum.URINAL +washhandbasin = IfcSanitaryTerminalTypeEnum.WASHHANDBASIN +wcseat = IfcSanitaryTerminalTypeEnum.WCSEAT +userdefined = IfcSanitaryTerminalTypeEnum.USERDEFINED +notdefined = IfcSanitaryTerminalTypeEnum.NOTDEFINED IfcSectionTypeEnum = enum_namespace() -uniform = getattr(IfcSectionTypeEnum, 'UNIFORM', INDETERMINATE) -tapered = getattr(IfcSectionTypeEnum, 'TAPERED', INDETERMINATE) +uniform = IfcSectionTypeEnum.UNIFORM +tapered = IfcSectionTypeEnum.TAPERED IfcSensorTypeEnum = enum_namespace() -co2sensor = getattr(IfcSensorTypeEnum, 'CO2SENSOR', INDETERMINATE) -firesensor = getattr(IfcSensorTypeEnum, 'FIRESENSOR', INDETERMINATE) -flowsensor = getattr(IfcSensorTypeEnum, 'FLOWSENSOR', INDETERMINATE) -gassensor = getattr(IfcSensorTypeEnum, 'GASSENSOR', INDETERMINATE) -heatsensor = getattr(IfcSensorTypeEnum, 'HEATSENSOR', INDETERMINATE) -humiditysensor = getattr(IfcSensorTypeEnum, 'HUMIDITYSENSOR', INDETERMINATE) -lightsensor = getattr(IfcSensorTypeEnum, 'LIGHTSENSOR', INDETERMINATE) -moisturesensor = getattr(IfcSensorTypeEnum, 'MOISTURESENSOR', INDETERMINATE) -movementsensor = getattr(IfcSensorTypeEnum, 'MOVEMENTSENSOR', INDETERMINATE) -pressuresensor = getattr(IfcSensorTypeEnum, 'PRESSURESENSOR', INDETERMINATE) -smokesensor = getattr(IfcSensorTypeEnum, 'SMOKESENSOR', INDETERMINATE) -soundsensor = getattr(IfcSensorTypeEnum, 'SOUNDSENSOR', INDETERMINATE) -temperaturesensor = getattr(IfcSensorTypeEnum, 'TEMPERATURESENSOR', INDETERMINATE) -userdefined = getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSensorTypeEnum, 'NOTDEFINED', INDETERMINATE) +co2sensor = IfcSensorTypeEnum.CO2SENSOR +firesensor = IfcSensorTypeEnum.FIRESENSOR +flowsensor = IfcSensorTypeEnum.FLOWSENSOR +gassensor = IfcSensorTypeEnum.GASSENSOR +heatsensor = IfcSensorTypeEnum.HEATSENSOR +humiditysensor = IfcSensorTypeEnum.HUMIDITYSENSOR +lightsensor = IfcSensorTypeEnum.LIGHTSENSOR +moisturesensor = IfcSensorTypeEnum.MOISTURESENSOR +movementsensor = IfcSensorTypeEnum.MOVEMENTSENSOR +pressuresensor = IfcSensorTypeEnum.PRESSURESENSOR +smokesensor = IfcSensorTypeEnum.SMOKESENSOR +soundsensor = IfcSensorTypeEnum.SOUNDSENSOR +temperaturesensor = IfcSensorTypeEnum.TEMPERATURESENSOR +userdefined = IfcSensorTypeEnum.USERDEFINED +notdefined = IfcSensorTypeEnum.NOTDEFINED IfcSequenceEnum = enum_namespace() -start_start = getattr(IfcSequenceEnum, 'START_START', INDETERMINATE) -start_finish = getattr(IfcSequenceEnum, 'START_FINISH', INDETERMINATE) -finish_start = getattr(IfcSequenceEnum, 'FINISH_START', INDETERMINATE) -finish_finish = getattr(IfcSequenceEnum, 'FINISH_FINISH', INDETERMINATE) -notdefined = getattr(IfcSequenceEnum, 'NOTDEFINED', INDETERMINATE) +start_start = IfcSequenceEnum.START_START +start_finish = IfcSequenceEnum.START_FINISH +finish_start = IfcSequenceEnum.FINISH_START +finish_finish = IfcSequenceEnum.FINISH_FINISH +notdefined = IfcSequenceEnum.NOTDEFINED IfcServiceLifeFactorTypeEnum = enum_namespace() -a_qualityofcomponents = getattr(IfcServiceLifeFactorTypeEnum, 'A_QUALITYOFCOMPONENTS', INDETERMINATE) -b_designlevel = getattr(IfcServiceLifeFactorTypeEnum, 'B_DESIGNLEVEL', INDETERMINATE) -c_workexecutionlevel = getattr(IfcServiceLifeFactorTypeEnum, 'C_WORKEXECUTIONLEVEL', INDETERMINATE) -d_indoorenvironment = getattr(IfcServiceLifeFactorTypeEnum, 'D_INDOORENVIRONMENT', INDETERMINATE) -e_outdoorenvironment = getattr(IfcServiceLifeFactorTypeEnum, 'E_OUTDOORENVIRONMENT', INDETERMINATE) -f_inuseconditions = getattr(IfcServiceLifeFactorTypeEnum, 'F_INUSECONDITIONS', INDETERMINATE) -g_maintenancelevel = getattr(IfcServiceLifeFactorTypeEnum, 'G_MAINTENANCELEVEL', INDETERMINATE) -userdefined = getattr(IfcServiceLifeFactorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcServiceLifeFactorTypeEnum, 'NOTDEFINED', INDETERMINATE) +a_qualityofcomponents = IfcServiceLifeFactorTypeEnum.A_QUALITYOFCOMPONENTS +b_designlevel = IfcServiceLifeFactorTypeEnum.B_DESIGNLEVEL +c_workexecutionlevel = IfcServiceLifeFactorTypeEnum.C_WORKEXECUTIONLEVEL +d_indoorenvironment = IfcServiceLifeFactorTypeEnum.D_INDOORENVIRONMENT +e_outdoorenvironment = IfcServiceLifeFactorTypeEnum.E_OUTDOORENVIRONMENT +f_inuseconditions = IfcServiceLifeFactorTypeEnum.F_INUSECONDITIONS +g_maintenancelevel = IfcServiceLifeFactorTypeEnum.G_MAINTENANCELEVEL +userdefined = IfcServiceLifeFactorTypeEnum.USERDEFINED +notdefined = IfcServiceLifeFactorTypeEnum.NOTDEFINED IfcServiceLifeTypeEnum = enum_namespace() -actualservicelife = getattr(IfcServiceLifeTypeEnum, 'ACTUALSERVICELIFE', INDETERMINATE) -expectedservicelife = getattr(IfcServiceLifeTypeEnum, 'EXPECTEDSERVICELIFE', INDETERMINATE) -optimisticreferenceservicelife = getattr(IfcServiceLifeTypeEnum, 'OPTIMISTICREFERENCESERVICELIFE', INDETERMINATE) -pessimisticreferenceservicelife = getattr(IfcServiceLifeTypeEnum, 'PESSIMISTICREFERENCESERVICELIFE', INDETERMINATE) -referenceservicelife = getattr(IfcServiceLifeTypeEnum, 'REFERENCESERVICELIFE', INDETERMINATE) +actualservicelife = IfcServiceLifeTypeEnum.ACTUALSERVICELIFE +expectedservicelife = IfcServiceLifeTypeEnum.EXPECTEDSERVICELIFE +optimisticreferenceservicelife = IfcServiceLifeTypeEnum.OPTIMISTICREFERENCESERVICELIFE +pessimisticreferenceservicelife = IfcServiceLifeTypeEnum.PESSIMISTICREFERENCESERVICELIFE +referenceservicelife = IfcServiceLifeTypeEnum.REFERENCESERVICELIFE IfcSlabTypeEnum = enum_namespace() -floor = getattr(IfcSlabTypeEnum, 'FLOOR', INDETERMINATE) -roof = getattr(IfcSlabTypeEnum, 'ROOF', INDETERMINATE) -landing = getattr(IfcSlabTypeEnum, 'LANDING', INDETERMINATE) -baseslab = getattr(IfcSlabTypeEnum, 'BASESLAB', INDETERMINATE) -userdefined = getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSlabTypeEnum, 'NOTDEFINED', INDETERMINATE) +floor = IfcSlabTypeEnum.FLOOR +roof = IfcSlabTypeEnum.ROOF +landing = IfcSlabTypeEnum.LANDING +baseslab = IfcSlabTypeEnum.BASESLAB +userdefined = IfcSlabTypeEnum.USERDEFINED +notdefined = IfcSlabTypeEnum.NOTDEFINED IfcSoundScaleEnum = enum_namespace() -dba = getattr(IfcSoundScaleEnum, 'DBA', INDETERMINATE) -dbb = getattr(IfcSoundScaleEnum, 'DBB', INDETERMINATE) -dbc = getattr(IfcSoundScaleEnum, 'DBC', INDETERMINATE) -nc = getattr(IfcSoundScaleEnum, 'NC', INDETERMINATE) -nr = getattr(IfcSoundScaleEnum, 'NR', INDETERMINATE) -userdefined = getattr(IfcSoundScaleEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSoundScaleEnum, 'NOTDEFINED', INDETERMINATE) +dba = IfcSoundScaleEnum.DBA +dbb = IfcSoundScaleEnum.DBB +dbc = IfcSoundScaleEnum.DBC +nc = IfcSoundScaleEnum.NC +nr = IfcSoundScaleEnum.NR +userdefined = IfcSoundScaleEnum.USERDEFINED +notdefined = IfcSoundScaleEnum.NOTDEFINED IfcSpaceHeaterTypeEnum = enum_namespace() -sectionalradiator = getattr(IfcSpaceHeaterTypeEnum, 'SECTIONALRADIATOR', INDETERMINATE) -panelradiator = getattr(IfcSpaceHeaterTypeEnum, 'PANELRADIATOR', INDETERMINATE) -tubularradiator = getattr(IfcSpaceHeaterTypeEnum, 'TUBULARRADIATOR', INDETERMINATE) -convector = getattr(IfcSpaceHeaterTypeEnum, 'CONVECTOR', INDETERMINATE) -baseboardheater = getattr(IfcSpaceHeaterTypeEnum, 'BASEBOARDHEATER', INDETERMINATE) -finnedtubeunit = getattr(IfcSpaceHeaterTypeEnum, 'FINNEDTUBEUNIT', INDETERMINATE) -unitheater = getattr(IfcSpaceHeaterTypeEnum, 'UNITHEATER', INDETERMINATE) -userdefined = getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpaceHeaterTypeEnum, 'NOTDEFINED', INDETERMINATE) +sectionalradiator = IfcSpaceHeaterTypeEnum.SECTIONALRADIATOR +panelradiator = IfcSpaceHeaterTypeEnum.PANELRADIATOR +tubularradiator = IfcSpaceHeaterTypeEnum.TUBULARRADIATOR +convector = IfcSpaceHeaterTypeEnum.CONVECTOR +baseboardheater = IfcSpaceHeaterTypeEnum.BASEBOARDHEATER +finnedtubeunit = IfcSpaceHeaterTypeEnum.FINNEDTUBEUNIT +unitheater = IfcSpaceHeaterTypeEnum.UNITHEATER +userdefined = IfcSpaceHeaterTypeEnum.USERDEFINED +notdefined = IfcSpaceHeaterTypeEnum.NOTDEFINED IfcSpaceTypeEnum = enum_namespace() -userdefined = getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpaceTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcSpaceTypeEnum.USERDEFINED +notdefined = IfcSpaceTypeEnum.NOTDEFINED IfcStackTerminalTypeEnum = enum_namespace() -birdcage = getattr(IfcStackTerminalTypeEnum, 'BIRDCAGE', INDETERMINATE) -cowl = getattr(IfcStackTerminalTypeEnum, 'COWL', INDETERMINATE) -rainwaterhopper = getattr(IfcStackTerminalTypeEnum, 'RAINWATERHOPPER', INDETERMINATE) -userdefined = getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStackTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +birdcage = IfcStackTerminalTypeEnum.BIRDCAGE +cowl = IfcStackTerminalTypeEnum.COWL +rainwaterhopper = IfcStackTerminalTypeEnum.RAINWATERHOPPER +userdefined = IfcStackTerminalTypeEnum.USERDEFINED +notdefined = IfcStackTerminalTypeEnum.NOTDEFINED IfcStairFlightTypeEnum = enum_namespace() -straight = getattr(IfcStairFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -winder = getattr(IfcStairFlightTypeEnum, 'WINDER', INDETERMINATE) -spiral = getattr(IfcStairFlightTypeEnum, 'SPIRAL', INDETERMINATE) -curved = getattr(IfcStairFlightTypeEnum, 'CURVED', INDETERMINATE) -freeform = getattr(IfcStairFlightTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStairFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcStairFlightTypeEnum.STRAIGHT +winder = IfcStairFlightTypeEnum.WINDER +spiral = IfcStairFlightTypeEnum.SPIRAL +curved = IfcStairFlightTypeEnum.CURVED +freeform = IfcStairFlightTypeEnum.FREEFORM +userdefined = IfcStairFlightTypeEnum.USERDEFINED +notdefined = IfcStairFlightTypeEnum.NOTDEFINED IfcStairTypeEnum = enum_namespace() -straight_run_stair = getattr(IfcStairTypeEnum, 'STRAIGHT_RUN_STAIR', INDETERMINATE) -two_straight_run_stair = getattr(IfcStairTypeEnum, 'TWO_STRAIGHT_RUN_STAIR', INDETERMINATE) -quarter_winding_stair = getattr(IfcStairTypeEnum, 'QUARTER_WINDING_STAIR', INDETERMINATE) -quarter_turn_stair = getattr(IfcStairTypeEnum, 'QUARTER_TURN_STAIR', INDETERMINATE) -half_winding_stair = getattr(IfcStairTypeEnum, 'HALF_WINDING_STAIR', INDETERMINATE) -half_turn_stair = getattr(IfcStairTypeEnum, 'HALF_TURN_STAIR', INDETERMINATE) -two_quarter_winding_stair = getattr(IfcStairTypeEnum, 'TWO_QUARTER_WINDING_STAIR', INDETERMINATE) -two_quarter_turn_stair = getattr(IfcStairTypeEnum, 'TWO_QUARTER_TURN_STAIR', INDETERMINATE) -three_quarter_winding_stair = getattr(IfcStairTypeEnum, 'THREE_QUARTER_WINDING_STAIR', INDETERMINATE) -three_quarter_turn_stair = getattr(IfcStairTypeEnum, 'THREE_QUARTER_TURN_STAIR', INDETERMINATE) -spiral_stair = getattr(IfcStairTypeEnum, 'SPIRAL_STAIR', INDETERMINATE) -double_return_stair = getattr(IfcStairTypeEnum, 'DOUBLE_RETURN_STAIR', INDETERMINATE) -curved_run_stair = getattr(IfcStairTypeEnum, 'CURVED_RUN_STAIR', INDETERMINATE) -two_curved_run_stair = getattr(IfcStairTypeEnum, 'TWO_CURVED_RUN_STAIR', INDETERMINATE) -userdefined = getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStairTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_stair = IfcStairTypeEnum.STRAIGHT_RUN_STAIR +two_straight_run_stair = IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR +quarter_winding_stair = IfcStairTypeEnum.QUARTER_WINDING_STAIR +quarter_turn_stair = IfcStairTypeEnum.QUARTER_TURN_STAIR +half_winding_stair = IfcStairTypeEnum.HALF_WINDING_STAIR +half_turn_stair = IfcStairTypeEnum.HALF_TURN_STAIR +two_quarter_winding_stair = IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR +two_quarter_turn_stair = IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR +three_quarter_winding_stair = IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR +three_quarter_turn_stair = IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR +spiral_stair = IfcStairTypeEnum.SPIRAL_STAIR +double_return_stair = IfcStairTypeEnum.DOUBLE_RETURN_STAIR +curved_run_stair = IfcStairTypeEnum.CURVED_RUN_STAIR +two_curved_run_stair = IfcStairTypeEnum.TWO_CURVED_RUN_STAIR +userdefined = IfcStairTypeEnum.USERDEFINED +notdefined = IfcStairTypeEnum.NOTDEFINED IfcStateEnum = enum_namespace() -readwrite = getattr(IfcStateEnum, 'READWRITE', INDETERMINATE) -readonly = getattr(IfcStateEnum, 'READONLY', INDETERMINATE) -locked = getattr(IfcStateEnum, 'LOCKED', INDETERMINATE) -readwritelocked = getattr(IfcStateEnum, 'READWRITELOCKED', INDETERMINATE) -readonlylocked = getattr(IfcStateEnum, 'READONLYLOCKED', INDETERMINATE) +readwrite = IfcStateEnum.READWRITE +readonly = IfcStateEnum.READONLY +locked = IfcStateEnum.LOCKED +readwritelocked = IfcStateEnum.READWRITELOCKED +readonlylocked = IfcStateEnum.READONLYLOCKED IfcStructuralCurveTypeEnum = enum_namespace() -rigid_joined_member = getattr(IfcStructuralCurveTypeEnum, 'RIGID_JOINED_MEMBER', INDETERMINATE) -pin_joined_member = getattr(IfcStructuralCurveTypeEnum, 'PIN_JOINED_MEMBER', INDETERMINATE) -cable = getattr(IfcStructuralCurveTypeEnum, 'CABLE', INDETERMINATE) -tension_member = getattr(IfcStructuralCurveTypeEnum, 'TENSION_MEMBER', INDETERMINATE) -compression_member = getattr(IfcStructuralCurveTypeEnum, 'COMPRESSION_MEMBER', INDETERMINATE) -userdefined = getattr(IfcStructuralCurveTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralCurveTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigid_joined_member = IfcStructuralCurveTypeEnum.RIGID_JOINED_MEMBER +pin_joined_member = IfcStructuralCurveTypeEnum.PIN_JOINED_MEMBER +cable = IfcStructuralCurveTypeEnum.CABLE +tension_member = IfcStructuralCurveTypeEnum.TENSION_MEMBER +compression_member = IfcStructuralCurveTypeEnum.COMPRESSION_MEMBER +userdefined = IfcStructuralCurveTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveTypeEnum.NOTDEFINED IfcStructuralSurfaceTypeEnum = enum_namespace() -bending_element = getattr(IfcStructuralSurfaceTypeEnum, 'BENDING_ELEMENT', INDETERMINATE) -membrane_element = getattr(IfcStructuralSurfaceTypeEnum, 'MEMBRANE_ELEMENT', INDETERMINATE) -shell = getattr(IfcStructuralSurfaceTypeEnum, 'SHELL', INDETERMINATE) -userdefined = getattr(IfcStructuralSurfaceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralSurfaceTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_element = IfcStructuralSurfaceTypeEnum.BENDING_ELEMENT +membrane_element = IfcStructuralSurfaceTypeEnum.MEMBRANE_ELEMENT +shell = IfcStructuralSurfaceTypeEnum.SHELL +userdefined = IfcStructuralSurfaceTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceTypeEnum.NOTDEFINED IfcSurfaceSide = enum_namespace() -positive = getattr(IfcSurfaceSide, 'POSITIVE', INDETERMINATE) -negative = getattr(IfcSurfaceSide, 'NEGATIVE', INDETERMINATE) -both = getattr(IfcSurfaceSide, 'BOTH', INDETERMINATE) +positive = IfcSurfaceSide.POSITIVE +negative = IfcSurfaceSide.NEGATIVE +both = IfcSurfaceSide.BOTH IfcSurfaceTextureEnum = enum_namespace() -bump = getattr(IfcSurfaceTextureEnum, 'BUMP', INDETERMINATE) -opacity = getattr(IfcSurfaceTextureEnum, 'OPACITY', INDETERMINATE) -reflection = getattr(IfcSurfaceTextureEnum, 'REFLECTION', INDETERMINATE) -selfillumination = getattr(IfcSurfaceTextureEnum, 'SELFILLUMINATION', INDETERMINATE) -shininess = getattr(IfcSurfaceTextureEnum, 'SHININESS', INDETERMINATE) -specular = getattr(IfcSurfaceTextureEnum, 'SPECULAR', INDETERMINATE) -texture = getattr(IfcSurfaceTextureEnum, 'TEXTURE', INDETERMINATE) -transparencymap = getattr(IfcSurfaceTextureEnum, 'TRANSPARENCYMAP', INDETERMINATE) -notdefined = getattr(IfcSurfaceTextureEnum, 'NOTDEFINED', INDETERMINATE) +bump = IfcSurfaceTextureEnum.BUMP +opacity = IfcSurfaceTextureEnum.OPACITY +reflection = IfcSurfaceTextureEnum.REFLECTION +selfillumination = IfcSurfaceTextureEnum.SELFILLUMINATION +shininess = IfcSurfaceTextureEnum.SHININESS +specular = IfcSurfaceTextureEnum.SPECULAR +texture = IfcSurfaceTextureEnum.TEXTURE +transparencymap = IfcSurfaceTextureEnum.TRANSPARENCYMAP +notdefined = IfcSurfaceTextureEnum.NOTDEFINED IfcSwitchingDeviceTypeEnum = enum_namespace() -contactor = getattr(IfcSwitchingDeviceTypeEnum, 'CONTACTOR', INDETERMINATE) -emergencystop = getattr(IfcSwitchingDeviceTypeEnum, 'EMERGENCYSTOP', INDETERMINATE) -starter = getattr(IfcSwitchingDeviceTypeEnum, 'STARTER', INDETERMINATE) -switchdisconnector = getattr(IfcSwitchingDeviceTypeEnum, 'SWITCHDISCONNECTOR', INDETERMINATE) -toggleswitch = getattr(IfcSwitchingDeviceTypeEnum, 'TOGGLESWITCH', INDETERMINATE) -userdefined = getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSwitchingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +contactor = IfcSwitchingDeviceTypeEnum.CONTACTOR +emergencystop = IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP +starter = IfcSwitchingDeviceTypeEnum.STARTER +switchdisconnector = IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR +toggleswitch = IfcSwitchingDeviceTypeEnum.TOGGLESWITCH +userdefined = IfcSwitchingDeviceTypeEnum.USERDEFINED +notdefined = IfcSwitchingDeviceTypeEnum.NOTDEFINED IfcTankTypeEnum = enum_namespace() -preformed = getattr(IfcTankTypeEnum, 'PREFORMED', INDETERMINATE) -sectional = getattr(IfcTankTypeEnum, 'SECTIONAL', INDETERMINATE) -expansion = getattr(IfcTankTypeEnum, 'EXPANSION', INDETERMINATE) -pressurevessel = getattr(IfcTankTypeEnum, 'PRESSUREVESSEL', INDETERMINATE) -userdefined = getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTankTypeEnum, 'NOTDEFINED', INDETERMINATE) +preformed = IfcTankTypeEnum.PREFORMED +sectional = IfcTankTypeEnum.SECTIONAL +expansion = IfcTankTypeEnum.EXPANSION +pressurevessel = IfcTankTypeEnum.PRESSUREVESSEL +userdefined = IfcTankTypeEnum.USERDEFINED +notdefined = IfcTankTypeEnum.NOTDEFINED IfcTendonTypeEnum = enum_namespace() -strand = getattr(IfcTendonTypeEnum, 'STRAND', INDETERMINATE) -wire = getattr(IfcTendonTypeEnum, 'WIRE', INDETERMINATE) -bar = getattr(IfcTendonTypeEnum, 'BAR', INDETERMINATE) -coated = getattr(IfcTendonTypeEnum, 'COATED', INDETERMINATE) -userdefined = getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonTypeEnum, 'NOTDEFINED', INDETERMINATE) +strand = IfcTendonTypeEnum.STRAND +wire = IfcTendonTypeEnum.WIRE +bar = IfcTendonTypeEnum.BAR +coated = IfcTendonTypeEnum.COATED +userdefined = IfcTendonTypeEnum.USERDEFINED +notdefined = IfcTendonTypeEnum.NOTDEFINED IfcTextPath = enum_namespace() -left = getattr(IfcTextPath, 'LEFT', INDETERMINATE) -right = getattr(IfcTextPath, 'RIGHT', INDETERMINATE) -up = getattr(IfcTextPath, 'UP', INDETERMINATE) -down = getattr(IfcTextPath, 'DOWN', INDETERMINATE) +left = IfcTextPath.LEFT +right = IfcTextPath.RIGHT +up = IfcTextPath.UP +down = IfcTextPath.DOWN IfcThermalLoadSourceEnum = enum_namespace() -people = getattr(IfcThermalLoadSourceEnum, 'PEOPLE', INDETERMINATE) -lighting = getattr(IfcThermalLoadSourceEnum, 'LIGHTING', INDETERMINATE) -equipment = getattr(IfcThermalLoadSourceEnum, 'EQUIPMENT', INDETERMINATE) -ventilationindoorair = getattr(IfcThermalLoadSourceEnum, 'VENTILATIONINDOORAIR', INDETERMINATE) -ventilationoutsideair = getattr(IfcThermalLoadSourceEnum, 'VENTILATIONOUTSIDEAIR', INDETERMINATE) -recirculatedair = getattr(IfcThermalLoadSourceEnum, 'RECIRCULATEDAIR', INDETERMINATE) -exhaustair = getattr(IfcThermalLoadSourceEnum, 'EXHAUSTAIR', INDETERMINATE) -airexchangerate = getattr(IfcThermalLoadSourceEnum, 'AIREXCHANGERATE', INDETERMINATE) -drybulbtemperature = getattr(IfcThermalLoadSourceEnum, 'DRYBULBTEMPERATURE', INDETERMINATE) -relativehumidity = getattr(IfcThermalLoadSourceEnum, 'RELATIVEHUMIDITY', INDETERMINATE) -infiltration = getattr(IfcThermalLoadSourceEnum, 'INFILTRATION', INDETERMINATE) -userdefined = getattr(IfcThermalLoadSourceEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcThermalLoadSourceEnum, 'NOTDEFINED', INDETERMINATE) +people = IfcThermalLoadSourceEnum.PEOPLE +lighting = IfcThermalLoadSourceEnum.LIGHTING +equipment = IfcThermalLoadSourceEnum.EQUIPMENT +ventilationindoorair = IfcThermalLoadSourceEnum.VENTILATIONINDOORAIR +ventilationoutsideair = IfcThermalLoadSourceEnum.VENTILATIONOUTSIDEAIR +recirculatedair = IfcThermalLoadSourceEnum.RECIRCULATEDAIR +exhaustair = IfcThermalLoadSourceEnum.EXHAUSTAIR +airexchangerate = IfcThermalLoadSourceEnum.AIREXCHANGERATE +drybulbtemperature = IfcThermalLoadSourceEnum.DRYBULBTEMPERATURE +relativehumidity = IfcThermalLoadSourceEnum.RELATIVEHUMIDITY +infiltration = IfcThermalLoadSourceEnum.INFILTRATION +userdefined = IfcThermalLoadSourceEnum.USERDEFINED +notdefined = IfcThermalLoadSourceEnum.NOTDEFINED IfcThermalLoadTypeEnum = enum_namespace() -sensible = getattr(IfcThermalLoadTypeEnum, 'SENSIBLE', INDETERMINATE) -latent = getattr(IfcThermalLoadTypeEnum, 'LATENT', INDETERMINATE) -radiant = getattr(IfcThermalLoadTypeEnum, 'RADIANT', INDETERMINATE) -notdefined = getattr(IfcThermalLoadTypeEnum, 'NOTDEFINED', INDETERMINATE) +sensible = IfcThermalLoadTypeEnum.SENSIBLE +latent = IfcThermalLoadTypeEnum.LATENT +radiant = IfcThermalLoadTypeEnum.RADIANT +notdefined = IfcThermalLoadTypeEnum.NOTDEFINED IfcTimeSeriesDataTypeEnum = enum_namespace() -continuous = getattr(IfcTimeSeriesDataTypeEnum, 'CONTINUOUS', INDETERMINATE) -discrete = getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETE', INDETERMINATE) -discretebinary = getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETEBINARY', INDETERMINATE) -piecewisebinary = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISEBINARY', INDETERMINATE) -piecewiseconstant = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONSTANT', INDETERMINATE) -piecewisecontinuous = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONTINUOUS', INDETERMINATE) -notdefined = getattr(IfcTimeSeriesDataTypeEnum, 'NOTDEFINED', INDETERMINATE) +continuous = IfcTimeSeriesDataTypeEnum.CONTINUOUS +discrete = IfcTimeSeriesDataTypeEnum.DISCRETE +discretebinary = IfcTimeSeriesDataTypeEnum.DISCRETEBINARY +piecewisebinary = IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY +piecewiseconstant = IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT +piecewisecontinuous = IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS +notdefined = IfcTimeSeriesDataTypeEnum.NOTDEFINED IfcTimeSeriesScheduleTypeEnum = enum_namespace() -annual = getattr(IfcTimeSeriesScheduleTypeEnum, 'ANNUAL', INDETERMINATE) -monthly = getattr(IfcTimeSeriesScheduleTypeEnum, 'MONTHLY', INDETERMINATE) -weekly = getattr(IfcTimeSeriesScheduleTypeEnum, 'WEEKLY', INDETERMINATE) -daily = getattr(IfcTimeSeriesScheduleTypeEnum, 'DAILY', INDETERMINATE) -userdefined = getattr(IfcTimeSeriesScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTimeSeriesScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +annual = IfcTimeSeriesScheduleTypeEnum.ANNUAL +monthly = IfcTimeSeriesScheduleTypeEnum.MONTHLY +weekly = IfcTimeSeriesScheduleTypeEnum.WEEKLY +daily = IfcTimeSeriesScheduleTypeEnum.DAILY +userdefined = IfcTimeSeriesScheduleTypeEnum.USERDEFINED +notdefined = IfcTimeSeriesScheduleTypeEnum.NOTDEFINED IfcTransformerTypeEnum = enum_namespace() -current = getattr(IfcTransformerTypeEnum, 'CURRENT', INDETERMINATE) -frequency = getattr(IfcTransformerTypeEnum, 'FREQUENCY', INDETERMINATE) -voltage = getattr(IfcTransformerTypeEnum, 'VOLTAGE', INDETERMINATE) -userdefined = getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTransformerTypeEnum, 'NOTDEFINED', INDETERMINATE) +current = IfcTransformerTypeEnum.CURRENT +frequency = IfcTransformerTypeEnum.FREQUENCY +voltage = IfcTransformerTypeEnum.VOLTAGE +userdefined = IfcTransformerTypeEnum.USERDEFINED +notdefined = IfcTransformerTypeEnum.NOTDEFINED IfcTransitionCode = enum_namespace() -discontinuous = getattr(IfcTransitionCode, 'DISCONTINUOUS', INDETERMINATE) -continuous = getattr(IfcTransitionCode, 'CONTINUOUS', INDETERMINATE) -contsamegradient = getattr(IfcTransitionCode, 'CONTSAMEGRADIENT', INDETERMINATE) -contsamegradientsamecurvature = getattr(IfcTransitionCode, 'CONTSAMEGRADIENTSAMECURVATURE', INDETERMINATE) +discontinuous = IfcTransitionCode.DISCONTINUOUS +continuous = IfcTransitionCode.CONTINUOUS +contsamegradient = IfcTransitionCode.CONTSAMEGRADIENT +contsamegradientsamecurvature = IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE IfcTransportElementTypeEnum = enum_namespace() -elevator = getattr(IfcTransportElementTypeEnum, 'ELEVATOR', INDETERMINATE) -escalator = getattr(IfcTransportElementTypeEnum, 'ESCALATOR', INDETERMINATE) -movingwalkway = getattr(IfcTransportElementTypeEnum, 'MOVINGWALKWAY', INDETERMINATE) -userdefined = getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTransportElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +elevator = IfcTransportElementTypeEnum.ELEVATOR +escalator = IfcTransportElementTypeEnum.ESCALATOR +movingwalkway = IfcTransportElementTypeEnum.MOVINGWALKWAY +userdefined = IfcTransportElementTypeEnum.USERDEFINED +notdefined = IfcTransportElementTypeEnum.NOTDEFINED IfcTrimmingPreference = enum_namespace() -cartesian = getattr(IfcTrimmingPreference, 'CARTESIAN', INDETERMINATE) -parameter = getattr(IfcTrimmingPreference, 'PARAMETER', INDETERMINATE) -unspecified = getattr(IfcTrimmingPreference, 'UNSPECIFIED', INDETERMINATE) +cartesian = IfcTrimmingPreference.CARTESIAN +parameter = IfcTrimmingPreference.PARAMETER +unspecified = IfcTrimmingPreference.UNSPECIFIED IfcTubeBundleTypeEnum = enum_namespace() -finned = getattr(IfcTubeBundleTypeEnum, 'FINNED', INDETERMINATE) -userdefined = getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTubeBundleTypeEnum, 'NOTDEFINED', INDETERMINATE) +finned = IfcTubeBundleTypeEnum.FINNED +userdefined = IfcTubeBundleTypeEnum.USERDEFINED +notdefined = IfcTubeBundleTypeEnum.NOTDEFINED IfcUnitEnum = enum_namespace() -absorbeddoseunit = getattr(IfcUnitEnum, 'ABSORBEDDOSEUNIT', INDETERMINATE) -amountofsubstanceunit = getattr(IfcUnitEnum, 'AMOUNTOFSUBSTANCEUNIT', INDETERMINATE) -areaunit = getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE) -doseequivalentunit = getattr(IfcUnitEnum, 'DOSEEQUIVALENTUNIT', INDETERMINATE) -electriccapacitanceunit = getattr(IfcUnitEnum, 'ELECTRICCAPACITANCEUNIT', INDETERMINATE) -electricchargeunit = getattr(IfcUnitEnum, 'ELECTRICCHARGEUNIT', INDETERMINATE) -electricconductanceunit = getattr(IfcUnitEnum, 'ELECTRICCONDUCTANCEUNIT', INDETERMINATE) -electriccurrentunit = getattr(IfcUnitEnum, 'ELECTRICCURRENTUNIT', INDETERMINATE) -electricresistanceunit = getattr(IfcUnitEnum, 'ELECTRICRESISTANCEUNIT', INDETERMINATE) -electricvoltageunit = getattr(IfcUnitEnum, 'ELECTRICVOLTAGEUNIT', INDETERMINATE) -energyunit = getattr(IfcUnitEnum, 'ENERGYUNIT', INDETERMINATE) -forceunit = getattr(IfcUnitEnum, 'FORCEUNIT', INDETERMINATE) -frequencyunit = getattr(IfcUnitEnum, 'FREQUENCYUNIT', INDETERMINATE) -illuminanceunit = getattr(IfcUnitEnum, 'ILLUMINANCEUNIT', INDETERMINATE) -inductanceunit = getattr(IfcUnitEnum, 'INDUCTANCEUNIT', INDETERMINATE) -lengthunit = getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE) -luminousfluxunit = getattr(IfcUnitEnum, 'LUMINOUSFLUXUNIT', INDETERMINATE) -luminousintensityunit = getattr(IfcUnitEnum, 'LUMINOUSINTENSITYUNIT', INDETERMINATE) -magneticfluxdensityunit = getattr(IfcUnitEnum, 'MAGNETICFLUXDENSITYUNIT', INDETERMINATE) -magneticfluxunit = getattr(IfcUnitEnum, 'MAGNETICFLUXUNIT', INDETERMINATE) -massunit = getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE) -planeangleunit = getattr(IfcUnitEnum, 'PLANEANGLEUNIT', INDETERMINATE) -powerunit = getattr(IfcUnitEnum, 'POWERUNIT', INDETERMINATE) -pressureunit = getattr(IfcUnitEnum, 'PRESSUREUNIT', INDETERMINATE) -radioactivityunit = getattr(IfcUnitEnum, 'RADIOACTIVITYUNIT', INDETERMINATE) -solidangleunit = getattr(IfcUnitEnum, 'SOLIDANGLEUNIT', INDETERMINATE) -thermodynamictemperatureunit = getattr(IfcUnitEnum, 'THERMODYNAMICTEMPERATUREUNIT', INDETERMINATE) -timeunit = getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE) -volumeunit = getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE) -userdefined = getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE) +absorbeddoseunit = IfcUnitEnum.ABSORBEDDOSEUNIT +amountofsubstanceunit = IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT +areaunit = IfcUnitEnum.AREAUNIT +doseequivalentunit = IfcUnitEnum.DOSEEQUIVALENTUNIT +electriccapacitanceunit = IfcUnitEnum.ELECTRICCAPACITANCEUNIT +electricchargeunit = IfcUnitEnum.ELECTRICCHARGEUNIT +electricconductanceunit = IfcUnitEnum.ELECTRICCONDUCTANCEUNIT +electriccurrentunit = IfcUnitEnum.ELECTRICCURRENTUNIT +electricresistanceunit = IfcUnitEnum.ELECTRICRESISTANCEUNIT +electricvoltageunit = IfcUnitEnum.ELECTRICVOLTAGEUNIT +energyunit = IfcUnitEnum.ENERGYUNIT +forceunit = IfcUnitEnum.FORCEUNIT +frequencyunit = IfcUnitEnum.FREQUENCYUNIT +illuminanceunit = IfcUnitEnum.ILLUMINANCEUNIT +inductanceunit = IfcUnitEnum.INDUCTANCEUNIT +lengthunit = IfcUnitEnum.LENGTHUNIT +luminousfluxunit = IfcUnitEnum.LUMINOUSFLUXUNIT +luminousintensityunit = IfcUnitEnum.LUMINOUSINTENSITYUNIT +magneticfluxdensityunit = IfcUnitEnum.MAGNETICFLUXDENSITYUNIT +magneticfluxunit = IfcUnitEnum.MAGNETICFLUXUNIT +massunit = IfcUnitEnum.MASSUNIT +planeangleunit = IfcUnitEnum.PLANEANGLEUNIT +powerunit = IfcUnitEnum.POWERUNIT +pressureunit = IfcUnitEnum.PRESSUREUNIT +radioactivityunit = IfcUnitEnum.RADIOACTIVITYUNIT +solidangleunit = IfcUnitEnum.SOLIDANGLEUNIT +thermodynamictemperatureunit = IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT +timeunit = IfcUnitEnum.TIMEUNIT +volumeunit = IfcUnitEnum.VOLUMEUNIT +userdefined = IfcUnitEnum.USERDEFINED IfcUnitaryEquipmentTypeEnum = enum_namespace() -airhandler = getattr(IfcUnitaryEquipmentTypeEnum, 'AIRHANDLER', INDETERMINATE) -airconditioningunit = getattr(IfcUnitaryEquipmentTypeEnum, 'AIRCONDITIONINGUNIT', INDETERMINATE) -splitsystem = getattr(IfcUnitaryEquipmentTypeEnum, 'SPLITSYSTEM', INDETERMINATE) -rooftopunit = getattr(IfcUnitaryEquipmentTypeEnum, 'ROOFTOPUNIT', INDETERMINATE) -userdefined = getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcUnitaryEquipmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +airhandler = IfcUnitaryEquipmentTypeEnum.AIRHANDLER +airconditioningunit = IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT +splitsystem = IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM +rooftopunit = IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT +userdefined = IfcUnitaryEquipmentTypeEnum.USERDEFINED +notdefined = IfcUnitaryEquipmentTypeEnum.NOTDEFINED IfcValveTypeEnum = enum_namespace() -airrelease = getattr(IfcValveTypeEnum, 'AIRRELEASE', INDETERMINATE) -antivacuum = getattr(IfcValveTypeEnum, 'ANTIVACUUM', INDETERMINATE) -changeover = getattr(IfcValveTypeEnum, 'CHANGEOVER', INDETERMINATE) -check = getattr(IfcValveTypeEnum, 'CHECK', INDETERMINATE) -commissioning = getattr(IfcValveTypeEnum, 'COMMISSIONING', INDETERMINATE) -diverting = getattr(IfcValveTypeEnum, 'DIVERTING', INDETERMINATE) -drawoffcock = getattr(IfcValveTypeEnum, 'DRAWOFFCOCK', INDETERMINATE) -doublecheck = getattr(IfcValveTypeEnum, 'DOUBLECHECK', INDETERMINATE) -doubleregulating = getattr(IfcValveTypeEnum, 'DOUBLEREGULATING', INDETERMINATE) -faucet = getattr(IfcValveTypeEnum, 'FAUCET', INDETERMINATE) -flushing = getattr(IfcValveTypeEnum, 'FLUSHING', INDETERMINATE) -gascock = getattr(IfcValveTypeEnum, 'GASCOCK', INDETERMINATE) -gastap = getattr(IfcValveTypeEnum, 'GASTAP', INDETERMINATE) -isolating = getattr(IfcValveTypeEnum, 'ISOLATING', INDETERMINATE) -mixing = getattr(IfcValveTypeEnum, 'MIXING', INDETERMINATE) -pressurereducing = getattr(IfcValveTypeEnum, 'PRESSUREREDUCING', INDETERMINATE) -pressurerelief = getattr(IfcValveTypeEnum, 'PRESSURERELIEF', INDETERMINATE) -regulating = getattr(IfcValveTypeEnum, 'REGULATING', INDETERMINATE) -safetycutoff = getattr(IfcValveTypeEnum, 'SAFETYCUTOFF', INDETERMINATE) -steamtrap = getattr(IfcValveTypeEnum, 'STEAMTRAP', INDETERMINATE) -stopcock = getattr(IfcValveTypeEnum, 'STOPCOCK', INDETERMINATE) -userdefined = getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcValveTypeEnum, 'NOTDEFINED', INDETERMINATE) +airrelease = IfcValveTypeEnum.AIRRELEASE +antivacuum = IfcValveTypeEnum.ANTIVACUUM +changeover = IfcValveTypeEnum.CHANGEOVER +check = IfcValveTypeEnum.CHECK +commissioning = IfcValveTypeEnum.COMMISSIONING +diverting = IfcValveTypeEnum.DIVERTING +drawoffcock = IfcValveTypeEnum.DRAWOFFCOCK +doublecheck = IfcValveTypeEnum.DOUBLECHECK +doubleregulating = IfcValveTypeEnum.DOUBLEREGULATING +faucet = IfcValveTypeEnum.FAUCET +flushing = IfcValveTypeEnum.FLUSHING +gascock = IfcValveTypeEnum.GASCOCK +gastap = IfcValveTypeEnum.GASTAP +isolating = IfcValveTypeEnum.ISOLATING +mixing = IfcValveTypeEnum.MIXING +pressurereducing = IfcValveTypeEnum.PRESSUREREDUCING +pressurerelief = IfcValveTypeEnum.PRESSURERELIEF +regulating = IfcValveTypeEnum.REGULATING +safetycutoff = IfcValveTypeEnum.SAFETYCUTOFF +steamtrap = IfcValveTypeEnum.STEAMTRAP +stopcock = IfcValveTypeEnum.STOPCOCK +userdefined = IfcValveTypeEnum.USERDEFINED +notdefined = IfcValveTypeEnum.NOTDEFINED IfcVibrationIsolatorTypeEnum = enum_namespace() -compression = getattr(IfcVibrationIsolatorTypeEnum, 'COMPRESSION', INDETERMINATE) -spring = getattr(IfcVibrationIsolatorTypeEnum, 'SPRING', INDETERMINATE) -userdefined = getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVibrationIsolatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +compression = IfcVibrationIsolatorTypeEnum.COMPRESSION +spring = IfcVibrationIsolatorTypeEnum.SPRING +userdefined = IfcVibrationIsolatorTypeEnum.USERDEFINED +notdefined = IfcVibrationIsolatorTypeEnum.NOTDEFINED IfcWallTypeEnum = enum_namespace() -standard = getattr(IfcWallTypeEnum, 'STANDARD', INDETERMINATE) -polygonal = getattr(IfcWallTypeEnum, 'POLYGONAL', INDETERMINATE) -shear = getattr(IfcWallTypeEnum, 'SHEAR', INDETERMINATE) -elementedwall = getattr(IfcWallTypeEnum, 'ELEMENTEDWALL', INDETERMINATE) -plumbingwall = getattr(IfcWallTypeEnum, 'PLUMBINGWALL', INDETERMINATE) -userdefined = getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +standard = IfcWallTypeEnum.STANDARD +polygonal = IfcWallTypeEnum.POLYGONAL +shear = IfcWallTypeEnum.SHEAR +elementedwall = IfcWallTypeEnum.ELEMENTEDWALL +plumbingwall = IfcWallTypeEnum.PLUMBINGWALL +userdefined = IfcWallTypeEnum.USERDEFINED +notdefined = IfcWallTypeEnum.NOTDEFINED IfcWasteTerminalTypeEnum = enum_namespace() -floortrap = getattr(IfcWasteTerminalTypeEnum, 'FLOORTRAP', INDETERMINATE) -floorwaste = getattr(IfcWasteTerminalTypeEnum, 'FLOORWASTE', INDETERMINATE) -gullysump = getattr(IfcWasteTerminalTypeEnum, 'GULLYSUMP', INDETERMINATE) -gullytrap = getattr(IfcWasteTerminalTypeEnum, 'GULLYTRAP', INDETERMINATE) -greaseinterceptor = getattr(IfcWasteTerminalTypeEnum, 'GREASEINTERCEPTOR', INDETERMINATE) -oilinterceptor = getattr(IfcWasteTerminalTypeEnum, 'OILINTERCEPTOR', INDETERMINATE) -petrolinterceptor = getattr(IfcWasteTerminalTypeEnum, 'PETROLINTERCEPTOR', INDETERMINATE) -roofdrain = getattr(IfcWasteTerminalTypeEnum, 'ROOFDRAIN', INDETERMINATE) -wastedisposalunit = getattr(IfcWasteTerminalTypeEnum, 'WASTEDISPOSALUNIT', INDETERMINATE) -wastetrap = getattr(IfcWasteTerminalTypeEnum, 'WASTETRAP', INDETERMINATE) -userdefined = getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWasteTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +floortrap = IfcWasteTerminalTypeEnum.FLOORTRAP +floorwaste = IfcWasteTerminalTypeEnum.FLOORWASTE +gullysump = IfcWasteTerminalTypeEnum.GULLYSUMP +gullytrap = IfcWasteTerminalTypeEnum.GULLYTRAP +greaseinterceptor = IfcWasteTerminalTypeEnum.GREASEINTERCEPTOR +oilinterceptor = IfcWasteTerminalTypeEnum.OILINTERCEPTOR +petrolinterceptor = IfcWasteTerminalTypeEnum.PETROLINTERCEPTOR +roofdrain = IfcWasteTerminalTypeEnum.ROOFDRAIN +wastedisposalunit = IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT +wastetrap = IfcWasteTerminalTypeEnum.WASTETRAP +userdefined = IfcWasteTerminalTypeEnum.USERDEFINED +notdefined = IfcWasteTerminalTypeEnum.NOTDEFINED IfcWindowPanelOperationEnum = enum_namespace() -sidehungrighthand = getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGRIGHTHAND', INDETERMINATE) -sidehunglefthand = getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGLEFTHAND', INDETERMINATE) -tiltandturnrighthand = getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNRIGHTHAND', INDETERMINATE) -tiltandturnlefthand = getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNLEFTHAND', INDETERMINATE) -tophung = getattr(IfcWindowPanelOperationEnum, 'TOPHUNG', INDETERMINATE) -bottomhung = getattr(IfcWindowPanelOperationEnum, 'BOTTOMHUNG', INDETERMINATE) -pivothorizontal = getattr(IfcWindowPanelOperationEnum, 'PIVOTHORIZONTAL', INDETERMINATE) -pivotvertical = getattr(IfcWindowPanelOperationEnum, 'PIVOTVERTICAL', INDETERMINATE) -slidinghorizontal = getattr(IfcWindowPanelOperationEnum, 'SLIDINGHORIZONTAL', INDETERMINATE) -slidingvertical = getattr(IfcWindowPanelOperationEnum, 'SLIDINGVERTICAL', INDETERMINATE) -removablecasement = getattr(IfcWindowPanelOperationEnum, 'REMOVABLECASEMENT', INDETERMINATE) -fixedcasement = getattr(IfcWindowPanelOperationEnum, 'FIXEDCASEMENT', INDETERMINATE) -otheroperation = getattr(IfcWindowPanelOperationEnum, 'OTHEROPERATION', INDETERMINATE) -notdefined = getattr(IfcWindowPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +sidehungrighthand = IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND +sidehunglefthand = IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND +tiltandturnrighthand = IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND +tiltandturnlefthand = IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND +tophung = IfcWindowPanelOperationEnum.TOPHUNG +bottomhung = IfcWindowPanelOperationEnum.BOTTOMHUNG +pivothorizontal = IfcWindowPanelOperationEnum.PIVOTHORIZONTAL +pivotvertical = IfcWindowPanelOperationEnum.PIVOTVERTICAL +slidinghorizontal = IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL +slidingvertical = IfcWindowPanelOperationEnum.SLIDINGVERTICAL +removablecasement = IfcWindowPanelOperationEnum.REMOVABLECASEMENT +fixedcasement = IfcWindowPanelOperationEnum.FIXEDCASEMENT +otheroperation = IfcWindowPanelOperationEnum.OTHEROPERATION +notdefined = IfcWindowPanelOperationEnum.NOTDEFINED IfcWindowPanelPositionEnum = enum_namespace() -left = getattr(IfcWindowPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = getattr(IfcWindowPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = getattr(IfcWindowPanelPositionEnum, 'RIGHT', INDETERMINATE) -bottom = getattr(IfcWindowPanelPositionEnum, 'BOTTOM', INDETERMINATE) -top = getattr(IfcWindowPanelPositionEnum, 'TOP', INDETERMINATE) -notdefined = getattr(IfcWindowPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcWindowPanelPositionEnum.LEFT +middle = IfcWindowPanelPositionEnum.MIDDLE +right = IfcWindowPanelPositionEnum.RIGHT +bottom = IfcWindowPanelPositionEnum.BOTTOM +top = IfcWindowPanelPositionEnum.TOP +notdefined = IfcWindowPanelPositionEnum.NOTDEFINED IfcWindowStyleConstructionEnum = enum_namespace() -aluminium = getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = getattr(IfcWindowStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = getattr(IfcWindowStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = getattr(IfcWindowStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -plastic = getattr(IfcWindowStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -other_construction = getattr(IfcWindowStyleConstructionEnum, 'OTHER_CONSTRUCTION', INDETERMINATE) -notdefined = getattr(IfcWindowStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcWindowStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcWindowStyleConstructionEnum.STEEL +wood = IfcWindowStyleConstructionEnum.WOOD +aluminium_wood = IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD +plastic = IfcWindowStyleConstructionEnum.PLASTIC +other_construction = IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION +notdefined = IfcWindowStyleConstructionEnum.NOTDEFINED IfcWindowStyleOperationEnum = enum_namespace() -single_panel = getattr(IfcWindowStyleOperationEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = getattr(IfcWindowStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowStyleOperationEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowStyleOperationEnum.USERDEFINED +notdefined = IfcWindowStyleOperationEnum.NOTDEFINED IfcWorkControlTypeEnum = enum_namespace() -actual = getattr(IfcWorkControlTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = getattr(IfcWorkControlTypeEnum, 'BASELINE', INDETERMINATE) -planned = getattr(IfcWorkControlTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = getattr(IfcWorkControlTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkControlTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkControlTypeEnum.ACTUAL +baseline = IfcWorkControlTypeEnum.BASELINE +planned = IfcWorkControlTypeEnum.PLANNED +userdefined = IfcWorkControlTypeEnum.USERDEFINED +notdefined = IfcWorkControlTypeEnum.NOTDEFINED def Ifc2DCompositeCurve(*args, **kwargs): return ifcopenshell.create_entity('Ifc2DCompositeCurve', 'IFC2X3', *args, **kwargs) @@ -3582,7 +3592,7 @@ class IfcBoxAlignment_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False class IfcCompoundPlaneAngleMeasure_WR1: SCOPE = 'type' @@ -3645,7 +3655,7 @@ class IfcFontStyle_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False class IfcFontVariant_WR1: SCOPE = 'type' @@ -3654,7 +3664,7 @@ class IfcFontVariant_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False class IfcFontWeight_WR1: SCOPE = 'type' @@ -3663,7 +3673,7 @@ class IfcFontWeight_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False class IfcHeatingValueMeasure_WR1: SCOPE = 'type' @@ -3771,7 +3781,7 @@ class IfcTextAlignment_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False class IfcTextDecoration_WR1: SCOPE = 'type' @@ -3780,7 +3790,7 @@ class IfcTextDecoration_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False class IfcTextTransformation_WR1: SCOPE = 'type' @@ -3789,7 +3799,7 @@ class IfcTextTransformation_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False class Ifc2DCompositeCurve_WR1: SCOPE = 'entity' @@ -3798,7 +3808,7 @@ class Ifc2DCompositeCurve_WR1: @staticmethod def __call__(self): - assert getattr(self, 'ClosedCurve', INDETERMINATE) is not False + assert express_getattr(self, 'ClosedCurve', INDETERMINATE) is not False class Ifc2DCompositeCurve_WR2: SCOPE = 'entity' @@ -3807,7 +3817,7 @@ class Ifc2DCompositeCurve_WR2: @staticmethod def __call__(self): - assert (getattr(self, 'Dim', INDETERMINATE) == 2) is not False + assert (express_getattr(self, 'Dim', INDETERMINATE) == 2) is not False class IfcActorRole_WR1: SCOPE = 'entity' @@ -3816,8 +3826,8 @@ class IfcActorRole_WR1: @staticmethod def __call__(self): - role = getattr(self, 'Role', INDETERMINATE) - assert (role != getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) or (role == getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedRole', INDETERMINATE)))) is not False + role = express_getattr(self, 'Role', INDETERMINATE) + assert (role != express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) or (role == express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedRole', INDETERMINATE)))) is not False class IfcAddress_WR1: SCOPE = 'entity' @@ -3826,8 +3836,8 @@ class IfcAddress_WR1: @staticmethod def __call__(self): - purpose = getattr(self, 'Purpose', INDETERMINATE) - assert (not exists(purpose) or (purpose != getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) or (purpose == getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedPurpose', INDETERMINATE))))) is not False + purpose = express_getattr(self, 'Purpose', INDETERMINATE) + assert (not exists(purpose) or (purpose != express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) or (purpose == express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedPurpose', INDETERMINATE))))) is not False class IfcAirTerminalBoxType_WR1: SCOPE = 'entity' @@ -3836,8 +3846,8 @@ class IfcAirTerminalBoxType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAirTerminalType_WR1: SCOPE = 'entity' @@ -3846,8 +3856,8 @@ class IfcAirTerminalType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAirToAirHeatRecoveryType_WR1: SCOPE = 'entity' @@ -3856,8 +3866,8 @@ class IfcAirToAirHeatRecoveryType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAnnotationCurveOccurrence_WR31: SCOPE = 'entity' @@ -3866,7 +3876,7 @@ class IfcAnnotationCurveOccurrence_WR31: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Item', INDETERMINATE)) or 'ifc2x3.ifccurve' in typeof(getattr(self, 'Item', INDETERMINATE))) is not False + assert (not exists(express_getattr(self, 'Item', INDETERMINATE)) or 'ifc2x3.ifccurve' in typeof(express_getattr(self, 'Item', INDETERMINATE))) is not False class IfcAnnotationFillAreaOccurrence_WR31: SCOPE = 'entity' @@ -3875,7 +3885,7 @@ class IfcAnnotationFillAreaOccurrence_WR31: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Item', INDETERMINATE)) or 'ifc2x3.ifcannotationfillarea' in typeof(getattr(self, 'Item', INDETERMINATE))) is not False + assert (not exists(express_getattr(self, 'Item', INDETERMINATE)) or 'ifc2x3.ifcannotationfillarea' in typeof(express_getattr(self, 'Item', INDETERMINATE))) is not False class IfcAnnotationSurface_WR01: SCOPE = 'entity' @@ -3884,7 +3894,7 @@ class IfcAnnotationSurface_WR01: @staticmethod def __call__(self): - item = getattr(self, 'Item', INDETERMINATE) + item = express_getattr(self, 'Item', INDETERMINATE) assert (sizeof(['ifc2x3.ifcsurface', 'ifc2x3.ifcshellbasedsurfacemodel', 'ifc2x3.ifcfacebasedsurfacemodel', 'ifc2x3.ifcsolidmodel', 'ifc2x3.ifcbooleanresult', 'ifc2x3.ifccsgprimitive3d'] * typeof(item)) >= 1) is not False class IfcAnnotationSurfaceOccurrence_WR31: @@ -3894,7 +3904,7 @@ class IfcAnnotationSurfaceOccurrence_WR31: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Item', INDETERMINATE)) or sizeof(['ifc2x3.ifcsurface', 'ifc2x3.ifcfacebasedsurfacemodel', 'ifc2x3.ifcshellbasedsurfacemodel', 'ifc2x3.ifcsolidmodel'] * typeof(getattr(self, 'Item', INDETERMINATE))) > 0) is not False + assert (not exists(express_getattr(self, 'Item', INDETERMINATE)) or sizeof(['ifc2x3.ifcsurface', 'ifc2x3.ifcfacebasedsurfacemodel', 'ifc2x3.ifcshellbasedsurfacemodel', 'ifc2x3.ifcsolidmodel'] * typeof(express_getattr(self, 'Item', INDETERMINATE))) > 0) is not False class IfcAnnotationSymbolOccurrence_WR31: SCOPE = 'entity' @@ -3903,7 +3913,7 @@ class IfcAnnotationSymbolOccurrence_WR31: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Item', INDETERMINATE)) or 'ifc2x3.ifcdefinedsymbol' in typeof(getattr(self, 'Item', INDETERMINATE))) is not False + assert (not exists(express_getattr(self, 'Item', INDETERMINATE)) or 'ifc2x3.ifcdefinedsymbol' in typeof(express_getattr(self, 'Item', INDETERMINATE))) is not False class IfcAnnotationTextOccurrence_WR31: SCOPE = 'entity' @@ -3912,7 +3922,7 @@ class IfcAnnotationTextOccurrence_WR31: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Item', INDETERMINATE)) or 'ifc2x3.ifctextliteral' in typeof(getattr(self, 'Item', INDETERMINATE))) is not False + assert (not exists(express_getattr(self, 'Item', INDETERMINATE)) or 'ifc2x3.ifctextliteral' in typeof(express_getattr(self, 'Item', INDETERMINATE))) is not False class IfcAppliedValue_WR1: SCOPE = 'entity' @@ -3921,8 +3931,8 @@ class IfcAppliedValue_WR1: @staticmethod def __call__(self): - appliedvalue = getattr(self, 'AppliedValue', INDETERMINATE) - valueofcomponents = getattr(self, 'ValueOfComponents', INDETERMINATE) + appliedvalue = express_getattr(self, 'AppliedValue', INDETERMINATE) + valueofcomponents = express_getattr(self, 'ValueOfComponents', INDETERMINATE) assert (exists(appliedvalue) or exists(valueofcomponents)) is not False class IfcArbitraryClosedProfileDef_WR1: @@ -3932,8 +3942,8 @@ class IfcArbitraryClosedProfileDef_WR1: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) - assert (getattr(outercurve, 'Dim', INDETERMINATE) == 2) is not False + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) + assert (express_getattr(outercurve, 'Dim', INDETERMINATE) == 2) is not False class IfcArbitraryClosedProfileDef_WR2: SCOPE = 'entity' @@ -3942,7 +3952,7 @@ class IfcArbitraryClosedProfileDef_WR2: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) assert (not 'ifc2x3.ifcline' in typeof(outercurve)) is not False class IfcArbitraryClosedProfileDef_WR3: @@ -3952,7 +3962,7 @@ class IfcArbitraryClosedProfileDef_WR3: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) assert (not 'ifc2x3.ifcoffsetcurve2d' in typeof(outercurve)) is not False class IfcArbitraryOpenProfileDef_WR11: @@ -3962,7 +3972,7 @@ class IfcArbitraryOpenProfileDef_WR11: @staticmethod def __call__(self): - assert ('ifc2x3.ifccenterlineprofiledef' in typeof(self) or getattr(self, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False + assert ('ifc2x3.ifccenterlineprofiledef' in typeof(self) or express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False class IfcArbitraryOpenProfileDef_WR12: SCOPE = 'entity' @@ -3971,8 +3981,8 @@ class IfcArbitraryOpenProfileDef_WR12: @staticmethod def __call__(self): - curve = getattr(self, 'Curve', INDETERMINATE) - assert (getattr(curve, 'Dim', INDETERMINATE) == 2) is not False + curve = express_getattr(self, 'Curve', INDETERMINATE) + assert (express_getattr(curve, 'Dim', INDETERMINATE) == 2) is not False class IfcArbitraryProfileDefWithVoids_WR1: SCOPE = 'entity' @@ -3981,7 +3991,7 @@ class IfcArbitraryProfileDefWithVoids_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'ProfileType', INDETERMINATE) == area) is not False + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == area) is not False class IfcArbitraryProfileDefWithVoids_WR2: SCOPE = 'entity' @@ -3990,8 +4000,8 @@ class IfcArbitraryProfileDefWithVoids_WR2: @staticmethod def __call__(self): - innercurves = getattr(self, 'InnerCurves', INDETERMINATE) - assert (sizeof([temp for temp in innercurves if getattr(temp, 'Dim', INDETERMINATE) != 2]) == 0) is not False + innercurves = express_getattr(self, 'InnerCurves', INDETERMINATE) + assert (sizeof([temp for temp in innercurves if express_getattr(temp, 'Dim', INDETERMINATE) != 2]) == 0) is not False class IfcArbitraryProfileDefWithVoids_WR3: SCOPE = 'entity' @@ -4000,7 +4010,7 @@ class IfcArbitraryProfileDefWithVoids_WR3: @staticmethod def __call__(self): - innercurves = getattr(self, 'InnerCurves', INDETERMINATE) + innercurves = express_getattr(self, 'InnerCurves', INDETERMINATE) assert (sizeof([temp for temp in innercurves if 'ifc2x3.ifcline' in typeof(temp)]) == 0) is not False class IfcAsset_WR1: @@ -4010,7 +4020,7 @@ class IfcAsset_WR1: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(getattr(self, 'IsGroupedBy', INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not 'ifc2x3.ifcelement' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(express_getattr(self, 'IsGroupedBy', INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not 'ifc2x3.ifcelement' in typeof(temp)]) == 0) is not False class IfcAxis1Placement_WR1: SCOPE = 'entity' @@ -4019,8 +4029,8 @@ class IfcAxis1Placement_WR1: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (not exists(axis) or getattr(axis, 'Dim', INDETERMINATE) == 3) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (not exists(axis) or express_getattr(axis, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis1Placement_WR2: SCOPE = 'entity' @@ -4029,10 +4039,10 @@ class IfcAxis1Placement_WR2: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False def calc_IfcAxis1Placement_Z(self): - axis = getattr(self, 'Axis', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) return nvl(IfcNormalise(axis), IfcDirection(DirectionRatios=[0.0, 0.0, 1.0])) class IfcAxis2Placement2D_WR1: @@ -4042,8 +4052,8 @@ class IfcAxis2Placement2D_WR1: @staticmethod def __call__(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(refdirection) or getattr(refdirection, 'Dim', INDETERMINATE) == 2) is not False + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(refdirection) or express_getattr(refdirection, 'Dim', INDETERMINATE) == 2) is not False class IfcAxis2Placement2D_WR2: SCOPE = 'entity' @@ -4052,10 +4062,10 @@ class IfcAxis2Placement2D_WR2: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False def calc_IfcAxis2Placement2D_P(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) return IfcBuild2Axes(refdirection) class IfcAxis2Placement3D_WR1: @@ -4065,7 +4075,7 @@ class IfcAxis2Placement3D_WR1: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_WR2: SCOPE = 'entity' @@ -4074,8 +4084,8 @@ class IfcAxis2Placement3D_WR2: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (not exists(axis) or getattr(axis, 'Dim', INDETERMINATE) == 3) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (not exists(axis) or express_getattr(axis, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_WR3: SCOPE = 'entity' @@ -4084,8 +4094,8 @@ class IfcAxis2Placement3D_WR3: @staticmethod def __call__(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(refdirection) or getattr(refdirection, 'Dim', INDETERMINATE) == 3) is not False + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(refdirection) or express_getattr(refdirection, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_WR4: SCOPE = 'entity' @@ -4094,9 +4104,9 @@ class IfcAxis2Placement3D_WR4: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(axis) or not exists(refdirection) or getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(axis) or not exists(refdirection) or express_getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False class IfcAxis2Placement3D_WR5: SCOPE = 'entity' @@ -4105,13 +4115,13 @@ class IfcAxis2Placement3D_WR5: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) assert (not exists(axis) ^ exists(refdirection)) is not False def calc_IfcAxis2Placement3D_P(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) return IfcBuildAxes(axis, refdirection) class IfcBSplineCurve_WR41: @@ -4121,16 +4131,16 @@ class IfcBSplineCurve_WR41: @staticmethod def __call__(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - assert (sizeof([temp for temp in controlpointslist if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + assert (sizeof([temp for temp in controlpointslist if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcBSplineCurve_ControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - upperindexoncontrolpoints = getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + upperindexoncontrolpoints = express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) return IfcListToArray(controlpointslist, 0, upperindexoncontrolpoints) def calc_IfcBSplineCurve_UpperIndexOnControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(controlpointslist) - 1 class IfcBlobTexture_WR11: @@ -4140,7 +4150,7 @@ class IfcBlobTexture_WR11: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['bmp', 'jpg', 'gif', 'png']) is not False + assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['bmp', 'jpg', 'gif', 'png']) is not False class IfcBoilerType_WR1: SCOPE = 'entity' @@ -4149,8 +4159,8 @@ class IfcBoilerType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBooleanClippingResult_WR1: SCOPE = 'entity' @@ -4159,7 +4169,7 @@ class IfcBooleanClippingResult_WR1: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) assert ('ifc2x3.ifcsweptareasolid' in typeof(firstoperand) or 'ifc2x3.ifcbooleanclippingresult' in typeof(firstoperand)) is not False class IfcBooleanClippingResult_WR2: @@ -4169,7 +4179,7 @@ class IfcBooleanClippingResult_WR2: @staticmethod def __call__(self): - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) assert ('ifc2x3.ifchalfspacesolid' in typeof(secondoperand)) is not False class IfcBooleanClippingResult_WR3: @@ -4179,7 +4189,7 @@ class IfcBooleanClippingResult_WR3: @staticmethod def __call__(self): - operator = getattr(self, 'Operator', INDETERMINATE) + operator = express_getattr(self, 'Operator', INDETERMINATE) assert (operator == difference) is not False class IfcBooleanResult_WR1: @@ -4189,13 +4199,13 @@ class IfcBooleanResult_WR1: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) - assert (getattr(firstoperand, 'Dim', INDETERMINATE) == getattr(secondoperand, 'Dim', INDETERMINATE)) is not False + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) + assert (express_getattr(firstoperand, 'Dim', INDETERMINATE) == express_getattr(secondoperand, 'Dim', INDETERMINATE)) is not False def calc_IfcBooleanResult_Dim(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - return getattr(firstoperand, 'Dim', INDETERMINATE) + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + return express_getattr(firstoperand, 'Dim', INDETERMINATE) def calc_IfcBoundingBox_Dim(self): return 3 @@ -4207,7 +4217,7 @@ class IfcBoxedHalfSpace_WR1: @staticmethod def __call__(self): - assert (not 'ifc2x3.ifccurveboundedplane' in typeof(getattr(self, 'BaseSurface', INDETERMINATE))) is not False + assert (not 'ifc2x3.ifccurveboundedplane' in typeof(express_getattr(self, 'BaseSurface', INDETERMINATE))) is not False class IfcBuildingElementProxy_WR1: SCOPE = 'entity' @@ -4216,7 +4226,7 @@ class IfcBuildingElementProxy_WR1: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcCShapeProfileDef_WR1: SCOPE = 'entity' @@ -4225,8 +4235,8 @@ class IfcCShapeProfileDef_WR1: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - girth = getattr(self, 'Girth', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + girth = express_getattr(self, 'Girth', INDETERMINATE) assert (girth < depth / 2.0) is not False class IfcCShapeProfileDef_WR2: @@ -4236,9 +4246,9 @@ class IfcCShapeProfileDef_WR2: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - internalfilletradius = getattr(self, 'InternalFilletRadius', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + internalfilletradius = express_getattr(self, 'InternalFilletRadius', INDETERMINATE) assert (not exists(internalfilletradius) or (internalfilletradius <= width / 2.0 and internalfilletradius <= depth / 2.0)) is not False class IfcCShapeProfileDef_WR3: @@ -4248,9 +4258,9 @@ class IfcCShapeProfileDef_WR3: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) assert (wallthickness < width / 2.0 and wallthickness < depth / 2.0) is not False class IfcCableCarrierFittingType_WR1: @@ -4260,8 +4270,8 @@ class IfcCableCarrierFittingType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCalendarDate_WR21: SCOPE = 'entity' @@ -4279,11 +4289,11 @@ class IfcCartesianPoint_WR1: @staticmethod def __call__(self): - coordinates = getattr(self, 'Coordinates', INDETERMINATE) + coordinates = express_getattr(self, 'Coordinates', INDETERMINATE) assert (hiindex(coordinates) >= 2) is not False def calc_IfcCartesianPoint_Dim(self): - coordinates = getattr(self, 'Coordinates', INDETERMINATE) + coordinates = express_getattr(self, 'Coordinates', INDETERMINATE) return hiindex(coordinates) class IfcCartesianTransformationOperator_WR1: @@ -4293,16 +4303,16 @@ class IfcCartesianTransformationOperator_WR1: @staticmethod def __call__(self): - scl = getattr(self, 'Scl', INDETERMINATE) + scl = express_getattr(self, 'Scl', INDETERMINATE) assert (scl > 0.0) is not False def calc_IfcCartesianTransformationOperator_Scl(self): - scale = getattr(self, 'Scale', INDETERMINATE) + scale = express_getattr(self, 'Scale', INDETERMINATE) return nvl(scale, 1.0) def calc_IfcCartesianTransformationOperator_Dim(self): - localorigin = getattr(self, 'LocalOrigin', INDETERMINATE) - return getattr(localorigin, 'Dim', INDETERMINATE) + localorigin = express_getattr(self, 'LocalOrigin', INDETERMINATE) + return express_getattr(localorigin, 'Dim', INDETERMINATE) class IfcCartesianTransformationOperator2D_WR1: SCOPE = 'entity' @@ -4311,7 +4321,7 @@ class IfcCartesianTransformationOperator2D_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'Dim', INDETERMINATE) == 2) is not False + assert (express_getattr(self, 'Dim', INDETERMINATE) == 2) is not False class IfcCartesianTransformationOperator2D_WR2: SCOPE = 'entity' @@ -4320,7 +4330,7 @@ class IfcCartesianTransformationOperator2D_WR2: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis1', INDETERMINATE)) or getattr(getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (not exists(express_getattr(self, 'Axis1', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False class IfcCartesianTransformationOperator2D_WR3: SCOPE = 'entity' @@ -4329,10 +4339,10 @@ class IfcCartesianTransformationOperator2D_WR3: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis2', INDETERMINATE)) or getattr(getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (not exists(express_getattr(self, 'Axis2', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False def calc_IfcCartesianTransformationOperator2D_U(self): - return IfcBaseAxis(2, getattr(self, 'Axis1', INDETERMINATE), getattr(self, 'Axis2', INDETERMINATE), None) + return IfcBaseAxis(2, express_getattr(self, 'Axis1', INDETERMINATE), express_getattr(self, 'Axis2', INDETERMINATE), None) class IfcCartesianTransformationOperator2DnonUniform_WR1: SCOPE = 'entity' @@ -4341,12 +4351,12 @@ class IfcCartesianTransformationOperator2DnonUniform_WR1: @staticmethod def __call__(self): - scl2 = getattr(self, 'Scl2', INDETERMINATE) + scl2 = express_getattr(self, 'Scl2', INDETERMINATE) assert (scl2 > 0.0) is not False def calc_IfcCartesianTransformationOperator2DnonUniform_Scl2(self): - scale2 = getattr(self, 'Scale2', INDETERMINATE) - return nvl(scale2, getattr(self, 'Scl', INDETERMINATE)) + scale2 = express_getattr(self, 'Scale2', INDETERMINATE) + return nvl(scale2, express_getattr(self, 'Scl', INDETERMINATE)) class IfcCartesianTransformationOperator3D_WR1: SCOPE = 'entity' @@ -4355,7 +4365,7 @@ class IfcCartesianTransformationOperator3D_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(self, 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_WR2: SCOPE = 'entity' @@ -4364,7 +4374,7 @@ class IfcCartesianTransformationOperator3D_WR2: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis1', INDETERMINATE)) or getattr(getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (not exists(express_getattr(self, 'Axis1', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_WR3: SCOPE = 'entity' @@ -4373,7 +4383,7 @@ class IfcCartesianTransformationOperator3D_WR3: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis2', INDETERMINATE)) or getattr(getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (not exists(express_getattr(self, 'Axis2', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_WR4: SCOPE = 'entity' @@ -4382,12 +4392,12 @@ class IfcCartesianTransformationOperator3D_WR4: @staticmethod def __call__(self): - axis3 = getattr(self, 'Axis3', INDETERMINATE) - assert (not exists(axis3) or getattr(axis3, 'Dim', INDETERMINATE) == 3) is not False + axis3 = express_getattr(self, 'Axis3', INDETERMINATE) + assert (not exists(axis3) or express_getattr(axis3, 'Dim', INDETERMINATE) == 3) is not False def calc_IfcCartesianTransformationOperator3D_U(self): - axis3 = getattr(self, 'Axis3', INDETERMINATE) - return IfcBaseAxis(3, getattr(self, 'Axis1', INDETERMINATE), getattr(self, 'Axis2', INDETERMINATE), axis3) + axis3 = express_getattr(self, 'Axis3', INDETERMINATE) + return IfcBaseAxis(3, express_getattr(self, 'Axis1', INDETERMINATE), express_getattr(self, 'Axis2', INDETERMINATE), axis3) class IfcCartesianTransformationOperator3DnonUniform_WR1: SCOPE = 'entity' @@ -4396,7 +4406,7 @@ class IfcCartesianTransformationOperator3DnonUniform_WR1: @staticmethod def __call__(self): - scl2 = getattr(self, 'Scl2', INDETERMINATE) + scl2 = express_getattr(self, 'Scl2', INDETERMINATE) assert (scl2 > 0.0) is not False class IfcCartesianTransformationOperator3DnonUniform_WR2: @@ -4406,16 +4416,16 @@ class IfcCartesianTransformationOperator3DnonUniform_WR2: @staticmethod def __call__(self): - scl3 = getattr(self, 'Scl3', INDETERMINATE) + scl3 = express_getattr(self, 'Scl3', INDETERMINATE) assert (scl3 > 0.0) is not False def calc_IfcCartesianTransformationOperator3DnonUniform_Scl2(self): - scale2 = getattr(self, 'Scale2', INDETERMINATE) - return nvl(scale2, getattr(self, 'Scl', INDETERMINATE)) + scale2 = express_getattr(self, 'Scale2', INDETERMINATE) + return nvl(scale2, express_getattr(self, 'Scl', INDETERMINATE)) def calc_IfcCartesianTransformationOperator3DnonUniform_Scl3(self): - scale3 = getattr(self, 'Scale3', INDETERMINATE) - return nvl(scale3, getattr(self, 'Scl', INDETERMINATE)) + scale3 = express_getattr(self, 'Scale3', INDETERMINATE) + return nvl(scale3, express_getattr(self, 'Scl', INDETERMINATE)) class IfcChillerType_WR1: SCOPE = 'entity' @@ -4424,8 +4434,8 @@ class IfcChillerType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCircleHollowProfileDef_WR1: SCOPE = 'entity' @@ -4434,8 +4444,8 @@ class IfcCircleHollowProfileDef_WR1: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - assert (wallthickness < getattr(self, 'Radius', INDETERMINATE)) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + assert (wallthickness < express_getattr(self, 'Radius', INDETERMINATE)) is not False class IfcCoilType_WR1: SCOPE = 'entity' @@ -4444,8 +4454,8 @@ class IfcCoilType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcComplexProperty_WR21: SCOPE = 'entity' @@ -4454,7 +4464,7 @@ class IfcComplexProperty_WR21: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert (sizeof([temp for temp in hasproperties if self == temp]) == 0) is not False class IfcComplexProperty_WR22: @@ -4464,7 +4474,7 @@ class IfcComplexProperty_WR22: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert IfcUniquePropertyName(hasproperties) is not False class IfcCompositeCurve_WR41: @@ -4474,9 +4484,9 @@ class IfcCompositeCurve_WR41: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) - closedcurve = getattr(self, 'ClosedCurve', INDETERMINATE) - assert (not closedcurve and sizeof([temp for temp in segments if getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 1 or (closedcurve and sizeof([temp for temp in segments if getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 0)) is not False + segments = express_getattr(self, 'Segments', INDETERMINATE) + closedcurve = express_getattr(self, 'ClosedCurve', INDETERMINATE) + assert (not closedcurve and sizeof([temp for temp in segments if express_getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 1 or (closedcurve and sizeof([temp for temp in segments if express_getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 0)) is not False class IfcCompositeCurve_WR42: SCOPE = 'entity' @@ -4485,17 +4495,17 @@ class IfcCompositeCurve_WR42: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) - assert (sizeof([temp for temp in segments if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(segments, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + segments = express_getattr(self, 'Segments', INDETERMINATE) + assert (sizeof([temp for temp in segments if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(segments, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcCompositeCurve_NSegments(self): - segments = getattr(self, 'Segments', INDETERMINATE) + segments = express_getattr(self, 'Segments', INDETERMINATE) return sizeof(segments) def calc_IfcCompositeCurve_ClosedCurve(self): - segments = getattr(self, 'Segments', INDETERMINATE) - nsegments = getattr(self, 'NSegments', INDETERMINATE) - return getattr(express_getitem(segments, nsegments - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Transition', INDETERMINATE) != discontinuous + segments = express_getattr(self, 'Segments', INDETERMINATE) + nsegments = express_getattr(self, 'NSegments', INDETERMINATE) + return express_getattr(express_getitem(segments, nsegments - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Transition', INDETERMINATE) != discontinuous class IfcCompositeCurveSegment_WR1: SCOPE = 'entity' @@ -4504,12 +4514,12 @@ class IfcCompositeCurveSegment_WR1: @staticmethod def __call__(self): - parentcurve = getattr(self, 'ParentCurve', INDETERMINATE) + parentcurve = express_getattr(self, 'ParentCurve', INDETERMINATE) assert ('ifc2x3.ifcboundedcurve' in typeof(parentcurve)) is not False def calc_IfcCompositeCurveSegment_Dim(self): - parentcurve = getattr(self, 'ParentCurve', INDETERMINATE) - return getattr(parentcurve, 'Dim', INDETERMINATE) + parentcurve = express_getattr(self, 'ParentCurve', INDETERMINATE) + return express_getattr(parentcurve, 'Dim', INDETERMINATE) class IfcCompositeProfileDef_WR1: SCOPE = 'entity' @@ -4518,8 +4528,8 @@ class IfcCompositeProfileDef_WR1: @staticmethod def __call__(self): - profiles = getattr(self, 'Profiles', INDETERMINATE) - assert (sizeof([temp for temp in profiles if getattr(temp, 'ProfileType', INDETERMINATE) != getattr(express_getitem(profiles, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE)]) == 0) is not False + profiles = express_getattr(self, 'Profiles', INDETERMINATE) + assert (sizeof([temp for temp in profiles if express_getattr(temp, 'ProfileType', INDETERMINATE) != express_getattr(express_getitem(profiles, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcCompositeProfileDef_WR2: SCOPE = 'entity' @@ -4528,7 +4538,7 @@ class IfcCompositeProfileDef_WR2: @staticmethod def __call__(self): - profiles = getattr(self, 'Profiles', INDETERMINATE) + profiles = express_getattr(self, 'Profiles', INDETERMINATE) assert (sizeof([temp for temp in profiles if 'ifc2x3.ifccompositeprofiledef' in typeof(temp)]) == 0) is not False class IfcCompressorType_WR1: @@ -4538,8 +4548,8 @@ class IfcCompressorType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCondenserType_WR1: SCOPE = 'entity' @@ -4548,8 +4558,8 @@ class IfcCondenserType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcConditionCriterion_WR1: SCOPE = 'entity' @@ -4558,7 +4568,7 @@ class IfcConditionCriterion_WR1: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcConstraint_WR11: SCOPE = 'entity' @@ -4567,8 +4577,8 @@ class IfcConstraint_WR11: @staticmethod def __call__(self): - constraintgrade = getattr(self, 'ConstraintGrade', INDETERMINATE) - assert (constraintgrade != getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) or (constraintgrade == getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedGrade', INDETERMINATE)))) is not False + constraintgrade = express_getattr(self, 'ConstraintGrade', INDETERMINATE) + assert (constraintgrade != express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) or (constraintgrade == express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedGrade', INDETERMINATE)))) is not False class IfcConstraintAggregationRelationship_WR11: SCOPE = 'entity' @@ -4577,8 +4587,8 @@ class IfcConstraintAggregationRelationship_WR11: @staticmethod def __call__(self): - relatingconstraint = getattr(self, 'RelatingConstraint', INDETERMINATE) - relatedconstraints = getattr(self, 'RelatedConstraints', INDETERMINATE) + relatingconstraint = express_getattr(self, 'RelatingConstraint', INDETERMINATE) + relatedconstraints = express_getattr(self, 'RelatedConstraints', INDETERMINATE) assert (sizeof([temp for temp in relatedconstraints if temp == relatingconstraint]) == 0) is not False class IfcConstraintRelationship_WR11: @@ -4588,8 +4598,8 @@ class IfcConstraintRelationship_WR11: @staticmethod def __call__(self): - relatingconstraint = getattr(self, 'RelatingConstraint', INDETERMINATE) - relatedconstraints = getattr(self, 'RelatedConstraints', INDETERMINATE) + relatingconstraint = express_getattr(self, 'RelatingConstraint', INDETERMINATE) + relatedconstraints = express_getattr(self, 'RelatedConstraints', INDETERMINATE) assert (sizeof([temp for temp in relatedconstraints if temp == relatingconstraint]) == 0) is not False class IfcConstructionMaterialResource_WR1: @@ -4599,7 +4609,7 @@ class IfcConstructionMaterialResource_WR1: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'ResourceOf', INDETERMINATE)) <= 1) is not False + assert (sizeof(express_getattr(self, 'ResourceOf', INDETERMINATE)) <= 1) is not False class IfcConstructionMaterialResource_WR2: SCOPE = 'entity' @@ -4608,7 +4618,7 @@ class IfcConstructionMaterialResource_WR2: @staticmethod def __call__(self): - assert (not exists(lambda : express_getitem(getattr(self, 'ResourceOf', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or getattr(express_getitem(getattr(self, 'ResourceOf', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjectsType', INDETERMINATE) == getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE)) is not False + assert (not exists(lambda : express_getitem(express_getattr(self, 'ResourceOf', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or express_getattr(express_getitem(express_getattr(self, 'ResourceOf', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjectsType', INDETERMINATE) == express_getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE)) is not False class IfcConstructionProductResource_WR1: SCOPE = 'entity' @@ -4617,7 +4627,7 @@ class IfcConstructionProductResource_WR1: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'ResourceOf', INDETERMINATE)) <= 1) is not False + assert (sizeof(express_getattr(self, 'ResourceOf', INDETERMINATE)) <= 1) is not False class IfcConstructionProductResource_WR2: SCOPE = 'entity' @@ -4626,7 +4636,7 @@ class IfcConstructionProductResource_WR2: @staticmethod def __call__(self): - assert (not exists(lambda : express_getitem(getattr(self, 'ResourceOf', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or getattr(express_getitem(getattr(self, 'ResourceOf', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjectsType', INDETERMINATE) == getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE)) is not False + assert (not exists(lambda : express_getitem(express_getattr(self, 'ResourceOf', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or express_getattr(express_getitem(express_getattr(self, 'ResourceOf', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjectsType', INDETERMINATE) == express_getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE)) is not False class IfcCooledBeamType_WR1: SCOPE = 'entity' @@ -4635,8 +4645,8 @@ class IfcCooledBeamType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCoolingTowerType_WR1: SCOPE = 'entity' @@ -4645,8 +4655,8 @@ class IfcCoolingTowerType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCovering_WR61: SCOPE = 'entity' @@ -4655,8 +4665,8 @@ class IfcCovering_WR61: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False def calc_IfcCsgPrimitive3D_Dim(self): return 3 @@ -4665,8 +4675,8 @@ def calc_IfcCurve_Dim(self): return IfcCurveDim(self) def calc_IfcCurveBoundedPlane_Dim(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) - return getattr(basissurface, 'Dim', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) + return express_getattr(basissurface, 'Dim', INDETERMINATE) class IfcCurveStyle_WR11: SCOPE = 'entity' @@ -4675,7 +4685,7 @@ class IfcCurveStyle_WR11: @staticmethod def __call__(self): - curvewidth = getattr(self, 'CurveWidth', INDETERMINATE) + curvewidth = express_getattr(self, 'CurveWidth', INDETERMINATE) assert (not exists(curvewidth) or 'ifc2x3.ifcpositivelengthmeasure' in typeof(curvewidth) or ('ifc2x3.ifcdescriptivemeasure' in typeof(curvewidth) and curvewidth == 'bylayer')) is not False class IfcCurveStyleFontPattern_WR01: @@ -4685,7 +4695,7 @@ class IfcCurveStyleFontPattern_WR01: @staticmethod def __call__(self): - visiblesegmentlength = getattr(self, 'VisibleSegmentLength', INDETERMINATE) + visiblesegmentlength = express_getattr(self, 'VisibleSegmentLength', INDETERMINATE) assert (visiblesegmentlength >= 0.0) is not False class IfcDamperType_WR1: @@ -4695,8 +4705,8 @@ class IfcDamperType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDerivedProfileDef_WR1: SCOPE = 'entity' @@ -4705,8 +4715,8 @@ class IfcDerivedProfileDef_WR1: @staticmethod def __call__(self): - parentprofile = getattr(self, 'ParentProfile', INDETERMINATE) - assert (getattr(self, 'ProfileType', INDETERMINATE) == getattr(parentprofile, 'ProfileType', INDETERMINATE)) is not False + parentprofile = express_getattr(self, 'ParentProfile', INDETERMINATE) + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(parentprofile, 'ProfileType', INDETERMINATE)) is not False class IfcDerivedUnit_WR1: SCOPE = 'entity' @@ -4715,8 +4725,8 @@ class IfcDerivedUnit_WR1: @staticmethod def __call__(self): - elements = getattr(self, 'Elements', INDETERMINATE) - assert (sizeof(elements) > 1 or (sizeof(elements) == 1 and getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) != 1)) is not False + elements = express_getattr(self, 'Elements', INDETERMINATE) + assert (sizeof(elements) > 1 or (sizeof(elements) == 1 and express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) != 1)) is not False class IfcDerivedUnit_WR2: SCOPE = 'entity' @@ -4725,11 +4735,11 @@ class IfcDerivedUnit_WR2: @staticmethod def __call__(self): - unittype = getattr(self, 'UnitType', INDETERMINATE) - assert (unittype != getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) or (unittype == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedType', INDETERMINATE)))) is not False + unittype = express_getattr(self, 'UnitType', INDETERMINATE) + assert (unittype != express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) or (unittype == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedType', INDETERMINATE)))) is not False def calc_IfcDerivedUnit_Dimensions(self): - elements = getattr(self, 'Elements', INDETERMINATE) + elements = express_getattr(self, 'Elements', INDETERMINATE) return IfcDeriveDimensionalExponents(elements) class IfcDimensionCalloutRelationship_WR11: @@ -4739,7 +4749,7 @@ class IfcDimensionCalloutRelationship_WR11: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['primary', 'secondary']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['primary', 'secondary']) is not False class IfcDimensionCalloutRelationship_WR12: SCOPE = 'entity' @@ -4748,7 +4758,7 @@ class IfcDimensionCalloutRelationship_WR12: @staticmethod def __call__(self): - assert (sizeof(typeof(getattr(self, 'RelatingDraughtingCallout', INDETERMINATE)) * ['ifc2x3.ifcangulardimension', 'ifc2x3.ifcdiameterdimension', 'ifc2x3.ifclineardimension', 'ifc2x3.ifcradiusdimension']) == 1) is not False + assert (sizeof(typeof(express_getattr(self, 'RelatingDraughtingCallout', INDETERMINATE)) * ['ifc2x3.ifcangulardimension', 'ifc2x3.ifcdiameterdimension', 'ifc2x3.ifclineardimension', 'ifc2x3.ifcradiusdimension']) == 1) is not False class IfcDimensionCalloutRelationship_WR13: SCOPE = 'entity' @@ -4757,7 +4767,7 @@ class IfcDimensionCalloutRelationship_WR13: @staticmethod def __call__(self): - assert (not 'ifc2x3.ifcdimensioncurvedirectedcallout' in typeof(getattr(self, 'RelatedDraughtingCallout', INDETERMINATE))) is not False + assert (not 'ifc2x3.ifcdimensioncurvedirectedcallout' in typeof(express_getattr(self, 'RelatedDraughtingCallout', INDETERMINATE))) is not False class IfcDimensionCurve_WR51: SCOPE = 'entity' @@ -4775,7 +4785,7 @@ class IfcDimensionCurve_WR52: @staticmethod def __call__(self): - assert (sizeof([dct1 for dct1 in usedin(self, 'ifc2x3.' + 'ifcterminatorsymbol.annotatedcurve') if getattr(dct1, 'Role', INDETERMINATE) == getattr(IfcDimensionExtentUsage, 'ORIGIN', INDETERMINATE)]) <= 1 and sizeof([dct2 for dct2 in usedin(self, 'ifc2x3.' + 'ifcterminatorsymbol.annotatedcurve') if getattr(dct2, 'Role', INDETERMINATE) == getattr(IfcDimensionExtentUsage, 'TARGET', INDETERMINATE)]) <= 1) is not False + assert (sizeof([dct1 for dct1 in usedin(self, 'ifc2x3.' + 'ifcterminatorsymbol.annotatedcurve') if express_getattr(dct1, 'Role', INDETERMINATE) == express_getattr(IfcDimensionExtentUsage, 'ORIGIN', INDETERMINATE)]) <= 1 and sizeof([dct2 for dct2 in usedin(self, 'ifc2x3.' + 'ifcterminatorsymbol.annotatedcurve') if express_getattr(dct2, 'Role', INDETERMINATE) == express_getattr(IfcDimensionExtentUsage, 'TARGET', INDETERMINATE)]) <= 1) is not False class IfcDimensionCurve_WR53: SCOPE = 'entity' @@ -4784,7 +4794,7 @@ class IfcDimensionCurve_WR53: @staticmethod def __call__(self): - annotatedbysymbols = getattr(self, 'AnnotatedBySymbols', INDETERMINATE) + annotatedbysymbols = express_getattr(self, 'AnnotatedBySymbols', INDETERMINATE) assert (sizeof([dct for dct in annotatedbysymbols if not 'ifc2x3.ifcdimensioncurveterminator' in typeof(dct)]) == 0) is not False class IfcDimensionCurveDirectedCallout_WR41: @@ -4794,7 +4804,7 @@ class IfcDimensionCurveDirectedCallout_WR41: @staticmethod def __call__(self): - assert (sizeof([dc for dc in getattr(self, 'Contents', INDETERMINATE) if 'ifc2x3.ifcdimensioncurve' in typeof(dc)]) == 1) is not False + assert (sizeof([dc for dc in express_getattr(self, 'Contents', INDETERMINATE) if 'ifc2x3.ifcdimensioncurve' in typeof(dc)]) == 1) is not False class IfcDimensionCurveDirectedCallout_WR42: SCOPE = 'entity' @@ -4803,8 +4813,8 @@ class IfcDimensionCurveDirectedCallout_WR42: @staticmethod def __call__(self): - contents = getattr(self, 'Contents', INDETERMINATE) - assert (sizeof([dc for dc in getattr(self, 'contents', INDETERMINATE) if 'ifc2x3.ifcprojectioncurve' in typeof(dc)]) <= 2) is not False + contents = express_getattr(self, 'Contents', INDETERMINATE) + assert (sizeof([dc for dc in express_getattr(self, 'contents', INDETERMINATE) if 'ifc2x3.ifcprojectioncurve' in typeof(dc)]) <= 2) is not False class IfcDimensionCurveTerminator_WR61: SCOPE = 'entity' @@ -4813,7 +4823,7 @@ class IfcDimensionCurveTerminator_WR61: @staticmethod def __call__(self): - assert ('ifc2x3.ifcdimensioncurve' in typeof(getattr(self, 'AnnotatedCurve', INDETERMINATE))) is not False + assert ('ifc2x3.ifcdimensioncurve' in typeof(express_getattr(self, 'AnnotatedCurve', INDETERMINATE))) is not False class IfcDimensionPair_WR11: SCOPE = 'entity' @@ -4822,7 +4832,7 @@ class IfcDimensionPair_WR11: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['chained', 'parallel']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['chained', 'parallel']) is not False class IfcDimensionPair_WR12: SCOPE = 'entity' @@ -4831,7 +4841,7 @@ class IfcDimensionPair_WR12: @staticmethod def __call__(self): - assert (sizeof(typeof(getattr(self, 'RelatingDraughtingCallout', INDETERMINATE)) * ['ifc2x3.ifcangulardimension', 'ifc2x3.ifcdiameterdimension', 'ifc2x3.ifclineardimension', 'ifc2x3.ifcradiusdimension']) == 1) is not False + assert (sizeof(typeof(express_getattr(self, 'RelatingDraughtingCallout', INDETERMINATE)) * ['ifc2x3.ifcangulardimension', 'ifc2x3.ifcdiameterdimension', 'ifc2x3.ifclineardimension', 'ifc2x3.ifcradiusdimension']) == 1) is not False class IfcDimensionPair_WR13: SCOPE = 'entity' @@ -4840,10 +4850,10 @@ class IfcDimensionPair_WR13: @staticmethod def __call__(self): - assert (sizeof(typeof(getattr(self, 'RelatedDraughtingCallout', INDETERMINATE)) * ['ifc2x3.ifcangulardimension', 'ifc2x3.ifcdiameterdimension', 'ifc2x3.ifclineardimension', 'ifc2x3.ifcradiusdimension']) == 1) is not False + assert (sizeof(typeof(express_getattr(self, 'RelatedDraughtingCallout', INDETERMINATE)) * ['ifc2x3.ifcangulardimension', 'ifc2x3.ifcdiameterdimension', 'ifc2x3.ifclineardimension', 'ifc2x3.ifcradiusdimension']) == 1) is not False def calc_IfcDirection_Dim(self): - directionratios = getattr(self, 'DirectionRatios', INDETERMINATE) + directionratios = express_getattr(self, 'DirectionRatios', INDETERMINATE) return hiindex(directionratios) class IfcDocumentElectronicFormat_WR1: @@ -4853,8 +4863,8 @@ class IfcDocumentElectronicFormat_WR1: @staticmethod def __call__(self): - fileextension = getattr(self, 'FileExtension', INDETERMINATE) - mimecontenttype = getattr(self, 'MimeContentType', INDETERMINATE) + fileextension = express_getattr(self, 'FileExtension', INDETERMINATE) + mimecontenttype = express_getattr(self, 'MimeContentType', INDETERMINATE) assert (exists(fileextension) or exists(mimecontenttype)) is not False class IfcDocumentReference_WR1: @@ -4864,8 +4874,8 @@ class IfcDocumentReference_WR1: @staticmethod def __call__(self): - name = getattr(self, 'Name', INDETERMINATE) - referencetodocument = getattr(self, 'ReferenceToDocument', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) + referencetodocument = express_getattr(self, 'ReferenceToDocument', INDETERMINATE) assert exists(name) ^ exists(lambda : express_getitem(referencetodocument, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) is not False class IfcDoorLiningProperties_WR31: @@ -4875,8 +4885,8 @@ class IfcDoorLiningProperties_WR31: @staticmethod def __call__(self): - liningdepth = getattr(self, 'LiningDepth', INDETERMINATE) - liningthickness = getattr(self, 'LiningThickness', INDETERMINATE) + liningdepth = express_getattr(self, 'LiningDepth', INDETERMINATE) + liningthickness = express_getattr(self, 'LiningThickness', INDETERMINATE) assert (not (not exists(liningdepth) and exists(liningthickness))) is not False class IfcDoorLiningProperties_WR32: @@ -4886,8 +4896,8 @@ class IfcDoorLiningProperties_WR32: @staticmethod def __call__(self): - thresholddepth = getattr(self, 'ThresholdDepth', INDETERMINATE) - thresholdthickness = getattr(self, 'ThresholdThickness', INDETERMINATE) + thresholddepth = express_getattr(self, 'ThresholdDepth', INDETERMINATE) + thresholdthickness = express_getattr(self, 'ThresholdThickness', INDETERMINATE) assert (not (not exists(thresholddepth) and exists(thresholdthickness))) is not False class IfcDoorLiningProperties_WR33: @@ -4897,8 +4907,8 @@ class IfcDoorLiningProperties_WR33: @staticmethod def __call__(self): - transomthickness = getattr(self, 'TransomThickness', INDETERMINATE) - transomoffset = getattr(self, 'TransomOffset', INDETERMINATE) + transomthickness = express_getattr(self, 'TransomThickness', INDETERMINATE) + transomoffset = express_getattr(self, 'TransomOffset', INDETERMINATE) assert (exists(transomoffset) and exists(transomthickness)) ^ (not exists(transomoffset) and (not exists(transomthickness))) is not False class IfcDoorLiningProperties_WR34: @@ -4908,8 +4918,8 @@ class IfcDoorLiningProperties_WR34: @staticmethod def __call__(self): - casingthickness = getattr(self, 'CasingThickness', INDETERMINATE) - casingdepth = getattr(self, 'CasingDepth', INDETERMINATE) + casingthickness = express_getattr(self, 'CasingThickness', INDETERMINATE) + casingdepth = express_getattr(self, 'CasingDepth', INDETERMINATE) assert (exists(casingdepth) and exists(casingthickness)) ^ (not exists(casingdepth) and (not exists(casingthickness))) is not False class IfcDoorLiningProperties_WR35: @@ -4919,7 +4929,7 @@ class IfcDoorLiningProperties_WR35: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc2x3.ifcdoorstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc2x3.ifcdoorstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcDoorPanelProperties_WR31: SCOPE = 'entity' @@ -4928,7 +4938,7 @@ class IfcDoorPanelProperties_WR31: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc2x3.ifcdoorstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc2x3.ifcdoorstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcDraughtingPreDefinedColour_WR31: SCOPE = 'entity' @@ -4937,7 +4947,7 @@ class IfcDraughtingPreDefinedColour_WR31: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'bylayer']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'bylayer']) is not False class IfcDraughtingPreDefinedCurveFont_WR31: SCOPE = 'entity' @@ -4946,7 +4956,7 @@ class IfcDraughtingPreDefinedCurveFont_WR31: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chaindoubledash', 'dashed', 'dotted', 'bylayer']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chaindoubledash', 'dashed', 'dotted', 'bylayer']) is not False class IfcDraughtingPreDefinedTextFont_WR31: SCOPE = 'entity' @@ -4955,7 +4965,7 @@ class IfcDraughtingPreDefinedTextFont_WR31: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['iso3098-1fonta', 'iso3098-1fontb']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['iso3098-1fonta', 'iso3098-1fontb']) is not False class IfcDuctFittingType_WR2: SCOPE = 'entity' @@ -4964,8 +4974,8 @@ class IfcDuctFittingType_WR2: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDuctSegmentType_WR1: SCOPE = 'entity' @@ -4974,8 +4984,8 @@ class IfcDuctSegmentType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDuctSilencerType_WR1: SCOPE = 'entity' @@ -4984,8 +4994,8 @@ class IfcDuctSilencerType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEdgeLoop_WR1: SCOPE = 'entity' @@ -4994,9 +5004,9 @@ class IfcEdgeLoop_WR1: @staticmethod def __call__(self): - edgelist = getattr(self, 'EdgeList', INDETERMINATE) - ne = getattr(self, 'Ne', INDETERMINATE) - assert (getattr(express_getitem(edgelist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) == getattr(express_getitem(edgelist, ne - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE)) is not False + edgelist = express_getattr(self, 'EdgeList', INDETERMINATE) + ne = express_getattr(self, 'Ne', INDETERMINATE) + assert (express_getattr(express_getitem(edgelist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) == express_getattr(express_getitem(edgelist, ne - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE)) is not False class IfcEdgeLoop_WR2: SCOPE = 'entity' @@ -5008,7 +5018,7 @@ class IfcEdgeLoop_WR2: assert IfcLoopHeadToTail(self) is not False def calc_IfcEdgeLoop_Ne(self): - edgelist = getattr(self, 'EdgeList', INDETERMINATE) + edgelist = express_getattr(self, 'EdgeList', INDETERMINATE) return sizeof(edgelist) class IfcElectricDistributionPoint_WR31: @@ -5018,8 +5028,8 @@ class IfcElectricDistributionPoint_WR31: @staticmethod def __call__(self): - distributionpointfunction = getattr(self, 'DistributionPointFunction', INDETERMINATE) - assert (distributionpointfunction != getattr(IfcElectricDistributionPointFunctionEnum, 'USERDEFINED', INDETERMINATE) or (distributionpointfunction == getattr(IfcElectricDistributionPointFunctionEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedFunction', INDETERMINATE)))) is not False + distributionpointfunction = express_getattr(self, 'DistributionPointFunction', INDETERMINATE) + assert (distributionpointfunction != express_getattr(IfcElectricDistributionPointFunctionEnum, 'USERDEFINED', INDETERMINATE) or (distributionpointfunction == express_getattr(IfcElectricDistributionPointFunctionEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedFunction', INDETERMINATE)))) is not False class IfcElementAssembly_WR1: SCOPE = 'entity' @@ -5028,12 +5038,12 @@ class IfcElementAssembly_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False def calc_IfcElementarySurface_Dim(self): - position = getattr(self, 'Position', INDETERMINATE) - return getattr(position, 'Dim', INDETERMINATE) + position = express_getattr(self, 'Position', INDETERMINATE) + return express_getattr(position, 'Dim', INDETERMINATE) class IfcEnvironmentalImpactValue_WR1: SCOPE = 'entity' @@ -5042,8 +5052,8 @@ class IfcEnvironmentalImpactValue_WR1: @staticmethod def __call__(self): - category = getattr(self, 'Category', INDETERMINATE) - assert (category != getattr(IfcEnvironmentalImpactCategoryEnum, 'USERDEFINED', INDETERMINATE) or (category == getattr(IfcEnvironmentalImpactCategoryEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedCategory', INDETERMINATE)))) is not False + category = express_getattr(self, 'Category', INDETERMINATE) + assert (category != express_getattr(IfcEnvironmentalImpactCategoryEnum, 'USERDEFINED', INDETERMINATE) or (category == express_getattr(IfcEnvironmentalImpactCategoryEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedCategory', INDETERMINATE)))) is not False class IfcEvaporativeCoolerType_WR1: SCOPE = 'entity' @@ -5052,8 +5062,8 @@ class IfcEvaporativeCoolerType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvaporatorType_WR1: SCOPE = 'entity' @@ -5062,8 +5072,8 @@ class IfcEvaporatorType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcExternalReference_WR1: SCOPE = 'entity' @@ -5072,9 +5082,9 @@ class IfcExternalReference_WR1: @staticmethod def __call__(self): - location = getattr(self, 'Location', INDETERMINATE) - itemreference = getattr(self, 'ItemReference', INDETERMINATE) - name = getattr(self, 'Name', INDETERMINATE) + location = express_getattr(self, 'Location', INDETERMINATE) + itemreference = express_getattr(self, 'ItemReference', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) assert (exists(itemreference) or exists(location) or exists(name)) is not False class IfcExtrudedAreaSolid_WR31: @@ -5084,7 +5094,7 @@ class IfcExtrudedAreaSolid_WR31: @staticmethod def __call__(self): - assert (IfcDotProduct(IfcDirection(DirectionRatios=[0.0, 0.0, 1.0]), getattr(self, 'ExtrudedDirection', INDETERMINATE)) != 0.0) is not False + assert (IfcDotProduct(IfcDirection(DirectionRatios=[0.0, 0.0, 1.0]), express_getattr(self, 'ExtrudedDirection', INDETERMINATE)) != 0.0) is not False class IfcFace_WR1: SCOPE = 'entity' @@ -5093,7 +5103,7 @@ class IfcFace_WR1: @staticmethod def __call__(self): - bounds = getattr(self, 'Bounds', INDETERMINATE) + bounds = express_getattr(self, 'Bounds', INDETERMINATE) assert (sizeof([temp for temp in bounds if 'ifc2x3.ifcfaceouterbound' in typeof(temp)]) <= 1) is not False def calc_IfcFaceBasedSurfaceModel_Dim(self): @@ -5106,8 +5116,8 @@ class IfcFanType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFillAreaStyle_WR11: SCOPE = 'entity' @@ -5116,7 +5126,7 @@ class IfcFillAreaStyle_WR11: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'FillStyles', INDETERMINATE) if 'ifc2x3.ifccolour' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'FillStyles', INDETERMINATE) if 'ifc2x3.ifccolour' in typeof(style)]) <= 1) is not False class IfcFillAreaStyle_WR12: SCOPE = 'entity' @@ -5125,7 +5135,7 @@ class IfcFillAreaStyle_WR12: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'FillStyles', INDETERMINATE) if 'ifc2x3.ifcexternallydefinedhatchstyle' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'FillStyles', INDETERMINATE) if 'ifc2x3.ifcexternallydefinedhatchstyle' in typeof(style)]) <= 1) is not False class IfcFillAreaStyle_WR13: SCOPE = 'entity' @@ -5134,7 +5144,7 @@ class IfcFillAreaStyle_WR13: @staticmethod def __call__(self): - assert IfcCorrectFillAreaStyle(getattr(self, 'FillStyles', INDETERMINATE)) is not False + assert IfcCorrectFillAreaStyle(express_getattr(self, 'FillStyles', INDETERMINATE)) is not False class IfcFillAreaStyleHatching_WR21: SCOPE = 'entity' @@ -5143,7 +5153,7 @@ class IfcFillAreaStyleHatching_WR21: @staticmethod def __call__(self): - startofnexthatchline = getattr(self, 'StartOfNextHatchLine', INDETERMINATE) + startofnexthatchline = express_getattr(self, 'StartOfNextHatchLine', INDETERMINATE) assert (not 'ifc2x3.ifctwodirectionrepeatfactor' in typeof(startofnexthatchline)) is not False class IfcFillAreaStyleHatching_WR22: @@ -5153,8 +5163,8 @@ class IfcFillAreaStyleHatching_WR22: @staticmethod def __call__(self): - patternstart = getattr(self, 'PatternStart', INDETERMINATE) - assert (not exists(patternstart) or getattr(patternstart, 'Dim', INDETERMINATE) == 2) is not False + patternstart = express_getattr(self, 'PatternStart', INDETERMINATE) + assert (not exists(patternstart) or express_getattr(patternstart, 'Dim', INDETERMINATE) == 2) is not False class IfcFillAreaStyleHatching_WR23: SCOPE = 'entity' @@ -5163,8 +5173,8 @@ class IfcFillAreaStyleHatching_WR23: @staticmethod def __call__(self): - pointofreferencehatchline = getattr(self, 'PointOfReferenceHatchLine', INDETERMINATE) - assert (not exists(pointofreferencehatchline) or getattr(pointofreferencehatchline, 'Dim', INDETERMINATE) == 2) is not False + pointofreferencehatchline = express_getattr(self, 'PointOfReferenceHatchLine', INDETERMINATE) + assert (not exists(pointofreferencehatchline) or express_getattr(pointofreferencehatchline, 'Dim', INDETERMINATE) == 2) is not False class IfcFilterType_WR1: SCOPE = 'entity' @@ -5173,8 +5183,8 @@ class IfcFilterType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFlowMeterType_WR1: SCOPE = 'entity' @@ -5183,8 +5193,8 @@ class IfcFlowMeterType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFooting_WR1: SCOPE = 'entity' @@ -5193,8 +5203,8 @@ class IfcFooting_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcGasTerminalType_WR1: SCOPE = 'entity' @@ -5203,8 +5213,8 @@ class IfcGasTerminalType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcGasTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcGasTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcGasTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcGasTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcGeneralProfileProperties_WR1: SCOPE = 'entity' @@ -5213,7 +5223,7 @@ class IfcGeneralProfileProperties_WR1: @staticmethod def __call__(self): - crosssectionarea = getattr(self, 'CrossSectionArea', INDETERMINATE) + crosssectionarea = express_getattr(self, 'CrossSectionArea', INDETERMINATE) assert (not exists(crosssectionarea) or crosssectionarea > 0.0) is not False class IfcGeometricCurveSet_WR1: @@ -5223,7 +5233,7 @@ class IfcGeometricCurveSet_WR1: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Elements', INDETERMINATE) if 'ifc2x3.ifcsurface' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Elements', INDETERMINATE) if 'ifc2x3.ifcsurface' in typeof(temp)]) == 0) is not False class IfcGeometricRepresentationSubContext_WR31: SCOPE = 'entity' @@ -5232,7 +5242,7 @@ class IfcGeometricRepresentationSubContext_WR31: @staticmethod def __call__(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) assert (not 'ifc2x3.ifcgeometricrepresentationsubcontext' in typeof(parentcontext)) is not False class IfcGeometricRepresentationSubContext_WR32: @@ -5242,25 +5252,25 @@ class IfcGeometricRepresentationSubContext_WR32: @staticmethod def __call__(self): - targetview = getattr(self, 'TargetView', INDETERMINATE) - userdefinedtargetview = getattr(self, 'UserDefinedTargetView', INDETERMINATE) - assert (targetview != getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) or (targetview == getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedtargetview))) is not False + targetview = express_getattr(self, 'TargetView', INDETERMINATE) + userdefinedtargetview = express_getattr(self, 'UserDefinedTargetView', INDETERMINATE) + assert (targetview != express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) or (targetview == express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedtargetview))) is not False def calc_IfcGeometricRepresentationSubContext_WorldCoordinateSystem(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return getattr(parentcontext, 'WorldCoordinateSystem', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return express_getattr(parentcontext, 'WorldCoordinateSystem', INDETERMINATE) def calc_IfcGeometricRepresentationSubContext_CoordinateSpaceDimension(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return getattr(parentcontext, 'CoordinateSpaceDimension', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return express_getattr(parentcontext, 'CoordinateSpaceDimension', INDETERMINATE) def calc_IfcGeometricRepresentationSubContext_TrueNorth(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return nvl(getattr(parentcontext, 'TrueNorth', INDETERMINATE), express_getitem(getattr(getattr(self, 'WorldCoordinateSystem', INDETERMINATE), 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return nvl(express_getattr(parentcontext, 'TrueNorth', INDETERMINATE), express_getitem(express_getattr(express_getattr(self, 'WorldCoordinateSystem', INDETERMINATE), 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) def calc_IfcGeometricRepresentationSubContext_Precision(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return nvl(getattr(parentcontext, 'Precision', INDETERMINATE), 1) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return nvl(express_getattr(parentcontext, 'Precision', INDETERMINATE), 1) class IfcGeometricSet_WR21: SCOPE = 'entity' @@ -5269,12 +5279,12 @@ class IfcGeometricSet_WR21: @staticmethod def __call__(self): - elements = getattr(self, 'Elements', INDETERMINATE) - assert (sizeof([temp for temp in elements if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + elements = express_getattr(self, 'Elements', INDETERMINATE) + assert (sizeof([temp for temp in elements if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcGeometricSet_Dim(self): - elements = getattr(self, 'Elements', INDETERMINATE) - return getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + elements = express_getattr(self, 'Elements', INDETERMINATE) + return express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) class IfcGrid_WR41: SCOPE = 'entity' @@ -5283,7 +5293,7 @@ class IfcGrid_WR41: @staticmethod def __call__(self): - assert exists(getattr(self, 'ObjectPlacement', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'ObjectPlacement', INDETERMINATE)) is not False class IfcGridAxis_WR1: SCOPE = 'entity' @@ -5292,8 +5302,8 @@ class IfcGridAxis_WR1: @staticmethod def __call__(self): - axiscurve = getattr(self, 'AxisCurve', INDETERMINATE) - assert (getattr(axiscurve, 'Dim', INDETERMINATE) == 2) is not False + axiscurve = express_getattr(self, 'AxisCurve', INDETERMINATE) + assert (express_getattr(axiscurve, 'Dim', INDETERMINATE) == 2) is not False class IfcGridAxis_WR2: SCOPE = 'entity' @@ -5302,9 +5312,9 @@ class IfcGridAxis_WR2: @staticmethod def __call__(self): - partofw = getattr(self, 'PartOfW', INDETERMINATE) - partofv = getattr(self, 'PartOfV', INDETERMINATE) - partofu = getattr(self, 'PartOfU', INDETERMINATE) + partofw = express_getattr(self, 'PartOfW', INDETERMINATE) + partofv = express_getattr(self, 'PartOfV', INDETERMINATE) + partofu = express_getattr(self, 'PartOfU', INDETERMINATE) assert (sizeof(partofu) == 1) ^ (sizeof(partofv) == 1) ^ (sizeof(partofw) == 1) is not False def calc_IfcHalfSpaceSolid_Dim(self): @@ -5317,8 +5327,8 @@ class IfcHeatExchangerType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcHumidifierType_WR1: SCOPE = 'entity' @@ -5327,8 +5337,8 @@ class IfcHumidifierType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcIShapeProfileDef_WR1: SCOPE = 'entity' @@ -5337,8 +5347,8 @@ class IfcIShapeProfileDef_WR1: @staticmethod def __call__(self): - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < overalldepth / 2.0) is not False class IfcIShapeProfileDef_WR2: @@ -5348,8 +5358,8 @@ class IfcIShapeProfileDef_WR2: @staticmethod def __call__(self): - overallwidth = getattr(self, 'OverallWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + overallwidth = express_getattr(self, 'OverallWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < overallwidth) is not False class IfcIShapeProfileDef_WR3: @@ -5359,11 +5369,11 @@ class IfcIShapeProfileDef_WR3: @staticmethod def __call__(self): - overallwidth = getattr(self, 'OverallWidth', INDETERMINATE) - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) - filletradius = getattr(self, 'FilletRadius', INDETERMINATE) + overallwidth = express_getattr(self, 'OverallWidth', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) + filletradius = express_getattr(self, 'FilletRadius', INDETERMINATE) assert (not exists(filletradius) or (filletradius <= (overallwidth - webthickness) / 2.0 and filletradius <= (overalldepth - 2.0 * flangethickness) / 2.0)) is not False class IfcInventory_WR41: @@ -5373,7 +5383,7 @@ class IfcInventory_WR41: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(getattr(self, 'IsGroupedBy', INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not ('ifc2x3.ifcspace' in typeof(temp) or 'ifc2x3.ifcasset' in typeof(temp) or 'ifc2x3.ifcfurnishingelement' in typeof(temp))]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(express_getattr(self, 'IsGroupedBy', INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not ('ifc2x3.ifcspace' in typeof(temp) or 'ifc2x3.ifcasset' in typeof(temp) or 'ifc2x3.ifcfurnishingelement' in typeof(temp))]) == 0) is not False class IfcLShapeProfileDef_WR21: SCOPE = 'entity' @@ -5382,8 +5392,8 @@ class IfcLShapeProfileDef_WR21: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - thickness = getattr(self, 'Thickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + thickness = express_getattr(self, 'Thickness', INDETERMINATE) assert (thickness < depth) is not False class IfcLShapeProfileDef_WR22: @@ -5393,8 +5403,8 @@ class IfcLShapeProfileDef_WR22: @staticmethod def __call__(self): - width = getattr(self, 'Width', INDETERMINATE) - thickness = getattr(self, 'Thickness', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + thickness = express_getattr(self, 'Thickness', INDETERMINATE) assert (not exists(width) or thickness < width) is not False class IfcLine_WR1: @@ -5404,9 +5414,9 @@ class IfcLine_WR1: @staticmethod def __call__(self): - pnt = getattr(self, 'Pnt', INDETERMINATE) - dir = getattr(self, 'Dir', INDETERMINATE) - assert (getattr(dir, 'Dim', INDETERMINATE) == getattr(pnt, 'Dim', INDETERMINATE)) is not False + pnt = express_getattr(self, 'Pnt', INDETERMINATE) + dir = express_getattr(self, 'Dir', INDETERMINATE) + assert (express_getattr(dir, 'Dim', INDETERMINATE) == express_getattr(pnt, 'Dim', INDETERMINATE)) is not False class IfcLocalPlacement_WR21: SCOPE = 'entity' @@ -5415,8 +5425,8 @@ class IfcLocalPlacement_WR21: @staticmethod def __call__(self): - placementrelto = getattr(self, 'PlacementRelTo', INDETERMINATE) - relativeplacement = getattr(self, 'RelativePlacement', INDETERMINATE) + placementrelto = express_getattr(self, 'PlacementRelTo', INDETERMINATE) + relativeplacement = express_getattr(self, 'RelativePlacement', INDETERMINATE) assert IfcCorrectLocalPlacement(relativeplacement, placementrelto) is not False class IfcLocalTime_WR21: @@ -5435,7 +5445,7 @@ class IfcMaterialDefinitionRepresentation_WR11: @staticmethod def __call__(self): - representations = getattr(self, 'Representations', INDETERMINATE) + representations = express_getattr(self, 'Representations', INDETERMINATE) assert (sizeof([temp for temp in representations if not 'ifc2x3.ifcstyledrepresentation' in typeof(temp)]) == 0) is not False def calc_IfcMaterialLayerSet_TotalThickness(self): @@ -5448,7 +5458,7 @@ class IfcMechanicalMaterialProperties_WR21: @staticmethod def __call__(self): - youngmodulus = getattr(self, 'YoungModulus', INDETERMINATE) + youngmodulus = express_getattr(self, 'YoungModulus', INDETERMINATE) assert (not exists(youngmodulus) or youngmodulus >= 0.0) is not False class IfcMechanicalMaterialProperties_WR22: @@ -5458,7 +5468,7 @@ class IfcMechanicalMaterialProperties_WR22: @staticmethod def __call__(self): - shearmodulus = getattr(self, 'ShearModulus', INDETERMINATE) + shearmodulus = express_getattr(self, 'ShearModulus', INDETERMINATE) assert (not exists(shearmodulus) or shearmodulus >= 0.0) is not False class IfcMechanicalSteelMaterialProperties_WR31: @@ -5468,7 +5478,7 @@ class IfcMechanicalSteelMaterialProperties_WR31: @staticmethod def __call__(self): - yieldstress = getattr(self, 'YieldStress', INDETERMINATE) + yieldstress = express_getattr(self, 'YieldStress', INDETERMINATE) assert (not exists(yieldstress) or yieldstress >= 0.0) is not False class IfcMechanicalSteelMaterialProperties_WR32: @@ -5478,7 +5488,7 @@ class IfcMechanicalSteelMaterialProperties_WR32: @staticmethod def __call__(self): - ultimatestress = getattr(self, 'UltimateStress', INDETERMINATE) + ultimatestress = express_getattr(self, 'UltimateStress', INDETERMINATE) assert (not exists(ultimatestress) or ultimatestress >= 0.0) is not False class IfcMechanicalSteelMaterialProperties_WR33: @@ -5488,7 +5498,7 @@ class IfcMechanicalSteelMaterialProperties_WR33: @staticmethod def __call__(self): - hardeningmodule = getattr(self, 'HardeningModule', INDETERMINATE) + hardeningmodule = express_getattr(self, 'HardeningModule', INDETERMINATE) assert (not exists(hardeningmodule) or hardeningmodule >= 0.0) is not False class IfcMechanicalSteelMaterialProperties_WR34: @@ -5498,7 +5508,7 @@ class IfcMechanicalSteelMaterialProperties_WR34: @staticmethod def __call__(self): - proportionalstress = getattr(self, 'ProportionalStress', INDETERMINATE) + proportionalstress = express_getattr(self, 'ProportionalStress', INDETERMINATE) assert (not exists(proportionalstress) or proportionalstress >= 0.0) is not False class IfcMove_WR1: @@ -5508,7 +5518,7 @@ class IfcMove_WR1: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'OperatesOn', INDETERMINATE)) >= 1) is not False + assert (sizeof(express_getattr(self, 'OperatesOn', INDETERMINATE)) >= 1) is not False class IfcMove_WR2: SCOPE = 'entity' @@ -5517,8 +5527,8 @@ class IfcMove_WR2: @staticmethod def __call__(self): - operateson = getattr(self, 'OperatesOn', INDETERMINATE) - assert (sizeof([temp for temp in operateson if sizeof([temp2 for temp2 in getattr(temp, 'RelatedObjects', INDETERMINATE) if 'ifc2x3.ifcactor' in typeof(temp2) or 'ifc2x3.ifcequipmentelement' in typeof(temp2) or 'ifc2x3.ifcfurnishingelement' in typeof(temp2)]) >= 1]) >= 1) is not False + operateson = express_getattr(self, 'OperatesOn', INDETERMINATE) + assert (sizeof([temp for temp in operateson if sizeof([temp2 for temp2 in express_getattr(temp, 'RelatedObjects', INDETERMINATE) if 'ifc2x3.ifcactor' in typeof(temp2) or 'ifc2x3.ifcequipmentelement' in typeof(temp2) or 'ifc2x3.ifcfurnishingelement' in typeof(temp2)]) >= 1]) >= 1) is not False class IfcMove_WR3: SCOPE = 'entity' @@ -5527,7 +5537,7 @@ class IfcMove_WR3: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcNamedUnit_WR1: SCOPE = 'entity' @@ -5536,7 +5546,7 @@ class IfcNamedUnit_WR1: @staticmethod def __call__(self): - assert IfcCorrectDimensions(getattr(self, 'UnitType', INDETERMINATE), getattr(self, 'Dimensions', INDETERMINATE)) is not False + assert IfcCorrectDimensions(express_getattr(self, 'UnitType', INDETERMINATE), express_getattr(self, 'Dimensions', INDETERMINATE)) is not False class IfcObject_WR1: SCOPE = 'entity' @@ -5545,7 +5555,7 @@ class IfcObject_WR1: @staticmethod def __call__(self): - isdefinedby = getattr(self, 'IsDefinedBy', INDETERMINATE) + isdefinedby = express_getattr(self, 'IsDefinedBy', INDETERMINATE) assert (sizeof([temp for temp in isdefinedby if 'ifc2x3.ifcreldefinesbytype' in typeof(temp)]) <= 1) is not False class IfcObjective_WR21: @@ -5555,8 +5565,8 @@ class IfcObjective_WR21: @staticmethod def __call__(self): - objectivequalifier = getattr(self, 'ObjectiveQualifier', INDETERMINATE) - assert (objectivequalifier != getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) or (objectivequalifier == getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedQualifier', INDETERMINATE)))) is not False + objectivequalifier = express_getattr(self, 'ObjectiveQualifier', INDETERMINATE) + assert (objectivequalifier != express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) or (objectivequalifier == express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedQualifier', INDETERMINATE)))) is not False class IfcOccupant_WR31: SCOPE = 'entity' @@ -5565,8 +5575,8 @@ class IfcOccupant_WR31: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not predefinedtype == getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not predefinedtype == express_getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcOffsetCurve2D_WR1: SCOPE = 'entity' @@ -5575,8 +5585,8 @@ class IfcOffsetCurve2D_WR1: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - assert (getattr(basiscurve, 'Dim', INDETERMINATE) == 2) is not False + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + assert (express_getattr(basiscurve, 'Dim', INDETERMINATE) == 2) is not False class IfcOffsetCurve3D_WR1: SCOPE = 'entity' @@ -5585,8 +5595,8 @@ class IfcOffsetCurve3D_WR1: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - assert (getattr(basiscurve, 'Dim', INDETERMINATE) == 3) is not False + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + assert (express_getattr(basiscurve, 'Dim', INDETERMINATE) == 3) is not False class IfcOrientedEdge_WR1: SCOPE = 'entity' @@ -5595,18 +5605,18 @@ class IfcOrientedEdge_WR1: @staticmethod def __call__(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) assert (not 'ifc2x3.ifcorientededge' in typeof(edgeelement)) is not False def calc_IfcOrientedEdge_EdgeStart(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) - orientation = getattr(self, 'Orientation', INDETERMINATE) - return IfcBooleanChoose(orientation, getattr(edgeelement, 'EdgeStart', INDETERMINATE), getattr(edgeelement, 'EdgeEnd', INDETERMINATE)) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return IfcBooleanChoose(orientation, express_getattr(edgeelement, 'EdgeStart', INDETERMINATE), express_getattr(edgeelement, 'EdgeEnd', INDETERMINATE)) def calc_IfcOrientedEdge_EdgeEnd(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) - orientation = getattr(self, 'Orientation', INDETERMINATE) - return IfcBooleanChoose(orientation, getattr(edgeelement, 'EdgeEnd', INDETERMINATE), getattr(edgeelement, 'EdgeStart', INDETERMINATE)) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return IfcBooleanChoose(orientation, express_getattr(edgeelement, 'EdgeEnd', INDETERMINATE), express_getattr(edgeelement, 'EdgeStart', INDETERMINATE)) class IfcPath_WR1: SCOPE = 'entity' @@ -5624,8 +5634,8 @@ class IfcPerson_WR1: @staticmethod def __call__(self): - familyname = getattr(self, 'FamilyName', INDETERMINATE) - givenname = getattr(self, 'GivenName', INDETERMINATE) + familyname = express_getattr(self, 'FamilyName', INDETERMINATE) + givenname = express_getattr(self, 'GivenName', INDETERMINATE) assert (exists(familyname) or exists(givenname)) is not False class IfcPhysicalComplexQuantity_WR21: @@ -5635,7 +5645,7 @@ class IfcPhysicalComplexQuantity_WR21: @staticmethod def __call__(self): - hasquantities = getattr(self, 'HasQuantities', INDETERMINATE) + hasquantities = express_getattr(self, 'HasQuantities', INDETERMINATE) assert (sizeof([temp for temp in hasquantities if self == temp]) == 0) is not False class IfcPile_WR1: @@ -5645,8 +5655,8 @@ class IfcPile_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPipeFittingType_WR1: SCOPE = 'entity' @@ -5655,8 +5665,8 @@ class IfcPipeFittingType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPipeSegmentType_WR1: SCOPE = 'entity' @@ -5665,8 +5675,8 @@ class IfcPipeSegmentType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPixelTexture_WR21: SCOPE = 'entity' @@ -5675,7 +5685,7 @@ class IfcPixelTexture_WR21: @staticmethod def __call__(self): - width = getattr(self, 'Width', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) assert (width >= 1) is not False class IfcPixelTexture_WR22: @@ -5685,7 +5695,7 @@ class IfcPixelTexture_WR22: @staticmethod def __call__(self): - height = getattr(self, 'Height', INDETERMINATE) + height = express_getattr(self, 'Height', INDETERMINATE) assert (height >= 1) is not False class IfcPixelTexture_WR23: @@ -5695,7 +5705,7 @@ class IfcPixelTexture_WR23: @staticmethod def __call__(self): - colourcomponents = getattr(self, 'ColourComponents', INDETERMINATE) + colourcomponents = express_getattr(self, 'ColourComponents', INDETERMINATE) assert (1 <= colourcomponents <= 4) is not False class IfcPixelTexture_WR24: @@ -5705,22 +5715,22 @@ class IfcPixelTexture_WR24: @staticmethod def __call__(self): - width = getattr(self, 'Width', INDETERMINATE) - height = getattr(self, 'Height', INDETERMINATE) - pixel = getattr(self, 'Pixel', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + height = express_getattr(self, 'Height', INDETERMINATE) + pixel = express_getattr(self, 'Pixel', INDETERMINATE) assert (sizeof(pixel) == width * height) is not False def calc_IfcPlacement_Dim(self): - location = getattr(self, 'Location', INDETERMINATE) - return getattr(location, 'Dim', INDETERMINATE) + location = express_getattr(self, 'Location', INDETERMINATE) + return express_getattr(location, 'Dim', INDETERMINATE) def calc_IfcPointOnCurve_Dim(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - return getattr(basiscurve, 'Dim', INDETERMINATE) + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + return express_getattr(basiscurve, 'Dim', INDETERMINATE) def calc_IfcPointOnSurface_Dim(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) - return getattr(basissurface, 'Dim', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) + return express_getattr(basissurface, 'Dim', INDETERMINATE) class IfcPolyLoop_WR21: SCOPE = 'entity' @@ -5729,8 +5739,8 @@ class IfcPolyLoop_WR21: @staticmethod def __call__(self): - polygon = getattr(self, 'Polygon', INDETERMINATE) - assert (sizeof([temp for temp in polygon if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(polygon, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + polygon = express_getattr(self, 'Polygon', INDETERMINATE) + assert (sizeof([temp for temp in polygon if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(polygon, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False class IfcPolygonalBoundedHalfSpace_WR41: SCOPE = 'entity' @@ -5739,8 +5749,8 @@ class IfcPolygonalBoundedHalfSpace_WR41: @staticmethod def __call__(self): - polygonalboundary = getattr(self, 'PolygonalBoundary', INDETERMINATE) - assert (getattr(polygonalboundary, 'Dim', INDETERMINATE) == 2) is not False + polygonalboundary = express_getattr(self, 'PolygonalBoundary', INDETERMINATE) + assert (express_getattr(polygonalboundary, 'Dim', INDETERMINATE) == 2) is not False class IfcPolygonalBoundedHalfSpace_WR42: SCOPE = 'entity' @@ -5749,7 +5759,7 @@ class IfcPolygonalBoundedHalfSpace_WR42: @staticmethod def __call__(self): - polygonalboundary = getattr(self, 'PolygonalBoundary', INDETERMINATE) + polygonalboundary = express_getattr(self, 'PolygonalBoundary', INDETERMINATE) assert (sizeof(typeof(polygonalboundary) * ['ifc2x3.ifcpolyline', 'ifc2x3.ifccompositecurve']) == 1) is not False class IfcPolyline_WR41: @@ -5759,8 +5769,8 @@ class IfcPolyline_WR41: @staticmethod def __call__(self): - points = getattr(self, 'Points', INDETERMINATE) - assert (sizeof([temp for temp in points if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(points, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + points = express_getattr(self, 'Points', INDETERMINATE) + assert (sizeof([temp for temp in points if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(points, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False class IfcPostalAddress_WR1: SCOPE = 'entity' @@ -5769,13 +5779,13 @@ class IfcPostalAddress_WR1: @staticmethod def __call__(self): - internallocation = getattr(self, 'InternalLocation', INDETERMINATE) - addresslines = getattr(self, 'AddressLines', INDETERMINATE) - postalbox = getattr(self, 'PostalBox', INDETERMINATE) - town = getattr(self, 'Town', INDETERMINATE) - region = getattr(self, 'Region', INDETERMINATE) - postalcode = getattr(self, 'PostalCode', INDETERMINATE) - country = getattr(self, 'Country', INDETERMINATE) + internallocation = express_getattr(self, 'InternalLocation', INDETERMINATE) + addresslines = express_getattr(self, 'AddressLines', INDETERMINATE) + postalbox = express_getattr(self, 'PostalBox', INDETERMINATE) + town = express_getattr(self, 'Town', INDETERMINATE) + region = express_getattr(self, 'Region', INDETERMINATE) + postalcode = express_getattr(self, 'PostalCode', INDETERMINATE) + country = express_getattr(self, 'Country', INDETERMINATE) assert (exists(internallocation) or exists(addresslines) or exists(postalbox) or exists(postalcode) or exists(town) or exists(region) or exists(country)) is not False class IfcPreDefinedDimensionSymbol_WR31: @@ -5785,7 +5795,7 @@ class IfcPreDefinedDimensionSymbol_WR31: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['arclength', 'conicaltaper', 'counterbore', 'countersink', 'depth', 'diameter', 'plusminus', 'radius', 'slope', 'sphericaldiameter', 'sphericalradius', 'square']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['arclength', 'conicaltaper', 'counterbore', 'countersink', 'depth', 'diameter', 'plusminus', 'radius', 'slope', 'sphericaldiameter', 'sphericalradius', 'square']) is not False class IfcPreDefinedPointMarkerSymbol_WR31: SCOPE = 'entity' @@ -5794,7 +5804,7 @@ class IfcPreDefinedPointMarkerSymbol_WR31: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['asterisk', 'circle', 'dot', 'plus', 'square', 'triangle', 'x']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['asterisk', 'circle', 'dot', 'plus', 'square', 'triangle', 'x']) is not False class IfcPreDefinedTerminatorSymbol_WR31: SCOPE = 'entity' @@ -5803,7 +5813,7 @@ class IfcPreDefinedTerminatorSymbol_WR31: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['blankedarrow', 'blankedbox', 'blankeddot', 'dimensionorigin', 'filledarrow', 'filledbox', 'filleddot', 'integralsymbol', 'openarrow', 'slash', 'unfilledarrow']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['blankedarrow', 'blankedbox', 'blankeddot', 'dimensionorigin', 'filledarrow', 'filledbox', 'filleddot', 'integralsymbol', 'openarrow', 'slash', 'unfilledarrow']) is not False class IfcProcedure_WR1: SCOPE = 'entity' @@ -5812,7 +5822,7 @@ class IfcProcedure_WR1: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Decomposes', INDETERMINATE) if not 'ifc2x3.ifcrelnests' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Decomposes', INDETERMINATE) if not 'ifc2x3.ifcrelnests' in typeof(temp)]) == 0) is not False class IfcProcedure_WR2: SCOPE = 'entity' @@ -5821,7 +5831,7 @@ class IfcProcedure_WR2: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'IsDecomposedBy', INDETERMINATE) if not 'ifc2x3.ifcrelnests' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'IsDecomposedBy', INDETERMINATE) if not 'ifc2x3.ifcrelnests' in typeof(temp)]) == 0) is not False class IfcProcedure_WR3: SCOPE = 'entity' @@ -5830,7 +5840,7 @@ class IfcProcedure_WR3: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcProcedure_WR4: SCOPE = 'entity' @@ -5839,8 +5849,8 @@ class IfcProcedure_WR4: @staticmethod def __call__(self): - proceduretype = getattr(self, 'ProcedureType', INDETERMINATE) - assert (proceduretype != getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (proceduretype == getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedProcedureType', INDETERMINATE)))) is not False + proceduretype = express_getattr(self, 'ProcedureType', INDETERMINATE) + assert (proceduretype != express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (proceduretype == express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedProcedureType', INDETERMINATE)))) is not False class IfcProduct_WR1: SCOPE = 'entity' @@ -5849,8 +5859,8 @@ class IfcProduct_WR1: @staticmethod def __call__(self): - objectplacement = getattr(self, 'ObjectPlacement', INDETERMINATE) - representation = getattr(self, 'Representation', INDETERMINATE) + objectplacement = express_getattr(self, 'ObjectPlacement', INDETERMINATE) + representation = express_getattr(self, 'Representation', INDETERMINATE) assert (exists(representation) and exists(objectplacement) or (exists(representation) and (not 'ifc2x3.ifcproductdefinitionshape' in typeof(representation))) or (not exists(representation))) is not False class IfcProductDefinitionShape_WR11: @@ -5860,7 +5870,7 @@ class IfcProductDefinitionShape_WR11: @staticmethod def __call__(self): - representations = getattr(self, 'Representations', INDETERMINATE) + representations = express_getattr(self, 'Representations', INDETERMINATE) assert (sizeof([temp for temp in representations if not 'ifc2x3.ifcshapemodel' in typeof(temp)]) == 0) is not False class IfcProject_WR31: @@ -5870,7 +5880,7 @@ class IfcProject_WR31: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcProject_WR32: SCOPE = 'entity' @@ -5879,7 +5889,7 @@ class IfcProject_WR32: @staticmethod def __call__(self): - representationcontexts = getattr(self, 'RepresentationContexts', INDETERMINATE) + representationcontexts = express_getattr(self, 'RepresentationContexts', INDETERMINATE) assert (sizeof([temp for temp in representationcontexts if 'ifc2x3.ifcgeometricrepresentationsubcontext' in typeof(temp)]) == 0) is not False class IfcProject_WR33: @@ -5889,7 +5899,7 @@ class IfcProject_WR33: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'Decomposes', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'Decomposes', INDETERMINATE)) == 0) is not False class IfcPropertyBoundedValue_WR21: SCOPE = 'entity' @@ -5898,8 +5908,8 @@ class IfcPropertyBoundedValue_WR21: @staticmethod def __call__(self): - upperboundvalue = getattr(self, 'UpperBoundValue', INDETERMINATE) - lowerboundvalue = getattr(self, 'LowerBoundValue', INDETERMINATE) + upperboundvalue = express_getattr(self, 'UpperBoundValue', INDETERMINATE) + lowerboundvalue = express_getattr(self, 'LowerBoundValue', INDETERMINATE) assert (not exists(upperboundvalue) or not exists(lowerboundvalue) or typeof(upperboundvalue) == typeof(lowerboundvalue)) is not False class IfcPropertyBoundedValue_WR22: @@ -5909,8 +5919,8 @@ class IfcPropertyBoundedValue_WR22: @staticmethod def __call__(self): - upperboundvalue = getattr(self, 'UpperBoundValue', INDETERMINATE) - lowerboundvalue = getattr(self, 'LowerBoundValue', INDETERMINATE) + upperboundvalue = express_getattr(self, 'UpperBoundValue', INDETERMINATE) + lowerboundvalue = express_getattr(self, 'LowerBoundValue', INDETERMINATE) assert (exists(upperboundvalue) or exists(lowerboundvalue)) is not False class IfcPropertyDependencyRelationship_WR1: @@ -5920,8 +5930,8 @@ class IfcPropertyDependencyRelationship_WR1: @staticmethod def __call__(self): - dependingproperty = getattr(self, 'DependingProperty', INDETERMINATE) - dependantproperty = getattr(self, 'DependantProperty', INDETERMINATE) + dependingproperty = express_getattr(self, 'DependingProperty', INDETERMINATE) + dependantproperty = express_getattr(self, 'DependantProperty', INDETERMINATE) assert (dependingproperty != dependantproperty) is not False class IfcPropertyEnumeratedValue_WR1: @@ -5931,9 +5941,9 @@ class IfcPropertyEnumeratedValue_WR1: @staticmethod def __call__(self): - enumerationvalues = getattr(self, 'EnumerationValues', INDETERMINATE) - enumerationreference = getattr(self, 'EnumerationReference', INDETERMINATE) - assert (not exists(enumerationreference) or sizeof([temp for temp in enumerationvalues if temp in getattr(enumerationreference, 'EnumerationValues', INDETERMINATE)]) == sizeof(enumerationvalues)) is not False + enumerationvalues = express_getattr(self, 'EnumerationValues', INDETERMINATE) + enumerationreference = express_getattr(self, 'EnumerationReference', INDETERMINATE) + assert (not exists(enumerationreference) or sizeof([temp for temp in enumerationvalues if temp in express_getattr(enumerationreference, 'EnumerationValues', INDETERMINATE)]) == sizeof(enumerationvalues)) is not False class IfcPropertyEnumeration_WR01: SCOPE = 'entity' @@ -5942,7 +5952,7 @@ class IfcPropertyEnumeration_WR01: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'EnumerationValues', INDETERMINATE) if not typeof(express_getitem(getattr(self, 'EnumerationValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'EnumerationValues', INDETERMINATE) if not typeof(express_getitem(express_getattr(self, 'EnumerationValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False class IfcPropertyListValue_WR31: SCOPE = 'entity' @@ -5951,7 +5961,7 @@ class IfcPropertyListValue_WR31: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'ListValues', INDETERMINATE) if not typeof(express_getitem(getattr(self, 'ListValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'ListValues', INDETERMINATE) if not typeof(express_getitem(express_getattr(self, 'ListValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False class IfcPropertySet_WR31: SCOPE = 'entity' @@ -5960,7 +5970,7 @@ class IfcPropertySet_WR31: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPropertySet_WR32: SCOPE = 'entity' @@ -5969,7 +5979,7 @@ class IfcPropertySet_WR32: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert IfcUniquePropertyName(hasproperties) is not False class IfcPropertyTableValue_WR1: @@ -5979,8 +5989,8 @@ class IfcPropertyTableValue_WR1: @staticmethod def __call__(self): - definingvalues = getattr(self, 'DefiningValues', INDETERMINATE) - definedvalues = getattr(self, 'DefinedValues', INDETERMINATE) + definingvalues = express_getattr(self, 'DefiningValues', INDETERMINATE) + definedvalues = express_getattr(self, 'DefinedValues', INDETERMINATE) assert (sizeof(definingvalues) == sizeof(definedvalues)) is not False class IfcPropertyTableValue_WR2: @@ -5990,7 +6000,7 @@ class IfcPropertyTableValue_WR2: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'DefiningValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(getattr(self, 'DefiningValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'DefiningValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(express_getattr(self, 'DefiningValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False class IfcPropertyTableValue_WR3: SCOPE = 'entity' @@ -5999,7 +6009,7 @@ class IfcPropertyTableValue_WR3: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'DefinedValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(getattr(self, 'DefinedValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'DefinedValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(express_getattr(self, 'DefinedValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False class IfcProxy_WR1: SCOPE = 'entity' @@ -6008,7 +6018,7 @@ class IfcProxy_WR1: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPumpType_WR1: SCOPE = 'entity' @@ -6017,8 +6027,8 @@ class IfcPumpType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcQuantityArea_WR21: SCOPE = 'entity' @@ -6027,7 +6037,7 @@ class IfcQuantityArea_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE)) is not False class IfcQuantityArea_WR22: SCOPE = 'entity' @@ -6036,7 +6046,7 @@ class IfcQuantityArea_WR22: @staticmethod def __call__(self): - areavalue = getattr(self, 'AreaValue', INDETERMINATE) + areavalue = express_getattr(self, 'AreaValue', INDETERMINATE) assert (areavalue >= 0.0) is not False class IfcQuantityCount_WR21: @@ -6046,7 +6056,7 @@ class IfcQuantityCount_WR21: @staticmethod def __call__(self): - countvalue = getattr(self, 'CountValue', INDETERMINATE) + countvalue = express_getattr(self, 'CountValue', INDETERMINATE) assert (countvalue >= 0.0) is not False class IfcQuantityLength_WR21: @@ -6056,7 +6066,7 @@ class IfcQuantityLength_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False class IfcQuantityLength_WR22: SCOPE = 'entity' @@ -6065,7 +6075,7 @@ class IfcQuantityLength_WR22: @staticmethod def __call__(self): - lengthvalue = getattr(self, 'LengthValue', INDETERMINATE) + lengthvalue = express_getattr(self, 'LengthValue', INDETERMINATE) assert (lengthvalue >= 0.0) is not False class IfcQuantityTime_WR21: @@ -6075,7 +6085,7 @@ class IfcQuantityTime_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE)) is not False class IfcQuantityTime_WR22: SCOPE = 'entity' @@ -6084,7 +6094,7 @@ class IfcQuantityTime_WR22: @staticmethod def __call__(self): - timevalue = getattr(self, 'TimeValue', INDETERMINATE) + timevalue = express_getattr(self, 'TimeValue', INDETERMINATE) assert (timevalue >= 0.0) is not False class IfcQuantityVolume_WR21: @@ -6094,7 +6104,7 @@ class IfcQuantityVolume_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE)) is not False class IfcQuantityVolume_WR22: SCOPE = 'entity' @@ -6103,7 +6113,7 @@ class IfcQuantityVolume_WR22: @staticmethod def __call__(self): - volumevalue = getattr(self, 'VolumeValue', INDETERMINATE) + volumevalue = express_getattr(self, 'VolumeValue', INDETERMINATE) assert (volumevalue >= 0.0) is not False class IfcQuantityWeight_WR21: @@ -6113,7 +6123,7 @@ class IfcQuantityWeight_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE)) is not False class IfcQuantityWeight_WR22: SCOPE = 'entity' @@ -6122,7 +6132,7 @@ class IfcQuantityWeight_WR22: @staticmethod def __call__(self): - weightvalue = getattr(self, 'WeightValue', INDETERMINATE) + weightvalue = express_getattr(self, 'WeightValue', INDETERMINATE) assert (weightvalue >= 0.0) is not False class IfcRailing_WR61: @@ -6132,8 +6142,8 @@ class IfcRailing_WR61: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRamp_WR1: SCOPE = 'entity' @@ -6142,7 +6152,7 @@ class IfcRamp_WR1: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'IsDecomposedBy', INDETERMINATE)) == 0 or (hiindex(getattr(self, 'IsDecomposedBy', INDETERMINATE)) == 1 and (not exists(getattr(self, 'Representation', INDETERMINATE))))) is not False + assert (hiindex(express_getattr(self, 'IsDecomposedBy', INDETERMINATE)) == 0 or (hiindex(express_getattr(self, 'IsDecomposedBy', INDETERMINATE)) == 1 and (not exists(express_getattr(self, 'Representation', INDETERMINATE))))) is not False class IfcRationalBezierCurve_WR1: SCOPE = 'entity' @@ -6151,8 +6161,8 @@ class IfcRationalBezierCurve_WR1: @staticmethod def __call__(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - assert (sizeof(weightsdata) == sizeof(getattr(self, 'ControlPointsList', INDETERMINATE))) is not False + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + assert (sizeof(weightsdata) == sizeof(express_getattr(self, 'ControlPointsList', INDETERMINATE))) is not False class IfcRationalBezierCurve_WR2: SCOPE = 'entity' @@ -6164,8 +6174,8 @@ class IfcRationalBezierCurve_WR2: assert IfcCurveWeightsPositive(self) is not False def calc_IfcRationalBezierCurve_Weights(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - return IfcListToArray(weightsdata, 0, getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE)) + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + return IfcListToArray(weightsdata, 0, express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE)) class IfcRectangleHollowProfileDef_WR31: SCOPE = 'entity' @@ -6174,8 +6184,8 @@ class IfcRectangleHollowProfileDef_WR31: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - assert (wallthickness < getattr(self, 'XDim', INDETERMINATE) / 2.0 and wallthickness < getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + assert (wallthickness < express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and wallthickness < express_getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False class IfcRectangleHollowProfileDef_WR32: SCOPE = 'entity' @@ -6184,8 +6194,8 @@ class IfcRectangleHollowProfileDef_WR32: @staticmethod def __call__(self): - outerfilletradius = getattr(self, 'OuterFilletRadius', INDETERMINATE) - assert (not exists(outerfilletradius) or (outerfilletradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 and outerfilletradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0)) is not False + outerfilletradius = express_getattr(self, 'OuterFilletRadius', INDETERMINATE) + assert (not exists(outerfilletradius) or (outerfilletradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and outerfilletradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0)) is not False class IfcRectangleHollowProfileDef_WR33: SCOPE = 'entity' @@ -6194,9 +6204,9 @@ class IfcRectangleHollowProfileDef_WR33: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - innerfilletradius = getattr(self, 'InnerFilletRadius', INDETERMINATE) - assert (not exists(innerfilletradius) or (innerfilletradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 - wallthickness and innerfilletradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0 - wallthickness)) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + innerfilletradius = express_getattr(self, 'InnerFilletRadius', INDETERMINATE) + assert (not exists(innerfilletradius) or (innerfilletradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 - wallthickness and innerfilletradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0 - wallthickness)) is not False class IfcRectangularTrimmedSurface_WR1: SCOPE = 'entity' @@ -6205,8 +6215,8 @@ class IfcRectangularTrimmedSurface_WR1: @staticmethod def __call__(self): - u1 = getattr(self, 'U1', INDETERMINATE) - u2 = getattr(self, 'U2', INDETERMINATE) + u1 = express_getattr(self, 'U1', INDETERMINATE) + u2 = express_getattr(self, 'U2', INDETERMINATE) assert (u1 != u2) is not False class IfcRectangularTrimmedSurface_WR2: @@ -6216,8 +6226,8 @@ class IfcRectangularTrimmedSurface_WR2: @staticmethod def __call__(self): - v1 = getattr(self, 'V1', INDETERMINATE) - v2 = getattr(self, 'V2', INDETERMINATE) + v1 = express_getattr(self, 'V1', INDETERMINATE) + v2 = express_getattr(self, 'V2', INDETERMINATE) assert (v1 != v2) is not False class IfcRectangularTrimmedSurface_WR3: @@ -6227,10 +6237,10 @@ class IfcRectangularTrimmedSurface_WR3: @staticmethod def __call__(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) - u1 = getattr(self, 'U1', INDETERMINATE) - u2 = getattr(self, 'U2', INDETERMINATE) - usense = getattr(self, 'Usense', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) + u1 = express_getattr(self, 'U1', INDETERMINATE) + u2 = express_getattr(self, 'U2', INDETERMINATE) + usense = express_getattr(self, 'Usense', INDETERMINATE) assert ('ifc2x3.ifcelementarysurface' in typeof(basissurface) and (not 'ifc2x3.ifcplane' in typeof(basissurface)) or 'ifc2x3.ifcsurfaceofrevolution' in typeof(basissurface) or usense == (u2 > u1)) is not False class IfcRectangularTrimmedSurface_WR4: @@ -6240,14 +6250,14 @@ class IfcRectangularTrimmedSurface_WR4: @staticmethod def __call__(self): - v1 = getattr(self, 'V1', INDETERMINATE) - v2 = getattr(self, 'V2', INDETERMINATE) - vsense = getattr(self, 'Vsense', INDETERMINATE) + v1 = express_getattr(self, 'V1', INDETERMINATE) + v2 = express_getattr(self, 'V2', INDETERMINATE) + vsense = express_getattr(self, 'Vsense', INDETERMINATE) assert (vsense == (v2 > v1)) is not False def calc_IfcRectangularTrimmedSurface_Dim(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) - return getattr(basissurface, 'Dim', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) + return express_getattr(basissurface, 'Dim', INDETERMINATE) class IfcReinforcingBar_WR1: SCOPE = 'entity' @@ -6256,8 +6266,8 @@ class IfcReinforcingBar_WR1: @staticmethod def __call__(self): - barrole = getattr(self, 'BarRole', INDETERMINATE) - assert (barrole != getattr(IfcReinforcingBarRoleEnum, 'USERDEFINED', INDETERMINATE) or (barrole == getattr(IfcReinforcingBarRoleEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + barrole = express_getattr(self, 'BarRole', INDETERMINATE) + assert (barrole != express_getattr(IfcReinforcingBarRoleEnum, 'USERDEFINED', INDETERMINATE) or (barrole == express_getattr(IfcReinforcingBarRoleEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRelAssigns_WR1: SCOPE = 'entity' @@ -6266,8 +6276,8 @@ class IfcRelAssigns_WR1: @staticmethod def __call__(self): - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) - relatedobjectstype = getattr(self, 'RelatedObjectsType', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) + relatedobjectstype = express_getattr(self, 'RelatedObjectsType', INDETERMINATE) assert IfcCorrectObjectAssignment(relatedobjectstype, relatedobjects) is not False class IfcRelAssignsTasks_WR1: @@ -6277,7 +6287,7 @@ class IfcRelAssignsTasks_WR1: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'RelatedObjects', INDETERMINATE)) == 1) is not False + assert (hiindex(express_getattr(self, 'RelatedObjects', INDETERMINATE)) == 1) is not False class IfcRelAssignsTasks_WR2: SCOPE = 'entity' @@ -6286,7 +6296,7 @@ class IfcRelAssignsTasks_WR2: @staticmethod def __call__(self): - assert ('ifc2x3.ifctask' in typeof(express_getitem(getattr(self, 'RelatedObjects', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert ('ifc2x3.ifctask' in typeof(express_getitem(express_getattr(self, 'RelatedObjects', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcRelAssignsTasks_WR3: SCOPE = 'entity' @@ -6295,7 +6305,7 @@ class IfcRelAssignsTasks_WR3: @staticmethod def __call__(self): - assert ('ifc2x3.ifcworkcontrol' in typeof(getattr(self, 'RelatingControl', INDETERMINATE))) is not False + assert ('ifc2x3.ifcworkcontrol' in typeof(express_getattr(self, 'RelatingControl', INDETERMINATE))) is not False class IfcRelAssignsToActor_WR1: SCOPE = 'entity' @@ -6304,8 +6314,8 @@ class IfcRelAssignsToActor_WR1: @staticmethod def __call__(self): - relatingactor = getattr(self, 'RelatingActor', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingactor == temp]) == 0) is not False + relatingactor = express_getattr(self, 'RelatingActor', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingactor == temp]) == 0) is not False class IfcRelAssignsToControl_WR1: SCOPE = 'entity' @@ -6314,8 +6324,8 @@ class IfcRelAssignsToControl_WR1: @staticmethod def __call__(self): - relatingcontrol = getattr(self, 'RelatingControl', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingcontrol == temp]) == 0) is not False + relatingcontrol = express_getattr(self, 'RelatingControl', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingcontrol == temp]) == 0) is not False class IfcRelAssignsToGroup_WR1: SCOPE = 'entity' @@ -6324,8 +6334,8 @@ class IfcRelAssignsToGroup_WR1: @staticmethod def __call__(self): - relatinggroup = getattr(self, 'RelatingGroup', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatinggroup == temp]) == 0) is not False + relatinggroup = express_getattr(self, 'RelatingGroup', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatinggroup == temp]) == 0) is not False class IfcRelAssignsToProcess_WR1: SCOPE = 'entity' @@ -6334,8 +6344,8 @@ class IfcRelAssignsToProcess_WR1: @staticmethod def __call__(self): - relatingprocess = getattr(self, 'RelatingProcess', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingprocess == temp]) == 0) is not False + relatingprocess = express_getattr(self, 'RelatingProcess', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingprocess == temp]) == 0) is not False class IfcRelAssignsToProduct_WR1: SCOPE = 'entity' @@ -6344,8 +6354,8 @@ class IfcRelAssignsToProduct_WR1: @staticmethod def __call__(self): - relatingproduct = getattr(self, 'RelatingProduct', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingproduct == temp]) == 0) is not False + relatingproduct = express_getattr(self, 'RelatingProduct', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingproduct == temp]) == 0) is not False class IfcRelAssignsToResource_WR1: SCOPE = 'entity' @@ -6354,8 +6364,8 @@ class IfcRelAssignsToResource_WR1: @staticmethod def __call__(self): - relatingresource = getattr(self, 'RelatingResource', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingresource == temp]) == 0) is not False + relatingresource = express_getattr(self, 'RelatingResource', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingresource == temp]) == 0) is not False class IfcRelAssociates_WR21: SCOPE = 'entity' @@ -6364,7 +6374,7 @@ class IfcRelAssociates_WR21: @staticmethod def __call__(self): - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) assert (sizeof([temp for temp in relatedobjects if not ('ifc2x3.ifcobjectdefinition' in typeof(temp) or 'ifc2x3.ifcpropertydefinition' in typeof(temp))]) == 0) is not False class IfcRelAssociatesMaterial_WR21: @@ -6374,7 +6384,7 @@ class IfcRelAssociatesMaterial_WR21: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc2x3.ifcfeatureelementsubtraction' in typeof(temp) or 'ifc2x3.ifcvirtualelement' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc2x3.ifcfeatureelementsubtraction' in typeof(temp) or 'ifc2x3.ifcvirtualelement' in typeof(temp)]) == 0) is not False class IfcRelAssociatesMaterial_WR22: SCOPE = 'entity' @@ -6383,7 +6393,7 @@ class IfcRelAssociatesMaterial_WR22: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if not 'ifc2x3.ifcproduct' in typeof(temp) and (not 'ifc2x3.ifctypeproduct' in typeof(temp))]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if not 'ifc2x3.ifcproduct' in typeof(temp) and (not 'ifc2x3.ifctypeproduct' in typeof(temp))]) == 0) is not False class IfcRelConnectsElements_WR31: SCOPE = 'entity' @@ -6392,8 +6402,8 @@ class IfcRelConnectsElements_WR31: @staticmethod def __call__(self): - relatingelement = getattr(self, 'RelatingElement', INDETERMINATE) - relatedelement = getattr(self, 'RelatedElement', INDETERMINATE) + relatingelement = express_getattr(self, 'RelatingElement', INDETERMINATE) + relatedelement = express_getattr(self, 'RelatedElement', INDETERMINATE) assert (relatingelement != relatedelement) is not False class IfcRelContainedInSpatialStructure_WR31: @@ -6403,7 +6413,7 @@ class IfcRelContainedInSpatialStructure_WR31: @staticmethod def __call__(self): - relatedelements = getattr(self, 'RelatedElements', INDETERMINATE) + relatedelements = express_getattr(self, 'RelatedElements', INDETERMINATE) assert (sizeof([temp for temp in relatedelements if 'ifc2x3.ifcspatialstructureelement' in typeof(temp)]) == 0) is not False class IfcRelDecomposes_WR31: @@ -6413,8 +6423,8 @@ class IfcRelDecomposes_WR31: @staticmethod def __call__(self): - relatingobject = getattr(self, 'RelatingObject', INDETERMINATE) - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) + relatingobject = express_getattr(self, 'RelatingObject', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) assert (sizeof([temp for temp in relatedobjects if relatingobject == temp]) == 0) is not False class IfcRelNests_WR1: @@ -6424,7 +6434,7 @@ class IfcRelNests_WR1: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if not typeof(getattr(self, 'RelatingObject', INDETERMINATE)) == typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if not typeof(express_getattr(self, 'RelatingObject', INDETERMINATE)) == typeof(temp)]) == 0) is not False class IfcRelOverridesProperties_WR1: SCOPE = 'entity' @@ -6433,7 +6443,7 @@ class IfcRelOverridesProperties_WR1: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'RelatedObjects', INDETERMINATE)) == 1) is not False + assert (sizeof(express_getattr(self, 'RelatedObjects', INDETERMINATE)) == 1) is not False class IfcRelReferencedInSpatialStructure_WR31: SCOPE = 'entity' @@ -6442,7 +6452,7 @@ class IfcRelReferencedInSpatialStructure_WR31: @staticmethod def __call__(self): - relatedelements = getattr(self, 'RelatedElements', INDETERMINATE) + relatedelements = express_getattr(self, 'RelatedElements', INDETERMINATE) assert (sizeof([temp for temp in relatedelements if 'ifc2x3.ifcspatialstructureelement' in typeof(temp)]) == 0) is not False class IfcRelSchedulesCostItems_WR11: @@ -6452,7 +6462,7 @@ class IfcRelSchedulesCostItems_WR11: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if not 'ifc2x3.ifccostitem' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if not 'ifc2x3.ifccostitem' in typeof(temp)]) == 0) is not False class IfcRelSchedulesCostItems_WR12: SCOPE = 'entity' @@ -6461,7 +6471,7 @@ class IfcRelSchedulesCostItems_WR12: @staticmethod def __call__(self): - assert ('ifc2x3.ifccostschedule' in typeof(getattr(self, 'RelatingControl', INDETERMINATE))) is not False + assert ('ifc2x3.ifccostschedule' in typeof(express_getattr(self, 'RelatingControl', INDETERMINATE))) is not False class IfcRelSequence_WR1: SCOPE = 'entity' @@ -6470,8 +6480,8 @@ class IfcRelSequence_WR1: @staticmethod def __call__(self): - relatingprocess = getattr(self, 'RelatingProcess', INDETERMINATE) - relatedprocess = getattr(self, 'RelatedProcess', INDETERMINATE) + relatingprocess = express_getattr(self, 'RelatingProcess', INDETERMINATE) + relatedprocess = express_getattr(self, 'RelatedProcess', INDETERMINATE) assert (relatingprocess != relatedprocess) is not False class IfcRelSpaceBoundary_WR1: @@ -6481,9 +6491,9 @@ class IfcRelSpaceBoundary_WR1: @staticmethod def __call__(self): - relatedbuildingelement = getattr(self, 'RelatedBuildingElement', INDETERMINATE) - physicalorvirtualboundary = getattr(self, 'PhysicalOrVirtualBoundary', INDETERMINATE) - assert (physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'Physical', INDETERMINATE) and (exists(relatedbuildingelement) and (not 'ifc2x3.ifcvirtualelement' in typeof(relatedbuildingelement))) or (physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'Virtual', INDETERMINATE) and (not exists(relatedbuildingelement) or 'ifc2x3.ifcvirtualelement' in typeof(relatedbuildingelement))) or physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'NotDefined', INDETERMINATE)) is not False + relatedbuildingelement = express_getattr(self, 'RelatedBuildingElement', INDETERMINATE) + physicalorvirtualboundary = express_getattr(self, 'PhysicalOrVirtualBoundary', INDETERMINATE) + assert (physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'Physical', INDETERMINATE) and (exists(relatedbuildingelement) and (not 'ifc2x3.ifcvirtualelement' in typeof(relatedbuildingelement))) or (physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'Virtual', INDETERMINATE) and (not exists(relatedbuildingelement) or 'ifc2x3.ifcvirtualelement' in typeof(relatedbuildingelement))) or physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'NotDefined', INDETERMINATE)) is not False class IfcRevolvedAreaSolid_WR31: SCOPE = 'entity' @@ -6492,8 +6502,8 @@ class IfcRevolvedAreaSolid_WR31: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (express_getitem(getattr(getattr(axis, 'Location', INDETERMINATE), 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (express_getitem(express_getattr(express_getattr(axis, 'Location', INDETERMINATE), 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False class IfcRevolvedAreaSolid_WR32: SCOPE = 'entity' @@ -6502,12 +6512,12 @@ class IfcRevolvedAreaSolid_WR32: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (express_getitem(getattr(getattr(axis, 'Z', INDETERMINATE), 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (express_getitem(express_getattr(express_getattr(axis, 'Z', INDETERMINATE), 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False def calc_IfcRevolvedAreaSolid_AxisLine(self): - axis = getattr(self, 'Axis', INDETERMINATE) - return IfcLine(Pnt=getattr(axis, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=getattr(axis, 'Z', INDETERMINATE), Magnitude=1.0)) + axis = express_getattr(self, 'Axis', INDETERMINATE) + return IfcLine(Pnt=express_getattr(axis, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=express_getattr(axis, 'Z', INDETERMINATE), Magnitude=1.0)) class IfcRoof_WR1: SCOPE = 'entity' @@ -6516,7 +6526,7 @@ class IfcRoof_WR1: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'IsDecomposedBy', INDETERMINATE)) == 0 or (hiindex(getattr(self, 'IsDecomposedBy', INDETERMINATE)) == 1 and (not exists(getattr(self, 'Representation', INDETERMINATE))))) is not False + assert (hiindex(express_getattr(self, 'IsDecomposedBy', INDETERMINATE)) == 0 or (hiindex(express_getattr(self, 'IsDecomposedBy', INDETERMINATE)) == 1 and (not exists(express_getattr(self, 'Representation', INDETERMINATE))))) is not False class IfcRoundedRectangleProfileDef_WR31: SCOPE = 'entity' @@ -6525,11 +6535,11 @@ class IfcRoundedRectangleProfileDef_WR31: @staticmethod def __call__(self): - roundingradius = getattr(self, 'RoundingRadius', INDETERMINATE) - assert (roundingradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 and roundingradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False + roundingradius = express_getattr(self, 'RoundingRadius', INDETERMINATE) + assert (roundingradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and roundingradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False def calc_IfcSIUnit_Dimensions(self): - return IfcDimensionsForSiUnit(getattr(self, 'Name', INDETERMINATE)) + return IfcDimensionsForSiUnit(express_getattr(self, 'Name', INDETERMINATE)) class IfcSectionedSpine_WR1: SCOPE = 'entity' @@ -6538,8 +6548,8 @@ class IfcSectionedSpine_WR1: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) assert (sizeof(crosssections) == sizeof(crosssectionpositions)) is not False class IfcSectionedSpine_WR2: @@ -6549,8 +6559,8 @@ class IfcSectionedSpine_WR2: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - assert (sizeof([temp for temp in crosssections if getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + assert (sizeof([temp for temp in crosssections if express_getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != express_getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcSectionedSpine_WR3: SCOPE = 'entity' @@ -6559,8 +6569,8 @@ class IfcSectionedSpine_WR3: @staticmethod def __call__(self): - spinecurve = getattr(self, 'SpineCurve', INDETERMINATE) - assert (getattr(spinecurve, 'Dim', INDETERMINATE) == 3) is not False + spinecurve = express_getattr(self, 'SpineCurve', INDETERMINATE) + assert (express_getattr(spinecurve, 'Dim', INDETERMINATE) == 3) is not False def calc_IfcSectionedSpine_Dim(self): return 3 @@ -6572,8 +6582,8 @@ class IfcServiceLifeFactor_WR31: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not predefinedtype == getattr(IfcServiceLifeFactorTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not predefinedtype == express_getattr(IfcServiceLifeFactorTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcShapeModel_WR11: SCOPE = 'entity' @@ -6582,8 +6592,8 @@ class IfcShapeModel_WR11: @staticmethod def __call__(self): - ofshapeaspect = getattr(self, 'OfShapeAspect', INDETERMINATE) - assert (sizeof(getattr(self, 'OfProductRepresentation', INDETERMINATE)) == 1) ^ (sizeof(getattr(self, 'RepresentationMap', INDETERMINATE)) == 1) ^ (sizeof(ofshapeaspect) == 1) is not False + ofshapeaspect = express_getattr(self, 'OfShapeAspect', INDETERMINATE) + assert (sizeof(express_getattr(self, 'OfProductRepresentation', INDETERMINATE)) == 1) ^ (sizeof(express_getattr(self, 'RepresentationMap', INDETERMINATE)) == 1) ^ (sizeof(ofshapeaspect) == 1) is not False class IfcShapeRepresentation_WR21: SCOPE = 'entity' @@ -6592,7 +6602,7 @@ class IfcShapeRepresentation_WR21: @staticmethod def __call__(self): - assert ('ifc2x3.ifcgeometricrepresentationcontext' in typeof(getattr(self, 'ContextOfItems', INDETERMINATE))) is not False + assert ('ifc2x3.ifcgeometricrepresentationcontext' in typeof(express_getattr(self, 'ContextOfItems', INDETERMINATE))) is not False class IfcShapeRepresentation_WR22: SCOPE = 'entity' @@ -6601,7 +6611,7 @@ class IfcShapeRepresentation_WR22: @staticmethod def __call__(self): - items = getattr(self, 'Items', INDETERMINATE) + items = express_getattr(self, 'Items', INDETERMINATE) assert (sizeof([temp for temp in items if 'ifc2x3.ifctopologicalrepresentationitem' in typeof(temp) and (not sizeof(['ifc2x3.ifcvertexpoint', 'ifc2x3.ifcedgecurve', 'ifc2x3.ifcfacesurface'] * typeof(temp)) == 1)]) == 0) is not False class IfcShapeRepresentation_WR23: @@ -6611,7 +6621,7 @@ class IfcShapeRepresentation_WR23: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationType', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationType', INDETERMINATE)) is not False class IfcShapeRepresentation_WR24: SCOPE = 'entity' @@ -6620,7 +6630,7 @@ class IfcShapeRepresentation_WR24: @staticmethod def __call__(self): - assert IfcShapeRepresentationTypes(getattr(self, 'RepresentationType', INDETERMINATE), getattr(self, 'Items', INDETERMINATE)) is not False + assert IfcShapeRepresentationTypes(express_getattr(self, 'RepresentationType', INDETERMINATE), express_getattr(self, 'Items', INDETERMINATE)) is not False def calc_IfcShellBasedSurfaceModel_Dim(self): return 3 @@ -6632,8 +6642,8 @@ class IfcSlab_WR61: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False def calc_IfcSolidModel_Dim(self): return 3 @@ -6645,8 +6655,8 @@ class IfcSpaceHeaterType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSpatialStructureElement_WR41: SCOPE = 'entity' @@ -6655,7 +6665,7 @@ class IfcSpatialStructureElement_WR41: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'Decomposes', INDETERMINATE)) == 1 and 'ifc2x3.ifcrelaggregates' in typeof(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc2x3.ifcproject' in typeof(getattr(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)) or 'ifc2x3.ifcspatialstructureelement' in typeof(getattr(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)))) is not False + assert (hiindex(express_getattr(self, 'Decomposes', INDETERMINATE)) == 1 and 'ifc2x3.ifcrelaggregates' in typeof(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc2x3.ifcproject' in typeof(express_getattr(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)) or 'ifc2x3.ifcspatialstructureelement' in typeof(express_getattr(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)))) is not False class IfcStair_WR1: SCOPE = 'entity' @@ -6664,7 +6674,7 @@ class IfcStair_WR1: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'IsDecomposedBy', INDETERMINATE)) == 0 or (hiindex(getattr(self, 'IsDecomposedBy', INDETERMINATE)) == 1 and (not exists(getattr(self, 'Representation', INDETERMINATE))))) is not False + assert (hiindex(express_getattr(self, 'IsDecomposedBy', INDETERMINATE)) == 0 or (hiindex(express_getattr(self, 'IsDecomposedBy', INDETERMINATE)) == 1 and (not exists(express_getattr(self, 'Representation', INDETERMINATE))))) is not False class IfcStructuralLinearAction_WR61: SCOPE = 'entity' @@ -6673,11 +6683,11 @@ class IfcStructuralLinearAction_WR61: @staticmethod def __call__(self): - assert (sizeof(['ifc2x3.ifcstructuralloadlinearforce', 'ifc2x3.ifcstructuralloadtemperature'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc2x3.ifcstructuralloadlinearforce', 'ifc2x3.ifcstructuralloadtemperature'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False def calc_IfcStructuralLinearActionVarying_VaryingAppliedLoads(self): - subsequentappliedloads = getattr(self, 'SubsequentAppliedLoads', INDETERMINATE) - return IfcAddToBeginOfList(getattr(self, 'AppliedLoad', INDETERMINATE), subsequentappliedloads) + subsequentappliedloads = express_getattr(self, 'SubsequentAppliedLoads', INDETERMINATE) + return IfcAddToBeginOfList(express_getattr(self, 'AppliedLoad', INDETERMINATE), subsequentappliedloads) class IfcStructuralPlanarAction_WR61: SCOPE = 'entity' @@ -6686,11 +6696,11 @@ class IfcStructuralPlanarAction_WR61: @staticmethod def __call__(self): - assert (sizeof(['ifc2x3.ifcstructuralloadplanarforce', 'ifc2x3.ifcstructuralloadtemperature'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc2x3.ifcstructuralloadplanarforce', 'ifc2x3.ifcstructuralloadtemperature'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False def calc_IfcStructuralPlanarActionVarying_VaryingAppliedLoads(self): - subsequentappliedloads = getattr(self, 'SubsequentAppliedLoads', INDETERMINATE) - return IfcAddToBeginOfList(getattr(self, 'AppliedLoad', INDETERMINATE), subsequentappliedloads) + subsequentappliedloads = express_getattr(self, 'SubsequentAppliedLoads', INDETERMINATE) + return IfcAddToBeginOfList(express_getattr(self, 'AppliedLoad', INDETERMINATE), subsequentappliedloads) class IfcStructuralPointAction_WR61: SCOPE = 'entity' @@ -6699,7 +6709,7 @@ class IfcStructuralPointAction_WR61: @staticmethod def __call__(self): - assert (sizeof(['ifc2x3.ifcstructuralloadsingleforce', 'ifc2x3.ifcstructuralloadsingledisplacement'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc2x3.ifcstructuralloadsingleforce', 'ifc2x3.ifcstructuralloadsingledisplacement'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralPointReaction_WR61: SCOPE = 'entity' @@ -6708,7 +6718,7 @@ class IfcStructuralPointReaction_WR61: @staticmethod def __call__(self): - assert (sizeof(['ifc2x3.ifcstructuralloadsingleforce', 'ifc2x3.ifcstructuralloadsingledisplacement'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc2x3.ifcstructuralloadsingleforce', 'ifc2x3.ifcstructuralloadsingledisplacement'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralProfileProperties_WR21: SCOPE = 'entity' @@ -6717,7 +6727,7 @@ class IfcStructuralProfileProperties_WR21: @staticmethod def __call__(self): - sheardeformationareay = getattr(self, 'ShearDeformationAreaY', INDETERMINATE) + sheardeformationareay = express_getattr(self, 'ShearDeformationAreaY', INDETERMINATE) assert (not exists(sheardeformationareay) or sheardeformationareay >= 0.0) is not False class IfcStructuralProfileProperties_WR22: @@ -6727,7 +6737,7 @@ class IfcStructuralProfileProperties_WR22: @staticmethod def __call__(self): - sheardeformationareaz = getattr(self, 'ShearDeformationAreaZ', INDETERMINATE) + sheardeformationareaz = express_getattr(self, 'ShearDeformationAreaZ', INDETERMINATE) assert (not exists(sheardeformationareaz) or sheardeformationareaz >= 0.0) is not False class IfcStructuralSteelProfileProperties_WR31: @@ -6737,7 +6747,7 @@ class IfcStructuralSteelProfileProperties_WR31: @staticmethod def __call__(self): - shearareay = getattr(self, 'ShearAreaY', INDETERMINATE) + shearareay = express_getattr(self, 'ShearAreaY', INDETERMINATE) assert (not exists(shearareay) or shearareay >= 0.0) is not False class IfcStructuralSteelProfileProperties_WR32: @@ -6747,7 +6757,7 @@ class IfcStructuralSteelProfileProperties_WR32: @staticmethod def __call__(self): - shearareaz = getattr(self, 'ShearAreaZ', INDETERMINATE) + shearareaz = express_getattr(self, 'ShearAreaZ', INDETERMINATE) assert (not exists(shearareaz) or shearareaz >= 0.0) is not False class IfcStructuralSurfaceMemberVarying_WR61: @@ -6757,7 +6767,7 @@ class IfcStructuralSurfaceMemberVarying_WR61: @staticmethod def __call__(self): - assert exists(getattr(self, 'Thickness', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Thickness', INDETERMINATE)) is not False class IfcStructuralSurfaceMemberVarying_WR62: SCOPE = 'entity' @@ -6766,7 +6776,7 @@ class IfcStructuralSurfaceMemberVarying_WR62: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(getattr(self, 'VaryingThicknessLocation', INDETERMINATE), 'ShapeRepresentations', INDETERMINATE) if not sizeof(getattr(temp, 'Items', INDETERMINATE)) == 1]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(express_getattr(self, 'VaryingThicknessLocation', INDETERMINATE), 'ShapeRepresentations', INDETERMINATE) if not sizeof(express_getattr(temp, 'Items', INDETERMINATE)) == 1]) == 0) is not False class IfcStructuralSurfaceMemberVarying_WR63: SCOPE = 'entity' @@ -6775,11 +6785,11 @@ class IfcStructuralSurfaceMemberVarying_WR63: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(getattr(self, 'VaryingThicknessLocation', INDETERMINATE), 'ShapeRepresentations', INDETERMINATE) if not ('ifc2x3.ifccartesianpoint' in typeof(express_getitem(getattr(temp, 'Items', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc2x3.ifcpointonsurface' in typeof(express_getitem(getattr(temp, 'Items', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(express_getattr(self, 'VaryingThicknessLocation', INDETERMINATE), 'ShapeRepresentations', INDETERMINATE) if not ('ifc2x3.ifccartesianpoint' in typeof(express_getitem(express_getattr(temp, 'Items', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc2x3.ifcpointonsurface' in typeof(express_getitem(express_getattr(temp, 'Items', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))]) == 0) is not False def calc_IfcStructuralSurfaceMemberVarying_VaryingThickness(self): - subsequentthickness = getattr(self, 'SubsequentThickness', INDETERMINATE) - return IfcAddToBeginOfList(getattr(self, 'Thickness', INDETERMINATE), subsequentthickness) + subsequentthickness = express_getattr(self, 'SubsequentThickness', INDETERMINATE) + return IfcAddToBeginOfList(express_getattr(self, 'Thickness', INDETERMINATE), subsequentthickness) class IfcStructuredDimensionCallout_WR31: SCOPE = 'entity' @@ -6788,8 +6798,8 @@ class IfcStructuredDimensionCallout_WR31: @staticmethod def __call__(self): - contents = getattr(self, 'Contents', INDETERMINATE) - assert (sizeof([ato for ato in [con for con in getattr(self, 'contents', INDETERMINATE) if 'ifc2x3.ifcannotationtextoccurrence' in typeof(con)] if not getattr(getattr(ato, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['dimensionvalue', 'tolerancevalue', 'unittext', 'prefixtext', 'suffixtext']]) == 0) is not False + contents = express_getattr(self, 'Contents', INDETERMINATE) + assert (sizeof([ato for ato in [con for con in express_getattr(self, 'contents', INDETERMINATE) if 'ifc2x3.ifcannotationtextoccurrence' in typeof(con)] if not express_getattr(express_getattr(ato, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['dimensionvalue', 'tolerancevalue', 'unittext', 'prefixtext', 'suffixtext']]) == 0) is not False class IfcStyledItem_WR11: SCOPE = 'entity' @@ -6798,7 +6808,7 @@ class IfcStyledItem_WR11: @staticmethod def __call__(self): - styles = getattr(self, 'Styles', INDETERMINATE) + styles = express_getattr(self, 'Styles', INDETERMINATE) assert (sizeof(styles) == 1) is not False class IfcStyledItem_WR12: @@ -6808,7 +6818,7 @@ class IfcStyledItem_WR12: @staticmethod def __call__(self): - item = getattr(self, 'Item', INDETERMINATE) + item = express_getattr(self, 'Item', INDETERMINATE) assert (not 'ifc2x3.ifcstyleditem' in typeof(item)) is not False class IfcStyledRepresentation_WR21: @@ -6818,7 +6828,7 @@ class IfcStyledRepresentation_WR21: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Items', INDETERMINATE) if not 'ifc2x3.ifcstyleditem' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Items', INDETERMINATE) if not 'ifc2x3.ifcstyleditem' in typeof(temp)]) == 0) is not False class IfcSurfaceOfLinearExtrusion_WR41: SCOPE = 'entity' @@ -6827,17 +6837,17 @@ class IfcSurfaceOfLinearExtrusion_WR41: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) assert (depth > 0.0) is not False def calc_IfcSurfaceOfLinearExtrusion_ExtrusionAxis(self): - extrudeddirection = getattr(self, 'ExtrudedDirection', INDETERMINATE) - depth = getattr(self, 'Depth', INDETERMINATE) + extrudeddirection = express_getattr(self, 'ExtrudedDirection', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) return IfcVector(Orientation=extrudeddirection, Magnitude=depth) def calc_IfcSurfaceOfRevolution_AxisLine(self): - axisposition = getattr(self, 'AxisPosition', INDETERMINATE) - return IfcLine(Pnt=getattr(axisposition, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=getattr(axisposition, 'Z', INDETERMINATE), Magnitude=1.0)) + axisposition = express_getattr(self, 'AxisPosition', INDETERMINATE) + return IfcLine(Pnt=express_getattr(axisposition, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=express_getattr(axisposition, 'Z', INDETERMINATE), Magnitude=1.0)) class IfcSurfaceStyle_WR11: SCOPE = 'entity' @@ -6846,7 +6856,7 @@ class IfcSurfaceStyle_WR11: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc2x3.ifcsurfacestyleshading' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc2x3.ifcsurfacestyleshading' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_WR12: SCOPE = 'entity' @@ -6855,7 +6865,7 @@ class IfcSurfaceStyle_WR12: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc2x3.ifcsurfacestylelighting' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc2x3.ifcsurfacestylelighting' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_WR13: SCOPE = 'entity' @@ -6864,7 +6874,7 @@ class IfcSurfaceStyle_WR13: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc2x3.ifcsurfacestylerefraction' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc2x3.ifcsurfacestylerefraction' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_WR14: SCOPE = 'entity' @@ -6873,7 +6883,7 @@ class IfcSurfaceStyle_WR14: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc2x3.ifcsurfacestylewithtextures' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc2x3.ifcsurfacestylewithtextures' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_WR15: SCOPE = 'entity' @@ -6882,7 +6892,7 @@ class IfcSurfaceStyle_WR15: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc2x3.ifcexternallydefinedsurfacestyle' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc2x3.ifcexternallydefinedsurfacestyle' in typeof(style)]) <= 1) is not False class IfcSweptAreaSolid_WR22: SCOPE = 'entity' @@ -6891,8 +6901,8 @@ class IfcSweptAreaSolid_WR22: @staticmethod def __call__(self): - sweptarea = getattr(self, 'SweptArea', INDETERMINATE) - assert (getattr(sweptarea, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'Area', INDETERMINATE)) is not False + sweptarea = express_getattr(self, 'SweptArea', INDETERMINATE) + assert (express_getattr(sweptarea, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'Area', INDETERMINATE)) is not False class IfcSweptDiskSolid_WR1: SCOPE = 'entity' @@ -6901,8 +6911,8 @@ class IfcSweptDiskSolid_WR1: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - assert (getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + assert (express_getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False class IfcSweptDiskSolid_WR2: SCOPE = 'entity' @@ -6911,8 +6921,8 @@ class IfcSweptDiskSolid_WR2: @staticmethod def __call__(self): - radius = getattr(self, 'Radius', INDETERMINATE) - innerradius = getattr(self, 'InnerRadius', INDETERMINATE) + radius = express_getattr(self, 'Radius', INDETERMINATE) + innerradius = express_getattr(self, 'InnerRadius', INDETERMINATE) assert (not exists(innerradius) or radius > innerradius) is not False class IfcSweptSurface_WR1: @@ -6922,7 +6932,7 @@ class IfcSweptSurface_WR1: @staticmethod def __call__(self): - sweptcurve = getattr(self, 'SweptCurve', INDETERMINATE) + sweptcurve = express_getattr(self, 'SweptCurve', INDETERMINATE) assert (not 'ifc2x3.ifcderivedprofiledef' in typeof(sweptcurve)) is not False class IfcSweptSurface_WR2: @@ -6932,12 +6942,12 @@ class IfcSweptSurface_WR2: @staticmethod def __call__(self): - sweptcurve = getattr(self, 'SweptCurve', INDETERMINATE) - assert (getattr(sweptcurve, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'Curve', INDETERMINATE)) is not False + sweptcurve = express_getattr(self, 'SweptCurve', INDETERMINATE) + assert (express_getattr(sweptcurve, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'Curve', INDETERMINATE)) is not False def calc_IfcSweptSurface_Dim(self): - position = getattr(self, 'Position', INDETERMINATE) - return getattr(position, 'Dim', INDETERMINATE) + position = express_getattr(self, 'Position', INDETERMINATE) + return express_getattr(position, 'Dim', INDETERMINATE) class IfcTShapeProfileDef_WR1: SCOPE = 'entity' @@ -6946,8 +6956,8 @@ class IfcTShapeProfileDef_WR1: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth) is not False class IfcTShapeProfileDef_WR2: @@ -6957,8 +6967,8 @@ class IfcTShapeProfileDef_WR2: @staticmethod def __call__(self): - flangewidth = getattr(self, 'FlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + flangewidth = express_getattr(self, 'FlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < flangewidth) is not False class IfcTable_WR1: @@ -6968,8 +6978,8 @@ class IfcTable_WR1: @staticmethod def __call__(self): - rows = getattr(self, 'Rows', INDETERMINATE) - assert (sizeof([temp for temp in rows if hiindex(getattr(temp, 'RowCells', INDETERMINATE)) != hiindex(getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE))]) == 0) is not False + rows = express_getattr(self, 'Rows', INDETERMINATE) + assert (sizeof([temp for temp in rows if hiindex(express_getattr(temp, 'RowCells', INDETERMINATE)) != hiindex(express_getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE))]) == 0) is not False class IfcTable_WR2: SCOPE = 'entity' @@ -6978,8 +6988,8 @@ class IfcTable_WR2: @staticmethod def __call__(self): - rows = getattr(self, 'Rows', INDETERMINATE) - assert (sizeof([temp for temp in rows if hiindex(getattr(temp, 'RowCells', INDETERMINATE)) != hiindex(getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE))]) == 0) is not False + rows = express_getattr(self, 'Rows', INDETERMINATE) + assert (sizeof([temp for temp in rows if hiindex(express_getattr(temp, 'RowCells', INDETERMINATE)) != hiindex(express_getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE))]) == 0) is not False class IfcTable_WR3: SCOPE = 'entity' @@ -6988,20 +6998,20 @@ class IfcTable_WR3: @staticmethod def __call__(self): - numberofheadings = getattr(self, 'NumberOfHeadings', INDETERMINATE) + numberofheadings = express_getattr(self, 'NumberOfHeadings', INDETERMINATE) assert (0 <= numberofheadings <= 1) is not False def calc_IfcTable_NumberOfCellsInRow(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return hiindex(getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE)) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return hiindex(express_getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE)) def calc_IfcTable_NumberOfHeadings(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return sizeof([temp for temp in rows if getattr(temp, 'IsHeading', INDETERMINATE)]) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return sizeof([temp for temp in rows if express_getattr(temp, 'IsHeading', INDETERMINATE)]) def calc_IfcTable_NumberOfDataRows(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return sizeof([temp for temp in rows if not getattr(temp, 'IsHeading', INDETERMINATE)]) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return sizeof([temp for temp in rows if not express_getattr(temp, 'IsHeading', INDETERMINATE)]) class IfcTankType_WR1: SCOPE = 'entity' @@ -7010,8 +7020,8 @@ class IfcTankType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTask_WR1: SCOPE = 'entity' @@ -7020,7 +7030,7 @@ class IfcTask_WR1: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Decomposes', INDETERMINATE) if not 'ifc2x3.ifcrelnests' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Decomposes', INDETERMINATE) if not 'ifc2x3.ifcrelnests' in typeof(temp)]) == 0) is not False class IfcTask_WR2: SCOPE = 'entity' @@ -7029,7 +7039,7 @@ class IfcTask_WR2: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'IsDecomposedBy', INDETERMINATE) if not 'ifc2x3.ifcrelnests' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'IsDecomposedBy', INDETERMINATE) if not 'ifc2x3.ifcrelnests' in typeof(temp)]) == 0) is not False class IfcTask_WR3: SCOPE = 'entity' @@ -7038,7 +7048,7 @@ class IfcTask_WR3: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcTelecomAddress_WR1: SCOPE = 'entity' @@ -7047,11 +7057,11 @@ class IfcTelecomAddress_WR1: @staticmethod def __call__(self): - telephonenumbers = getattr(self, 'TelephoneNumbers', INDETERMINATE) - facsimilenumbers = getattr(self, 'FacsimileNumbers', INDETERMINATE) - pagernumber = getattr(self, 'PagerNumber', INDETERMINATE) - electronicmailaddresses = getattr(self, 'ElectronicMailAddresses', INDETERMINATE) - wwwhomepageurl = getattr(self, 'WWWHomePageURL', INDETERMINATE) + telephonenumbers = express_getattr(self, 'TelephoneNumbers', INDETERMINATE) + facsimilenumbers = express_getattr(self, 'FacsimileNumbers', INDETERMINATE) + pagernumber = express_getattr(self, 'PagerNumber', INDETERMINATE) + electronicmailaddresses = express_getattr(self, 'ElectronicMailAddresses', INDETERMINATE) + wwwhomepageurl = express_getattr(self, 'WWWHomePageURL', INDETERMINATE) assert (exists(telephonenumbers) or exists(pagernumber) or exists(facsimilenumbers) or exists(electronicmailaddresses) or exists(wwwhomepageurl)) is not False class IfcTendon_WR1: @@ -7061,8 +7071,8 @@ class IfcTendon_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTextLiteralWithExtent_WR31: SCOPE = 'entity' @@ -7071,7 +7081,7 @@ class IfcTextLiteralWithExtent_WR31: @staticmethod def __call__(self): - extent = getattr(self, 'Extent', INDETERMINATE) + extent = express_getattr(self, 'Extent', INDETERMINATE) assert (not 'ifc2x3.ifcplanarbox' in typeof(extent)) is not False class IfcTextStyleFontModel_WR31: @@ -7081,7 +7091,7 @@ class IfcTextStyleFontModel_WR31: @staticmethod def __call__(self): - assert ('ifc2x3.ifclengthmeasure' in typeof(getattr(self, 'FontSize', INDETERMINATE)) and getattr(self, 'FontSize', INDETERMINATE) > 0.0) is not False + assert ('ifc2x3.ifclengthmeasure' in typeof(express_getattr(self, 'FontSize', INDETERMINATE)) and express_getattr(self, 'FontSize', INDETERMINATE) > 0.0) is not False class IfcTextureMap_WR11: SCOPE = 'entity' @@ -7090,7 +7100,7 @@ class IfcTextureMap_WR11: @staticmethod def __call__(self): - assert (sizeof(['ifc2x3.ifcshellbasedsurfacemodel', 'ifc2x3.ifcfacebasedsurfacemodel', 'ifc2x3.ifcfacetedbrep', 'ifc2x3.ifcfacetedbrepwithvoids'] * typeof(getattr(express_getitem(getattr(self, 'AnnotatedSurface', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Item', INDETERMINATE))) >= 1) is not False + assert (sizeof(['ifc2x3.ifcshellbasedsurfacemodel', 'ifc2x3.ifcfacebasedsurfacemodel', 'ifc2x3.ifcfacetedbrep', 'ifc2x3.ifcfacetedbrepwithvoids'] * typeof(express_getattr(express_getitem(express_getattr(self, 'AnnotatedSurface', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Item', INDETERMINATE))) >= 1) is not False class IfcTimeSeriesSchedule_WR41: SCOPE = 'entity' @@ -7099,8 +7109,8 @@ class IfcTimeSeriesSchedule_WR41: @staticmethod def __call__(self): - timeseriesscheduletype = getattr(self, 'TimeSeriesScheduleType', INDETERMINATE) - assert (not timeseriesscheduletype == getattr(IfcTimeSeriesScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + timeseriesscheduletype = express_getattr(self, 'TimeSeriesScheduleType', INDETERMINATE) + assert (not timeseriesscheduletype == express_getattr(IfcTimeSeriesScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcTopologyRepresentation_WR21: SCOPE = 'entity' @@ -7109,7 +7119,7 @@ class IfcTopologyRepresentation_WR21: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Items', INDETERMINATE) if not 'ifc2x3.ifctopologicalrepresentationitem' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Items', INDETERMINATE) if not 'ifc2x3.ifctopologicalrepresentationitem' in typeof(temp)]) == 0) is not False class IfcTopologyRepresentation_WR22: SCOPE = 'entity' @@ -7118,7 +7128,7 @@ class IfcTopologyRepresentation_WR22: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationType', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationType', INDETERMINATE)) is not False class IfcTopologyRepresentation_WR23: SCOPE = 'entity' @@ -7127,7 +7137,7 @@ class IfcTopologyRepresentation_WR23: @staticmethod def __call__(self): - assert IfcTopologyRepresentationTypes(getattr(self, 'RepresentationType', INDETERMINATE), getattr(self, 'Items', INDETERMINATE)) is not False + assert IfcTopologyRepresentationTypes(express_getattr(self, 'RepresentationType', INDETERMINATE), express_getattr(self, 'Items', INDETERMINATE)) is not False class IfcTrimmedCurve_WR41: SCOPE = 'entity' @@ -7136,7 +7146,7 @@ class IfcTrimmedCurve_WR41: @staticmethod def __call__(self): - trim1 = getattr(self, 'Trim1', INDETERMINATE) + trim1 = express_getattr(self, 'Trim1', INDETERMINATE) assert (hiindex(trim1) == 1 or typeof(express_getitem(trim1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(express_getitem(trim1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcTrimmedCurve_WR42: @@ -7146,7 +7156,7 @@ class IfcTrimmedCurve_WR42: @staticmethod def __call__(self): - trim2 = getattr(self, 'Trim2', INDETERMINATE) + trim2 = express_getattr(self, 'Trim2', INDETERMINATE) assert (hiindex(trim2) == 1 or typeof(express_getitem(trim2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(express_getitem(trim2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcTrimmedCurve_WR43: @@ -7156,7 +7166,7 @@ class IfcTrimmedCurve_WR43: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) assert (not 'ifc2x3.ifcboundedcurve' in typeof(basiscurve)) is not False class IfcTubeBundleType_WR1: @@ -7166,8 +7176,8 @@ class IfcTubeBundleType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTypeObject_WR1: SCOPE = 'entity' @@ -7176,7 +7186,7 @@ class IfcTypeObject_WR1: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcTypeProduct_WR41: SCOPE = 'entity' @@ -7185,7 +7195,7 @@ class IfcTypeProduct_WR41: @staticmethod def __call__(self): - assert (not exists(lambda : express_getitem(getattr(self, 'ObjectTypeOf', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or sizeof([temp for temp in getattr(express_getitem(getattr(self, 'ObjectTypeOf', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not 'ifc2x3.ifcproduct' in typeof(temp)]) == 0) is not False + assert (not exists(lambda : express_getitem(express_getattr(self, 'ObjectTypeOf', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or sizeof([temp for temp in express_getattr(express_getitem(express_getattr(self, 'ObjectTypeOf', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not 'ifc2x3.ifcproduct' in typeof(temp)]) == 0) is not False class IfcUShapeProfileDef_WR21: SCOPE = 'entity' @@ -7194,8 +7204,8 @@ class IfcUShapeProfileDef_WR21: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth / 2.0) is not False class IfcUShapeProfileDef_WR22: @@ -7205,8 +7215,8 @@ class IfcUShapeProfileDef_WR22: @staticmethod def __call__(self): - flangewidth = getattr(self, 'FlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + flangewidth = express_getattr(self, 'FlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < flangewidth) is not False class IfcUnitAssignment_WR01: @@ -7216,7 +7226,7 @@ class IfcUnitAssignment_WR01: @staticmethod def __call__(self): - units = getattr(self, 'Units', INDETERMINATE) + units = express_getattr(self, 'Units', INDETERMINATE) assert IfcCorrectUnitAssignment(units) is not False class IfcUnitaryEquipmentType_WR1: @@ -7226,8 +7236,8 @@ class IfcUnitaryEquipmentType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcValveType_WR1: SCOPE = 'entity' @@ -7236,8 +7246,8 @@ class IfcValveType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVector_WR1: SCOPE = 'entity' @@ -7246,12 +7256,12 @@ class IfcVector_WR1: @staticmethod def __call__(self): - magnitude = getattr(self, 'Magnitude', INDETERMINATE) + magnitude = express_getattr(self, 'Magnitude', INDETERMINATE) assert (magnitude >= 0.0) is not False def calc_IfcVector_Dim(self): - orientation = getattr(self, 'Orientation', INDETERMINATE) - return getattr(orientation, 'Dim', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return express_getattr(orientation, 'Dim', INDETERMINATE) class IfcVibrationIsolatorType_WR1: SCOPE = 'entity' @@ -7260,8 +7270,8 @@ class IfcVibrationIsolatorType_WR1: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWall_WR1: SCOPE = 'entity' @@ -7270,7 +7280,7 @@ class IfcWall_WR1: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'HasAssociations', INDETERMINATE) if 'ifc2x3.ifcrelassociatesmaterial' in typeof(temp)]) <= 1) is not False + assert (sizeof([temp for temp in express_getattr(self, 'HasAssociations', INDETERMINATE) if 'ifc2x3.ifcrelassociatesmaterial' in typeof(temp)]) <= 1) is not False class IfcWallStandardCase_WR1: SCOPE = 'entity' @@ -7279,7 +7289,7 @@ class IfcWallStandardCase_WR1: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc2x3.ifcrelassociates.relatedobjects') if 'ifc2x3.ifcrelassociatesmaterial' in typeof(temp) and 'ifc2x3.ifcmateriallayersetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc2x3.ifcrelassociates.relatedobjects') if 'ifc2x3.ifcrelassociatesmaterial' in typeof(temp) and 'ifc2x3.ifcmateriallayersetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcWindowLiningProperties_WR31: SCOPE = 'entity' @@ -7288,8 +7298,8 @@ class IfcWindowLiningProperties_WR31: @staticmethod def __call__(self): - liningdepth = getattr(self, 'LiningDepth', INDETERMINATE) - liningthickness = getattr(self, 'LiningThickness', INDETERMINATE) + liningdepth = express_getattr(self, 'LiningDepth', INDETERMINATE) + liningthickness = express_getattr(self, 'LiningThickness', INDETERMINATE) assert (not (not exists(liningdepth) and exists(liningthickness))) is not False class IfcWindowLiningProperties_WR32: @@ -7299,8 +7309,8 @@ class IfcWindowLiningProperties_WR32: @staticmethod def __call__(self): - firsttransomoffset = getattr(self, 'FirstTransomOffset', INDETERMINATE) - secondtransomoffset = getattr(self, 'SecondTransomOffset', INDETERMINATE) + firsttransomoffset = express_getattr(self, 'FirstTransomOffset', INDETERMINATE) + secondtransomoffset = express_getattr(self, 'SecondTransomOffset', INDETERMINATE) assert (not (not exists(firsttransomoffset) and exists(secondtransomoffset))) is not False class IfcWindowLiningProperties_WR33: @@ -7310,8 +7320,8 @@ class IfcWindowLiningProperties_WR33: @staticmethod def __call__(self): - firstmullionoffset = getattr(self, 'FirstMullionOffset', INDETERMINATE) - secondmullionoffset = getattr(self, 'SecondMullionOffset', INDETERMINATE) + firstmullionoffset = express_getattr(self, 'FirstMullionOffset', INDETERMINATE) + secondmullionoffset = express_getattr(self, 'SecondMullionOffset', INDETERMINATE) assert (not (not exists(firstmullionoffset) and exists(secondmullionoffset))) is not False class IfcWindowLiningProperties_WR34: @@ -7321,7 +7331,7 @@ class IfcWindowLiningProperties_WR34: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc2x3.ifcwindowstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc2x3.ifcwindowstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcWorkControl_WR1: SCOPE = 'entity' @@ -7330,8 +7340,8 @@ class IfcWorkControl_WR1: @staticmethod def __call__(self): - workcontroltype = getattr(self, 'WorkControlType', INDETERMINATE) - assert (workcontroltype != getattr(IfcWorkControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (workcontroltype == getattr(IfcWorkControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedControlType', INDETERMINATE)))) is not False + workcontroltype = express_getattr(self, 'WorkControlType', INDETERMINATE) + assert (workcontroltype != express_getattr(IfcWorkControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (workcontroltype == express_getattr(IfcWorkControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedControlType', INDETERMINATE)))) is not False class IfcZShapeProfileDef_WR21: SCOPE = 'entity' @@ -7340,8 +7350,8 @@ class IfcZShapeProfileDef_WR21: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth / 2.0) is not False class IfcZone_WR1: @@ -7351,19 +7361,19 @@ class IfcZone_WR1: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(getattr(self, 'IsGroupedBy', INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not ('ifc2x3.ifczone' in typeof(temp) or 'ifc2x3.ifcspace' in typeof(temp))]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(express_getattr(self, 'IsGroupedBy', INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not ('ifc2x3.ifczone' in typeof(temp) or 'ifc2x3.ifcspace' in typeof(temp))]) == 0) is not False class IfcRepresentationContextSameWCS: SCOPE = 'file' @staticmethod def __call__(file): - IfcGeometricRepresentationContext = getattr(file, 'by_type', INDETERMINATE)('IfcGeometricRepresentationContext') + IfcGeometricRepresentationContext = express_getattr(file, 'by_type', INDETERMINATE)('IfcGeometricRepresentationContext') isdifferent = False if sizeof(IfcGeometricRepresentationContext) > 1: for i in range(2, hiindex(IfcGeometricRepresentationContext) + 1): - if getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE) != getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE): - isdifferent = not IfcSameValidPrecision(getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) or not IfcSameAxis2Placement(getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) + if express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE) != express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE): + isdifferent = not IfcSameValidPrecision(express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) or not IfcSameAxis2Placement(express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) if isdifferent == True: break assert (isdifferent == False) is not False @@ -7373,7 +7383,7 @@ class IfcSingleProjectInstance: @staticmethod def __call__(file): - IfcProject = getattr(file, 'by_type', INDETERMINATE)('IfcProject') + IfcProject = express_getattr(file, 'by_type', INDETERMINATE)('IfcProject') assert (sizeof(IfcProject) <= 1) is not False def IfcAddToBeginOfList(ascalar, alist): @@ -7400,13 +7410,13 @@ def IfcBaseAxis(dim, axis1, axis2, axis3): if exists(axis2): factor = IfcDotProduct(axis2, express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) if factor < 0.0: - u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) elif exists(axis2): d1 = IfcNormalise(axis2) u = [IfcOrthogonalComplement(d1), d1] - u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) else: u = [IfcDirection(DirectionRatios=[1.0, 0.0]), IfcDirection(DirectionRatios=[0.0, 1.0])] return u @@ -7424,7 +7434,7 @@ def IfcBuild2Axes(refdirection): def IfcBuildAxes(axis, refdirection): d1 = nvl(IfcNormalise(axis), IfcDirection(DirectionRatios=[0.0, 0.0, 1.0])) d2 = IfcFirstProjAxis(d1, refdirection) - return [d2, getattr(IfcNormalise(IfcCrossProduct(d1, d2)), 'Orientation', INDETERMINATE), d1] + return [d2, express_getattr(IfcNormalise(IfcCrossProduct(d1, d2)), 'Orientation', INDETERMINATE), d1] def IfcCorrectDimensions(m, dim): if m == lengthunit: @@ -7602,7 +7612,7 @@ def IfcCorrectLocalPlacement(axisplacement, relplacement): if 'ifc2x3.ifcaxis2placement2d' in typeof(axisplacement): return True if 'ifc2x3.ifcaxis2placement3d' in typeof(axisplacement): - if getattr(getattr(relplacement, 'RelativePlacement', INDETERMINATE), 'Dim', INDETERMINATE) == 3: + if express_getattr(express_getattr(relplacement, 'RelativePlacement', INDETERMINATE), 'Dim', INDETERMINATE) == 3: return True else: return False @@ -7613,27 +7623,27 @@ def IfcCorrectObjectAssignment(constraint, objects): count = 0 if not exists(constraint): return True - if constraint == getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE): + if constraint == express_getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE): return True - elif constraint == getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc2x3.ifcproduct' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc2x3.ifcprocess' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc2x3.ifccontrol' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc2x3.ifcresource' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc2x3.ifcactor' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc2x3.ifcgroup' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc2x3.ifcproject' in typeof(temp)]) return count == 0 else: @@ -7645,26 +7655,26 @@ def IfcCorrectUnitAssignment(units): monetaryunitnumber = 0 namedunitnames = express_set([]) derivedunitnames = express_set([]) - namedunitnumber = sizeof([temp for temp in units if 'ifc2x3.ifcnamedunit' in typeof(temp) and (not getattr(temp, 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE))]) - derivedunitnumber = sizeof([temp for temp in units if 'ifc2x3.ifcderivedunit' in typeof(temp) and (not getattr(temp, 'UnitType', INDETERMINATE) == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE))]) + namedunitnumber = sizeof([temp for temp in units if 'ifc2x3.ifcnamedunit' in typeof(temp) and (not express_getattr(temp, 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE))]) + derivedunitnumber = sizeof([temp for temp in units if 'ifc2x3.ifcderivedunit' in typeof(temp) and (not express_getattr(temp, 'UnitType', INDETERMINATE) == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE))]) monetaryunitnumber = sizeof([temp for temp in units if 'ifc2x3.ifcmonetaryunit' in typeof(temp)]) for i in range(1, sizeof(units) + 1): - if 'ifc2x3.ifcnamedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE)): - namedunitnames = namedunitnames + getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) - if 'ifc2x3.ifcderivedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE)): - derivedunitnames = derivedunitnames + getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) + if 'ifc2x3.ifcnamedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE)): + namedunitnames = namedunitnames + express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) + if 'ifc2x3.ifcderivedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE)): + derivedunitnames = derivedunitnames + express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) return sizeof(namedunitnames) == namedunitnumber and sizeof(derivedunitnames) == derivedunitnumber and (monetaryunitnumber <= 1) def IfcCrossProduct(arg1, arg2): - if (not exists(arg1) or getattr(arg1, 'Dim', INDETERMINATE) == 2) or (not exists(arg2) or getattr(arg2, 'Dim', INDETERMINATE) == 2): + if (not exists(arg1) or express_getattr(arg1, 'Dim', INDETERMINATE) == 2) or (not exists(arg2) or express_getattr(arg2, 'Dim', INDETERMINATE) == 2): return None else: - v1 = getattr(IfcNormalise(arg1), 'DirectionRatios', INDETERMINATE) - v2 = getattr(IfcNormalise(arg2), 'DirectionRatios', INDETERMINATE) + v1 = express_getattr(IfcNormalise(arg1), 'DirectionRatios', INDETERMINATE) + v2 = express_getattr(IfcNormalise(arg2), 'DirectionRatios', INDETERMINATE) res = IfcDirection(DirectionRatios=[express_getitem(v1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(v1, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(v1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) mag = 0.0 for i in range(1, 3 + 1): - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: @@ -7673,17 +7683,17 @@ def IfcCrossProduct(arg1, arg2): def IfcCurveDim(curve): if 'ifc2x3.ifcline' in typeof(curve): - return getattr(getattr(curve, 'Pnt', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Pnt', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc2x3.ifcconic' in typeof(curve): - return getattr(getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc2x3.ifcpolyline' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'Points', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'Points', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc2x3.ifctrimmedcurve' in typeof(curve): - return IfcCurveDim(getattr(curve, 'BasisCurve', INDETERMINATE)) + return IfcCurveDim(express_getattr(curve, 'BasisCurve', INDETERMINATE)) if 'ifc2x3.ifccompositecurve' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc2x3.ifcbsplinecurve' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc2x3.ifcoffsetcurve2d' in typeof(curve): return 2 if 'ifc2x3.ifcoffsetcurve3d' in typeof(curve): @@ -7692,8 +7702,8 @@ def IfcCurveDim(curve): def IfcCurveWeightsPositive(b): result = True - for i in range(0, getattr(b, 'UpperIndexOnControlPoints', INDETERMINATE) + 1): - if express_getitem(getattr(b, 'Weights', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: + for i in range(0, express_getattr(b, 'UpperIndexOnControlPoints', INDETERMINATE) + 1): + if express_getitem(express_getattr(b, 'Weights', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: result = False return result return result @@ -7701,13 +7711,13 @@ def IfcCurveWeightsPositive(b): def IfcDeriveDimensionalExponents(unitelements): result = IfcDimensionalExponents(0, 0, 0, 0, 0, 0, 0) for i in range(loindex(unitelements), hiindex(unitelements) + 1): - result.LengthExponent = getattr(result, 'LengthExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LengthExponent', INDETERMINATE) - result.MassExponent = getattr(result, 'MassExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'MassExponent', INDETERMINATE) - result.TimeExponent = getattr(result, 'TimeExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'TimeExponent', INDETERMINATE) - result.ElectricCurrentExponent = getattr(result, 'ElectricCurrentExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ElectricCurrentExponent', INDETERMINATE) - result.ThermodynamicTemperatureExponent = getattr(result, 'ThermodynamicTemperatureExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ThermodynamicTemperatureExponent', INDETERMINATE) - result.AmountOfSubstanceExponent = getattr(result, 'AmountOfSubstanceExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'AmountOfSubstanceExponent', INDETERMINATE) - result.LuminousIntensityExponent = getattr(result, 'LuminousIntensityExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LuminousIntensityExponent', INDETERMINATE) + result.LengthExponent = express_getattr(result, 'LengthExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LengthExponent', INDETERMINATE) + result.MassExponent = express_getattr(result, 'MassExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'MassExponent', INDETERMINATE) + result.TimeExponent = express_getattr(result, 'TimeExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'TimeExponent', INDETERMINATE) + result.ElectricCurrentExponent = express_getattr(result, 'ElectricCurrentExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ElectricCurrentExponent', INDETERMINATE) + result.ThermodynamicTemperatureExponent = express_getattr(result, 'ThermodynamicTemperatureExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ThermodynamicTemperatureExponent', INDETERMINATE) + result.AmountOfSubstanceExponent = express_getattr(result, 'AmountOfSubstanceExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'AmountOfSubstanceExponent', INDETERMINATE) + result.LuminousIntensityExponent = express_getattr(result, 'LuminousIntensityExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LuminousIntensityExponent', INDETERMINATE) return result def IfcDimensionsForSiUnit(n): @@ -7777,15 +7787,15 @@ def IfcDimensionsForSiUnit(n): def IfcDotProduct(arg1, arg2): if not exists(arg1) or not exists(arg2): scalar = None - elif getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + elif express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): scalar = None else: vec1 = IfcNormalise(arg1) vec2 = IfcNormalise(arg2) - ndim = getattr(arg1, 'Dim', INDETERMINATE) + ndim = express_getattr(arg1, 'Dim', INDETERMINATE) scalar = 0.0 for i in range(1, ndim + 1): - scalar = scalar + express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + scalar = scalar + express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return scalar def IfcFirstProjAxis(zaxis, arg): @@ -7794,19 +7804,19 @@ def IfcFirstProjAxis(zaxis, arg): else: z = IfcNormalise(zaxis) if not exists(arg): - if getattr(z, 'DirectionRatios', INDETERMINATE) != [1.0, 0.0, 0.0]: + if express_getattr(z, 'DirectionRatios', INDETERMINATE) != [1.0, 0.0, 0.0]: v = IfcDirection(DirectionRatios=[1.0, 0.0, 0.0]) else: v = IfcDirection(DirectionRatios=[0.0, 1.0, 0.0]) else: - if getattr(arg, 'Dim', INDETERMINATE) != 3: + if express_getattr(arg, 'Dim', INDETERMINATE) != 3: return None - if getattr(IfcCrossProduct(arg, z), 'Magnitude', INDETERMINATE) == 0.0: + if express_getattr(IfcCrossProduct(arg, z), 'Magnitude', INDETERMINATE) == 0.0: return None else: v = IfcNormalise(arg) xvec = IfcScalarTimesVector(IfcDotProduct(v, z), z) - xaxis = getattr(IfcVectorDifference(v, xvec), 'Orientation', INDETERMINATE) + xaxis = express_getattr(IfcVectorDifference(v, xvec), 'Orientation', INDETERMINATE) xaxis = IfcNormalise(xaxis) return xaxis @@ -7830,16 +7840,16 @@ def IfcListToArray(lis, low, u): def IfcLoopHeadToTail(aloop): p = True - n = sizeof(getattr(aloop, 'EdgeList', INDETERMINATE)) + n = sizeof(express_getattr(aloop, 'EdgeList', INDETERMINATE)) for i in range(2, n + 1): - p = p and getattr(express_getitem(getattr(aloop, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == getattr(express_getitem(getattr(aloop, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) + p = p and express_getattr(express_getitem(express_getattr(aloop, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == express_getattr(express_getitem(express_getattr(aloop, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) return p def IfcMlsTotalThickness(layerset): - max = getattr(express_getitem(getattr(layerset, 'MaterialLayers', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) - if sizeof(getattr(layerset, 'MaterialLayers', INDETERMINATE)) > 1: - for i in range(2, hiindex(getattr(layerset, 'MaterialLayers', INDETERMINATE)) + 1): - max = max + getattr(express_getitem(getattr(layerset, 'MaterialLayers', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) + max = express_getattr(express_getitem(express_getattr(layerset, 'MaterialLayers', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) + if sizeof(express_getattr(layerset, 'MaterialLayers', INDETERMINATE)) > 1: + for i in range(2, hiindex(express_getattr(layerset, 'MaterialLayers', INDETERMINATE)) + 1): + max = max + express_getattr(express_getitem(express_getattr(layerset, 'MaterialLayers', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) return max def IfcNormalise(arg): @@ -7849,25 +7859,25 @@ def IfcNormalise(arg): if not exists(arg): return None else: - ndim = getattr(arg, 'Dim', INDETERMINATE) + ndim = express_getattr(arg, 'Dim', INDETERMINATE) if 'ifc2x3.ifcvector' in typeof(arg): - v.DirectionRatios = getattr(getattr(arg, 'Orientation', INDETERMINATE), 'DirectionRatios', INDETERMINATE) - vec.Magnitude = getattr(arg, 'Magnitude', INDETERMINATE) + v.DirectionRatios = express_getattr(express_getattr(arg, 'Orientation', INDETERMINATE), 'DirectionRatios', INDETERMINATE) + vec.Magnitude = express_getattr(arg, 'Magnitude', INDETERMINATE) vec.Orientation = v - if getattr(arg, 'Magnitude', INDETERMINATE) == 0.0: + if express_getattr(arg, 'Magnitude', INDETERMINATE) == 0.0: return None else: vec.Magnitude = 1.0 else: - v.DirectionRatios = getattr(arg, 'DirectionRatios', INDETERMINATE) + v.DirectionRatios = express_getattr(arg, 'DirectionRatios', INDETERMINATE) mag = 0.0 for i in range(1, ndim + 1): - mag = mag + express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: mag = sqrt(mag) for i in range(1, ndim + 1): - temp = list(getattr(v, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) / mag + temp = list(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) / mag v.DirectionRatios = temp if 'ifc2x3.ifcvector' in typeof(arg): vec.Orientation = v @@ -7879,47 +7889,47 @@ def IfcNormalise(arg): return result def IfcOrthogonalComplement(vec): - if not exists(vec) or getattr(vec, 'Dim', INDETERMINATE) != 2: + if not exists(vec) or express_getattr(vec, 'Dim', INDETERMINATE) != 2: return None else: - result = IfcDirection(DirectionRatios=[-express_getitem(getattr(vec, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(vec, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) + result = IfcDirection(DirectionRatios=[-express_getitem(express_getattr(vec, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(vec, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) return result def IfcPathHeadToTail(apath): n = 0 p = unknown - n = sizeof(getattr(apath, 'EdgeList', INDETERMINATE)) + n = sizeof(express_getattr(apath, 'EdgeList', INDETERMINATE)) for i in range(2, n + 1): - p = p and getattr(express_getitem(getattr(apath, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == getattr(express_getitem(getattr(apath, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) + p = p and express_getattr(express_getitem(express_getattr(apath, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == express_getattr(express_getitem(express_getattr(apath, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) return p def IfcSameAxis2Placement(ap1, ap2, epsilon): - return IfcSameDirection(express_getitem(getattr(ap1, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(ap2, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameDirection(express_getitem(getattr(ap1, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(ap2, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameCartesianPoint(getattr(ap1, 'Location', INDETERMINATE), getattr(ap1, 'Location', INDETERMINATE), epsilon) + return IfcSameDirection(express_getitem(express_getattr(ap1, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(ap2, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameDirection(express_getitem(express_getattr(ap1, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(ap2, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameCartesianPoint(express_getattr(ap1, 'Location', INDETERMINATE), express_getattr(ap1, 'Location', INDETERMINATE), epsilon) def IfcSameCartesianPoint(cp1, cp2, epsilon): - cp1x = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - cp1y = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp1x = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp1y = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) cp1z = 0 - cp2x = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - cp2y = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp2x = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp2y = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) cp2z = 0 - if sizeof(getattr(cp1, 'Coordinates', INDETERMINATE)) > 2: - cp1z = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - if sizeof(getattr(cp2, 'Coordinates', INDETERMINATE)) > 2: - cp2z = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(cp1, 'Coordinates', INDETERMINATE)) > 2: + cp1z = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(cp2, 'Coordinates', INDETERMINATE)) > 2: + cp2z = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return IfcSameValue(cp1x, cp2x, epsilon) and IfcSameValue(cp1y, cp2y, epsilon) and IfcSameValue(cp1z, cp2z, epsilon) def IfcSameDirection(dir1, dir2, epsilon): - dir1x = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - dir1y = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir1x = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir1y = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) dir1z = 0 - dir2x = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - dir2y = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir2x = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir2y = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) dir2z = 0 - if sizeof(getattr(dir1, 'DirectionRatios', INDETERMINATE)) > 2: - dir1z = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - if sizeof(getattr(dir2, 'DirectionRatios', INDETERMINATE)) > 2: - dir2z = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(dir1, 'DirectionRatios', INDETERMINATE)) > 2: + dir1z = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(dir2, 'DirectionRatios', INDETERMINATE)) > 2: + dir2z = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return IfcSameValue(dir1x, dir2x, epsilon) and IfcSameValue(dir1y, dir2y, epsilon) and IfcSameValue(dir1z, dir2z, epsilon) def IfcSameValidPrecision(epsilon1, epsilon2): @@ -7940,15 +7950,15 @@ def IfcScalarTimesVector(scalar, vec): return None else: if 'ifc2x3.ifcvector' in typeof(vec): - v = getattr(vec, 'Orientation', INDETERMINATE) - mag = scalar * getattr(vec, 'Magnitude', INDETERMINATE) + v = express_getattr(vec, 'Orientation', INDETERMINATE) + mag = scalar * express_getattr(vec, 'Magnitude', INDETERMINATE) else: v = vec mag = scalar if mag < 0.0: - for i in range(1, sizeof(getattr(v, 'DirectionRatios', INDETERMINATE)) + 1): - temp = list(getattr(v, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + for i in range(1, sizeof(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + 1): + temp = list(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) v.DirectionRatios = temp mag = -mag result = IfcVector(Orientation=IfcNormalise(v), Magnitude=mag) @@ -7964,43 +7974,43 @@ def IfcSecondProjAxis(zaxis, xaxis, arg): temp = IfcScalarTimesVector(IfcDotProduct(v, xaxis), xaxis) yaxis = IfcVectorDifference(yaxis, temp) yaxis = IfcNormalise(yaxis) - return getattr(yaxis, 'Orientation', INDETERMINATE) + return express_getattr(yaxis, 'Orientation', INDETERMINATE) def IfcShapeRepresentationTypes(reptype, items): count = 0 - if getattr(reptype, 'lower', INDETERMINATE)() == 'curve2d': - count = sizeof([temp for temp in items if 'ifc2x3.ifccurve' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 2]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'annotation2d': + if express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve2d': + count = sizeof([temp for temp in items if 'ifc2x3.ifccurve' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 2]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'annotation2d': count = sizeof([temp for temp in items if sizeof(typeof(temp) * ['ifc2x3.ifcpoint', 'ifc2x3.ifccurve', 'ifc2x3.ifcgeometriccurveset', 'ifc2x3.ifcannotationfillarea', 'ifc2x3.ifcdefinedsymbol', 'ifc2x3.ifctextliteral', 'ifc2x3.ifcdraughtingcallout']) == 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'geometricset': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'geometricset': count = sizeof([temp for temp in items if 'ifc2x3.ifcgeometricset' in typeof(temp) or 'ifc2x3.ifcpoint' in typeof(temp) or 'ifc2x3.ifccurve' in typeof(temp) or ('ifc2x3.ifcsurface' in typeof(temp))]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'geometriccurveset': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'geometriccurveset': count = sizeof([temp for temp in items if 'ifc2x3.ifcgeometriccurveset' in typeof(temp) or 'ifc2x3.ifcgeometricset' in typeof(temp) or 'ifc2x3.ifcpoint' in typeof(temp) or ('ifc2x3.ifccurve' in typeof(temp))]) for i in range(1, hiindex(items) + 1): if 'ifc2x3.ifcgeometricset' in typeof(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - if sizeof([temp for temp in getattr(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Elements', INDETERMINATE) if 'ifc2x3.ifcsurface' in typeof(temp)]) > 0: + if sizeof([temp for temp in express_getattr(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Elements', INDETERMINATE) if 'ifc2x3.ifcsurface' in typeof(temp)]) > 0: count = count - 1 - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surfacemodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surfacemodel': count = sizeof([temp for temp in items if sizeof(['ifc2x3.ifcshellbasedsurfacemodel', 'ifc2x3.ifcfacebasedsurfacemodel', 'ifc2x3.ifcfacetedbrep', 'ifc2x3.ifcfacetedbrepwithvoids'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'solidmodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'solidmodel': count = sizeof([temp for temp in items if 'ifc2x3.ifcsolidmodel' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'sweptsolid': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'sweptsolid': count = sizeof([temp for temp in items if 'ifc2x3.ifcsweptareasolid' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'csg': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'csg': count = sizeof([temp for temp in items if 'ifc2x3.ifcbooleanresult' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'clipping': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'clipping': count = sizeof([temp for temp in items if 'ifc2x3.ifcbooleanclippingresult' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsweptsolid': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsweptsolid': count = sizeof([temp for temp in items if 'ifc2x3.ifcsurfacecurvesweptareasolid' in typeof(temp) or 'ifc2x3.ifcsweptdisksolid' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'brep': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'brep': count = sizeof([temp for temp in items if 'ifc2x3.ifcfacetedbrep' in typeof(temp) or 'ifc2x3.ifcfacetedbrepwithvoids' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'boundingbox': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'boundingbox': count = sizeof([temp for temp in items if 'ifc2x3.ifcboundingbox' in typeof(temp)]) if sizeof(items) > 1: count = 0 - elif getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedspine': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedspine': count = sizeof([temp for temp in items if 'ifc2x3.ifcsectionedspine' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'mappedrepresentation': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'mappedrepresentation': count = sizeof([temp for temp in items if 'ifc2x3.ifcmappeditem' in typeof(temp)]) else: return None @@ -8008,17 +8018,17 @@ def IfcShapeRepresentationTypes(reptype, items): def IfcTopologyRepresentationTypes(reptype, items): count = 0 - if getattr(reptype, 'lower', INDETERMINATE)() == 'vertex': + if express_getattr(reptype, 'lower', INDETERMINATE)() == 'vertex': count = sizeof([temp for temp in items if 'ifc2x3.ifcvertex' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'edge': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'edge': count = sizeof([temp for temp in items if 'ifc2x3.ifcedge' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'path': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'path': count = sizeof([temp for temp in items if 'ifc2x3.ifcpath' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'face': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'face': count = sizeof([temp for temp in items if 'ifc2x3.ifcface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'shell': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'shell': count = sizeof([temp for temp in items if 'ifc2x3.ifcopenshell' in typeof(temp) or 'ifc2x3.ifcclosedshell' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'undefined': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'undefined': return True else: return None @@ -8027,60 +8037,60 @@ def IfcTopologyRepresentationTypes(reptype, items): def IfcUniquePropertyName(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcValidCalendarDate(date): - if not 1 <= getattr(date, 'DayComponent', INDETERMINATE) <= 31: + if not 1 <= express_getattr(date, 'DayComponent', INDETERMINATE) <= 31: return False - if getattr(date, 'MonthComponent', INDETERMINATE) == 4: - return 1 <= getattr(date, 'DayComponent', INDETERMINATE) <= 30 - elif getattr(date, 'MonthComponent', INDETERMINATE) == 6: - return 1 <= getattr(date, 'DayComponent', INDETERMINATE) <= 30 - elif getattr(date, 'MonthComponent', INDETERMINATE) == 9: - return 1 <= getattr(date, 'DayComponent', INDETERMINATE) <= 30 - elif getattr(date, 'MonthComponent', INDETERMINATE) == 11: - return 1 <= getattr(date, 'DayComponent', INDETERMINATE) <= 30 - elif getattr(date, 'MonthComponent', INDETERMINATE) == 2: - if IfcLeapYear(getattr(date, 'YearComponent', INDETERMINATE)): - return 1 <= getattr(date, 'DayComponent', INDETERMINATE) <= 29 + if express_getattr(date, 'MonthComponent', INDETERMINATE) == 4: + return 1 <= express_getattr(date, 'DayComponent', INDETERMINATE) <= 30 + elif express_getattr(date, 'MonthComponent', INDETERMINATE) == 6: + return 1 <= express_getattr(date, 'DayComponent', INDETERMINATE) <= 30 + elif express_getattr(date, 'MonthComponent', INDETERMINATE) == 9: + return 1 <= express_getattr(date, 'DayComponent', INDETERMINATE) <= 30 + elif express_getattr(date, 'MonthComponent', INDETERMINATE) == 11: + return 1 <= express_getattr(date, 'DayComponent', INDETERMINATE) <= 30 + elif express_getattr(date, 'MonthComponent', INDETERMINATE) == 2: + if IfcLeapYear(express_getattr(date, 'YearComponent', INDETERMINATE)): + return 1 <= express_getattr(date, 'DayComponent', INDETERMINATE) <= 29 else: - return 1 <= getattr(date, 'DayComponent', INDETERMINATE) <= 28 + return 1 <= express_getattr(date, 'DayComponent', INDETERMINATE) <= 28 else: return True def IfcValidTime(time): - if exists(getattr(time, 'SecondComponent', INDETERMINATE)): - return exists(getattr(time, 'MinuteComponent', INDETERMINATE)) + if exists(express_getattr(time, 'SecondComponent', INDETERMINATE)): + return exists(express_getattr(time, 'MinuteComponent', INDETERMINATE)) else: return True def IfcVectorDifference(arg1, arg2): - if (not exists(arg1) or not exists(arg2)) or getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + if (not exists(arg1) or not exists(arg2)) or express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): return None else: if 'ifc2x3.ifcvector' in typeof(arg1): - mag1 = getattr(arg1, 'Magnitude', INDETERMINATE) - vec1 = getattr(arg1, 'Orientation', INDETERMINATE) + mag1 = express_getattr(arg1, 'Magnitude', INDETERMINATE) + vec1 = express_getattr(arg1, 'Orientation', INDETERMINATE) else: mag1 = 1.0 vec1 = arg1 if 'ifc2x3.ifcvector' in typeof(arg2): - mag2 = getattr(arg2, 'Magnitude', INDETERMINATE) - vec2 = getattr(arg2, 'Orientation', INDETERMINATE) + mag2 = express_getattr(arg2, 'Magnitude', INDETERMINATE) + vec2 = express_getattr(arg2, 'Orientation', INDETERMINATE) else: mag2 = 1.0 vec2 = arg2 vec1 = IfcNormalise(vec1) vec2 = IfcNormalise(vec2) - ndim = sizeof(getattr(vec1, 'DirectionRatios', INDETERMINATE)) + ndim = sizeof(express_getattr(vec1, 'DirectionRatios', INDETERMINATE)) mag = 0.0 res = IfcDirection(DirectionRatios=[0.0] * ndim) for i in range(1, ndim + 1): - temp = list(getattr(res, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - mag2 * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(res, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - mag2 * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) res.DirectionRatios = temp - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: @@ -8088,31 +8098,31 @@ def IfcVectorDifference(arg1, arg2): return result def IfcVectorSum(arg1, arg2): - if (not exists(arg1) or not exists(arg2)) or getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + if (not exists(arg1) or not exists(arg2)) or express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): return None else: if 'ifc2x3.ifcvector' in typeof(arg1): - mag1 = getattr(arg1, 'Magnitude', INDETERMINATE) - vec1 = getattr(arg1, 'Orientation', INDETERMINATE) + mag1 = express_getattr(arg1, 'Magnitude', INDETERMINATE) + vec1 = express_getattr(arg1, 'Orientation', INDETERMINATE) else: mag1 = 1.0 vec1 = arg1 if 'ifc2x3.ifcvector' in typeof(arg2): - mag2 = getattr(arg2, 'Magnitude', INDETERMINATE) - vec2 = getattr(arg2, 'Orientation', INDETERMINATE) + mag2 = express_getattr(arg2, 'Magnitude', INDETERMINATE) + vec2 = express_getattr(arg2, 'Orientation', INDETERMINATE) else: mag2 = 1.0 vec2 = arg2 vec1 = IfcNormalise(vec1) vec2 = IfcNormalise(vec2) - ndim = sizeof(getattr(vec1, 'DirectionRatios', INDETERMINATE)) + ndim = sizeof(express_getattr(vec1, 'DirectionRatios', INDETERMINATE)) mag = 0.0 res = IfcDirection(DirectionRatios=[0.0] * ndim) for i in range(1, ndim + 1): - temp = list(getattr(res, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag2 * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(res, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag2 * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) res.DirectionRatios = temp - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4.py index b973c2e484..791737c57a 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4.py @@ -1,5 +1,8 @@ import ifcopenshell +def is_indeterminate(v): + return v is None or type(v).__name__ == 'indeterminate_type' + def exists(v): if callable(v): try: @@ -7,10 +10,10 @@ def exists(v): except IndexError as e: return False else: - return v is not None + return not is_indeterminate(v) def nvl(v, default): - return v if v is not None else default + return v if not is_indeterminate(v) else default def is_entity(inst): if isinstance(inst, ifcopenshell.entity_instance): @@ -22,13 +25,13 @@ def is_entity(inst): def express_len(v): if isinstance(v, ifcopenshell.entity_instance) and (not is_entity(v)): v = v[0] - elif v is None or v is INDETERMINATE: + elif is_indeterminate(v): return INDETERMINATE return len(v) old_range = range def range(*args): - if INDETERMINATE in args: + if any(map(is_indeterminate, args)): return yield from old_range(*args) sizeof = express_len @@ -80,6 +83,13 @@ def express_getitem(aggr, idx, default): return aggr[idx] except IndexError as e: return None + +def express_getattr(aggr, name, default): + v = getattr(aggr, name, default) + if v is None: + return default + else: + return v EXPRESS_ONE_BASED_INDEXING = 1 def typeof(inst): @@ -140,1846 +150,1846 @@ INDETERMINATE = indeterminate_type() class enum_namespace: def __getattr__(self, k): - return getattr(k, 'upper', INDETERMINATE)() + return express_getattr(k, 'upper', INDETERMINATE)() IfcActionRequestTypeEnum = enum_namespace() -email = getattr(IfcActionRequestTypeEnum, 'EMAIL', INDETERMINATE) -fax = getattr(IfcActionRequestTypeEnum, 'FAX', INDETERMINATE) -phone = getattr(IfcActionRequestTypeEnum, 'PHONE', INDETERMINATE) -post = getattr(IfcActionRequestTypeEnum, 'POST', INDETERMINATE) -verbal = getattr(IfcActionRequestTypeEnum, 'VERBAL', INDETERMINATE) -userdefined = getattr(IfcActionRequestTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionRequestTypeEnum, 'NOTDEFINED', INDETERMINATE) +email = IfcActionRequestTypeEnum.EMAIL +fax = IfcActionRequestTypeEnum.FAX +phone = IfcActionRequestTypeEnum.PHONE +post = IfcActionRequestTypeEnum.POST +verbal = IfcActionRequestTypeEnum.VERBAL +userdefined = IfcActionRequestTypeEnum.USERDEFINED +notdefined = IfcActionRequestTypeEnum.NOTDEFINED IfcActionSourceTypeEnum = enum_namespace() -dead_load_g = getattr(IfcActionSourceTypeEnum, 'DEAD_LOAD_G', INDETERMINATE) -completion_g1 = getattr(IfcActionSourceTypeEnum, 'COMPLETION_G1', INDETERMINATE) -live_load_q = getattr(IfcActionSourceTypeEnum, 'LIVE_LOAD_Q', INDETERMINATE) -snow_s = getattr(IfcActionSourceTypeEnum, 'SNOW_S', INDETERMINATE) -wind_w = getattr(IfcActionSourceTypeEnum, 'WIND_W', INDETERMINATE) -prestressing_p = getattr(IfcActionSourceTypeEnum, 'PRESTRESSING_P', INDETERMINATE) -settlement_u = getattr(IfcActionSourceTypeEnum, 'SETTLEMENT_U', INDETERMINATE) -temperature_t = getattr(IfcActionSourceTypeEnum, 'TEMPERATURE_T', INDETERMINATE) -earthquake_e = getattr(IfcActionSourceTypeEnum, 'EARTHQUAKE_E', INDETERMINATE) -fire = getattr(IfcActionSourceTypeEnum, 'FIRE', INDETERMINATE) -impulse = getattr(IfcActionSourceTypeEnum, 'IMPULSE', INDETERMINATE) -impact = getattr(IfcActionSourceTypeEnum, 'IMPACT', INDETERMINATE) -transport = getattr(IfcActionSourceTypeEnum, 'TRANSPORT', INDETERMINATE) -erection = getattr(IfcActionSourceTypeEnum, 'ERECTION', INDETERMINATE) -propping = getattr(IfcActionSourceTypeEnum, 'PROPPING', INDETERMINATE) -system_imperfection = getattr(IfcActionSourceTypeEnum, 'SYSTEM_IMPERFECTION', INDETERMINATE) -shrinkage = getattr(IfcActionSourceTypeEnum, 'SHRINKAGE', INDETERMINATE) -creep = getattr(IfcActionSourceTypeEnum, 'CREEP', INDETERMINATE) -lack_of_fit = getattr(IfcActionSourceTypeEnum, 'LACK_OF_FIT', INDETERMINATE) -buoyancy = getattr(IfcActionSourceTypeEnum, 'BUOYANCY', INDETERMINATE) -ice = getattr(IfcActionSourceTypeEnum, 'ICE', INDETERMINATE) -current = getattr(IfcActionSourceTypeEnum, 'CURRENT', INDETERMINATE) -wave = getattr(IfcActionSourceTypeEnum, 'WAVE', INDETERMINATE) -rain = getattr(IfcActionSourceTypeEnum, 'RAIN', INDETERMINATE) -brakes = getattr(IfcActionSourceTypeEnum, 'BRAKES', INDETERMINATE) -userdefined = getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionSourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dead_load_g = IfcActionSourceTypeEnum.DEAD_LOAD_G +completion_g1 = IfcActionSourceTypeEnum.COMPLETION_G1 +live_load_q = IfcActionSourceTypeEnum.LIVE_LOAD_Q +snow_s = IfcActionSourceTypeEnum.SNOW_S +wind_w = IfcActionSourceTypeEnum.WIND_W +prestressing_p = IfcActionSourceTypeEnum.PRESTRESSING_P +settlement_u = IfcActionSourceTypeEnum.SETTLEMENT_U +temperature_t = IfcActionSourceTypeEnum.TEMPERATURE_T +earthquake_e = IfcActionSourceTypeEnum.EARTHQUAKE_E +fire = IfcActionSourceTypeEnum.FIRE +impulse = IfcActionSourceTypeEnum.IMPULSE +impact = IfcActionSourceTypeEnum.IMPACT +transport = IfcActionSourceTypeEnum.TRANSPORT +erection = IfcActionSourceTypeEnum.ERECTION +propping = IfcActionSourceTypeEnum.PROPPING +system_imperfection = IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION +shrinkage = IfcActionSourceTypeEnum.SHRINKAGE +creep = IfcActionSourceTypeEnum.CREEP +lack_of_fit = IfcActionSourceTypeEnum.LACK_OF_FIT +buoyancy = IfcActionSourceTypeEnum.BUOYANCY +ice = IfcActionSourceTypeEnum.ICE +current = IfcActionSourceTypeEnum.CURRENT +wave = IfcActionSourceTypeEnum.WAVE +rain = IfcActionSourceTypeEnum.RAIN +brakes = IfcActionSourceTypeEnum.BRAKES +userdefined = IfcActionSourceTypeEnum.USERDEFINED +notdefined = IfcActionSourceTypeEnum.NOTDEFINED IfcActionTypeEnum = enum_namespace() -permanent_g = getattr(IfcActionTypeEnum, 'PERMANENT_G', INDETERMINATE) -variable_q = getattr(IfcActionTypeEnum, 'VARIABLE_Q', INDETERMINATE) -extraordinary_a = getattr(IfcActionTypeEnum, 'EXTRAORDINARY_A', INDETERMINATE) -userdefined = getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionTypeEnum, 'NOTDEFINED', INDETERMINATE) +permanent_g = IfcActionTypeEnum.PERMANENT_G +variable_q = IfcActionTypeEnum.VARIABLE_Q +extraordinary_a = IfcActionTypeEnum.EXTRAORDINARY_A +userdefined = IfcActionTypeEnum.USERDEFINED +notdefined = IfcActionTypeEnum.NOTDEFINED IfcActuatorTypeEnum = enum_namespace() -electricactuator = getattr(IfcActuatorTypeEnum, 'ELECTRICACTUATOR', INDETERMINATE) -handoperatedactuator = getattr(IfcActuatorTypeEnum, 'HANDOPERATEDACTUATOR', INDETERMINATE) -hydraulicactuator = getattr(IfcActuatorTypeEnum, 'HYDRAULICACTUATOR', INDETERMINATE) -pneumaticactuator = getattr(IfcActuatorTypeEnum, 'PNEUMATICACTUATOR', INDETERMINATE) -thermostaticactuator = getattr(IfcActuatorTypeEnum, 'THERMOSTATICACTUATOR', INDETERMINATE) -userdefined = getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActuatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +electricactuator = IfcActuatorTypeEnum.ELECTRICACTUATOR +handoperatedactuator = IfcActuatorTypeEnum.HANDOPERATEDACTUATOR +hydraulicactuator = IfcActuatorTypeEnum.HYDRAULICACTUATOR +pneumaticactuator = IfcActuatorTypeEnum.PNEUMATICACTUATOR +thermostaticactuator = IfcActuatorTypeEnum.THERMOSTATICACTUATOR +userdefined = IfcActuatorTypeEnum.USERDEFINED +notdefined = IfcActuatorTypeEnum.NOTDEFINED IfcAddressTypeEnum = enum_namespace() -office = getattr(IfcAddressTypeEnum, 'OFFICE', INDETERMINATE) -site = getattr(IfcAddressTypeEnum, 'SITE', INDETERMINATE) -home = getattr(IfcAddressTypeEnum, 'HOME', INDETERMINATE) -distributionpoint = getattr(IfcAddressTypeEnum, 'DISTRIBUTIONPOINT', INDETERMINATE) -userdefined = getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) +office = IfcAddressTypeEnum.OFFICE +site = IfcAddressTypeEnum.SITE +home = IfcAddressTypeEnum.HOME +distributionpoint = IfcAddressTypeEnum.DISTRIBUTIONPOINT +userdefined = IfcAddressTypeEnum.USERDEFINED IfcAirTerminalBoxTypeEnum = enum_namespace() -constantflow = getattr(IfcAirTerminalBoxTypeEnum, 'CONSTANTFLOW', INDETERMINATE) -variableflowpressuredependant = getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREDEPENDANT', INDETERMINATE) -variableflowpressureindependant = getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREINDEPENDANT', INDETERMINATE) -userdefined = getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirTerminalBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +constantflow = IfcAirTerminalBoxTypeEnum.CONSTANTFLOW +variableflowpressuredependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT +variableflowpressureindependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT +userdefined = IfcAirTerminalBoxTypeEnum.USERDEFINED +notdefined = IfcAirTerminalBoxTypeEnum.NOTDEFINED IfcAirTerminalTypeEnum = enum_namespace() -diffuser = getattr(IfcAirTerminalTypeEnum, 'DIFFUSER', INDETERMINATE) -grille = getattr(IfcAirTerminalTypeEnum, 'GRILLE', INDETERMINATE) -louvre = getattr(IfcAirTerminalTypeEnum, 'LOUVRE', INDETERMINATE) -register = getattr(IfcAirTerminalTypeEnum, 'REGISTER', INDETERMINATE) -userdefined = getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +diffuser = IfcAirTerminalTypeEnum.DIFFUSER +grille = IfcAirTerminalTypeEnum.GRILLE +louvre = IfcAirTerminalTypeEnum.LOUVRE +register = IfcAirTerminalTypeEnum.REGISTER +userdefined = IfcAirTerminalTypeEnum.USERDEFINED +notdefined = IfcAirTerminalTypeEnum.NOTDEFINED IfcAirToAirHeatRecoveryTypeEnum = enum_namespace() -fixedplatecounterflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECOUNTERFLOWEXCHANGER', INDETERMINATE) -fixedplatecrossflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECROSSFLOWEXCHANGER', INDETERMINATE) -fixedplateparallelflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATEPARALLELFLOWEXCHANGER', INDETERMINATE) -rotarywheel = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'ROTARYWHEEL', INDETERMINATE) -runaroundcoilloop = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'RUNAROUNDCOILLOOP', INDETERMINATE) -heatpipe = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'HEATPIPE', INDETERMINATE) -twintowerenthalpyrecoveryloops = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'TWINTOWERENTHALPYRECOVERYLOOPS', INDETERMINATE) -thermosiphonsealedtubeheatexchangers = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONSEALEDTUBEHEATEXCHANGERS', INDETERMINATE) -thermosiphoncoiltypeheatexchangers = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONCOILTYPEHEATEXCHANGERS', INDETERMINATE) -userdefined = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'NOTDEFINED', INDETERMINATE) +fixedplatecounterflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER +fixedplatecrossflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER +fixedplateparallelflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER +rotarywheel = IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL +runaroundcoilloop = IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP +heatpipe = IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE +twintowerenthalpyrecoveryloops = IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS +thermosiphonsealedtubeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS +thermosiphoncoiltypeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS +userdefined = IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED +notdefined = IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED IfcAlarmTypeEnum = enum_namespace() -bell = getattr(IfcAlarmTypeEnum, 'BELL', INDETERMINATE) -breakglassbutton = getattr(IfcAlarmTypeEnum, 'BREAKGLASSBUTTON', INDETERMINATE) -light = getattr(IfcAlarmTypeEnum, 'LIGHT', INDETERMINATE) -manualpullbox = getattr(IfcAlarmTypeEnum, 'MANUALPULLBOX', INDETERMINATE) -siren = getattr(IfcAlarmTypeEnum, 'SIREN', INDETERMINATE) -whistle = getattr(IfcAlarmTypeEnum, 'WHISTLE', INDETERMINATE) -userdefined = getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAlarmTypeEnum, 'NOTDEFINED', INDETERMINATE) +bell = IfcAlarmTypeEnum.BELL +breakglassbutton = IfcAlarmTypeEnum.BREAKGLASSBUTTON +light = IfcAlarmTypeEnum.LIGHT +manualpullbox = IfcAlarmTypeEnum.MANUALPULLBOX +siren = IfcAlarmTypeEnum.SIREN +whistle = IfcAlarmTypeEnum.WHISTLE +userdefined = IfcAlarmTypeEnum.USERDEFINED +notdefined = IfcAlarmTypeEnum.NOTDEFINED IfcAnalysisModelTypeEnum = enum_namespace() -in_plane_loading_2d = getattr(IfcAnalysisModelTypeEnum, 'IN_PLANE_LOADING_2D', INDETERMINATE) -out_plane_loading_2d = getattr(IfcAnalysisModelTypeEnum, 'OUT_PLANE_LOADING_2D', INDETERMINATE) -loading_3d = getattr(IfcAnalysisModelTypeEnum, 'LOADING_3D', INDETERMINATE) -userdefined = getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnalysisModelTypeEnum, 'NOTDEFINED', INDETERMINATE) +in_plane_loading_2d = IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D +out_plane_loading_2d = IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D +loading_3d = IfcAnalysisModelTypeEnum.LOADING_3D +userdefined = IfcAnalysisModelTypeEnum.USERDEFINED +notdefined = IfcAnalysisModelTypeEnum.NOTDEFINED IfcAnalysisTheoryTypeEnum = enum_namespace() -first_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'FIRST_ORDER_THEORY', INDETERMINATE) -second_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'SECOND_ORDER_THEORY', INDETERMINATE) -third_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'THIRD_ORDER_THEORY', INDETERMINATE) -full_nonlinear_theory = getattr(IfcAnalysisTheoryTypeEnum, 'FULL_NONLINEAR_THEORY', INDETERMINATE) -userdefined = getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnalysisTheoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +first_order_theory = IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY +second_order_theory = IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY +third_order_theory = IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY +full_nonlinear_theory = IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY +userdefined = IfcAnalysisTheoryTypeEnum.USERDEFINED +notdefined = IfcAnalysisTheoryTypeEnum.NOTDEFINED IfcArithmeticOperatorEnum = enum_namespace() -add = getattr(IfcArithmeticOperatorEnum, 'ADD', INDETERMINATE) -divide = getattr(IfcArithmeticOperatorEnum, 'DIVIDE', INDETERMINATE) -multiply = getattr(IfcArithmeticOperatorEnum, 'MULTIPLY', INDETERMINATE) -subtract = getattr(IfcArithmeticOperatorEnum, 'SUBTRACT', INDETERMINATE) +add = IfcArithmeticOperatorEnum.ADD +divide = IfcArithmeticOperatorEnum.DIVIDE +multiply = IfcArithmeticOperatorEnum.MULTIPLY +subtract = IfcArithmeticOperatorEnum.SUBTRACT IfcAssemblyPlaceEnum = enum_namespace() -site = getattr(IfcAssemblyPlaceEnum, 'SITE', INDETERMINATE) -factory = getattr(IfcAssemblyPlaceEnum, 'FACTORY', INDETERMINATE) -notdefined = getattr(IfcAssemblyPlaceEnum, 'NOTDEFINED', INDETERMINATE) +site = IfcAssemblyPlaceEnum.SITE +factory = IfcAssemblyPlaceEnum.FACTORY +notdefined = IfcAssemblyPlaceEnum.NOTDEFINED IfcAudioVisualApplianceTypeEnum = enum_namespace() -amplifier = getattr(IfcAudioVisualApplianceTypeEnum, 'AMPLIFIER', INDETERMINATE) -camera = getattr(IfcAudioVisualApplianceTypeEnum, 'CAMERA', INDETERMINATE) -display = getattr(IfcAudioVisualApplianceTypeEnum, 'DISPLAY', INDETERMINATE) -microphone = getattr(IfcAudioVisualApplianceTypeEnum, 'MICROPHONE', INDETERMINATE) -player = getattr(IfcAudioVisualApplianceTypeEnum, 'PLAYER', INDETERMINATE) -projector = getattr(IfcAudioVisualApplianceTypeEnum, 'PROJECTOR', INDETERMINATE) -receiver = getattr(IfcAudioVisualApplianceTypeEnum, 'RECEIVER', INDETERMINATE) -speaker = getattr(IfcAudioVisualApplianceTypeEnum, 'SPEAKER', INDETERMINATE) -switcher = getattr(IfcAudioVisualApplianceTypeEnum, 'SWITCHER', INDETERMINATE) -telephone = getattr(IfcAudioVisualApplianceTypeEnum, 'TELEPHONE', INDETERMINATE) -tuner = getattr(IfcAudioVisualApplianceTypeEnum, 'TUNER', INDETERMINATE) -userdefined = getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAudioVisualApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +amplifier = IfcAudioVisualApplianceTypeEnum.AMPLIFIER +camera = IfcAudioVisualApplianceTypeEnum.CAMERA +display = IfcAudioVisualApplianceTypeEnum.DISPLAY +microphone = IfcAudioVisualApplianceTypeEnum.MICROPHONE +player = IfcAudioVisualApplianceTypeEnum.PLAYER +projector = IfcAudioVisualApplianceTypeEnum.PROJECTOR +receiver = IfcAudioVisualApplianceTypeEnum.RECEIVER +speaker = IfcAudioVisualApplianceTypeEnum.SPEAKER +switcher = IfcAudioVisualApplianceTypeEnum.SWITCHER +telephone = IfcAudioVisualApplianceTypeEnum.TELEPHONE +tuner = IfcAudioVisualApplianceTypeEnum.TUNER +userdefined = IfcAudioVisualApplianceTypeEnum.USERDEFINED +notdefined = IfcAudioVisualApplianceTypeEnum.NOTDEFINED IfcBSplineCurveForm = enum_namespace() -polyline_form = getattr(IfcBSplineCurveForm, 'POLYLINE_FORM', INDETERMINATE) -circular_arc = getattr(IfcBSplineCurveForm, 'CIRCULAR_ARC', INDETERMINATE) -elliptic_arc = getattr(IfcBSplineCurveForm, 'ELLIPTIC_ARC', INDETERMINATE) -parabolic_arc = getattr(IfcBSplineCurveForm, 'PARABOLIC_ARC', INDETERMINATE) -hyperbolic_arc = getattr(IfcBSplineCurveForm, 'HYPERBOLIC_ARC', INDETERMINATE) -unspecified = getattr(IfcBSplineCurveForm, 'UNSPECIFIED', INDETERMINATE) +polyline_form = IfcBSplineCurveForm.POLYLINE_FORM +circular_arc = IfcBSplineCurveForm.CIRCULAR_ARC +elliptic_arc = IfcBSplineCurveForm.ELLIPTIC_ARC +parabolic_arc = IfcBSplineCurveForm.PARABOLIC_ARC +hyperbolic_arc = IfcBSplineCurveForm.HYPERBOLIC_ARC +unspecified = IfcBSplineCurveForm.UNSPECIFIED IfcBSplineSurfaceForm = enum_namespace() -plane_surf = getattr(IfcBSplineSurfaceForm, 'PLANE_SURF', INDETERMINATE) -cylindrical_surf = getattr(IfcBSplineSurfaceForm, 'CYLINDRICAL_SURF', INDETERMINATE) -conical_surf = getattr(IfcBSplineSurfaceForm, 'CONICAL_SURF', INDETERMINATE) -spherical_surf = getattr(IfcBSplineSurfaceForm, 'SPHERICAL_SURF', INDETERMINATE) -toroidal_surf = getattr(IfcBSplineSurfaceForm, 'TOROIDAL_SURF', INDETERMINATE) -surf_of_revolution = getattr(IfcBSplineSurfaceForm, 'SURF_OF_REVOLUTION', INDETERMINATE) -ruled_surf = getattr(IfcBSplineSurfaceForm, 'RULED_SURF', INDETERMINATE) -generalised_cone = getattr(IfcBSplineSurfaceForm, 'GENERALISED_CONE', INDETERMINATE) -quadric_surf = getattr(IfcBSplineSurfaceForm, 'QUADRIC_SURF', INDETERMINATE) -surf_of_linear_extrusion = getattr(IfcBSplineSurfaceForm, 'SURF_OF_LINEAR_EXTRUSION', INDETERMINATE) -unspecified = getattr(IfcBSplineSurfaceForm, 'UNSPECIFIED', INDETERMINATE) +plane_surf = IfcBSplineSurfaceForm.PLANE_SURF +cylindrical_surf = IfcBSplineSurfaceForm.CYLINDRICAL_SURF +conical_surf = IfcBSplineSurfaceForm.CONICAL_SURF +spherical_surf = IfcBSplineSurfaceForm.SPHERICAL_SURF +toroidal_surf = IfcBSplineSurfaceForm.TOROIDAL_SURF +surf_of_revolution = IfcBSplineSurfaceForm.SURF_OF_REVOLUTION +ruled_surf = IfcBSplineSurfaceForm.RULED_SURF +generalised_cone = IfcBSplineSurfaceForm.GENERALISED_CONE +quadric_surf = IfcBSplineSurfaceForm.QUADRIC_SURF +surf_of_linear_extrusion = IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION +unspecified = IfcBSplineSurfaceForm.UNSPECIFIED IfcBeamTypeEnum = enum_namespace() -beam = getattr(IfcBeamTypeEnum, 'BEAM', INDETERMINATE) -joist = getattr(IfcBeamTypeEnum, 'JOIST', INDETERMINATE) -hollowcore = getattr(IfcBeamTypeEnum, 'HOLLOWCORE', INDETERMINATE) -lintel = getattr(IfcBeamTypeEnum, 'LINTEL', INDETERMINATE) -spandrel = getattr(IfcBeamTypeEnum, 'SPANDREL', INDETERMINATE) -t_beam = getattr(IfcBeamTypeEnum, 'T_BEAM', INDETERMINATE) -userdefined = getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +beam = IfcBeamTypeEnum.BEAM +joist = IfcBeamTypeEnum.JOIST +hollowcore = IfcBeamTypeEnum.HOLLOWCORE +lintel = IfcBeamTypeEnum.LINTEL +spandrel = IfcBeamTypeEnum.SPANDREL +t_beam = IfcBeamTypeEnum.T_BEAM +userdefined = IfcBeamTypeEnum.USERDEFINED +notdefined = IfcBeamTypeEnum.NOTDEFINED IfcBenchmarkEnum = enum_namespace() -greaterthan = getattr(IfcBenchmarkEnum, 'GREATERTHAN', INDETERMINATE) -greaterthanorequalto = getattr(IfcBenchmarkEnum, 'GREATERTHANOREQUALTO', INDETERMINATE) -lessthan = getattr(IfcBenchmarkEnum, 'LESSTHAN', INDETERMINATE) -lessthanorequalto = getattr(IfcBenchmarkEnum, 'LESSTHANOREQUALTO', INDETERMINATE) -equalto = getattr(IfcBenchmarkEnum, 'EQUALTO', INDETERMINATE) -notequalto = getattr(IfcBenchmarkEnum, 'NOTEQUALTO', INDETERMINATE) -includes = getattr(IfcBenchmarkEnum, 'INCLUDES', INDETERMINATE) -notincludes = getattr(IfcBenchmarkEnum, 'NOTINCLUDES', INDETERMINATE) -includedin = getattr(IfcBenchmarkEnum, 'INCLUDEDIN', INDETERMINATE) -notincludedin = getattr(IfcBenchmarkEnum, 'NOTINCLUDEDIN', INDETERMINATE) +greaterthan = IfcBenchmarkEnum.GREATERTHAN +greaterthanorequalto = IfcBenchmarkEnum.GREATERTHANOREQUALTO +lessthan = IfcBenchmarkEnum.LESSTHAN +lessthanorequalto = IfcBenchmarkEnum.LESSTHANOREQUALTO +equalto = IfcBenchmarkEnum.EQUALTO +notequalto = IfcBenchmarkEnum.NOTEQUALTO +includes = IfcBenchmarkEnum.INCLUDES +notincludes = IfcBenchmarkEnum.NOTINCLUDES +includedin = IfcBenchmarkEnum.INCLUDEDIN +notincludedin = IfcBenchmarkEnum.NOTINCLUDEDIN IfcBoilerTypeEnum = enum_namespace() -water = getattr(IfcBoilerTypeEnum, 'WATER', INDETERMINATE) -steam = getattr(IfcBoilerTypeEnum, 'STEAM', INDETERMINATE) -userdefined = getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBoilerTypeEnum, 'NOTDEFINED', INDETERMINATE) +water = IfcBoilerTypeEnum.WATER +steam = IfcBoilerTypeEnum.STEAM +userdefined = IfcBoilerTypeEnum.USERDEFINED +notdefined = IfcBoilerTypeEnum.NOTDEFINED IfcBooleanOperator = enum_namespace() -union = getattr(IfcBooleanOperator, 'UNION', INDETERMINATE) -intersection = getattr(IfcBooleanOperator, 'INTERSECTION', INDETERMINATE) -difference = getattr(IfcBooleanOperator, 'DIFFERENCE', INDETERMINATE) +union = IfcBooleanOperator.UNION +intersection = IfcBooleanOperator.INTERSECTION +difference = IfcBooleanOperator.DIFFERENCE IfcBuildingElementPartTypeEnum = enum_namespace() -insulation = getattr(IfcBuildingElementPartTypeEnum, 'INSULATION', INDETERMINATE) -precastpanel = getattr(IfcBuildingElementPartTypeEnum, 'PRECASTPANEL', INDETERMINATE) -userdefined = getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingElementPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +insulation = IfcBuildingElementPartTypeEnum.INSULATION +precastpanel = IfcBuildingElementPartTypeEnum.PRECASTPANEL +userdefined = IfcBuildingElementPartTypeEnum.USERDEFINED +notdefined = IfcBuildingElementPartTypeEnum.NOTDEFINED IfcBuildingElementProxyTypeEnum = enum_namespace() -complex = getattr(IfcBuildingElementProxyTypeEnum, 'COMPLEX', INDETERMINATE) -element = getattr(IfcBuildingElementProxyTypeEnum, 'ELEMENT', INDETERMINATE) -partial = getattr(IfcBuildingElementProxyTypeEnum, 'PARTIAL', INDETERMINATE) -provisionforvoid = getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORVOID', INDETERMINATE) -provisionforspace = getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORSPACE', INDETERMINATE) -userdefined = getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingElementProxyTypeEnum, 'NOTDEFINED', INDETERMINATE) +complex = IfcBuildingElementProxyTypeEnum.COMPLEX +element = IfcBuildingElementProxyTypeEnum.ELEMENT +partial = IfcBuildingElementProxyTypeEnum.PARTIAL +provisionforvoid = IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID +provisionforspace = IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE +userdefined = IfcBuildingElementProxyTypeEnum.USERDEFINED +notdefined = IfcBuildingElementProxyTypeEnum.NOTDEFINED IfcBuildingSystemTypeEnum = enum_namespace() -fenestration = getattr(IfcBuildingSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = getattr(IfcBuildingSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = getattr(IfcBuildingSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -outershell = getattr(IfcBuildingSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -shading = getattr(IfcBuildingSystemTypeEnum, 'SHADING', INDETERMINATE) -transport = getattr(IfcBuildingSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -userdefined = getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +fenestration = IfcBuildingSystemTypeEnum.FENESTRATION +foundation = IfcBuildingSystemTypeEnum.FOUNDATION +loadbearing = IfcBuildingSystemTypeEnum.LOADBEARING +outershell = IfcBuildingSystemTypeEnum.OUTERSHELL +shading = IfcBuildingSystemTypeEnum.SHADING +transport = IfcBuildingSystemTypeEnum.TRANSPORT +userdefined = IfcBuildingSystemTypeEnum.USERDEFINED +notdefined = IfcBuildingSystemTypeEnum.NOTDEFINED IfcBurnerTypeEnum = enum_namespace() -userdefined = getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBurnerTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcBurnerTypeEnum.USERDEFINED +notdefined = IfcBurnerTypeEnum.NOTDEFINED IfcCableCarrierFittingTypeEnum = enum_namespace() -bend = getattr(IfcCableCarrierFittingTypeEnum, 'BEND', INDETERMINATE) -cross = getattr(IfcCableCarrierFittingTypeEnum, 'CROSS', INDETERMINATE) -reducer = getattr(IfcCableCarrierFittingTypeEnum, 'REDUCER', INDETERMINATE) -tee = getattr(IfcCableCarrierFittingTypeEnum, 'TEE', INDETERMINATE) -userdefined = getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableCarrierFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcCableCarrierFittingTypeEnum.BEND +cross = IfcCableCarrierFittingTypeEnum.CROSS +reducer = IfcCableCarrierFittingTypeEnum.REDUCER +tee = IfcCableCarrierFittingTypeEnum.TEE +userdefined = IfcCableCarrierFittingTypeEnum.USERDEFINED +notdefined = IfcCableCarrierFittingTypeEnum.NOTDEFINED IfcCableCarrierSegmentTypeEnum = enum_namespace() -cableladdersegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLELADDERSEGMENT', INDETERMINATE) -cabletraysegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRAYSEGMENT', INDETERMINATE) -cabletrunkingsegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRUNKINGSEGMENT', INDETERMINATE) -conduitsegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CONDUITSEGMENT', INDETERMINATE) -userdefined = getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableCarrierSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +cableladdersegment = IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT +cabletraysegment = IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT +cabletrunkingsegment = IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT +conduitsegment = IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT +userdefined = IfcCableCarrierSegmentTypeEnum.USERDEFINED +notdefined = IfcCableCarrierSegmentTypeEnum.NOTDEFINED IfcCableFittingTypeEnum = enum_namespace() -connector = getattr(IfcCableFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcCableFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcCableFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcCableFittingTypeEnum, 'JUNCTION', INDETERMINATE) -transition = getattr(IfcCableFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +connector = IfcCableFittingTypeEnum.CONNECTOR +entry = IfcCableFittingTypeEnum.ENTRY +exit = IfcCableFittingTypeEnum.EXIT +junction = IfcCableFittingTypeEnum.JUNCTION +transition = IfcCableFittingTypeEnum.TRANSITION +userdefined = IfcCableFittingTypeEnum.USERDEFINED +notdefined = IfcCableFittingTypeEnum.NOTDEFINED IfcCableSegmentTypeEnum = enum_namespace() -busbarsegment = getattr(IfcCableSegmentTypeEnum, 'BUSBARSEGMENT', INDETERMINATE) -cablesegment = getattr(IfcCableSegmentTypeEnum, 'CABLESEGMENT', INDETERMINATE) -conductorsegment = getattr(IfcCableSegmentTypeEnum, 'CONDUCTORSEGMENT', INDETERMINATE) -coresegment = getattr(IfcCableSegmentTypeEnum, 'CORESEGMENT', INDETERMINATE) -userdefined = getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +busbarsegment = IfcCableSegmentTypeEnum.BUSBARSEGMENT +cablesegment = IfcCableSegmentTypeEnum.CABLESEGMENT +conductorsegment = IfcCableSegmentTypeEnum.CONDUCTORSEGMENT +coresegment = IfcCableSegmentTypeEnum.CORESEGMENT +userdefined = IfcCableSegmentTypeEnum.USERDEFINED +notdefined = IfcCableSegmentTypeEnum.NOTDEFINED IfcChangeActionEnum = enum_namespace() -nochange = getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE) -modified = getattr(IfcChangeActionEnum, 'MODIFIED', INDETERMINATE) -added = getattr(IfcChangeActionEnum, 'ADDED', INDETERMINATE) -deleted = getattr(IfcChangeActionEnum, 'DELETED', INDETERMINATE) -notdefined = getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) +nochange = IfcChangeActionEnum.NOCHANGE +modified = IfcChangeActionEnum.MODIFIED +added = IfcChangeActionEnum.ADDED +deleted = IfcChangeActionEnum.DELETED +notdefined = IfcChangeActionEnum.NOTDEFINED IfcChillerTypeEnum = enum_namespace() -aircooled = getattr(IfcChillerTypeEnum, 'AIRCOOLED', INDETERMINATE) -watercooled = getattr(IfcChillerTypeEnum, 'WATERCOOLED', INDETERMINATE) -heatrecovery = getattr(IfcChillerTypeEnum, 'HEATRECOVERY', INDETERMINATE) -userdefined = getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcChillerTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcChillerTypeEnum.AIRCOOLED +watercooled = IfcChillerTypeEnum.WATERCOOLED +heatrecovery = IfcChillerTypeEnum.HEATRECOVERY +userdefined = IfcChillerTypeEnum.USERDEFINED +notdefined = IfcChillerTypeEnum.NOTDEFINED IfcChimneyTypeEnum = enum_namespace() -userdefined = getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcChimneyTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcChimneyTypeEnum.USERDEFINED +notdefined = IfcChimneyTypeEnum.NOTDEFINED IfcCoilTypeEnum = enum_namespace() -dxcoolingcoil = getattr(IfcCoilTypeEnum, 'DXCOOLINGCOIL', INDETERMINATE) -electricheatingcoil = getattr(IfcCoilTypeEnum, 'ELECTRICHEATINGCOIL', INDETERMINATE) -gasheatingcoil = getattr(IfcCoilTypeEnum, 'GASHEATINGCOIL', INDETERMINATE) -hydroniccoil = getattr(IfcCoilTypeEnum, 'HYDRONICCOIL', INDETERMINATE) -steamheatingcoil = getattr(IfcCoilTypeEnum, 'STEAMHEATINGCOIL', INDETERMINATE) -watercoolingcoil = getattr(IfcCoilTypeEnum, 'WATERCOOLINGCOIL', INDETERMINATE) -waterheatingcoil = getattr(IfcCoilTypeEnum, 'WATERHEATINGCOIL', INDETERMINATE) -userdefined = getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dxcoolingcoil = IfcCoilTypeEnum.DXCOOLINGCOIL +electricheatingcoil = IfcCoilTypeEnum.ELECTRICHEATINGCOIL +gasheatingcoil = IfcCoilTypeEnum.GASHEATINGCOIL +hydroniccoil = IfcCoilTypeEnum.HYDRONICCOIL +steamheatingcoil = IfcCoilTypeEnum.STEAMHEATINGCOIL +watercoolingcoil = IfcCoilTypeEnum.WATERCOOLINGCOIL +waterheatingcoil = IfcCoilTypeEnum.WATERHEATINGCOIL +userdefined = IfcCoilTypeEnum.USERDEFINED +notdefined = IfcCoilTypeEnum.NOTDEFINED IfcColumnTypeEnum = enum_namespace() -column = getattr(IfcColumnTypeEnum, 'COLUMN', INDETERMINATE) -pilaster = getattr(IfcColumnTypeEnum, 'PILASTER', INDETERMINATE) -userdefined = getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcColumnTypeEnum, 'NOTDEFINED', INDETERMINATE) +column = IfcColumnTypeEnum.COLUMN +pilaster = IfcColumnTypeEnum.PILASTER +userdefined = IfcColumnTypeEnum.USERDEFINED +notdefined = IfcColumnTypeEnum.NOTDEFINED IfcCommunicationsApplianceTypeEnum = enum_namespace() -antenna = getattr(IfcCommunicationsApplianceTypeEnum, 'ANTENNA', INDETERMINATE) -computer = getattr(IfcCommunicationsApplianceTypeEnum, 'COMPUTER', INDETERMINATE) -fax = getattr(IfcCommunicationsApplianceTypeEnum, 'FAX', INDETERMINATE) -gateway = getattr(IfcCommunicationsApplianceTypeEnum, 'GATEWAY', INDETERMINATE) -modem = getattr(IfcCommunicationsApplianceTypeEnum, 'MODEM', INDETERMINATE) -networkappliance = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKAPPLIANCE', INDETERMINATE) -networkbridge = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKBRIDGE', INDETERMINATE) -networkhub = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKHUB', INDETERMINATE) -printer = getattr(IfcCommunicationsApplianceTypeEnum, 'PRINTER', INDETERMINATE) -repeater = getattr(IfcCommunicationsApplianceTypeEnum, 'REPEATER', INDETERMINATE) -router = getattr(IfcCommunicationsApplianceTypeEnum, 'ROUTER', INDETERMINATE) -scanner = getattr(IfcCommunicationsApplianceTypeEnum, 'SCANNER', INDETERMINATE) -userdefined = getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +antenna = IfcCommunicationsApplianceTypeEnum.ANTENNA +computer = IfcCommunicationsApplianceTypeEnum.COMPUTER +fax = IfcCommunicationsApplianceTypeEnum.FAX +gateway = IfcCommunicationsApplianceTypeEnum.GATEWAY +modem = IfcCommunicationsApplianceTypeEnum.MODEM +networkappliance = IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE +networkbridge = IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE +networkhub = IfcCommunicationsApplianceTypeEnum.NETWORKHUB +printer = IfcCommunicationsApplianceTypeEnum.PRINTER +repeater = IfcCommunicationsApplianceTypeEnum.REPEATER +router = IfcCommunicationsApplianceTypeEnum.ROUTER +scanner = IfcCommunicationsApplianceTypeEnum.SCANNER +userdefined = IfcCommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcCommunicationsApplianceTypeEnum.NOTDEFINED IfcComplexPropertyTemplateTypeEnum = enum_namespace() -p_complex = getattr(IfcComplexPropertyTemplateTypeEnum, 'P_COMPLEX', INDETERMINATE) -q_complex = getattr(IfcComplexPropertyTemplateTypeEnum, 'Q_COMPLEX', INDETERMINATE) +p_complex = IfcComplexPropertyTemplateTypeEnum.P_COMPLEX +q_complex = IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX IfcCompressorTypeEnum = enum_namespace() -dynamic = getattr(IfcCompressorTypeEnum, 'DYNAMIC', INDETERMINATE) -reciprocating = getattr(IfcCompressorTypeEnum, 'RECIPROCATING', INDETERMINATE) -rotary = getattr(IfcCompressorTypeEnum, 'ROTARY', INDETERMINATE) -scroll = getattr(IfcCompressorTypeEnum, 'SCROLL', INDETERMINATE) -trochoidal = getattr(IfcCompressorTypeEnum, 'TROCHOIDAL', INDETERMINATE) -singlestage = getattr(IfcCompressorTypeEnum, 'SINGLESTAGE', INDETERMINATE) -booster = getattr(IfcCompressorTypeEnum, 'BOOSTER', INDETERMINATE) -opentype = getattr(IfcCompressorTypeEnum, 'OPENTYPE', INDETERMINATE) -hermetic = getattr(IfcCompressorTypeEnum, 'HERMETIC', INDETERMINATE) -semihermetic = getattr(IfcCompressorTypeEnum, 'SEMIHERMETIC', INDETERMINATE) -weldedshellhermetic = getattr(IfcCompressorTypeEnum, 'WELDEDSHELLHERMETIC', INDETERMINATE) -rollingpiston = getattr(IfcCompressorTypeEnum, 'ROLLINGPISTON', INDETERMINATE) -rotaryvane = getattr(IfcCompressorTypeEnum, 'ROTARYVANE', INDETERMINATE) -singlescrew = getattr(IfcCompressorTypeEnum, 'SINGLESCREW', INDETERMINATE) -twinscrew = getattr(IfcCompressorTypeEnum, 'TWINSCREW', INDETERMINATE) -userdefined = getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCompressorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dynamic = IfcCompressorTypeEnum.DYNAMIC +reciprocating = IfcCompressorTypeEnum.RECIPROCATING +rotary = IfcCompressorTypeEnum.ROTARY +scroll = IfcCompressorTypeEnum.SCROLL +trochoidal = IfcCompressorTypeEnum.TROCHOIDAL +singlestage = IfcCompressorTypeEnum.SINGLESTAGE +booster = IfcCompressorTypeEnum.BOOSTER +opentype = IfcCompressorTypeEnum.OPENTYPE +hermetic = IfcCompressorTypeEnum.HERMETIC +semihermetic = IfcCompressorTypeEnum.SEMIHERMETIC +weldedshellhermetic = IfcCompressorTypeEnum.WELDEDSHELLHERMETIC +rollingpiston = IfcCompressorTypeEnum.ROLLINGPISTON +rotaryvane = IfcCompressorTypeEnum.ROTARYVANE +singlescrew = IfcCompressorTypeEnum.SINGLESCREW +twinscrew = IfcCompressorTypeEnum.TWINSCREW +userdefined = IfcCompressorTypeEnum.USERDEFINED +notdefined = IfcCompressorTypeEnum.NOTDEFINED IfcCondenserTypeEnum = enum_namespace() -aircooled = getattr(IfcCondenserTypeEnum, 'AIRCOOLED', INDETERMINATE) -evaporativecooled = getattr(IfcCondenserTypeEnum, 'EVAPORATIVECOOLED', INDETERMINATE) -watercooled = getattr(IfcCondenserTypeEnum, 'WATERCOOLED', INDETERMINATE) -watercooledbrazedplate = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDBRAZEDPLATE', INDETERMINATE) -watercooledshellcoil = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLCOIL', INDETERMINATE) -watercooledshelltube = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLTUBE', INDETERMINATE) -watercooledtubeintube = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDTUBEINTUBE', INDETERMINATE) -userdefined = getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCondenserTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcCondenserTypeEnum.AIRCOOLED +evaporativecooled = IfcCondenserTypeEnum.EVAPORATIVECOOLED +watercooled = IfcCondenserTypeEnum.WATERCOOLED +watercooledbrazedplate = IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE +watercooledshellcoil = IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL +watercooledshelltube = IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE +watercooledtubeintube = IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE +userdefined = IfcCondenserTypeEnum.USERDEFINED +notdefined = IfcCondenserTypeEnum.NOTDEFINED IfcConnectionTypeEnum = enum_namespace() -atpath = getattr(IfcConnectionTypeEnum, 'ATPATH', INDETERMINATE) -atstart = getattr(IfcConnectionTypeEnum, 'ATSTART', INDETERMINATE) -atend = getattr(IfcConnectionTypeEnum, 'ATEND', INDETERMINATE) -notdefined = getattr(IfcConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +atpath = IfcConnectionTypeEnum.ATPATH +atstart = IfcConnectionTypeEnum.ATSTART +atend = IfcConnectionTypeEnum.ATEND +notdefined = IfcConnectionTypeEnum.NOTDEFINED IfcConstraintEnum = enum_namespace() -hard = getattr(IfcConstraintEnum, 'HARD', INDETERMINATE) -soft = getattr(IfcConstraintEnum, 'SOFT', INDETERMINATE) -advisory = getattr(IfcConstraintEnum, 'ADVISORY', INDETERMINATE) -userdefined = getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstraintEnum, 'NOTDEFINED', INDETERMINATE) +hard = IfcConstraintEnum.HARD +soft = IfcConstraintEnum.SOFT +advisory = IfcConstraintEnum.ADVISORY +userdefined = IfcConstraintEnum.USERDEFINED +notdefined = IfcConstraintEnum.NOTDEFINED IfcConstructionEquipmentResourceTypeEnum = enum_namespace() -demolishing = getattr(IfcConstructionEquipmentResourceTypeEnum, 'DEMOLISHING', INDETERMINATE) -earthmoving = getattr(IfcConstructionEquipmentResourceTypeEnum, 'EARTHMOVING', INDETERMINATE) -erecting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'ERECTING', INDETERMINATE) -heating = getattr(IfcConstructionEquipmentResourceTypeEnum, 'HEATING', INDETERMINATE) -lighting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'LIGHTING', INDETERMINATE) -paving = getattr(IfcConstructionEquipmentResourceTypeEnum, 'PAVING', INDETERMINATE) -pumping = getattr(IfcConstructionEquipmentResourceTypeEnum, 'PUMPING', INDETERMINATE) -transporting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'TRANSPORTING', INDETERMINATE) -userdefined = getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstructionEquipmentResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +demolishing = IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING +earthmoving = IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING +erecting = IfcConstructionEquipmentResourceTypeEnum.ERECTING +heating = IfcConstructionEquipmentResourceTypeEnum.HEATING +lighting = IfcConstructionEquipmentResourceTypeEnum.LIGHTING +paving = IfcConstructionEquipmentResourceTypeEnum.PAVING +pumping = IfcConstructionEquipmentResourceTypeEnum.PUMPING +transporting = IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING +userdefined = IfcConstructionEquipmentResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED IfcConstructionMaterialResourceTypeEnum = enum_namespace() -aggregates = getattr(IfcConstructionMaterialResourceTypeEnum, 'AGGREGATES', INDETERMINATE) -concrete = getattr(IfcConstructionMaterialResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = getattr(IfcConstructionMaterialResourceTypeEnum, 'DRYWALL', INDETERMINATE) -fuel = getattr(IfcConstructionMaterialResourceTypeEnum, 'FUEL', INDETERMINATE) -gypsum = getattr(IfcConstructionMaterialResourceTypeEnum, 'GYPSUM', INDETERMINATE) -masonry = getattr(IfcConstructionMaterialResourceTypeEnum, 'MASONRY', INDETERMINATE) -metal = getattr(IfcConstructionMaterialResourceTypeEnum, 'METAL', INDETERMINATE) -plastic = getattr(IfcConstructionMaterialResourceTypeEnum, 'PLASTIC', INDETERMINATE) -wood = getattr(IfcConstructionMaterialResourceTypeEnum, 'WOOD', INDETERMINATE) -notdefined = getattr(IfcConstructionMaterialResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) -userdefined = getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) +aggregates = IfcConstructionMaterialResourceTypeEnum.AGGREGATES +concrete = IfcConstructionMaterialResourceTypeEnum.CONCRETE +drywall = IfcConstructionMaterialResourceTypeEnum.DRYWALL +fuel = IfcConstructionMaterialResourceTypeEnum.FUEL +gypsum = IfcConstructionMaterialResourceTypeEnum.GYPSUM +masonry = IfcConstructionMaterialResourceTypeEnum.MASONRY +metal = IfcConstructionMaterialResourceTypeEnum.METAL +plastic = IfcConstructionMaterialResourceTypeEnum.PLASTIC +wood = IfcConstructionMaterialResourceTypeEnum.WOOD +notdefined = IfcConstructionMaterialResourceTypeEnum.NOTDEFINED +userdefined = IfcConstructionMaterialResourceTypeEnum.USERDEFINED IfcConstructionProductResourceTypeEnum = enum_namespace() -assembly = getattr(IfcConstructionProductResourceTypeEnum, 'ASSEMBLY', INDETERMINATE) -formwork = getattr(IfcConstructionProductResourceTypeEnum, 'FORMWORK', INDETERMINATE) -userdefined = getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstructionProductResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +assembly = IfcConstructionProductResourceTypeEnum.ASSEMBLY +formwork = IfcConstructionProductResourceTypeEnum.FORMWORK +userdefined = IfcConstructionProductResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionProductResourceTypeEnum.NOTDEFINED IfcControllerTypeEnum = enum_namespace() -floating = getattr(IfcControllerTypeEnum, 'FLOATING', INDETERMINATE) -programmable = getattr(IfcControllerTypeEnum, 'PROGRAMMABLE', INDETERMINATE) -proportional = getattr(IfcControllerTypeEnum, 'PROPORTIONAL', INDETERMINATE) -multiposition = getattr(IfcControllerTypeEnum, 'MULTIPOSITION', INDETERMINATE) -twoposition = getattr(IfcControllerTypeEnum, 'TWOPOSITION', INDETERMINATE) -userdefined = getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcControllerTypeEnum, 'NOTDEFINED', INDETERMINATE) +floating = IfcControllerTypeEnum.FLOATING +programmable = IfcControllerTypeEnum.PROGRAMMABLE +proportional = IfcControllerTypeEnum.PROPORTIONAL +multiposition = IfcControllerTypeEnum.MULTIPOSITION +twoposition = IfcControllerTypeEnum.TWOPOSITION +userdefined = IfcControllerTypeEnum.USERDEFINED +notdefined = IfcControllerTypeEnum.NOTDEFINED IfcCooledBeamTypeEnum = enum_namespace() -active = getattr(IfcCooledBeamTypeEnum, 'ACTIVE', INDETERMINATE) -passive = getattr(IfcCooledBeamTypeEnum, 'PASSIVE', INDETERMINATE) -userdefined = getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCooledBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +active = IfcCooledBeamTypeEnum.ACTIVE +passive = IfcCooledBeamTypeEnum.PASSIVE +userdefined = IfcCooledBeamTypeEnum.USERDEFINED +notdefined = IfcCooledBeamTypeEnum.NOTDEFINED IfcCoolingTowerTypeEnum = enum_namespace() -naturaldraft = getattr(IfcCoolingTowerTypeEnum, 'NATURALDRAFT', INDETERMINATE) -mechanicalinduceddraft = getattr(IfcCoolingTowerTypeEnum, 'MECHANICALINDUCEDDRAFT', INDETERMINATE) -mechanicalforceddraft = getattr(IfcCoolingTowerTypeEnum, 'MECHANICALFORCEDDRAFT', INDETERMINATE) -userdefined = getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoolingTowerTypeEnum, 'NOTDEFINED', INDETERMINATE) +naturaldraft = IfcCoolingTowerTypeEnum.NATURALDRAFT +mechanicalinduceddraft = IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT +mechanicalforceddraft = IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT +userdefined = IfcCoolingTowerTypeEnum.USERDEFINED +notdefined = IfcCoolingTowerTypeEnum.NOTDEFINED IfcCostItemTypeEnum = enum_namespace() -userdefined = getattr(IfcCostItemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCostItemTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCostItemTypeEnum.USERDEFINED +notdefined = IfcCostItemTypeEnum.NOTDEFINED IfcCostScheduleTypeEnum = enum_namespace() -budget = getattr(IfcCostScheduleTypeEnum, 'BUDGET', INDETERMINATE) -costplan = getattr(IfcCostScheduleTypeEnum, 'COSTPLAN', INDETERMINATE) -estimate = getattr(IfcCostScheduleTypeEnum, 'ESTIMATE', INDETERMINATE) -tender = getattr(IfcCostScheduleTypeEnum, 'TENDER', INDETERMINATE) -pricedbillofquantities = getattr(IfcCostScheduleTypeEnum, 'PRICEDBILLOFQUANTITIES', INDETERMINATE) -unpricedbillofquantities = getattr(IfcCostScheduleTypeEnum, 'UNPRICEDBILLOFQUANTITIES', INDETERMINATE) -scheduleofrates = getattr(IfcCostScheduleTypeEnum, 'SCHEDULEOFRATES', INDETERMINATE) -userdefined = getattr(IfcCostScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCostScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +budget = IfcCostScheduleTypeEnum.BUDGET +costplan = IfcCostScheduleTypeEnum.COSTPLAN +estimate = IfcCostScheduleTypeEnum.ESTIMATE +tender = IfcCostScheduleTypeEnum.TENDER +pricedbillofquantities = IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES +unpricedbillofquantities = IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES +scheduleofrates = IfcCostScheduleTypeEnum.SCHEDULEOFRATES +userdefined = IfcCostScheduleTypeEnum.USERDEFINED +notdefined = IfcCostScheduleTypeEnum.NOTDEFINED IfcCoveringTypeEnum = enum_namespace() -ceiling = getattr(IfcCoveringTypeEnum, 'CEILING', INDETERMINATE) -flooring = getattr(IfcCoveringTypeEnum, 'FLOORING', INDETERMINATE) -cladding = getattr(IfcCoveringTypeEnum, 'CLADDING', INDETERMINATE) -roofing = getattr(IfcCoveringTypeEnum, 'ROOFING', INDETERMINATE) -molding = getattr(IfcCoveringTypeEnum, 'MOLDING', INDETERMINATE) -skirtingboard = getattr(IfcCoveringTypeEnum, 'SKIRTINGBOARD', INDETERMINATE) -insulation = getattr(IfcCoveringTypeEnum, 'INSULATION', INDETERMINATE) -membrane = getattr(IfcCoveringTypeEnum, 'MEMBRANE', INDETERMINATE) -sleeving = getattr(IfcCoveringTypeEnum, 'SLEEVING', INDETERMINATE) -wrapping = getattr(IfcCoveringTypeEnum, 'WRAPPING', INDETERMINATE) -userdefined = getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoveringTypeEnum, 'NOTDEFINED', INDETERMINATE) +ceiling = IfcCoveringTypeEnum.CEILING +flooring = IfcCoveringTypeEnum.FLOORING +cladding = IfcCoveringTypeEnum.CLADDING +roofing = IfcCoveringTypeEnum.ROOFING +molding = IfcCoveringTypeEnum.MOLDING +skirtingboard = IfcCoveringTypeEnum.SKIRTINGBOARD +insulation = IfcCoveringTypeEnum.INSULATION +membrane = IfcCoveringTypeEnum.MEMBRANE +sleeving = IfcCoveringTypeEnum.SLEEVING +wrapping = IfcCoveringTypeEnum.WRAPPING +userdefined = IfcCoveringTypeEnum.USERDEFINED +notdefined = IfcCoveringTypeEnum.NOTDEFINED IfcCrewResourceTypeEnum = enum_namespace() -office = getattr(IfcCrewResourceTypeEnum, 'OFFICE', INDETERMINATE) -site = getattr(IfcCrewResourceTypeEnum, 'SITE', INDETERMINATE) -userdefined = getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCrewResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +office = IfcCrewResourceTypeEnum.OFFICE +site = IfcCrewResourceTypeEnum.SITE +userdefined = IfcCrewResourceTypeEnum.USERDEFINED +notdefined = IfcCrewResourceTypeEnum.NOTDEFINED IfcCurtainWallTypeEnum = enum_namespace() -userdefined = getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCurtainWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCurtainWallTypeEnum.USERDEFINED +notdefined = IfcCurtainWallTypeEnum.NOTDEFINED IfcCurveInterpolationEnum = enum_namespace() -linear = getattr(IfcCurveInterpolationEnum, 'LINEAR', INDETERMINATE) -log_linear = getattr(IfcCurveInterpolationEnum, 'LOG_LINEAR', INDETERMINATE) -log_log = getattr(IfcCurveInterpolationEnum, 'LOG_LOG', INDETERMINATE) -notdefined = getattr(IfcCurveInterpolationEnum, 'NOTDEFINED', INDETERMINATE) +linear = IfcCurveInterpolationEnum.LINEAR +log_linear = IfcCurveInterpolationEnum.LOG_LINEAR +log_log = IfcCurveInterpolationEnum.LOG_LOG +notdefined = IfcCurveInterpolationEnum.NOTDEFINED IfcDamperTypeEnum = enum_namespace() -backdraftdamper = getattr(IfcDamperTypeEnum, 'BACKDRAFTDAMPER', INDETERMINATE) -balancingdamper = getattr(IfcDamperTypeEnum, 'BALANCINGDAMPER', INDETERMINATE) -blastdamper = getattr(IfcDamperTypeEnum, 'BLASTDAMPER', INDETERMINATE) -controldamper = getattr(IfcDamperTypeEnum, 'CONTROLDAMPER', INDETERMINATE) -firedamper = getattr(IfcDamperTypeEnum, 'FIREDAMPER', INDETERMINATE) -firesmokedamper = getattr(IfcDamperTypeEnum, 'FIRESMOKEDAMPER', INDETERMINATE) -fumehoodexhaust = getattr(IfcDamperTypeEnum, 'FUMEHOODEXHAUST', INDETERMINATE) -gravitydamper = getattr(IfcDamperTypeEnum, 'GRAVITYDAMPER', INDETERMINATE) -gravityreliefdamper = getattr(IfcDamperTypeEnum, 'GRAVITYRELIEFDAMPER', INDETERMINATE) -reliefdamper = getattr(IfcDamperTypeEnum, 'RELIEFDAMPER', INDETERMINATE) -smokedamper = getattr(IfcDamperTypeEnum, 'SMOKEDAMPER', INDETERMINATE) -userdefined = getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +backdraftdamper = IfcDamperTypeEnum.BACKDRAFTDAMPER +balancingdamper = IfcDamperTypeEnum.BALANCINGDAMPER +blastdamper = IfcDamperTypeEnum.BLASTDAMPER +controldamper = IfcDamperTypeEnum.CONTROLDAMPER +firedamper = IfcDamperTypeEnum.FIREDAMPER +firesmokedamper = IfcDamperTypeEnum.FIRESMOKEDAMPER +fumehoodexhaust = IfcDamperTypeEnum.FUMEHOODEXHAUST +gravitydamper = IfcDamperTypeEnum.GRAVITYDAMPER +gravityreliefdamper = IfcDamperTypeEnum.GRAVITYRELIEFDAMPER +reliefdamper = IfcDamperTypeEnum.RELIEFDAMPER +smokedamper = IfcDamperTypeEnum.SMOKEDAMPER +userdefined = IfcDamperTypeEnum.USERDEFINED +notdefined = IfcDamperTypeEnum.NOTDEFINED IfcDataOriginEnum = enum_namespace() -measured = getattr(IfcDataOriginEnum, 'MEASURED', INDETERMINATE) -predicted = getattr(IfcDataOriginEnum, 'PREDICTED', INDETERMINATE) -simulated = getattr(IfcDataOriginEnum, 'SIMULATED', INDETERMINATE) -userdefined = getattr(IfcDataOriginEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDataOriginEnum, 'NOTDEFINED', INDETERMINATE) +measured = IfcDataOriginEnum.MEASURED +predicted = IfcDataOriginEnum.PREDICTED +simulated = IfcDataOriginEnum.SIMULATED +userdefined = IfcDataOriginEnum.USERDEFINED +notdefined = IfcDataOriginEnum.NOTDEFINED IfcDerivedUnitEnum = enum_namespace() -angularvelocityunit = getattr(IfcDerivedUnitEnum, 'ANGULARVELOCITYUNIT', INDETERMINATE) -areadensityunit = getattr(IfcDerivedUnitEnum, 'AREADENSITYUNIT', INDETERMINATE) -compoundplaneangleunit = getattr(IfcDerivedUnitEnum, 'COMPOUNDPLANEANGLEUNIT', INDETERMINATE) -dynamicviscosityunit = getattr(IfcDerivedUnitEnum, 'DYNAMICVISCOSITYUNIT', INDETERMINATE) -heatfluxdensityunit = getattr(IfcDerivedUnitEnum, 'HEATFLUXDENSITYUNIT', INDETERMINATE) -integercountrateunit = getattr(IfcDerivedUnitEnum, 'INTEGERCOUNTRATEUNIT', INDETERMINATE) -isothermalmoisturecapacityunit = getattr(IfcDerivedUnitEnum, 'ISOTHERMALMOISTURECAPACITYUNIT', INDETERMINATE) -kinematicviscosityunit = getattr(IfcDerivedUnitEnum, 'KINEMATICVISCOSITYUNIT', INDETERMINATE) -linearvelocityunit = getattr(IfcDerivedUnitEnum, 'LINEARVELOCITYUNIT', INDETERMINATE) -massdensityunit = getattr(IfcDerivedUnitEnum, 'MASSDENSITYUNIT', INDETERMINATE) -massflowrateunit = getattr(IfcDerivedUnitEnum, 'MASSFLOWRATEUNIT', INDETERMINATE) -moisturediffusivityunit = getattr(IfcDerivedUnitEnum, 'MOISTUREDIFFUSIVITYUNIT', INDETERMINATE) -molecularweightunit = getattr(IfcDerivedUnitEnum, 'MOLECULARWEIGHTUNIT', INDETERMINATE) -specificheatcapacityunit = getattr(IfcDerivedUnitEnum, 'SPECIFICHEATCAPACITYUNIT', INDETERMINATE) -thermaladmittanceunit = getattr(IfcDerivedUnitEnum, 'THERMALADMITTANCEUNIT', INDETERMINATE) -thermalconductanceunit = getattr(IfcDerivedUnitEnum, 'THERMALCONDUCTANCEUNIT', INDETERMINATE) -thermalresistanceunit = getattr(IfcDerivedUnitEnum, 'THERMALRESISTANCEUNIT', INDETERMINATE) -thermaltransmittanceunit = getattr(IfcDerivedUnitEnum, 'THERMALTRANSMITTANCEUNIT', INDETERMINATE) -vaporpermeabilityunit = getattr(IfcDerivedUnitEnum, 'VAPORPERMEABILITYUNIT', INDETERMINATE) -volumetricflowrateunit = getattr(IfcDerivedUnitEnum, 'VOLUMETRICFLOWRATEUNIT', INDETERMINATE) -rotationalfrequencyunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALFREQUENCYUNIT', INDETERMINATE) -torqueunit = getattr(IfcDerivedUnitEnum, 'TORQUEUNIT', INDETERMINATE) -momentofinertiaunit = getattr(IfcDerivedUnitEnum, 'MOMENTOFINERTIAUNIT', INDETERMINATE) -linearmomentunit = getattr(IfcDerivedUnitEnum, 'LINEARMOMENTUNIT', INDETERMINATE) -linearforceunit = getattr(IfcDerivedUnitEnum, 'LINEARFORCEUNIT', INDETERMINATE) -planarforceunit = getattr(IfcDerivedUnitEnum, 'PLANARFORCEUNIT', INDETERMINATE) -modulusofelasticityunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFELASTICITYUNIT', INDETERMINATE) -shearmodulusunit = getattr(IfcDerivedUnitEnum, 'SHEARMODULUSUNIT', INDETERMINATE) -linearstiffnessunit = getattr(IfcDerivedUnitEnum, 'LINEARSTIFFNESSUNIT', INDETERMINATE) -rotationalstiffnessunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALSTIFFNESSUNIT', INDETERMINATE) -modulusofsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFSUBGRADEREACTIONUNIT', INDETERMINATE) -accelerationunit = getattr(IfcDerivedUnitEnum, 'ACCELERATIONUNIT', INDETERMINATE) -curvatureunit = getattr(IfcDerivedUnitEnum, 'CURVATUREUNIT', INDETERMINATE) -heatingvalueunit = getattr(IfcDerivedUnitEnum, 'HEATINGVALUEUNIT', INDETERMINATE) -ionconcentrationunit = getattr(IfcDerivedUnitEnum, 'IONCONCENTRATIONUNIT', INDETERMINATE) -luminousintensitydistributionunit = getattr(IfcDerivedUnitEnum, 'LUMINOUSINTENSITYDISTRIBUTIONUNIT', INDETERMINATE) -massperlengthunit = getattr(IfcDerivedUnitEnum, 'MASSPERLENGTHUNIT', INDETERMINATE) -modulusoflinearsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFLINEARSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofrotationalsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFROTATIONALSUBGRADEREACTIONUNIT', INDETERMINATE) -phunit = getattr(IfcDerivedUnitEnum, 'PHUNIT', INDETERMINATE) -rotationalmassunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALMASSUNIT', INDETERMINATE) -sectionareaintegralunit = getattr(IfcDerivedUnitEnum, 'SECTIONAREAINTEGRALUNIT', INDETERMINATE) -sectionmodulusunit = getattr(IfcDerivedUnitEnum, 'SECTIONMODULUSUNIT', INDETERMINATE) -soundpowerlevelunit = getattr(IfcDerivedUnitEnum, 'SOUNDPOWERLEVELUNIT', INDETERMINATE) -soundpowerunit = getattr(IfcDerivedUnitEnum, 'SOUNDPOWERUNIT', INDETERMINATE) -soundpressurelevelunit = getattr(IfcDerivedUnitEnum, 'SOUNDPRESSURELEVELUNIT', INDETERMINATE) -soundpressureunit = getattr(IfcDerivedUnitEnum, 'SOUNDPRESSUREUNIT', INDETERMINATE) -temperaturegradientunit = getattr(IfcDerivedUnitEnum, 'TEMPERATUREGRADIENTUNIT', INDETERMINATE) -temperaturerateofchangeunit = getattr(IfcDerivedUnitEnum, 'TEMPERATURERATEOFCHANGEUNIT', INDETERMINATE) -thermalexpansioncoefficientunit = getattr(IfcDerivedUnitEnum, 'THERMALEXPANSIONCOEFFICIENTUNIT', INDETERMINATE) -warpingconstantunit = getattr(IfcDerivedUnitEnum, 'WARPINGCONSTANTUNIT', INDETERMINATE) -warpingmomentunit = getattr(IfcDerivedUnitEnum, 'WARPINGMOMENTUNIT', INDETERMINATE) -userdefined = getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) +angularvelocityunit = IfcDerivedUnitEnum.ANGULARVELOCITYUNIT +areadensityunit = IfcDerivedUnitEnum.AREADENSITYUNIT +compoundplaneangleunit = IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT +dynamicviscosityunit = IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT +heatfluxdensityunit = IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT +integercountrateunit = IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT +isothermalmoisturecapacityunit = IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT +kinematicviscosityunit = IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT +linearvelocityunit = IfcDerivedUnitEnum.LINEARVELOCITYUNIT +massdensityunit = IfcDerivedUnitEnum.MASSDENSITYUNIT +massflowrateunit = IfcDerivedUnitEnum.MASSFLOWRATEUNIT +moisturediffusivityunit = IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT +molecularweightunit = IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT +specificheatcapacityunit = IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT +thermaladmittanceunit = IfcDerivedUnitEnum.THERMALADMITTANCEUNIT +thermalconductanceunit = IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT +thermalresistanceunit = IfcDerivedUnitEnum.THERMALRESISTANCEUNIT +thermaltransmittanceunit = IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT +vaporpermeabilityunit = IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT +volumetricflowrateunit = IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT +rotationalfrequencyunit = IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT +torqueunit = IfcDerivedUnitEnum.TORQUEUNIT +momentofinertiaunit = IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT +linearmomentunit = IfcDerivedUnitEnum.LINEARMOMENTUNIT +linearforceunit = IfcDerivedUnitEnum.LINEARFORCEUNIT +planarforceunit = IfcDerivedUnitEnum.PLANARFORCEUNIT +modulusofelasticityunit = IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT +shearmodulusunit = IfcDerivedUnitEnum.SHEARMODULUSUNIT +linearstiffnessunit = IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT +rotationalstiffnessunit = IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT +modulusofsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT +accelerationunit = IfcDerivedUnitEnum.ACCELERATIONUNIT +curvatureunit = IfcDerivedUnitEnum.CURVATUREUNIT +heatingvalueunit = IfcDerivedUnitEnum.HEATINGVALUEUNIT +ionconcentrationunit = IfcDerivedUnitEnum.IONCONCENTRATIONUNIT +luminousintensitydistributionunit = IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT +massperlengthunit = IfcDerivedUnitEnum.MASSPERLENGTHUNIT +modulusoflinearsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT +modulusofrotationalsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT +phunit = IfcDerivedUnitEnum.PHUNIT +rotationalmassunit = IfcDerivedUnitEnum.ROTATIONALMASSUNIT +sectionareaintegralunit = IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT +sectionmodulusunit = IfcDerivedUnitEnum.SECTIONMODULUSUNIT +soundpowerlevelunit = IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT +soundpowerunit = IfcDerivedUnitEnum.SOUNDPOWERUNIT +soundpressurelevelunit = IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT +soundpressureunit = IfcDerivedUnitEnum.SOUNDPRESSUREUNIT +temperaturegradientunit = IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT +temperaturerateofchangeunit = IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT +thermalexpansioncoefficientunit = IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT +warpingconstantunit = IfcDerivedUnitEnum.WARPINGCONSTANTUNIT +warpingmomentunit = IfcDerivedUnitEnum.WARPINGMOMENTUNIT +userdefined = IfcDerivedUnitEnum.USERDEFINED IfcDirectionSenseEnum = enum_namespace() -positive = getattr(IfcDirectionSenseEnum, 'POSITIVE', INDETERMINATE) -negative = getattr(IfcDirectionSenseEnum, 'NEGATIVE', INDETERMINATE) +positive = IfcDirectionSenseEnum.POSITIVE +negative = IfcDirectionSenseEnum.NEGATIVE IfcDiscreteAccessoryTypeEnum = enum_namespace() -anchorplate = getattr(IfcDiscreteAccessoryTypeEnum, 'ANCHORPLATE', INDETERMINATE) -bracket = getattr(IfcDiscreteAccessoryTypeEnum, 'BRACKET', INDETERMINATE) -shoe = getattr(IfcDiscreteAccessoryTypeEnum, 'SHOE', INDETERMINATE) -userdefined = getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDiscreteAccessoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorplate = IfcDiscreteAccessoryTypeEnum.ANCHORPLATE +bracket = IfcDiscreteAccessoryTypeEnum.BRACKET +shoe = IfcDiscreteAccessoryTypeEnum.SHOE +userdefined = IfcDiscreteAccessoryTypeEnum.USERDEFINED +notdefined = IfcDiscreteAccessoryTypeEnum.NOTDEFINED IfcDistributionChamberElementTypeEnum = enum_namespace() -formedduct = getattr(IfcDistributionChamberElementTypeEnum, 'FORMEDDUCT', INDETERMINATE) -inspectionchamber = getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONCHAMBER', INDETERMINATE) -inspectionpit = getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONPIT', INDETERMINATE) -manhole = getattr(IfcDistributionChamberElementTypeEnum, 'MANHOLE', INDETERMINATE) -meterchamber = getattr(IfcDistributionChamberElementTypeEnum, 'METERCHAMBER', INDETERMINATE) -sump = getattr(IfcDistributionChamberElementTypeEnum, 'SUMP', INDETERMINATE) -trench = getattr(IfcDistributionChamberElementTypeEnum, 'TRENCH', INDETERMINATE) -valvechamber = getattr(IfcDistributionChamberElementTypeEnum, 'VALVECHAMBER', INDETERMINATE) -userdefined = getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionChamberElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +formedduct = IfcDistributionChamberElementTypeEnum.FORMEDDUCT +inspectionchamber = IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER +inspectionpit = IfcDistributionChamberElementTypeEnum.INSPECTIONPIT +manhole = IfcDistributionChamberElementTypeEnum.MANHOLE +meterchamber = IfcDistributionChamberElementTypeEnum.METERCHAMBER +sump = IfcDistributionChamberElementTypeEnum.SUMP +trench = IfcDistributionChamberElementTypeEnum.TRENCH +valvechamber = IfcDistributionChamberElementTypeEnum.VALVECHAMBER +userdefined = IfcDistributionChamberElementTypeEnum.USERDEFINED +notdefined = IfcDistributionChamberElementTypeEnum.NOTDEFINED IfcDistributionPortTypeEnum = enum_namespace() -cable = getattr(IfcDistributionPortTypeEnum, 'CABLE', INDETERMINATE) -cablecarrier = getattr(IfcDistributionPortTypeEnum, 'CABLECARRIER', INDETERMINATE) -duct = getattr(IfcDistributionPortTypeEnum, 'DUCT', INDETERMINATE) -pipe = getattr(IfcDistributionPortTypeEnum, 'PIPE', INDETERMINATE) -userdefined = getattr(IfcDistributionPortTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionPortTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcDistributionPortTypeEnum.CABLE +cablecarrier = IfcDistributionPortTypeEnum.CABLECARRIER +duct = IfcDistributionPortTypeEnum.DUCT +pipe = IfcDistributionPortTypeEnum.PIPE +userdefined = IfcDistributionPortTypeEnum.USERDEFINED +notdefined = IfcDistributionPortTypeEnum.NOTDEFINED IfcDistributionSystemEnum = enum_namespace() -airconditioning = getattr(IfcDistributionSystemEnum, 'AIRCONDITIONING', INDETERMINATE) -audiovisual = getattr(IfcDistributionSystemEnum, 'AUDIOVISUAL', INDETERMINATE) -chemical = getattr(IfcDistributionSystemEnum, 'CHEMICAL', INDETERMINATE) -chilledwater = getattr(IfcDistributionSystemEnum, 'CHILLEDWATER', INDETERMINATE) -communication = getattr(IfcDistributionSystemEnum, 'COMMUNICATION', INDETERMINATE) -compressedair = getattr(IfcDistributionSystemEnum, 'COMPRESSEDAIR', INDETERMINATE) -condenserwater = getattr(IfcDistributionSystemEnum, 'CONDENSERWATER', INDETERMINATE) -control = getattr(IfcDistributionSystemEnum, 'CONTROL', INDETERMINATE) -conveying = getattr(IfcDistributionSystemEnum, 'CONVEYING', INDETERMINATE) -data = getattr(IfcDistributionSystemEnum, 'DATA', INDETERMINATE) -disposal = getattr(IfcDistributionSystemEnum, 'DISPOSAL', INDETERMINATE) -domesticcoldwater = getattr(IfcDistributionSystemEnum, 'DOMESTICCOLDWATER', INDETERMINATE) -domestichotwater = getattr(IfcDistributionSystemEnum, 'DOMESTICHOTWATER', INDETERMINATE) -drainage = getattr(IfcDistributionSystemEnum, 'DRAINAGE', INDETERMINATE) -earthing = getattr(IfcDistributionSystemEnum, 'EARTHING', INDETERMINATE) -electrical = getattr(IfcDistributionSystemEnum, 'ELECTRICAL', INDETERMINATE) -electroacoustic = getattr(IfcDistributionSystemEnum, 'ELECTROACOUSTIC', INDETERMINATE) -exhaust = getattr(IfcDistributionSystemEnum, 'EXHAUST', INDETERMINATE) -fireprotection = getattr(IfcDistributionSystemEnum, 'FIREPROTECTION', INDETERMINATE) -fuel = getattr(IfcDistributionSystemEnum, 'FUEL', INDETERMINATE) -gas = getattr(IfcDistributionSystemEnum, 'GAS', INDETERMINATE) -hazardous = getattr(IfcDistributionSystemEnum, 'HAZARDOUS', INDETERMINATE) -heating = getattr(IfcDistributionSystemEnum, 'HEATING', INDETERMINATE) -lighting = getattr(IfcDistributionSystemEnum, 'LIGHTING', INDETERMINATE) -lightningprotection = getattr(IfcDistributionSystemEnum, 'LIGHTNINGPROTECTION', INDETERMINATE) -municipalsolidwaste = getattr(IfcDistributionSystemEnum, 'MUNICIPALSOLIDWASTE', INDETERMINATE) -oil = getattr(IfcDistributionSystemEnum, 'OIL', INDETERMINATE) -operational = getattr(IfcDistributionSystemEnum, 'OPERATIONAL', INDETERMINATE) -powergeneration = getattr(IfcDistributionSystemEnum, 'POWERGENERATION', INDETERMINATE) -rainwater = getattr(IfcDistributionSystemEnum, 'RAINWATER', INDETERMINATE) -refrigeration = getattr(IfcDistributionSystemEnum, 'REFRIGERATION', INDETERMINATE) -security = getattr(IfcDistributionSystemEnum, 'SECURITY', INDETERMINATE) -sewage = getattr(IfcDistributionSystemEnum, 'SEWAGE', INDETERMINATE) -signal = getattr(IfcDistributionSystemEnum, 'SIGNAL', INDETERMINATE) -stormwater = getattr(IfcDistributionSystemEnum, 'STORMWATER', INDETERMINATE) -telephone = getattr(IfcDistributionSystemEnum, 'TELEPHONE', INDETERMINATE) -tv = getattr(IfcDistributionSystemEnum, 'TV', INDETERMINATE) -vacuum = getattr(IfcDistributionSystemEnum, 'VACUUM', INDETERMINATE) -vent = getattr(IfcDistributionSystemEnum, 'VENT', INDETERMINATE) -ventilation = getattr(IfcDistributionSystemEnum, 'VENTILATION', INDETERMINATE) -wastewater = getattr(IfcDistributionSystemEnum, 'WASTEWATER', INDETERMINATE) -watersupply = getattr(IfcDistributionSystemEnum, 'WATERSUPPLY', INDETERMINATE) -userdefined = getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionSystemEnum, 'NOTDEFINED', INDETERMINATE) +airconditioning = IfcDistributionSystemEnum.AIRCONDITIONING +audiovisual = IfcDistributionSystemEnum.AUDIOVISUAL +chemical = IfcDistributionSystemEnum.CHEMICAL +chilledwater = IfcDistributionSystemEnum.CHILLEDWATER +communication = IfcDistributionSystemEnum.COMMUNICATION +compressedair = IfcDistributionSystemEnum.COMPRESSEDAIR +condenserwater = IfcDistributionSystemEnum.CONDENSERWATER +control = IfcDistributionSystemEnum.CONTROL +conveying = IfcDistributionSystemEnum.CONVEYING +data = IfcDistributionSystemEnum.DATA +disposal = IfcDistributionSystemEnum.DISPOSAL +domesticcoldwater = IfcDistributionSystemEnum.DOMESTICCOLDWATER +domestichotwater = IfcDistributionSystemEnum.DOMESTICHOTWATER +drainage = IfcDistributionSystemEnum.DRAINAGE +earthing = IfcDistributionSystemEnum.EARTHING +electrical = IfcDistributionSystemEnum.ELECTRICAL +electroacoustic = IfcDistributionSystemEnum.ELECTROACOUSTIC +exhaust = IfcDistributionSystemEnum.EXHAUST +fireprotection = IfcDistributionSystemEnum.FIREPROTECTION +fuel = IfcDistributionSystemEnum.FUEL +gas = IfcDistributionSystemEnum.GAS +hazardous = IfcDistributionSystemEnum.HAZARDOUS +heating = IfcDistributionSystemEnum.HEATING +lighting = IfcDistributionSystemEnum.LIGHTING +lightningprotection = IfcDistributionSystemEnum.LIGHTNINGPROTECTION +municipalsolidwaste = IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE +oil = IfcDistributionSystemEnum.OIL +operational = IfcDistributionSystemEnum.OPERATIONAL +powergeneration = IfcDistributionSystemEnum.POWERGENERATION +rainwater = IfcDistributionSystemEnum.RAINWATER +refrigeration = IfcDistributionSystemEnum.REFRIGERATION +security = IfcDistributionSystemEnum.SECURITY +sewage = IfcDistributionSystemEnum.SEWAGE +signal = IfcDistributionSystemEnum.SIGNAL +stormwater = IfcDistributionSystemEnum.STORMWATER +telephone = IfcDistributionSystemEnum.TELEPHONE +tv = IfcDistributionSystemEnum.TV +vacuum = IfcDistributionSystemEnum.VACUUM +vent = IfcDistributionSystemEnum.VENT +ventilation = IfcDistributionSystemEnum.VENTILATION +wastewater = IfcDistributionSystemEnum.WASTEWATER +watersupply = IfcDistributionSystemEnum.WATERSUPPLY +userdefined = IfcDistributionSystemEnum.USERDEFINED +notdefined = IfcDistributionSystemEnum.NOTDEFINED IfcDocumentConfidentialityEnum = enum_namespace() -public = getattr(IfcDocumentConfidentialityEnum, 'PUBLIC', INDETERMINATE) -restricted = getattr(IfcDocumentConfidentialityEnum, 'RESTRICTED', INDETERMINATE) -confidential = getattr(IfcDocumentConfidentialityEnum, 'CONFIDENTIAL', INDETERMINATE) -personal = getattr(IfcDocumentConfidentialityEnum, 'PERSONAL', INDETERMINATE) -userdefined = getattr(IfcDocumentConfidentialityEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDocumentConfidentialityEnum, 'NOTDEFINED', INDETERMINATE) +public = IfcDocumentConfidentialityEnum.PUBLIC +restricted = IfcDocumentConfidentialityEnum.RESTRICTED +confidential = IfcDocumentConfidentialityEnum.CONFIDENTIAL +personal = IfcDocumentConfidentialityEnum.PERSONAL +userdefined = IfcDocumentConfidentialityEnum.USERDEFINED +notdefined = IfcDocumentConfidentialityEnum.NOTDEFINED IfcDocumentStatusEnum = enum_namespace() -draft = getattr(IfcDocumentStatusEnum, 'DRAFT', INDETERMINATE) -finaldraft = getattr(IfcDocumentStatusEnum, 'FINALDRAFT', INDETERMINATE) -final = getattr(IfcDocumentStatusEnum, 'FINAL', INDETERMINATE) -revision = getattr(IfcDocumentStatusEnum, 'REVISION', INDETERMINATE) -notdefined = getattr(IfcDocumentStatusEnum, 'NOTDEFINED', INDETERMINATE) +draft = IfcDocumentStatusEnum.DRAFT +finaldraft = IfcDocumentStatusEnum.FINALDRAFT +final = IfcDocumentStatusEnum.FINAL +revision = IfcDocumentStatusEnum.REVISION +notdefined = IfcDocumentStatusEnum.NOTDEFINED IfcDoorPanelOperationEnum = enum_namespace() -swinging = getattr(IfcDoorPanelOperationEnum, 'SWINGING', INDETERMINATE) -double_acting = getattr(IfcDoorPanelOperationEnum, 'DOUBLE_ACTING', INDETERMINATE) -sliding = getattr(IfcDoorPanelOperationEnum, 'SLIDING', INDETERMINATE) -folding = getattr(IfcDoorPanelOperationEnum, 'FOLDING', INDETERMINATE) -revolving = getattr(IfcDoorPanelOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = getattr(IfcDoorPanelOperationEnum, 'ROLLINGUP', INDETERMINATE) -fixedpanel = getattr(IfcDoorPanelOperationEnum, 'FIXEDPANEL', INDETERMINATE) -userdefined = getattr(IfcDoorPanelOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +swinging = IfcDoorPanelOperationEnum.SWINGING +double_acting = IfcDoorPanelOperationEnum.DOUBLE_ACTING +sliding = IfcDoorPanelOperationEnum.SLIDING +folding = IfcDoorPanelOperationEnum.FOLDING +revolving = IfcDoorPanelOperationEnum.REVOLVING +rollingup = IfcDoorPanelOperationEnum.ROLLINGUP +fixedpanel = IfcDoorPanelOperationEnum.FIXEDPANEL +userdefined = IfcDoorPanelOperationEnum.USERDEFINED +notdefined = IfcDoorPanelOperationEnum.NOTDEFINED IfcDoorPanelPositionEnum = enum_namespace() -left = getattr(IfcDoorPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = getattr(IfcDoorPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = getattr(IfcDoorPanelPositionEnum, 'RIGHT', INDETERMINATE) -notdefined = getattr(IfcDoorPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcDoorPanelPositionEnum.LEFT +middle = IfcDoorPanelPositionEnum.MIDDLE +right = IfcDoorPanelPositionEnum.RIGHT +notdefined = IfcDoorPanelPositionEnum.NOTDEFINED IfcDoorStyleConstructionEnum = enum_namespace() -aluminium = getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = getattr(IfcDoorStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = getattr(IfcDoorStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = getattr(IfcDoorStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -aluminium_plastic = getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_PLASTIC', INDETERMINATE) -plastic = getattr(IfcDoorStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -userdefined = getattr(IfcDoorStyleConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcDoorStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcDoorStyleConstructionEnum.STEEL +wood = IfcDoorStyleConstructionEnum.WOOD +aluminium_wood = IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD +aluminium_plastic = IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC +plastic = IfcDoorStyleConstructionEnum.PLASTIC +userdefined = IfcDoorStyleConstructionEnum.USERDEFINED +notdefined = IfcDoorStyleConstructionEnum.NOTDEFINED IfcDoorStyleOperationEnum = enum_namespace() -single_swing_left = getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_door_single_swing = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_door_double_swing = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_door_sliding = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -folding_to_left = getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_door_folding = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -revolving = getattr(IfcDoorStyleOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = getattr(IfcDoorStyleOperationEnum, 'ROLLINGUP', INDETERMINATE) -userdefined = getattr(IfcDoorStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT +double_door_single_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT +double_door_double_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +sliding_to_left = IfcDoorStyleOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT +double_door_sliding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING +folding_to_left = IfcDoorStyleOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT +double_door_folding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING +revolving = IfcDoorStyleOperationEnum.REVOLVING +rollingup = IfcDoorStyleOperationEnum.ROLLINGUP +userdefined = IfcDoorStyleOperationEnum.USERDEFINED +notdefined = IfcDoorStyleOperationEnum.NOTDEFINED IfcDoorTypeEnum = enum_namespace() -door = getattr(IfcDoorTypeEnum, 'DOOR', INDETERMINATE) -gate = getattr(IfcDoorTypeEnum, 'GATE', INDETERMINATE) -trapdoor = getattr(IfcDoorTypeEnum, 'TRAPDOOR', INDETERMINATE) -userdefined = getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorTypeEnum, 'NOTDEFINED', INDETERMINATE) +door = IfcDoorTypeEnum.DOOR +gate = IfcDoorTypeEnum.GATE +trapdoor = IfcDoorTypeEnum.TRAPDOOR +userdefined = IfcDoorTypeEnum.USERDEFINED +notdefined = IfcDoorTypeEnum.NOTDEFINED IfcDoorTypeOperationEnum = enum_namespace() -single_swing_left = getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_door_single_swing = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_door_double_swing = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_door_sliding = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -folding_to_left = getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_door_folding = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -revolving = getattr(IfcDoorTypeOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = getattr(IfcDoorTypeOperationEnum, 'ROLLINGUP', INDETERMINATE) -swing_fixed_left = getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_LEFT', INDETERMINATE) -swing_fixed_right = getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_RIGHT', INDETERMINATE) -userdefined = getattr(IfcDoorTypeOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorTypeOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT +double_door_single_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT +double_door_double_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +sliding_to_left = IfcDoorTypeOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT +double_door_sliding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SLIDING +folding_to_left = IfcDoorTypeOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT +double_door_folding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_FOLDING +revolving = IfcDoorTypeOperationEnum.REVOLVING +rollingup = IfcDoorTypeOperationEnum.ROLLINGUP +swing_fixed_left = IfcDoorTypeOperationEnum.SWING_FIXED_LEFT +swing_fixed_right = IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT +userdefined = IfcDoorTypeOperationEnum.USERDEFINED +notdefined = IfcDoorTypeOperationEnum.NOTDEFINED IfcDuctFittingTypeEnum = enum_namespace() -bend = getattr(IfcDuctFittingTypeEnum, 'BEND', INDETERMINATE) -connector = getattr(IfcDuctFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcDuctFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcDuctFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcDuctFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = getattr(IfcDuctFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = getattr(IfcDuctFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcDuctFittingTypeEnum.BEND +connector = IfcDuctFittingTypeEnum.CONNECTOR +entry = IfcDuctFittingTypeEnum.ENTRY +exit = IfcDuctFittingTypeEnum.EXIT +junction = IfcDuctFittingTypeEnum.JUNCTION +obstruction = IfcDuctFittingTypeEnum.OBSTRUCTION +transition = IfcDuctFittingTypeEnum.TRANSITION +userdefined = IfcDuctFittingTypeEnum.USERDEFINED +notdefined = IfcDuctFittingTypeEnum.NOTDEFINED IfcDuctSegmentTypeEnum = enum_namespace() -rigidsegment = getattr(IfcDuctSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -flexiblesegment = getattr(IfcDuctSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -userdefined = getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigidsegment = IfcDuctSegmentTypeEnum.RIGIDSEGMENT +flexiblesegment = IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT +userdefined = IfcDuctSegmentTypeEnum.USERDEFINED +notdefined = IfcDuctSegmentTypeEnum.NOTDEFINED IfcDuctSilencerTypeEnum = enum_namespace() -flatoval = getattr(IfcDuctSilencerTypeEnum, 'FLATOVAL', INDETERMINATE) -rectangular = getattr(IfcDuctSilencerTypeEnum, 'RECTANGULAR', INDETERMINATE) -round = getattr(IfcDuctSilencerTypeEnum, 'ROUND', INDETERMINATE) -userdefined = getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctSilencerTypeEnum, 'NOTDEFINED', INDETERMINATE) +flatoval = IfcDuctSilencerTypeEnum.FLATOVAL +rectangular = IfcDuctSilencerTypeEnum.RECTANGULAR +round = IfcDuctSilencerTypeEnum.ROUND +userdefined = IfcDuctSilencerTypeEnum.USERDEFINED +notdefined = IfcDuctSilencerTypeEnum.NOTDEFINED IfcElectricApplianceTypeEnum = enum_namespace() -dishwasher = getattr(IfcElectricApplianceTypeEnum, 'DISHWASHER', INDETERMINATE) -electriccooker = getattr(IfcElectricApplianceTypeEnum, 'ELECTRICCOOKER', INDETERMINATE) -freestandingelectricheater = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGELECTRICHEATER', INDETERMINATE) -freestandingfan = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGFAN', INDETERMINATE) -freestandingwaterheater = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERHEATER', INDETERMINATE) -freestandingwatercooler = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERCOOLER', INDETERMINATE) -freezer = getattr(IfcElectricApplianceTypeEnum, 'FREEZER', INDETERMINATE) -fridge_freezer = getattr(IfcElectricApplianceTypeEnum, 'FRIDGE_FREEZER', INDETERMINATE) -handdryer = getattr(IfcElectricApplianceTypeEnum, 'HANDDRYER', INDETERMINATE) -kitchenmachine = getattr(IfcElectricApplianceTypeEnum, 'KITCHENMACHINE', INDETERMINATE) -microwave = getattr(IfcElectricApplianceTypeEnum, 'MICROWAVE', INDETERMINATE) -photocopier = getattr(IfcElectricApplianceTypeEnum, 'PHOTOCOPIER', INDETERMINATE) -refrigerator = getattr(IfcElectricApplianceTypeEnum, 'REFRIGERATOR', INDETERMINATE) -tumbledryer = getattr(IfcElectricApplianceTypeEnum, 'TUMBLEDRYER', INDETERMINATE) -vendingmachine = getattr(IfcElectricApplianceTypeEnum, 'VENDINGMACHINE', INDETERMINATE) -washingmachine = getattr(IfcElectricApplianceTypeEnum, 'WASHINGMACHINE', INDETERMINATE) -userdefined = getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dishwasher = IfcElectricApplianceTypeEnum.DISHWASHER +electriccooker = IfcElectricApplianceTypeEnum.ELECTRICCOOKER +freestandingelectricheater = IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER +freestandingfan = IfcElectricApplianceTypeEnum.FREESTANDINGFAN +freestandingwaterheater = IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER +freestandingwatercooler = IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER +freezer = IfcElectricApplianceTypeEnum.FREEZER +fridge_freezer = IfcElectricApplianceTypeEnum.FRIDGE_FREEZER +handdryer = IfcElectricApplianceTypeEnum.HANDDRYER +kitchenmachine = IfcElectricApplianceTypeEnum.KITCHENMACHINE +microwave = IfcElectricApplianceTypeEnum.MICROWAVE +photocopier = IfcElectricApplianceTypeEnum.PHOTOCOPIER +refrigerator = IfcElectricApplianceTypeEnum.REFRIGERATOR +tumbledryer = IfcElectricApplianceTypeEnum.TUMBLEDRYER +vendingmachine = IfcElectricApplianceTypeEnum.VENDINGMACHINE +washingmachine = IfcElectricApplianceTypeEnum.WASHINGMACHINE +userdefined = IfcElectricApplianceTypeEnum.USERDEFINED +notdefined = IfcElectricApplianceTypeEnum.NOTDEFINED IfcElectricDistributionBoardTypeEnum = enum_namespace() -consumerunit = getattr(IfcElectricDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -distributionboard = getattr(IfcElectricDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -motorcontrolcentre = getattr(IfcElectricDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = getattr(IfcElectricDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT +distributionboard = IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD +motorcontrolcentre = IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcElectricDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcElectricDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcElectricDistributionBoardTypeEnum.NOTDEFINED IfcElectricFlowStorageDeviceTypeEnum = enum_namespace() -battery = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'BATTERY', INDETERMINATE) -capacitorbank = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITORBANK', INDETERMINATE) -harmonicfilter = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'HARMONICFILTER', INDETERMINATE) -inductorbank = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTORBANK', INDETERMINATE) -ups = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'UPS', INDETERMINATE) -userdefined = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +battery = IfcElectricFlowStorageDeviceTypeEnum.BATTERY +capacitorbank = IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK +harmonicfilter = IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER +inductorbank = IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK +ups = IfcElectricFlowStorageDeviceTypeEnum.UPS +userdefined = IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED IfcElectricGeneratorTypeEnum = enum_namespace() -chp = getattr(IfcElectricGeneratorTypeEnum, 'CHP', INDETERMINATE) -enginegenerator = getattr(IfcElectricGeneratorTypeEnum, 'ENGINEGENERATOR', INDETERMINATE) -standalone = getattr(IfcElectricGeneratorTypeEnum, 'STANDALONE', INDETERMINATE) -userdefined = getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricGeneratorTypeEnum, 'NOTDEFINED', INDETERMINATE) +chp = IfcElectricGeneratorTypeEnum.CHP +enginegenerator = IfcElectricGeneratorTypeEnum.ENGINEGENERATOR +standalone = IfcElectricGeneratorTypeEnum.STANDALONE +userdefined = IfcElectricGeneratorTypeEnum.USERDEFINED +notdefined = IfcElectricGeneratorTypeEnum.NOTDEFINED IfcElectricMotorTypeEnum = enum_namespace() -dc = getattr(IfcElectricMotorTypeEnum, 'DC', INDETERMINATE) -induction = getattr(IfcElectricMotorTypeEnum, 'INDUCTION', INDETERMINATE) -polyphase = getattr(IfcElectricMotorTypeEnum, 'POLYPHASE', INDETERMINATE) -reluctancesynchronous = getattr(IfcElectricMotorTypeEnum, 'RELUCTANCESYNCHRONOUS', INDETERMINATE) -synchronous = getattr(IfcElectricMotorTypeEnum, 'SYNCHRONOUS', INDETERMINATE) -userdefined = getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricMotorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dc = IfcElectricMotorTypeEnum.DC +induction = IfcElectricMotorTypeEnum.INDUCTION +polyphase = IfcElectricMotorTypeEnum.POLYPHASE +reluctancesynchronous = IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS +synchronous = IfcElectricMotorTypeEnum.SYNCHRONOUS +userdefined = IfcElectricMotorTypeEnum.USERDEFINED +notdefined = IfcElectricMotorTypeEnum.NOTDEFINED IfcElectricTimeControlTypeEnum = enum_namespace() -timeclock = getattr(IfcElectricTimeControlTypeEnum, 'TIMECLOCK', INDETERMINATE) -timedelay = getattr(IfcElectricTimeControlTypeEnum, 'TIMEDELAY', INDETERMINATE) -relay = getattr(IfcElectricTimeControlTypeEnum, 'RELAY', INDETERMINATE) -userdefined = getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricTimeControlTypeEnum, 'NOTDEFINED', INDETERMINATE) +timeclock = IfcElectricTimeControlTypeEnum.TIMECLOCK +timedelay = IfcElectricTimeControlTypeEnum.TIMEDELAY +relay = IfcElectricTimeControlTypeEnum.RELAY +userdefined = IfcElectricTimeControlTypeEnum.USERDEFINED +notdefined = IfcElectricTimeControlTypeEnum.NOTDEFINED IfcElementAssemblyTypeEnum = enum_namespace() -accessory_assembly = getattr(IfcElementAssemblyTypeEnum, 'ACCESSORY_ASSEMBLY', INDETERMINATE) -arch = getattr(IfcElementAssemblyTypeEnum, 'ARCH', INDETERMINATE) -beam_grid = getattr(IfcElementAssemblyTypeEnum, 'BEAM_GRID', INDETERMINATE) -braced_frame = getattr(IfcElementAssemblyTypeEnum, 'BRACED_FRAME', INDETERMINATE) -girder = getattr(IfcElementAssemblyTypeEnum, 'GIRDER', INDETERMINATE) -reinforcement_unit = getattr(IfcElementAssemblyTypeEnum, 'REINFORCEMENT_UNIT', INDETERMINATE) -rigid_frame = getattr(IfcElementAssemblyTypeEnum, 'RIGID_FRAME', INDETERMINATE) -slab_field = getattr(IfcElementAssemblyTypeEnum, 'SLAB_FIELD', INDETERMINATE) -truss = getattr(IfcElementAssemblyTypeEnum, 'TRUSS', INDETERMINATE) -userdefined = getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElementAssemblyTypeEnum, 'NOTDEFINED', INDETERMINATE) +accessory_assembly = IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY +arch = IfcElementAssemblyTypeEnum.ARCH +beam_grid = IfcElementAssemblyTypeEnum.BEAM_GRID +braced_frame = IfcElementAssemblyTypeEnum.BRACED_FRAME +girder = IfcElementAssemblyTypeEnum.GIRDER +reinforcement_unit = IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT +rigid_frame = IfcElementAssemblyTypeEnum.RIGID_FRAME +slab_field = IfcElementAssemblyTypeEnum.SLAB_FIELD +truss = IfcElementAssemblyTypeEnum.TRUSS +userdefined = IfcElementAssemblyTypeEnum.USERDEFINED +notdefined = IfcElementAssemblyTypeEnum.NOTDEFINED IfcElementCompositionEnum = enum_namespace() -complex = getattr(IfcElementCompositionEnum, 'COMPLEX', INDETERMINATE) -element = getattr(IfcElementCompositionEnum, 'ELEMENT', INDETERMINATE) -partial = getattr(IfcElementCompositionEnum, 'PARTIAL', INDETERMINATE) +complex = IfcElementCompositionEnum.COMPLEX +element = IfcElementCompositionEnum.ELEMENT +partial = IfcElementCompositionEnum.PARTIAL IfcEngineTypeEnum = enum_namespace() -externalcombustion = getattr(IfcEngineTypeEnum, 'EXTERNALCOMBUSTION', INDETERMINATE) -internalcombustion = getattr(IfcEngineTypeEnum, 'INTERNALCOMBUSTION', INDETERMINATE) -userdefined = getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEngineTypeEnum, 'NOTDEFINED', INDETERMINATE) +externalcombustion = IfcEngineTypeEnum.EXTERNALCOMBUSTION +internalcombustion = IfcEngineTypeEnum.INTERNALCOMBUSTION +userdefined = IfcEngineTypeEnum.USERDEFINED +notdefined = IfcEngineTypeEnum.NOTDEFINED IfcEvaporativeCoolerTypeEnum = enum_namespace() -directevaporativerandommediaaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER', INDETERMINATE) -directevaporativerigidmediaaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER', INDETERMINATE) -directevaporativeslingerspackagedaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER', INDETERMINATE) -directevaporativepackagedrotaryaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER', INDETERMINATE) -directevaporativeairwasher = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEAIRWASHER', INDETERMINATE) -indirectevaporativepackageaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEPACKAGEAIRCOOLER', INDETERMINATE) -indirectevaporativewetcoil = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEWETCOIL', INDETERMINATE) -indirectevaporativecoolingtowerorcoilcooler = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER', INDETERMINATE) -indirectdirectcombination = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTDIRECTCOMBINATION', INDETERMINATE) -userdefined = getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEvaporativeCoolerTypeEnum, 'NOTDEFINED', INDETERMINATE) +directevaporativerandommediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER +directevaporativerigidmediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER +directevaporativeslingerspackagedaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER +directevaporativepackagedrotaryaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER +directevaporativeairwasher = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER +indirectevaporativepackageaircooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER +indirectevaporativewetcoil = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL +indirectevaporativecoolingtowerorcoilcooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER +indirectdirectcombination = IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION +userdefined = IfcEvaporativeCoolerTypeEnum.USERDEFINED +notdefined = IfcEvaporativeCoolerTypeEnum.NOTDEFINED IfcEvaporatorTypeEnum = enum_namespace() -directexpansion = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSION', INDETERMINATE) -directexpansionshellandtube = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONSHELLANDTUBE', INDETERMINATE) -directexpansiontubeintube = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONTUBEINTUBE', INDETERMINATE) -directexpansionbrazedplate = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONBRAZEDPLATE', INDETERMINATE) -floodedshellandtube = getattr(IfcEvaporatorTypeEnum, 'FLOODEDSHELLANDTUBE', INDETERMINATE) -shellandcoil = getattr(IfcEvaporatorTypeEnum, 'SHELLANDCOIL', INDETERMINATE) -userdefined = getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEvaporatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +directexpansion = IfcEvaporatorTypeEnum.DIRECTEXPANSION +directexpansionshellandtube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE +directexpansiontubeintube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE +directexpansionbrazedplate = IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE +floodedshellandtube = IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE +shellandcoil = IfcEvaporatorTypeEnum.SHELLANDCOIL +userdefined = IfcEvaporatorTypeEnum.USERDEFINED +notdefined = IfcEvaporatorTypeEnum.NOTDEFINED IfcEventTriggerTypeEnum = enum_namespace() -eventrule = getattr(IfcEventTriggerTypeEnum, 'EVENTRULE', INDETERMINATE) -eventmessage = getattr(IfcEventTriggerTypeEnum, 'EVENTMESSAGE', INDETERMINATE) -eventtime = getattr(IfcEventTriggerTypeEnum, 'EVENTTIME', INDETERMINATE) -eventcomplex = getattr(IfcEventTriggerTypeEnum, 'EVENTCOMPLEX', INDETERMINATE) -userdefined = getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEventTriggerTypeEnum, 'NOTDEFINED', INDETERMINATE) +eventrule = IfcEventTriggerTypeEnum.EVENTRULE +eventmessage = IfcEventTriggerTypeEnum.EVENTMESSAGE +eventtime = IfcEventTriggerTypeEnum.EVENTTIME +eventcomplex = IfcEventTriggerTypeEnum.EVENTCOMPLEX +userdefined = IfcEventTriggerTypeEnum.USERDEFINED +notdefined = IfcEventTriggerTypeEnum.NOTDEFINED IfcEventTypeEnum = enum_namespace() -startevent = getattr(IfcEventTypeEnum, 'STARTEVENT', INDETERMINATE) -endevent = getattr(IfcEventTypeEnum, 'ENDEVENT', INDETERMINATE) -intermediateevent = getattr(IfcEventTypeEnum, 'INTERMEDIATEEVENT', INDETERMINATE) -userdefined = getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEventTypeEnum, 'NOTDEFINED', INDETERMINATE) +startevent = IfcEventTypeEnum.STARTEVENT +endevent = IfcEventTypeEnum.ENDEVENT +intermediateevent = IfcEventTypeEnum.INTERMEDIATEEVENT +userdefined = IfcEventTypeEnum.USERDEFINED +notdefined = IfcEventTypeEnum.NOTDEFINED IfcExternalSpatialElementTypeEnum = enum_namespace() -external = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL', INDETERMINATE) -external_earth = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_water = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_WATER', INDETERMINATE) -external_fire = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_FIRE', INDETERMINATE) -userdefined = getattr(IfcExternalSpatialElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcExternalSpatialElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcExternalSpatialElementTypeEnum.EXTERNAL +external_earth = IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH +external_water = IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER +external_fire = IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE +userdefined = IfcExternalSpatialElementTypeEnum.USERDEFINED +notdefined = IfcExternalSpatialElementTypeEnum.NOTDEFINED IfcFanTypeEnum = enum_namespace() -centrifugalforwardcurved = getattr(IfcFanTypeEnum, 'CENTRIFUGALFORWARDCURVED', INDETERMINATE) -centrifugalradial = getattr(IfcFanTypeEnum, 'CENTRIFUGALRADIAL', INDETERMINATE) -centrifugalbackwardinclinedcurved = getattr(IfcFanTypeEnum, 'CENTRIFUGALBACKWARDINCLINEDCURVED', INDETERMINATE) -centrifugalairfoil = getattr(IfcFanTypeEnum, 'CENTRIFUGALAIRFOIL', INDETERMINATE) -tubeaxial = getattr(IfcFanTypeEnum, 'TUBEAXIAL', INDETERMINATE) -vaneaxial = getattr(IfcFanTypeEnum, 'VANEAXIAL', INDETERMINATE) -propelloraxial = getattr(IfcFanTypeEnum, 'PROPELLORAXIAL', INDETERMINATE) -userdefined = getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFanTypeEnum, 'NOTDEFINED', INDETERMINATE) +centrifugalforwardcurved = IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED +centrifugalradial = IfcFanTypeEnum.CENTRIFUGALRADIAL +centrifugalbackwardinclinedcurved = IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED +centrifugalairfoil = IfcFanTypeEnum.CENTRIFUGALAIRFOIL +tubeaxial = IfcFanTypeEnum.TUBEAXIAL +vaneaxial = IfcFanTypeEnum.VANEAXIAL +propelloraxial = IfcFanTypeEnum.PROPELLORAXIAL +userdefined = IfcFanTypeEnum.USERDEFINED +notdefined = IfcFanTypeEnum.NOTDEFINED IfcFastenerTypeEnum = enum_namespace() -glue = getattr(IfcFastenerTypeEnum, 'GLUE', INDETERMINATE) -mortar = getattr(IfcFastenerTypeEnum, 'MORTAR', INDETERMINATE) -weld = getattr(IfcFastenerTypeEnum, 'WELD', INDETERMINATE) -userdefined = getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +glue = IfcFastenerTypeEnum.GLUE +mortar = IfcFastenerTypeEnum.MORTAR +weld = IfcFastenerTypeEnum.WELD +userdefined = IfcFastenerTypeEnum.USERDEFINED +notdefined = IfcFastenerTypeEnum.NOTDEFINED IfcFilterTypeEnum = enum_namespace() -airparticlefilter = getattr(IfcFilterTypeEnum, 'AIRPARTICLEFILTER', INDETERMINATE) -compressedairfilter = getattr(IfcFilterTypeEnum, 'COMPRESSEDAIRFILTER', INDETERMINATE) -odorfilter = getattr(IfcFilterTypeEnum, 'ODORFILTER', INDETERMINATE) -oilfilter = getattr(IfcFilterTypeEnum, 'OILFILTER', INDETERMINATE) -strainer = getattr(IfcFilterTypeEnum, 'STRAINER', INDETERMINATE) -waterfilter = getattr(IfcFilterTypeEnum, 'WATERFILTER', INDETERMINATE) -userdefined = getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFilterTypeEnum, 'NOTDEFINED', INDETERMINATE) +airparticlefilter = IfcFilterTypeEnum.AIRPARTICLEFILTER +compressedairfilter = IfcFilterTypeEnum.COMPRESSEDAIRFILTER +odorfilter = IfcFilterTypeEnum.ODORFILTER +oilfilter = IfcFilterTypeEnum.OILFILTER +strainer = IfcFilterTypeEnum.STRAINER +waterfilter = IfcFilterTypeEnum.WATERFILTER +userdefined = IfcFilterTypeEnum.USERDEFINED +notdefined = IfcFilterTypeEnum.NOTDEFINED IfcFireSuppressionTerminalTypeEnum = enum_namespace() -breechinginlet = getattr(IfcFireSuppressionTerminalTypeEnum, 'BREECHINGINLET', INDETERMINATE) -firehydrant = getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREHYDRANT', INDETERMINATE) -hosereel = getattr(IfcFireSuppressionTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -sprinkler = getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLER', INDETERMINATE) -sprinklerdeflector = getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLERDEFLECTOR', INDETERMINATE) -userdefined = getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFireSuppressionTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +breechinginlet = IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET +firehydrant = IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT +hosereel = IfcFireSuppressionTerminalTypeEnum.HOSEREEL +sprinkler = IfcFireSuppressionTerminalTypeEnum.SPRINKLER +sprinklerdeflector = IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR +userdefined = IfcFireSuppressionTerminalTypeEnum.USERDEFINED +notdefined = IfcFireSuppressionTerminalTypeEnum.NOTDEFINED IfcFlowDirectionEnum = enum_namespace() -source = getattr(IfcFlowDirectionEnum, 'SOURCE', INDETERMINATE) -sink = getattr(IfcFlowDirectionEnum, 'SINK', INDETERMINATE) -sourceandsink = getattr(IfcFlowDirectionEnum, 'SOURCEANDSINK', INDETERMINATE) -notdefined = getattr(IfcFlowDirectionEnum, 'NOTDEFINED', INDETERMINATE) +source = IfcFlowDirectionEnum.SOURCE +sink = IfcFlowDirectionEnum.SINK +sourceandsink = IfcFlowDirectionEnum.SOURCEANDSINK +notdefined = IfcFlowDirectionEnum.NOTDEFINED IfcFlowInstrumentTypeEnum = enum_namespace() -pressuregauge = getattr(IfcFlowInstrumentTypeEnum, 'PRESSUREGAUGE', INDETERMINATE) -thermometer = getattr(IfcFlowInstrumentTypeEnum, 'THERMOMETER', INDETERMINATE) -ammeter = getattr(IfcFlowInstrumentTypeEnum, 'AMMETER', INDETERMINATE) -frequencymeter = getattr(IfcFlowInstrumentTypeEnum, 'FREQUENCYMETER', INDETERMINATE) -powerfactormeter = getattr(IfcFlowInstrumentTypeEnum, 'POWERFACTORMETER', INDETERMINATE) -phaseanglemeter = getattr(IfcFlowInstrumentTypeEnum, 'PHASEANGLEMETER', INDETERMINATE) -voltmeter_peak = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_PEAK', INDETERMINATE) -voltmeter_rms = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_RMS', INDETERMINATE) -userdefined = getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFlowInstrumentTypeEnum, 'NOTDEFINED', INDETERMINATE) +pressuregauge = IfcFlowInstrumentTypeEnum.PRESSUREGAUGE +thermometer = IfcFlowInstrumentTypeEnum.THERMOMETER +ammeter = IfcFlowInstrumentTypeEnum.AMMETER +frequencymeter = IfcFlowInstrumentTypeEnum.FREQUENCYMETER +powerfactormeter = IfcFlowInstrumentTypeEnum.POWERFACTORMETER +phaseanglemeter = IfcFlowInstrumentTypeEnum.PHASEANGLEMETER +voltmeter_peak = IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK +voltmeter_rms = IfcFlowInstrumentTypeEnum.VOLTMETER_RMS +userdefined = IfcFlowInstrumentTypeEnum.USERDEFINED +notdefined = IfcFlowInstrumentTypeEnum.NOTDEFINED IfcFlowMeterTypeEnum = enum_namespace() -energymeter = getattr(IfcFlowMeterTypeEnum, 'ENERGYMETER', INDETERMINATE) -gasmeter = getattr(IfcFlowMeterTypeEnum, 'GASMETER', INDETERMINATE) -oilmeter = getattr(IfcFlowMeterTypeEnum, 'OILMETER', INDETERMINATE) -watermeter = getattr(IfcFlowMeterTypeEnum, 'WATERMETER', INDETERMINATE) -userdefined = getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFlowMeterTypeEnum, 'NOTDEFINED', INDETERMINATE) +energymeter = IfcFlowMeterTypeEnum.ENERGYMETER +gasmeter = IfcFlowMeterTypeEnum.GASMETER +oilmeter = IfcFlowMeterTypeEnum.OILMETER +watermeter = IfcFlowMeterTypeEnum.WATERMETER +userdefined = IfcFlowMeterTypeEnum.USERDEFINED +notdefined = IfcFlowMeterTypeEnum.NOTDEFINED IfcFootingTypeEnum = enum_namespace() -caisson_foundation = getattr(IfcFootingTypeEnum, 'CAISSON_FOUNDATION', INDETERMINATE) -footing_beam = getattr(IfcFootingTypeEnum, 'FOOTING_BEAM', INDETERMINATE) -pad_footing = getattr(IfcFootingTypeEnum, 'PAD_FOOTING', INDETERMINATE) -pile_cap = getattr(IfcFootingTypeEnum, 'PILE_CAP', INDETERMINATE) -strip_footing = getattr(IfcFootingTypeEnum, 'STRIP_FOOTING', INDETERMINATE) -userdefined = getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFootingTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson_foundation = IfcFootingTypeEnum.CAISSON_FOUNDATION +footing_beam = IfcFootingTypeEnum.FOOTING_BEAM +pad_footing = IfcFootingTypeEnum.PAD_FOOTING +pile_cap = IfcFootingTypeEnum.PILE_CAP +strip_footing = IfcFootingTypeEnum.STRIP_FOOTING +userdefined = IfcFootingTypeEnum.USERDEFINED +notdefined = IfcFootingTypeEnum.NOTDEFINED IfcFurnitureTypeEnum = enum_namespace() -chair = getattr(IfcFurnitureTypeEnum, 'CHAIR', INDETERMINATE) -table = getattr(IfcFurnitureTypeEnum, 'TABLE', INDETERMINATE) -desk = getattr(IfcFurnitureTypeEnum, 'DESK', INDETERMINATE) -bed = getattr(IfcFurnitureTypeEnum, 'BED', INDETERMINATE) -filecabinet = getattr(IfcFurnitureTypeEnum, 'FILECABINET', INDETERMINATE) -shelf = getattr(IfcFurnitureTypeEnum, 'SHELF', INDETERMINATE) -sofa = getattr(IfcFurnitureTypeEnum, 'SOFA', INDETERMINATE) -userdefined = getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFurnitureTypeEnum, 'NOTDEFINED', INDETERMINATE) +chair = IfcFurnitureTypeEnum.CHAIR +table = IfcFurnitureTypeEnum.TABLE +desk = IfcFurnitureTypeEnum.DESK +bed = IfcFurnitureTypeEnum.BED +filecabinet = IfcFurnitureTypeEnum.FILECABINET +shelf = IfcFurnitureTypeEnum.SHELF +sofa = IfcFurnitureTypeEnum.SOFA +userdefined = IfcFurnitureTypeEnum.USERDEFINED +notdefined = IfcFurnitureTypeEnum.NOTDEFINED IfcGeographicElementTypeEnum = enum_namespace() -terrain = getattr(IfcGeographicElementTypeEnum, 'TERRAIN', INDETERMINATE) -userdefined = getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGeographicElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +terrain = IfcGeographicElementTypeEnum.TERRAIN +userdefined = IfcGeographicElementTypeEnum.USERDEFINED +notdefined = IfcGeographicElementTypeEnum.NOTDEFINED IfcGeometricProjectionEnum = enum_namespace() -graph_view = getattr(IfcGeometricProjectionEnum, 'GRAPH_VIEW', INDETERMINATE) -sketch_view = getattr(IfcGeometricProjectionEnum, 'SKETCH_VIEW', INDETERMINATE) -model_view = getattr(IfcGeometricProjectionEnum, 'MODEL_VIEW', INDETERMINATE) -plan_view = getattr(IfcGeometricProjectionEnum, 'PLAN_VIEW', INDETERMINATE) -reflected_plan_view = getattr(IfcGeometricProjectionEnum, 'REFLECTED_PLAN_VIEW', INDETERMINATE) -section_view = getattr(IfcGeometricProjectionEnum, 'SECTION_VIEW', INDETERMINATE) -elevation_view = getattr(IfcGeometricProjectionEnum, 'ELEVATION_VIEW', INDETERMINATE) -userdefined = getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGeometricProjectionEnum, 'NOTDEFINED', INDETERMINATE) +graph_view = IfcGeometricProjectionEnum.GRAPH_VIEW +sketch_view = IfcGeometricProjectionEnum.SKETCH_VIEW +model_view = IfcGeometricProjectionEnum.MODEL_VIEW +plan_view = IfcGeometricProjectionEnum.PLAN_VIEW +reflected_plan_view = IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW +section_view = IfcGeometricProjectionEnum.SECTION_VIEW +elevation_view = IfcGeometricProjectionEnum.ELEVATION_VIEW +userdefined = IfcGeometricProjectionEnum.USERDEFINED +notdefined = IfcGeometricProjectionEnum.NOTDEFINED IfcGlobalOrLocalEnum = enum_namespace() -global_coords = getattr(IfcGlobalOrLocalEnum, 'GLOBAL_COORDS', INDETERMINATE) -local_coords = getattr(IfcGlobalOrLocalEnum, 'LOCAL_COORDS', INDETERMINATE) +global_coords = IfcGlobalOrLocalEnum.GLOBAL_COORDS +local_coords = IfcGlobalOrLocalEnum.LOCAL_COORDS IfcGridTypeEnum = enum_namespace() -rectangular = getattr(IfcGridTypeEnum, 'RECTANGULAR', INDETERMINATE) -radial = getattr(IfcGridTypeEnum, 'RADIAL', INDETERMINATE) -triangular = getattr(IfcGridTypeEnum, 'TRIANGULAR', INDETERMINATE) -irregular = getattr(IfcGridTypeEnum, 'IRREGULAR', INDETERMINATE) -userdefined = getattr(IfcGridTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGridTypeEnum, 'NOTDEFINED', INDETERMINATE) +rectangular = IfcGridTypeEnum.RECTANGULAR +radial = IfcGridTypeEnum.RADIAL +triangular = IfcGridTypeEnum.TRIANGULAR +irregular = IfcGridTypeEnum.IRREGULAR +userdefined = IfcGridTypeEnum.USERDEFINED +notdefined = IfcGridTypeEnum.NOTDEFINED IfcHeatExchangerTypeEnum = enum_namespace() -plate = getattr(IfcHeatExchangerTypeEnum, 'PLATE', INDETERMINATE) -shellandtube = getattr(IfcHeatExchangerTypeEnum, 'SHELLANDTUBE', INDETERMINATE) -userdefined = getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcHeatExchangerTypeEnum, 'NOTDEFINED', INDETERMINATE) +plate = IfcHeatExchangerTypeEnum.PLATE +shellandtube = IfcHeatExchangerTypeEnum.SHELLANDTUBE +userdefined = IfcHeatExchangerTypeEnum.USERDEFINED +notdefined = IfcHeatExchangerTypeEnum.NOTDEFINED IfcHumidifierTypeEnum = enum_namespace() -steaminjection = getattr(IfcHumidifierTypeEnum, 'STEAMINJECTION', INDETERMINATE) -adiabaticairwasher = getattr(IfcHumidifierTypeEnum, 'ADIABATICAIRWASHER', INDETERMINATE) -adiabaticpan = getattr(IfcHumidifierTypeEnum, 'ADIABATICPAN', INDETERMINATE) -adiabaticwettedelement = getattr(IfcHumidifierTypeEnum, 'ADIABATICWETTEDELEMENT', INDETERMINATE) -adiabaticatomizing = getattr(IfcHumidifierTypeEnum, 'ADIABATICATOMIZING', INDETERMINATE) -adiabaticultrasonic = getattr(IfcHumidifierTypeEnum, 'ADIABATICULTRASONIC', INDETERMINATE) -adiabaticrigidmedia = getattr(IfcHumidifierTypeEnum, 'ADIABATICRIGIDMEDIA', INDETERMINATE) -adiabaticcompressedairnozzle = getattr(IfcHumidifierTypeEnum, 'ADIABATICCOMPRESSEDAIRNOZZLE', INDETERMINATE) -assistedelectric = getattr(IfcHumidifierTypeEnum, 'ASSISTEDELECTRIC', INDETERMINATE) -assistednaturalgas = getattr(IfcHumidifierTypeEnum, 'ASSISTEDNATURALGAS', INDETERMINATE) -assistedpropane = getattr(IfcHumidifierTypeEnum, 'ASSISTEDPROPANE', INDETERMINATE) -assistedbutane = getattr(IfcHumidifierTypeEnum, 'ASSISTEDBUTANE', INDETERMINATE) -assistedsteam = getattr(IfcHumidifierTypeEnum, 'ASSISTEDSTEAM', INDETERMINATE) -userdefined = getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcHumidifierTypeEnum, 'NOTDEFINED', INDETERMINATE) +steaminjection = IfcHumidifierTypeEnum.STEAMINJECTION +adiabaticairwasher = IfcHumidifierTypeEnum.ADIABATICAIRWASHER +adiabaticpan = IfcHumidifierTypeEnum.ADIABATICPAN +adiabaticwettedelement = IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT +adiabaticatomizing = IfcHumidifierTypeEnum.ADIABATICATOMIZING +adiabaticultrasonic = IfcHumidifierTypeEnum.ADIABATICULTRASONIC +adiabaticrigidmedia = IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA +adiabaticcompressedairnozzle = IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE +assistedelectric = IfcHumidifierTypeEnum.ASSISTEDELECTRIC +assistednaturalgas = IfcHumidifierTypeEnum.ASSISTEDNATURALGAS +assistedpropane = IfcHumidifierTypeEnum.ASSISTEDPROPANE +assistedbutane = IfcHumidifierTypeEnum.ASSISTEDBUTANE +assistedsteam = IfcHumidifierTypeEnum.ASSISTEDSTEAM +userdefined = IfcHumidifierTypeEnum.USERDEFINED +notdefined = IfcHumidifierTypeEnum.NOTDEFINED IfcInterceptorTypeEnum = enum_namespace() -cyclonic = getattr(IfcInterceptorTypeEnum, 'CYCLONIC', INDETERMINATE) -grease = getattr(IfcInterceptorTypeEnum, 'GREASE', INDETERMINATE) -oil = getattr(IfcInterceptorTypeEnum, 'OIL', INDETERMINATE) -petrol = getattr(IfcInterceptorTypeEnum, 'PETROL', INDETERMINATE) -userdefined = getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcInterceptorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cyclonic = IfcInterceptorTypeEnum.CYCLONIC +grease = IfcInterceptorTypeEnum.GREASE +oil = IfcInterceptorTypeEnum.OIL +petrol = IfcInterceptorTypeEnum.PETROL +userdefined = IfcInterceptorTypeEnum.USERDEFINED +notdefined = IfcInterceptorTypeEnum.NOTDEFINED IfcInternalOrExternalEnum = enum_namespace() -internal = getattr(IfcInternalOrExternalEnum, 'INTERNAL', INDETERMINATE) -external = getattr(IfcInternalOrExternalEnum, 'EXTERNAL', INDETERMINATE) -external_earth = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_water = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_WATER', INDETERMINATE) -external_fire = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_FIRE', INDETERMINATE) -notdefined = getattr(IfcInternalOrExternalEnum, 'NOTDEFINED', INDETERMINATE) +internal = IfcInternalOrExternalEnum.INTERNAL +external = IfcInternalOrExternalEnum.EXTERNAL +external_earth = IfcInternalOrExternalEnum.EXTERNAL_EARTH +external_water = IfcInternalOrExternalEnum.EXTERNAL_WATER +external_fire = IfcInternalOrExternalEnum.EXTERNAL_FIRE +notdefined = IfcInternalOrExternalEnum.NOTDEFINED IfcInventoryTypeEnum = enum_namespace() -assetinventory = getattr(IfcInventoryTypeEnum, 'ASSETINVENTORY', INDETERMINATE) -spaceinventory = getattr(IfcInventoryTypeEnum, 'SPACEINVENTORY', INDETERMINATE) -furnitureinventory = getattr(IfcInventoryTypeEnum, 'FURNITUREINVENTORY', INDETERMINATE) -userdefined = getattr(IfcInventoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcInventoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +assetinventory = IfcInventoryTypeEnum.ASSETINVENTORY +spaceinventory = IfcInventoryTypeEnum.SPACEINVENTORY +furnitureinventory = IfcInventoryTypeEnum.FURNITUREINVENTORY +userdefined = IfcInventoryTypeEnum.USERDEFINED +notdefined = IfcInventoryTypeEnum.NOTDEFINED IfcJunctionBoxTypeEnum = enum_namespace() -data = getattr(IfcJunctionBoxTypeEnum, 'DATA', INDETERMINATE) -power = getattr(IfcJunctionBoxTypeEnum, 'POWER', INDETERMINATE) -userdefined = getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcJunctionBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +data = IfcJunctionBoxTypeEnum.DATA +power = IfcJunctionBoxTypeEnum.POWER +userdefined = IfcJunctionBoxTypeEnum.USERDEFINED +notdefined = IfcJunctionBoxTypeEnum.NOTDEFINED IfcKnotType = enum_namespace() -uniform_knots = getattr(IfcKnotType, 'UNIFORM_KNOTS', INDETERMINATE) -quasi_uniform_knots = getattr(IfcKnotType, 'QUASI_UNIFORM_KNOTS', INDETERMINATE) -piecewise_bezier_knots = getattr(IfcKnotType, 'PIECEWISE_BEZIER_KNOTS', INDETERMINATE) -unspecified = getattr(IfcKnotType, 'UNSPECIFIED', INDETERMINATE) +uniform_knots = IfcKnotType.UNIFORM_KNOTS +quasi_uniform_knots = IfcKnotType.QUASI_UNIFORM_KNOTS +piecewise_bezier_knots = IfcKnotType.PIECEWISE_BEZIER_KNOTS +unspecified = IfcKnotType.UNSPECIFIED IfcLaborResourceTypeEnum = enum_namespace() -administration = getattr(IfcLaborResourceTypeEnum, 'ADMINISTRATION', INDETERMINATE) -carpentry = getattr(IfcLaborResourceTypeEnum, 'CARPENTRY', INDETERMINATE) -cleaning = getattr(IfcLaborResourceTypeEnum, 'CLEANING', INDETERMINATE) -concrete = getattr(IfcLaborResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = getattr(IfcLaborResourceTypeEnum, 'DRYWALL', INDETERMINATE) -electric = getattr(IfcLaborResourceTypeEnum, 'ELECTRIC', INDETERMINATE) -finishing = getattr(IfcLaborResourceTypeEnum, 'FINISHING', INDETERMINATE) -flooring = getattr(IfcLaborResourceTypeEnum, 'FLOORING', INDETERMINATE) -general = getattr(IfcLaborResourceTypeEnum, 'GENERAL', INDETERMINATE) -hvac = getattr(IfcLaborResourceTypeEnum, 'HVAC', INDETERMINATE) -landscaping = getattr(IfcLaborResourceTypeEnum, 'LANDSCAPING', INDETERMINATE) -masonry = getattr(IfcLaborResourceTypeEnum, 'MASONRY', INDETERMINATE) -painting = getattr(IfcLaborResourceTypeEnum, 'PAINTING', INDETERMINATE) -paving = getattr(IfcLaborResourceTypeEnum, 'PAVING', INDETERMINATE) -plumbing = getattr(IfcLaborResourceTypeEnum, 'PLUMBING', INDETERMINATE) -roofing = getattr(IfcLaborResourceTypeEnum, 'ROOFING', INDETERMINATE) -sitegrading = getattr(IfcLaborResourceTypeEnum, 'SITEGRADING', INDETERMINATE) -steelwork = getattr(IfcLaborResourceTypeEnum, 'STEELWORK', INDETERMINATE) -surveying = getattr(IfcLaborResourceTypeEnum, 'SURVEYING', INDETERMINATE) -userdefined = getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLaborResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +administration = IfcLaborResourceTypeEnum.ADMINISTRATION +carpentry = IfcLaborResourceTypeEnum.CARPENTRY +cleaning = IfcLaborResourceTypeEnum.CLEANING +concrete = IfcLaborResourceTypeEnum.CONCRETE +drywall = IfcLaborResourceTypeEnum.DRYWALL +electric = IfcLaborResourceTypeEnum.ELECTRIC +finishing = IfcLaborResourceTypeEnum.FINISHING +flooring = IfcLaborResourceTypeEnum.FLOORING +general = IfcLaborResourceTypeEnum.GENERAL +hvac = IfcLaborResourceTypeEnum.HVAC +landscaping = IfcLaborResourceTypeEnum.LANDSCAPING +masonry = IfcLaborResourceTypeEnum.MASONRY +painting = IfcLaborResourceTypeEnum.PAINTING +paving = IfcLaborResourceTypeEnum.PAVING +plumbing = IfcLaborResourceTypeEnum.PLUMBING +roofing = IfcLaborResourceTypeEnum.ROOFING +sitegrading = IfcLaborResourceTypeEnum.SITEGRADING +steelwork = IfcLaborResourceTypeEnum.STEELWORK +surveying = IfcLaborResourceTypeEnum.SURVEYING +userdefined = IfcLaborResourceTypeEnum.USERDEFINED +notdefined = IfcLaborResourceTypeEnum.NOTDEFINED IfcLampTypeEnum = enum_namespace() -compactfluorescent = getattr(IfcLampTypeEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = getattr(IfcLampTypeEnum, 'FLUORESCENT', INDETERMINATE) -halogen = getattr(IfcLampTypeEnum, 'HALOGEN', INDETERMINATE) -highpressuremercury = getattr(IfcLampTypeEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = getattr(IfcLampTypeEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -led = getattr(IfcLampTypeEnum, 'LED', INDETERMINATE) -metalhalide = getattr(IfcLampTypeEnum, 'METALHALIDE', INDETERMINATE) -oled = getattr(IfcLampTypeEnum, 'OLED', INDETERMINATE) -tungstenfilament = getattr(IfcLampTypeEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -userdefined = getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLampTypeEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLampTypeEnum.COMPACTFLUORESCENT +fluorescent = IfcLampTypeEnum.FLUORESCENT +halogen = IfcLampTypeEnum.HALOGEN +highpressuremercury = IfcLampTypeEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLampTypeEnum.HIGHPRESSURESODIUM +led = IfcLampTypeEnum.LED +metalhalide = IfcLampTypeEnum.METALHALIDE +oled = IfcLampTypeEnum.OLED +tungstenfilament = IfcLampTypeEnum.TUNGSTENFILAMENT +userdefined = IfcLampTypeEnum.USERDEFINED +notdefined = IfcLampTypeEnum.NOTDEFINED IfcLayerSetDirectionEnum = enum_namespace() -axis1 = getattr(IfcLayerSetDirectionEnum, 'AXIS1', INDETERMINATE) -axis2 = getattr(IfcLayerSetDirectionEnum, 'AXIS2', INDETERMINATE) -axis3 = getattr(IfcLayerSetDirectionEnum, 'AXIS3', INDETERMINATE) +axis1 = IfcLayerSetDirectionEnum.AXIS1 +axis2 = IfcLayerSetDirectionEnum.AXIS2 +axis3 = IfcLayerSetDirectionEnum.AXIS3 IfcLightDistributionCurveEnum = enum_namespace() -type_a = getattr(IfcLightDistributionCurveEnum, 'TYPE_A', INDETERMINATE) -type_b = getattr(IfcLightDistributionCurveEnum, 'TYPE_B', INDETERMINATE) -type_c = getattr(IfcLightDistributionCurveEnum, 'TYPE_C', INDETERMINATE) -notdefined = getattr(IfcLightDistributionCurveEnum, 'NOTDEFINED', INDETERMINATE) +type_a = IfcLightDistributionCurveEnum.TYPE_A +type_b = IfcLightDistributionCurveEnum.TYPE_B +type_c = IfcLightDistributionCurveEnum.TYPE_C +notdefined = IfcLightDistributionCurveEnum.NOTDEFINED IfcLightEmissionSourceEnum = enum_namespace() -compactfluorescent = getattr(IfcLightEmissionSourceEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = getattr(IfcLightEmissionSourceEnum, 'FLUORESCENT', INDETERMINATE) -highpressuremercury = getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -lightemittingdiode = getattr(IfcLightEmissionSourceEnum, 'LIGHTEMITTINGDIODE', INDETERMINATE) -lowpressuresodium = getattr(IfcLightEmissionSourceEnum, 'LOWPRESSURESODIUM', INDETERMINATE) -lowvoltagehalogen = getattr(IfcLightEmissionSourceEnum, 'LOWVOLTAGEHALOGEN', INDETERMINATE) -mainvoltagehalogen = getattr(IfcLightEmissionSourceEnum, 'MAINVOLTAGEHALOGEN', INDETERMINATE) -metalhalide = getattr(IfcLightEmissionSourceEnum, 'METALHALIDE', INDETERMINATE) -tungstenfilament = getattr(IfcLightEmissionSourceEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -notdefined = getattr(IfcLightEmissionSourceEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLightEmissionSourceEnum.COMPACTFLUORESCENT +fluorescent = IfcLightEmissionSourceEnum.FLUORESCENT +highpressuremercury = IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM +lightemittingdiode = IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE +lowpressuresodium = IfcLightEmissionSourceEnum.LOWPRESSURESODIUM +lowvoltagehalogen = IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN +mainvoltagehalogen = IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN +metalhalide = IfcLightEmissionSourceEnum.METALHALIDE +tungstenfilament = IfcLightEmissionSourceEnum.TUNGSTENFILAMENT +notdefined = IfcLightEmissionSourceEnum.NOTDEFINED IfcLightFixtureTypeEnum = enum_namespace() -pointsource = getattr(IfcLightFixtureTypeEnum, 'POINTSOURCE', INDETERMINATE) -directionsource = getattr(IfcLightFixtureTypeEnum, 'DIRECTIONSOURCE', INDETERMINATE) -securitylighting = getattr(IfcLightFixtureTypeEnum, 'SECURITYLIGHTING', INDETERMINATE) -userdefined = getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLightFixtureTypeEnum, 'NOTDEFINED', INDETERMINATE) +pointsource = IfcLightFixtureTypeEnum.POINTSOURCE +directionsource = IfcLightFixtureTypeEnum.DIRECTIONSOURCE +securitylighting = IfcLightFixtureTypeEnum.SECURITYLIGHTING +userdefined = IfcLightFixtureTypeEnum.USERDEFINED +notdefined = IfcLightFixtureTypeEnum.NOTDEFINED IfcLoadGroupTypeEnum = enum_namespace() -load_group = getattr(IfcLoadGroupTypeEnum, 'LOAD_GROUP', INDETERMINATE) -load_case = getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE) -load_combination = getattr(IfcLoadGroupTypeEnum, 'LOAD_COMBINATION', INDETERMINATE) -userdefined = getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLoadGroupTypeEnum, 'NOTDEFINED', INDETERMINATE) +load_group = IfcLoadGroupTypeEnum.LOAD_GROUP +load_case = IfcLoadGroupTypeEnum.LOAD_CASE +load_combination = IfcLoadGroupTypeEnum.LOAD_COMBINATION +userdefined = IfcLoadGroupTypeEnum.USERDEFINED +notdefined = IfcLoadGroupTypeEnum.NOTDEFINED IfcLogicalOperatorEnum = enum_namespace() -logicaland = getattr(IfcLogicalOperatorEnum, 'LOGICALAND', INDETERMINATE) -logicalor = getattr(IfcLogicalOperatorEnum, 'LOGICALOR', INDETERMINATE) -logicalxor = getattr(IfcLogicalOperatorEnum, 'LOGICALXOR', INDETERMINATE) -logicalnotand = getattr(IfcLogicalOperatorEnum, 'LOGICALNOTAND', INDETERMINATE) -logicalnotor = getattr(IfcLogicalOperatorEnum, 'LOGICALNOTOR', INDETERMINATE) +logicaland = IfcLogicalOperatorEnum.LOGICALAND +logicalor = IfcLogicalOperatorEnum.LOGICALOR +logicalxor = IfcLogicalOperatorEnum.LOGICALXOR +logicalnotand = IfcLogicalOperatorEnum.LOGICALNOTAND +logicalnotor = IfcLogicalOperatorEnum.LOGICALNOTOR IfcMechanicalFastenerTypeEnum = enum_namespace() -anchorbolt = getattr(IfcMechanicalFastenerTypeEnum, 'ANCHORBOLT', INDETERMINATE) -bolt = getattr(IfcMechanicalFastenerTypeEnum, 'BOLT', INDETERMINATE) -dowel = getattr(IfcMechanicalFastenerTypeEnum, 'DOWEL', INDETERMINATE) -nail = getattr(IfcMechanicalFastenerTypeEnum, 'NAIL', INDETERMINATE) -nailplate = getattr(IfcMechanicalFastenerTypeEnum, 'NAILPLATE', INDETERMINATE) -rivet = getattr(IfcMechanicalFastenerTypeEnum, 'RIVET', INDETERMINATE) -screw = getattr(IfcMechanicalFastenerTypeEnum, 'SCREW', INDETERMINATE) -shearconnector = getattr(IfcMechanicalFastenerTypeEnum, 'SHEARCONNECTOR', INDETERMINATE) -staple = getattr(IfcMechanicalFastenerTypeEnum, 'STAPLE', INDETERMINATE) -studshearconnector = getattr(IfcMechanicalFastenerTypeEnum, 'STUDSHEARCONNECTOR', INDETERMINATE) -userdefined = getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMechanicalFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorbolt = IfcMechanicalFastenerTypeEnum.ANCHORBOLT +bolt = IfcMechanicalFastenerTypeEnum.BOLT +dowel = IfcMechanicalFastenerTypeEnum.DOWEL +nail = IfcMechanicalFastenerTypeEnum.NAIL +nailplate = IfcMechanicalFastenerTypeEnum.NAILPLATE +rivet = IfcMechanicalFastenerTypeEnum.RIVET +screw = IfcMechanicalFastenerTypeEnum.SCREW +shearconnector = IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR +staple = IfcMechanicalFastenerTypeEnum.STAPLE +studshearconnector = IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR +userdefined = IfcMechanicalFastenerTypeEnum.USERDEFINED +notdefined = IfcMechanicalFastenerTypeEnum.NOTDEFINED IfcMedicalDeviceTypeEnum = enum_namespace() -airstation = getattr(IfcMedicalDeviceTypeEnum, 'AIRSTATION', INDETERMINATE) -feedairunit = getattr(IfcMedicalDeviceTypeEnum, 'FEEDAIRUNIT', INDETERMINATE) -oxygengenerator = getattr(IfcMedicalDeviceTypeEnum, 'OXYGENGENERATOR', INDETERMINATE) -oxygenplant = getattr(IfcMedicalDeviceTypeEnum, 'OXYGENPLANT', INDETERMINATE) -vacuumstation = getattr(IfcMedicalDeviceTypeEnum, 'VACUUMSTATION', INDETERMINATE) -userdefined = getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMedicalDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +airstation = IfcMedicalDeviceTypeEnum.AIRSTATION +feedairunit = IfcMedicalDeviceTypeEnum.FEEDAIRUNIT +oxygengenerator = IfcMedicalDeviceTypeEnum.OXYGENGENERATOR +oxygenplant = IfcMedicalDeviceTypeEnum.OXYGENPLANT +vacuumstation = IfcMedicalDeviceTypeEnum.VACUUMSTATION +userdefined = IfcMedicalDeviceTypeEnum.USERDEFINED +notdefined = IfcMedicalDeviceTypeEnum.NOTDEFINED IfcMemberTypeEnum = enum_namespace() -brace = getattr(IfcMemberTypeEnum, 'BRACE', INDETERMINATE) -chord = getattr(IfcMemberTypeEnum, 'CHORD', INDETERMINATE) -collar = getattr(IfcMemberTypeEnum, 'COLLAR', INDETERMINATE) -member = getattr(IfcMemberTypeEnum, 'MEMBER', INDETERMINATE) -mullion = getattr(IfcMemberTypeEnum, 'MULLION', INDETERMINATE) -plate = getattr(IfcMemberTypeEnum, 'PLATE', INDETERMINATE) -post = getattr(IfcMemberTypeEnum, 'POST', INDETERMINATE) -purlin = getattr(IfcMemberTypeEnum, 'PURLIN', INDETERMINATE) -rafter = getattr(IfcMemberTypeEnum, 'RAFTER', INDETERMINATE) -stringer = getattr(IfcMemberTypeEnum, 'STRINGER', INDETERMINATE) -strut = getattr(IfcMemberTypeEnum, 'STRUT', INDETERMINATE) -stud = getattr(IfcMemberTypeEnum, 'STUD', INDETERMINATE) -userdefined = getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +brace = IfcMemberTypeEnum.BRACE +chord = IfcMemberTypeEnum.CHORD +collar = IfcMemberTypeEnum.COLLAR +member = IfcMemberTypeEnum.MEMBER +mullion = IfcMemberTypeEnum.MULLION +plate = IfcMemberTypeEnum.PLATE +post = IfcMemberTypeEnum.POST +purlin = IfcMemberTypeEnum.PURLIN +rafter = IfcMemberTypeEnum.RAFTER +stringer = IfcMemberTypeEnum.STRINGER +strut = IfcMemberTypeEnum.STRUT +stud = IfcMemberTypeEnum.STUD +userdefined = IfcMemberTypeEnum.USERDEFINED +notdefined = IfcMemberTypeEnum.NOTDEFINED IfcMotorConnectionTypeEnum = enum_namespace() -beltdrive = getattr(IfcMotorConnectionTypeEnum, 'BELTDRIVE', INDETERMINATE) -coupling = getattr(IfcMotorConnectionTypeEnum, 'COUPLING', INDETERMINATE) -directdrive = getattr(IfcMotorConnectionTypeEnum, 'DIRECTDRIVE', INDETERMINATE) -userdefined = getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMotorConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltdrive = IfcMotorConnectionTypeEnum.BELTDRIVE +coupling = IfcMotorConnectionTypeEnum.COUPLING +directdrive = IfcMotorConnectionTypeEnum.DIRECTDRIVE +userdefined = IfcMotorConnectionTypeEnum.USERDEFINED +notdefined = IfcMotorConnectionTypeEnum.NOTDEFINED IfcNullStyle = enum_namespace() -null = getattr(IfcNullStyle, 'NULL', INDETERMINATE) +null = IfcNullStyle.NULL IfcObjectTypeEnum = enum_namespace() -product = getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE) -process = getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE) -control = getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE) -resource = getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE) -actor = getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE) -group = getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE) -project = getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE) -notdefined = getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE) +product = IfcObjectTypeEnum.PRODUCT +process = IfcObjectTypeEnum.PROCESS +control = IfcObjectTypeEnum.CONTROL +resource = IfcObjectTypeEnum.RESOURCE +actor = IfcObjectTypeEnum.ACTOR +group = IfcObjectTypeEnum.GROUP +project = IfcObjectTypeEnum.PROJECT +notdefined = IfcObjectTypeEnum.NOTDEFINED IfcObjectiveEnum = enum_namespace() -codecompliance = getattr(IfcObjectiveEnum, 'CODECOMPLIANCE', INDETERMINATE) -codewaiver = getattr(IfcObjectiveEnum, 'CODEWAIVER', INDETERMINATE) -designintent = getattr(IfcObjectiveEnum, 'DESIGNINTENT', INDETERMINATE) -external = getattr(IfcObjectiveEnum, 'EXTERNAL', INDETERMINATE) -healthandsafety = getattr(IfcObjectiveEnum, 'HEALTHANDSAFETY', INDETERMINATE) -mergeconflict = getattr(IfcObjectiveEnum, 'MERGECONFLICT', INDETERMINATE) -modelview = getattr(IfcObjectiveEnum, 'MODELVIEW', INDETERMINATE) -parameter = getattr(IfcObjectiveEnum, 'PARAMETER', INDETERMINATE) -requirement = getattr(IfcObjectiveEnum, 'REQUIREMENT', INDETERMINATE) -specification = getattr(IfcObjectiveEnum, 'SPECIFICATION', INDETERMINATE) -triggercondition = getattr(IfcObjectiveEnum, 'TRIGGERCONDITION', INDETERMINATE) -userdefined = getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcObjectiveEnum, 'NOTDEFINED', INDETERMINATE) +codecompliance = IfcObjectiveEnum.CODECOMPLIANCE +codewaiver = IfcObjectiveEnum.CODEWAIVER +designintent = IfcObjectiveEnum.DESIGNINTENT +external = IfcObjectiveEnum.EXTERNAL +healthandsafety = IfcObjectiveEnum.HEALTHANDSAFETY +mergeconflict = IfcObjectiveEnum.MERGECONFLICT +modelview = IfcObjectiveEnum.MODELVIEW +parameter = IfcObjectiveEnum.PARAMETER +requirement = IfcObjectiveEnum.REQUIREMENT +specification = IfcObjectiveEnum.SPECIFICATION +triggercondition = IfcObjectiveEnum.TRIGGERCONDITION +userdefined = IfcObjectiveEnum.USERDEFINED +notdefined = IfcObjectiveEnum.NOTDEFINED IfcOccupantTypeEnum = enum_namespace() -assignee = getattr(IfcOccupantTypeEnum, 'ASSIGNEE', INDETERMINATE) -assignor = getattr(IfcOccupantTypeEnum, 'ASSIGNOR', INDETERMINATE) -lessee = getattr(IfcOccupantTypeEnum, 'LESSEE', INDETERMINATE) -lessor = getattr(IfcOccupantTypeEnum, 'LESSOR', INDETERMINATE) -lettingagent = getattr(IfcOccupantTypeEnum, 'LETTINGAGENT', INDETERMINATE) -owner = getattr(IfcOccupantTypeEnum, 'OWNER', INDETERMINATE) -tenant = getattr(IfcOccupantTypeEnum, 'TENANT', INDETERMINATE) -userdefined = getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOccupantTypeEnum, 'NOTDEFINED', INDETERMINATE) +assignee = IfcOccupantTypeEnum.ASSIGNEE +assignor = IfcOccupantTypeEnum.ASSIGNOR +lessee = IfcOccupantTypeEnum.LESSEE +lessor = IfcOccupantTypeEnum.LESSOR +lettingagent = IfcOccupantTypeEnum.LETTINGAGENT +owner = IfcOccupantTypeEnum.OWNER +tenant = IfcOccupantTypeEnum.TENANT +userdefined = IfcOccupantTypeEnum.USERDEFINED +notdefined = IfcOccupantTypeEnum.NOTDEFINED IfcOpeningElementTypeEnum = enum_namespace() -opening = getattr(IfcOpeningElementTypeEnum, 'OPENING', INDETERMINATE) -recess = getattr(IfcOpeningElementTypeEnum, 'RECESS', INDETERMINATE) -userdefined = getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOpeningElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +opening = IfcOpeningElementTypeEnum.OPENING +recess = IfcOpeningElementTypeEnum.RECESS +userdefined = IfcOpeningElementTypeEnum.USERDEFINED +notdefined = IfcOpeningElementTypeEnum.NOTDEFINED IfcOutletTypeEnum = enum_namespace() -audiovisualoutlet = getattr(IfcOutletTypeEnum, 'AUDIOVISUALOUTLET', INDETERMINATE) -communicationsoutlet = getattr(IfcOutletTypeEnum, 'COMMUNICATIONSOUTLET', INDETERMINATE) -poweroutlet = getattr(IfcOutletTypeEnum, 'POWEROUTLET', INDETERMINATE) -dataoutlet = getattr(IfcOutletTypeEnum, 'DATAOUTLET', INDETERMINATE) -telephoneoutlet = getattr(IfcOutletTypeEnum, 'TELEPHONEOUTLET', INDETERMINATE) -userdefined = getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOutletTypeEnum, 'NOTDEFINED', INDETERMINATE) +audiovisualoutlet = IfcOutletTypeEnum.AUDIOVISUALOUTLET +communicationsoutlet = IfcOutletTypeEnum.COMMUNICATIONSOUTLET +poweroutlet = IfcOutletTypeEnum.POWEROUTLET +dataoutlet = IfcOutletTypeEnum.DATAOUTLET +telephoneoutlet = IfcOutletTypeEnum.TELEPHONEOUTLET +userdefined = IfcOutletTypeEnum.USERDEFINED +notdefined = IfcOutletTypeEnum.NOTDEFINED IfcPerformanceHistoryTypeEnum = enum_namespace() -userdefined = getattr(IfcPerformanceHistoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPerformanceHistoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcPerformanceHistoryTypeEnum.USERDEFINED +notdefined = IfcPerformanceHistoryTypeEnum.NOTDEFINED IfcPermeableCoveringOperationEnum = enum_namespace() -grill = getattr(IfcPermeableCoveringOperationEnum, 'GRILL', INDETERMINATE) -louver = getattr(IfcPermeableCoveringOperationEnum, 'LOUVER', INDETERMINATE) -screen = getattr(IfcPermeableCoveringOperationEnum, 'SCREEN', INDETERMINATE) -userdefined = getattr(IfcPermeableCoveringOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPermeableCoveringOperationEnum, 'NOTDEFINED', INDETERMINATE) +grill = IfcPermeableCoveringOperationEnum.GRILL +louver = IfcPermeableCoveringOperationEnum.LOUVER +screen = IfcPermeableCoveringOperationEnum.SCREEN +userdefined = IfcPermeableCoveringOperationEnum.USERDEFINED +notdefined = IfcPermeableCoveringOperationEnum.NOTDEFINED IfcPermitTypeEnum = enum_namespace() -access = getattr(IfcPermitTypeEnum, 'ACCESS', INDETERMINATE) -building = getattr(IfcPermitTypeEnum, 'BUILDING', INDETERMINATE) -work = getattr(IfcPermitTypeEnum, 'WORK', INDETERMINATE) -userdefined = getattr(IfcPermitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPermitTypeEnum, 'NOTDEFINED', INDETERMINATE) +access = IfcPermitTypeEnum.ACCESS +building = IfcPermitTypeEnum.BUILDING +work = IfcPermitTypeEnum.WORK +userdefined = IfcPermitTypeEnum.USERDEFINED +notdefined = IfcPermitTypeEnum.NOTDEFINED IfcPhysicalOrVirtualEnum = enum_namespace() -physical = getattr(IfcPhysicalOrVirtualEnum, 'PHYSICAL', INDETERMINATE) -virtual = getattr(IfcPhysicalOrVirtualEnum, 'VIRTUAL', INDETERMINATE) -notdefined = getattr(IfcPhysicalOrVirtualEnum, 'NOTDEFINED', INDETERMINATE) +physical = IfcPhysicalOrVirtualEnum.PHYSICAL +virtual = IfcPhysicalOrVirtualEnum.VIRTUAL +notdefined = IfcPhysicalOrVirtualEnum.NOTDEFINED IfcPileConstructionEnum = enum_namespace() -cast_in_place = getattr(IfcPileConstructionEnum, 'CAST_IN_PLACE', INDETERMINATE) -composite = getattr(IfcPileConstructionEnum, 'COMPOSITE', INDETERMINATE) -precast_concrete = getattr(IfcPileConstructionEnum, 'PRECAST_CONCRETE', INDETERMINATE) -prefab_steel = getattr(IfcPileConstructionEnum, 'PREFAB_STEEL', INDETERMINATE) -userdefined = getattr(IfcPileConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPileConstructionEnum, 'NOTDEFINED', INDETERMINATE) +cast_in_place = IfcPileConstructionEnum.CAST_IN_PLACE +composite = IfcPileConstructionEnum.COMPOSITE +precast_concrete = IfcPileConstructionEnum.PRECAST_CONCRETE +prefab_steel = IfcPileConstructionEnum.PREFAB_STEEL +userdefined = IfcPileConstructionEnum.USERDEFINED +notdefined = IfcPileConstructionEnum.NOTDEFINED IfcPileTypeEnum = enum_namespace() -bored = getattr(IfcPileTypeEnum, 'BORED', INDETERMINATE) -driven = getattr(IfcPileTypeEnum, 'DRIVEN', INDETERMINATE) -jetgrouting = getattr(IfcPileTypeEnum, 'JETGROUTING', INDETERMINATE) -cohesion = getattr(IfcPileTypeEnum, 'COHESION', INDETERMINATE) -friction = getattr(IfcPileTypeEnum, 'FRICTION', INDETERMINATE) -support = getattr(IfcPileTypeEnum, 'SUPPORT', INDETERMINATE) -userdefined = getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPileTypeEnum, 'NOTDEFINED', INDETERMINATE) +bored = IfcPileTypeEnum.BORED +driven = IfcPileTypeEnum.DRIVEN +jetgrouting = IfcPileTypeEnum.JETGROUTING +cohesion = IfcPileTypeEnum.COHESION +friction = IfcPileTypeEnum.FRICTION +support = IfcPileTypeEnum.SUPPORT +userdefined = IfcPileTypeEnum.USERDEFINED +notdefined = IfcPileTypeEnum.NOTDEFINED IfcPipeFittingTypeEnum = enum_namespace() -bend = getattr(IfcPipeFittingTypeEnum, 'BEND', INDETERMINATE) -connector = getattr(IfcPipeFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcPipeFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcPipeFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcPipeFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = getattr(IfcPipeFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = getattr(IfcPipeFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPipeFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcPipeFittingTypeEnum.BEND +connector = IfcPipeFittingTypeEnum.CONNECTOR +entry = IfcPipeFittingTypeEnum.ENTRY +exit = IfcPipeFittingTypeEnum.EXIT +junction = IfcPipeFittingTypeEnum.JUNCTION +obstruction = IfcPipeFittingTypeEnum.OBSTRUCTION +transition = IfcPipeFittingTypeEnum.TRANSITION +userdefined = IfcPipeFittingTypeEnum.USERDEFINED +notdefined = IfcPipeFittingTypeEnum.NOTDEFINED IfcPipeSegmentTypeEnum = enum_namespace() -culvert = getattr(IfcPipeSegmentTypeEnum, 'CULVERT', INDETERMINATE) -flexiblesegment = getattr(IfcPipeSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -rigidsegment = getattr(IfcPipeSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -gutter = getattr(IfcPipeSegmentTypeEnum, 'GUTTER', INDETERMINATE) -spool = getattr(IfcPipeSegmentTypeEnum, 'SPOOL', INDETERMINATE) -userdefined = getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPipeSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +culvert = IfcPipeSegmentTypeEnum.CULVERT +flexiblesegment = IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT +rigidsegment = IfcPipeSegmentTypeEnum.RIGIDSEGMENT +gutter = IfcPipeSegmentTypeEnum.GUTTER +spool = IfcPipeSegmentTypeEnum.SPOOL +userdefined = IfcPipeSegmentTypeEnum.USERDEFINED +notdefined = IfcPipeSegmentTypeEnum.NOTDEFINED IfcPlateTypeEnum = enum_namespace() -curtain_panel = getattr(IfcPlateTypeEnum, 'CURTAIN_PANEL', INDETERMINATE) -sheet = getattr(IfcPlateTypeEnum, 'SHEET', INDETERMINATE) -userdefined = getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPlateTypeEnum, 'NOTDEFINED', INDETERMINATE) +curtain_panel = IfcPlateTypeEnum.CURTAIN_PANEL +sheet = IfcPlateTypeEnum.SHEET +userdefined = IfcPlateTypeEnum.USERDEFINED +notdefined = IfcPlateTypeEnum.NOTDEFINED IfcPreferredSurfaceCurveRepresentation = enum_namespace() -curve3d = getattr(IfcPreferredSurfaceCurveRepresentation, 'CURVE3D', INDETERMINATE) -pcurve_s1 = getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S1', INDETERMINATE) -pcurve_s2 = getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S2', INDETERMINATE) +curve3d = IfcPreferredSurfaceCurveRepresentation.CURVE3D +pcurve_s1 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 +pcurve_s2 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 IfcProcedureTypeEnum = enum_namespace() -advice_caution = getattr(IfcProcedureTypeEnum, 'ADVICE_CAUTION', INDETERMINATE) -advice_note = getattr(IfcProcedureTypeEnum, 'ADVICE_NOTE', INDETERMINATE) -advice_warning = getattr(IfcProcedureTypeEnum, 'ADVICE_WARNING', INDETERMINATE) -calibration = getattr(IfcProcedureTypeEnum, 'CALIBRATION', INDETERMINATE) -diagnostic = getattr(IfcProcedureTypeEnum, 'DIAGNOSTIC', INDETERMINATE) -shutdown = getattr(IfcProcedureTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = getattr(IfcProcedureTypeEnum, 'STARTUP', INDETERMINATE) -userdefined = getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProcedureTypeEnum, 'NOTDEFINED', INDETERMINATE) +advice_caution = IfcProcedureTypeEnum.ADVICE_CAUTION +advice_note = IfcProcedureTypeEnum.ADVICE_NOTE +advice_warning = IfcProcedureTypeEnum.ADVICE_WARNING +calibration = IfcProcedureTypeEnum.CALIBRATION +diagnostic = IfcProcedureTypeEnum.DIAGNOSTIC +shutdown = IfcProcedureTypeEnum.SHUTDOWN +startup = IfcProcedureTypeEnum.STARTUP +userdefined = IfcProcedureTypeEnum.USERDEFINED +notdefined = IfcProcedureTypeEnum.NOTDEFINED IfcProfileTypeEnum = enum_namespace() -curve = getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE) -area = getattr(IfcProfileTypeEnum, 'AREA', INDETERMINATE) +curve = IfcProfileTypeEnum.CURVE +area = IfcProfileTypeEnum.AREA IfcProjectOrderTypeEnum = enum_namespace() -changeorder = getattr(IfcProjectOrderTypeEnum, 'CHANGEORDER', INDETERMINATE) -maintenanceworkorder = getattr(IfcProjectOrderTypeEnum, 'MAINTENANCEWORKORDER', INDETERMINATE) -moveorder = getattr(IfcProjectOrderTypeEnum, 'MOVEORDER', INDETERMINATE) -purchaseorder = getattr(IfcProjectOrderTypeEnum, 'PURCHASEORDER', INDETERMINATE) -workorder = getattr(IfcProjectOrderTypeEnum, 'WORKORDER', INDETERMINATE) -userdefined = getattr(IfcProjectOrderTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProjectOrderTypeEnum, 'NOTDEFINED', INDETERMINATE) +changeorder = IfcProjectOrderTypeEnum.CHANGEORDER +maintenanceworkorder = IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER +moveorder = IfcProjectOrderTypeEnum.MOVEORDER +purchaseorder = IfcProjectOrderTypeEnum.PURCHASEORDER +workorder = IfcProjectOrderTypeEnum.WORKORDER +userdefined = IfcProjectOrderTypeEnum.USERDEFINED +notdefined = IfcProjectOrderTypeEnum.NOTDEFINED IfcProjectedOrTrueLengthEnum = enum_namespace() -projected_length = getattr(IfcProjectedOrTrueLengthEnum, 'PROJECTED_LENGTH', INDETERMINATE) -true_length = getattr(IfcProjectedOrTrueLengthEnum, 'TRUE_LENGTH', INDETERMINATE) +projected_length = IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH +true_length = IfcProjectedOrTrueLengthEnum.TRUE_LENGTH IfcProjectionElementTypeEnum = enum_namespace() -userdefined = getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProjectionElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcProjectionElementTypeEnum.USERDEFINED +notdefined = IfcProjectionElementTypeEnum.NOTDEFINED IfcPropertySetTemplateTypeEnum = enum_namespace() -pset_typedrivenonly = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENONLY', INDETERMINATE) -pset_typedrivenoverride = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENOVERRIDE', INDETERMINATE) -pset_occurrencedriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_OCCURRENCEDRIVEN', INDETERMINATE) -pset_performancedriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PERFORMANCEDRIVEN', INDETERMINATE) -qto_typedrivenonly = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENONLY', INDETERMINATE) -qto_typedrivenoverride = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENOVERRIDE', INDETERMINATE) -qto_occurrencedriven = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_OCCURRENCEDRIVEN', INDETERMINATE) -notdefined = getattr(IfcPropertySetTemplateTypeEnum, 'NOTDEFINED', INDETERMINATE) +pset_typedrivenonly = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY +pset_typedrivenoverride = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE +pset_occurrencedriven = IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN +pset_performancedriven = IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN +qto_typedrivenonly = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY +qto_typedrivenoverride = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE +qto_occurrencedriven = IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN +notdefined = IfcPropertySetTemplateTypeEnum.NOTDEFINED IfcProtectiveDeviceTrippingUnitTypeEnum = enum_namespace() -electronic = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTRONIC', INDETERMINATE) -electromagnetic = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTROMAGNETIC', INDETERMINATE) -residualcurrent = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'RESIDUALCURRENT', INDETERMINATE) -thermal = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'THERMAL', INDETERMINATE) -userdefined = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC +electromagnetic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC +residualcurrent = IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT +thermal = IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL +userdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED IfcProtectiveDeviceTypeEnum = enum_namespace() -circuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'CIRCUITBREAKER', INDETERMINATE) -earthleakagecircuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'EARTHLEAKAGECIRCUITBREAKER', INDETERMINATE) -earthingswitch = getattr(IfcProtectiveDeviceTypeEnum, 'EARTHINGSWITCH', INDETERMINATE) -fusedisconnector = getattr(IfcProtectiveDeviceTypeEnum, 'FUSEDISCONNECTOR', INDETERMINATE) -residualcurrentcircuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTCIRCUITBREAKER', INDETERMINATE) -residualcurrentswitch = getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTSWITCH', INDETERMINATE) -varistor = getattr(IfcProtectiveDeviceTypeEnum, 'VARISTOR', INDETERMINATE) -userdefined = getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProtectiveDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +circuitbreaker = IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER +earthleakagecircuitbreaker = IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER +earthingswitch = IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH +fusedisconnector = IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR +residualcurrentcircuitbreaker = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER +residualcurrentswitch = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH +varistor = IfcProtectiveDeviceTypeEnum.VARISTOR +userdefined = IfcProtectiveDeviceTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTypeEnum.NOTDEFINED IfcPumpTypeEnum = enum_namespace() -circulator = getattr(IfcPumpTypeEnum, 'CIRCULATOR', INDETERMINATE) -endsuction = getattr(IfcPumpTypeEnum, 'ENDSUCTION', INDETERMINATE) -splitcase = getattr(IfcPumpTypeEnum, 'SPLITCASE', INDETERMINATE) -submersiblepump = getattr(IfcPumpTypeEnum, 'SUBMERSIBLEPUMP', INDETERMINATE) -sumppump = getattr(IfcPumpTypeEnum, 'SUMPPUMP', INDETERMINATE) -verticalinline = getattr(IfcPumpTypeEnum, 'VERTICALINLINE', INDETERMINATE) -verticalturbine = getattr(IfcPumpTypeEnum, 'VERTICALTURBINE', INDETERMINATE) -userdefined = getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPumpTypeEnum, 'NOTDEFINED', INDETERMINATE) +circulator = IfcPumpTypeEnum.CIRCULATOR +endsuction = IfcPumpTypeEnum.ENDSUCTION +splitcase = IfcPumpTypeEnum.SPLITCASE +submersiblepump = IfcPumpTypeEnum.SUBMERSIBLEPUMP +sumppump = IfcPumpTypeEnum.SUMPPUMP +verticalinline = IfcPumpTypeEnum.VERTICALINLINE +verticalturbine = IfcPumpTypeEnum.VERTICALTURBINE +userdefined = IfcPumpTypeEnum.USERDEFINED +notdefined = IfcPumpTypeEnum.NOTDEFINED IfcRailingTypeEnum = enum_namespace() -handrail = getattr(IfcRailingTypeEnum, 'HANDRAIL', INDETERMINATE) -guardrail = getattr(IfcRailingTypeEnum, 'GUARDRAIL', INDETERMINATE) -balustrade = getattr(IfcRailingTypeEnum, 'BALUSTRADE', INDETERMINATE) -userdefined = getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailingTypeEnum, 'NOTDEFINED', INDETERMINATE) +handrail = IfcRailingTypeEnum.HANDRAIL +guardrail = IfcRailingTypeEnum.GUARDRAIL +balustrade = IfcRailingTypeEnum.BALUSTRADE +userdefined = IfcRailingTypeEnum.USERDEFINED +notdefined = IfcRailingTypeEnum.NOTDEFINED IfcRampFlightTypeEnum = enum_namespace() -straight = getattr(IfcRampFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -spiral = getattr(IfcRampFlightTypeEnum, 'SPIRAL', INDETERMINATE) -userdefined = getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRampFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcRampFlightTypeEnum.STRAIGHT +spiral = IfcRampFlightTypeEnum.SPIRAL +userdefined = IfcRampFlightTypeEnum.USERDEFINED +notdefined = IfcRampFlightTypeEnum.NOTDEFINED IfcRampTypeEnum = enum_namespace() -straight_run_ramp = getattr(IfcRampTypeEnum, 'STRAIGHT_RUN_RAMP', INDETERMINATE) -two_straight_run_ramp = getattr(IfcRampTypeEnum, 'TWO_STRAIGHT_RUN_RAMP', INDETERMINATE) -quarter_turn_ramp = getattr(IfcRampTypeEnum, 'QUARTER_TURN_RAMP', INDETERMINATE) -two_quarter_turn_ramp = getattr(IfcRampTypeEnum, 'TWO_QUARTER_TURN_RAMP', INDETERMINATE) -half_turn_ramp = getattr(IfcRampTypeEnum, 'HALF_TURN_RAMP', INDETERMINATE) -spiral_ramp = getattr(IfcRampTypeEnum, 'SPIRAL_RAMP', INDETERMINATE) -userdefined = getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRampTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_ramp = IfcRampTypeEnum.STRAIGHT_RUN_RAMP +two_straight_run_ramp = IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP +quarter_turn_ramp = IfcRampTypeEnum.QUARTER_TURN_RAMP +two_quarter_turn_ramp = IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP +half_turn_ramp = IfcRampTypeEnum.HALF_TURN_RAMP +spiral_ramp = IfcRampTypeEnum.SPIRAL_RAMP +userdefined = IfcRampTypeEnum.USERDEFINED +notdefined = IfcRampTypeEnum.NOTDEFINED IfcRecurrenceTypeEnum = enum_namespace() -daily = getattr(IfcRecurrenceTypeEnum, 'DAILY', INDETERMINATE) -weekly = getattr(IfcRecurrenceTypeEnum, 'WEEKLY', INDETERMINATE) -monthly_by_day_of_month = getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_DAY_OF_MONTH', INDETERMINATE) -monthly_by_position = getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_POSITION', INDETERMINATE) -by_day_count = getattr(IfcRecurrenceTypeEnum, 'BY_DAY_COUNT', INDETERMINATE) -by_weekday_count = getattr(IfcRecurrenceTypeEnum, 'BY_WEEKDAY_COUNT', INDETERMINATE) -yearly_by_day_of_month = getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_DAY_OF_MONTH', INDETERMINATE) -yearly_by_position = getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_POSITION', INDETERMINATE) +daily = IfcRecurrenceTypeEnum.DAILY +weekly = IfcRecurrenceTypeEnum.WEEKLY +monthly_by_day_of_month = IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH +monthly_by_position = IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION +by_day_count = IfcRecurrenceTypeEnum.BY_DAY_COUNT +by_weekday_count = IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT +yearly_by_day_of_month = IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH +yearly_by_position = IfcRecurrenceTypeEnum.YEARLY_BY_POSITION IfcReflectanceMethodEnum = enum_namespace() -blinn = getattr(IfcReflectanceMethodEnum, 'BLINN', INDETERMINATE) -flat = getattr(IfcReflectanceMethodEnum, 'FLAT', INDETERMINATE) -glass = getattr(IfcReflectanceMethodEnum, 'GLASS', INDETERMINATE) -matt = getattr(IfcReflectanceMethodEnum, 'MATT', INDETERMINATE) -metal = getattr(IfcReflectanceMethodEnum, 'METAL', INDETERMINATE) -mirror = getattr(IfcReflectanceMethodEnum, 'MIRROR', INDETERMINATE) -phong = getattr(IfcReflectanceMethodEnum, 'PHONG', INDETERMINATE) -plastic = getattr(IfcReflectanceMethodEnum, 'PLASTIC', INDETERMINATE) -strauss = getattr(IfcReflectanceMethodEnum, 'STRAUSS', INDETERMINATE) -notdefined = getattr(IfcReflectanceMethodEnum, 'NOTDEFINED', INDETERMINATE) +blinn = IfcReflectanceMethodEnum.BLINN +flat = IfcReflectanceMethodEnum.FLAT +glass = IfcReflectanceMethodEnum.GLASS +matt = IfcReflectanceMethodEnum.MATT +metal = IfcReflectanceMethodEnum.METAL +mirror = IfcReflectanceMethodEnum.MIRROR +phong = IfcReflectanceMethodEnum.PHONG +plastic = IfcReflectanceMethodEnum.PLASTIC +strauss = IfcReflectanceMethodEnum.STRAUSS +notdefined = IfcReflectanceMethodEnum.NOTDEFINED IfcReinforcingBarRoleEnum = enum_namespace() -main = getattr(IfcReinforcingBarRoleEnum, 'MAIN', INDETERMINATE) -shear = getattr(IfcReinforcingBarRoleEnum, 'SHEAR', INDETERMINATE) -ligature = getattr(IfcReinforcingBarRoleEnum, 'LIGATURE', INDETERMINATE) -stud = getattr(IfcReinforcingBarRoleEnum, 'STUD', INDETERMINATE) -punching = getattr(IfcReinforcingBarRoleEnum, 'PUNCHING', INDETERMINATE) -edge = getattr(IfcReinforcingBarRoleEnum, 'EDGE', INDETERMINATE) -ring = getattr(IfcReinforcingBarRoleEnum, 'RING', INDETERMINATE) -anchoring = getattr(IfcReinforcingBarRoleEnum, 'ANCHORING', INDETERMINATE) -userdefined = getattr(IfcReinforcingBarRoleEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingBarRoleEnum, 'NOTDEFINED', INDETERMINATE) +main = IfcReinforcingBarRoleEnum.MAIN +shear = IfcReinforcingBarRoleEnum.SHEAR +ligature = IfcReinforcingBarRoleEnum.LIGATURE +stud = IfcReinforcingBarRoleEnum.STUD +punching = IfcReinforcingBarRoleEnum.PUNCHING +edge = IfcReinforcingBarRoleEnum.EDGE +ring = IfcReinforcingBarRoleEnum.RING +anchoring = IfcReinforcingBarRoleEnum.ANCHORING +userdefined = IfcReinforcingBarRoleEnum.USERDEFINED +notdefined = IfcReinforcingBarRoleEnum.NOTDEFINED IfcReinforcingBarSurfaceEnum = enum_namespace() -plain = getattr(IfcReinforcingBarSurfaceEnum, 'PLAIN', INDETERMINATE) -textured = getattr(IfcReinforcingBarSurfaceEnum, 'TEXTURED', INDETERMINATE) +plain = IfcReinforcingBarSurfaceEnum.PLAIN +textured = IfcReinforcingBarSurfaceEnum.TEXTURED IfcReinforcingBarTypeEnum = enum_namespace() -anchoring = getattr(IfcReinforcingBarTypeEnum, 'ANCHORING', INDETERMINATE) -edge = getattr(IfcReinforcingBarTypeEnum, 'EDGE', INDETERMINATE) -ligature = getattr(IfcReinforcingBarTypeEnum, 'LIGATURE', INDETERMINATE) -main = getattr(IfcReinforcingBarTypeEnum, 'MAIN', INDETERMINATE) -punching = getattr(IfcReinforcingBarTypeEnum, 'PUNCHING', INDETERMINATE) -ring = getattr(IfcReinforcingBarTypeEnum, 'RING', INDETERMINATE) -shear = getattr(IfcReinforcingBarTypeEnum, 'SHEAR', INDETERMINATE) -stud = getattr(IfcReinforcingBarTypeEnum, 'STUD', INDETERMINATE) -userdefined = getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingBarTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarTypeEnum.ANCHORING +edge = IfcReinforcingBarTypeEnum.EDGE +ligature = IfcReinforcingBarTypeEnum.LIGATURE +main = IfcReinforcingBarTypeEnum.MAIN +punching = IfcReinforcingBarTypeEnum.PUNCHING +ring = IfcReinforcingBarTypeEnum.RING +shear = IfcReinforcingBarTypeEnum.SHEAR +stud = IfcReinforcingBarTypeEnum.STUD +userdefined = IfcReinforcingBarTypeEnum.USERDEFINED +notdefined = IfcReinforcingBarTypeEnum.NOTDEFINED IfcReinforcingMeshTypeEnum = enum_namespace() -userdefined = getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingMeshTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcReinforcingMeshTypeEnum.USERDEFINED +notdefined = IfcReinforcingMeshTypeEnum.NOTDEFINED IfcRoleEnum = enum_namespace() -supplier = getattr(IfcRoleEnum, 'SUPPLIER', INDETERMINATE) -manufacturer = getattr(IfcRoleEnum, 'MANUFACTURER', INDETERMINATE) -contractor = getattr(IfcRoleEnum, 'CONTRACTOR', INDETERMINATE) -subcontractor = getattr(IfcRoleEnum, 'SUBCONTRACTOR', INDETERMINATE) -architect = getattr(IfcRoleEnum, 'ARCHITECT', INDETERMINATE) -structuralengineer = getattr(IfcRoleEnum, 'STRUCTURALENGINEER', INDETERMINATE) -costengineer = getattr(IfcRoleEnum, 'COSTENGINEER', INDETERMINATE) -client = getattr(IfcRoleEnum, 'CLIENT', INDETERMINATE) -buildingowner = getattr(IfcRoleEnum, 'BUILDINGOWNER', INDETERMINATE) -buildingoperator = getattr(IfcRoleEnum, 'BUILDINGOPERATOR', INDETERMINATE) -mechanicalengineer = getattr(IfcRoleEnum, 'MECHANICALENGINEER', INDETERMINATE) -electricalengineer = getattr(IfcRoleEnum, 'ELECTRICALENGINEER', INDETERMINATE) -projectmanager = getattr(IfcRoleEnum, 'PROJECTMANAGER', INDETERMINATE) -facilitiesmanager = getattr(IfcRoleEnum, 'FACILITIESMANAGER', INDETERMINATE) -civilengineer = getattr(IfcRoleEnum, 'CIVILENGINEER', INDETERMINATE) -commissioningengineer = getattr(IfcRoleEnum, 'COMMISSIONINGENGINEER', INDETERMINATE) -engineer = getattr(IfcRoleEnum, 'ENGINEER', INDETERMINATE) -owner = getattr(IfcRoleEnum, 'OWNER', INDETERMINATE) -consultant = getattr(IfcRoleEnum, 'CONSULTANT', INDETERMINATE) -constructionmanager = getattr(IfcRoleEnum, 'CONSTRUCTIONMANAGER', INDETERMINATE) -fieldconstructionmanager = getattr(IfcRoleEnum, 'FIELDCONSTRUCTIONMANAGER', INDETERMINATE) -reseller = getattr(IfcRoleEnum, 'RESELLER', INDETERMINATE) -userdefined = getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) +supplier = IfcRoleEnum.SUPPLIER +manufacturer = IfcRoleEnum.MANUFACTURER +contractor = IfcRoleEnum.CONTRACTOR +subcontractor = IfcRoleEnum.SUBCONTRACTOR +architect = IfcRoleEnum.ARCHITECT +structuralengineer = IfcRoleEnum.STRUCTURALENGINEER +costengineer = IfcRoleEnum.COSTENGINEER +client = IfcRoleEnum.CLIENT +buildingowner = IfcRoleEnum.BUILDINGOWNER +buildingoperator = IfcRoleEnum.BUILDINGOPERATOR +mechanicalengineer = IfcRoleEnum.MECHANICALENGINEER +electricalengineer = IfcRoleEnum.ELECTRICALENGINEER +projectmanager = IfcRoleEnum.PROJECTMANAGER +facilitiesmanager = IfcRoleEnum.FACILITIESMANAGER +civilengineer = IfcRoleEnum.CIVILENGINEER +commissioningengineer = IfcRoleEnum.COMMISSIONINGENGINEER +engineer = IfcRoleEnum.ENGINEER +owner = IfcRoleEnum.OWNER +consultant = IfcRoleEnum.CONSULTANT +constructionmanager = IfcRoleEnum.CONSTRUCTIONMANAGER +fieldconstructionmanager = IfcRoleEnum.FIELDCONSTRUCTIONMANAGER +reseller = IfcRoleEnum.RESELLER +userdefined = IfcRoleEnum.USERDEFINED IfcRoofTypeEnum = enum_namespace() -flat_roof = getattr(IfcRoofTypeEnum, 'FLAT_ROOF', INDETERMINATE) -shed_roof = getattr(IfcRoofTypeEnum, 'SHED_ROOF', INDETERMINATE) -gable_roof = getattr(IfcRoofTypeEnum, 'GABLE_ROOF', INDETERMINATE) -hip_roof = getattr(IfcRoofTypeEnum, 'HIP_ROOF', INDETERMINATE) -hipped_gable_roof = getattr(IfcRoofTypeEnum, 'HIPPED_GABLE_ROOF', INDETERMINATE) -gambrel_roof = getattr(IfcRoofTypeEnum, 'GAMBREL_ROOF', INDETERMINATE) -mansard_roof = getattr(IfcRoofTypeEnum, 'MANSARD_ROOF', INDETERMINATE) -barrel_roof = getattr(IfcRoofTypeEnum, 'BARREL_ROOF', INDETERMINATE) -rainbow_roof = getattr(IfcRoofTypeEnum, 'RAINBOW_ROOF', INDETERMINATE) -butterfly_roof = getattr(IfcRoofTypeEnum, 'BUTTERFLY_ROOF', INDETERMINATE) -pavilion_roof = getattr(IfcRoofTypeEnum, 'PAVILION_ROOF', INDETERMINATE) -dome_roof = getattr(IfcRoofTypeEnum, 'DOME_ROOF', INDETERMINATE) -freeform = getattr(IfcRoofTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRoofTypeEnum, 'NOTDEFINED', INDETERMINATE) +flat_roof = IfcRoofTypeEnum.FLAT_ROOF +shed_roof = IfcRoofTypeEnum.SHED_ROOF +gable_roof = IfcRoofTypeEnum.GABLE_ROOF +hip_roof = IfcRoofTypeEnum.HIP_ROOF +hipped_gable_roof = IfcRoofTypeEnum.HIPPED_GABLE_ROOF +gambrel_roof = IfcRoofTypeEnum.GAMBREL_ROOF +mansard_roof = IfcRoofTypeEnum.MANSARD_ROOF +barrel_roof = IfcRoofTypeEnum.BARREL_ROOF +rainbow_roof = IfcRoofTypeEnum.RAINBOW_ROOF +butterfly_roof = IfcRoofTypeEnum.BUTTERFLY_ROOF +pavilion_roof = IfcRoofTypeEnum.PAVILION_ROOF +dome_roof = IfcRoofTypeEnum.DOME_ROOF +freeform = IfcRoofTypeEnum.FREEFORM +userdefined = IfcRoofTypeEnum.USERDEFINED +notdefined = IfcRoofTypeEnum.NOTDEFINED IfcSIPrefix = enum_namespace() -exa = getattr(IfcSIPrefix, 'EXA', INDETERMINATE) -peta = getattr(IfcSIPrefix, 'PETA', INDETERMINATE) -tera = getattr(IfcSIPrefix, 'TERA', INDETERMINATE) -giga = getattr(IfcSIPrefix, 'GIGA', INDETERMINATE) -mega = getattr(IfcSIPrefix, 'MEGA', INDETERMINATE) -kilo = getattr(IfcSIPrefix, 'KILO', INDETERMINATE) -hecto = getattr(IfcSIPrefix, 'HECTO', INDETERMINATE) -deca = getattr(IfcSIPrefix, 'DECA', INDETERMINATE) -deci = getattr(IfcSIPrefix, 'DECI', INDETERMINATE) -centi = getattr(IfcSIPrefix, 'CENTI', INDETERMINATE) -milli = getattr(IfcSIPrefix, 'MILLI', INDETERMINATE) -micro = getattr(IfcSIPrefix, 'MICRO', INDETERMINATE) -nano = getattr(IfcSIPrefix, 'NANO', INDETERMINATE) -pico = getattr(IfcSIPrefix, 'PICO', INDETERMINATE) -femto = getattr(IfcSIPrefix, 'FEMTO', INDETERMINATE) -atto = getattr(IfcSIPrefix, 'ATTO', INDETERMINATE) +exa = IfcSIPrefix.EXA +peta = IfcSIPrefix.PETA +tera = IfcSIPrefix.TERA +giga = IfcSIPrefix.GIGA +mega = IfcSIPrefix.MEGA +kilo = IfcSIPrefix.KILO +hecto = IfcSIPrefix.HECTO +deca = IfcSIPrefix.DECA +deci = IfcSIPrefix.DECI +centi = IfcSIPrefix.CENTI +milli = IfcSIPrefix.MILLI +micro = IfcSIPrefix.MICRO +nano = IfcSIPrefix.NANO +pico = IfcSIPrefix.PICO +femto = IfcSIPrefix.FEMTO +atto = IfcSIPrefix.ATTO IfcSIUnitName = enum_namespace() -ampere = getattr(IfcSIUnitName, 'AMPERE', INDETERMINATE) -becquerel = getattr(IfcSIUnitName, 'BECQUEREL', INDETERMINATE) -candela = getattr(IfcSIUnitName, 'CANDELA', INDETERMINATE) -coulomb = getattr(IfcSIUnitName, 'COULOMB', INDETERMINATE) -cubic_metre = getattr(IfcSIUnitName, 'CUBIC_METRE', INDETERMINATE) -degree_celsius = getattr(IfcSIUnitName, 'DEGREE_CELSIUS', INDETERMINATE) -farad = getattr(IfcSIUnitName, 'FARAD', INDETERMINATE) -gram = getattr(IfcSIUnitName, 'GRAM', INDETERMINATE) -gray = getattr(IfcSIUnitName, 'GRAY', INDETERMINATE) -henry = getattr(IfcSIUnitName, 'HENRY', INDETERMINATE) -hertz = getattr(IfcSIUnitName, 'HERTZ', INDETERMINATE) -joule = getattr(IfcSIUnitName, 'JOULE', INDETERMINATE) -kelvin = getattr(IfcSIUnitName, 'KELVIN', INDETERMINATE) -lumen = getattr(IfcSIUnitName, 'LUMEN', INDETERMINATE) -lux = getattr(IfcSIUnitName, 'LUX', INDETERMINATE) -metre = getattr(IfcSIUnitName, 'METRE', INDETERMINATE) -mole = getattr(IfcSIUnitName, 'MOLE', INDETERMINATE) -newton = getattr(IfcSIUnitName, 'NEWTON', INDETERMINATE) -ohm = getattr(IfcSIUnitName, 'OHM', INDETERMINATE) -pascal = getattr(IfcSIUnitName, 'PASCAL', INDETERMINATE) -radian = getattr(IfcSIUnitName, 'RADIAN', INDETERMINATE) -second = getattr(IfcSIUnitName, 'SECOND', INDETERMINATE) -siemens = getattr(IfcSIUnitName, 'SIEMENS', INDETERMINATE) -sievert = getattr(IfcSIUnitName, 'SIEVERT', INDETERMINATE) -square_metre = getattr(IfcSIUnitName, 'SQUARE_METRE', INDETERMINATE) -steradian = getattr(IfcSIUnitName, 'STERADIAN', INDETERMINATE) -tesla = getattr(IfcSIUnitName, 'TESLA', INDETERMINATE) -volt = getattr(IfcSIUnitName, 'VOLT', INDETERMINATE) -watt = getattr(IfcSIUnitName, 'WATT', INDETERMINATE) -weber = getattr(IfcSIUnitName, 'WEBER', INDETERMINATE) +ampere = IfcSIUnitName.AMPERE +becquerel = IfcSIUnitName.BECQUEREL +candela = IfcSIUnitName.CANDELA +coulomb = IfcSIUnitName.COULOMB +cubic_metre = IfcSIUnitName.CUBIC_METRE +degree_celsius = IfcSIUnitName.DEGREE_CELSIUS +farad = IfcSIUnitName.FARAD +gram = IfcSIUnitName.GRAM +gray = IfcSIUnitName.GRAY +henry = IfcSIUnitName.HENRY +hertz = IfcSIUnitName.HERTZ +joule = IfcSIUnitName.JOULE +kelvin = IfcSIUnitName.KELVIN +lumen = IfcSIUnitName.LUMEN +lux = IfcSIUnitName.LUX +metre = IfcSIUnitName.METRE +mole = IfcSIUnitName.MOLE +newton = IfcSIUnitName.NEWTON +ohm = IfcSIUnitName.OHM +pascal = IfcSIUnitName.PASCAL +radian = IfcSIUnitName.RADIAN +second = IfcSIUnitName.SECOND +siemens = IfcSIUnitName.SIEMENS +sievert = IfcSIUnitName.SIEVERT +square_metre = IfcSIUnitName.SQUARE_METRE +steradian = IfcSIUnitName.STERADIAN +tesla = IfcSIUnitName.TESLA +volt = IfcSIUnitName.VOLT +watt = IfcSIUnitName.WATT +weber = IfcSIUnitName.WEBER IfcSanitaryTerminalTypeEnum = enum_namespace() -bath = getattr(IfcSanitaryTerminalTypeEnum, 'BATH', INDETERMINATE) -bidet = getattr(IfcSanitaryTerminalTypeEnum, 'BIDET', INDETERMINATE) -cistern = getattr(IfcSanitaryTerminalTypeEnum, 'CISTERN', INDETERMINATE) -shower = getattr(IfcSanitaryTerminalTypeEnum, 'SHOWER', INDETERMINATE) -sink = getattr(IfcSanitaryTerminalTypeEnum, 'SINK', INDETERMINATE) -sanitaryfountain = getattr(IfcSanitaryTerminalTypeEnum, 'SANITARYFOUNTAIN', INDETERMINATE) -toiletpan = getattr(IfcSanitaryTerminalTypeEnum, 'TOILETPAN', INDETERMINATE) -urinal = getattr(IfcSanitaryTerminalTypeEnum, 'URINAL', INDETERMINATE) -washhandbasin = getattr(IfcSanitaryTerminalTypeEnum, 'WASHHANDBASIN', INDETERMINATE) -wcseat = getattr(IfcSanitaryTerminalTypeEnum, 'WCSEAT', INDETERMINATE) -userdefined = getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSanitaryTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +bath = IfcSanitaryTerminalTypeEnum.BATH +bidet = IfcSanitaryTerminalTypeEnum.BIDET +cistern = IfcSanitaryTerminalTypeEnum.CISTERN +shower = IfcSanitaryTerminalTypeEnum.SHOWER +sink = IfcSanitaryTerminalTypeEnum.SINK +sanitaryfountain = IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN +toiletpan = IfcSanitaryTerminalTypeEnum.TOILETPAN +urinal = IfcSanitaryTerminalTypeEnum.URINAL +washhandbasin = IfcSanitaryTerminalTypeEnum.WASHHANDBASIN +wcseat = IfcSanitaryTerminalTypeEnum.WCSEAT +userdefined = IfcSanitaryTerminalTypeEnum.USERDEFINED +notdefined = IfcSanitaryTerminalTypeEnum.NOTDEFINED IfcSectionTypeEnum = enum_namespace() -uniform = getattr(IfcSectionTypeEnum, 'UNIFORM', INDETERMINATE) -tapered = getattr(IfcSectionTypeEnum, 'TAPERED', INDETERMINATE) +uniform = IfcSectionTypeEnum.UNIFORM +tapered = IfcSectionTypeEnum.TAPERED IfcSensorTypeEnum = enum_namespace() -cosensor = getattr(IfcSensorTypeEnum, 'COSENSOR', INDETERMINATE) -co2sensor = getattr(IfcSensorTypeEnum, 'CO2SENSOR', INDETERMINATE) -conductancesensor = getattr(IfcSensorTypeEnum, 'CONDUCTANCESENSOR', INDETERMINATE) -contactsensor = getattr(IfcSensorTypeEnum, 'CONTACTSENSOR', INDETERMINATE) -firesensor = getattr(IfcSensorTypeEnum, 'FIRESENSOR', INDETERMINATE) -flowsensor = getattr(IfcSensorTypeEnum, 'FLOWSENSOR', INDETERMINATE) -frostsensor = getattr(IfcSensorTypeEnum, 'FROSTSENSOR', INDETERMINATE) -gassensor = getattr(IfcSensorTypeEnum, 'GASSENSOR', INDETERMINATE) -heatsensor = getattr(IfcSensorTypeEnum, 'HEATSENSOR', INDETERMINATE) -humiditysensor = getattr(IfcSensorTypeEnum, 'HUMIDITYSENSOR', INDETERMINATE) -identifiersensor = getattr(IfcSensorTypeEnum, 'IDENTIFIERSENSOR', INDETERMINATE) -ionconcentrationsensor = getattr(IfcSensorTypeEnum, 'IONCONCENTRATIONSENSOR', INDETERMINATE) -levelsensor = getattr(IfcSensorTypeEnum, 'LEVELSENSOR', INDETERMINATE) -lightsensor = getattr(IfcSensorTypeEnum, 'LIGHTSENSOR', INDETERMINATE) -moisturesensor = getattr(IfcSensorTypeEnum, 'MOISTURESENSOR', INDETERMINATE) -movementsensor = getattr(IfcSensorTypeEnum, 'MOVEMENTSENSOR', INDETERMINATE) -phsensor = getattr(IfcSensorTypeEnum, 'PHSENSOR', INDETERMINATE) -pressuresensor = getattr(IfcSensorTypeEnum, 'PRESSURESENSOR', INDETERMINATE) -radiationsensor = getattr(IfcSensorTypeEnum, 'RADIATIONSENSOR', INDETERMINATE) -radioactivitysensor = getattr(IfcSensorTypeEnum, 'RADIOACTIVITYSENSOR', INDETERMINATE) -smokesensor = getattr(IfcSensorTypeEnum, 'SMOKESENSOR', INDETERMINATE) -soundsensor = getattr(IfcSensorTypeEnum, 'SOUNDSENSOR', INDETERMINATE) -temperaturesensor = getattr(IfcSensorTypeEnum, 'TEMPERATURESENSOR', INDETERMINATE) -windsensor = getattr(IfcSensorTypeEnum, 'WINDSENSOR', INDETERMINATE) -userdefined = getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSensorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cosensor = IfcSensorTypeEnum.COSENSOR +co2sensor = IfcSensorTypeEnum.CO2SENSOR +conductancesensor = IfcSensorTypeEnum.CONDUCTANCESENSOR +contactsensor = IfcSensorTypeEnum.CONTACTSENSOR +firesensor = IfcSensorTypeEnum.FIRESENSOR +flowsensor = IfcSensorTypeEnum.FLOWSENSOR +frostsensor = IfcSensorTypeEnum.FROSTSENSOR +gassensor = IfcSensorTypeEnum.GASSENSOR +heatsensor = IfcSensorTypeEnum.HEATSENSOR +humiditysensor = IfcSensorTypeEnum.HUMIDITYSENSOR +identifiersensor = IfcSensorTypeEnum.IDENTIFIERSENSOR +ionconcentrationsensor = IfcSensorTypeEnum.IONCONCENTRATIONSENSOR +levelsensor = IfcSensorTypeEnum.LEVELSENSOR +lightsensor = IfcSensorTypeEnum.LIGHTSENSOR +moisturesensor = IfcSensorTypeEnum.MOISTURESENSOR +movementsensor = IfcSensorTypeEnum.MOVEMENTSENSOR +phsensor = IfcSensorTypeEnum.PHSENSOR +pressuresensor = IfcSensorTypeEnum.PRESSURESENSOR +radiationsensor = IfcSensorTypeEnum.RADIATIONSENSOR +radioactivitysensor = IfcSensorTypeEnum.RADIOACTIVITYSENSOR +smokesensor = IfcSensorTypeEnum.SMOKESENSOR +soundsensor = IfcSensorTypeEnum.SOUNDSENSOR +temperaturesensor = IfcSensorTypeEnum.TEMPERATURESENSOR +windsensor = IfcSensorTypeEnum.WINDSENSOR +userdefined = IfcSensorTypeEnum.USERDEFINED +notdefined = IfcSensorTypeEnum.NOTDEFINED IfcSequenceEnum = enum_namespace() -start_start = getattr(IfcSequenceEnum, 'START_START', INDETERMINATE) -start_finish = getattr(IfcSequenceEnum, 'START_FINISH', INDETERMINATE) -finish_start = getattr(IfcSequenceEnum, 'FINISH_START', INDETERMINATE) -finish_finish = getattr(IfcSequenceEnum, 'FINISH_FINISH', INDETERMINATE) -userdefined = getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSequenceEnum, 'NOTDEFINED', INDETERMINATE) +start_start = IfcSequenceEnum.START_START +start_finish = IfcSequenceEnum.START_FINISH +finish_start = IfcSequenceEnum.FINISH_START +finish_finish = IfcSequenceEnum.FINISH_FINISH +userdefined = IfcSequenceEnum.USERDEFINED +notdefined = IfcSequenceEnum.NOTDEFINED IfcShadingDeviceTypeEnum = enum_namespace() -jalousie = getattr(IfcShadingDeviceTypeEnum, 'JALOUSIE', INDETERMINATE) -shutter = getattr(IfcShadingDeviceTypeEnum, 'SHUTTER', INDETERMINATE) -awning = getattr(IfcShadingDeviceTypeEnum, 'AWNING', INDETERMINATE) -userdefined = getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcShadingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +jalousie = IfcShadingDeviceTypeEnum.JALOUSIE +shutter = IfcShadingDeviceTypeEnum.SHUTTER +awning = IfcShadingDeviceTypeEnum.AWNING +userdefined = IfcShadingDeviceTypeEnum.USERDEFINED +notdefined = IfcShadingDeviceTypeEnum.NOTDEFINED IfcSimplePropertyTemplateTypeEnum = enum_namespace() -p_singlevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_SINGLEVALUE', INDETERMINATE) -p_enumeratedvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_ENUMERATEDVALUE', INDETERMINATE) -p_boundedvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_BOUNDEDVALUE', INDETERMINATE) -p_listvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_LISTVALUE', INDETERMINATE) -p_tablevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_TABLEVALUE', INDETERMINATE) -p_referencevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_REFERENCEVALUE', INDETERMINATE) -q_length = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_LENGTH', INDETERMINATE) -q_area = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_AREA', INDETERMINATE) -q_volume = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_VOLUME', INDETERMINATE) -q_count = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_COUNT', INDETERMINATE) -q_weight = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_WEIGHT', INDETERMINATE) -q_time = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_TIME', INDETERMINATE) +p_singlevalue = IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE +p_enumeratedvalue = IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE +p_boundedvalue = IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE +p_listvalue = IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE +p_tablevalue = IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE +p_referencevalue = IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE +q_length = IfcSimplePropertyTemplateTypeEnum.Q_LENGTH +q_area = IfcSimplePropertyTemplateTypeEnum.Q_AREA +q_volume = IfcSimplePropertyTemplateTypeEnum.Q_VOLUME +q_count = IfcSimplePropertyTemplateTypeEnum.Q_COUNT +q_weight = IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT +q_time = IfcSimplePropertyTemplateTypeEnum.Q_TIME IfcSlabTypeEnum = enum_namespace() -floor = getattr(IfcSlabTypeEnum, 'FLOOR', INDETERMINATE) -roof = getattr(IfcSlabTypeEnum, 'ROOF', INDETERMINATE) -landing = getattr(IfcSlabTypeEnum, 'LANDING', INDETERMINATE) -baseslab = getattr(IfcSlabTypeEnum, 'BASESLAB', INDETERMINATE) -userdefined = getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSlabTypeEnum, 'NOTDEFINED', INDETERMINATE) +floor = IfcSlabTypeEnum.FLOOR +roof = IfcSlabTypeEnum.ROOF +landing = IfcSlabTypeEnum.LANDING +baseslab = IfcSlabTypeEnum.BASESLAB +userdefined = IfcSlabTypeEnum.USERDEFINED +notdefined = IfcSlabTypeEnum.NOTDEFINED IfcSolarDeviceTypeEnum = enum_namespace() -solarcollector = getattr(IfcSolarDeviceTypeEnum, 'SOLARCOLLECTOR', INDETERMINATE) -solarpanel = getattr(IfcSolarDeviceTypeEnum, 'SOLARPANEL', INDETERMINATE) -userdefined = getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSolarDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +solarcollector = IfcSolarDeviceTypeEnum.SOLARCOLLECTOR +solarpanel = IfcSolarDeviceTypeEnum.SOLARPANEL +userdefined = IfcSolarDeviceTypeEnum.USERDEFINED +notdefined = IfcSolarDeviceTypeEnum.NOTDEFINED IfcSpaceHeaterTypeEnum = enum_namespace() -convector = getattr(IfcSpaceHeaterTypeEnum, 'CONVECTOR', INDETERMINATE) -radiator = getattr(IfcSpaceHeaterTypeEnum, 'RADIATOR', INDETERMINATE) -userdefined = getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpaceHeaterTypeEnum, 'NOTDEFINED', INDETERMINATE) +convector = IfcSpaceHeaterTypeEnum.CONVECTOR +radiator = IfcSpaceHeaterTypeEnum.RADIATOR +userdefined = IfcSpaceHeaterTypeEnum.USERDEFINED +notdefined = IfcSpaceHeaterTypeEnum.NOTDEFINED IfcSpaceTypeEnum = enum_namespace() -space = getattr(IfcSpaceTypeEnum, 'SPACE', INDETERMINATE) -parking = getattr(IfcSpaceTypeEnum, 'PARKING', INDETERMINATE) -gfa = getattr(IfcSpaceTypeEnum, 'GFA', INDETERMINATE) -internal = getattr(IfcSpaceTypeEnum, 'INTERNAL', INDETERMINATE) -external = getattr(IfcSpaceTypeEnum, 'EXTERNAL', INDETERMINATE) -userdefined = getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpaceTypeEnum, 'NOTDEFINED', INDETERMINATE) +space = IfcSpaceTypeEnum.SPACE +parking = IfcSpaceTypeEnum.PARKING +gfa = IfcSpaceTypeEnum.GFA +internal = IfcSpaceTypeEnum.INTERNAL +external = IfcSpaceTypeEnum.EXTERNAL +userdefined = IfcSpaceTypeEnum.USERDEFINED +notdefined = IfcSpaceTypeEnum.NOTDEFINED IfcSpatialZoneTypeEnum = enum_namespace() -construction = getattr(IfcSpatialZoneTypeEnum, 'CONSTRUCTION', INDETERMINATE) -firesafety = getattr(IfcSpatialZoneTypeEnum, 'FIRESAFETY', INDETERMINATE) -lighting = getattr(IfcSpatialZoneTypeEnum, 'LIGHTING', INDETERMINATE) -occupancy = getattr(IfcSpatialZoneTypeEnum, 'OCCUPANCY', INDETERMINATE) -security = getattr(IfcSpatialZoneTypeEnum, 'SECURITY', INDETERMINATE) -thermal = getattr(IfcSpatialZoneTypeEnum, 'THERMAL', INDETERMINATE) -transport = getattr(IfcSpatialZoneTypeEnum, 'TRANSPORT', INDETERMINATE) -ventilation = getattr(IfcSpatialZoneTypeEnum, 'VENTILATION', INDETERMINATE) -userdefined = getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpatialZoneTypeEnum, 'NOTDEFINED', INDETERMINATE) +construction = IfcSpatialZoneTypeEnum.CONSTRUCTION +firesafety = IfcSpatialZoneTypeEnum.FIRESAFETY +lighting = IfcSpatialZoneTypeEnum.LIGHTING +occupancy = IfcSpatialZoneTypeEnum.OCCUPANCY +security = IfcSpatialZoneTypeEnum.SECURITY +thermal = IfcSpatialZoneTypeEnum.THERMAL +transport = IfcSpatialZoneTypeEnum.TRANSPORT +ventilation = IfcSpatialZoneTypeEnum.VENTILATION +userdefined = IfcSpatialZoneTypeEnum.USERDEFINED +notdefined = IfcSpatialZoneTypeEnum.NOTDEFINED IfcStackTerminalTypeEnum = enum_namespace() -birdcage = getattr(IfcStackTerminalTypeEnum, 'BIRDCAGE', INDETERMINATE) -cowl = getattr(IfcStackTerminalTypeEnum, 'COWL', INDETERMINATE) -rainwaterhopper = getattr(IfcStackTerminalTypeEnum, 'RAINWATERHOPPER', INDETERMINATE) -userdefined = getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStackTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +birdcage = IfcStackTerminalTypeEnum.BIRDCAGE +cowl = IfcStackTerminalTypeEnum.COWL +rainwaterhopper = IfcStackTerminalTypeEnum.RAINWATERHOPPER +userdefined = IfcStackTerminalTypeEnum.USERDEFINED +notdefined = IfcStackTerminalTypeEnum.NOTDEFINED IfcStairFlightTypeEnum = enum_namespace() -straight = getattr(IfcStairFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -winder = getattr(IfcStairFlightTypeEnum, 'WINDER', INDETERMINATE) -spiral = getattr(IfcStairFlightTypeEnum, 'SPIRAL', INDETERMINATE) -curved = getattr(IfcStairFlightTypeEnum, 'CURVED', INDETERMINATE) -freeform = getattr(IfcStairFlightTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStairFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcStairFlightTypeEnum.STRAIGHT +winder = IfcStairFlightTypeEnum.WINDER +spiral = IfcStairFlightTypeEnum.SPIRAL +curved = IfcStairFlightTypeEnum.CURVED +freeform = IfcStairFlightTypeEnum.FREEFORM +userdefined = IfcStairFlightTypeEnum.USERDEFINED +notdefined = IfcStairFlightTypeEnum.NOTDEFINED IfcStairTypeEnum = enum_namespace() -straight_run_stair = getattr(IfcStairTypeEnum, 'STRAIGHT_RUN_STAIR', INDETERMINATE) -two_straight_run_stair = getattr(IfcStairTypeEnum, 'TWO_STRAIGHT_RUN_STAIR', INDETERMINATE) -quarter_winding_stair = getattr(IfcStairTypeEnum, 'QUARTER_WINDING_STAIR', INDETERMINATE) -quarter_turn_stair = getattr(IfcStairTypeEnum, 'QUARTER_TURN_STAIR', INDETERMINATE) -half_winding_stair = getattr(IfcStairTypeEnum, 'HALF_WINDING_STAIR', INDETERMINATE) -half_turn_stair = getattr(IfcStairTypeEnum, 'HALF_TURN_STAIR', INDETERMINATE) -two_quarter_winding_stair = getattr(IfcStairTypeEnum, 'TWO_QUARTER_WINDING_STAIR', INDETERMINATE) -two_quarter_turn_stair = getattr(IfcStairTypeEnum, 'TWO_QUARTER_TURN_STAIR', INDETERMINATE) -three_quarter_winding_stair = getattr(IfcStairTypeEnum, 'THREE_QUARTER_WINDING_STAIR', INDETERMINATE) -three_quarter_turn_stair = getattr(IfcStairTypeEnum, 'THREE_QUARTER_TURN_STAIR', INDETERMINATE) -spiral_stair = getattr(IfcStairTypeEnum, 'SPIRAL_STAIR', INDETERMINATE) -double_return_stair = getattr(IfcStairTypeEnum, 'DOUBLE_RETURN_STAIR', INDETERMINATE) -curved_run_stair = getattr(IfcStairTypeEnum, 'CURVED_RUN_STAIR', INDETERMINATE) -two_curved_run_stair = getattr(IfcStairTypeEnum, 'TWO_CURVED_RUN_STAIR', INDETERMINATE) -userdefined = getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStairTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_stair = IfcStairTypeEnum.STRAIGHT_RUN_STAIR +two_straight_run_stair = IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR +quarter_winding_stair = IfcStairTypeEnum.QUARTER_WINDING_STAIR +quarter_turn_stair = IfcStairTypeEnum.QUARTER_TURN_STAIR +half_winding_stair = IfcStairTypeEnum.HALF_WINDING_STAIR +half_turn_stair = IfcStairTypeEnum.HALF_TURN_STAIR +two_quarter_winding_stair = IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR +two_quarter_turn_stair = IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR +three_quarter_winding_stair = IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR +three_quarter_turn_stair = IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR +spiral_stair = IfcStairTypeEnum.SPIRAL_STAIR +double_return_stair = IfcStairTypeEnum.DOUBLE_RETURN_STAIR +curved_run_stair = IfcStairTypeEnum.CURVED_RUN_STAIR +two_curved_run_stair = IfcStairTypeEnum.TWO_CURVED_RUN_STAIR +userdefined = IfcStairTypeEnum.USERDEFINED +notdefined = IfcStairTypeEnum.NOTDEFINED IfcStateEnum = enum_namespace() -readwrite = getattr(IfcStateEnum, 'READWRITE', INDETERMINATE) -readonly = getattr(IfcStateEnum, 'READONLY', INDETERMINATE) -locked = getattr(IfcStateEnum, 'LOCKED', INDETERMINATE) -readwritelocked = getattr(IfcStateEnum, 'READWRITELOCKED', INDETERMINATE) -readonlylocked = getattr(IfcStateEnum, 'READONLYLOCKED', INDETERMINATE) +readwrite = IfcStateEnum.READWRITE +readonly = IfcStateEnum.READONLY +locked = IfcStateEnum.LOCKED +readwritelocked = IfcStateEnum.READWRITELOCKED +readonlylocked = IfcStateEnum.READONLYLOCKED IfcStructuralCurveActivityTypeEnum = enum_namespace() -const = getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE) -linear = getattr(IfcStructuralCurveActivityTypeEnum, 'LINEAR', INDETERMINATE) -polygonal = getattr(IfcStructuralCurveActivityTypeEnum, 'POLYGONAL', INDETERMINATE) -equidistant = getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE) -sinus = getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) -parabola = getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE) -discrete = getattr(IfcStructuralCurveActivityTypeEnum, 'DISCRETE', INDETERMINATE) -userdefined = getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralCurveActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralCurveActivityTypeEnum.CONST +linear = IfcStructuralCurveActivityTypeEnum.LINEAR +polygonal = IfcStructuralCurveActivityTypeEnum.POLYGONAL +equidistant = IfcStructuralCurveActivityTypeEnum.EQUIDISTANT +sinus = IfcStructuralCurveActivityTypeEnum.SINUS +parabola = IfcStructuralCurveActivityTypeEnum.PARABOLA +discrete = IfcStructuralCurveActivityTypeEnum.DISCRETE +userdefined = IfcStructuralCurveActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveActivityTypeEnum.NOTDEFINED IfcStructuralCurveMemberTypeEnum = enum_namespace() -rigid_joined_member = getattr(IfcStructuralCurveMemberTypeEnum, 'RIGID_JOINED_MEMBER', INDETERMINATE) -pin_joined_member = getattr(IfcStructuralCurveMemberTypeEnum, 'PIN_JOINED_MEMBER', INDETERMINATE) -cable = getattr(IfcStructuralCurveMemberTypeEnum, 'CABLE', INDETERMINATE) -tension_member = getattr(IfcStructuralCurveMemberTypeEnum, 'TENSION_MEMBER', INDETERMINATE) -compression_member = getattr(IfcStructuralCurveMemberTypeEnum, 'COMPRESSION_MEMBER', INDETERMINATE) -userdefined = getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralCurveMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigid_joined_member = IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER +pin_joined_member = IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER +cable = IfcStructuralCurveMemberTypeEnum.CABLE +tension_member = IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER +compression_member = IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER +userdefined = IfcStructuralCurveMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveMemberTypeEnum.NOTDEFINED IfcStructuralSurfaceActivityTypeEnum = enum_namespace() -const = getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE) -bilinear = getattr(IfcStructuralSurfaceActivityTypeEnum, 'BILINEAR', INDETERMINATE) -discrete = getattr(IfcStructuralSurfaceActivityTypeEnum, 'DISCRETE', INDETERMINATE) -isocontour = getattr(IfcStructuralSurfaceActivityTypeEnum, 'ISOCONTOUR', INDETERMINATE) -userdefined = getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralSurfaceActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralSurfaceActivityTypeEnum.CONST +bilinear = IfcStructuralSurfaceActivityTypeEnum.BILINEAR +discrete = IfcStructuralSurfaceActivityTypeEnum.DISCRETE +isocontour = IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR +userdefined = IfcStructuralSurfaceActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED IfcStructuralSurfaceMemberTypeEnum = enum_namespace() -bending_element = getattr(IfcStructuralSurfaceMemberTypeEnum, 'BENDING_ELEMENT', INDETERMINATE) -membrane_element = getattr(IfcStructuralSurfaceMemberTypeEnum, 'MEMBRANE_ELEMENT', INDETERMINATE) -shell = getattr(IfcStructuralSurfaceMemberTypeEnum, 'SHELL', INDETERMINATE) -userdefined = getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralSurfaceMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_element = IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT +membrane_element = IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT +shell = IfcStructuralSurfaceMemberTypeEnum.SHELL +userdefined = IfcStructuralSurfaceMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED IfcSubContractResourceTypeEnum = enum_namespace() -purchase = getattr(IfcSubContractResourceTypeEnum, 'PURCHASE', INDETERMINATE) -work = getattr(IfcSubContractResourceTypeEnum, 'WORK', INDETERMINATE) -userdefined = getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSubContractResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +purchase = IfcSubContractResourceTypeEnum.PURCHASE +work = IfcSubContractResourceTypeEnum.WORK +userdefined = IfcSubContractResourceTypeEnum.USERDEFINED +notdefined = IfcSubContractResourceTypeEnum.NOTDEFINED IfcSurfaceFeatureTypeEnum = enum_namespace() -mark = getattr(IfcSurfaceFeatureTypeEnum, 'MARK', INDETERMINATE) -tag = getattr(IfcSurfaceFeatureTypeEnum, 'TAG', INDETERMINATE) -treatment = getattr(IfcSurfaceFeatureTypeEnum, 'TREATMENT', INDETERMINATE) -userdefined = getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSurfaceFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +mark = IfcSurfaceFeatureTypeEnum.MARK +tag = IfcSurfaceFeatureTypeEnum.TAG +treatment = IfcSurfaceFeatureTypeEnum.TREATMENT +userdefined = IfcSurfaceFeatureTypeEnum.USERDEFINED +notdefined = IfcSurfaceFeatureTypeEnum.NOTDEFINED IfcSurfaceSide = enum_namespace() -positive = getattr(IfcSurfaceSide, 'POSITIVE', INDETERMINATE) -negative = getattr(IfcSurfaceSide, 'NEGATIVE', INDETERMINATE) -both = getattr(IfcSurfaceSide, 'BOTH', INDETERMINATE) +positive = IfcSurfaceSide.POSITIVE +negative = IfcSurfaceSide.NEGATIVE +both = IfcSurfaceSide.BOTH IfcSwitchingDeviceTypeEnum = enum_namespace() -contactor = getattr(IfcSwitchingDeviceTypeEnum, 'CONTACTOR', INDETERMINATE) -dimmerswitch = getattr(IfcSwitchingDeviceTypeEnum, 'DIMMERSWITCH', INDETERMINATE) -emergencystop = getattr(IfcSwitchingDeviceTypeEnum, 'EMERGENCYSTOP', INDETERMINATE) -keypad = getattr(IfcSwitchingDeviceTypeEnum, 'KEYPAD', INDETERMINATE) -momentaryswitch = getattr(IfcSwitchingDeviceTypeEnum, 'MOMENTARYSWITCH', INDETERMINATE) -selectorswitch = getattr(IfcSwitchingDeviceTypeEnum, 'SELECTORSWITCH', INDETERMINATE) -starter = getattr(IfcSwitchingDeviceTypeEnum, 'STARTER', INDETERMINATE) -switchdisconnector = getattr(IfcSwitchingDeviceTypeEnum, 'SWITCHDISCONNECTOR', INDETERMINATE) -toggleswitch = getattr(IfcSwitchingDeviceTypeEnum, 'TOGGLESWITCH', INDETERMINATE) -userdefined = getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSwitchingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +contactor = IfcSwitchingDeviceTypeEnum.CONTACTOR +dimmerswitch = IfcSwitchingDeviceTypeEnum.DIMMERSWITCH +emergencystop = IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP +keypad = IfcSwitchingDeviceTypeEnum.KEYPAD +momentaryswitch = IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH +selectorswitch = IfcSwitchingDeviceTypeEnum.SELECTORSWITCH +starter = IfcSwitchingDeviceTypeEnum.STARTER +switchdisconnector = IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR +toggleswitch = IfcSwitchingDeviceTypeEnum.TOGGLESWITCH +userdefined = IfcSwitchingDeviceTypeEnum.USERDEFINED +notdefined = IfcSwitchingDeviceTypeEnum.NOTDEFINED IfcSystemFurnitureElementTypeEnum = enum_namespace() -panel = getattr(IfcSystemFurnitureElementTypeEnum, 'PANEL', INDETERMINATE) -worksurface = getattr(IfcSystemFurnitureElementTypeEnum, 'WORKSURFACE', INDETERMINATE) -userdefined = getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSystemFurnitureElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +panel = IfcSystemFurnitureElementTypeEnum.PANEL +worksurface = IfcSystemFurnitureElementTypeEnum.WORKSURFACE +userdefined = IfcSystemFurnitureElementTypeEnum.USERDEFINED +notdefined = IfcSystemFurnitureElementTypeEnum.NOTDEFINED IfcTankTypeEnum = enum_namespace() -basin = getattr(IfcTankTypeEnum, 'BASIN', INDETERMINATE) -breakpressure = getattr(IfcTankTypeEnum, 'BREAKPRESSURE', INDETERMINATE) -expansion = getattr(IfcTankTypeEnum, 'EXPANSION', INDETERMINATE) -feedandexpansion = getattr(IfcTankTypeEnum, 'FEEDANDEXPANSION', INDETERMINATE) -pressurevessel = getattr(IfcTankTypeEnum, 'PRESSUREVESSEL', INDETERMINATE) -storage = getattr(IfcTankTypeEnum, 'STORAGE', INDETERMINATE) -vessel = getattr(IfcTankTypeEnum, 'VESSEL', INDETERMINATE) -userdefined = getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTankTypeEnum, 'NOTDEFINED', INDETERMINATE) +basin = IfcTankTypeEnum.BASIN +breakpressure = IfcTankTypeEnum.BREAKPRESSURE +expansion = IfcTankTypeEnum.EXPANSION +feedandexpansion = IfcTankTypeEnum.FEEDANDEXPANSION +pressurevessel = IfcTankTypeEnum.PRESSUREVESSEL +storage = IfcTankTypeEnum.STORAGE +vessel = IfcTankTypeEnum.VESSEL +userdefined = IfcTankTypeEnum.USERDEFINED +notdefined = IfcTankTypeEnum.NOTDEFINED IfcTaskDurationEnum = enum_namespace() -elapsedtime = getattr(IfcTaskDurationEnum, 'ELAPSEDTIME', INDETERMINATE) -worktime = getattr(IfcTaskDurationEnum, 'WORKTIME', INDETERMINATE) -notdefined = getattr(IfcTaskDurationEnum, 'NOTDEFINED', INDETERMINATE) +elapsedtime = IfcTaskDurationEnum.ELAPSEDTIME +worktime = IfcTaskDurationEnum.WORKTIME +notdefined = IfcTaskDurationEnum.NOTDEFINED IfcTaskTypeEnum = enum_namespace() -attendance = getattr(IfcTaskTypeEnum, 'ATTENDANCE', INDETERMINATE) -construction = getattr(IfcTaskTypeEnum, 'CONSTRUCTION', INDETERMINATE) -demolition = getattr(IfcTaskTypeEnum, 'DEMOLITION', INDETERMINATE) -dismantle = getattr(IfcTaskTypeEnum, 'DISMANTLE', INDETERMINATE) -disposal = getattr(IfcTaskTypeEnum, 'DISPOSAL', INDETERMINATE) -installation = getattr(IfcTaskTypeEnum, 'INSTALLATION', INDETERMINATE) -logistic = getattr(IfcTaskTypeEnum, 'LOGISTIC', INDETERMINATE) -maintenance = getattr(IfcTaskTypeEnum, 'MAINTENANCE', INDETERMINATE) -move = getattr(IfcTaskTypeEnum, 'MOVE', INDETERMINATE) -operation = getattr(IfcTaskTypeEnum, 'OPERATION', INDETERMINATE) -removal = getattr(IfcTaskTypeEnum, 'REMOVAL', INDETERMINATE) -renovation = getattr(IfcTaskTypeEnum, 'RENOVATION', INDETERMINATE) -userdefined = getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTaskTypeEnum, 'NOTDEFINED', INDETERMINATE) +attendance = IfcTaskTypeEnum.ATTENDANCE +construction = IfcTaskTypeEnum.CONSTRUCTION +demolition = IfcTaskTypeEnum.DEMOLITION +dismantle = IfcTaskTypeEnum.DISMANTLE +disposal = IfcTaskTypeEnum.DISPOSAL +installation = IfcTaskTypeEnum.INSTALLATION +logistic = IfcTaskTypeEnum.LOGISTIC +maintenance = IfcTaskTypeEnum.MAINTENANCE +move = IfcTaskTypeEnum.MOVE +operation = IfcTaskTypeEnum.OPERATION +removal = IfcTaskTypeEnum.REMOVAL +renovation = IfcTaskTypeEnum.RENOVATION +userdefined = IfcTaskTypeEnum.USERDEFINED +notdefined = IfcTaskTypeEnum.NOTDEFINED IfcTendonAnchorTypeEnum = enum_namespace() -coupler = getattr(IfcTendonAnchorTypeEnum, 'COUPLER', INDETERMINATE) -fixed_end = getattr(IfcTendonAnchorTypeEnum, 'FIXED_END', INDETERMINATE) -tensioning_end = getattr(IfcTendonAnchorTypeEnum, 'TENSIONING_END', INDETERMINATE) -userdefined = getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonAnchorTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonAnchorTypeEnum.COUPLER +fixed_end = IfcTendonAnchorTypeEnum.FIXED_END +tensioning_end = IfcTendonAnchorTypeEnum.TENSIONING_END +userdefined = IfcTendonAnchorTypeEnum.USERDEFINED +notdefined = IfcTendonAnchorTypeEnum.NOTDEFINED IfcTendonTypeEnum = enum_namespace() -bar = getattr(IfcTendonTypeEnum, 'BAR', INDETERMINATE) -coated = getattr(IfcTendonTypeEnum, 'COATED', INDETERMINATE) -strand = getattr(IfcTendonTypeEnum, 'STRAND', INDETERMINATE) -wire = getattr(IfcTendonTypeEnum, 'WIRE', INDETERMINATE) -userdefined = getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonTypeEnum, 'NOTDEFINED', INDETERMINATE) +bar = IfcTendonTypeEnum.BAR +coated = IfcTendonTypeEnum.COATED +strand = IfcTendonTypeEnum.STRAND +wire = IfcTendonTypeEnum.WIRE +userdefined = IfcTendonTypeEnum.USERDEFINED +notdefined = IfcTendonTypeEnum.NOTDEFINED IfcTextPath = enum_namespace() -left = getattr(IfcTextPath, 'LEFT', INDETERMINATE) -right = getattr(IfcTextPath, 'RIGHT', INDETERMINATE) -up = getattr(IfcTextPath, 'UP', INDETERMINATE) -down = getattr(IfcTextPath, 'DOWN', INDETERMINATE) +left = IfcTextPath.LEFT +right = IfcTextPath.RIGHT +up = IfcTextPath.UP +down = IfcTextPath.DOWN IfcTimeSeriesDataTypeEnum = enum_namespace() -continuous = getattr(IfcTimeSeriesDataTypeEnum, 'CONTINUOUS', INDETERMINATE) -discrete = getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETE', INDETERMINATE) -discretebinary = getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETEBINARY', INDETERMINATE) -piecewisebinary = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISEBINARY', INDETERMINATE) -piecewiseconstant = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONSTANT', INDETERMINATE) -piecewisecontinuous = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONTINUOUS', INDETERMINATE) -notdefined = getattr(IfcTimeSeriesDataTypeEnum, 'NOTDEFINED', INDETERMINATE) +continuous = IfcTimeSeriesDataTypeEnum.CONTINUOUS +discrete = IfcTimeSeriesDataTypeEnum.DISCRETE +discretebinary = IfcTimeSeriesDataTypeEnum.DISCRETEBINARY +piecewisebinary = IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY +piecewiseconstant = IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT +piecewisecontinuous = IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS +notdefined = IfcTimeSeriesDataTypeEnum.NOTDEFINED IfcTransformerTypeEnum = enum_namespace() -current = getattr(IfcTransformerTypeEnum, 'CURRENT', INDETERMINATE) -frequency = getattr(IfcTransformerTypeEnum, 'FREQUENCY', INDETERMINATE) -inverter = getattr(IfcTransformerTypeEnum, 'INVERTER', INDETERMINATE) -rectifier = getattr(IfcTransformerTypeEnum, 'RECTIFIER', INDETERMINATE) -voltage = getattr(IfcTransformerTypeEnum, 'VOLTAGE', INDETERMINATE) -userdefined = getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTransformerTypeEnum, 'NOTDEFINED', INDETERMINATE) +current = IfcTransformerTypeEnum.CURRENT +frequency = IfcTransformerTypeEnum.FREQUENCY +inverter = IfcTransformerTypeEnum.INVERTER +rectifier = IfcTransformerTypeEnum.RECTIFIER +voltage = IfcTransformerTypeEnum.VOLTAGE +userdefined = IfcTransformerTypeEnum.USERDEFINED +notdefined = IfcTransformerTypeEnum.NOTDEFINED IfcTransitionCode = enum_namespace() -discontinuous = getattr(IfcTransitionCode, 'DISCONTINUOUS', INDETERMINATE) -continuous = getattr(IfcTransitionCode, 'CONTINUOUS', INDETERMINATE) -contsamegradient = getattr(IfcTransitionCode, 'CONTSAMEGRADIENT', INDETERMINATE) -contsamegradientsamecurvature = getattr(IfcTransitionCode, 'CONTSAMEGRADIENTSAMECURVATURE', INDETERMINATE) +discontinuous = IfcTransitionCode.DISCONTINUOUS +continuous = IfcTransitionCode.CONTINUOUS +contsamegradient = IfcTransitionCode.CONTSAMEGRADIENT +contsamegradientsamecurvature = IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE IfcTransportElementTypeEnum = enum_namespace() -elevator = getattr(IfcTransportElementTypeEnum, 'ELEVATOR', INDETERMINATE) -escalator = getattr(IfcTransportElementTypeEnum, 'ESCALATOR', INDETERMINATE) -movingwalkway = getattr(IfcTransportElementTypeEnum, 'MOVINGWALKWAY', INDETERMINATE) -craneway = getattr(IfcTransportElementTypeEnum, 'CRANEWAY', INDETERMINATE) -liftinggear = getattr(IfcTransportElementTypeEnum, 'LIFTINGGEAR', INDETERMINATE) -userdefined = getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTransportElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +elevator = IfcTransportElementTypeEnum.ELEVATOR +escalator = IfcTransportElementTypeEnum.ESCALATOR +movingwalkway = IfcTransportElementTypeEnum.MOVINGWALKWAY +craneway = IfcTransportElementTypeEnum.CRANEWAY +liftinggear = IfcTransportElementTypeEnum.LIFTINGGEAR +userdefined = IfcTransportElementTypeEnum.USERDEFINED +notdefined = IfcTransportElementTypeEnum.NOTDEFINED IfcTrimmingPreference = enum_namespace() -cartesian = getattr(IfcTrimmingPreference, 'CARTESIAN', INDETERMINATE) -parameter = getattr(IfcTrimmingPreference, 'PARAMETER', INDETERMINATE) -unspecified = getattr(IfcTrimmingPreference, 'UNSPECIFIED', INDETERMINATE) +cartesian = IfcTrimmingPreference.CARTESIAN +parameter = IfcTrimmingPreference.PARAMETER +unspecified = IfcTrimmingPreference.UNSPECIFIED IfcTubeBundleTypeEnum = enum_namespace() -finned = getattr(IfcTubeBundleTypeEnum, 'FINNED', INDETERMINATE) -userdefined = getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTubeBundleTypeEnum, 'NOTDEFINED', INDETERMINATE) +finned = IfcTubeBundleTypeEnum.FINNED +userdefined = IfcTubeBundleTypeEnum.USERDEFINED +notdefined = IfcTubeBundleTypeEnum.NOTDEFINED IfcUnitEnum = enum_namespace() -absorbeddoseunit = getattr(IfcUnitEnum, 'ABSORBEDDOSEUNIT', INDETERMINATE) -amountofsubstanceunit = getattr(IfcUnitEnum, 'AMOUNTOFSUBSTANCEUNIT', INDETERMINATE) -areaunit = getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE) -doseequivalentunit = getattr(IfcUnitEnum, 'DOSEEQUIVALENTUNIT', INDETERMINATE) -electriccapacitanceunit = getattr(IfcUnitEnum, 'ELECTRICCAPACITANCEUNIT', INDETERMINATE) -electricchargeunit = getattr(IfcUnitEnum, 'ELECTRICCHARGEUNIT', INDETERMINATE) -electricconductanceunit = getattr(IfcUnitEnum, 'ELECTRICCONDUCTANCEUNIT', INDETERMINATE) -electriccurrentunit = getattr(IfcUnitEnum, 'ELECTRICCURRENTUNIT', INDETERMINATE) -electricresistanceunit = getattr(IfcUnitEnum, 'ELECTRICRESISTANCEUNIT', INDETERMINATE) -electricvoltageunit = getattr(IfcUnitEnum, 'ELECTRICVOLTAGEUNIT', INDETERMINATE) -energyunit = getattr(IfcUnitEnum, 'ENERGYUNIT', INDETERMINATE) -forceunit = getattr(IfcUnitEnum, 'FORCEUNIT', INDETERMINATE) -frequencyunit = getattr(IfcUnitEnum, 'FREQUENCYUNIT', INDETERMINATE) -illuminanceunit = getattr(IfcUnitEnum, 'ILLUMINANCEUNIT', INDETERMINATE) -inductanceunit = getattr(IfcUnitEnum, 'INDUCTANCEUNIT', INDETERMINATE) -lengthunit = getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE) -luminousfluxunit = getattr(IfcUnitEnum, 'LUMINOUSFLUXUNIT', INDETERMINATE) -luminousintensityunit = getattr(IfcUnitEnum, 'LUMINOUSINTENSITYUNIT', INDETERMINATE) -magneticfluxdensityunit = getattr(IfcUnitEnum, 'MAGNETICFLUXDENSITYUNIT', INDETERMINATE) -magneticfluxunit = getattr(IfcUnitEnum, 'MAGNETICFLUXUNIT', INDETERMINATE) -massunit = getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE) -planeangleunit = getattr(IfcUnitEnum, 'PLANEANGLEUNIT', INDETERMINATE) -powerunit = getattr(IfcUnitEnum, 'POWERUNIT', INDETERMINATE) -pressureunit = getattr(IfcUnitEnum, 'PRESSUREUNIT', INDETERMINATE) -radioactivityunit = getattr(IfcUnitEnum, 'RADIOACTIVITYUNIT', INDETERMINATE) -solidangleunit = getattr(IfcUnitEnum, 'SOLIDANGLEUNIT', INDETERMINATE) -thermodynamictemperatureunit = getattr(IfcUnitEnum, 'THERMODYNAMICTEMPERATUREUNIT', INDETERMINATE) -timeunit = getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE) -volumeunit = getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE) -userdefined = getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE) +absorbeddoseunit = IfcUnitEnum.ABSORBEDDOSEUNIT +amountofsubstanceunit = IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT +areaunit = IfcUnitEnum.AREAUNIT +doseequivalentunit = IfcUnitEnum.DOSEEQUIVALENTUNIT +electriccapacitanceunit = IfcUnitEnum.ELECTRICCAPACITANCEUNIT +electricchargeunit = IfcUnitEnum.ELECTRICCHARGEUNIT +electricconductanceunit = IfcUnitEnum.ELECTRICCONDUCTANCEUNIT +electriccurrentunit = IfcUnitEnum.ELECTRICCURRENTUNIT +electricresistanceunit = IfcUnitEnum.ELECTRICRESISTANCEUNIT +electricvoltageunit = IfcUnitEnum.ELECTRICVOLTAGEUNIT +energyunit = IfcUnitEnum.ENERGYUNIT +forceunit = IfcUnitEnum.FORCEUNIT +frequencyunit = IfcUnitEnum.FREQUENCYUNIT +illuminanceunit = IfcUnitEnum.ILLUMINANCEUNIT +inductanceunit = IfcUnitEnum.INDUCTANCEUNIT +lengthunit = IfcUnitEnum.LENGTHUNIT +luminousfluxunit = IfcUnitEnum.LUMINOUSFLUXUNIT +luminousintensityunit = IfcUnitEnum.LUMINOUSINTENSITYUNIT +magneticfluxdensityunit = IfcUnitEnum.MAGNETICFLUXDENSITYUNIT +magneticfluxunit = IfcUnitEnum.MAGNETICFLUXUNIT +massunit = IfcUnitEnum.MASSUNIT +planeangleunit = IfcUnitEnum.PLANEANGLEUNIT +powerunit = IfcUnitEnum.POWERUNIT +pressureunit = IfcUnitEnum.PRESSUREUNIT +radioactivityunit = IfcUnitEnum.RADIOACTIVITYUNIT +solidangleunit = IfcUnitEnum.SOLIDANGLEUNIT +thermodynamictemperatureunit = IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT +timeunit = IfcUnitEnum.TIMEUNIT +volumeunit = IfcUnitEnum.VOLUMEUNIT +userdefined = IfcUnitEnum.USERDEFINED IfcUnitaryControlElementTypeEnum = enum_namespace() -alarmpanel = getattr(IfcUnitaryControlElementTypeEnum, 'ALARMPANEL', INDETERMINATE) -controlpanel = getattr(IfcUnitaryControlElementTypeEnum, 'CONTROLPANEL', INDETERMINATE) -gasdetectionpanel = getattr(IfcUnitaryControlElementTypeEnum, 'GASDETECTIONPANEL', INDETERMINATE) -indicatorpanel = getattr(IfcUnitaryControlElementTypeEnum, 'INDICATORPANEL', INDETERMINATE) -mimicpanel = getattr(IfcUnitaryControlElementTypeEnum, 'MIMICPANEL', INDETERMINATE) -humidistat = getattr(IfcUnitaryControlElementTypeEnum, 'HUMIDISTAT', INDETERMINATE) -thermostat = getattr(IfcUnitaryControlElementTypeEnum, 'THERMOSTAT', INDETERMINATE) -weatherstation = getattr(IfcUnitaryControlElementTypeEnum, 'WEATHERSTATION', INDETERMINATE) -userdefined = getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcUnitaryControlElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +alarmpanel = IfcUnitaryControlElementTypeEnum.ALARMPANEL +controlpanel = IfcUnitaryControlElementTypeEnum.CONTROLPANEL +gasdetectionpanel = IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL +indicatorpanel = IfcUnitaryControlElementTypeEnum.INDICATORPANEL +mimicpanel = IfcUnitaryControlElementTypeEnum.MIMICPANEL +humidistat = IfcUnitaryControlElementTypeEnum.HUMIDISTAT +thermostat = IfcUnitaryControlElementTypeEnum.THERMOSTAT +weatherstation = IfcUnitaryControlElementTypeEnum.WEATHERSTATION +userdefined = IfcUnitaryControlElementTypeEnum.USERDEFINED +notdefined = IfcUnitaryControlElementTypeEnum.NOTDEFINED IfcUnitaryEquipmentTypeEnum = enum_namespace() -airhandler = getattr(IfcUnitaryEquipmentTypeEnum, 'AIRHANDLER', INDETERMINATE) -airconditioningunit = getattr(IfcUnitaryEquipmentTypeEnum, 'AIRCONDITIONINGUNIT', INDETERMINATE) -dehumidifier = getattr(IfcUnitaryEquipmentTypeEnum, 'DEHUMIDIFIER', INDETERMINATE) -splitsystem = getattr(IfcUnitaryEquipmentTypeEnum, 'SPLITSYSTEM', INDETERMINATE) -rooftopunit = getattr(IfcUnitaryEquipmentTypeEnum, 'ROOFTOPUNIT', INDETERMINATE) -userdefined = getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcUnitaryEquipmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +airhandler = IfcUnitaryEquipmentTypeEnum.AIRHANDLER +airconditioningunit = IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT +dehumidifier = IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER +splitsystem = IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM +rooftopunit = IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT +userdefined = IfcUnitaryEquipmentTypeEnum.USERDEFINED +notdefined = IfcUnitaryEquipmentTypeEnum.NOTDEFINED IfcValveTypeEnum = enum_namespace() -airrelease = getattr(IfcValveTypeEnum, 'AIRRELEASE', INDETERMINATE) -antivacuum = getattr(IfcValveTypeEnum, 'ANTIVACUUM', INDETERMINATE) -changeover = getattr(IfcValveTypeEnum, 'CHANGEOVER', INDETERMINATE) -check = getattr(IfcValveTypeEnum, 'CHECK', INDETERMINATE) -commissioning = getattr(IfcValveTypeEnum, 'COMMISSIONING', INDETERMINATE) -diverting = getattr(IfcValveTypeEnum, 'DIVERTING', INDETERMINATE) -drawoffcock = getattr(IfcValveTypeEnum, 'DRAWOFFCOCK', INDETERMINATE) -doublecheck = getattr(IfcValveTypeEnum, 'DOUBLECHECK', INDETERMINATE) -doubleregulating = getattr(IfcValveTypeEnum, 'DOUBLEREGULATING', INDETERMINATE) -faucet = getattr(IfcValveTypeEnum, 'FAUCET', INDETERMINATE) -flushing = getattr(IfcValveTypeEnum, 'FLUSHING', INDETERMINATE) -gascock = getattr(IfcValveTypeEnum, 'GASCOCK', INDETERMINATE) -gastap = getattr(IfcValveTypeEnum, 'GASTAP', INDETERMINATE) -isolating = getattr(IfcValveTypeEnum, 'ISOLATING', INDETERMINATE) -mixing = getattr(IfcValveTypeEnum, 'MIXING', INDETERMINATE) -pressurereducing = getattr(IfcValveTypeEnum, 'PRESSUREREDUCING', INDETERMINATE) -pressurerelief = getattr(IfcValveTypeEnum, 'PRESSURERELIEF', INDETERMINATE) -regulating = getattr(IfcValveTypeEnum, 'REGULATING', INDETERMINATE) -safetycutoff = getattr(IfcValveTypeEnum, 'SAFETYCUTOFF', INDETERMINATE) -steamtrap = getattr(IfcValveTypeEnum, 'STEAMTRAP', INDETERMINATE) -stopcock = getattr(IfcValveTypeEnum, 'STOPCOCK', INDETERMINATE) -userdefined = getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcValveTypeEnum, 'NOTDEFINED', INDETERMINATE) +airrelease = IfcValveTypeEnum.AIRRELEASE +antivacuum = IfcValveTypeEnum.ANTIVACUUM +changeover = IfcValveTypeEnum.CHANGEOVER +check = IfcValveTypeEnum.CHECK +commissioning = IfcValveTypeEnum.COMMISSIONING +diverting = IfcValveTypeEnum.DIVERTING +drawoffcock = IfcValveTypeEnum.DRAWOFFCOCK +doublecheck = IfcValveTypeEnum.DOUBLECHECK +doubleregulating = IfcValveTypeEnum.DOUBLEREGULATING +faucet = IfcValveTypeEnum.FAUCET +flushing = IfcValveTypeEnum.FLUSHING +gascock = IfcValveTypeEnum.GASCOCK +gastap = IfcValveTypeEnum.GASTAP +isolating = IfcValveTypeEnum.ISOLATING +mixing = IfcValveTypeEnum.MIXING +pressurereducing = IfcValveTypeEnum.PRESSUREREDUCING +pressurerelief = IfcValveTypeEnum.PRESSURERELIEF +regulating = IfcValveTypeEnum.REGULATING +safetycutoff = IfcValveTypeEnum.SAFETYCUTOFF +steamtrap = IfcValveTypeEnum.STEAMTRAP +stopcock = IfcValveTypeEnum.STOPCOCK +userdefined = IfcValveTypeEnum.USERDEFINED +notdefined = IfcValveTypeEnum.NOTDEFINED IfcVibrationIsolatorTypeEnum = enum_namespace() -compression = getattr(IfcVibrationIsolatorTypeEnum, 'COMPRESSION', INDETERMINATE) -spring = getattr(IfcVibrationIsolatorTypeEnum, 'SPRING', INDETERMINATE) -userdefined = getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVibrationIsolatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +compression = IfcVibrationIsolatorTypeEnum.COMPRESSION +spring = IfcVibrationIsolatorTypeEnum.SPRING +userdefined = IfcVibrationIsolatorTypeEnum.USERDEFINED +notdefined = IfcVibrationIsolatorTypeEnum.NOTDEFINED IfcVoidingFeatureTypeEnum = enum_namespace() -cutout = getattr(IfcVoidingFeatureTypeEnum, 'CUTOUT', INDETERMINATE) -notch = getattr(IfcVoidingFeatureTypeEnum, 'NOTCH', INDETERMINATE) -hole = getattr(IfcVoidingFeatureTypeEnum, 'HOLE', INDETERMINATE) -miter = getattr(IfcVoidingFeatureTypeEnum, 'MITER', INDETERMINATE) -chamfer = getattr(IfcVoidingFeatureTypeEnum, 'CHAMFER', INDETERMINATE) -edge = getattr(IfcVoidingFeatureTypeEnum, 'EDGE', INDETERMINATE) -userdefined = getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVoidingFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +cutout = IfcVoidingFeatureTypeEnum.CUTOUT +notch = IfcVoidingFeatureTypeEnum.NOTCH +hole = IfcVoidingFeatureTypeEnum.HOLE +miter = IfcVoidingFeatureTypeEnum.MITER +chamfer = IfcVoidingFeatureTypeEnum.CHAMFER +edge = IfcVoidingFeatureTypeEnum.EDGE +userdefined = IfcVoidingFeatureTypeEnum.USERDEFINED +notdefined = IfcVoidingFeatureTypeEnum.NOTDEFINED IfcWallTypeEnum = enum_namespace() -movable = getattr(IfcWallTypeEnum, 'MOVABLE', INDETERMINATE) -parapet = getattr(IfcWallTypeEnum, 'PARAPET', INDETERMINATE) -partitioning = getattr(IfcWallTypeEnum, 'PARTITIONING', INDETERMINATE) -plumbingwall = getattr(IfcWallTypeEnum, 'PLUMBINGWALL', INDETERMINATE) -shear = getattr(IfcWallTypeEnum, 'SHEAR', INDETERMINATE) -solidwall = getattr(IfcWallTypeEnum, 'SOLIDWALL', INDETERMINATE) -standard = getattr(IfcWallTypeEnum, 'STANDARD', INDETERMINATE) -polygonal = getattr(IfcWallTypeEnum, 'POLYGONAL', INDETERMINATE) -elementedwall = getattr(IfcWallTypeEnum, 'ELEMENTEDWALL', INDETERMINATE) -userdefined = getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +movable = IfcWallTypeEnum.MOVABLE +parapet = IfcWallTypeEnum.PARAPET +partitioning = IfcWallTypeEnum.PARTITIONING +plumbingwall = IfcWallTypeEnum.PLUMBINGWALL +shear = IfcWallTypeEnum.SHEAR +solidwall = IfcWallTypeEnum.SOLIDWALL +standard = IfcWallTypeEnum.STANDARD +polygonal = IfcWallTypeEnum.POLYGONAL +elementedwall = IfcWallTypeEnum.ELEMENTEDWALL +userdefined = IfcWallTypeEnum.USERDEFINED +notdefined = IfcWallTypeEnum.NOTDEFINED IfcWasteTerminalTypeEnum = enum_namespace() -floortrap = getattr(IfcWasteTerminalTypeEnum, 'FLOORTRAP', INDETERMINATE) -floorwaste = getattr(IfcWasteTerminalTypeEnum, 'FLOORWASTE', INDETERMINATE) -gullysump = getattr(IfcWasteTerminalTypeEnum, 'GULLYSUMP', INDETERMINATE) -gullytrap = getattr(IfcWasteTerminalTypeEnum, 'GULLYTRAP', INDETERMINATE) -roofdrain = getattr(IfcWasteTerminalTypeEnum, 'ROOFDRAIN', INDETERMINATE) -wastedisposalunit = getattr(IfcWasteTerminalTypeEnum, 'WASTEDISPOSALUNIT', INDETERMINATE) -wastetrap = getattr(IfcWasteTerminalTypeEnum, 'WASTETRAP', INDETERMINATE) -userdefined = getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWasteTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +floortrap = IfcWasteTerminalTypeEnum.FLOORTRAP +floorwaste = IfcWasteTerminalTypeEnum.FLOORWASTE +gullysump = IfcWasteTerminalTypeEnum.GULLYSUMP +gullytrap = IfcWasteTerminalTypeEnum.GULLYTRAP +roofdrain = IfcWasteTerminalTypeEnum.ROOFDRAIN +wastedisposalunit = IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT +wastetrap = IfcWasteTerminalTypeEnum.WASTETRAP +userdefined = IfcWasteTerminalTypeEnum.USERDEFINED +notdefined = IfcWasteTerminalTypeEnum.NOTDEFINED IfcWindowPanelOperationEnum = enum_namespace() -sidehungrighthand = getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGRIGHTHAND', INDETERMINATE) -sidehunglefthand = getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGLEFTHAND', INDETERMINATE) -tiltandturnrighthand = getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNRIGHTHAND', INDETERMINATE) -tiltandturnlefthand = getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNLEFTHAND', INDETERMINATE) -tophung = getattr(IfcWindowPanelOperationEnum, 'TOPHUNG', INDETERMINATE) -bottomhung = getattr(IfcWindowPanelOperationEnum, 'BOTTOMHUNG', INDETERMINATE) -pivothorizontal = getattr(IfcWindowPanelOperationEnum, 'PIVOTHORIZONTAL', INDETERMINATE) -pivotvertical = getattr(IfcWindowPanelOperationEnum, 'PIVOTVERTICAL', INDETERMINATE) -slidinghorizontal = getattr(IfcWindowPanelOperationEnum, 'SLIDINGHORIZONTAL', INDETERMINATE) -slidingvertical = getattr(IfcWindowPanelOperationEnum, 'SLIDINGVERTICAL', INDETERMINATE) -removablecasement = getattr(IfcWindowPanelOperationEnum, 'REMOVABLECASEMENT', INDETERMINATE) -fixedcasement = getattr(IfcWindowPanelOperationEnum, 'FIXEDCASEMENT', INDETERMINATE) -otheroperation = getattr(IfcWindowPanelOperationEnum, 'OTHEROPERATION', INDETERMINATE) -notdefined = getattr(IfcWindowPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +sidehungrighthand = IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND +sidehunglefthand = IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND +tiltandturnrighthand = IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND +tiltandturnlefthand = IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND +tophung = IfcWindowPanelOperationEnum.TOPHUNG +bottomhung = IfcWindowPanelOperationEnum.BOTTOMHUNG +pivothorizontal = IfcWindowPanelOperationEnum.PIVOTHORIZONTAL +pivotvertical = IfcWindowPanelOperationEnum.PIVOTVERTICAL +slidinghorizontal = IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL +slidingvertical = IfcWindowPanelOperationEnum.SLIDINGVERTICAL +removablecasement = IfcWindowPanelOperationEnum.REMOVABLECASEMENT +fixedcasement = IfcWindowPanelOperationEnum.FIXEDCASEMENT +otheroperation = IfcWindowPanelOperationEnum.OTHEROPERATION +notdefined = IfcWindowPanelOperationEnum.NOTDEFINED IfcWindowPanelPositionEnum = enum_namespace() -left = getattr(IfcWindowPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = getattr(IfcWindowPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = getattr(IfcWindowPanelPositionEnum, 'RIGHT', INDETERMINATE) -bottom = getattr(IfcWindowPanelPositionEnum, 'BOTTOM', INDETERMINATE) -top = getattr(IfcWindowPanelPositionEnum, 'TOP', INDETERMINATE) -notdefined = getattr(IfcWindowPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcWindowPanelPositionEnum.LEFT +middle = IfcWindowPanelPositionEnum.MIDDLE +right = IfcWindowPanelPositionEnum.RIGHT +bottom = IfcWindowPanelPositionEnum.BOTTOM +top = IfcWindowPanelPositionEnum.TOP +notdefined = IfcWindowPanelPositionEnum.NOTDEFINED IfcWindowStyleConstructionEnum = enum_namespace() -aluminium = getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = getattr(IfcWindowStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = getattr(IfcWindowStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = getattr(IfcWindowStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -plastic = getattr(IfcWindowStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -other_construction = getattr(IfcWindowStyleConstructionEnum, 'OTHER_CONSTRUCTION', INDETERMINATE) -notdefined = getattr(IfcWindowStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcWindowStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcWindowStyleConstructionEnum.STEEL +wood = IfcWindowStyleConstructionEnum.WOOD +aluminium_wood = IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD +plastic = IfcWindowStyleConstructionEnum.PLASTIC +other_construction = IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION +notdefined = IfcWindowStyleConstructionEnum.NOTDEFINED IfcWindowStyleOperationEnum = enum_namespace() -single_panel = getattr(IfcWindowStyleOperationEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = getattr(IfcWindowStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowStyleOperationEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowStyleOperationEnum.USERDEFINED +notdefined = IfcWindowStyleOperationEnum.NOTDEFINED IfcWindowTypeEnum = enum_namespace() -window = getattr(IfcWindowTypeEnum, 'WINDOW', INDETERMINATE) -skylight = getattr(IfcWindowTypeEnum, 'SKYLIGHT', INDETERMINATE) -lightdome = getattr(IfcWindowTypeEnum, 'LIGHTDOME', INDETERMINATE) -userdefined = getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowTypeEnum, 'NOTDEFINED', INDETERMINATE) +window = IfcWindowTypeEnum.WINDOW +skylight = IfcWindowTypeEnum.SKYLIGHT +lightdome = IfcWindowTypeEnum.LIGHTDOME +userdefined = IfcWindowTypeEnum.USERDEFINED +notdefined = IfcWindowTypeEnum.NOTDEFINED IfcWindowTypePartitioningEnum = enum_namespace() -single_panel = getattr(IfcWindowTypePartitioningEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = getattr(IfcWindowTypePartitioningEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowTypePartitioningEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowTypePartitioningEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowTypePartitioningEnum.USERDEFINED +notdefined = IfcWindowTypePartitioningEnum.NOTDEFINED IfcWorkCalendarTypeEnum = enum_namespace() -firstshift = getattr(IfcWorkCalendarTypeEnum, 'FIRSTSHIFT', INDETERMINATE) -secondshift = getattr(IfcWorkCalendarTypeEnum, 'SECONDSHIFT', INDETERMINATE) -thirdshift = getattr(IfcWorkCalendarTypeEnum, 'THIRDSHIFT', INDETERMINATE) -userdefined = getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkCalendarTypeEnum, 'NOTDEFINED', INDETERMINATE) +firstshift = IfcWorkCalendarTypeEnum.FIRSTSHIFT +secondshift = IfcWorkCalendarTypeEnum.SECONDSHIFT +thirdshift = IfcWorkCalendarTypeEnum.THIRDSHIFT +userdefined = IfcWorkCalendarTypeEnum.USERDEFINED +notdefined = IfcWorkCalendarTypeEnum.NOTDEFINED IfcWorkPlanTypeEnum = enum_namespace() -actual = getattr(IfcWorkPlanTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = getattr(IfcWorkPlanTypeEnum, 'BASELINE', INDETERMINATE) -planned = getattr(IfcWorkPlanTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkPlanTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkPlanTypeEnum.ACTUAL +baseline = IfcWorkPlanTypeEnum.BASELINE +planned = IfcWorkPlanTypeEnum.PLANNED +userdefined = IfcWorkPlanTypeEnum.USERDEFINED +notdefined = IfcWorkPlanTypeEnum.NOTDEFINED IfcWorkScheduleTypeEnum = enum_namespace() -actual = getattr(IfcWorkScheduleTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = getattr(IfcWorkScheduleTypeEnum, 'BASELINE', INDETERMINATE) -planned = getattr(IfcWorkScheduleTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkScheduleTypeEnum.ACTUAL +baseline = IfcWorkScheduleTypeEnum.BASELINE +planned = IfcWorkScheduleTypeEnum.PLANNED +userdefined = IfcWorkScheduleTypeEnum.USERDEFINED +notdefined = IfcWorkScheduleTypeEnum.NOTDEFINED def IfcActionRequest(*args, **kwargs): return ifcopenshell.create_entity('IfcActionRequest', 'IFC4', *args, **kwargs) @@ -4316,7 +4326,7 @@ class IfcBoxAlignment_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False class IfcCardinalPointReference_GreaterThanZero: SCOPE = 'type' @@ -4397,7 +4407,7 @@ class IfcFontStyle_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False class IfcFontVariant_WR1: SCOPE = 'type' @@ -4406,7 +4416,7 @@ class IfcFontVariant_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False class IfcFontWeight_WR1: SCOPE = 'type' @@ -4415,7 +4425,7 @@ class IfcFontWeight_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False class IfcHeatingValueMeasure_WR1: SCOPE = 'type' @@ -4514,7 +4524,7 @@ class IfcTextAlignment_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False class IfcTextDecoration_WR1: SCOPE = 'type' @@ -4523,7 +4533,7 @@ class IfcTextDecoration_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False class IfcTextTransformation_WR1: SCOPE = 'type' @@ -4532,7 +4542,7 @@ class IfcTextTransformation_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False class IfcActorRole_WR1: SCOPE = 'entity' @@ -4541,8 +4551,8 @@ class IfcActorRole_WR1: @staticmethod def __call__(self): - role = getattr(self, 'Role', INDETERMINATE) - assert (role != getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) or (role == getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedRole', INDETERMINATE)))) is not False + role = express_getattr(self, 'Role', INDETERMINATE) + assert (role != express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) or (role == express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedRole', INDETERMINATE)))) is not False class IfcActuator_CorrectPredefinedType: SCOPE = 'entity' @@ -4551,8 +4561,8 @@ class IfcActuator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcActuator_CorrectTypeAssigned: SCOPE = 'entity' @@ -4561,8 +4571,8 @@ class IfcActuator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcactuatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcactuatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcActuatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -4571,8 +4581,8 @@ class IfcActuatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAddress_WR1: SCOPE = 'entity' @@ -4581,8 +4591,8 @@ class IfcAddress_WR1: @staticmethod def __call__(self): - purpose = getattr(self, 'Purpose', INDETERMINATE) - assert (not exists(purpose) or (purpose != getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) or (purpose == getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedPurpose', INDETERMINATE))))) is not False + purpose = express_getattr(self, 'Purpose', INDETERMINATE) + assert (not exists(purpose) or (purpose != express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) or (purpose == express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedPurpose', INDETERMINATE))))) is not False class IfcAdvancedBrep_HasAdvancedFaces: SCOPE = 'entity' @@ -4591,7 +4601,7 @@ class IfcAdvancedBrep_HasAdvancedFaces: @staticmethod def __call__(self): - assert (sizeof([afs for afs in getattr(getattr(self, 'Outer', INDETERMINATE), 'CfsFaces', INDETERMINATE) if not 'ifc4.ifcadvancedface' in typeof(afs)]) == 0) is not False + assert (sizeof([afs for afs in express_getattr(express_getattr(self, 'Outer', INDETERMINATE), 'CfsFaces', INDETERMINATE) if not 'ifc4.ifcadvancedface' in typeof(afs)]) == 0) is not False class IfcAdvancedBrepWithVoids_VoidsHaveAdvancedFaces: SCOPE = 'entity' @@ -4600,8 +4610,8 @@ class IfcAdvancedBrepWithVoids_VoidsHaveAdvancedFaces: @staticmethod def __call__(self): - voids = getattr(self, 'Voids', INDETERMINATE) - assert (sizeof([vsh for vsh in voids if sizeof([afs for afs in getattr(vsh, 'CfsFaces', INDETERMINATE) if not 'ifc4.ifcadvancedface' in typeof(afs)]) == 0]) == 0) is not False + voids = express_getattr(self, 'Voids', INDETERMINATE) + assert (sizeof([vsh for vsh in voids if sizeof([afs for afs in express_getattr(vsh, 'CfsFaces', INDETERMINATE) if not 'ifc4.ifcadvancedface' in typeof(afs)]) == 0]) == 0) is not False class IfcAdvancedFace_ApplicableSurface: SCOPE = 'entity' @@ -4610,7 +4620,7 @@ class IfcAdvancedFace_ApplicableSurface: @staticmethod def __call__(self): - assert (sizeof(['ifc4.ifcelementarysurface', 'ifc4.ifcsweptsurface', 'ifc4.ifcbsplinesurface'] * typeof(getattr(self, 'FaceSurface', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4.ifcelementarysurface', 'ifc4.ifcsweptsurface', 'ifc4.ifcbsplinesurface'] * typeof(express_getattr(self, 'FaceSurface', INDETERMINATE))) == 1) is not False class IfcAdvancedFace_RequiresEdgeCurve: SCOPE = 'entity' @@ -4619,7 +4629,7 @@ class IfcAdvancedFace_RequiresEdgeCurve: @staticmethod def __call__(self): - assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in getattr(self, 'Bounds', INDETERMINATE) if 'ifc4.ifcedgeloop' in typeof(getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in getattr(getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not 'ifc4.ifcedgecurve' in typeof(getattr(oe, 'EdgeElement', INDETERMINATE))]) == 0]) == 0) is not False + assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in express_getattr(self, 'Bounds', INDETERMINATE) if 'ifc4.ifcedgeloop' in typeof(express_getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in express_getattr(express_getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not 'ifc4.ifcedgecurve' in typeof(express_getattr(oe, 'EdgeElement', INDETERMINATE))]) == 0]) == 0) is not False class IfcAdvancedFace_ApplicableEdgeCurves: SCOPE = 'entity' @@ -4628,7 +4638,7 @@ class IfcAdvancedFace_ApplicableEdgeCurves: @staticmethod def __call__(self): - assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in getattr(self, 'Bounds', INDETERMINATE) if 'ifc4.ifcedgeloop' in typeof(getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in getattr(getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not sizeof(['ifc4.ifcline', 'ifc4.ifcconic', 'ifc4.ifcpolyline', 'ifc4.ifcbsplinecurve'] * typeof(getattr(getattr(oe, 'EdgeElement', INDETERMINATE), 'EdgeGeometry', INDETERMINATE))) == 1]) == 0]) == 0) is not False + assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in express_getattr(self, 'Bounds', INDETERMINATE) if 'ifc4.ifcedgeloop' in typeof(express_getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in express_getattr(express_getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not sizeof(['ifc4.ifcline', 'ifc4.ifcconic', 'ifc4.ifcpolyline', 'ifc4.ifcbsplinecurve'] * typeof(express_getattr(express_getattr(oe, 'EdgeElement', INDETERMINATE), 'EdgeGeometry', INDETERMINATE))) == 1]) == 0]) == 0) is not False class IfcAirTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -4637,8 +4647,8 @@ class IfcAirTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -4647,8 +4657,8 @@ class IfcAirTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcairterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcairterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirTerminalBox_CorrectPredefinedType: SCOPE = 'entity' @@ -4657,8 +4667,8 @@ class IfcAirTerminalBox_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirTerminalBox_CorrectTypeAssigned: SCOPE = 'entity' @@ -4667,8 +4677,8 @@ class IfcAirTerminalBox_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcairterminalboxtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcairterminalboxtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirTerminalBoxType_CorrectPredefinedType: SCOPE = 'entity' @@ -4677,8 +4687,8 @@ class IfcAirTerminalBoxType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAirTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -4687,8 +4697,8 @@ class IfcAirTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAirToAirHeatRecovery_CorrectPredefinedType: SCOPE = 'entity' @@ -4697,8 +4707,8 @@ class IfcAirToAirHeatRecovery_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirToAirHeatRecovery_CorrectTypeAssigned: SCOPE = 'entity' @@ -4707,8 +4717,8 @@ class IfcAirToAirHeatRecovery_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcairtoairheatrecoverytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcairtoairheatrecoverytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirToAirHeatRecoveryType_CorrectPredefinedType: SCOPE = 'entity' @@ -4717,8 +4727,8 @@ class IfcAirToAirHeatRecoveryType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAlarm_CorrectPredefinedType: SCOPE = 'entity' @@ -4727,8 +4737,8 @@ class IfcAlarm_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAlarm_CorrectTypeAssigned: SCOPE = 'entity' @@ -4737,8 +4747,8 @@ class IfcAlarm_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcalarmtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcalarmtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAlarmType_CorrectPredefinedType: SCOPE = 'entity' @@ -4747,8 +4757,8 @@ class IfcAlarmType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcApproval_HasIdentifierOrName: SCOPE = 'entity' @@ -4757,8 +4767,8 @@ class IfcApproval_HasIdentifierOrName: @staticmethod def __call__(self): - identifier = getattr(self, 'Identifier', INDETERMINATE) - name = getattr(self, 'Name', INDETERMINATE) + identifier = express_getattr(self, 'Identifier', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) assert (exists(identifier) or exists(name)) is not False class IfcArbitraryClosedProfileDef_WR1: @@ -4768,8 +4778,8 @@ class IfcArbitraryClosedProfileDef_WR1: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) - assert (getattr(outercurve, 'Dim', INDETERMINATE) == 2) is not False + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) + assert (express_getattr(outercurve, 'Dim', INDETERMINATE) == 2) is not False class IfcArbitraryClosedProfileDef_WR2: SCOPE = 'entity' @@ -4778,7 +4788,7 @@ class IfcArbitraryClosedProfileDef_WR2: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) assert (not 'ifc4.ifcline' in typeof(outercurve)) is not False class IfcArbitraryClosedProfileDef_WR3: @@ -4788,7 +4798,7 @@ class IfcArbitraryClosedProfileDef_WR3: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) assert (not 'ifc4.ifcoffsetcurve2d' in typeof(outercurve)) is not False class IfcArbitraryOpenProfileDef_WR11: @@ -4798,7 +4808,7 @@ class IfcArbitraryOpenProfileDef_WR11: @staticmethod def __call__(self): - assert ('ifc4.ifccenterlineprofiledef' in typeof(self) or getattr(self, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False + assert ('ifc4.ifccenterlineprofiledef' in typeof(self) or express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False class IfcArbitraryOpenProfileDef_WR12: SCOPE = 'entity' @@ -4807,8 +4817,8 @@ class IfcArbitraryOpenProfileDef_WR12: @staticmethod def __call__(self): - curve = getattr(self, 'Curve', INDETERMINATE) - assert (getattr(curve, 'Dim', INDETERMINATE) == 2) is not False + curve = express_getattr(self, 'Curve', INDETERMINATE) + assert (express_getattr(curve, 'Dim', INDETERMINATE) == 2) is not False class IfcArbitraryProfileDefWithVoids_WR1: SCOPE = 'entity' @@ -4817,7 +4827,7 @@ class IfcArbitraryProfileDefWithVoids_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'ProfileType', INDETERMINATE) == area) is not False + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == area) is not False class IfcArbitraryProfileDefWithVoids_WR2: SCOPE = 'entity' @@ -4826,8 +4836,8 @@ class IfcArbitraryProfileDefWithVoids_WR2: @staticmethod def __call__(self): - innercurves = getattr(self, 'InnerCurves', INDETERMINATE) - assert (sizeof([temp for temp in innercurves if getattr(temp, 'Dim', INDETERMINATE) != 2]) == 0) is not False + innercurves = express_getattr(self, 'InnerCurves', INDETERMINATE) + assert (sizeof([temp for temp in innercurves if express_getattr(temp, 'Dim', INDETERMINATE) != 2]) == 0) is not False class IfcArbitraryProfileDefWithVoids_WR3: SCOPE = 'entity' @@ -4836,7 +4846,7 @@ class IfcArbitraryProfileDefWithVoids_WR3: @staticmethod def __call__(self): - innercurves = getattr(self, 'InnerCurves', INDETERMINATE) + innercurves = express_getattr(self, 'InnerCurves', INDETERMINATE) assert (sizeof([temp for temp in innercurves if 'ifc4.ifcline' in typeof(temp)]) == 0) is not False class IfcAsymmetricIShapeProfileDef_ValidFlangeThickness: @@ -4846,9 +4856,9 @@ class IfcAsymmetricIShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - bottomflangethickness = getattr(self, 'BottomFlangeThickness', INDETERMINATE) - topflangethickness = getattr(self, 'TopFlangeThickness', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + bottomflangethickness = express_getattr(self, 'BottomFlangeThickness', INDETERMINATE) + topflangethickness = express_getattr(self, 'TopFlangeThickness', INDETERMINATE) assert (not exists(topflangethickness) or bottomflangethickness + topflangethickness < overalldepth) is not False class IfcAsymmetricIShapeProfileDef_ValidWebThickness: @@ -4858,9 +4868,9 @@ class IfcAsymmetricIShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - bottomflangewidth = getattr(self, 'BottomFlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - topflangewidth = getattr(self, 'TopFlangeWidth', INDETERMINATE) + bottomflangewidth = express_getattr(self, 'BottomFlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + topflangewidth = express_getattr(self, 'TopFlangeWidth', INDETERMINATE) assert (webthickness < bottomflangewidth and webthickness < topflangewidth) is not False class IfcAsymmetricIShapeProfileDef_ValidBottomFilletRadius: @@ -4870,9 +4880,9 @@ class IfcAsymmetricIShapeProfileDef_ValidBottomFilletRadius: @staticmethod def __call__(self): - bottomflangewidth = getattr(self, 'BottomFlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - bottomflangefilletradius = getattr(self, 'BottomFlangeFilletRadius', INDETERMINATE) + bottomflangewidth = express_getattr(self, 'BottomFlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + bottomflangefilletradius = express_getattr(self, 'BottomFlangeFilletRadius', INDETERMINATE) assert (not exists(bottomflangefilletradius) or bottomflangefilletradius <= (bottomflangewidth - webthickness) / 2.0) is not False class IfcAsymmetricIShapeProfileDef_ValidTopFilletRadius: @@ -4882,9 +4892,9 @@ class IfcAsymmetricIShapeProfileDef_ValidTopFilletRadius: @staticmethod def __call__(self): - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - topflangewidth = getattr(self, 'TopFlangeWidth', INDETERMINATE) - topflangefilletradius = getattr(self, 'TopFlangeFilletRadius', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + topflangewidth = express_getattr(self, 'TopFlangeWidth', INDETERMINATE) + topflangefilletradius = express_getattr(self, 'TopFlangeFilletRadius', INDETERMINATE) assert (not exists(topflangefilletradius) or topflangefilletradius <= (topflangewidth - webthickness) / 2.0) is not False class IfcAudioVisualAppliance_CorrectPredefinedType: @@ -4894,8 +4904,8 @@ class IfcAudioVisualAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAudioVisualAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -4904,8 +4914,8 @@ class IfcAudioVisualAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcaudiovisualappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcaudiovisualappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAudioVisualApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -4914,8 +4924,8 @@ class IfcAudioVisualApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAxis1Placement_AxisIs3D: SCOPE = 'entity' @@ -4924,8 +4934,8 @@ class IfcAxis1Placement_AxisIs3D: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (not exists(axis) or getattr(axis, 'Dim', INDETERMINATE) == 3) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (not exists(axis) or express_getattr(axis, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis1Placement_LocationIs3D: SCOPE = 'entity' @@ -4934,10 +4944,10 @@ class IfcAxis1Placement_LocationIs3D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False def calc_IfcAxis1Placement_Z(self): - axis = getattr(self, 'Axis', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) return nvl(IfcNormalise(axis), IfcDirection(DirectionRatios=[0.0, 0.0, 1.0])) class IfcAxis2Placement2D_RefDirIs2D: @@ -4947,8 +4957,8 @@ class IfcAxis2Placement2D_RefDirIs2D: @staticmethod def __call__(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(refdirection) or getattr(refdirection, 'Dim', INDETERMINATE) == 2) is not False + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(refdirection) or express_getattr(refdirection, 'Dim', INDETERMINATE) == 2) is not False class IfcAxis2Placement2D_LocationIs2D: SCOPE = 'entity' @@ -4957,10 +4967,10 @@ class IfcAxis2Placement2D_LocationIs2D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False def calc_IfcAxis2Placement2D_P(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) return IfcBuild2Axes(refdirection) class IfcAxis2Placement3D_LocationIs3D: @@ -4970,7 +4980,7 @@ class IfcAxis2Placement3D_LocationIs3D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_AxisIs3D: SCOPE = 'entity' @@ -4979,8 +4989,8 @@ class IfcAxis2Placement3D_AxisIs3D: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (not exists(axis) or getattr(axis, 'Dim', INDETERMINATE) == 3) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (not exists(axis) or express_getattr(axis, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_RefDirIs3D: SCOPE = 'entity' @@ -4989,8 +4999,8 @@ class IfcAxis2Placement3D_RefDirIs3D: @staticmethod def __call__(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(refdirection) or getattr(refdirection, 'Dim', INDETERMINATE) == 3) is not False + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(refdirection) or express_getattr(refdirection, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_AxisToRefDirPosition: SCOPE = 'entity' @@ -4999,9 +5009,9 @@ class IfcAxis2Placement3D_AxisToRefDirPosition: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(axis) or not exists(refdirection) or getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(axis) or not exists(refdirection) or express_getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False class IfcAxis2Placement3D_AxisAndRefDirProvision: SCOPE = 'entity' @@ -5010,13 +5020,13 @@ class IfcAxis2Placement3D_AxisAndRefDirProvision: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) assert (not exists(axis) ^ exists(refdirection)) is not False def calc_IfcAxis2Placement3D_P(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) return IfcBuildAxes(axis, refdirection) class IfcBSplineCurve_SameDim: @@ -5026,16 +5036,16 @@ class IfcBSplineCurve_SameDim: @staticmethod def __call__(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - assert (sizeof([temp for temp in controlpointslist if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + assert (sizeof([temp for temp in controlpointslist if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcBSplineCurve_UpperIndexOnControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(controlpointslist) - 1 def calc_IfcBSplineCurve_ControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - upperindexoncontrolpoints = getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + upperindexoncontrolpoints = express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) return IfcListToArray(controlpointslist, 0, upperindexoncontrolpoints) class IfcBSplineCurveWithKnots_ConsistentBSpline: @@ -5045,11 +5055,11 @@ class IfcBSplineCurveWithKnots_ConsistentBSpline: @staticmethod def __call__(self): - degree = getattr(self, 'Degree', INDETERMINATE) - upperindexoncontrolpoints = getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) - knotmultiplicities = getattr(self, 'KnotMultiplicities', INDETERMINATE) - knots = getattr(self, 'Knots', INDETERMINATE) - upperindexonknots = getattr(self, 'UpperIndexOnKnots', INDETERMINATE) + degree = express_getattr(self, 'Degree', INDETERMINATE) + upperindexoncontrolpoints = express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) + knotmultiplicities = express_getattr(self, 'KnotMultiplicities', INDETERMINATE) + knots = express_getattr(self, 'Knots', INDETERMINATE) + upperindexonknots = express_getattr(self, 'UpperIndexOnKnots', INDETERMINATE) assert IfcConstraintsParamBSpline(degree, upperindexonknots, upperindexoncontrolpoints, knotmultiplicities, knots) is not False class IfcBSplineCurveWithKnots_CorrespondingKnotLists: @@ -5059,26 +5069,26 @@ class IfcBSplineCurveWithKnots_CorrespondingKnotLists: @staticmethod def __call__(self): - knotmultiplicities = getattr(self, 'KnotMultiplicities', INDETERMINATE) - upperindexonknots = getattr(self, 'UpperIndexOnKnots', INDETERMINATE) + knotmultiplicities = express_getattr(self, 'KnotMultiplicities', INDETERMINATE) + upperindexonknots = express_getattr(self, 'UpperIndexOnKnots', INDETERMINATE) assert (sizeof(knotmultiplicities) == upperindexonknots) is not False def calc_IfcBSplineCurveWithKnots_UpperIndexOnKnots(self): - knots = getattr(self, 'Knots', INDETERMINATE) + knots = express_getattr(self, 'Knots', INDETERMINATE) return sizeof(knots) def calc_IfcBSplineSurface_UUpper(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(controlpointslist) - 1 def calc_IfcBSplineSurface_VUpper(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) - 1 def calc_IfcBSplineSurface_ControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - uupper = getattr(self, 'UUpper', INDETERMINATE) - vupper = getattr(self, 'VUpper', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + uupper = express_getattr(self, 'UUpper', INDETERMINATE) + vupper = express_getattr(self, 'VUpper', INDETERMINATE) return IfcMakeArrayOfArray(controlpointslist, 0, uupper, 0, vupper) class IfcBSplineSurfaceWithKnots_UDirectionConstraints: @@ -5088,10 +5098,10 @@ class IfcBSplineSurfaceWithKnots_UDirectionConstraints: @staticmethod def __call__(self): - umultiplicities = getattr(self, 'UMultiplicities', INDETERMINATE) - uknots = getattr(self, 'UKnots', INDETERMINATE) - knotuupper = getattr(self, 'KnotUUpper', INDETERMINATE) - assert IfcConstraintsParamBSpline(getattr(self, 'UDegree', INDETERMINATE), knotuupper, getattr(self, 'UUpper', INDETERMINATE), umultiplicities, uknots) is not False + umultiplicities = express_getattr(self, 'UMultiplicities', INDETERMINATE) + uknots = express_getattr(self, 'UKnots', INDETERMINATE) + knotuupper = express_getattr(self, 'KnotUUpper', INDETERMINATE) + assert IfcConstraintsParamBSpline(express_getattr(self, 'UDegree', INDETERMINATE), knotuupper, express_getattr(self, 'UUpper', INDETERMINATE), umultiplicities, uknots) is not False class IfcBSplineSurfaceWithKnots_VDirectionConstraints: SCOPE = 'entity' @@ -5100,10 +5110,10 @@ class IfcBSplineSurfaceWithKnots_VDirectionConstraints: @staticmethod def __call__(self): - vmultiplicities = getattr(self, 'VMultiplicities', INDETERMINATE) - vknots = getattr(self, 'VKnots', INDETERMINATE) - knotvupper = getattr(self, 'KnotVUpper', INDETERMINATE) - assert IfcConstraintsParamBSpline(getattr(self, 'VDegree', INDETERMINATE), knotvupper, getattr(self, 'VUpper', INDETERMINATE), vmultiplicities, vknots) is not False + vmultiplicities = express_getattr(self, 'VMultiplicities', INDETERMINATE) + vknots = express_getattr(self, 'VKnots', INDETERMINATE) + knotvupper = express_getattr(self, 'KnotVUpper', INDETERMINATE) + assert IfcConstraintsParamBSpline(express_getattr(self, 'VDegree', INDETERMINATE), knotvupper, express_getattr(self, 'VUpper', INDETERMINATE), vmultiplicities, vknots) is not False class IfcBSplineSurfaceWithKnots_CorrespondingULists: SCOPE = 'entity' @@ -5112,8 +5122,8 @@ class IfcBSplineSurfaceWithKnots_CorrespondingULists: @staticmethod def __call__(self): - umultiplicities = getattr(self, 'UMultiplicities', INDETERMINATE) - knotuupper = getattr(self, 'KnotUUpper', INDETERMINATE) + umultiplicities = express_getattr(self, 'UMultiplicities', INDETERMINATE) + knotuupper = express_getattr(self, 'KnotUUpper', INDETERMINATE) assert (sizeof(umultiplicities) == knotuupper) is not False class IfcBSplineSurfaceWithKnots_CorrespondingVLists: @@ -5123,16 +5133,16 @@ class IfcBSplineSurfaceWithKnots_CorrespondingVLists: @staticmethod def __call__(self): - vmultiplicities = getattr(self, 'VMultiplicities', INDETERMINATE) - knotvupper = getattr(self, 'KnotVUpper', INDETERMINATE) + vmultiplicities = express_getattr(self, 'VMultiplicities', INDETERMINATE) + knotvupper = express_getattr(self, 'KnotVUpper', INDETERMINATE) assert (sizeof(vmultiplicities) == knotvupper) is not False def calc_IfcBSplineSurfaceWithKnots_KnotVUpper(self): - vknots = getattr(self, 'VKnots', INDETERMINATE) + vknots = express_getattr(self, 'VKnots', INDETERMINATE) return sizeof(vknots) def calc_IfcBSplineSurfaceWithKnots_KnotUUpper(self): - uknots = getattr(self, 'UKnots', INDETERMINATE) + uknots = express_getattr(self, 'UKnots', INDETERMINATE) return sizeof(uknots) class IfcBeam_CorrectPredefinedType: @@ -5142,8 +5152,8 @@ class IfcBeam_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBeam_CorrectTypeAssigned: SCOPE = 'entity' @@ -5152,8 +5162,8 @@ class IfcBeam_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcbeamtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcbeamtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBeamStandardCase_HasMaterialProfileSetUsage: SCOPE = 'entity' @@ -5162,7 +5172,7 @@ class IfcBeamStandardCase_HasMaterialProfileSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4.ifcrelassociates.relatedobjects') if 'ifc4.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4.ifcmaterialprofilesetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4.ifcrelassociates.relatedobjects') if 'ifc4.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4.ifcmaterialprofilesetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcBeamType_CorrectPredefinedType: SCOPE = 'entity' @@ -5171,8 +5181,8 @@ class IfcBeamType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBlobTexture_SupportedRasterFormat: SCOPE = 'entity' @@ -5181,7 +5191,7 @@ class IfcBlobTexture_SupportedRasterFormat: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['bmp', 'jpg', 'gif', 'png']) is not False + assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['bmp', 'jpg', 'gif', 'png']) is not False class IfcBlobTexture_RasterCodeByteStream: SCOPE = 'entity' @@ -5190,7 +5200,7 @@ class IfcBlobTexture_RasterCodeByteStream: @staticmethod def __call__(self): - rastercode = getattr(self, 'RasterCode', INDETERMINATE) + rastercode = express_getattr(self, 'RasterCode', INDETERMINATE) assert (blength(rastercode) % 8 == 0) is not False class IfcBoiler_CorrectPredefinedType: @@ -5200,8 +5210,8 @@ class IfcBoiler_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBoiler_CorrectTypeAssigned: SCOPE = 'entity' @@ -5210,8 +5220,8 @@ class IfcBoiler_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcboilertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcboilertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBoilerType_CorrectPredefinedType: SCOPE = 'entity' @@ -5220,8 +5230,8 @@ class IfcBoilerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBooleanClippingResult_FirstOperandType: SCOPE = 'entity' @@ -5230,7 +5240,7 @@ class IfcBooleanClippingResult_FirstOperandType: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) assert ('ifc4.ifcsweptareasolid' in typeof(firstoperand) or 'ifc4.ifcsweptdiscsolid' in typeof(firstoperand) or 'ifc4.ifcbooleanclippingresult' in typeof(firstoperand)) is not False class IfcBooleanClippingResult_SecondOperandType: @@ -5240,7 +5250,7 @@ class IfcBooleanClippingResult_SecondOperandType: @staticmethod def __call__(self): - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) assert ('ifc4.ifchalfspacesolid' in typeof(secondoperand)) is not False class IfcBooleanClippingResult_OperatorType: @@ -5250,7 +5260,7 @@ class IfcBooleanClippingResult_OperatorType: @staticmethod def __call__(self): - operator = getattr(self, 'Operator', INDETERMINATE) + operator = express_getattr(self, 'Operator', INDETERMINATE) assert (operator == difference) is not False class IfcBooleanResult_SameDim: @@ -5260,9 +5270,9 @@ class IfcBooleanResult_SameDim: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) - assert (getattr(firstoperand, 'Dim', INDETERMINATE) == getattr(secondoperand, 'Dim', INDETERMINATE)) is not False + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) + assert (express_getattr(firstoperand, 'Dim', INDETERMINATE) == express_getattr(secondoperand, 'Dim', INDETERMINATE)) is not False class IfcBooleanResult_FirstOperandClosed: SCOPE = 'entity' @@ -5271,8 +5281,8 @@ class IfcBooleanResult_FirstOperandClosed: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - assert (not 'ifc4.ifctessellatedfaceset' in typeof(firstoperand) or (exists(getattr(firstoperand, 'Closed', INDETERMINATE)) and getattr(firstoperand, 'Closed', INDETERMINATE))) is not False + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + assert (not 'ifc4.ifctessellatedfaceset' in typeof(firstoperand) or (exists(express_getattr(firstoperand, 'Closed', INDETERMINATE)) and express_getattr(firstoperand, 'Closed', INDETERMINATE))) is not False class IfcBooleanResult_SecondOperandClosed: SCOPE = 'entity' @@ -5281,12 +5291,12 @@ class IfcBooleanResult_SecondOperandClosed: @staticmethod def __call__(self): - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) - assert (not 'ifc4.ifctessellatedfaceset' in typeof(secondoperand) or (exists(getattr(secondoperand, 'Closed', INDETERMINATE)) and getattr(secondoperand, 'Closed', INDETERMINATE))) is not False + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) + assert (not 'ifc4.ifctessellatedfaceset' in typeof(secondoperand) or (exists(express_getattr(secondoperand, 'Closed', INDETERMINATE)) and express_getattr(secondoperand, 'Closed', INDETERMINATE))) is not False def calc_IfcBooleanResult_Dim(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - return getattr(firstoperand, 'Dim', INDETERMINATE) + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + return express_getattr(firstoperand, 'Dim', INDETERMINATE) class IfcBoundaryCurve_IsClosed: SCOPE = 'entity' @@ -5295,7 +5305,7 @@ class IfcBoundaryCurve_IsClosed: @staticmethod def __call__(self): - assert getattr(self, 'ClosedCurve', INDETERMINATE) is not False + assert express_getattr(self, 'ClosedCurve', INDETERMINATE) is not False def calc_IfcBoundingBox_Dim(self): return 3 @@ -5307,7 +5317,7 @@ class IfcBoxedHalfSpace_UnboundedSurface: @staticmethod def __call__(self): - assert (not 'ifc4.ifccurveboundedplane' in typeof(getattr(self, 'BaseSurface', INDETERMINATE))) is not False + assert (not 'ifc4.ifccurveboundedplane' in typeof(express_getattr(self, 'BaseSurface', INDETERMINATE))) is not False class IfcBuildingElement_MaxOneMaterialAssociation: SCOPE = 'entity' @@ -5316,7 +5326,7 @@ class IfcBuildingElement_MaxOneMaterialAssociation: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'HasAssociations', INDETERMINATE) if 'ifc4.ifcrelassociatesmaterial' in typeof(temp)]) <= 1) is not False + assert (sizeof([temp for temp in express_getattr(self, 'HasAssociations', INDETERMINATE) if 'ifc4.ifcrelassociatesmaterial' in typeof(temp)]) <= 1) is not False class IfcBuildingElementPart_CorrectPredefinedType: SCOPE = 'entity' @@ -5325,8 +5335,8 @@ class IfcBuildingElementPart_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuildingElementPart_CorrectTypeAssigned: SCOPE = 'entity' @@ -5335,8 +5345,8 @@ class IfcBuildingElementPart_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcbuildingelementparttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcbuildingelementparttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBuildingElementPartType_CorrectPredefinedType: SCOPE = 'entity' @@ -5345,8 +5355,8 @@ class IfcBuildingElementPartType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBuildingElementProxy_HasObjectName: SCOPE = 'entity' @@ -5355,7 +5365,7 @@ class IfcBuildingElementProxy_HasObjectName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcBuildingElementProxy_CorrectPredefinedType: SCOPE = 'entity' @@ -5364,8 +5374,8 @@ class IfcBuildingElementProxy_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuildingElementProxy_CorrectTypeAssigned: SCOPE = 'entity' @@ -5374,8 +5384,8 @@ class IfcBuildingElementProxy_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcbuildingelementproxytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcbuildingelementproxytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBuildingElementProxyType_CorrectPredefinedType: SCOPE = 'entity' @@ -5384,8 +5394,8 @@ class IfcBuildingElementProxyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBurner_CorrectPredefinedType: SCOPE = 'entity' @@ -5394,8 +5404,8 @@ class IfcBurner_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBurner_CorrectTypeAssigned: SCOPE = 'entity' @@ -5404,8 +5414,8 @@ class IfcBurner_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcburnertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcburnertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBurnerType_CorrectPredefinedType: SCOPE = 'entity' @@ -5414,8 +5424,8 @@ class IfcBurnerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCShapeProfileDef_ValidGirth: SCOPE = 'entity' @@ -5424,8 +5434,8 @@ class IfcCShapeProfileDef_ValidGirth: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - girth = getattr(self, 'Girth', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + girth = express_getattr(self, 'Girth', INDETERMINATE) assert (girth < depth / 2.0) is not False class IfcCShapeProfileDef_ValidInternalFilletRadius: @@ -5435,10 +5445,10 @@ class IfcCShapeProfileDef_ValidInternalFilletRadius: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - internalfilletradius = getattr(self, 'InternalFilletRadius', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + internalfilletradius = express_getattr(self, 'InternalFilletRadius', INDETERMINATE) assert (not exists(internalfilletradius) or (internalfilletradius <= width / 2.0 - wallthickness and internalfilletradius <= depth / 2.0 - wallthickness)) is not False class IfcCShapeProfileDef_ValidWallThickness: @@ -5448,9 +5458,9 @@ class IfcCShapeProfileDef_ValidWallThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) assert (wallthickness < width / 2.0 and wallthickness < depth / 2.0) is not False class IfcCableCarrierFitting_CorrectPredefinedType: @@ -5460,8 +5470,8 @@ class IfcCableCarrierFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableCarrierFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -5470,8 +5480,8 @@ class IfcCableCarrierFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifccablecarrierfittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifccablecarrierfittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableCarrierFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -5480,8 +5490,8 @@ class IfcCableCarrierFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableCarrierSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -5490,8 +5500,8 @@ class IfcCableCarrierSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableCarrierSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -5500,8 +5510,8 @@ class IfcCableCarrierSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifccablecarriersegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifccablecarriersegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableCarrierSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -5510,8 +5520,8 @@ class IfcCableCarrierSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -5520,8 +5530,8 @@ class IfcCableFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -5530,8 +5540,8 @@ class IfcCableFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifccablefittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifccablefittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -5540,8 +5550,8 @@ class IfcCableFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -5550,8 +5560,8 @@ class IfcCableSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -5560,8 +5570,8 @@ class IfcCableSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifccablesegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifccablesegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -5570,8 +5580,8 @@ class IfcCableSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCartesianPoint_CP2Dor3D: SCOPE = 'entity' @@ -5580,11 +5590,11 @@ class IfcCartesianPoint_CP2Dor3D: @staticmethod def __call__(self): - coordinates = getattr(self, 'Coordinates', INDETERMINATE) + coordinates = express_getattr(self, 'Coordinates', INDETERMINATE) assert (hiindex(coordinates) >= 2) is not False def calc_IfcCartesianPoint_Dim(self): - coordinates = getattr(self, 'Coordinates', INDETERMINATE) + coordinates = express_getattr(self, 'Coordinates', INDETERMINATE) return hiindex(coordinates) def calc_IfcCartesianPointList_Dim(self): @@ -5597,16 +5607,16 @@ class IfcCartesianTransformationOperator_ScaleGreaterZero: @staticmethod def __call__(self): - scl = getattr(self, 'Scl', INDETERMINATE) + scl = express_getattr(self, 'Scl', INDETERMINATE) assert (scl > 0.0) is not False def calc_IfcCartesianTransformationOperator_Scl(self): - scale = getattr(self, 'Scale', INDETERMINATE) + scale = express_getattr(self, 'Scale', INDETERMINATE) return nvl(scale, 1.0) def calc_IfcCartesianTransformationOperator_Dim(self): - localorigin = getattr(self, 'LocalOrigin', INDETERMINATE) - return getattr(localorigin, 'Dim', INDETERMINATE) + localorigin = express_getattr(self, 'LocalOrigin', INDETERMINATE) + return express_getattr(localorigin, 'Dim', INDETERMINATE) class IfcCartesianTransformationOperator2D_DimEqual2: SCOPE = 'entity' @@ -5615,7 +5625,7 @@ class IfcCartesianTransformationOperator2D_DimEqual2: @staticmethod def __call__(self): - assert (getattr(self, 'Dim', INDETERMINATE) == 2) is not False + assert (express_getattr(self, 'Dim', INDETERMINATE) == 2) is not False class IfcCartesianTransformationOperator2D_Axis1Is2D: SCOPE = 'entity' @@ -5624,7 +5634,7 @@ class IfcCartesianTransformationOperator2D_Axis1Is2D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis1', INDETERMINATE)) or getattr(getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (not exists(express_getattr(self, 'Axis1', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False class IfcCartesianTransformationOperator2D_Axis2Is2D: SCOPE = 'entity' @@ -5633,10 +5643,10 @@ class IfcCartesianTransformationOperator2D_Axis2Is2D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis2', INDETERMINATE)) or getattr(getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (not exists(express_getattr(self, 'Axis2', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False def calc_IfcCartesianTransformationOperator2D_U(self): - return IfcBaseAxis(2, getattr(self, 'Axis1', INDETERMINATE), getattr(self, 'Axis2', INDETERMINATE), None) + return IfcBaseAxis(2, express_getattr(self, 'Axis1', INDETERMINATE), express_getattr(self, 'Axis2', INDETERMINATE), None) class IfcCartesianTransformationOperator2DnonUniform_Scale2GreaterZero: SCOPE = 'entity' @@ -5645,12 +5655,12 @@ class IfcCartesianTransformationOperator2DnonUniform_Scale2GreaterZero: @staticmethod def __call__(self): - scl2 = getattr(self, 'Scl2', INDETERMINATE) + scl2 = express_getattr(self, 'Scl2', INDETERMINATE) assert (scl2 > 0.0) is not False def calc_IfcCartesianTransformationOperator2DnonUniform_Scl2(self): - scale2 = getattr(self, 'Scale2', INDETERMINATE) - return nvl(scale2, getattr(self, 'Scl', INDETERMINATE)) + scale2 = express_getattr(self, 'Scale2', INDETERMINATE) + return nvl(scale2, express_getattr(self, 'Scl', INDETERMINATE)) class IfcCartesianTransformationOperator3D_DimIs3D: SCOPE = 'entity' @@ -5659,7 +5669,7 @@ class IfcCartesianTransformationOperator3D_DimIs3D: @staticmethod def __call__(self): - assert (getattr(self, 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(self, 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_Axis1Is3D: SCOPE = 'entity' @@ -5668,7 +5678,7 @@ class IfcCartesianTransformationOperator3D_Axis1Is3D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis1', INDETERMINATE)) or getattr(getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (not exists(express_getattr(self, 'Axis1', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_Axis2Is3D: SCOPE = 'entity' @@ -5677,7 +5687,7 @@ class IfcCartesianTransformationOperator3D_Axis2Is3D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis2', INDETERMINATE)) or getattr(getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (not exists(express_getattr(self, 'Axis2', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_Axis3Is3D: SCOPE = 'entity' @@ -5686,12 +5696,12 @@ class IfcCartesianTransformationOperator3D_Axis3Is3D: @staticmethod def __call__(self): - axis3 = getattr(self, 'Axis3', INDETERMINATE) - assert (not exists(axis3) or getattr(axis3, 'Dim', INDETERMINATE) == 3) is not False + axis3 = express_getattr(self, 'Axis3', INDETERMINATE) + assert (not exists(axis3) or express_getattr(axis3, 'Dim', INDETERMINATE) == 3) is not False def calc_IfcCartesianTransformationOperator3D_U(self): - axis3 = getattr(self, 'Axis3', INDETERMINATE) - return IfcBaseAxis(3, getattr(self, 'Axis1', INDETERMINATE), getattr(self, 'Axis2', INDETERMINATE), axis3) + axis3 = express_getattr(self, 'Axis3', INDETERMINATE) + return IfcBaseAxis(3, express_getattr(self, 'Axis1', INDETERMINATE), express_getattr(self, 'Axis2', INDETERMINATE), axis3) class IfcCartesianTransformationOperator3DnonUniform_Scale2GreaterZero: SCOPE = 'entity' @@ -5700,7 +5710,7 @@ class IfcCartesianTransformationOperator3DnonUniform_Scale2GreaterZero: @staticmethod def __call__(self): - scl2 = getattr(self, 'Scl2', INDETERMINATE) + scl2 = express_getattr(self, 'Scl2', INDETERMINATE) assert (scl2 > 0.0) is not False class IfcCartesianTransformationOperator3DnonUniform_Scale3GreaterZero: @@ -5710,16 +5720,16 @@ class IfcCartesianTransformationOperator3DnonUniform_Scale3GreaterZero: @staticmethod def __call__(self): - scl3 = getattr(self, 'Scl3', INDETERMINATE) + scl3 = express_getattr(self, 'Scl3', INDETERMINATE) assert (scl3 > 0.0) is not False def calc_IfcCartesianTransformationOperator3DnonUniform_Scl2(self): - scale2 = getattr(self, 'Scale2', INDETERMINATE) - return nvl(scale2, getattr(self, 'Scl', INDETERMINATE)) + scale2 = express_getattr(self, 'Scale2', INDETERMINATE) + return nvl(scale2, express_getattr(self, 'Scl', INDETERMINATE)) def calc_IfcCartesianTransformationOperator3DnonUniform_Scl3(self): - scale3 = getattr(self, 'Scale3', INDETERMINATE) - return nvl(scale3, getattr(self, 'Scl', INDETERMINATE)) + scale3 = express_getattr(self, 'Scale3', INDETERMINATE) + return nvl(scale3, express_getattr(self, 'Scl', INDETERMINATE)) class IfcChiller_CorrectPredefinedType: SCOPE = 'entity' @@ -5728,8 +5738,8 @@ class IfcChiller_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcChiller_CorrectTypeAssigned: SCOPE = 'entity' @@ -5738,8 +5748,8 @@ class IfcChiller_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcchillertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcchillertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcChillerType_CorrectPredefinedType: SCOPE = 'entity' @@ -5748,8 +5758,8 @@ class IfcChillerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcChimney_CorrectPredefinedType: SCOPE = 'entity' @@ -5758,8 +5768,8 @@ class IfcChimney_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcChimney_CorrectTypeAssigned: SCOPE = 'entity' @@ -5768,8 +5778,8 @@ class IfcChimney_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcchimneytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcchimneytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcChimneyType_CorrectPredefinedType: SCOPE = 'entity' @@ -5778,8 +5788,8 @@ class IfcChimneyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCircleHollowProfileDef_WR1: SCOPE = 'entity' @@ -5788,8 +5798,8 @@ class IfcCircleHollowProfileDef_WR1: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - assert (wallthickness < getattr(self, 'Radius', INDETERMINATE)) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + assert (wallthickness < express_getattr(self, 'Radius', INDETERMINATE)) is not False class IfcCoil_CorrectPredefinedType: SCOPE = 'entity' @@ -5798,8 +5808,8 @@ class IfcCoil_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCoil_CorrectTypeAssigned: SCOPE = 'entity' @@ -5808,8 +5818,8 @@ class IfcCoil_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifccoiltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifccoiltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoilType_CorrectPredefinedType: SCOPE = 'entity' @@ -5818,8 +5828,8 @@ class IfcCoilType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcColumn_CorrectPredefinedType: SCOPE = 'entity' @@ -5828,8 +5838,8 @@ class IfcColumn_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcColumn_CorrectTypeAssigned: SCOPE = 'entity' @@ -5838,8 +5848,8 @@ class IfcColumn_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifccolumntype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifccolumntype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcColumnStandardCase_HasMaterialProfileSetUsage: SCOPE = 'entity' @@ -5848,7 +5858,7 @@ class IfcColumnStandardCase_HasMaterialProfileSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4.ifcrelassociates.relatedobjects') if 'ifc4.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4.ifcmaterialprofilesetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4.ifcrelassociates.relatedobjects') if 'ifc4.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4.ifcmaterialprofilesetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcColumnType_CorrectPredefinedType: SCOPE = 'entity' @@ -5857,8 +5867,8 @@ class IfcColumnType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCommunicationsAppliance_CorrectPredefinedType: SCOPE = 'entity' @@ -5867,8 +5877,8 @@ class IfcCommunicationsAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCommunicationsAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -5877,8 +5887,8 @@ class IfcCommunicationsAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifccommunicationsappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifccommunicationsappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCommunicationsApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -5887,8 +5897,8 @@ class IfcCommunicationsApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcComplexProperty_WR21: SCOPE = 'entity' @@ -5897,7 +5907,7 @@ class IfcComplexProperty_WR21: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert (sizeof([temp for temp in hasproperties if self == temp]) == 0) is not False class IfcComplexProperty_WR22: @@ -5907,7 +5917,7 @@ class IfcComplexProperty_WR22: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert IfcUniquePropertyName(hasproperties) is not False class IfcComplexPropertyTemplate_UniquePropertyNames: @@ -5917,7 +5927,7 @@ class IfcComplexPropertyTemplate_UniquePropertyNames: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert IfcUniquePropertyTemplateNames(haspropertytemplates) is not False class IfcComplexPropertyTemplate_NoSelfReference: @@ -5927,7 +5937,7 @@ class IfcComplexPropertyTemplate_NoSelfReference: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert (sizeof([temp for temp in haspropertytemplates if self == temp]) == 0) is not False class IfcCompositeCurve_CurveContinuous: @@ -5937,9 +5947,9 @@ class IfcCompositeCurve_CurveContinuous: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) - closedcurve = getattr(self, 'ClosedCurve', INDETERMINATE) - assert (not closedcurve and sizeof([temp for temp in segments if getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 1 or (closedcurve and sizeof([temp for temp in segments if getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 0)) is not False + segments = express_getattr(self, 'Segments', INDETERMINATE) + closedcurve = express_getattr(self, 'ClosedCurve', INDETERMINATE) + assert (not closedcurve and sizeof([temp for temp in segments if express_getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 1 or (closedcurve and sizeof([temp for temp in segments if express_getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 0)) is not False class IfcCompositeCurve_SameDim: SCOPE = 'entity' @@ -5948,17 +5958,17 @@ class IfcCompositeCurve_SameDim: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) - assert (sizeof([temp for temp in segments if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(segments, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + segments = express_getattr(self, 'Segments', INDETERMINATE) + assert (sizeof([temp for temp in segments if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(segments, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcCompositeCurve_NSegments(self): - segments = getattr(self, 'Segments', INDETERMINATE) + segments = express_getattr(self, 'Segments', INDETERMINATE) return sizeof(segments) def calc_IfcCompositeCurve_ClosedCurve(self): - segments = getattr(self, 'Segments', INDETERMINATE) - nsegments = getattr(self, 'NSegments', INDETERMINATE) - return getattr(express_getitem(segments, nsegments - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Transition', INDETERMINATE) != discontinuous + segments = express_getattr(self, 'Segments', INDETERMINATE) + nsegments = express_getattr(self, 'NSegments', INDETERMINATE) + return express_getattr(express_getitem(segments, nsegments - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Transition', INDETERMINATE) != discontinuous class IfcCompositeCurveOnSurface_SameSurface: SCOPE = 'entity' @@ -5967,7 +5977,7 @@ class IfcCompositeCurveOnSurface_SameSurface: @staticmethod def __call__(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) assert (sizeof(basissurface) > 0) is not False def calc_IfcCompositeCurveOnSurface_BasisSurface(self): @@ -5980,12 +5990,12 @@ class IfcCompositeCurveSegment_ParentIsBoundedCurve: @staticmethod def __call__(self): - parentcurve = getattr(self, 'ParentCurve', INDETERMINATE) + parentcurve = express_getattr(self, 'ParentCurve', INDETERMINATE) assert ('ifc4.ifcboundedcurve' in typeof(parentcurve)) is not False def calc_IfcCompositeCurveSegment_Dim(self): - parentcurve = getattr(self, 'ParentCurve', INDETERMINATE) - return getattr(parentcurve, 'Dim', INDETERMINATE) + parentcurve = express_getattr(self, 'ParentCurve', INDETERMINATE) + return express_getattr(parentcurve, 'Dim', INDETERMINATE) class IfcCompositeProfileDef_InvariantProfileType: SCOPE = 'entity' @@ -5994,8 +6004,8 @@ class IfcCompositeProfileDef_InvariantProfileType: @staticmethod def __call__(self): - profiles = getattr(self, 'Profiles', INDETERMINATE) - assert (sizeof([temp for temp in profiles if getattr(temp, 'ProfileType', INDETERMINATE) != getattr(express_getitem(profiles, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE)]) == 0) is not False + profiles = express_getattr(self, 'Profiles', INDETERMINATE) + assert (sizeof([temp for temp in profiles if express_getattr(temp, 'ProfileType', INDETERMINATE) != express_getattr(express_getitem(profiles, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcCompositeProfileDef_NoRecursion: SCOPE = 'entity' @@ -6004,7 +6014,7 @@ class IfcCompositeProfileDef_NoRecursion: @staticmethod def __call__(self): - profiles = getattr(self, 'Profiles', INDETERMINATE) + profiles = express_getattr(self, 'Profiles', INDETERMINATE) assert (sizeof([temp for temp in profiles if 'ifc4.ifccompositeprofiledef' in typeof(temp)]) == 0) is not False class IfcCompressor_CorrectPredefinedType: @@ -6014,8 +6024,8 @@ class IfcCompressor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCompressor_CorrectTypeAssigned: SCOPE = 'entity' @@ -6024,8 +6034,8 @@ class IfcCompressor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifccompressortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifccompressortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCompressorType_CorrectPredefinedType: SCOPE = 'entity' @@ -6034,8 +6044,8 @@ class IfcCompressorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCondenser_CorrectPredefinedType: SCOPE = 'entity' @@ -6044,8 +6054,8 @@ class IfcCondenser_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCondenser_CorrectTypeAssigned: SCOPE = 'entity' @@ -6054,8 +6064,8 @@ class IfcCondenser_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifccondensertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifccondensertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCondenserType_CorrectPredefinedType: SCOPE = 'entity' @@ -6064,8 +6074,8 @@ class IfcCondenserType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcConstraint_WR11: SCOPE = 'entity' @@ -6074,8 +6084,8 @@ class IfcConstraint_WR11: @staticmethod def __call__(self): - constraintgrade = getattr(self, 'ConstraintGrade', INDETERMINATE) - assert (constraintgrade != getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) or (constraintgrade == getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedGrade', INDETERMINATE)))) is not False + constraintgrade = express_getattr(self, 'ConstraintGrade', INDETERMINATE) + assert (constraintgrade != express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) or (constraintgrade == express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedGrade', INDETERMINATE)))) is not False class IfcConstructionEquipmentResource_CorrectPredefinedType: SCOPE = 'entity' @@ -6084,8 +6094,8 @@ class IfcConstructionEquipmentResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionEquipmentResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -6094,8 +6104,8 @@ class IfcConstructionEquipmentResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcConstructionMaterialResource_CorrectPredefinedType: SCOPE = 'entity' @@ -6104,8 +6114,8 @@ class IfcConstructionMaterialResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionMaterialResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -6114,8 +6124,8 @@ class IfcConstructionMaterialResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcConstructionProductResource_CorrectPredefinedType: SCOPE = 'entity' @@ -6124,8 +6134,8 @@ class IfcConstructionProductResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionProductResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -6134,8 +6144,8 @@ class IfcConstructionProductResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcController_CorrectPredefinedType: SCOPE = 'entity' @@ -6144,8 +6154,8 @@ class IfcController_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcController_CorrectTypeAssigned: SCOPE = 'entity' @@ -6154,8 +6164,8 @@ class IfcController_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifccontrollertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifccontrollertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcControllerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6164,8 +6174,8 @@ class IfcControllerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCooledBeam_CorrectPredefinedType: SCOPE = 'entity' @@ -6174,8 +6184,8 @@ class IfcCooledBeam_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCooledBeam_CorrectTypeAssigned: SCOPE = 'entity' @@ -6184,8 +6194,8 @@ class IfcCooledBeam_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifccooledbeamtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifccooledbeamtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCooledBeamType_CorrectPredefinedType: SCOPE = 'entity' @@ -6194,8 +6204,8 @@ class IfcCooledBeamType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCoolingTower_CorrectPredefinedType: SCOPE = 'entity' @@ -6204,8 +6214,8 @@ class IfcCoolingTower_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCoolingTower_CorrectTypeAssigned: SCOPE = 'entity' @@ -6214,8 +6224,8 @@ class IfcCoolingTower_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifccoolingtowertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifccoolingtowertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoolingTowerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6224,8 +6234,8 @@ class IfcCoolingTowerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCovering_CorrectPredefinedType: SCOPE = 'entity' @@ -6234,8 +6244,8 @@ class IfcCovering_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCovering_CorrectTypeAssigned: SCOPE = 'entity' @@ -6244,8 +6254,8 @@ class IfcCovering_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifccoveringtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifccoveringtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoveringType_CorrectPredefinedType: SCOPE = 'entity' @@ -6254,8 +6264,8 @@ class IfcCoveringType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCrewResource_CorrectPredefinedType: SCOPE = 'entity' @@ -6264,8 +6274,8 @@ class IfcCrewResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCrewResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -6274,8 +6284,8 @@ class IfcCrewResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False def calc_IfcCsgPrimitive3D_Dim(self): return 3 @@ -6287,8 +6297,8 @@ class IfcCurtainWall_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCurtainWall_CorrectTypeAssigned: SCOPE = 'entity' @@ -6297,8 +6307,8 @@ class IfcCurtainWall_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifccurtainwalltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifccurtainwalltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCurtainWallType_CorrectPredefinedType: SCOPE = 'entity' @@ -6307,8 +6317,8 @@ class IfcCurtainWallType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcCurve_Dim(self): return IfcCurveDim(self) @@ -6320,7 +6330,7 @@ class IfcCurveStyle_MeasureOfWidth: @staticmethod def __call__(self): - curvewidth = getattr(self, 'CurveWidth', INDETERMINATE) + curvewidth = express_getattr(self, 'CurveWidth', INDETERMINATE) assert (not exists(curvewidth) or 'ifc4.ifcpositivelengthmeasure' in typeof(curvewidth) or ('ifc4.ifcdescriptivemeasure' in typeof(curvewidth) and curvewidth == 'bylayer')) is not False class IfcCurveStyle_IdentifiableCurveStyle: @@ -6330,9 +6340,9 @@ class IfcCurveStyle_IdentifiableCurveStyle: @staticmethod def __call__(self): - curvefont = getattr(self, 'CurveFont', INDETERMINATE) - curvewidth = getattr(self, 'CurveWidth', INDETERMINATE) - curvecolour = getattr(self, 'CurveColour', INDETERMINATE) + curvefont = express_getattr(self, 'CurveFont', INDETERMINATE) + curvewidth = express_getattr(self, 'CurveWidth', INDETERMINATE) + curvecolour = express_getattr(self, 'CurveColour', INDETERMINATE) assert (exists(curvefont) or exists(curvewidth) or exists(curvecolour)) is not False class IfcCurveStyleFontPattern_VisibleLengthGreaterEqualZero: @@ -6342,7 +6352,7 @@ class IfcCurveStyleFontPattern_VisibleLengthGreaterEqualZero: @staticmethod def __call__(self): - visiblesegmentlength = getattr(self, 'VisibleSegmentLength', INDETERMINATE) + visiblesegmentlength = express_getattr(self, 'VisibleSegmentLength', INDETERMINATE) assert (visiblesegmentlength >= 0.0) is not False class IfcDamper_CorrectPredefinedType: @@ -6352,8 +6362,8 @@ class IfcDamper_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDamper_CorrectTypeAssigned: SCOPE = 'entity' @@ -6362,8 +6372,8 @@ class IfcDamper_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcdampertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcdampertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDamperType_CorrectPredefinedType: SCOPE = 'entity' @@ -6372,8 +6382,8 @@ class IfcDamperType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDerivedProfileDef_InvariantProfileType: SCOPE = 'entity' @@ -6382,8 +6392,8 @@ class IfcDerivedProfileDef_InvariantProfileType: @staticmethod def __call__(self): - parentprofile = getattr(self, 'ParentProfile', INDETERMINATE) - assert (getattr(self, 'ProfileType', INDETERMINATE) == getattr(parentprofile, 'ProfileType', INDETERMINATE)) is not False + parentprofile = express_getattr(self, 'ParentProfile', INDETERMINATE) + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(parentprofile, 'ProfileType', INDETERMINATE)) is not False class IfcDerivedUnit_WR1: SCOPE = 'entity' @@ -6392,8 +6402,8 @@ class IfcDerivedUnit_WR1: @staticmethod def __call__(self): - elements = getattr(self, 'Elements', INDETERMINATE) - assert (sizeof(elements) > 1 or (sizeof(elements) == 1 and getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) != 1)) is not False + elements = express_getattr(self, 'Elements', INDETERMINATE) + assert (sizeof(elements) > 1 or (sizeof(elements) == 1 and express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) != 1)) is not False class IfcDerivedUnit_WR2: SCOPE = 'entity' @@ -6402,11 +6412,11 @@ class IfcDerivedUnit_WR2: @staticmethod def __call__(self): - unittype = getattr(self, 'UnitType', INDETERMINATE) - assert (unittype != getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) or (unittype == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedType', INDETERMINATE)))) is not False + unittype = express_getattr(self, 'UnitType', INDETERMINATE) + assert (unittype != express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) or (unittype == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedType', INDETERMINATE)))) is not False def calc_IfcDerivedUnit_Dimensions(self): - elements = getattr(self, 'Elements', INDETERMINATE) + elements = express_getattr(self, 'Elements', INDETERMINATE) return IfcDeriveDimensionalExponents(elements) class IfcDirection_MagnitudeGreaterZero: @@ -6416,11 +6426,11 @@ class IfcDirection_MagnitudeGreaterZero: @staticmethod def __call__(self): - directionratios = getattr(self, 'DirectionRatios', INDETERMINATE) + directionratios = express_getattr(self, 'DirectionRatios', INDETERMINATE) assert (sizeof([tmp for tmp in directionratios if tmp != 0.0]) > 0) is not False def calc_IfcDirection_Dim(self): - directionratios = getattr(self, 'DirectionRatios', INDETERMINATE) + directionratios = express_getattr(self, 'DirectionRatios', INDETERMINATE) return hiindex(directionratios) class IfcDiscreteAccessory_CorrectPredefinedType: @@ -6430,8 +6440,8 @@ class IfcDiscreteAccessory_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDiscreteAccessory_CorrectTypeAssigned: SCOPE = 'entity' @@ -6440,8 +6450,8 @@ class IfcDiscreteAccessory_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcdiscreteaccessorytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcdiscreteaccessorytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDiscreteAccessoryType_CorrectPredefinedType: SCOPE = 'entity' @@ -6450,8 +6460,8 @@ class IfcDiscreteAccessoryType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDistributionChamberElement_CorrectPredefinedType: SCOPE = 'entity' @@ -6460,8 +6470,8 @@ class IfcDistributionChamberElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDistributionChamberElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -6470,8 +6480,8 @@ class IfcDistributionChamberElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcdistributionchamberelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcdistributionchamberelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDistributionChamberElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -6480,8 +6490,8 @@ class IfcDistributionChamberElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDocumentReference_WR1: SCOPE = 'entity' @@ -6490,8 +6500,8 @@ class IfcDocumentReference_WR1: @staticmethod def __call__(self): - name = getattr(self, 'Name', INDETERMINATE) - referenceddocument = getattr(self, 'ReferencedDocument', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) + referenceddocument = express_getattr(self, 'ReferencedDocument', INDETERMINATE) assert exists(name) ^ exists(referenceddocument) is not False class IfcDoor_CorrectStyleAssigned: @@ -6501,8 +6511,8 @@ class IfcDoor_CorrectStyleAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcdoortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcdoortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDoorLiningProperties_WR31: SCOPE = 'entity' @@ -6511,8 +6521,8 @@ class IfcDoorLiningProperties_WR31: @staticmethod def __call__(self): - liningdepth = getattr(self, 'LiningDepth', INDETERMINATE) - liningthickness = getattr(self, 'LiningThickness', INDETERMINATE) + liningdepth = express_getattr(self, 'LiningDepth', INDETERMINATE) + liningthickness = express_getattr(self, 'LiningThickness', INDETERMINATE) assert (not (exists(liningdepth) and (not exists(liningthickness)))) is not False class IfcDoorLiningProperties_WR32: @@ -6522,8 +6532,8 @@ class IfcDoorLiningProperties_WR32: @staticmethod def __call__(self): - thresholddepth = getattr(self, 'ThresholdDepth', INDETERMINATE) - thresholdthickness = getattr(self, 'ThresholdThickness', INDETERMINATE) + thresholddepth = express_getattr(self, 'ThresholdDepth', INDETERMINATE) + thresholdthickness = express_getattr(self, 'ThresholdThickness', INDETERMINATE) assert (not (exists(thresholddepth) and (not exists(thresholdthickness)))) is not False class IfcDoorLiningProperties_WR33: @@ -6533,8 +6543,8 @@ class IfcDoorLiningProperties_WR33: @staticmethod def __call__(self): - transomthickness = getattr(self, 'TransomThickness', INDETERMINATE) - transomoffset = getattr(self, 'TransomOffset', INDETERMINATE) + transomthickness = express_getattr(self, 'TransomThickness', INDETERMINATE) + transomoffset = express_getattr(self, 'TransomOffset', INDETERMINATE) assert (exists(transomoffset) and exists(transomthickness)) ^ (not exists(transomoffset) and (not exists(transomthickness))) is not False class IfcDoorLiningProperties_WR34: @@ -6544,8 +6554,8 @@ class IfcDoorLiningProperties_WR34: @staticmethod def __call__(self): - casingthickness = getattr(self, 'CasingThickness', INDETERMINATE) - casingdepth = getattr(self, 'CasingDepth', INDETERMINATE) + casingthickness = express_getattr(self, 'CasingThickness', INDETERMINATE) + casingdepth = express_getattr(self, 'CasingDepth', INDETERMINATE) assert (exists(casingdepth) and exists(casingthickness)) ^ (not exists(casingdepth) and (not exists(casingthickness))) is not False class IfcDoorLiningProperties_WR35: @@ -6555,7 +6565,7 @@ class IfcDoorLiningProperties_WR35: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4.ifcdoortype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4.ifcdoorstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4.ifcdoortype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4.ifcdoorstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcDoorPanelProperties_ApplicableToType: SCOPE = 'entity' @@ -6564,7 +6574,7 @@ class IfcDoorPanelProperties_ApplicableToType: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4.ifcdoortype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4.ifcdoorstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4.ifcdoortype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4.ifcdoorstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcDoorType_CorrectPredefinedType: SCOPE = 'entity' @@ -6573,8 +6583,8 @@ class IfcDoorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDraughtingPreDefinedColour_PreDefinedColourNames: SCOPE = 'entity' @@ -6583,7 +6593,7 @@ class IfcDraughtingPreDefinedColour_PreDefinedColourNames: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'bylayer']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'bylayer']) is not False class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: SCOPE = 'entity' @@ -6592,7 +6602,7 @@ class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chaindoubledash', 'dashed', 'dotted', 'bylayer']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chaindoubledash', 'dashed', 'dotted', 'bylayer']) is not False class IfcDuctFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -6601,8 +6611,8 @@ class IfcDuctFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -6611,8 +6621,8 @@ class IfcDuctFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcductfittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcductfittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -6621,8 +6631,8 @@ class IfcDuctFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDuctSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -6631,8 +6641,8 @@ class IfcDuctSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -6641,8 +6651,8 @@ class IfcDuctSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcductsegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcductsegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -6651,8 +6661,8 @@ class IfcDuctSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDuctSilencer_CorrectPredefinedType: SCOPE = 'entity' @@ -6661,8 +6671,8 @@ class IfcDuctSilencer_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctSilencer_CorrectTypeAssigned: SCOPE = 'entity' @@ -6671,8 +6681,8 @@ class IfcDuctSilencer_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcductsilencertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcductsilencertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctSilencerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6681,8 +6691,8 @@ class IfcDuctSilencerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEdgeLoop_IsClosed: SCOPE = 'entity' @@ -6691,9 +6701,9 @@ class IfcEdgeLoop_IsClosed: @staticmethod def __call__(self): - edgelist = getattr(self, 'EdgeList', INDETERMINATE) - ne = getattr(self, 'Ne', INDETERMINATE) - assert (getattr(express_getitem(edgelist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) == getattr(express_getitem(edgelist, ne - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE)) is not False + edgelist = express_getattr(self, 'EdgeList', INDETERMINATE) + ne = express_getattr(self, 'Ne', INDETERMINATE) + assert (express_getattr(express_getitem(edgelist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) == express_getattr(express_getitem(edgelist, ne - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE)) is not False class IfcEdgeLoop_IsContinuous: SCOPE = 'entity' @@ -6705,7 +6715,7 @@ class IfcEdgeLoop_IsContinuous: assert IfcLoopHeadToTail(self) is not False def calc_IfcEdgeLoop_Ne(self): - edgelist = getattr(self, 'EdgeList', INDETERMINATE) + edgelist = express_getattr(self, 'EdgeList', INDETERMINATE) return sizeof(edgelist) class IfcElectricAppliance_CorrectPredefinedType: @@ -6715,8 +6725,8 @@ class IfcElectricAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -6725,8 +6735,8 @@ class IfcElectricAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcelectricappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcelectricappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -6735,8 +6745,8 @@ class IfcElectricApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricDistributionBoard_CorrectPredefinedType: SCOPE = 'entity' @@ -6745,8 +6755,8 @@ class IfcElectricDistributionBoard_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricDistributionBoard_CorrectTypeAssigned: SCOPE = 'entity' @@ -6755,8 +6765,8 @@ class IfcElectricDistributionBoard_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcelectricdistributionboardtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcelectricdistributionboardtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricDistributionBoardType_CorrectPredefinedType: SCOPE = 'entity' @@ -6765,8 +6775,8 @@ class IfcElectricDistributionBoardType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricFlowStorageDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -6775,8 +6785,8 @@ class IfcElectricFlowStorageDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricFlowStorageDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -6785,8 +6795,8 @@ class IfcElectricFlowStorageDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcelectricflowstoragedevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcelectricflowstoragedevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricFlowStorageDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -6795,8 +6805,8 @@ class IfcElectricFlowStorageDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricGenerator_CorrectPredefinedType: SCOPE = 'entity' @@ -6805,8 +6815,8 @@ class IfcElectricGenerator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricGenerator_CorrectTypeAssigned: SCOPE = 'entity' @@ -6815,8 +6825,8 @@ class IfcElectricGenerator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcelectricgeneratortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcelectricgeneratortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricGeneratorType_CorrectPredefinedType: SCOPE = 'entity' @@ -6825,8 +6835,8 @@ class IfcElectricGeneratorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricMotor_CorrectPredefinedType: SCOPE = 'entity' @@ -6835,8 +6845,8 @@ class IfcElectricMotor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricMotor_CorrectTypeAssigned: SCOPE = 'entity' @@ -6845,8 +6855,8 @@ class IfcElectricMotor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcelectricmotortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcelectricmotortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricMotorType_CorrectPredefinedType: SCOPE = 'entity' @@ -6855,8 +6865,8 @@ class IfcElectricMotorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricTimeControl_CorrectPredefinedType: SCOPE = 'entity' @@ -6865,8 +6875,8 @@ class IfcElectricTimeControl_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricTimeControl_CorrectTypeAssigned: SCOPE = 'entity' @@ -6875,8 +6885,8 @@ class IfcElectricTimeControl_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcelectrictimecontroltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcelectrictimecontroltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricTimeControlType_CorrectPredefinedType: SCOPE = 'entity' @@ -6885,8 +6895,8 @@ class IfcElectricTimeControlType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElementAssembly_CorrectPredefinedType: SCOPE = 'entity' @@ -6895,8 +6905,8 @@ class IfcElementAssembly_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElementAssembly_CorrectTypeAssigned: SCOPE = 'entity' @@ -6905,8 +6915,8 @@ class IfcElementAssembly_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcelementassemblytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcelementassemblytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElementAssemblyType_CorrectPredefinedType: SCOPE = 'entity' @@ -6915,8 +6925,8 @@ class IfcElementAssemblyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElementQuantity_UniqueQuantityNames: SCOPE = 'entity' @@ -6925,7 +6935,7 @@ class IfcElementQuantity_UniqueQuantityNames: @staticmethod def __call__(self): - quantities = getattr(self, 'Quantities', INDETERMINATE) + quantities = express_getattr(self, 'Quantities', INDETERMINATE) assert IfcUniqueQuantityNames(quantities) is not False class IfcEngine_CorrectPredefinedType: @@ -6935,8 +6945,8 @@ class IfcEngine_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEngine_CorrectTypeAssigned: SCOPE = 'entity' @@ -6945,8 +6955,8 @@ class IfcEngine_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcenginetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcenginetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEngineType_CorrectPredefinedType: SCOPE = 'entity' @@ -6955,8 +6965,8 @@ class IfcEngineType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvaporativeCooler_CorrectPredefinedType: SCOPE = 'entity' @@ -6965,8 +6975,8 @@ class IfcEvaporativeCooler_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvaporativeCooler_CorrectTypeAssigned: SCOPE = 'entity' @@ -6975,8 +6985,8 @@ class IfcEvaporativeCooler_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcevaporativecoolertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcevaporativecoolertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEvaporativeCoolerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6985,8 +6995,8 @@ class IfcEvaporativeCoolerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvaporator_CorrectPredefinedType: SCOPE = 'entity' @@ -6995,8 +7005,8 @@ class IfcEvaporator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvaporator_CorrectTypeAssigned: SCOPE = 'entity' @@ -7005,8 +7015,8 @@ class IfcEvaporator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcevaporatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcevaporatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEvaporatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7015,8 +7025,8 @@ class IfcEvaporatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvent_CorrectPredefinedType: SCOPE = 'entity' @@ -7025,8 +7035,8 @@ class IfcEvent_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvent_CorrectTypeAssigned: SCOPE = 'entity' @@ -7035,9 +7045,9 @@ class IfcEvent_CorrectTypeAssigned: @staticmethod def __call__(self): - eventtriggertype = getattr(self, 'EventTriggerType', INDETERMINATE) - userdefinedeventtriggertype = getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) - assert (not exists(eventtriggertype) or eventtriggertype != getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False + eventtriggertype = express_getattr(self, 'EventTriggerType', INDETERMINATE) + userdefinedeventtriggertype = express_getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) + assert (not exists(eventtriggertype) or eventtriggertype != express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False class IfcEventType_CorrectPredefinedType: SCOPE = 'entity' @@ -7046,8 +7056,8 @@ class IfcEventType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcEventType_CorrectEventTriggerType: SCOPE = 'entity' @@ -7056,9 +7066,9 @@ class IfcEventType_CorrectEventTriggerType: @staticmethod def __call__(self): - eventtriggertype = getattr(self, 'EventTriggerType', INDETERMINATE) - userdefinedeventtriggertype = getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) - assert (eventtriggertype != getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False + eventtriggertype = express_getattr(self, 'EventTriggerType', INDETERMINATE) + userdefinedeventtriggertype = express_getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) + assert (eventtriggertype != express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False class IfcExternalReference_WR1: SCOPE = 'entity' @@ -7067,9 +7077,9 @@ class IfcExternalReference_WR1: @staticmethod def __call__(self): - location = getattr(self, 'Location', INDETERMINATE) - identification = getattr(self, 'Identification', INDETERMINATE) - name = getattr(self, 'Name', INDETERMINATE) + location = express_getattr(self, 'Location', INDETERMINATE) + identification = express_getattr(self, 'Identification', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) assert (exists(identification) or exists(location) or exists(name)) is not False class IfcExtrudedAreaSolid_ValidExtrusionDirection: @@ -7079,7 +7089,7 @@ class IfcExtrudedAreaSolid_ValidExtrusionDirection: @staticmethod def __call__(self): - assert (IfcDotProduct(IfcDirection(DirectionRatios=[0.0, 0.0, 1.0]), getattr(self, 'ExtrudedDirection', INDETERMINATE)) != 0.0) is not False + assert (IfcDotProduct(IfcDirection(DirectionRatios=[0.0, 0.0, 1.0]), express_getattr(self, 'ExtrudedDirection', INDETERMINATE)) != 0.0) is not False class IfcExtrudedAreaSolidTapered_CorrectProfileAssignment: SCOPE = 'entity' @@ -7088,7 +7098,7 @@ class IfcExtrudedAreaSolidTapered_CorrectProfileAssignment: @staticmethod def __call__(self): - assert IfcTaperedSweptAreaProfiles(getattr(self, 'SweptArea', INDETERMINATE), getattr(self, 'EndSweptArea', INDETERMINATE)) is not False + assert IfcTaperedSweptAreaProfiles(express_getattr(self, 'SweptArea', INDETERMINATE), express_getattr(self, 'EndSweptArea', INDETERMINATE)) is not False class IfcFace_HasOuterBound: SCOPE = 'entity' @@ -7097,7 +7107,7 @@ class IfcFace_HasOuterBound: @staticmethod def __call__(self): - bounds = getattr(self, 'Bounds', INDETERMINATE) + bounds = express_getattr(self, 'Bounds', INDETERMINATE) assert (sizeof([temp for temp in bounds if 'ifc4.ifcfaceouterbound' in typeof(temp)]) <= 1) is not False def calc_IfcFaceBasedSurfaceModel_Dim(self): @@ -7110,8 +7120,8 @@ class IfcFan_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFan_CorrectTypeAssigned: SCOPE = 'entity' @@ -7120,8 +7130,8 @@ class IfcFan_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcfantype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcfantype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFanType_CorrectPredefinedType: SCOPE = 'entity' @@ -7130,8 +7140,8 @@ class IfcFanType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFastener_CorrectPredefinedType: SCOPE = 'entity' @@ -7140,8 +7150,8 @@ class IfcFastener_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFastener_CorrectTypeAssigned: SCOPE = 'entity' @@ -7150,8 +7160,8 @@ class IfcFastener_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcfastenertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcfastenertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFastenerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7160,8 +7170,8 @@ class IfcFastenerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFeatureElementSubtraction_HasNoSubtraction: SCOPE = 'entity' @@ -7170,7 +7180,7 @@ class IfcFeatureElementSubtraction_HasNoSubtraction: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'HasOpenings', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'HasOpenings', INDETERMINATE)) == 0) is not False class IfcFeatureElementSubtraction_IsNotFilling: SCOPE = 'entity' @@ -7179,7 +7189,7 @@ class IfcFeatureElementSubtraction_IsNotFilling: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'FillsVoids', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'FillsVoids', INDETERMINATE)) == 0) is not False class IfcFillAreaStyle_MaxOneColour: SCOPE = 'entity' @@ -7188,7 +7198,7 @@ class IfcFillAreaStyle_MaxOneColour: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4.ifccolour' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4.ifccolour' in typeof(style)]) <= 1) is not False class IfcFillAreaStyle_MaxOneExtHatchStyle: SCOPE = 'entity' @@ -7197,7 +7207,7 @@ class IfcFillAreaStyle_MaxOneExtHatchStyle: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4.ifcexternallydefinedhatchstyle' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4.ifcexternallydefinedhatchstyle' in typeof(style)]) <= 1) is not False class IfcFillAreaStyle_ConsistentHatchStyleDef: SCOPE = 'entity' @@ -7206,7 +7216,7 @@ class IfcFillAreaStyle_ConsistentHatchStyleDef: @staticmethod def __call__(self): - assert IfcCorrectFillAreaStyle(getattr(self, 'FillStyles', INDETERMINATE)) is not False + assert IfcCorrectFillAreaStyle(express_getattr(self, 'FillStyles', INDETERMINATE)) is not False class IfcFillAreaStyleHatching_PatternStart2D: SCOPE = 'entity' @@ -7215,8 +7225,8 @@ class IfcFillAreaStyleHatching_PatternStart2D: @staticmethod def __call__(self): - patternstart = getattr(self, 'PatternStart', INDETERMINATE) - assert (not exists(patternstart) or getattr(patternstart, 'Dim', INDETERMINATE) == 2) is not False + patternstart = express_getattr(self, 'PatternStart', INDETERMINATE) + assert (not exists(patternstart) or express_getattr(patternstart, 'Dim', INDETERMINATE) == 2) is not False class IfcFillAreaStyleHatching_RefHatchLine2D: SCOPE = 'entity' @@ -7225,8 +7235,8 @@ class IfcFillAreaStyleHatching_RefHatchLine2D: @staticmethod def __call__(self): - pointofreferencehatchline = getattr(self, 'PointOfReferenceHatchLine', INDETERMINATE) - assert (not exists(pointofreferencehatchline) or getattr(pointofreferencehatchline, 'Dim', INDETERMINATE) == 2) is not False + pointofreferencehatchline = express_getattr(self, 'PointOfReferenceHatchLine', INDETERMINATE) + assert (not exists(pointofreferencehatchline) or express_getattr(pointofreferencehatchline, 'Dim', INDETERMINATE) == 2) is not False class IfcFilter_CorrectPredefinedType: SCOPE = 'entity' @@ -7235,8 +7245,8 @@ class IfcFilter_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFilter_CorrectTypeAssigned: SCOPE = 'entity' @@ -7245,8 +7255,8 @@ class IfcFilter_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcfiltertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcfiltertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFilterType_CorrectPredefinedType: SCOPE = 'entity' @@ -7255,8 +7265,8 @@ class IfcFilterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFireSuppressionTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -7265,8 +7275,8 @@ class IfcFireSuppressionTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFireSuppressionTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -7275,8 +7285,8 @@ class IfcFireSuppressionTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcfiresuppressionterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcfiresuppressionterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFireSuppressionTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -7285,8 +7295,8 @@ class IfcFireSuppressionTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFixedReferenceSweptAreaSolid_DirectrixBounded: SCOPE = 'entity' @@ -7295,9 +7305,9 @@ class IfcFixedReferenceSweptAreaSolid_DirectrixBounded: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - startparam = getattr(self, 'StartParam', INDETERMINATE) - endparam = getattr(self, 'EndParam', INDETERMINATE) + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + startparam = express_getattr(self, 'StartParam', INDETERMINATE) + endparam = express_getattr(self, 'EndParam', INDETERMINATE) assert (exists(startparam) and exists(endparam) or sizeof(['ifc4.ifcconic', 'ifc4.ifcboundedcurve'] * typeof(directrix)) == 1) is not False class IfcFlowInstrument_CorrectPredefinedType: @@ -7307,8 +7317,8 @@ class IfcFlowInstrument_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFlowInstrument_CorrectTypeAssigned: SCOPE = 'entity' @@ -7317,8 +7327,8 @@ class IfcFlowInstrument_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcflowinstrumenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcflowinstrumenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFlowInstrumentType_CorrectPredefinedType: SCOPE = 'entity' @@ -7327,8 +7337,8 @@ class IfcFlowInstrumentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFlowMeter_CorrectPredefinedType: SCOPE = 'entity' @@ -7337,8 +7347,8 @@ class IfcFlowMeter_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFlowMeter_CorrectTypeAssigned: SCOPE = 'entity' @@ -7347,8 +7357,8 @@ class IfcFlowMeter_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcflowmetertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcflowmetertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFlowMeterType_CorrectPredefinedType: SCOPE = 'entity' @@ -7357,8 +7367,8 @@ class IfcFlowMeterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFooting_CorrectPredefinedType: SCOPE = 'entity' @@ -7367,8 +7377,8 @@ class IfcFooting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFooting_CorrectTypeAssigned: SCOPE = 'entity' @@ -7377,8 +7387,8 @@ class IfcFooting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcfootingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcfootingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFootingType_CorrectPredefinedType: SCOPE = 'entity' @@ -7387,8 +7397,8 @@ class IfcFootingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFurniture_CorrectPredefinedType: SCOPE = 'entity' @@ -7397,8 +7407,8 @@ class IfcFurniture_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFurniture_CorrectTypeAssigned: SCOPE = 'entity' @@ -7407,8 +7417,8 @@ class IfcFurniture_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcfurnituretype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcfurnituretype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFurnitureType_CorrectPredefinedType: SCOPE = 'entity' @@ -7417,8 +7427,8 @@ class IfcFurnitureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcGeographicElement_CorrectPredefinedType: SCOPE = 'entity' @@ -7427,8 +7437,8 @@ class IfcGeographicElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcGeographicElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -7437,8 +7447,8 @@ class IfcGeographicElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcgeographicelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcgeographicelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcGeographicElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -7447,8 +7457,8 @@ class IfcGeographicElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcGeometricCurveSet_NoSurfaces: SCOPE = 'entity' @@ -7457,7 +7467,7 @@ class IfcGeometricCurveSet_NoSurfaces: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Elements', INDETERMINATE) if 'ifc4.ifcsurface' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Elements', INDETERMINATE) if 'ifc4.ifcsurface' in typeof(temp)]) == 0) is not False class IfcGeometricRepresentationContext_North2D: SCOPE = 'entity' @@ -7466,8 +7476,8 @@ class IfcGeometricRepresentationContext_North2D: @staticmethod def __call__(self): - truenorth = getattr(self, 'TrueNorth', INDETERMINATE) - assert (not exists(truenorth) or hiindex(getattr(truenorth, 'DirectionRatios', INDETERMINATE)) == 2) is not False + truenorth = express_getattr(self, 'TrueNorth', INDETERMINATE) + assert (not exists(truenorth) or hiindex(express_getattr(truenorth, 'DirectionRatios', INDETERMINATE)) == 2) is not False class IfcGeometricRepresentationSubContext_ParentNoSub: SCOPE = 'entity' @@ -7476,7 +7486,7 @@ class IfcGeometricRepresentationSubContext_ParentNoSub: @staticmethod def __call__(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) assert (not 'ifc4.ifcgeometricrepresentationsubcontext' in typeof(parentcontext)) is not False class IfcGeometricRepresentationSubContext_UserTargetProvided: @@ -7486,9 +7496,9 @@ class IfcGeometricRepresentationSubContext_UserTargetProvided: @staticmethod def __call__(self): - targetview = getattr(self, 'TargetView', INDETERMINATE) - userdefinedtargetview = getattr(self, 'UserDefinedTargetView', INDETERMINATE) - assert (targetview != getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) or (targetview == getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedtargetview))) is not False + targetview = express_getattr(self, 'TargetView', INDETERMINATE) + userdefinedtargetview = express_getattr(self, 'UserDefinedTargetView', INDETERMINATE) + assert (targetview != express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) or (targetview == express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedtargetview))) is not False class IfcGeometricRepresentationSubContext_NoCoordOperation: SCOPE = 'entity' @@ -7497,23 +7507,23 @@ class IfcGeometricRepresentationSubContext_NoCoordOperation: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'HasCoordinateOperation', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'HasCoordinateOperation', INDETERMINATE)) == 0) is not False def calc_IfcGeometricRepresentationSubContext_WorldCoordinateSystem(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return getattr(parentcontext, 'WorldCoordinateSystem', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return express_getattr(parentcontext, 'WorldCoordinateSystem', INDETERMINATE) def calc_IfcGeometricRepresentationSubContext_CoordinateSpaceDimension(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return getattr(parentcontext, 'CoordinateSpaceDimension', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return express_getattr(parentcontext, 'CoordinateSpaceDimension', INDETERMINATE) def calc_IfcGeometricRepresentationSubContext_TrueNorth(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return nvl(getattr(parentcontext, 'TrueNorth', INDETERMINATE), IfcConvertDirectionInto2D(express_getitem(getattr(getattr(self, 'WorldCoordinateSystem', INDETERMINATE), 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return nvl(express_getattr(parentcontext, 'TrueNorth', INDETERMINATE), IfcConvertDirectionInto2D(express_getitem(express_getattr(express_getattr(self, 'WorldCoordinateSystem', INDETERMINATE), 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) def calc_IfcGeometricRepresentationSubContext_Precision(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return nvl(getattr(parentcontext, 'Precision', INDETERMINATE), 1) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return nvl(express_getattr(parentcontext, 'Precision', INDETERMINATE), 1) class IfcGeometricSet_ConsistentDim: SCOPE = 'entity' @@ -7522,12 +7532,12 @@ class IfcGeometricSet_ConsistentDim: @staticmethod def __call__(self): - elements = getattr(self, 'Elements', INDETERMINATE) - assert (sizeof([temp for temp in elements if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + elements = express_getattr(self, 'Elements', INDETERMINATE) + assert (sizeof([temp for temp in elements if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcGeometricSet_Dim(self): - elements = getattr(self, 'Elements', INDETERMINATE) - return getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + elements = express_getattr(self, 'Elements', INDETERMINATE) + return express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) class IfcGrid_HasPlacement: SCOPE = 'entity' @@ -7536,7 +7546,7 @@ class IfcGrid_HasPlacement: @staticmethod def __call__(self): - assert exists(getattr(self, 'ObjectPlacement', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'ObjectPlacement', INDETERMINATE)) is not False class IfcGridAxis_WR1: SCOPE = 'entity' @@ -7545,8 +7555,8 @@ class IfcGridAxis_WR1: @staticmethod def __call__(self): - axiscurve = getattr(self, 'AxisCurve', INDETERMINATE) - assert (getattr(axiscurve, 'Dim', INDETERMINATE) == 2) is not False + axiscurve = express_getattr(self, 'AxisCurve', INDETERMINATE) + assert (express_getattr(axiscurve, 'Dim', INDETERMINATE) == 2) is not False class IfcGridAxis_WR2: SCOPE = 'entity' @@ -7555,9 +7565,9 @@ class IfcGridAxis_WR2: @staticmethod def __call__(self): - partofw = getattr(self, 'PartOfW', INDETERMINATE) - partofv = getattr(self, 'PartOfV', INDETERMINATE) - partofu = getattr(self, 'PartOfU', INDETERMINATE) + partofw = express_getattr(self, 'PartOfW', INDETERMINATE) + partofv = express_getattr(self, 'PartOfV', INDETERMINATE) + partofu = express_getattr(self, 'PartOfU', INDETERMINATE) assert (sizeof(partofu) == 1) ^ (sizeof(partofv) == 1) ^ (sizeof(partofw) == 1) is not False def calc_IfcHalfSpaceSolid_Dim(self): @@ -7570,8 +7580,8 @@ class IfcHeatExchanger_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcHeatExchanger_CorrectTypeAssigned: SCOPE = 'entity' @@ -7580,8 +7590,8 @@ class IfcHeatExchanger_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcheatexchangertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcheatexchangertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcHeatExchangerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7590,8 +7600,8 @@ class IfcHeatExchangerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcHumidifier_CorrectPredefinedType: SCOPE = 'entity' @@ -7600,8 +7610,8 @@ class IfcHumidifier_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcHumidifier_CorrectTypeAssigned: SCOPE = 'entity' @@ -7610,8 +7620,8 @@ class IfcHumidifier_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifchumidifiertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifchumidifiertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcHumidifierType_CorrectPredefinedType: SCOPE = 'entity' @@ -7620,8 +7630,8 @@ class IfcHumidifierType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcIShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -7630,8 +7640,8 @@ class IfcIShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (2.0 * flangethickness < overalldepth) is not False class IfcIShapeProfileDef_ValidWebThickness: @@ -7641,8 +7651,8 @@ class IfcIShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - overallwidth = getattr(self, 'OverallWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + overallwidth = express_getattr(self, 'OverallWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < overallwidth) is not False class IfcIShapeProfileDef_ValidFilletRadius: @@ -7652,11 +7662,11 @@ class IfcIShapeProfileDef_ValidFilletRadius: @staticmethod def __call__(self): - overallwidth = getattr(self, 'OverallWidth', INDETERMINATE) - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) - filletradius = getattr(self, 'FilletRadius', INDETERMINATE) + overallwidth = express_getattr(self, 'OverallWidth', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) + filletradius = express_getattr(self, 'FilletRadius', INDETERMINATE) assert (not exists(filletradius) or (filletradius <= (overallwidth - webthickness) / 2.0 and filletradius <= (overalldepth - 2.0 * flangethickness) / 2.0)) is not False class IfcIndexedPolyCurve_Consecutive: @@ -7666,7 +7676,7 @@ class IfcIndexedPolyCurve_Consecutive: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) + segments = express_getattr(self, 'Segments', INDETERMINATE) assert (sizeof(segments) == 0 or IfcConsecutiveSegments(segments)) is not False class IfcInterceptor_CorrectPredefinedType: @@ -7676,8 +7686,8 @@ class IfcInterceptor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcInterceptor_CorrectTypeAssigned: SCOPE = 'entity' @@ -7686,8 +7696,8 @@ class IfcInterceptor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcinterceptortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcinterceptortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcInterceptorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7696,8 +7706,8 @@ class IfcInterceptorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcIntersectionCurve_TwoPCurves: SCOPE = 'entity' @@ -7706,7 +7716,7 @@ class IfcIntersectionCurve_TwoPCurves: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False + assert (sizeof(express_getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False class IfcIntersectionCurve_DistinctSurfaces: SCOPE = 'entity' @@ -7715,7 +7725,7 @@ class IfcIntersectionCurve_DistinctSurfaces: @staticmethod def __call__(self): - assert (IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcJunctionBox_CorrectPredefinedType: SCOPE = 'entity' @@ -7724,8 +7734,8 @@ class IfcJunctionBox_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcJunctionBox_CorrectTypeAssigned: SCOPE = 'entity' @@ -7734,8 +7744,8 @@ class IfcJunctionBox_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcjunctionboxtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcjunctionboxtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcJunctionBoxType_CorrectPredefinedType: SCOPE = 'entity' @@ -7744,8 +7754,8 @@ class IfcJunctionBoxType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLShapeProfileDef_ValidThickness: SCOPE = 'entity' @@ -7754,9 +7764,9 @@ class IfcLShapeProfileDef_ValidThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - thickness = getattr(self, 'Thickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + thickness = express_getattr(self, 'Thickness', INDETERMINATE) assert (thickness < depth and (not exists(width) or thickness < width)) is not False class IfcLaborResource_CorrectPredefinedType: @@ -7766,8 +7776,8 @@ class IfcLaborResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLaborResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7776,8 +7786,8 @@ class IfcLaborResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcLamp_CorrectPredefinedType: SCOPE = 'entity' @@ -7786,8 +7796,8 @@ class IfcLamp_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLamp_CorrectTypeAssigned: SCOPE = 'entity' @@ -7796,8 +7806,8 @@ class IfcLamp_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifclamptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifclamptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLampType_CorrectPredefinedType: SCOPE = 'entity' @@ -7806,8 +7816,8 @@ class IfcLampType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLightFixture_CorrectPredefinedType: SCOPE = 'entity' @@ -7816,8 +7826,8 @@ class IfcLightFixture_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLightFixture_CorrectTypeAssigned: SCOPE = 'entity' @@ -7826,8 +7836,8 @@ class IfcLightFixture_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifclightfixturetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifclightfixturetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLightFixtureType_CorrectPredefinedType: SCOPE = 'entity' @@ -7836,8 +7846,8 @@ class IfcLightFixtureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLine_SameDim: SCOPE = 'entity' @@ -7846,9 +7856,9 @@ class IfcLine_SameDim: @staticmethod def __call__(self): - pnt = getattr(self, 'Pnt', INDETERMINATE) - dir = getattr(self, 'Dir', INDETERMINATE) - assert (getattr(dir, 'Dim', INDETERMINATE) == getattr(pnt, 'Dim', INDETERMINATE)) is not False + pnt = express_getattr(self, 'Pnt', INDETERMINATE) + dir = express_getattr(self, 'Dir', INDETERMINATE) + assert (express_getattr(dir, 'Dim', INDETERMINATE) == express_getattr(pnt, 'Dim', INDETERMINATE)) is not False class IfcLocalPlacement_WR21: SCOPE = 'entity' @@ -7857,8 +7867,8 @@ class IfcLocalPlacement_WR21: @staticmethod def __call__(self): - placementrelto = getattr(self, 'PlacementRelTo', INDETERMINATE) - relativeplacement = getattr(self, 'RelativePlacement', INDETERMINATE) + placementrelto = express_getattr(self, 'PlacementRelTo', INDETERMINATE) + relativeplacement = express_getattr(self, 'RelativePlacement', INDETERMINATE) assert IfcCorrectLocalPlacement(relativeplacement, placementrelto) is not False class IfcMaterialDefinitionRepresentation_OnlyStyledRepresentations: @@ -7868,7 +7878,7 @@ class IfcMaterialDefinitionRepresentation_OnlyStyledRepresentations: @staticmethod def __call__(self): - representations = getattr(self, 'Representations', INDETERMINATE) + representations = express_getattr(self, 'Representations', INDETERMINATE) assert (sizeof([temp for temp in representations if not 'ifc4.ifcstyledrepresentation' in typeof(temp)]) == 0) is not False class IfcMaterialLayer_NormalizedPriority: @@ -7878,7 +7888,7 @@ class IfcMaterialLayer_NormalizedPriority: @staticmethod def __call__(self): - priority = getattr(self, 'Priority', INDETERMINATE) + priority = express_getattr(self, 'Priority', INDETERMINATE) assert (not exists(priority) or 0 <= priority <= 100) is not False def calc_IfcMaterialLayerSet_TotalThickness(self): @@ -7891,7 +7901,7 @@ class IfcMaterialProfile_NormalizedPriority: @staticmethod def __call__(self): - priority = getattr(self, 'Priority', INDETERMINATE) + priority = express_getattr(self, 'Priority', INDETERMINATE) assert (not exists(priority) or 0 <= priority <= 100) is not False class IfcMechanicalFastener_CorrectPredefinedType: @@ -7901,8 +7911,8 @@ class IfcMechanicalFastener_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMechanicalFastener_CorrectTypeAssigned: SCOPE = 'entity' @@ -7911,8 +7921,8 @@ class IfcMechanicalFastener_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcmechanicalfastenertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcmechanicalfastenertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMechanicalFastenerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7921,8 +7931,8 @@ class IfcMechanicalFastenerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMedicalDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -7931,8 +7941,8 @@ class IfcMedicalDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMedicalDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -7941,8 +7951,8 @@ class IfcMedicalDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcmedicaldevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcmedicaldevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMedicalDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7951,8 +7961,8 @@ class IfcMedicalDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMember_CorrectPredefinedType: SCOPE = 'entity' @@ -7961,8 +7971,8 @@ class IfcMember_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMember_CorrectTypeAssigned: SCOPE = 'entity' @@ -7971,8 +7981,8 @@ class IfcMember_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcmembertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcmembertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMemberStandardCase_HasMaterialProfileSetUsage: SCOPE = 'entity' @@ -7981,7 +7991,7 @@ class IfcMemberStandardCase_HasMaterialProfileSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4.ifcrelassociates.relatedobjects') if 'ifc4.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4.ifcmaterialprofilesetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4.ifcrelassociates.relatedobjects') if 'ifc4.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4.ifcmaterialprofilesetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcMemberType_CorrectPredefinedType: SCOPE = 'entity' @@ -7990,8 +8000,8 @@ class IfcMemberType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcMirroredProfileDef_Operator(self): return IfcCartesianTransformationOperator2D(Axis1=IfcDirection(DirectionRatios=[-1.0, 0.0]), Axis2=IfcDirection(DirectionRatios=[0.0, 1.0]), LocalOrigin=IfcCartesianPoint(Coordinates=[0.0, 0.0]), Scale=1.0) @@ -8003,8 +8013,8 @@ class IfcMotorConnection_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMotorConnection_CorrectTypeAssigned: SCOPE = 'entity' @@ -8013,8 +8023,8 @@ class IfcMotorConnection_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcmotorconnectiontype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcmotorconnectiontype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMotorConnectionType_CorrectPredefinedType: SCOPE = 'entity' @@ -8023,8 +8033,8 @@ class IfcMotorConnectionType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcNamedUnit_WR1: SCOPE = 'entity' @@ -8033,7 +8043,7 @@ class IfcNamedUnit_WR1: @staticmethod def __call__(self): - assert IfcCorrectDimensions(getattr(self, 'UnitType', INDETERMINATE), getattr(self, 'Dimensions', INDETERMINATE)) is not False + assert IfcCorrectDimensions(express_getattr(self, 'UnitType', INDETERMINATE), express_getattr(self, 'Dimensions', INDETERMINATE)) is not False class IfcObject_UniquePropertySetNames: SCOPE = 'entity' @@ -8042,7 +8052,7 @@ class IfcObject_UniquePropertySetNames: @staticmethod def __call__(self): - isdefinedby = getattr(self, 'IsDefinedBy', INDETERMINATE) + isdefinedby = express_getattr(self, 'IsDefinedBy', INDETERMINATE) assert (sizeof(isdefinedby) == 0 or IfcUniqueDefinitionNames(isdefinedby)) is not False class IfcObjective_WR21: @@ -8052,8 +8062,8 @@ class IfcObjective_WR21: @staticmethod def __call__(self): - objectivequalifier = getattr(self, 'ObjectiveQualifier', INDETERMINATE) - assert (objectivequalifier != getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) or (objectivequalifier == getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedQualifier', INDETERMINATE)))) is not False + objectivequalifier = express_getattr(self, 'ObjectiveQualifier', INDETERMINATE) + assert (objectivequalifier != express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) or (objectivequalifier == express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedQualifier', INDETERMINATE)))) is not False class IfcOccupant_WR31: SCOPE = 'entity' @@ -8062,8 +8072,8 @@ class IfcOccupant_WR31: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not predefinedtype == getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not predefinedtype == express_getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcOffsetCurve2D_DimIs2D: SCOPE = 'entity' @@ -8072,8 +8082,8 @@ class IfcOffsetCurve2D_DimIs2D: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - assert (getattr(basiscurve, 'Dim', INDETERMINATE) == 2) is not False + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + assert (express_getattr(basiscurve, 'Dim', INDETERMINATE) == 2) is not False class IfcOffsetCurve3D_DimIs2D: SCOPE = 'entity' @@ -8082,8 +8092,8 @@ class IfcOffsetCurve3D_DimIs2D: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - assert (getattr(basiscurve, 'Dim', INDETERMINATE) == 3) is not False + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + assert (express_getattr(basiscurve, 'Dim', INDETERMINATE) == 3) is not False class IfcOrientedEdge_EdgeElementNotOriented: SCOPE = 'entity' @@ -8092,18 +8102,18 @@ class IfcOrientedEdge_EdgeElementNotOriented: @staticmethod def __call__(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) assert (not 'ifc4.ifcorientededge' in typeof(edgeelement)) is not False def calc_IfcOrientedEdge_EdgeStart(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) - orientation = getattr(self, 'Orientation', INDETERMINATE) - return IfcBooleanChoose(orientation, getattr(edgeelement, 'EdgeStart', INDETERMINATE), getattr(edgeelement, 'EdgeEnd', INDETERMINATE)) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return IfcBooleanChoose(orientation, express_getattr(edgeelement, 'EdgeStart', INDETERMINATE), express_getattr(edgeelement, 'EdgeEnd', INDETERMINATE)) def calc_IfcOrientedEdge_EdgeEnd(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) - orientation = getattr(self, 'Orientation', INDETERMINATE) - return IfcBooleanChoose(orientation, getattr(edgeelement, 'EdgeEnd', INDETERMINATE), getattr(edgeelement, 'EdgeStart', INDETERMINATE)) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return IfcBooleanChoose(orientation, express_getattr(edgeelement, 'EdgeEnd', INDETERMINATE), express_getattr(edgeelement, 'EdgeStart', INDETERMINATE)) class IfcOutlet_CorrectPredefinedType: SCOPE = 'entity' @@ -8112,8 +8122,8 @@ class IfcOutlet_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcOutlet_CorrectTypeAssigned: SCOPE = 'entity' @@ -8122,8 +8132,8 @@ class IfcOutlet_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcoutlettype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcoutlettype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcOutletType_CorrectPredefinedType: SCOPE = 'entity' @@ -8132,8 +8142,8 @@ class IfcOutletType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcOwnerHistory_CorrectChangeAction: SCOPE = 'entity' @@ -8142,9 +8152,9 @@ class IfcOwnerHistory_CorrectChangeAction: @staticmethod def __call__(self): - changeaction = getattr(self, 'ChangeAction', INDETERMINATE) - lastmodifieddate = getattr(self, 'LastModifiedDate', INDETERMINATE) - assert (exists(lastmodifieddate) or (not exists(lastmodifieddate) and (not exists(changeaction))) or (not exists(lastmodifieddate) and exists(changeaction) and (changeaction == getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) or changeaction == getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE)))) is not False + changeaction = express_getattr(self, 'ChangeAction', INDETERMINATE) + lastmodifieddate = express_getattr(self, 'LastModifiedDate', INDETERMINATE) + assert (exists(lastmodifieddate) or (not exists(lastmodifieddate) and (not exists(changeaction))) or (not exists(lastmodifieddate) and exists(changeaction) and (changeaction == express_getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) or changeaction == express_getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE)))) is not False class IfcPath_IsContinuous: SCOPE = 'entity' @@ -8162,8 +8172,8 @@ class IfcPcurve_DimIs2D: @staticmethod def __call__(self): - referencecurve = getattr(self, 'ReferenceCurve', INDETERMINATE) - assert (getattr(referencecurve, 'Dim', INDETERMINATE) == 2) is not False + referencecurve = express_getattr(self, 'ReferenceCurve', INDETERMINATE) + assert (express_getattr(referencecurve, 'Dim', INDETERMINATE) == 2) is not False class IfcPerson_IdentifiablePerson: SCOPE = 'entity' @@ -8172,9 +8182,9 @@ class IfcPerson_IdentifiablePerson: @staticmethod def __call__(self): - identification = getattr(self, 'Identification', INDETERMINATE) - familyname = getattr(self, 'FamilyName', INDETERMINATE) - givenname = getattr(self, 'GivenName', INDETERMINATE) + identification = express_getattr(self, 'Identification', INDETERMINATE) + familyname = express_getattr(self, 'FamilyName', INDETERMINATE) + givenname = express_getattr(self, 'GivenName', INDETERMINATE) assert (exists(identification) or exists(familyname) or exists(givenname)) is not False class IfcPerson_ValidSetOfNames: @@ -8184,9 +8194,9 @@ class IfcPerson_ValidSetOfNames: @staticmethod def __call__(self): - familyname = getattr(self, 'FamilyName', INDETERMINATE) - givenname = getattr(self, 'GivenName', INDETERMINATE) - middlenames = getattr(self, 'MiddleNames', INDETERMINATE) + familyname = express_getattr(self, 'FamilyName', INDETERMINATE) + givenname = express_getattr(self, 'GivenName', INDETERMINATE) + middlenames = express_getattr(self, 'MiddleNames', INDETERMINATE) assert (not exists(middlenames) or exists(familyname) or exists(givenname)) is not False class IfcPhysicalComplexQuantity_NoSelfReference: @@ -8196,7 +8206,7 @@ class IfcPhysicalComplexQuantity_NoSelfReference: @staticmethod def __call__(self): - hasquantities = getattr(self, 'HasQuantities', INDETERMINATE) + hasquantities = express_getattr(self, 'HasQuantities', INDETERMINATE) assert (sizeof([temp for temp in hasquantities if self == temp]) == 0) is not False class IfcPhysicalComplexQuantity_UniqueQuantityNames: @@ -8206,7 +8216,7 @@ class IfcPhysicalComplexQuantity_UniqueQuantityNames: @staticmethod def __call__(self): - hasquantities = getattr(self, 'HasQuantities', INDETERMINATE) + hasquantities = express_getattr(self, 'HasQuantities', INDETERMINATE) assert IfcUniqueQuantityNames(hasquantities) is not False class IfcPile_CorrectPredefinedType: @@ -8216,8 +8226,8 @@ class IfcPile_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPile_CorrectTypeAssigned: SCOPE = 'entity' @@ -8226,8 +8236,8 @@ class IfcPile_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcpiletype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcpiletype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPileType_CorrectPredefinedType: SCOPE = 'entity' @@ -8236,8 +8246,8 @@ class IfcPileType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPipeFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -8246,8 +8256,8 @@ class IfcPipeFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPipeFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -8256,8 +8266,8 @@ class IfcPipeFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcpipefittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcpipefittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPipeFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -8266,8 +8276,8 @@ class IfcPipeFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPipeSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -8276,8 +8286,8 @@ class IfcPipeSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPipeSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -8286,8 +8296,8 @@ class IfcPipeSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcpipesegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcpipesegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPipeSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -8296,8 +8306,8 @@ class IfcPipeSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPixelTexture_MinPixelInS: SCOPE = 'entity' @@ -8306,7 +8316,7 @@ class IfcPixelTexture_MinPixelInS: @staticmethod def __call__(self): - width = getattr(self, 'Width', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) assert (width >= 1) is not False class IfcPixelTexture_MinPixelInT: @@ -8316,7 +8326,7 @@ class IfcPixelTexture_MinPixelInT: @staticmethod def __call__(self): - height = getattr(self, 'Height', INDETERMINATE) + height = express_getattr(self, 'Height', INDETERMINATE) assert (height >= 1) is not False class IfcPixelTexture_NumberOfColours: @@ -8326,7 +8336,7 @@ class IfcPixelTexture_NumberOfColours: @staticmethod def __call__(self): - colourcomponents = getattr(self, 'ColourComponents', INDETERMINATE) + colourcomponents = express_getattr(self, 'ColourComponents', INDETERMINATE) assert (1 <= colourcomponents <= 4) is not False class IfcPixelTexture_SizeOfPixelList: @@ -8336,9 +8346,9 @@ class IfcPixelTexture_SizeOfPixelList: @staticmethod def __call__(self): - width = getattr(self, 'Width', INDETERMINATE) - height = getattr(self, 'Height', INDETERMINATE) - pixel = getattr(self, 'Pixel', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + height = express_getattr(self, 'Height', INDETERMINATE) + pixel = express_getattr(self, 'Pixel', INDETERMINATE) assert (sizeof(pixel) == width * height) is not False class IfcPixelTexture_PixelAsByteAndSameLength: @@ -8348,12 +8358,12 @@ class IfcPixelTexture_PixelAsByteAndSameLength: @staticmethod def __call__(self): - pixel = getattr(self, 'Pixel', INDETERMINATE) + pixel = express_getattr(self, 'Pixel', INDETERMINATE) assert (sizeof([temp for temp in pixel if blength(temp) % 8 == 0 and blength(temp) == blength(express_getitem(pixel, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == sizeof(pixel)) is not False def calc_IfcPlacement_Dim(self): - location = getattr(self, 'Location', INDETERMINATE) - return getattr(location, 'Dim', INDETERMINATE) + location = express_getattr(self, 'Location', INDETERMINATE) + return express_getattr(location, 'Dim', INDETERMINATE) class IfcPlate_CorrectPredefinedType: SCOPE = 'entity' @@ -8362,8 +8372,8 @@ class IfcPlate_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPlate_CorrectTypeAssigned: SCOPE = 'entity' @@ -8372,8 +8382,8 @@ class IfcPlate_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcplatetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcplatetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPlateStandardCase_HasMaterialLayerSetUsage: SCOPE = 'entity' @@ -8382,7 +8392,7 @@ class IfcPlateStandardCase_HasMaterialLayerSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4.ifcrelassociates.relatedobjects') if 'ifc4.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4.ifcmateriallayersetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4.ifcrelassociates.relatedobjects') if 'ifc4.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4.ifcmateriallayersetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcPlateType_CorrectPredefinedType: SCOPE = 'entity' @@ -8391,16 +8401,16 @@ class IfcPlateType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcPointOnCurve_Dim(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - return getattr(basiscurve, 'Dim', INDETERMINATE) + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + return express_getattr(basiscurve, 'Dim', INDETERMINATE) def calc_IfcPointOnSurface_Dim(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) - return getattr(basissurface, 'Dim', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) + return express_getattr(basissurface, 'Dim', INDETERMINATE) class IfcPolyLoop_AllPointsSameDim: SCOPE = 'entity' @@ -8409,8 +8419,8 @@ class IfcPolyLoop_AllPointsSameDim: @staticmethod def __call__(self): - polygon = getattr(self, 'Polygon', INDETERMINATE) - assert (sizeof([temp for temp in polygon if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(polygon, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + polygon = express_getattr(self, 'Polygon', INDETERMINATE) + assert (sizeof([temp for temp in polygon if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(polygon, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False class IfcPolygonalBoundedHalfSpace_BoundaryDim: SCOPE = 'entity' @@ -8419,8 +8429,8 @@ class IfcPolygonalBoundedHalfSpace_BoundaryDim: @staticmethod def __call__(self): - polygonalboundary = getattr(self, 'PolygonalBoundary', INDETERMINATE) - assert (getattr(polygonalboundary, 'Dim', INDETERMINATE) == 2) is not False + polygonalboundary = express_getattr(self, 'PolygonalBoundary', INDETERMINATE) + assert (express_getattr(polygonalboundary, 'Dim', INDETERMINATE) == 2) is not False class IfcPolygonalBoundedHalfSpace_BoundaryType: SCOPE = 'entity' @@ -8429,7 +8439,7 @@ class IfcPolygonalBoundedHalfSpace_BoundaryType: @staticmethod def __call__(self): - polygonalboundary = getattr(self, 'PolygonalBoundary', INDETERMINATE) + polygonalboundary = express_getattr(self, 'PolygonalBoundary', INDETERMINATE) assert (sizeof(typeof(polygonalboundary) * ['ifc4.ifcpolyline', 'ifc4.ifccompositecurve']) == 1) is not False class IfcPolyline_SameDim: @@ -8439,8 +8449,8 @@ class IfcPolyline_SameDim: @staticmethod def __call__(self): - points = getattr(self, 'Points', INDETERMINATE) - assert (sizeof([temp for temp in points if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(points, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + points = express_getattr(self, 'Points', INDETERMINATE) + assert (sizeof([temp for temp in points if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(points, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False class IfcPostalAddress_WR1: SCOPE = 'entity' @@ -8449,13 +8459,13 @@ class IfcPostalAddress_WR1: @staticmethod def __call__(self): - internallocation = getattr(self, 'InternalLocation', INDETERMINATE) - addresslines = getattr(self, 'AddressLines', INDETERMINATE) - postalbox = getattr(self, 'PostalBox', INDETERMINATE) - town = getattr(self, 'Town', INDETERMINATE) - region = getattr(self, 'Region', INDETERMINATE) - postalcode = getattr(self, 'PostalCode', INDETERMINATE) - country = getattr(self, 'Country', INDETERMINATE) + internallocation = express_getattr(self, 'InternalLocation', INDETERMINATE) + addresslines = express_getattr(self, 'AddressLines', INDETERMINATE) + postalbox = express_getattr(self, 'PostalBox', INDETERMINATE) + town = express_getattr(self, 'Town', INDETERMINATE) + region = express_getattr(self, 'Region', INDETERMINATE) + postalcode = express_getattr(self, 'PostalCode', INDETERMINATE) + country = express_getattr(self, 'Country', INDETERMINATE) assert (exists(internallocation) or exists(addresslines) or exists(postalbox) or exists(postalcode) or exists(town) or exists(region) or exists(country)) is not False class IfcPresentationLayerAssignment_ApplicableItems: @@ -8465,7 +8475,7 @@ class IfcPresentationLayerAssignment_ApplicableItems: @staticmethod def __call__(self): - assigneditems = getattr(self, 'AssignedItems', INDETERMINATE) + assigneditems = express_getattr(self, 'AssignedItems', INDETERMINATE) assert (sizeof([temp for temp in assigneditems if sizeof(typeof(temp) * ['ifc4.ifcshaperepresentation', 'ifc4.ifcgeometricrepresentationitem', 'ifc4.ifcmappeditem']) == 1]) == sizeof(assigneditems)) is not False class IfcPresentationLayerWithStyle_ApplicableOnlyToItems: @@ -8475,7 +8485,7 @@ class IfcPresentationLayerWithStyle_ApplicableOnlyToItems: @staticmethod def __call__(self): - assigneditems = getattr(self, 'AssignedItems', INDETERMINATE) + assigneditems = express_getattr(self, 'AssignedItems', INDETERMINATE) assert (sizeof([temp for temp in assigneditems if sizeof(typeof(temp) * ['ifc4.ifcgeometricrepresentationitem', 'ifc4.ifcmappeditem']) == 1]) == sizeof(assigneditems)) is not False class IfcProcedure_HasName: @@ -8485,7 +8495,7 @@ class IfcProcedure_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcProcedure_CorrectPredefinedType: SCOPE = 'entity' @@ -8494,8 +8504,8 @@ class IfcProcedure_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProcedureType_CorrectPredefinedType: SCOPE = 'entity' @@ -8504,8 +8514,8 @@ class IfcProcedureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcProduct_PlacementForShapeRepresentation: SCOPE = 'entity' @@ -8514,9 +8524,9 @@ class IfcProduct_PlacementForShapeRepresentation: @staticmethod def __call__(self): - objectplacement = getattr(self, 'ObjectPlacement', INDETERMINATE) - representation = getattr(self, 'Representation', INDETERMINATE) - assert (exists(representation) and exists(objectplacement) or (exists(representation) and sizeof([temp for temp in getattr(representation, 'Representations', INDETERMINATE) if 'ifc4.ifcshaperepresentation' in typeof(temp)]) == 0) or (not exists(representation))) is not False + objectplacement = express_getattr(self, 'ObjectPlacement', INDETERMINATE) + representation = express_getattr(self, 'Representation', INDETERMINATE) + assert (exists(representation) and exists(objectplacement) or (exists(representation) and sizeof([temp for temp in express_getattr(representation, 'Representations', INDETERMINATE) if 'ifc4.ifcshaperepresentation' in typeof(temp)]) == 0) or (not exists(representation))) is not False class IfcProductDefinitionShape_OnlyShapeModel: SCOPE = 'entity' @@ -8525,7 +8535,7 @@ class IfcProductDefinitionShape_OnlyShapeModel: @staticmethod def __call__(self): - representations = getattr(self, 'Representations', INDETERMINATE) + representations = express_getattr(self, 'Representations', INDETERMINATE) assert (sizeof([temp for temp in representations if not 'ifc4.ifcshapemodel' in typeof(temp)]) == 0) is not False class IfcProject_HasName: @@ -8535,7 +8545,7 @@ class IfcProject_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcProject_CorrectContext: SCOPE = 'entity' @@ -8544,7 +8554,7 @@ class IfcProject_CorrectContext: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'RepresentationContexts', INDETERMINATE)) or sizeof([temp for temp in getattr(self, 'RepresentationContexts', INDETERMINATE) if 'ifc4.ifcgeometricrepresentationsubcontext' in typeof(temp)]) == 0) is not False + assert (not exists(express_getattr(self, 'RepresentationContexts', INDETERMINATE)) or sizeof([temp for temp in express_getattr(self, 'RepresentationContexts', INDETERMINATE) if 'ifc4.ifcgeometricrepresentationsubcontext' in typeof(temp)]) == 0) is not False class IfcProject_NoDecomposition: SCOPE = 'entity' @@ -8553,7 +8563,7 @@ class IfcProject_NoDecomposition: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'Decomposes', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'Decomposes', INDETERMINATE)) == 0) is not False class IfcProjectedCRS_IsLengthUnit: SCOPE = 'entity' @@ -8562,8 +8572,8 @@ class IfcProjectedCRS_IsLengthUnit: @staticmethod def __call__(self): - mapunit = getattr(self, 'MapUnit', INDETERMINATE) - assert (not exists(mapunit) or getattr(mapunit, 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False + mapunit = express_getattr(self, 'MapUnit', INDETERMINATE) + assert (not exists(mapunit) or express_getattr(mapunit, 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False class IfcPropertyBoundedValue_SameUnitUpperLower: SCOPE = 'entity' @@ -8572,8 +8582,8 @@ class IfcPropertyBoundedValue_SameUnitUpperLower: @staticmethod def __call__(self): - upperboundvalue = getattr(self, 'UpperBoundValue', INDETERMINATE) - lowerboundvalue = getattr(self, 'LowerBoundValue', INDETERMINATE) + upperboundvalue = express_getattr(self, 'UpperBoundValue', INDETERMINATE) + lowerboundvalue = express_getattr(self, 'LowerBoundValue', INDETERMINATE) assert (not exists(upperboundvalue) or not exists(lowerboundvalue) or typeof(upperboundvalue) == typeof(lowerboundvalue)) is not False class IfcPropertyBoundedValue_SameUnitUpperSet: @@ -8583,8 +8593,8 @@ class IfcPropertyBoundedValue_SameUnitUpperSet: @staticmethod def __call__(self): - upperboundvalue = getattr(self, 'UpperBoundValue', INDETERMINATE) - setpointvalue = getattr(self, 'SetPointValue', INDETERMINATE) + upperboundvalue = express_getattr(self, 'UpperBoundValue', INDETERMINATE) + setpointvalue = express_getattr(self, 'SetPointValue', INDETERMINATE) assert (not exists(upperboundvalue) or not exists(setpointvalue) or typeof(upperboundvalue) == typeof(setpointvalue)) is not False class IfcPropertyBoundedValue_SameUnitLowerSet: @@ -8594,8 +8604,8 @@ class IfcPropertyBoundedValue_SameUnitLowerSet: @staticmethod def __call__(self): - lowerboundvalue = getattr(self, 'LowerBoundValue', INDETERMINATE) - setpointvalue = getattr(self, 'SetPointValue', INDETERMINATE) + lowerboundvalue = express_getattr(self, 'LowerBoundValue', INDETERMINATE) + setpointvalue = express_getattr(self, 'SetPointValue', INDETERMINATE) assert (not exists(lowerboundvalue) or not exists(setpointvalue) or typeof(lowerboundvalue) == typeof(setpointvalue)) is not False class IfcPropertyDependencyRelationship_NoSelfReference: @@ -8605,8 +8615,8 @@ class IfcPropertyDependencyRelationship_NoSelfReference: @staticmethod def __call__(self): - dependingproperty = getattr(self, 'DependingProperty', INDETERMINATE) - dependantproperty = getattr(self, 'DependantProperty', INDETERMINATE) + dependingproperty = express_getattr(self, 'DependingProperty', INDETERMINATE) + dependantproperty = express_getattr(self, 'DependantProperty', INDETERMINATE) assert (dependingproperty != dependantproperty) is not False class IfcPropertyEnumeratedValue_WR21: @@ -8616,9 +8626,9 @@ class IfcPropertyEnumeratedValue_WR21: @staticmethod def __call__(self): - enumerationvalues = getattr(self, 'EnumerationValues', INDETERMINATE) - enumerationreference = getattr(self, 'EnumerationReference', INDETERMINATE) - assert (not exists(enumerationreference) or not exists(enumerationvalues) or sizeof([temp for temp in enumerationvalues if temp in getattr(enumerationreference, 'EnumerationValues', INDETERMINATE)]) == sizeof(enumerationvalues)) is not False + enumerationvalues = express_getattr(self, 'EnumerationValues', INDETERMINATE) + enumerationreference = express_getattr(self, 'EnumerationReference', INDETERMINATE) + assert (not exists(enumerationreference) or not exists(enumerationvalues) or sizeof([temp for temp in enumerationvalues if temp in express_getattr(enumerationreference, 'EnumerationValues', INDETERMINATE)]) == sizeof(enumerationvalues)) is not False class IfcPropertyEnumeration_WR01: SCOPE = 'entity' @@ -8627,7 +8637,7 @@ class IfcPropertyEnumeration_WR01: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'EnumerationValues', INDETERMINATE) if not typeof(express_getitem(getattr(self, 'EnumerationValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'EnumerationValues', INDETERMINATE) if not typeof(express_getitem(express_getattr(self, 'EnumerationValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False class IfcPropertyListValue_WR31: SCOPE = 'entity' @@ -8636,7 +8646,7 @@ class IfcPropertyListValue_WR31: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'ListValues', INDETERMINATE) if not typeof(express_getitem(getattr(self, 'ListValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'ListValues', INDETERMINATE) if not typeof(express_getitem(express_getattr(self, 'ListValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False class IfcPropertySet_ExistsName: SCOPE = 'entity' @@ -8645,7 +8655,7 @@ class IfcPropertySet_ExistsName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPropertySet_UniquePropertyNames: SCOPE = 'entity' @@ -8654,7 +8664,7 @@ class IfcPropertySet_UniquePropertyNames: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert IfcUniquePropertyName(hasproperties) is not False class IfcPropertySetTemplate_ExistsName: @@ -8664,7 +8674,7 @@ class IfcPropertySetTemplate_ExistsName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPropertySetTemplate_UniquePropertyNames: SCOPE = 'entity' @@ -8673,7 +8683,7 @@ class IfcPropertySetTemplate_UniquePropertyNames: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert IfcUniquePropertyTemplateNames(haspropertytemplates) is not False class IfcPropertyTableValue_WR21: @@ -8683,8 +8693,8 @@ class IfcPropertyTableValue_WR21: @staticmethod def __call__(self): - definingvalues = getattr(self, 'DefiningValues', INDETERMINATE) - definedvalues = getattr(self, 'DefinedValues', INDETERMINATE) + definingvalues = express_getattr(self, 'DefiningValues', INDETERMINATE) + definedvalues = express_getattr(self, 'DefinedValues', INDETERMINATE) assert (not exists(definingvalues) and (not exists(definedvalues)) or sizeof(definingvalues) == sizeof(definedvalues)) is not False class IfcPropertyTableValue_WR22: @@ -8694,8 +8704,8 @@ class IfcPropertyTableValue_WR22: @staticmethod def __call__(self): - definingvalues = getattr(self, 'DefiningValues', INDETERMINATE) - assert (not exists(definingvalues) or sizeof([temp for temp in getattr(self, 'DefiningValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(getattr(self, 'DefiningValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False + definingvalues = express_getattr(self, 'DefiningValues', INDETERMINATE) + assert (not exists(definingvalues) or sizeof([temp for temp in express_getattr(self, 'DefiningValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(express_getattr(self, 'DefiningValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False class IfcPropertyTableValue_WR23: SCOPE = 'entity' @@ -8704,8 +8714,8 @@ class IfcPropertyTableValue_WR23: @staticmethod def __call__(self): - definedvalues = getattr(self, 'DefinedValues', INDETERMINATE) - assert (not exists(definedvalues) or sizeof([temp for temp in getattr(self, 'DefinedValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(getattr(self, 'DefinedValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False + definedvalues = express_getattr(self, 'DefinedValues', INDETERMINATE) + assert (not exists(definedvalues) or sizeof([temp for temp in express_getattr(self, 'DefinedValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(express_getattr(self, 'DefinedValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False class IfcProtectiveDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -8714,8 +8724,8 @@ class IfcProtectiveDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProtectiveDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -8724,8 +8734,8 @@ class IfcProtectiveDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcprotectivedevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcprotectivedevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcProtectiveDeviceTrippingUnit_CorrectPredefinedType: SCOPE = 'entity' @@ -8734,8 +8744,8 @@ class IfcProtectiveDeviceTrippingUnit_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProtectiveDeviceTrippingUnit_CorrectTypeAssigned: SCOPE = 'entity' @@ -8744,8 +8754,8 @@ class IfcProtectiveDeviceTrippingUnit_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcprotectivedevicetrippingunittype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcprotectivedevicetrippingunittype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcProtectiveDeviceTrippingUnitType_CorrectPredefinedType: SCOPE = 'entity' @@ -8754,8 +8764,8 @@ class IfcProtectiveDeviceTrippingUnitType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcProtectiveDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -8764,8 +8774,8 @@ class IfcProtectiveDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcProxy_WR1: SCOPE = 'entity' @@ -8774,7 +8784,7 @@ class IfcProxy_WR1: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPump_CorrectPredefinedType: SCOPE = 'entity' @@ -8783,8 +8793,8 @@ class IfcPump_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPump_CorrectTypeAssigned: SCOPE = 'entity' @@ -8793,8 +8803,8 @@ class IfcPump_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcpumptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcpumptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPumpType_CorrectPredefinedType: SCOPE = 'entity' @@ -8803,8 +8813,8 @@ class IfcPumpType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcQuantityArea_WR21: SCOPE = 'entity' @@ -8813,7 +8823,7 @@ class IfcQuantityArea_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE)) is not False class IfcQuantityArea_WR22: SCOPE = 'entity' @@ -8822,7 +8832,7 @@ class IfcQuantityArea_WR22: @staticmethod def __call__(self): - areavalue = getattr(self, 'AreaValue', INDETERMINATE) + areavalue = express_getattr(self, 'AreaValue', INDETERMINATE) assert (areavalue >= 0.0) is not False class IfcQuantityCount_WR21: @@ -8832,7 +8842,7 @@ class IfcQuantityCount_WR21: @staticmethod def __call__(self): - countvalue = getattr(self, 'CountValue', INDETERMINATE) + countvalue = express_getattr(self, 'CountValue', INDETERMINATE) assert (countvalue >= 0.0) is not False class IfcQuantityLength_WR21: @@ -8842,7 +8852,7 @@ class IfcQuantityLength_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False class IfcQuantityLength_WR22: SCOPE = 'entity' @@ -8851,7 +8861,7 @@ class IfcQuantityLength_WR22: @staticmethod def __call__(self): - lengthvalue = getattr(self, 'LengthValue', INDETERMINATE) + lengthvalue = express_getattr(self, 'LengthValue', INDETERMINATE) assert (lengthvalue >= 0.0) is not False class IfcQuantityTime_WR21: @@ -8861,7 +8871,7 @@ class IfcQuantityTime_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE)) is not False class IfcQuantityTime_WR22: SCOPE = 'entity' @@ -8870,7 +8880,7 @@ class IfcQuantityTime_WR22: @staticmethod def __call__(self): - timevalue = getattr(self, 'TimeValue', INDETERMINATE) + timevalue = express_getattr(self, 'TimeValue', INDETERMINATE) assert (timevalue >= 0.0) is not False class IfcQuantityVolume_WR21: @@ -8880,7 +8890,7 @@ class IfcQuantityVolume_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE)) is not False class IfcQuantityVolume_WR22: SCOPE = 'entity' @@ -8889,7 +8899,7 @@ class IfcQuantityVolume_WR22: @staticmethod def __call__(self): - volumevalue = getattr(self, 'VolumeValue', INDETERMINATE) + volumevalue = express_getattr(self, 'VolumeValue', INDETERMINATE) assert (volumevalue >= 0.0) is not False class IfcQuantityWeight_WR21: @@ -8899,7 +8909,7 @@ class IfcQuantityWeight_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE)) is not False class IfcQuantityWeight_WR22: SCOPE = 'entity' @@ -8908,7 +8918,7 @@ class IfcQuantityWeight_WR22: @staticmethod def __call__(self): - weightvalue = getattr(self, 'WeightValue', INDETERMINATE) + weightvalue = express_getattr(self, 'WeightValue', INDETERMINATE) assert (weightvalue >= 0.0) is not False class IfcRailing_CorrectPredefinedType: @@ -8918,8 +8928,8 @@ class IfcRailing_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRailing_CorrectTypeAssigned: SCOPE = 'entity' @@ -8928,8 +8938,8 @@ class IfcRailing_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcrailingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcrailingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRailingType_CorrectPredefinedType: SCOPE = 'entity' @@ -8938,8 +8948,8 @@ class IfcRailingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRamp_CorrectPredefinedType: SCOPE = 'entity' @@ -8948,8 +8958,8 @@ class IfcRamp_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRamp_CorrectTypeAssigned: SCOPE = 'entity' @@ -8958,8 +8968,8 @@ class IfcRamp_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcramptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcramptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRampFlight_CorrectPredefinedType: SCOPE = 'entity' @@ -8968,8 +8978,8 @@ class IfcRampFlight_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRampFlight_CorrectTypeAssigned: SCOPE = 'entity' @@ -8978,8 +8988,8 @@ class IfcRampFlight_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcrampflighttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcrampflighttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRampFlightType_CorrectPredefinedType: SCOPE = 'entity' @@ -8988,8 +8998,8 @@ class IfcRampFlightType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRampType_CorrectPredefinedType: SCOPE = 'entity' @@ -8998,8 +9008,8 @@ class IfcRampType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRationalBSplineCurveWithKnots_SameNumOfWeightsAndPoints: SCOPE = 'entity' @@ -9008,8 +9018,8 @@ class IfcRationalBSplineCurveWithKnots_SameNumOfWeightsAndPoints: @staticmethod def __call__(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - assert (sizeof(weightsdata) == sizeof(getattr(self, 'ControlPointsList', INDETERMINATE))) is not False + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + assert (sizeof(weightsdata) == sizeof(express_getattr(self, 'ControlPointsList', INDETERMINATE))) is not False class IfcRationalBSplineCurveWithKnots_WeightsGreaterZero: SCOPE = 'entity' @@ -9021,8 +9031,8 @@ class IfcRationalBSplineCurveWithKnots_WeightsGreaterZero: assert IfcCurveWeightsPositive(self) is not False def calc_IfcRationalBSplineCurveWithKnots_Weights(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - return IfcListToArray(weightsdata, 0, getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE)) + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + return IfcListToArray(weightsdata, 0, express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE)) class IfcRationalBSplineSurfaceWithKnots_CorrespondingWeightsDataLists: SCOPE = 'entity' @@ -9031,8 +9041,8 @@ class IfcRationalBSplineSurfaceWithKnots_CorrespondingWeightsDataLists: @staticmethod def __call__(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - assert (sizeof(weightsdata) == sizeof(getattr(self, 'ControlPointsList', INDETERMINATE)) and sizeof(express_getitem(weightsdata, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == sizeof(express_getitem(getattr(self, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + assert (sizeof(weightsdata) == sizeof(express_getattr(self, 'ControlPointsList', INDETERMINATE)) and sizeof(express_getitem(weightsdata, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == sizeof(express_getitem(express_getattr(self, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcRationalBSplineSurfaceWithKnots_WeightValuesGreaterZero: SCOPE = 'entity' @@ -9044,9 +9054,9 @@ class IfcRationalBSplineSurfaceWithKnots_WeightValuesGreaterZero: assert IfcSurfaceWeightsPositive(self) is not False def calc_IfcRationalBSplineSurfaceWithKnots_Weights(self): - uupper = getattr(self, 'UUpper', INDETERMINATE) - vupper = getattr(self, 'VUpper', INDETERMINATE) - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) + uupper = express_getattr(self, 'UUpper', INDETERMINATE) + vupper = express_getattr(self, 'VUpper', INDETERMINATE) + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) return IfcMakeArrayOfArray(weightsdata, 0, uupper, 0, vupper) class IfcRectangleHollowProfileDef_ValidWallThickness: @@ -9056,8 +9066,8 @@ class IfcRectangleHollowProfileDef_ValidWallThickness: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - assert (wallthickness < getattr(self, 'XDim', INDETERMINATE) / 2.0 and wallthickness < getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + assert (wallthickness < express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and wallthickness < express_getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False class IfcRectangleHollowProfileDef_ValidInnerRadius: SCOPE = 'entity' @@ -9066,9 +9076,9 @@ class IfcRectangleHollowProfileDef_ValidInnerRadius: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - innerfilletradius = getattr(self, 'InnerFilletRadius', INDETERMINATE) - assert (not exists(innerfilletradius) or (innerfilletradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 - wallthickness and innerfilletradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0 - wallthickness)) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + innerfilletradius = express_getattr(self, 'InnerFilletRadius', INDETERMINATE) + assert (not exists(innerfilletradius) or (innerfilletradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 - wallthickness and innerfilletradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0 - wallthickness)) is not False class IfcRectangleHollowProfileDef_ValidOuterRadius: SCOPE = 'entity' @@ -9077,8 +9087,8 @@ class IfcRectangleHollowProfileDef_ValidOuterRadius: @staticmethod def __call__(self): - outerfilletradius = getattr(self, 'OuterFilletRadius', INDETERMINATE) - assert (not exists(outerfilletradius) or (outerfilletradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 and outerfilletradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0)) is not False + outerfilletradius = express_getattr(self, 'OuterFilletRadius', INDETERMINATE) + assert (not exists(outerfilletradius) or (outerfilletradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and outerfilletradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0)) is not False class IfcRectangularTrimmedSurface_U1AndU2Different: SCOPE = 'entity' @@ -9087,8 +9097,8 @@ class IfcRectangularTrimmedSurface_U1AndU2Different: @staticmethod def __call__(self): - u1 = getattr(self, 'U1', INDETERMINATE) - u2 = getattr(self, 'U2', INDETERMINATE) + u1 = express_getattr(self, 'U1', INDETERMINATE) + u2 = express_getattr(self, 'U2', INDETERMINATE) assert (u1 != u2) is not False class IfcRectangularTrimmedSurface_V1AndV2Different: @@ -9098,8 +9108,8 @@ class IfcRectangularTrimmedSurface_V1AndV2Different: @staticmethod def __call__(self): - v1 = getattr(self, 'V1', INDETERMINATE) - v2 = getattr(self, 'V2', INDETERMINATE) + v1 = express_getattr(self, 'V1', INDETERMINATE) + v2 = express_getattr(self, 'V2', INDETERMINATE) assert (v1 != v2) is not False class IfcRectangularTrimmedSurface_UsenseCompatible: @@ -9109,10 +9119,10 @@ class IfcRectangularTrimmedSurface_UsenseCompatible: @staticmethod def __call__(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) - u1 = getattr(self, 'U1', INDETERMINATE) - u2 = getattr(self, 'U2', INDETERMINATE) - usense = getattr(self, 'Usense', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) + u1 = express_getattr(self, 'U1', INDETERMINATE) + u2 = express_getattr(self, 'U2', INDETERMINATE) + usense = express_getattr(self, 'Usense', INDETERMINATE) assert ('ifc4.ifcelementarysurface' in typeof(basissurface) and (not 'ifc4.ifcplane' in typeof(basissurface)) or 'ifc4.ifcsurfaceofrevolution' in typeof(basissurface) or usense == (u2 > u1)) is not False class IfcRectangularTrimmedSurface_VsenseCompatible: @@ -9122,9 +9132,9 @@ class IfcRectangularTrimmedSurface_VsenseCompatible: @staticmethod def __call__(self): - v1 = getattr(self, 'V1', INDETERMINATE) - v2 = getattr(self, 'V2', INDETERMINATE) - vsense = getattr(self, 'Vsense', INDETERMINATE) + v1 = express_getattr(self, 'V1', INDETERMINATE) + v2 = express_getattr(self, 'V2', INDETERMINATE) + vsense = express_getattr(self, 'Vsense', INDETERMINATE) assert (vsense == (v2 > v1)) is not False class IfcReinforcingBar_CorrectPredefinedType: @@ -9134,8 +9144,8 @@ class IfcReinforcingBar_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingBar_CorrectTypeAssigned: SCOPE = 'entity' @@ -9144,8 +9154,8 @@ class IfcReinforcingBar_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcreinforcingbartype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcreinforcingbartype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcReinforcingBarType_CorrectPredefinedType: SCOPE = 'entity' @@ -9154,8 +9164,8 @@ class IfcReinforcingBarType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcReinforcingBarType_BendingShapeCodeProvided: SCOPE = 'entity' @@ -9164,8 +9174,8 @@ class IfcReinforcingBarType_BendingShapeCodeProvided: @staticmethod def __call__(self): - bendingshapecode = getattr(self, 'BendingShapeCode', INDETERMINATE) - bendingparameters = getattr(self, 'BendingParameters', INDETERMINATE) + bendingshapecode = express_getattr(self, 'BendingShapeCode', INDETERMINATE) + bendingparameters = express_getattr(self, 'BendingParameters', INDETERMINATE) assert (not exists(bendingparameters) or exists(bendingshapecode)) is not False class IfcReinforcingMesh_CorrectPredefinedType: @@ -9175,8 +9185,8 @@ class IfcReinforcingMesh_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingMesh_CorrectTypeAssigned: SCOPE = 'entity' @@ -9185,8 +9195,8 @@ class IfcReinforcingMesh_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcreinforcingmeshtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcreinforcingmeshtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcReinforcingMeshType_CorrectPredefinedType: SCOPE = 'entity' @@ -9195,8 +9205,8 @@ class IfcReinforcingMeshType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcReinforcingMeshType_BendingShapeCodeProvided: SCOPE = 'entity' @@ -9205,8 +9215,8 @@ class IfcReinforcingMeshType_BendingShapeCodeProvided: @staticmethod def __call__(self): - bendingshapecode = getattr(self, 'BendingShapeCode', INDETERMINATE) - bendingparameters = getattr(self, 'BendingParameters', INDETERMINATE) + bendingshapecode = express_getattr(self, 'BendingShapeCode', INDETERMINATE) + bendingparameters = express_getattr(self, 'BendingParameters', INDETERMINATE) assert (not exists(bendingparameters) or exists(bendingshapecode)) is not False class IfcRelAggregates_NoSelfReference: @@ -9216,8 +9226,8 @@ class IfcRelAggregates_NoSelfReference: @staticmethod def __call__(self): - relatingobject = getattr(self, 'RelatingObject', INDETERMINATE) - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) + relatingobject = express_getattr(self, 'RelatingObject', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) assert (sizeof([temp for temp in relatedobjects if relatingobject == temp]) == 0) is not False class IfcRelAssigns_WR1: @@ -9227,8 +9237,8 @@ class IfcRelAssigns_WR1: @staticmethod def __call__(self): - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) - relatedobjectstype = getattr(self, 'RelatedObjectsType', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) + relatedobjectstype = express_getattr(self, 'RelatedObjectsType', INDETERMINATE) assert IfcCorrectObjectAssignment(relatedobjectstype, relatedobjects) is not False class IfcRelAssignsToActor_NoSelfReference: @@ -9238,8 +9248,8 @@ class IfcRelAssignsToActor_NoSelfReference: @staticmethod def __call__(self): - relatingactor = getattr(self, 'RelatingActor', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingactor == temp]) == 0) is not False + relatingactor = express_getattr(self, 'RelatingActor', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingactor == temp]) == 0) is not False class IfcRelAssignsToControl_NoSelfReference: SCOPE = 'entity' @@ -9248,8 +9258,8 @@ class IfcRelAssignsToControl_NoSelfReference: @staticmethod def __call__(self): - relatingcontrol = getattr(self, 'RelatingControl', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingcontrol == temp]) == 0) is not False + relatingcontrol = express_getattr(self, 'RelatingControl', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingcontrol == temp]) == 0) is not False class IfcRelAssignsToGroup_NoSelfReference: SCOPE = 'entity' @@ -9258,8 +9268,8 @@ class IfcRelAssignsToGroup_NoSelfReference: @staticmethod def __call__(self): - relatinggroup = getattr(self, 'RelatingGroup', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatinggroup == temp]) == 0) is not False + relatinggroup = express_getattr(self, 'RelatingGroup', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatinggroup == temp]) == 0) is not False class IfcRelAssignsToProcess_NoSelfReference: SCOPE = 'entity' @@ -9268,8 +9278,8 @@ class IfcRelAssignsToProcess_NoSelfReference: @staticmethod def __call__(self): - relatingprocess = getattr(self, 'RelatingProcess', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingprocess == temp]) == 0) is not False + relatingprocess = express_getattr(self, 'RelatingProcess', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingprocess == temp]) == 0) is not False class IfcRelAssignsToProduct_NoSelfReference: SCOPE = 'entity' @@ -9278,8 +9288,8 @@ class IfcRelAssignsToProduct_NoSelfReference: @staticmethod def __call__(self): - relatingproduct = getattr(self, 'RelatingProduct', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingproduct == temp]) == 0) is not False + relatingproduct = express_getattr(self, 'RelatingProduct', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingproduct == temp]) == 0) is not False class IfcRelAssignsToResource_NoSelfReference: SCOPE = 'entity' @@ -9288,8 +9298,8 @@ class IfcRelAssignsToResource_NoSelfReference: @staticmethod def __call__(self): - relatingresource = getattr(self, 'RelatingResource', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingresource == temp]) == 0) is not False + relatingresource = express_getattr(self, 'RelatingResource', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingresource == temp]) == 0) is not False class IfcRelAssociatesMaterial_NoVoidElement: SCOPE = 'entity' @@ -9298,7 +9308,7 @@ class IfcRelAssociatesMaterial_NoVoidElement: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4.ifcfeatureelementsubtraction' in typeof(temp) or 'ifc4.ifcvirtualelement' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4.ifcfeatureelementsubtraction' in typeof(temp) or 'ifc4.ifcvirtualelement' in typeof(temp)]) == 0) is not False class IfcRelAssociatesMaterial_AllowedElements: SCOPE = 'entity' @@ -9307,7 +9317,7 @@ class IfcRelAssociatesMaterial_AllowedElements: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if sizeof(typeof(temp) * ['ifc4.ifcelement', 'ifc4.ifcelementtype', 'ifc4.ifcwindowstyle', 'ifc4.ifcdoorstyle', 'ifc4.ifcstructuralmember', 'ifc4.ifcport']) == 0]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if sizeof(typeof(temp) * ['ifc4.ifcelement', 'ifc4.ifcelementtype', 'ifc4.ifcwindowstyle', 'ifc4.ifcdoorstyle', 'ifc4.ifcstructuralmember', 'ifc4.ifcport']) == 0]) == 0) is not False class IfcRelConnectsElements_NoSelfReference: SCOPE = 'entity' @@ -9316,8 +9326,8 @@ class IfcRelConnectsElements_NoSelfReference: @staticmethod def __call__(self): - relatingelement = getattr(self, 'RelatingElement', INDETERMINATE) - relatedelement = getattr(self, 'RelatedElement', INDETERMINATE) + relatingelement = express_getattr(self, 'RelatingElement', INDETERMINATE) + relatedelement = express_getattr(self, 'RelatedElement', INDETERMINATE) assert (relatingelement != relatedelement) is not False class IfcRelConnectsPathElements_NormalizedRelatingPriorities: @@ -9327,7 +9337,7 @@ class IfcRelConnectsPathElements_NormalizedRelatingPriorities: @staticmethod def __call__(self): - relatingpriorities = getattr(self, 'RelatingPriorities', INDETERMINATE) + relatingpriorities = express_getattr(self, 'RelatingPriorities', INDETERMINATE) assert (sizeof(relatingpriorities) == 0 or sizeof([temp for temp in relatingpriorities if 0 <= temp <= 100]) == sizeof(relatingpriorities)) is not False class IfcRelConnectsPathElements_NormalizedRelatedPriorities: @@ -9337,7 +9347,7 @@ class IfcRelConnectsPathElements_NormalizedRelatedPriorities: @staticmethod def __call__(self): - relatedpriorities = getattr(self, 'RelatedPriorities', INDETERMINATE) + relatedpriorities = express_getattr(self, 'RelatedPriorities', INDETERMINATE) assert (sizeof(relatedpriorities) == 0 or sizeof([temp for temp in relatedpriorities if 0 <= temp <= 100]) == sizeof(relatedpriorities)) is not False class IfcRelConnectsPorts_NoSelfReference: @@ -9347,8 +9357,8 @@ class IfcRelConnectsPorts_NoSelfReference: @staticmethod def __call__(self): - relatingport = getattr(self, 'RelatingPort', INDETERMINATE) - relatedport = getattr(self, 'RelatedPort', INDETERMINATE) + relatingport = express_getattr(self, 'RelatingPort', INDETERMINATE) + relatedport = express_getattr(self, 'RelatedPort', INDETERMINATE) assert (relatingport != relatedport) is not False class IfcRelContainedInSpatialStructure_WR31: @@ -9358,7 +9368,7 @@ class IfcRelContainedInSpatialStructure_WR31: @staticmethod def __call__(self): - relatedelements = getattr(self, 'RelatedElements', INDETERMINATE) + relatedelements = express_getattr(self, 'RelatedElements', INDETERMINATE) assert (sizeof([temp for temp in relatedelements if 'ifc4.ifcspatialstructureelement' in typeof(temp)]) == 0) is not False class IfcRelDeclares_NoSelfReference: @@ -9368,8 +9378,8 @@ class IfcRelDeclares_NoSelfReference: @staticmethod def __call__(self): - relatingcontext = getattr(self, 'RelatingContext', INDETERMINATE) - relateddefinitions = getattr(self, 'RelatedDefinitions', INDETERMINATE) + relatingcontext = express_getattr(self, 'RelatingContext', INDETERMINATE) + relateddefinitions = express_getattr(self, 'RelatedDefinitions', INDETERMINATE) assert (sizeof([temp for temp in relateddefinitions if relatingcontext == temp]) == 0) is not False class IfcRelDefinesByProperties_NoRelatedTypeObject: @@ -9379,7 +9389,7 @@ class IfcRelDefinesByProperties_NoRelatedTypeObject: @staticmethod def __call__(self): - assert (sizeof([types for types in getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4.ifctypeobject' in typeof(types)]) == 0) is not False + assert (sizeof([types for types in express_getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4.ifctypeobject' in typeof(types)]) == 0) is not False class IfcRelInterferesElements_NotSelfReference: SCOPE = 'entity' @@ -9388,8 +9398,8 @@ class IfcRelInterferesElements_NotSelfReference: @staticmethod def __call__(self): - relatingelement = getattr(self, 'RelatingElement', INDETERMINATE) - relatedelement = getattr(self, 'RelatedElement', INDETERMINATE) + relatingelement = express_getattr(self, 'RelatingElement', INDETERMINATE) + relatedelement = express_getattr(self, 'RelatedElement', INDETERMINATE) assert (relatingelement != relatedelement) is not False class IfcRelNests_NoSelfReference: @@ -9399,8 +9409,8 @@ class IfcRelNests_NoSelfReference: @staticmethod def __call__(self): - relatingobject = getattr(self, 'RelatingObject', INDETERMINATE) - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) + relatingobject = express_getattr(self, 'RelatingObject', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) assert (sizeof([temp for temp in relatedobjects if relatingobject == temp]) == 0) is not False class IfcRelReferencedInSpatialStructure_AllowedRelatedElements: @@ -9410,7 +9420,7 @@ class IfcRelReferencedInSpatialStructure_AllowedRelatedElements: @staticmethod def __call__(self): - relatedelements = getattr(self, 'RelatedElements', INDETERMINATE) + relatedelements = express_getattr(self, 'RelatedElements', INDETERMINATE) assert (sizeof([temp for temp in relatedelements if 'ifc4.ifcspatialstructureelement' in typeof(temp) and (not 'ifc4.ifcspace' in typeof(temp))]) == 0) is not False class IfcRelSequence_AvoidInconsistentSequence: @@ -9420,8 +9430,8 @@ class IfcRelSequence_AvoidInconsistentSequence: @staticmethod def __call__(self): - relatingprocess = getattr(self, 'RelatingProcess', INDETERMINATE) - relatedprocess = getattr(self, 'RelatedProcess', INDETERMINATE) + relatingprocess = express_getattr(self, 'RelatingProcess', INDETERMINATE) + relatedprocess = express_getattr(self, 'RelatedProcess', INDETERMINATE) assert (relatingprocess != relatedprocess) is not False class IfcRelSequence_CorrectSequenceType: @@ -9431,9 +9441,9 @@ class IfcRelSequence_CorrectSequenceType: @staticmethod def __call__(self): - sequencetype = getattr(self, 'SequenceType', INDETERMINATE) - userdefinedsequencetype = getattr(self, 'UserDefinedSequenceType', INDETERMINATE) - assert (sequencetype != getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) or (sequencetype == getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedsequencetype))) is not False + sequencetype = express_getattr(self, 'SequenceType', INDETERMINATE) + userdefinedsequencetype = express_getattr(self, 'UserDefinedSequenceType', INDETERMINATE) + assert (sequencetype != express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) or (sequencetype == express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedsequencetype))) is not False class IfcRelSpaceBoundary_CorrectPhysOrVirt: SCOPE = 'entity' @@ -9442,9 +9452,9 @@ class IfcRelSpaceBoundary_CorrectPhysOrVirt: @staticmethod def __call__(self): - relatedbuildingelement = getattr(self, 'RelatedBuildingElement', INDETERMINATE) - physicalorvirtualboundary = getattr(self, 'PhysicalOrVirtualBoundary', INDETERMINATE) - assert (physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'Physical', INDETERMINATE) and (not 'ifc4.ifcvirtualelement' in typeof(relatedbuildingelement)) or (physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'Virtual', INDETERMINATE) and ('ifc4.ifcvirtualelement' in typeof(relatedbuildingelement) or 'ifc4.ifcopeningelement' in typeof(relatedbuildingelement))) or physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'NotDefined', INDETERMINATE)) is not False + relatedbuildingelement = express_getattr(self, 'RelatedBuildingElement', INDETERMINATE) + physicalorvirtualboundary = express_getattr(self, 'PhysicalOrVirtualBoundary', INDETERMINATE) + assert (physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'Physical', INDETERMINATE) and (not 'ifc4.ifcvirtualelement' in typeof(relatedbuildingelement)) or (physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'Virtual', INDETERMINATE) and ('ifc4.ifcvirtualelement' in typeof(relatedbuildingelement) or 'ifc4.ifcopeningelement' in typeof(relatedbuildingelement))) or physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'NotDefined', INDETERMINATE)) is not False class IfcReparametrisedCompositeCurveSegment_PositiveLengthParameter: SCOPE = 'entity' @@ -9453,7 +9463,7 @@ class IfcReparametrisedCompositeCurveSegment_PositiveLengthParameter: @staticmethod def __call__(self): - paramlength = getattr(self, 'ParamLength', INDETERMINATE) + paramlength = express_getattr(self, 'ParamLength', INDETERMINATE) assert (paramlength > 0.0) is not False class IfcRepresentationMap_ApplicableMappedRepr: @@ -9463,7 +9473,7 @@ class IfcRepresentationMap_ApplicableMappedRepr: @staticmethod def __call__(self): - mappedrepresentation = getattr(self, 'MappedRepresentation', INDETERMINATE) + mappedrepresentation = express_getattr(self, 'MappedRepresentation', INDETERMINATE) assert ('ifc4.ifcshapemodel' in typeof(mappedrepresentation)) is not False class IfcRevolvedAreaSolid_AxisStartInXY: @@ -9473,8 +9483,8 @@ class IfcRevolvedAreaSolid_AxisStartInXY: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (express_getitem(getattr(getattr(axis, 'Location', INDETERMINATE), 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (express_getitem(express_getattr(express_getattr(axis, 'Location', INDETERMINATE), 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False class IfcRevolvedAreaSolid_AxisDirectionInXY: SCOPE = 'entity' @@ -9483,12 +9493,12 @@ class IfcRevolvedAreaSolid_AxisDirectionInXY: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (express_getitem(getattr(getattr(axis, 'Z', INDETERMINATE), 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (express_getitem(express_getattr(express_getattr(axis, 'Z', INDETERMINATE), 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False def calc_IfcRevolvedAreaSolid_AxisLine(self): - axis = getattr(self, 'Axis', INDETERMINATE) - return IfcLine(Pnt=getattr(axis, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=getattr(axis, 'Z', INDETERMINATE), Magnitude=1.0)) + axis = express_getattr(self, 'Axis', INDETERMINATE) + return IfcLine(Pnt=express_getattr(axis, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=express_getattr(axis, 'Z', INDETERMINATE), Magnitude=1.0)) class IfcRevolvedAreaSolidTapered_CorrectProfileAssignment: SCOPE = 'entity' @@ -9497,7 +9507,7 @@ class IfcRevolvedAreaSolidTapered_CorrectProfileAssignment: @staticmethod def __call__(self): - assert IfcTaperedSweptAreaProfiles(getattr(self, 'SweptArea', INDETERMINATE), getattr(self, 'EndSweptArea', INDETERMINATE)) is not False + assert IfcTaperedSweptAreaProfiles(express_getattr(self, 'SweptArea', INDETERMINATE), express_getattr(self, 'EndSweptArea', INDETERMINATE)) is not False class IfcRoof_CorrectPredefinedType: SCOPE = 'entity' @@ -9506,8 +9516,8 @@ class IfcRoof_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRoof_CorrectTypeAssigned: SCOPE = 'entity' @@ -9516,8 +9526,8 @@ class IfcRoof_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcrooftype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcrooftype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRoofType_CorrectPredefinedType: SCOPE = 'entity' @@ -9526,8 +9536,8 @@ class IfcRoofType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRoundedRectangleProfileDef_ValidRadius: SCOPE = 'entity' @@ -9536,11 +9546,11 @@ class IfcRoundedRectangleProfileDef_ValidRadius: @staticmethod def __call__(self): - roundingradius = getattr(self, 'RoundingRadius', INDETERMINATE) - assert (roundingradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 and roundingradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False + roundingradius = express_getattr(self, 'RoundingRadius', INDETERMINATE) + assert (roundingradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and roundingradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False def calc_IfcSIUnit_Dimensions(self): - return IfcDimensionsForSiUnit(getattr(self, 'Name', INDETERMINATE)) + return IfcDimensionsForSiUnit(express_getattr(self, 'Name', INDETERMINATE)) class IfcSanitaryTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -9549,8 +9559,8 @@ class IfcSanitaryTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSanitaryTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -9559,8 +9569,8 @@ class IfcSanitaryTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcsanitaryterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcsanitaryterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSanitaryTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -9569,8 +9579,8 @@ class IfcSanitaryTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSeamCurve_TwoPCurves: SCOPE = 'entity' @@ -9579,7 +9589,7 @@ class IfcSeamCurve_TwoPCurves: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False + assert (sizeof(express_getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False class IfcSeamCurve_SameSurface: SCOPE = 'entity' @@ -9588,7 +9598,7 @@ class IfcSeamCurve_SameSurface: @staticmethod def __call__(self): - assert (IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcSectionedSpine_CorrespondingSectionPositions: SCOPE = 'entity' @@ -9597,8 +9607,8 @@ class IfcSectionedSpine_CorrespondingSectionPositions: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) assert (sizeof(crosssections) == sizeof(crosssectionpositions)) is not False class IfcSectionedSpine_ConsistentProfileTypes: @@ -9608,8 +9618,8 @@ class IfcSectionedSpine_ConsistentProfileTypes: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - assert (sizeof([temp for temp in crosssections if getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + assert (sizeof([temp for temp in crosssections if express_getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != express_getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcSectionedSpine_SpineCurveDim: SCOPE = 'entity' @@ -9618,8 +9628,8 @@ class IfcSectionedSpine_SpineCurveDim: @staticmethod def __call__(self): - spinecurve = getattr(self, 'SpineCurve', INDETERMINATE) - assert (getattr(spinecurve, 'Dim', INDETERMINATE) == 3) is not False + spinecurve = express_getattr(self, 'SpineCurve', INDETERMINATE) + assert (express_getattr(spinecurve, 'Dim', INDETERMINATE) == 3) is not False def calc_IfcSectionedSpine_Dim(self): return 3 @@ -9631,8 +9641,8 @@ class IfcSensor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSensor_CorrectTypeAssigned: SCOPE = 'entity' @@ -9641,8 +9651,8 @@ class IfcSensor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcsensortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcsensortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSensorType_CorrectPredefinedType: SCOPE = 'entity' @@ -9651,8 +9661,8 @@ class IfcSensorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcShadingDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -9661,8 +9671,8 @@ class IfcShadingDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcShadingDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -9671,8 +9681,8 @@ class IfcShadingDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcshadingdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcshadingdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcShadingDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9681,8 +9691,8 @@ class IfcShadingDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcShapeModel_WR11: SCOPE = 'entity' @@ -9691,8 +9701,8 @@ class IfcShapeModel_WR11: @staticmethod def __call__(self): - ofshapeaspect = getattr(self, 'OfShapeAspect', INDETERMINATE) - assert (sizeof(getattr(self, 'OfProductRepresentation', INDETERMINATE)) == 1) ^ (sizeof(getattr(self, 'RepresentationMap', INDETERMINATE)) == 1) ^ (sizeof(ofshapeaspect) == 1) is not False + ofshapeaspect = express_getattr(self, 'OfShapeAspect', INDETERMINATE) + assert (sizeof(express_getattr(self, 'OfProductRepresentation', INDETERMINATE)) == 1) ^ (sizeof(express_getattr(self, 'RepresentationMap', INDETERMINATE)) == 1) ^ (sizeof(ofshapeaspect) == 1) is not False class IfcShapeRepresentation_CorrectContext: SCOPE = 'entity' @@ -9701,7 +9711,7 @@ class IfcShapeRepresentation_CorrectContext: @staticmethod def __call__(self): - assert ('ifc4.ifcgeometricrepresentationcontext' in typeof(getattr(self, 'ContextOfItems', INDETERMINATE))) is not False + assert ('ifc4.ifcgeometricrepresentationcontext' in typeof(express_getattr(self, 'ContextOfItems', INDETERMINATE))) is not False class IfcShapeRepresentation_NoTopologicalItem: SCOPE = 'entity' @@ -9710,7 +9720,7 @@ class IfcShapeRepresentation_NoTopologicalItem: @staticmethod def __call__(self): - items = getattr(self, 'Items', INDETERMINATE) + items = express_getattr(self, 'Items', INDETERMINATE) assert (sizeof([temp for temp in items if 'ifc4.ifctopologicalrepresentationitem' in typeof(temp) and (not sizeof(['ifc4.ifcvertexpoint', 'ifc4.ifcedgecurve', 'ifc4.ifcfacesurface'] * typeof(temp)) == 1)]) == 0) is not False class IfcShapeRepresentation_HasRepresentationType: @@ -9720,7 +9730,7 @@ class IfcShapeRepresentation_HasRepresentationType: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationType', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationType', INDETERMINATE)) is not False class IfcShapeRepresentation_HasRepresentationIdentifier: SCOPE = 'entity' @@ -9729,7 +9739,7 @@ class IfcShapeRepresentation_HasRepresentationIdentifier: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationIdentifier', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationIdentifier', INDETERMINATE)) is not False class IfcShapeRepresentation_CorrectItemsForType: SCOPE = 'entity' @@ -9738,7 +9748,7 @@ class IfcShapeRepresentation_CorrectItemsForType: @staticmethod def __call__(self): - assert IfcShapeRepresentationTypes(getattr(self, 'RepresentationType', INDETERMINATE), getattr(self, 'Items', INDETERMINATE)) is not False + assert IfcShapeRepresentationTypes(express_getattr(self, 'RepresentationType', INDETERMINATE), express_getattr(self, 'Items', INDETERMINATE)) is not False def calc_IfcShellBasedSurfaceModel_Dim(self): return 3 @@ -9750,8 +9760,8 @@ class IfcSlab_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSlab_CorrectTypeAssigned: SCOPE = 'entity' @@ -9760,8 +9770,8 @@ class IfcSlab_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcslabtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcslabtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSlabElementedCase_HasDecomposition: SCOPE = 'entity' @@ -9770,7 +9780,7 @@ class IfcSlabElementedCase_HasDecomposition: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'IsDecomposedBy', INDETERMINATE)) > 0) is not False + assert (hiindex(express_getattr(self, 'IsDecomposedBy', INDETERMINATE)) > 0) is not False class IfcSlabStandardCase_HasMaterialLayerSetusage: SCOPE = 'entity' @@ -9779,7 +9789,7 @@ class IfcSlabStandardCase_HasMaterialLayerSetusage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4.ifcrelassociates.relatedobjects') if 'ifc4.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4.ifcmateriallayersetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4.ifcrelassociates.relatedobjects') if 'ifc4.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4.ifcmateriallayersetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcSlabType_CorrectPredefinedType: SCOPE = 'entity' @@ -9788,8 +9798,8 @@ class IfcSlabType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSolarDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -9798,8 +9808,8 @@ class IfcSolarDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSolarDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -9808,8 +9818,8 @@ class IfcSolarDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcsolardevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcsolardevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSolarDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9818,8 +9828,8 @@ class IfcSolarDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcSolidModel_Dim(self): return 3 @@ -9831,8 +9841,8 @@ class IfcSpace_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpace_CorrectTypeAssigned: SCOPE = 'entity' @@ -9841,8 +9851,8 @@ class IfcSpace_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcspacetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcspacetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpaceHeater_CorrectPredefinedType: SCOPE = 'entity' @@ -9851,8 +9861,8 @@ class IfcSpaceHeater_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpaceHeater_CorrectTypeAssigned: SCOPE = 'entity' @@ -9861,8 +9871,8 @@ class IfcSpaceHeater_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcspaceheatertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcspaceheatertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpaceHeaterType_CorrectPredefinedType: SCOPE = 'entity' @@ -9871,8 +9881,8 @@ class IfcSpaceHeaterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSpaceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9881,8 +9891,8 @@ class IfcSpaceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSpatialStructureElement_WR41: SCOPE = 'entity' @@ -9891,7 +9901,7 @@ class IfcSpatialStructureElement_WR41: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'Decomposes', INDETERMINATE)) == 1 and 'ifc4.ifcrelaggregates' in typeof(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4.ifcproject' in typeof(getattr(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)) or 'ifc4.ifcspatialstructureelement' in typeof(getattr(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)))) is not False + assert (hiindex(express_getattr(self, 'Decomposes', INDETERMINATE)) == 1 and 'ifc4.ifcrelaggregates' in typeof(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4.ifcproject' in typeof(express_getattr(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)) or 'ifc4.ifcspatialstructureelement' in typeof(express_getattr(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)))) is not False class IfcSpatialZone_CorrectPredefinedType: SCOPE = 'entity' @@ -9900,8 +9910,8 @@ class IfcSpatialZone_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpatialZone_CorrectTypeAssigned: SCOPE = 'entity' @@ -9910,8 +9920,8 @@ class IfcSpatialZone_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcspatialzonetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcspatialzonetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpatialZoneType_CorrectPredefinedType: SCOPE = 'entity' @@ -9920,8 +9930,8 @@ class IfcSpatialZoneType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStackTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -9930,8 +9940,8 @@ class IfcStackTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStackTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -9940,8 +9950,8 @@ class IfcStackTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcstackterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcstackterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStackTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -9950,8 +9960,8 @@ class IfcStackTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStair_CorrectPredefinedType: SCOPE = 'entity' @@ -9960,8 +9970,8 @@ class IfcStair_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStair_CorrectTypeAssigned: SCOPE = 'entity' @@ -9970,8 +9980,8 @@ class IfcStair_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcstairtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcstairtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStairFlight_CorrectPredefinedType: SCOPE = 'entity' @@ -9980,8 +9990,8 @@ class IfcStairFlight_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStairFlight_CorrectTypeAssigned: SCOPE = 'entity' @@ -9990,8 +10000,8 @@ class IfcStairFlight_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcstairflighttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcstairflighttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStairFlightType_CorrectPredefinedType: SCOPE = 'entity' @@ -10000,8 +10010,8 @@ class IfcStairFlightType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStairType_CorrectPredefinedType: SCOPE = 'entity' @@ -10010,8 +10020,8 @@ class IfcStairType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStructuralAnalysisModel_HasObjectType: SCOPE = 'entity' @@ -10020,8 +10030,8 @@ class IfcStructuralAnalysisModel_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveAction_ProjectedIsGlobal: SCOPE = 'entity' @@ -10030,8 +10040,8 @@ class IfcStructuralCurveAction_ProjectedIsGlobal: @staticmethod def __call__(self): - projectedortrue = getattr(self, 'ProjectedOrTrue', INDETERMINATE) - assert (not exists(projectedortrue) or (projectedortrue != projected_length or getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False + projectedortrue = express_getattr(self, 'ProjectedOrTrue', INDETERMINATE) + assert (not exists(projectedortrue) or (projectedortrue != projected_length or express_getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False class IfcStructuralCurveAction_HasObjectType: SCOPE = 'entity' @@ -10040,8 +10050,8 @@ class IfcStructuralCurveAction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveAction_SuitablePredefinedType: SCOPE = 'entity' @@ -10050,8 +10060,8 @@ class IfcStructuralCurveAction_SuitablePredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE)) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE)) is not False class IfcStructuralCurveMember_HasObjectType: SCOPE = 'entity' @@ -10060,8 +10070,8 @@ class IfcStructuralCurveMember_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveReaction_HasObjectType: SCOPE = 'entity' @@ -10070,8 +10080,8 @@ class IfcStructuralCurveReaction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveReaction_SuitablePredefinedType: SCOPE = 'entity' @@ -10080,8 +10090,8 @@ class IfcStructuralCurveReaction_SuitablePredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) and predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE)) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) and predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE)) is not False class IfcStructuralLinearAction_SuitableLoadType: SCOPE = 'entity' @@ -10090,7 +10100,7 @@ class IfcStructuralLinearAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4.ifcstructuralloadlinearforce', 'ifc4.ifcstructuralloadtemperature'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4.ifcstructuralloadlinearforce', 'ifc4.ifcstructuralloadtemperature'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralLinearAction_ConstPredefinedType: SCOPE = 'entity' @@ -10099,7 +10109,7 @@ class IfcStructuralLinearAction_ConstPredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE)) is not False class IfcStructuralLoadCase_IsLoadCasePredefinedType: SCOPE = 'entity' @@ -10108,7 +10118,7 @@ class IfcStructuralLoadCase_IsLoadCasePredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE)) is not False class IfcStructuralLoadConfiguration_ValidListSize: SCOPE = 'entity' @@ -10117,8 +10127,8 @@ class IfcStructuralLoadConfiguration_ValidListSize: @staticmethod def __call__(self): - values = getattr(self, 'Values', INDETERMINATE) - locations = getattr(self, 'Locations', INDETERMINATE) + values = express_getattr(self, 'Values', INDETERMINATE) + locations = express_getattr(self, 'Locations', INDETERMINATE) assert (not exists(locations) or sizeof(locations) == sizeof(values)) is not False class IfcStructuralLoadGroup_HasObjectType: @@ -10128,10 +10138,10 @@ class IfcStructuralLoadGroup_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - actiontype = getattr(self, 'ActionType', INDETERMINATE) - actionsource = getattr(self, 'ActionSource', INDETERMINATE) - assert (predefinedtype != getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) and actiontype != getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) and (actionsource != getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE)) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + actiontype = express_getattr(self, 'ActionType', INDETERMINATE) + actionsource = express_getattr(self, 'ActionSource', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) and actiontype != express_getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) and (actionsource != express_getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE)) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralPlanarAction_SuitableLoadType: SCOPE = 'entity' @@ -10140,7 +10150,7 @@ class IfcStructuralPlanarAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4.ifcstructuralloadplanarforce', 'ifc4.ifcstructuralloadtemperature'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4.ifcstructuralloadplanarforce', 'ifc4.ifcstructuralloadtemperature'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralPlanarAction_ConstPredefinedType: SCOPE = 'entity' @@ -10149,7 +10159,7 @@ class IfcStructuralPlanarAction_ConstPredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE)) is not False class IfcStructuralPointAction_SuitableLoadType: SCOPE = 'entity' @@ -10158,7 +10168,7 @@ class IfcStructuralPointAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4.ifcstructuralloadsingleforce', 'ifc4.ifcstructuralloadsingledisplacement'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4.ifcstructuralloadsingleforce', 'ifc4.ifcstructuralloadsingledisplacement'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralPointReaction_SuitableLoadType: SCOPE = 'entity' @@ -10167,7 +10177,7 @@ class IfcStructuralPointReaction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4.ifcstructuralloadsingleforce', 'ifc4.ifcstructuralloadsingledisplacement'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4.ifcstructuralloadsingleforce', 'ifc4.ifcstructuralloadsingledisplacement'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralResultGroup_HasObjectType: SCOPE = 'entity' @@ -10176,8 +10186,8 @@ class IfcStructuralResultGroup_HasObjectType: @staticmethod def __call__(self): - theorytype = getattr(self, 'TheoryType', INDETERMINATE) - assert (theorytype != getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + theorytype = express_getattr(self, 'TheoryType', INDETERMINATE) + assert (theorytype != express_getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceAction_ProjectedIsGlobal: SCOPE = 'entity' @@ -10186,8 +10196,8 @@ class IfcStructuralSurfaceAction_ProjectedIsGlobal: @staticmethod def __call__(self): - projectedortrue = getattr(self, 'ProjectedOrTrue', INDETERMINATE) - assert (not exists(projectedortrue) or (projectedortrue != projected_length or getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False + projectedortrue = express_getattr(self, 'ProjectedOrTrue', INDETERMINATE) + assert (not exists(projectedortrue) or (projectedortrue != projected_length or express_getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False class IfcStructuralSurfaceAction_HasObjectType: SCOPE = 'entity' @@ -10196,8 +10206,8 @@ class IfcStructuralSurfaceAction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceMember_HasObjectType: SCOPE = 'entity' @@ -10206,8 +10216,8 @@ class IfcStructuralSurfaceMember_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceReaction_HasPredefinedType: SCOPE = 'entity' @@ -10216,8 +10226,8 @@ class IfcStructuralSurfaceReaction_HasPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStyledItem_ApplicableItem: SCOPE = 'entity' @@ -10226,7 +10236,7 @@ class IfcStyledItem_ApplicableItem: @staticmethod def __call__(self): - item = getattr(self, 'Item', INDETERMINATE) + item = express_getattr(self, 'Item', INDETERMINATE) assert (not 'ifc4.ifcstyleditem' in typeof(item)) is not False class IfcStyledRepresentation_OnlyStyledItems: @@ -10236,7 +10246,7 @@ class IfcStyledRepresentation_OnlyStyledItems: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Items', INDETERMINATE) if not 'ifc4.ifcstyleditem' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Items', INDETERMINATE) if not 'ifc4.ifcstyleditem' in typeof(temp)]) == 0) is not False class IfcSubContractResource_CorrectPredefinedType: SCOPE = 'entity' @@ -10245,8 +10255,8 @@ class IfcSubContractResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSubContractResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -10255,8 +10265,8 @@ class IfcSubContractResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False def calc_IfcSurface_Dim(self): return 3 @@ -10268,8 +10278,8 @@ class IfcSurfaceCurve_CurveIs3D: @staticmethod def __call__(self): - curve3d = getattr(self, 'Curve3D', INDETERMINATE) - assert (getattr(curve3d, 'Dim', INDETERMINATE) == 3) is not False + curve3d = express_getattr(self, 'Curve3D', INDETERMINATE) + assert (express_getattr(curve3d, 'Dim', INDETERMINATE) == 3) is not False class IfcSurfaceCurve_CurveIsNotPcurve: SCOPE = 'entity' @@ -10278,7 +10288,7 @@ class IfcSurfaceCurve_CurveIsNotPcurve: @staticmethod def __call__(self): - curve3d = getattr(self, 'Curve3D', INDETERMINATE) + curve3d = express_getattr(self, 'Curve3D', INDETERMINATE) assert (not 'ifc4.ifcpcurve' in typeof(curve3d)) is not False def calc_IfcSurfaceCurve_BasisSurface(self): @@ -10291,9 +10301,9 @@ class IfcSurfaceCurveSweptAreaSolid_DirectrixBounded: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - startparam = getattr(self, 'StartParam', INDETERMINATE) - endparam = getattr(self, 'EndParam', INDETERMINATE) + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + startparam = express_getattr(self, 'StartParam', INDETERMINATE) + endparam = express_getattr(self, 'EndParam', INDETERMINATE) assert (exists(startparam) and exists(endparam) or sizeof(['ifc4.ifcconic', 'ifc4.ifcboundedcurve'] * typeof(directrix)) == 1) is not False class IfcSurfaceFeature_HasObjectType: @@ -10303,8 +10313,8 @@ class IfcSurfaceFeature_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcSurfaceOfLinearExtrusion_DepthGreaterZero: SCOPE = 'entity' @@ -10313,17 +10323,17 @@ class IfcSurfaceOfLinearExtrusion_DepthGreaterZero: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) assert (depth > 0.0) is not False def calc_IfcSurfaceOfLinearExtrusion_ExtrusionAxis(self): - extrudeddirection = getattr(self, 'ExtrudedDirection', INDETERMINATE) - depth = getattr(self, 'Depth', INDETERMINATE) + extrudeddirection = express_getattr(self, 'ExtrudedDirection', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) return IfcVector(Orientation=extrudeddirection, Magnitude=depth) def calc_IfcSurfaceOfRevolution_AxisLine(self): - axisposition = getattr(self, 'AxisPosition', INDETERMINATE) - return IfcLine(Pnt=getattr(axisposition, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=getattr(axisposition, 'Z', INDETERMINATE), Magnitude=1.0)) + axisposition = express_getattr(self, 'AxisPosition', INDETERMINATE) + return IfcLine(Pnt=express_getattr(axisposition, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=express_getattr(axisposition, 'Z', INDETERMINATE), Magnitude=1.0)) class IfcSurfaceReinforcementArea_SurfaceAndOrShearAreaSpecified: SCOPE = 'entity' @@ -10332,9 +10342,9 @@ class IfcSurfaceReinforcementArea_SurfaceAndOrShearAreaSpecified: @staticmethod def __call__(self): - surfacereinforcement1 = getattr(self, 'SurfaceReinforcement1', INDETERMINATE) - surfacereinforcement2 = getattr(self, 'SurfaceReinforcement2', INDETERMINATE) - shearreinforcement = getattr(self, 'ShearReinforcement', INDETERMINATE) + surfacereinforcement1 = express_getattr(self, 'SurfaceReinforcement1', INDETERMINATE) + surfacereinforcement2 = express_getattr(self, 'SurfaceReinforcement2', INDETERMINATE) + shearreinforcement = express_getattr(self, 'ShearReinforcement', INDETERMINATE) assert (exists(surfacereinforcement1) or exists(surfacereinforcement2) or exists(shearreinforcement)) is not False class IfcSurfaceReinforcementArea_NonnegativeArea1: @@ -10344,7 +10354,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea1: @staticmethod def __call__(self): - surfacereinforcement1 = getattr(self, 'SurfaceReinforcement1', INDETERMINATE) + surfacereinforcement1 = express_getattr(self, 'SurfaceReinforcement1', INDETERMINATE) assert (not exists(surfacereinforcement1) or (express_getitem(surfacereinforcement1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and express_getitem(surfacereinforcement1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and (sizeof(surfacereinforcement1) == 1 or express_getitem(surfacereinforcement1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0))) is not False class IfcSurfaceReinforcementArea_NonnegativeArea2: @@ -10354,7 +10364,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea2: @staticmethod def __call__(self): - surfacereinforcement2 = getattr(self, 'SurfaceReinforcement2', INDETERMINATE) + surfacereinforcement2 = express_getattr(self, 'SurfaceReinforcement2', INDETERMINATE) assert (not exists(surfacereinforcement2) or (express_getitem(surfacereinforcement2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and express_getitem(surfacereinforcement2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and (sizeof(surfacereinforcement2) == 1 or express_getitem(surfacereinforcement2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0))) is not False class IfcSurfaceReinforcementArea_NonnegativeArea3: @@ -10364,7 +10374,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea3: @staticmethod def __call__(self): - shearreinforcement = getattr(self, 'ShearReinforcement', INDETERMINATE) + shearreinforcement = express_getattr(self, 'ShearReinforcement', INDETERMINATE) assert (not exists(shearreinforcement) or shearreinforcement >= 0.0) is not False class IfcSurfaceStyle_MaxOneShading: @@ -10374,7 +10384,7 @@ class IfcSurfaceStyle_MaxOneShading: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4.ifcsurfacestyleshading' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4.ifcsurfacestyleshading' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneLighting: SCOPE = 'entity' @@ -10383,7 +10393,7 @@ class IfcSurfaceStyle_MaxOneLighting: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4.ifcsurfacestylelighting' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4.ifcsurfacestylelighting' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneRefraction: SCOPE = 'entity' @@ -10392,7 +10402,7 @@ class IfcSurfaceStyle_MaxOneRefraction: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4.ifcsurfacestylerefraction' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4.ifcsurfacestylerefraction' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneTextures: SCOPE = 'entity' @@ -10401,7 +10411,7 @@ class IfcSurfaceStyle_MaxOneTextures: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4.ifcsurfacestylewithtextures' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4.ifcsurfacestylewithtextures' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneExtDefined: SCOPE = 'entity' @@ -10410,7 +10420,7 @@ class IfcSurfaceStyle_MaxOneExtDefined: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4.ifcexternallydefinedsurfacestyle' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4.ifcexternallydefinedsurfacestyle' in typeof(style)]) <= 1) is not False class IfcSweptAreaSolid_SweptAreaType: SCOPE = 'entity' @@ -10419,8 +10429,8 @@ class IfcSweptAreaSolid_SweptAreaType: @staticmethod def __call__(self): - sweptarea = getattr(self, 'SweptArea', INDETERMINATE) - assert (getattr(sweptarea, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'Area', INDETERMINATE)) is not False + sweptarea = express_getattr(self, 'SweptArea', INDETERMINATE) + assert (express_getattr(sweptarea, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'Area', INDETERMINATE)) is not False class IfcSweptDiskSolid_DirectrixDim: SCOPE = 'entity' @@ -10429,8 +10439,8 @@ class IfcSweptDiskSolid_DirectrixDim: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - assert (getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + assert (express_getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False class IfcSweptDiskSolid_InnerRadiusSize: SCOPE = 'entity' @@ -10439,8 +10449,8 @@ class IfcSweptDiskSolid_InnerRadiusSize: @staticmethod def __call__(self): - radius = getattr(self, 'Radius', INDETERMINATE) - innerradius = getattr(self, 'InnerRadius', INDETERMINATE) + radius = express_getattr(self, 'Radius', INDETERMINATE) + innerradius = express_getattr(self, 'InnerRadius', INDETERMINATE) assert (not exists(innerradius) or radius > innerradius) is not False class IfcSweptDiskSolid_DirectrixBounded: @@ -10450,9 +10460,9 @@ class IfcSweptDiskSolid_DirectrixBounded: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - startparam = getattr(self, 'StartParam', INDETERMINATE) - endparam = getattr(self, 'EndParam', INDETERMINATE) + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + startparam = express_getattr(self, 'StartParam', INDETERMINATE) + endparam = express_getattr(self, 'EndParam', INDETERMINATE) assert (exists(startparam) and exists(endparam) or sizeof(['ifc4.ifcconic', 'ifc4.ifcboundedcurve'] * typeof(directrix)) == 1) is not False class IfcSweptDiskSolidPolygonal_CorrectRadii: @@ -10462,8 +10472,8 @@ class IfcSweptDiskSolidPolygonal_CorrectRadii: @staticmethod def __call__(self): - filletradius = getattr(self, 'FilletRadius', INDETERMINATE) - assert (not exists(filletradius) or filletradius >= getattr(self, 'Radius', INDETERMINATE)) is not False + filletradius = express_getattr(self, 'FilletRadius', INDETERMINATE) + assert (not exists(filletradius) or filletradius >= express_getattr(self, 'Radius', INDETERMINATE)) is not False class IfcSweptDiskSolidPolygonal_DirectrixIsPolyline: SCOPE = 'entity' @@ -10472,7 +10482,7 @@ class IfcSweptDiskSolidPolygonal_DirectrixIsPolyline: @staticmethod def __call__(self): - assert ('ifc4.ifcpolyline' in typeof(getattr(self, 'Directrix', INDETERMINATE)) or ('ifc4.ifcindexedpolycurve' in typeof(getattr(self, 'Directrix', INDETERMINATE)) and (not exists(getattr(getattr(self, 'Directrix', INDETERMINATE), 'Segments', INDETERMINATE))))) is not False + assert ('ifc4.ifcpolyline' in typeof(express_getattr(self, 'Directrix', INDETERMINATE)) or ('ifc4.ifcindexedpolycurve' in typeof(express_getattr(self, 'Directrix', INDETERMINATE)) and (not exists(express_getattr(express_getattr(self, 'Directrix', INDETERMINATE), 'Segments', INDETERMINATE))))) is not False class IfcSweptSurface_SweptCurveType: SCOPE = 'entity' @@ -10481,8 +10491,8 @@ class IfcSweptSurface_SweptCurveType: @staticmethod def __call__(self): - sweptcurve = getattr(self, 'SweptCurve', INDETERMINATE) - assert (getattr(sweptcurve, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'Curve', INDETERMINATE)) is not False + sweptcurve = express_getattr(self, 'SweptCurve', INDETERMINATE) + assert (express_getattr(sweptcurve, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'Curve', INDETERMINATE)) is not False class IfcSwitchingDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -10491,8 +10501,8 @@ class IfcSwitchingDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSwitchingDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -10501,8 +10511,8 @@ class IfcSwitchingDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcswitchingdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcswitchingdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSwitchingDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -10511,8 +10521,8 @@ class IfcSwitchingDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSystemFurnitureElement_CorrectPredefinedType: SCOPE = 'entity' @@ -10521,8 +10531,8 @@ class IfcSystemFurnitureElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSystemFurnitureElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -10531,8 +10541,8 @@ class IfcSystemFurnitureElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcsystemfurnitureelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcsystemfurnitureelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSystemFurnitureElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -10541,8 +10551,8 @@ class IfcSystemFurnitureElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -10551,8 +10561,8 @@ class IfcTShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth) is not False class IfcTShapeProfileDef_ValidWebThickness: @@ -10562,8 +10572,8 @@ class IfcTShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - flangewidth = getattr(self, 'FlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + flangewidth = express_getattr(self, 'FlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < flangewidth) is not False class IfcTable_WR1: @@ -10573,8 +10583,8 @@ class IfcTable_WR1: @staticmethod def __call__(self): - rows = getattr(self, 'Rows', INDETERMINATE) - assert (sizeof([temp for temp in rows if hiindex(getattr(temp, 'RowCells', INDETERMINATE)) != hiindex(getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE))]) == 0) is not False + rows = express_getattr(self, 'Rows', INDETERMINATE) + assert (sizeof([temp for temp in rows if hiindex(express_getattr(temp, 'RowCells', INDETERMINATE)) != hiindex(express_getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE))]) == 0) is not False class IfcTable_WR2: SCOPE = 'entity' @@ -10583,20 +10593,20 @@ class IfcTable_WR2: @staticmethod def __call__(self): - numberofheadings = getattr(self, 'NumberOfHeadings', INDETERMINATE) + numberofheadings = express_getattr(self, 'NumberOfHeadings', INDETERMINATE) assert (0 <= numberofheadings <= 1) is not False def calc_IfcTable_NumberOfCellsInRow(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return hiindex(getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE)) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return hiindex(express_getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE)) def calc_IfcTable_NumberOfHeadings(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return sizeof([temp for temp in rows if getattr(temp, 'IsHeading', INDETERMINATE)]) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return sizeof([temp for temp in rows if express_getattr(temp, 'IsHeading', INDETERMINATE)]) def calc_IfcTable_NumberOfDataRows(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return sizeof([temp for temp in rows if not getattr(temp, 'IsHeading', INDETERMINATE)]) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return sizeof([temp for temp in rows if not express_getattr(temp, 'IsHeading', INDETERMINATE)]) class IfcTank_CorrectPredefinedType: SCOPE = 'entity' @@ -10605,8 +10615,8 @@ class IfcTank_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTank_CorrectTypeAssigned: SCOPE = 'entity' @@ -10615,8 +10625,8 @@ class IfcTank_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifctanktype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifctanktype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTankType_CorrectPredefinedType: SCOPE = 'entity' @@ -10625,8 +10635,8 @@ class IfcTankType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTask_HasName: SCOPE = 'entity' @@ -10635,7 +10645,7 @@ class IfcTask_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcTask_CorrectPredefinedType: SCOPE = 'entity' @@ -10644,8 +10654,8 @@ class IfcTask_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTaskType_CorrectPredefinedType: SCOPE = 'entity' @@ -10654,8 +10664,8 @@ class IfcTaskType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcTelecomAddress_MinimumDataProvided: SCOPE = 'entity' @@ -10664,12 +10674,12 @@ class IfcTelecomAddress_MinimumDataProvided: @staticmethod def __call__(self): - telephonenumbers = getattr(self, 'TelephoneNumbers', INDETERMINATE) - facsimilenumbers = getattr(self, 'FacsimileNumbers', INDETERMINATE) - pagernumber = getattr(self, 'PagerNumber', INDETERMINATE) - electronicmailaddresses = getattr(self, 'ElectronicMailAddresses', INDETERMINATE) - wwwhomepageurl = getattr(self, 'WWWHomePageURL', INDETERMINATE) - messagingids = getattr(self, 'MessagingIDs', INDETERMINATE) + telephonenumbers = express_getattr(self, 'TelephoneNumbers', INDETERMINATE) + facsimilenumbers = express_getattr(self, 'FacsimileNumbers', INDETERMINATE) + pagernumber = express_getattr(self, 'PagerNumber', INDETERMINATE) + electronicmailaddresses = express_getattr(self, 'ElectronicMailAddresses', INDETERMINATE) + wwwhomepageurl = express_getattr(self, 'WWWHomePageURL', INDETERMINATE) + messagingids = express_getattr(self, 'MessagingIDs', INDETERMINATE) assert (exists(telephonenumbers) or exists(facsimilenumbers) or exists(pagernumber) or exists(electronicmailaddresses) or exists(wwwhomepageurl) or exists(messagingids)) is not False class IfcTendon_CorrectPredefinedType: @@ -10679,8 +10689,8 @@ class IfcTendon_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendon_CorrectTypeAssigned: SCOPE = 'entity' @@ -10689,8 +10699,8 @@ class IfcTendon_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifctendontype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifctendontype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonAnchor_CorrectPredefinedType: SCOPE = 'entity' @@ -10699,8 +10709,8 @@ class IfcTendonAnchor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendonAnchor_CorrectTypeAssigned: SCOPE = 'entity' @@ -10709,8 +10719,8 @@ class IfcTendonAnchor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifctendonanchortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifctendonanchortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonAnchorType_CorrectPredefinedType: SCOPE = 'entity' @@ -10719,8 +10729,8 @@ class IfcTendonAnchorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTendonType_CorrectPredefinedType: SCOPE = 'entity' @@ -10729,8 +10739,8 @@ class IfcTendonType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcTessellatedFaceSet_Dim(self): return 3 @@ -10742,7 +10752,7 @@ class IfcTextLiteralWithExtent_WR31: @staticmethod def __call__(self): - extent = getattr(self, 'Extent', INDETERMINATE) + extent = express_getattr(self, 'Extent', INDETERMINATE) assert (not 'ifc4.ifcplanarbox' in typeof(extent)) is not False class IfcTextStyleFontModel_MeasureOfFontSize: @@ -10752,7 +10762,7 @@ class IfcTextStyleFontModel_MeasureOfFontSize: @staticmethod def __call__(self): - assert ('ifc4.ifclengthmeasure' in typeof(getattr(self, 'FontSize', INDETERMINATE)) and getattr(self, 'FontSize', INDETERMINATE) > 0.0) is not False + assert ('ifc4.ifclengthmeasure' in typeof(express_getattr(self, 'FontSize', INDETERMINATE)) and express_getattr(self, 'FontSize', INDETERMINATE) > 0.0) is not False class IfcTopologyRepresentation_WR21: SCOPE = 'entity' @@ -10761,7 +10771,7 @@ class IfcTopologyRepresentation_WR21: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Items', INDETERMINATE) if not 'ifc4.ifctopologicalrepresentationitem' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Items', INDETERMINATE) if not 'ifc4.ifctopologicalrepresentationitem' in typeof(temp)]) == 0) is not False class IfcTopologyRepresentation_WR22: SCOPE = 'entity' @@ -10770,7 +10780,7 @@ class IfcTopologyRepresentation_WR22: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationType', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationType', INDETERMINATE)) is not False class IfcTopologyRepresentation_WR23: SCOPE = 'entity' @@ -10779,7 +10789,7 @@ class IfcTopologyRepresentation_WR23: @staticmethod def __call__(self): - assert IfcTopologyRepresentationTypes(getattr(self, 'RepresentationType', INDETERMINATE), getattr(self, 'Items', INDETERMINATE)) is not False + assert IfcTopologyRepresentationTypes(express_getattr(self, 'RepresentationType', INDETERMINATE), express_getattr(self, 'Items', INDETERMINATE)) is not False class IfcToroidalSurface_MajorLargerMinor: SCOPE = 'entity' @@ -10788,8 +10798,8 @@ class IfcToroidalSurface_MajorLargerMinor: @staticmethod def __call__(self): - majorradius = getattr(self, 'MajorRadius', INDETERMINATE) - minorradius = getattr(self, 'MinorRadius', INDETERMINATE) + majorradius = express_getattr(self, 'MajorRadius', INDETERMINATE) + minorradius = express_getattr(self, 'MinorRadius', INDETERMINATE) assert (minorradius < majorradius) is not False class IfcTransformer_CorrectPredefinedType: @@ -10799,8 +10809,8 @@ class IfcTransformer_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTransformer_CorrectTypeAssigned: SCOPE = 'entity' @@ -10809,8 +10819,8 @@ class IfcTransformer_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifctranformertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifctranformertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTransformerType_CorrectPredefinedType: SCOPE = 'entity' @@ -10819,8 +10829,8 @@ class IfcTransformerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTransportElement_CorrectPredefinedType: SCOPE = 'entity' @@ -10829,8 +10839,8 @@ class IfcTransportElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTransportElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -10839,8 +10849,8 @@ class IfcTransportElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifctransportelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifctransportelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTransportElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -10849,11 +10859,11 @@ class IfcTransportElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcTriangulatedFaceSet_NumberOfTriangles(self): - coordindex = getattr(self, 'CoordIndex', INDETERMINATE) + coordindex = express_getattr(self, 'CoordIndex', INDETERMINATE) return sizeof(coordindex) class IfcTrimmedCurve_Trim1ValuesConsistent: @@ -10863,7 +10873,7 @@ class IfcTrimmedCurve_Trim1ValuesConsistent: @staticmethod def __call__(self): - trim1 = getattr(self, 'Trim1', INDETERMINATE) + trim1 = express_getattr(self, 'Trim1', INDETERMINATE) assert (hiindex(trim1) == 1 or typeof(express_getitem(trim1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(express_getitem(trim1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcTrimmedCurve_Trim2ValuesConsistent: @@ -10873,7 +10883,7 @@ class IfcTrimmedCurve_Trim2ValuesConsistent: @staticmethod def __call__(self): - trim2 = getattr(self, 'Trim2', INDETERMINATE) + trim2 = express_getattr(self, 'Trim2', INDETERMINATE) assert (hiindex(trim2) == 1 or typeof(express_getitem(trim2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(express_getitem(trim2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcTrimmedCurve_NoTrimOfBoundedCurves: @@ -10883,7 +10893,7 @@ class IfcTrimmedCurve_NoTrimOfBoundedCurves: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) assert (not 'ifc4.ifcboundedcurve' in typeof(basiscurve)) is not False class IfcTubeBundle_CorrectPredefinedType: @@ -10893,8 +10903,8 @@ class IfcTubeBundle_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTubeBundle_CorrectTypeAssigned: SCOPE = 'entity' @@ -10903,8 +10913,8 @@ class IfcTubeBundle_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifctubebundletype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifctubebundletype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTubeBundleType_CorrectPredefinedType: SCOPE = 'entity' @@ -10913,8 +10923,8 @@ class IfcTubeBundleType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTypeObject_NameRequired: SCOPE = 'entity' @@ -10923,7 +10933,7 @@ class IfcTypeObject_NameRequired: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcTypeObject_UniquePropertySetNames: SCOPE = 'entity' @@ -10932,7 +10942,7 @@ class IfcTypeObject_UniquePropertySetNames: @staticmethod def __call__(self): - haspropertysets = getattr(self, 'HasPropertySets', INDETERMINATE) + haspropertysets = express_getattr(self, 'HasPropertySets', INDETERMINATE) assert (not exists(haspropertysets) or IfcUniquePropertySetNames(haspropertysets)) is not False class IfcTypeProduct_ApplicableOccurrence: @@ -10942,7 +10952,7 @@ class IfcTypeProduct_ApplicableOccurrence: @staticmethod def __call__(self): - assert (not exists(lambda : express_getitem(getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or sizeof([temp for temp in getattr(express_getitem(getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not 'ifc4.ifcproduct' in typeof(temp)]) == 0) is not False + assert (not exists(lambda : express_getitem(express_getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or sizeof([temp for temp in express_getattr(express_getitem(express_getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not 'ifc4.ifcproduct' in typeof(temp)]) == 0) is not False class IfcUShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -10951,8 +10961,8 @@ class IfcUShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth / 2.0) is not False class IfcUShapeProfileDef_ValidWebThickness: @@ -10962,8 +10972,8 @@ class IfcUShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - flangewidth = getattr(self, 'FlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + flangewidth = express_getattr(self, 'FlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < flangewidth) is not False class IfcUnitAssignment_WR01: @@ -10973,7 +10983,7 @@ class IfcUnitAssignment_WR01: @staticmethod def __call__(self): - units = getattr(self, 'Units', INDETERMINATE) + units = express_getattr(self, 'Units', INDETERMINATE) assert IfcCorrectUnitAssignment(units) is not False class IfcUnitaryControlElement_CorrectPredefinedType: @@ -10983,8 +10993,8 @@ class IfcUnitaryControlElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcUnitaryControlElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -10993,8 +11003,8 @@ class IfcUnitaryControlElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcunitarycontrolelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcunitarycontrolelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcUnitaryControlElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -11003,8 +11013,8 @@ class IfcUnitaryControlElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcUnitaryEquipment_CorrectPredefinedType: SCOPE = 'entity' @@ -11013,8 +11023,8 @@ class IfcUnitaryEquipment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcUnitaryEquipment_CorrectTypeAssigned: SCOPE = 'entity' @@ -11023,8 +11033,8 @@ class IfcUnitaryEquipment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcunitaryequipmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcunitaryequipmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcUnitaryEquipmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -11033,8 +11043,8 @@ class IfcUnitaryEquipmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcValve_CorrectPredefinedType: SCOPE = 'entity' @@ -11043,8 +11053,8 @@ class IfcValve_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcValve_CorrectTypeAssigned: SCOPE = 'entity' @@ -11053,8 +11063,8 @@ class IfcValve_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcvalvetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcvalvetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcValveType_CorrectPredefinedType: SCOPE = 'entity' @@ -11063,8 +11073,8 @@ class IfcValveType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVector_MagGreaterOrEqualZero: SCOPE = 'entity' @@ -11073,12 +11083,12 @@ class IfcVector_MagGreaterOrEqualZero: @staticmethod def __call__(self): - magnitude = getattr(self, 'Magnitude', INDETERMINATE) + magnitude = express_getattr(self, 'Magnitude', INDETERMINATE) assert (magnitude >= 0.0) is not False def calc_IfcVector_Dim(self): - orientation = getattr(self, 'Orientation', INDETERMINATE) - return getattr(orientation, 'Dim', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return express_getattr(orientation, 'Dim', INDETERMINATE) class IfcVibrationIsolator_CorrectPredefinedType: SCOPE = 'entity' @@ -11087,8 +11097,8 @@ class IfcVibrationIsolator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcVibrationIsolator_CorrectTypeAssigned: SCOPE = 'entity' @@ -11097,8 +11107,8 @@ class IfcVibrationIsolator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcvibrationisolatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcvibrationisolatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcVibrationIsolatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -11107,8 +11117,8 @@ class IfcVibrationIsolatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVoidingFeature_HasObjectType: SCOPE = 'entity' @@ -11117,8 +11127,8 @@ class IfcVoidingFeature_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcWall_CorrectPredefinedType: SCOPE = 'entity' @@ -11127,8 +11137,8 @@ class IfcWall_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWall_CorrectTypeAssigned: SCOPE = 'entity' @@ -11137,8 +11147,8 @@ class IfcWall_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcwalltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcwalltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWallElementedCase_HasDecomposition: SCOPE = 'entity' @@ -11147,7 +11157,7 @@ class IfcWallElementedCase_HasDecomposition: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'IsDecomposedBy', INDETERMINATE)) > 0) is not False + assert (hiindex(express_getattr(self, 'IsDecomposedBy', INDETERMINATE)) > 0) is not False class IfcWallStandardCase_HasMaterialLayerSetUsage: SCOPE = 'entity' @@ -11156,7 +11166,7 @@ class IfcWallStandardCase_HasMaterialLayerSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4.ifcrelassociates.relatedobjects') if 'ifc4.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4.ifcmateriallayersetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4.ifcrelassociates.relatedobjects') if 'ifc4.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4.ifcmateriallayersetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcWallType_CorrectPredefinedType: SCOPE = 'entity' @@ -11165,8 +11175,8 @@ class IfcWallType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWasteTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -11175,8 +11185,8 @@ class IfcWasteTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWasteTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -11185,8 +11195,8 @@ class IfcWasteTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcwasteterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcwasteterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWasteTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -11195,8 +11205,8 @@ class IfcWasteTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWindow_CorrectStyleAssigned: SCOPE = 'entity' @@ -11205,8 +11215,8 @@ class IfcWindow_CorrectStyleAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4.ifcwindowtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4.ifcwindowtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWindowLiningProperties_WR31: SCOPE = 'entity' @@ -11215,8 +11225,8 @@ class IfcWindowLiningProperties_WR31: @staticmethod def __call__(self): - liningdepth = getattr(self, 'LiningDepth', INDETERMINATE) - liningthickness = getattr(self, 'LiningThickness', INDETERMINATE) + liningdepth = express_getattr(self, 'LiningDepth', INDETERMINATE) + liningthickness = express_getattr(self, 'LiningThickness', INDETERMINATE) assert (not (exists(liningdepth) and (not exists(liningthickness)))) is not False class IfcWindowLiningProperties_WR32: @@ -11226,8 +11236,8 @@ class IfcWindowLiningProperties_WR32: @staticmethod def __call__(self): - firsttransomoffset = getattr(self, 'FirstTransomOffset', INDETERMINATE) - secondtransomoffset = getattr(self, 'SecondTransomOffset', INDETERMINATE) + firsttransomoffset = express_getattr(self, 'FirstTransomOffset', INDETERMINATE) + secondtransomoffset = express_getattr(self, 'SecondTransomOffset', INDETERMINATE) assert (not (not exists(firsttransomoffset) and exists(secondtransomoffset))) is not False class IfcWindowLiningProperties_WR33: @@ -11237,8 +11247,8 @@ class IfcWindowLiningProperties_WR33: @staticmethod def __call__(self): - firstmullionoffset = getattr(self, 'FirstMullionOffset', INDETERMINATE) - secondmullionoffset = getattr(self, 'SecondMullionOffset', INDETERMINATE) + firstmullionoffset = express_getattr(self, 'FirstMullionOffset', INDETERMINATE) + secondmullionoffset = express_getattr(self, 'SecondMullionOffset', INDETERMINATE) assert (not (not exists(firstmullionoffset) and exists(secondmullionoffset))) is not False class IfcWindowLiningProperties_WR34: @@ -11248,7 +11258,7 @@ class IfcWindowLiningProperties_WR34: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4.ifcwindowtype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4.ifcwindowstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4.ifcwindowtype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4.ifcwindowstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcWindowPanelProperties_ApplicableToType: SCOPE = 'entity' @@ -11257,7 +11267,7 @@ class IfcWindowPanelProperties_ApplicableToType: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4.ifcwindowtype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4.ifcwindowstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4.ifcwindowtype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4.ifcwindowstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcWindowType_CorrectPredefinedType: SCOPE = 'entity' @@ -11266,8 +11276,8 @@ class IfcWindowType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWorkCalendar_CorrectPredefinedType: SCOPE = 'entity' @@ -11276,8 +11286,8 @@ class IfcWorkCalendar_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWorkPlan_CorrectPredefinedType: SCOPE = 'entity' @@ -11286,8 +11296,8 @@ class IfcWorkPlan_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWorkSchedule_CorrectPredefinedType: SCOPE = 'entity' @@ -11296,8 +11306,8 @@ class IfcWorkSchedule_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcZShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -11306,8 +11316,8 @@ class IfcZShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth / 2.0) is not False class IfcZone_WR1: @@ -11317,19 +11327,19 @@ class IfcZone_WR1: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'IsGroupedBy', INDETERMINATE)) == 0 or sizeof([temp for temp in getattr(express_getitem(getattr(self, 'IsGroupedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not ('ifc4.ifczone' in typeof(temp) or 'ifc4.ifcspace' in typeof(temp) or 'ifc4.ifcspatialzone' in typeof(temp))]) == 0) is not False + assert (sizeof(express_getattr(self, 'IsGroupedBy', INDETERMINATE)) == 0 or sizeof([temp for temp in express_getattr(express_getitem(express_getattr(self, 'IsGroupedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not ('ifc4.ifczone' in typeof(temp) or 'ifc4.ifcspace' in typeof(temp) or 'ifc4.ifcspatialzone' in typeof(temp))]) == 0) is not False class IfcRepresentationContextSameWCS: SCOPE = 'file' @staticmethod def __call__(file): - IfcGeometricRepresentationContext = getattr(file, 'by_type', INDETERMINATE)('IfcGeometricRepresentationContext') + IfcGeometricRepresentationContext = express_getattr(file, 'by_type', INDETERMINATE)('IfcGeometricRepresentationContext') isdifferent = False if sizeof(IfcGeometricRepresentationContext) > 1: for i in range(2, hiindex(IfcGeometricRepresentationContext) + 1): - if getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE) != getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE): - isdifferent = not IfcSameValidPrecision(getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) or not IfcSameAxis2Placement(getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) + if express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE) != express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE): + isdifferent = not IfcSameValidPrecision(express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) or not IfcSameAxis2Placement(express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) if isdifferent == True: break assert (isdifferent == False) is not False @@ -11339,11 +11349,11 @@ class IfcSingleProjectInstance: @staticmethod def __call__(file): - IfcProject = getattr(file, 'by_type', INDETERMINATE)('IfcProject') + IfcProject = express_getattr(file, 'by_type', INDETERMINATE)('IfcProject') assert (sizeof(IfcProject) <= 1) is not False def IfcAssociatedSurface(arg): - surf = getattr(arg, 'BasisSurface', INDETERMINATE) + surf = express_getattr(arg, 'BasisSurface', INDETERMINATE) return surf def IfcBaseAxis(dim, axis1, axis2, axis3): @@ -11357,13 +11367,13 @@ def IfcBaseAxis(dim, axis1, axis2, axis3): if exists(axis2): factor = IfcDotProduct(axis2, express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) if factor < 0.0: - u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) elif exists(axis2): d1 = IfcNormalise(axis2) u = [IfcOrthogonalComplement(d1), d1] - u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) else: u = [IfcDirection(DirectionRatios=[1.0, 0.0]), IfcDirection(DirectionRatios=[0.0, 1.0])] return u @@ -11381,7 +11391,7 @@ def IfcBuild2Axes(refdirection): def IfcBuildAxes(axis, refdirection): d1 = nvl(IfcNormalise(axis), IfcDirection(DirectionRatios=[0.0, 0.0, 1.0])) d2 = IfcFirstProjAxis(d1, refdirection) - return [d2, getattr(IfcNormalise(IfcCrossProduct(d1, d2)), 'Orientation', INDETERMINATE), d1] + return [d2, express_getattr(IfcNormalise(IfcCrossProduct(d1, d2)), 'Orientation', INDETERMINATE), d1] def IfcConsecutiveSegments(segments): result = True @@ -11418,11 +11428,11 @@ def IfcConstraintsParamBSpline(degree, upknots, upcp, knotmult, knots): def IfcConvertDirectionInto2D(direction): direction2d = IfcDirection(DirectionRatios=[0.0, 1.0]) - temp = list(getattr(direction2d, 'DirectionRatios', INDETERMINATE)) - temp[1 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(direction, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(direction2d, 'DirectionRatios', INDETERMINATE)) + temp[1 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(direction, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) direction2d.DirectionRatios = temp - temp = list(getattr(direction2d, 'DirectionRatios', INDETERMINATE)) - temp[2 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(direction, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(direction2d, 'DirectionRatios', INDETERMINATE)) + temp[2 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(direction, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) direction2d.DirectionRatios = temp return direction2d @@ -11602,7 +11612,7 @@ def IfcCorrectLocalPlacement(axisplacement, relplacement): if 'ifc4.ifcaxis2placement2d' in typeof(axisplacement): return True if 'ifc4.ifcaxis2placement3d' in typeof(axisplacement): - if getattr(getattr(relplacement, 'RelativePlacement', INDETERMINATE), 'Dim', INDETERMINATE) == 3: + if express_getattr(express_getattr(relplacement, 'RelativePlacement', INDETERMINATE), 'Dim', INDETERMINATE) == 3: return True else: return False @@ -11613,27 +11623,27 @@ def IfcCorrectObjectAssignment(constraint, objects): count = 0 if not exists(constraint): return True - if constraint == getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE): + if constraint == express_getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE): return True - elif constraint == getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4.ifcproduct' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4.ifcprocess' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4.ifccontrol' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4.ifcresource' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4.ifcactor' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4.ifcgroup' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4.ifcproject' in typeof(temp)]) return count == 0 else: @@ -11645,26 +11655,26 @@ def IfcCorrectUnitAssignment(units): monetaryunitnumber = 0 namedunitnames = express_set([]) derivedunitnames = express_set([]) - namedunitnumber = sizeof([temp for temp in units if 'ifc4.ifcnamedunit' in typeof(temp) and (not getattr(temp, 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE))]) - derivedunitnumber = sizeof([temp for temp in units if 'ifc4.ifcderivedunit' in typeof(temp) and (not getattr(temp, 'UnitType', INDETERMINATE) == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE))]) + namedunitnumber = sizeof([temp for temp in units if 'ifc4.ifcnamedunit' in typeof(temp) and (not express_getattr(temp, 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE))]) + derivedunitnumber = sizeof([temp for temp in units if 'ifc4.ifcderivedunit' in typeof(temp) and (not express_getattr(temp, 'UnitType', INDETERMINATE) == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE))]) monetaryunitnumber = sizeof([temp for temp in units if 'ifc4.ifcmonetaryunit' in typeof(temp)]) for i in range(1, sizeof(units) + 1): - if 'ifc4.ifcnamedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE)): - namedunitnames = namedunitnames + getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) - if 'ifc4.ifcderivedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE)): - derivedunitnames = derivedunitnames + getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) + if 'ifc4.ifcnamedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE)): + namedunitnames = namedunitnames + express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) + if 'ifc4.ifcderivedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE)): + derivedunitnames = derivedunitnames + express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) return sizeof(namedunitnames) == namedunitnumber and sizeof(derivedunitnames) == derivedunitnumber and (monetaryunitnumber <= 1) def IfcCrossProduct(arg1, arg2): - if (not exists(arg1) or getattr(arg1, 'Dim', INDETERMINATE) == 2) or (not exists(arg2) or getattr(arg2, 'Dim', INDETERMINATE) == 2): + if (not exists(arg1) or express_getattr(arg1, 'Dim', INDETERMINATE) == 2) or (not exists(arg2) or express_getattr(arg2, 'Dim', INDETERMINATE) == 2): return None else: - v1 = getattr(IfcNormalise(arg1), 'DirectionRatios', INDETERMINATE) - v2 = getattr(IfcNormalise(arg2), 'DirectionRatios', INDETERMINATE) + v1 = express_getattr(IfcNormalise(arg1), 'DirectionRatios', INDETERMINATE) + v2 = express_getattr(IfcNormalise(arg2), 'DirectionRatios', INDETERMINATE) res = IfcDirection(DirectionRatios=[express_getitem(v1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(v1, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(v1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) mag = 0.0 for i in range(1, 3 + 1): - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: @@ -11673,17 +11683,17 @@ def IfcCrossProduct(arg1, arg2): def IfcCurveDim(curve): if 'ifc4.ifcline' in typeof(curve): - return getattr(getattr(curve, 'Pnt', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Pnt', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4.ifcconic' in typeof(curve): - return getattr(getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4.ifcpolyline' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'Points', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'Points', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4.ifctrimmedcurve' in typeof(curve): - return IfcCurveDim(getattr(curve, 'BasisCurve', INDETERMINATE)) + return IfcCurveDim(express_getattr(curve, 'BasisCurve', INDETERMINATE)) if 'ifc4.ifccompositecurve' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4.ifcbsplinecurve' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4.ifcoffsetcurve2d' in typeof(curve): return 2 if 'ifc4.ifcoffsetcurve3d' in typeof(curve): @@ -11691,13 +11701,13 @@ def IfcCurveDim(curve): if 'ifc4.ifcpcurve' in typeof(curve): return 3 if 'ifc4.ifcindexedpolycurve' in typeof(curve): - return getattr(getattr(curve, 'Points', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Points', INDETERMINATE), 'Dim', INDETERMINATE) return None def IfcCurveWeightsPositive(b): result = True - for i in range(0, getattr(b, 'UpperIndexOnControlPoints', INDETERMINATE) + 1): - if express_getitem(getattr(b, 'Weights', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: + for i in range(0, express_getattr(b, 'UpperIndexOnControlPoints', INDETERMINATE) + 1): + if express_getitem(express_getattr(b, 'Weights', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: result = False return result return result @@ -11705,13 +11715,13 @@ def IfcCurveWeightsPositive(b): def IfcDeriveDimensionalExponents(unitelements): result = IfcDimensionalExponents(0, 0, 0, 0, 0, 0, 0) for i in range(loindex(unitelements), hiindex(unitelements) + 1): - result.LengthExponent = getattr(result, 'LengthExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LengthExponent', INDETERMINATE) - result.MassExponent = getattr(result, 'MassExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'MassExponent', INDETERMINATE) - result.TimeExponent = getattr(result, 'TimeExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'TimeExponent', INDETERMINATE) - result.ElectricCurrentExponent = getattr(result, 'ElectricCurrentExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ElectricCurrentExponent', INDETERMINATE) - result.ThermodynamicTemperatureExponent = getattr(result, 'ThermodynamicTemperatureExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ThermodynamicTemperatureExponent', INDETERMINATE) - result.AmountOfSubstanceExponent = getattr(result, 'AmountOfSubstanceExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'AmountOfSubstanceExponent', INDETERMINATE) - result.LuminousIntensityExponent = getattr(result, 'LuminousIntensityExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LuminousIntensityExponent', INDETERMINATE) + result.LengthExponent = express_getattr(result, 'LengthExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LengthExponent', INDETERMINATE) + result.MassExponent = express_getattr(result, 'MassExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'MassExponent', INDETERMINATE) + result.TimeExponent = express_getattr(result, 'TimeExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'TimeExponent', INDETERMINATE) + result.ElectricCurrentExponent = express_getattr(result, 'ElectricCurrentExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ElectricCurrentExponent', INDETERMINATE) + result.ThermodynamicTemperatureExponent = express_getattr(result, 'ThermodynamicTemperatureExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ThermodynamicTemperatureExponent', INDETERMINATE) + result.AmountOfSubstanceExponent = express_getattr(result, 'AmountOfSubstanceExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'AmountOfSubstanceExponent', INDETERMINATE) + result.LuminousIntensityExponent = express_getattr(result, 'LuminousIntensityExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LuminousIntensityExponent', INDETERMINATE) return result def IfcDimensionsForSiUnit(n): @@ -11781,15 +11791,15 @@ def IfcDimensionsForSiUnit(n): def IfcDotProduct(arg1, arg2): if not exists(arg1) or not exists(arg2): scalar = None - elif getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + elif express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): scalar = None else: vec1 = IfcNormalise(arg1) vec2 = IfcNormalise(arg2) - ndim = getattr(arg1, 'Dim', INDETERMINATE) + ndim = express_getattr(arg1, 'Dim', INDETERMINATE) scalar = 0.0 for i in range(1, ndim + 1): - scalar = scalar + express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + scalar = scalar + express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return scalar def IfcFirstProjAxis(zaxis, arg): @@ -11798,36 +11808,36 @@ def IfcFirstProjAxis(zaxis, arg): else: z = IfcNormalise(zaxis) if not exists(arg): - if getattr(z, 'DirectionRatios', INDETERMINATE) != [1.0, 0.0, 0.0]: + if express_getattr(z, 'DirectionRatios', INDETERMINATE) != [1.0, 0.0, 0.0]: v = IfcDirection(DirectionRatios=[1.0, 0.0, 0.0]) else: v = IfcDirection(DirectionRatios=[0.0, 1.0, 0.0]) else: - if getattr(arg, 'Dim', INDETERMINATE) != 3: + if express_getattr(arg, 'Dim', INDETERMINATE) != 3: return None - if getattr(IfcCrossProduct(arg, z), 'Magnitude', INDETERMINATE) == 0.0: + if express_getattr(IfcCrossProduct(arg, z), 'Magnitude', INDETERMINATE) == 0.0: return None else: v = IfcNormalise(arg) xvec = IfcScalarTimesVector(IfcDotProduct(v, z), z) - xaxis = getattr(IfcVectorDifference(v, xvec), 'Orientation', INDETERMINATE) + xaxis = express_getattr(IfcVectorDifference(v, xvec), 'Orientation', INDETERMINATE) xaxis = IfcNormalise(xaxis) return xaxis def IfcGetBasisSurface(c): surfs = [] if 'ifc4.ifcpcurve' in typeof(c): - surfs = [getattr(c, 'BasisSurface', INDETERMINATE)] + surfs = [express_getattr(c, 'BasisSurface', INDETERMINATE)] elif 'ifc4.ifcsurfacecurve' in typeof(c): - n = sizeof(getattr(c, 'AssociatedGeometry', INDETERMINATE)) + n = sizeof(express_getattr(c, 'AssociatedGeometry', INDETERMINATE)) for i in range(1, n + 1): - surfs = surfs + IfcAssociatedSurface(express_getitem(getattr(c, 'AssociatedGeometry', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) + surfs = surfs + IfcAssociatedSurface(express_getitem(express_getattr(c, 'AssociatedGeometry', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) if 'ifc4.ifccompositecurveonsurface' in typeof(c): - n = sizeof(getattr(c, 'Segments', INDETERMINATE)) - surfs = IfcGetBasisSurface(getattr(express_getitem(getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) + n = sizeof(express_getattr(c, 'Segments', INDETERMINATE)) + surfs = IfcGetBasisSurface(express_getattr(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) if n > 1: for i in range(2, n + 1): - surfs = surfs * IfcGetBasisSurface(getattr(express_getitem(getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) + surfs = surfs * IfcGetBasisSurface(express_getattr(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) return surfs def IfcListToArray(lis, low, u): @@ -11844,9 +11854,9 @@ def IfcListToArray(lis, low, u): def IfcLoopHeadToTail(aloop): p = True - n = sizeof(getattr(aloop, 'EdgeList', INDETERMINATE)) + n = sizeof(express_getattr(aloop, 'EdgeList', INDETERMINATE)) for i in range(2, n + 1): - p = p and getattr(express_getitem(getattr(aloop, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == getattr(express_getitem(getattr(aloop, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) + p = p and express_getattr(express_getitem(express_getattr(aloop, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == express_getattr(express_getitem(express_getattr(aloop, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) return p def IfcMakeArrayOfArray(lis, low1, u1, low2, u2): @@ -11864,10 +11874,10 @@ def IfcMakeArrayOfArray(lis, low1, u1, low2, u2): return res def IfcMlsTotalThickness(layerset): - max = getattr(express_getitem(getattr(layerset, 'MaterialLayers', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) - if sizeof(getattr(layerset, 'MaterialLayers', INDETERMINATE)) > 1: - for i in range(2, hiindex(getattr(layerset, 'MaterialLayers', INDETERMINATE)) + 1): - max = max + getattr(express_getitem(getattr(layerset, 'MaterialLayers', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) + max = express_getattr(express_getitem(express_getattr(layerset, 'MaterialLayers', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) + if sizeof(express_getattr(layerset, 'MaterialLayers', INDETERMINATE)) > 1: + for i in range(2, hiindex(express_getattr(layerset, 'MaterialLayers', INDETERMINATE)) + 1): + max = max + express_getattr(express_getitem(express_getattr(layerset, 'MaterialLayers', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) return max def IfcNormalise(arg): @@ -11878,25 +11888,25 @@ def IfcNormalise(arg): return None else: if 'ifc4.ifcvector' in typeof(arg): - ndim = getattr(arg, 'Dim', INDETERMINATE) - v.DirectionRatios = getattr(getattr(arg, 'Orientation', INDETERMINATE), 'DirectionRatios', INDETERMINATE) - vec.Magnitude = getattr(arg, 'Magnitude', INDETERMINATE) + ndim = express_getattr(arg, 'Dim', INDETERMINATE) + v.DirectionRatios = express_getattr(express_getattr(arg, 'Orientation', INDETERMINATE), 'DirectionRatios', INDETERMINATE) + vec.Magnitude = express_getattr(arg, 'Magnitude', INDETERMINATE) vec.Orientation = v - if getattr(arg, 'Magnitude', INDETERMINATE) == 0.0: + if express_getattr(arg, 'Magnitude', INDETERMINATE) == 0.0: return None else: vec.Magnitude = 1.0 else: - ndim = getattr(arg, 'Dim', INDETERMINATE) - v.DirectionRatios = getattr(arg, 'DirectionRatios', INDETERMINATE) + ndim = express_getattr(arg, 'Dim', INDETERMINATE) + v.DirectionRatios = express_getattr(arg, 'DirectionRatios', INDETERMINATE) mag = 0.0 for i in range(1, ndim + 1): - mag = mag + express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: mag = sqrt(mag) for i in range(1, ndim + 1): - temp = list(getattr(v, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) / mag + temp = list(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) / mag v.DirectionRatios = temp if 'ifc4.ifcvector' in typeof(arg): vec.Orientation = v @@ -11908,18 +11918,18 @@ def IfcNormalise(arg): return result def IfcOrthogonalComplement(vec): - if not exists(vec) or getattr(vec, 'Dim', INDETERMINATE) != 2: + if not exists(vec) or express_getattr(vec, 'Dim', INDETERMINATE) != 2: return None else: - result = IfcDirection(DirectionRatios=[-express_getitem(getattr(vec, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(vec, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) + result = IfcDirection(DirectionRatios=[-express_getitem(express_getattr(vec, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(vec, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) return result def IfcPathHeadToTail(apath): n = 0 p = unknown - n = sizeof(getattr(apath, 'EdgeList', INDETERMINATE)) + n = sizeof(express_getattr(apath, 'EdgeList', INDETERMINATE)) for i in range(2, n + 1): - p = p and getattr(express_getitem(getattr(apath, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == getattr(express_getitem(getattr(apath, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) + p = p and express_getattr(express_getitem(express_getattr(apath, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == express_getattr(express_getitem(express_getattr(apath, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) return p def IfcPointListDim(pointlist): @@ -11930,32 +11940,32 @@ def IfcPointListDim(pointlist): return None def IfcSameAxis2Placement(ap1, ap2, epsilon): - return IfcSameDirection(express_getitem(getattr(ap1, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(ap2, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameDirection(express_getitem(getattr(ap1, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(ap2, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameCartesianPoint(getattr(ap1, 'Location', INDETERMINATE), getattr(ap1, 'Location', INDETERMINATE), epsilon) + return IfcSameDirection(express_getitem(express_getattr(ap1, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(ap2, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameDirection(express_getitem(express_getattr(ap1, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(ap2, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameCartesianPoint(express_getattr(ap1, 'Location', INDETERMINATE), express_getattr(ap1, 'Location', INDETERMINATE), epsilon) def IfcSameCartesianPoint(cp1, cp2, epsilon): - cp1x = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - cp1y = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp1x = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp1y = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) cp1z = 0 - cp2x = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - cp2y = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp2x = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp2y = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) cp2z = 0 - if sizeof(getattr(cp1, 'Coordinates', INDETERMINATE)) > 2: - cp1z = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - if sizeof(getattr(cp2, 'Coordinates', INDETERMINATE)) > 2: - cp2z = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(cp1, 'Coordinates', INDETERMINATE)) > 2: + cp1z = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(cp2, 'Coordinates', INDETERMINATE)) > 2: + cp2z = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return IfcSameValue(cp1x, cp2x, epsilon) and IfcSameValue(cp1y, cp2y, epsilon) and IfcSameValue(cp1z, cp2z, epsilon) def IfcSameDirection(dir1, dir2, epsilon): - dir1x = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - dir1y = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir1x = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir1y = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) dir1z = 0 - dir2x = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - dir2y = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir2x = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir2y = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) dir2z = 0 - if sizeof(getattr(dir1, 'DirectionRatios', INDETERMINATE)) > 2: - dir1z = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - if sizeof(getattr(dir2, 'DirectionRatios', INDETERMINATE)) > 2: - dir2z = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(dir1, 'DirectionRatios', INDETERMINATE)) > 2: + dir1z = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(dir2, 'DirectionRatios', INDETERMINATE)) > 2: + dir2z = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return IfcSameValue(dir1x, dir2x, epsilon) and IfcSameValue(dir1y, dir2y, epsilon) and IfcSameValue(dir1z, dir2z, epsilon) def IfcSameValidPrecision(epsilon1, epsilon2): @@ -11976,15 +11986,15 @@ def IfcScalarTimesVector(scalar, vec): return None else: if 'ifc4.ifcvector' in typeof(vec): - v = getattr(vec, 'Orientation', INDETERMINATE) - mag = scalar * getattr(vec, 'Magnitude', INDETERMINATE) + v = express_getattr(vec, 'Orientation', INDETERMINATE) + mag = scalar * express_getattr(vec, 'Magnitude', INDETERMINATE) else: v = vec mag = scalar if mag < 0.0: - for i in range(1, sizeof(getattr(v, 'DirectionRatios', INDETERMINATE)) + 1): - temp = list(getattr(v, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + for i in range(1, sizeof(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + 1): + temp = list(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) v.DirectionRatios = temp mag = -mag result = IfcVector(Orientation=IfcNormalise(v), Magnitude=mag) @@ -12000,71 +12010,71 @@ def IfcSecondProjAxis(zaxis, xaxis, arg): temp = IfcScalarTimesVector(IfcDotProduct(v, xaxis), xaxis) yaxis = IfcVectorDifference(yaxis, temp) yaxis = IfcNormalise(yaxis) - return getattr(yaxis, 'Orientation', INDETERMINATE) + return express_getattr(yaxis, 'Orientation', INDETERMINATE) def IfcShapeRepresentationTypes(reptype, items): count = 0 - if getattr(reptype, 'lower', INDETERMINATE)() == 'point': + if express_getattr(reptype, 'lower', INDETERMINATE)() == 'point': count = sizeof([temp for temp in items if 'ifc4.ifcpoint' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'pointcloud': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'pointcloud': count = sizeof([temp for temp in items if 'ifc4.ifccartesianpointlist3d' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve': count = sizeof([temp for temp in items if 'ifc4.ifccurve' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve2d': - count = sizeof([temp for temp in items if 'ifc4.ifccurve' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 2]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve3d': - count = sizeof([temp for temp in items if 'ifc4.ifccurve' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 3]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve2d': + count = sizeof([temp for temp in items if 'ifc4.ifccurve' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 2]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve3d': + count = sizeof([temp for temp in items if 'ifc4.ifccurve' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 3]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface': count = sizeof([temp for temp in items if 'ifc4.ifcsurface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface2d': - count = sizeof([temp for temp in items if 'ifc4.ifcsurface' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 2]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface3d': - count = sizeof([temp for temp in items if 'ifc4.ifcsurface' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 3]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'fillarea': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface2d': + count = sizeof([temp for temp in items if 'ifc4.ifcsurface' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 2]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface3d': + count = sizeof([temp for temp in items if 'ifc4.ifcsurface' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 3]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'fillarea': count = sizeof([temp for temp in items if 'ifc4.ifcannotationfillarea' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'text': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'text': count = sizeof([temp for temp in items if 'ifc4.ifctextliteral' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsurface': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsurface': count = sizeof([temp for temp in items if 'ifc4.ifcbsplinesurface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'annotation2d': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'annotation2d': count = sizeof([temp for temp in items if sizeof(typeof(temp) * ['ifc4.ifcpoint', 'ifc4.ifccurve', 'ifc4.ifcgeometriccurveset', 'ifc4.ifcannotationfillarea', 'ifc4.ifctextliteral']) == 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'geometricset': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'geometricset': count = sizeof([temp for temp in items if 'ifc4.ifcgeometricset' in typeof(temp) or 'ifc4.ifcpoint' in typeof(temp) or 'ifc4.ifccurve' in typeof(temp) or ('ifc4.ifcsurface' in typeof(temp))]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'geometriccurveset': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'geometriccurveset': count = sizeof([temp for temp in items if 'ifc4.ifcgeometriccurveset' in typeof(temp) or 'ifc4.ifcgeometricset' in typeof(temp) or 'ifc4.ifcpoint' in typeof(temp) or ('ifc4.ifccurve' in typeof(temp))]) for i in range(1, hiindex(items) + 1): if 'ifc4.ifcgeometricset' in typeof(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - if sizeof([temp for temp in getattr(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Elements', INDETERMINATE) if 'ifc4.ifcsurface' in typeof(temp)]) > 0: + if sizeof([temp for temp in express_getattr(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Elements', INDETERMINATE) if 'ifc4.ifcsurface' in typeof(temp)]) > 0: count = count - 1 - elif getattr(reptype, 'lower', INDETERMINATE)() == 'tessellation': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'tessellation': count = sizeof([temp for temp in items if 'ifc4.ifctessellateditem' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surfaceorsolidmodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surfaceorsolidmodel': count = sizeof([temp for temp in items if sizeof(['ifc4.ifctessellateditem', 'ifc4.ifcshellbasedsurfacemodel', 'ifc4.ifcfacebasedsurfacemodel', 'ifc4.ifcsolidmodel'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surfacemodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surfacemodel': count = sizeof([temp for temp in items if sizeof(['ifc4.ifctessellateditem', 'ifc4.ifcshellbasedsurfacemodel', 'ifc4.ifcfacebasedsurfacemodel'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'solidmodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'solidmodel': count = sizeof([temp for temp in items if 'ifc4.ifcsolidmodel' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'sweptsolid': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'sweptsolid': count = sizeof([temp for temp in items if sizeof(['ifc4.ifcextrudedareasolid', 'ifc4.ifcrevolvedareasolid'] * typeof(temp)) >= 1 and sizeof(['ifc4.ifcextrudedareasolidtapered', 'ifc4.ifcrevolvedareasolidtapered'] * typeof(temp)) == 0]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsweptsolid': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsweptsolid': count = sizeof([temp for temp in items if sizeof(['ifc4.ifcsweptareasolid', 'ifc4.ifcsweptdisksolid'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'csg': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'csg': count = sizeof([temp for temp in items if sizeof(['ifc4.ifcbooleanresult', 'ifc4.ifccsgprimitive3d', 'ifc4.ifccsgsolid'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'clipping': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'clipping': count = sizeof([temp for temp in items if sizeof(['ifc4.ifccsgsolid', 'ifc4.ifcbooleanclippingresult'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'brep': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'brep': count = sizeof([temp for temp in items if 'ifc4.ifcfacetedbrep' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedbrep': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedbrep': count = sizeof([temp for temp in items if 'ifc4.ifcmanifoldsolidbrep' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'boundingbox': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'boundingbox': count = sizeof([temp for temp in items if 'ifc4.ifcboundingbox' in typeof(temp)]) if sizeof(items) > 1: count = 0 - elif getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedspine': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedspine': count = sizeof([temp for temp in items if 'ifc4.ifcsectionedspine' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'lightsource': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'lightsource': count = sizeof([temp for temp in items if 'ifc4.ifclightsource' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'mappedrepresentation': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'mappedrepresentation': count = sizeof([temp for temp in items if 'ifc4.ifcmappeditem' in typeof(temp)]) else: return None @@ -12072,9 +12082,9 @@ def IfcShapeRepresentationTypes(reptype, items): def IfcSurfaceWeightsPositive(b): result = True - weights = getattr(b, 'Weights', INDETERMINATE) - for i in range(0, getattr(b, 'UUpper', INDETERMINATE) + 1): - for j in range(0, getattr(b, 'VUpper', INDETERMINATE) + 1): + weights = express_getattr(b, 'Weights', INDETERMINATE) + for i in range(0, express_getattr(b, 'UUpper', INDETERMINATE) + 1): + for j in range(0, express_getattr(b, 'VUpper', INDETERMINATE) + 1): if express_getitem(express_getitem(weights, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), j - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: result = False return result @@ -12084,28 +12094,28 @@ def IfcTaperedSweptAreaProfiles(startarea, endarea): result = False if 'ifc4.ifcparameterizedprofiledef' in typeof(startarea): if 'ifc4.ifcderivedprofiledef' in typeof(endarea): - result = startarea == getattr(endarea, 'ParentProfile', INDETERMINATE) + result = startarea == express_getattr(endarea, 'ParentProfile', INDETERMINATE) else: result = typeof(startarea) == typeof(endarea) elif 'ifc4.ifcderivedprofiledef' in typeof(endarea): - result = startarea == getattr(endarea, 'ParentProfile', INDETERMINATE) + result = startarea == express_getattr(endarea, 'ParentProfile', INDETERMINATE) else: result = False return result def IfcTopologyRepresentationTypes(reptype, items): count = 0 - if getattr(reptype, 'lower', INDETERMINATE)() == 'vertex': + if express_getattr(reptype, 'lower', INDETERMINATE)() == 'vertex': count = sizeof([temp for temp in items if 'ifc4.ifcvertex' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'edge': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'edge': count = sizeof([temp for temp in items if 'ifc4.ifcedge' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'path': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'path': count = sizeof([temp for temp in items if 'ifc4.ifcpath' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'face': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'face': count = sizeof([temp for temp in items if 'ifc4.ifcface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'shell': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'shell': count = sizeof([temp for temp in items if 'ifc4.ifcopenshell' in typeof(temp) or 'ifc4.ifcclosedshell' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'undefined': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'undefined': return True else: return None @@ -12116,7 +12126,7 @@ def IfcUniqueDefinitionNames(relations): if sizeof(relations) == 0: return True for i in range(1, hiindex(relations) + 1): - definition = getattr(express_getitem(relations, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingPropertyDefinition', INDETERMINATE) + definition = express_getattr(express_getitem(relations, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingPropertyDefinition', INDETERMINATE) if 'ifc4.ifcpropertysetdefinition' in typeof(definition): properties = properties + definition elif 'ifc4.ifcpropertysetdefinitionset' in typeof(definition): @@ -12129,7 +12139,7 @@ def IfcUniqueDefinitionNames(relations): def IfcUniquePropertyName(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcUniquePropertySetNames(properties): @@ -12137,7 +12147,7 @@ def IfcUniquePropertySetNames(properties): unnamed = 0 for i in range(1, hiindex(properties) + 1): if 'ifc4.ifcpropertyset' in typeof(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) else: unnamed = unnamed + 1 return sizeof(names) + unnamed == sizeof(properties) @@ -12145,41 +12155,41 @@ def IfcUniquePropertySetNames(properties): def IfcUniquePropertyTemplateNames(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcUniqueQuantityNames(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcVectorDifference(arg1, arg2): - if (not exists(arg1) or not exists(arg2)) or getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + if (not exists(arg1) or not exists(arg2)) or express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): return None else: if 'ifc4.ifcvector' in typeof(arg1): - mag1 = getattr(arg1, 'Magnitude', INDETERMINATE) - vec1 = getattr(arg1, 'Orientation', INDETERMINATE) + mag1 = express_getattr(arg1, 'Magnitude', INDETERMINATE) + vec1 = express_getattr(arg1, 'Orientation', INDETERMINATE) else: mag1 = 1.0 vec1 = arg1 if 'ifc4.ifcvector' in typeof(arg2): - mag2 = getattr(arg2, 'Magnitude', INDETERMINATE) - vec2 = getattr(arg2, 'Orientation', INDETERMINATE) + mag2 = express_getattr(arg2, 'Magnitude', INDETERMINATE) + vec2 = express_getattr(arg2, 'Orientation', INDETERMINATE) else: mag2 = 1.0 vec2 = arg2 vec1 = IfcNormalise(vec1) vec2 = IfcNormalise(vec2) - ndim = sizeof(getattr(vec1, 'DirectionRatios', INDETERMINATE)) + ndim = sizeof(express_getattr(vec1, 'DirectionRatios', INDETERMINATE)) mag = 0.0 res = IfcDirection(DirectionRatios=[0.0] * ndim) for i in range(1, ndim + 1): - temp = list(getattr(res, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - mag2 * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(res, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - mag2 * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) res.DirectionRatios = temp - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: @@ -12187,31 +12197,31 @@ def IfcVectorDifference(arg1, arg2): return result def IfcVectorSum(arg1, arg2): - if (not exists(arg1) or not exists(arg2)) or getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + if (not exists(arg1) or not exists(arg2)) or express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): return None else: if 'ifc4.ifcvector' in typeof(arg1): - mag1 = getattr(arg1, 'Magnitude', INDETERMINATE) - vec1 = getattr(arg1, 'Orientation', INDETERMINATE) + mag1 = express_getattr(arg1, 'Magnitude', INDETERMINATE) + vec1 = express_getattr(arg1, 'Orientation', INDETERMINATE) else: mag1 = 1.0 vec1 = arg1 if 'ifc4.ifcvector' in typeof(arg2): - mag2 = getattr(arg2, 'Magnitude', INDETERMINATE) - vec2 = getattr(arg2, 'Orientation', INDETERMINATE) + mag2 = express_getattr(arg2, 'Magnitude', INDETERMINATE) + vec2 = express_getattr(arg2, 'Orientation', INDETERMINATE) else: mag2 = 1.0 vec2 = arg2 vec1 = IfcNormalise(vec1) vec2 = IfcNormalise(vec2) - ndim = sizeof(getattr(vec1, 'DirectionRatios', INDETERMINATE)) + ndim = sizeof(express_getattr(vec1, 'DirectionRatios', INDETERMINATE)) mag = 0.0 res = IfcDirection(DirectionRatios=[0.0] * ndim) for i in range(1, ndim + 1): - temp = list(getattr(res, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag2 * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(res, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag2 * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) res.DirectionRatios = temp - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X1.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X1.py index ca0e5ef130..f07f0ee248 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X1.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X1.py @@ -1,5 +1,8 @@ import ifcopenshell +def is_indeterminate(v): + return v is None or type(v).__name__ == 'indeterminate_type' + def exists(v): if callable(v): try: @@ -7,10 +10,10 @@ def exists(v): except IndexError as e: return False else: - return v is not None + return not is_indeterminate(v) def nvl(v, default): - return v if v is not None else default + return v if not is_indeterminate(v) else default def is_entity(inst): if isinstance(inst, ifcopenshell.entity_instance): @@ -22,13 +25,13 @@ def is_entity(inst): def express_len(v): if isinstance(v, ifcopenshell.entity_instance) and (not is_entity(v)): v = v[0] - elif v is None or v is INDETERMINATE: + elif is_indeterminate(v): return INDETERMINATE return len(v) old_range = range def range(*args): - if INDETERMINATE in args: + if any(map(is_indeterminate, args)): return yield from old_range(*args) sizeof = express_len @@ -80,6 +83,13 @@ def express_getitem(aggr, idx, default): return aggr[idx] except IndexError as e: return None + +def express_getattr(aggr, name, default): + v = getattr(aggr, name, default) + if v is None: + return default + else: + return v EXPRESS_ONE_BASED_INDEXING = 1 def typeof(inst): @@ -140,1862 +150,1862 @@ INDETERMINATE = indeterminate_type() class enum_namespace: def __getattr__(self, k): - return getattr(k, 'upper', INDETERMINATE)() + return express_getattr(k, 'upper', INDETERMINATE)() IfcActionRequestTypeEnum = enum_namespace() -email = getattr(IfcActionRequestTypeEnum, 'EMAIL', INDETERMINATE) -fax = getattr(IfcActionRequestTypeEnum, 'FAX', INDETERMINATE) -phone = getattr(IfcActionRequestTypeEnum, 'PHONE', INDETERMINATE) -post = getattr(IfcActionRequestTypeEnum, 'POST', INDETERMINATE) -verbal = getattr(IfcActionRequestTypeEnum, 'VERBAL', INDETERMINATE) -userdefined = getattr(IfcActionRequestTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionRequestTypeEnum, 'NOTDEFINED', INDETERMINATE) +email = IfcActionRequestTypeEnum.EMAIL +fax = IfcActionRequestTypeEnum.FAX +phone = IfcActionRequestTypeEnum.PHONE +post = IfcActionRequestTypeEnum.POST +verbal = IfcActionRequestTypeEnum.VERBAL +userdefined = IfcActionRequestTypeEnum.USERDEFINED +notdefined = IfcActionRequestTypeEnum.NOTDEFINED IfcActionSourceTypeEnum = enum_namespace() -dead_load_g = getattr(IfcActionSourceTypeEnum, 'DEAD_LOAD_G', INDETERMINATE) -completion_g1 = getattr(IfcActionSourceTypeEnum, 'COMPLETION_G1', INDETERMINATE) -live_load_q = getattr(IfcActionSourceTypeEnum, 'LIVE_LOAD_Q', INDETERMINATE) -snow_s = getattr(IfcActionSourceTypeEnum, 'SNOW_S', INDETERMINATE) -wind_w = getattr(IfcActionSourceTypeEnum, 'WIND_W', INDETERMINATE) -prestressing_p = getattr(IfcActionSourceTypeEnum, 'PRESTRESSING_P', INDETERMINATE) -settlement_u = getattr(IfcActionSourceTypeEnum, 'SETTLEMENT_U', INDETERMINATE) -temperature_t = getattr(IfcActionSourceTypeEnum, 'TEMPERATURE_T', INDETERMINATE) -earthquake_e = getattr(IfcActionSourceTypeEnum, 'EARTHQUAKE_E', INDETERMINATE) -fire = getattr(IfcActionSourceTypeEnum, 'FIRE', INDETERMINATE) -impulse = getattr(IfcActionSourceTypeEnum, 'IMPULSE', INDETERMINATE) -impact = getattr(IfcActionSourceTypeEnum, 'IMPACT', INDETERMINATE) -transport = getattr(IfcActionSourceTypeEnum, 'TRANSPORT', INDETERMINATE) -erection = getattr(IfcActionSourceTypeEnum, 'ERECTION', INDETERMINATE) -propping = getattr(IfcActionSourceTypeEnum, 'PROPPING', INDETERMINATE) -system_imperfection = getattr(IfcActionSourceTypeEnum, 'SYSTEM_IMPERFECTION', INDETERMINATE) -shrinkage = getattr(IfcActionSourceTypeEnum, 'SHRINKAGE', INDETERMINATE) -creep = getattr(IfcActionSourceTypeEnum, 'CREEP', INDETERMINATE) -lack_of_fit = getattr(IfcActionSourceTypeEnum, 'LACK_OF_FIT', INDETERMINATE) -buoyancy = getattr(IfcActionSourceTypeEnum, 'BUOYANCY', INDETERMINATE) -ice = getattr(IfcActionSourceTypeEnum, 'ICE', INDETERMINATE) -current = getattr(IfcActionSourceTypeEnum, 'CURRENT', INDETERMINATE) -wave = getattr(IfcActionSourceTypeEnum, 'WAVE', INDETERMINATE) -rain = getattr(IfcActionSourceTypeEnum, 'RAIN', INDETERMINATE) -brakes = getattr(IfcActionSourceTypeEnum, 'BRAKES', INDETERMINATE) -userdefined = getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionSourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dead_load_g = IfcActionSourceTypeEnum.DEAD_LOAD_G +completion_g1 = IfcActionSourceTypeEnum.COMPLETION_G1 +live_load_q = IfcActionSourceTypeEnum.LIVE_LOAD_Q +snow_s = IfcActionSourceTypeEnum.SNOW_S +wind_w = IfcActionSourceTypeEnum.WIND_W +prestressing_p = IfcActionSourceTypeEnum.PRESTRESSING_P +settlement_u = IfcActionSourceTypeEnum.SETTLEMENT_U +temperature_t = IfcActionSourceTypeEnum.TEMPERATURE_T +earthquake_e = IfcActionSourceTypeEnum.EARTHQUAKE_E +fire = IfcActionSourceTypeEnum.FIRE +impulse = IfcActionSourceTypeEnum.IMPULSE +impact = IfcActionSourceTypeEnum.IMPACT +transport = IfcActionSourceTypeEnum.TRANSPORT +erection = IfcActionSourceTypeEnum.ERECTION +propping = IfcActionSourceTypeEnum.PROPPING +system_imperfection = IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION +shrinkage = IfcActionSourceTypeEnum.SHRINKAGE +creep = IfcActionSourceTypeEnum.CREEP +lack_of_fit = IfcActionSourceTypeEnum.LACK_OF_FIT +buoyancy = IfcActionSourceTypeEnum.BUOYANCY +ice = IfcActionSourceTypeEnum.ICE +current = IfcActionSourceTypeEnum.CURRENT +wave = IfcActionSourceTypeEnum.WAVE +rain = IfcActionSourceTypeEnum.RAIN +brakes = IfcActionSourceTypeEnum.BRAKES +userdefined = IfcActionSourceTypeEnum.USERDEFINED +notdefined = IfcActionSourceTypeEnum.NOTDEFINED IfcActionTypeEnum = enum_namespace() -permanent_g = getattr(IfcActionTypeEnum, 'PERMANENT_G', INDETERMINATE) -variable_q = getattr(IfcActionTypeEnum, 'VARIABLE_Q', INDETERMINATE) -extraordinary_a = getattr(IfcActionTypeEnum, 'EXTRAORDINARY_A', INDETERMINATE) -userdefined = getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionTypeEnum, 'NOTDEFINED', INDETERMINATE) +permanent_g = IfcActionTypeEnum.PERMANENT_G +variable_q = IfcActionTypeEnum.VARIABLE_Q +extraordinary_a = IfcActionTypeEnum.EXTRAORDINARY_A +userdefined = IfcActionTypeEnum.USERDEFINED +notdefined = IfcActionTypeEnum.NOTDEFINED IfcActuatorTypeEnum = enum_namespace() -electricactuator = getattr(IfcActuatorTypeEnum, 'ELECTRICACTUATOR', INDETERMINATE) -handoperatedactuator = getattr(IfcActuatorTypeEnum, 'HANDOPERATEDACTUATOR', INDETERMINATE) -hydraulicactuator = getattr(IfcActuatorTypeEnum, 'HYDRAULICACTUATOR', INDETERMINATE) -pneumaticactuator = getattr(IfcActuatorTypeEnum, 'PNEUMATICACTUATOR', INDETERMINATE) -thermostaticactuator = getattr(IfcActuatorTypeEnum, 'THERMOSTATICACTUATOR', INDETERMINATE) -userdefined = getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActuatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +electricactuator = IfcActuatorTypeEnum.ELECTRICACTUATOR +handoperatedactuator = IfcActuatorTypeEnum.HANDOPERATEDACTUATOR +hydraulicactuator = IfcActuatorTypeEnum.HYDRAULICACTUATOR +pneumaticactuator = IfcActuatorTypeEnum.PNEUMATICACTUATOR +thermostaticactuator = IfcActuatorTypeEnum.THERMOSTATICACTUATOR +userdefined = IfcActuatorTypeEnum.USERDEFINED +notdefined = IfcActuatorTypeEnum.NOTDEFINED IfcAddressTypeEnum = enum_namespace() -office = getattr(IfcAddressTypeEnum, 'OFFICE', INDETERMINATE) -site = getattr(IfcAddressTypeEnum, 'SITE', INDETERMINATE) -home = getattr(IfcAddressTypeEnum, 'HOME', INDETERMINATE) -distributionpoint = getattr(IfcAddressTypeEnum, 'DISTRIBUTIONPOINT', INDETERMINATE) -userdefined = getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) +office = IfcAddressTypeEnum.OFFICE +site = IfcAddressTypeEnum.SITE +home = IfcAddressTypeEnum.HOME +distributionpoint = IfcAddressTypeEnum.DISTRIBUTIONPOINT +userdefined = IfcAddressTypeEnum.USERDEFINED IfcAirTerminalBoxTypeEnum = enum_namespace() -constantflow = getattr(IfcAirTerminalBoxTypeEnum, 'CONSTANTFLOW', INDETERMINATE) -variableflowpressuredependant = getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREDEPENDANT', INDETERMINATE) -variableflowpressureindependant = getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREINDEPENDANT', INDETERMINATE) -userdefined = getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirTerminalBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +constantflow = IfcAirTerminalBoxTypeEnum.CONSTANTFLOW +variableflowpressuredependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT +variableflowpressureindependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT +userdefined = IfcAirTerminalBoxTypeEnum.USERDEFINED +notdefined = IfcAirTerminalBoxTypeEnum.NOTDEFINED IfcAirTerminalTypeEnum = enum_namespace() -diffuser = getattr(IfcAirTerminalTypeEnum, 'DIFFUSER', INDETERMINATE) -grille = getattr(IfcAirTerminalTypeEnum, 'GRILLE', INDETERMINATE) -louvre = getattr(IfcAirTerminalTypeEnum, 'LOUVRE', INDETERMINATE) -register = getattr(IfcAirTerminalTypeEnum, 'REGISTER', INDETERMINATE) -userdefined = getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +diffuser = IfcAirTerminalTypeEnum.DIFFUSER +grille = IfcAirTerminalTypeEnum.GRILLE +louvre = IfcAirTerminalTypeEnum.LOUVRE +register = IfcAirTerminalTypeEnum.REGISTER +userdefined = IfcAirTerminalTypeEnum.USERDEFINED +notdefined = IfcAirTerminalTypeEnum.NOTDEFINED IfcAirToAirHeatRecoveryTypeEnum = enum_namespace() -fixedplatecounterflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECOUNTERFLOWEXCHANGER', INDETERMINATE) -fixedplatecrossflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECROSSFLOWEXCHANGER', INDETERMINATE) -fixedplateparallelflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATEPARALLELFLOWEXCHANGER', INDETERMINATE) -rotarywheel = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'ROTARYWHEEL', INDETERMINATE) -runaroundcoilloop = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'RUNAROUNDCOILLOOP', INDETERMINATE) -heatpipe = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'HEATPIPE', INDETERMINATE) -twintowerenthalpyrecoveryloops = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'TWINTOWERENTHALPYRECOVERYLOOPS', INDETERMINATE) -thermosiphonsealedtubeheatexchangers = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONSEALEDTUBEHEATEXCHANGERS', INDETERMINATE) -thermosiphoncoiltypeheatexchangers = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONCOILTYPEHEATEXCHANGERS', INDETERMINATE) -userdefined = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'NOTDEFINED', INDETERMINATE) +fixedplatecounterflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER +fixedplatecrossflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER +fixedplateparallelflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER +rotarywheel = IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL +runaroundcoilloop = IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP +heatpipe = IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE +twintowerenthalpyrecoveryloops = IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS +thermosiphonsealedtubeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS +thermosiphoncoiltypeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS +userdefined = IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED +notdefined = IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED IfcAlarmTypeEnum = enum_namespace() -bell = getattr(IfcAlarmTypeEnum, 'BELL', INDETERMINATE) -breakglassbutton = getattr(IfcAlarmTypeEnum, 'BREAKGLASSBUTTON', INDETERMINATE) -light = getattr(IfcAlarmTypeEnum, 'LIGHT', INDETERMINATE) -manualpullbox = getattr(IfcAlarmTypeEnum, 'MANUALPULLBOX', INDETERMINATE) -siren = getattr(IfcAlarmTypeEnum, 'SIREN', INDETERMINATE) -whistle = getattr(IfcAlarmTypeEnum, 'WHISTLE', INDETERMINATE) -userdefined = getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAlarmTypeEnum, 'NOTDEFINED', INDETERMINATE) +bell = IfcAlarmTypeEnum.BELL +breakglassbutton = IfcAlarmTypeEnum.BREAKGLASSBUTTON +light = IfcAlarmTypeEnum.LIGHT +manualpullbox = IfcAlarmTypeEnum.MANUALPULLBOX +siren = IfcAlarmTypeEnum.SIREN +whistle = IfcAlarmTypeEnum.WHISTLE +userdefined = IfcAlarmTypeEnum.USERDEFINED +notdefined = IfcAlarmTypeEnum.NOTDEFINED IfcAlignmentTypeEnum = enum_namespace() -userdefined = getattr(IfcAlignmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAlignmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcAlignmentTypeEnum.USERDEFINED +notdefined = IfcAlignmentTypeEnum.NOTDEFINED IfcAnalysisModelTypeEnum = enum_namespace() -in_plane_loading_2d = getattr(IfcAnalysisModelTypeEnum, 'IN_PLANE_LOADING_2D', INDETERMINATE) -out_plane_loading_2d = getattr(IfcAnalysisModelTypeEnum, 'OUT_PLANE_LOADING_2D', INDETERMINATE) -loading_3d = getattr(IfcAnalysisModelTypeEnum, 'LOADING_3D', INDETERMINATE) -userdefined = getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnalysisModelTypeEnum, 'NOTDEFINED', INDETERMINATE) +in_plane_loading_2d = IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D +out_plane_loading_2d = IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D +loading_3d = IfcAnalysisModelTypeEnum.LOADING_3D +userdefined = IfcAnalysisModelTypeEnum.USERDEFINED +notdefined = IfcAnalysisModelTypeEnum.NOTDEFINED IfcAnalysisTheoryTypeEnum = enum_namespace() -first_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'FIRST_ORDER_THEORY', INDETERMINATE) -second_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'SECOND_ORDER_THEORY', INDETERMINATE) -third_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'THIRD_ORDER_THEORY', INDETERMINATE) -full_nonlinear_theory = getattr(IfcAnalysisTheoryTypeEnum, 'FULL_NONLINEAR_THEORY', INDETERMINATE) -userdefined = getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnalysisTheoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +first_order_theory = IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY +second_order_theory = IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY +third_order_theory = IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY +full_nonlinear_theory = IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY +userdefined = IfcAnalysisTheoryTypeEnum.USERDEFINED +notdefined = IfcAnalysisTheoryTypeEnum.NOTDEFINED IfcArithmeticOperatorEnum = enum_namespace() -add = getattr(IfcArithmeticOperatorEnum, 'ADD', INDETERMINATE) -divide = getattr(IfcArithmeticOperatorEnum, 'DIVIDE', INDETERMINATE) -multiply = getattr(IfcArithmeticOperatorEnum, 'MULTIPLY', INDETERMINATE) -subtract = getattr(IfcArithmeticOperatorEnum, 'SUBTRACT', INDETERMINATE) +add = IfcArithmeticOperatorEnum.ADD +divide = IfcArithmeticOperatorEnum.DIVIDE +multiply = IfcArithmeticOperatorEnum.MULTIPLY +subtract = IfcArithmeticOperatorEnum.SUBTRACT IfcAssemblyPlaceEnum = enum_namespace() -site = getattr(IfcAssemblyPlaceEnum, 'SITE', INDETERMINATE) -factory = getattr(IfcAssemblyPlaceEnum, 'FACTORY', INDETERMINATE) -notdefined = getattr(IfcAssemblyPlaceEnum, 'NOTDEFINED', INDETERMINATE) +site = IfcAssemblyPlaceEnum.SITE +factory = IfcAssemblyPlaceEnum.FACTORY +notdefined = IfcAssemblyPlaceEnum.NOTDEFINED IfcAudioVisualApplianceTypeEnum = enum_namespace() -amplifier = getattr(IfcAudioVisualApplianceTypeEnum, 'AMPLIFIER', INDETERMINATE) -camera = getattr(IfcAudioVisualApplianceTypeEnum, 'CAMERA', INDETERMINATE) -display = getattr(IfcAudioVisualApplianceTypeEnum, 'DISPLAY', INDETERMINATE) -microphone = getattr(IfcAudioVisualApplianceTypeEnum, 'MICROPHONE', INDETERMINATE) -player = getattr(IfcAudioVisualApplianceTypeEnum, 'PLAYER', INDETERMINATE) -projector = getattr(IfcAudioVisualApplianceTypeEnum, 'PROJECTOR', INDETERMINATE) -receiver = getattr(IfcAudioVisualApplianceTypeEnum, 'RECEIVER', INDETERMINATE) -speaker = getattr(IfcAudioVisualApplianceTypeEnum, 'SPEAKER', INDETERMINATE) -switcher = getattr(IfcAudioVisualApplianceTypeEnum, 'SWITCHER', INDETERMINATE) -telephone = getattr(IfcAudioVisualApplianceTypeEnum, 'TELEPHONE', INDETERMINATE) -tuner = getattr(IfcAudioVisualApplianceTypeEnum, 'TUNER', INDETERMINATE) -userdefined = getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAudioVisualApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +amplifier = IfcAudioVisualApplianceTypeEnum.AMPLIFIER +camera = IfcAudioVisualApplianceTypeEnum.CAMERA +display = IfcAudioVisualApplianceTypeEnum.DISPLAY +microphone = IfcAudioVisualApplianceTypeEnum.MICROPHONE +player = IfcAudioVisualApplianceTypeEnum.PLAYER +projector = IfcAudioVisualApplianceTypeEnum.PROJECTOR +receiver = IfcAudioVisualApplianceTypeEnum.RECEIVER +speaker = IfcAudioVisualApplianceTypeEnum.SPEAKER +switcher = IfcAudioVisualApplianceTypeEnum.SWITCHER +telephone = IfcAudioVisualApplianceTypeEnum.TELEPHONE +tuner = IfcAudioVisualApplianceTypeEnum.TUNER +userdefined = IfcAudioVisualApplianceTypeEnum.USERDEFINED +notdefined = IfcAudioVisualApplianceTypeEnum.NOTDEFINED IfcBSplineCurveForm = enum_namespace() -polyline_form = getattr(IfcBSplineCurveForm, 'POLYLINE_FORM', INDETERMINATE) -circular_arc = getattr(IfcBSplineCurveForm, 'CIRCULAR_ARC', INDETERMINATE) -elliptic_arc = getattr(IfcBSplineCurveForm, 'ELLIPTIC_ARC', INDETERMINATE) -parabolic_arc = getattr(IfcBSplineCurveForm, 'PARABOLIC_ARC', INDETERMINATE) -hyperbolic_arc = getattr(IfcBSplineCurveForm, 'HYPERBOLIC_ARC', INDETERMINATE) -unspecified = getattr(IfcBSplineCurveForm, 'UNSPECIFIED', INDETERMINATE) +polyline_form = IfcBSplineCurveForm.POLYLINE_FORM +circular_arc = IfcBSplineCurveForm.CIRCULAR_ARC +elliptic_arc = IfcBSplineCurveForm.ELLIPTIC_ARC +parabolic_arc = IfcBSplineCurveForm.PARABOLIC_ARC +hyperbolic_arc = IfcBSplineCurveForm.HYPERBOLIC_ARC +unspecified = IfcBSplineCurveForm.UNSPECIFIED IfcBSplineSurfaceForm = enum_namespace() -plane_surf = getattr(IfcBSplineSurfaceForm, 'PLANE_SURF', INDETERMINATE) -cylindrical_surf = getattr(IfcBSplineSurfaceForm, 'CYLINDRICAL_SURF', INDETERMINATE) -conical_surf = getattr(IfcBSplineSurfaceForm, 'CONICAL_SURF', INDETERMINATE) -spherical_surf = getattr(IfcBSplineSurfaceForm, 'SPHERICAL_SURF', INDETERMINATE) -toroidal_surf = getattr(IfcBSplineSurfaceForm, 'TOROIDAL_SURF', INDETERMINATE) -surf_of_revolution = getattr(IfcBSplineSurfaceForm, 'SURF_OF_REVOLUTION', INDETERMINATE) -ruled_surf = getattr(IfcBSplineSurfaceForm, 'RULED_SURF', INDETERMINATE) -generalised_cone = getattr(IfcBSplineSurfaceForm, 'GENERALISED_CONE', INDETERMINATE) -quadric_surf = getattr(IfcBSplineSurfaceForm, 'QUADRIC_SURF', INDETERMINATE) -surf_of_linear_extrusion = getattr(IfcBSplineSurfaceForm, 'SURF_OF_LINEAR_EXTRUSION', INDETERMINATE) -unspecified = getattr(IfcBSplineSurfaceForm, 'UNSPECIFIED', INDETERMINATE) +plane_surf = IfcBSplineSurfaceForm.PLANE_SURF +cylindrical_surf = IfcBSplineSurfaceForm.CYLINDRICAL_SURF +conical_surf = IfcBSplineSurfaceForm.CONICAL_SURF +spherical_surf = IfcBSplineSurfaceForm.SPHERICAL_SURF +toroidal_surf = IfcBSplineSurfaceForm.TOROIDAL_SURF +surf_of_revolution = IfcBSplineSurfaceForm.SURF_OF_REVOLUTION +ruled_surf = IfcBSplineSurfaceForm.RULED_SURF +generalised_cone = IfcBSplineSurfaceForm.GENERALISED_CONE +quadric_surf = IfcBSplineSurfaceForm.QUADRIC_SURF +surf_of_linear_extrusion = IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION +unspecified = IfcBSplineSurfaceForm.UNSPECIFIED IfcBeamTypeEnum = enum_namespace() -beam = getattr(IfcBeamTypeEnum, 'BEAM', INDETERMINATE) -joist = getattr(IfcBeamTypeEnum, 'JOIST', INDETERMINATE) -hollowcore = getattr(IfcBeamTypeEnum, 'HOLLOWCORE', INDETERMINATE) -lintel = getattr(IfcBeamTypeEnum, 'LINTEL', INDETERMINATE) -spandrel = getattr(IfcBeamTypeEnum, 'SPANDREL', INDETERMINATE) -t_beam = getattr(IfcBeamTypeEnum, 'T_BEAM', INDETERMINATE) -userdefined = getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +beam = IfcBeamTypeEnum.BEAM +joist = IfcBeamTypeEnum.JOIST +hollowcore = IfcBeamTypeEnum.HOLLOWCORE +lintel = IfcBeamTypeEnum.LINTEL +spandrel = IfcBeamTypeEnum.SPANDREL +t_beam = IfcBeamTypeEnum.T_BEAM +userdefined = IfcBeamTypeEnum.USERDEFINED +notdefined = IfcBeamTypeEnum.NOTDEFINED IfcBenchmarkEnum = enum_namespace() -greaterthan = getattr(IfcBenchmarkEnum, 'GREATERTHAN', INDETERMINATE) -greaterthanorequalto = getattr(IfcBenchmarkEnum, 'GREATERTHANOREQUALTO', INDETERMINATE) -lessthan = getattr(IfcBenchmarkEnum, 'LESSTHAN', INDETERMINATE) -lessthanorequalto = getattr(IfcBenchmarkEnum, 'LESSTHANOREQUALTO', INDETERMINATE) -equalto = getattr(IfcBenchmarkEnum, 'EQUALTO', INDETERMINATE) -notequalto = getattr(IfcBenchmarkEnum, 'NOTEQUALTO', INDETERMINATE) -includes = getattr(IfcBenchmarkEnum, 'INCLUDES', INDETERMINATE) -notincludes = getattr(IfcBenchmarkEnum, 'NOTINCLUDES', INDETERMINATE) -includedin = getattr(IfcBenchmarkEnum, 'INCLUDEDIN', INDETERMINATE) -notincludedin = getattr(IfcBenchmarkEnum, 'NOTINCLUDEDIN', INDETERMINATE) +greaterthan = IfcBenchmarkEnum.GREATERTHAN +greaterthanorequalto = IfcBenchmarkEnum.GREATERTHANOREQUALTO +lessthan = IfcBenchmarkEnum.LESSTHAN +lessthanorequalto = IfcBenchmarkEnum.LESSTHANOREQUALTO +equalto = IfcBenchmarkEnum.EQUALTO +notequalto = IfcBenchmarkEnum.NOTEQUALTO +includes = IfcBenchmarkEnum.INCLUDES +notincludes = IfcBenchmarkEnum.NOTINCLUDES +includedin = IfcBenchmarkEnum.INCLUDEDIN +notincludedin = IfcBenchmarkEnum.NOTINCLUDEDIN IfcBoilerTypeEnum = enum_namespace() -water = getattr(IfcBoilerTypeEnum, 'WATER', INDETERMINATE) -steam = getattr(IfcBoilerTypeEnum, 'STEAM', INDETERMINATE) -userdefined = getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBoilerTypeEnum, 'NOTDEFINED', INDETERMINATE) +water = IfcBoilerTypeEnum.WATER +steam = IfcBoilerTypeEnum.STEAM +userdefined = IfcBoilerTypeEnum.USERDEFINED +notdefined = IfcBoilerTypeEnum.NOTDEFINED IfcBooleanOperator = enum_namespace() -union = getattr(IfcBooleanOperator, 'UNION', INDETERMINATE) -intersection = getattr(IfcBooleanOperator, 'INTERSECTION', INDETERMINATE) -difference = getattr(IfcBooleanOperator, 'DIFFERENCE', INDETERMINATE) +union = IfcBooleanOperator.UNION +intersection = IfcBooleanOperator.INTERSECTION +difference = IfcBooleanOperator.DIFFERENCE IfcBuildingElementPartTypeEnum = enum_namespace() -insulation = getattr(IfcBuildingElementPartTypeEnum, 'INSULATION', INDETERMINATE) -precastpanel = getattr(IfcBuildingElementPartTypeEnum, 'PRECASTPANEL', INDETERMINATE) -userdefined = getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingElementPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +insulation = IfcBuildingElementPartTypeEnum.INSULATION +precastpanel = IfcBuildingElementPartTypeEnum.PRECASTPANEL +userdefined = IfcBuildingElementPartTypeEnum.USERDEFINED +notdefined = IfcBuildingElementPartTypeEnum.NOTDEFINED IfcBuildingElementProxyTypeEnum = enum_namespace() -complex = getattr(IfcBuildingElementProxyTypeEnum, 'COMPLEX', INDETERMINATE) -element = getattr(IfcBuildingElementProxyTypeEnum, 'ELEMENT', INDETERMINATE) -partial = getattr(IfcBuildingElementProxyTypeEnum, 'PARTIAL', INDETERMINATE) -provisionforvoid = getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORVOID', INDETERMINATE) -provisionforspace = getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORSPACE', INDETERMINATE) -userdefined = getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingElementProxyTypeEnum, 'NOTDEFINED', INDETERMINATE) +complex = IfcBuildingElementProxyTypeEnum.COMPLEX +element = IfcBuildingElementProxyTypeEnum.ELEMENT +partial = IfcBuildingElementProxyTypeEnum.PARTIAL +provisionforvoid = IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID +provisionforspace = IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE +userdefined = IfcBuildingElementProxyTypeEnum.USERDEFINED +notdefined = IfcBuildingElementProxyTypeEnum.NOTDEFINED IfcBuildingSystemTypeEnum = enum_namespace() -fenestration = getattr(IfcBuildingSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = getattr(IfcBuildingSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = getattr(IfcBuildingSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -outershell = getattr(IfcBuildingSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -shading = getattr(IfcBuildingSystemTypeEnum, 'SHADING', INDETERMINATE) -transport = getattr(IfcBuildingSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -userdefined = getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +fenestration = IfcBuildingSystemTypeEnum.FENESTRATION +foundation = IfcBuildingSystemTypeEnum.FOUNDATION +loadbearing = IfcBuildingSystemTypeEnum.LOADBEARING +outershell = IfcBuildingSystemTypeEnum.OUTERSHELL +shading = IfcBuildingSystemTypeEnum.SHADING +transport = IfcBuildingSystemTypeEnum.TRANSPORT +userdefined = IfcBuildingSystemTypeEnum.USERDEFINED +notdefined = IfcBuildingSystemTypeEnum.NOTDEFINED IfcBurnerTypeEnum = enum_namespace() -userdefined = getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBurnerTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcBurnerTypeEnum.USERDEFINED +notdefined = IfcBurnerTypeEnum.NOTDEFINED IfcCableCarrierFittingTypeEnum = enum_namespace() -bend = getattr(IfcCableCarrierFittingTypeEnum, 'BEND', INDETERMINATE) -cross = getattr(IfcCableCarrierFittingTypeEnum, 'CROSS', INDETERMINATE) -reducer = getattr(IfcCableCarrierFittingTypeEnum, 'REDUCER', INDETERMINATE) -tee = getattr(IfcCableCarrierFittingTypeEnum, 'TEE', INDETERMINATE) -userdefined = getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableCarrierFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcCableCarrierFittingTypeEnum.BEND +cross = IfcCableCarrierFittingTypeEnum.CROSS +reducer = IfcCableCarrierFittingTypeEnum.REDUCER +tee = IfcCableCarrierFittingTypeEnum.TEE +userdefined = IfcCableCarrierFittingTypeEnum.USERDEFINED +notdefined = IfcCableCarrierFittingTypeEnum.NOTDEFINED IfcCableCarrierSegmentTypeEnum = enum_namespace() -cableladdersegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLELADDERSEGMENT', INDETERMINATE) -cabletraysegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRAYSEGMENT', INDETERMINATE) -cabletrunkingsegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRUNKINGSEGMENT', INDETERMINATE) -conduitsegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CONDUITSEGMENT', INDETERMINATE) -userdefined = getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableCarrierSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +cableladdersegment = IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT +cabletraysegment = IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT +cabletrunkingsegment = IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT +conduitsegment = IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT +userdefined = IfcCableCarrierSegmentTypeEnum.USERDEFINED +notdefined = IfcCableCarrierSegmentTypeEnum.NOTDEFINED IfcCableFittingTypeEnum = enum_namespace() -connector = getattr(IfcCableFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcCableFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcCableFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcCableFittingTypeEnum, 'JUNCTION', INDETERMINATE) -transition = getattr(IfcCableFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +connector = IfcCableFittingTypeEnum.CONNECTOR +entry = IfcCableFittingTypeEnum.ENTRY +exit = IfcCableFittingTypeEnum.EXIT +junction = IfcCableFittingTypeEnum.JUNCTION +transition = IfcCableFittingTypeEnum.TRANSITION +userdefined = IfcCableFittingTypeEnum.USERDEFINED +notdefined = IfcCableFittingTypeEnum.NOTDEFINED IfcCableSegmentTypeEnum = enum_namespace() -busbarsegment = getattr(IfcCableSegmentTypeEnum, 'BUSBARSEGMENT', INDETERMINATE) -cablesegment = getattr(IfcCableSegmentTypeEnum, 'CABLESEGMENT', INDETERMINATE) -conductorsegment = getattr(IfcCableSegmentTypeEnum, 'CONDUCTORSEGMENT', INDETERMINATE) -coresegment = getattr(IfcCableSegmentTypeEnum, 'CORESEGMENT', INDETERMINATE) -userdefined = getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +busbarsegment = IfcCableSegmentTypeEnum.BUSBARSEGMENT +cablesegment = IfcCableSegmentTypeEnum.CABLESEGMENT +conductorsegment = IfcCableSegmentTypeEnum.CONDUCTORSEGMENT +coresegment = IfcCableSegmentTypeEnum.CORESEGMENT +userdefined = IfcCableSegmentTypeEnum.USERDEFINED +notdefined = IfcCableSegmentTypeEnum.NOTDEFINED IfcChangeActionEnum = enum_namespace() -nochange = getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE) -modified = getattr(IfcChangeActionEnum, 'MODIFIED', INDETERMINATE) -added = getattr(IfcChangeActionEnum, 'ADDED', INDETERMINATE) -deleted = getattr(IfcChangeActionEnum, 'DELETED', INDETERMINATE) -notdefined = getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) +nochange = IfcChangeActionEnum.NOCHANGE +modified = IfcChangeActionEnum.MODIFIED +added = IfcChangeActionEnum.ADDED +deleted = IfcChangeActionEnum.DELETED +notdefined = IfcChangeActionEnum.NOTDEFINED IfcChillerTypeEnum = enum_namespace() -aircooled = getattr(IfcChillerTypeEnum, 'AIRCOOLED', INDETERMINATE) -watercooled = getattr(IfcChillerTypeEnum, 'WATERCOOLED', INDETERMINATE) -heatrecovery = getattr(IfcChillerTypeEnum, 'HEATRECOVERY', INDETERMINATE) -userdefined = getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcChillerTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcChillerTypeEnum.AIRCOOLED +watercooled = IfcChillerTypeEnum.WATERCOOLED +heatrecovery = IfcChillerTypeEnum.HEATRECOVERY +userdefined = IfcChillerTypeEnum.USERDEFINED +notdefined = IfcChillerTypeEnum.NOTDEFINED IfcChimneyTypeEnum = enum_namespace() -userdefined = getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcChimneyTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcChimneyTypeEnum.USERDEFINED +notdefined = IfcChimneyTypeEnum.NOTDEFINED IfcCoilTypeEnum = enum_namespace() -dxcoolingcoil = getattr(IfcCoilTypeEnum, 'DXCOOLINGCOIL', INDETERMINATE) -electricheatingcoil = getattr(IfcCoilTypeEnum, 'ELECTRICHEATINGCOIL', INDETERMINATE) -gasheatingcoil = getattr(IfcCoilTypeEnum, 'GASHEATINGCOIL', INDETERMINATE) -hydroniccoil = getattr(IfcCoilTypeEnum, 'HYDRONICCOIL', INDETERMINATE) -steamheatingcoil = getattr(IfcCoilTypeEnum, 'STEAMHEATINGCOIL', INDETERMINATE) -watercoolingcoil = getattr(IfcCoilTypeEnum, 'WATERCOOLINGCOIL', INDETERMINATE) -waterheatingcoil = getattr(IfcCoilTypeEnum, 'WATERHEATINGCOIL', INDETERMINATE) -userdefined = getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dxcoolingcoil = IfcCoilTypeEnum.DXCOOLINGCOIL +electricheatingcoil = IfcCoilTypeEnum.ELECTRICHEATINGCOIL +gasheatingcoil = IfcCoilTypeEnum.GASHEATINGCOIL +hydroniccoil = IfcCoilTypeEnum.HYDRONICCOIL +steamheatingcoil = IfcCoilTypeEnum.STEAMHEATINGCOIL +watercoolingcoil = IfcCoilTypeEnum.WATERCOOLINGCOIL +waterheatingcoil = IfcCoilTypeEnum.WATERHEATINGCOIL +userdefined = IfcCoilTypeEnum.USERDEFINED +notdefined = IfcCoilTypeEnum.NOTDEFINED IfcColumnTypeEnum = enum_namespace() -column = getattr(IfcColumnTypeEnum, 'COLUMN', INDETERMINATE) -pilaster = getattr(IfcColumnTypeEnum, 'PILASTER', INDETERMINATE) -userdefined = getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcColumnTypeEnum, 'NOTDEFINED', INDETERMINATE) +column = IfcColumnTypeEnum.COLUMN +pilaster = IfcColumnTypeEnum.PILASTER +userdefined = IfcColumnTypeEnum.USERDEFINED +notdefined = IfcColumnTypeEnum.NOTDEFINED IfcCommunicationsApplianceTypeEnum = enum_namespace() -antenna = getattr(IfcCommunicationsApplianceTypeEnum, 'ANTENNA', INDETERMINATE) -computer = getattr(IfcCommunicationsApplianceTypeEnum, 'COMPUTER', INDETERMINATE) -fax = getattr(IfcCommunicationsApplianceTypeEnum, 'FAX', INDETERMINATE) -gateway = getattr(IfcCommunicationsApplianceTypeEnum, 'GATEWAY', INDETERMINATE) -modem = getattr(IfcCommunicationsApplianceTypeEnum, 'MODEM', INDETERMINATE) -networkappliance = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKAPPLIANCE', INDETERMINATE) -networkbridge = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKBRIDGE', INDETERMINATE) -networkhub = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKHUB', INDETERMINATE) -printer = getattr(IfcCommunicationsApplianceTypeEnum, 'PRINTER', INDETERMINATE) -repeater = getattr(IfcCommunicationsApplianceTypeEnum, 'REPEATER', INDETERMINATE) -router = getattr(IfcCommunicationsApplianceTypeEnum, 'ROUTER', INDETERMINATE) -scanner = getattr(IfcCommunicationsApplianceTypeEnum, 'SCANNER', INDETERMINATE) -userdefined = getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +antenna = IfcCommunicationsApplianceTypeEnum.ANTENNA +computer = IfcCommunicationsApplianceTypeEnum.COMPUTER +fax = IfcCommunicationsApplianceTypeEnum.FAX +gateway = IfcCommunicationsApplianceTypeEnum.GATEWAY +modem = IfcCommunicationsApplianceTypeEnum.MODEM +networkappliance = IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE +networkbridge = IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE +networkhub = IfcCommunicationsApplianceTypeEnum.NETWORKHUB +printer = IfcCommunicationsApplianceTypeEnum.PRINTER +repeater = IfcCommunicationsApplianceTypeEnum.REPEATER +router = IfcCommunicationsApplianceTypeEnum.ROUTER +scanner = IfcCommunicationsApplianceTypeEnum.SCANNER +userdefined = IfcCommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcCommunicationsApplianceTypeEnum.NOTDEFINED IfcComplexPropertyTemplateTypeEnum = enum_namespace() -p_complex = getattr(IfcComplexPropertyTemplateTypeEnum, 'P_COMPLEX', INDETERMINATE) -q_complex = getattr(IfcComplexPropertyTemplateTypeEnum, 'Q_COMPLEX', INDETERMINATE) +p_complex = IfcComplexPropertyTemplateTypeEnum.P_COMPLEX +q_complex = IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX IfcCompressorTypeEnum = enum_namespace() -dynamic = getattr(IfcCompressorTypeEnum, 'DYNAMIC', INDETERMINATE) -reciprocating = getattr(IfcCompressorTypeEnum, 'RECIPROCATING', INDETERMINATE) -rotary = getattr(IfcCompressorTypeEnum, 'ROTARY', INDETERMINATE) -scroll = getattr(IfcCompressorTypeEnum, 'SCROLL', INDETERMINATE) -trochoidal = getattr(IfcCompressorTypeEnum, 'TROCHOIDAL', INDETERMINATE) -singlestage = getattr(IfcCompressorTypeEnum, 'SINGLESTAGE', INDETERMINATE) -booster = getattr(IfcCompressorTypeEnum, 'BOOSTER', INDETERMINATE) -opentype = getattr(IfcCompressorTypeEnum, 'OPENTYPE', INDETERMINATE) -hermetic = getattr(IfcCompressorTypeEnum, 'HERMETIC', INDETERMINATE) -semihermetic = getattr(IfcCompressorTypeEnum, 'SEMIHERMETIC', INDETERMINATE) -weldedshellhermetic = getattr(IfcCompressorTypeEnum, 'WELDEDSHELLHERMETIC', INDETERMINATE) -rollingpiston = getattr(IfcCompressorTypeEnum, 'ROLLINGPISTON', INDETERMINATE) -rotaryvane = getattr(IfcCompressorTypeEnum, 'ROTARYVANE', INDETERMINATE) -singlescrew = getattr(IfcCompressorTypeEnum, 'SINGLESCREW', INDETERMINATE) -twinscrew = getattr(IfcCompressorTypeEnum, 'TWINSCREW', INDETERMINATE) -userdefined = getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCompressorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dynamic = IfcCompressorTypeEnum.DYNAMIC +reciprocating = IfcCompressorTypeEnum.RECIPROCATING +rotary = IfcCompressorTypeEnum.ROTARY +scroll = IfcCompressorTypeEnum.SCROLL +trochoidal = IfcCompressorTypeEnum.TROCHOIDAL +singlestage = IfcCompressorTypeEnum.SINGLESTAGE +booster = IfcCompressorTypeEnum.BOOSTER +opentype = IfcCompressorTypeEnum.OPENTYPE +hermetic = IfcCompressorTypeEnum.HERMETIC +semihermetic = IfcCompressorTypeEnum.SEMIHERMETIC +weldedshellhermetic = IfcCompressorTypeEnum.WELDEDSHELLHERMETIC +rollingpiston = IfcCompressorTypeEnum.ROLLINGPISTON +rotaryvane = IfcCompressorTypeEnum.ROTARYVANE +singlescrew = IfcCompressorTypeEnum.SINGLESCREW +twinscrew = IfcCompressorTypeEnum.TWINSCREW +userdefined = IfcCompressorTypeEnum.USERDEFINED +notdefined = IfcCompressorTypeEnum.NOTDEFINED IfcCondenserTypeEnum = enum_namespace() -aircooled = getattr(IfcCondenserTypeEnum, 'AIRCOOLED', INDETERMINATE) -evaporativecooled = getattr(IfcCondenserTypeEnum, 'EVAPORATIVECOOLED', INDETERMINATE) -watercooled = getattr(IfcCondenserTypeEnum, 'WATERCOOLED', INDETERMINATE) -watercooledbrazedplate = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDBRAZEDPLATE', INDETERMINATE) -watercooledshellcoil = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLCOIL', INDETERMINATE) -watercooledshelltube = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLTUBE', INDETERMINATE) -watercooledtubeintube = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDTUBEINTUBE', INDETERMINATE) -userdefined = getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCondenserTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcCondenserTypeEnum.AIRCOOLED +evaporativecooled = IfcCondenserTypeEnum.EVAPORATIVECOOLED +watercooled = IfcCondenserTypeEnum.WATERCOOLED +watercooledbrazedplate = IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE +watercooledshellcoil = IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL +watercooledshelltube = IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE +watercooledtubeintube = IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE +userdefined = IfcCondenserTypeEnum.USERDEFINED +notdefined = IfcCondenserTypeEnum.NOTDEFINED IfcConnectionTypeEnum = enum_namespace() -atpath = getattr(IfcConnectionTypeEnum, 'ATPATH', INDETERMINATE) -atstart = getattr(IfcConnectionTypeEnum, 'ATSTART', INDETERMINATE) -atend = getattr(IfcConnectionTypeEnum, 'ATEND', INDETERMINATE) -notdefined = getattr(IfcConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +atpath = IfcConnectionTypeEnum.ATPATH +atstart = IfcConnectionTypeEnum.ATSTART +atend = IfcConnectionTypeEnum.ATEND +notdefined = IfcConnectionTypeEnum.NOTDEFINED IfcConstraintEnum = enum_namespace() -hard = getattr(IfcConstraintEnum, 'HARD', INDETERMINATE) -soft = getattr(IfcConstraintEnum, 'SOFT', INDETERMINATE) -advisory = getattr(IfcConstraintEnum, 'ADVISORY', INDETERMINATE) -userdefined = getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstraintEnum, 'NOTDEFINED', INDETERMINATE) +hard = IfcConstraintEnum.HARD +soft = IfcConstraintEnum.SOFT +advisory = IfcConstraintEnum.ADVISORY +userdefined = IfcConstraintEnum.USERDEFINED +notdefined = IfcConstraintEnum.NOTDEFINED IfcConstructionEquipmentResourceTypeEnum = enum_namespace() -demolishing = getattr(IfcConstructionEquipmentResourceTypeEnum, 'DEMOLISHING', INDETERMINATE) -earthmoving = getattr(IfcConstructionEquipmentResourceTypeEnum, 'EARTHMOVING', INDETERMINATE) -erecting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'ERECTING', INDETERMINATE) -heating = getattr(IfcConstructionEquipmentResourceTypeEnum, 'HEATING', INDETERMINATE) -lighting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'LIGHTING', INDETERMINATE) -paving = getattr(IfcConstructionEquipmentResourceTypeEnum, 'PAVING', INDETERMINATE) -pumping = getattr(IfcConstructionEquipmentResourceTypeEnum, 'PUMPING', INDETERMINATE) -transporting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'TRANSPORTING', INDETERMINATE) -userdefined = getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstructionEquipmentResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +demolishing = IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING +earthmoving = IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING +erecting = IfcConstructionEquipmentResourceTypeEnum.ERECTING +heating = IfcConstructionEquipmentResourceTypeEnum.HEATING +lighting = IfcConstructionEquipmentResourceTypeEnum.LIGHTING +paving = IfcConstructionEquipmentResourceTypeEnum.PAVING +pumping = IfcConstructionEquipmentResourceTypeEnum.PUMPING +transporting = IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING +userdefined = IfcConstructionEquipmentResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED IfcConstructionMaterialResourceTypeEnum = enum_namespace() -aggregates = getattr(IfcConstructionMaterialResourceTypeEnum, 'AGGREGATES', INDETERMINATE) -concrete = getattr(IfcConstructionMaterialResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = getattr(IfcConstructionMaterialResourceTypeEnum, 'DRYWALL', INDETERMINATE) -fuel = getattr(IfcConstructionMaterialResourceTypeEnum, 'FUEL', INDETERMINATE) -gypsum = getattr(IfcConstructionMaterialResourceTypeEnum, 'GYPSUM', INDETERMINATE) -masonry = getattr(IfcConstructionMaterialResourceTypeEnum, 'MASONRY', INDETERMINATE) -metal = getattr(IfcConstructionMaterialResourceTypeEnum, 'METAL', INDETERMINATE) -plastic = getattr(IfcConstructionMaterialResourceTypeEnum, 'PLASTIC', INDETERMINATE) -wood = getattr(IfcConstructionMaterialResourceTypeEnum, 'WOOD', INDETERMINATE) -notdefined = getattr(IfcConstructionMaterialResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) -userdefined = getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) +aggregates = IfcConstructionMaterialResourceTypeEnum.AGGREGATES +concrete = IfcConstructionMaterialResourceTypeEnum.CONCRETE +drywall = IfcConstructionMaterialResourceTypeEnum.DRYWALL +fuel = IfcConstructionMaterialResourceTypeEnum.FUEL +gypsum = IfcConstructionMaterialResourceTypeEnum.GYPSUM +masonry = IfcConstructionMaterialResourceTypeEnum.MASONRY +metal = IfcConstructionMaterialResourceTypeEnum.METAL +plastic = IfcConstructionMaterialResourceTypeEnum.PLASTIC +wood = IfcConstructionMaterialResourceTypeEnum.WOOD +notdefined = IfcConstructionMaterialResourceTypeEnum.NOTDEFINED +userdefined = IfcConstructionMaterialResourceTypeEnum.USERDEFINED IfcConstructionProductResourceTypeEnum = enum_namespace() -assembly = getattr(IfcConstructionProductResourceTypeEnum, 'ASSEMBLY', INDETERMINATE) -formwork = getattr(IfcConstructionProductResourceTypeEnum, 'FORMWORK', INDETERMINATE) -userdefined = getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstructionProductResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +assembly = IfcConstructionProductResourceTypeEnum.ASSEMBLY +formwork = IfcConstructionProductResourceTypeEnum.FORMWORK +userdefined = IfcConstructionProductResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionProductResourceTypeEnum.NOTDEFINED IfcControllerTypeEnum = enum_namespace() -floating = getattr(IfcControllerTypeEnum, 'FLOATING', INDETERMINATE) -programmable = getattr(IfcControllerTypeEnum, 'PROGRAMMABLE', INDETERMINATE) -proportional = getattr(IfcControllerTypeEnum, 'PROPORTIONAL', INDETERMINATE) -multiposition = getattr(IfcControllerTypeEnum, 'MULTIPOSITION', INDETERMINATE) -twoposition = getattr(IfcControllerTypeEnum, 'TWOPOSITION', INDETERMINATE) -userdefined = getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcControllerTypeEnum, 'NOTDEFINED', INDETERMINATE) +floating = IfcControllerTypeEnum.FLOATING +programmable = IfcControllerTypeEnum.PROGRAMMABLE +proportional = IfcControllerTypeEnum.PROPORTIONAL +multiposition = IfcControllerTypeEnum.MULTIPOSITION +twoposition = IfcControllerTypeEnum.TWOPOSITION +userdefined = IfcControllerTypeEnum.USERDEFINED +notdefined = IfcControllerTypeEnum.NOTDEFINED IfcCooledBeamTypeEnum = enum_namespace() -active = getattr(IfcCooledBeamTypeEnum, 'ACTIVE', INDETERMINATE) -passive = getattr(IfcCooledBeamTypeEnum, 'PASSIVE', INDETERMINATE) -userdefined = getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCooledBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +active = IfcCooledBeamTypeEnum.ACTIVE +passive = IfcCooledBeamTypeEnum.PASSIVE +userdefined = IfcCooledBeamTypeEnum.USERDEFINED +notdefined = IfcCooledBeamTypeEnum.NOTDEFINED IfcCoolingTowerTypeEnum = enum_namespace() -naturaldraft = getattr(IfcCoolingTowerTypeEnum, 'NATURALDRAFT', INDETERMINATE) -mechanicalinduceddraft = getattr(IfcCoolingTowerTypeEnum, 'MECHANICALINDUCEDDRAFT', INDETERMINATE) -mechanicalforceddraft = getattr(IfcCoolingTowerTypeEnum, 'MECHANICALFORCEDDRAFT', INDETERMINATE) -userdefined = getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoolingTowerTypeEnum, 'NOTDEFINED', INDETERMINATE) +naturaldraft = IfcCoolingTowerTypeEnum.NATURALDRAFT +mechanicalinduceddraft = IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT +mechanicalforceddraft = IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT +userdefined = IfcCoolingTowerTypeEnum.USERDEFINED +notdefined = IfcCoolingTowerTypeEnum.NOTDEFINED IfcCostItemTypeEnum = enum_namespace() -userdefined = getattr(IfcCostItemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCostItemTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCostItemTypeEnum.USERDEFINED +notdefined = IfcCostItemTypeEnum.NOTDEFINED IfcCostScheduleTypeEnum = enum_namespace() -budget = getattr(IfcCostScheduleTypeEnum, 'BUDGET', INDETERMINATE) -costplan = getattr(IfcCostScheduleTypeEnum, 'COSTPLAN', INDETERMINATE) -estimate = getattr(IfcCostScheduleTypeEnum, 'ESTIMATE', INDETERMINATE) -tender = getattr(IfcCostScheduleTypeEnum, 'TENDER', INDETERMINATE) -pricedbillofquantities = getattr(IfcCostScheduleTypeEnum, 'PRICEDBILLOFQUANTITIES', INDETERMINATE) -unpricedbillofquantities = getattr(IfcCostScheduleTypeEnum, 'UNPRICEDBILLOFQUANTITIES', INDETERMINATE) -scheduleofrates = getattr(IfcCostScheduleTypeEnum, 'SCHEDULEOFRATES', INDETERMINATE) -userdefined = getattr(IfcCostScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCostScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +budget = IfcCostScheduleTypeEnum.BUDGET +costplan = IfcCostScheduleTypeEnum.COSTPLAN +estimate = IfcCostScheduleTypeEnum.ESTIMATE +tender = IfcCostScheduleTypeEnum.TENDER +pricedbillofquantities = IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES +unpricedbillofquantities = IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES +scheduleofrates = IfcCostScheduleTypeEnum.SCHEDULEOFRATES +userdefined = IfcCostScheduleTypeEnum.USERDEFINED +notdefined = IfcCostScheduleTypeEnum.NOTDEFINED IfcCoveringTypeEnum = enum_namespace() -ceiling = getattr(IfcCoveringTypeEnum, 'CEILING', INDETERMINATE) -flooring = getattr(IfcCoveringTypeEnum, 'FLOORING', INDETERMINATE) -cladding = getattr(IfcCoveringTypeEnum, 'CLADDING', INDETERMINATE) -roofing = getattr(IfcCoveringTypeEnum, 'ROOFING', INDETERMINATE) -molding = getattr(IfcCoveringTypeEnum, 'MOLDING', INDETERMINATE) -skirtingboard = getattr(IfcCoveringTypeEnum, 'SKIRTINGBOARD', INDETERMINATE) -insulation = getattr(IfcCoveringTypeEnum, 'INSULATION', INDETERMINATE) -membrane = getattr(IfcCoveringTypeEnum, 'MEMBRANE', INDETERMINATE) -sleeving = getattr(IfcCoveringTypeEnum, 'SLEEVING', INDETERMINATE) -wrapping = getattr(IfcCoveringTypeEnum, 'WRAPPING', INDETERMINATE) -userdefined = getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoveringTypeEnum, 'NOTDEFINED', INDETERMINATE) +ceiling = IfcCoveringTypeEnum.CEILING +flooring = IfcCoveringTypeEnum.FLOORING +cladding = IfcCoveringTypeEnum.CLADDING +roofing = IfcCoveringTypeEnum.ROOFING +molding = IfcCoveringTypeEnum.MOLDING +skirtingboard = IfcCoveringTypeEnum.SKIRTINGBOARD +insulation = IfcCoveringTypeEnum.INSULATION +membrane = IfcCoveringTypeEnum.MEMBRANE +sleeving = IfcCoveringTypeEnum.SLEEVING +wrapping = IfcCoveringTypeEnum.WRAPPING +userdefined = IfcCoveringTypeEnum.USERDEFINED +notdefined = IfcCoveringTypeEnum.NOTDEFINED IfcCrewResourceTypeEnum = enum_namespace() -office = getattr(IfcCrewResourceTypeEnum, 'OFFICE', INDETERMINATE) -site = getattr(IfcCrewResourceTypeEnum, 'SITE', INDETERMINATE) -userdefined = getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCrewResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +office = IfcCrewResourceTypeEnum.OFFICE +site = IfcCrewResourceTypeEnum.SITE +userdefined = IfcCrewResourceTypeEnum.USERDEFINED +notdefined = IfcCrewResourceTypeEnum.NOTDEFINED IfcCurtainWallTypeEnum = enum_namespace() -userdefined = getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCurtainWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCurtainWallTypeEnum.USERDEFINED +notdefined = IfcCurtainWallTypeEnum.NOTDEFINED IfcCurveInterpolationEnum = enum_namespace() -linear = getattr(IfcCurveInterpolationEnum, 'LINEAR', INDETERMINATE) -log_linear = getattr(IfcCurveInterpolationEnum, 'LOG_LINEAR', INDETERMINATE) -log_log = getattr(IfcCurveInterpolationEnum, 'LOG_LOG', INDETERMINATE) -notdefined = getattr(IfcCurveInterpolationEnum, 'NOTDEFINED', INDETERMINATE) +linear = IfcCurveInterpolationEnum.LINEAR +log_linear = IfcCurveInterpolationEnum.LOG_LINEAR +log_log = IfcCurveInterpolationEnum.LOG_LOG +notdefined = IfcCurveInterpolationEnum.NOTDEFINED IfcDamperTypeEnum = enum_namespace() -backdraftdamper = getattr(IfcDamperTypeEnum, 'BACKDRAFTDAMPER', INDETERMINATE) -balancingdamper = getattr(IfcDamperTypeEnum, 'BALANCINGDAMPER', INDETERMINATE) -blastdamper = getattr(IfcDamperTypeEnum, 'BLASTDAMPER', INDETERMINATE) -controldamper = getattr(IfcDamperTypeEnum, 'CONTROLDAMPER', INDETERMINATE) -firedamper = getattr(IfcDamperTypeEnum, 'FIREDAMPER', INDETERMINATE) -firesmokedamper = getattr(IfcDamperTypeEnum, 'FIRESMOKEDAMPER', INDETERMINATE) -fumehoodexhaust = getattr(IfcDamperTypeEnum, 'FUMEHOODEXHAUST', INDETERMINATE) -gravitydamper = getattr(IfcDamperTypeEnum, 'GRAVITYDAMPER', INDETERMINATE) -gravityreliefdamper = getattr(IfcDamperTypeEnum, 'GRAVITYRELIEFDAMPER', INDETERMINATE) -reliefdamper = getattr(IfcDamperTypeEnum, 'RELIEFDAMPER', INDETERMINATE) -smokedamper = getattr(IfcDamperTypeEnum, 'SMOKEDAMPER', INDETERMINATE) -userdefined = getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +backdraftdamper = IfcDamperTypeEnum.BACKDRAFTDAMPER +balancingdamper = IfcDamperTypeEnum.BALANCINGDAMPER +blastdamper = IfcDamperTypeEnum.BLASTDAMPER +controldamper = IfcDamperTypeEnum.CONTROLDAMPER +firedamper = IfcDamperTypeEnum.FIREDAMPER +firesmokedamper = IfcDamperTypeEnum.FIRESMOKEDAMPER +fumehoodexhaust = IfcDamperTypeEnum.FUMEHOODEXHAUST +gravitydamper = IfcDamperTypeEnum.GRAVITYDAMPER +gravityreliefdamper = IfcDamperTypeEnum.GRAVITYRELIEFDAMPER +reliefdamper = IfcDamperTypeEnum.RELIEFDAMPER +smokedamper = IfcDamperTypeEnum.SMOKEDAMPER +userdefined = IfcDamperTypeEnum.USERDEFINED +notdefined = IfcDamperTypeEnum.NOTDEFINED IfcDataOriginEnum = enum_namespace() -measured = getattr(IfcDataOriginEnum, 'MEASURED', INDETERMINATE) -predicted = getattr(IfcDataOriginEnum, 'PREDICTED', INDETERMINATE) -simulated = getattr(IfcDataOriginEnum, 'SIMULATED', INDETERMINATE) -userdefined = getattr(IfcDataOriginEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDataOriginEnum, 'NOTDEFINED', INDETERMINATE) +measured = IfcDataOriginEnum.MEASURED +predicted = IfcDataOriginEnum.PREDICTED +simulated = IfcDataOriginEnum.SIMULATED +userdefined = IfcDataOriginEnum.USERDEFINED +notdefined = IfcDataOriginEnum.NOTDEFINED IfcDerivedUnitEnum = enum_namespace() -angularvelocityunit = getattr(IfcDerivedUnitEnum, 'ANGULARVELOCITYUNIT', INDETERMINATE) -areadensityunit = getattr(IfcDerivedUnitEnum, 'AREADENSITYUNIT', INDETERMINATE) -compoundplaneangleunit = getattr(IfcDerivedUnitEnum, 'COMPOUNDPLANEANGLEUNIT', INDETERMINATE) -dynamicviscosityunit = getattr(IfcDerivedUnitEnum, 'DYNAMICVISCOSITYUNIT', INDETERMINATE) -heatfluxdensityunit = getattr(IfcDerivedUnitEnum, 'HEATFLUXDENSITYUNIT', INDETERMINATE) -integercountrateunit = getattr(IfcDerivedUnitEnum, 'INTEGERCOUNTRATEUNIT', INDETERMINATE) -isothermalmoisturecapacityunit = getattr(IfcDerivedUnitEnum, 'ISOTHERMALMOISTURECAPACITYUNIT', INDETERMINATE) -kinematicviscosityunit = getattr(IfcDerivedUnitEnum, 'KINEMATICVISCOSITYUNIT', INDETERMINATE) -linearvelocityunit = getattr(IfcDerivedUnitEnum, 'LINEARVELOCITYUNIT', INDETERMINATE) -massdensityunit = getattr(IfcDerivedUnitEnum, 'MASSDENSITYUNIT', INDETERMINATE) -massflowrateunit = getattr(IfcDerivedUnitEnum, 'MASSFLOWRATEUNIT', INDETERMINATE) -moisturediffusivityunit = getattr(IfcDerivedUnitEnum, 'MOISTUREDIFFUSIVITYUNIT', INDETERMINATE) -molecularweightunit = getattr(IfcDerivedUnitEnum, 'MOLECULARWEIGHTUNIT', INDETERMINATE) -specificheatcapacityunit = getattr(IfcDerivedUnitEnum, 'SPECIFICHEATCAPACITYUNIT', INDETERMINATE) -thermaladmittanceunit = getattr(IfcDerivedUnitEnum, 'THERMALADMITTANCEUNIT', INDETERMINATE) -thermalconductanceunit = getattr(IfcDerivedUnitEnum, 'THERMALCONDUCTANCEUNIT', INDETERMINATE) -thermalresistanceunit = getattr(IfcDerivedUnitEnum, 'THERMALRESISTANCEUNIT', INDETERMINATE) -thermaltransmittanceunit = getattr(IfcDerivedUnitEnum, 'THERMALTRANSMITTANCEUNIT', INDETERMINATE) -vaporpermeabilityunit = getattr(IfcDerivedUnitEnum, 'VAPORPERMEABILITYUNIT', INDETERMINATE) -volumetricflowrateunit = getattr(IfcDerivedUnitEnum, 'VOLUMETRICFLOWRATEUNIT', INDETERMINATE) -rotationalfrequencyunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALFREQUENCYUNIT', INDETERMINATE) -torqueunit = getattr(IfcDerivedUnitEnum, 'TORQUEUNIT', INDETERMINATE) -momentofinertiaunit = getattr(IfcDerivedUnitEnum, 'MOMENTOFINERTIAUNIT', INDETERMINATE) -linearmomentunit = getattr(IfcDerivedUnitEnum, 'LINEARMOMENTUNIT', INDETERMINATE) -linearforceunit = getattr(IfcDerivedUnitEnum, 'LINEARFORCEUNIT', INDETERMINATE) -planarforceunit = getattr(IfcDerivedUnitEnum, 'PLANARFORCEUNIT', INDETERMINATE) -modulusofelasticityunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFELASTICITYUNIT', INDETERMINATE) -shearmodulusunit = getattr(IfcDerivedUnitEnum, 'SHEARMODULUSUNIT', INDETERMINATE) -linearstiffnessunit = getattr(IfcDerivedUnitEnum, 'LINEARSTIFFNESSUNIT', INDETERMINATE) -rotationalstiffnessunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALSTIFFNESSUNIT', INDETERMINATE) -modulusofsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFSUBGRADEREACTIONUNIT', INDETERMINATE) -accelerationunit = getattr(IfcDerivedUnitEnum, 'ACCELERATIONUNIT', INDETERMINATE) -curvatureunit = getattr(IfcDerivedUnitEnum, 'CURVATUREUNIT', INDETERMINATE) -heatingvalueunit = getattr(IfcDerivedUnitEnum, 'HEATINGVALUEUNIT', INDETERMINATE) -ionconcentrationunit = getattr(IfcDerivedUnitEnum, 'IONCONCENTRATIONUNIT', INDETERMINATE) -luminousintensitydistributionunit = getattr(IfcDerivedUnitEnum, 'LUMINOUSINTENSITYDISTRIBUTIONUNIT', INDETERMINATE) -massperlengthunit = getattr(IfcDerivedUnitEnum, 'MASSPERLENGTHUNIT', INDETERMINATE) -modulusoflinearsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFLINEARSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofrotationalsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFROTATIONALSUBGRADEREACTIONUNIT', INDETERMINATE) -phunit = getattr(IfcDerivedUnitEnum, 'PHUNIT', INDETERMINATE) -rotationalmassunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALMASSUNIT', INDETERMINATE) -sectionareaintegralunit = getattr(IfcDerivedUnitEnum, 'SECTIONAREAINTEGRALUNIT', INDETERMINATE) -sectionmodulusunit = getattr(IfcDerivedUnitEnum, 'SECTIONMODULUSUNIT', INDETERMINATE) -soundpowerlevelunit = getattr(IfcDerivedUnitEnum, 'SOUNDPOWERLEVELUNIT', INDETERMINATE) -soundpowerunit = getattr(IfcDerivedUnitEnum, 'SOUNDPOWERUNIT', INDETERMINATE) -soundpressurelevelunit = getattr(IfcDerivedUnitEnum, 'SOUNDPRESSURELEVELUNIT', INDETERMINATE) -soundpressureunit = getattr(IfcDerivedUnitEnum, 'SOUNDPRESSUREUNIT', INDETERMINATE) -temperaturegradientunit = getattr(IfcDerivedUnitEnum, 'TEMPERATUREGRADIENTUNIT', INDETERMINATE) -temperaturerateofchangeunit = getattr(IfcDerivedUnitEnum, 'TEMPERATURERATEOFCHANGEUNIT', INDETERMINATE) -thermalexpansioncoefficientunit = getattr(IfcDerivedUnitEnum, 'THERMALEXPANSIONCOEFFICIENTUNIT', INDETERMINATE) -warpingconstantunit = getattr(IfcDerivedUnitEnum, 'WARPINGCONSTANTUNIT', INDETERMINATE) -warpingmomentunit = getattr(IfcDerivedUnitEnum, 'WARPINGMOMENTUNIT', INDETERMINATE) -userdefined = getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) +angularvelocityunit = IfcDerivedUnitEnum.ANGULARVELOCITYUNIT +areadensityunit = IfcDerivedUnitEnum.AREADENSITYUNIT +compoundplaneangleunit = IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT +dynamicviscosityunit = IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT +heatfluxdensityunit = IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT +integercountrateunit = IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT +isothermalmoisturecapacityunit = IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT +kinematicviscosityunit = IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT +linearvelocityunit = IfcDerivedUnitEnum.LINEARVELOCITYUNIT +massdensityunit = IfcDerivedUnitEnum.MASSDENSITYUNIT +massflowrateunit = IfcDerivedUnitEnum.MASSFLOWRATEUNIT +moisturediffusivityunit = IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT +molecularweightunit = IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT +specificheatcapacityunit = IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT +thermaladmittanceunit = IfcDerivedUnitEnum.THERMALADMITTANCEUNIT +thermalconductanceunit = IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT +thermalresistanceunit = IfcDerivedUnitEnum.THERMALRESISTANCEUNIT +thermaltransmittanceunit = IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT +vaporpermeabilityunit = IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT +volumetricflowrateunit = IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT +rotationalfrequencyunit = IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT +torqueunit = IfcDerivedUnitEnum.TORQUEUNIT +momentofinertiaunit = IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT +linearmomentunit = IfcDerivedUnitEnum.LINEARMOMENTUNIT +linearforceunit = IfcDerivedUnitEnum.LINEARFORCEUNIT +planarforceunit = IfcDerivedUnitEnum.PLANARFORCEUNIT +modulusofelasticityunit = IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT +shearmodulusunit = IfcDerivedUnitEnum.SHEARMODULUSUNIT +linearstiffnessunit = IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT +rotationalstiffnessunit = IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT +modulusofsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT +accelerationunit = IfcDerivedUnitEnum.ACCELERATIONUNIT +curvatureunit = IfcDerivedUnitEnum.CURVATUREUNIT +heatingvalueunit = IfcDerivedUnitEnum.HEATINGVALUEUNIT +ionconcentrationunit = IfcDerivedUnitEnum.IONCONCENTRATIONUNIT +luminousintensitydistributionunit = IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT +massperlengthunit = IfcDerivedUnitEnum.MASSPERLENGTHUNIT +modulusoflinearsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT +modulusofrotationalsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT +phunit = IfcDerivedUnitEnum.PHUNIT +rotationalmassunit = IfcDerivedUnitEnum.ROTATIONALMASSUNIT +sectionareaintegralunit = IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT +sectionmodulusunit = IfcDerivedUnitEnum.SECTIONMODULUSUNIT +soundpowerlevelunit = IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT +soundpowerunit = IfcDerivedUnitEnum.SOUNDPOWERUNIT +soundpressurelevelunit = IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT +soundpressureunit = IfcDerivedUnitEnum.SOUNDPRESSUREUNIT +temperaturegradientunit = IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT +temperaturerateofchangeunit = IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT +thermalexpansioncoefficientunit = IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT +warpingconstantunit = IfcDerivedUnitEnum.WARPINGCONSTANTUNIT +warpingmomentunit = IfcDerivedUnitEnum.WARPINGMOMENTUNIT +userdefined = IfcDerivedUnitEnum.USERDEFINED IfcDirectionSenseEnum = enum_namespace() -positive = getattr(IfcDirectionSenseEnum, 'POSITIVE', INDETERMINATE) -negative = getattr(IfcDirectionSenseEnum, 'NEGATIVE', INDETERMINATE) +positive = IfcDirectionSenseEnum.POSITIVE +negative = IfcDirectionSenseEnum.NEGATIVE IfcDiscreteAccessoryTypeEnum = enum_namespace() -anchorplate = getattr(IfcDiscreteAccessoryTypeEnum, 'ANCHORPLATE', INDETERMINATE) -bracket = getattr(IfcDiscreteAccessoryTypeEnum, 'BRACKET', INDETERMINATE) -shoe = getattr(IfcDiscreteAccessoryTypeEnum, 'SHOE', INDETERMINATE) -userdefined = getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDiscreteAccessoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorplate = IfcDiscreteAccessoryTypeEnum.ANCHORPLATE +bracket = IfcDiscreteAccessoryTypeEnum.BRACKET +shoe = IfcDiscreteAccessoryTypeEnum.SHOE +userdefined = IfcDiscreteAccessoryTypeEnum.USERDEFINED +notdefined = IfcDiscreteAccessoryTypeEnum.NOTDEFINED IfcDistributionChamberElementTypeEnum = enum_namespace() -formedduct = getattr(IfcDistributionChamberElementTypeEnum, 'FORMEDDUCT', INDETERMINATE) -inspectionchamber = getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONCHAMBER', INDETERMINATE) -inspectionpit = getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONPIT', INDETERMINATE) -manhole = getattr(IfcDistributionChamberElementTypeEnum, 'MANHOLE', INDETERMINATE) -meterchamber = getattr(IfcDistributionChamberElementTypeEnum, 'METERCHAMBER', INDETERMINATE) -sump = getattr(IfcDistributionChamberElementTypeEnum, 'SUMP', INDETERMINATE) -trench = getattr(IfcDistributionChamberElementTypeEnum, 'TRENCH', INDETERMINATE) -valvechamber = getattr(IfcDistributionChamberElementTypeEnum, 'VALVECHAMBER', INDETERMINATE) -userdefined = getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionChamberElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +formedduct = IfcDistributionChamberElementTypeEnum.FORMEDDUCT +inspectionchamber = IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER +inspectionpit = IfcDistributionChamberElementTypeEnum.INSPECTIONPIT +manhole = IfcDistributionChamberElementTypeEnum.MANHOLE +meterchamber = IfcDistributionChamberElementTypeEnum.METERCHAMBER +sump = IfcDistributionChamberElementTypeEnum.SUMP +trench = IfcDistributionChamberElementTypeEnum.TRENCH +valvechamber = IfcDistributionChamberElementTypeEnum.VALVECHAMBER +userdefined = IfcDistributionChamberElementTypeEnum.USERDEFINED +notdefined = IfcDistributionChamberElementTypeEnum.NOTDEFINED IfcDistributionPortTypeEnum = enum_namespace() -cable = getattr(IfcDistributionPortTypeEnum, 'CABLE', INDETERMINATE) -cablecarrier = getattr(IfcDistributionPortTypeEnum, 'CABLECARRIER', INDETERMINATE) -duct = getattr(IfcDistributionPortTypeEnum, 'DUCT', INDETERMINATE) -pipe = getattr(IfcDistributionPortTypeEnum, 'PIPE', INDETERMINATE) -userdefined = getattr(IfcDistributionPortTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionPortTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcDistributionPortTypeEnum.CABLE +cablecarrier = IfcDistributionPortTypeEnum.CABLECARRIER +duct = IfcDistributionPortTypeEnum.DUCT +pipe = IfcDistributionPortTypeEnum.PIPE +userdefined = IfcDistributionPortTypeEnum.USERDEFINED +notdefined = IfcDistributionPortTypeEnum.NOTDEFINED IfcDistributionSystemEnum = enum_namespace() -airconditioning = getattr(IfcDistributionSystemEnum, 'AIRCONDITIONING', INDETERMINATE) -audiovisual = getattr(IfcDistributionSystemEnum, 'AUDIOVISUAL', INDETERMINATE) -chemical = getattr(IfcDistributionSystemEnum, 'CHEMICAL', INDETERMINATE) -chilledwater = getattr(IfcDistributionSystemEnum, 'CHILLEDWATER', INDETERMINATE) -communication = getattr(IfcDistributionSystemEnum, 'COMMUNICATION', INDETERMINATE) -compressedair = getattr(IfcDistributionSystemEnum, 'COMPRESSEDAIR', INDETERMINATE) -condenserwater = getattr(IfcDistributionSystemEnum, 'CONDENSERWATER', INDETERMINATE) -control = getattr(IfcDistributionSystemEnum, 'CONTROL', INDETERMINATE) -conveying = getattr(IfcDistributionSystemEnum, 'CONVEYING', INDETERMINATE) -data = getattr(IfcDistributionSystemEnum, 'DATA', INDETERMINATE) -disposal = getattr(IfcDistributionSystemEnum, 'DISPOSAL', INDETERMINATE) -domesticcoldwater = getattr(IfcDistributionSystemEnum, 'DOMESTICCOLDWATER', INDETERMINATE) -domestichotwater = getattr(IfcDistributionSystemEnum, 'DOMESTICHOTWATER', INDETERMINATE) -drainage = getattr(IfcDistributionSystemEnum, 'DRAINAGE', INDETERMINATE) -earthing = getattr(IfcDistributionSystemEnum, 'EARTHING', INDETERMINATE) -electrical = getattr(IfcDistributionSystemEnum, 'ELECTRICAL', INDETERMINATE) -electroacoustic = getattr(IfcDistributionSystemEnum, 'ELECTROACOUSTIC', INDETERMINATE) -exhaust = getattr(IfcDistributionSystemEnum, 'EXHAUST', INDETERMINATE) -fireprotection = getattr(IfcDistributionSystemEnum, 'FIREPROTECTION', INDETERMINATE) -fuel = getattr(IfcDistributionSystemEnum, 'FUEL', INDETERMINATE) -gas = getattr(IfcDistributionSystemEnum, 'GAS', INDETERMINATE) -hazardous = getattr(IfcDistributionSystemEnum, 'HAZARDOUS', INDETERMINATE) -heating = getattr(IfcDistributionSystemEnum, 'HEATING', INDETERMINATE) -lighting = getattr(IfcDistributionSystemEnum, 'LIGHTING', INDETERMINATE) -lightningprotection = getattr(IfcDistributionSystemEnum, 'LIGHTNINGPROTECTION', INDETERMINATE) -municipalsolidwaste = getattr(IfcDistributionSystemEnum, 'MUNICIPALSOLIDWASTE', INDETERMINATE) -oil = getattr(IfcDistributionSystemEnum, 'OIL', INDETERMINATE) -operational = getattr(IfcDistributionSystemEnum, 'OPERATIONAL', INDETERMINATE) -powergeneration = getattr(IfcDistributionSystemEnum, 'POWERGENERATION', INDETERMINATE) -rainwater = getattr(IfcDistributionSystemEnum, 'RAINWATER', INDETERMINATE) -refrigeration = getattr(IfcDistributionSystemEnum, 'REFRIGERATION', INDETERMINATE) -security = getattr(IfcDistributionSystemEnum, 'SECURITY', INDETERMINATE) -sewage = getattr(IfcDistributionSystemEnum, 'SEWAGE', INDETERMINATE) -signal = getattr(IfcDistributionSystemEnum, 'SIGNAL', INDETERMINATE) -stormwater = getattr(IfcDistributionSystemEnum, 'STORMWATER', INDETERMINATE) -telephone = getattr(IfcDistributionSystemEnum, 'TELEPHONE', INDETERMINATE) -tv = getattr(IfcDistributionSystemEnum, 'TV', INDETERMINATE) -vacuum = getattr(IfcDistributionSystemEnum, 'VACUUM', INDETERMINATE) -vent = getattr(IfcDistributionSystemEnum, 'VENT', INDETERMINATE) -ventilation = getattr(IfcDistributionSystemEnum, 'VENTILATION', INDETERMINATE) -wastewater = getattr(IfcDistributionSystemEnum, 'WASTEWATER', INDETERMINATE) -watersupply = getattr(IfcDistributionSystemEnum, 'WATERSUPPLY', INDETERMINATE) -userdefined = getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionSystemEnum, 'NOTDEFINED', INDETERMINATE) +airconditioning = IfcDistributionSystemEnum.AIRCONDITIONING +audiovisual = IfcDistributionSystemEnum.AUDIOVISUAL +chemical = IfcDistributionSystemEnum.CHEMICAL +chilledwater = IfcDistributionSystemEnum.CHILLEDWATER +communication = IfcDistributionSystemEnum.COMMUNICATION +compressedair = IfcDistributionSystemEnum.COMPRESSEDAIR +condenserwater = IfcDistributionSystemEnum.CONDENSERWATER +control = IfcDistributionSystemEnum.CONTROL +conveying = IfcDistributionSystemEnum.CONVEYING +data = IfcDistributionSystemEnum.DATA +disposal = IfcDistributionSystemEnum.DISPOSAL +domesticcoldwater = IfcDistributionSystemEnum.DOMESTICCOLDWATER +domestichotwater = IfcDistributionSystemEnum.DOMESTICHOTWATER +drainage = IfcDistributionSystemEnum.DRAINAGE +earthing = IfcDistributionSystemEnum.EARTHING +electrical = IfcDistributionSystemEnum.ELECTRICAL +electroacoustic = IfcDistributionSystemEnum.ELECTROACOUSTIC +exhaust = IfcDistributionSystemEnum.EXHAUST +fireprotection = IfcDistributionSystemEnum.FIREPROTECTION +fuel = IfcDistributionSystemEnum.FUEL +gas = IfcDistributionSystemEnum.GAS +hazardous = IfcDistributionSystemEnum.HAZARDOUS +heating = IfcDistributionSystemEnum.HEATING +lighting = IfcDistributionSystemEnum.LIGHTING +lightningprotection = IfcDistributionSystemEnum.LIGHTNINGPROTECTION +municipalsolidwaste = IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE +oil = IfcDistributionSystemEnum.OIL +operational = IfcDistributionSystemEnum.OPERATIONAL +powergeneration = IfcDistributionSystemEnum.POWERGENERATION +rainwater = IfcDistributionSystemEnum.RAINWATER +refrigeration = IfcDistributionSystemEnum.REFRIGERATION +security = IfcDistributionSystemEnum.SECURITY +sewage = IfcDistributionSystemEnum.SEWAGE +signal = IfcDistributionSystemEnum.SIGNAL +stormwater = IfcDistributionSystemEnum.STORMWATER +telephone = IfcDistributionSystemEnum.TELEPHONE +tv = IfcDistributionSystemEnum.TV +vacuum = IfcDistributionSystemEnum.VACUUM +vent = IfcDistributionSystemEnum.VENT +ventilation = IfcDistributionSystemEnum.VENTILATION +wastewater = IfcDistributionSystemEnum.WASTEWATER +watersupply = IfcDistributionSystemEnum.WATERSUPPLY +userdefined = IfcDistributionSystemEnum.USERDEFINED +notdefined = IfcDistributionSystemEnum.NOTDEFINED IfcDocumentConfidentialityEnum = enum_namespace() -public = getattr(IfcDocumentConfidentialityEnum, 'PUBLIC', INDETERMINATE) -restricted = getattr(IfcDocumentConfidentialityEnum, 'RESTRICTED', INDETERMINATE) -confidential = getattr(IfcDocumentConfidentialityEnum, 'CONFIDENTIAL', INDETERMINATE) -personal = getattr(IfcDocumentConfidentialityEnum, 'PERSONAL', INDETERMINATE) -userdefined = getattr(IfcDocumentConfidentialityEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDocumentConfidentialityEnum, 'NOTDEFINED', INDETERMINATE) +public = IfcDocumentConfidentialityEnum.PUBLIC +restricted = IfcDocumentConfidentialityEnum.RESTRICTED +confidential = IfcDocumentConfidentialityEnum.CONFIDENTIAL +personal = IfcDocumentConfidentialityEnum.PERSONAL +userdefined = IfcDocumentConfidentialityEnum.USERDEFINED +notdefined = IfcDocumentConfidentialityEnum.NOTDEFINED IfcDocumentStatusEnum = enum_namespace() -draft = getattr(IfcDocumentStatusEnum, 'DRAFT', INDETERMINATE) -finaldraft = getattr(IfcDocumentStatusEnum, 'FINALDRAFT', INDETERMINATE) -final = getattr(IfcDocumentStatusEnum, 'FINAL', INDETERMINATE) -revision = getattr(IfcDocumentStatusEnum, 'REVISION', INDETERMINATE) -notdefined = getattr(IfcDocumentStatusEnum, 'NOTDEFINED', INDETERMINATE) +draft = IfcDocumentStatusEnum.DRAFT +finaldraft = IfcDocumentStatusEnum.FINALDRAFT +final = IfcDocumentStatusEnum.FINAL +revision = IfcDocumentStatusEnum.REVISION +notdefined = IfcDocumentStatusEnum.NOTDEFINED IfcDoorPanelOperationEnum = enum_namespace() -swinging = getattr(IfcDoorPanelOperationEnum, 'SWINGING', INDETERMINATE) -double_acting = getattr(IfcDoorPanelOperationEnum, 'DOUBLE_ACTING', INDETERMINATE) -sliding = getattr(IfcDoorPanelOperationEnum, 'SLIDING', INDETERMINATE) -folding = getattr(IfcDoorPanelOperationEnum, 'FOLDING', INDETERMINATE) -revolving = getattr(IfcDoorPanelOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = getattr(IfcDoorPanelOperationEnum, 'ROLLINGUP', INDETERMINATE) -fixedpanel = getattr(IfcDoorPanelOperationEnum, 'FIXEDPANEL', INDETERMINATE) -userdefined = getattr(IfcDoorPanelOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +swinging = IfcDoorPanelOperationEnum.SWINGING +double_acting = IfcDoorPanelOperationEnum.DOUBLE_ACTING +sliding = IfcDoorPanelOperationEnum.SLIDING +folding = IfcDoorPanelOperationEnum.FOLDING +revolving = IfcDoorPanelOperationEnum.REVOLVING +rollingup = IfcDoorPanelOperationEnum.ROLLINGUP +fixedpanel = IfcDoorPanelOperationEnum.FIXEDPANEL +userdefined = IfcDoorPanelOperationEnum.USERDEFINED +notdefined = IfcDoorPanelOperationEnum.NOTDEFINED IfcDoorPanelPositionEnum = enum_namespace() -left = getattr(IfcDoorPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = getattr(IfcDoorPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = getattr(IfcDoorPanelPositionEnum, 'RIGHT', INDETERMINATE) -notdefined = getattr(IfcDoorPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcDoorPanelPositionEnum.LEFT +middle = IfcDoorPanelPositionEnum.MIDDLE +right = IfcDoorPanelPositionEnum.RIGHT +notdefined = IfcDoorPanelPositionEnum.NOTDEFINED IfcDoorStyleConstructionEnum = enum_namespace() -aluminium = getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = getattr(IfcDoorStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = getattr(IfcDoorStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = getattr(IfcDoorStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -aluminium_plastic = getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_PLASTIC', INDETERMINATE) -plastic = getattr(IfcDoorStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -userdefined = getattr(IfcDoorStyleConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcDoorStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcDoorStyleConstructionEnum.STEEL +wood = IfcDoorStyleConstructionEnum.WOOD +aluminium_wood = IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD +aluminium_plastic = IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC +plastic = IfcDoorStyleConstructionEnum.PLASTIC +userdefined = IfcDoorStyleConstructionEnum.USERDEFINED +notdefined = IfcDoorStyleConstructionEnum.NOTDEFINED IfcDoorStyleOperationEnum = enum_namespace() -single_swing_left = getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_door_single_swing = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_door_double_swing = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_door_sliding = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -folding_to_left = getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_door_folding = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -revolving = getattr(IfcDoorStyleOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = getattr(IfcDoorStyleOperationEnum, 'ROLLINGUP', INDETERMINATE) -userdefined = getattr(IfcDoorStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT +double_door_single_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT +double_door_double_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +sliding_to_left = IfcDoorStyleOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT +double_door_sliding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING +folding_to_left = IfcDoorStyleOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT +double_door_folding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING +revolving = IfcDoorStyleOperationEnum.REVOLVING +rollingup = IfcDoorStyleOperationEnum.ROLLINGUP +userdefined = IfcDoorStyleOperationEnum.USERDEFINED +notdefined = IfcDoorStyleOperationEnum.NOTDEFINED IfcDoorTypeEnum = enum_namespace() -door = getattr(IfcDoorTypeEnum, 'DOOR', INDETERMINATE) -gate = getattr(IfcDoorTypeEnum, 'GATE', INDETERMINATE) -trapdoor = getattr(IfcDoorTypeEnum, 'TRAPDOOR', INDETERMINATE) -userdefined = getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorTypeEnum, 'NOTDEFINED', INDETERMINATE) +door = IfcDoorTypeEnum.DOOR +gate = IfcDoorTypeEnum.GATE +trapdoor = IfcDoorTypeEnum.TRAPDOOR +userdefined = IfcDoorTypeEnum.USERDEFINED +notdefined = IfcDoorTypeEnum.NOTDEFINED IfcDoorTypeOperationEnum = enum_namespace() -single_swing_left = getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_door_single_swing = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_door_double_swing = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_door_sliding = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -folding_to_left = getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_door_folding = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -revolving = getattr(IfcDoorTypeOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = getattr(IfcDoorTypeOperationEnum, 'ROLLINGUP', INDETERMINATE) -swing_fixed_left = getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_LEFT', INDETERMINATE) -swing_fixed_right = getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_RIGHT', INDETERMINATE) -userdefined = getattr(IfcDoorTypeOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorTypeOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT +double_door_single_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT +double_door_double_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +sliding_to_left = IfcDoorTypeOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT +double_door_sliding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SLIDING +folding_to_left = IfcDoorTypeOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT +double_door_folding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_FOLDING +revolving = IfcDoorTypeOperationEnum.REVOLVING +rollingup = IfcDoorTypeOperationEnum.ROLLINGUP +swing_fixed_left = IfcDoorTypeOperationEnum.SWING_FIXED_LEFT +swing_fixed_right = IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT +userdefined = IfcDoorTypeOperationEnum.USERDEFINED +notdefined = IfcDoorTypeOperationEnum.NOTDEFINED IfcDuctFittingTypeEnum = enum_namespace() -bend = getattr(IfcDuctFittingTypeEnum, 'BEND', INDETERMINATE) -connector = getattr(IfcDuctFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcDuctFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcDuctFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcDuctFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = getattr(IfcDuctFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = getattr(IfcDuctFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcDuctFittingTypeEnum.BEND +connector = IfcDuctFittingTypeEnum.CONNECTOR +entry = IfcDuctFittingTypeEnum.ENTRY +exit = IfcDuctFittingTypeEnum.EXIT +junction = IfcDuctFittingTypeEnum.JUNCTION +obstruction = IfcDuctFittingTypeEnum.OBSTRUCTION +transition = IfcDuctFittingTypeEnum.TRANSITION +userdefined = IfcDuctFittingTypeEnum.USERDEFINED +notdefined = IfcDuctFittingTypeEnum.NOTDEFINED IfcDuctSegmentTypeEnum = enum_namespace() -rigidsegment = getattr(IfcDuctSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -flexiblesegment = getattr(IfcDuctSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -userdefined = getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigidsegment = IfcDuctSegmentTypeEnum.RIGIDSEGMENT +flexiblesegment = IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT +userdefined = IfcDuctSegmentTypeEnum.USERDEFINED +notdefined = IfcDuctSegmentTypeEnum.NOTDEFINED IfcDuctSilencerTypeEnum = enum_namespace() -flatoval = getattr(IfcDuctSilencerTypeEnum, 'FLATOVAL', INDETERMINATE) -rectangular = getattr(IfcDuctSilencerTypeEnum, 'RECTANGULAR', INDETERMINATE) -round = getattr(IfcDuctSilencerTypeEnum, 'ROUND', INDETERMINATE) -userdefined = getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctSilencerTypeEnum, 'NOTDEFINED', INDETERMINATE) +flatoval = IfcDuctSilencerTypeEnum.FLATOVAL +rectangular = IfcDuctSilencerTypeEnum.RECTANGULAR +round = IfcDuctSilencerTypeEnum.ROUND +userdefined = IfcDuctSilencerTypeEnum.USERDEFINED +notdefined = IfcDuctSilencerTypeEnum.NOTDEFINED IfcElectricApplianceTypeEnum = enum_namespace() -dishwasher = getattr(IfcElectricApplianceTypeEnum, 'DISHWASHER', INDETERMINATE) -electriccooker = getattr(IfcElectricApplianceTypeEnum, 'ELECTRICCOOKER', INDETERMINATE) -freestandingelectricheater = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGELECTRICHEATER', INDETERMINATE) -freestandingfan = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGFAN', INDETERMINATE) -freestandingwaterheater = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERHEATER', INDETERMINATE) -freestandingwatercooler = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERCOOLER', INDETERMINATE) -freezer = getattr(IfcElectricApplianceTypeEnum, 'FREEZER', INDETERMINATE) -fridge_freezer = getattr(IfcElectricApplianceTypeEnum, 'FRIDGE_FREEZER', INDETERMINATE) -handdryer = getattr(IfcElectricApplianceTypeEnum, 'HANDDRYER', INDETERMINATE) -kitchenmachine = getattr(IfcElectricApplianceTypeEnum, 'KITCHENMACHINE', INDETERMINATE) -microwave = getattr(IfcElectricApplianceTypeEnum, 'MICROWAVE', INDETERMINATE) -photocopier = getattr(IfcElectricApplianceTypeEnum, 'PHOTOCOPIER', INDETERMINATE) -refrigerator = getattr(IfcElectricApplianceTypeEnum, 'REFRIGERATOR', INDETERMINATE) -tumbledryer = getattr(IfcElectricApplianceTypeEnum, 'TUMBLEDRYER', INDETERMINATE) -vendingmachine = getattr(IfcElectricApplianceTypeEnum, 'VENDINGMACHINE', INDETERMINATE) -washingmachine = getattr(IfcElectricApplianceTypeEnum, 'WASHINGMACHINE', INDETERMINATE) -userdefined = getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dishwasher = IfcElectricApplianceTypeEnum.DISHWASHER +electriccooker = IfcElectricApplianceTypeEnum.ELECTRICCOOKER +freestandingelectricheater = IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER +freestandingfan = IfcElectricApplianceTypeEnum.FREESTANDINGFAN +freestandingwaterheater = IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER +freestandingwatercooler = IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER +freezer = IfcElectricApplianceTypeEnum.FREEZER +fridge_freezer = IfcElectricApplianceTypeEnum.FRIDGE_FREEZER +handdryer = IfcElectricApplianceTypeEnum.HANDDRYER +kitchenmachine = IfcElectricApplianceTypeEnum.KITCHENMACHINE +microwave = IfcElectricApplianceTypeEnum.MICROWAVE +photocopier = IfcElectricApplianceTypeEnum.PHOTOCOPIER +refrigerator = IfcElectricApplianceTypeEnum.REFRIGERATOR +tumbledryer = IfcElectricApplianceTypeEnum.TUMBLEDRYER +vendingmachine = IfcElectricApplianceTypeEnum.VENDINGMACHINE +washingmachine = IfcElectricApplianceTypeEnum.WASHINGMACHINE +userdefined = IfcElectricApplianceTypeEnum.USERDEFINED +notdefined = IfcElectricApplianceTypeEnum.NOTDEFINED IfcElectricDistributionBoardTypeEnum = enum_namespace() -consumerunit = getattr(IfcElectricDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -distributionboard = getattr(IfcElectricDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -motorcontrolcentre = getattr(IfcElectricDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = getattr(IfcElectricDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT +distributionboard = IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD +motorcontrolcentre = IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcElectricDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcElectricDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcElectricDistributionBoardTypeEnum.NOTDEFINED IfcElectricFlowStorageDeviceTypeEnum = enum_namespace() -battery = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'BATTERY', INDETERMINATE) -capacitorbank = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITORBANK', INDETERMINATE) -harmonicfilter = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'HARMONICFILTER', INDETERMINATE) -inductorbank = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTORBANK', INDETERMINATE) -ups = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'UPS', INDETERMINATE) -userdefined = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +battery = IfcElectricFlowStorageDeviceTypeEnum.BATTERY +capacitorbank = IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK +harmonicfilter = IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER +inductorbank = IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK +ups = IfcElectricFlowStorageDeviceTypeEnum.UPS +userdefined = IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED IfcElectricGeneratorTypeEnum = enum_namespace() -chp = getattr(IfcElectricGeneratorTypeEnum, 'CHP', INDETERMINATE) -enginegenerator = getattr(IfcElectricGeneratorTypeEnum, 'ENGINEGENERATOR', INDETERMINATE) -standalone = getattr(IfcElectricGeneratorTypeEnum, 'STANDALONE', INDETERMINATE) -userdefined = getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricGeneratorTypeEnum, 'NOTDEFINED', INDETERMINATE) +chp = IfcElectricGeneratorTypeEnum.CHP +enginegenerator = IfcElectricGeneratorTypeEnum.ENGINEGENERATOR +standalone = IfcElectricGeneratorTypeEnum.STANDALONE +userdefined = IfcElectricGeneratorTypeEnum.USERDEFINED +notdefined = IfcElectricGeneratorTypeEnum.NOTDEFINED IfcElectricMotorTypeEnum = enum_namespace() -dc = getattr(IfcElectricMotorTypeEnum, 'DC', INDETERMINATE) -induction = getattr(IfcElectricMotorTypeEnum, 'INDUCTION', INDETERMINATE) -polyphase = getattr(IfcElectricMotorTypeEnum, 'POLYPHASE', INDETERMINATE) -reluctancesynchronous = getattr(IfcElectricMotorTypeEnum, 'RELUCTANCESYNCHRONOUS', INDETERMINATE) -synchronous = getattr(IfcElectricMotorTypeEnum, 'SYNCHRONOUS', INDETERMINATE) -userdefined = getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricMotorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dc = IfcElectricMotorTypeEnum.DC +induction = IfcElectricMotorTypeEnum.INDUCTION +polyphase = IfcElectricMotorTypeEnum.POLYPHASE +reluctancesynchronous = IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS +synchronous = IfcElectricMotorTypeEnum.SYNCHRONOUS +userdefined = IfcElectricMotorTypeEnum.USERDEFINED +notdefined = IfcElectricMotorTypeEnum.NOTDEFINED IfcElectricTimeControlTypeEnum = enum_namespace() -timeclock = getattr(IfcElectricTimeControlTypeEnum, 'TIMECLOCK', INDETERMINATE) -timedelay = getattr(IfcElectricTimeControlTypeEnum, 'TIMEDELAY', INDETERMINATE) -relay = getattr(IfcElectricTimeControlTypeEnum, 'RELAY', INDETERMINATE) -userdefined = getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricTimeControlTypeEnum, 'NOTDEFINED', INDETERMINATE) +timeclock = IfcElectricTimeControlTypeEnum.TIMECLOCK +timedelay = IfcElectricTimeControlTypeEnum.TIMEDELAY +relay = IfcElectricTimeControlTypeEnum.RELAY +userdefined = IfcElectricTimeControlTypeEnum.USERDEFINED +notdefined = IfcElectricTimeControlTypeEnum.NOTDEFINED IfcElementAssemblyTypeEnum = enum_namespace() -accessory_assembly = getattr(IfcElementAssemblyTypeEnum, 'ACCESSORY_ASSEMBLY', INDETERMINATE) -arch = getattr(IfcElementAssemblyTypeEnum, 'ARCH', INDETERMINATE) -beam_grid = getattr(IfcElementAssemblyTypeEnum, 'BEAM_GRID', INDETERMINATE) -braced_frame = getattr(IfcElementAssemblyTypeEnum, 'BRACED_FRAME', INDETERMINATE) -girder = getattr(IfcElementAssemblyTypeEnum, 'GIRDER', INDETERMINATE) -reinforcement_unit = getattr(IfcElementAssemblyTypeEnum, 'REINFORCEMENT_UNIT', INDETERMINATE) -rigid_frame = getattr(IfcElementAssemblyTypeEnum, 'RIGID_FRAME', INDETERMINATE) -slab_field = getattr(IfcElementAssemblyTypeEnum, 'SLAB_FIELD', INDETERMINATE) -truss = getattr(IfcElementAssemblyTypeEnum, 'TRUSS', INDETERMINATE) -userdefined = getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElementAssemblyTypeEnum, 'NOTDEFINED', INDETERMINATE) +accessory_assembly = IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY +arch = IfcElementAssemblyTypeEnum.ARCH +beam_grid = IfcElementAssemblyTypeEnum.BEAM_GRID +braced_frame = IfcElementAssemblyTypeEnum.BRACED_FRAME +girder = IfcElementAssemblyTypeEnum.GIRDER +reinforcement_unit = IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT +rigid_frame = IfcElementAssemblyTypeEnum.RIGID_FRAME +slab_field = IfcElementAssemblyTypeEnum.SLAB_FIELD +truss = IfcElementAssemblyTypeEnum.TRUSS +userdefined = IfcElementAssemblyTypeEnum.USERDEFINED +notdefined = IfcElementAssemblyTypeEnum.NOTDEFINED IfcElementCompositionEnum = enum_namespace() -complex = getattr(IfcElementCompositionEnum, 'COMPLEX', INDETERMINATE) -element = getattr(IfcElementCompositionEnum, 'ELEMENT', INDETERMINATE) -partial = getattr(IfcElementCompositionEnum, 'PARTIAL', INDETERMINATE) +complex = IfcElementCompositionEnum.COMPLEX +element = IfcElementCompositionEnum.ELEMENT +partial = IfcElementCompositionEnum.PARTIAL IfcEngineTypeEnum = enum_namespace() -externalcombustion = getattr(IfcEngineTypeEnum, 'EXTERNALCOMBUSTION', INDETERMINATE) -internalcombustion = getattr(IfcEngineTypeEnum, 'INTERNALCOMBUSTION', INDETERMINATE) -userdefined = getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEngineTypeEnum, 'NOTDEFINED', INDETERMINATE) +externalcombustion = IfcEngineTypeEnum.EXTERNALCOMBUSTION +internalcombustion = IfcEngineTypeEnum.INTERNALCOMBUSTION +userdefined = IfcEngineTypeEnum.USERDEFINED +notdefined = IfcEngineTypeEnum.NOTDEFINED IfcEvaporativeCoolerTypeEnum = enum_namespace() -directevaporativerandommediaaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER', INDETERMINATE) -directevaporativerigidmediaaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER', INDETERMINATE) -directevaporativeslingerspackagedaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER', INDETERMINATE) -directevaporativepackagedrotaryaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER', INDETERMINATE) -directevaporativeairwasher = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEAIRWASHER', INDETERMINATE) -indirectevaporativepackageaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEPACKAGEAIRCOOLER', INDETERMINATE) -indirectevaporativewetcoil = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEWETCOIL', INDETERMINATE) -indirectevaporativecoolingtowerorcoilcooler = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER', INDETERMINATE) -indirectdirectcombination = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTDIRECTCOMBINATION', INDETERMINATE) -userdefined = getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEvaporativeCoolerTypeEnum, 'NOTDEFINED', INDETERMINATE) +directevaporativerandommediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER +directevaporativerigidmediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER +directevaporativeslingerspackagedaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER +directevaporativepackagedrotaryaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER +directevaporativeairwasher = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER +indirectevaporativepackageaircooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER +indirectevaporativewetcoil = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL +indirectevaporativecoolingtowerorcoilcooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER +indirectdirectcombination = IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION +userdefined = IfcEvaporativeCoolerTypeEnum.USERDEFINED +notdefined = IfcEvaporativeCoolerTypeEnum.NOTDEFINED IfcEvaporatorTypeEnum = enum_namespace() -directexpansion = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSION', INDETERMINATE) -directexpansionshellandtube = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONSHELLANDTUBE', INDETERMINATE) -directexpansiontubeintube = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONTUBEINTUBE', INDETERMINATE) -directexpansionbrazedplate = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONBRAZEDPLATE', INDETERMINATE) -floodedshellandtube = getattr(IfcEvaporatorTypeEnum, 'FLOODEDSHELLANDTUBE', INDETERMINATE) -shellandcoil = getattr(IfcEvaporatorTypeEnum, 'SHELLANDCOIL', INDETERMINATE) -userdefined = getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEvaporatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +directexpansion = IfcEvaporatorTypeEnum.DIRECTEXPANSION +directexpansionshellandtube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE +directexpansiontubeintube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE +directexpansionbrazedplate = IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE +floodedshellandtube = IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE +shellandcoil = IfcEvaporatorTypeEnum.SHELLANDCOIL +userdefined = IfcEvaporatorTypeEnum.USERDEFINED +notdefined = IfcEvaporatorTypeEnum.NOTDEFINED IfcEventTriggerTypeEnum = enum_namespace() -eventrule = getattr(IfcEventTriggerTypeEnum, 'EVENTRULE', INDETERMINATE) -eventmessage = getattr(IfcEventTriggerTypeEnum, 'EVENTMESSAGE', INDETERMINATE) -eventtime = getattr(IfcEventTriggerTypeEnum, 'EVENTTIME', INDETERMINATE) -eventcomplex = getattr(IfcEventTriggerTypeEnum, 'EVENTCOMPLEX', INDETERMINATE) -userdefined = getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEventTriggerTypeEnum, 'NOTDEFINED', INDETERMINATE) +eventrule = IfcEventTriggerTypeEnum.EVENTRULE +eventmessage = IfcEventTriggerTypeEnum.EVENTMESSAGE +eventtime = IfcEventTriggerTypeEnum.EVENTTIME +eventcomplex = IfcEventTriggerTypeEnum.EVENTCOMPLEX +userdefined = IfcEventTriggerTypeEnum.USERDEFINED +notdefined = IfcEventTriggerTypeEnum.NOTDEFINED IfcEventTypeEnum = enum_namespace() -startevent = getattr(IfcEventTypeEnum, 'STARTEVENT', INDETERMINATE) -endevent = getattr(IfcEventTypeEnum, 'ENDEVENT', INDETERMINATE) -intermediateevent = getattr(IfcEventTypeEnum, 'INTERMEDIATEEVENT', INDETERMINATE) -userdefined = getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEventTypeEnum, 'NOTDEFINED', INDETERMINATE) +startevent = IfcEventTypeEnum.STARTEVENT +endevent = IfcEventTypeEnum.ENDEVENT +intermediateevent = IfcEventTypeEnum.INTERMEDIATEEVENT +userdefined = IfcEventTypeEnum.USERDEFINED +notdefined = IfcEventTypeEnum.NOTDEFINED IfcExternalSpatialElementTypeEnum = enum_namespace() -external = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL', INDETERMINATE) -external_earth = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_water = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_WATER', INDETERMINATE) -external_fire = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_FIRE', INDETERMINATE) -userdefined = getattr(IfcExternalSpatialElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcExternalSpatialElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcExternalSpatialElementTypeEnum.EXTERNAL +external_earth = IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH +external_water = IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER +external_fire = IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE +userdefined = IfcExternalSpatialElementTypeEnum.USERDEFINED +notdefined = IfcExternalSpatialElementTypeEnum.NOTDEFINED IfcFanTypeEnum = enum_namespace() -centrifugalforwardcurved = getattr(IfcFanTypeEnum, 'CENTRIFUGALFORWARDCURVED', INDETERMINATE) -centrifugalradial = getattr(IfcFanTypeEnum, 'CENTRIFUGALRADIAL', INDETERMINATE) -centrifugalbackwardinclinedcurved = getattr(IfcFanTypeEnum, 'CENTRIFUGALBACKWARDINCLINEDCURVED', INDETERMINATE) -centrifugalairfoil = getattr(IfcFanTypeEnum, 'CENTRIFUGALAIRFOIL', INDETERMINATE) -tubeaxial = getattr(IfcFanTypeEnum, 'TUBEAXIAL', INDETERMINATE) -vaneaxial = getattr(IfcFanTypeEnum, 'VANEAXIAL', INDETERMINATE) -propelloraxial = getattr(IfcFanTypeEnum, 'PROPELLORAXIAL', INDETERMINATE) -userdefined = getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFanTypeEnum, 'NOTDEFINED', INDETERMINATE) +centrifugalforwardcurved = IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED +centrifugalradial = IfcFanTypeEnum.CENTRIFUGALRADIAL +centrifugalbackwardinclinedcurved = IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED +centrifugalairfoil = IfcFanTypeEnum.CENTRIFUGALAIRFOIL +tubeaxial = IfcFanTypeEnum.TUBEAXIAL +vaneaxial = IfcFanTypeEnum.VANEAXIAL +propelloraxial = IfcFanTypeEnum.PROPELLORAXIAL +userdefined = IfcFanTypeEnum.USERDEFINED +notdefined = IfcFanTypeEnum.NOTDEFINED IfcFastenerTypeEnum = enum_namespace() -glue = getattr(IfcFastenerTypeEnum, 'GLUE', INDETERMINATE) -mortar = getattr(IfcFastenerTypeEnum, 'MORTAR', INDETERMINATE) -weld = getattr(IfcFastenerTypeEnum, 'WELD', INDETERMINATE) -userdefined = getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +glue = IfcFastenerTypeEnum.GLUE +mortar = IfcFastenerTypeEnum.MORTAR +weld = IfcFastenerTypeEnum.WELD +userdefined = IfcFastenerTypeEnum.USERDEFINED +notdefined = IfcFastenerTypeEnum.NOTDEFINED IfcFilterTypeEnum = enum_namespace() -airparticlefilter = getattr(IfcFilterTypeEnum, 'AIRPARTICLEFILTER', INDETERMINATE) -compressedairfilter = getattr(IfcFilterTypeEnum, 'COMPRESSEDAIRFILTER', INDETERMINATE) -odorfilter = getattr(IfcFilterTypeEnum, 'ODORFILTER', INDETERMINATE) -oilfilter = getattr(IfcFilterTypeEnum, 'OILFILTER', INDETERMINATE) -strainer = getattr(IfcFilterTypeEnum, 'STRAINER', INDETERMINATE) -waterfilter = getattr(IfcFilterTypeEnum, 'WATERFILTER', INDETERMINATE) -userdefined = getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFilterTypeEnum, 'NOTDEFINED', INDETERMINATE) +airparticlefilter = IfcFilterTypeEnum.AIRPARTICLEFILTER +compressedairfilter = IfcFilterTypeEnum.COMPRESSEDAIRFILTER +odorfilter = IfcFilterTypeEnum.ODORFILTER +oilfilter = IfcFilterTypeEnum.OILFILTER +strainer = IfcFilterTypeEnum.STRAINER +waterfilter = IfcFilterTypeEnum.WATERFILTER +userdefined = IfcFilterTypeEnum.USERDEFINED +notdefined = IfcFilterTypeEnum.NOTDEFINED IfcFireSuppressionTerminalTypeEnum = enum_namespace() -breechinginlet = getattr(IfcFireSuppressionTerminalTypeEnum, 'BREECHINGINLET', INDETERMINATE) -firehydrant = getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREHYDRANT', INDETERMINATE) -hosereel = getattr(IfcFireSuppressionTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -sprinkler = getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLER', INDETERMINATE) -sprinklerdeflector = getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLERDEFLECTOR', INDETERMINATE) -userdefined = getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFireSuppressionTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +breechinginlet = IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET +firehydrant = IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT +hosereel = IfcFireSuppressionTerminalTypeEnum.HOSEREEL +sprinkler = IfcFireSuppressionTerminalTypeEnum.SPRINKLER +sprinklerdeflector = IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR +userdefined = IfcFireSuppressionTerminalTypeEnum.USERDEFINED +notdefined = IfcFireSuppressionTerminalTypeEnum.NOTDEFINED IfcFlowDirectionEnum = enum_namespace() -source = getattr(IfcFlowDirectionEnum, 'SOURCE', INDETERMINATE) -sink = getattr(IfcFlowDirectionEnum, 'SINK', INDETERMINATE) -sourceandsink = getattr(IfcFlowDirectionEnum, 'SOURCEANDSINK', INDETERMINATE) -notdefined = getattr(IfcFlowDirectionEnum, 'NOTDEFINED', INDETERMINATE) +source = IfcFlowDirectionEnum.SOURCE +sink = IfcFlowDirectionEnum.SINK +sourceandsink = IfcFlowDirectionEnum.SOURCEANDSINK +notdefined = IfcFlowDirectionEnum.NOTDEFINED IfcFlowInstrumentTypeEnum = enum_namespace() -pressuregauge = getattr(IfcFlowInstrumentTypeEnum, 'PRESSUREGAUGE', INDETERMINATE) -thermometer = getattr(IfcFlowInstrumentTypeEnum, 'THERMOMETER', INDETERMINATE) -ammeter = getattr(IfcFlowInstrumentTypeEnum, 'AMMETER', INDETERMINATE) -frequencymeter = getattr(IfcFlowInstrumentTypeEnum, 'FREQUENCYMETER', INDETERMINATE) -powerfactormeter = getattr(IfcFlowInstrumentTypeEnum, 'POWERFACTORMETER', INDETERMINATE) -phaseanglemeter = getattr(IfcFlowInstrumentTypeEnum, 'PHASEANGLEMETER', INDETERMINATE) -voltmeter_peak = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_PEAK', INDETERMINATE) -voltmeter_rms = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_RMS', INDETERMINATE) -userdefined = getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFlowInstrumentTypeEnum, 'NOTDEFINED', INDETERMINATE) +pressuregauge = IfcFlowInstrumentTypeEnum.PRESSUREGAUGE +thermometer = IfcFlowInstrumentTypeEnum.THERMOMETER +ammeter = IfcFlowInstrumentTypeEnum.AMMETER +frequencymeter = IfcFlowInstrumentTypeEnum.FREQUENCYMETER +powerfactormeter = IfcFlowInstrumentTypeEnum.POWERFACTORMETER +phaseanglemeter = IfcFlowInstrumentTypeEnum.PHASEANGLEMETER +voltmeter_peak = IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK +voltmeter_rms = IfcFlowInstrumentTypeEnum.VOLTMETER_RMS +userdefined = IfcFlowInstrumentTypeEnum.USERDEFINED +notdefined = IfcFlowInstrumentTypeEnum.NOTDEFINED IfcFlowMeterTypeEnum = enum_namespace() -energymeter = getattr(IfcFlowMeterTypeEnum, 'ENERGYMETER', INDETERMINATE) -gasmeter = getattr(IfcFlowMeterTypeEnum, 'GASMETER', INDETERMINATE) -oilmeter = getattr(IfcFlowMeterTypeEnum, 'OILMETER', INDETERMINATE) -watermeter = getattr(IfcFlowMeterTypeEnum, 'WATERMETER', INDETERMINATE) -userdefined = getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFlowMeterTypeEnum, 'NOTDEFINED', INDETERMINATE) +energymeter = IfcFlowMeterTypeEnum.ENERGYMETER +gasmeter = IfcFlowMeterTypeEnum.GASMETER +oilmeter = IfcFlowMeterTypeEnum.OILMETER +watermeter = IfcFlowMeterTypeEnum.WATERMETER +userdefined = IfcFlowMeterTypeEnum.USERDEFINED +notdefined = IfcFlowMeterTypeEnum.NOTDEFINED IfcFootingTypeEnum = enum_namespace() -caisson_foundation = getattr(IfcFootingTypeEnum, 'CAISSON_FOUNDATION', INDETERMINATE) -footing_beam = getattr(IfcFootingTypeEnum, 'FOOTING_BEAM', INDETERMINATE) -pad_footing = getattr(IfcFootingTypeEnum, 'PAD_FOOTING', INDETERMINATE) -pile_cap = getattr(IfcFootingTypeEnum, 'PILE_CAP', INDETERMINATE) -strip_footing = getattr(IfcFootingTypeEnum, 'STRIP_FOOTING', INDETERMINATE) -userdefined = getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFootingTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson_foundation = IfcFootingTypeEnum.CAISSON_FOUNDATION +footing_beam = IfcFootingTypeEnum.FOOTING_BEAM +pad_footing = IfcFootingTypeEnum.PAD_FOOTING +pile_cap = IfcFootingTypeEnum.PILE_CAP +strip_footing = IfcFootingTypeEnum.STRIP_FOOTING +userdefined = IfcFootingTypeEnum.USERDEFINED +notdefined = IfcFootingTypeEnum.NOTDEFINED IfcFurnitureTypeEnum = enum_namespace() -chair = getattr(IfcFurnitureTypeEnum, 'CHAIR', INDETERMINATE) -table = getattr(IfcFurnitureTypeEnum, 'TABLE', INDETERMINATE) -desk = getattr(IfcFurnitureTypeEnum, 'DESK', INDETERMINATE) -bed = getattr(IfcFurnitureTypeEnum, 'BED', INDETERMINATE) -filecabinet = getattr(IfcFurnitureTypeEnum, 'FILECABINET', INDETERMINATE) -shelf = getattr(IfcFurnitureTypeEnum, 'SHELF', INDETERMINATE) -sofa = getattr(IfcFurnitureTypeEnum, 'SOFA', INDETERMINATE) -userdefined = getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFurnitureTypeEnum, 'NOTDEFINED', INDETERMINATE) +chair = IfcFurnitureTypeEnum.CHAIR +table = IfcFurnitureTypeEnum.TABLE +desk = IfcFurnitureTypeEnum.DESK +bed = IfcFurnitureTypeEnum.BED +filecabinet = IfcFurnitureTypeEnum.FILECABINET +shelf = IfcFurnitureTypeEnum.SHELF +sofa = IfcFurnitureTypeEnum.SOFA +userdefined = IfcFurnitureTypeEnum.USERDEFINED +notdefined = IfcFurnitureTypeEnum.NOTDEFINED IfcGeographicElementTypeEnum = enum_namespace() -terrain = getattr(IfcGeographicElementTypeEnum, 'TERRAIN', INDETERMINATE) -userdefined = getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGeographicElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +terrain = IfcGeographicElementTypeEnum.TERRAIN +userdefined = IfcGeographicElementTypeEnum.USERDEFINED +notdefined = IfcGeographicElementTypeEnum.NOTDEFINED IfcGeometricProjectionEnum = enum_namespace() -graph_view = getattr(IfcGeometricProjectionEnum, 'GRAPH_VIEW', INDETERMINATE) -sketch_view = getattr(IfcGeometricProjectionEnum, 'SKETCH_VIEW', INDETERMINATE) -model_view = getattr(IfcGeometricProjectionEnum, 'MODEL_VIEW', INDETERMINATE) -plan_view = getattr(IfcGeometricProjectionEnum, 'PLAN_VIEW', INDETERMINATE) -reflected_plan_view = getattr(IfcGeometricProjectionEnum, 'REFLECTED_PLAN_VIEW', INDETERMINATE) -section_view = getattr(IfcGeometricProjectionEnum, 'SECTION_VIEW', INDETERMINATE) -elevation_view = getattr(IfcGeometricProjectionEnum, 'ELEVATION_VIEW', INDETERMINATE) -userdefined = getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGeometricProjectionEnum, 'NOTDEFINED', INDETERMINATE) +graph_view = IfcGeometricProjectionEnum.GRAPH_VIEW +sketch_view = IfcGeometricProjectionEnum.SKETCH_VIEW +model_view = IfcGeometricProjectionEnum.MODEL_VIEW +plan_view = IfcGeometricProjectionEnum.PLAN_VIEW +reflected_plan_view = IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW +section_view = IfcGeometricProjectionEnum.SECTION_VIEW +elevation_view = IfcGeometricProjectionEnum.ELEVATION_VIEW +userdefined = IfcGeometricProjectionEnum.USERDEFINED +notdefined = IfcGeometricProjectionEnum.NOTDEFINED IfcGlobalOrLocalEnum = enum_namespace() -global_coords = getattr(IfcGlobalOrLocalEnum, 'GLOBAL_COORDS', INDETERMINATE) -local_coords = getattr(IfcGlobalOrLocalEnum, 'LOCAL_COORDS', INDETERMINATE) +global_coords = IfcGlobalOrLocalEnum.GLOBAL_COORDS +local_coords = IfcGlobalOrLocalEnum.LOCAL_COORDS IfcGridTypeEnum = enum_namespace() -rectangular = getattr(IfcGridTypeEnum, 'RECTANGULAR', INDETERMINATE) -radial = getattr(IfcGridTypeEnum, 'RADIAL', INDETERMINATE) -triangular = getattr(IfcGridTypeEnum, 'TRIANGULAR', INDETERMINATE) -irregular = getattr(IfcGridTypeEnum, 'IRREGULAR', INDETERMINATE) -userdefined = getattr(IfcGridTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGridTypeEnum, 'NOTDEFINED', INDETERMINATE) +rectangular = IfcGridTypeEnum.RECTANGULAR +radial = IfcGridTypeEnum.RADIAL +triangular = IfcGridTypeEnum.TRIANGULAR +irregular = IfcGridTypeEnum.IRREGULAR +userdefined = IfcGridTypeEnum.USERDEFINED +notdefined = IfcGridTypeEnum.NOTDEFINED IfcHeatExchangerTypeEnum = enum_namespace() -plate = getattr(IfcHeatExchangerTypeEnum, 'PLATE', INDETERMINATE) -shellandtube = getattr(IfcHeatExchangerTypeEnum, 'SHELLANDTUBE', INDETERMINATE) -userdefined = getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcHeatExchangerTypeEnum, 'NOTDEFINED', INDETERMINATE) +plate = IfcHeatExchangerTypeEnum.PLATE +shellandtube = IfcHeatExchangerTypeEnum.SHELLANDTUBE +userdefined = IfcHeatExchangerTypeEnum.USERDEFINED +notdefined = IfcHeatExchangerTypeEnum.NOTDEFINED IfcHumidifierTypeEnum = enum_namespace() -steaminjection = getattr(IfcHumidifierTypeEnum, 'STEAMINJECTION', INDETERMINATE) -adiabaticairwasher = getattr(IfcHumidifierTypeEnum, 'ADIABATICAIRWASHER', INDETERMINATE) -adiabaticpan = getattr(IfcHumidifierTypeEnum, 'ADIABATICPAN', INDETERMINATE) -adiabaticwettedelement = getattr(IfcHumidifierTypeEnum, 'ADIABATICWETTEDELEMENT', INDETERMINATE) -adiabaticatomizing = getattr(IfcHumidifierTypeEnum, 'ADIABATICATOMIZING', INDETERMINATE) -adiabaticultrasonic = getattr(IfcHumidifierTypeEnum, 'ADIABATICULTRASONIC', INDETERMINATE) -adiabaticrigidmedia = getattr(IfcHumidifierTypeEnum, 'ADIABATICRIGIDMEDIA', INDETERMINATE) -adiabaticcompressedairnozzle = getattr(IfcHumidifierTypeEnum, 'ADIABATICCOMPRESSEDAIRNOZZLE', INDETERMINATE) -assistedelectric = getattr(IfcHumidifierTypeEnum, 'ASSISTEDELECTRIC', INDETERMINATE) -assistednaturalgas = getattr(IfcHumidifierTypeEnum, 'ASSISTEDNATURALGAS', INDETERMINATE) -assistedpropane = getattr(IfcHumidifierTypeEnum, 'ASSISTEDPROPANE', INDETERMINATE) -assistedbutane = getattr(IfcHumidifierTypeEnum, 'ASSISTEDBUTANE', INDETERMINATE) -assistedsteam = getattr(IfcHumidifierTypeEnum, 'ASSISTEDSTEAM', INDETERMINATE) -userdefined = getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcHumidifierTypeEnum, 'NOTDEFINED', INDETERMINATE) +steaminjection = IfcHumidifierTypeEnum.STEAMINJECTION +adiabaticairwasher = IfcHumidifierTypeEnum.ADIABATICAIRWASHER +adiabaticpan = IfcHumidifierTypeEnum.ADIABATICPAN +adiabaticwettedelement = IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT +adiabaticatomizing = IfcHumidifierTypeEnum.ADIABATICATOMIZING +adiabaticultrasonic = IfcHumidifierTypeEnum.ADIABATICULTRASONIC +adiabaticrigidmedia = IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA +adiabaticcompressedairnozzle = IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE +assistedelectric = IfcHumidifierTypeEnum.ASSISTEDELECTRIC +assistednaturalgas = IfcHumidifierTypeEnum.ASSISTEDNATURALGAS +assistedpropane = IfcHumidifierTypeEnum.ASSISTEDPROPANE +assistedbutane = IfcHumidifierTypeEnum.ASSISTEDBUTANE +assistedsteam = IfcHumidifierTypeEnum.ASSISTEDSTEAM +userdefined = IfcHumidifierTypeEnum.USERDEFINED +notdefined = IfcHumidifierTypeEnum.NOTDEFINED IfcInterceptorTypeEnum = enum_namespace() -cyclonic = getattr(IfcInterceptorTypeEnum, 'CYCLONIC', INDETERMINATE) -grease = getattr(IfcInterceptorTypeEnum, 'GREASE', INDETERMINATE) -oil = getattr(IfcInterceptorTypeEnum, 'OIL', INDETERMINATE) -petrol = getattr(IfcInterceptorTypeEnum, 'PETROL', INDETERMINATE) -userdefined = getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcInterceptorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cyclonic = IfcInterceptorTypeEnum.CYCLONIC +grease = IfcInterceptorTypeEnum.GREASE +oil = IfcInterceptorTypeEnum.OIL +petrol = IfcInterceptorTypeEnum.PETROL +userdefined = IfcInterceptorTypeEnum.USERDEFINED +notdefined = IfcInterceptorTypeEnum.NOTDEFINED IfcInternalOrExternalEnum = enum_namespace() -internal = getattr(IfcInternalOrExternalEnum, 'INTERNAL', INDETERMINATE) -external = getattr(IfcInternalOrExternalEnum, 'EXTERNAL', INDETERMINATE) -external_earth = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_water = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_WATER', INDETERMINATE) -external_fire = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_FIRE', INDETERMINATE) -notdefined = getattr(IfcInternalOrExternalEnum, 'NOTDEFINED', INDETERMINATE) +internal = IfcInternalOrExternalEnum.INTERNAL +external = IfcInternalOrExternalEnum.EXTERNAL +external_earth = IfcInternalOrExternalEnum.EXTERNAL_EARTH +external_water = IfcInternalOrExternalEnum.EXTERNAL_WATER +external_fire = IfcInternalOrExternalEnum.EXTERNAL_FIRE +notdefined = IfcInternalOrExternalEnum.NOTDEFINED IfcInventoryTypeEnum = enum_namespace() -assetinventory = getattr(IfcInventoryTypeEnum, 'ASSETINVENTORY', INDETERMINATE) -spaceinventory = getattr(IfcInventoryTypeEnum, 'SPACEINVENTORY', INDETERMINATE) -furnitureinventory = getattr(IfcInventoryTypeEnum, 'FURNITUREINVENTORY', INDETERMINATE) -userdefined = getattr(IfcInventoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcInventoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +assetinventory = IfcInventoryTypeEnum.ASSETINVENTORY +spaceinventory = IfcInventoryTypeEnum.SPACEINVENTORY +furnitureinventory = IfcInventoryTypeEnum.FURNITUREINVENTORY +userdefined = IfcInventoryTypeEnum.USERDEFINED +notdefined = IfcInventoryTypeEnum.NOTDEFINED IfcJunctionBoxTypeEnum = enum_namespace() -data = getattr(IfcJunctionBoxTypeEnum, 'DATA', INDETERMINATE) -power = getattr(IfcJunctionBoxTypeEnum, 'POWER', INDETERMINATE) -userdefined = getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcJunctionBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +data = IfcJunctionBoxTypeEnum.DATA +power = IfcJunctionBoxTypeEnum.POWER +userdefined = IfcJunctionBoxTypeEnum.USERDEFINED +notdefined = IfcJunctionBoxTypeEnum.NOTDEFINED IfcKnotType = enum_namespace() -uniform_knots = getattr(IfcKnotType, 'UNIFORM_KNOTS', INDETERMINATE) -quasi_uniform_knots = getattr(IfcKnotType, 'QUASI_UNIFORM_KNOTS', INDETERMINATE) -piecewise_bezier_knots = getattr(IfcKnotType, 'PIECEWISE_BEZIER_KNOTS', INDETERMINATE) -unspecified = getattr(IfcKnotType, 'UNSPECIFIED', INDETERMINATE) +uniform_knots = IfcKnotType.UNIFORM_KNOTS +quasi_uniform_knots = IfcKnotType.QUASI_UNIFORM_KNOTS +piecewise_bezier_knots = IfcKnotType.PIECEWISE_BEZIER_KNOTS +unspecified = IfcKnotType.UNSPECIFIED IfcLaborResourceTypeEnum = enum_namespace() -administration = getattr(IfcLaborResourceTypeEnum, 'ADMINISTRATION', INDETERMINATE) -carpentry = getattr(IfcLaborResourceTypeEnum, 'CARPENTRY', INDETERMINATE) -cleaning = getattr(IfcLaborResourceTypeEnum, 'CLEANING', INDETERMINATE) -concrete = getattr(IfcLaborResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = getattr(IfcLaborResourceTypeEnum, 'DRYWALL', INDETERMINATE) -electric = getattr(IfcLaborResourceTypeEnum, 'ELECTRIC', INDETERMINATE) -finishing = getattr(IfcLaborResourceTypeEnum, 'FINISHING', INDETERMINATE) -flooring = getattr(IfcLaborResourceTypeEnum, 'FLOORING', INDETERMINATE) -general = getattr(IfcLaborResourceTypeEnum, 'GENERAL', INDETERMINATE) -hvac = getattr(IfcLaborResourceTypeEnum, 'HVAC', INDETERMINATE) -landscaping = getattr(IfcLaborResourceTypeEnum, 'LANDSCAPING', INDETERMINATE) -masonry = getattr(IfcLaborResourceTypeEnum, 'MASONRY', INDETERMINATE) -painting = getattr(IfcLaborResourceTypeEnum, 'PAINTING', INDETERMINATE) -paving = getattr(IfcLaborResourceTypeEnum, 'PAVING', INDETERMINATE) -plumbing = getattr(IfcLaborResourceTypeEnum, 'PLUMBING', INDETERMINATE) -roofing = getattr(IfcLaborResourceTypeEnum, 'ROOFING', INDETERMINATE) -sitegrading = getattr(IfcLaborResourceTypeEnum, 'SITEGRADING', INDETERMINATE) -steelwork = getattr(IfcLaborResourceTypeEnum, 'STEELWORK', INDETERMINATE) -surveying = getattr(IfcLaborResourceTypeEnum, 'SURVEYING', INDETERMINATE) -userdefined = getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLaborResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +administration = IfcLaborResourceTypeEnum.ADMINISTRATION +carpentry = IfcLaborResourceTypeEnum.CARPENTRY +cleaning = IfcLaborResourceTypeEnum.CLEANING +concrete = IfcLaborResourceTypeEnum.CONCRETE +drywall = IfcLaborResourceTypeEnum.DRYWALL +electric = IfcLaborResourceTypeEnum.ELECTRIC +finishing = IfcLaborResourceTypeEnum.FINISHING +flooring = IfcLaborResourceTypeEnum.FLOORING +general = IfcLaborResourceTypeEnum.GENERAL +hvac = IfcLaborResourceTypeEnum.HVAC +landscaping = IfcLaborResourceTypeEnum.LANDSCAPING +masonry = IfcLaborResourceTypeEnum.MASONRY +painting = IfcLaborResourceTypeEnum.PAINTING +paving = IfcLaborResourceTypeEnum.PAVING +plumbing = IfcLaborResourceTypeEnum.PLUMBING +roofing = IfcLaborResourceTypeEnum.ROOFING +sitegrading = IfcLaborResourceTypeEnum.SITEGRADING +steelwork = IfcLaborResourceTypeEnum.STEELWORK +surveying = IfcLaborResourceTypeEnum.SURVEYING +userdefined = IfcLaborResourceTypeEnum.USERDEFINED +notdefined = IfcLaborResourceTypeEnum.NOTDEFINED IfcLampTypeEnum = enum_namespace() -compactfluorescent = getattr(IfcLampTypeEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = getattr(IfcLampTypeEnum, 'FLUORESCENT', INDETERMINATE) -halogen = getattr(IfcLampTypeEnum, 'HALOGEN', INDETERMINATE) -highpressuremercury = getattr(IfcLampTypeEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = getattr(IfcLampTypeEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -led = getattr(IfcLampTypeEnum, 'LED', INDETERMINATE) -metalhalide = getattr(IfcLampTypeEnum, 'METALHALIDE', INDETERMINATE) -oled = getattr(IfcLampTypeEnum, 'OLED', INDETERMINATE) -tungstenfilament = getattr(IfcLampTypeEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -userdefined = getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLampTypeEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLampTypeEnum.COMPACTFLUORESCENT +fluorescent = IfcLampTypeEnum.FLUORESCENT +halogen = IfcLampTypeEnum.HALOGEN +highpressuremercury = IfcLampTypeEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLampTypeEnum.HIGHPRESSURESODIUM +led = IfcLampTypeEnum.LED +metalhalide = IfcLampTypeEnum.METALHALIDE +oled = IfcLampTypeEnum.OLED +tungstenfilament = IfcLampTypeEnum.TUNGSTENFILAMENT +userdefined = IfcLampTypeEnum.USERDEFINED +notdefined = IfcLampTypeEnum.NOTDEFINED IfcLayerSetDirectionEnum = enum_namespace() -axis1 = getattr(IfcLayerSetDirectionEnum, 'AXIS1', INDETERMINATE) -axis2 = getattr(IfcLayerSetDirectionEnum, 'AXIS2', INDETERMINATE) -axis3 = getattr(IfcLayerSetDirectionEnum, 'AXIS3', INDETERMINATE) +axis1 = IfcLayerSetDirectionEnum.AXIS1 +axis2 = IfcLayerSetDirectionEnum.AXIS2 +axis3 = IfcLayerSetDirectionEnum.AXIS3 IfcLightDistributionCurveEnum = enum_namespace() -type_a = getattr(IfcLightDistributionCurveEnum, 'TYPE_A', INDETERMINATE) -type_b = getattr(IfcLightDistributionCurveEnum, 'TYPE_B', INDETERMINATE) -type_c = getattr(IfcLightDistributionCurveEnum, 'TYPE_C', INDETERMINATE) -notdefined = getattr(IfcLightDistributionCurveEnum, 'NOTDEFINED', INDETERMINATE) +type_a = IfcLightDistributionCurveEnum.TYPE_A +type_b = IfcLightDistributionCurveEnum.TYPE_B +type_c = IfcLightDistributionCurveEnum.TYPE_C +notdefined = IfcLightDistributionCurveEnum.NOTDEFINED IfcLightEmissionSourceEnum = enum_namespace() -compactfluorescent = getattr(IfcLightEmissionSourceEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = getattr(IfcLightEmissionSourceEnum, 'FLUORESCENT', INDETERMINATE) -highpressuremercury = getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -lightemittingdiode = getattr(IfcLightEmissionSourceEnum, 'LIGHTEMITTINGDIODE', INDETERMINATE) -lowpressuresodium = getattr(IfcLightEmissionSourceEnum, 'LOWPRESSURESODIUM', INDETERMINATE) -lowvoltagehalogen = getattr(IfcLightEmissionSourceEnum, 'LOWVOLTAGEHALOGEN', INDETERMINATE) -mainvoltagehalogen = getattr(IfcLightEmissionSourceEnum, 'MAINVOLTAGEHALOGEN', INDETERMINATE) -metalhalide = getattr(IfcLightEmissionSourceEnum, 'METALHALIDE', INDETERMINATE) -tungstenfilament = getattr(IfcLightEmissionSourceEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -notdefined = getattr(IfcLightEmissionSourceEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLightEmissionSourceEnum.COMPACTFLUORESCENT +fluorescent = IfcLightEmissionSourceEnum.FLUORESCENT +highpressuremercury = IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM +lightemittingdiode = IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE +lowpressuresodium = IfcLightEmissionSourceEnum.LOWPRESSURESODIUM +lowvoltagehalogen = IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN +mainvoltagehalogen = IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN +metalhalide = IfcLightEmissionSourceEnum.METALHALIDE +tungstenfilament = IfcLightEmissionSourceEnum.TUNGSTENFILAMENT +notdefined = IfcLightEmissionSourceEnum.NOTDEFINED IfcLightFixtureTypeEnum = enum_namespace() -pointsource = getattr(IfcLightFixtureTypeEnum, 'POINTSOURCE', INDETERMINATE) -directionsource = getattr(IfcLightFixtureTypeEnum, 'DIRECTIONSOURCE', INDETERMINATE) -securitylighting = getattr(IfcLightFixtureTypeEnum, 'SECURITYLIGHTING', INDETERMINATE) -userdefined = getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLightFixtureTypeEnum, 'NOTDEFINED', INDETERMINATE) +pointsource = IfcLightFixtureTypeEnum.POINTSOURCE +directionsource = IfcLightFixtureTypeEnum.DIRECTIONSOURCE +securitylighting = IfcLightFixtureTypeEnum.SECURITYLIGHTING +userdefined = IfcLightFixtureTypeEnum.USERDEFINED +notdefined = IfcLightFixtureTypeEnum.NOTDEFINED IfcLoadGroupTypeEnum = enum_namespace() -load_group = getattr(IfcLoadGroupTypeEnum, 'LOAD_GROUP', INDETERMINATE) -load_case = getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE) -load_combination = getattr(IfcLoadGroupTypeEnum, 'LOAD_COMBINATION', INDETERMINATE) -userdefined = getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLoadGroupTypeEnum, 'NOTDEFINED', INDETERMINATE) +load_group = IfcLoadGroupTypeEnum.LOAD_GROUP +load_case = IfcLoadGroupTypeEnum.LOAD_CASE +load_combination = IfcLoadGroupTypeEnum.LOAD_COMBINATION +userdefined = IfcLoadGroupTypeEnum.USERDEFINED +notdefined = IfcLoadGroupTypeEnum.NOTDEFINED IfcLogicalOperatorEnum = enum_namespace() -logicaland = getattr(IfcLogicalOperatorEnum, 'LOGICALAND', INDETERMINATE) -logicalor = getattr(IfcLogicalOperatorEnum, 'LOGICALOR', INDETERMINATE) -logicalxor = getattr(IfcLogicalOperatorEnum, 'LOGICALXOR', INDETERMINATE) -logicalnotand = getattr(IfcLogicalOperatorEnum, 'LOGICALNOTAND', INDETERMINATE) -logicalnotor = getattr(IfcLogicalOperatorEnum, 'LOGICALNOTOR', INDETERMINATE) +logicaland = IfcLogicalOperatorEnum.LOGICALAND +logicalor = IfcLogicalOperatorEnum.LOGICALOR +logicalxor = IfcLogicalOperatorEnum.LOGICALXOR +logicalnotand = IfcLogicalOperatorEnum.LOGICALNOTAND +logicalnotor = IfcLogicalOperatorEnum.LOGICALNOTOR IfcMechanicalFastenerTypeEnum = enum_namespace() -anchorbolt = getattr(IfcMechanicalFastenerTypeEnum, 'ANCHORBOLT', INDETERMINATE) -bolt = getattr(IfcMechanicalFastenerTypeEnum, 'BOLT', INDETERMINATE) -dowel = getattr(IfcMechanicalFastenerTypeEnum, 'DOWEL', INDETERMINATE) -nail = getattr(IfcMechanicalFastenerTypeEnum, 'NAIL', INDETERMINATE) -nailplate = getattr(IfcMechanicalFastenerTypeEnum, 'NAILPLATE', INDETERMINATE) -rivet = getattr(IfcMechanicalFastenerTypeEnum, 'RIVET', INDETERMINATE) -screw = getattr(IfcMechanicalFastenerTypeEnum, 'SCREW', INDETERMINATE) -shearconnector = getattr(IfcMechanicalFastenerTypeEnum, 'SHEARCONNECTOR', INDETERMINATE) -staple = getattr(IfcMechanicalFastenerTypeEnum, 'STAPLE', INDETERMINATE) -studshearconnector = getattr(IfcMechanicalFastenerTypeEnum, 'STUDSHEARCONNECTOR', INDETERMINATE) -userdefined = getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMechanicalFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorbolt = IfcMechanicalFastenerTypeEnum.ANCHORBOLT +bolt = IfcMechanicalFastenerTypeEnum.BOLT +dowel = IfcMechanicalFastenerTypeEnum.DOWEL +nail = IfcMechanicalFastenerTypeEnum.NAIL +nailplate = IfcMechanicalFastenerTypeEnum.NAILPLATE +rivet = IfcMechanicalFastenerTypeEnum.RIVET +screw = IfcMechanicalFastenerTypeEnum.SCREW +shearconnector = IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR +staple = IfcMechanicalFastenerTypeEnum.STAPLE +studshearconnector = IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR +userdefined = IfcMechanicalFastenerTypeEnum.USERDEFINED +notdefined = IfcMechanicalFastenerTypeEnum.NOTDEFINED IfcMedicalDeviceTypeEnum = enum_namespace() -airstation = getattr(IfcMedicalDeviceTypeEnum, 'AIRSTATION', INDETERMINATE) -feedairunit = getattr(IfcMedicalDeviceTypeEnum, 'FEEDAIRUNIT', INDETERMINATE) -oxygengenerator = getattr(IfcMedicalDeviceTypeEnum, 'OXYGENGENERATOR', INDETERMINATE) -oxygenplant = getattr(IfcMedicalDeviceTypeEnum, 'OXYGENPLANT', INDETERMINATE) -vacuumstation = getattr(IfcMedicalDeviceTypeEnum, 'VACUUMSTATION', INDETERMINATE) -userdefined = getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMedicalDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +airstation = IfcMedicalDeviceTypeEnum.AIRSTATION +feedairunit = IfcMedicalDeviceTypeEnum.FEEDAIRUNIT +oxygengenerator = IfcMedicalDeviceTypeEnum.OXYGENGENERATOR +oxygenplant = IfcMedicalDeviceTypeEnum.OXYGENPLANT +vacuumstation = IfcMedicalDeviceTypeEnum.VACUUMSTATION +userdefined = IfcMedicalDeviceTypeEnum.USERDEFINED +notdefined = IfcMedicalDeviceTypeEnum.NOTDEFINED IfcMemberTypeEnum = enum_namespace() -brace = getattr(IfcMemberTypeEnum, 'BRACE', INDETERMINATE) -chord = getattr(IfcMemberTypeEnum, 'CHORD', INDETERMINATE) -collar = getattr(IfcMemberTypeEnum, 'COLLAR', INDETERMINATE) -member = getattr(IfcMemberTypeEnum, 'MEMBER', INDETERMINATE) -mullion = getattr(IfcMemberTypeEnum, 'MULLION', INDETERMINATE) -plate = getattr(IfcMemberTypeEnum, 'PLATE', INDETERMINATE) -post = getattr(IfcMemberTypeEnum, 'POST', INDETERMINATE) -purlin = getattr(IfcMemberTypeEnum, 'PURLIN', INDETERMINATE) -rafter = getattr(IfcMemberTypeEnum, 'RAFTER', INDETERMINATE) -stringer = getattr(IfcMemberTypeEnum, 'STRINGER', INDETERMINATE) -strut = getattr(IfcMemberTypeEnum, 'STRUT', INDETERMINATE) -stud = getattr(IfcMemberTypeEnum, 'STUD', INDETERMINATE) -userdefined = getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +brace = IfcMemberTypeEnum.BRACE +chord = IfcMemberTypeEnum.CHORD +collar = IfcMemberTypeEnum.COLLAR +member = IfcMemberTypeEnum.MEMBER +mullion = IfcMemberTypeEnum.MULLION +plate = IfcMemberTypeEnum.PLATE +post = IfcMemberTypeEnum.POST +purlin = IfcMemberTypeEnum.PURLIN +rafter = IfcMemberTypeEnum.RAFTER +stringer = IfcMemberTypeEnum.STRINGER +strut = IfcMemberTypeEnum.STRUT +stud = IfcMemberTypeEnum.STUD +userdefined = IfcMemberTypeEnum.USERDEFINED +notdefined = IfcMemberTypeEnum.NOTDEFINED IfcMotorConnectionTypeEnum = enum_namespace() -beltdrive = getattr(IfcMotorConnectionTypeEnum, 'BELTDRIVE', INDETERMINATE) -coupling = getattr(IfcMotorConnectionTypeEnum, 'COUPLING', INDETERMINATE) -directdrive = getattr(IfcMotorConnectionTypeEnum, 'DIRECTDRIVE', INDETERMINATE) -userdefined = getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMotorConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltdrive = IfcMotorConnectionTypeEnum.BELTDRIVE +coupling = IfcMotorConnectionTypeEnum.COUPLING +directdrive = IfcMotorConnectionTypeEnum.DIRECTDRIVE +userdefined = IfcMotorConnectionTypeEnum.USERDEFINED +notdefined = IfcMotorConnectionTypeEnum.NOTDEFINED IfcNullStyle = enum_namespace() -null = getattr(IfcNullStyle, 'NULL', INDETERMINATE) +null = IfcNullStyle.NULL IfcObjectTypeEnum = enum_namespace() -product = getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE) -process = getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE) -control = getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE) -resource = getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE) -actor = getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE) -group = getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE) -project = getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE) -notdefined = getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE) +product = IfcObjectTypeEnum.PRODUCT +process = IfcObjectTypeEnum.PROCESS +control = IfcObjectTypeEnum.CONTROL +resource = IfcObjectTypeEnum.RESOURCE +actor = IfcObjectTypeEnum.ACTOR +group = IfcObjectTypeEnum.GROUP +project = IfcObjectTypeEnum.PROJECT +notdefined = IfcObjectTypeEnum.NOTDEFINED IfcObjectiveEnum = enum_namespace() -codecompliance = getattr(IfcObjectiveEnum, 'CODECOMPLIANCE', INDETERMINATE) -codewaiver = getattr(IfcObjectiveEnum, 'CODEWAIVER', INDETERMINATE) -designintent = getattr(IfcObjectiveEnum, 'DESIGNINTENT', INDETERMINATE) -external = getattr(IfcObjectiveEnum, 'EXTERNAL', INDETERMINATE) -healthandsafety = getattr(IfcObjectiveEnum, 'HEALTHANDSAFETY', INDETERMINATE) -mergeconflict = getattr(IfcObjectiveEnum, 'MERGECONFLICT', INDETERMINATE) -modelview = getattr(IfcObjectiveEnum, 'MODELVIEW', INDETERMINATE) -parameter = getattr(IfcObjectiveEnum, 'PARAMETER', INDETERMINATE) -requirement = getattr(IfcObjectiveEnum, 'REQUIREMENT', INDETERMINATE) -specification = getattr(IfcObjectiveEnum, 'SPECIFICATION', INDETERMINATE) -triggercondition = getattr(IfcObjectiveEnum, 'TRIGGERCONDITION', INDETERMINATE) -userdefined = getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcObjectiveEnum, 'NOTDEFINED', INDETERMINATE) +codecompliance = IfcObjectiveEnum.CODECOMPLIANCE +codewaiver = IfcObjectiveEnum.CODEWAIVER +designintent = IfcObjectiveEnum.DESIGNINTENT +external = IfcObjectiveEnum.EXTERNAL +healthandsafety = IfcObjectiveEnum.HEALTHANDSAFETY +mergeconflict = IfcObjectiveEnum.MERGECONFLICT +modelview = IfcObjectiveEnum.MODELVIEW +parameter = IfcObjectiveEnum.PARAMETER +requirement = IfcObjectiveEnum.REQUIREMENT +specification = IfcObjectiveEnum.SPECIFICATION +triggercondition = IfcObjectiveEnum.TRIGGERCONDITION +userdefined = IfcObjectiveEnum.USERDEFINED +notdefined = IfcObjectiveEnum.NOTDEFINED IfcOccupantTypeEnum = enum_namespace() -assignee = getattr(IfcOccupantTypeEnum, 'ASSIGNEE', INDETERMINATE) -assignor = getattr(IfcOccupantTypeEnum, 'ASSIGNOR', INDETERMINATE) -lessee = getattr(IfcOccupantTypeEnum, 'LESSEE', INDETERMINATE) -lessor = getattr(IfcOccupantTypeEnum, 'LESSOR', INDETERMINATE) -lettingagent = getattr(IfcOccupantTypeEnum, 'LETTINGAGENT', INDETERMINATE) -owner = getattr(IfcOccupantTypeEnum, 'OWNER', INDETERMINATE) -tenant = getattr(IfcOccupantTypeEnum, 'TENANT', INDETERMINATE) -userdefined = getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOccupantTypeEnum, 'NOTDEFINED', INDETERMINATE) +assignee = IfcOccupantTypeEnum.ASSIGNEE +assignor = IfcOccupantTypeEnum.ASSIGNOR +lessee = IfcOccupantTypeEnum.LESSEE +lessor = IfcOccupantTypeEnum.LESSOR +lettingagent = IfcOccupantTypeEnum.LETTINGAGENT +owner = IfcOccupantTypeEnum.OWNER +tenant = IfcOccupantTypeEnum.TENANT +userdefined = IfcOccupantTypeEnum.USERDEFINED +notdefined = IfcOccupantTypeEnum.NOTDEFINED IfcOpeningElementTypeEnum = enum_namespace() -opening = getattr(IfcOpeningElementTypeEnum, 'OPENING', INDETERMINATE) -recess = getattr(IfcOpeningElementTypeEnum, 'RECESS', INDETERMINATE) -userdefined = getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOpeningElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +opening = IfcOpeningElementTypeEnum.OPENING +recess = IfcOpeningElementTypeEnum.RECESS +userdefined = IfcOpeningElementTypeEnum.USERDEFINED +notdefined = IfcOpeningElementTypeEnum.NOTDEFINED IfcOutletTypeEnum = enum_namespace() -audiovisualoutlet = getattr(IfcOutletTypeEnum, 'AUDIOVISUALOUTLET', INDETERMINATE) -communicationsoutlet = getattr(IfcOutletTypeEnum, 'COMMUNICATIONSOUTLET', INDETERMINATE) -poweroutlet = getattr(IfcOutletTypeEnum, 'POWEROUTLET', INDETERMINATE) -dataoutlet = getattr(IfcOutletTypeEnum, 'DATAOUTLET', INDETERMINATE) -telephoneoutlet = getattr(IfcOutletTypeEnum, 'TELEPHONEOUTLET', INDETERMINATE) -userdefined = getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOutletTypeEnum, 'NOTDEFINED', INDETERMINATE) +audiovisualoutlet = IfcOutletTypeEnum.AUDIOVISUALOUTLET +communicationsoutlet = IfcOutletTypeEnum.COMMUNICATIONSOUTLET +poweroutlet = IfcOutletTypeEnum.POWEROUTLET +dataoutlet = IfcOutletTypeEnum.DATAOUTLET +telephoneoutlet = IfcOutletTypeEnum.TELEPHONEOUTLET +userdefined = IfcOutletTypeEnum.USERDEFINED +notdefined = IfcOutletTypeEnum.NOTDEFINED IfcPerformanceHistoryTypeEnum = enum_namespace() -userdefined = getattr(IfcPerformanceHistoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPerformanceHistoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcPerformanceHistoryTypeEnum.USERDEFINED +notdefined = IfcPerformanceHistoryTypeEnum.NOTDEFINED IfcPermeableCoveringOperationEnum = enum_namespace() -grill = getattr(IfcPermeableCoveringOperationEnum, 'GRILL', INDETERMINATE) -louver = getattr(IfcPermeableCoveringOperationEnum, 'LOUVER', INDETERMINATE) -screen = getattr(IfcPermeableCoveringOperationEnum, 'SCREEN', INDETERMINATE) -userdefined = getattr(IfcPermeableCoveringOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPermeableCoveringOperationEnum, 'NOTDEFINED', INDETERMINATE) +grill = IfcPermeableCoveringOperationEnum.GRILL +louver = IfcPermeableCoveringOperationEnum.LOUVER +screen = IfcPermeableCoveringOperationEnum.SCREEN +userdefined = IfcPermeableCoveringOperationEnum.USERDEFINED +notdefined = IfcPermeableCoveringOperationEnum.NOTDEFINED IfcPermitTypeEnum = enum_namespace() -access = getattr(IfcPermitTypeEnum, 'ACCESS', INDETERMINATE) -building = getattr(IfcPermitTypeEnum, 'BUILDING', INDETERMINATE) -work = getattr(IfcPermitTypeEnum, 'WORK', INDETERMINATE) -userdefined = getattr(IfcPermitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPermitTypeEnum, 'NOTDEFINED', INDETERMINATE) +access = IfcPermitTypeEnum.ACCESS +building = IfcPermitTypeEnum.BUILDING +work = IfcPermitTypeEnum.WORK +userdefined = IfcPermitTypeEnum.USERDEFINED +notdefined = IfcPermitTypeEnum.NOTDEFINED IfcPhysicalOrVirtualEnum = enum_namespace() -physical = getattr(IfcPhysicalOrVirtualEnum, 'PHYSICAL', INDETERMINATE) -virtual = getattr(IfcPhysicalOrVirtualEnum, 'VIRTUAL', INDETERMINATE) -notdefined = getattr(IfcPhysicalOrVirtualEnum, 'NOTDEFINED', INDETERMINATE) +physical = IfcPhysicalOrVirtualEnum.PHYSICAL +virtual = IfcPhysicalOrVirtualEnum.VIRTUAL +notdefined = IfcPhysicalOrVirtualEnum.NOTDEFINED IfcPileConstructionEnum = enum_namespace() -cast_in_place = getattr(IfcPileConstructionEnum, 'CAST_IN_PLACE', INDETERMINATE) -composite = getattr(IfcPileConstructionEnum, 'COMPOSITE', INDETERMINATE) -precast_concrete = getattr(IfcPileConstructionEnum, 'PRECAST_CONCRETE', INDETERMINATE) -prefab_steel = getattr(IfcPileConstructionEnum, 'PREFAB_STEEL', INDETERMINATE) -userdefined = getattr(IfcPileConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPileConstructionEnum, 'NOTDEFINED', INDETERMINATE) +cast_in_place = IfcPileConstructionEnum.CAST_IN_PLACE +composite = IfcPileConstructionEnum.COMPOSITE +precast_concrete = IfcPileConstructionEnum.PRECAST_CONCRETE +prefab_steel = IfcPileConstructionEnum.PREFAB_STEEL +userdefined = IfcPileConstructionEnum.USERDEFINED +notdefined = IfcPileConstructionEnum.NOTDEFINED IfcPileTypeEnum = enum_namespace() -bored = getattr(IfcPileTypeEnum, 'BORED', INDETERMINATE) -driven = getattr(IfcPileTypeEnum, 'DRIVEN', INDETERMINATE) -jetgrouting = getattr(IfcPileTypeEnum, 'JETGROUTING', INDETERMINATE) -cohesion = getattr(IfcPileTypeEnum, 'COHESION', INDETERMINATE) -friction = getattr(IfcPileTypeEnum, 'FRICTION', INDETERMINATE) -support = getattr(IfcPileTypeEnum, 'SUPPORT', INDETERMINATE) -userdefined = getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPileTypeEnum, 'NOTDEFINED', INDETERMINATE) +bored = IfcPileTypeEnum.BORED +driven = IfcPileTypeEnum.DRIVEN +jetgrouting = IfcPileTypeEnum.JETGROUTING +cohesion = IfcPileTypeEnum.COHESION +friction = IfcPileTypeEnum.FRICTION +support = IfcPileTypeEnum.SUPPORT +userdefined = IfcPileTypeEnum.USERDEFINED +notdefined = IfcPileTypeEnum.NOTDEFINED IfcPipeFittingTypeEnum = enum_namespace() -bend = getattr(IfcPipeFittingTypeEnum, 'BEND', INDETERMINATE) -connector = getattr(IfcPipeFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcPipeFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcPipeFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcPipeFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = getattr(IfcPipeFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = getattr(IfcPipeFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPipeFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcPipeFittingTypeEnum.BEND +connector = IfcPipeFittingTypeEnum.CONNECTOR +entry = IfcPipeFittingTypeEnum.ENTRY +exit = IfcPipeFittingTypeEnum.EXIT +junction = IfcPipeFittingTypeEnum.JUNCTION +obstruction = IfcPipeFittingTypeEnum.OBSTRUCTION +transition = IfcPipeFittingTypeEnum.TRANSITION +userdefined = IfcPipeFittingTypeEnum.USERDEFINED +notdefined = IfcPipeFittingTypeEnum.NOTDEFINED IfcPipeSegmentTypeEnum = enum_namespace() -culvert = getattr(IfcPipeSegmentTypeEnum, 'CULVERT', INDETERMINATE) -flexiblesegment = getattr(IfcPipeSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -rigidsegment = getattr(IfcPipeSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -gutter = getattr(IfcPipeSegmentTypeEnum, 'GUTTER', INDETERMINATE) -spool = getattr(IfcPipeSegmentTypeEnum, 'SPOOL', INDETERMINATE) -userdefined = getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPipeSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +culvert = IfcPipeSegmentTypeEnum.CULVERT +flexiblesegment = IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT +rigidsegment = IfcPipeSegmentTypeEnum.RIGIDSEGMENT +gutter = IfcPipeSegmentTypeEnum.GUTTER +spool = IfcPipeSegmentTypeEnum.SPOOL +userdefined = IfcPipeSegmentTypeEnum.USERDEFINED +notdefined = IfcPipeSegmentTypeEnum.NOTDEFINED IfcPlateTypeEnum = enum_namespace() -curtain_panel = getattr(IfcPlateTypeEnum, 'CURTAIN_PANEL', INDETERMINATE) -sheet = getattr(IfcPlateTypeEnum, 'SHEET', INDETERMINATE) -userdefined = getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPlateTypeEnum, 'NOTDEFINED', INDETERMINATE) +curtain_panel = IfcPlateTypeEnum.CURTAIN_PANEL +sheet = IfcPlateTypeEnum.SHEET +userdefined = IfcPlateTypeEnum.USERDEFINED +notdefined = IfcPlateTypeEnum.NOTDEFINED IfcPreferredSurfaceCurveRepresentation = enum_namespace() -curve3d = getattr(IfcPreferredSurfaceCurveRepresentation, 'CURVE3D', INDETERMINATE) -pcurve_s1 = getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S1', INDETERMINATE) -pcurve_s2 = getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S2', INDETERMINATE) +curve3d = IfcPreferredSurfaceCurveRepresentation.CURVE3D +pcurve_s1 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 +pcurve_s2 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 IfcProcedureTypeEnum = enum_namespace() -advice_caution = getattr(IfcProcedureTypeEnum, 'ADVICE_CAUTION', INDETERMINATE) -advice_note = getattr(IfcProcedureTypeEnum, 'ADVICE_NOTE', INDETERMINATE) -advice_warning = getattr(IfcProcedureTypeEnum, 'ADVICE_WARNING', INDETERMINATE) -calibration = getattr(IfcProcedureTypeEnum, 'CALIBRATION', INDETERMINATE) -diagnostic = getattr(IfcProcedureTypeEnum, 'DIAGNOSTIC', INDETERMINATE) -shutdown = getattr(IfcProcedureTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = getattr(IfcProcedureTypeEnum, 'STARTUP', INDETERMINATE) -userdefined = getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProcedureTypeEnum, 'NOTDEFINED', INDETERMINATE) +advice_caution = IfcProcedureTypeEnum.ADVICE_CAUTION +advice_note = IfcProcedureTypeEnum.ADVICE_NOTE +advice_warning = IfcProcedureTypeEnum.ADVICE_WARNING +calibration = IfcProcedureTypeEnum.CALIBRATION +diagnostic = IfcProcedureTypeEnum.DIAGNOSTIC +shutdown = IfcProcedureTypeEnum.SHUTDOWN +startup = IfcProcedureTypeEnum.STARTUP +userdefined = IfcProcedureTypeEnum.USERDEFINED +notdefined = IfcProcedureTypeEnum.NOTDEFINED IfcProfileTypeEnum = enum_namespace() -curve = getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE) -area = getattr(IfcProfileTypeEnum, 'AREA', INDETERMINATE) +curve = IfcProfileTypeEnum.CURVE +area = IfcProfileTypeEnum.AREA IfcProjectOrderTypeEnum = enum_namespace() -changeorder = getattr(IfcProjectOrderTypeEnum, 'CHANGEORDER', INDETERMINATE) -maintenanceworkorder = getattr(IfcProjectOrderTypeEnum, 'MAINTENANCEWORKORDER', INDETERMINATE) -moveorder = getattr(IfcProjectOrderTypeEnum, 'MOVEORDER', INDETERMINATE) -purchaseorder = getattr(IfcProjectOrderTypeEnum, 'PURCHASEORDER', INDETERMINATE) -workorder = getattr(IfcProjectOrderTypeEnum, 'WORKORDER', INDETERMINATE) -userdefined = getattr(IfcProjectOrderTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProjectOrderTypeEnum, 'NOTDEFINED', INDETERMINATE) +changeorder = IfcProjectOrderTypeEnum.CHANGEORDER +maintenanceworkorder = IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER +moveorder = IfcProjectOrderTypeEnum.MOVEORDER +purchaseorder = IfcProjectOrderTypeEnum.PURCHASEORDER +workorder = IfcProjectOrderTypeEnum.WORKORDER +userdefined = IfcProjectOrderTypeEnum.USERDEFINED +notdefined = IfcProjectOrderTypeEnum.NOTDEFINED IfcProjectedOrTrueLengthEnum = enum_namespace() -projected_length = getattr(IfcProjectedOrTrueLengthEnum, 'PROJECTED_LENGTH', INDETERMINATE) -true_length = getattr(IfcProjectedOrTrueLengthEnum, 'TRUE_LENGTH', INDETERMINATE) +projected_length = IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH +true_length = IfcProjectedOrTrueLengthEnum.TRUE_LENGTH IfcProjectionElementTypeEnum = enum_namespace() -userdefined = getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProjectionElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcProjectionElementTypeEnum.USERDEFINED +notdefined = IfcProjectionElementTypeEnum.NOTDEFINED IfcPropertySetTemplateTypeEnum = enum_namespace() -pset_typedrivenonly = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENONLY', INDETERMINATE) -pset_typedrivenoverride = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENOVERRIDE', INDETERMINATE) -pset_occurrencedriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_OCCURRENCEDRIVEN', INDETERMINATE) -pset_performancedriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PERFORMANCEDRIVEN', INDETERMINATE) -qto_typedrivenonly = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENONLY', INDETERMINATE) -qto_typedrivenoverride = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENOVERRIDE', INDETERMINATE) -qto_occurrencedriven = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_OCCURRENCEDRIVEN', INDETERMINATE) -notdefined = getattr(IfcPropertySetTemplateTypeEnum, 'NOTDEFINED', INDETERMINATE) +pset_typedrivenonly = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY +pset_typedrivenoverride = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE +pset_occurrencedriven = IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN +pset_performancedriven = IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN +qto_typedrivenonly = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY +qto_typedrivenoverride = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE +qto_occurrencedriven = IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN +notdefined = IfcPropertySetTemplateTypeEnum.NOTDEFINED IfcProtectiveDeviceTrippingUnitTypeEnum = enum_namespace() -electronic = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTRONIC', INDETERMINATE) -electromagnetic = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTROMAGNETIC', INDETERMINATE) -residualcurrent = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'RESIDUALCURRENT', INDETERMINATE) -thermal = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'THERMAL', INDETERMINATE) -userdefined = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC +electromagnetic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC +residualcurrent = IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT +thermal = IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL +userdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED IfcProtectiveDeviceTypeEnum = enum_namespace() -circuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'CIRCUITBREAKER', INDETERMINATE) -earthleakagecircuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'EARTHLEAKAGECIRCUITBREAKER', INDETERMINATE) -earthingswitch = getattr(IfcProtectiveDeviceTypeEnum, 'EARTHINGSWITCH', INDETERMINATE) -fusedisconnector = getattr(IfcProtectiveDeviceTypeEnum, 'FUSEDISCONNECTOR', INDETERMINATE) -residualcurrentcircuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTCIRCUITBREAKER', INDETERMINATE) -residualcurrentswitch = getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTSWITCH', INDETERMINATE) -varistor = getattr(IfcProtectiveDeviceTypeEnum, 'VARISTOR', INDETERMINATE) -userdefined = getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProtectiveDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +circuitbreaker = IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER +earthleakagecircuitbreaker = IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER +earthingswitch = IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH +fusedisconnector = IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR +residualcurrentcircuitbreaker = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER +residualcurrentswitch = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH +varistor = IfcProtectiveDeviceTypeEnum.VARISTOR +userdefined = IfcProtectiveDeviceTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTypeEnum.NOTDEFINED IfcPumpTypeEnum = enum_namespace() -circulator = getattr(IfcPumpTypeEnum, 'CIRCULATOR', INDETERMINATE) -endsuction = getattr(IfcPumpTypeEnum, 'ENDSUCTION', INDETERMINATE) -splitcase = getattr(IfcPumpTypeEnum, 'SPLITCASE', INDETERMINATE) -submersiblepump = getattr(IfcPumpTypeEnum, 'SUBMERSIBLEPUMP', INDETERMINATE) -sumppump = getattr(IfcPumpTypeEnum, 'SUMPPUMP', INDETERMINATE) -verticalinline = getattr(IfcPumpTypeEnum, 'VERTICALINLINE', INDETERMINATE) -verticalturbine = getattr(IfcPumpTypeEnum, 'VERTICALTURBINE', INDETERMINATE) -userdefined = getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPumpTypeEnum, 'NOTDEFINED', INDETERMINATE) +circulator = IfcPumpTypeEnum.CIRCULATOR +endsuction = IfcPumpTypeEnum.ENDSUCTION +splitcase = IfcPumpTypeEnum.SPLITCASE +submersiblepump = IfcPumpTypeEnum.SUBMERSIBLEPUMP +sumppump = IfcPumpTypeEnum.SUMPPUMP +verticalinline = IfcPumpTypeEnum.VERTICALINLINE +verticalturbine = IfcPumpTypeEnum.VERTICALTURBINE +userdefined = IfcPumpTypeEnum.USERDEFINED +notdefined = IfcPumpTypeEnum.NOTDEFINED IfcRailingTypeEnum = enum_namespace() -handrail = getattr(IfcRailingTypeEnum, 'HANDRAIL', INDETERMINATE) -guardrail = getattr(IfcRailingTypeEnum, 'GUARDRAIL', INDETERMINATE) -balustrade = getattr(IfcRailingTypeEnum, 'BALUSTRADE', INDETERMINATE) -userdefined = getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailingTypeEnum, 'NOTDEFINED', INDETERMINATE) +handrail = IfcRailingTypeEnum.HANDRAIL +guardrail = IfcRailingTypeEnum.GUARDRAIL +balustrade = IfcRailingTypeEnum.BALUSTRADE +userdefined = IfcRailingTypeEnum.USERDEFINED +notdefined = IfcRailingTypeEnum.NOTDEFINED IfcRampFlightTypeEnum = enum_namespace() -straight = getattr(IfcRampFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -spiral = getattr(IfcRampFlightTypeEnum, 'SPIRAL', INDETERMINATE) -userdefined = getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRampFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcRampFlightTypeEnum.STRAIGHT +spiral = IfcRampFlightTypeEnum.SPIRAL +userdefined = IfcRampFlightTypeEnum.USERDEFINED +notdefined = IfcRampFlightTypeEnum.NOTDEFINED IfcRampTypeEnum = enum_namespace() -straight_run_ramp = getattr(IfcRampTypeEnum, 'STRAIGHT_RUN_RAMP', INDETERMINATE) -two_straight_run_ramp = getattr(IfcRampTypeEnum, 'TWO_STRAIGHT_RUN_RAMP', INDETERMINATE) -quarter_turn_ramp = getattr(IfcRampTypeEnum, 'QUARTER_TURN_RAMP', INDETERMINATE) -two_quarter_turn_ramp = getattr(IfcRampTypeEnum, 'TWO_QUARTER_TURN_RAMP', INDETERMINATE) -half_turn_ramp = getattr(IfcRampTypeEnum, 'HALF_TURN_RAMP', INDETERMINATE) -spiral_ramp = getattr(IfcRampTypeEnum, 'SPIRAL_RAMP', INDETERMINATE) -userdefined = getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRampTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_ramp = IfcRampTypeEnum.STRAIGHT_RUN_RAMP +two_straight_run_ramp = IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP +quarter_turn_ramp = IfcRampTypeEnum.QUARTER_TURN_RAMP +two_quarter_turn_ramp = IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP +half_turn_ramp = IfcRampTypeEnum.HALF_TURN_RAMP +spiral_ramp = IfcRampTypeEnum.SPIRAL_RAMP +userdefined = IfcRampTypeEnum.USERDEFINED +notdefined = IfcRampTypeEnum.NOTDEFINED IfcRecurrenceTypeEnum = enum_namespace() -daily = getattr(IfcRecurrenceTypeEnum, 'DAILY', INDETERMINATE) -weekly = getattr(IfcRecurrenceTypeEnum, 'WEEKLY', INDETERMINATE) -monthly_by_day_of_month = getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_DAY_OF_MONTH', INDETERMINATE) -monthly_by_position = getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_POSITION', INDETERMINATE) -by_day_count = getattr(IfcRecurrenceTypeEnum, 'BY_DAY_COUNT', INDETERMINATE) -by_weekday_count = getattr(IfcRecurrenceTypeEnum, 'BY_WEEKDAY_COUNT', INDETERMINATE) -yearly_by_day_of_month = getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_DAY_OF_MONTH', INDETERMINATE) -yearly_by_position = getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_POSITION', INDETERMINATE) +daily = IfcRecurrenceTypeEnum.DAILY +weekly = IfcRecurrenceTypeEnum.WEEKLY +monthly_by_day_of_month = IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH +monthly_by_position = IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION +by_day_count = IfcRecurrenceTypeEnum.BY_DAY_COUNT +by_weekday_count = IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT +yearly_by_day_of_month = IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH +yearly_by_position = IfcRecurrenceTypeEnum.YEARLY_BY_POSITION IfcReferentTypeEnum = enum_namespace() -kilopoint = getattr(IfcReferentTypeEnum, 'KILOPOINT', INDETERMINATE) -milepoint = getattr(IfcReferentTypeEnum, 'MILEPOINT', INDETERMINATE) -station = getattr(IfcReferentTypeEnum, 'STATION', INDETERMINATE) -userdefined = getattr(IfcReferentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReferentTypeEnum, 'NOTDEFINED', INDETERMINATE) +kilopoint = IfcReferentTypeEnum.KILOPOINT +milepoint = IfcReferentTypeEnum.MILEPOINT +station = IfcReferentTypeEnum.STATION +userdefined = IfcReferentTypeEnum.USERDEFINED +notdefined = IfcReferentTypeEnum.NOTDEFINED IfcReflectanceMethodEnum = enum_namespace() -blinn = getattr(IfcReflectanceMethodEnum, 'BLINN', INDETERMINATE) -flat = getattr(IfcReflectanceMethodEnum, 'FLAT', INDETERMINATE) -glass = getattr(IfcReflectanceMethodEnum, 'GLASS', INDETERMINATE) -matt = getattr(IfcReflectanceMethodEnum, 'MATT', INDETERMINATE) -metal = getattr(IfcReflectanceMethodEnum, 'METAL', INDETERMINATE) -mirror = getattr(IfcReflectanceMethodEnum, 'MIRROR', INDETERMINATE) -phong = getattr(IfcReflectanceMethodEnum, 'PHONG', INDETERMINATE) -plastic = getattr(IfcReflectanceMethodEnum, 'PLASTIC', INDETERMINATE) -strauss = getattr(IfcReflectanceMethodEnum, 'STRAUSS', INDETERMINATE) -notdefined = getattr(IfcReflectanceMethodEnum, 'NOTDEFINED', INDETERMINATE) +blinn = IfcReflectanceMethodEnum.BLINN +flat = IfcReflectanceMethodEnum.FLAT +glass = IfcReflectanceMethodEnum.GLASS +matt = IfcReflectanceMethodEnum.MATT +metal = IfcReflectanceMethodEnum.METAL +mirror = IfcReflectanceMethodEnum.MIRROR +phong = IfcReflectanceMethodEnum.PHONG +plastic = IfcReflectanceMethodEnum.PLASTIC +strauss = IfcReflectanceMethodEnum.STRAUSS +notdefined = IfcReflectanceMethodEnum.NOTDEFINED IfcReinforcingBarRoleEnum = enum_namespace() -main = getattr(IfcReinforcingBarRoleEnum, 'MAIN', INDETERMINATE) -shear = getattr(IfcReinforcingBarRoleEnum, 'SHEAR', INDETERMINATE) -ligature = getattr(IfcReinforcingBarRoleEnum, 'LIGATURE', INDETERMINATE) -stud = getattr(IfcReinforcingBarRoleEnum, 'STUD', INDETERMINATE) -punching = getattr(IfcReinforcingBarRoleEnum, 'PUNCHING', INDETERMINATE) -edge = getattr(IfcReinforcingBarRoleEnum, 'EDGE', INDETERMINATE) -ring = getattr(IfcReinforcingBarRoleEnum, 'RING', INDETERMINATE) -anchoring = getattr(IfcReinforcingBarRoleEnum, 'ANCHORING', INDETERMINATE) -userdefined = getattr(IfcReinforcingBarRoleEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingBarRoleEnum, 'NOTDEFINED', INDETERMINATE) +main = IfcReinforcingBarRoleEnum.MAIN +shear = IfcReinforcingBarRoleEnum.SHEAR +ligature = IfcReinforcingBarRoleEnum.LIGATURE +stud = IfcReinforcingBarRoleEnum.STUD +punching = IfcReinforcingBarRoleEnum.PUNCHING +edge = IfcReinforcingBarRoleEnum.EDGE +ring = IfcReinforcingBarRoleEnum.RING +anchoring = IfcReinforcingBarRoleEnum.ANCHORING +userdefined = IfcReinforcingBarRoleEnum.USERDEFINED +notdefined = IfcReinforcingBarRoleEnum.NOTDEFINED IfcReinforcingBarSurfaceEnum = enum_namespace() -plain = getattr(IfcReinforcingBarSurfaceEnum, 'PLAIN', INDETERMINATE) -textured = getattr(IfcReinforcingBarSurfaceEnum, 'TEXTURED', INDETERMINATE) +plain = IfcReinforcingBarSurfaceEnum.PLAIN +textured = IfcReinforcingBarSurfaceEnum.TEXTURED IfcReinforcingBarTypeEnum = enum_namespace() -anchoring = getattr(IfcReinforcingBarTypeEnum, 'ANCHORING', INDETERMINATE) -edge = getattr(IfcReinforcingBarTypeEnum, 'EDGE', INDETERMINATE) -ligature = getattr(IfcReinforcingBarTypeEnum, 'LIGATURE', INDETERMINATE) -main = getattr(IfcReinforcingBarTypeEnum, 'MAIN', INDETERMINATE) -punching = getattr(IfcReinforcingBarTypeEnum, 'PUNCHING', INDETERMINATE) -ring = getattr(IfcReinforcingBarTypeEnum, 'RING', INDETERMINATE) -shear = getattr(IfcReinforcingBarTypeEnum, 'SHEAR', INDETERMINATE) -stud = getattr(IfcReinforcingBarTypeEnum, 'STUD', INDETERMINATE) -userdefined = getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingBarTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarTypeEnum.ANCHORING +edge = IfcReinforcingBarTypeEnum.EDGE +ligature = IfcReinforcingBarTypeEnum.LIGATURE +main = IfcReinforcingBarTypeEnum.MAIN +punching = IfcReinforcingBarTypeEnum.PUNCHING +ring = IfcReinforcingBarTypeEnum.RING +shear = IfcReinforcingBarTypeEnum.SHEAR +stud = IfcReinforcingBarTypeEnum.STUD +userdefined = IfcReinforcingBarTypeEnum.USERDEFINED +notdefined = IfcReinforcingBarTypeEnum.NOTDEFINED IfcReinforcingMeshTypeEnum = enum_namespace() -userdefined = getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingMeshTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcReinforcingMeshTypeEnum.USERDEFINED +notdefined = IfcReinforcingMeshTypeEnum.NOTDEFINED IfcRoleEnum = enum_namespace() -supplier = getattr(IfcRoleEnum, 'SUPPLIER', INDETERMINATE) -manufacturer = getattr(IfcRoleEnum, 'MANUFACTURER', INDETERMINATE) -contractor = getattr(IfcRoleEnum, 'CONTRACTOR', INDETERMINATE) -subcontractor = getattr(IfcRoleEnum, 'SUBCONTRACTOR', INDETERMINATE) -architect = getattr(IfcRoleEnum, 'ARCHITECT', INDETERMINATE) -structuralengineer = getattr(IfcRoleEnum, 'STRUCTURALENGINEER', INDETERMINATE) -costengineer = getattr(IfcRoleEnum, 'COSTENGINEER', INDETERMINATE) -client = getattr(IfcRoleEnum, 'CLIENT', INDETERMINATE) -buildingowner = getattr(IfcRoleEnum, 'BUILDINGOWNER', INDETERMINATE) -buildingoperator = getattr(IfcRoleEnum, 'BUILDINGOPERATOR', INDETERMINATE) -mechanicalengineer = getattr(IfcRoleEnum, 'MECHANICALENGINEER', INDETERMINATE) -electricalengineer = getattr(IfcRoleEnum, 'ELECTRICALENGINEER', INDETERMINATE) -projectmanager = getattr(IfcRoleEnum, 'PROJECTMANAGER', INDETERMINATE) -facilitiesmanager = getattr(IfcRoleEnum, 'FACILITIESMANAGER', INDETERMINATE) -civilengineer = getattr(IfcRoleEnum, 'CIVILENGINEER', INDETERMINATE) -commissioningengineer = getattr(IfcRoleEnum, 'COMMISSIONINGENGINEER', INDETERMINATE) -engineer = getattr(IfcRoleEnum, 'ENGINEER', INDETERMINATE) -owner = getattr(IfcRoleEnum, 'OWNER', INDETERMINATE) -consultant = getattr(IfcRoleEnum, 'CONSULTANT', INDETERMINATE) -constructionmanager = getattr(IfcRoleEnum, 'CONSTRUCTIONMANAGER', INDETERMINATE) -fieldconstructionmanager = getattr(IfcRoleEnum, 'FIELDCONSTRUCTIONMANAGER', INDETERMINATE) -reseller = getattr(IfcRoleEnum, 'RESELLER', INDETERMINATE) -userdefined = getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) +supplier = IfcRoleEnum.SUPPLIER +manufacturer = IfcRoleEnum.MANUFACTURER +contractor = IfcRoleEnum.CONTRACTOR +subcontractor = IfcRoleEnum.SUBCONTRACTOR +architect = IfcRoleEnum.ARCHITECT +structuralengineer = IfcRoleEnum.STRUCTURALENGINEER +costengineer = IfcRoleEnum.COSTENGINEER +client = IfcRoleEnum.CLIENT +buildingowner = IfcRoleEnum.BUILDINGOWNER +buildingoperator = IfcRoleEnum.BUILDINGOPERATOR +mechanicalengineer = IfcRoleEnum.MECHANICALENGINEER +electricalengineer = IfcRoleEnum.ELECTRICALENGINEER +projectmanager = IfcRoleEnum.PROJECTMANAGER +facilitiesmanager = IfcRoleEnum.FACILITIESMANAGER +civilengineer = IfcRoleEnum.CIVILENGINEER +commissioningengineer = IfcRoleEnum.COMMISSIONINGENGINEER +engineer = IfcRoleEnum.ENGINEER +owner = IfcRoleEnum.OWNER +consultant = IfcRoleEnum.CONSULTANT +constructionmanager = IfcRoleEnum.CONSTRUCTIONMANAGER +fieldconstructionmanager = IfcRoleEnum.FIELDCONSTRUCTIONMANAGER +reseller = IfcRoleEnum.RESELLER +userdefined = IfcRoleEnum.USERDEFINED IfcRoofTypeEnum = enum_namespace() -flat_roof = getattr(IfcRoofTypeEnum, 'FLAT_ROOF', INDETERMINATE) -shed_roof = getattr(IfcRoofTypeEnum, 'SHED_ROOF', INDETERMINATE) -gable_roof = getattr(IfcRoofTypeEnum, 'GABLE_ROOF', INDETERMINATE) -hip_roof = getattr(IfcRoofTypeEnum, 'HIP_ROOF', INDETERMINATE) -hipped_gable_roof = getattr(IfcRoofTypeEnum, 'HIPPED_GABLE_ROOF', INDETERMINATE) -gambrel_roof = getattr(IfcRoofTypeEnum, 'GAMBREL_ROOF', INDETERMINATE) -mansard_roof = getattr(IfcRoofTypeEnum, 'MANSARD_ROOF', INDETERMINATE) -barrel_roof = getattr(IfcRoofTypeEnum, 'BARREL_ROOF', INDETERMINATE) -rainbow_roof = getattr(IfcRoofTypeEnum, 'RAINBOW_ROOF', INDETERMINATE) -butterfly_roof = getattr(IfcRoofTypeEnum, 'BUTTERFLY_ROOF', INDETERMINATE) -pavilion_roof = getattr(IfcRoofTypeEnum, 'PAVILION_ROOF', INDETERMINATE) -dome_roof = getattr(IfcRoofTypeEnum, 'DOME_ROOF', INDETERMINATE) -freeform = getattr(IfcRoofTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRoofTypeEnum, 'NOTDEFINED', INDETERMINATE) +flat_roof = IfcRoofTypeEnum.FLAT_ROOF +shed_roof = IfcRoofTypeEnum.SHED_ROOF +gable_roof = IfcRoofTypeEnum.GABLE_ROOF +hip_roof = IfcRoofTypeEnum.HIP_ROOF +hipped_gable_roof = IfcRoofTypeEnum.HIPPED_GABLE_ROOF +gambrel_roof = IfcRoofTypeEnum.GAMBREL_ROOF +mansard_roof = IfcRoofTypeEnum.MANSARD_ROOF +barrel_roof = IfcRoofTypeEnum.BARREL_ROOF +rainbow_roof = IfcRoofTypeEnum.RAINBOW_ROOF +butterfly_roof = IfcRoofTypeEnum.BUTTERFLY_ROOF +pavilion_roof = IfcRoofTypeEnum.PAVILION_ROOF +dome_roof = IfcRoofTypeEnum.DOME_ROOF +freeform = IfcRoofTypeEnum.FREEFORM +userdefined = IfcRoofTypeEnum.USERDEFINED +notdefined = IfcRoofTypeEnum.NOTDEFINED IfcSIPrefix = enum_namespace() -exa = getattr(IfcSIPrefix, 'EXA', INDETERMINATE) -peta = getattr(IfcSIPrefix, 'PETA', INDETERMINATE) -tera = getattr(IfcSIPrefix, 'TERA', INDETERMINATE) -giga = getattr(IfcSIPrefix, 'GIGA', INDETERMINATE) -mega = getattr(IfcSIPrefix, 'MEGA', INDETERMINATE) -kilo = getattr(IfcSIPrefix, 'KILO', INDETERMINATE) -hecto = getattr(IfcSIPrefix, 'HECTO', INDETERMINATE) -deca = getattr(IfcSIPrefix, 'DECA', INDETERMINATE) -deci = getattr(IfcSIPrefix, 'DECI', INDETERMINATE) -centi = getattr(IfcSIPrefix, 'CENTI', INDETERMINATE) -milli = getattr(IfcSIPrefix, 'MILLI', INDETERMINATE) -micro = getattr(IfcSIPrefix, 'MICRO', INDETERMINATE) -nano = getattr(IfcSIPrefix, 'NANO', INDETERMINATE) -pico = getattr(IfcSIPrefix, 'PICO', INDETERMINATE) -femto = getattr(IfcSIPrefix, 'FEMTO', INDETERMINATE) -atto = getattr(IfcSIPrefix, 'ATTO', INDETERMINATE) +exa = IfcSIPrefix.EXA +peta = IfcSIPrefix.PETA +tera = IfcSIPrefix.TERA +giga = IfcSIPrefix.GIGA +mega = IfcSIPrefix.MEGA +kilo = IfcSIPrefix.KILO +hecto = IfcSIPrefix.HECTO +deca = IfcSIPrefix.DECA +deci = IfcSIPrefix.DECI +centi = IfcSIPrefix.CENTI +milli = IfcSIPrefix.MILLI +micro = IfcSIPrefix.MICRO +nano = IfcSIPrefix.NANO +pico = IfcSIPrefix.PICO +femto = IfcSIPrefix.FEMTO +atto = IfcSIPrefix.ATTO IfcSIUnitName = enum_namespace() -ampere = getattr(IfcSIUnitName, 'AMPERE', INDETERMINATE) -becquerel = getattr(IfcSIUnitName, 'BECQUEREL', INDETERMINATE) -candela = getattr(IfcSIUnitName, 'CANDELA', INDETERMINATE) -coulomb = getattr(IfcSIUnitName, 'COULOMB', INDETERMINATE) -cubic_metre = getattr(IfcSIUnitName, 'CUBIC_METRE', INDETERMINATE) -degree_celsius = getattr(IfcSIUnitName, 'DEGREE_CELSIUS', INDETERMINATE) -farad = getattr(IfcSIUnitName, 'FARAD', INDETERMINATE) -gram = getattr(IfcSIUnitName, 'GRAM', INDETERMINATE) -gray = getattr(IfcSIUnitName, 'GRAY', INDETERMINATE) -henry = getattr(IfcSIUnitName, 'HENRY', INDETERMINATE) -hertz = getattr(IfcSIUnitName, 'HERTZ', INDETERMINATE) -joule = getattr(IfcSIUnitName, 'JOULE', INDETERMINATE) -kelvin = getattr(IfcSIUnitName, 'KELVIN', INDETERMINATE) -lumen = getattr(IfcSIUnitName, 'LUMEN', INDETERMINATE) -lux = getattr(IfcSIUnitName, 'LUX', INDETERMINATE) -metre = getattr(IfcSIUnitName, 'METRE', INDETERMINATE) -mole = getattr(IfcSIUnitName, 'MOLE', INDETERMINATE) -newton = getattr(IfcSIUnitName, 'NEWTON', INDETERMINATE) -ohm = getattr(IfcSIUnitName, 'OHM', INDETERMINATE) -pascal = getattr(IfcSIUnitName, 'PASCAL', INDETERMINATE) -radian = getattr(IfcSIUnitName, 'RADIAN', INDETERMINATE) -second = getattr(IfcSIUnitName, 'SECOND', INDETERMINATE) -siemens = getattr(IfcSIUnitName, 'SIEMENS', INDETERMINATE) -sievert = getattr(IfcSIUnitName, 'SIEVERT', INDETERMINATE) -square_metre = getattr(IfcSIUnitName, 'SQUARE_METRE', INDETERMINATE) -steradian = getattr(IfcSIUnitName, 'STERADIAN', INDETERMINATE) -tesla = getattr(IfcSIUnitName, 'TESLA', INDETERMINATE) -volt = getattr(IfcSIUnitName, 'VOLT', INDETERMINATE) -watt = getattr(IfcSIUnitName, 'WATT', INDETERMINATE) -weber = getattr(IfcSIUnitName, 'WEBER', INDETERMINATE) +ampere = IfcSIUnitName.AMPERE +becquerel = IfcSIUnitName.BECQUEREL +candela = IfcSIUnitName.CANDELA +coulomb = IfcSIUnitName.COULOMB +cubic_metre = IfcSIUnitName.CUBIC_METRE +degree_celsius = IfcSIUnitName.DEGREE_CELSIUS +farad = IfcSIUnitName.FARAD +gram = IfcSIUnitName.GRAM +gray = IfcSIUnitName.GRAY +henry = IfcSIUnitName.HENRY +hertz = IfcSIUnitName.HERTZ +joule = IfcSIUnitName.JOULE +kelvin = IfcSIUnitName.KELVIN +lumen = IfcSIUnitName.LUMEN +lux = IfcSIUnitName.LUX +metre = IfcSIUnitName.METRE +mole = IfcSIUnitName.MOLE +newton = IfcSIUnitName.NEWTON +ohm = IfcSIUnitName.OHM +pascal = IfcSIUnitName.PASCAL +radian = IfcSIUnitName.RADIAN +second = IfcSIUnitName.SECOND +siemens = IfcSIUnitName.SIEMENS +sievert = IfcSIUnitName.SIEVERT +square_metre = IfcSIUnitName.SQUARE_METRE +steradian = IfcSIUnitName.STERADIAN +tesla = IfcSIUnitName.TESLA +volt = IfcSIUnitName.VOLT +watt = IfcSIUnitName.WATT +weber = IfcSIUnitName.WEBER IfcSanitaryTerminalTypeEnum = enum_namespace() -bath = getattr(IfcSanitaryTerminalTypeEnum, 'BATH', INDETERMINATE) -bidet = getattr(IfcSanitaryTerminalTypeEnum, 'BIDET', INDETERMINATE) -cistern = getattr(IfcSanitaryTerminalTypeEnum, 'CISTERN', INDETERMINATE) -shower = getattr(IfcSanitaryTerminalTypeEnum, 'SHOWER', INDETERMINATE) -sink = getattr(IfcSanitaryTerminalTypeEnum, 'SINK', INDETERMINATE) -sanitaryfountain = getattr(IfcSanitaryTerminalTypeEnum, 'SANITARYFOUNTAIN', INDETERMINATE) -toiletpan = getattr(IfcSanitaryTerminalTypeEnum, 'TOILETPAN', INDETERMINATE) -urinal = getattr(IfcSanitaryTerminalTypeEnum, 'URINAL', INDETERMINATE) -washhandbasin = getattr(IfcSanitaryTerminalTypeEnum, 'WASHHANDBASIN', INDETERMINATE) -wcseat = getattr(IfcSanitaryTerminalTypeEnum, 'WCSEAT', INDETERMINATE) -userdefined = getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSanitaryTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +bath = IfcSanitaryTerminalTypeEnum.BATH +bidet = IfcSanitaryTerminalTypeEnum.BIDET +cistern = IfcSanitaryTerminalTypeEnum.CISTERN +shower = IfcSanitaryTerminalTypeEnum.SHOWER +sink = IfcSanitaryTerminalTypeEnum.SINK +sanitaryfountain = IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN +toiletpan = IfcSanitaryTerminalTypeEnum.TOILETPAN +urinal = IfcSanitaryTerminalTypeEnum.URINAL +washhandbasin = IfcSanitaryTerminalTypeEnum.WASHHANDBASIN +wcseat = IfcSanitaryTerminalTypeEnum.WCSEAT +userdefined = IfcSanitaryTerminalTypeEnum.USERDEFINED +notdefined = IfcSanitaryTerminalTypeEnum.NOTDEFINED IfcSectionTypeEnum = enum_namespace() -uniform = getattr(IfcSectionTypeEnum, 'UNIFORM', INDETERMINATE) -tapered = getattr(IfcSectionTypeEnum, 'TAPERED', INDETERMINATE) +uniform = IfcSectionTypeEnum.UNIFORM +tapered = IfcSectionTypeEnum.TAPERED IfcSensorTypeEnum = enum_namespace() -cosensor = getattr(IfcSensorTypeEnum, 'COSENSOR', INDETERMINATE) -co2sensor = getattr(IfcSensorTypeEnum, 'CO2SENSOR', INDETERMINATE) -conductancesensor = getattr(IfcSensorTypeEnum, 'CONDUCTANCESENSOR', INDETERMINATE) -contactsensor = getattr(IfcSensorTypeEnum, 'CONTACTSENSOR', INDETERMINATE) -firesensor = getattr(IfcSensorTypeEnum, 'FIRESENSOR', INDETERMINATE) -flowsensor = getattr(IfcSensorTypeEnum, 'FLOWSENSOR', INDETERMINATE) -frostsensor = getattr(IfcSensorTypeEnum, 'FROSTSENSOR', INDETERMINATE) -gassensor = getattr(IfcSensorTypeEnum, 'GASSENSOR', INDETERMINATE) -heatsensor = getattr(IfcSensorTypeEnum, 'HEATSENSOR', INDETERMINATE) -humiditysensor = getattr(IfcSensorTypeEnum, 'HUMIDITYSENSOR', INDETERMINATE) -identifiersensor = getattr(IfcSensorTypeEnum, 'IDENTIFIERSENSOR', INDETERMINATE) -ionconcentrationsensor = getattr(IfcSensorTypeEnum, 'IONCONCENTRATIONSENSOR', INDETERMINATE) -levelsensor = getattr(IfcSensorTypeEnum, 'LEVELSENSOR', INDETERMINATE) -lightsensor = getattr(IfcSensorTypeEnum, 'LIGHTSENSOR', INDETERMINATE) -moisturesensor = getattr(IfcSensorTypeEnum, 'MOISTURESENSOR', INDETERMINATE) -movementsensor = getattr(IfcSensorTypeEnum, 'MOVEMENTSENSOR', INDETERMINATE) -phsensor = getattr(IfcSensorTypeEnum, 'PHSENSOR', INDETERMINATE) -pressuresensor = getattr(IfcSensorTypeEnum, 'PRESSURESENSOR', INDETERMINATE) -radiationsensor = getattr(IfcSensorTypeEnum, 'RADIATIONSENSOR', INDETERMINATE) -radioactivitysensor = getattr(IfcSensorTypeEnum, 'RADIOACTIVITYSENSOR', INDETERMINATE) -smokesensor = getattr(IfcSensorTypeEnum, 'SMOKESENSOR', INDETERMINATE) -soundsensor = getattr(IfcSensorTypeEnum, 'SOUNDSENSOR', INDETERMINATE) -temperaturesensor = getattr(IfcSensorTypeEnum, 'TEMPERATURESENSOR', INDETERMINATE) -windsensor = getattr(IfcSensorTypeEnum, 'WINDSENSOR', INDETERMINATE) -userdefined = getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSensorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cosensor = IfcSensorTypeEnum.COSENSOR +co2sensor = IfcSensorTypeEnum.CO2SENSOR +conductancesensor = IfcSensorTypeEnum.CONDUCTANCESENSOR +contactsensor = IfcSensorTypeEnum.CONTACTSENSOR +firesensor = IfcSensorTypeEnum.FIRESENSOR +flowsensor = IfcSensorTypeEnum.FLOWSENSOR +frostsensor = IfcSensorTypeEnum.FROSTSENSOR +gassensor = IfcSensorTypeEnum.GASSENSOR +heatsensor = IfcSensorTypeEnum.HEATSENSOR +humiditysensor = IfcSensorTypeEnum.HUMIDITYSENSOR +identifiersensor = IfcSensorTypeEnum.IDENTIFIERSENSOR +ionconcentrationsensor = IfcSensorTypeEnum.IONCONCENTRATIONSENSOR +levelsensor = IfcSensorTypeEnum.LEVELSENSOR +lightsensor = IfcSensorTypeEnum.LIGHTSENSOR +moisturesensor = IfcSensorTypeEnum.MOISTURESENSOR +movementsensor = IfcSensorTypeEnum.MOVEMENTSENSOR +phsensor = IfcSensorTypeEnum.PHSENSOR +pressuresensor = IfcSensorTypeEnum.PRESSURESENSOR +radiationsensor = IfcSensorTypeEnum.RADIATIONSENSOR +radioactivitysensor = IfcSensorTypeEnum.RADIOACTIVITYSENSOR +smokesensor = IfcSensorTypeEnum.SMOKESENSOR +soundsensor = IfcSensorTypeEnum.SOUNDSENSOR +temperaturesensor = IfcSensorTypeEnum.TEMPERATURESENSOR +windsensor = IfcSensorTypeEnum.WINDSENSOR +userdefined = IfcSensorTypeEnum.USERDEFINED +notdefined = IfcSensorTypeEnum.NOTDEFINED IfcSequenceEnum = enum_namespace() -start_start = getattr(IfcSequenceEnum, 'START_START', INDETERMINATE) -start_finish = getattr(IfcSequenceEnum, 'START_FINISH', INDETERMINATE) -finish_start = getattr(IfcSequenceEnum, 'FINISH_START', INDETERMINATE) -finish_finish = getattr(IfcSequenceEnum, 'FINISH_FINISH', INDETERMINATE) -userdefined = getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSequenceEnum, 'NOTDEFINED', INDETERMINATE) +start_start = IfcSequenceEnum.START_START +start_finish = IfcSequenceEnum.START_FINISH +finish_start = IfcSequenceEnum.FINISH_START +finish_finish = IfcSequenceEnum.FINISH_FINISH +userdefined = IfcSequenceEnum.USERDEFINED +notdefined = IfcSequenceEnum.NOTDEFINED IfcShadingDeviceTypeEnum = enum_namespace() -jalousie = getattr(IfcShadingDeviceTypeEnum, 'JALOUSIE', INDETERMINATE) -shutter = getattr(IfcShadingDeviceTypeEnum, 'SHUTTER', INDETERMINATE) -awning = getattr(IfcShadingDeviceTypeEnum, 'AWNING', INDETERMINATE) -userdefined = getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcShadingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +jalousie = IfcShadingDeviceTypeEnum.JALOUSIE +shutter = IfcShadingDeviceTypeEnum.SHUTTER +awning = IfcShadingDeviceTypeEnum.AWNING +userdefined = IfcShadingDeviceTypeEnum.USERDEFINED +notdefined = IfcShadingDeviceTypeEnum.NOTDEFINED IfcSimplePropertyTemplateTypeEnum = enum_namespace() -p_singlevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_SINGLEVALUE', INDETERMINATE) -p_enumeratedvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_ENUMERATEDVALUE', INDETERMINATE) -p_boundedvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_BOUNDEDVALUE', INDETERMINATE) -p_listvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_LISTVALUE', INDETERMINATE) -p_tablevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_TABLEVALUE', INDETERMINATE) -p_referencevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_REFERENCEVALUE', INDETERMINATE) -q_length = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_LENGTH', INDETERMINATE) -q_area = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_AREA', INDETERMINATE) -q_volume = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_VOLUME', INDETERMINATE) -q_count = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_COUNT', INDETERMINATE) -q_weight = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_WEIGHT', INDETERMINATE) -q_time = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_TIME', INDETERMINATE) +p_singlevalue = IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE +p_enumeratedvalue = IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE +p_boundedvalue = IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE +p_listvalue = IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE +p_tablevalue = IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE +p_referencevalue = IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE +q_length = IfcSimplePropertyTemplateTypeEnum.Q_LENGTH +q_area = IfcSimplePropertyTemplateTypeEnum.Q_AREA +q_volume = IfcSimplePropertyTemplateTypeEnum.Q_VOLUME +q_count = IfcSimplePropertyTemplateTypeEnum.Q_COUNT +q_weight = IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT +q_time = IfcSimplePropertyTemplateTypeEnum.Q_TIME IfcSlabTypeEnum = enum_namespace() -floor = getattr(IfcSlabTypeEnum, 'FLOOR', INDETERMINATE) -roof = getattr(IfcSlabTypeEnum, 'ROOF', INDETERMINATE) -landing = getattr(IfcSlabTypeEnum, 'LANDING', INDETERMINATE) -baseslab = getattr(IfcSlabTypeEnum, 'BASESLAB', INDETERMINATE) -userdefined = getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSlabTypeEnum, 'NOTDEFINED', INDETERMINATE) +floor = IfcSlabTypeEnum.FLOOR +roof = IfcSlabTypeEnum.ROOF +landing = IfcSlabTypeEnum.LANDING +baseslab = IfcSlabTypeEnum.BASESLAB +userdefined = IfcSlabTypeEnum.USERDEFINED +notdefined = IfcSlabTypeEnum.NOTDEFINED IfcSolarDeviceTypeEnum = enum_namespace() -solarcollector = getattr(IfcSolarDeviceTypeEnum, 'SOLARCOLLECTOR', INDETERMINATE) -solarpanel = getattr(IfcSolarDeviceTypeEnum, 'SOLARPANEL', INDETERMINATE) -userdefined = getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSolarDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +solarcollector = IfcSolarDeviceTypeEnum.SOLARCOLLECTOR +solarpanel = IfcSolarDeviceTypeEnum.SOLARPANEL +userdefined = IfcSolarDeviceTypeEnum.USERDEFINED +notdefined = IfcSolarDeviceTypeEnum.NOTDEFINED IfcSpaceHeaterTypeEnum = enum_namespace() -convector = getattr(IfcSpaceHeaterTypeEnum, 'CONVECTOR', INDETERMINATE) -radiator = getattr(IfcSpaceHeaterTypeEnum, 'RADIATOR', INDETERMINATE) -userdefined = getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpaceHeaterTypeEnum, 'NOTDEFINED', INDETERMINATE) +convector = IfcSpaceHeaterTypeEnum.CONVECTOR +radiator = IfcSpaceHeaterTypeEnum.RADIATOR +userdefined = IfcSpaceHeaterTypeEnum.USERDEFINED +notdefined = IfcSpaceHeaterTypeEnum.NOTDEFINED IfcSpaceTypeEnum = enum_namespace() -space = getattr(IfcSpaceTypeEnum, 'SPACE', INDETERMINATE) -parking = getattr(IfcSpaceTypeEnum, 'PARKING', INDETERMINATE) -gfa = getattr(IfcSpaceTypeEnum, 'GFA', INDETERMINATE) -internal = getattr(IfcSpaceTypeEnum, 'INTERNAL', INDETERMINATE) -external = getattr(IfcSpaceTypeEnum, 'EXTERNAL', INDETERMINATE) -userdefined = getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpaceTypeEnum, 'NOTDEFINED', INDETERMINATE) +space = IfcSpaceTypeEnum.SPACE +parking = IfcSpaceTypeEnum.PARKING +gfa = IfcSpaceTypeEnum.GFA +internal = IfcSpaceTypeEnum.INTERNAL +external = IfcSpaceTypeEnum.EXTERNAL +userdefined = IfcSpaceTypeEnum.USERDEFINED +notdefined = IfcSpaceTypeEnum.NOTDEFINED IfcSpatialZoneTypeEnum = enum_namespace() -construction = getattr(IfcSpatialZoneTypeEnum, 'CONSTRUCTION', INDETERMINATE) -firesafety = getattr(IfcSpatialZoneTypeEnum, 'FIRESAFETY', INDETERMINATE) -lighting = getattr(IfcSpatialZoneTypeEnum, 'LIGHTING', INDETERMINATE) -occupancy = getattr(IfcSpatialZoneTypeEnum, 'OCCUPANCY', INDETERMINATE) -security = getattr(IfcSpatialZoneTypeEnum, 'SECURITY', INDETERMINATE) -thermal = getattr(IfcSpatialZoneTypeEnum, 'THERMAL', INDETERMINATE) -transport = getattr(IfcSpatialZoneTypeEnum, 'TRANSPORT', INDETERMINATE) -ventilation = getattr(IfcSpatialZoneTypeEnum, 'VENTILATION', INDETERMINATE) -userdefined = getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpatialZoneTypeEnum, 'NOTDEFINED', INDETERMINATE) +construction = IfcSpatialZoneTypeEnum.CONSTRUCTION +firesafety = IfcSpatialZoneTypeEnum.FIRESAFETY +lighting = IfcSpatialZoneTypeEnum.LIGHTING +occupancy = IfcSpatialZoneTypeEnum.OCCUPANCY +security = IfcSpatialZoneTypeEnum.SECURITY +thermal = IfcSpatialZoneTypeEnum.THERMAL +transport = IfcSpatialZoneTypeEnum.TRANSPORT +ventilation = IfcSpatialZoneTypeEnum.VENTILATION +userdefined = IfcSpatialZoneTypeEnum.USERDEFINED +notdefined = IfcSpatialZoneTypeEnum.NOTDEFINED IfcStackTerminalTypeEnum = enum_namespace() -birdcage = getattr(IfcStackTerminalTypeEnum, 'BIRDCAGE', INDETERMINATE) -cowl = getattr(IfcStackTerminalTypeEnum, 'COWL', INDETERMINATE) -rainwaterhopper = getattr(IfcStackTerminalTypeEnum, 'RAINWATERHOPPER', INDETERMINATE) -userdefined = getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStackTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +birdcage = IfcStackTerminalTypeEnum.BIRDCAGE +cowl = IfcStackTerminalTypeEnum.COWL +rainwaterhopper = IfcStackTerminalTypeEnum.RAINWATERHOPPER +userdefined = IfcStackTerminalTypeEnum.USERDEFINED +notdefined = IfcStackTerminalTypeEnum.NOTDEFINED IfcStairFlightTypeEnum = enum_namespace() -straight = getattr(IfcStairFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -winder = getattr(IfcStairFlightTypeEnum, 'WINDER', INDETERMINATE) -spiral = getattr(IfcStairFlightTypeEnum, 'SPIRAL', INDETERMINATE) -curved = getattr(IfcStairFlightTypeEnum, 'CURVED', INDETERMINATE) -freeform = getattr(IfcStairFlightTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStairFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcStairFlightTypeEnum.STRAIGHT +winder = IfcStairFlightTypeEnum.WINDER +spiral = IfcStairFlightTypeEnum.SPIRAL +curved = IfcStairFlightTypeEnum.CURVED +freeform = IfcStairFlightTypeEnum.FREEFORM +userdefined = IfcStairFlightTypeEnum.USERDEFINED +notdefined = IfcStairFlightTypeEnum.NOTDEFINED IfcStairTypeEnum = enum_namespace() -straight_run_stair = getattr(IfcStairTypeEnum, 'STRAIGHT_RUN_STAIR', INDETERMINATE) -two_straight_run_stair = getattr(IfcStairTypeEnum, 'TWO_STRAIGHT_RUN_STAIR', INDETERMINATE) -quarter_winding_stair = getattr(IfcStairTypeEnum, 'QUARTER_WINDING_STAIR', INDETERMINATE) -quarter_turn_stair = getattr(IfcStairTypeEnum, 'QUARTER_TURN_STAIR', INDETERMINATE) -half_winding_stair = getattr(IfcStairTypeEnum, 'HALF_WINDING_STAIR', INDETERMINATE) -half_turn_stair = getattr(IfcStairTypeEnum, 'HALF_TURN_STAIR', INDETERMINATE) -two_quarter_winding_stair = getattr(IfcStairTypeEnum, 'TWO_QUARTER_WINDING_STAIR', INDETERMINATE) -two_quarter_turn_stair = getattr(IfcStairTypeEnum, 'TWO_QUARTER_TURN_STAIR', INDETERMINATE) -three_quarter_winding_stair = getattr(IfcStairTypeEnum, 'THREE_QUARTER_WINDING_STAIR', INDETERMINATE) -three_quarter_turn_stair = getattr(IfcStairTypeEnum, 'THREE_QUARTER_TURN_STAIR', INDETERMINATE) -spiral_stair = getattr(IfcStairTypeEnum, 'SPIRAL_STAIR', INDETERMINATE) -double_return_stair = getattr(IfcStairTypeEnum, 'DOUBLE_RETURN_STAIR', INDETERMINATE) -curved_run_stair = getattr(IfcStairTypeEnum, 'CURVED_RUN_STAIR', INDETERMINATE) -two_curved_run_stair = getattr(IfcStairTypeEnum, 'TWO_CURVED_RUN_STAIR', INDETERMINATE) -userdefined = getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStairTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_stair = IfcStairTypeEnum.STRAIGHT_RUN_STAIR +two_straight_run_stair = IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR +quarter_winding_stair = IfcStairTypeEnum.QUARTER_WINDING_STAIR +quarter_turn_stair = IfcStairTypeEnum.QUARTER_TURN_STAIR +half_winding_stair = IfcStairTypeEnum.HALF_WINDING_STAIR +half_turn_stair = IfcStairTypeEnum.HALF_TURN_STAIR +two_quarter_winding_stair = IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR +two_quarter_turn_stair = IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR +three_quarter_winding_stair = IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR +three_quarter_turn_stair = IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR +spiral_stair = IfcStairTypeEnum.SPIRAL_STAIR +double_return_stair = IfcStairTypeEnum.DOUBLE_RETURN_STAIR +curved_run_stair = IfcStairTypeEnum.CURVED_RUN_STAIR +two_curved_run_stair = IfcStairTypeEnum.TWO_CURVED_RUN_STAIR +userdefined = IfcStairTypeEnum.USERDEFINED +notdefined = IfcStairTypeEnum.NOTDEFINED IfcStateEnum = enum_namespace() -readwrite = getattr(IfcStateEnum, 'READWRITE', INDETERMINATE) -readonly = getattr(IfcStateEnum, 'READONLY', INDETERMINATE) -locked = getattr(IfcStateEnum, 'LOCKED', INDETERMINATE) -readwritelocked = getattr(IfcStateEnum, 'READWRITELOCKED', INDETERMINATE) -readonlylocked = getattr(IfcStateEnum, 'READONLYLOCKED', INDETERMINATE) +readwrite = IfcStateEnum.READWRITE +readonly = IfcStateEnum.READONLY +locked = IfcStateEnum.LOCKED +readwritelocked = IfcStateEnum.READWRITELOCKED +readonlylocked = IfcStateEnum.READONLYLOCKED IfcStructuralCurveActivityTypeEnum = enum_namespace() -const = getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE) -linear = getattr(IfcStructuralCurveActivityTypeEnum, 'LINEAR', INDETERMINATE) -polygonal = getattr(IfcStructuralCurveActivityTypeEnum, 'POLYGONAL', INDETERMINATE) -equidistant = getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE) -sinus = getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) -parabola = getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE) -discrete = getattr(IfcStructuralCurveActivityTypeEnum, 'DISCRETE', INDETERMINATE) -userdefined = getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralCurveActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralCurveActivityTypeEnum.CONST +linear = IfcStructuralCurveActivityTypeEnum.LINEAR +polygonal = IfcStructuralCurveActivityTypeEnum.POLYGONAL +equidistant = IfcStructuralCurveActivityTypeEnum.EQUIDISTANT +sinus = IfcStructuralCurveActivityTypeEnum.SINUS +parabola = IfcStructuralCurveActivityTypeEnum.PARABOLA +discrete = IfcStructuralCurveActivityTypeEnum.DISCRETE +userdefined = IfcStructuralCurveActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveActivityTypeEnum.NOTDEFINED IfcStructuralCurveMemberTypeEnum = enum_namespace() -rigid_joined_member = getattr(IfcStructuralCurveMemberTypeEnum, 'RIGID_JOINED_MEMBER', INDETERMINATE) -pin_joined_member = getattr(IfcStructuralCurveMemberTypeEnum, 'PIN_JOINED_MEMBER', INDETERMINATE) -cable = getattr(IfcStructuralCurveMemberTypeEnum, 'CABLE', INDETERMINATE) -tension_member = getattr(IfcStructuralCurveMemberTypeEnum, 'TENSION_MEMBER', INDETERMINATE) -compression_member = getattr(IfcStructuralCurveMemberTypeEnum, 'COMPRESSION_MEMBER', INDETERMINATE) -userdefined = getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralCurveMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigid_joined_member = IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER +pin_joined_member = IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER +cable = IfcStructuralCurveMemberTypeEnum.CABLE +tension_member = IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER +compression_member = IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER +userdefined = IfcStructuralCurveMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveMemberTypeEnum.NOTDEFINED IfcStructuralSurfaceActivityTypeEnum = enum_namespace() -const = getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE) -bilinear = getattr(IfcStructuralSurfaceActivityTypeEnum, 'BILINEAR', INDETERMINATE) -discrete = getattr(IfcStructuralSurfaceActivityTypeEnum, 'DISCRETE', INDETERMINATE) -isocontour = getattr(IfcStructuralSurfaceActivityTypeEnum, 'ISOCONTOUR', INDETERMINATE) -userdefined = getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralSurfaceActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralSurfaceActivityTypeEnum.CONST +bilinear = IfcStructuralSurfaceActivityTypeEnum.BILINEAR +discrete = IfcStructuralSurfaceActivityTypeEnum.DISCRETE +isocontour = IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR +userdefined = IfcStructuralSurfaceActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED IfcStructuralSurfaceMemberTypeEnum = enum_namespace() -bending_element = getattr(IfcStructuralSurfaceMemberTypeEnum, 'BENDING_ELEMENT', INDETERMINATE) -membrane_element = getattr(IfcStructuralSurfaceMemberTypeEnum, 'MEMBRANE_ELEMENT', INDETERMINATE) -shell = getattr(IfcStructuralSurfaceMemberTypeEnum, 'SHELL', INDETERMINATE) -userdefined = getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralSurfaceMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_element = IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT +membrane_element = IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT +shell = IfcStructuralSurfaceMemberTypeEnum.SHELL +userdefined = IfcStructuralSurfaceMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED IfcSubContractResourceTypeEnum = enum_namespace() -purchase = getattr(IfcSubContractResourceTypeEnum, 'PURCHASE', INDETERMINATE) -work = getattr(IfcSubContractResourceTypeEnum, 'WORK', INDETERMINATE) -userdefined = getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSubContractResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +purchase = IfcSubContractResourceTypeEnum.PURCHASE +work = IfcSubContractResourceTypeEnum.WORK +userdefined = IfcSubContractResourceTypeEnum.USERDEFINED +notdefined = IfcSubContractResourceTypeEnum.NOTDEFINED IfcSurfaceFeatureTypeEnum = enum_namespace() -mark = getattr(IfcSurfaceFeatureTypeEnum, 'MARK', INDETERMINATE) -tag = getattr(IfcSurfaceFeatureTypeEnum, 'TAG', INDETERMINATE) -treatment = getattr(IfcSurfaceFeatureTypeEnum, 'TREATMENT', INDETERMINATE) -userdefined = getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSurfaceFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +mark = IfcSurfaceFeatureTypeEnum.MARK +tag = IfcSurfaceFeatureTypeEnum.TAG +treatment = IfcSurfaceFeatureTypeEnum.TREATMENT +userdefined = IfcSurfaceFeatureTypeEnum.USERDEFINED +notdefined = IfcSurfaceFeatureTypeEnum.NOTDEFINED IfcSurfaceSide = enum_namespace() -positive = getattr(IfcSurfaceSide, 'POSITIVE', INDETERMINATE) -negative = getattr(IfcSurfaceSide, 'NEGATIVE', INDETERMINATE) -both = getattr(IfcSurfaceSide, 'BOTH', INDETERMINATE) +positive = IfcSurfaceSide.POSITIVE +negative = IfcSurfaceSide.NEGATIVE +both = IfcSurfaceSide.BOTH IfcSwitchingDeviceTypeEnum = enum_namespace() -contactor = getattr(IfcSwitchingDeviceTypeEnum, 'CONTACTOR', INDETERMINATE) -dimmerswitch = getattr(IfcSwitchingDeviceTypeEnum, 'DIMMERSWITCH', INDETERMINATE) -emergencystop = getattr(IfcSwitchingDeviceTypeEnum, 'EMERGENCYSTOP', INDETERMINATE) -keypad = getattr(IfcSwitchingDeviceTypeEnum, 'KEYPAD', INDETERMINATE) -momentaryswitch = getattr(IfcSwitchingDeviceTypeEnum, 'MOMENTARYSWITCH', INDETERMINATE) -selectorswitch = getattr(IfcSwitchingDeviceTypeEnum, 'SELECTORSWITCH', INDETERMINATE) -starter = getattr(IfcSwitchingDeviceTypeEnum, 'STARTER', INDETERMINATE) -switchdisconnector = getattr(IfcSwitchingDeviceTypeEnum, 'SWITCHDISCONNECTOR', INDETERMINATE) -toggleswitch = getattr(IfcSwitchingDeviceTypeEnum, 'TOGGLESWITCH', INDETERMINATE) -userdefined = getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSwitchingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +contactor = IfcSwitchingDeviceTypeEnum.CONTACTOR +dimmerswitch = IfcSwitchingDeviceTypeEnum.DIMMERSWITCH +emergencystop = IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP +keypad = IfcSwitchingDeviceTypeEnum.KEYPAD +momentaryswitch = IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH +selectorswitch = IfcSwitchingDeviceTypeEnum.SELECTORSWITCH +starter = IfcSwitchingDeviceTypeEnum.STARTER +switchdisconnector = IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR +toggleswitch = IfcSwitchingDeviceTypeEnum.TOGGLESWITCH +userdefined = IfcSwitchingDeviceTypeEnum.USERDEFINED +notdefined = IfcSwitchingDeviceTypeEnum.NOTDEFINED IfcSystemFurnitureElementTypeEnum = enum_namespace() -panel = getattr(IfcSystemFurnitureElementTypeEnum, 'PANEL', INDETERMINATE) -worksurface = getattr(IfcSystemFurnitureElementTypeEnum, 'WORKSURFACE', INDETERMINATE) -userdefined = getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSystemFurnitureElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +panel = IfcSystemFurnitureElementTypeEnum.PANEL +worksurface = IfcSystemFurnitureElementTypeEnum.WORKSURFACE +userdefined = IfcSystemFurnitureElementTypeEnum.USERDEFINED +notdefined = IfcSystemFurnitureElementTypeEnum.NOTDEFINED IfcTankTypeEnum = enum_namespace() -basin = getattr(IfcTankTypeEnum, 'BASIN', INDETERMINATE) -breakpressure = getattr(IfcTankTypeEnum, 'BREAKPRESSURE', INDETERMINATE) -expansion = getattr(IfcTankTypeEnum, 'EXPANSION', INDETERMINATE) -feedandexpansion = getattr(IfcTankTypeEnum, 'FEEDANDEXPANSION', INDETERMINATE) -pressurevessel = getattr(IfcTankTypeEnum, 'PRESSUREVESSEL', INDETERMINATE) -storage = getattr(IfcTankTypeEnum, 'STORAGE', INDETERMINATE) -vessel = getattr(IfcTankTypeEnum, 'VESSEL', INDETERMINATE) -userdefined = getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTankTypeEnum, 'NOTDEFINED', INDETERMINATE) +basin = IfcTankTypeEnum.BASIN +breakpressure = IfcTankTypeEnum.BREAKPRESSURE +expansion = IfcTankTypeEnum.EXPANSION +feedandexpansion = IfcTankTypeEnum.FEEDANDEXPANSION +pressurevessel = IfcTankTypeEnum.PRESSUREVESSEL +storage = IfcTankTypeEnum.STORAGE +vessel = IfcTankTypeEnum.VESSEL +userdefined = IfcTankTypeEnum.USERDEFINED +notdefined = IfcTankTypeEnum.NOTDEFINED IfcTaskDurationEnum = enum_namespace() -elapsedtime = getattr(IfcTaskDurationEnum, 'ELAPSEDTIME', INDETERMINATE) -worktime = getattr(IfcTaskDurationEnum, 'WORKTIME', INDETERMINATE) -notdefined = getattr(IfcTaskDurationEnum, 'NOTDEFINED', INDETERMINATE) +elapsedtime = IfcTaskDurationEnum.ELAPSEDTIME +worktime = IfcTaskDurationEnum.WORKTIME +notdefined = IfcTaskDurationEnum.NOTDEFINED IfcTaskTypeEnum = enum_namespace() -attendance = getattr(IfcTaskTypeEnum, 'ATTENDANCE', INDETERMINATE) -construction = getattr(IfcTaskTypeEnum, 'CONSTRUCTION', INDETERMINATE) -demolition = getattr(IfcTaskTypeEnum, 'DEMOLITION', INDETERMINATE) -dismantle = getattr(IfcTaskTypeEnum, 'DISMANTLE', INDETERMINATE) -disposal = getattr(IfcTaskTypeEnum, 'DISPOSAL', INDETERMINATE) -installation = getattr(IfcTaskTypeEnum, 'INSTALLATION', INDETERMINATE) -logistic = getattr(IfcTaskTypeEnum, 'LOGISTIC', INDETERMINATE) -maintenance = getattr(IfcTaskTypeEnum, 'MAINTENANCE', INDETERMINATE) -move = getattr(IfcTaskTypeEnum, 'MOVE', INDETERMINATE) -operation = getattr(IfcTaskTypeEnum, 'OPERATION', INDETERMINATE) -removal = getattr(IfcTaskTypeEnum, 'REMOVAL', INDETERMINATE) -renovation = getattr(IfcTaskTypeEnum, 'RENOVATION', INDETERMINATE) -userdefined = getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTaskTypeEnum, 'NOTDEFINED', INDETERMINATE) +attendance = IfcTaskTypeEnum.ATTENDANCE +construction = IfcTaskTypeEnum.CONSTRUCTION +demolition = IfcTaskTypeEnum.DEMOLITION +dismantle = IfcTaskTypeEnum.DISMANTLE +disposal = IfcTaskTypeEnum.DISPOSAL +installation = IfcTaskTypeEnum.INSTALLATION +logistic = IfcTaskTypeEnum.LOGISTIC +maintenance = IfcTaskTypeEnum.MAINTENANCE +move = IfcTaskTypeEnum.MOVE +operation = IfcTaskTypeEnum.OPERATION +removal = IfcTaskTypeEnum.REMOVAL +renovation = IfcTaskTypeEnum.RENOVATION +userdefined = IfcTaskTypeEnum.USERDEFINED +notdefined = IfcTaskTypeEnum.NOTDEFINED IfcTendonAnchorTypeEnum = enum_namespace() -coupler = getattr(IfcTendonAnchorTypeEnum, 'COUPLER', INDETERMINATE) -fixed_end = getattr(IfcTendonAnchorTypeEnum, 'FIXED_END', INDETERMINATE) -tensioning_end = getattr(IfcTendonAnchorTypeEnum, 'TENSIONING_END', INDETERMINATE) -userdefined = getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonAnchorTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonAnchorTypeEnum.COUPLER +fixed_end = IfcTendonAnchorTypeEnum.FIXED_END +tensioning_end = IfcTendonAnchorTypeEnum.TENSIONING_END +userdefined = IfcTendonAnchorTypeEnum.USERDEFINED +notdefined = IfcTendonAnchorTypeEnum.NOTDEFINED IfcTendonTypeEnum = enum_namespace() -bar = getattr(IfcTendonTypeEnum, 'BAR', INDETERMINATE) -coated = getattr(IfcTendonTypeEnum, 'COATED', INDETERMINATE) -strand = getattr(IfcTendonTypeEnum, 'STRAND', INDETERMINATE) -wire = getattr(IfcTendonTypeEnum, 'WIRE', INDETERMINATE) -userdefined = getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonTypeEnum, 'NOTDEFINED', INDETERMINATE) +bar = IfcTendonTypeEnum.BAR +coated = IfcTendonTypeEnum.COATED +strand = IfcTendonTypeEnum.STRAND +wire = IfcTendonTypeEnum.WIRE +userdefined = IfcTendonTypeEnum.USERDEFINED +notdefined = IfcTendonTypeEnum.NOTDEFINED IfcTextPath = enum_namespace() -left = getattr(IfcTextPath, 'LEFT', INDETERMINATE) -right = getattr(IfcTextPath, 'RIGHT', INDETERMINATE) -up = getattr(IfcTextPath, 'UP', INDETERMINATE) -down = getattr(IfcTextPath, 'DOWN', INDETERMINATE) +left = IfcTextPath.LEFT +right = IfcTextPath.RIGHT +up = IfcTextPath.UP +down = IfcTextPath.DOWN IfcTimeSeriesDataTypeEnum = enum_namespace() -continuous = getattr(IfcTimeSeriesDataTypeEnum, 'CONTINUOUS', INDETERMINATE) -discrete = getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETE', INDETERMINATE) -discretebinary = getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETEBINARY', INDETERMINATE) -piecewisebinary = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISEBINARY', INDETERMINATE) -piecewiseconstant = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONSTANT', INDETERMINATE) -piecewisecontinuous = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONTINUOUS', INDETERMINATE) -notdefined = getattr(IfcTimeSeriesDataTypeEnum, 'NOTDEFINED', INDETERMINATE) +continuous = IfcTimeSeriesDataTypeEnum.CONTINUOUS +discrete = IfcTimeSeriesDataTypeEnum.DISCRETE +discretebinary = IfcTimeSeriesDataTypeEnum.DISCRETEBINARY +piecewisebinary = IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY +piecewiseconstant = IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT +piecewisecontinuous = IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS +notdefined = IfcTimeSeriesDataTypeEnum.NOTDEFINED IfcTransformerTypeEnum = enum_namespace() -current = getattr(IfcTransformerTypeEnum, 'CURRENT', INDETERMINATE) -frequency = getattr(IfcTransformerTypeEnum, 'FREQUENCY', INDETERMINATE) -inverter = getattr(IfcTransformerTypeEnum, 'INVERTER', INDETERMINATE) -rectifier = getattr(IfcTransformerTypeEnum, 'RECTIFIER', INDETERMINATE) -voltage = getattr(IfcTransformerTypeEnum, 'VOLTAGE', INDETERMINATE) -userdefined = getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTransformerTypeEnum, 'NOTDEFINED', INDETERMINATE) +current = IfcTransformerTypeEnum.CURRENT +frequency = IfcTransformerTypeEnum.FREQUENCY +inverter = IfcTransformerTypeEnum.INVERTER +rectifier = IfcTransformerTypeEnum.RECTIFIER +voltage = IfcTransformerTypeEnum.VOLTAGE +userdefined = IfcTransformerTypeEnum.USERDEFINED +notdefined = IfcTransformerTypeEnum.NOTDEFINED IfcTransitionCode = enum_namespace() -discontinuous = getattr(IfcTransitionCode, 'DISCONTINUOUS', INDETERMINATE) -continuous = getattr(IfcTransitionCode, 'CONTINUOUS', INDETERMINATE) -contsamegradient = getattr(IfcTransitionCode, 'CONTSAMEGRADIENT', INDETERMINATE) -contsamegradientsamecurvature = getattr(IfcTransitionCode, 'CONTSAMEGRADIENTSAMECURVATURE', INDETERMINATE) +discontinuous = IfcTransitionCode.DISCONTINUOUS +continuous = IfcTransitionCode.CONTINUOUS +contsamegradient = IfcTransitionCode.CONTSAMEGRADIENT +contsamegradientsamecurvature = IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE IfcTransitionCurveType = enum_namespace() -biquadraticparabola = getattr(IfcTransitionCurveType, 'BIQUADRATICPARABOLA', INDETERMINATE) -blosscurve = getattr(IfcTransitionCurveType, 'BLOSSCURVE', INDETERMINATE) -clothoidcurve = getattr(IfcTransitionCurveType, 'CLOTHOIDCURVE', INDETERMINATE) -cosinecurve = getattr(IfcTransitionCurveType, 'COSINECURVE', INDETERMINATE) -cubicparabola = getattr(IfcTransitionCurveType, 'CUBICPARABOLA', INDETERMINATE) -sinecurve = getattr(IfcTransitionCurveType, 'SINECURVE', INDETERMINATE) +biquadraticparabola = IfcTransitionCurveType.BIQUADRATICPARABOLA +blosscurve = IfcTransitionCurveType.BLOSSCURVE +clothoidcurve = IfcTransitionCurveType.CLOTHOIDCURVE +cosinecurve = IfcTransitionCurveType.COSINECURVE +cubicparabola = IfcTransitionCurveType.CUBICPARABOLA +sinecurve = IfcTransitionCurveType.SINECURVE IfcTransportElementTypeEnum = enum_namespace() -elevator = getattr(IfcTransportElementTypeEnum, 'ELEVATOR', INDETERMINATE) -escalator = getattr(IfcTransportElementTypeEnum, 'ESCALATOR', INDETERMINATE) -movingwalkway = getattr(IfcTransportElementTypeEnum, 'MOVINGWALKWAY', INDETERMINATE) -craneway = getattr(IfcTransportElementTypeEnum, 'CRANEWAY', INDETERMINATE) -liftinggear = getattr(IfcTransportElementTypeEnum, 'LIFTINGGEAR', INDETERMINATE) -userdefined = getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTransportElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +elevator = IfcTransportElementTypeEnum.ELEVATOR +escalator = IfcTransportElementTypeEnum.ESCALATOR +movingwalkway = IfcTransportElementTypeEnum.MOVINGWALKWAY +craneway = IfcTransportElementTypeEnum.CRANEWAY +liftinggear = IfcTransportElementTypeEnum.LIFTINGGEAR +userdefined = IfcTransportElementTypeEnum.USERDEFINED +notdefined = IfcTransportElementTypeEnum.NOTDEFINED IfcTrimmingPreference = enum_namespace() -cartesian = getattr(IfcTrimmingPreference, 'CARTESIAN', INDETERMINATE) -parameter = getattr(IfcTrimmingPreference, 'PARAMETER', INDETERMINATE) -unspecified = getattr(IfcTrimmingPreference, 'UNSPECIFIED', INDETERMINATE) +cartesian = IfcTrimmingPreference.CARTESIAN +parameter = IfcTrimmingPreference.PARAMETER +unspecified = IfcTrimmingPreference.UNSPECIFIED IfcTubeBundleTypeEnum = enum_namespace() -finned = getattr(IfcTubeBundleTypeEnum, 'FINNED', INDETERMINATE) -userdefined = getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTubeBundleTypeEnum, 'NOTDEFINED', INDETERMINATE) +finned = IfcTubeBundleTypeEnum.FINNED +userdefined = IfcTubeBundleTypeEnum.USERDEFINED +notdefined = IfcTubeBundleTypeEnum.NOTDEFINED IfcUnitEnum = enum_namespace() -absorbeddoseunit = getattr(IfcUnitEnum, 'ABSORBEDDOSEUNIT', INDETERMINATE) -amountofsubstanceunit = getattr(IfcUnitEnum, 'AMOUNTOFSUBSTANCEUNIT', INDETERMINATE) -areaunit = getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE) -doseequivalentunit = getattr(IfcUnitEnum, 'DOSEEQUIVALENTUNIT', INDETERMINATE) -electriccapacitanceunit = getattr(IfcUnitEnum, 'ELECTRICCAPACITANCEUNIT', INDETERMINATE) -electricchargeunit = getattr(IfcUnitEnum, 'ELECTRICCHARGEUNIT', INDETERMINATE) -electricconductanceunit = getattr(IfcUnitEnum, 'ELECTRICCONDUCTANCEUNIT', INDETERMINATE) -electriccurrentunit = getattr(IfcUnitEnum, 'ELECTRICCURRENTUNIT', INDETERMINATE) -electricresistanceunit = getattr(IfcUnitEnum, 'ELECTRICRESISTANCEUNIT', INDETERMINATE) -electricvoltageunit = getattr(IfcUnitEnum, 'ELECTRICVOLTAGEUNIT', INDETERMINATE) -energyunit = getattr(IfcUnitEnum, 'ENERGYUNIT', INDETERMINATE) -forceunit = getattr(IfcUnitEnum, 'FORCEUNIT', INDETERMINATE) -frequencyunit = getattr(IfcUnitEnum, 'FREQUENCYUNIT', INDETERMINATE) -illuminanceunit = getattr(IfcUnitEnum, 'ILLUMINANCEUNIT', INDETERMINATE) -inductanceunit = getattr(IfcUnitEnum, 'INDUCTANCEUNIT', INDETERMINATE) -lengthunit = getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE) -luminousfluxunit = getattr(IfcUnitEnum, 'LUMINOUSFLUXUNIT', INDETERMINATE) -luminousintensityunit = getattr(IfcUnitEnum, 'LUMINOUSINTENSITYUNIT', INDETERMINATE) -magneticfluxdensityunit = getattr(IfcUnitEnum, 'MAGNETICFLUXDENSITYUNIT', INDETERMINATE) -magneticfluxunit = getattr(IfcUnitEnum, 'MAGNETICFLUXUNIT', INDETERMINATE) -massunit = getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE) -planeangleunit = getattr(IfcUnitEnum, 'PLANEANGLEUNIT', INDETERMINATE) -powerunit = getattr(IfcUnitEnum, 'POWERUNIT', INDETERMINATE) -pressureunit = getattr(IfcUnitEnum, 'PRESSUREUNIT', INDETERMINATE) -radioactivityunit = getattr(IfcUnitEnum, 'RADIOACTIVITYUNIT', INDETERMINATE) -solidangleunit = getattr(IfcUnitEnum, 'SOLIDANGLEUNIT', INDETERMINATE) -thermodynamictemperatureunit = getattr(IfcUnitEnum, 'THERMODYNAMICTEMPERATUREUNIT', INDETERMINATE) -timeunit = getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE) -volumeunit = getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE) -userdefined = getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE) +absorbeddoseunit = IfcUnitEnum.ABSORBEDDOSEUNIT +amountofsubstanceunit = IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT +areaunit = IfcUnitEnum.AREAUNIT +doseequivalentunit = IfcUnitEnum.DOSEEQUIVALENTUNIT +electriccapacitanceunit = IfcUnitEnum.ELECTRICCAPACITANCEUNIT +electricchargeunit = IfcUnitEnum.ELECTRICCHARGEUNIT +electricconductanceunit = IfcUnitEnum.ELECTRICCONDUCTANCEUNIT +electriccurrentunit = IfcUnitEnum.ELECTRICCURRENTUNIT +electricresistanceunit = IfcUnitEnum.ELECTRICRESISTANCEUNIT +electricvoltageunit = IfcUnitEnum.ELECTRICVOLTAGEUNIT +energyunit = IfcUnitEnum.ENERGYUNIT +forceunit = IfcUnitEnum.FORCEUNIT +frequencyunit = IfcUnitEnum.FREQUENCYUNIT +illuminanceunit = IfcUnitEnum.ILLUMINANCEUNIT +inductanceunit = IfcUnitEnum.INDUCTANCEUNIT +lengthunit = IfcUnitEnum.LENGTHUNIT +luminousfluxunit = IfcUnitEnum.LUMINOUSFLUXUNIT +luminousintensityunit = IfcUnitEnum.LUMINOUSINTENSITYUNIT +magneticfluxdensityunit = IfcUnitEnum.MAGNETICFLUXDENSITYUNIT +magneticfluxunit = IfcUnitEnum.MAGNETICFLUXUNIT +massunit = IfcUnitEnum.MASSUNIT +planeangleunit = IfcUnitEnum.PLANEANGLEUNIT +powerunit = IfcUnitEnum.POWERUNIT +pressureunit = IfcUnitEnum.PRESSUREUNIT +radioactivityunit = IfcUnitEnum.RADIOACTIVITYUNIT +solidangleunit = IfcUnitEnum.SOLIDANGLEUNIT +thermodynamictemperatureunit = IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT +timeunit = IfcUnitEnum.TIMEUNIT +volumeunit = IfcUnitEnum.VOLUMEUNIT +userdefined = IfcUnitEnum.USERDEFINED IfcUnitaryControlElementTypeEnum = enum_namespace() -alarmpanel = getattr(IfcUnitaryControlElementTypeEnum, 'ALARMPANEL', INDETERMINATE) -controlpanel = getattr(IfcUnitaryControlElementTypeEnum, 'CONTROLPANEL', INDETERMINATE) -gasdetectionpanel = getattr(IfcUnitaryControlElementTypeEnum, 'GASDETECTIONPANEL', INDETERMINATE) -indicatorpanel = getattr(IfcUnitaryControlElementTypeEnum, 'INDICATORPANEL', INDETERMINATE) -mimicpanel = getattr(IfcUnitaryControlElementTypeEnum, 'MIMICPANEL', INDETERMINATE) -humidistat = getattr(IfcUnitaryControlElementTypeEnum, 'HUMIDISTAT', INDETERMINATE) -thermostat = getattr(IfcUnitaryControlElementTypeEnum, 'THERMOSTAT', INDETERMINATE) -weatherstation = getattr(IfcUnitaryControlElementTypeEnum, 'WEATHERSTATION', INDETERMINATE) -userdefined = getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcUnitaryControlElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +alarmpanel = IfcUnitaryControlElementTypeEnum.ALARMPANEL +controlpanel = IfcUnitaryControlElementTypeEnum.CONTROLPANEL +gasdetectionpanel = IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL +indicatorpanel = IfcUnitaryControlElementTypeEnum.INDICATORPANEL +mimicpanel = IfcUnitaryControlElementTypeEnum.MIMICPANEL +humidistat = IfcUnitaryControlElementTypeEnum.HUMIDISTAT +thermostat = IfcUnitaryControlElementTypeEnum.THERMOSTAT +weatherstation = IfcUnitaryControlElementTypeEnum.WEATHERSTATION +userdefined = IfcUnitaryControlElementTypeEnum.USERDEFINED +notdefined = IfcUnitaryControlElementTypeEnum.NOTDEFINED IfcUnitaryEquipmentTypeEnum = enum_namespace() -airhandler = getattr(IfcUnitaryEquipmentTypeEnum, 'AIRHANDLER', INDETERMINATE) -airconditioningunit = getattr(IfcUnitaryEquipmentTypeEnum, 'AIRCONDITIONINGUNIT', INDETERMINATE) -dehumidifier = getattr(IfcUnitaryEquipmentTypeEnum, 'DEHUMIDIFIER', INDETERMINATE) -splitsystem = getattr(IfcUnitaryEquipmentTypeEnum, 'SPLITSYSTEM', INDETERMINATE) -rooftopunit = getattr(IfcUnitaryEquipmentTypeEnum, 'ROOFTOPUNIT', INDETERMINATE) -userdefined = getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcUnitaryEquipmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +airhandler = IfcUnitaryEquipmentTypeEnum.AIRHANDLER +airconditioningunit = IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT +dehumidifier = IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER +splitsystem = IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM +rooftopunit = IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT +userdefined = IfcUnitaryEquipmentTypeEnum.USERDEFINED +notdefined = IfcUnitaryEquipmentTypeEnum.NOTDEFINED IfcValveTypeEnum = enum_namespace() -airrelease = getattr(IfcValveTypeEnum, 'AIRRELEASE', INDETERMINATE) -antivacuum = getattr(IfcValveTypeEnum, 'ANTIVACUUM', INDETERMINATE) -changeover = getattr(IfcValveTypeEnum, 'CHANGEOVER', INDETERMINATE) -check = getattr(IfcValveTypeEnum, 'CHECK', INDETERMINATE) -commissioning = getattr(IfcValveTypeEnum, 'COMMISSIONING', INDETERMINATE) -diverting = getattr(IfcValveTypeEnum, 'DIVERTING', INDETERMINATE) -drawoffcock = getattr(IfcValveTypeEnum, 'DRAWOFFCOCK', INDETERMINATE) -doublecheck = getattr(IfcValveTypeEnum, 'DOUBLECHECK', INDETERMINATE) -doubleregulating = getattr(IfcValveTypeEnum, 'DOUBLEREGULATING', INDETERMINATE) -faucet = getattr(IfcValveTypeEnum, 'FAUCET', INDETERMINATE) -flushing = getattr(IfcValveTypeEnum, 'FLUSHING', INDETERMINATE) -gascock = getattr(IfcValveTypeEnum, 'GASCOCK', INDETERMINATE) -gastap = getattr(IfcValveTypeEnum, 'GASTAP', INDETERMINATE) -isolating = getattr(IfcValveTypeEnum, 'ISOLATING', INDETERMINATE) -mixing = getattr(IfcValveTypeEnum, 'MIXING', INDETERMINATE) -pressurereducing = getattr(IfcValveTypeEnum, 'PRESSUREREDUCING', INDETERMINATE) -pressurerelief = getattr(IfcValveTypeEnum, 'PRESSURERELIEF', INDETERMINATE) -regulating = getattr(IfcValveTypeEnum, 'REGULATING', INDETERMINATE) -safetycutoff = getattr(IfcValveTypeEnum, 'SAFETYCUTOFF', INDETERMINATE) -steamtrap = getattr(IfcValveTypeEnum, 'STEAMTRAP', INDETERMINATE) -stopcock = getattr(IfcValveTypeEnum, 'STOPCOCK', INDETERMINATE) -userdefined = getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcValveTypeEnum, 'NOTDEFINED', INDETERMINATE) +airrelease = IfcValveTypeEnum.AIRRELEASE +antivacuum = IfcValveTypeEnum.ANTIVACUUM +changeover = IfcValveTypeEnum.CHANGEOVER +check = IfcValveTypeEnum.CHECK +commissioning = IfcValveTypeEnum.COMMISSIONING +diverting = IfcValveTypeEnum.DIVERTING +drawoffcock = IfcValveTypeEnum.DRAWOFFCOCK +doublecheck = IfcValveTypeEnum.DOUBLECHECK +doubleregulating = IfcValveTypeEnum.DOUBLEREGULATING +faucet = IfcValveTypeEnum.FAUCET +flushing = IfcValveTypeEnum.FLUSHING +gascock = IfcValveTypeEnum.GASCOCK +gastap = IfcValveTypeEnum.GASTAP +isolating = IfcValveTypeEnum.ISOLATING +mixing = IfcValveTypeEnum.MIXING +pressurereducing = IfcValveTypeEnum.PRESSUREREDUCING +pressurerelief = IfcValveTypeEnum.PRESSURERELIEF +regulating = IfcValveTypeEnum.REGULATING +safetycutoff = IfcValveTypeEnum.SAFETYCUTOFF +steamtrap = IfcValveTypeEnum.STEAMTRAP +stopcock = IfcValveTypeEnum.STOPCOCK +userdefined = IfcValveTypeEnum.USERDEFINED +notdefined = IfcValveTypeEnum.NOTDEFINED IfcVibrationIsolatorTypeEnum = enum_namespace() -compression = getattr(IfcVibrationIsolatorTypeEnum, 'COMPRESSION', INDETERMINATE) -spring = getattr(IfcVibrationIsolatorTypeEnum, 'SPRING', INDETERMINATE) -userdefined = getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVibrationIsolatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +compression = IfcVibrationIsolatorTypeEnum.COMPRESSION +spring = IfcVibrationIsolatorTypeEnum.SPRING +userdefined = IfcVibrationIsolatorTypeEnum.USERDEFINED +notdefined = IfcVibrationIsolatorTypeEnum.NOTDEFINED IfcVoidingFeatureTypeEnum = enum_namespace() -cutout = getattr(IfcVoidingFeatureTypeEnum, 'CUTOUT', INDETERMINATE) -notch = getattr(IfcVoidingFeatureTypeEnum, 'NOTCH', INDETERMINATE) -hole = getattr(IfcVoidingFeatureTypeEnum, 'HOLE', INDETERMINATE) -miter = getattr(IfcVoidingFeatureTypeEnum, 'MITER', INDETERMINATE) -chamfer = getattr(IfcVoidingFeatureTypeEnum, 'CHAMFER', INDETERMINATE) -edge = getattr(IfcVoidingFeatureTypeEnum, 'EDGE', INDETERMINATE) -userdefined = getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVoidingFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +cutout = IfcVoidingFeatureTypeEnum.CUTOUT +notch = IfcVoidingFeatureTypeEnum.NOTCH +hole = IfcVoidingFeatureTypeEnum.HOLE +miter = IfcVoidingFeatureTypeEnum.MITER +chamfer = IfcVoidingFeatureTypeEnum.CHAMFER +edge = IfcVoidingFeatureTypeEnum.EDGE +userdefined = IfcVoidingFeatureTypeEnum.USERDEFINED +notdefined = IfcVoidingFeatureTypeEnum.NOTDEFINED IfcWallTypeEnum = enum_namespace() -movable = getattr(IfcWallTypeEnum, 'MOVABLE', INDETERMINATE) -parapet = getattr(IfcWallTypeEnum, 'PARAPET', INDETERMINATE) -partitioning = getattr(IfcWallTypeEnum, 'PARTITIONING', INDETERMINATE) -plumbingwall = getattr(IfcWallTypeEnum, 'PLUMBINGWALL', INDETERMINATE) -shear = getattr(IfcWallTypeEnum, 'SHEAR', INDETERMINATE) -solidwall = getattr(IfcWallTypeEnum, 'SOLIDWALL', INDETERMINATE) -standard = getattr(IfcWallTypeEnum, 'STANDARD', INDETERMINATE) -polygonal = getattr(IfcWallTypeEnum, 'POLYGONAL', INDETERMINATE) -elementedwall = getattr(IfcWallTypeEnum, 'ELEMENTEDWALL', INDETERMINATE) -userdefined = getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +movable = IfcWallTypeEnum.MOVABLE +parapet = IfcWallTypeEnum.PARAPET +partitioning = IfcWallTypeEnum.PARTITIONING +plumbingwall = IfcWallTypeEnum.PLUMBINGWALL +shear = IfcWallTypeEnum.SHEAR +solidwall = IfcWallTypeEnum.SOLIDWALL +standard = IfcWallTypeEnum.STANDARD +polygonal = IfcWallTypeEnum.POLYGONAL +elementedwall = IfcWallTypeEnum.ELEMENTEDWALL +userdefined = IfcWallTypeEnum.USERDEFINED +notdefined = IfcWallTypeEnum.NOTDEFINED IfcWasteTerminalTypeEnum = enum_namespace() -floortrap = getattr(IfcWasteTerminalTypeEnum, 'FLOORTRAP', INDETERMINATE) -floorwaste = getattr(IfcWasteTerminalTypeEnum, 'FLOORWASTE', INDETERMINATE) -gullysump = getattr(IfcWasteTerminalTypeEnum, 'GULLYSUMP', INDETERMINATE) -gullytrap = getattr(IfcWasteTerminalTypeEnum, 'GULLYTRAP', INDETERMINATE) -roofdrain = getattr(IfcWasteTerminalTypeEnum, 'ROOFDRAIN', INDETERMINATE) -wastedisposalunit = getattr(IfcWasteTerminalTypeEnum, 'WASTEDISPOSALUNIT', INDETERMINATE) -wastetrap = getattr(IfcWasteTerminalTypeEnum, 'WASTETRAP', INDETERMINATE) -userdefined = getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWasteTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +floortrap = IfcWasteTerminalTypeEnum.FLOORTRAP +floorwaste = IfcWasteTerminalTypeEnum.FLOORWASTE +gullysump = IfcWasteTerminalTypeEnum.GULLYSUMP +gullytrap = IfcWasteTerminalTypeEnum.GULLYTRAP +roofdrain = IfcWasteTerminalTypeEnum.ROOFDRAIN +wastedisposalunit = IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT +wastetrap = IfcWasteTerminalTypeEnum.WASTETRAP +userdefined = IfcWasteTerminalTypeEnum.USERDEFINED +notdefined = IfcWasteTerminalTypeEnum.NOTDEFINED IfcWindowPanelOperationEnum = enum_namespace() -sidehungrighthand = getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGRIGHTHAND', INDETERMINATE) -sidehunglefthand = getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGLEFTHAND', INDETERMINATE) -tiltandturnrighthand = getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNRIGHTHAND', INDETERMINATE) -tiltandturnlefthand = getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNLEFTHAND', INDETERMINATE) -tophung = getattr(IfcWindowPanelOperationEnum, 'TOPHUNG', INDETERMINATE) -bottomhung = getattr(IfcWindowPanelOperationEnum, 'BOTTOMHUNG', INDETERMINATE) -pivothorizontal = getattr(IfcWindowPanelOperationEnum, 'PIVOTHORIZONTAL', INDETERMINATE) -pivotvertical = getattr(IfcWindowPanelOperationEnum, 'PIVOTVERTICAL', INDETERMINATE) -slidinghorizontal = getattr(IfcWindowPanelOperationEnum, 'SLIDINGHORIZONTAL', INDETERMINATE) -slidingvertical = getattr(IfcWindowPanelOperationEnum, 'SLIDINGVERTICAL', INDETERMINATE) -removablecasement = getattr(IfcWindowPanelOperationEnum, 'REMOVABLECASEMENT', INDETERMINATE) -fixedcasement = getattr(IfcWindowPanelOperationEnum, 'FIXEDCASEMENT', INDETERMINATE) -otheroperation = getattr(IfcWindowPanelOperationEnum, 'OTHEROPERATION', INDETERMINATE) -notdefined = getattr(IfcWindowPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +sidehungrighthand = IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND +sidehunglefthand = IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND +tiltandturnrighthand = IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND +tiltandturnlefthand = IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND +tophung = IfcWindowPanelOperationEnum.TOPHUNG +bottomhung = IfcWindowPanelOperationEnum.BOTTOMHUNG +pivothorizontal = IfcWindowPanelOperationEnum.PIVOTHORIZONTAL +pivotvertical = IfcWindowPanelOperationEnum.PIVOTVERTICAL +slidinghorizontal = IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL +slidingvertical = IfcWindowPanelOperationEnum.SLIDINGVERTICAL +removablecasement = IfcWindowPanelOperationEnum.REMOVABLECASEMENT +fixedcasement = IfcWindowPanelOperationEnum.FIXEDCASEMENT +otheroperation = IfcWindowPanelOperationEnum.OTHEROPERATION +notdefined = IfcWindowPanelOperationEnum.NOTDEFINED IfcWindowPanelPositionEnum = enum_namespace() -left = getattr(IfcWindowPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = getattr(IfcWindowPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = getattr(IfcWindowPanelPositionEnum, 'RIGHT', INDETERMINATE) -bottom = getattr(IfcWindowPanelPositionEnum, 'BOTTOM', INDETERMINATE) -top = getattr(IfcWindowPanelPositionEnum, 'TOP', INDETERMINATE) -notdefined = getattr(IfcWindowPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcWindowPanelPositionEnum.LEFT +middle = IfcWindowPanelPositionEnum.MIDDLE +right = IfcWindowPanelPositionEnum.RIGHT +bottom = IfcWindowPanelPositionEnum.BOTTOM +top = IfcWindowPanelPositionEnum.TOP +notdefined = IfcWindowPanelPositionEnum.NOTDEFINED IfcWindowStyleConstructionEnum = enum_namespace() -aluminium = getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = getattr(IfcWindowStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = getattr(IfcWindowStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = getattr(IfcWindowStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -plastic = getattr(IfcWindowStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -other_construction = getattr(IfcWindowStyleConstructionEnum, 'OTHER_CONSTRUCTION', INDETERMINATE) -notdefined = getattr(IfcWindowStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcWindowStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcWindowStyleConstructionEnum.STEEL +wood = IfcWindowStyleConstructionEnum.WOOD +aluminium_wood = IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD +plastic = IfcWindowStyleConstructionEnum.PLASTIC +other_construction = IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION +notdefined = IfcWindowStyleConstructionEnum.NOTDEFINED IfcWindowStyleOperationEnum = enum_namespace() -single_panel = getattr(IfcWindowStyleOperationEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = getattr(IfcWindowStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowStyleOperationEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowStyleOperationEnum.USERDEFINED +notdefined = IfcWindowStyleOperationEnum.NOTDEFINED IfcWindowTypeEnum = enum_namespace() -window = getattr(IfcWindowTypeEnum, 'WINDOW', INDETERMINATE) -skylight = getattr(IfcWindowTypeEnum, 'SKYLIGHT', INDETERMINATE) -lightdome = getattr(IfcWindowTypeEnum, 'LIGHTDOME', INDETERMINATE) -userdefined = getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowTypeEnum, 'NOTDEFINED', INDETERMINATE) +window = IfcWindowTypeEnum.WINDOW +skylight = IfcWindowTypeEnum.SKYLIGHT +lightdome = IfcWindowTypeEnum.LIGHTDOME +userdefined = IfcWindowTypeEnum.USERDEFINED +notdefined = IfcWindowTypeEnum.NOTDEFINED IfcWindowTypePartitioningEnum = enum_namespace() -single_panel = getattr(IfcWindowTypePartitioningEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = getattr(IfcWindowTypePartitioningEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowTypePartitioningEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowTypePartitioningEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowTypePartitioningEnum.USERDEFINED +notdefined = IfcWindowTypePartitioningEnum.NOTDEFINED IfcWorkCalendarTypeEnum = enum_namespace() -firstshift = getattr(IfcWorkCalendarTypeEnum, 'FIRSTSHIFT', INDETERMINATE) -secondshift = getattr(IfcWorkCalendarTypeEnum, 'SECONDSHIFT', INDETERMINATE) -thirdshift = getattr(IfcWorkCalendarTypeEnum, 'THIRDSHIFT', INDETERMINATE) -userdefined = getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkCalendarTypeEnum, 'NOTDEFINED', INDETERMINATE) +firstshift = IfcWorkCalendarTypeEnum.FIRSTSHIFT +secondshift = IfcWorkCalendarTypeEnum.SECONDSHIFT +thirdshift = IfcWorkCalendarTypeEnum.THIRDSHIFT +userdefined = IfcWorkCalendarTypeEnum.USERDEFINED +notdefined = IfcWorkCalendarTypeEnum.NOTDEFINED IfcWorkPlanTypeEnum = enum_namespace() -actual = getattr(IfcWorkPlanTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = getattr(IfcWorkPlanTypeEnum, 'BASELINE', INDETERMINATE) -planned = getattr(IfcWorkPlanTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkPlanTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkPlanTypeEnum.ACTUAL +baseline = IfcWorkPlanTypeEnum.BASELINE +planned = IfcWorkPlanTypeEnum.PLANNED +userdefined = IfcWorkPlanTypeEnum.USERDEFINED +notdefined = IfcWorkPlanTypeEnum.NOTDEFINED IfcWorkScheduleTypeEnum = enum_namespace() -actual = getattr(IfcWorkScheduleTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = getattr(IfcWorkScheduleTypeEnum, 'BASELINE', INDETERMINATE) -planned = getattr(IfcWorkScheduleTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkScheduleTypeEnum.ACTUAL +baseline = IfcWorkScheduleTypeEnum.BASELINE +planned = IfcWorkScheduleTypeEnum.PLANNED +userdefined = IfcWorkScheduleTypeEnum.USERDEFINED +notdefined = IfcWorkScheduleTypeEnum.NOTDEFINED def IfcActionRequest(*args, **kwargs): return ifcopenshell.create_entity('IfcActionRequest', 'IFC4X1', *args, **kwargs) @@ -4407,7 +4417,7 @@ class IfcBoxAlignment_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False class IfcCardinalPointReference_GreaterThanZero: SCOPE = 'type' @@ -4488,7 +4498,7 @@ class IfcFontStyle_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False class IfcFontVariant_WR1: SCOPE = 'type' @@ -4497,7 +4507,7 @@ class IfcFontVariant_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False class IfcFontWeight_WR1: SCOPE = 'type' @@ -4506,7 +4516,7 @@ class IfcFontWeight_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False class IfcHeatingValueMeasure_WR1: SCOPE = 'type' @@ -4605,7 +4615,7 @@ class IfcTextAlignment_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False class IfcTextDecoration_WR1: SCOPE = 'type' @@ -4614,7 +4624,7 @@ class IfcTextDecoration_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False class IfcTextTransformation_WR1: SCOPE = 'type' @@ -4623,7 +4633,7 @@ class IfcTextTransformation_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False class IfcActorRole_WR1: SCOPE = 'entity' @@ -4632,8 +4642,8 @@ class IfcActorRole_WR1: @staticmethod def __call__(self): - role = getattr(self, 'Role', INDETERMINATE) - assert (role != getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) or (role == getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedRole', INDETERMINATE)))) is not False + role = express_getattr(self, 'Role', INDETERMINATE) + assert (role != express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) or (role == express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedRole', INDETERMINATE)))) is not False class IfcActuator_CorrectPredefinedType: SCOPE = 'entity' @@ -4642,8 +4652,8 @@ class IfcActuator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcActuator_CorrectTypeAssigned: SCOPE = 'entity' @@ -4652,8 +4662,8 @@ class IfcActuator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcactuatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcactuatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcActuatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -4662,8 +4672,8 @@ class IfcActuatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAddress_WR1: SCOPE = 'entity' @@ -4672,8 +4682,8 @@ class IfcAddress_WR1: @staticmethod def __call__(self): - purpose = getattr(self, 'Purpose', INDETERMINATE) - assert (not exists(purpose) or (purpose != getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) or (purpose == getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedPurpose', INDETERMINATE))))) is not False + purpose = express_getattr(self, 'Purpose', INDETERMINATE) + assert (not exists(purpose) or (purpose != express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) or (purpose == express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedPurpose', INDETERMINATE))))) is not False class IfcAdvancedBrep_HasAdvancedFaces: SCOPE = 'entity' @@ -4682,7 +4692,7 @@ class IfcAdvancedBrep_HasAdvancedFaces: @staticmethod def __call__(self): - assert (sizeof([afs for afs in getattr(getattr(self, 'Outer', INDETERMINATE), 'CfsFaces', INDETERMINATE) if not 'ifc4x1.ifcadvancedface' in typeof(afs)]) == 0) is not False + assert (sizeof([afs for afs in express_getattr(express_getattr(self, 'Outer', INDETERMINATE), 'CfsFaces', INDETERMINATE) if not 'ifc4x1.ifcadvancedface' in typeof(afs)]) == 0) is not False class IfcAdvancedBrepWithVoids_VoidsHaveAdvancedFaces: SCOPE = 'entity' @@ -4691,8 +4701,8 @@ class IfcAdvancedBrepWithVoids_VoidsHaveAdvancedFaces: @staticmethod def __call__(self): - voids = getattr(self, 'Voids', INDETERMINATE) - assert (sizeof([vsh for vsh in voids if sizeof([afs for afs in getattr(vsh, 'CfsFaces', INDETERMINATE) if not 'ifc4x1.ifcadvancedface' in typeof(afs)]) == 0]) == 0) is not False + voids = express_getattr(self, 'Voids', INDETERMINATE) + assert (sizeof([vsh for vsh in voids if sizeof([afs for afs in express_getattr(vsh, 'CfsFaces', INDETERMINATE) if not 'ifc4x1.ifcadvancedface' in typeof(afs)]) == 0]) == 0) is not False class IfcAdvancedFace_ApplicableSurface: SCOPE = 'entity' @@ -4701,7 +4711,7 @@ class IfcAdvancedFace_ApplicableSurface: @staticmethod def __call__(self): - assert (sizeof(['ifc4x1.ifcelementarysurface', 'ifc4x1.ifcsweptsurface', 'ifc4x1.ifcbsplinesurface'] * typeof(getattr(self, 'FaceSurface', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x1.ifcelementarysurface', 'ifc4x1.ifcsweptsurface', 'ifc4x1.ifcbsplinesurface'] * typeof(express_getattr(self, 'FaceSurface', INDETERMINATE))) == 1) is not False class IfcAdvancedFace_RequiresEdgeCurve: SCOPE = 'entity' @@ -4710,7 +4720,7 @@ class IfcAdvancedFace_RequiresEdgeCurve: @staticmethod def __call__(self): - assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x1.ifcedgeloop' in typeof(getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in getattr(getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not 'ifc4x1.ifcedgecurve' in typeof(getattr(oe, 'EdgeElement', INDETERMINATE))]) == 0]) == 0) is not False + assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in express_getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x1.ifcedgeloop' in typeof(express_getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in express_getattr(express_getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not 'ifc4x1.ifcedgecurve' in typeof(express_getattr(oe, 'EdgeElement', INDETERMINATE))]) == 0]) == 0) is not False class IfcAdvancedFace_ApplicableEdgeCurves: SCOPE = 'entity' @@ -4719,7 +4729,7 @@ class IfcAdvancedFace_ApplicableEdgeCurves: @staticmethod def __call__(self): - assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x1.ifcedgeloop' in typeof(getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in getattr(getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not sizeof(['ifc4x1.ifcline', 'ifc4x1.ifcconic', 'ifc4x1.ifcpolyline', 'ifc4x1.ifcbsplinecurve'] * typeof(getattr(getattr(oe, 'EdgeElement', INDETERMINATE), 'EdgeGeometry', INDETERMINATE))) == 1]) == 0]) == 0) is not False + assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in express_getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x1.ifcedgeloop' in typeof(express_getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in express_getattr(express_getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not sizeof(['ifc4x1.ifcline', 'ifc4x1.ifcconic', 'ifc4x1.ifcpolyline', 'ifc4x1.ifcbsplinecurve'] * typeof(express_getattr(express_getattr(oe, 'EdgeElement', INDETERMINATE), 'EdgeGeometry', INDETERMINATE))) == 1]) == 0]) == 0) is not False class IfcAirTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -4728,8 +4738,8 @@ class IfcAirTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -4738,8 +4748,8 @@ class IfcAirTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcairterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcairterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirTerminalBox_CorrectPredefinedType: SCOPE = 'entity' @@ -4748,8 +4758,8 @@ class IfcAirTerminalBox_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirTerminalBox_CorrectTypeAssigned: SCOPE = 'entity' @@ -4758,8 +4768,8 @@ class IfcAirTerminalBox_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcairterminalboxtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcairterminalboxtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirTerminalBoxType_CorrectPredefinedType: SCOPE = 'entity' @@ -4768,8 +4778,8 @@ class IfcAirTerminalBoxType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAirTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -4778,8 +4788,8 @@ class IfcAirTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAirToAirHeatRecovery_CorrectPredefinedType: SCOPE = 'entity' @@ -4788,8 +4798,8 @@ class IfcAirToAirHeatRecovery_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirToAirHeatRecovery_CorrectTypeAssigned: SCOPE = 'entity' @@ -4798,8 +4808,8 @@ class IfcAirToAirHeatRecovery_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcairtoairheatrecoverytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcairtoairheatrecoverytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirToAirHeatRecoveryType_CorrectPredefinedType: SCOPE = 'entity' @@ -4808,8 +4818,8 @@ class IfcAirToAirHeatRecoveryType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAlarm_CorrectPredefinedType: SCOPE = 'entity' @@ -4818,8 +4828,8 @@ class IfcAlarm_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAlarm_CorrectTypeAssigned: SCOPE = 'entity' @@ -4828,8 +4838,8 @@ class IfcAlarm_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcalarmtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcalarmtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAlarmType_CorrectPredefinedType: SCOPE = 'entity' @@ -4838,8 +4848,8 @@ class IfcAlarmType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcApproval_HasIdentifierOrName: SCOPE = 'entity' @@ -4848,8 +4858,8 @@ class IfcApproval_HasIdentifierOrName: @staticmethod def __call__(self): - identifier = getattr(self, 'Identifier', INDETERMINATE) - name = getattr(self, 'Name', INDETERMINATE) + identifier = express_getattr(self, 'Identifier', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) assert (exists(identifier) or exists(name)) is not False class IfcArbitraryClosedProfileDef_WR1: @@ -4859,8 +4869,8 @@ class IfcArbitraryClosedProfileDef_WR1: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) - assert (getattr(outercurve, 'Dim', INDETERMINATE) == 2) is not False + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) + assert (express_getattr(outercurve, 'Dim', INDETERMINATE) == 2) is not False class IfcArbitraryClosedProfileDef_WR2: SCOPE = 'entity' @@ -4869,7 +4879,7 @@ class IfcArbitraryClosedProfileDef_WR2: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) assert (not 'ifc4x1.ifcline' in typeof(outercurve)) is not False class IfcArbitraryClosedProfileDef_WR3: @@ -4879,7 +4889,7 @@ class IfcArbitraryClosedProfileDef_WR3: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) assert (not 'ifc4x1.ifcoffsetcurve2d' in typeof(outercurve)) is not False class IfcArbitraryOpenProfileDef_WR11: @@ -4889,7 +4899,7 @@ class IfcArbitraryOpenProfileDef_WR11: @staticmethod def __call__(self): - assert ('ifc4x1.ifccenterlineprofiledef' in typeof(self) or getattr(self, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False + assert ('ifc4x1.ifccenterlineprofiledef' in typeof(self) or express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False class IfcArbitraryOpenProfileDef_WR12: SCOPE = 'entity' @@ -4898,8 +4908,8 @@ class IfcArbitraryOpenProfileDef_WR12: @staticmethod def __call__(self): - curve = getattr(self, 'Curve', INDETERMINATE) - assert (getattr(curve, 'Dim', INDETERMINATE) == 2) is not False + curve = express_getattr(self, 'Curve', INDETERMINATE) + assert (express_getattr(curve, 'Dim', INDETERMINATE) == 2) is not False class IfcArbitraryProfileDefWithVoids_WR1: SCOPE = 'entity' @@ -4908,7 +4918,7 @@ class IfcArbitraryProfileDefWithVoids_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'ProfileType', INDETERMINATE) == area) is not False + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == area) is not False class IfcArbitraryProfileDefWithVoids_WR2: SCOPE = 'entity' @@ -4917,8 +4927,8 @@ class IfcArbitraryProfileDefWithVoids_WR2: @staticmethod def __call__(self): - innercurves = getattr(self, 'InnerCurves', INDETERMINATE) - assert (sizeof([temp for temp in innercurves if getattr(temp, 'Dim', INDETERMINATE) != 2]) == 0) is not False + innercurves = express_getattr(self, 'InnerCurves', INDETERMINATE) + assert (sizeof([temp for temp in innercurves if express_getattr(temp, 'Dim', INDETERMINATE) != 2]) == 0) is not False class IfcArbitraryProfileDefWithVoids_WR3: SCOPE = 'entity' @@ -4927,7 +4937,7 @@ class IfcArbitraryProfileDefWithVoids_WR3: @staticmethod def __call__(self): - innercurves = getattr(self, 'InnerCurves', INDETERMINATE) + innercurves = express_getattr(self, 'InnerCurves', INDETERMINATE) assert (sizeof([temp for temp in innercurves if 'ifc4x1.ifcline' in typeof(temp)]) == 0) is not False class IfcAsymmetricIShapeProfileDef_ValidFlangeThickness: @@ -4937,9 +4947,9 @@ class IfcAsymmetricIShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - bottomflangethickness = getattr(self, 'BottomFlangeThickness', INDETERMINATE) - topflangethickness = getattr(self, 'TopFlangeThickness', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + bottomflangethickness = express_getattr(self, 'BottomFlangeThickness', INDETERMINATE) + topflangethickness = express_getattr(self, 'TopFlangeThickness', INDETERMINATE) assert (not exists(topflangethickness) or bottomflangethickness + topflangethickness < overalldepth) is not False class IfcAsymmetricIShapeProfileDef_ValidWebThickness: @@ -4949,9 +4959,9 @@ class IfcAsymmetricIShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - bottomflangewidth = getattr(self, 'BottomFlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - topflangewidth = getattr(self, 'TopFlangeWidth', INDETERMINATE) + bottomflangewidth = express_getattr(self, 'BottomFlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + topflangewidth = express_getattr(self, 'TopFlangeWidth', INDETERMINATE) assert (webthickness < bottomflangewidth and webthickness < topflangewidth) is not False class IfcAsymmetricIShapeProfileDef_ValidBottomFilletRadius: @@ -4961,9 +4971,9 @@ class IfcAsymmetricIShapeProfileDef_ValidBottomFilletRadius: @staticmethod def __call__(self): - bottomflangewidth = getattr(self, 'BottomFlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - bottomflangefilletradius = getattr(self, 'BottomFlangeFilletRadius', INDETERMINATE) + bottomflangewidth = express_getattr(self, 'BottomFlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + bottomflangefilletradius = express_getattr(self, 'BottomFlangeFilletRadius', INDETERMINATE) assert (not exists(bottomflangefilletradius) or bottomflangefilletradius <= (bottomflangewidth - webthickness) / 2.0) is not False class IfcAsymmetricIShapeProfileDef_ValidTopFilletRadius: @@ -4973,9 +4983,9 @@ class IfcAsymmetricIShapeProfileDef_ValidTopFilletRadius: @staticmethod def __call__(self): - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - topflangewidth = getattr(self, 'TopFlangeWidth', INDETERMINATE) - topflangefilletradius = getattr(self, 'TopFlangeFilletRadius', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + topflangewidth = express_getattr(self, 'TopFlangeWidth', INDETERMINATE) + topflangefilletradius = express_getattr(self, 'TopFlangeFilletRadius', INDETERMINATE) assert (not exists(topflangefilletradius) or topflangefilletradius <= (topflangewidth - webthickness) / 2.0) is not False class IfcAudioVisualAppliance_CorrectPredefinedType: @@ -4985,8 +4995,8 @@ class IfcAudioVisualAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAudioVisualAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -4995,8 +5005,8 @@ class IfcAudioVisualAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcaudiovisualappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcaudiovisualappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAudioVisualApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -5005,8 +5015,8 @@ class IfcAudioVisualApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAxis1Placement_AxisIs3D: SCOPE = 'entity' @@ -5015,8 +5025,8 @@ class IfcAxis1Placement_AxisIs3D: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (not exists(axis) or getattr(axis, 'Dim', INDETERMINATE) == 3) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (not exists(axis) or express_getattr(axis, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis1Placement_LocationIs3D: SCOPE = 'entity' @@ -5025,10 +5035,10 @@ class IfcAxis1Placement_LocationIs3D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False def calc_IfcAxis1Placement_Z(self): - axis = getattr(self, 'Axis', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) return nvl(IfcNormalise(axis), IfcDirection(DirectionRatios=[0.0, 0.0, 1.0])) class IfcAxis2Placement2D_RefDirIs2D: @@ -5038,8 +5048,8 @@ class IfcAxis2Placement2D_RefDirIs2D: @staticmethod def __call__(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(refdirection) or getattr(refdirection, 'Dim', INDETERMINATE) == 2) is not False + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(refdirection) or express_getattr(refdirection, 'Dim', INDETERMINATE) == 2) is not False class IfcAxis2Placement2D_LocationIs2D: SCOPE = 'entity' @@ -5048,10 +5058,10 @@ class IfcAxis2Placement2D_LocationIs2D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False def calc_IfcAxis2Placement2D_P(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) return IfcBuild2Axes(refdirection) class IfcAxis2Placement3D_LocationIs3D: @@ -5061,7 +5071,7 @@ class IfcAxis2Placement3D_LocationIs3D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_AxisIs3D: SCOPE = 'entity' @@ -5070,8 +5080,8 @@ class IfcAxis2Placement3D_AxisIs3D: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (not exists(axis) or getattr(axis, 'Dim', INDETERMINATE) == 3) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (not exists(axis) or express_getattr(axis, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_RefDirIs3D: SCOPE = 'entity' @@ -5080,8 +5090,8 @@ class IfcAxis2Placement3D_RefDirIs3D: @staticmethod def __call__(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(refdirection) or getattr(refdirection, 'Dim', INDETERMINATE) == 3) is not False + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(refdirection) or express_getattr(refdirection, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_AxisToRefDirPosition: SCOPE = 'entity' @@ -5090,9 +5100,9 @@ class IfcAxis2Placement3D_AxisToRefDirPosition: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(axis) or not exists(refdirection) or getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(axis) or not exists(refdirection) or express_getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False class IfcAxis2Placement3D_AxisAndRefDirProvision: SCOPE = 'entity' @@ -5101,13 +5111,13 @@ class IfcAxis2Placement3D_AxisAndRefDirProvision: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) assert (not exists(axis) ^ exists(refdirection)) is not False def calc_IfcAxis2Placement3D_P(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) return IfcBuildAxes(axis, refdirection) class IfcBSplineCurve_SameDim: @@ -5117,16 +5127,16 @@ class IfcBSplineCurve_SameDim: @staticmethod def __call__(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - assert (sizeof([temp for temp in controlpointslist if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + assert (sizeof([temp for temp in controlpointslist if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcBSplineCurve_UpperIndexOnControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(controlpointslist) - 1 def calc_IfcBSplineCurve_ControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - upperindexoncontrolpoints = getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + upperindexoncontrolpoints = express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) return IfcListToArray(controlpointslist, 0, upperindexoncontrolpoints) class IfcBSplineCurveWithKnots_ConsistentBSpline: @@ -5136,11 +5146,11 @@ class IfcBSplineCurveWithKnots_ConsistentBSpline: @staticmethod def __call__(self): - degree = getattr(self, 'Degree', INDETERMINATE) - upperindexoncontrolpoints = getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) - knotmultiplicities = getattr(self, 'KnotMultiplicities', INDETERMINATE) - knots = getattr(self, 'Knots', INDETERMINATE) - upperindexonknots = getattr(self, 'UpperIndexOnKnots', INDETERMINATE) + degree = express_getattr(self, 'Degree', INDETERMINATE) + upperindexoncontrolpoints = express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) + knotmultiplicities = express_getattr(self, 'KnotMultiplicities', INDETERMINATE) + knots = express_getattr(self, 'Knots', INDETERMINATE) + upperindexonknots = express_getattr(self, 'UpperIndexOnKnots', INDETERMINATE) assert IfcConstraintsParamBSpline(degree, upperindexonknots, upperindexoncontrolpoints, knotmultiplicities, knots) is not False class IfcBSplineCurveWithKnots_CorrespondingKnotLists: @@ -5150,26 +5160,26 @@ class IfcBSplineCurveWithKnots_CorrespondingKnotLists: @staticmethod def __call__(self): - knotmultiplicities = getattr(self, 'KnotMultiplicities', INDETERMINATE) - upperindexonknots = getattr(self, 'UpperIndexOnKnots', INDETERMINATE) + knotmultiplicities = express_getattr(self, 'KnotMultiplicities', INDETERMINATE) + upperindexonknots = express_getattr(self, 'UpperIndexOnKnots', INDETERMINATE) assert (sizeof(knotmultiplicities) == upperindexonknots) is not False def calc_IfcBSplineCurveWithKnots_UpperIndexOnKnots(self): - knots = getattr(self, 'Knots', INDETERMINATE) + knots = express_getattr(self, 'Knots', INDETERMINATE) return sizeof(knots) def calc_IfcBSplineSurface_UUpper(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(controlpointslist) - 1 def calc_IfcBSplineSurface_VUpper(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) - 1 def calc_IfcBSplineSurface_ControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - uupper = getattr(self, 'UUpper', INDETERMINATE) - vupper = getattr(self, 'VUpper', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + uupper = express_getattr(self, 'UUpper', INDETERMINATE) + vupper = express_getattr(self, 'VUpper', INDETERMINATE) return IfcMakeArrayOfArray(controlpointslist, 0, uupper, 0, vupper) class IfcBSplineSurfaceWithKnots_UDirectionConstraints: @@ -5179,10 +5189,10 @@ class IfcBSplineSurfaceWithKnots_UDirectionConstraints: @staticmethod def __call__(self): - umultiplicities = getattr(self, 'UMultiplicities', INDETERMINATE) - uknots = getattr(self, 'UKnots', INDETERMINATE) - knotuupper = getattr(self, 'KnotUUpper', INDETERMINATE) - assert IfcConstraintsParamBSpline(getattr(self, 'UDegree', INDETERMINATE), knotuupper, getattr(self, 'UUpper', INDETERMINATE), umultiplicities, uknots) is not False + umultiplicities = express_getattr(self, 'UMultiplicities', INDETERMINATE) + uknots = express_getattr(self, 'UKnots', INDETERMINATE) + knotuupper = express_getattr(self, 'KnotUUpper', INDETERMINATE) + assert IfcConstraintsParamBSpline(express_getattr(self, 'UDegree', INDETERMINATE), knotuupper, express_getattr(self, 'UUpper', INDETERMINATE), umultiplicities, uknots) is not False class IfcBSplineSurfaceWithKnots_VDirectionConstraints: SCOPE = 'entity' @@ -5191,10 +5201,10 @@ class IfcBSplineSurfaceWithKnots_VDirectionConstraints: @staticmethod def __call__(self): - vmultiplicities = getattr(self, 'VMultiplicities', INDETERMINATE) - vknots = getattr(self, 'VKnots', INDETERMINATE) - knotvupper = getattr(self, 'KnotVUpper', INDETERMINATE) - assert IfcConstraintsParamBSpline(getattr(self, 'VDegree', INDETERMINATE), knotvupper, getattr(self, 'VUpper', INDETERMINATE), vmultiplicities, vknots) is not False + vmultiplicities = express_getattr(self, 'VMultiplicities', INDETERMINATE) + vknots = express_getattr(self, 'VKnots', INDETERMINATE) + knotvupper = express_getattr(self, 'KnotVUpper', INDETERMINATE) + assert IfcConstraintsParamBSpline(express_getattr(self, 'VDegree', INDETERMINATE), knotvupper, express_getattr(self, 'VUpper', INDETERMINATE), vmultiplicities, vknots) is not False class IfcBSplineSurfaceWithKnots_CorrespondingULists: SCOPE = 'entity' @@ -5203,8 +5213,8 @@ class IfcBSplineSurfaceWithKnots_CorrespondingULists: @staticmethod def __call__(self): - umultiplicities = getattr(self, 'UMultiplicities', INDETERMINATE) - knotuupper = getattr(self, 'KnotUUpper', INDETERMINATE) + umultiplicities = express_getattr(self, 'UMultiplicities', INDETERMINATE) + knotuupper = express_getattr(self, 'KnotUUpper', INDETERMINATE) assert (sizeof(umultiplicities) == knotuupper) is not False class IfcBSplineSurfaceWithKnots_CorrespondingVLists: @@ -5214,16 +5224,16 @@ class IfcBSplineSurfaceWithKnots_CorrespondingVLists: @staticmethod def __call__(self): - vmultiplicities = getattr(self, 'VMultiplicities', INDETERMINATE) - knotvupper = getattr(self, 'KnotVUpper', INDETERMINATE) + vmultiplicities = express_getattr(self, 'VMultiplicities', INDETERMINATE) + knotvupper = express_getattr(self, 'KnotVUpper', INDETERMINATE) assert (sizeof(vmultiplicities) == knotvupper) is not False def calc_IfcBSplineSurfaceWithKnots_KnotVUpper(self): - vknots = getattr(self, 'VKnots', INDETERMINATE) + vknots = express_getattr(self, 'VKnots', INDETERMINATE) return sizeof(vknots) def calc_IfcBSplineSurfaceWithKnots_KnotUUpper(self): - uknots = getattr(self, 'UKnots', INDETERMINATE) + uknots = express_getattr(self, 'UKnots', INDETERMINATE) return sizeof(uknots) class IfcBeam_CorrectPredefinedType: @@ -5233,8 +5243,8 @@ class IfcBeam_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBeam_CorrectTypeAssigned: SCOPE = 'entity' @@ -5243,8 +5253,8 @@ class IfcBeam_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcbeamtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcbeamtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBeamStandardCase_HasMaterialProfileSetUsage: SCOPE = 'entity' @@ -5253,7 +5263,7 @@ class IfcBeamStandardCase_HasMaterialProfileSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x1.ifcrelassociates.relatedobjects') if 'ifc4x1.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x1.ifcmaterialprofilesetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x1.ifcrelassociates.relatedobjects') if 'ifc4x1.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x1.ifcmaterialprofilesetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcBeamType_CorrectPredefinedType: SCOPE = 'entity' @@ -5262,8 +5272,8 @@ class IfcBeamType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBlobTexture_SupportedRasterFormat: SCOPE = 'entity' @@ -5272,7 +5282,7 @@ class IfcBlobTexture_SupportedRasterFormat: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['bmp', 'jpg', 'gif', 'png']) is not False + assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['bmp', 'jpg', 'gif', 'png']) is not False class IfcBlobTexture_RasterCodeByteStream: SCOPE = 'entity' @@ -5281,7 +5291,7 @@ class IfcBlobTexture_RasterCodeByteStream: @staticmethod def __call__(self): - rastercode = getattr(self, 'RasterCode', INDETERMINATE) + rastercode = express_getattr(self, 'RasterCode', INDETERMINATE) assert (blength(rastercode) % 8 == 0) is not False class IfcBoiler_CorrectPredefinedType: @@ -5291,8 +5301,8 @@ class IfcBoiler_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBoiler_CorrectTypeAssigned: SCOPE = 'entity' @@ -5301,8 +5311,8 @@ class IfcBoiler_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcboilertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcboilertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBoilerType_CorrectPredefinedType: SCOPE = 'entity' @@ -5311,8 +5321,8 @@ class IfcBoilerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBooleanClippingResult_FirstOperandType: SCOPE = 'entity' @@ -5321,7 +5331,7 @@ class IfcBooleanClippingResult_FirstOperandType: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) assert ('ifc4x1.ifcsweptareasolid' in typeof(firstoperand) or 'ifc4x1.ifcsweptdiscsolid' in typeof(firstoperand) or 'ifc4x1.ifcbooleanclippingresult' in typeof(firstoperand)) is not False class IfcBooleanClippingResult_SecondOperandType: @@ -5331,7 +5341,7 @@ class IfcBooleanClippingResult_SecondOperandType: @staticmethod def __call__(self): - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) assert ('ifc4x1.ifchalfspacesolid' in typeof(secondoperand)) is not False class IfcBooleanClippingResult_OperatorType: @@ -5341,7 +5351,7 @@ class IfcBooleanClippingResult_OperatorType: @staticmethod def __call__(self): - operator = getattr(self, 'Operator', INDETERMINATE) + operator = express_getattr(self, 'Operator', INDETERMINATE) assert (operator == difference) is not False class IfcBooleanResult_SameDim: @@ -5351,9 +5361,9 @@ class IfcBooleanResult_SameDim: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) - assert (getattr(firstoperand, 'Dim', INDETERMINATE) == getattr(secondoperand, 'Dim', INDETERMINATE)) is not False + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) + assert (express_getattr(firstoperand, 'Dim', INDETERMINATE) == express_getattr(secondoperand, 'Dim', INDETERMINATE)) is not False class IfcBooleanResult_FirstOperandClosed: SCOPE = 'entity' @@ -5362,8 +5372,8 @@ class IfcBooleanResult_FirstOperandClosed: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - assert (not 'ifc4x1.ifctessellatedfaceset' in typeof(firstoperand) or (exists(getattr(firstoperand, 'Closed', INDETERMINATE)) and getattr(firstoperand, 'Closed', INDETERMINATE))) is not False + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + assert (not 'ifc4x1.ifctessellatedfaceset' in typeof(firstoperand) or (exists(express_getattr(firstoperand, 'Closed', INDETERMINATE)) and express_getattr(firstoperand, 'Closed', INDETERMINATE))) is not False class IfcBooleanResult_SecondOperandClosed: SCOPE = 'entity' @@ -5372,12 +5382,12 @@ class IfcBooleanResult_SecondOperandClosed: @staticmethod def __call__(self): - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) - assert (not 'ifc4x1.ifctessellatedfaceset' in typeof(secondoperand) or (exists(getattr(secondoperand, 'Closed', INDETERMINATE)) and getattr(secondoperand, 'Closed', INDETERMINATE))) is not False + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) + assert (not 'ifc4x1.ifctessellatedfaceset' in typeof(secondoperand) or (exists(express_getattr(secondoperand, 'Closed', INDETERMINATE)) and express_getattr(secondoperand, 'Closed', INDETERMINATE))) is not False def calc_IfcBooleanResult_Dim(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - return getattr(firstoperand, 'Dim', INDETERMINATE) + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + return express_getattr(firstoperand, 'Dim', INDETERMINATE) class IfcBoundaryCurve_IsClosed: SCOPE = 'entity' @@ -5386,7 +5396,7 @@ class IfcBoundaryCurve_IsClosed: @staticmethod def __call__(self): - assert getattr(self, 'ClosedCurve', INDETERMINATE) is not False + assert express_getattr(self, 'ClosedCurve', INDETERMINATE) is not False def calc_IfcBoundingBox_Dim(self): return 3 @@ -5398,7 +5408,7 @@ class IfcBoxedHalfSpace_UnboundedSurface: @staticmethod def __call__(self): - assert (not 'ifc4x1.ifccurveboundedplane' in typeof(getattr(self, 'BaseSurface', INDETERMINATE))) is not False + assert (not 'ifc4x1.ifccurveboundedplane' in typeof(express_getattr(self, 'BaseSurface', INDETERMINATE))) is not False class IfcBuildingElement_MaxOneMaterialAssociation: SCOPE = 'entity' @@ -5407,7 +5417,7 @@ class IfcBuildingElement_MaxOneMaterialAssociation: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'HasAssociations', INDETERMINATE) if 'ifc4x1.ifcrelassociatesmaterial' in typeof(temp)]) <= 1) is not False + assert (sizeof([temp for temp in express_getattr(self, 'HasAssociations', INDETERMINATE) if 'ifc4x1.ifcrelassociatesmaterial' in typeof(temp)]) <= 1) is not False class IfcBuildingElementPart_CorrectPredefinedType: SCOPE = 'entity' @@ -5416,8 +5426,8 @@ class IfcBuildingElementPart_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuildingElementPart_CorrectTypeAssigned: SCOPE = 'entity' @@ -5426,8 +5436,8 @@ class IfcBuildingElementPart_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcbuildingelementparttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcbuildingelementparttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBuildingElementPartType_CorrectPredefinedType: SCOPE = 'entity' @@ -5436,8 +5446,8 @@ class IfcBuildingElementPartType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBuildingElementProxy_HasObjectName: SCOPE = 'entity' @@ -5446,7 +5456,7 @@ class IfcBuildingElementProxy_HasObjectName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcBuildingElementProxy_CorrectPredefinedType: SCOPE = 'entity' @@ -5455,8 +5465,8 @@ class IfcBuildingElementProxy_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuildingElementProxy_CorrectTypeAssigned: SCOPE = 'entity' @@ -5465,8 +5475,8 @@ class IfcBuildingElementProxy_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcbuildingelementproxytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcbuildingelementproxytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBuildingElementProxyType_CorrectPredefinedType: SCOPE = 'entity' @@ -5475,8 +5485,8 @@ class IfcBuildingElementProxyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBurner_CorrectPredefinedType: SCOPE = 'entity' @@ -5485,8 +5495,8 @@ class IfcBurner_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBurner_CorrectTypeAssigned: SCOPE = 'entity' @@ -5495,8 +5505,8 @@ class IfcBurner_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcburnertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcburnertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBurnerType_CorrectPredefinedType: SCOPE = 'entity' @@ -5505,8 +5515,8 @@ class IfcBurnerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCShapeProfileDef_ValidGirth: SCOPE = 'entity' @@ -5515,8 +5525,8 @@ class IfcCShapeProfileDef_ValidGirth: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - girth = getattr(self, 'Girth', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + girth = express_getattr(self, 'Girth', INDETERMINATE) assert (girth < depth / 2.0) is not False class IfcCShapeProfileDef_ValidInternalFilletRadius: @@ -5526,10 +5536,10 @@ class IfcCShapeProfileDef_ValidInternalFilletRadius: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - internalfilletradius = getattr(self, 'InternalFilletRadius', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + internalfilletradius = express_getattr(self, 'InternalFilletRadius', INDETERMINATE) assert (not exists(internalfilletradius) or (internalfilletradius <= width / 2.0 - wallthickness and internalfilletradius <= depth / 2.0 - wallthickness)) is not False class IfcCShapeProfileDef_ValidWallThickness: @@ -5539,9 +5549,9 @@ class IfcCShapeProfileDef_ValidWallThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) assert (wallthickness < width / 2.0 and wallthickness < depth / 2.0) is not False class IfcCableCarrierFitting_CorrectPredefinedType: @@ -5551,8 +5561,8 @@ class IfcCableCarrierFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableCarrierFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -5561,8 +5571,8 @@ class IfcCableCarrierFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifccablecarrierfittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifccablecarrierfittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableCarrierFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -5571,8 +5581,8 @@ class IfcCableCarrierFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableCarrierSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -5581,8 +5591,8 @@ class IfcCableCarrierSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableCarrierSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -5591,8 +5601,8 @@ class IfcCableCarrierSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifccablecarriersegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifccablecarriersegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableCarrierSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -5601,8 +5611,8 @@ class IfcCableCarrierSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -5611,8 +5621,8 @@ class IfcCableFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -5621,8 +5631,8 @@ class IfcCableFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifccablefittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifccablefittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -5631,8 +5641,8 @@ class IfcCableFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -5641,8 +5651,8 @@ class IfcCableSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -5651,8 +5661,8 @@ class IfcCableSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifccablesegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifccablesegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -5661,8 +5671,8 @@ class IfcCableSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCartesianPoint_CP2Dor3D: SCOPE = 'entity' @@ -5671,11 +5681,11 @@ class IfcCartesianPoint_CP2Dor3D: @staticmethod def __call__(self): - coordinates = getattr(self, 'Coordinates', INDETERMINATE) + coordinates = express_getattr(self, 'Coordinates', INDETERMINATE) assert (hiindex(coordinates) >= 2) is not False def calc_IfcCartesianPoint_Dim(self): - coordinates = getattr(self, 'Coordinates', INDETERMINATE) + coordinates = express_getattr(self, 'Coordinates', INDETERMINATE) return hiindex(coordinates) def calc_IfcCartesianPointList_Dim(self): @@ -5688,16 +5698,16 @@ class IfcCartesianTransformationOperator_ScaleGreaterZero: @staticmethod def __call__(self): - scl = getattr(self, 'Scl', INDETERMINATE) + scl = express_getattr(self, 'Scl', INDETERMINATE) assert (scl > 0.0) is not False def calc_IfcCartesianTransformationOperator_Scl(self): - scale = getattr(self, 'Scale', INDETERMINATE) + scale = express_getattr(self, 'Scale', INDETERMINATE) return nvl(scale, 1.0) def calc_IfcCartesianTransformationOperator_Dim(self): - localorigin = getattr(self, 'LocalOrigin', INDETERMINATE) - return getattr(localorigin, 'Dim', INDETERMINATE) + localorigin = express_getattr(self, 'LocalOrigin', INDETERMINATE) + return express_getattr(localorigin, 'Dim', INDETERMINATE) class IfcCartesianTransformationOperator2D_DimEqual2: SCOPE = 'entity' @@ -5706,7 +5716,7 @@ class IfcCartesianTransformationOperator2D_DimEqual2: @staticmethod def __call__(self): - assert (getattr(self, 'Dim', INDETERMINATE) == 2) is not False + assert (express_getattr(self, 'Dim', INDETERMINATE) == 2) is not False class IfcCartesianTransformationOperator2D_Axis1Is2D: SCOPE = 'entity' @@ -5715,7 +5725,7 @@ class IfcCartesianTransformationOperator2D_Axis1Is2D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis1', INDETERMINATE)) or getattr(getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (not exists(express_getattr(self, 'Axis1', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False class IfcCartesianTransformationOperator2D_Axis2Is2D: SCOPE = 'entity' @@ -5724,10 +5734,10 @@ class IfcCartesianTransformationOperator2D_Axis2Is2D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis2', INDETERMINATE)) or getattr(getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (not exists(express_getattr(self, 'Axis2', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False def calc_IfcCartesianTransformationOperator2D_U(self): - return IfcBaseAxis(2, getattr(self, 'Axis1', INDETERMINATE), getattr(self, 'Axis2', INDETERMINATE), None) + return IfcBaseAxis(2, express_getattr(self, 'Axis1', INDETERMINATE), express_getattr(self, 'Axis2', INDETERMINATE), None) class IfcCartesianTransformationOperator2DnonUniform_Scale2GreaterZero: SCOPE = 'entity' @@ -5736,12 +5746,12 @@ class IfcCartesianTransformationOperator2DnonUniform_Scale2GreaterZero: @staticmethod def __call__(self): - scl2 = getattr(self, 'Scl2', INDETERMINATE) + scl2 = express_getattr(self, 'Scl2', INDETERMINATE) assert (scl2 > 0.0) is not False def calc_IfcCartesianTransformationOperator2DnonUniform_Scl2(self): - scale2 = getattr(self, 'Scale2', INDETERMINATE) - return nvl(scale2, getattr(self, 'Scl', INDETERMINATE)) + scale2 = express_getattr(self, 'Scale2', INDETERMINATE) + return nvl(scale2, express_getattr(self, 'Scl', INDETERMINATE)) class IfcCartesianTransformationOperator3D_DimIs3D: SCOPE = 'entity' @@ -5750,7 +5760,7 @@ class IfcCartesianTransformationOperator3D_DimIs3D: @staticmethod def __call__(self): - assert (getattr(self, 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(self, 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_Axis1Is3D: SCOPE = 'entity' @@ -5759,7 +5769,7 @@ class IfcCartesianTransformationOperator3D_Axis1Is3D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis1', INDETERMINATE)) or getattr(getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (not exists(express_getattr(self, 'Axis1', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_Axis2Is3D: SCOPE = 'entity' @@ -5768,7 +5778,7 @@ class IfcCartesianTransformationOperator3D_Axis2Is3D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis2', INDETERMINATE)) or getattr(getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (not exists(express_getattr(self, 'Axis2', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_Axis3Is3D: SCOPE = 'entity' @@ -5777,12 +5787,12 @@ class IfcCartesianTransformationOperator3D_Axis3Is3D: @staticmethod def __call__(self): - axis3 = getattr(self, 'Axis3', INDETERMINATE) - assert (not exists(axis3) or getattr(axis3, 'Dim', INDETERMINATE) == 3) is not False + axis3 = express_getattr(self, 'Axis3', INDETERMINATE) + assert (not exists(axis3) or express_getattr(axis3, 'Dim', INDETERMINATE) == 3) is not False def calc_IfcCartesianTransformationOperator3D_U(self): - axis3 = getattr(self, 'Axis3', INDETERMINATE) - return IfcBaseAxis(3, getattr(self, 'Axis1', INDETERMINATE), getattr(self, 'Axis2', INDETERMINATE), axis3) + axis3 = express_getattr(self, 'Axis3', INDETERMINATE) + return IfcBaseAxis(3, express_getattr(self, 'Axis1', INDETERMINATE), express_getattr(self, 'Axis2', INDETERMINATE), axis3) class IfcCartesianTransformationOperator3DnonUniform_Scale2GreaterZero: SCOPE = 'entity' @@ -5791,7 +5801,7 @@ class IfcCartesianTransformationOperator3DnonUniform_Scale2GreaterZero: @staticmethod def __call__(self): - scl2 = getattr(self, 'Scl2', INDETERMINATE) + scl2 = express_getattr(self, 'Scl2', INDETERMINATE) assert (scl2 > 0.0) is not False class IfcCartesianTransformationOperator3DnonUniform_Scale3GreaterZero: @@ -5801,16 +5811,16 @@ class IfcCartesianTransformationOperator3DnonUniform_Scale3GreaterZero: @staticmethod def __call__(self): - scl3 = getattr(self, 'Scl3', INDETERMINATE) + scl3 = express_getattr(self, 'Scl3', INDETERMINATE) assert (scl3 > 0.0) is not False def calc_IfcCartesianTransformationOperator3DnonUniform_Scl2(self): - scale2 = getattr(self, 'Scale2', INDETERMINATE) - return nvl(scale2, getattr(self, 'Scl', INDETERMINATE)) + scale2 = express_getattr(self, 'Scale2', INDETERMINATE) + return nvl(scale2, express_getattr(self, 'Scl', INDETERMINATE)) def calc_IfcCartesianTransformationOperator3DnonUniform_Scl3(self): - scale3 = getattr(self, 'Scale3', INDETERMINATE) - return nvl(scale3, getattr(self, 'Scl', INDETERMINATE)) + scale3 = express_getattr(self, 'Scale3', INDETERMINATE) + return nvl(scale3, express_getattr(self, 'Scl', INDETERMINATE)) class IfcChiller_CorrectPredefinedType: SCOPE = 'entity' @@ -5819,8 +5829,8 @@ class IfcChiller_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcChiller_CorrectTypeAssigned: SCOPE = 'entity' @@ -5829,8 +5839,8 @@ class IfcChiller_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcchillertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcchillertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcChillerType_CorrectPredefinedType: SCOPE = 'entity' @@ -5839,8 +5849,8 @@ class IfcChillerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcChimney_CorrectPredefinedType: SCOPE = 'entity' @@ -5849,8 +5859,8 @@ class IfcChimney_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcChimney_CorrectTypeAssigned: SCOPE = 'entity' @@ -5859,8 +5869,8 @@ class IfcChimney_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcchimneytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcchimneytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcChimneyType_CorrectPredefinedType: SCOPE = 'entity' @@ -5869,8 +5879,8 @@ class IfcChimneyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCircleHollowProfileDef_WR1: SCOPE = 'entity' @@ -5879,8 +5889,8 @@ class IfcCircleHollowProfileDef_WR1: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - assert (wallthickness < getattr(self, 'Radius', INDETERMINATE)) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + assert (wallthickness < express_getattr(self, 'Radius', INDETERMINATE)) is not False class IfcCoil_CorrectPredefinedType: SCOPE = 'entity' @@ -5889,8 +5899,8 @@ class IfcCoil_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCoil_CorrectTypeAssigned: SCOPE = 'entity' @@ -5899,8 +5909,8 @@ class IfcCoil_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifccoiltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifccoiltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoilType_CorrectPredefinedType: SCOPE = 'entity' @@ -5909,8 +5919,8 @@ class IfcCoilType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcColumn_CorrectPredefinedType: SCOPE = 'entity' @@ -5919,8 +5929,8 @@ class IfcColumn_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcColumn_CorrectTypeAssigned: SCOPE = 'entity' @@ -5929,8 +5939,8 @@ class IfcColumn_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifccolumntype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifccolumntype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcColumnStandardCase_HasMaterialProfileSetUsage: SCOPE = 'entity' @@ -5939,7 +5949,7 @@ class IfcColumnStandardCase_HasMaterialProfileSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x1.ifcrelassociates.relatedobjects') if 'ifc4x1.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x1.ifcmaterialprofilesetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x1.ifcrelassociates.relatedobjects') if 'ifc4x1.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x1.ifcmaterialprofilesetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcColumnType_CorrectPredefinedType: SCOPE = 'entity' @@ -5948,8 +5958,8 @@ class IfcColumnType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCommunicationsAppliance_CorrectPredefinedType: SCOPE = 'entity' @@ -5958,8 +5968,8 @@ class IfcCommunicationsAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCommunicationsAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -5968,8 +5978,8 @@ class IfcCommunicationsAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifccommunicationsappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifccommunicationsappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCommunicationsApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -5978,8 +5988,8 @@ class IfcCommunicationsApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcComplexProperty_WR21: SCOPE = 'entity' @@ -5988,7 +5998,7 @@ class IfcComplexProperty_WR21: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert (sizeof([temp for temp in hasproperties if self == temp]) == 0) is not False class IfcComplexProperty_WR22: @@ -5998,7 +6008,7 @@ class IfcComplexProperty_WR22: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert IfcUniquePropertyName(hasproperties) is not False class IfcComplexPropertyTemplate_UniquePropertyNames: @@ -6008,7 +6018,7 @@ class IfcComplexPropertyTemplate_UniquePropertyNames: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert IfcUniquePropertyTemplateNames(haspropertytemplates) is not False class IfcComplexPropertyTemplate_NoSelfReference: @@ -6018,7 +6028,7 @@ class IfcComplexPropertyTemplate_NoSelfReference: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert (sizeof([temp for temp in haspropertytemplates if self == temp]) == 0) is not False class IfcCompositeCurve_CurveContinuous: @@ -6028,9 +6038,9 @@ class IfcCompositeCurve_CurveContinuous: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) - closedcurve = getattr(self, 'ClosedCurve', INDETERMINATE) - assert (not closedcurve and sizeof([temp for temp in segments if getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 1 or (closedcurve and sizeof([temp for temp in segments if getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 0)) is not False + segments = express_getattr(self, 'Segments', INDETERMINATE) + closedcurve = express_getattr(self, 'ClosedCurve', INDETERMINATE) + assert (not closedcurve and sizeof([temp for temp in segments if express_getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 1 or (closedcurve and sizeof([temp for temp in segments if express_getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 0)) is not False class IfcCompositeCurve_SameDim: SCOPE = 'entity' @@ -6039,17 +6049,17 @@ class IfcCompositeCurve_SameDim: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) - assert (sizeof([temp for temp in segments if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(segments, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + segments = express_getattr(self, 'Segments', INDETERMINATE) + assert (sizeof([temp for temp in segments if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(segments, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcCompositeCurve_NSegments(self): - segments = getattr(self, 'Segments', INDETERMINATE) + segments = express_getattr(self, 'Segments', INDETERMINATE) return sizeof(segments) def calc_IfcCompositeCurve_ClosedCurve(self): - segments = getattr(self, 'Segments', INDETERMINATE) - nsegments = getattr(self, 'NSegments', INDETERMINATE) - return getattr(express_getitem(segments, nsegments - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Transition', INDETERMINATE) != discontinuous + segments = express_getattr(self, 'Segments', INDETERMINATE) + nsegments = express_getattr(self, 'NSegments', INDETERMINATE) + return express_getattr(express_getitem(segments, nsegments - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Transition', INDETERMINATE) != discontinuous class IfcCompositeCurveOnSurface_SameSurface: SCOPE = 'entity' @@ -6058,7 +6068,7 @@ class IfcCompositeCurveOnSurface_SameSurface: @staticmethod def __call__(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) assert (sizeof(basissurface) > 0) is not False def calc_IfcCompositeCurveOnSurface_BasisSurface(self): @@ -6071,12 +6081,12 @@ class IfcCompositeCurveSegment_ParentIsBoundedCurve: @staticmethod def __call__(self): - parentcurve = getattr(self, 'ParentCurve', INDETERMINATE) + parentcurve = express_getattr(self, 'ParentCurve', INDETERMINATE) assert ('ifc4x1.ifcboundedcurve' in typeof(parentcurve)) is not False def calc_IfcCompositeCurveSegment_Dim(self): - parentcurve = getattr(self, 'ParentCurve', INDETERMINATE) - return getattr(parentcurve, 'Dim', INDETERMINATE) + parentcurve = express_getattr(self, 'ParentCurve', INDETERMINATE) + return express_getattr(parentcurve, 'Dim', INDETERMINATE) class IfcCompositeProfileDef_InvariantProfileType: SCOPE = 'entity' @@ -6085,8 +6095,8 @@ class IfcCompositeProfileDef_InvariantProfileType: @staticmethod def __call__(self): - profiles = getattr(self, 'Profiles', INDETERMINATE) - assert (sizeof([temp for temp in profiles if getattr(temp, 'ProfileType', INDETERMINATE) != getattr(express_getitem(profiles, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE)]) == 0) is not False + profiles = express_getattr(self, 'Profiles', INDETERMINATE) + assert (sizeof([temp for temp in profiles if express_getattr(temp, 'ProfileType', INDETERMINATE) != express_getattr(express_getitem(profiles, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcCompositeProfileDef_NoRecursion: SCOPE = 'entity' @@ -6095,7 +6105,7 @@ class IfcCompositeProfileDef_NoRecursion: @staticmethod def __call__(self): - profiles = getattr(self, 'Profiles', INDETERMINATE) + profiles = express_getattr(self, 'Profiles', INDETERMINATE) assert (sizeof([temp for temp in profiles if 'ifc4x1.ifccompositeprofiledef' in typeof(temp)]) == 0) is not False class IfcCompressor_CorrectPredefinedType: @@ -6105,8 +6115,8 @@ class IfcCompressor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCompressor_CorrectTypeAssigned: SCOPE = 'entity' @@ -6115,8 +6125,8 @@ class IfcCompressor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifccompressortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifccompressortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCompressorType_CorrectPredefinedType: SCOPE = 'entity' @@ -6125,8 +6135,8 @@ class IfcCompressorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCondenser_CorrectPredefinedType: SCOPE = 'entity' @@ -6135,8 +6145,8 @@ class IfcCondenser_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCondenser_CorrectTypeAssigned: SCOPE = 'entity' @@ -6145,8 +6155,8 @@ class IfcCondenser_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifccondensertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifccondensertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCondenserType_CorrectPredefinedType: SCOPE = 'entity' @@ -6155,8 +6165,8 @@ class IfcCondenserType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcConstraint_WR11: SCOPE = 'entity' @@ -6165,8 +6175,8 @@ class IfcConstraint_WR11: @staticmethod def __call__(self): - constraintgrade = getattr(self, 'ConstraintGrade', INDETERMINATE) - assert (constraintgrade != getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) or (constraintgrade == getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedGrade', INDETERMINATE)))) is not False + constraintgrade = express_getattr(self, 'ConstraintGrade', INDETERMINATE) + assert (constraintgrade != express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) or (constraintgrade == express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedGrade', INDETERMINATE)))) is not False class IfcConstructionEquipmentResource_CorrectPredefinedType: SCOPE = 'entity' @@ -6175,8 +6185,8 @@ class IfcConstructionEquipmentResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionEquipmentResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -6185,8 +6195,8 @@ class IfcConstructionEquipmentResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcConstructionMaterialResource_CorrectPredefinedType: SCOPE = 'entity' @@ -6195,8 +6205,8 @@ class IfcConstructionMaterialResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionMaterialResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -6205,8 +6215,8 @@ class IfcConstructionMaterialResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcConstructionProductResource_CorrectPredefinedType: SCOPE = 'entity' @@ -6215,8 +6225,8 @@ class IfcConstructionProductResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionProductResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -6225,8 +6235,8 @@ class IfcConstructionProductResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcController_CorrectPredefinedType: SCOPE = 'entity' @@ -6235,8 +6245,8 @@ class IfcController_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcController_CorrectTypeAssigned: SCOPE = 'entity' @@ -6245,8 +6255,8 @@ class IfcController_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifccontrollertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifccontrollertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcControllerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6255,8 +6265,8 @@ class IfcControllerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCooledBeam_CorrectPredefinedType: SCOPE = 'entity' @@ -6265,8 +6275,8 @@ class IfcCooledBeam_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCooledBeam_CorrectTypeAssigned: SCOPE = 'entity' @@ -6275,8 +6285,8 @@ class IfcCooledBeam_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifccooledbeamtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifccooledbeamtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCooledBeamType_CorrectPredefinedType: SCOPE = 'entity' @@ -6285,8 +6295,8 @@ class IfcCooledBeamType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCoolingTower_CorrectPredefinedType: SCOPE = 'entity' @@ -6295,8 +6305,8 @@ class IfcCoolingTower_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCoolingTower_CorrectTypeAssigned: SCOPE = 'entity' @@ -6305,8 +6315,8 @@ class IfcCoolingTower_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifccoolingtowertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifccoolingtowertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoolingTowerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6315,8 +6325,8 @@ class IfcCoolingTowerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCovering_CorrectPredefinedType: SCOPE = 'entity' @@ -6325,8 +6335,8 @@ class IfcCovering_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCovering_CorrectTypeAssigned: SCOPE = 'entity' @@ -6335,8 +6345,8 @@ class IfcCovering_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifccoveringtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifccoveringtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoveringType_CorrectPredefinedType: SCOPE = 'entity' @@ -6345,8 +6355,8 @@ class IfcCoveringType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCrewResource_CorrectPredefinedType: SCOPE = 'entity' @@ -6355,8 +6365,8 @@ class IfcCrewResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCrewResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -6365,8 +6375,8 @@ class IfcCrewResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False def calc_IfcCsgPrimitive3D_Dim(self): return 3 @@ -6378,8 +6388,8 @@ class IfcCurtainWall_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCurtainWall_CorrectTypeAssigned: SCOPE = 'entity' @@ -6388,8 +6398,8 @@ class IfcCurtainWall_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifccurtainwalltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifccurtainwalltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCurtainWallType_CorrectPredefinedType: SCOPE = 'entity' @@ -6398,8 +6408,8 @@ class IfcCurtainWallType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcCurve_Dim(self): return IfcCurveDim(self) @@ -6411,7 +6421,7 @@ class IfcCurveStyle_MeasureOfWidth: @staticmethod def __call__(self): - curvewidth = getattr(self, 'CurveWidth', INDETERMINATE) + curvewidth = express_getattr(self, 'CurveWidth', INDETERMINATE) assert (not exists(curvewidth) or 'ifc4x1.ifcpositivelengthmeasure' in typeof(curvewidth) or ('ifc4x1.ifcdescriptivemeasure' in typeof(curvewidth) and curvewidth == 'bylayer')) is not False class IfcCurveStyle_IdentifiableCurveStyle: @@ -6421,9 +6431,9 @@ class IfcCurveStyle_IdentifiableCurveStyle: @staticmethod def __call__(self): - curvefont = getattr(self, 'CurveFont', INDETERMINATE) - curvewidth = getattr(self, 'CurveWidth', INDETERMINATE) - curvecolour = getattr(self, 'CurveColour', INDETERMINATE) + curvefont = express_getattr(self, 'CurveFont', INDETERMINATE) + curvewidth = express_getattr(self, 'CurveWidth', INDETERMINATE) + curvecolour = express_getattr(self, 'CurveColour', INDETERMINATE) assert (exists(curvefont) or exists(curvewidth) or exists(curvecolour)) is not False class IfcCurveStyleFontPattern_VisibleLengthGreaterEqualZero: @@ -6433,7 +6443,7 @@ class IfcCurveStyleFontPattern_VisibleLengthGreaterEqualZero: @staticmethod def __call__(self): - visiblesegmentlength = getattr(self, 'VisibleSegmentLength', INDETERMINATE) + visiblesegmentlength = express_getattr(self, 'VisibleSegmentLength', INDETERMINATE) assert (visiblesegmentlength >= 0.0) is not False class IfcDamper_CorrectPredefinedType: @@ -6443,8 +6453,8 @@ class IfcDamper_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDamper_CorrectTypeAssigned: SCOPE = 'entity' @@ -6453,8 +6463,8 @@ class IfcDamper_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcdampertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcdampertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDamperType_CorrectPredefinedType: SCOPE = 'entity' @@ -6463,8 +6473,8 @@ class IfcDamperType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDerivedProfileDef_InvariantProfileType: SCOPE = 'entity' @@ -6473,8 +6483,8 @@ class IfcDerivedProfileDef_InvariantProfileType: @staticmethod def __call__(self): - parentprofile = getattr(self, 'ParentProfile', INDETERMINATE) - assert (getattr(self, 'ProfileType', INDETERMINATE) == getattr(parentprofile, 'ProfileType', INDETERMINATE)) is not False + parentprofile = express_getattr(self, 'ParentProfile', INDETERMINATE) + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(parentprofile, 'ProfileType', INDETERMINATE)) is not False class IfcDerivedUnit_WR1: SCOPE = 'entity' @@ -6483,8 +6493,8 @@ class IfcDerivedUnit_WR1: @staticmethod def __call__(self): - elements = getattr(self, 'Elements', INDETERMINATE) - assert (sizeof(elements) > 1 or (sizeof(elements) == 1 and getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) != 1)) is not False + elements = express_getattr(self, 'Elements', INDETERMINATE) + assert (sizeof(elements) > 1 or (sizeof(elements) == 1 and express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) != 1)) is not False class IfcDerivedUnit_WR2: SCOPE = 'entity' @@ -6493,11 +6503,11 @@ class IfcDerivedUnit_WR2: @staticmethod def __call__(self): - unittype = getattr(self, 'UnitType', INDETERMINATE) - assert (unittype != getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) or (unittype == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedType', INDETERMINATE)))) is not False + unittype = express_getattr(self, 'UnitType', INDETERMINATE) + assert (unittype != express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) or (unittype == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedType', INDETERMINATE)))) is not False def calc_IfcDerivedUnit_Dimensions(self): - elements = getattr(self, 'Elements', INDETERMINATE) + elements = express_getattr(self, 'Elements', INDETERMINATE) return IfcDeriveDimensionalExponents(elements) class IfcDirection_MagnitudeGreaterZero: @@ -6507,11 +6517,11 @@ class IfcDirection_MagnitudeGreaterZero: @staticmethod def __call__(self): - directionratios = getattr(self, 'DirectionRatios', INDETERMINATE) + directionratios = express_getattr(self, 'DirectionRatios', INDETERMINATE) assert (sizeof([tmp for tmp in directionratios if tmp != 0.0]) > 0) is not False def calc_IfcDirection_Dim(self): - directionratios = getattr(self, 'DirectionRatios', INDETERMINATE) + directionratios = express_getattr(self, 'DirectionRatios', INDETERMINATE) return hiindex(directionratios) class IfcDiscreteAccessory_CorrectPredefinedType: @@ -6521,8 +6531,8 @@ class IfcDiscreteAccessory_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDiscreteAccessory_CorrectTypeAssigned: SCOPE = 'entity' @@ -6531,8 +6541,8 @@ class IfcDiscreteAccessory_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcdiscreteaccessorytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcdiscreteaccessorytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDiscreteAccessoryType_CorrectPredefinedType: SCOPE = 'entity' @@ -6541,8 +6551,8 @@ class IfcDiscreteAccessoryType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDistributionChamberElement_CorrectPredefinedType: SCOPE = 'entity' @@ -6551,8 +6561,8 @@ class IfcDistributionChamberElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDistributionChamberElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -6561,8 +6571,8 @@ class IfcDistributionChamberElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcdistributionchamberelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcdistributionchamberelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDistributionChamberElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -6571,8 +6581,8 @@ class IfcDistributionChamberElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDocumentReference_WR1: SCOPE = 'entity' @@ -6581,8 +6591,8 @@ class IfcDocumentReference_WR1: @staticmethod def __call__(self): - name = getattr(self, 'Name', INDETERMINATE) - referenceddocument = getattr(self, 'ReferencedDocument', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) + referenceddocument = express_getattr(self, 'ReferencedDocument', INDETERMINATE) assert exists(name) ^ exists(referenceddocument) is not False class IfcDoor_CorrectStyleAssigned: @@ -6592,8 +6602,8 @@ class IfcDoor_CorrectStyleAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcdoortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcdoortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDoorLiningProperties_WR31: SCOPE = 'entity' @@ -6602,8 +6612,8 @@ class IfcDoorLiningProperties_WR31: @staticmethod def __call__(self): - liningdepth = getattr(self, 'LiningDepth', INDETERMINATE) - liningthickness = getattr(self, 'LiningThickness', INDETERMINATE) + liningdepth = express_getattr(self, 'LiningDepth', INDETERMINATE) + liningthickness = express_getattr(self, 'LiningThickness', INDETERMINATE) assert (not (exists(liningdepth) and (not exists(liningthickness)))) is not False class IfcDoorLiningProperties_WR32: @@ -6613,8 +6623,8 @@ class IfcDoorLiningProperties_WR32: @staticmethod def __call__(self): - thresholddepth = getattr(self, 'ThresholdDepth', INDETERMINATE) - thresholdthickness = getattr(self, 'ThresholdThickness', INDETERMINATE) + thresholddepth = express_getattr(self, 'ThresholdDepth', INDETERMINATE) + thresholdthickness = express_getattr(self, 'ThresholdThickness', INDETERMINATE) assert (not (exists(thresholddepth) and (not exists(thresholdthickness)))) is not False class IfcDoorLiningProperties_WR33: @@ -6624,8 +6634,8 @@ class IfcDoorLiningProperties_WR33: @staticmethod def __call__(self): - transomthickness = getattr(self, 'TransomThickness', INDETERMINATE) - transomoffset = getattr(self, 'TransomOffset', INDETERMINATE) + transomthickness = express_getattr(self, 'TransomThickness', INDETERMINATE) + transomoffset = express_getattr(self, 'TransomOffset', INDETERMINATE) assert (exists(transomoffset) and exists(transomthickness)) ^ (not exists(transomoffset) and (not exists(transomthickness))) is not False class IfcDoorLiningProperties_WR34: @@ -6635,8 +6645,8 @@ class IfcDoorLiningProperties_WR34: @staticmethod def __call__(self): - casingthickness = getattr(self, 'CasingThickness', INDETERMINATE) - casingdepth = getattr(self, 'CasingDepth', INDETERMINATE) + casingthickness = express_getattr(self, 'CasingThickness', INDETERMINATE) + casingdepth = express_getattr(self, 'CasingDepth', INDETERMINATE) assert (exists(casingdepth) and exists(casingthickness)) ^ (not exists(casingdepth) and (not exists(casingthickness))) is not False class IfcDoorLiningProperties_WR35: @@ -6646,7 +6656,7 @@ class IfcDoorLiningProperties_WR35: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x1.ifcdoortype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x1.ifcdoorstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x1.ifcdoortype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x1.ifcdoorstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcDoorPanelProperties_ApplicableToType: SCOPE = 'entity' @@ -6655,7 +6665,7 @@ class IfcDoorPanelProperties_ApplicableToType: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x1.ifcdoortype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x1.ifcdoorstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x1.ifcdoortype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x1.ifcdoorstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcDoorType_CorrectPredefinedType: SCOPE = 'entity' @@ -6664,8 +6674,8 @@ class IfcDoorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDraughtingPreDefinedColour_PreDefinedColourNames: SCOPE = 'entity' @@ -6674,7 +6684,7 @@ class IfcDraughtingPreDefinedColour_PreDefinedColourNames: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'bylayer']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'bylayer']) is not False class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: SCOPE = 'entity' @@ -6683,7 +6693,7 @@ class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chaindoubledash', 'dashed', 'dotted', 'bylayer']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chaindoubledash', 'dashed', 'dotted', 'bylayer']) is not False class IfcDuctFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -6692,8 +6702,8 @@ class IfcDuctFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -6702,8 +6712,8 @@ class IfcDuctFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcductfittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcductfittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -6712,8 +6722,8 @@ class IfcDuctFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDuctSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -6722,8 +6732,8 @@ class IfcDuctSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -6732,8 +6742,8 @@ class IfcDuctSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcductsegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcductsegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -6742,8 +6752,8 @@ class IfcDuctSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDuctSilencer_CorrectPredefinedType: SCOPE = 'entity' @@ -6752,8 +6762,8 @@ class IfcDuctSilencer_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctSilencer_CorrectTypeAssigned: SCOPE = 'entity' @@ -6762,8 +6772,8 @@ class IfcDuctSilencer_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcductsilencertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcductsilencertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctSilencerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6772,8 +6782,8 @@ class IfcDuctSilencerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEdgeLoop_IsClosed: SCOPE = 'entity' @@ -6782,9 +6792,9 @@ class IfcEdgeLoop_IsClosed: @staticmethod def __call__(self): - edgelist = getattr(self, 'EdgeList', INDETERMINATE) - ne = getattr(self, 'Ne', INDETERMINATE) - assert (getattr(express_getitem(edgelist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) == getattr(express_getitem(edgelist, ne - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE)) is not False + edgelist = express_getattr(self, 'EdgeList', INDETERMINATE) + ne = express_getattr(self, 'Ne', INDETERMINATE) + assert (express_getattr(express_getitem(edgelist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) == express_getattr(express_getitem(edgelist, ne - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE)) is not False class IfcEdgeLoop_IsContinuous: SCOPE = 'entity' @@ -6796,7 +6806,7 @@ class IfcEdgeLoop_IsContinuous: assert IfcLoopHeadToTail(self) is not False def calc_IfcEdgeLoop_Ne(self): - edgelist = getattr(self, 'EdgeList', INDETERMINATE) + edgelist = express_getattr(self, 'EdgeList', INDETERMINATE) return sizeof(edgelist) class IfcElectricAppliance_CorrectPredefinedType: @@ -6806,8 +6816,8 @@ class IfcElectricAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -6816,8 +6826,8 @@ class IfcElectricAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcelectricappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcelectricappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -6826,8 +6836,8 @@ class IfcElectricApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricDistributionBoard_CorrectPredefinedType: SCOPE = 'entity' @@ -6836,8 +6846,8 @@ class IfcElectricDistributionBoard_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricDistributionBoard_CorrectTypeAssigned: SCOPE = 'entity' @@ -6846,8 +6856,8 @@ class IfcElectricDistributionBoard_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcelectricdistributionboardtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcelectricdistributionboardtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricDistributionBoardType_CorrectPredefinedType: SCOPE = 'entity' @@ -6856,8 +6866,8 @@ class IfcElectricDistributionBoardType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricFlowStorageDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -6866,8 +6876,8 @@ class IfcElectricFlowStorageDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricFlowStorageDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -6876,8 +6886,8 @@ class IfcElectricFlowStorageDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcelectricflowstoragedevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcelectricflowstoragedevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricFlowStorageDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -6886,8 +6896,8 @@ class IfcElectricFlowStorageDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricGenerator_CorrectPredefinedType: SCOPE = 'entity' @@ -6896,8 +6906,8 @@ class IfcElectricGenerator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricGenerator_CorrectTypeAssigned: SCOPE = 'entity' @@ -6906,8 +6916,8 @@ class IfcElectricGenerator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcelectricgeneratortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcelectricgeneratortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricGeneratorType_CorrectPredefinedType: SCOPE = 'entity' @@ -6916,8 +6926,8 @@ class IfcElectricGeneratorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricMotor_CorrectPredefinedType: SCOPE = 'entity' @@ -6926,8 +6936,8 @@ class IfcElectricMotor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricMotor_CorrectTypeAssigned: SCOPE = 'entity' @@ -6936,8 +6946,8 @@ class IfcElectricMotor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcelectricmotortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcelectricmotortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricMotorType_CorrectPredefinedType: SCOPE = 'entity' @@ -6946,8 +6956,8 @@ class IfcElectricMotorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricTimeControl_CorrectPredefinedType: SCOPE = 'entity' @@ -6956,8 +6966,8 @@ class IfcElectricTimeControl_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricTimeControl_CorrectTypeAssigned: SCOPE = 'entity' @@ -6966,8 +6976,8 @@ class IfcElectricTimeControl_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcelectrictimecontroltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcelectrictimecontroltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricTimeControlType_CorrectPredefinedType: SCOPE = 'entity' @@ -6976,8 +6986,8 @@ class IfcElectricTimeControlType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElementAssembly_CorrectPredefinedType: SCOPE = 'entity' @@ -6986,8 +6996,8 @@ class IfcElementAssembly_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElementAssembly_CorrectTypeAssigned: SCOPE = 'entity' @@ -6996,8 +7006,8 @@ class IfcElementAssembly_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcelementassemblytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcelementassemblytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElementAssemblyType_CorrectPredefinedType: SCOPE = 'entity' @@ -7006,8 +7016,8 @@ class IfcElementAssemblyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElementQuantity_UniqueQuantityNames: SCOPE = 'entity' @@ -7016,7 +7026,7 @@ class IfcElementQuantity_UniqueQuantityNames: @staticmethod def __call__(self): - quantities = getattr(self, 'Quantities', INDETERMINATE) + quantities = express_getattr(self, 'Quantities', INDETERMINATE) assert IfcUniqueQuantityNames(quantities) is not False class IfcEngine_CorrectPredefinedType: @@ -7026,8 +7036,8 @@ class IfcEngine_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEngine_CorrectTypeAssigned: SCOPE = 'entity' @@ -7036,8 +7046,8 @@ class IfcEngine_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcenginetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcenginetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEngineType_CorrectPredefinedType: SCOPE = 'entity' @@ -7046,8 +7056,8 @@ class IfcEngineType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvaporativeCooler_CorrectPredefinedType: SCOPE = 'entity' @@ -7056,8 +7066,8 @@ class IfcEvaporativeCooler_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvaporativeCooler_CorrectTypeAssigned: SCOPE = 'entity' @@ -7066,8 +7076,8 @@ class IfcEvaporativeCooler_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcevaporativecoolertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcevaporativecoolertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEvaporativeCoolerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7076,8 +7086,8 @@ class IfcEvaporativeCoolerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvaporator_CorrectPredefinedType: SCOPE = 'entity' @@ -7086,8 +7096,8 @@ class IfcEvaporator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvaporator_CorrectTypeAssigned: SCOPE = 'entity' @@ -7096,8 +7106,8 @@ class IfcEvaporator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcevaporatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcevaporatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEvaporatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7106,8 +7116,8 @@ class IfcEvaporatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvent_CorrectPredefinedType: SCOPE = 'entity' @@ -7116,8 +7126,8 @@ class IfcEvent_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvent_CorrectTypeAssigned: SCOPE = 'entity' @@ -7126,9 +7136,9 @@ class IfcEvent_CorrectTypeAssigned: @staticmethod def __call__(self): - eventtriggertype = getattr(self, 'EventTriggerType', INDETERMINATE) - userdefinedeventtriggertype = getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) - assert (not exists(eventtriggertype) or eventtriggertype != getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False + eventtriggertype = express_getattr(self, 'EventTriggerType', INDETERMINATE) + userdefinedeventtriggertype = express_getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) + assert (not exists(eventtriggertype) or eventtriggertype != express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False class IfcEventType_CorrectPredefinedType: SCOPE = 'entity' @@ -7137,8 +7147,8 @@ class IfcEventType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcEventType_CorrectEventTriggerType: SCOPE = 'entity' @@ -7147,9 +7157,9 @@ class IfcEventType_CorrectEventTriggerType: @staticmethod def __call__(self): - eventtriggertype = getattr(self, 'EventTriggerType', INDETERMINATE) - userdefinedeventtriggertype = getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) - assert (eventtriggertype != getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False + eventtriggertype = express_getattr(self, 'EventTriggerType', INDETERMINATE) + userdefinedeventtriggertype = express_getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) + assert (eventtriggertype != express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False class IfcExternalReference_WR1: SCOPE = 'entity' @@ -7158,9 +7168,9 @@ class IfcExternalReference_WR1: @staticmethod def __call__(self): - location = getattr(self, 'Location', INDETERMINATE) - identification = getattr(self, 'Identification', INDETERMINATE) - name = getattr(self, 'Name', INDETERMINATE) + location = express_getattr(self, 'Location', INDETERMINATE) + identification = express_getattr(self, 'Identification', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) assert (exists(identification) or exists(location) or exists(name)) is not False class IfcExtrudedAreaSolid_ValidExtrusionDirection: @@ -7170,7 +7180,7 @@ class IfcExtrudedAreaSolid_ValidExtrusionDirection: @staticmethod def __call__(self): - assert (IfcDotProduct(IfcDirection(DirectionRatios=[0.0, 0.0, 1.0]), getattr(self, 'ExtrudedDirection', INDETERMINATE)) != 0.0) is not False + assert (IfcDotProduct(IfcDirection(DirectionRatios=[0.0, 0.0, 1.0]), express_getattr(self, 'ExtrudedDirection', INDETERMINATE)) != 0.0) is not False class IfcExtrudedAreaSolidTapered_CorrectProfileAssignment: SCOPE = 'entity' @@ -7179,7 +7189,7 @@ class IfcExtrudedAreaSolidTapered_CorrectProfileAssignment: @staticmethod def __call__(self): - assert IfcTaperedSweptAreaProfiles(getattr(self, 'SweptArea', INDETERMINATE), getattr(self, 'EndSweptArea', INDETERMINATE)) is not False + assert IfcTaperedSweptAreaProfiles(express_getattr(self, 'SweptArea', INDETERMINATE), express_getattr(self, 'EndSweptArea', INDETERMINATE)) is not False class IfcFace_HasOuterBound: SCOPE = 'entity' @@ -7188,7 +7198,7 @@ class IfcFace_HasOuterBound: @staticmethod def __call__(self): - bounds = getattr(self, 'Bounds', INDETERMINATE) + bounds = express_getattr(self, 'Bounds', INDETERMINATE) assert (sizeof([temp for temp in bounds if 'ifc4x1.ifcfaceouterbound' in typeof(temp)]) <= 1) is not False def calc_IfcFaceBasedSurfaceModel_Dim(self): @@ -7201,8 +7211,8 @@ class IfcFan_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFan_CorrectTypeAssigned: SCOPE = 'entity' @@ -7211,8 +7221,8 @@ class IfcFan_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcfantype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcfantype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFanType_CorrectPredefinedType: SCOPE = 'entity' @@ -7221,8 +7231,8 @@ class IfcFanType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFastener_CorrectPredefinedType: SCOPE = 'entity' @@ -7231,8 +7241,8 @@ class IfcFastener_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFastener_CorrectTypeAssigned: SCOPE = 'entity' @@ -7241,8 +7251,8 @@ class IfcFastener_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcfastenertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcfastenertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFastenerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7251,8 +7261,8 @@ class IfcFastenerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFeatureElementSubtraction_HasNoSubtraction: SCOPE = 'entity' @@ -7261,7 +7271,7 @@ class IfcFeatureElementSubtraction_HasNoSubtraction: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'HasOpenings', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'HasOpenings', INDETERMINATE)) == 0) is not False class IfcFeatureElementSubtraction_IsNotFilling: SCOPE = 'entity' @@ -7270,7 +7280,7 @@ class IfcFeatureElementSubtraction_IsNotFilling: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'FillsVoids', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'FillsVoids', INDETERMINATE)) == 0) is not False class IfcFillAreaStyle_MaxOneColour: SCOPE = 'entity' @@ -7279,7 +7289,7 @@ class IfcFillAreaStyle_MaxOneColour: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x1.ifccolour' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x1.ifccolour' in typeof(style)]) <= 1) is not False class IfcFillAreaStyle_MaxOneExtHatchStyle: SCOPE = 'entity' @@ -7288,7 +7298,7 @@ class IfcFillAreaStyle_MaxOneExtHatchStyle: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x1.ifcexternallydefinedhatchstyle' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x1.ifcexternallydefinedhatchstyle' in typeof(style)]) <= 1) is not False class IfcFillAreaStyle_ConsistentHatchStyleDef: SCOPE = 'entity' @@ -7297,7 +7307,7 @@ class IfcFillAreaStyle_ConsistentHatchStyleDef: @staticmethod def __call__(self): - assert IfcCorrectFillAreaStyle(getattr(self, 'FillStyles', INDETERMINATE)) is not False + assert IfcCorrectFillAreaStyle(express_getattr(self, 'FillStyles', INDETERMINATE)) is not False class IfcFillAreaStyleHatching_PatternStart2D: SCOPE = 'entity' @@ -7306,8 +7316,8 @@ class IfcFillAreaStyleHatching_PatternStart2D: @staticmethod def __call__(self): - patternstart = getattr(self, 'PatternStart', INDETERMINATE) - assert (not exists(patternstart) or getattr(patternstart, 'Dim', INDETERMINATE) == 2) is not False + patternstart = express_getattr(self, 'PatternStart', INDETERMINATE) + assert (not exists(patternstart) or express_getattr(patternstart, 'Dim', INDETERMINATE) == 2) is not False class IfcFillAreaStyleHatching_RefHatchLine2D: SCOPE = 'entity' @@ -7316,8 +7326,8 @@ class IfcFillAreaStyleHatching_RefHatchLine2D: @staticmethod def __call__(self): - pointofreferencehatchline = getattr(self, 'PointOfReferenceHatchLine', INDETERMINATE) - assert (not exists(pointofreferencehatchline) or getattr(pointofreferencehatchline, 'Dim', INDETERMINATE) == 2) is not False + pointofreferencehatchline = express_getattr(self, 'PointOfReferenceHatchLine', INDETERMINATE) + assert (not exists(pointofreferencehatchline) or express_getattr(pointofreferencehatchline, 'Dim', INDETERMINATE) == 2) is not False class IfcFilter_CorrectPredefinedType: SCOPE = 'entity' @@ -7326,8 +7336,8 @@ class IfcFilter_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFilter_CorrectTypeAssigned: SCOPE = 'entity' @@ -7336,8 +7346,8 @@ class IfcFilter_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcfiltertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcfiltertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFilterType_CorrectPredefinedType: SCOPE = 'entity' @@ -7346,8 +7356,8 @@ class IfcFilterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFireSuppressionTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -7356,8 +7366,8 @@ class IfcFireSuppressionTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFireSuppressionTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -7366,8 +7376,8 @@ class IfcFireSuppressionTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcfiresuppressionterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcfiresuppressionterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFireSuppressionTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -7376,8 +7386,8 @@ class IfcFireSuppressionTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFixedReferenceSweptAreaSolid_DirectrixBounded: SCOPE = 'entity' @@ -7386,9 +7396,9 @@ class IfcFixedReferenceSweptAreaSolid_DirectrixBounded: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - startparam = getattr(self, 'StartParam', INDETERMINATE) - endparam = getattr(self, 'EndParam', INDETERMINATE) + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + startparam = express_getattr(self, 'StartParam', INDETERMINATE) + endparam = express_getattr(self, 'EndParam', INDETERMINATE) assert (exists(startparam) and exists(endparam) or sizeof(['ifc4x1.ifcconic', 'ifc4x1.ifcboundedcurve'] * typeof(directrix)) == 1) is not False class IfcFlowInstrument_CorrectPredefinedType: @@ -7398,8 +7408,8 @@ class IfcFlowInstrument_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFlowInstrument_CorrectTypeAssigned: SCOPE = 'entity' @@ -7408,8 +7418,8 @@ class IfcFlowInstrument_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcflowinstrumenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcflowinstrumenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFlowInstrumentType_CorrectPredefinedType: SCOPE = 'entity' @@ -7418,8 +7428,8 @@ class IfcFlowInstrumentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFlowMeter_CorrectPredefinedType: SCOPE = 'entity' @@ -7428,8 +7438,8 @@ class IfcFlowMeter_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFlowMeter_CorrectTypeAssigned: SCOPE = 'entity' @@ -7438,8 +7448,8 @@ class IfcFlowMeter_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcflowmetertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcflowmetertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFlowMeterType_CorrectPredefinedType: SCOPE = 'entity' @@ -7448,8 +7458,8 @@ class IfcFlowMeterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFooting_CorrectPredefinedType: SCOPE = 'entity' @@ -7458,8 +7468,8 @@ class IfcFooting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFooting_CorrectTypeAssigned: SCOPE = 'entity' @@ -7468,8 +7478,8 @@ class IfcFooting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcfootingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcfootingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFootingType_CorrectPredefinedType: SCOPE = 'entity' @@ -7478,8 +7488,8 @@ class IfcFootingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFurniture_CorrectPredefinedType: SCOPE = 'entity' @@ -7488,8 +7498,8 @@ class IfcFurniture_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFurniture_CorrectTypeAssigned: SCOPE = 'entity' @@ -7498,8 +7508,8 @@ class IfcFurniture_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcfurnituretype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcfurnituretype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFurnitureType_CorrectPredefinedType: SCOPE = 'entity' @@ -7508,8 +7518,8 @@ class IfcFurnitureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcGeographicElement_CorrectPredefinedType: SCOPE = 'entity' @@ -7518,8 +7528,8 @@ class IfcGeographicElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcGeographicElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -7528,8 +7538,8 @@ class IfcGeographicElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcgeographicelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcgeographicelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcGeographicElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -7538,8 +7548,8 @@ class IfcGeographicElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcGeometricCurveSet_NoSurfaces: SCOPE = 'entity' @@ -7548,7 +7558,7 @@ class IfcGeometricCurveSet_NoSurfaces: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Elements', INDETERMINATE) if 'ifc4x1.ifcsurface' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Elements', INDETERMINATE) if 'ifc4x1.ifcsurface' in typeof(temp)]) == 0) is not False class IfcGeometricRepresentationContext_North2D: SCOPE = 'entity' @@ -7557,8 +7567,8 @@ class IfcGeometricRepresentationContext_North2D: @staticmethod def __call__(self): - truenorth = getattr(self, 'TrueNorth', INDETERMINATE) - assert (not exists(truenorth) or hiindex(getattr(truenorth, 'DirectionRatios', INDETERMINATE)) == 2) is not False + truenorth = express_getattr(self, 'TrueNorth', INDETERMINATE) + assert (not exists(truenorth) or hiindex(express_getattr(truenorth, 'DirectionRatios', INDETERMINATE)) == 2) is not False class IfcGeometricRepresentationSubContext_ParentNoSub: SCOPE = 'entity' @@ -7567,7 +7577,7 @@ class IfcGeometricRepresentationSubContext_ParentNoSub: @staticmethod def __call__(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) assert (not 'ifc4x1.ifcgeometricrepresentationsubcontext' in typeof(parentcontext)) is not False class IfcGeometricRepresentationSubContext_UserTargetProvided: @@ -7577,9 +7587,9 @@ class IfcGeometricRepresentationSubContext_UserTargetProvided: @staticmethod def __call__(self): - targetview = getattr(self, 'TargetView', INDETERMINATE) - userdefinedtargetview = getattr(self, 'UserDefinedTargetView', INDETERMINATE) - assert (targetview != getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) or (targetview == getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedtargetview))) is not False + targetview = express_getattr(self, 'TargetView', INDETERMINATE) + userdefinedtargetview = express_getattr(self, 'UserDefinedTargetView', INDETERMINATE) + assert (targetview != express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) or (targetview == express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedtargetview))) is not False class IfcGeometricRepresentationSubContext_NoCoordOperation: SCOPE = 'entity' @@ -7588,23 +7598,23 @@ class IfcGeometricRepresentationSubContext_NoCoordOperation: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'HasCoordinateOperation', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'HasCoordinateOperation', INDETERMINATE)) == 0) is not False def calc_IfcGeometricRepresentationSubContext_WorldCoordinateSystem(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return getattr(parentcontext, 'WorldCoordinateSystem', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return express_getattr(parentcontext, 'WorldCoordinateSystem', INDETERMINATE) def calc_IfcGeometricRepresentationSubContext_CoordinateSpaceDimension(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return getattr(parentcontext, 'CoordinateSpaceDimension', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return express_getattr(parentcontext, 'CoordinateSpaceDimension', INDETERMINATE) def calc_IfcGeometricRepresentationSubContext_TrueNorth(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return nvl(getattr(parentcontext, 'TrueNorth', INDETERMINATE), IfcConvertDirectionInto2D(express_getitem(getattr(getattr(self, 'WorldCoordinateSystem', INDETERMINATE), 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return nvl(express_getattr(parentcontext, 'TrueNorth', INDETERMINATE), IfcConvertDirectionInto2D(express_getitem(express_getattr(express_getattr(self, 'WorldCoordinateSystem', INDETERMINATE), 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) def calc_IfcGeometricRepresentationSubContext_Precision(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return nvl(getattr(parentcontext, 'Precision', INDETERMINATE), 1) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return nvl(express_getattr(parentcontext, 'Precision', INDETERMINATE), 1) class IfcGeometricSet_ConsistentDim: SCOPE = 'entity' @@ -7613,12 +7623,12 @@ class IfcGeometricSet_ConsistentDim: @staticmethod def __call__(self): - elements = getattr(self, 'Elements', INDETERMINATE) - assert (sizeof([temp for temp in elements if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + elements = express_getattr(self, 'Elements', INDETERMINATE) + assert (sizeof([temp for temp in elements if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcGeometricSet_Dim(self): - elements = getattr(self, 'Elements', INDETERMINATE) - return getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + elements = express_getattr(self, 'Elements', INDETERMINATE) + return express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) class IfcGridAxis_WR1: SCOPE = 'entity' @@ -7627,8 +7637,8 @@ class IfcGridAxis_WR1: @staticmethod def __call__(self): - axiscurve = getattr(self, 'AxisCurve', INDETERMINATE) - assert (getattr(axiscurve, 'Dim', INDETERMINATE) == 2) is not False + axiscurve = express_getattr(self, 'AxisCurve', INDETERMINATE) + assert (express_getattr(axiscurve, 'Dim', INDETERMINATE) == 2) is not False class IfcGridAxis_WR2: SCOPE = 'entity' @@ -7637,9 +7647,9 @@ class IfcGridAxis_WR2: @staticmethod def __call__(self): - partofw = getattr(self, 'PartOfW', INDETERMINATE) - partofv = getattr(self, 'PartOfV', INDETERMINATE) - partofu = getattr(self, 'PartOfU', INDETERMINATE) + partofw = express_getattr(self, 'PartOfW', INDETERMINATE) + partofv = express_getattr(self, 'PartOfV', INDETERMINATE) + partofu = express_getattr(self, 'PartOfU', INDETERMINATE) assert (sizeof(partofu) == 1) ^ (sizeof(partofv) == 1) ^ (sizeof(partofw) == 1) is not False def calc_IfcHalfSpaceSolid_Dim(self): @@ -7652,8 +7662,8 @@ class IfcHeatExchanger_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcHeatExchanger_CorrectTypeAssigned: SCOPE = 'entity' @@ -7662,8 +7672,8 @@ class IfcHeatExchanger_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcheatexchangertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcheatexchangertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcHeatExchangerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7672,8 +7682,8 @@ class IfcHeatExchangerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcHumidifier_CorrectPredefinedType: SCOPE = 'entity' @@ -7682,8 +7692,8 @@ class IfcHumidifier_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcHumidifier_CorrectTypeAssigned: SCOPE = 'entity' @@ -7692,8 +7702,8 @@ class IfcHumidifier_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifchumidifiertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifchumidifiertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcHumidifierType_CorrectPredefinedType: SCOPE = 'entity' @@ -7702,8 +7712,8 @@ class IfcHumidifierType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcIShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -7712,8 +7722,8 @@ class IfcIShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (2.0 * flangethickness < overalldepth) is not False class IfcIShapeProfileDef_ValidWebThickness: @@ -7723,8 +7733,8 @@ class IfcIShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - overallwidth = getattr(self, 'OverallWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + overallwidth = express_getattr(self, 'OverallWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < overallwidth) is not False class IfcIShapeProfileDef_ValidFilletRadius: @@ -7734,11 +7744,11 @@ class IfcIShapeProfileDef_ValidFilletRadius: @staticmethod def __call__(self): - overallwidth = getattr(self, 'OverallWidth', INDETERMINATE) - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) - filletradius = getattr(self, 'FilletRadius', INDETERMINATE) + overallwidth = express_getattr(self, 'OverallWidth', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) + filletradius = express_getattr(self, 'FilletRadius', INDETERMINATE) assert (not exists(filletradius) or (filletradius <= (overallwidth - webthickness) / 2.0 and filletradius <= (overalldepth - 2.0 * flangethickness) / 2.0)) is not False class IfcIndexedPolyCurve_Consecutive: @@ -7748,7 +7758,7 @@ class IfcIndexedPolyCurve_Consecutive: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) + segments = express_getattr(self, 'Segments', INDETERMINATE) assert (sizeof(segments) == 0 or IfcConsecutiveSegments(segments)) is not False class IfcInterceptor_CorrectPredefinedType: @@ -7758,8 +7768,8 @@ class IfcInterceptor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcInterceptor_CorrectTypeAssigned: SCOPE = 'entity' @@ -7768,8 +7778,8 @@ class IfcInterceptor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcinterceptortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcinterceptortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcInterceptorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7778,8 +7788,8 @@ class IfcInterceptorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcIntersectionCurve_TwoPCurves: SCOPE = 'entity' @@ -7788,7 +7798,7 @@ class IfcIntersectionCurve_TwoPCurves: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False + assert (sizeof(express_getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False class IfcIntersectionCurve_DistinctSurfaces: SCOPE = 'entity' @@ -7797,7 +7807,7 @@ class IfcIntersectionCurve_DistinctSurfaces: @staticmethod def __call__(self): - assert (IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcJunctionBox_CorrectPredefinedType: SCOPE = 'entity' @@ -7806,8 +7816,8 @@ class IfcJunctionBox_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcJunctionBox_CorrectTypeAssigned: SCOPE = 'entity' @@ -7816,8 +7826,8 @@ class IfcJunctionBox_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcjunctionboxtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcjunctionboxtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcJunctionBoxType_CorrectPredefinedType: SCOPE = 'entity' @@ -7826,8 +7836,8 @@ class IfcJunctionBoxType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLShapeProfileDef_ValidThickness: SCOPE = 'entity' @@ -7836,9 +7846,9 @@ class IfcLShapeProfileDef_ValidThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - thickness = getattr(self, 'Thickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + thickness = express_getattr(self, 'Thickness', INDETERMINATE) assert (thickness < depth and (not exists(width) or thickness < width)) is not False class IfcLaborResource_CorrectPredefinedType: @@ -7848,8 +7858,8 @@ class IfcLaborResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLaborResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7858,8 +7868,8 @@ class IfcLaborResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcLamp_CorrectPredefinedType: SCOPE = 'entity' @@ -7868,8 +7878,8 @@ class IfcLamp_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLamp_CorrectTypeAssigned: SCOPE = 'entity' @@ -7878,8 +7888,8 @@ class IfcLamp_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifclamptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifclamptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLampType_CorrectPredefinedType: SCOPE = 'entity' @@ -7888,8 +7898,8 @@ class IfcLampType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLightFixture_CorrectPredefinedType: SCOPE = 'entity' @@ -7898,8 +7908,8 @@ class IfcLightFixture_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLightFixture_CorrectTypeAssigned: SCOPE = 'entity' @@ -7908,8 +7918,8 @@ class IfcLightFixture_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifclightfixturetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifclightfixturetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLightFixtureType_CorrectPredefinedType: SCOPE = 'entity' @@ -7918,8 +7928,8 @@ class IfcLightFixtureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLine_SameDim: SCOPE = 'entity' @@ -7928,9 +7938,9 @@ class IfcLine_SameDim: @staticmethod def __call__(self): - pnt = getattr(self, 'Pnt', INDETERMINATE) - dir = getattr(self, 'Dir', INDETERMINATE) - assert (getattr(dir, 'Dim', INDETERMINATE) == getattr(pnt, 'Dim', INDETERMINATE)) is not False + pnt = express_getattr(self, 'Pnt', INDETERMINATE) + dir = express_getattr(self, 'Dir', INDETERMINATE) + assert (express_getattr(dir, 'Dim', INDETERMINATE) == express_getattr(pnt, 'Dim', INDETERMINATE)) is not False class IfcLocalPlacement_WR21: SCOPE = 'entity' @@ -7939,8 +7949,8 @@ class IfcLocalPlacement_WR21: @staticmethod def __call__(self): - placementrelto = getattr(self, 'PlacementRelTo', INDETERMINATE) - relativeplacement = getattr(self, 'RelativePlacement', INDETERMINATE) + placementrelto = express_getattr(self, 'PlacementRelTo', INDETERMINATE) + relativeplacement = express_getattr(self, 'RelativePlacement', INDETERMINATE) assert IfcCorrectLocalPlacement(relativeplacement, placementrelto) is not False class IfcMaterialDefinitionRepresentation_OnlyStyledRepresentations: @@ -7950,7 +7960,7 @@ class IfcMaterialDefinitionRepresentation_OnlyStyledRepresentations: @staticmethod def __call__(self): - representations = getattr(self, 'Representations', INDETERMINATE) + representations = express_getattr(self, 'Representations', INDETERMINATE) assert (sizeof([temp for temp in representations if not 'ifc4x1.ifcstyledrepresentation' in typeof(temp)]) == 0) is not False class IfcMaterialLayer_NormalizedPriority: @@ -7960,7 +7970,7 @@ class IfcMaterialLayer_NormalizedPriority: @staticmethod def __call__(self): - priority = getattr(self, 'Priority', INDETERMINATE) + priority = express_getattr(self, 'Priority', INDETERMINATE) assert (not exists(priority) or 0 <= priority <= 100) is not False def calc_IfcMaterialLayerSet_TotalThickness(self): @@ -7973,7 +7983,7 @@ class IfcMaterialProfile_NormalizedPriority: @staticmethod def __call__(self): - priority = getattr(self, 'Priority', INDETERMINATE) + priority = express_getattr(self, 'Priority', INDETERMINATE) assert (not exists(priority) or 0 <= priority <= 100) is not False class IfcMechanicalFastener_CorrectPredefinedType: @@ -7983,8 +7993,8 @@ class IfcMechanicalFastener_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMechanicalFastener_CorrectTypeAssigned: SCOPE = 'entity' @@ -7993,8 +8003,8 @@ class IfcMechanicalFastener_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcmechanicalfastenertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcmechanicalfastenertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMechanicalFastenerType_CorrectPredefinedType: SCOPE = 'entity' @@ -8003,8 +8013,8 @@ class IfcMechanicalFastenerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMedicalDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -8013,8 +8023,8 @@ class IfcMedicalDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMedicalDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -8023,8 +8033,8 @@ class IfcMedicalDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcmedicaldevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcmedicaldevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMedicalDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -8033,8 +8043,8 @@ class IfcMedicalDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMember_CorrectPredefinedType: SCOPE = 'entity' @@ -8043,8 +8053,8 @@ class IfcMember_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMember_CorrectTypeAssigned: SCOPE = 'entity' @@ -8053,8 +8063,8 @@ class IfcMember_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcmembertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcmembertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMemberStandardCase_HasMaterialProfileSetUsage: SCOPE = 'entity' @@ -8063,7 +8073,7 @@ class IfcMemberStandardCase_HasMaterialProfileSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x1.ifcrelassociates.relatedobjects') if 'ifc4x1.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x1.ifcmaterialprofilesetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x1.ifcrelassociates.relatedobjects') if 'ifc4x1.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x1.ifcmaterialprofilesetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcMemberType_CorrectPredefinedType: SCOPE = 'entity' @@ -8072,8 +8082,8 @@ class IfcMemberType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcMirroredProfileDef_Operator(self): return IfcCartesianTransformationOperator2D(Axis1=IfcDirection(DirectionRatios=[-1.0, 0.0]), Axis2=IfcDirection(DirectionRatios=[0.0, 1.0]), LocalOrigin=IfcCartesianPoint(Coordinates=[0.0, 0.0]), Scale=1.0) @@ -8085,8 +8095,8 @@ class IfcMotorConnection_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMotorConnection_CorrectTypeAssigned: SCOPE = 'entity' @@ -8095,8 +8105,8 @@ class IfcMotorConnection_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcmotorconnectiontype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcmotorconnectiontype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMotorConnectionType_CorrectPredefinedType: SCOPE = 'entity' @@ -8105,8 +8115,8 @@ class IfcMotorConnectionType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcNamedUnit_WR1: SCOPE = 'entity' @@ -8115,7 +8125,7 @@ class IfcNamedUnit_WR1: @staticmethod def __call__(self): - assert IfcCorrectDimensions(getattr(self, 'UnitType', INDETERMINATE), getattr(self, 'Dimensions', INDETERMINATE)) is not False + assert IfcCorrectDimensions(express_getattr(self, 'UnitType', INDETERMINATE), express_getattr(self, 'Dimensions', INDETERMINATE)) is not False class IfcObject_UniquePropertySetNames: SCOPE = 'entity' @@ -8124,7 +8134,7 @@ class IfcObject_UniquePropertySetNames: @staticmethod def __call__(self): - isdefinedby = getattr(self, 'IsDefinedBy', INDETERMINATE) + isdefinedby = express_getattr(self, 'IsDefinedBy', INDETERMINATE) assert (sizeof(isdefinedby) == 0 or IfcUniqueDefinitionNames(isdefinedby)) is not False class IfcObjective_WR21: @@ -8134,8 +8144,8 @@ class IfcObjective_WR21: @staticmethod def __call__(self): - objectivequalifier = getattr(self, 'ObjectiveQualifier', INDETERMINATE) - assert (objectivequalifier != getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) or (objectivequalifier == getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedQualifier', INDETERMINATE)))) is not False + objectivequalifier = express_getattr(self, 'ObjectiveQualifier', INDETERMINATE) + assert (objectivequalifier != express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) or (objectivequalifier == express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedQualifier', INDETERMINATE)))) is not False class IfcOccupant_WR31: SCOPE = 'entity' @@ -8144,8 +8154,8 @@ class IfcOccupant_WR31: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not predefinedtype == getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not predefinedtype == express_getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcOffsetCurve2D_DimIs2D: SCOPE = 'entity' @@ -8154,8 +8164,8 @@ class IfcOffsetCurve2D_DimIs2D: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - assert (getattr(basiscurve, 'Dim', INDETERMINATE) == 2) is not False + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + assert (express_getattr(basiscurve, 'Dim', INDETERMINATE) == 2) is not False class IfcOffsetCurve3D_DimIs2D: SCOPE = 'entity' @@ -8164,8 +8174,8 @@ class IfcOffsetCurve3D_DimIs2D: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - assert (getattr(basiscurve, 'Dim', INDETERMINATE) == 3) is not False + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + assert (express_getattr(basiscurve, 'Dim', INDETERMINATE) == 3) is not False class IfcOrientedEdge_EdgeElementNotOriented: SCOPE = 'entity' @@ -8174,18 +8184,18 @@ class IfcOrientedEdge_EdgeElementNotOriented: @staticmethod def __call__(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) assert (not 'ifc4x1.ifcorientededge' in typeof(edgeelement)) is not False def calc_IfcOrientedEdge_EdgeStart(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) - orientation = getattr(self, 'Orientation', INDETERMINATE) - return IfcBooleanChoose(orientation, getattr(edgeelement, 'EdgeStart', INDETERMINATE), getattr(edgeelement, 'EdgeEnd', INDETERMINATE)) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return IfcBooleanChoose(orientation, express_getattr(edgeelement, 'EdgeStart', INDETERMINATE), express_getattr(edgeelement, 'EdgeEnd', INDETERMINATE)) def calc_IfcOrientedEdge_EdgeEnd(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) - orientation = getattr(self, 'Orientation', INDETERMINATE) - return IfcBooleanChoose(orientation, getattr(edgeelement, 'EdgeEnd', INDETERMINATE), getattr(edgeelement, 'EdgeStart', INDETERMINATE)) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return IfcBooleanChoose(orientation, express_getattr(edgeelement, 'EdgeEnd', INDETERMINATE), express_getattr(edgeelement, 'EdgeStart', INDETERMINATE)) class IfcOutlet_CorrectPredefinedType: SCOPE = 'entity' @@ -8194,8 +8204,8 @@ class IfcOutlet_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcOutlet_CorrectTypeAssigned: SCOPE = 'entity' @@ -8204,8 +8214,8 @@ class IfcOutlet_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcoutlettype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcoutlettype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcOutletType_CorrectPredefinedType: SCOPE = 'entity' @@ -8214,8 +8224,8 @@ class IfcOutletType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcOwnerHistory_CorrectChangeAction: SCOPE = 'entity' @@ -8224,9 +8234,9 @@ class IfcOwnerHistory_CorrectChangeAction: @staticmethod def __call__(self): - changeaction = getattr(self, 'ChangeAction', INDETERMINATE) - lastmodifieddate = getattr(self, 'LastModifiedDate', INDETERMINATE) - assert (exists(lastmodifieddate) or (not exists(lastmodifieddate) and (not exists(changeaction))) or (not exists(lastmodifieddate) and exists(changeaction) and (changeaction == getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) or changeaction == getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE)))) is not False + changeaction = express_getattr(self, 'ChangeAction', INDETERMINATE) + lastmodifieddate = express_getattr(self, 'LastModifiedDate', INDETERMINATE) + assert (exists(lastmodifieddate) or (not exists(lastmodifieddate) and (not exists(changeaction))) or (not exists(lastmodifieddate) and exists(changeaction) and (changeaction == express_getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) or changeaction == express_getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE)))) is not False class IfcPath_IsContinuous: SCOPE = 'entity' @@ -8244,8 +8254,8 @@ class IfcPcurve_DimIs2D: @staticmethod def __call__(self): - referencecurve = getattr(self, 'ReferenceCurve', INDETERMINATE) - assert (getattr(referencecurve, 'Dim', INDETERMINATE) == 2) is not False + referencecurve = express_getattr(self, 'ReferenceCurve', INDETERMINATE) + assert (express_getattr(referencecurve, 'Dim', INDETERMINATE) == 2) is not False class IfcPerson_IdentifiablePerson: SCOPE = 'entity' @@ -8254,9 +8264,9 @@ class IfcPerson_IdentifiablePerson: @staticmethod def __call__(self): - identification = getattr(self, 'Identification', INDETERMINATE) - familyname = getattr(self, 'FamilyName', INDETERMINATE) - givenname = getattr(self, 'GivenName', INDETERMINATE) + identification = express_getattr(self, 'Identification', INDETERMINATE) + familyname = express_getattr(self, 'FamilyName', INDETERMINATE) + givenname = express_getattr(self, 'GivenName', INDETERMINATE) assert (exists(identification) or exists(familyname) or exists(givenname)) is not False class IfcPerson_ValidSetOfNames: @@ -8266,9 +8276,9 @@ class IfcPerson_ValidSetOfNames: @staticmethod def __call__(self): - familyname = getattr(self, 'FamilyName', INDETERMINATE) - givenname = getattr(self, 'GivenName', INDETERMINATE) - middlenames = getattr(self, 'MiddleNames', INDETERMINATE) + familyname = express_getattr(self, 'FamilyName', INDETERMINATE) + givenname = express_getattr(self, 'GivenName', INDETERMINATE) + middlenames = express_getattr(self, 'MiddleNames', INDETERMINATE) assert (not exists(middlenames) or exists(familyname) or exists(givenname)) is not False class IfcPhysicalComplexQuantity_NoSelfReference: @@ -8278,7 +8288,7 @@ class IfcPhysicalComplexQuantity_NoSelfReference: @staticmethod def __call__(self): - hasquantities = getattr(self, 'HasQuantities', INDETERMINATE) + hasquantities = express_getattr(self, 'HasQuantities', INDETERMINATE) assert (sizeof([temp for temp in hasquantities if self == temp]) == 0) is not False class IfcPhysicalComplexQuantity_UniqueQuantityNames: @@ -8288,7 +8298,7 @@ class IfcPhysicalComplexQuantity_UniqueQuantityNames: @staticmethod def __call__(self): - hasquantities = getattr(self, 'HasQuantities', INDETERMINATE) + hasquantities = express_getattr(self, 'HasQuantities', INDETERMINATE) assert IfcUniqueQuantityNames(hasquantities) is not False class IfcPile_CorrectPredefinedType: @@ -8298,8 +8308,8 @@ class IfcPile_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPile_CorrectTypeAssigned: SCOPE = 'entity' @@ -8308,8 +8318,8 @@ class IfcPile_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcpiletype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcpiletype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPileType_CorrectPredefinedType: SCOPE = 'entity' @@ -8318,8 +8328,8 @@ class IfcPileType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPipeFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -8328,8 +8338,8 @@ class IfcPipeFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPipeFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -8338,8 +8348,8 @@ class IfcPipeFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcpipefittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcpipefittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPipeFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -8348,8 +8358,8 @@ class IfcPipeFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPipeSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -8358,8 +8368,8 @@ class IfcPipeSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPipeSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -8368,8 +8378,8 @@ class IfcPipeSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcpipesegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcpipesegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPipeSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -8378,8 +8388,8 @@ class IfcPipeSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPixelTexture_MinPixelInS: SCOPE = 'entity' @@ -8388,7 +8398,7 @@ class IfcPixelTexture_MinPixelInS: @staticmethod def __call__(self): - width = getattr(self, 'Width', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) assert (width >= 1) is not False class IfcPixelTexture_MinPixelInT: @@ -8398,7 +8408,7 @@ class IfcPixelTexture_MinPixelInT: @staticmethod def __call__(self): - height = getattr(self, 'Height', INDETERMINATE) + height = express_getattr(self, 'Height', INDETERMINATE) assert (height >= 1) is not False class IfcPixelTexture_NumberOfColours: @@ -8408,7 +8418,7 @@ class IfcPixelTexture_NumberOfColours: @staticmethod def __call__(self): - colourcomponents = getattr(self, 'ColourComponents', INDETERMINATE) + colourcomponents = express_getattr(self, 'ColourComponents', INDETERMINATE) assert (1 <= colourcomponents <= 4) is not False class IfcPixelTexture_SizeOfPixelList: @@ -8418,9 +8428,9 @@ class IfcPixelTexture_SizeOfPixelList: @staticmethod def __call__(self): - width = getattr(self, 'Width', INDETERMINATE) - height = getattr(self, 'Height', INDETERMINATE) - pixel = getattr(self, 'Pixel', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + height = express_getattr(self, 'Height', INDETERMINATE) + pixel = express_getattr(self, 'Pixel', INDETERMINATE) assert (sizeof(pixel) == width * height) is not False class IfcPixelTexture_PixelAsByteAndSameLength: @@ -8430,12 +8440,12 @@ class IfcPixelTexture_PixelAsByteAndSameLength: @staticmethod def __call__(self): - pixel = getattr(self, 'Pixel', INDETERMINATE) + pixel = express_getattr(self, 'Pixel', INDETERMINATE) assert (sizeof([temp for temp in pixel if blength(temp) % 8 == 0 and blength(temp) == blength(express_getitem(pixel, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == sizeof(pixel)) is not False def calc_IfcPlacement_Dim(self): - location = getattr(self, 'Location', INDETERMINATE) - return getattr(location, 'Dim', INDETERMINATE) + location = express_getattr(self, 'Location', INDETERMINATE) + return express_getattr(location, 'Dim', INDETERMINATE) class IfcPlate_CorrectPredefinedType: SCOPE = 'entity' @@ -8444,8 +8454,8 @@ class IfcPlate_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPlate_CorrectTypeAssigned: SCOPE = 'entity' @@ -8454,8 +8464,8 @@ class IfcPlate_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcplatetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcplatetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPlateStandardCase_HasMaterialLayerSetUsage: SCOPE = 'entity' @@ -8464,7 +8474,7 @@ class IfcPlateStandardCase_HasMaterialLayerSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x1.ifcrelassociates.relatedobjects') if 'ifc4x1.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x1.ifcmateriallayersetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x1.ifcrelassociates.relatedobjects') if 'ifc4x1.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x1.ifcmateriallayersetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcPlateType_CorrectPredefinedType: SCOPE = 'entity' @@ -8473,16 +8483,16 @@ class IfcPlateType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcPointOnCurve_Dim(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - return getattr(basiscurve, 'Dim', INDETERMINATE) + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + return express_getattr(basiscurve, 'Dim', INDETERMINATE) def calc_IfcPointOnSurface_Dim(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) - return getattr(basissurface, 'Dim', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) + return express_getattr(basissurface, 'Dim', INDETERMINATE) class IfcPolyLoop_AllPointsSameDim: SCOPE = 'entity' @@ -8491,8 +8501,8 @@ class IfcPolyLoop_AllPointsSameDim: @staticmethod def __call__(self): - polygon = getattr(self, 'Polygon', INDETERMINATE) - assert (sizeof([temp for temp in polygon if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(polygon, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + polygon = express_getattr(self, 'Polygon', INDETERMINATE) + assert (sizeof([temp for temp in polygon if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(polygon, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False class IfcPolygonalBoundedHalfSpace_BoundaryDim: SCOPE = 'entity' @@ -8501,8 +8511,8 @@ class IfcPolygonalBoundedHalfSpace_BoundaryDim: @staticmethod def __call__(self): - polygonalboundary = getattr(self, 'PolygonalBoundary', INDETERMINATE) - assert (getattr(polygonalboundary, 'Dim', INDETERMINATE) == 2) is not False + polygonalboundary = express_getattr(self, 'PolygonalBoundary', INDETERMINATE) + assert (express_getattr(polygonalboundary, 'Dim', INDETERMINATE) == 2) is not False class IfcPolygonalBoundedHalfSpace_BoundaryType: SCOPE = 'entity' @@ -8511,7 +8521,7 @@ class IfcPolygonalBoundedHalfSpace_BoundaryType: @staticmethod def __call__(self): - polygonalboundary = getattr(self, 'PolygonalBoundary', INDETERMINATE) + polygonalboundary = express_getattr(self, 'PolygonalBoundary', INDETERMINATE) assert (sizeof(typeof(polygonalboundary) * ['ifc4x1.ifcpolyline', 'ifc4x1.ifccompositecurve']) == 1) is not False class IfcPolyline_SameDim: @@ -8521,8 +8531,8 @@ class IfcPolyline_SameDim: @staticmethod def __call__(self): - points = getattr(self, 'Points', INDETERMINATE) - assert (sizeof([temp for temp in points if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(points, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + points = express_getattr(self, 'Points', INDETERMINATE) + assert (sizeof([temp for temp in points if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(points, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False class IfcPositioningElement_HasPlacement: SCOPE = 'entity' @@ -8531,7 +8541,7 @@ class IfcPositioningElement_HasPlacement: @staticmethod def __call__(self): - assert exists(getattr(self, 'ObjectPlacement', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'ObjectPlacement', INDETERMINATE)) is not False class IfcPostalAddress_WR1: SCOPE = 'entity' @@ -8540,13 +8550,13 @@ class IfcPostalAddress_WR1: @staticmethod def __call__(self): - internallocation = getattr(self, 'InternalLocation', INDETERMINATE) - addresslines = getattr(self, 'AddressLines', INDETERMINATE) - postalbox = getattr(self, 'PostalBox', INDETERMINATE) - town = getattr(self, 'Town', INDETERMINATE) - region = getattr(self, 'Region', INDETERMINATE) - postalcode = getattr(self, 'PostalCode', INDETERMINATE) - country = getattr(self, 'Country', INDETERMINATE) + internallocation = express_getattr(self, 'InternalLocation', INDETERMINATE) + addresslines = express_getattr(self, 'AddressLines', INDETERMINATE) + postalbox = express_getattr(self, 'PostalBox', INDETERMINATE) + town = express_getattr(self, 'Town', INDETERMINATE) + region = express_getattr(self, 'Region', INDETERMINATE) + postalcode = express_getattr(self, 'PostalCode', INDETERMINATE) + country = express_getattr(self, 'Country', INDETERMINATE) assert (exists(internallocation) or exists(addresslines) or exists(postalbox) or exists(postalcode) or exists(town) or exists(region) or exists(country)) is not False class IfcPresentationLayerAssignment_ApplicableItems: @@ -8556,7 +8566,7 @@ class IfcPresentationLayerAssignment_ApplicableItems: @staticmethod def __call__(self): - assigneditems = getattr(self, 'AssignedItems', INDETERMINATE) + assigneditems = express_getattr(self, 'AssignedItems', INDETERMINATE) assert (sizeof([temp for temp in assigneditems if sizeof(typeof(temp) * ['ifc4x1.ifcshaperepresentation', 'ifc4x1.ifcgeometricrepresentationitem', 'ifc4x1.ifcmappeditem']) == 1]) == sizeof(assigneditems)) is not False class IfcPresentationLayerWithStyle_ApplicableOnlyToItems: @@ -8566,7 +8576,7 @@ class IfcPresentationLayerWithStyle_ApplicableOnlyToItems: @staticmethod def __call__(self): - assigneditems = getattr(self, 'AssignedItems', INDETERMINATE) + assigneditems = express_getattr(self, 'AssignedItems', INDETERMINATE) assert (sizeof([temp for temp in assigneditems if sizeof(typeof(temp) * ['ifc4x1.ifcgeometricrepresentationitem', 'ifc4x1.ifcmappeditem']) >= 1]) == sizeof(assigneditems)) is not False class IfcProcedure_HasName: @@ -8576,7 +8586,7 @@ class IfcProcedure_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcProcedure_CorrectPredefinedType: SCOPE = 'entity' @@ -8585,8 +8595,8 @@ class IfcProcedure_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProcedureType_CorrectPredefinedType: SCOPE = 'entity' @@ -8595,8 +8605,8 @@ class IfcProcedureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcProduct_PlacementForShapeRepresentation: SCOPE = 'entity' @@ -8605,9 +8615,9 @@ class IfcProduct_PlacementForShapeRepresentation: @staticmethod def __call__(self): - objectplacement = getattr(self, 'ObjectPlacement', INDETERMINATE) - representation = getattr(self, 'Representation', INDETERMINATE) - assert (exists(representation) and exists(objectplacement) or (exists(representation) and sizeof([temp for temp in getattr(representation, 'Representations', INDETERMINATE) if 'ifc4x1.ifcshaperepresentation' in typeof(temp)]) == 0) or (not exists(representation))) is not False + objectplacement = express_getattr(self, 'ObjectPlacement', INDETERMINATE) + representation = express_getattr(self, 'Representation', INDETERMINATE) + assert (exists(representation) and exists(objectplacement) or (exists(representation) and sizeof([temp for temp in express_getattr(representation, 'Representations', INDETERMINATE) if 'ifc4x1.ifcshaperepresentation' in typeof(temp)]) == 0) or (not exists(representation))) is not False class IfcProductDefinitionShape_OnlyShapeModel: SCOPE = 'entity' @@ -8616,7 +8626,7 @@ class IfcProductDefinitionShape_OnlyShapeModel: @staticmethod def __call__(self): - representations = getattr(self, 'Representations', INDETERMINATE) + representations = express_getattr(self, 'Representations', INDETERMINATE) assert (sizeof([temp for temp in representations if not 'ifc4x1.ifcshapemodel' in typeof(temp)]) == 0) is not False class IfcProject_HasName: @@ -8626,7 +8636,7 @@ class IfcProject_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcProject_CorrectContext: SCOPE = 'entity' @@ -8635,7 +8645,7 @@ class IfcProject_CorrectContext: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'RepresentationContexts', INDETERMINATE)) or sizeof([temp for temp in getattr(self, 'RepresentationContexts', INDETERMINATE) if 'ifc4x1.ifcgeometricrepresentationsubcontext' in typeof(temp)]) == 0) is not False + assert (not exists(express_getattr(self, 'RepresentationContexts', INDETERMINATE)) or sizeof([temp for temp in express_getattr(self, 'RepresentationContexts', INDETERMINATE) if 'ifc4x1.ifcgeometricrepresentationsubcontext' in typeof(temp)]) == 0) is not False class IfcProject_NoDecomposition: SCOPE = 'entity' @@ -8644,7 +8654,7 @@ class IfcProject_NoDecomposition: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'Decomposes', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'Decomposes', INDETERMINATE)) == 0) is not False class IfcProjectedCRS_IsLengthUnit: SCOPE = 'entity' @@ -8653,8 +8663,8 @@ class IfcProjectedCRS_IsLengthUnit: @staticmethod def __call__(self): - mapunit = getattr(self, 'MapUnit', INDETERMINATE) - assert (not exists(mapunit) or getattr(mapunit, 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False + mapunit = express_getattr(self, 'MapUnit', INDETERMINATE) + assert (not exists(mapunit) or express_getattr(mapunit, 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False class IfcPropertyBoundedValue_SameUnitUpperLower: SCOPE = 'entity' @@ -8663,8 +8673,8 @@ class IfcPropertyBoundedValue_SameUnitUpperLower: @staticmethod def __call__(self): - upperboundvalue = getattr(self, 'UpperBoundValue', INDETERMINATE) - lowerboundvalue = getattr(self, 'LowerBoundValue', INDETERMINATE) + upperboundvalue = express_getattr(self, 'UpperBoundValue', INDETERMINATE) + lowerboundvalue = express_getattr(self, 'LowerBoundValue', INDETERMINATE) assert (not exists(upperboundvalue) or not exists(lowerboundvalue) or typeof(upperboundvalue) == typeof(lowerboundvalue)) is not False class IfcPropertyBoundedValue_SameUnitUpperSet: @@ -8674,8 +8684,8 @@ class IfcPropertyBoundedValue_SameUnitUpperSet: @staticmethod def __call__(self): - upperboundvalue = getattr(self, 'UpperBoundValue', INDETERMINATE) - setpointvalue = getattr(self, 'SetPointValue', INDETERMINATE) + upperboundvalue = express_getattr(self, 'UpperBoundValue', INDETERMINATE) + setpointvalue = express_getattr(self, 'SetPointValue', INDETERMINATE) assert (not exists(upperboundvalue) or not exists(setpointvalue) or typeof(upperboundvalue) == typeof(setpointvalue)) is not False class IfcPropertyBoundedValue_SameUnitLowerSet: @@ -8685,8 +8695,8 @@ class IfcPropertyBoundedValue_SameUnitLowerSet: @staticmethod def __call__(self): - lowerboundvalue = getattr(self, 'LowerBoundValue', INDETERMINATE) - setpointvalue = getattr(self, 'SetPointValue', INDETERMINATE) + lowerboundvalue = express_getattr(self, 'LowerBoundValue', INDETERMINATE) + setpointvalue = express_getattr(self, 'SetPointValue', INDETERMINATE) assert (not exists(lowerboundvalue) or not exists(setpointvalue) or typeof(lowerboundvalue) == typeof(setpointvalue)) is not False class IfcPropertyDependencyRelationship_NoSelfReference: @@ -8696,8 +8706,8 @@ class IfcPropertyDependencyRelationship_NoSelfReference: @staticmethod def __call__(self): - dependingproperty = getattr(self, 'DependingProperty', INDETERMINATE) - dependantproperty = getattr(self, 'DependantProperty', INDETERMINATE) + dependingproperty = express_getattr(self, 'DependingProperty', INDETERMINATE) + dependantproperty = express_getattr(self, 'DependantProperty', INDETERMINATE) assert (dependingproperty != dependantproperty) is not False class IfcPropertyEnumeratedValue_WR21: @@ -8707,9 +8717,9 @@ class IfcPropertyEnumeratedValue_WR21: @staticmethod def __call__(self): - enumerationvalues = getattr(self, 'EnumerationValues', INDETERMINATE) - enumerationreference = getattr(self, 'EnumerationReference', INDETERMINATE) - assert (not exists(enumerationreference) or not exists(enumerationvalues) or sizeof([temp for temp in enumerationvalues if temp in getattr(enumerationreference, 'EnumerationValues', INDETERMINATE)]) == sizeof(enumerationvalues)) is not False + enumerationvalues = express_getattr(self, 'EnumerationValues', INDETERMINATE) + enumerationreference = express_getattr(self, 'EnumerationReference', INDETERMINATE) + assert (not exists(enumerationreference) or not exists(enumerationvalues) or sizeof([temp for temp in enumerationvalues if temp in express_getattr(enumerationreference, 'EnumerationValues', INDETERMINATE)]) == sizeof(enumerationvalues)) is not False class IfcPropertyEnumeration_WR01: SCOPE = 'entity' @@ -8718,7 +8728,7 @@ class IfcPropertyEnumeration_WR01: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'EnumerationValues', INDETERMINATE) if not typeof(express_getitem(getattr(self, 'EnumerationValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'EnumerationValues', INDETERMINATE) if not typeof(express_getitem(express_getattr(self, 'EnumerationValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False class IfcPropertyListValue_WR31: SCOPE = 'entity' @@ -8727,7 +8737,7 @@ class IfcPropertyListValue_WR31: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'ListValues', INDETERMINATE) if not typeof(express_getitem(getattr(self, 'ListValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'ListValues', INDETERMINATE) if not typeof(express_getitem(express_getattr(self, 'ListValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False class IfcPropertySet_ExistsName: SCOPE = 'entity' @@ -8736,7 +8746,7 @@ class IfcPropertySet_ExistsName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPropertySet_UniquePropertyNames: SCOPE = 'entity' @@ -8745,7 +8755,7 @@ class IfcPropertySet_UniquePropertyNames: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert IfcUniquePropertyName(hasproperties) is not False class IfcPropertySetTemplate_ExistsName: @@ -8755,7 +8765,7 @@ class IfcPropertySetTemplate_ExistsName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPropertySetTemplate_UniquePropertyNames: SCOPE = 'entity' @@ -8764,7 +8774,7 @@ class IfcPropertySetTemplate_UniquePropertyNames: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert IfcUniquePropertyTemplateNames(haspropertytemplates) is not False class IfcPropertyTableValue_WR21: @@ -8774,8 +8784,8 @@ class IfcPropertyTableValue_WR21: @staticmethod def __call__(self): - definingvalues = getattr(self, 'DefiningValues', INDETERMINATE) - definedvalues = getattr(self, 'DefinedValues', INDETERMINATE) + definingvalues = express_getattr(self, 'DefiningValues', INDETERMINATE) + definedvalues = express_getattr(self, 'DefinedValues', INDETERMINATE) assert (not exists(definingvalues) and (not exists(definedvalues)) or sizeof(definingvalues) == sizeof(definedvalues)) is not False class IfcPropertyTableValue_WR22: @@ -8785,8 +8795,8 @@ class IfcPropertyTableValue_WR22: @staticmethod def __call__(self): - definingvalues = getattr(self, 'DefiningValues', INDETERMINATE) - assert (not exists(definingvalues) or sizeof([temp for temp in getattr(self, 'DefiningValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(getattr(self, 'DefiningValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False + definingvalues = express_getattr(self, 'DefiningValues', INDETERMINATE) + assert (not exists(definingvalues) or sizeof([temp for temp in express_getattr(self, 'DefiningValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(express_getattr(self, 'DefiningValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False class IfcPropertyTableValue_WR23: SCOPE = 'entity' @@ -8795,8 +8805,8 @@ class IfcPropertyTableValue_WR23: @staticmethod def __call__(self): - definedvalues = getattr(self, 'DefinedValues', INDETERMINATE) - assert (not exists(definedvalues) or sizeof([temp for temp in getattr(self, 'DefinedValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(getattr(self, 'DefinedValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False + definedvalues = express_getattr(self, 'DefinedValues', INDETERMINATE) + assert (not exists(definedvalues) or sizeof([temp for temp in express_getattr(self, 'DefinedValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(express_getattr(self, 'DefinedValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False class IfcProtectiveDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -8805,8 +8815,8 @@ class IfcProtectiveDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProtectiveDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -8815,8 +8825,8 @@ class IfcProtectiveDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcprotectivedevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcprotectivedevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcProtectiveDeviceTrippingUnit_CorrectPredefinedType: SCOPE = 'entity' @@ -8825,8 +8835,8 @@ class IfcProtectiveDeviceTrippingUnit_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProtectiveDeviceTrippingUnit_CorrectTypeAssigned: SCOPE = 'entity' @@ -8835,8 +8845,8 @@ class IfcProtectiveDeviceTrippingUnit_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcprotectivedevicetrippingunittype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcprotectivedevicetrippingunittype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcProtectiveDeviceTrippingUnitType_CorrectPredefinedType: SCOPE = 'entity' @@ -8845,8 +8855,8 @@ class IfcProtectiveDeviceTrippingUnitType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcProtectiveDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -8855,8 +8865,8 @@ class IfcProtectiveDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcProxy_WR1: SCOPE = 'entity' @@ -8865,7 +8875,7 @@ class IfcProxy_WR1: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPump_CorrectPredefinedType: SCOPE = 'entity' @@ -8874,8 +8884,8 @@ class IfcPump_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPump_CorrectTypeAssigned: SCOPE = 'entity' @@ -8884,8 +8894,8 @@ class IfcPump_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcpumptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcpumptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPumpType_CorrectPredefinedType: SCOPE = 'entity' @@ -8894,8 +8904,8 @@ class IfcPumpType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcQuantityArea_WR21: SCOPE = 'entity' @@ -8904,7 +8914,7 @@ class IfcQuantityArea_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE)) is not False class IfcQuantityArea_WR22: SCOPE = 'entity' @@ -8913,7 +8923,7 @@ class IfcQuantityArea_WR22: @staticmethod def __call__(self): - areavalue = getattr(self, 'AreaValue', INDETERMINATE) + areavalue = express_getattr(self, 'AreaValue', INDETERMINATE) assert (areavalue >= 0.0) is not False class IfcQuantityCount_WR21: @@ -8923,7 +8933,7 @@ class IfcQuantityCount_WR21: @staticmethod def __call__(self): - countvalue = getattr(self, 'CountValue', INDETERMINATE) + countvalue = express_getattr(self, 'CountValue', INDETERMINATE) assert (countvalue >= 0.0) is not False class IfcQuantityLength_WR21: @@ -8933,7 +8943,7 @@ class IfcQuantityLength_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False class IfcQuantityLength_WR22: SCOPE = 'entity' @@ -8942,7 +8952,7 @@ class IfcQuantityLength_WR22: @staticmethod def __call__(self): - lengthvalue = getattr(self, 'LengthValue', INDETERMINATE) + lengthvalue = express_getattr(self, 'LengthValue', INDETERMINATE) assert (lengthvalue >= 0.0) is not False class IfcQuantityTime_WR21: @@ -8952,7 +8962,7 @@ class IfcQuantityTime_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE)) is not False class IfcQuantityTime_WR22: SCOPE = 'entity' @@ -8961,7 +8971,7 @@ class IfcQuantityTime_WR22: @staticmethod def __call__(self): - timevalue = getattr(self, 'TimeValue', INDETERMINATE) + timevalue = express_getattr(self, 'TimeValue', INDETERMINATE) assert (timevalue >= 0.0) is not False class IfcQuantityVolume_WR21: @@ -8971,7 +8981,7 @@ class IfcQuantityVolume_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE)) is not False class IfcQuantityVolume_WR22: SCOPE = 'entity' @@ -8980,7 +8990,7 @@ class IfcQuantityVolume_WR22: @staticmethod def __call__(self): - volumevalue = getattr(self, 'VolumeValue', INDETERMINATE) + volumevalue = express_getattr(self, 'VolumeValue', INDETERMINATE) assert (volumevalue >= 0.0) is not False class IfcQuantityWeight_WR21: @@ -8990,7 +9000,7 @@ class IfcQuantityWeight_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE)) is not False class IfcQuantityWeight_WR22: SCOPE = 'entity' @@ -8999,7 +9009,7 @@ class IfcQuantityWeight_WR22: @staticmethod def __call__(self): - weightvalue = getattr(self, 'WeightValue', INDETERMINATE) + weightvalue = express_getattr(self, 'WeightValue', INDETERMINATE) assert (weightvalue >= 0.0) is not False class IfcRailing_CorrectPredefinedType: @@ -9009,8 +9019,8 @@ class IfcRailing_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRailing_CorrectTypeAssigned: SCOPE = 'entity' @@ -9019,8 +9029,8 @@ class IfcRailing_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcrailingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcrailingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRailingType_CorrectPredefinedType: SCOPE = 'entity' @@ -9029,8 +9039,8 @@ class IfcRailingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRamp_CorrectPredefinedType: SCOPE = 'entity' @@ -9039,8 +9049,8 @@ class IfcRamp_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRamp_CorrectTypeAssigned: SCOPE = 'entity' @@ -9049,8 +9059,8 @@ class IfcRamp_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcramptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcramptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRampFlight_CorrectPredefinedType: SCOPE = 'entity' @@ -9059,8 +9069,8 @@ class IfcRampFlight_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRampFlight_CorrectTypeAssigned: SCOPE = 'entity' @@ -9069,8 +9079,8 @@ class IfcRampFlight_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcrampflighttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcrampflighttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRampFlightType_CorrectPredefinedType: SCOPE = 'entity' @@ -9079,8 +9089,8 @@ class IfcRampFlightType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRampType_CorrectPredefinedType: SCOPE = 'entity' @@ -9089,8 +9099,8 @@ class IfcRampType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRationalBSplineCurveWithKnots_SameNumOfWeightsAndPoints: SCOPE = 'entity' @@ -9099,8 +9109,8 @@ class IfcRationalBSplineCurveWithKnots_SameNumOfWeightsAndPoints: @staticmethod def __call__(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - assert (sizeof(weightsdata) == sizeof(getattr(self, 'ControlPointsList', INDETERMINATE))) is not False + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + assert (sizeof(weightsdata) == sizeof(express_getattr(self, 'ControlPointsList', INDETERMINATE))) is not False class IfcRationalBSplineCurveWithKnots_WeightsGreaterZero: SCOPE = 'entity' @@ -9112,8 +9122,8 @@ class IfcRationalBSplineCurveWithKnots_WeightsGreaterZero: assert IfcCurveWeightsPositive(self) is not False def calc_IfcRationalBSplineCurveWithKnots_Weights(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - return IfcListToArray(weightsdata, 0, getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE)) + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + return IfcListToArray(weightsdata, 0, express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE)) class IfcRationalBSplineSurfaceWithKnots_CorrespondingWeightsDataLists: SCOPE = 'entity' @@ -9122,8 +9132,8 @@ class IfcRationalBSplineSurfaceWithKnots_CorrespondingWeightsDataLists: @staticmethod def __call__(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - assert (sizeof(weightsdata) == sizeof(getattr(self, 'ControlPointsList', INDETERMINATE)) and sizeof(express_getitem(weightsdata, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == sizeof(express_getitem(getattr(self, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + assert (sizeof(weightsdata) == sizeof(express_getattr(self, 'ControlPointsList', INDETERMINATE)) and sizeof(express_getitem(weightsdata, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == sizeof(express_getitem(express_getattr(self, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcRationalBSplineSurfaceWithKnots_WeightValuesGreaterZero: SCOPE = 'entity' @@ -9135,9 +9145,9 @@ class IfcRationalBSplineSurfaceWithKnots_WeightValuesGreaterZero: assert IfcSurfaceWeightsPositive(self) is not False def calc_IfcRationalBSplineSurfaceWithKnots_Weights(self): - uupper = getattr(self, 'UUpper', INDETERMINATE) - vupper = getattr(self, 'VUpper', INDETERMINATE) - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) + uupper = express_getattr(self, 'UUpper', INDETERMINATE) + vupper = express_getattr(self, 'VUpper', INDETERMINATE) + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) return IfcMakeArrayOfArray(weightsdata, 0, uupper, 0, vupper) class IfcRectangleHollowProfileDef_ValidWallThickness: @@ -9147,8 +9157,8 @@ class IfcRectangleHollowProfileDef_ValidWallThickness: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - assert (wallthickness < getattr(self, 'XDim', INDETERMINATE) / 2.0 and wallthickness < getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + assert (wallthickness < express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and wallthickness < express_getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False class IfcRectangleHollowProfileDef_ValidInnerRadius: SCOPE = 'entity' @@ -9157,9 +9167,9 @@ class IfcRectangleHollowProfileDef_ValidInnerRadius: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - innerfilletradius = getattr(self, 'InnerFilletRadius', INDETERMINATE) - assert (not exists(innerfilletradius) or (innerfilletradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 - wallthickness and innerfilletradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0 - wallthickness)) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + innerfilletradius = express_getattr(self, 'InnerFilletRadius', INDETERMINATE) + assert (not exists(innerfilletradius) or (innerfilletradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 - wallthickness and innerfilletradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0 - wallthickness)) is not False class IfcRectangleHollowProfileDef_ValidOuterRadius: SCOPE = 'entity' @@ -9168,8 +9178,8 @@ class IfcRectangleHollowProfileDef_ValidOuterRadius: @staticmethod def __call__(self): - outerfilletradius = getattr(self, 'OuterFilletRadius', INDETERMINATE) - assert (not exists(outerfilletradius) or (outerfilletradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 and outerfilletradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0)) is not False + outerfilletradius = express_getattr(self, 'OuterFilletRadius', INDETERMINATE) + assert (not exists(outerfilletradius) or (outerfilletradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and outerfilletradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0)) is not False class IfcRectangularTrimmedSurface_U1AndU2Different: SCOPE = 'entity' @@ -9178,8 +9188,8 @@ class IfcRectangularTrimmedSurface_U1AndU2Different: @staticmethod def __call__(self): - u1 = getattr(self, 'U1', INDETERMINATE) - u2 = getattr(self, 'U2', INDETERMINATE) + u1 = express_getattr(self, 'U1', INDETERMINATE) + u2 = express_getattr(self, 'U2', INDETERMINATE) assert (u1 != u2) is not False class IfcRectangularTrimmedSurface_V1AndV2Different: @@ -9189,8 +9199,8 @@ class IfcRectangularTrimmedSurface_V1AndV2Different: @staticmethod def __call__(self): - v1 = getattr(self, 'V1', INDETERMINATE) - v2 = getattr(self, 'V2', INDETERMINATE) + v1 = express_getattr(self, 'V1', INDETERMINATE) + v2 = express_getattr(self, 'V2', INDETERMINATE) assert (v1 != v2) is not False class IfcRectangularTrimmedSurface_UsenseCompatible: @@ -9200,10 +9210,10 @@ class IfcRectangularTrimmedSurface_UsenseCompatible: @staticmethod def __call__(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) - u1 = getattr(self, 'U1', INDETERMINATE) - u2 = getattr(self, 'U2', INDETERMINATE) - usense = getattr(self, 'Usense', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) + u1 = express_getattr(self, 'U1', INDETERMINATE) + u2 = express_getattr(self, 'U2', INDETERMINATE) + usense = express_getattr(self, 'Usense', INDETERMINATE) assert ('ifc4x1.ifcelementarysurface' in typeof(basissurface) and (not 'ifc4x1.ifcplane' in typeof(basissurface)) or 'ifc4x1.ifcsurfaceofrevolution' in typeof(basissurface) or usense == (u2 > u1)) is not False class IfcRectangularTrimmedSurface_VsenseCompatible: @@ -9213,9 +9223,9 @@ class IfcRectangularTrimmedSurface_VsenseCompatible: @staticmethod def __call__(self): - v1 = getattr(self, 'V1', INDETERMINATE) - v2 = getattr(self, 'V2', INDETERMINATE) - vsense = getattr(self, 'Vsense', INDETERMINATE) + v1 = express_getattr(self, 'V1', INDETERMINATE) + v2 = express_getattr(self, 'V2', INDETERMINATE) + vsense = express_getattr(self, 'Vsense', INDETERMINATE) assert (vsense == (v2 > v1)) is not False class IfcReinforcingBar_CorrectPredefinedType: @@ -9225,8 +9235,8 @@ class IfcReinforcingBar_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingBar_CorrectTypeAssigned: SCOPE = 'entity' @@ -9235,8 +9245,8 @@ class IfcReinforcingBar_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcreinforcingbartype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcreinforcingbartype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcReinforcingBarType_CorrectPredefinedType: SCOPE = 'entity' @@ -9245,8 +9255,8 @@ class IfcReinforcingBarType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcReinforcingBarType_BendingShapeCodeProvided: SCOPE = 'entity' @@ -9255,8 +9265,8 @@ class IfcReinforcingBarType_BendingShapeCodeProvided: @staticmethod def __call__(self): - bendingshapecode = getattr(self, 'BendingShapeCode', INDETERMINATE) - bendingparameters = getattr(self, 'BendingParameters', INDETERMINATE) + bendingshapecode = express_getattr(self, 'BendingShapeCode', INDETERMINATE) + bendingparameters = express_getattr(self, 'BendingParameters', INDETERMINATE) assert (not exists(bendingparameters) or exists(bendingshapecode)) is not False class IfcReinforcingMesh_CorrectPredefinedType: @@ -9266,8 +9276,8 @@ class IfcReinforcingMesh_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingMesh_CorrectTypeAssigned: SCOPE = 'entity' @@ -9276,8 +9286,8 @@ class IfcReinforcingMesh_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcreinforcingmeshtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcreinforcingmeshtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcReinforcingMeshType_CorrectPredefinedType: SCOPE = 'entity' @@ -9286,8 +9296,8 @@ class IfcReinforcingMeshType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcReinforcingMeshType_BendingShapeCodeProvided: SCOPE = 'entity' @@ -9296,8 +9306,8 @@ class IfcReinforcingMeshType_BendingShapeCodeProvided: @staticmethod def __call__(self): - bendingshapecode = getattr(self, 'BendingShapeCode', INDETERMINATE) - bendingparameters = getattr(self, 'BendingParameters', INDETERMINATE) + bendingshapecode = express_getattr(self, 'BendingShapeCode', INDETERMINATE) + bendingparameters = express_getattr(self, 'BendingParameters', INDETERMINATE) assert (not exists(bendingparameters) or exists(bendingshapecode)) is not False class IfcRelAggregates_NoSelfReference: @@ -9307,8 +9317,8 @@ class IfcRelAggregates_NoSelfReference: @staticmethod def __call__(self): - relatingobject = getattr(self, 'RelatingObject', INDETERMINATE) - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) + relatingobject = express_getattr(self, 'RelatingObject', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) assert (sizeof([temp for temp in relatedobjects if relatingobject == temp]) == 0) is not False class IfcRelAssigns_WR1: @@ -9318,8 +9328,8 @@ class IfcRelAssigns_WR1: @staticmethod def __call__(self): - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) - relatedobjectstype = getattr(self, 'RelatedObjectsType', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) + relatedobjectstype = express_getattr(self, 'RelatedObjectsType', INDETERMINATE) assert IfcCorrectObjectAssignment(relatedobjectstype, relatedobjects) is not False class IfcRelAssignsToActor_NoSelfReference: @@ -9329,8 +9339,8 @@ class IfcRelAssignsToActor_NoSelfReference: @staticmethod def __call__(self): - relatingactor = getattr(self, 'RelatingActor', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingactor == temp]) == 0) is not False + relatingactor = express_getattr(self, 'RelatingActor', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingactor == temp]) == 0) is not False class IfcRelAssignsToControl_NoSelfReference: SCOPE = 'entity' @@ -9339,8 +9349,8 @@ class IfcRelAssignsToControl_NoSelfReference: @staticmethod def __call__(self): - relatingcontrol = getattr(self, 'RelatingControl', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingcontrol == temp]) == 0) is not False + relatingcontrol = express_getattr(self, 'RelatingControl', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingcontrol == temp]) == 0) is not False class IfcRelAssignsToGroup_NoSelfReference: SCOPE = 'entity' @@ -9349,8 +9359,8 @@ class IfcRelAssignsToGroup_NoSelfReference: @staticmethod def __call__(self): - relatinggroup = getattr(self, 'RelatingGroup', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatinggroup == temp]) == 0) is not False + relatinggroup = express_getattr(self, 'RelatingGroup', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatinggroup == temp]) == 0) is not False class IfcRelAssignsToProcess_NoSelfReference: SCOPE = 'entity' @@ -9359,8 +9369,8 @@ class IfcRelAssignsToProcess_NoSelfReference: @staticmethod def __call__(self): - relatingprocess = getattr(self, 'RelatingProcess', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingprocess == temp]) == 0) is not False + relatingprocess = express_getattr(self, 'RelatingProcess', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingprocess == temp]) == 0) is not False class IfcRelAssignsToProduct_NoSelfReference: SCOPE = 'entity' @@ -9369,8 +9379,8 @@ class IfcRelAssignsToProduct_NoSelfReference: @staticmethod def __call__(self): - relatingproduct = getattr(self, 'RelatingProduct', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingproduct == temp]) == 0) is not False + relatingproduct = express_getattr(self, 'RelatingProduct', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingproduct == temp]) == 0) is not False class IfcRelAssignsToResource_NoSelfReference: SCOPE = 'entity' @@ -9379,8 +9389,8 @@ class IfcRelAssignsToResource_NoSelfReference: @staticmethod def __call__(self): - relatingresource = getattr(self, 'RelatingResource', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingresource == temp]) == 0) is not False + relatingresource = express_getattr(self, 'RelatingResource', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingresource == temp]) == 0) is not False class IfcRelAssociatesMaterial_NoVoidElement: SCOPE = 'entity' @@ -9389,7 +9399,7 @@ class IfcRelAssociatesMaterial_NoVoidElement: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x1.ifcfeatureelementsubtraction' in typeof(temp) or 'ifc4x1.ifcvirtualelement' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x1.ifcfeatureelementsubtraction' in typeof(temp) or 'ifc4x1.ifcvirtualelement' in typeof(temp)]) == 0) is not False class IfcRelAssociatesMaterial_AllowedElements: SCOPE = 'entity' @@ -9398,7 +9408,7 @@ class IfcRelAssociatesMaterial_AllowedElements: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if sizeof(typeof(temp) * ['ifc4x1.ifcelement', 'ifc4x1.ifcelementtype', 'ifc4x1.ifcwindowstyle', 'ifc4x1.ifcdoorstyle', 'ifc4x1.ifcstructuralmember', 'ifc4x1.ifcport']) == 0]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if sizeof(typeof(temp) * ['ifc4x1.ifcelement', 'ifc4x1.ifcelementtype', 'ifc4x1.ifcwindowstyle', 'ifc4x1.ifcdoorstyle', 'ifc4x1.ifcstructuralmember', 'ifc4x1.ifcport']) == 0]) == 0) is not False class IfcRelConnectsElements_NoSelfReference: SCOPE = 'entity' @@ -9407,8 +9417,8 @@ class IfcRelConnectsElements_NoSelfReference: @staticmethod def __call__(self): - relatingelement = getattr(self, 'RelatingElement', INDETERMINATE) - relatedelement = getattr(self, 'RelatedElement', INDETERMINATE) + relatingelement = express_getattr(self, 'RelatingElement', INDETERMINATE) + relatedelement = express_getattr(self, 'RelatedElement', INDETERMINATE) assert (relatingelement != relatedelement) is not False class IfcRelConnectsPathElements_NormalizedRelatingPriorities: @@ -9418,7 +9428,7 @@ class IfcRelConnectsPathElements_NormalizedRelatingPriorities: @staticmethod def __call__(self): - relatingpriorities = getattr(self, 'RelatingPriorities', INDETERMINATE) + relatingpriorities = express_getattr(self, 'RelatingPriorities', INDETERMINATE) assert (sizeof(relatingpriorities) == 0 or sizeof([temp for temp in relatingpriorities if 0 <= temp <= 100]) == sizeof(relatingpriorities)) is not False class IfcRelConnectsPathElements_NormalizedRelatedPriorities: @@ -9428,7 +9438,7 @@ class IfcRelConnectsPathElements_NormalizedRelatedPriorities: @staticmethod def __call__(self): - relatedpriorities = getattr(self, 'RelatedPriorities', INDETERMINATE) + relatedpriorities = express_getattr(self, 'RelatedPriorities', INDETERMINATE) assert (sizeof(relatedpriorities) == 0 or sizeof([temp for temp in relatedpriorities if 0 <= temp <= 100]) == sizeof(relatedpriorities)) is not False class IfcRelConnectsPorts_NoSelfReference: @@ -9438,8 +9448,8 @@ class IfcRelConnectsPorts_NoSelfReference: @staticmethod def __call__(self): - relatingport = getattr(self, 'RelatingPort', INDETERMINATE) - relatedport = getattr(self, 'RelatedPort', INDETERMINATE) + relatingport = express_getattr(self, 'RelatingPort', INDETERMINATE) + relatedport = express_getattr(self, 'RelatedPort', INDETERMINATE) assert (relatingport != relatedport) is not False class IfcRelContainedInSpatialStructure_WR31: @@ -9449,7 +9459,7 @@ class IfcRelContainedInSpatialStructure_WR31: @staticmethod def __call__(self): - relatedelements = getattr(self, 'RelatedElements', INDETERMINATE) + relatedelements = express_getattr(self, 'RelatedElements', INDETERMINATE) assert (sizeof([temp for temp in relatedelements if 'ifc4x1.ifcspatialstructureelement' in typeof(temp)]) == 0) is not False class IfcRelDeclares_NoSelfReference: @@ -9459,8 +9469,8 @@ class IfcRelDeclares_NoSelfReference: @staticmethod def __call__(self): - relatingcontext = getattr(self, 'RelatingContext', INDETERMINATE) - relateddefinitions = getattr(self, 'RelatedDefinitions', INDETERMINATE) + relatingcontext = express_getattr(self, 'RelatingContext', INDETERMINATE) + relateddefinitions = express_getattr(self, 'RelatedDefinitions', INDETERMINATE) assert (sizeof([temp for temp in relateddefinitions if relatingcontext == temp]) == 0) is not False class IfcRelDefinesByProperties_NoRelatedTypeObject: @@ -9470,7 +9480,7 @@ class IfcRelDefinesByProperties_NoRelatedTypeObject: @staticmethod def __call__(self): - assert (sizeof([types for types in getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x1.ifctypeobject' in typeof(types)]) == 0) is not False + assert (sizeof([types for types in express_getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x1.ifctypeobject' in typeof(types)]) == 0) is not False class IfcRelInterferesElements_NotSelfReference: SCOPE = 'entity' @@ -9479,8 +9489,8 @@ class IfcRelInterferesElements_NotSelfReference: @staticmethod def __call__(self): - relatingelement = getattr(self, 'RelatingElement', INDETERMINATE) - relatedelement = getattr(self, 'RelatedElement', INDETERMINATE) + relatingelement = express_getattr(self, 'RelatingElement', INDETERMINATE) + relatedelement = express_getattr(self, 'RelatedElement', INDETERMINATE) assert (relatingelement != relatedelement) is not False class IfcRelNests_NoSelfReference: @@ -9490,8 +9500,8 @@ class IfcRelNests_NoSelfReference: @staticmethod def __call__(self): - relatingobject = getattr(self, 'RelatingObject', INDETERMINATE) - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) + relatingobject = express_getattr(self, 'RelatingObject', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) assert (sizeof([temp for temp in relatedobjects if relatingobject == temp]) == 0) is not False class IfcRelReferencedInSpatialStructure_AllowedRelatedElements: @@ -9501,7 +9511,7 @@ class IfcRelReferencedInSpatialStructure_AllowedRelatedElements: @staticmethod def __call__(self): - relatedelements = getattr(self, 'RelatedElements', INDETERMINATE) + relatedelements = express_getattr(self, 'RelatedElements', INDETERMINATE) assert (sizeof([temp for temp in relatedelements if 'ifc4x1.ifcspatialstructureelement' in typeof(temp) and (not 'ifc4x1.ifcspace' in typeof(temp))]) == 0) is not False class IfcRelSequence_AvoidInconsistentSequence: @@ -9511,8 +9521,8 @@ class IfcRelSequence_AvoidInconsistentSequence: @staticmethod def __call__(self): - relatingprocess = getattr(self, 'RelatingProcess', INDETERMINATE) - relatedprocess = getattr(self, 'RelatedProcess', INDETERMINATE) + relatingprocess = express_getattr(self, 'RelatingProcess', INDETERMINATE) + relatedprocess = express_getattr(self, 'RelatedProcess', INDETERMINATE) assert (relatingprocess != relatedprocess) is not False class IfcRelSequence_CorrectSequenceType: @@ -9522,9 +9532,9 @@ class IfcRelSequence_CorrectSequenceType: @staticmethod def __call__(self): - sequencetype = getattr(self, 'SequenceType', INDETERMINATE) - userdefinedsequencetype = getattr(self, 'UserDefinedSequenceType', INDETERMINATE) - assert (sequencetype != getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) or (sequencetype == getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedsequencetype))) is not False + sequencetype = express_getattr(self, 'SequenceType', INDETERMINATE) + userdefinedsequencetype = express_getattr(self, 'UserDefinedSequenceType', INDETERMINATE) + assert (sequencetype != express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) or (sequencetype == express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedsequencetype))) is not False class IfcRelSpaceBoundary_CorrectPhysOrVirt: SCOPE = 'entity' @@ -9533,9 +9543,9 @@ class IfcRelSpaceBoundary_CorrectPhysOrVirt: @staticmethod def __call__(self): - relatedbuildingelement = getattr(self, 'RelatedBuildingElement', INDETERMINATE) - physicalorvirtualboundary = getattr(self, 'PhysicalOrVirtualBoundary', INDETERMINATE) - assert (physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'Physical', INDETERMINATE) and (not 'ifc4x1.ifcvirtualelement' in typeof(relatedbuildingelement)) or (physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'Virtual', INDETERMINATE) and ('ifc4x1.ifcvirtualelement' in typeof(relatedbuildingelement) or 'ifc4x1.ifcopeningelement' in typeof(relatedbuildingelement))) or physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'NotDefined', INDETERMINATE)) is not False + relatedbuildingelement = express_getattr(self, 'RelatedBuildingElement', INDETERMINATE) + physicalorvirtualboundary = express_getattr(self, 'PhysicalOrVirtualBoundary', INDETERMINATE) + assert (physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'Physical', INDETERMINATE) and (not 'ifc4x1.ifcvirtualelement' in typeof(relatedbuildingelement)) or (physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'Virtual', INDETERMINATE) and ('ifc4x1.ifcvirtualelement' in typeof(relatedbuildingelement) or 'ifc4x1.ifcopeningelement' in typeof(relatedbuildingelement))) or physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'NotDefined', INDETERMINATE)) is not False class IfcReparametrisedCompositeCurveSegment_PositiveLengthParameter: SCOPE = 'entity' @@ -9544,7 +9554,7 @@ class IfcReparametrisedCompositeCurveSegment_PositiveLengthParameter: @staticmethod def __call__(self): - paramlength = getattr(self, 'ParamLength', INDETERMINATE) + paramlength = express_getattr(self, 'ParamLength', INDETERMINATE) assert (paramlength > 0.0) is not False class IfcRepresentationMap_ApplicableMappedRepr: @@ -9554,7 +9564,7 @@ class IfcRepresentationMap_ApplicableMappedRepr: @staticmethod def __call__(self): - mappedrepresentation = getattr(self, 'MappedRepresentation', INDETERMINATE) + mappedrepresentation = express_getattr(self, 'MappedRepresentation', INDETERMINATE) assert ('ifc4x1.ifcshapemodel' in typeof(mappedrepresentation)) is not False class IfcRevolvedAreaSolid_AxisStartInXY: @@ -9564,8 +9574,8 @@ class IfcRevolvedAreaSolid_AxisStartInXY: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (express_getitem(getattr(getattr(axis, 'Location', INDETERMINATE), 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (express_getitem(express_getattr(express_getattr(axis, 'Location', INDETERMINATE), 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False class IfcRevolvedAreaSolid_AxisDirectionInXY: SCOPE = 'entity' @@ -9574,12 +9584,12 @@ class IfcRevolvedAreaSolid_AxisDirectionInXY: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (express_getitem(getattr(getattr(axis, 'Z', INDETERMINATE), 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (express_getitem(express_getattr(express_getattr(axis, 'Z', INDETERMINATE), 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False def calc_IfcRevolvedAreaSolid_AxisLine(self): - axis = getattr(self, 'Axis', INDETERMINATE) - return IfcLine(Pnt=getattr(axis, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=getattr(axis, 'Z', INDETERMINATE), Magnitude=1.0)) + axis = express_getattr(self, 'Axis', INDETERMINATE) + return IfcLine(Pnt=express_getattr(axis, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=express_getattr(axis, 'Z', INDETERMINATE), Magnitude=1.0)) class IfcRevolvedAreaSolidTapered_CorrectProfileAssignment: SCOPE = 'entity' @@ -9588,7 +9598,7 @@ class IfcRevolvedAreaSolidTapered_CorrectProfileAssignment: @staticmethod def __call__(self): - assert IfcTaperedSweptAreaProfiles(getattr(self, 'SweptArea', INDETERMINATE), getattr(self, 'EndSweptArea', INDETERMINATE)) is not False + assert IfcTaperedSweptAreaProfiles(express_getattr(self, 'SweptArea', INDETERMINATE), express_getattr(self, 'EndSweptArea', INDETERMINATE)) is not False class IfcRoof_CorrectPredefinedType: SCOPE = 'entity' @@ -9597,8 +9607,8 @@ class IfcRoof_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRoof_CorrectTypeAssigned: SCOPE = 'entity' @@ -9607,8 +9617,8 @@ class IfcRoof_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcrooftype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcrooftype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRoofType_CorrectPredefinedType: SCOPE = 'entity' @@ -9617,8 +9627,8 @@ class IfcRoofType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRoundedRectangleProfileDef_ValidRadius: SCOPE = 'entity' @@ -9627,11 +9637,11 @@ class IfcRoundedRectangleProfileDef_ValidRadius: @staticmethod def __call__(self): - roundingradius = getattr(self, 'RoundingRadius', INDETERMINATE) - assert (roundingradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 and roundingradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False + roundingradius = express_getattr(self, 'RoundingRadius', INDETERMINATE) + assert (roundingradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and roundingradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False def calc_IfcSIUnit_Dimensions(self): - return IfcDimensionsForSiUnit(getattr(self, 'Name', INDETERMINATE)) + return IfcDimensionsForSiUnit(express_getattr(self, 'Name', INDETERMINATE)) class IfcSanitaryTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -9640,8 +9650,8 @@ class IfcSanitaryTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSanitaryTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -9650,8 +9660,8 @@ class IfcSanitaryTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcsanitaryterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcsanitaryterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSanitaryTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -9660,8 +9670,8 @@ class IfcSanitaryTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSeamCurve_TwoPCurves: SCOPE = 'entity' @@ -9670,7 +9680,7 @@ class IfcSeamCurve_TwoPCurves: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False + assert (sizeof(express_getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False class IfcSeamCurve_SameSurface: SCOPE = 'entity' @@ -9679,7 +9689,7 @@ class IfcSeamCurve_SameSurface: @staticmethod def __call__(self): - assert (IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcSectionedSolid_DirectrixIs3D: SCOPE = 'entity' @@ -9688,8 +9698,8 @@ class IfcSectionedSolid_DirectrixIs3D: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - assert (getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + assert (express_getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False class IfcSectionedSolid_ConsistentProfileTypes: SCOPE = 'entity' @@ -9698,8 +9708,8 @@ class IfcSectionedSolid_ConsistentProfileTypes: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - assert (sizeof([temp for temp in crosssections if getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + assert (sizeof([temp for temp in crosssections if express_getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != express_getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcSectionedSolid_SectionsSameType: SCOPE = 'entity' @@ -9708,7 +9718,7 @@ class IfcSectionedSolid_SectionsSameType: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) assert (sizeof([temp for temp in crosssections if typeof(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(temp)]) == 0) is not False class IfcSectionedSolidHorizontal_CorrespondingSectionPositions: @@ -9718,8 +9728,8 @@ class IfcSectionedSolidHorizontal_CorrespondingSectionPositions: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) assert (sizeof(crosssections) == sizeof(crosssectionpositions)) is not False class IfcSectionedSolidHorizontal_NoLongitudinalOffsets: @@ -9729,8 +9739,8 @@ class IfcSectionedSolidHorizontal_NoLongitudinalOffsets: @staticmethod def __call__(self): - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) - assert (sizeof([temp for temp in crosssectionpositions if exists(getattr(temp, 'OffsetLongitudinal', INDETERMINATE))]) == 0) is not False + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) + assert (sizeof([temp for temp in crosssectionpositions if exists(express_getattr(temp, 'OffsetLongitudinal', INDETERMINATE))]) == 0) is not False class IfcSectionedSpine_CorrespondingSectionPositions: SCOPE = 'entity' @@ -9739,8 +9749,8 @@ class IfcSectionedSpine_CorrespondingSectionPositions: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) assert (sizeof(crosssections) == sizeof(crosssectionpositions)) is not False class IfcSectionedSpine_ConsistentProfileTypes: @@ -9750,8 +9760,8 @@ class IfcSectionedSpine_ConsistentProfileTypes: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - assert (sizeof([temp for temp in crosssections if getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + assert (sizeof([temp for temp in crosssections if express_getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != express_getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcSectionedSpine_SpineCurveDim: SCOPE = 'entity' @@ -9760,8 +9770,8 @@ class IfcSectionedSpine_SpineCurveDim: @staticmethod def __call__(self): - spinecurve = getattr(self, 'SpineCurve', INDETERMINATE) - assert (getattr(spinecurve, 'Dim', INDETERMINATE) == 3) is not False + spinecurve = express_getattr(self, 'SpineCurve', INDETERMINATE) + assert (express_getattr(spinecurve, 'Dim', INDETERMINATE) == 3) is not False def calc_IfcSectionedSpine_Dim(self): return 3 @@ -9773,8 +9783,8 @@ class IfcSensor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSensor_CorrectTypeAssigned: SCOPE = 'entity' @@ -9783,8 +9793,8 @@ class IfcSensor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcsensortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcsensortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSensorType_CorrectPredefinedType: SCOPE = 'entity' @@ -9793,8 +9803,8 @@ class IfcSensorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcShadingDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -9803,8 +9813,8 @@ class IfcShadingDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcShadingDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -9813,8 +9823,8 @@ class IfcShadingDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcshadingdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcshadingdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcShadingDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9823,8 +9833,8 @@ class IfcShadingDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcShapeModel_WR11: SCOPE = 'entity' @@ -9833,8 +9843,8 @@ class IfcShapeModel_WR11: @staticmethod def __call__(self): - ofshapeaspect = getattr(self, 'OfShapeAspect', INDETERMINATE) - assert (sizeof(getattr(self, 'OfProductRepresentation', INDETERMINATE)) == 1) ^ (sizeof(getattr(self, 'RepresentationMap', INDETERMINATE)) == 1) ^ (sizeof(ofshapeaspect) == 1) is not False + ofshapeaspect = express_getattr(self, 'OfShapeAspect', INDETERMINATE) + assert (sizeof(express_getattr(self, 'OfProductRepresentation', INDETERMINATE)) == 1) ^ (sizeof(express_getattr(self, 'RepresentationMap', INDETERMINATE)) == 1) ^ (sizeof(ofshapeaspect) == 1) is not False class IfcShapeRepresentation_CorrectContext: SCOPE = 'entity' @@ -9843,7 +9853,7 @@ class IfcShapeRepresentation_CorrectContext: @staticmethod def __call__(self): - assert ('ifc4x1.ifcgeometricrepresentationcontext' in typeof(getattr(self, 'ContextOfItems', INDETERMINATE))) is not False + assert ('ifc4x1.ifcgeometricrepresentationcontext' in typeof(express_getattr(self, 'ContextOfItems', INDETERMINATE))) is not False class IfcShapeRepresentation_NoTopologicalItem: SCOPE = 'entity' @@ -9852,7 +9862,7 @@ class IfcShapeRepresentation_NoTopologicalItem: @staticmethod def __call__(self): - items = getattr(self, 'Items', INDETERMINATE) + items = express_getattr(self, 'Items', INDETERMINATE) assert (sizeof([temp for temp in items if 'ifc4x1.ifctopologicalrepresentationitem' in typeof(temp) and (not sizeof(['ifc4x1.ifcvertexpoint', 'ifc4x1.ifcedgecurve', 'ifc4x1.ifcfacesurface'] * typeof(temp)) == 1)]) == 0) is not False class IfcShapeRepresentation_HasRepresentationType: @@ -9862,7 +9872,7 @@ class IfcShapeRepresentation_HasRepresentationType: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationType', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationType', INDETERMINATE)) is not False class IfcShapeRepresentation_HasRepresentationIdentifier: SCOPE = 'entity' @@ -9871,7 +9881,7 @@ class IfcShapeRepresentation_HasRepresentationIdentifier: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationIdentifier', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationIdentifier', INDETERMINATE)) is not False class IfcShapeRepresentation_CorrectItemsForType: SCOPE = 'entity' @@ -9880,7 +9890,7 @@ class IfcShapeRepresentation_CorrectItemsForType: @staticmethod def __call__(self): - assert IfcShapeRepresentationTypes(getattr(self, 'RepresentationType', INDETERMINATE), getattr(self, 'Items', INDETERMINATE)) is not False + assert IfcShapeRepresentationTypes(express_getattr(self, 'RepresentationType', INDETERMINATE), express_getattr(self, 'Items', INDETERMINATE)) is not False def calc_IfcShellBasedSurfaceModel_Dim(self): return 3 @@ -9892,8 +9902,8 @@ class IfcSlab_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSlab_CorrectTypeAssigned: SCOPE = 'entity' @@ -9902,8 +9912,8 @@ class IfcSlab_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcslabtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcslabtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSlabElementedCase_HasDecomposition: SCOPE = 'entity' @@ -9912,7 +9922,7 @@ class IfcSlabElementedCase_HasDecomposition: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'IsDecomposedBy', INDETERMINATE)) > 0) is not False + assert (hiindex(express_getattr(self, 'IsDecomposedBy', INDETERMINATE)) > 0) is not False class IfcSlabStandardCase_HasMaterialLayerSetusage: SCOPE = 'entity' @@ -9921,7 +9931,7 @@ class IfcSlabStandardCase_HasMaterialLayerSetusage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x1.ifcrelassociates.relatedobjects') if 'ifc4x1.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x1.ifcmateriallayersetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x1.ifcrelassociates.relatedobjects') if 'ifc4x1.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x1.ifcmateriallayersetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcSlabType_CorrectPredefinedType: SCOPE = 'entity' @@ -9930,8 +9940,8 @@ class IfcSlabType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSolarDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -9940,8 +9950,8 @@ class IfcSolarDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSolarDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -9950,8 +9960,8 @@ class IfcSolarDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcsolardevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcsolardevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSolarDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9960,8 +9970,8 @@ class IfcSolarDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcSolidModel_Dim(self): return 3 @@ -9973,8 +9983,8 @@ class IfcSpace_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpace_CorrectTypeAssigned: SCOPE = 'entity' @@ -9983,8 +9993,8 @@ class IfcSpace_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcspacetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcspacetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpaceHeater_CorrectPredefinedType: SCOPE = 'entity' @@ -9993,8 +10003,8 @@ class IfcSpaceHeater_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpaceHeater_CorrectTypeAssigned: SCOPE = 'entity' @@ -10003,8 +10013,8 @@ class IfcSpaceHeater_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcspaceheatertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcspaceheatertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpaceHeaterType_CorrectPredefinedType: SCOPE = 'entity' @@ -10013,8 +10023,8 @@ class IfcSpaceHeaterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSpaceType_CorrectPredefinedType: SCOPE = 'entity' @@ -10023,8 +10033,8 @@ class IfcSpaceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSpatialStructureElement_WR41: SCOPE = 'entity' @@ -10033,7 +10043,7 @@ class IfcSpatialStructureElement_WR41: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'Decomposes', INDETERMINATE)) == 1 and 'ifc4x1.ifcrelaggregates' in typeof(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x1.ifcproject' in typeof(getattr(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)) or 'ifc4x1.ifcspatialstructureelement' in typeof(getattr(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)))) is not False + assert (hiindex(express_getattr(self, 'Decomposes', INDETERMINATE)) == 1 and 'ifc4x1.ifcrelaggregates' in typeof(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x1.ifcproject' in typeof(express_getattr(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)) or 'ifc4x1.ifcspatialstructureelement' in typeof(express_getattr(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)))) is not False class IfcSpatialZone_CorrectPredefinedType: SCOPE = 'entity' @@ -10042,8 +10052,8 @@ class IfcSpatialZone_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpatialZone_CorrectTypeAssigned: SCOPE = 'entity' @@ -10052,8 +10062,8 @@ class IfcSpatialZone_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcspatialzonetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcspatialzonetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpatialZoneType_CorrectPredefinedType: SCOPE = 'entity' @@ -10062,8 +10072,8 @@ class IfcSpatialZoneType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStackTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -10072,8 +10082,8 @@ class IfcStackTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStackTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -10082,8 +10092,8 @@ class IfcStackTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcstackterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcstackterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStackTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -10092,8 +10102,8 @@ class IfcStackTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStair_CorrectPredefinedType: SCOPE = 'entity' @@ -10102,8 +10112,8 @@ class IfcStair_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStair_CorrectTypeAssigned: SCOPE = 'entity' @@ -10112,8 +10122,8 @@ class IfcStair_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcstairtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcstairtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStairFlight_CorrectPredefinedType: SCOPE = 'entity' @@ -10122,8 +10132,8 @@ class IfcStairFlight_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStairFlight_CorrectTypeAssigned: SCOPE = 'entity' @@ -10132,8 +10142,8 @@ class IfcStairFlight_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcstairflighttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcstairflighttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStairFlightType_CorrectPredefinedType: SCOPE = 'entity' @@ -10142,8 +10152,8 @@ class IfcStairFlightType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStairType_CorrectPredefinedType: SCOPE = 'entity' @@ -10152,8 +10162,8 @@ class IfcStairType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStructuralAnalysisModel_HasObjectType: SCOPE = 'entity' @@ -10162,8 +10172,8 @@ class IfcStructuralAnalysisModel_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveAction_ProjectedIsGlobal: SCOPE = 'entity' @@ -10172,8 +10182,8 @@ class IfcStructuralCurveAction_ProjectedIsGlobal: @staticmethod def __call__(self): - projectedortrue = getattr(self, 'ProjectedOrTrue', INDETERMINATE) - assert (not exists(projectedortrue) or (projectedortrue != projected_length or getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False + projectedortrue = express_getattr(self, 'ProjectedOrTrue', INDETERMINATE) + assert (not exists(projectedortrue) or (projectedortrue != projected_length or express_getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False class IfcStructuralCurveAction_HasObjectType: SCOPE = 'entity' @@ -10182,8 +10192,8 @@ class IfcStructuralCurveAction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveAction_SuitablePredefinedType: SCOPE = 'entity' @@ -10192,8 +10202,8 @@ class IfcStructuralCurveAction_SuitablePredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE)) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE)) is not False class IfcStructuralCurveMember_HasObjectType: SCOPE = 'entity' @@ -10202,8 +10212,8 @@ class IfcStructuralCurveMember_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveReaction_HasObjectType: SCOPE = 'entity' @@ -10212,8 +10222,8 @@ class IfcStructuralCurveReaction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveReaction_SuitablePredefinedType: SCOPE = 'entity' @@ -10222,8 +10232,8 @@ class IfcStructuralCurveReaction_SuitablePredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) and predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE)) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) and predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE)) is not False class IfcStructuralLinearAction_SuitableLoadType: SCOPE = 'entity' @@ -10232,7 +10242,7 @@ class IfcStructuralLinearAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x1.ifcstructuralloadlinearforce', 'ifc4x1.ifcstructuralloadtemperature'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x1.ifcstructuralloadlinearforce', 'ifc4x1.ifcstructuralloadtemperature'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralLinearAction_ConstPredefinedType: SCOPE = 'entity' @@ -10241,7 +10251,7 @@ class IfcStructuralLinearAction_ConstPredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE)) is not False class IfcStructuralLoadCase_IsLoadCasePredefinedType: SCOPE = 'entity' @@ -10250,7 +10260,7 @@ class IfcStructuralLoadCase_IsLoadCasePredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE)) is not False class IfcStructuralLoadConfiguration_ValidListSize: SCOPE = 'entity' @@ -10259,8 +10269,8 @@ class IfcStructuralLoadConfiguration_ValidListSize: @staticmethod def __call__(self): - values = getattr(self, 'Values', INDETERMINATE) - locations = getattr(self, 'Locations', INDETERMINATE) + values = express_getattr(self, 'Values', INDETERMINATE) + locations = express_getattr(self, 'Locations', INDETERMINATE) assert (not exists(locations) or sizeof(locations) == sizeof(values)) is not False class IfcStructuralLoadGroup_HasObjectType: @@ -10270,10 +10280,10 @@ class IfcStructuralLoadGroup_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - actiontype = getattr(self, 'ActionType', INDETERMINATE) - actionsource = getattr(self, 'ActionSource', INDETERMINATE) - assert (predefinedtype != getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) and actiontype != getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) and (actionsource != getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE)) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + actiontype = express_getattr(self, 'ActionType', INDETERMINATE) + actionsource = express_getattr(self, 'ActionSource', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) and actiontype != express_getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) and (actionsource != express_getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE)) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralPlanarAction_SuitableLoadType: SCOPE = 'entity' @@ -10282,7 +10292,7 @@ class IfcStructuralPlanarAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x1.ifcstructuralloadplanarforce', 'ifc4x1.ifcstructuralloadtemperature'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x1.ifcstructuralloadplanarforce', 'ifc4x1.ifcstructuralloadtemperature'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralPlanarAction_ConstPredefinedType: SCOPE = 'entity' @@ -10291,7 +10301,7 @@ class IfcStructuralPlanarAction_ConstPredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE)) is not False class IfcStructuralPointAction_SuitableLoadType: SCOPE = 'entity' @@ -10300,7 +10310,7 @@ class IfcStructuralPointAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x1.ifcstructuralloadsingleforce', 'ifc4x1.ifcstructuralloadsingledisplacement'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x1.ifcstructuralloadsingleforce', 'ifc4x1.ifcstructuralloadsingledisplacement'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralPointReaction_SuitableLoadType: SCOPE = 'entity' @@ -10309,7 +10319,7 @@ class IfcStructuralPointReaction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x1.ifcstructuralloadsingleforce', 'ifc4x1.ifcstructuralloadsingledisplacement'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x1.ifcstructuralloadsingleforce', 'ifc4x1.ifcstructuralloadsingledisplacement'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralResultGroup_HasObjectType: SCOPE = 'entity' @@ -10318,8 +10328,8 @@ class IfcStructuralResultGroup_HasObjectType: @staticmethod def __call__(self): - theorytype = getattr(self, 'TheoryType', INDETERMINATE) - assert (theorytype != getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + theorytype = express_getattr(self, 'TheoryType', INDETERMINATE) + assert (theorytype != express_getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceAction_ProjectedIsGlobal: SCOPE = 'entity' @@ -10328,8 +10338,8 @@ class IfcStructuralSurfaceAction_ProjectedIsGlobal: @staticmethod def __call__(self): - projectedortrue = getattr(self, 'ProjectedOrTrue', INDETERMINATE) - assert (not exists(projectedortrue) or (projectedortrue != projected_length or getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False + projectedortrue = express_getattr(self, 'ProjectedOrTrue', INDETERMINATE) + assert (not exists(projectedortrue) or (projectedortrue != projected_length or express_getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False class IfcStructuralSurfaceAction_HasObjectType: SCOPE = 'entity' @@ -10338,8 +10348,8 @@ class IfcStructuralSurfaceAction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceMember_HasObjectType: SCOPE = 'entity' @@ -10348,8 +10358,8 @@ class IfcStructuralSurfaceMember_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceReaction_HasPredefinedType: SCOPE = 'entity' @@ -10358,8 +10368,8 @@ class IfcStructuralSurfaceReaction_HasPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStyledItem_ApplicableItem: SCOPE = 'entity' @@ -10368,7 +10378,7 @@ class IfcStyledItem_ApplicableItem: @staticmethod def __call__(self): - item = getattr(self, 'Item', INDETERMINATE) + item = express_getattr(self, 'Item', INDETERMINATE) assert (not 'ifc4x1.ifcstyleditem' in typeof(item)) is not False class IfcStyledRepresentation_OnlyStyledItems: @@ -10378,7 +10388,7 @@ class IfcStyledRepresentation_OnlyStyledItems: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Items', INDETERMINATE) if not 'ifc4x1.ifcstyleditem' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Items', INDETERMINATE) if not 'ifc4x1.ifcstyleditem' in typeof(temp)]) == 0) is not False class IfcSubContractResource_CorrectPredefinedType: SCOPE = 'entity' @@ -10387,8 +10397,8 @@ class IfcSubContractResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSubContractResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -10397,8 +10407,8 @@ class IfcSubContractResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False def calc_IfcSurface_Dim(self): return 3 @@ -10410,8 +10420,8 @@ class IfcSurfaceCurve_CurveIs3D: @staticmethod def __call__(self): - curve3d = getattr(self, 'Curve3D', INDETERMINATE) - assert (getattr(curve3d, 'Dim', INDETERMINATE) == 3) is not False + curve3d = express_getattr(self, 'Curve3D', INDETERMINATE) + assert (express_getattr(curve3d, 'Dim', INDETERMINATE) == 3) is not False class IfcSurfaceCurve_CurveIsNotPcurve: SCOPE = 'entity' @@ -10420,7 +10430,7 @@ class IfcSurfaceCurve_CurveIsNotPcurve: @staticmethod def __call__(self): - curve3d = getattr(self, 'Curve3D', INDETERMINATE) + curve3d = express_getattr(self, 'Curve3D', INDETERMINATE) assert (not 'ifc4x1.ifcpcurve' in typeof(curve3d)) is not False def calc_IfcSurfaceCurve_BasisSurface(self): @@ -10433,9 +10443,9 @@ class IfcSurfaceCurveSweptAreaSolid_DirectrixBounded: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - startparam = getattr(self, 'StartParam', INDETERMINATE) - endparam = getattr(self, 'EndParam', INDETERMINATE) + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + startparam = express_getattr(self, 'StartParam', INDETERMINATE) + endparam = express_getattr(self, 'EndParam', INDETERMINATE) assert (exists(startparam) and exists(endparam) or sizeof(['ifc4x1.ifcconic', 'ifc4x1.ifcboundedcurve'] * typeof(directrix)) == 1) is not False class IfcSurfaceFeature_HasObjectType: @@ -10445,8 +10455,8 @@ class IfcSurfaceFeature_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcSurfaceOfLinearExtrusion_DepthGreaterZero: SCOPE = 'entity' @@ -10455,17 +10465,17 @@ class IfcSurfaceOfLinearExtrusion_DepthGreaterZero: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) assert (depth > 0.0) is not False def calc_IfcSurfaceOfLinearExtrusion_ExtrusionAxis(self): - extrudeddirection = getattr(self, 'ExtrudedDirection', INDETERMINATE) - depth = getattr(self, 'Depth', INDETERMINATE) + extrudeddirection = express_getattr(self, 'ExtrudedDirection', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) return IfcVector(Orientation=extrudeddirection, Magnitude=depth) def calc_IfcSurfaceOfRevolution_AxisLine(self): - axisposition = getattr(self, 'AxisPosition', INDETERMINATE) - return IfcLine(Pnt=getattr(axisposition, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=getattr(axisposition, 'Z', INDETERMINATE), Magnitude=1.0)) + axisposition = express_getattr(self, 'AxisPosition', INDETERMINATE) + return IfcLine(Pnt=express_getattr(axisposition, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=express_getattr(axisposition, 'Z', INDETERMINATE), Magnitude=1.0)) class IfcSurfaceReinforcementArea_SurfaceAndOrShearAreaSpecified: SCOPE = 'entity' @@ -10474,9 +10484,9 @@ class IfcSurfaceReinforcementArea_SurfaceAndOrShearAreaSpecified: @staticmethod def __call__(self): - surfacereinforcement1 = getattr(self, 'SurfaceReinforcement1', INDETERMINATE) - surfacereinforcement2 = getattr(self, 'SurfaceReinforcement2', INDETERMINATE) - shearreinforcement = getattr(self, 'ShearReinforcement', INDETERMINATE) + surfacereinforcement1 = express_getattr(self, 'SurfaceReinforcement1', INDETERMINATE) + surfacereinforcement2 = express_getattr(self, 'SurfaceReinforcement2', INDETERMINATE) + shearreinforcement = express_getattr(self, 'ShearReinforcement', INDETERMINATE) assert (exists(surfacereinforcement1) or exists(surfacereinforcement2) or exists(shearreinforcement)) is not False class IfcSurfaceReinforcementArea_NonnegativeArea1: @@ -10486,7 +10496,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea1: @staticmethod def __call__(self): - surfacereinforcement1 = getattr(self, 'SurfaceReinforcement1', INDETERMINATE) + surfacereinforcement1 = express_getattr(self, 'SurfaceReinforcement1', INDETERMINATE) assert (not exists(surfacereinforcement1) or (express_getitem(surfacereinforcement1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and express_getitem(surfacereinforcement1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and (sizeof(surfacereinforcement1) == 1 or express_getitem(surfacereinforcement1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0))) is not False class IfcSurfaceReinforcementArea_NonnegativeArea2: @@ -10496,7 +10506,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea2: @staticmethod def __call__(self): - surfacereinforcement2 = getattr(self, 'SurfaceReinforcement2', INDETERMINATE) + surfacereinforcement2 = express_getattr(self, 'SurfaceReinforcement2', INDETERMINATE) assert (not exists(surfacereinforcement2) or (express_getitem(surfacereinforcement2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and express_getitem(surfacereinforcement2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and (sizeof(surfacereinforcement2) == 1 or express_getitem(surfacereinforcement2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0))) is not False class IfcSurfaceReinforcementArea_NonnegativeArea3: @@ -10506,7 +10516,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea3: @staticmethod def __call__(self): - shearreinforcement = getattr(self, 'ShearReinforcement', INDETERMINATE) + shearreinforcement = express_getattr(self, 'ShearReinforcement', INDETERMINATE) assert (not exists(shearreinforcement) or shearreinforcement >= 0.0) is not False class IfcSurfaceStyle_MaxOneShading: @@ -10516,7 +10526,7 @@ class IfcSurfaceStyle_MaxOneShading: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x1.ifcsurfacestyleshading' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x1.ifcsurfacestyleshading' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneLighting: SCOPE = 'entity' @@ -10525,7 +10535,7 @@ class IfcSurfaceStyle_MaxOneLighting: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x1.ifcsurfacestylelighting' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x1.ifcsurfacestylelighting' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneRefraction: SCOPE = 'entity' @@ -10534,7 +10544,7 @@ class IfcSurfaceStyle_MaxOneRefraction: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x1.ifcsurfacestylerefraction' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x1.ifcsurfacestylerefraction' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneTextures: SCOPE = 'entity' @@ -10543,7 +10553,7 @@ class IfcSurfaceStyle_MaxOneTextures: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x1.ifcsurfacestylewithtextures' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x1.ifcsurfacestylewithtextures' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneExtDefined: SCOPE = 'entity' @@ -10552,7 +10562,7 @@ class IfcSurfaceStyle_MaxOneExtDefined: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x1.ifcexternallydefinedsurfacestyle' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x1.ifcexternallydefinedsurfacestyle' in typeof(style)]) <= 1) is not False class IfcSweptAreaSolid_SweptAreaType: SCOPE = 'entity' @@ -10561,8 +10571,8 @@ class IfcSweptAreaSolid_SweptAreaType: @staticmethod def __call__(self): - sweptarea = getattr(self, 'SweptArea', INDETERMINATE) - assert (getattr(sweptarea, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'Area', INDETERMINATE)) is not False + sweptarea = express_getattr(self, 'SweptArea', INDETERMINATE) + assert (express_getattr(sweptarea, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'Area', INDETERMINATE)) is not False class IfcSweptDiskSolid_DirectrixDim: SCOPE = 'entity' @@ -10571,8 +10581,8 @@ class IfcSweptDiskSolid_DirectrixDim: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - assert (getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + assert (express_getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False class IfcSweptDiskSolid_InnerRadiusSize: SCOPE = 'entity' @@ -10581,8 +10591,8 @@ class IfcSweptDiskSolid_InnerRadiusSize: @staticmethod def __call__(self): - radius = getattr(self, 'Radius', INDETERMINATE) - innerradius = getattr(self, 'InnerRadius', INDETERMINATE) + radius = express_getattr(self, 'Radius', INDETERMINATE) + innerradius = express_getattr(self, 'InnerRadius', INDETERMINATE) assert (not exists(innerradius) or radius > innerradius) is not False class IfcSweptDiskSolid_DirectrixBounded: @@ -10592,9 +10602,9 @@ class IfcSweptDiskSolid_DirectrixBounded: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - startparam = getattr(self, 'StartParam', INDETERMINATE) - endparam = getattr(self, 'EndParam', INDETERMINATE) + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + startparam = express_getattr(self, 'StartParam', INDETERMINATE) + endparam = express_getattr(self, 'EndParam', INDETERMINATE) assert (exists(startparam) and exists(endparam) or sizeof(['ifc4x1.ifcconic', 'ifc4x1.ifcboundedcurve'] * typeof(directrix)) == 1) is not False class IfcSweptDiskSolidPolygonal_CorrectRadii: @@ -10604,8 +10614,8 @@ class IfcSweptDiskSolidPolygonal_CorrectRadii: @staticmethod def __call__(self): - filletradius = getattr(self, 'FilletRadius', INDETERMINATE) - assert (not exists(filletradius) or filletradius >= getattr(self, 'Radius', INDETERMINATE)) is not False + filletradius = express_getattr(self, 'FilletRadius', INDETERMINATE) + assert (not exists(filletradius) or filletradius >= express_getattr(self, 'Radius', INDETERMINATE)) is not False class IfcSweptDiskSolidPolygonal_DirectrixIsPolyline: SCOPE = 'entity' @@ -10614,7 +10624,7 @@ class IfcSweptDiskSolidPolygonal_DirectrixIsPolyline: @staticmethod def __call__(self): - assert ('ifc4x1.ifcpolyline' in typeof(getattr(self, 'Directrix', INDETERMINATE)) or ('ifc4x1.ifcindexedpolycurve' in typeof(getattr(self, 'Directrix', INDETERMINATE)) and (not exists(getattr(getattr(self, 'Directrix', INDETERMINATE), 'Segments', INDETERMINATE))))) is not False + assert ('ifc4x1.ifcpolyline' in typeof(express_getattr(self, 'Directrix', INDETERMINATE)) or ('ifc4x1.ifcindexedpolycurve' in typeof(express_getattr(self, 'Directrix', INDETERMINATE)) and (not exists(express_getattr(express_getattr(self, 'Directrix', INDETERMINATE), 'Segments', INDETERMINATE))))) is not False class IfcSweptSurface_SweptCurveType: SCOPE = 'entity' @@ -10623,8 +10633,8 @@ class IfcSweptSurface_SweptCurveType: @staticmethod def __call__(self): - sweptcurve = getattr(self, 'SweptCurve', INDETERMINATE) - assert (getattr(sweptcurve, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'Curve', INDETERMINATE)) is not False + sweptcurve = express_getattr(self, 'SweptCurve', INDETERMINATE) + assert (express_getattr(sweptcurve, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'Curve', INDETERMINATE)) is not False class IfcSwitchingDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -10633,8 +10643,8 @@ class IfcSwitchingDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSwitchingDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -10643,8 +10653,8 @@ class IfcSwitchingDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcswitchingdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcswitchingdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSwitchingDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -10653,8 +10663,8 @@ class IfcSwitchingDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSystemFurnitureElement_CorrectPredefinedType: SCOPE = 'entity' @@ -10663,8 +10673,8 @@ class IfcSystemFurnitureElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSystemFurnitureElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -10673,8 +10683,8 @@ class IfcSystemFurnitureElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcsystemfurnitureelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcsystemfurnitureelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSystemFurnitureElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -10683,8 +10693,8 @@ class IfcSystemFurnitureElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -10693,8 +10703,8 @@ class IfcTShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth) is not False class IfcTShapeProfileDef_ValidWebThickness: @@ -10704,8 +10714,8 @@ class IfcTShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - flangewidth = getattr(self, 'FlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + flangewidth = express_getattr(self, 'FlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < flangewidth) is not False class IfcTable_WR1: @@ -10715,8 +10725,8 @@ class IfcTable_WR1: @staticmethod def __call__(self): - rows = getattr(self, 'Rows', INDETERMINATE) - assert (sizeof([temp for temp in rows if hiindex(getattr(temp, 'RowCells', INDETERMINATE)) != hiindex(getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE))]) == 0) is not False + rows = express_getattr(self, 'Rows', INDETERMINATE) + assert (sizeof([temp for temp in rows if hiindex(express_getattr(temp, 'RowCells', INDETERMINATE)) != hiindex(express_getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE))]) == 0) is not False class IfcTable_WR2: SCOPE = 'entity' @@ -10725,20 +10735,20 @@ class IfcTable_WR2: @staticmethod def __call__(self): - numberofheadings = getattr(self, 'NumberOfHeadings', INDETERMINATE) + numberofheadings = express_getattr(self, 'NumberOfHeadings', INDETERMINATE) assert (0 <= numberofheadings <= 1) is not False def calc_IfcTable_NumberOfCellsInRow(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return hiindex(getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE)) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return hiindex(express_getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE)) def calc_IfcTable_NumberOfHeadings(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return sizeof([temp for temp in rows if getattr(temp, 'IsHeading', INDETERMINATE)]) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return sizeof([temp for temp in rows if express_getattr(temp, 'IsHeading', INDETERMINATE)]) def calc_IfcTable_NumberOfDataRows(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return sizeof([temp for temp in rows if not getattr(temp, 'IsHeading', INDETERMINATE)]) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return sizeof([temp for temp in rows if not express_getattr(temp, 'IsHeading', INDETERMINATE)]) class IfcTank_CorrectPredefinedType: SCOPE = 'entity' @@ -10747,8 +10757,8 @@ class IfcTank_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTank_CorrectTypeAssigned: SCOPE = 'entity' @@ -10757,8 +10767,8 @@ class IfcTank_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifctanktype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifctanktype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTankType_CorrectPredefinedType: SCOPE = 'entity' @@ -10767,8 +10777,8 @@ class IfcTankType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTask_HasName: SCOPE = 'entity' @@ -10777,7 +10787,7 @@ class IfcTask_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcTask_CorrectPredefinedType: SCOPE = 'entity' @@ -10786,8 +10796,8 @@ class IfcTask_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTaskType_CorrectPredefinedType: SCOPE = 'entity' @@ -10796,8 +10806,8 @@ class IfcTaskType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcTelecomAddress_MinimumDataProvided: SCOPE = 'entity' @@ -10806,12 +10816,12 @@ class IfcTelecomAddress_MinimumDataProvided: @staticmethod def __call__(self): - telephonenumbers = getattr(self, 'TelephoneNumbers', INDETERMINATE) - facsimilenumbers = getattr(self, 'FacsimileNumbers', INDETERMINATE) - pagernumber = getattr(self, 'PagerNumber', INDETERMINATE) - electronicmailaddresses = getattr(self, 'ElectronicMailAddresses', INDETERMINATE) - wwwhomepageurl = getattr(self, 'WWWHomePageURL', INDETERMINATE) - messagingids = getattr(self, 'MessagingIDs', INDETERMINATE) + telephonenumbers = express_getattr(self, 'TelephoneNumbers', INDETERMINATE) + facsimilenumbers = express_getattr(self, 'FacsimileNumbers', INDETERMINATE) + pagernumber = express_getattr(self, 'PagerNumber', INDETERMINATE) + electronicmailaddresses = express_getattr(self, 'ElectronicMailAddresses', INDETERMINATE) + wwwhomepageurl = express_getattr(self, 'WWWHomePageURL', INDETERMINATE) + messagingids = express_getattr(self, 'MessagingIDs', INDETERMINATE) assert (exists(telephonenumbers) or exists(facsimilenumbers) or exists(pagernumber) or exists(electronicmailaddresses) or exists(wwwhomepageurl) or exists(messagingids)) is not False class IfcTendon_CorrectPredefinedType: @@ -10821,8 +10831,8 @@ class IfcTendon_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendon_CorrectTypeAssigned: SCOPE = 'entity' @@ -10831,8 +10841,8 @@ class IfcTendon_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifctendontype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifctendontype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonAnchor_CorrectPredefinedType: SCOPE = 'entity' @@ -10841,8 +10851,8 @@ class IfcTendonAnchor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendonAnchor_CorrectTypeAssigned: SCOPE = 'entity' @@ -10851,8 +10861,8 @@ class IfcTendonAnchor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifctendonanchortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifctendonanchortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonAnchorType_CorrectPredefinedType: SCOPE = 'entity' @@ -10861,8 +10871,8 @@ class IfcTendonAnchorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTendonType_CorrectPredefinedType: SCOPE = 'entity' @@ -10871,8 +10881,8 @@ class IfcTendonType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcTessellatedFaceSet_Dim(self): return 3 @@ -10884,7 +10894,7 @@ class IfcTextLiteralWithExtent_WR31: @staticmethod def __call__(self): - extent = getattr(self, 'Extent', INDETERMINATE) + extent = express_getattr(self, 'Extent', INDETERMINATE) assert (not 'ifc4x1.ifcplanarbox' in typeof(extent)) is not False class IfcTextStyleFontModel_MeasureOfFontSize: @@ -10894,7 +10904,7 @@ class IfcTextStyleFontModel_MeasureOfFontSize: @staticmethod def __call__(self): - assert ('ifc4x1.ifclengthmeasure' in typeof(getattr(self, 'FontSize', INDETERMINATE)) and getattr(self, 'FontSize', INDETERMINATE) > 0.0) is not False + assert ('ifc4x1.ifclengthmeasure' in typeof(express_getattr(self, 'FontSize', INDETERMINATE)) and express_getattr(self, 'FontSize', INDETERMINATE) > 0.0) is not False class IfcTopologyRepresentation_WR21: SCOPE = 'entity' @@ -10903,7 +10913,7 @@ class IfcTopologyRepresentation_WR21: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Items', INDETERMINATE) if not 'ifc4x1.ifctopologicalrepresentationitem' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Items', INDETERMINATE) if not 'ifc4x1.ifctopologicalrepresentationitem' in typeof(temp)]) == 0) is not False class IfcTopologyRepresentation_WR22: SCOPE = 'entity' @@ -10912,7 +10922,7 @@ class IfcTopologyRepresentation_WR22: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationType', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationType', INDETERMINATE)) is not False class IfcTopologyRepresentation_WR23: SCOPE = 'entity' @@ -10921,7 +10931,7 @@ class IfcTopologyRepresentation_WR23: @staticmethod def __call__(self): - assert IfcTopologyRepresentationTypes(getattr(self, 'RepresentationType', INDETERMINATE), getattr(self, 'Items', INDETERMINATE)) is not False + assert IfcTopologyRepresentationTypes(express_getattr(self, 'RepresentationType', INDETERMINATE), express_getattr(self, 'Items', INDETERMINATE)) is not False class IfcToroidalSurface_MajorLargerMinor: SCOPE = 'entity' @@ -10930,8 +10940,8 @@ class IfcToroidalSurface_MajorLargerMinor: @staticmethod def __call__(self): - majorradius = getattr(self, 'MajorRadius', INDETERMINATE) - minorradius = getattr(self, 'MinorRadius', INDETERMINATE) + majorradius = express_getattr(self, 'MajorRadius', INDETERMINATE) + minorradius = express_getattr(self, 'MinorRadius', INDETERMINATE) assert (minorradius < majorradius) is not False class IfcTransformer_CorrectPredefinedType: @@ -10941,8 +10951,8 @@ class IfcTransformer_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTransformer_CorrectTypeAssigned: SCOPE = 'entity' @@ -10951,8 +10961,8 @@ class IfcTransformer_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifctranformertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifctranformertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTransformerType_CorrectPredefinedType: SCOPE = 'entity' @@ -10961,8 +10971,8 @@ class IfcTransformerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTransportElement_CorrectPredefinedType: SCOPE = 'entity' @@ -10971,8 +10981,8 @@ class IfcTransportElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTransportElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -10981,8 +10991,8 @@ class IfcTransportElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifctransportelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifctransportelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTransportElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -10991,11 +11001,11 @@ class IfcTransportElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcTriangulatedFaceSet_NumberOfTriangles(self): - coordindex = getattr(self, 'CoordIndex', INDETERMINATE) + coordindex = express_getattr(self, 'CoordIndex', INDETERMINATE) return sizeof(coordindex) class IfcTriangulatedIrregularNetwork_NotClosed: @@ -11005,7 +11015,7 @@ class IfcTriangulatedIrregularNetwork_NotClosed: @staticmethod def __call__(self): - assert (getattr(self, 'Closed', INDETERMINATE) == False) is not False + assert (express_getattr(self, 'Closed', INDETERMINATE) == False) is not False class IfcTrimmedCurve_Trim1ValuesConsistent: SCOPE = 'entity' @@ -11014,7 +11024,7 @@ class IfcTrimmedCurve_Trim1ValuesConsistent: @staticmethod def __call__(self): - trim1 = getattr(self, 'Trim1', INDETERMINATE) + trim1 = express_getattr(self, 'Trim1', INDETERMINATE) assert (hiindex(trim1) == 1 or typeof(express_getitem(trim1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(express_getitem(trim1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcTrimmedCurve_Trim2ValuesConsistent: @@ -11024,7 +11034,7 @@ class IfcTrimmedCurve_Trim2ValuesConsistent: @staticmethod def __call__(self): - trim2 = getattr(self, 'Trim2', INDETERMINATE) + trim2 = express_getattr(self, 'Trim2', INDETERMINATE) assert (hiindex(trim2) == 1 or typeof(express_getitem(trim2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(express_getitem(trim2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcTrimmedCurve_NoTrimOfBoundedCurves: @@ -11034,7 +11044,7 @@ class IfcTrimmedCurve_NoTrimOfBoundedCurves: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) assert (not 'ifc4x1.ifcboundedcurve' in typeof(basiscurve)) is not False class IfcTubeBundle_CorrectPredefinedType: @@ -11044,8 +11054,8 @@ class IfcTubeBundle_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTubeBundle_CorrectTypeAssigned: SCOPE = 'entity' @@ -11054,8 +11064,8 @@ class IfcTubeBundle_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifctubebundletype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifctubebundletype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTubeBundleType_CorrectPredefinedType: SCOPE = 'entity' @@ -11064,8 +11074,8 @@ class IfcTubeBundleType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTypeObject_NameRequired: SCOPE = 'entity' @@ -11074,7 +11084,7 @@ class IfcTypeObject_NameRequired: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcTypeObject_UniquePropertySetNames: SCOPE = 'entity' @@ -11083,7 +11093,7 @@ class IfcTypeObject_UniquePropertySetNames: @staticmethod def __call__(self): - haspropertysets = getattr(self, 'HasPropertySets', INDETERMINATE) + haspropertysets = express_getattr(self, 'HasPropertySets', INDETERMINATE) assert (not exists(haspropertysets) or IfcUniquePropertySetNames(haspropertysets)) is not False class IfcTypeProduct_ApplicableOccurrence: @@ -11093,7 +11103,7 @@ class IfcTypeProduct_ApplicableOccurrence: @staticmethod def __call__(self): - assert (not exists(lambda : express_getitem(getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or sizeof([temp for temp in getattr(express_getitem(getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not 'ifc4x1.ifcproduct' in typeof(temp)]) == 0) is not False + assert (not exists(lambda : express_getitem(express_getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or sizeof([temp for temp in express_getattr(express_getitem(express_getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not 'ifc4x1.ifcproduct' in typeof(temp)]) == 0) is not False class IfcUShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -11102,8 +11112,8 @@ class IfcUShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth / 2.0) is not False class IfcUShapeProfileDef_ValidWebThickness: @@ -11113,8 +11123,8 @@ class IfcUShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - flangewidth = getattr(self, 'FlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + flangewidth = express_getattr(self, 'FlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < flangewidth) is not False class IfcUnitAssignment_WR01: @@ -11124,7 +11134,7 @@ class IfcUnitAssignment_WR01: @staticmethod def __call__(self): - units = getattr(self, 'Units', INDETERMINATE) + units = express_getattr(self, 'Units', INDETERMINATE) assert IfcCorrectUnitAssignment(units) is not False class IfcUnitaryControlElement_CorrectPredefinedType: @@ -11134,8 +11144,8 @@ class IfcUnitaryControlElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcUnitaryControlElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -11144,8 +11154,8 @@ class IfcUnitaryControlElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcunitarycontrolelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcunitarycontrolelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcUnitaryControlElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -11154,8 +11164,8 @@ class IfcUnitaryControlElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcUnitaryEquipment_CorrectPredefinedType: SCOPE = 'entity' @@ -11164,8 +11174,8 @@ class IfcUnitaryEquipment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcUnitaryEquipment_CorrectTypeAssigned: SCOPE = 'entity' @@ -11174,8 +11184,8 @@ class IfcUnitaryEquipment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcunitaryequipmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcunitaryequipmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcUnitaryEquipmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -11184,8 +11194,8 @@ class IfcUnitaryEquipmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcValve_CorrectPredefinedType: SCOPE = 'entity' @@ -11194,8 +11204,8 @@ class IfcValve_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcValve_CorrectTypeAssigned: SCOPE = 'entity' @@ -11204,8 +11214,8 @@ class IfcValve_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcvalvetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcvalvetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcValveType_CorrectPredefinedType: SCOPE = 'entity' @@ -11214,8 +11224,8 @@ class IfcValveType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVector_MagGreaterOrEqualZero: SCOPE = 'entity' @@ -11224,12 +11234,12 @@ class IfcVector_MagGreaterOrEqualZero: @staticmethod def __call__(self): - magnitude = getattr(self, 'Magnitude', INDETERMINATE) + magnitude = express_getattr(self, 'Magnitude', INDETERMINATE) assert (magnitude >= 0.0) is not False def calc_IfcVector_Dim(self): - orientation = getattr(self, 'Orientation', INDETERMINATE) - return getattr(orientation, 'Dim', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return express_getattr(orientation, 'Dim', INDETERMINATE) class IfcVibrationIsolator_CorrectPredefinedType: SCOPE = 'entity' @@ -11238,8 +11248,8 @@ class IfcVibrationIsolator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcVibrationIsolator_CorrectTypeAssigned: SCOPE = 'entity' @@ -11248,8 +11258,8 @@ class IfcVibrationIsolator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcvibrationisolatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcvibrationisolatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcVibrationIsolatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -11258,8 +11268,8 @@ class IfcVibrationIsolatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVoidingFeature_HasObjectType: SCOPE = 'entity' @@ -11268,8 +11278,8 @@ class IfcVoidingFeature_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcWall_CorrectPredefinedType: SCOPE = 'entity' @@ -11278,8 +11288,8 @@ class IfcWall_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWall_CorrectTypeAssigned: SCOPE = 'entity' @@ -11288,8 +11298,8 @@ class IfcWall_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcwalltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcwalltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWallElementedCase_HasDecomposition: SCOPE = 'entity' @@ -11298,7 +11308,7 @@ class IfcWallElementedCase_HasDecomposition: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'IsDecomposedBy', INDETERMINATE)) > 0) is not False + assert (hiindex(express_getattr(self, 'IsDecomposedBy', INDETERMINATE)) > 0) is not False class IfcWallStandardCase_HasMaterialLayerSetUsage: SCOPE = 'entity' @@ -11307,7 +11317,7 @@ class IfcWallStandardCase_HasMaterialLayerSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x1.ifcrelassociates.relatedobjects') if 'ifc4x1.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x1.ifcmateriallayersetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x1.ifcrelassociates.relatedobjects') if 'ifc4x1.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x1.ifcmateriallayersetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcWallType_CorrectPredefinedType: SCOPE = 'entity' @@ -11316,8 +11326,8 @@ class IfcWallType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWasteTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -11326,8 +11336,8 @@ class IfcWasteTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWasteTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -11336,8 +11346,8 @@ class IfcWasteTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcwasteterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcwasteterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWasteTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -11346,8 +11356,8 @@ class IfcWasteTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWindow_CorrectStyleAssigned: SCOPE = 'entity' @@ -11356,8 +11366,8 @@ class IfcWindow_CorrectStyleAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcwindowtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x1.ifcwindowtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWindowLiningProperties_WR31: SCOPE = 'entity' @@ -11366,8 +11376,8 @@ class IfcWindowLiningProperties_WR31: @staticmethod def __call__(self): - liningdepth = getattr(self, 'LiningDepth', INDETERMINATE) - liningthickness = getattr(self, 'LiningThickness', INDETERMINATE) + liningdepth = express_getattr(self, 'LiningDepth', INDETERMINATE) + liningthickness = express_getattr(self, 'LiningThickness', INDETERMINATE) assert (not (exists(liningdepth) and (not exists(liningthickness)))) is not False class IfcWindowLiningProperties_WR32: @@ -11377,8 +11387,8 @@ class IfcWindowLiningProperties_WR32: @staticmethod def __call__(self): - firsttransomoffset = getattr(self, 'FirstTransomOffset', INDETERMINATE) - secondtransomoffset = getattr(self, 'SecondTransomOffset', INDETERMINATE) + firsttransomoffset = express_getattr(self, 'FirstTransomOffset', INDETERMINATE) + secondtransomoffset = express_getattr(self, 'SecondTransomOffset', INDETERMINATE) assert (not (not exists(firsttransomoffset) and exists(secondtransomoffset))) is not False class IfcWindowLiningProperties_WR33: @@ -11388,8 +11398,8 @@ class IfcWindowLiningProperties_WR33: @staticmethod def __call__(self): - firstmullionoffset = getattr(self, 'FirstMullionOffset', INDETERMINATE) - secondmullionoffset = getattr(self, 'SecondMullionOffset', INDETERMINATE) + firstmullionoffset = express_getattr(self, 'FirstMullionOffset', INDETERMINATE) + secondmullionoffset = express_getattr(self, 'SecondMullionOffset', INDETERMINATE) assert (not (not exists(firstmullionoffset) and exists(secondmullionoffset))) is not False class IfcWindowLiningProperties_WR34: @@ -11399,7 +11409,7 @@ class IfcWindowLiningProperties_WR34: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x1.ifcwindowtype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x1.ifcwindowstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x1.ifcwindowtype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x1.ifcwindowstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcWindowPanelProperties_ApplicableToType: SCOPE = 'entity' @@ -11408,7 +11418,7 @@ class IfcWindowPanelProperties_ApplicableToType: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x1.ifcwindowtype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x1.ifcwindowstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x1.ifcwindowtype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x1.ifcwindowstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcWindowType_CorrectPredefinedType: SCOPE = 'entity' @@ -11417,8 +11427,8 @@ class IfcWindowType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWorkCalendar_CorrectPredefinedType: SCOPE = 'entity' @@ -11427,8 +11437,8 @@ class IfcWorkCalendar_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWorkPlan_CorrectPredefinedType: SCOPE = 'entity' @@ -11437,8 +11447,8 @@ class IfcWorkPlan_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWorkSchedule_CorrectPredefinedType: SCOPE = 'entity' @@ -11447,8 +11457,8 @@ class IfcWorkSchedule_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcZShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -11457,8 +11467,8 @@ class IfcZShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth / 2.0) is not False class IfcZone_WR1: @@ -11468,19 +11478,19 @@ class IfcZone_WR1: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'IsGroupedBy', INDETERMINATE)) == 0 or sizeof([temp for temp in getattr(express_getitem(getattr(self, 'IsGroupedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not ('ifc4x1.ifczone' in typeof(temp) or 'ifc4x1.ifcspace' in typeof(temp) or 'ifc4x1.ifcspatialzone' in typeof(temp))]) == 0) is not False + assert (sizeof(express_getattr(self, 'IsGroupedBy', INDETERMINATE)) == 0 or sizeof([temp for temp in express_getattr(express_getitem(express_getattr(self, 'IsGroupedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not ('ifc4x1.ifczone' in typeof(temp) or 'ifc4x1.ifcspace' in typeof(temp) or 'ifc4x1.ifcspatialzone' in typeof(temp))]) == 0) is not False class IfcRepresentationContextSameWCS: SCOPE = 'file' @staticmethod def __call__(file): - IfcGeometricRepresentationContext = getattr(file, 'by_type', INDETERMINATE)('IfcGeometricRepresentationContext') + IfcGeometricRepresentationContext = express_getattr(file, 'by_type', INDETERMINATE)('IfcGeometricRepresentationContext') isdifferent = False if sizeof(IfcGeometricRepresentationContext) > 1: for i in range(2, hiindex(IfcGeometricRepresentationContext) + 1): - if getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE) != getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE): - isdifferent = not IfcSameValidPrecision(getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) or not IfcSameAxis2Placement(getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) + if express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE) != express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE): + isdifferent = not IfcSameValidPrecision(express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) or not IfcSameAxis2Placement(express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) if isdifferent == True: break assert (isdifferent == False) is not False @@ -11490,11 +11500,11 @@ class IfcSingleProjectInstance: @staticmethod def __call__(file): - IfcProject = getattr(file, 'by_type', INDETERMINATE)('IfcProject') + IfcProject = express_getattr(file, 'by_type', INDETERMINATE)('IfcProject') assert (sizeof(IfcProject) <= 1) is not False def IfcAssociatedSurface(arg): - surf = getattr(arg, 'BasisSurface', INDETERMINATE) + surf = express_getattr(arg, 'BasisSurface', INDETERMINATE) return surf def IfcBaseAxis(dim, axis1, axis2, axis3): @@ -11508,13 +11518,13 @@ def IfcBaseAxis(dim, axis1, axis2, axis3): if exists(axis2): factor = IfcDotProduct(axis2, express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) if factor < 0.0: - u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) elif exists(axis2): d1 = IfcNormalise(axis2) u = [IfcOrthogonalComplement(d1), d1] - u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) else: u = [IfcDirection(DirectionRatios=[1.0, 0.0]), IfcDirection(DirectionRatios=[0.0, 1.0])] return u @@ -11532,7 +11542,7 @@ def IfcBuild2Axes(refdirection): def IfcBuildAxes(axis, refdirection): d1 = nvl(IfcNormalise(axis), IfcDirection(DirectionRatios=[0.0, 0.0, 1.0])) d2 = IfcFirstProjAxis(d1, refdirection) - return [d2, getattr(IfcNormalise(IfcCrossProduct(d1, d2)), 'Orientation', INDETERMINATE), d1] + return [d2, express_getattr(IfcNormalise(IfcCrossProduct(d1, d2)), 'Orientation', INDETERMINATE), d1] def IfcConsecutiveSegments(segments): result = True @@ -11569,11 +11579,11 @@ def IfcConstraintsParamBSpline(degree, upknots, upcp, knotmult, knots): def IfcConvertDirectionInto2D(direction): direction2d = IfcDirection(DirectionRatios=[0.0, 1.0]) - temp = list(getattr(direction2d, 'DirectionRatios', INDETERMINATE)) - temp[1 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(direction, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(direction2d, 'DirectionRatios', INDETERMINATE)) + temp[1 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(direction, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) direction2d.DirectionRatios = temp - temp = list(getattr(direction2d, 'DirectionRatios', INDETERMINATE)) - temp[2 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(direction, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(direction2d, 'DirectionRatios', INDETERMINATE)) + temp[2 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(direction, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) direction2d.DirectionRatios = temp return direction2d @@ -11753,7 +11763,7 @@ def IfcCorrectLocalPlacement(axisplacement, relplacement): if 'ifc4x1.ifcaxis2placement2d' in typeof(axisplacement): return True if 'ifc4x1.ifcaxis2placement3d' in typeof(axisplacement): - if getattr(getattr(relplacement, 'RelativePlacement', INDETERMINATE), 'Dim', INDETERMINATE) == 3: + if express_getattr(express_getattr(relplacement, 'RelativePlacement', INDETERMINATE), 'Dim', INDETERMINATE) == 3: return True else: return False @@ -11764,27 +11774,27 @@ def IfcCorrectObjectAssignment(constraint, objects): count = 0 if not exists(constraint): return True - if constraint == getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE): + if constraint == express_getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE): return True - elif constraint == getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x1.ifcproduct' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x1.ifcprocess' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x1.ifccontrol' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x1.ifcresource' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x1.ifcactor' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x1.ifcgroup' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x1.ifcproject' in typeof(temp)]) return count == 0 else: @@ -11796,26 +11806,26 @@ def IfcCorrectUnitAssignment(units): monetaryunitnumber = 0 namedunitnames = express_set([]) derivedunitnames = express_set([]) - namedunitnumber = sizeof([temp for temp in units if 'ifc4x1.ifcnamedunit' in typeof(temp) and (not getattr(temp, 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE))]) - derivedunitnumber = sizeof([temp for temp in units if 'ifc4x1.ifcderivedunit' in typeof(temp) and (not getattr(temp, 'UnitType', INDETERMINATE) == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE))]) + namedunitnumber = sizeof([temp for temp in units if 'ifc4x1.ifcnamedunit' in typeof(temp) and (not express_getattr(temp, 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE))]) + derivedunitnumber = sizeof([temp for temp in units if 'ifc4x1.ifcderivedunit' in typeof(temp) and (not express_getattr(temp, 'UnitType', INDETERMINATE) == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE))]) monetaryunitnumber = sizeof([temp for temp in units if 'ifc4x1.ifcmonetaryunit' in typeof(temp)]) for i in range(1, sizeof(units) + 1): - if 'ifc4x1.ifcnamedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE)): - namedunitnames = namedunitnames + getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) - if 'ifc4x1.ifcderivedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE)): - derivedunitnames = derivedunitnames + getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) + if 'ifc4x1.ifcnamedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE)): + namedunitnames = namedunitnames + express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) + if 'ifc4x1.ifcderivedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE)): + derivedunitnames = derivedunitnames + express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) return sizeof(namedunitnames) == namedunitnumber and sizeof(derivedunitnames) == derivedunitnumber and (monetaryunitnumber <= 1) def IfcCrossProduct(arg1, arg2): - if (not exists(arg1) or getattr(arg1, 'Dim', INDETERMINATE) == 2) or (not exists(arg2) or getattr(arg2, 'Dim', INDETERMINATE) == 2): + if (not exists(arg1) or express_getattr(arg1, 'Dim', INDETERMINATE) == 2) or (not exists(arg2) or express_getattr(arg2, 'Dim', INDETERMINATE) == 2): return None else: - v1 = getattr(IfcNormalise(arg1), 'DirectionRatios', INDETERMINATE) - v2 = getattr(IfcNormalise(arg2), 'DirectionRatios', INDETERMINATE) + v1 = express_getattr(IfcNormalise(arg1), 'DirectionRatios', INDETERMINATE) + v2 = express_getattr(IfcNormalise(arg2), 'DirectionRatios', INDETERMINATE) res = IfcDirection(DirectionRatios=[express_getitem(v1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(v1, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(v1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) mag = 0.0 for i in range(1, 3 + 1): - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: @@ -11824,17 +11834,17 @@ def IfcCrossProduct(arg1, arg2): def IfcCurveDim(curve): if 'ifc4x1.ifcline' in typeof(curve): - return getattr(getattr(curve, 'Pnt', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Pnt', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x1.ifcconic' in typeof(curve): - return getattr(getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x1.ifcpolyline' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'Points', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'Points', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x1.ifctrimmedcurve' in typeof(curve): - return IfcCurveDim(getattr(curve, 'BasisCurve', INDETERMINATE)) + return IfcCurveDim(express_getattr(curve, 'BasisCurve', INDETERMINATE)) if 'ifc4x1.ifccompositecurve' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x1.ifcbsplinecurve' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x1.ifcoffsetcurve2d' in typeof(curve): return 2 if 'ifc4x1.ifcoffsetcurve3d' in typeof(curve): @@ -11848,13 +11858,13 @@ def IfcCurveDim(curve): if 'ifc4x1.ifcpcurve' in typeof(curve): return 3 if 'ifc4x1.ifcindexedpolycurve' in typeof(curve): - return getattr(getattr(curve, 'Points', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Points', INDETERMINATE), 'Dim', INDETERMINATE) return None def IfcCurveWeightsPositive(b): result = True - for i in range(0, getattr(b, 'UpperIndexOnControlPoints', INDETERMINATE) + 1): - if express_getitem(getattr(b, 'Weights', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: + for i in range(0, express_getattr(b, 'UpperIndexOnControlPoints', INDETERMINATE) + 1): + if express_getitem(express_getattr(b, 'Weights', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: result = False return result return result @@ -11862,13 +11872,13 @@ def IfcCurveWeightsPositive(b): def IfcDeriveDimensionalExponents(unitelements): result = IfcDimensionalExponents(0, 0, 0, 0, 0, 0, 0) for i in range(loindex(unitelements), hiindex(unitelements) + 1): - result.LengthExponent = getattr(result, 'LengthExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LengthExponent', INDETERMINATE) - result.MassExponent = getattr(result, 'MassExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'MassExponent', INDETERMINATE) - result.TimeExponent = getattr(result, 'TimeExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'TimeExponent', INDETERMINATE) - result.ElectricCurrentExponent = getattr(result, 'ElectricCurrentExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ElectricCurrentExponent', INDETERMINATE) - result.ThermodynamicTemperatureExponent = getattr(result, 'ThermodynamicTemperatureExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ThermodynamicTemperatureExponent', INDETERMINATE) - result.AmountOfSubstanceExponent = getattr(result, 'AmountOfSubstanceExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'AmountOfSubstanceExponent', INDETERMINATE) - result.LuminousIntensityExponent = getattr(result, 'LuminousIntensityExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LuminousIntensityExponent', INDETERMINATE) + result.LengthExponent = express_getattr(result, 'LengthExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LengthExponent', INDETERMINATE) + result.MassExponent = express_getattr(result, 'MassExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'MassExponent', INDETERMINATE) + result.TimeExponent = express_getattr(result, 'TimeExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'TimeExponent', INDETERMINATE) + result.ElectricCurrentExponent = express_getattr(result, 'ElectricCurrentExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ElectricCurrentExponent', INDETERMINATE) + result.ThermodynamicTemperatureExponent = express_getattr(result, 'ThermodynamicTemperatureExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ThermodynamicTemperatureExponent', INDETERMINATE) + result.AmountOfSubstanceExponent = express_getattr(result, 'AmountOfSubstanceExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'AmountOfSubstanceExponent', INDETERMINATE) + result.LuminousIntensityExponent = express_getattr(result, 'LuminousIntensityExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LuminousIntensityExponent', INDETERMINATE) return result def IfcDimensionsForSiUnit(n): @@ -11938,15 +11948,15 @@ def IfcDimensionsForSiUnit(n): def IfcDotProduct(arg1, arg2): if not exists(arg1) or not exists(arg2): scalar = None - elif getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + elif express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): scalar = None else: vec1 = IfcNormalise(arg1) vec2 = IfcNormalise(arg2) - ndim = getattr(arg1, 'Dim', INDETERMINATE) + ndim = express_getattr(arg1, 'Dim', INDETERMINATE) scalar = 0.0 for i in range(1, ndim + 1): - scalar = scalar + express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + scalar = scalar + express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return scalar def IfcFirstProjAxis(zaxis, arg): @@ -11955,36 +11965,36 @@ def IfcFirstProjAxis(zaxis, arg): else: z = IfcNormalise(zaxis) if not exists(arg): - if getattr(z, 'DirectionRatios', INDETERMINATE) != [1.0, 0.0, 0.0]: + if express_getattr(z, 'DirectionRatios', INDETERMINATE) != [1.0, 0.0, 0.0]: v = IfcDirection(DirectionRatios=[1.0, 0.0, 0.0]) else: v = IfcDirection(DirectionRatios=[0.0, 1.0, 0.0]) else: - if getattr(arg, 'Dim', INDETERMINATE) != 3: + if express_getattr(arg, 'Dim', INDETERMINATE) != 3: return None - if getattr(IfcCrossProduct(arg, z), 'Magnitude', INDETERMINATE) == 0.0: + if express_getattr(IfcCrossProduct(arg, z), 'Magnitude', INDETERMINATE) == 0.0: return None else: v = IfcNormalise(arg) xvec = IfcScalarTimesVector(IfcDotProduct(v, z), z) - xaxis = getattr(IfcVectorDifference(v, xvec), 'Orientation', INDETERMINATE) + xaxis = express_getattr(IfcVectorDifference(v, xvec), 'Orientation', INDETERMINATE) xaxis = IfcNormalise(xaxis) return xaxis def IfcGetBasisSurface(c): surfs = [] if 'ifc4x1.ifcpcurve' in typeof(c): - surfs = [getattr(c, 'BasisSurface', INDETERMINATE)] + surfs = [express_getattr(c, 'BasisSurface', INDETERMINATE)] elif 'ifc4x1.ifcsurfacecurve' in typeof(c): - n = sizeof(getattr(c, 'AssociatedGeometry', INDETERMINATE)) + n = sizeof(express_getattr(c, 'AssociatedGeometry', INDETERMINATE)) for i in range(1, n + 1): - surfs = surfs + IfcAssociatedSurface(express_getitem(getattr(c, 'AssociatedGeometry', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) + surfs = surfs + IfcAssociatedSurface(express_getitem(express_getattr(c, 'AssociatedGeometry', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) if 'ifc4x1.ifccompositecurveonsurface' in typeof(c): - n = sizeof(getattr(c, 'Segments', INDETERMINATE)) - surfs = IfcGetBasisSurface(getattr(express_getitem(getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) + n = sizeof(express_getattr(c, 'Segments', INDETERMINATE)) + surfs = IfcGetBasisSurface(express_getattr(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) if n > 1: for i in range(2, n + 1): - surfs = surfs * IfcGetBasisSurface(getattr(express_getitem(getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) + surfs = surfs * IfcGetBasisSurface(express_getattr(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) return surfs def IfcListToArray(lis, low, u): @@ -12001,9 +12011,9 @@ def IfcListToArray(lis, low, u): def IfcLoopHeadToTail(aloop): p = True - n = sizeof(getattr(aloop, 'EdgeList', INDETERMINATE)) + n = sizeof(express_getattr(aloop, 'EdgeList', INDETERMINATE)) for i in range(2, n + 1): - p = p and getattr(express_getitem(getattr(aloop, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == getattr(express_getitem(getattr(aloop, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) + p = p and express_getattr(express_getitem(express_getattr(aloop, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == express_getattr(express_getitem(express_getattr(aloop, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) return p def IfcMakeArrayOfArray(lis, low1, u1, low2, u2): @@ -12021,10 +12031,10 @@ def IfcMakeArrayOfArray(lis, low1, u1, low2, u2): return res def IfcMlsTotalThickness(layerset): - max = getattr(express_getitem(getattr(layerset, 'MaterialLayers', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) - if sizeof(getattr(layerset, 'MaterialLayers', INDETERMINATE)) > 1: - for i in range(2, hiindex(getattr(layerset, 'MaterialLayers', INDETERMINATE)) + 1): - max = max + getattr(express_getitem(getattr(layerset, 'MaterialLayers', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) + max = express_getattr(express_getitem(express_getattr(layerset, 'MaterialLayers', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) + if sizeof(express_getattr(layerset, 'MaterialLayers', INDETERMINATE)) > 1: + for i in range(2, hiindex(express_getattr(layerset, 'MaterialLayers', INDETERMINATE)) + 1): + max = max + express_getattr(express_getitem(express_getattr(layerset, 'MaterialLayers', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) return max def IfcNormalise(arg): @@ -12035,25 +12045,25 @@ def IfcNormalise(arg): return None else: if 'ifc4x1.ifcvector' in typeof(arg): - ndim = getattr(arg, 'Dim', INDETERMINATE) - v.DirectionRatios = getattr(getattr(arg, 'Orientation', INDETERMINATE), 'DirectionRatios', INDETERMINATE) - vec.Magnitude = getattr(arg, 'Magnitude', INDETERMINATE) + ndim = express_getattr(arg, 'Dim', INDETERMINATE) + v.DirectionRatios = express_getattr(express_getattr(arg, 'Orientation', INDETERMINATE), 'DirectionRatios', INDETERMINATE) + vec.Magnitude = express_getattr(arg, 'Magnitude', INDETERMINATE) vec.Orientation = v - if getattr(arg, 'Magnitude', INDETERMINATE) == 0.0: + if express_getattr(arg, 'Magnitude', INDETERMINATE) == 0.0: return None else: vec.Magnitude = 1.0 else: - ndim = getattr(arg, 'Dim', INDETERMINATE) - v.DirectionRatios = getattr(arg, 'DirectionRatios', INDETERMINATE) + ndim = express_getattr(arg, 'Dim', INDETERMINATE) + v.DirectionRatios = express_getattr(arg, 'DirectionRatios', INDETERMINATE) mag = 0.0 for i in range(1, ndim + 1): - mag = mag + express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: mag = sqrt(mag) for i in range(1, ndim + 1): - temp = list(getattr(v, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) / mag + temp = list(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) / mag v.DirectionRatios = temp if 'ifc4x1.ifcvector' in typeof(arg): vec.Orientation = v @@ -12065,18 +12075,18 @@ def IfcNormalise(arg): return result def IfcOrthogonalComplement(vec): - if not exists(vec) or getattr(vec, 'Dim', INDETERMINATE) != 2: + if not exists(vec) or express_getattr(vec, 'Dim', INDETERMINATE) != 2: return None else: - result = IfcDirection(DirectionRatios=[-express_getitem(getattr(vec, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(vec, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) + result = IfcDirection(DirectionRatios=[-express_getitem(express_getattr(vec, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(vec, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) return result def IfcPathHeadToTail(apath): n = 0 p = unknown - n = sizeof(getattr(apath, 'EdgeList', INDETERMINATE)) + n = sizeof(express_getattr(apath, 'EdgeList', INDETERMINATE)) for i in range(2, n + 1): - p = p and getattr(express_getitem(getattr(apath, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == getattr(express_getitem(getattr(apath, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) + p = p and express_getattr(express_getitem(express_getattr(apath, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == express_getattr(express_getitem(express_getattr(apath, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) return p def IfcPointListDim(pointlist): @@ -12087,32 +12097,32 @@ def IfcPointListDim(pointlist): return None def IfcSameAxis2Placement(ap1, ap2, epsilon): - return IfcSameDirection(express_getitem(getattr(ap1, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(ap2, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameDirection(express_getitem(getattr(ap1, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(ap2, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameCartesianPoint(getattr(ap1, 'Location', INDETERMINATE), getattr(ap1, 'Location', INDETERMINATE), epsilon) + return IfcSameDirection(express_getitem(express_getattr(ap1, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(ap2, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameDirection(express_getitem(express_getattr(ap1, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(ap2, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameCartesianPoint(express_getattr(ap1, 'Location', INDETERMINATE), express_getattr(ap1, 'Location', INDETERMINATE), epsilon) def IfcSameCartesianPoint(cp1, cp2, epsilon): - cp1x = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - cp1y = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp1x = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp1y = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) cp1z = 0 - cp2x = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - cp2y = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp2x = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp2y = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) cp2z = 0 - if sizeof(getattr(cp1, 'Coordinates', INDETERMINATE)) > 2: - cp1z = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - if sizeof(getattr(cp2, 'Coordinates', INDETERMINATE)) > 2: - cp2z = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(cp1, 'Coordinates', INDETERMINATE)) > 2: + cp1z = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(cp2, 'Coordinates', INDETERMINATE)) > 2: + cp2z = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return IfcSameValue(cp1x, cp2x, epsilon) and IfcSameValue(cp1y, cp2y, epsilon) and IfcSameValue(cp1z, cp2z, epsilon) def IfcSameDirection(dir1, dir2, epsilon): - dir1x = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - dir1y = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir1x = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir1y = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) dir1z = 0 - dir2x = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - dir2y = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir2x = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir2y = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) dir2z = 0 - if sizeof(getattr(dir1, 'DirectionRatios', INDETERMINATE)) > 2: - dir1z = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - if sizeof(getattr(dir2, 'DirectionRatios', INDETERMINATE)) > 2: - dir2z = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(dir1, 'DirectionRatios', INDETERMINATE)) > 2: + dir1z = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(dir2, 'DirectionRatios', INDETERMINATE)) > 2: + dir2z = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return IfcSameValue(dir1x, dir2x, epsilon) and IfcSameValue(dir1y, dir2y, epsilon) and IfcSameValue(dir1z, dir2z, epsilon) def IfcSameValidPrecision(epsilon1, epsilon2): @@ -12133,15 +12143,15 @@ def IfcScalarTimesVector(scalar, vec): return None else: if 'ifc4x1.ifcvector' in typeof(vec): - v = getattr(vec, 'Orientation', INDETERMINATE) - mag = scalar * getattr(vec, 'Magnitude', INDETERMINATE) + v = express_getattr(vec, 'Orientation', INDETERMINATE) + mag = scalar * express_getattr(vec, 'Magnitude', INDETERMINATE) else: v = vec mag = scalar if mag < 0.0: - for i in range(1, sizeof(getattr(v, 'DirectionRatios', INDETERMINATE)) + 1): - temp = list(getattr(v, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + for i in range(1, sizeof(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + 1): + temp = list(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) v.DirectionRatios = temp mag = -mag result = IfcVector(Orientation=IfcNormalise(v), Magnitude=mag) @@ -12157,71 +12167,71 @@ def IfcSecondProjAxis(zaxis, xaxis, arg): temp = IfcScalarTimesVector(IfcDotProduct(v, xaxis), xaxis) yaxis = IfcVectorDifference(yaxis, temp) yaxis = IfcNormalise(yaxis) - return getattr(yaxis, 'Orientation', INDETERMINATE) + return express_getattr(yaxis, 'Orientation', INDETERMINATE) def IfcShapeRepresentationTypes(reptype, items): count = 0 - if getattr(reptype, 'lower', INDETERMINATE)() == 'point': + if express_getattr(reptype, 'lower', INDETERMINATE)() == 'point': count = sizeof([temp for temp in items if 'ifc4x1.ifcpoint' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'pointcloud': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'pointcloud': count = sizeof([temp for temp in items if 'ifc4x1.ifccartesianpointlist3d' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve': count = sizeof([temp for temp in items if 'ifc4x1.ifccurve' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve2d': - count = sizeof([temp for temp in items if 'ifc4x1.ifccurve' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 2]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve3d': - count = sizeof([temp for temp in items if 'ifc4x1.ifccurve' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 3]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve2d': + count = sizeof([temp for temp in items if 'ifc4x1.ifccurve' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 2]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve3d': + count = sizeof([temp for temp in items if 'ifc4x1.ifccurve' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 3]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface': count = sizeof([temp for temp in items if 'ifc4x1.ifcsurface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface2d': - count = sizeof([temp for temp in items if 'ifc4x1.ifcsurface' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 2]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface3d': - count = sizeof([temp for temp in items if 'ifc4x1.ifcsurface' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 3]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'fillarea': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface2d': + count = sizeof([temp for temp in items if 'ifc4x1.ifcsurface' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 2]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface3d': + count = sizeof([temp for temp in items if 'ifc4x1.ifcsurface' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 3]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'fillarea': count = sizeof([temp for temp in items if 'ifc4x1.ifcannotationfillarea' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'text': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'text': count = sizeof([temp for temp in items if 'ifc4x1.ifctextliteral' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsurface': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsurface': count = sizeof([temp for temp in items if 'ifc4x1.ifcbsplinesurface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'annotation2d': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'annotation2d': count = sizeof([temp for temp in items if sizeof(typeof(temp) * ['ifc4x1.ifcpoint', 'ifc4x1.ifccurve', 'ifc4x1.ifcgeometriccurveset', 'ifc4x1.ifcannotationfillarea', 'ifc4x1.ifctextliteral']) == 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'geometricset': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'geometricset': count = sizeof([temp for temp in items if 'ifc4x1.ifcgeometricset' in typeof(temp) or 'ifc4x1.ifcpoint' in typeof(temp) or 'ifc4x1.ifccurve' in typeof(temp) or ('ifc4x1.ifcsurface' in typeof(temp))]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'geometriccurveset': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'geometriccurveset': count = sizeof([temp for temp in items if 'ifc4x1.ifcgeometriccurveset' in typeof(temp) or 'ifc4x1.ifcgeometricset' in typeof(temp) or 'ifc4x1.ifcpoint' in typeof(temp) or ('ifc4x1.ifccurve' in typeof(temp))]) for i in range(1, hiindex(items) + 1): if 'ifc4x1.ifcgeometricset' in typeof(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - if sizeof([temp for temp in getattr(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Elements', INDETERMINATE) if 'ifc4x1.ifcsurface' in typeof(temp)]) > 0: + if sizeof([temp for temp in express_getattr(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Elements', INDETERMINATE) if 'ifc4x1.ifcsurface' in typeof(temp)]) > 0: count = count - 1 - elif getattr(reptype, 'lower', INDETERMINATE)() == 'tessellation': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'tessellation': count = sizeof([temp for temp in items if 'ifc4x1.ifctessellateditem' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surfaceorsolidmodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surfaceorsolidmodel': count = sizeof([temp for temp in items if sizeof(['ifc4x1.ifctessellateditem', 'ifc4x1.ifcshellbasedsurfacemodel', 'ifc4x1.ifcfacebasedsurfacemodel', 'ifc4x1.ifcsolidmodel'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surfacemodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surfacemodel': count = sizeof([temp for temp in items if sizeof(['ifc4x1.ifctessellateditem', 'ifc4x1.ifcshellbasedsurfacemodel', 'ifc4x1.ifcfacebasedsurfacemodel'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'solidmodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'solidmodel': count = sizeof([temp for temp in items if 'ifc4x1.ifcsolidmodel' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'sweptsolid': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'sweptsolid': count = sizeof([temp for temp in items if sizeof(['ifc4x1.ifcextrudedareasolid', 'ifc4x1.ifcrevolvedareasolid'] * typeof(temp)) >= 1 and sizeof(['ifc4x1.ifcextrudedareasolidtapered', 'ifc4x1.ifcrevolvedareasolidtapered'] * typeof(temp)) == 0]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsweptsolid': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsweptsolid': count = sizeof([temp for temp in items if sizeof(['ifc4x1.ifcsweptareasolid', 'ifc4x1.ifcsweptdisksolid'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'csg': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'csg': count = sizeof([temp for temp in items if sizeof(['ifc4x1.ifcbooleanresult', 'ifc4x1.ifccsgprimitive3d', 'ifc4x1.ifccsgsolid'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'clipping': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'clipping': count = sizeof([temp for temp in items if sizeof(['ifc4x1.ifccsgsolid', 'ifc4x1.ifcbooleanclippingresult'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'brep': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'brep': count = sizeof([temp for temp in items if 'ifc4x1.ifcfacetedbrep' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedbrep': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedbrep': count = sizeof([temp for temp in items if 'ifc4x1.ifcmanifoldsolidbrep' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'boundingbox': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'boundingbox': count = sizeof([temp for temp in items if 'ifc4x1.ifcboundingbox' in typeof(temp)]) if sizeof(items) > 1: count = 0 - elif getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedspine': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedspine': count = sizeof([temp for temp in items if 'ifc4x1.ifcsectionedspine' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'lightsource': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'lightsource': count = sizeof([temp for temp in items if 'ifc4x1.ifclightsource' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'mappedrepresentation': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'mappedrepresentation': count = sizeof([temp for temp in items if 'ifc4x1.ifcmappeditem' in typeof(temp)]) else: return None @@ -12229,9 +12239,9 @@ def IfcShapeRepresentationTypes(reptype, items): def IfcSurfaceWeightsPositive(b): result = True - weights = getattr(b, 'Weights', INDETERMINATE) - for i in range(0, getattr(b, 'UUpper', INDETERMINATE) + 1): - for j in range(0, getattr(b, 'VUpper', INDETERMINATE) + 1): + weights = express_getattr(b, 'Weights', INDETERMINATE) + for i in range(0, express_getattr(b, 'UUpper', INDETERMINATE) + 1): + for j in range(0, express_getattr(b, 'VUpper', INDETERMINATE) + 1): if express_getitem(express_getitem(weights, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), j - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: result = False return result @@ -12241,28 +12251,28 @@ def IfcTaperedSweptAreaProfiles(startarea, endarea): result = False if 'ifc4x1.ifcparameterizedprofiledef' in typeof(startarea): if 'ifc4x1.ifcderivedprofiledef' in typeof(endarea): - result = startarea == getattr(endarea, 'ParentProfile', INDETERMINATE) + result = startarea == express_getattr(endarea, 'ParentProfile', INDETERMINATE) else: result = typeof(startarea) == typeof(endarea) elif 'ifc4x1.ifcderivedprofiledef' in typeof(endarea): - result = startarea == getattr(endarea, 'ParentProfile', INDETERMINATE) + result = startarea == express_getattr(endarea, 'ParentProfile', INDETERMINATE) else: result = False return result def IfcTopologyRepresentationTypes(reptype, items): count = 0 - if getattr(reptype, 'lower', INDETERMINATE)() == 'vertex': + if express_getattr(reptype, 'lower', INDETERMINATE)() == 'vertex': count = sizeof([temp for temp in items if 'ifc4x1.ifcvertex' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'edge': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'edge': count = sizeof([temp for temp in items if 'ifc4x1.ifcedge' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'path': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'path': count = sizeof([temp for temp in items if 'ifc4x1.ifcpath' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'face': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'face': count = sizeof([temp for temp in items if 'ifc4x1.ifcface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'shell': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'shell': count = sizeof([temp for temp in items if 'ifc4x1.ifcopenshell' in typeof(temp) or 'ifc4x1.ifcclosedshell' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'undefined': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'undefined': return True else: return None @@ -12273,7 +12283,7 @@ def IfcUniqueDefinitionNames(relations): if sizeof(relations) == 0: return True for i in range(1, hiindex(relations) + 1): - definition = getattr(express_getitem(relations, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingPropertyDefinition', INDETERMINATE) + definition = express_getattr(express_getitem(relations, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingPropertyDefinition', INDETERMINATE) if 'ifc4x1.ifcpropertysetdefinition' in typeof(definition): properties = properties + definition elif 'ifc4x1.ifcpropertysetdefinitionset' in typeof(definition): @@ -12286,7 +12296,7 @@ def IfcUniqueDefinitionNames(relations): def IfcUniquePropertyName(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcUniquePropertySetNames(properties): @@ -12294,7 +12304,7 @@ def IfcUniquePropertySetNames(properties): unnamed = 0 for i in range(1, hiindex(properties) + 1): if 'ifc4x1.ifcpropertyset' in typeof(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) else: unnamed = unnamed + 1 return sizeof(names) + unnamed == sizeof(properties) @@ -12302,41 +12312,41 @@ def IfcUniquePropertySetNames(properties): def IfcUniquePropertyTemplateNames(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcUniqueQuantityNames(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcVectorDifference(arg1, arg2): - if (not exists(arg1) or not exists(arg2)) or getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + if (not exists(arg1) or not exists(arg2)) or express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): return None else: if 'ifc4x1.ifcvector' in typeof(arg1): - mag1 = getattr(arg1, 'Magnitude', INDETERMINATE) - vec1 = getattr(arg1, 'Orientation', INDETERMINATE) + mag1 = express_getattr(arg1, 'Magnitude', INDETERMINATE) + vec1 = express_getattr(arg1, 'Orientation', INDETERMINATE) else: mag1 = 1.0 vec1 = arg1 if 'ifc4x1.ifcvector' in typeof(arg2): - mag2 = getattr(arg2, 'Magnitude', INDETERMINATE) - vec2 = getattr(arg2, 'Orientation', INDETERMINATE) + mag2 = express_getattr(arg2, 'Magnitude', INDETERMINATE) + vec2 = express_getattr(arg2, 'Orientation', INDETERMINATE) else: mag2 = 1.0 vec2 = arg2 vec1 = IfcNormalise(vec1) vec2 = IfcNormalise(vec2) - ndim = sizeof(getattr(vec1, 'DirectionRatios', INDETERMINATE)) + ndim = sizeof(express_getattr(vec1, 'DirectionRatios', INDETERMINATE)) mag = 0.0 res = IfcDirection(DirectionRatios=[0.0] * ndim) for i in range(1, ndim + 1): - temp = list(getattr(res, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - mag2 * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(res, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - mag2 * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) res.DirectionRatios = temp - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: @@ -12344,31 +12354,31 @@ def IfcVectorDifference(arg1, arg2): return result def IfcVectorSum(arg1, arg2): - if (not exists(arg1) or not exists(arg2)) or getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + if (not exists(arg1) or not exists(arg2)) or express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): return None else: if 'ifc4x1.ifcvector' in typeof(arg1): - mag1 = getattr(arg1, 'Magnitude', INDETERMINATE) - vec1 = getattr(arg1, 'Orientation', INDETERMINATE) + mag1 = express_getattr(arg1, 'Magnitude', INDETERMINATE) + vec1 = express_getattr(arg1, 'Orientation', INDETERMINATE) else: mag1 = 1.0 vec1 = arg1 if 'ifc4x1.ifcvector' in typeof(arg2): - mag2 = getattr(arg2, 'Magnitude', INDETERMINATE) - vec2 = getattr(arg2, 'Orientation', INDETERMINATE) + mag2 = express_getattr(arg2, 'Magnitude', INDETERMINATE) + vec2 = express_getattr(arg2, 'Orientation', INDETERMINATE) else: mag2 = 1.0 vec2 = arg2 vec1 = IfcNormalise(vec1) vec2 = IfcNormalise(vec2) - ndim = sizeof(getattr(vec1, 'DirectionRatios', INDETERMINATE)) + ndim = sizeof(express_getattr(vec1, 'DirectionRatios', INDETERMINATE)) mag = 0.0 res = IfcDirection(DirectionRatios=[0.0] * ndim) for i in range(1, ndim + 1): - temp = list(getattr(res, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag2 * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(res, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag2 * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) res.DirectionRatios = temp - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X2.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X2.py index 4c0a82ba74..80376eff4c 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X2.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X2.py @@ -1,5 +1,8 @@ import ifcopenshell +def is_indeterminate(v): + return v is None or type(v).__name__ == 'indeterminate_type' + def exists(v): if callable(v): try: @@ -7,10 +10,10 @@ def exists(v): except IndexError as e: return False else: - return v is not None + return not is_indeterminate(v) def nvl(v, default): - return v if v is not None else default + return v if not is_indeterminate(v) else default def is_entity(inst): if isinstance(inst, ifcopenshell.entity_instance): @@ -22,13 +25,13 @@ def is_entity(inst): def express_len(v): if isinstance(v, ifcopenshell.entity_instance) and (not is_entity(v)): v = v[0] - elif v is None or v is INDETERMINATE: + elif is_indeterminate(v): return INDETERMINATE return len(v) old_range = range def range(*args): - if INDETERMINATE in args: + if any(map(is_indeterminate, args)): return yield from old_range(*args) sizeof = express_len @@ -80,6 +83,13 @@ def express_getitem(aggr, idx, default): return aggr[idx] except IndexError as e: return None + +def express_getattr(aggr, name, default): + v = getattr(aggr, name, default) + if v is None: + return default + else: + return v EXPRESS_ONE_BASED_INDEXING = 1 def typeof(inst): @@ -140,1968 +150,1968 @@ INDETERMINATE = indeterminate_type() class enum_namespace: def __getattr__(self, k): - return getattr(k, 'upper', INDETERMINATE)() + return express_getattr(k, 'upper', INDETERMINATE)() IfcActionRequestTypeEnum = enum_namespace() -email = getattr(IfcActionRequestTypeEnum, 'EMAIL', INDETERMINATE) -fax = getattr(IfcActionRequestTypeEnum, 'FAX', INDETERMINATE) -phone = getattr(IfcActionRequestTypeEnum, 'PHONE', INDETERMINATE) -post = getattr(IfcActionRequestTypeEnum, 'POST', INDETERMINATE) -verbal = getattr(IfcActionRequestTypeEnum, 'VERBAL', INDETERMINATE) -userdefined = getattr(IfcActionRequestTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionRequestTypeEnum, 'NOTDEFINED', INDETERMINATE) +email = IfcActionRequestTypeEnum.EMAIL +fax = IfcActionRequestTypeEnum.FAX +phone = IfcActionRequestTypeEnum.PHONE +post = IfcActionRequestTypeEnum.POST +verbal = IfcActionRequestTypeEnum.VERBAL +userdefined = IfcActionRequestTypeEnum.USERDEFINED +notdefined = IfcActionRequestTypeEnum.NOTDEFINED IfcActionSourceTypeEnum = enum_namespace() -dead_load_g = getattr(IfcActionSourceTypeEnum, 'DEAD_LOAD_G', INDETERMINATE) -completion_g1 = getattr(IfcActionSourceTypeEnum, 'COMPLETION_G1', INDETERMINATE) -live_load_q = getattr(IfcActionSourceTypeEnum, 'LIVE_LOAD_Q', INDETERMINATE) -snow_s = getattr(IfcActionSourceTypeEnum, 'SNOW_S', INDETERMINATE) -wind_w = getattr(IfcActionSourceTypeEnum, 'WIND_W', INDETERMINATE) -prestressing_p = getattr(IfcActionSourceTypeEnum, 'PRESTRESSING_P', INDETERMINATE) -settlement_u = getattr(IfcActionSourceTypeEnum, 'SETTLEMENT_U', INDETERMINATE) -temperature_t = getattr(IfcActionSourceTypeEnum, 'TEMPERATURE_T', INDETERMINATE) -earthquake_e = getattr(IfcActionSourceTypeEnum, 'EARTHQUAKE_E', INDETERMINATE) -fire = getattr(IfcActionSourceTypeEnum, 'FIRE', INDETERMINATE) -impulse = getattr(IfcActionSourceTypeEnum, 'IMPULSE', INDETERMINATE) -impact = getattr(IfcActionSourceTypeEnum, 'IMPACT', INDETERMINATE) -transport = getattr(IfcActionSourceTypeEnum, 'TRANSPORT', INDETERMINATE) -erection = getattr(IfcActionSourceTypeEnum, 'ERECTION', INDETERMINATE) -propping = getattr(IfcActionSourceTypeEnum, 'PROPPING', INDETERMINATE) -system_imperfection = getattr(IfcActionSourceTypeEnum, 'SYSTEM_IMPERFECTION', INDETERMINATE) -shrinkage = getattr(IfcActionSourceTypeEnum, 'SHRINKAGE', INDETERMINATE) -creep = getattr(IfcActionSourceTypeEnum, 'CREEP', INDETERMINATE) -lack_of_fit = getattr(IfcActionSourceTypeEnum, 'LACK_OF_FIT', INDETERMINATE) -buoyancy = getattr(IfcActionSourceTypeEnum, 'BUOYANCY', INDETERMINATE) -ice = getattr(IfcActionSourceTypeEnum, 'ICE', INDETERMINATE) -current = getattr(IfcActionSourceTypeEnum, 'CURRENT', INDETERMINATE) -wave = getattr(IfcActionSourceTypeEnum, 'WAVE', INDETERMINATE) -rain = getattr(IfcActionSourceTypeEnum, 'RAIN', INDETERMINATE) -brakes = getattr(IfcActionSourceTypeEnum, 'BRAKES', INDETERMINATE) -userdefined = getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionSourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dead_load_g = IfcActionSourceTypeEnum.DEAD_LOAD_G +completion_g1 = IfcActionSourceTypeEnum.COMPLETION_G1 +live_load_q = IfcActionSourceTypeEnum.LIVE_LOAD_Q +snow_s = IfcActionSourceTypeEnum.SNOW_S +wind_w = IfcActionSourceTypeEnum.WIND_W +prestressing_p = IfcActionSourceTypeEnum.PRESTRESSING_P +settlement_u = IfcActionSourceTypeEnum.SETTLEMENT_U +temperature_t = IfcActionSourceTypeEnum.TEMPERATURE_T +earthquake_e = IfcActionSourceTypeEnum.EARTHQUAKE_E +fire = IfcActionSourceTypeEnum.FIRE +impulse = IfcActionSourceTypeEnum.IMPULSE +impact = IfcActionSourceTypeEnum.IMPACT +transport = IfcActionSourceTypeEnum.TRANSPORT +erection = IfcActionSourceTypeEnum.ERECTION +propping = IfcActionSourceTypeEnum.PROPPING +system_imperfection = IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION +shrinkage = IfcActionSourceTypeEnum.SHRINKAGE +creep = IfcActionSourceTypeEnum.CREEP +lack_of_fit = IfcActionSourceTypeEnum.LACK_OF_FIT +buoyancy = IfcActionSourceTypeEnum.BUOYANCY +ice = IfcActionSourceTypeEnum.ICE +current = IfcActionSourceTypeEnum.CURRENT +wave = IfcActionSourceTypeEnum.WAVE +rain = IfcActionSourceTypeEnum.RAIN +brakes = IfcActionSourceTypeEnum.BRAKES +userdefined = IfcActionSourceTypeEnum.USERDEFINED +notdefined = IfcActionSourceTypeEnum.NOTDEFINED IfcActionTypeEnum = enum_namespace() -permanent_g = getattr(IfcActionTypeEnum, 'PERMANENT_G', INDETERMINATE) -variable_q = getattr(IfcActionTypeEnum, 'VARIABLE_Q', INDETERMINATE) -extraordinary_a = getattr(IfcActionTypeEnum, 'EXTRAORDINARY_A', INDETERMINATE) -userdefined = getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionTypeEnum, 'NOTDEFINED', INDETERMINATE) +permanent_g = IfcActionTypeEnum.PERMANENT_G +variable_q = IfcActionTypeEnum.VARIABLE_Q +extraordinary_a = IfcActionTypeEnum.EXTRAORDINARY_A +userdefined = IfcActionTypeEnum.USERDEFINED +notdefined = IfcActionTypeEnum.NOTDEFINED IfcActuatorTypeEnum = enum_namespace() -electricactuator = getattr(IfcActuatorTypeEnum, 'ELECTRICACTUATOR', INDETERMINATE) -handoperatedactuator = getattr(IfcActuatorTypeEnum, 'HANDOPERATEDACTUATOR', INDETERMINATE) -hydraulicactuator = getattr(IfcActuatorTypeEnum, 'HYDRAULICACTUATOR', INDETERMINATE) -pneumaticactuator = getattr(IfcActuatorTypeEnum, 'PNEUMATICACTUATOR', INDETERMINATE) -thermostaticactuator = getattr(IfcActuatorTypeEnum, 'THERMOSTATICACTUATOR', INDETERMINATE) -userdefined = getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActuatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +electricactuator = IfcActuatorTypeEnum.ELECTRICACTUATOR +handoperatedactuator = IfcActuatorTypeEnum.HANDOPERATEDACTUATOR +hydraulicactuator = IfcActuatorTypeEnum.HYDRAULICACTUATOR +pneumaticactuator = IfcActuatorTypeEnum.PNEUMATICACTUATOR +thermostaticactuator = IfcActuatorTypeEnum.THERMOSTATICACTUATOR +userdefined = IfcActuatorTypeEnum.USERDEFINED +notdefined = IfcActuatorTypeEnum.NOTDEFINED IfcAddressTypeEnum = enum_namespace() -office = getattr(IfcAddressTypeEnum, 'OFFICE', INDETERMINATE) -site = getattr(IfcAddressTypeEnum, 'SITE', INDETERMINATE) -home = getattr(IfcAddressTypeEnum, 'HOME', INDETERMINATE) -distributionpoint = getattr(IfcAddressTypeEnum, 'DISTRIBUTIONPOINT', INDETERMINATE) -userdefined = getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) +office = IfcAddressTypeEnum.OFFICE +site = IfcAddressTypeEnum.SITE +home = IfcAddressTypeEnum.HOME +distributionpoint = IfcAddressTypeEnum.DISTRIBUTIONPOINT +userdefined = IfcAddressTypeEnum.USERDEFINED IfcAirTerminalBoxTypeEnum = enum_namespace() -constantflow = getattr(IfcAirTerminalBoxTypeEnum, 'CONSTANTFLOW', INDETERMINATE) -variableflowpressuredependant = getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREDEPENDANT', INDETERMINATE) -variableflowpressureindependant = getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREINDEPENDANT', INDETERMINATE) -userdefined = getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirTerminalBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +constantflow = IfcAirTerminalBoxTypeEnum.CONSTANTFLOW +variableflowpressuredependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT +variableflowpressureindependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT +userdefined = IfcAirTerminalBoxTypeEnum.USERDEFINED +notdefined = IfcAirTerminalBoxTypeEnum.NOTDEFINED IfcAirTerminalTypeEnum = enum_namespace() -diffuser = getattr(IfcAirTerminalTypeEnum, 'DIFFUSER', INDETERMINATE) -grille = getattr(IfcAirTerminalTypeEnum, 'GRILLE', INDETERMINATE) -louvre = getattr(IfcAirTerminalTypeEnum, 'LOUVRE', INDETERMINATE) -register = getattr(IfcAirTerminalTypeEnum, 'REGISTER', INDETERMINATE) -userdefined = getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +diffuser = IfcAirTerminalTypeEnum.DIFFUSER +grille = IfcAirTerminalTypeEnum.GRILLE +louvre = IfcAirTerminalTypeEnum.LOUVRE +register = IfcAirTerminalTypeEnum.REGISTER +userdefined = IfcAirTerminalTypeEnum.USERDEFINED +notdefined = IfcAirTerminalTypeEnum.NOTDEFINED IfcAirToAirHeatRecoveryTypeEnum = enum_namespace() -fixedplatecounterflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECOUNTERFLOWEXCHANGER', INDETERMINATE) -fixedplatecrossflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECROSSFLOWEXCHANGER', INDETERMINATE) -fixedplateparallelflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATEPARALLELFLOWEXCHANGER', INDETERMINATE) -rotarywheel = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'ROTARYWHEEL', INDETERMINATE) -runaroundcoilloop = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'RUNAROUNDCOILLOOP', INDETERMINATE) -heatpipe = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'HEATPIPE', INDETERMINATE) -twintowerenthalpyrecoveryloops = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'TWINTOWERENTHALPYRECOVERYLOOPS', INDETERMINATE) -thermosiphonsealedtubeheatexchangers = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONSEALEDTUBEHEATEXCHANGERS', INDETERMINATE) -thermosiphoncoiltypeheatexchangers = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONCOILTYPEHEATEXCHANGERS', INDETERMINATE) -userdefined = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'NOTDEFINED', INDETERMINATE) +fixedplatecounterflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER +fixedplatecrossflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER +fixedplateparallelflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER +rotarywheel = IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL +runaroundcoilloop = IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP +heatpipe = IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE +twintowerenthalpyrecoveryloops = IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS +thermosiphonsealedtubeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS +thermosiphoncoiltypeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS +userdefined = IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED +notdefined = IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED IfcAlarmTypeEnum = enum_namespace() -bell = getattr(IfcAlarmTypeEnum, 'BELL', INDETERMINATE) -breakglassbutton = getattr(IfcAlarmTypeEnum, 'BREAKGLASSBUTTON', INDETERMINATE) -light = getattr(IfcAlarmTypeEnum, 'LIGHT', INDETERMINATE) -manualpullbox = getattr(IfcAlarmTypeEnum, 'MANUALPULLBOX', INDETERMINATE) -siren = getattr(IfcAlarmTypeEnum, 'SIREN', INDETERMINATE) -whistle = getattr(IfcAlarmTypeEnum, 'WHISTLE', INDETERMINATE) -userdefined = getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAlarmTypeEnum, 'NOTDEFINED', INDETERMINATE) +bell = IfcAlarmTypeEnum.BELL +breakglassbutton = IfcAlarmTypeEnum.BREAKGLASSBUTTON +light = IfcAlarmTypeEnum.LIGHT +manualpullbox = IfcAlarmTypeEnum.MANUALPULLBOX +siren = IfcAlarmTypeEnum.SIREN +whistle = IfcAlarmTypeEnum.WHISTLE +userdefined = IfcAlarmTypeEnum.USERDEFINED +notdefined = IfcAlarmTypeEnum.NOTDEFINED IfcAlignmentTypeEnum = enum_namespace() -userdefined = getattr(IfcAlignmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAlignmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcAlignmentTypeEnum.USERDEFINED +notdefined = IfcAlignmentTypeEnum.NOTDEFINED IfcAnalysisModelTypeEnum = enum_namespace() -in_plane_loading_2d = getattr(IfcAnalysisModelTypeEnum, 'IN_PLANE_LOADING_2D', INDETERMINATE) -out_plane_loading_2d = getattr(IfcAnalysisModelTypeEnum, 'OUT_PLANE_LOADING_2D', INDETERMINATE) -loading_3d = getattr(IfcAnalysisModelTypeEnum, 'LOADING_3D', INDETERMINATE) -userdefined = getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnalysisModelTypeEnum, 'NOTDEFINED', INDETERMINATE) +in_plane_loading_2d = IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D +out_plane_loading_2d = IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D +loading_3d = IfcAnalysisModelTypeEnum.LOADING_3D +userdefined = IfcAnalysisModelTypeEnum.USERDEFINED +notdefined = IfcAnalysisModelTypeEnum.NOTDEFINED IfcAnalysisTheoryTypeEnum = enum_namespace() -first_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'FIRST_ORDER_THEORY', INDETERMINATE) -second_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'SECOND_ORDER_THEORY', INDETERMINATE) -third_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'THIRD_ORDER_THEORY', INDETERMINATE) -full_nonlinear_theory = getattr(IfcAnalysisTheoryTypeEnum, 'FULL_NONLINEAR_THEORY', INDETERMINATE) -userdefined = getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnalysisTheoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +first_order_theory = IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY +second_order_theory = IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY +third_order_theory = IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY +full_nonlinear_theory = IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY +userdefined = IfcAnalysisTheoryTypeEnum.USERDEFINED +notdefined = IfcAnalysisTheoryTypeEnum.NOTDEFINED IfcArithmeticOperatorEnum = enum_namespace() -add = getattr(IfcArithmeticOperatorEnum, 'ADD', INDETERMINATE) -divide = getattr(IfcArithmeticOperatorEnum, 'DIVIDE', INDETERMINATE) -multiply = getattr(IfcArithmeticOperatorEnum, 'MULTIPLY', INDETERMINATE) -subtract = getattr(IfcArithmeticOperatorEnum, 'SUBTRACT', INDETERMINATE) +add = IfcArithmeticOperatorEnum.ADD +divide = IfcArithmeticOperatorEnum.DIVIDE +multiply = IfcArithmeticOperatorEnum.MULTIPLY +subtract = IfcArithmeticOperatorEnum.SUBTRACT IfcAssemblyPlaceEnum = enum_namespace() -site = getattr(IfcAssemblyPlaceEnum, 'SITE', INDETERMINATE) -factory = getattr(IfcAssemblyPlaceEnum, 'FACTORY', INDETERMINATE) -notdefined = getattr(IfcAssemblyPlaceEnum, 'NOTDEFINED', INDETERMINATE) +site = IfcAssemblyPlaceEnum.SITE +factory = IfcAssemblyPlaceEnum.FACTORY +notdefined = IfcAssemblyPlaceEnum.NOTDEFINED IfcAudioVisualApplianceTypeEnum = enum_namespace() -amplifier = getattr(IfcAudioVisualApplianceTypeEnum, 'AMPLIFIER', INDETERMINATE) -camera = getattr(IfcAudioVisualApplianceTypeEnum, 'CAMERA', INDETERMINATE) -display = getattr(IfcAudioVisualApplianceTypeEnum, 'DISPLAY', INDETERMINATE) -microphone = getattr(IfcAudioVisualApplianceTypeEnum, 'MICROPHONE', INDETERMINATE) -player = getattr(IfcAudioVisualApplianceTypeEnum, 'PLAYER', INDETERMINATE) -projector = getattr(IfcAudioVisualApplianceTypeEnum, 'PROJECTOR', INDETERMINATE) -receiver = getattr(IfcAudioVisualApplianceTypeEnum, 'RECEIVER', INDETERMINATE) -speaker = getattr(IfcAudioVisualApplianceTypeEnum, 'SPEAKER', INDETERMINATE) -switcher = getattr(IfcAudioVisualApplianceTypeEnum, 'SWITCHER', INDETERMINATE) -telephone = getattr(IfcAudioVisualApplianceTypeEnum, 'TELEPHONE', INDETERMINATE) -tuner = getattr(IfcAudioVisualApplianceTypeEnum, 'TUNER', INDETERMINATE) -userdefined = getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAudioVisualApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +amplifier = IfcAudioVisualApplianceTypeEnum.AMPLIFIER +camera = IfcAudioVisualApplianceTypeEnum.CAMERA +display = IfcAudioVisualApplianceTypeEnum.DISPLAY +microphone = IfcAudioVisualApplianceTypeEnum.MICROPHONE +player = IfcAudioVisualApplianceTypeEnum.PLAYER +projector = IfcAudioVisualApplianceTypeEnum.PROJECTOR +receiver = IfcAudioVisualApplianceTypeEnum.RECEIVER +speaker = IfcAudioVisualApplianceTypeEnum.SPEAKER +switcher = IfcAudioVisualApplianceTypeEnum.SWITCHER +telephone = IfcAudioVisualApplianceTypeEnum.TELEPHONE +tuner = IfcAudioVisualApplianceTypeEnum.TUNER +userdefined = IfcAudioVisualApplianceTypeEnum.USERDEFINED +notdefined = IfcAudioVisualApplianceTypeEnum.NOTDEFINED IfcBSplineCurveForm = enum_namespace() -polyline_form = getattr(IfcBSplineCurveForm, 'POLYLINE_FORM', INDETERMINATE) -circular_arc = getattr(IfcBSplineCurveForm, 'CIRCULAR_ARC', INDETERMINATE) -elliptic_arc = getattr(IfcBSplineCurveForm, 'ELLIPTIC_ARC', INDETERMINATE) -parabolic_arc = getattr(IfcBSplineCurveForm, 'PARABOLIC_ARC', INDETERMINATE) -hyperbolic_arc = getattr(IfcBSplineCurveForm, 'HYPERBOLIC_ARC', INDETERMINATE) -unspecified = getattr(IfcBSplineCurveForm, 'UNSPECIFIED', INDETERMINATE) +polyline_form = IfcBSplineCurveForm.POLYLINE_FORM +circular_arc = IfcBSplineCurveForm.CIRCULAR_ARC +elliptic_arc = IfcBSplineCurveForm.ELLIPTIC_ARC +parabolic_arc = IfcBSplineCurveForm.PARABOLIC_ARC +hyperbolic_arc = IfcBSplineCurveForm.HYPERBOLIC_ARC +unspecified = IfcBSplineCurveForm.UNSPECIFIED IfcBSplineSurfaceForm = enum_namespace() -plane_surf = getattr(IfcBSplineSurfaceForm, 'PLANE_SURF', INDETERMINATE) -cylindrical_surf = getattr(IfcBSplineSurfaceForm, 'CYLINDRICAL_SURF', INDETERMINATE) -conical_surf = getattr(IfcBSplineSurfaceForm, 'CONICAL_SURF', INDETERMINATE) -spherical_surf = getattr(IfcBSplineSurfaceForm, 'SPHERICAL_SURF', INDETERMINATE) -toroidal_surf = getattr(IfcBSplineSurfaceForm, 'TOROIDAL_SURF', INDETERMINATE) -surf_of_revolution = getattr(IfcBSplineSurfaceForm, 'SURF_OF_REVOLUTION', INDETERMINATE) -ruled_surf = getattr(IfcBSplineSurfaceForm, 'RULED_SURF', INDETERMINATE) -generalised_cone = getattr(IfcBSplineSurfaceForm, 'GENERALISED_CONE', INDETERMINATE) -quadric_surf = getattr(IfcBSplineSurfaceForm, 'QUADRIC_SURF', INDETERMINATE) -surf_of_linear_extrusion = getattr(IfcBSplineSurfaceForm, 'SURF_OF_LINEAR_EXTRUSION', INDETERMINATE) -unspecified = getattr(IfcBSplineSurfaceForm, 'UNSPECIFIED', INDETERMINATE) +plane_surf = IfcBSplineSurfaceForm.PLANE_SURF +cylindrical_surf = IfcBSplineSurfaceForm.CYLINDRICAL_SURF +conical_surf = IfcBSplineSurfaceForm.CONICAL_SURF +spherical_surf = IfcBSplineSurfaceForm.SPHERICAL_SURF +toroidal_surf = IfcBSplineSurfaceForm.TOROIDAL_SURF +surf_of_revolution = IfcBSplineSurfaceForm.SURF_OF_REVOLUTION +ruled_surf = IfcBSplineSurfaceForm.RULED_SURF +generalised_cone = IfcBSplineSurfaceForm.GENERALISED_CONE +quadric_surf = IfcBSplineSurfaceForm.QUADRIC_SURF +surf_of_linear_extrusion = IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION +unspecified = IfcBSplineSurfaceForm.UNSPECIFIED IfcBeamTypeEnum = enum_namespace() -beam = getattr(IfcBeamTypeEnum, 'BEAM', INDETERMINATE) -joist = getattr(IfcBeamTypeEnum, 'JOIST', INDETERMINATE) -hollowcore = getattr(IfcBeamTypeEnum, 'HOLLOWCORE', INDETERMINATE) -lintel = getattr(IfcBeamTypeEnum, 'LINTEL', INDETERMINATE) -spandrel = getattr(IfcBeamTypeEnum, 'SPANDREL', INDETERMINATE) -t_beam = getattr(IfcBeamTypeEnum, 'T_BEAM', INDETERMINATE) -girder_segment = getattr(IfcBeamTypeEnum, 'GIRDER_SEGMENT', INDETERMINATE) -diaphragm = getattr(IfcBeamTypeEnum, 'DIAPHRAGM', INDETERMINATE) -piercap = getattr(IfcBeamTypeEnum, 'PIERCAP', INDETERMINATE) -hatstone = getattr(IfcBeamTypeEnum, 'HATSTONE', INDETERMINATE) -cornice = getattr(IfcBeamTypeEnum, 'CORNICE', INDETERMINATE) -edgebeam = getattr(IfcBeamTypeEnum, 'EDGEBEAM', INDETERMINATE) -userdefined = getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +beam = IfcBeamTypeEnum.BEAM +joist = IfcBeamTypeEnum.JOIST +hollowcore = IfcBeamTypeEnum.HOLLOWCORE +lintel = IfcBeamTypeEnum.LINTEL +spandrel = IfcBeamTypeEnum.SPANDREL +t_beam = IfcBeamTypeEnum.T_BEAM +girder_segment = IfcBeamTypeEnum.GIRDER_SEGMENT +diaphragm = IfcBeamTypeEnum.DIAPHRAGM +piercap = IfcBeamTypeEnum.PIERCAP +hatstone = IfcBeamTypeEnum.HATSTONE +cornice = IfcBeamTypeEnum.CORNICE +edgebeam = IfcBeamTypeEnum.EDGEBEAM +userdefined = IfcBeamTypeEnum.USERDEFINED +notdefined = IfcBeamTypeEnum.NOTDEFINED IfcBearingTypeDisplacementEnum = enum_namespace() -fixed_movement = getattr(IfcBearingTypeDisplacementEnum, 'FIXED_MOVEMENT', INDETERMINATE) -guided_longitudinal = getattr(IfcBearingTypeDisplacementEnum, 'GUIDED_LONGITUDINAL', INDETERMINATE) -guided_transversal = getattr(IfcBearingTypeDisplacementEnum, 'GUIDED_TRANSVERSAL', INDETERMINATE) -free_movement = getattr(IfcBearingTypeDisplacementEnum, 'FREE_MOVEMENT', INDETERMINATE) -notdefined = getattr(IfcBearingTypeDisplacementEnum, 'NOTDEFINED', INDETERMINATE) +fixed_movement = IfcBearingTypeDisplacementEnum.FIXED_MOVEMENT +guided_longitudinal = IfcBearingTypeDisplacementEnum.GUIDED_LONGITUDINAL +guided_transversal = IfcBearingTypeDisplacementEnum.GUIDED_TRANSVERSAL +free_movement = IfcBearingTypeDisplacementEnum.FREE_MOVEMENT +notdefined = IfcBearingTypeDisplacementEnum.NOTDEFINED IfcBearingTypeEnum = enum_namespace() -cylindrical = getattr(IfcBearingTypeEnum, 'CYLINDRICAL', INDETERMINATE) -spherical = getattr(IfcBearingTypeEnum, 'SPHERICAL', INDETERMINATE) -elastomeric = getattr(IfcBearingTypeEnum, 'ELASTOMERIC', INDETERMINATE) -pot = getattr(IfcBearingTypeEnum, 'POT', INDETERMINATE) -guide = getattr(IfcBearingTypeEnum, 'GUIDE', INDETERMINATE) -rocker = getattr(IfcBearingTypeEnum, 'ROCKER', INDETERMINATE) -roller = getattr(IfcBearingTypeEnum, 'ROLLER', INDETERMINATE) -disk = getattr(IfcBearingTypeEnum, 'DISK', INDETERMINATE) -userdefined = getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBearingTypeEnum, 'NOTDEFINED', INDETERMINATE) +cylindrical = IfcBearingTypeEnum.CYLINDRICAL +spherical = IfcBearingTypeEnum.SPHERICAL +elastomeric = IfcBearingTypeEnum.ELASTOMERIC +pot = IfcBearingTypeEnum.POT +guide = IfcBearingTypeEnum.GUIDE +rocker = IfcBearingTypeEnum.ROCKER +roller = IfcBearingTypeEnum.ROLLER +disk = IfcBearingTypeEnum.DISK +userdefined = IfcBearingTypeEnum.USERDEFINED +notdefined = IfcBearingTypeEnum.NOTDEFINED IfcBenchmarkEnum = enum_namespace() -greaterthan = getattr(IfcBenchmarkEnum, 'GREATERTHAN', INDETERMINATE) -greaterthanorequalto = getattr(IfcBenchmarkEnum, 'GREATERTHANOREQUALTO', INDETERMINATE) -lessthan = getattr(IfcBenchmarkEnum, 'LESSTHAN', INDETERMINATE) -lessthanorequalto = getattr(IfcBenchmarkEnum, 'LESSTHANOREQUALTO', INDETERMINATE) -equalto = getattr(IfcBenchmarkEnum, 'EQUALTO', INDETERMINATE) -notequalto = getattr(IfcBenchmarkEnum, 'NOTEQUALTO', INDETERMINATE) -includes = getattr(IfcBenchmarkEnum, 'INCLUDES', INDETERMINATE) -notincludes = getattr(IfcBenchmarkEnum, 'NOTINCLUDES', INDETERMINATE) -includedin = getattr(IfcBenchmarkEnum, 'INCLUDEDIN', INDETERMINATE) -notincludedin = getattr(IfcBenchmarkEnum, 'NOTINCLUDEDIN', INDETERMINATE) +greaterthan = IfcBenchmarkEnum.GREATERTHAN +greaterthanorequalto = IfcBenchmarkEnum.GREATERTHANOREQUALTO +lessthan = IfcBenchmarkEnum.LESSTHAN +lessthanorequalto = IfcBenchmarkEnum.LESSTHANOREQUALTO +equalto = IfcBenchmarkEnum.EQUALTO +notequalto = IfcBenchmarkEnum.NOTEQUALTO +includes = IfcBenchmarkEnum.INCLUDES +notincludes = IfcBenchmarkEnum.NOTINCLUDES +includedin = IfcBenchmarkEnum.INCLUDEDIN +notincludedin = IfcBenchmarkEnum.NOTINCLUDEDIN IfcBoilerTypeEnum = enum_namespace() -water = getattr(IfcBoilerTypeEnum, 'WATER', INDETERMINATE) -steam = getattr(IfcBoilerTypeEnum, 'STEAM', INDETERMINATE) -userdefined = getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBoilerTypeEnum, 'NOTDEFINED', INDETERMINATE) +water = IfcBoilerTypeEnum.WATER +steam = IfcBoilerTypeEnum.STEAM +userdefined = IfcBoilerTypeEnum.USERDEFINED +notdefined = IfcBoilerTypeEnum.NOTDEFINED IfcBooleanOperator = enum_namespace() -union = getattr(IfcBooleanOperator, 'UNION', INDETERMINATE) -intersection = getattr(IfcBooleanOperator, 'INTERSECTION', INDETERMINATE) -difference = getattr(IfcBooleanOperator, 'DIFFERENCE', INDETERMINATE) +union = IfcBooleanOperator.UNION +intersection = IfcBooleanOperator.INTERSECTION +difference = IfcBooleanOperator.DIFFERENCE IfcBridgePartTypeEnum = enum_namespace() -abutment = getattr(IfcBridgePartTypeEnum, 'ABUTMENT', INDETERMINATE) -deck = getattr(IfcBridgePartTypeEnum, 'DECK', INDETERMINATE) -deck_segment = getattr(IfcBridgePartTypeEnum, 'DECK_SEGMENT', INDETERMINATE) -foundation = getattr(IfcBridgePartTypeEnum, 'FOUNDATION', INDETERMINATE) -pier = getattr(IfcBridgePartTypeEnum, 'PIER', INDETERMINATE) -pier_segment = getattr(IfcBridgePartTypeEnum, 'PIER_SEGMENT', INDETERMINATE) -pylon = getattr(IfcBridgePartTypeEnum, 'PYLON', INDETERMINATE) -substructure = getattr(IfcBridgePartTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -superstructure = getattr(IfcBridgePartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -surfacestructure = getattr(IfcBridgePartTypeEnum, 'SURFACESTRUCTURE', INDETERMINATE) -userdefined = getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBridgePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +abutment = IfcBridgePartTypeEnum.ABUTMENT +deck = IfcBridgePartTypeEnum.DECK +deck_segment = IfcBridgePartTypeEnum.DECK_SEGMENT +foundation = IfcBridgePartTypeEnum.FOUNDATION +pier = IfcBridgePartTypeEnum.PIER +pier_segment = IfcBridgePartTypeEnum.PIER_SEGMENT +pylon = IfcBridgePartTypeEnum.PYLON +substructure = IfcBridgePartTypeEnum.SUBSTRUCTURE +superstructure = IfcBridgePartTypeEnum.SUPERSTRUCTURE +surfacestructure = IfcBridgePartTypeEnum.SURFACESTRUCTURE +userdefined = IfcBridgePartTypeEnum.USERDEFINED +notdefined = IfcBridgePartTypeEnum.NOTDEFINED IfcBridgeTypeEnum = enum_namespace() -arched = getattr(IfcBridgeTypeEnum, 'ARCHED', INDETERMINATE) -cable_stayed = getattr(IfcBridgeTypeEnum, 'CABLE_STAYED', INDETERMINATE) -cantilever = getattr(IfcBridgeTypeEnum, 'CANTILEVER', INDETERMINATE) -culvert = getattr(IfcBridgeTypeEnum, 'CULVERT', INDETERMINATE) -framework = getattr(IfcBridgeTypeEnum, 'FRAMEWORK', INDETERMINATE) -girder = getattr(IfcBridgeTypeEnum, 'GIRDER', INDETERMINATE) -suspension = getattr(IfcBridgeTypeEnum, 'SUSPENSION', INDETERMINATE) -truss = getattr(IfcBridgeTypeEnum, 'TRUSS', INDETERMINATE) -userdefined = getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBridgeTypeEnum, 'NOTDEFINED', INDETERMINATE) +arched = IfcBridgeTypeEnum.ARCHED +cable_stayed = IfcBridgeTypeEnum.CABLE_STAYED +cantilever = IfcBridgeTypeEnum.CANTILEVER +culvert = IfcBridgeTypeEnum.CULVERT +framework = IfcBridgeTypeEnum.FRAMEWORK +girder = IfcBridgeTypeEnum.GIRDER +suspension = IfcBridgeTypeEnum.SUSPENSION +truss = IfcBridgeTypeEnum.TRUSS +userdefined = IfcBridgeTypeEnum.USERDEFINED +notdefined = IfcBridgeTypeEnum.NOTDEFINED IfcBuildingElementPartTypeEnum = enum_namespace() -insulation = getattr(IfcBuildingElementPartTypeEnum, 'INSULATION', INDETERMINATE) -precastpanel = getattr(IfcBuildingElementPartTypeEnum, 'PRECASTPANEL', INDETERMINATE) -apron = getattr(IfcBuildingElementPartTypeEnum, 'APRON', INDETERMINATE) -userdefined = getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingElementPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +insulation = IfcBuildingElementPartTypeEnum.INSULATION +precastpanel = IfcBuildingElementPartTypeEnum.PRECASTPANEL +apron = IfcBuildingElementPartTypeEnum.APRON +userdefined = IfcBuildingElementPartTypeEnum.USERDEFINED +notdefined = IfcBuildingElementPartTypeEnum.NOTDEFINED IfcBuildingElementProxyTypeEnum = enum_namespace() -complex = getattr(IfcBuildingElementProxyTypeEnum, 'COMPLEX', INDETERMINATE) -element = getattr(IfcBuildingElementProxyTypeEnum, 'ELEMENT', INDETERMINATE) -partial = getattr(IfcBuildingElementProxyTypeEnum, 'PARTIAL', INDETERMINATE) -provisionforvoid = getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORVOID', INDETERMINATE) -provisionforspace = getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORSPACE', INDETERMINATE) -userdefined = getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingElementProxyTypeEnum, 'NOTDEFINED', INDETERMINATE) +complex = IfcBuildingElementProxyTypeEnum.COMPLEX +element = IfcBuildingElementProxyTypeEnum.ELEMENT +partial = IfcBuildingElementProxyTypeEnum.PARTIAL +provisionforvoid = IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID +provisionforspace = IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE +userdefined = IfcBuildingElementProxyTypeEnum.USERDEFINED +notdefined = IfcBuildingElementProxyTypeEnum.NOTDEFINED IfcBuildingSystemTypeEnum = enum_namespace() -fenestration = getattr(IfcBuildingSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = getattr(IfcBuildingSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = getattr(IfcBuildingSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -outershell = getattr(IfcBuildingSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -shading = getattr(IfcBuildingSystemTypeEnum, 'SHADING', INDETERMINATE) -transport = getattr(IfcBuildingSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -reinforcing = getattr(IfcBuildingSystemTypeEnum, 'REINFORCING', INDETERMINATE) -prestressing = getattr(IfcBuildingSystemTypeEnum, 'PRESTRESSING', INDETERMINATE) -userdefined = getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +fenestration = IfcBuildingSystemTypeEnum.FENESTRATION +foundation = IfcBuildingSystemTypeEnum.FOUNDATION +loadbearing = IfcBuildingSystemTypeEnum.LOADBEARING +outershell = IfcBuildingSystemTypeEnum.OUTERSHELL +shading = IfcBuildingSystemTypeEnum.SHADING +transport = IfcBuildingSystemTypeEnum.TRANSPORT +reinforcing = IfcBuildingSystemTypeEnum.REINFORCING +prestressing = IfcBuildingSystemTypeEnum.PRESTRESSING +userdefined = IfcBuildingSystemTypeEnum.USERDEFINED +notdefined = IfcBuildingSystemTypeEnum.NOTDEFINED IfcBurnerTypeEnum = enum_namespace() -userdefined = getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBurnerTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcBurnerTypeEnum.USERDEFINED +notdefined = IfcBurnerTypeEnum.NOTDEFINED IfcCableCarrierFittingTypeEnum = enum_namespace() -bend = getattr(IfcCableCarrierFittingTypeEnum, 'BEND', INDETERMINATE) -cross = getattr(IfcCableCarrierFittingTypeEnum, 'CROSS', INDETERMINATE) -reducer = getattr(IfcCableCarrierFittingTypeEnum, 'REDUCER', INDETERMINATE) -tee = getattr(IfcCableCarrierFittingTypeEnum, 'TEE', INDETERMINATE) -userdefined = getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableCarrierFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcCableCarrierFittingTypeEnum.BEND +cross = IfcCableCarrierFittingTypeEnum.CROSS +reducer = IfcCableCarrierFittingTypeEnum.REDUCER +tee = IfcCableCarrierFittingTypeEnum.TEE +userdefined = IfcCableCarrierFittingTypeEnum.USERDEFINED +notdefined = IfcCableCarrierFittingTypeEnum.NOTDEFINED IfcCableCarrierSegmentTypeEnum = enum_namespace() -cableladdersegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLELADDERSEGMENT', INDETERMINATE) -cabletraysegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRAYSEGMENT', INDETERMINATE) -cabletrunkingsegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRUNKINGSEGMENT', INDETERMINATE) -conduitsegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CONDUITSEGMENT', INDETERMINATE) -userdefined = getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableCarrierSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +cableladdersegment = IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT +cabletraysegment = IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT +cabletrunkingsegment = IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT +conduitsegment = IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT +userdefined = IfcCableCarrierSegmentTypeEnum.USERDEFINED +notdefined = IfcCableCarrierSegmentTypeEnum.NOTDEFINED IfcCableFittingTypeEnum = enum_namespace() -connector = getattr(IfcCableFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcCableFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcCableFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcCableFittingTypeEnum, 'JUNCTION', INDETERMINATE) -transition = getattr(IfcCableFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +connector = IfcCableFittingTypeEnum.CONNECTOR +entry = IfcCableFittingTypeEnum.ENTRY +exit = IfcCableFittingTypeEnum.EXIT +junction = IfcCableFittingTypeEnum.JUNCTION +transition = IfcCableFittingTypeEnum.TRANSITION +userdefined = IfcCableFittingTypeEnum.USERDEFINED +notdefined = IfcCableFittingTypeEnum.NOTDEFINED IfcCableSegmentTypeEnum = enum_namespace() -busbarsegment = getattr(IfcCableSegmentTypeEnum, 'BUSBARSEGMENT', INDETERMINATE) -cablesegment = getattr(IfcCableSegmentTypeEnum, 'CABLESEGMENT', INDETERMINATE) -conductorsegment = getattr(IfcCableSegmentTypeEnum, 'CONDUCTORSEGMENT', INDETERMINATE) -coresegment = getattr(IfcCableSegmentTypeEnum, 'CORESEGMENT', INDETERMINATE) -userdefined = getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +busbarsegment = IfcCableSegmentTypeEnum.BUSBARSEGMENT +cablesegment = IfcCableSegmentTypeEnum.CABLESEGMENT +conductorsegment = IfcCableSegmentTypeEnum.CONDUCTORSEGMENT +coresegment = IfcCableSegmentTypeEnum.CORESEGMENT +userdefined = IfcCableSegmentTypeEnum.USERDEFINED +notdefined = IfcCableSegmentTypeEnum.NOTDEFINED IfcCaissonFoundationTypeEnum = enum_namespace() -well = getattr(IfcCaissonFoundationTypeEnum, 'WELL', INDETERMINATE) -caisson = getattr(IfcCaissonFoundationTypeEnum, 'CAISSON', INDETERMINATE) -userdefined = getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCaissonFoundationTypeEnum, 'NOTDEFINED', INDETERMINATE) +well = IfcCaissonFoundationTypeEnum.WELL +caisson = IfcCaissonFoundationTypeEnum.CAISSON +userdefined = IfcCaissonFoundationTypeEnum.USERDEFINED +notdefined = IfcCaissonFoundationTypeEnum.NOTDEFINED IfcChangeActionEnum = enum_namespace() -nochange = getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE) -modified = getattr(IfcChangeActionEnum, 'MODIFIED', INDETERMINATE) -added = getattr(IfcChangeActionEnum, 'ADDED', INDETERMINATE) -deleted = getattr(IfcChangeActionEnum, 'DELETED', INDETERMINATE) -notdefined = getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) +nochange = IfcChangeActionEnum.NOCHANGE +modified = IfcChangeActionEnum.MODIFIED +added = IfcChangeActionEnum.ADDED +deleted = IfcChangeActionEnum.DELETED +notdefined = IfcChangeActionEnum.NOTDEFINED IfcChillerTypeEnum = enum_namespace() -aircooled = getattr(IfcChillerTypeEnum, 'AIRCOOLED', INDETERMINATE) -watercooled = getattr(IfcChillerTypeEnum, 'WATERCOOLED', INDETERMINATE) -heatrecovery = getattr(IfcChillerTypeEnum, 'HEATRECOVERY', INDETERMINATE) -userdefined = getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcChillerTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcChillerTypeEnum.AIRCOOLED +watercooled = IfcChillerTypeEnum.WATERCOOLED +heatrecovery = IfcChillerTypeEnum.HEATRECOVERY +userdefined = IfcChillerTypeEnum.USERDEFINED +notdefined = IfcChillerTypeEnum.NOTDEFINED IfcChimneyTypeEnum = enum_namespace() -userdefined = getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcChimneyTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcChimneyTypeEnum.USERDEFINED +notdefined = IfcChimneyTypeEnum.NOTDEFINED IfcCoilTypeEnum = enum_namespace() -dxcoolingcoil = getattr(IfcCoilTypeEnum, 'DXCOOLINGCOIL', INDETERMINATE) -electricheatingcoil = getattr(IfcCoilTypeEnum, 'ELECTRICHEATINGCOIL', INDETERMINATE) -gasheatingcoil = getattr(IfcCoilTypeEnum, 'GASHEATINGCOIL', INDETERMINATE) -hydroniccoil = getattr(IfcCoilTypeEnum, 'HYDRONICCOIL', INDETERMINATE) -steamheatingcoil = getattr(IfcCoilTypeEnum, 'STEAMHEATINGCOIL', INDETERMINATE) -watercoolingcoil = getattr(IfcCoilTypeEnum, 'WATERCOOLINGCOIL', INDETERMINATE) -waterheatingcoil = getattr(IfcCoilTypeEnum, 'WATERHEATINGCOIL', INDETERMINATE) -userdefined = getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dxcoolingcoil = IfcCoilTypeEnum.DXCOOLINGCOIL +electricheatingcoil = IfcCoilTypeEnum.ELECTRICHEATINGCOIL +gasheatingcoil = IfcCoilTypeEnum.GASHEATINGCOIL +hydroniccoil = IfcCoilTypeEnum.HYDRONICCOIL +steamheatingcoil = IfcCoilTypeEnum.STEAMHEATINGCOIL +watercoolingcoil = IfcCoilTypeEnum.WATERCOOLINGCOIL +waterheatingcoil = IfcCoilTypeEnum.WATERHEATINGCOIL +userdefined = IfcCoilTypeEnum.USERDEFINED +notdefined = IfcCoilTypeEnum.NOTDEFINED IfcColumnTypeEnum = enum_namespace() -column = getattr(IfcColumnTypeEnum, 'COLUMN', INDETERMINATE) -pilaster = getattr(IfcColumnTypeEnum, 'PILASTER', INDETERMINATE) -pierstem = getattr(IfcColumnTypeEnum, 'PIERSTEM', INDETERMINATE) -pierstem_segment = getattr(IfcColumnTypeEnum, 'PIERSTEM_SEGMENT', INDETERMINATE) -standcolumn = getattr(IfcColumnTypeEnum, 'STANDCOLUMN', INDETERMINATE) -userdefined = getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcColumnTypeEnum, 'NOTDEFINED', INDETERMINATE) +column = IfcColumnTypeEnum.COLUMN +pilaster = IfcColumnTypeEnum.PILASTER +pierstem = IfcColumnTypeEnum.PIERSTEM +pierstem_segment = IfcColumnTypeEnum.PIERSTEM_SEGMENT +standcolumn = IfcColumnTypeEnum.STANDCOLUMN +userdefined = IfcColumnTypeEnum.USERDEFINED +notdefined = IfcColumnTypeEnum.NOTDEFINED IfcCommunicationsApplianceTypeEnum = enum_namespace() -antenna = getattr(IfcCommunicationsApplianceTypeEnum, 'ANTENNA', INDETERMINATE) -computer = getattr(IfcCommunicationsApplianceTypeEnum, 'COMPUTER', INDETERMINATE) -fax = getattr(IfcCommunicationsApplianceTypeEnum, 'FAX', INDETERMINATE) -gateway = getattr(IfcCommunicationsApplianceTypeEnum, 'GATEWAY', INDETERMINATE) -modem = getattr(IfcCommunicationsApplianceTypeEnum, 'MODEM', INDETERMINATE) -networkappliance = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKAPPLIANCE', INDETERMINATE) -networkbridge = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKBRIDGE', INDETERMINATE) -networkhub = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKHUB', INDETERMINATE) -printer = getattr(IfcCommunicationsApplianceTypeEnum, 'PRINTER', INDETERMINATE) -repeater = getattr(IfcCommunicationsApplianceTypeEnum, 'REPEATER', INDETERMINATE) -router = getattr(IfcCommunicationsApplianceTypeEnum, 'ROUTER', INDETERMINATE) -scanner = getattr(IfcCommunicationsApplianceTypeEnum, 'SCANNER', INDETERMINATE) -userdefined = getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +antenna = IfcCommunicationsApplianceTypeEnum.ANTENNA +computer = IfcCommunicationsApplianceTypeEnum.COMPUTER +fax = IfcCommunicationsApplianceTypeEnum.FAX +gateway = IfcCommunicationsApplianceTypeEnum.GATEWAY +modem = IfcCommunicationsApplianceTypeEnum.MODEM +networkappliance = IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE +networkbridge = IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE +networkhub = IfcCommunicationsApplianceTypeEnum.NETWORKHUB +printer = IfcCommunicationsApplianceTypeEnum.PRINTER +repeater = IfcCommunicationsApplianceTypeEnum.REPEATER +router = IfcCommunicationsApplianceTypeEnum.ROUTER +scanner = IfcCommunicationsApplianceTypeEnum.SCANNER +userdefined = IfcCommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcCommunicationsApplianceTypeEnum.NOTDEFINED IfcComplexPropertyTemplateTypeEnum = enum_namespace() -p_complex = getattr(IfcComplexPropertyTemplateTypeEnum, 'P_COMPLEX', INDETERMINATE) -q_complex = getattr(IfcComplexPropertyTemplateTypeEnum, 'Q_COMPLEX', INDETERMINATE) +p_complex = IfcComplexPropertyTemplateTypeEnum.P_COMPLEX +q_complex = IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX IfcCompressorTypeEnum = enum_namespace() -dynamic = getattr(IfcCompressorTypeEnum, 'DYNAMIC', INDETERMINATE) -reciprocating = getattr(IfcCompressorTypeEnum, 'RECIPROCATING', INDETERMINATE) -rotary = getattr(IfcCompressorTypeEnum, 'ROTARY', INDETERMINATE) -scroll = getattr(IfcCompressorTypeEnum, 'SCROLL', INDETERMINATE) -trochoidal = getattr(IfcCompressorTypeEnum, 'TROCHOIDAL', INDETERMINATE) -singlestage = getattr(IfcCompressorTypeEnum, 'SINGLESTAGE', INDETERMINATE) -booster = getattr(IfcCompressorTypeEnum, 'BOOSTER', INDETERMINATE) -opentype = getattr(IfcCompressorTypeEnum, 'OPENTYPE', INDETERMINATE) -hermetic = getattr(IfcCompressorTypeEnum, 'HERMETIC', INDETERMINATE) -semihermetic = getattr(IfcCompressorTypeEnum, 'SEMIHERMETIC', INDETERMINATE) -weldedshellhermetic = getattr(IfcCompressorTypeEnum, 'WELDEDSHELLHERMETIC', INDETERMINATE) -rollingpiston = getattr(IfcCompressorTypeEnum, 'ROLLINGPISTON', INDETERMINATE) -rotaryvane = getattr(IfcCompressorTypeEnum, 'ROTARYVANE', INDETERMINATE) -singlescrew = getattr(IfcCompressorTypeEnum, 'SINGLESCREW', INDETERMINATE) -twinscrew = getattr(IfcCompressorTypeEnum, 'TWINSCREW', INDETERMINATE) -userdefined = getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCompressorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dynamic = IfcCompressorTypeEnum.DYNAMIC +reciprocating = IfcCompressorTypeEnum.RECIPROCATING +rotary = IfcCompressorTypeEnum.ROTARY +scroll = IfcCompressorTypeEnum.SCROLL +trochoidal = IfcCompressorTypeEnum.TROCHOIDAL +singlestage = IfcCompressorTypeEnum.SINGLESTAGE +booster = IfcCompressorTypeEnum.BOOSTER +opentype = IfcCompressorTypeEnum.OPENTYPE +hermetic = IfcCompressorTypeEnum.HERMETIC +semihermetic = IfcCompressorTypeEnum.SEMIHERMETIC +weldedshellhermetic = IfcCompressorTypeEnum.WELDEDSHELLHERMETIC +rollingpiston = IfcCompressorTypeEnum.ROLLINGPISTON +rotaryvane = IfcCompressorTypeEnum.ROTARYVANE +singlescrew = IfcCompressorTypeEnum.SINGLESCREW +twinscrew = IfcCompressorTypeEnum.TWINSCREW +userdefined = IfcCompressorTypeEnum.USERDEFINED +notdefined = IfcCompressorTypeEnum.NOTDEFINED IfcCondenserTypeEnum = enum_namespace() -aircooled = getattr(IfcCondenserTypeEnum, 'AIRCOOLED', INDETERMINATE) -evaporativecooled = getattr(IfcCondenserTypeEnum, 'EVAPORATIVECOOLED', INDETERMINATE) -watercooled = getattr(IfcCondenserTypeEnum, 'WATERCOOLED', INDETERMINATE) -watercooledbrazedplate = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDBRAZEDPLATE', INDETERMINATE) -watercooledshellcoil = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLCOIL', INDETERMINATE) -watercooledshelltube = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLTUBE', INDETERMINATE) -watercooledtubeintube = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDTUBEINTUBE', INDETERMINATE) -userdefined = getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCondenserTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcCondenserTypeEnum.AIRCOOLED +evaporativecooled = IfcCondenserTypeEnum.EVAPORATIVECOOLED +watercooled = IfcCondenserTypeEnum.WATERCOOLED +watercooledbrazedplate = IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE +watercooledshellcoil = IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL +watercooledshelltube = IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE +watercooledtubeintube = IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE +userdefined = IfcCondenserTypeEnum.USERDEFINED +notdefined = IfcCondenserTypeEnum.NOTDEFINED IfcConnectionTypeEnum = enum_namespace() -atpath = getattr(IfcConnectionTypeEnum, 'ATPATH', INDETERMINATE) -atstart = getattr(IfcConnectionTypeEnum, 'ATSTART', INDETERMINATE) -atend = getattr(IfcConnectionTypeEnum, 'ATEND', INDETERMINATE) -notdefined = getattr(IfcConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +atpath = IfcConnectionTypeEnum.ATPATH +atstart = IfcConnectionTypeEnum.ATSTART +atend = IfcConnectionTypeEnum.ATEND +notdefined = IfcConnectionTypeEnum.NOTDEFINED IfcConstraintEnum = enum_namespace() -hard = getattr(IfcConstraintEnum, 'HARD', INDETERMINATE) -soft = getattr(IfcConstraintEnum, 'SOFT', INDETERMINATE) -advisory = getattr(IfcConstraintEnum, 'ADVISORY', INDETERMINATE) -userdefined = getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstraintEnum, 'NOTDEFINED', INDETERMINATE) +hard = IfcConstraintEnum.HARD +soft = IfcConstraintEnum.SOFT +advisory = IfcConstraintEnum.ADVISORY +userdefined = IfcConstraintEnum.USERDEFINED +notdefined = IfcConstraintEnum.NOTDEFINED IfcConstructionEquipmentResourceTypeEnum = enum_namespace() -demolishing = getattr(IfcConstructionEquipmentResourceTypeEnum, 'DEMOLISHING', INDETERMINATE) -earthmoving = getattr(IfcConstructionEquipmentResourceTypeEnum, 'EARTHMOVING', INDETERMINATE) -erecting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'ERECTING', INDETERMINATE) -heating = getattr(IfcConstructionEquipmentResourceTypeEnum, 'HEATING', INDETERMINATE) -lighting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'LIGHTING', INDETERMINATE) -paving = getattr(IfcConstructionEquipmentResourceTypeEnum, 'PAVING', INDETERMINATE) -pumping = getattr(IfcConstructionEquipmentResourceTypeEnum, 'PUMPING', INDETERMINATE) -transporting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'TRANSPORTING', INDETERMINATE) -userdefined = getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstructionEquipmentResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +demolishing = IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING +earthmoving = IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING +erecting = IfcConstructionEquipmentResourceTypeEnum.ERECTING +heating = IfcConstructionEquipmentResourceTypeEnum.HEATING +lighting = IfcConstructionEquipmentResourceTypeEnum.LIGHTING +paving = IfcConstructionEquipmentResourceTypeEnum.PAVING +pumping = IfcConstructionEquipmentResourceTypeEnum.PUMPING +transporting = IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING +userdefined = IfcConstructionEquipmentResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED IfcConstructionMaterialResourceTypeEnum = enum_namespace() -aggregates = getattr(IfcConstructionMaterialResourceTypeEnum, 'AGGREGATES', INDETERMINATE) -concrete = getattr(IfcConstructionMaterialResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = getattr(IfcConstructionMaterialResourceTypeEnum, 'DRYWALL', INDETERMINATE) -fuel = getattr(IfcConstructionMaterialResourceTypeEnum, 'FUEL', INDETERMINATE) -gypsum = getattr(IfcConstructionMaterialResourceTypeEnum, 'GYPSUM', INDETERMINATE) -masonry = getattr(IfcConstructionMaterialResourceTypeEnum, 'MASONRY', INDETERMINATE) -metal = getattr(IfcConstructionMaterialResourceTypeEnum, 'METAL', INDETERMINATE) -plastic = getattr(IfcConstructionMaterialResourceTypeEnum, 'PLASTIC', INDETERMINATE) -wood = getattr(IfcConstructionMaterialResourceTypeEnum, 'WOOD', INDETERMINATE) -notdefined = getattr(IfcConstructionMaterialResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) -userdefined = getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) +aggregates = IfcConstructionMaterialResourceTypeEnum.AGGREGATES +concrete = IfcConstructionMaterialResourceTypeEnum.CONCRETE +drywall = IfcConstructionMaterialResourceTypeEnum.DRYWALL +fuel = IfcConstructionMaterialResourceTypeEnum.FUEL +gypsum = IfcConstructionMaterialResourceTypeEnum.GYPSUM +masonry = IfcConstructionMaterialResourceTypeEnum.MASONRY +metal = IfcConstructionMaterialResourceTypeEnum.METAL +plastic = IfcConstructionMaterialResourceTypeEnum.PLASTIC +wood = IfcConstructionMaterialResourceTypeEnum.WOOD +notdefined = IfcConstructionMaterialResourceTypeEnum.NOTDEFINED +userdefined = IfcConstructionMaterialResourceTypeEnum.USERDEFINED IfcConstructionProductResourceTypeEnum = enum_namespace() -assembly = getattr(IfcConstructionProductResourceTypeEnum, 'ASSEMBLY', INDETERMINATE) -formwork = getattr(IfcConstructionProductResourceTypeEnum, 'FORMWORK', INDETERMINATE) -userdefined = getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstructionProductResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +assembly = IfcConstructionProductResourceTypeEnum.ASSEMBLY +formwork = IfcConstructionProductResourceTypeEnum.FORMWORK +userdefined = IfcConstructionProductResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionProductResourceTypeEnum.NOTDEFINED IfcControllerTypeEnum = enum_namespace() -floating = getattr(IfcControllerTypeEnum, 'FLOATING', INDETERMINATE) -programmable = getattr(IfcControllerTypeEnum, 'PROGRAMMABLE', INDETERMINATE) -proportional = getattr(IfcControllerTypeEnum, 'PROPORTIONAL', INDETERMINATE) -multiposition = getattr(IfcControllerTypeEnum, 'MULTIPOSITION', INDETERMINATE) -twoposition = getattr(IfcControllerTypeEnum, 'TWOPOSITION', INDETERMINATE) -userdefined = getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcControllerTypeEnum, 'NOTDEFINED', INDETERMINATE) +floating = IfcControllerTypeEnum.FLOATING +programmable = IfcControllerTypeEnum.PROGRAMMABLE +proportional = IfcControllerTypeEnum.PROPORTIONAL +multiposition = IfcControllerTypeEnum.MULTIPOSITION +twoposition = IfcControllerTypeEnum.TWOPOSITION +userdefined = IfcControllerTypeEnum.USERDEFINED +notdefined = IfcControllerTypeEnum.NOTDEFINED IfcCooledBeamTypeEnum = enum_namespace() -active = getattr(IfcCooledBeamTypeEnum, 'ACTIVE', INDETERMINATE) -passive = getattr(IfcCooledBeamTypeEnum, 'PASSIVE', INDETERMINATE) -userdefined = getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCooledBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +active = IfcCooledBeamTypeEnum.ACTIVE +passive = IfcCooledBeamTypeEnum.PASSIVE +userdefined = IfcCooledBeamTypeEnum.USERDEFINED +notdefined = IfcCooledBeamTypeEnum.NOTDEFINED IfcCoolingTowerTypeEnum = enum_namespace() -naturaldraft = getattr(IfcCoolingTowerTypeEnum, 'NATURALDRAFT', INDETERMINATE) -mechanicalinduceddraft = getattr(IfcCoolingTowerTypeEnum, 'MECHANICALINDUCEDDRAFT', INDETERMINATE) -mechanicalforceddraft = getattr(IfcCoolingTowerTypeEnum, 'MECHANICALFORCEDDRAFT', INDETERMINATE) -userdefined = getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoolingTowerTypeEnum, 'NOTDEFINED', INDETERMINATE) +naturaldraft = IfcCoolingTowerTypeEnum.NATURALDRAFT +mechanicalinduceddraft = IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT +mechanicalforceddraft = IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT +userdefined = IfcCoolingTowerTypeEnum.USERDEFINED +notdefined = IfcCoolingTowerTypeEnum.NOTDEFINED IfcCostItemTypeEnum = enum_namespace() -userdefined = getattr(IfcCostItemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCostItemTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCostItemTypeEnum.USERDEFINED +notdefined = IfcCostItemTypeEnum.NOTDEFINED IfcCostScheduleTypeEnum = enum_namespace() -budget = getattr(IfcCostScheduleTypeEnum, 'BUDGET', INDETERMINATE) -costplan = getattr(IfcCostScheduleTypeEnum, 'COSTPLAN', INDETERMINATE) -estimate = getattr(IfcCostScheduleTypeEnum, 'ESTIMATE', INDETERMINATE) -tender = getattr(IfcCostScheduleTypeEnum, 'TENDER', INDETERMINATE) -pricedbillofquantities = getattr(IfcCostScheduleTypeEnum, 'PRICEDBILLOFQUANTITIES', INDETERMINATE) -unpricedbillofquantities = getattr(IfcCostScheduleTypeEnum, 'UNPRICEDBILLOFQUANTITIES', INDETERMINATE) -scheduleofrates = getattr(IfcCostScheduleTypeEnum, 'SCHEDULEOFRATES', INDETERMINATE) -userdefined = getattr(IfcCostScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCostScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +budget = IfcCostScheduleTypeEnum.BUDGET +costplan = IfcCostScheduleTypeEnum.COSTPLAN +estimate = IfcCostScheduleTypeEnum.ESTIMATE +tender = IfcCostScheduleTypeEnum.TENDER +pricedbillofquantities = IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES +unpricedbillofquantities = IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES +scheduleofrates = IfcCostScheduleTypeEnum.SCHEDULEOFRATES +userdefined = IfcCostScheduleTypeEnum.USERDEFINED +notdefined = IfcCostScheduleTypeEnum.NOTDEFINED IfcCoveringTypeEnum = enum_namespace() -ceiling = getattr(IfcCoveringTypeEnum, 'CEILING', INDETERMINATE) -flooring = getattr(IfcCoveringTypeEnum, 'FLOORING', INDETERMINATE) -cladding = getattr(IfcCoveringTypeEnum, 'CLADDING', INDETERMINATE) -roofing = getattr(IfcCoveringTypeEnum, 'ROOFING', INDETERMINATE) -molding = getattr(IfcCoveringTypeEnum, 'MOLDING', INDETERMINATE) -skirtingboard = getattr(IfcCoveringTypeEnum, 'SKIRTINGBOARD', INDETERMINATE) -insulation = getattr(IfcCoveringTypeEnum, 'INSULATION', INDETERMINATE) -membrane = getattr(IfcCoveringTypeEnum, 'MEMBRANE', INDETERMINATE) -sleeving = getattr(IfcCoveringTypeEnum, 'SLEEVING', INDETERMINATE) -wrapping = getattr(IfcCoveringTypeEnum, 'WRAPPING', INDETERMINATE) -coping = getattr(IfcCoveringTypeEnum, 'COPING', INDETERMINATE) -userdefined = getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoveringTypeEnum, 'NOTDEFINED', INDETERMINATE) +ceiling = IfcCoveringTypeEnum.CEILING +flooring = IfcCoveringTypeEnum.FLOORING +cladding = IfcCoveringTypeEnum.CLADDING +roofing = IfcCoveringTypeEnum.ROOFING +molding = IfcCoveringTypeEnum.MOLDING +skirtingboard = IfcCoveringTypeEnum.SKIRTINGBOARD +insulation = IfcCoveringTypeEnum.INSULATION +membrane = IfcCoveringTypeEnum.MEMBRANE +sleeving = IfcCoveringTypeEnum.SLEEVING +wrapping = IfcCoveringTypeEnum.WRAPPING +coping = IfcCoveringTypeEnum.COPING +userdefined = IfcCoveringTypeEnum.USERDEFINED +notdefined = IfcCoveringTypeEnum.NOTDEFINED IfcCrewResourceTypeEnum = enum_namespace() -office = getattr(IfcCrewResourceTypeEnum, 'OFFICE', INDETERMINATE) -site = getattr(IfcCrewResourceTypeEnum, 'SITE', INDETERMINATE) -userdefined = getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCrewResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +office = IfcCrewResourceTypeEnum.OFFICE +site = IfcCrewResourceTypeEnum.SITE +userdefined = IfcCrewResourceTypeEnum.USERDEFINED +notdefined = IfcCrewResourceTypeEnum.NOTDEFINED IfcCurtainWallTypeEnum = enum_namespace() -userdefined = getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCurtainWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCurtainWallTypeEnum.USERDEFINED +notdefined = IfcCurtainWallTypeEnum.NOTDEFINED IfcCurveInterpolationEnum = enum_namespace() -linear = getattr(IfcCurveInterpolationEnum, 'LINEAR', INDETERMINATE) -log_linear = getattr(IfcCurveInterpolationEnum, 'LOG_LINEAR', INDETERMINATE) -log_log = getattr(IfcCurveInterpolationEnum, 'LOG_LOG', INDETERMINATE) -notdefined = getattr(IfcCurveInterpolationEnum, 'NOTDEFINED', INDETERMINATE) +linear = IfcCurveInterpolationEnum.LINEAR +log_linear = IfcCurveInterpolationEnum.LOG_LINEAR +log_log = IfcCurveInterpolationEnum.LOG_LOG +notdefined = IfcCurveInterpolationEnum.NOTDEFINED IfcDamperTypeEnum = enum_namespace() -backdraftdamper = getattr(IfcDamperTypeEnum, 'BACKDRAFTDAMPER', INDETERMINATE) -balancingdamper = getattr(IfcDamperTypeEnum, 'BALANCINGDAMPER', INDETERMINATE) -blastdamper = getattr(IfcDamperTypeEnum, 'BLASTDAMPER', INDETERMINATE) -controldamper = getattr(IfcDamperTypeEnum, 'CONTROLDAMPER', INDETERMINATE) -firedamper = getattr(IfcDamperTypeEnum, 'FIREDAMPER', INDETERMINATE) -firesmokedamper = getattr(IfcDamperTypeEnum, 'FIRESMOKEDAMPER', INDETERMINATE) -fumehoodexhaust = getattr(IfcDamperTypeEnum, 'FUMEHOODEXHAUST', INDETERMINATE) -gravitydamper = getattr(IfcDamperTypeEnum, 'GRAVITYDAMPER', INDETERMINATE) -gravityreliefdamper = getattr(IfcDamperTypeEnum, 'GRAVITYRELIEFDAMPER', INDETERMINATE) -reliefdamper = getattr(IfcDamperTypeEnum, 'RELIEFDAMPER', INDETERMINATE) -smokedamper = getattr(IfcDamperTypeEnum, 'SMOKEDAMPER', INDETERMINATE) -userdefined = getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +backdraftdamper = IfcDamperTypeEnum.BACKDRAFTDAMPER +balancingdamper = IfcDamperTypeEnum.BALANCINGDAMPER +blastdamper = IfcDamperTypeEnum.BLASTDAMPER +controldamper = IfcDamperTypeEnum.CONTROLDAMPER +firedamper = IfcDamperTypeEnum.FIREDAMPER +firesmokedamper = IfcDamperTypeEnum.FIRESMOKEDAMPER +fumehoodexhaust = IfcDamperTypeEnum.FUMEHOODEXHAUST +gravitydamper = IfcDamperTypeEnum.GRAVITYDAMPER +gravityreliefdamper = IfcDamperTypeEnum.GRAVITYRELIEFDAMPER +reliefdamper = IfcDamperTypeEnum.RELIEFDAMPER +smokedamper = IfcDamperTypeEnum.SMOKEDAMPER +userdefined = IfcDamperTypeEnum.USERDEFINED +notdefined = IfcDamperTypeEnum.NOTDEFINED IfcDataOriginEnum = enum_namespace() -measured = getattr(IfcDataOriginEnum, 'MEASURED', INDETERMINATE) -predicted = getattr(IfcDataOriginEnum, 'PREDICTED', INDETERMINATE) -simulated = getattr(IfcDataOriginEnum, 'SIMULATED', INDETERMINATE) -userdefined = getattr(IfcDataOriginEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDataOriginEnum, 'NOTDEFINED', INDETERMINATE) +measured = IfcDataOriginEnum.MEASURED +predicted = IfcDataOriginEnum.PREDICTED +simulated = IfcDataOriginEnum.SIMULATED +userdefined = IfcDataOriginEnum.USERDEFINED +notdefined = IfcDataOriginEnum.NOTDEFINED IfcDerivedUnitEnum = enum_namespace() -angularvelocityunit = getattr(IfcDerivedUnitEnum, 'ANGULARVELOCITYUNIT', INDETERMINATE) -areadensityunit = getattr(IfcDerivedUnitEnum, 'AREADENSITYUNIT', INDETERMINATE) -compoundplaneangleunit = getattr(IfcDerivedUnitEnum, 'COMPOUNDPLANEANGLEUNIT', INDETERMINATE) -dynamicviscosityunit = getattr(IfcDerivedUnitEnum, 'DYNAMICVISCOSITYUNIT', INDETERMINATE) -heatfluxdensityunit = getattr(IfcDerivedUnitEnum, 'HEATFLUXDENSITYUNIT', INDETERMINATE) -integercountrateunit = getattr(IfcDerivedUnitEnum, 'INTEGERCOUNTRATEUNIT', INDETERMINATE) -isothermalmoisturecapacityunit = getattr(IfcDerivedUnitEnum, 'ISOTHERMALMOISTURECAPACITYUNIT', INDETERMINATE) -kinematicviscosityunit = getattr(IfcDerivedUnitEnum, 'KINEMATICVISCOSITYUNIT', INDETERMINATE) -linearvelocityunit = getattr(IfcDerivedUnitEnum, 'LINEARVELOCITYUNIT', INDETERMINATE) -massdensityunit = getattr(IfcDerivedUnitEnum, 'MASSDENSITYUNIT', INDETERMINATE) -massflowrateunit = getattr(IfcDerivedUnitEnum, 'MASSFLOWRATEUNIT', INDETERMINATE) -moisturediffusivityunit = getattr(IfcDerivedUnitEnum, 'MOISTUREDIFFUSIVITYUNIT', INDETERMINATE) -molecularweightunit = getattr(IfcDerivedUnitEnum, 'MOLECULARWEIGHTUNIT', INDETERMINATE) -specificheatcapacityunit = getattr(IfcDerivedUnitEnum, 'SPECIFICHEATCAPACITYUNIT', INDETERMINATE) -thermaladmittanceunit = getattr(IfcDerivedUnitEnum, 'THERMALADMITTANCEUNIT', INDETERMINATE) -thermalconductanceunit = getattr(IfcDerivedUnitEnum, 'THERMALCONDUCTANCEUNIT', INDETERMINATE) -thermalresistanceunit = getattr(IfcDerivedUnitEnum, 'THERMALRESISTANCEUNIT', INDETERMINATE) -thermaltransmittanceunit = getattr(IfcDerivedUnitEnum, 'THERMALTRANSMITTANCEUNIT', INDETERMINATE) -vaporpermeabilityunit = getattr(IfcDerivedUnitEnum, 'VAPORPERMEABILITYUNIT', INDETERMINATE) -volumetricflowrateunit = getattr(IfcDerivedUnitEnum, 'VOLUMETRICFLOWRATEUNIT', INDETERMINATE) -rotationalfrequencyunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALFREQUENCYUNIT', INDETERMINATE) -torqueunit = getattr(IfcDerivedUnitEnum, 'TORQUEUNIT', INDETERMINATE) -momentofinertiaunit = getattr(IfcDerivedUnitEnum, 'MOMENTOFINERTIAUNIT', INDETERMINATE) -linearmomentunit = getattr(IfcDerivedUnitEnum, 'LINEARMOMENTUNIT', INDETERMINATE) -linearforceunit = getattr(IfcDerivedUnitEnum, 'LINEARFORCEUNIT', INDETERMINATE) -planarforceunit = getattr(IfcDerivedUnitEnum, 'PLANARFORCEUNIT', INDETERMINATE) -modulusofelasticityunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFELASTICITYUNIT', INDETERMINATE) -shearmodulusunit = getattr(IfcDerivedUnitEnum, 'SHEARMODULUSUNIT', INDETERMINATE) -linearstiffnessunit = getattr(IfcDerivedUnitEnum, 'LINEARSTIFFNESSUNIT', INDETERMINATE) -rotationalstiffnessunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALSTIFFNESSUNIT', INDETERMINATE) -modulusofsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFSUBGRADEREACTIONUNIT', INDETERMINATE) -accelerationunit = getattr(IfcDerivedUnitEnum, 'ACCELERATIONUNIT', INDETERMINATE) -curvatureunit = getattr(IfcDerivedUnitEnum, 'CURVATUREUNIT', INDETERMINATE) -heatingvalueunit = getattr(IfcDerivedUnitEnum, 'HEATINGVALUEUNIT', INDETERMINATE) -ionconcentrationunit = getattr(IfcDerivedUnitEnum, 'IONCONCENTRATIONUNIT', INDETERMINATE) -luminousintensitydistributionunit = getattr(IfcDerivedUnitEnum, 'LUMINOUSINTENSITYDISTRIBUTIONUNIT', INDETERMINATE) -massperlengthunit = getattr(IfcDerivedUnitEnum, 'MASSPERLENGTHUNIT', INDETERMINATE) -modulusoflinearsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFLINEARSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofrotationalsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFROTATIONALSUBGRADEREACTIONUNIT', INDETERMINATE) -phunit = getattr(IfcDerivedUnitEnum, 'PHUNIT', INDETERMINATE) -rotationalmassunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALMASSUNIT', INDETERMINATE) -sectionareaintegralunit = getattr(IfcDerivedUnitEnum, 'SECTIONAREAINTEGRALUNIT', INDETERMINATE) -sectionmodulusunit = getattr(IfcDerivedUnitEnum, 'SECTIONMODULUSUNIT', INDETERMINATE) -soundpowerlevelunit = getattr(IfcDerivedUnitEnum, 'SOUNDPOWERLEVELUNIT', INDETERMINATE) -soundpowerunit = getattr(IfcDerivedUnitEnum, 'SOUNDPOWERUNIT', INDETERMINATE) -soundpressurelevelunit = getattr(IfcDerivedUnitEnum, 'SOUNDPRESSURELEVELUNIT', INDETERMINATE) -soundpressureunit = getattr(IfcDerivedUnitEnum, 'SOUNDPRESSUREUNIT', INDETERMINATE) -temperaturegradientunit = getattr(IfcDerivedUnitEnum, 'TEMPERATUREGRADIENTUNIT', INDETERMINATE) -temperaturerateofchangeunit = getattr(IfcDerivedUnitEnum, 'TEMPERATURERATEOFCHANGEUNIT', INDETERMINATE) -thermalexpansioncoefficientunit = getattr(IfcDerivedUnitEnum, 'THERMALEXPANSIONCOEFFICIENTUNIT', INDETERMINATE) -warpingconstantunit = getattr(IfcDerivedUnitEnum, 'WARPINGCONSTANTUNIT', INDETERMINATE) -warpingmomentunit = getattr(IfcDerivedUnitEnum, 'WARPINGMOMENTUNIT', INDETERMINATE) -userdefined = getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) +angularvelocityunit = IfcDerivedUnitEnum.ANGULARVELOCITYUNIT +areadensityunit = IfcDerivedUnitEnum.AREADENSITYUNIT +compoundplaneangleunit = IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT +dynamicviscosityunit = IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT +heatfluxdensityunit = IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT +integercountrateunit = IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT +isothermalmoisturecapacityunit = IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT +kinematicviscosityunit = IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT +linearvelocityunit = IfcDerivedUnitEnum.LINEARVELOCITYUNIT +massdensityunit = IfcDerivedUnitEnum.MASSDENSITYUNIT +massflowrateunit = IfcDerivedUnitEnum.MASSFLOWRATEUNIT +moisturediffusivityunit = IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT +molecularweightunit = IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT +specificheatcapacityunit = IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT +thermaladmittanceunit = IfcDerivedUnitEnum.THERMALADMITTANCEUNIT +thermalconductanceunit = IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT +thermalresistanceunit = IfcDerivedUnitEnum.THERMALRESISTANCEUNIT +thermaltransmittanceunit = IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT +vaporpermeabilityunit = IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT +volumetricflowrateunit = IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT +rotationalfrequencyunit = IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT +torqueunit = IfcDerivedUnitEnum.TORQUEUNIT +momentofinertiaunit = IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT +linearmomentunit = IfcDerivedUnitEnum.LINEARMOMENTUNIT +linearforceunit = IfcDerivedUnitEnum.LINEARFORCEUNIT +planarforceunit = IfcDerivedUnitEnum.PLANARFORCEUNIT +modulusofelasticityunit = IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT +shearmodulusunit = IfcDerivedUnitEnum.SHEARMODULUSUNIT +linearstiffnessunit = IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT +rotationalstiffnessunit = IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT +modulusofsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT +accelerationunit = IfcDerivedUnitEnum.ACCELERATIONUNIT +curvatureunit = IfcDerivedUnitEnum.CURVATUREUNIT +heatingvalueunit = IfcDerivedUnitEnum.HEATINGVALUEUNIT +ionconcentrationunit = IfcDerivedUnitEnum.IONCONCENTRATIONUNIT +luminousintensitydistributionunit = IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT +massperlengthunit = IfcDerivedUnitEnum.MASSPERLENGTHUNIT +modulusoflinearsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT +modulusofrotationalsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT +phunit = IfcDerivedUnitEnum.PHUNIT +rotationalmassunit = IfcDerivedUnitEnum.ROTATIONALMASSUNIT +sectionareaintegralunit = IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT +sectionmodulusunit = IfcDerivedUnitEnum.SECTIONMODULUSUNIT +soundpowerlevelunit = IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT +soundpowerunit = IfcDerivedUnitEnum.SOUNDPOWERUNIT +soundpressurelevelunit = IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT +soundpressureunit = IfcDerivedUnitEnum.SOUNDPRESSUREUNIT +temperaturegradientunit = IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT +temperaturerateofchangeunit = IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT +thermalexpansioncoefficientunit = IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT +warpingconstantunit = IfcDerivedUnitEnum.WARPINGCONSTANTUNIT +warpingmomentunit = IfcDerivedUnitEnum.WARPINGMOMENTUNIT +userdefined = IfcDerivedUnitEnum.USERDEFINED IfcDirectionSenseEnum = enum_namespace() -positive = getattr(IfcDirectionSenseEnum, 'POSITIVE', INDETERMINATE) -negative = getattr(IfcDirectionSenseEnum, 'NEGATIVE', INDETERMINATE) +positive = IfcDirectionSenseEnum.POSITIVE +negative = IfcDirectionSenseEnum.NEGATIVE IfcDiscreteAccessoryTypeEnum = enum_namespace() -anchorplate = getattr(IfcDiscreteAccessoryTypeEnum, 'ANCHORPLATE', INDETERMINATE) -bracket = getattr(IfcDiscreteAccessoryTypeEnum, 'BRACKET', INDETERMINATE) -shoe = getattr(IfcDiscreteAccessoryTypeEnum, 'SHOE', INDETERMINATE) -expansion_joint_device = getattr(IfcDiscreteAccessoryTypeEnum, 'EXPANSION_JOINT_DEVICE', INDETERMINATE) -userdefined = getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDiscreteAccessoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorplate = IfcDiscreteAccessoryTypeEnum.ANCHORPLATE +bracket = IfcDiscreteAccessoryTypeEnum.BRACKET +shoe = IfcDiscreteAccessoryTypeEnum.SHOE +expansion_joint_device = IfcDiscreteAccessoryTypeEnum.EXPANSION_JOINT_DEVICE +userdefined = IfcDiscreteAccessoryTypeEnum.USERDEFINED +notdefined = IfcDiscreteAccessoryTypeEnum.NOTDEFINED IfcDistributionChamberElementTypeEnum = enum_namespace() -formedduct = getattr(IfcDistributionChamberElementTypeEnum, 'FORMEDDUCT', INDETERMINATE) -inspectionchamber = getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONCHAMBER', INDETERMINATE) -inspectionpit = getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONPIT', INDETERMINATE) -manhole = getattr(IfcDistributionChamberElementTypeEnum, 'MANHOLE', INDETERMINATE) -meterchamber = getattr(IfcDistributionChamberElementTypeEnum, 'METERCHAMBER', INDETERMINATE) -sump = getattr(IfcDistributionChamberElementTypeEnum, 'SUMP', INDETERMINATE) -trench = getattr(IfcDistributionChamberElementTypeEnum, 'TRENCH', INDETERMINATE) -valvechamber = getattr(IfcDistributionChamberElementTypeEnum, 'VALVECHAMBER', INDETERMINATE) -userdefined = getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionChamberElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +formedduct = IfcDistributionChamberElementTypeEnum.FORMEDDUCT +inspectionchamber = IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER +inspectionpit = IfcDistributionChamberElementTypeEnum.INSPECTIONPIT +manhole = IfcDistributionChamberElementTypeEnum.MANHOLE +meterchamber = IfcDistributionChamberElementTypeEnum.METERCHAMBER +sump = IfcDistributionChamberElementTypeEnum.SUMP +trench = IfcDistributionChamberElementTypeEnum.TRENCH +valvechamber = IfcDistributionChamberElementTypeEnum.VALVECHAMBER +userdefined = IfcDistributionChamberElementTypeEnum.USERDEFINED +notdefined = IfcDistributionChamberElementTypeEnum.NOTDEFINED IfcDistributionPortTypeEnum = enum_namespace() -cable = getattr(IfcDistributionPortTypeEnum, 'CABLE', INDETERMINATE) -cablecarrier = getattr(IfcDistributionPortTypeEnum, 'CABLECARRIER', INDETERMINATE) -duct = getattr(IfcDistributionPortTypeEnum, 'DUCT', INDETERMINATE) -pipe = getattr(IfcDistributionPortTypeEnum, 'PIPE', INDETERMINATE) -userdefined = getattr(IfcDistributionPortTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionPortTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcDistributionPortTypeEnum.CABLE +cablecarrier = IfcDistributionPortTypeEnum.CABLECARRIER +duct = IfcDistributionPortTypeEnum.DUCT +pipe = IfcDistributionPortTypeEnum.PIPE +userdefined = IfcDistributionPortTypeEnum.USERDEFINED +notdefined = IfcDistributionPortTypeEnum.NOTDEFINED IfcDistributionSystemEnum = enum_namespace() -airconditioning = getattr(IfcDistributionSystemEnum, 'AIRCONDITIONING', INDETERMINATE) -audiovisual = getattr(IfcDistributionSystemEnum, 'AUDIOVISUAL', INDETERMINATE) -chemical = getattr(IfcDistributionSystemEnum, 'CHEMICAL', INDETERMINATE) -chilledwater = getattr(IfcDistributionSystemEnum, 'CHILLEDWATER', INDETERMINATE) -communication = getattr(IfcDistributionSystemEnum, 'COMMUNICATION', INDETERMINATE) -compressedair = getattr(IfcDistributionSystemEnum, 'COMPRESSEDAIR', INDETERMINATE) -condenserwater = getattr(IfcDistributionSystemEnum, 'CONDENSERWATER', INDETERMINATE) -control = getattr(IfcDistributionSystemEnum, 'CONTROL', INDETERMINATE) -conveying = getattr(IfcDistributionSystemEnum, 'CONVEYING', INDETERMINATE) -data = getattr(IfcDistributionSystemEnum, 'DATA', INDETERMINATE) -disposal = getattr(IfcDistributionSystemEnum, 'DISPOSAL', INDETERMINATE) -domesticcoldwater = getattr(IfcDistributionSystemEnum, 'DOMESTICCOLDWATER', INDETERMINATE) -domestichotwater = getattr(IfcDistributionSystemEnum, 'DOMESTICHOTWATER', INDETERMINATE) -drainage = getattr(IfcDistributionSystemEnum, 'DRAINAGE', INDETERMINATE) -earthing = getattr(IfcDistributionSystemEnum, 'EARTHING', INDETERMINATE) -electrical = getattr(IfcDistributionSystemEnum, 'ELECTRICAL', INDETERMINATE) -electroacoustic = getattr(IfcDistributionSystemEnum, 'ELECTROACOUSTIC', INDETERMINATE) -exhaust = getattr(IfcDistributionSystemEnum, 'EXHAUST', INDETERMINATE) -fireprotection = getattr(IfcDistributionSystemEnum, 'FIREPROTECTION', INDETERMINATE) -fuel = getattr(IfcDistributionSystemEnum, 'FUEL', INDETERMINATE) -gas = getattr(IfcDistributionSystemEnum, 'GAS', INDETERMINATE) -hazardous = getattr(IfcDistributionSystemEnum, 'HAZARDOUS', INDETERMINATE) -heating = getattr(IfcDistributionSystemEnum, 'HEATING', INDETERMINATE) -lighting = getattr(IfcDistributionSystemEnum, 'LIGHTING', INDETERMINATE) -lightningprotection = getattr(IfcDistributionSystemEnum, 'LIGHTNINGPROTECTION', INDETERMINATE) -municipalsolidwaste = getattr(IfcDistributionSystemEnum, 'MUNICIPALSOLIDWASTE', INDETERMINATE) -oil = getattr(IfcDistributionSystemEnum, 'OIL', INDETERMINATE) -operational = getattr(IfcDistributionSystemEnum, 'OPERATIONAL', INDETERMINATE) -powergeneration = getattr(IfcDistributionSystemEnum, 'POWERGENERATION', INDETERMINATE) -rainwater = getattr(IfcDistributionSystemEnum, 'RAINWATER', INDETERMINATE) -refrigeration = getattr(IfcDistributionSystemEnum, 'REFRIGERATION', INDETERMINATE) -security = getattr(IfcDistributionSystemEnum, 'SECURITY', INDETERMINATE) -sewage = getattr(IfcDistributionSystemEnum, 'SEWAGE', INDETERMINATE) -signal = getattr(IfcDistributionSystemEnum, 'SIGNAL', INDETERMINATE) -stormwater = getattr(IfcDistributionSystemEnum, 'STORMWATER', INDETERMINATE) -telephone = getattr(IfcDistributionSystemEnum, 'TELEPHONE', INDETERMINATE) -tv = getattr(IfcDistributionSystemEnum, 'TV', INDETERMINATE) -vacuum = getattr(IfcDistributionSystemEnum, 'VACUUM', INDETERMINATE) -vent = getattr(IfcDistributionSystemEnum, 'VENT', INDETERMINATE) -ventilation = getattr(IfcDistributionSystemEnum, 'VENTILATION', INDETERMINATE) -wastewater = getattr(IfcDistributionSystemEnum, 'WASTEWATER', INDETERMINATE) -watersupply = getattr(IfcDistributionSystemEnum, 'WATERSUPPLY', INDETERMINATE) -userdefined = getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionSystemEnum, 'NOTDEFINED', INDETERMINATE) +airconditioning = IfcDistributionSystemEnum.AIRCONDITIONING +audiovisual = IfcDistributionSystemEnum.AUDIOVISUAL +chemical = IfcDistributionSystemEnum.CHEMICAL +chilledwater = IfcDistributionSystemEnum.CHILLEDWATER +communication = IfcDistributionSystemEnum.COMMUNICATION +compressedair = IfcDistributionSystemEnum.COMPRESSEDAIR +condenserwater = IfcDistributionSystemEnum.CONDENSERWATER +control = IfcDistributionSystemEnum.CONTROL +conveying = IfcDistributionSystemEnum.CONVEYING +data = IfcDistributionSystemEnum.DATA +disposal = IfcDistributionSystemEnum.DISPOSAL +domesticcoldwater = IfcDistributionSystemEnum.DOMESTICCOLDWATER +domestichotwater = IfcDistributionSystemEnum.DOMESTICHOTWATER +drainage = IfcDistributionSystemEnum.DRAINAGE +earthing = IfcDistributionSystemEnum.EARTHING +electrical = IfcDistributionSystemEnum.ELECTRICAL +electroacoustic = IfcDistributionSystemEnum.ELECTROACOUSTIC +exhaust = IfcDistributionSystemEnum.EXHAUST +fireprotection = IfcDistributionSystemEnum.FIREPROTECTION +fuel = IfcDistributionSystemEnum.FUEL +gas = IfcDistributionSystemEnum.GAS +hazardous = IfcDistributionSystemEnum.HAZARDOUS +heating = IfcDistributionSystemEnum.HEATING +lighting = IfcDistributionSystemEnum.LIGHTING +lightningprotection = IfcDistributionSystemEnum.LIGHTNINGPROTECTION +municipalsolidwaste = IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE +oil = IfcDistributionSystemEnum.OIL +operational = IfcDistributionSystemEnum.OPERATIONAL +powergeneration = IfcDistributionSystemEnum.POWERGENERATION +rainwater = IfcDistributionSystemEnum.RAINWATER +refrigeration = IfcDistributionSystemEnum.REFRIGERATION +security = IfcDistributionSystemEnum.SECURITY +sewage = IfcDistributionSystemEnum.SEWAGE +signal = IfcDistributionSystemEnum.SIGNAL +stormwater = IfcDistributionSystemEnum.STORMWATER +telephone = IfcDistributionSystemEnum.TELEPHONE +tv = IfcDistributionSystemEnum.TV +vacuum = IfcDistributionSystemEnum.VACUUM +vent = IfcDistributionSystemEnum.VENT +ventilation = IfcDistributionSystemEnum.VENTILATION +wastewater = IfcDistributionSystemEnum.WASTEWATER +watersupply = IfcDistributionSystemEnum.WATERSUPPLY +userdefined = IfcDistributionSystemEnum.USERDEFINED +notdefined = IfcDistributionSystemEnum.NOTDEFINED IfcDocumentConfidentialityEnum = enum_namespace() -public = getattr(IfcDocumentConfidentialityEnum, 'PUBLIC', INDETERMINATE) -restricted = getattr(IfcDocumentConfidentialityEnum, 'RESTRICTED', INDETERMINATE) -confidential = getattr(IfcDocumentConfidentialityEnum, 'CONFIDENTIAL', INDETERMINATE) -personal = getattr(IfcDocumentConfidentialityEnum, 'PERSONAL', INDETERMINATE) -userdefined = getattr(IfcDocumentConfidentialityEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDocumentConfidentialityEnum, 'NOTDEFINED', INDETERMINATE) +public = IfcDocumentConfidentialityEnum.PUBLIC +restricted = IfcDocumentConfidentialityEnum.RESTRICTED +confidential = IfcDocumentConfidentialityEnum.CONFIDENTIAL +personal = IfcDocumentConfidentialityEnum.PERSONAL +userdefined = IfcDocumentConfidentialityEnum.USERDEFINED +notdefined = IfcDocumentConfidentialityEnum.NOTDEFINED IfcDocumentStatusEnum = enum_namespace() -draft = getattr(IfcDocumentStatusEnum, 'DRAFT', INDETERMINATE) -finaldraft = getattr(IfcDocumentStatusEnum, 'FINALDRAFT', INDETERMINATE) -final = getattr(IfcDocumentStatusEnum, 'FINAL', INDETERMINATE) -revision = getattr(IfcDocumentStatusEnum, 'REVISION', INDETERMINATE) -notdefined = getattr(IfcDocumentStatusEnum, 'NOTDEFINED', INDETERMINATE) +draft = IfcDocumentStatusEnum.DRAFT +finaldraft = IfcDocumentStatusEnum.FINALDRAFT +final = IfcDocumentStatusEnum.FINAL +revision = IfcDocumentStatusEnum.REVISION +notdefined = IfcDocumentStatusEnum.NOTDEFINED IfcDoorPanelOperationEnum = enum_namespace() -swinging = getattr(IfcDoorPanelOperationEnum, 'SWINGING', INDETERMINATE) -double_acting = getattr(IfcDoorPanelOperationEnum, 'DOUBLE_ACTING', INDETERMINATE) -sliding = getattr(IfcDoorPanelOperationEnum, 'SLIDING', INDETERMINATE) -folding = getattr(IfcDoorPanelOperationEnum, 'FOLDING', INDETERMINATE) -revolving = getattr(IfcDoorPanelOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = getattr(IfcDoorPanelOperationEnum, 'ROLLINGUP', INDETERMINATE) -fixedpanel = getattr(IfcDoorPanelOperationEnum, 'FIXEDPANEL', INDETERMINATE) -userdefined = getattr(IfcDoorPanelOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +swinging = IfcDoorPanelOperationEnum.SWINGING +double_acting = IfcDoorPanelOperationEnum.DOUBLE_ACTING +sliding = IfcDoorPanelOperationEnum.SLIDING +folding = IfcDoorPanelOperationEnum.FOLDING +revolving = IfcDoorPanelOperationEnum.REVOLVING +rollingup = IfcDoorPanelOperationEnum.ROLLINGUP +fixedpanel = IfcDoorPanelOperationEnum.FIXEDPANEL +userdefined = IfcDoorPanelOperationEnum.USERDEFINED +notdefined = IfcDoorPanelOperationEnum.NOTDEFINED IfcDoorPanelPositionEnum = enum_namespace() -left = getattr(IfcDoorPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = getattr(IfcDoorPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = getattr(IfcDoorPanelPositionEnum, 'RIGHT', INDETERMINATE) -notdefined = getattr(IfcDoorPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcDoorPanelPositionEnum.LEFT +middle = IfcDoorPanelPositionEnum.MIDDLE +right = IfcDoorPanelPositionEnum.RIGHT +notdefined = IfcDoorPanelPositionEnum.NOTDEFINED IfcDoorStyleConstructionEnum = enum_namespace() -aluminium = getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = getattr(IfcDoorStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = getattr(IfcDoorStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = getattr(IfcDoorStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -aluminium_plastic = getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_PLASTIC', INDETERMINATE) -plastic = getattr(IfcDoorStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -userdefined = getattr(IfcDoorStyleConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcDoorStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcDoorStyleConstructionEnum.STEEL +wood = IfcDoorStyleConstructionEnum.WOOD +aluminium_wood = IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD +aluminium_plastic = IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC +plastic = IfcDoorStyleConstructionEnum.PLASTIC +userdefined = IfcDoorStyleConstructionEnum.USERDEFINED +notdefined = IfcDoorStyleConstructionEnum.NOTDEFINED IfcDoorStyleOperationEnum = enum_namespace() -single_swing_left = getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_door_single_swing = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_door_double_swing = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_door_sliding = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -folding_to_left = getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_door_folding = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -revolving = getattr(IfcDoorStyleOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = getattr(IfcDoorStyleOperationEnum, 'ROLLINGUP', INDETERMINATE) -userdefined = getattr(IfcDoorStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT +double_door_single_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT +double_door_double_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +sliding_to_left = IfcDoorStyleOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT +double_door_sliding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING +folding_to_left = IfcDoorStyleOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT +double_door_folding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING +revolving = IfcDoorStyleOperationEnum.REVOLVING +rollingup = IfcDoorStyleOperationEnum.ROLLINGUP +userdefined = IfcDoorStyleOperationEnum.USERDEFINED +notdefined = IfcDoorStyleOperationEnum.NOTDEFINED IfcDoorTypeEnum = enum_namespace() -door = getattr(IfcDoorTypeEnum, 'DOOR', INDETERMINATE) -gate = getattr(IfcDoorTypeEnum, 'GATE', INDETERMINATE) -trapdoor = getattr(IfcDoorTypeEnum, 'TRAPDOOR', INDETERMINATE) -userdefined = getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorTypeEnum, 'NOTDEFINED', INDETERMINATE) +door = IfcDoorTypeEnum.DOOR +gate = IfcDoorTypeEnum.GATE +trapdoor = IfcDoorTypeEnum.TRAPDOOR +userdefined = IfcDoorTypeEnum.USERDEFINED +notdefined = IfcDoorTypeEnum.NOTDEFINED IfcDoorTypeOperationEnum = enum_namespace() -single_swing_left = getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_door_single_swing = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_door_double_swing = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_door_sliding = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -folding_to_left = getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_door_folding = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -revolving = getattr(IfcDoorTypeOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = getattr(IfcDoorTypeOperationEnum, 'ROLLINGUP', INDETERMINATE) -swing_fixed_left = getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_LEFT', INDETERMINATE) -swing_fixed_right = getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_RIGHT', INDETERMINATE) -userdefined = getattr(IfcDoorTypeOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorTypeOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT +double_door_single_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT +double_door_double_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +sliding_to_left = IfcDoorTypeOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT +double_door_sliding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SLIDING +folding_to_left = IfcDoorTypeOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT +double_door_folding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_FOLDING +revolving = IfcDoorTypeOperationEnum.REVOLVING +rollingup = IfcDoorTypeOperationEnum.ROLLINGUP +swing_fixed_left = IfcDoorTypeOperationEnum.SWING_FIXED_LEFT +swing_fixed_right = IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT +userdefined = IfcDoorTypeOperationEnum.USERDEFINED +notdefined = IfcDoorTypeOperationEnum.NOTDEFINED IfcDuctFittingTypeEnum = enum_namespace() -bend = getattr(IfcDuctFittingTypeEnum, 'BEND', INDETERMINATE) -connector = getattr(IfcDuctFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcDuctFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcDuctFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcDuctFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = getattr(IfcDuctFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = getattr(IfcDuctFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcDuctFittingTypeEnum.BEND +connector = IfcDuctFittingTypeEnum.CONNECTOR +entry = IfcDuctFittingTypeEnum.ENTRY +exit = IfcDuctFittingTypeEnum.EXIT +junction = IfcDuctFittingTypeEnum.JUNCTION +obstruction = IfcDuctFittingTypeEnum.OBSTRUCTION +transition = IfcDuctFittingTypeEnum.TRANSITION +userdefined = IfcDuctFittingTypeEnum.USERDEFINED +notdefined = IfcDuctFittingTypeEnum.NOTDEFINED IfcDuctSegmentTypeEnum = enum_namespace() -rigidsegment = getattr(IfcDuctSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -flexiblesegment = getattr(IfcDuctSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -userdefined = getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigidsegment = IfcDuctSegmentTypeEnum.RIGIDSEGMENT +flexiblesegment = IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT +userdefined = IfcDuctSegmentTypeEnum.USERDEFINED +notdefined = IfcDuctSegmentTypeEnum.NOTDEFINED IfcDuctSilencerTypeEnum = enum_namespace() -flatoval = getattr(IfcDuctSilencerTypeEnum, 'FLATOVAL', INDETERMINATE) -rectangular = getattr(IfcDuctSilencerTypeEnum, 'RECTANGULAR', INDETERMINATE) -round = getattr(IfcDuctSilencerTypeEnum, 'ROUND', INDETERMINATE) -userdefined = getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctSilencerTypeEnum, 'NOTDEFINED', INDETERMINATE) +flatoval = IfcDuctSilencerTypeEnum.FLATOVAL +rectangular = IfcDuctSilencerTypeEnum.RECTANGULAR +round = IfcDuctSilencerTypeEnum.ROUND +userdefined = IfcDuctSilencerTypeEnum.USERDEFINED +notdefined = IfcDuctSilencerTypeEnum.NOTDEFINED IfcElectricApplianceTypeEnum = enum_namespace() -dishwasher = getattr(IfcElectricApplianceTypeEnum, 'DISHWASHER', INDETERMINATE) -electriccooker = getattr(IfcElectricApplianceTypeEnum, 'ELECTRICCOOKER', INDETERMINATE) -freestandingelectricheater = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGELECTRICHEATER', INDETERMINATE) -freestandingfan = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGFAN', INDETERMINATE) -freestandingwaterheater = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERHEATER', INDETERMINATE) -freestandingwatercooler = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERCOOLER', INDETERMINATE) -freezer = getattr(IfcElectricApplianceTypeEnum, 'FREEZER', INDETERMINATE) -fridge_freezer = getattr(IfcElectricApplianceTypeEnum, 'FRIDGE_FREEZER', INDETERMINATE) -handdryer = getattr(IfcElectricApplianceTypeEnum, 'HANDDRYER', INDETERMINATE) -kitchenmachine = getattr(IfcElectricApplianceTypeEnum, 'KITCHENMACHINE', INDETERMINATE) -microwave = getattr(IfcElectricApplianceTypeEnum, 'MICROWAVE', INDETERMINATE) -photocopier = getattr(IfcElectricApplianceTypeEnum, 'PHOTOCOPIER', INDETERMINATE) -refrigerator = getattr(IfcElectricApplianceTypeEnum, 'REFRIGERATOR', INDETERMINATE) -tumbledryer = getattr(IfcElectricApplianceTypeEnum, 'TUMBLEDRYER', INDETERMINATE) -vendingmachine = getattr(IfcElectricApplianceTypeEnum, 'VENDINGMACHINE', INDETERMINATE) -washingmachine = getattr(IfcElectricApplianceTypeEnum, 'WASHINGMACHINE', INDETERMINATE) -userdefined = getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dishwasher = IfcElectricApplianceTypeEnum.DISHWASHER +electriccooker = IfcElectricApplianceTypeEnum.ELECTRICCOOKER +freestandingelectricheater = IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER +freestandingfan = IfcElectricApplianceTypeEnum.FREESTANDINGFAN +freestandingwaterheater = IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER +freestandingwatercooler = IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER +freezer = IfcElectricApplianceTypeEnum.FREEZER +fridge_freezer = IfcElectricApplianceTypeEnum.FRIDGE_FREEZER +handdryer = IfcElectricApplianceTypeEnum.HANDDRYER +kitchenmachine = IfcElectricApplianceTypeEnum.KITCHENMACHINE +microwave = IfcElectricApplianceTypeEnum.MICROWAVE +photocopier = IfcElectricApplianceTypeEnum.PHOTOCOPIER +refrigerator = IfcElectricApplianceTypeEnum.REFRIGERATOR +tumbledryer = IfcElectricApplianceTypeEnum.TUMBLEDRYER +vendingmachine = IfcElectricApplianceTypeEnum.VENDINGMACHINE +washingmachine = IfcElectricApplianceTypeEnum.WASHINGMACHINE +userdefined = IfcElectricApplianceTypeEnum.USERDEFINED +notdefined = IfcElectricApplianceTypeEnum.NOTDEFINED IfcElectricDistributionBoardTypeEnum = enum_namespace() -consumerunit = getattr(IfcElectricDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -distributionboard = getattr(IfcElectricDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -motorcontrolcentre = getattr(IfcElectricDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = getattr(IfcElectricDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT +distributionboard = IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD +motorcontrolcentre = IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcElectricDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcElectricDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcElectricDistributionBoardTypeEnum.NOTDEFINED IfcElectricFlowStorageDeviceTypeEnum = enum_namespace() -battery = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'BATTERY', INDETERMINATE) -capacitorbank = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITORBANK', INDETERMINATE) -harmonicfilter = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'HARMONICFILTER', INDETERMINATE) -inductorbank = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTORBANK', INDETERMINATE) -ups = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'UPS', INDETERMINATE) -userdefined = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +battery = IfcElectricFlowStorageDeviceTypeEnum.BATTERY +capacitorbank = IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK +harmonicfilter = IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER +inductorbank = IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK +ups = IfcElectricFlowStorageDeviceTypeEnum.UPS +userdefined = IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED IfcElectricGeneratorTypeEnum = enum_namespace() -chp = getattr(IfcElectricGeneratorTypeEnum, 'CHP', INDETERMINATE) -enginegenerator = getattr(IfcElectricGeneratorTypeEnum, 'ENGINEGENERATOR', INDETERMINATE) -standalone = getattr(IfcElectricGeneratorTypeEnum, 'STANDALONE', INDETERMINATE) -userdefined = getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricGeneratorTypeEnum, 'NOTDEFINED', INDETERMINATE) +chp = IfcElectricGeneratorTypeEnum.CHP +enginegenerator = IfcElectricGeneratorTypeEnum.ENGINEGENERATOR +standalone = IfcElectricGeneratorTypeEnum.STANDALONE +userdefined = IfcElectricGeneratorTypeEnum.USERDEFINED +notdefined = IfcElectricGeneratorTypeEnum.NOTDEFINED IfcElectricMotorTypeEnum = enum_namespace() -dc = getattr(IfcElectricMotorTypeEnum, 'DC', INDETERMINATE) -induction = getattr(IfcElectricMotorTypeEnum, 'INDUCTION', INDETERMINATE) -polyphase = getattr(IfcElectricMotorTypeEnum, 'POLYPHASE', INDETERMINATE) -reluctancesynchronous = getattr(IfcElectricMotorTypeEnum, 'RELUCTANCESYNCHRONOUS', INDETERMINATE) -synchronous = getattr(IfcElectricMotorTypeEnum, 'SYNCHRONOUS', INDETERMINATE) -userdefined = getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricMotorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dc = IfcElectricMotorTypeEnum.DC +induction = IfcElectricMotorTypeEnum.INDUCTION +polyphase = IfcElectricMotorTypeEnum.POLYPHASE +reluctancesynchronous = IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS +synchronous = IfcElectricMotorTypeEnum.SYNCHRONOUS +userdefined = IfcElectricMotorTypeEnum.USERDEFINED +notdefined = IfcElectricMotorTypeEnum.NOTDEFINED IfcElectricTimeControlTypeEnum = enum_namespace() -timeclock = getattr(IfcElectricTimeControlTypeEnum, 'TIMECLOCK', INDETERMINATE) -timedelay = getattr(IfcElectricTimeControlTypeEnum, 'TIMEDELAY', INDETERMINATE) -relay = getattr(IfcElectricTimeControlTypeEnum, 'RELAY', INDETERMINATE) -userdefined = getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricTimeControlTypeEnum, 'NOTDEFINED', INDETERMINATE) +timeclock = IfcElectricTimeControlTypeEnum.TIMECLOCK +timedelay = IfcElectricTimeControlTypeEnum.TIMEDELAY +relay = IfcElectricTimeControlTypeEnum.RELAY +userdefined = IfcElectricTimeControlTypeEnum.USERDEFINED +notdefined = IfcElectricTimeControlTypeEnum.NOTDEFINED IfcElementAssemblyTypeEnum = enum_namespace() -accessory_assembly = getattr(IfcElementAssemblyTypeEnum, 'ACCESSORY_ASSEMBLY', INDETERMINATE) -arch = getattr(IfcElementAssemblyTypeEnum, 'ARCH', INDETERMINATE) -beam_grid = getattr(IfcElementAssemblyTypeEnum, 'BEAM_GRID', INDETERMINATE) -braced_frame = getattr(IfcElementAssemblyTypeEnum, 'BRACED_FRAME', INDETERMINATE) -girder = getattr(IfcElementAssemblyTypeEnum, 'GIRDER', INDETERMINATE) -reinforcement_unit = getattr(IfcElementAssemblyTypeEnum, 'REINFORCEMENT_UNIT', INDETERMINATE) -rigid_frame = getattr(IfcElementAssemblyTypeEnum, 'RIGID_FRAME', INDETERMINATE) -slab_field = getattr(IfcElementAssemblyTypeEnum, 'SLAB_FIELD', INDETERMINATE) -truss = getattr(IfcElementAssemblyTypeEnum, 'TRUSS', INDETERMINATE) -abutment = getattr(IfcElementAssemblyTypeEnum, 'ABUTMENT', INDETERMINATE) -pier = getattr(IfcElementAssemblyTypeEnum, 'PIER', INDETERMINATE) -pylon = getattr(IfcElementAssemblyTypeEnum, 'PYLON', INDETERMINATE) -cross_bracing = getattr(IfcElementAssemblyTypeEnum, 'CROSS_BRACING', INDETERMINATE) -deck = getattr(IfcElementAssemblyTypeEnum, 'DECK', INDETERMINATE) -userdefined = getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElementAssemblyTypeEnum, 'NOTDEFINED', INDETERMINATE) +accessory_assembly = IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY +arch = IfcElementAssemblyTypeEnum.ARCH +beam_grid = IfcElementAssemblyTypeEnum.BEAM_GRID +braced_frame = IfcElementAssemblyTypeEnum.BRACED_FRAME +girder = IfcElementAssemblyTypeEnum.GIRDER +reinforcement_unit = IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT +rigid_frame = IfcElementAssemblyTypeEnum.RIGID_FRAME +slab_field = IfcElementAssemblyTypeEnum.SLAB_FIELD +truss = IfcElementAssemblyTypeEnum.TRUSS +abutment = IfcElementAssemblyTypeEnum.ABUTMENT +pier = IfcElementAssemblyTypeEnum.PIER +pylon = IfcElementAssemblyTypeEnum.PYLON +cross_bracing = IfcElementAssemblyTypeEnum.CROSS_BRACING +deck = IfcElementAssemblyTypeEnum.DECK +userdefined = IfcElementAssemblyTypeEnum.USERDEFINED +notdefined = IfcElementAssemblyTypeEnum.NOTDEFINED IfcElementCompositionEnum = enum_namespace() -complex = getattr(IfcElementCompositionEnum, 'COMPLEX', INDETERMINATE) -element = getattr(IfcElementCompositionEnum, 'ELEMENT', INDETERMINATE) -partial = getattr(IfcElementCompositionEnum, 'PARTIAL', INDETERMINATE) +complex = IfcElementCompositionEnum.COMPLEX +element = IfcElementCompositionEnum.ELEMENT +partial = IfcElementCompositionEnum.PARTIAL IfcEngineTypeEnum = enum_namespace() -externalcombustion = getattr(IfcEngineTypeEnum, 'EXTERNALCOMBUSTION', INDETERMINATE) -internalcombustion = getattr(IfcEngineTypeEnum, 'INTERNALCOMBUSTION', INDETERMINATE) -userdefined = getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEngineTypeEnum, 'NOTDEFINED', INDETERMINATE) +externalcombustion = IfcEngineTypeEnum.EXTERNALCOMBUSTION +internalcombustion = IfcEngineTypeEnum.INTERNALCOMBUSTION +userdefined = IfcEngineTypeEnum.USERDEFINED +notdefined = IfcEngineTypeEnum.NOTDEFINED IfcEvaporativeCoolerTypeEnum = enum_namespace() -directevaporativerandommediaaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER', INDETERMINATE) -directevaporativerigidmediaaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER', INDETERMINATE) -directevaporativeslingerspackagedaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER', INDETERMINATE) -directevaporativepackagedrotaryaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER', INDETERMINATE) -directevaporativeairwasher = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEAIRWASHER', INDETERMINATE) -indirectevaporativepackageaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEPACKAGEAIRCOOLER', INDETERMINATE) -indirectevaporativewetcoil = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEWETCOIL', INDETERMINATE) -indirectevaporativecoolingtowerorcoilcooler = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER', INDETERMINATE) -indirectdirectcombination = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTDIRECTCOMBINATION', INDETERMINATE) -userdefined = getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEvaporativeCoolerTypeEnum, 'NOTDEFINED', INDETERMINATE) +directevaporativerandommediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER +directevaporativerigidmediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER +directevaporativeslingerspackagedaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER +directevaporativepackagedrotaryaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER +directevaporativeairwasher = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER +indirectevaporativepackageaircooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER +indirectevaporativewetcoil = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL +indirectevaporativecoolingtowerorcoilcooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER +indirectdirectcombination = IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION +userdefined = IfcEvaporativeCoolerTypeEnum.USERDEFINED +notdefined = IfcEvaporativeCoolerTypeEnum.NOTDEFINED IfcEvaporatorTypeEnum = enum_namespace() -directexpansion = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSION', INDETERMINATE) -directexpansionshellandtube = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONSHELLANDTUBE', INDETERMINATE) -directexpansiontubeintube = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONTUBEINTUBE', INDETERMINATE) -directexpansionbrazedplate = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONBRAZEDPLATE', INDETERMINATE) -floodedshellandtube = getattr(IfcEvaporatorTypeEnum, 'FLOODEDSHELLANDTUBE', INDETERMINATE) -shellandcoil = getattr(IfcEvaporatorTypeEnum, 'SHELLANDCOIL', INDETERMINATE) -userdefined = getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEvaporatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +directexpansion = IfcEvaporatorTypeEnum.DIRECTEXPANSION +directexpansionshellandtube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE +directexpansiontubeintube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE +directexpansionbrazedplate = IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE +floodedshellandtube = IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE +shellandcoil = IfcEvaporatorTypeEnum.SHELLANDCOIL +userdefined = IfcEvaporatorTypeEnum.USERDEFINED +notdefined = IfcEvaporatorTypeEnum.NOTDEFINED IfcEventTriggerTypeEnum = enum_namespace() -eventrule = getattr(IfcEventTriggerTypeEnum, 'EVENTRULE', INDETERMINATE) -eventmessage = getattr(IfcEventTriggerTypeEnum, 'EVENTMESSAGE', INDETERMINATE) -eventtime = getattr(IfcEventTriggerTypeEnum, 'EVENTTIME', INDETERMINATE) -eventcomplex = getattr(IfcEventTriggerTypeEnum, 'EVENTCOMPLEX', INDETERMINATE) -userdefined = getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEventTriggerTypeEnum, 'NOTDEFINED', INDETERMINATE) +eventrule = IfcEventTriggerTypeEnum.EVENTRULE +eventmessage = IfcEventTriggerTypeEnum.EVENTMESSAGE +eventtime = IfcEventTriggerTypeEnum.EVENTTIME +eventcomplex = IfcEventTriggerTypeEnum.EVENTCOMPLEX +userdefined = IfcEventTriggerTypeEnum.USERDEFINED +notdefined = IfcEventTriggerTypeEnum.NOTDEFINED IfcEventTypeEnum = enum_namespace() -startevent = getattr(IfcEventTypeEnum, 'STARTEVENT', INDETERMINATE) -endevent = getattr(IfcEventTypeEnum, 'ENDEVENT', INDETERMINATE) -intermediateevent = getattr(IfcEventTypeEnum, 'INTERMEDIATEEVENT', INDETERMINATE) -userdefined = getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEventTypeEnum, 'NOTDEFINED', INDETERMINATE) +startevent = IfcEventTypeEnum.STARTEVENT +endevent = IfcEventTypeEnum.ENDEVENT +intermediateevent = IfcEventTypeEnum.INTERMEDIATEEVENT +userdefined = IfcEventTypeEnum.USERDEFINED +notdefined = IfcEventTypeEnum.NOTDEFINED IfcExternalSpatialElementTypeEnum = enum_namespace() -external = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL', INDETERMINATE) -external_earth = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_water = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_WATER', INDETERMINATE) -external_fire = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_FIRE', INDETERMINATE) -userdefined = getattr(IfcExternalSpatialElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcExternalSpatialElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcExternalSpatialElementTypeEnum.EXTERNAL +external_earth = IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH +external_water = IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER +external_fire = IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE +userdefined = IfcExternalSpatialElementTypeEnum.USERDEFINED +notdefined = IfcExternalSpatialElementTypeEnum.NOTDEFINED IfcFanTypeEnum = enum_namespace() -centrifugalforwardcurved = getattr(IfcFanTypeEnum, 'CENTRIFUGALFORWARDCURVED', INDETERMINATE) -centrifugalradial = getattr(IfcFanTypeEnum, 'CENTRIFUGALRADIAL', INDETERMINATE) -centrifugalbackwardinclinedcurved = getattr(IfcFanTypeEnum, 'CENTRIFUGALBACKWARDINCLINEDCURVED', INDETERMINATE) -centrifugalairfoil = getattr(IfcFanTypeEnum, 'CENTRIFUGALAIRFOIL', INDETERMINATE) -tubeaxial = getattr(IfcFanTypeEnum, 'TUBEAXIAL', INDETERMINATE) -vaneaxial = getattr(IfcFanTypeEnum, 'VANEAXIAL', INDETERMINATE) -propelloraxial = getattr(IfcFanTypeEnum, 'PROPELLORAXIAL', INDETERMINATE) -userdefined = getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFanTypeEnum, 'NOTDEFINED', INDETERMINATE) +centrifugalforwardcurved = IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED +centrifugalradial = IfcFanTypeEnum.CENTRIFUGALRADIAL +centrifugalbackwardinclinedcurved = IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED +centrifugalairfoil = IfcFanTypeEnum.CENTRIFUGALAIRFOIL +tubeaxial = IfcFanTypeEnum.TUBEAXIAL +vaneaxial = IfcFanTypeEnum.VANEAXIAL +propelloraxial = IfcFanTypeEnum.PROPELLORAXIAL +userdefined = IfcFanTypeEnum.USERDEFINED +notdefined = IfcFanTypeEnum.NOTDEFINED IfcFastenerTypeEnum = enum_namespace() -glue = getattr(IfcFastenerTypeEnum, 'GLUE', INDETERMINATE) -mortar = getattr(IfcFastenerTypeEnum, 'MORTAR', INDETERMINATE) -weld = getattr(IfcFastenerTypeEnum, 'WELD', INDETERMINATE) -userdefined = getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +glue = IfcFastenerTypeEnum.GLUE +mortar = IfcFastenerTypeEnum.MORTAR +weld = IfcFastenerTypeEnum.WELD +userdefined = IfcFastenerTypeEnum.USERDEFINED +notdefined = IfcFastenerTypeEnum.NOTDEFINED IfcFilterTypeEnum = enum_namespace() -airparticlefilter = getattr(IfcFilterTypeEnum, 'AIRPARTICLEFILTER', INDETERMINATE) -compressedairfilter = getattr(IfcFilterTypeEnum, 'COMPRESSEDAIRFILTER', INDETERMINATE) -odorfilter = getattr(IfcFilterTypeEnum, 'ODORFILTER', INDETERMINATE) -oilfilter = getattr(IfcFilterTypeEnum, 'OILFILTER', INDETERMINATE) -strainer = getattr(IfcFilterTypeEnum, 'STRAINER', INDETERMINATE) -waterfilter = getattr(IfcFilterTypeEnum, 'WATERFILTER', INDETERMINATE) -userdefined = getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFilterTypeEnum, 'NOTDEFINED', INDETERMINATE) +airparticlefilter = IfcFilterTypeEnum.AIRPARTICLEFILTER +compressedairfilter = IfcFilterTypeEnum.COMPRESSEDAIRFILTER +odorfilter = IfcFilterTypeEnum.ODORFILTER +oilfilter = IfcFilterTypeEnum.OILFILTER +strainer = IfcFilterTypeEnum.STRAINER +waterfilter = IfcFilterTypeEnum.WATERFILTER +userdefined = IfcFilterTypeEnum.USERDEFINED +notdefined = IfcFilterTypeEnum.NOTDEFINED IfcFireSuppressionTerminalTypeEnum = enum_namespace() -breechinginlet = getattr(IfcFireSuppressionTerminalTypeEnum, 'BREECHINGINLET', INDETERMINATE) -firehydrant = getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREHYDRANT', INDETERMINATE) -hosereel = getattr(IfcFireSuppressionTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -sprinkler = getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLER', INDETERMINATE) -sprinklerdeflector = getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLERDEFLECTOR', INDETERMINATE) -userdefined = getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFireSuppressionTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +breechinginlet = IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET +firehydrant = IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT +hosereel = IfcFireSuppressionTerminalTypeEnum.HOSEREEL +sprinkler = IfcFireSuppressionTerminalTypeEnum.SPRINKLER +sprinklerdeflector = IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR +userdefined = IfcFireSuppressionTerminalTypeEnum.USERDEFINED +notdefined = IfcFireSuppressionTerminalTypeEnum.NOTDEFINED IfcFlowDirectionEnum = enum_namespace() -source = getattr(IfcFlowDirectionEnum, 'SOURCE', INDETERMINATE) -sink = getattr(IfcFlowDirectionEnum, 'SINK', INDETERMINATE) -sourceandsink = getattr(IfcFlowDirectionEnum, 'SOURCEANDSINK', INDETERMINATE) -notdefined = getattr(IfcFlowDirectionEnum, 'NOTDEFINED', INDETERMINATE) +source = IfcFlowDirectionEnum.SOURCE +sink = IfcFlowDirectionEnum.SINK +sourceandsink = IfcFlowDirectionEnum.SOURCEANDSINK +notdefined = IfcFlowDirectionEnum.NOTDEFINED IfcFlowInstrumentTypeEnum = enum_namespace() -pressuregauge = getattr(IfcFlowInstrumentTypeEnum, 'PRESSUREGAUGE', INDETERMINATE) -thermometer = getattr(IfcFlowInstrumentTypeEnum, 'THERMOMETER', INDETERMINATE) -ammeter = getattr(IfcFlowInstrumentTypeEnum, 'AMMETER', INDETERMINATE) -frequencymeter = getattr(IfcFlowInstrumentTypeEnum, 'FREQUENCYMETER', INDETERMINATE) -powerfactormeter = getattr(IfcFlowInstrumentTypeEnum, 'POWERFACTORMETER', INDETERMINATE) -phaseanglemeter = getattr(IfcFlowInstrumentTypeEnum, 'PHASEANGLEMETER', INDETERMINATE) -voltmeter_peak = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_PEAK', INDETERMINATE) -voltmeter_rms = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_RMS', INDETERMINATE) -userdefined = getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFlowInstrumentTypeEnum, 'NOTDEFINED', INDETERMINATE) +pressuregauge = IfcFlowInstrumentTypeEnum.PRESSUREGAUGE +thermometer = IfcFlowInstrumentTypeEnum.THERMOMETER +ammeter = IfcFlowInstrumentTypeEnum.AMMETER +frequencymeter = IfcFlowInstrumentTypeEnum.FREQUENCYMETER +powerfactormeter = IfcFlowInstrumentTypeEnum.POWERFACTORMETER +phaseanglemeter = IfcFlowInstrumentTypeEnum.PHASEANGLEMETER +voltmeter_peak = IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK +voltmeter_rms = IfcFlowInstrumentTypeEnum.VOLTMETER_RMS +userdefined = IfcFlowInstrumentTypeEnum.USERDEFINED +notdefined = IfcFlowInstrumentTypeEnum.NOTDEFINED IfcFlowMeterTypeEnum = enum_namespace() -energymeter = getattr(IfcFlowMeterTypeEnum, 'ENERGYMETER', INDETERMINATE) -gasmeter = getattr(IfcFlowMeterTypeEnum, 'GASMETER', INDETERMINATE) -oilmeter = getattr(IfcFlowMeterTypeEnum, 'OILMETER', INDETERMINATE) -watermeter = getattr(IfcFlowMeterTypeEnum, 'WATERMETER', INDETERMINATE) -userdefined = getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFlowMeterTypeEnum, 'NOTDEFINED', INDETERMINATE) +energymeter = IfcFlowMeterTypeEnum.ENERGYMETER +gasmeter = IfcFlowMeterTypeEnum.GASMETER +oilmeter = IfcFlowMeterTypeEnum.OILMETER +watermeter = IfcFlowMeterTypeEnum.WATERMETER +userdefined = IfcFlowMeterTypeEnum.USERDEFINED +notdefined = IfcFlowMeterTypeEnum.NOTDEFINED IfcFootingTypeEnum = enum_namespace() -caisson_foundation = getattr(IfcFootingTypeEnum, 'CAISSON_FOUNDATION', INDETERMINATE) -footing_beam = getattr(IfcFootingTypeEnum, 'FOOTING_BEAM', INDETERMINATE) -pad_footing = getattr(IfcFootingTypeEnum, 'PAD_FOOTING', INDETERMINATE) -pile_cap = getattr(IfcFootingTypeEnum, 'PILE_CAP', INDETERMINATE) -strip_footing = getattr(IfcFootingTypeEnum, 'STRIP_FOOTING', INDETERMINATE) -userdefined = getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFootingTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson_foundation = IfcFootingTypeEnum.CAISSON_FOUNDATION +footing_beam = IfcFootingTypeEnum.FOOTING_BEAM +pad_footing = IfcFootingTypeEnum.PAD_FOOTING +pile_cap = IfcFootingTypeEnum.PILE_CAP +strip_footing = IfcFootingTypeEnum.STRIP_FOOTING +userdefined = IfcFootingTypeEnum.USERDEFINED +notdefined = IfcFootingTypeEnum.NOTDEFINED IfcFurnitureTypeEnum = enum_namespace() -chair = getattr(IfcFurnitureTypeEnum, 'CHAIR', INDETERMINATE) -table = getattr(IfcFurnitureTypeEnum, 'TABLE', INDETERMINATE) -desk = getattr(IfcFurnitureTypeEnum, 'DESK', INDETERMINATE) -bed = getattr(IfcFurnitureTypeEnum, 'BED', INDETERMINATE) -filecabinet = getattr(IfcFurnitureTypeEnum, 'FILECABINET', INDETERMINATE) -shelf = getattr(IfcFurnitureTypeEnum, 'SHELF', INDETERMINATE) -sofa = getattr(IfcFurnitureTypeEnum, 'SOFA', INDETERMINATE) -userdefined = getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFurnitureTypeEnum, 'NOTDEFINED', INDETERMINATE) +chair = IfcFurnitureTypeEnum.CHAIR +table = IfcFurnitureTypeEnum.TABLE +desk = IfcFurnitureTypeEnum.DESK +bed = IfcFurnitureTypeEnum.BED +filecabinet = IfcFurnitureTypeEnum.FILECABINET +shelf = IfcFurnitureTypeEnum.SHELF +sofa = IfcFurnitureTypeEnum.SOFA +userdefined = IfcFurnitureTypeEnum.USERDEFINED +notdefined = IfcFurnitureTypeEnum.NOTDEFINED IfcGeographicElementTypeEnum = enum_namespace() -terrain = getattr(IfcGeographicElementTypeEnum, 'TERRAIN', INDETERMINATE) -soil_boring_point = getattr(IfcGeographicElementTypeEnum, 'SOIL_BORING_POINT', INDETERMINATE) -userdefined = getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGeographicElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +terrain = IfcGeographicElementTypeEnum.TERRAIN +soil_boring_point = IfcGeographicElementTypeEnum.SOIL_BORING_POINT +userdefined = IfcGeographicElementTypeEnum.USERDEFINED +notdefined = IfcGeographicElementTypeEnum.NOTDEFINED IfcGeometricProjectionEnum = enum_namespace() -graph_view = getattr(IfcGeometricProjectionEnum, 'GRAPH_VIEW', INDETERMINATE) -sketch_view = getattr(IfcGeometricProjectionEnum, 'SKETCH_VIEW', INDETERMINATE) -model_view = getattr(IfcGeometricProjectionEnum, 'MODEL_VIEW', INDETERMINATE) -plan_view = getattr(IfcGeometricProjectionEnum, 'PLAN_VIEW', INDETERMINATE) -reflected_plan_view = getattr(IfcGeometricProjectionEnum, 'REFLECTED_PLAN_VIEW', INDETERMINATE) -section_view = getattr(IfcGeometricProjectionEnum, 'SECTION_VIEW', INDETERMINATE) -elevation_view = getattr(IfcGeometricProjectionEnum, 'ELEVATION_VIEW', INDETERMINATE) -userdefined = getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGeometricProjectionEnum, 'NOTDEFINED', INDETERMINATE) +graph_view = IfcGeometricProjectionEnum.GRAPH_VIEW +sketch_view = IfcGeometricProjectionEnum.SKETCH_VIEW +model_view = IfcGeometricProjectionEnum.MODEL_VIEW +plan_view = IfcGeometricProjectionEnum.PLAN_VIEW +reflected_plan_view = IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW +section_view = IfcGeometricProjectionEnum.SECTION_VIEW +elevation_view = IfcGeometricProjectionEnum.ELEVATION_VIEW +userdefined = IfcGeometricProjectionEnum.USERDEFINED +notdefined = IfcGeometricProjectionEnum.NOTDEFINED IfcGlobalOrLocalEnum = enum_namespace() -global_coords = getattr(IfcGlobalOrLocalEnum, 'GLOBAL_COORDS', INDETERMINATE) -local_coords = getattr(IfcGlobalOrLocalEnum, 'LOCAL_COORDS', INDETERMINATE) +global_coords = IfcGlobalOrLocalEnum.GLOBAL_COORDS +local_coords = IfcGlobalOrLocalEnum.LOCAL_COORDS IfcGridTypeEnum = enum_namespace() -rectangular = getattr(IfcGridTypeEnum, 'RECTANGULAR', INDETERMINATE) -radial = getattr(IfcGridTypeEnum, 'RADIAL', INDETERMINATE) -triangular = getattr(IfcGridTypeEnum, 'TRIANGULAR', INDETERMINATE) -irregular = getattr(IfcGridTypeEnum, 'IRREGULAR', INDETERMINATE) -userdefined = getattr(IfcGridTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGridTypeEnum, 'NOTDEFINED', INDETERMINATE) +rectangular = IfcGridTypeEnum.RECTANGULAR +radial = IfcGridTypeEnum.RADIAL +triangular = IfcGridTypeEnum.TRIANGULAR +irregular = IfcGridTypeEnum.IRREGULAR +userdefined = IfcGridTypeEnum.USERDEFINED +notdefined = IfcGridTypeEnum.NOTDEFINED IfcHeatExchangerTypeEnum = enum_namespace() -plate = getattr(IfcHeatExchangerTypeEnum, 'PLATE', INDETERMINATE) -shellandtube = getattr(IfcHeatExchangerTypeEnum, 'SHELLANDTUBE', INDETERMINATE) -userdefined = getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcHeatExchangerTypeEnum, 'NOTDEFINED', INDETERMINATE) +plate = IfcHeatExchangerTypeEnum.PLATE +shellandtube = IfcHeatExchangerTypeEnum.SHELLANDTUBE +userdefined = IfcHeatExchangerTypeEnum.USERDEFINED +notdefined = IfcHeatExchangerTypeEnum.NOTDEFINED IfcHumidifierTypeEnum = enum_namespace() -steaminjection = getattr(IfcHumidifierTypeEnum, 'STEAMINJECTION', INDETERMINATE) -adiabaticairwasher = getattr(IfcHumidifierTypeEnum, 'ADIABATICAIRWASHER', INDETERMINATE) -adiabaticpan = getattr(IfcHumidifierTypeEnum, 'ADIABATICPAN', INDETERMINATE) -adiabaticwettedelement = getattr(IfcHumidifierTypeEnum, 'ADIABATICWETTEDELEMENT', INDETERMINATE) -adiabaticatomizing = getattr(IfcHumidifierTypeEnum, 'ADIABATICATOMIZING', INDETERMINATE) -adiabaticultrasonic = getattr(IfcHumidifierTypeEnum, 'ADIABATICULTRASONIC', INDETERMINATE) -adiabaticrigidmedia = getattr(IfcHumidifierTypeEnum, 'ADIABATICRIGIDMEDIA', INDETERMINATE) -adiabaticcompressedairnozzle = getattr(IfcHumidifierTypeEnum, 'ADIABATICCOMPRESSEDAIRNOZZLE', INDETERMINATE) -assistedelectric = getattr(IfcHumidifierTypeEnum, 'ASSISTEDELECTRIC', INDETERMINATE) -assistednaturalgas = getattr(IfcHumidifierTypeEnum, 'ASSISTEDNATURALGAS', INDETERMINATE) -assistedpropane = getattr(IfcHumidifierTypeEnum, 'ASSISTEDPROPANE', INDETERMINATE) -assistedbutane = getattr(IfcHumidifierTypeEnum, 'ASSISTEDBUTANE', INDETERMINATE) -assistedsteam = getattr(IfcHumidifierTypeEnum, 'ASSISTEDSTEAM', INDETERMINATE) -userdefined = getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcHumidifierTypeEnum, 'NOTDEFINED', INDETERMINATE) +steaminjection = IfcHumidifierTypeEnum.STEAMINJECTION +adiabaticairwasher = IfcHumidifierTypeEnum.ADIABATICAIRWASHER +adiabaticpan = IfcHumidifierTypeEnum.ADIABATICPAN +adiabaticwettedelement = IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT +adiabaticatomizing = IfcHumidifierTypeEnum.ADIABATICATOMIZING +adiabaticultrasonic = IfcHumidifierTypeEnum.ADIABATICULTRASONIC +adiabaticrigidmedia = IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA +adiabaticcompressedairnozzle = IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE +assistedelectric = IfcHumidifierTypeEnum.ASSISTEDELECTRIC +assistednaturalgas = IfcHumidifierTypeEnum.ASSISTEDNATURALGAS +assistedpropane = IfcHumidifierTypeEnum.ASSISTEDPROPANE +assistedbutane = IfcHumidifierTypeEnum.ASSISTEDBUTANE +assistedsteam = IfcHumidifierTypeEnum.ASSISTEDSTEAM +userdefined = IfcHumidifierTypeEnum.USERDEFINED +notdefined = IfcHumidifierTypeEnum.NOTDEFINED IfcInterceptorTypeEnum = enum_namespace() -cyclonic = getattr(IfcInterceptorTypeEnum, 'CYCLONIC', INDETERMINATE) -grease = getattr(IfcInterceptorTypeEnum, 'GREASE', INDETERMINATE) -oil = getattr(IfcInterceptorTypeEnum, 'OIL', INDETERMINATE) -petrol = getattr(IfcInterceptorTypeEnum, 'PETROL', INDETERMINATE) -userdefined = getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcInterceptorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cyclonic = IfcInterceptorTypeEnum.CYCLONIC +grease = IfcInterceptorTypeEnum.GREASE +oil = IfcInterceptorTypeEnum.OIL +petrol = IfcInterceptorTypeEnum.PETROL +userdefined = IfcInterceptorTypeEnum.USERDEFINED +notdefined = IfcInterceptorTypeEnum.NOTDEFINED IfcInternalOrExternalEnum = enum_namespace() -internal = getattr(IfcInternalOrExternalEnum, 'INTERNAL', INDETERMINATE) -external = getattr(IfcInternalOrExternalEnum, 'EXTERNAL', INDETERMINATE) -external_earth = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_water = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_WATER', INDETERMINATE) -external_fire = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_FIRE', INDETERMINATE) -notdefined = getattr(IfcInternalOrExternalEnum, 'NOTDEFINED', INDETERMINATE) +internal = IfcInternalOrExternalEnum.INTERNAL +external = IfcInternalOrExternalEnum.EXTERNAL +external_earth = IfcInternalOrExternalEnum.EXTERNAL_EARTH +external_water = IfcInternalOrExternalEnum.EXTERNAL_WATER +external_fire = IfcInternalOrExternalEnum.EXTERNAL_FIRE +notdefined = IfcInternalOrExternalEnum.NOTDEFINED IfcInventoryTypeEnum = enum_namespace() -assetinventory = getattr(IfcInventoryTypeEnum, 'ASSETINVENTORY', INDETERMINATE) -spaceinventory = getattr(IfcInventoryTypeEnum, 'SPACEINVENTORY', INDETERMINATE) -furnitureinventory = getattr(IfcInventoryTypeEnum, 'FURNITUREINVENTORY', INDETERMINATE) -userdefined = getattr(IfcInventoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcInventoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +assetinventory = IfcInventoryTypeEnum.ASSETINVENTORY +spaceinventory = IfcInventoryTypeEnum.SPACEINVENTORY +furnitureinventory = IfcInventoryTypeEnum.FURNITUREINVENTORY +userdefined = IfcInventoryTypeEnum.USERDEFINED +notdefined = IfcInventoryTypeEnum.NOTDEFINED IfcJunctionBoxTypeEnum = enum_namespace() -data = getattr(IfcJunctionBoxTypeEnum, 'DATA', INDETERMINATE) -power = getattr(IfcJunctionBoxTypeEnum, 'POWER', INDETERMINATE) -userdefined = getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcJunctionBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +data = IfcJunctionBoxTypeEnum.DATA +power = IfcJunctionBoxTypeEnum.POWER +userdefined = IfcJunctionBoxTypeEnum.USERDEFINED +notdefined = IfcJunctionBoxTypeEnum.NOTDEFINED IfcKnotType = enum_namespace() -uniform_knots = getattr(IfcKnotType, 'UNIFORM_KNOTS', INDETERMINATE) -quasi_uniform_knots = getattr(IfcKnotType, 'QUASI_UNIFORM_KNOTS', INDETERMINATE) -piecewise_bezier_knots = getattr(IfcKnotType, 'PIECEWISE_BEZIER_KNOTS', INDETERMINATE) -unspecified = getattr(IfcKnotType, 'UNSPECIFIED', INDETERMINATE) +uniform_knots = IfcKnotType.UNIFORM_KNOTS +quasi_uniform_knots = IfcKnotType.QUASI_UNIFORM_KNOTS +piecewise_bezier_knots = IfcKnotType.PIECEWISE_BEZIER_KNOTS +unspecified = IfcKnotType.UNSPECIFIED IfcLaborResourceTypeEnum = enum_namespace() -administration = getattr(IfcLaborResourceTypeEnum, 'ADMINISTRATION', INDETERMINATE) -carpentry = getattr(IfcLaborResourceTypeEnum, 'CARPENTRY', INDETERMINATE) -cleaning = getattr(IfcLaborResourceTypeEnum, 'CLEANING', INDETERMINATE) -concrete = getattr(IfcLaborResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = getattr(IfcLaborResourceTypeEnum, 'DRYWALL', INDETERMINATE) -electric = getattr(IfcLaborResourceTypeEnum, 'ELECTRIC', INDETERMINATE) -finishing = getattr(IfcLaborResourceTypeEnum, 'FINISHING', INDETERMINATE) -flooring = getattr(IfcLaborResourceTypeEnum, 'FLOORING', INDETERMINATE) -general = getattr(IfcLaborResourceTypeEnum, 'GENERAL', INDETERMINATE) -hvac = getattr(IfcLaborResourceTypeEnum, 'HVAC', INDETERMINATE) -landscaping = getattr(IfcLaborResourceTypeEnum, 'LANDSCAPING', INDETERMINATE) -masonry = getattr(IfcLaborResourceTypeEnum, 'MASONRY', INDETERMINATE) -painting = getattr(IfcLaborResourceTypeEnum, 'PAINTING', INDETERMINATE) -paving = getattr(IfcLaborResourceTypeEnum, 'PAVING', INDETERMINATE) -plumbing = getattr(IfcLaborResourceTypeEnum, 'PLUMBING', INDETERMINATE) -roofing = getattr(IfcLaborResourceTypeEnum, 'ROOFING', INDETERMINATE) -sitegrading = getattr(IfcLaborResourceTypeEnum, 'SITEGRADING', INDETERMINATE) -steelwork = getattr(IfcLaborResourceTypeEnum, 'STEELWORK', INDETERMINATE) -surveying = getattr(IfcLaborResourceTypeEnum, 'SURVEYING', INDETERMINATE) -userdefined = getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLaborResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +administration = IfcLaborResourceTypeEnum.ADMINISTRATION +carpentry = IfcLaborResourceTypeEnum.CARPENTRY +cleaning = IfcLaborResourceTypeEnum.CLEANING +concrete = IfcLaborResourceTypeEnum.CONCRETE +drywall = IfcLaborResourceTypeEnum.DRYWALL +electric = IfcLaborResourceTypeEnum.ELECTRIC +finishing = IfcLaborResourceTypeEnum.FINISHING +flooring = IfcLaborResourceTypeEnum.FLOORING +general = IfcLaborResourceTypeEnum.GENERAL +hvac = IfcLaborResourceTypeEnum.HVAC +landscaping = IfcLaborResourceTypeEnum.LANDSCAPING +masonry = IfcLaborResourceTypeEnum.MASONRY +painting = IfcLaborResourceTypeEnum.PAINTING +paving = IfcLaborResourceTypeEnum.PAVING +plumbing = IfcLaborResourceTypeEnum.PLUMBING +roofing = IfcLaborResourceTypeEnum.ROOFING +sitegrading = IfcLaborResourceTypeEnum.SITEGRADING +steelwork = IfcLaborResourceTypeEnum.STEELWORK +surveying = IfcLaborResourceTypeEnum.SURVEYING +userdefined = IfcLaborResourceTypeEnum.USERDEFINED +notdefined = IfcLaborResourceTypeEnum.NOTDEFINED IfcLampTypeEnum = enum_namespace() -compactfluorescent = getattr(IfcLampTypeEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = getattr(IfcLampTypeEnum, 'FLUORESCENT', INDETERMINATE) -halogen = getattr(IfcLampTypeEnum, 'HALOGEN', INDETERMINATE) -highpressuremercury = getattr(IfcLampTypeEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = getattr(IfcLampTypeEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -led = getattr(IfcLampTypeEnum, 'LED', INDETERMINATE) -metalhalide = getattr(IfcLampTypeEnum, 'METALHALIDE', INDETERMINATE) -oled = getattr(IfcLampTypeEnum, 'OLED', INDETERMINATE) -tungstenfilament = getattr(IfcLampTypeEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -userdefined = getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLampTypeEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLampTypeEnum.COMPACTFLUORESCENT +fluorescent = IfcLampTypeEnum.FLUORESCENT +halogen = IfcLampTypeEnum.HALOGEN +highpressuremercury = IfcLampTypeEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLampTypeEnum.HIGHPRESSURESODIUM +led = IfcLampTypeEnum.LED +metalhalide = IfcLampTypeEnum.METALHALIDE +oled = IfcLampTypeEnum.OLED +tungstenfilament = IfcLampTypeEnum.TUNGSTENFILAMENT +userdefined = IfcLampTypeEnum.USERDEFINED +notdefined = IfcLampTypeEnum.NOTDEFINED IfcLayerSetDirectionEnum = enum_namespace() -axis1 = getattr(IfcLayerSetDirectionEnum, 'AXIS1', INDETERMINATE) -axis2 = getattr(IfcLayerSetDirectionEnum, 'AXIS2', INDETERMINATE) -axis3 = getattr(IfcLayerSetDirectionEnum, 'AXIS3', INDETERMINATE) +axis1 = IfcLayerSetDirectionEnum.AXIS1 +axis2 = IfcLayerSetDirectionEnum.AXIS2 +axis3 = IfcLayerSetDirectionEnum.AXIS3 IfcLightDistributionCurveEnum = enum_namespace() -type_a = getattr(IfcLightDistributionCurveEnum, 'TYPE_A', INDETERMINATE) -type_b = getattr(IfcLightDistributionCurveEnum, 'TYPE_B', INDETERMINATE) -type_c = getattr(IfcLightDistributionCurveEnum, 'TYPE_C', INDETERMINATE) -notdefined = getattr(IfcLightDistributionCurveEnum, 'NOTDEFINED', INDETERMINATE) +type_a = IfcLightDistributionCurveEnum.TYPE_A +type_b = IfcLightDistributionCurveEnum.TYPE_B +type_c = IfcLightDistributionCurveEnum.TYPE_C +notdefined = IfcLightDistributionCurveEnum.NOTDEFINED IfcLightEmissionSourceEnum = enum_namespace() -compactfluorescent = getattr(IfcLightEmissionSourceEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = getattr(IfcLightEmissionSourceEnum, 'FLUORESCENT', INDETERMINATE) -highpressuremercury = getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -lightemittingdiode = getattr(IfcLightEmissionSourceEnum, 'LIGHTEMITTINGDIODE', INDETERMINATE) -lowpressuresodium = getattr(IfcLightEmissionSourceEnum, 'LOWPRESSURESODIUM', INDETERMINATE) -lowvoltagehalogen = getattr(IfcLightEmissionSourceEnum, 'LOWVOLTAGEHALOGEN', INDETERMINATE) -mainvoltagehalogen = getattr(IfcLightEmissionSourceEnum, 'MAINVOLTAGEHALOGEN', INDETERMINATE) -metalhalide = getattr(IfcLightEmissionSourceEnum, 'METALHALIDE', INDETERMINATE) -tungstenfilament = getattr(IfcLightEmissionSourceEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -notdefined = getattr(IfcLightEmissionSourceEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLightEmissionSourceEnum.COMPACTFLUORESCENT +fluorescent = IfcLightEmissionSourceEnum.FLUORESCENT +highpressuremercury = IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM +lightemittingdiode = IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE +lowpressuresodium = IfcLightEmissionSourceEnum.LOWPRESSURESODIUM +lowvoltagehalogen = IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN +mainvoltagehalogen = IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN +metalhalide = IfcLightEmissionSourceEnum.METALHALIDE +tungstenfilament = IfcLightEmissionSourceEnum.TUNGSTENFILAMENT +notdefined = IfcLightEmissionSourceEnum.NOTDEFINED IfcLightFixtureTypeEnum = enum_namespace() -pointsource = getattr(IfcLightFixtureTypeEnum, 'POINTSOURCE', INDETERMINATE) -directionsource = getattr(IfcLightFixtureTypeEnum, 'DIRECTIONSOURCE', INDETERMINATE) -securitylighting = getattr(IfcLightFixtureTypeEnum, 'SECURITYLIGHTING', INDETERMINATE) -userdefined = getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLightFixtureTypeEnum, 'NOTDEFINED', INDETERMINATE) +pointsource = IfcLightFixtureTypeEnum.POINTSOURCE +directionsource = IfcLightFixtureTypeEnum.DIRECTIONSOURCE +securitylighting = IfcLightFixtureTypeEnum.SECURITYLIGHTING +userdefined = IfcLightFixtureTypeEnum.USERDEFINED +notdefined = IfcLightFixtureTypeEnum.NOTDEFINED IfcLoadGroupTypeEnum = enum_namespace() -load_group = getattr(IfcLoadGroupTypeEnum, 'LOAD_GROUP', INDETERMINATE) -load_case = getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE) -load_combination = getattr(IfcLoadGroupTypeEnum, 'LOAD_COMBINATION', INDETERMINATE) -userdefined = getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLoadGroupTypeEnum, 'NOTDEFINED', INDETERMINATE) +load_group = IfcLoadGroupTypeEnum.LOAD_GROUP +load_case = IfcLoadGroupTypeEnum.LOAD_CASE +load_combination = IfcLoadGroupTypeEnum.LOAD_COMBINATION +userdefined = IfcLoadGroupTypeEnum.USERDEFINED +notdefined = IfcLoadGroupTypeEnum.NOTDEFINED IfcLogicalOperatorEnum = enum_namespace() -logicaland = getattr(IfcLogicalOperatorEnum, 'LOGICALAND', INDETERMINATE) -logicalor = getattr(IfcLogicalOperatorEnum, 'LOGICALOR', INDETERMINATE) -logicalxor = getattr(IfcLogicalOperatorEnum, 'LOGICALXOR', INDETERMINATE) -logicalnotand = getattr(IfcLogicalOperatorEnum, 'LOGICALNOTAND', INDETERMINATE) -logicalnotor = getattr(IfcLogicalOperatorEnum, 'LOGICALNOTOR', INDETERMINATE) +logicaland = IfcLogicalOperatorEnum.LOGICALAND +logicalor = IfcLogicalOperatorEnum.LOGICALOR +logicalxor = IfcLogicalOperatorEnum.LOGICALXOR +logicalnotand = IfcLogicalOperatorEnum.LOGICALNOTAND +logicalnotor = IfcLogicalOperatorEnum.LOGICALNOTOR IfcMechanicalFastenerTypeEnum = enum_namespace() -anchorbolt = getattr(IfcMechanicalFastenerTypeEnum, 'ANCHORBOLT', INDETERMINATE) -bolt = getattr(IfcMechanicalFastenerTypeEnum, 'BOLT', INDETERMINATE) -dowel = getattr(IfcMechanicalFastenerTypeEnum, 'DOWEL', INDETERMINATE) -nail = getattr(IfcMechanicalFastenerTypeEnum, 'NAIL', INDETERMINATE) -nailplate = getattr(IfcMechanicalFastenerTypeEnum, 'NAILPLATE', INDETERMINATE) -rivet = getattr(IfcMechanicalFastenerTypeEnum, 'RIVET', INDETERMINATE) -screw = getattr(IfcMechanicalFastenerTypeEnum, 'SCREW', INDETERMINATE) -shearconnector = getattr(IfcMechanicalFastenerTypeEnum, 'SHEARCONNECTOR', INDETERMINATE) -staple = getattr(IfcMechanicalFastenerTypeEnum, 'STAPLE', INDETERMINATE) -studshearconnector = getattr(IfcMechanicalFastenerTypeEnum, 'STUDSHEARCONNECTOR', INDETERMINATE) -coupler = getattr(IfcMechanicalFastenerTypeEnum, 'COUPLER', INDETERMINATE) -userdefined = getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMechanicalFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorbolt = IfcMechanicalFastenerTypeEnum.ANCHORBOLT +bolt = IfcMechanicalFastenerTypeEnum.BOLT +dowel = IfcMechanicalFastenerTypeEnum.DOWEL +nail = IfcMechanicalFastenerTypeEnum.NAIL +nailplate = IfcMechanicalFastenerTypeEnum.NAILPLATE +rivet = IfcMechanicalFastenerTypeEnum.RIVET +screw = IfcMechanicalFastenerTypeEnum.SCREW +shearconnector = IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR +staple = IfcMechanicalFastenerTypeEnum.STAPLE +studshearconnector = IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR +coupler = IfcMechanicalFastenerTypeEnum.COUPLER +userdefined = IfcMechanicalFastenerTypeEnum.USERDEFINED +notdefined = IfcMechanicalFastenerTypeEnum.NOTDEFINED IfcMedicalDeviceTypeEnum = enum_namespace() -airstation = getattr(IfcMedicalDeviceTypeEnum, 'AIRSTATION', INDETERMINATE) -feedairunit = getattr(IfcMedicalDeviceTypeEnum, 'FEEDAIRUNIT', INDETERMINATE) -oxygengenerator = getattr(IfcMedicalDeviceTypeEnum, 'OXYGENGENERATOR', INDETERMINATE) -oxygenplant = getattr(IfcMedicalDeviceTypeEnum, 'OXYGENPLANT', INDETERMINATE) -vacuumstation = getattr(IfcMedicalDeviceTypeEnum, 'VACUUMSTATION', INDETERMINATE) -userdefined = getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMedicalDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +airstation = IfcMedicalDeviceTypeEnum.AIRSTATION +feedairunit = IfcMedicalDeviceTypeEnum.FEEDAIRUNIT +oxygengenerator = IfcMedicalDeviceTypeEnum.OXYGENGENERATOR +oxygenplant = IfcMedicalDeviceTypeEnum.OXYGENPLANT +vacuumstation = IfcMedicalDeviceTypeEnum.VACUUMSTATION +userdefined = IfcMedicalDeviceTypeEnum.USERDEFINED +notdefined = IfcMedicalDeviceTypeEnum.NOTDEFINED IfcMemberTypeEnum = enum_namespace() -brace = getattr(IfcMemberTypeEnum, 'BRACE', INDETERMINATE) -chord = getattr(IfcMemberTypeEnum, 'CHORD', INDETERMINATE) -collar = getattr(IfcMemberTypeEnum, 'COLLAR', INDETERMINATE) -member = getattr(IfcMemberTypeEnum, 'MEMBER', INDETERMINATE) -mullion = getattr(IfcMemberTypeEnum, 'MULLION', INDETERMINATE) -plate = getattr(IfcMemberTypeEnum, 'PLATE', INDETERMINATE) -post = getattr(IfcMemberTypeEnum, 'POST', INDETERMINATE) -purlin = getattr(IfcMemberTypeEnum, 'PURLIN', INDETERMINATE) -rafter = getattr(IfcMemberTypeEnum, 'RAFTER', INDETERMINATE) -stringer = getattr(IfcMemberTypeEnum, 'STRINGER', INDETERMINATE) -strut = getattr(IfcMemberTypeEnum, 'STRUT', INDETERMINATE) -stud = getattr(IfcMemberTypeEnum, 'STUD', INDETERMINATE) -stiffening_rib = getattr(IfcMemberTypeEnum, 'STIFFENING_RIB', INDETERMINATE) -arch_segment = getattr(IfcMemberTypeEnum, 'ARCH_SEGMENT', INDETERMINATE) -suspension_cable = getattr(IfcMemberTypeEnum, 'SUSPENSION_CABLE', INDETERMINATE) -suspender = getattr(IfcMemberTypeEnum, 'SUSPENDER', INDETERMINATE) -stay_cable = getattr(IfcMemberTypeEnum, 'STAY_CABLE', INDETERMINATE) -userdefined = getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +brace = IfcMemberTypeEnum.BRACE +chord = IfcMemberTypeEnum.CHORD +collar = IfcMemberTypeEnum.COLLAR +member = IfcMemberTypeEnum.MEMBER +mullion = IfcMemberTypeEnum.MULLION +plate = IfcMemberTypeEnum.PLATE +post = IfcMemberTypeEnum.POST +purlin = IfcMemberTypeEnum.PURLIN +rafter = IfcMemberTypeEnum.RAFTER +stringer = IfcMemberTypeEnum.STRINGER +strut = IfcMemberTypeEnum.STRUT +stud = IfcMemberTypeEnum.STUD +stiffening_rib = IfcMemberTypeEnum.STIFFENING_RIB +arch_segment = IfcMemberTypeEnum.ARCH_SEGMENT +suspension_cable = IfcMemberTypeEnum.SUSPENSION_CABLE +suspender = IfcMemberTypeEnum.SUSPENDER +stay_cable = IfcMemberTypeEnum.STAY_CABLE +userdefined = IfcMemberTypeEnum.USERDEFINED +notdefined = IfcMemberTypeEnum.NOTDEFINED IfcMotorConnectionTypeEnum = enum_namespace() -beltdrive = getattr(IfcMotorConnectionTypeEnum, 'BELTDRIVE', INDETERMINATE) -coupling = getattr(IfcMotorConnectionTypeEnum, 'COUPLING', INDETERMINATE) -directdrive = getattr(IfcMotorConnectionTypeEnum, 'DIRECTDRIVE', INDETERMINATE) -userdefined = getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMotorConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltdrive = IfcMotorConnectionTypeEnum.BELTDRIVE +coupling = IfcMotorConnectionTypeEnum.COUPLING +directdrive = IfcMotorConnectionTypeEnum.DIRECTDRIVE +userdefined = IfcMotorConnectionTypeEnum.USERDEFINED +notdefined = IfcMotorConnectionTypeEnum.NOTDEFINED IfcNullStyle = enum_namespace() -null = getattr(IfcNullStyle, 'NULL', INDETERMINATE) +null = IfcNullStyle.NULL IfcObjectTypeEnum = enum_namespace() -product = getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE) -process = getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE) -control = getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE) -resource = getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE) -actor = getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE) -group = getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE) -project = getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE) -notdefined = getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE) +product = IfcObjectTypeEnum.PRODUCT +process = IfcObjectTypeEnum.PROCESS +control = IfcObjectTypeEnum.CONTROL +resource = IfcObjectTypeEnum.RESOURCE +actor = IfcObjectTypeEnum.ACTOR +group = IfcObjectTypeEnum.GROUP +project = IfcObjectTypeEnum.PROJECT +notdefined = IfcObjectTypeEnum.NOTDEFINED IfcObjectiveEnum = enum_namespace() -codecompliance = getattr(IfcObjectiveEnum, 'CODECOMPLIANCE', INDETERMINATE) -codewaiver = getattr(IfcObjectiveEnum, 'CODEWAIVER', INDETERMINATE) -designintent = getattr(IfcObjectiveEnum, 'DESIGNINTENT', INDETERMINATE) -external = getattr(IfcObjectiveEnum, 'EXTERNAL', INDETERMINATE) -healthandsafety = getattr(IfcObjectiveEnum, 'HEALTHANDSAFETY', INDETERMINATE) -mergeconflict = getattr(IfcObjectiveEnum, 'MERGECONFLICT', INDETERMINATE) -modelview = getattr(IfcObjectiveEnum, 'MODELVIEW', INDETERMINATE) -parameter = getattr(IfcObjectiveEnum, 'PARAMETER', INDETERMINATE) -requirement = getattr(IfcObjectiveEnum, 'REQUIREMENT', INDETERMINATE) -specification = getattr(IfcObjectiveEnum, 'SPECIFICATION', INDETERMINATE) -triggercondition = getattr(IfcObjectiveEnum, 'TRIGGERCONDITION', INDETERMINATE) -userdefined = getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcObjectiveEnum, 'NOTDEFINED', INDETERMINATE) +codecompliance = IfcObjectiveEnum.CODECOMPLIANCE +codewaiver = IfcObjectiveEnum.CODEWAIVER +designintent = IfcObjectiveEnum.DESIGNINTENT +external = IfcObjectiveEnum.EXTERNAL +healthandsafety = IfcObjectiveEnum.HEALTHANDSAFETY +mergeconflict = IfcObjectiveEnum.MERGECONFLICT +modelview = IfcObjectiveEnum.MODELVIEW +parameter = IfcObjectiveEnum.PARAMETER +requirement = IfcObjectiveEnum.REQUIREMENT +specification = IfcObjectiveEnum.SPECIFICATION +triggercondition = IfcObjectiveEnum.TRIGGERCONDITION +userdefined = IfcObjectiveEnum.USERDEFINED +notdefined = IfcObjectiveEnum.NOTDEFINED IfcOccupantTypeEnum = enum_namespace() -assignee = getattr(IfcOccupantTypeEnum, 'ASSIGNEE', INDETERMINATE) -assignor = getattr(IfcOccupantTypeEnum, 'ASSIGNOR', INDETERMINATE) -lessee = getattr(IfcOccupantTypeEnum, 'LESSEE', INDETERMINATE) -lessor = getattr(IfcOccupantTypeEnum, 'LESSOR', INDETERMINATE) -lettingagent = getattr(IfcOccupantTypeEnum, 'LETTINGAGENT', INDETERMINATE) -owner = getattr(IfcOccupantTypeEnum, 'OWNER', INDETERMINATE) -tenant = getattr(IfcOccupantTypeEnum, 'TENANT', INDETERMINATE) -userdefined = getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOccupantTypeEnum, 'NOTDEFINED', INDETERMINATE) +assignee = IfcOccupantTypeEnum.ASSIGNEE +assignor = IfcOccupantTypeEnum.ASSIGNOR +lessee = IfcOccupantTypeEnum.LESSEE +lessor = IfcOccupantTypeEnum.LESSOR +lettingagent = IfcOccupantTypeEnum.LETTINGAGENT +owner = IfcOccupantTypeEnum.OWNER +tenant = IfcOccupantTypeEnum.TENANT +userdefined = IfcOccupantTypeEnum.USERDEFINED +notdefined = IfcOccupantTypeEnum.NOTDEFINED IfcOpeningElementTypeEnum = enum_namespace() -opening = getattr(IfcOpeningElementTypeEnum, 'OPENING', INDETERMINATE) -recess = getattr(IfcOpeningElementTypeEnum, 'RECESS', INDETERMINATE) -userdefined = getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOpeningElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +opening = IfcOpeningElementTypeEnum.OPENING +recess = IfcOpeningElementTypeEnum.RECESS +userdefined = IfcOpeningElementTypeEnum.USERDEFINED +notdefined = IfcOpeningElementTypeEnum.NOTDEFINED IfcOutletTypeEnum = enum_namespace() -audiovisualoutlet = getattr(IfcOutletTypeEnum, 'AUDIOVISUALOUTLET', INDETERMINATE) -communicationsoutlet = getattr(IfcOutletTypeEnum, 'COMMUNICATIONSOUTLET', INDETERMINATE) -poweroutlet = getattr(IfcOutletTypeEnum, 'POWEROUTLET', INDETERMINATE) -dataoutlet = getattr(IfcOutletTypeEnum, 'DATAOUTLET', INDETERMINATE) -telephoneoutlet = getattr(IfcOutletTypeEnum, 'TELEPHONEOUTLET', INDETERMINATE) -userdefined = getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOutletTypeEnum, 'NOTDEFINED', INDETERMINATE) +audiovisualoutlet = IfcOutletTypeEnum.AUDIOVISUALOUTLET +communicationsoutlet = IfcOutletTypeEnum.COMMUNICATIONSOUTLET +poweroutlet = IfcOutletTypeEnum.POWEROUTLET +dataoutlet = IfcOutletTypeEnum.DATAOUTLET +telephoneoutlet = IfcOutletTypeEnum.TELEPHONEOUTLET +userdefined = IfcOutletTypeEnum.USERDEFINED +notdefined = IfcOutletTypeEnum.NOTDEFINED IfcPerformanceHistoryTypeEnum = enum_namespace() -userdefined = getattr(IfcPerformanceHistoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPerformanceHistoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcPerformanceHistoryTypeEnum.USERDEFINED +notdefined = IfcPerformanceHistoryTypeEnum.NOTDEFINED IfcPermeableCoveringOperationEnum = enum_namespace() -grill = getattr(IfcPermeableCoveringOperationEnum, 'GRILL', INDETERMINATE) -louver = getattr(IfcPermeableCoveringOperationEnum, 'LOUVER', INDETERMINATE) -screen = getattr(IfcPermeableCoveringOperationEnum, 'SCREEN', INDETERMINATE) -userdefined = getattr(IfcPermeableCoveringOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPermeableCoveringOperationEnum, 'NOTDEFINED', INDETERMINATE) +grill = IfcPermeableCoveringOperationEnum.GRILL +louver = IfcPermeableCoveringOperationEnum.LOUVER +screen = IfcPermeableCoveringOperationEnum.SCREEN +userdefined = IfcPermeableCoveringOperationEnum.USERDEFINED +notdefined = IfcPermeableCoveringOperationEnum.NOTDEFINED IfcPermitTypeEnum = enum_namespace() -access = getattr(IfcPermitTypeEnum, 'ACCESS', INDETERMINATE) -building = getattr(IfcPermitTypeEnum, 'BUILDING', INDETERMINATE) -work = getattr(IfcPermitTypeEnum, 'WORK', INDETERMINATE) -userdefined = getattr(IfcPermitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPermitTypeEnum, 'NOTDEFINED', INDETERMINATE) +access = IfcPermitTypeEnum.ACCESS +building = IfcPermitTypeEnum.BUILDING +work = IfcPermitTypeEnum.WORK +userdefined = IfcPermitTypeEnum.USERDEFINED +notdefined = IfcPermitTypeEnum.NOTDEFINED IfcPhysicalOrVirtualEnum = enum_namespace() -physical = getattr(IfcPhysicalOrVirtualEnum, 'PHYSICAL', INDETERMINATE) -virtual = getattr(IfcPhysicalOrVirtualEnum, 'VIRTUAL', INDETERMINATE) -notdefined = getattr(IfcPhysicalOrVirtualEnum, 'NOTDEFINED', INDETERMINATE) +physical = IfcPhysicalOrVirtualEnum.PHYSICAL +virtual = IfcPhysicalOrVirtualEnum.VIRTUAL +notdefined = IfcPhysicalOrVirtualEnum.NOTDEFINED IfcPileConstructionEnum = enum_namespace() -cast_in_place = getattr(IfcPileConstructionEnum, 'CAST_IN_PLACE', INDETERMINATE) -composite = getattr(IfcPileConstructionEnum, 'COMPOSITE', INDETERMINATE) -precast_concrete = getattr(IfcPileConstructionEnum, 'PRECAST_CONCRETE', INDETERMINATE) -prefab_steel = getattr(IfcPileConstructionEnum, 'PREFAB_STEEL', INDETERMINATE) -userdefined = getattr(IfcPileConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPileConstructionEnum, 'NOTDEFINED', INDETERMINATE) +cast_in_place = IfcPileConstructionEnum.CAST_IN_PLACE +composite = IfcPileConstructionEnum.COMPOSITE +precast_concrete = IfcPileConstructionEnum.PRECAST_CONCRETE +prefab_steel = IfcPileConstructionEnum.PREFAB_STEEL +userdefined = IfcPileConstructionEnum.USERDEFINED +notdefined = IfcPileConstructionEnum.NOTDEFINED IfcPileTypeEnum = enum_namespace() -bored = getattr(IfcPileTypeEnum, 'BORED', INDETERMINATE) -driven = getattr(IfcPileTypeEnum, 'DRIVEN', INDETERMINATE) -jetgrouting = getattr(IfcPileTypeEnum, 'JETGROUTING', INDETERMINATE) -cohesion = getattr(IfcPileTypeEnum, 'COHESION', INDETERMINATE) -friction = getattr(IfcPileTypeEnum, 'FRICTION', INDETERMINATE) -support = getattr(IfcPileTypeEnum, 'SUPPORT', INDETERMINATE) -userdefined = getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPileTypeEnum, 'NOTDEFINED', INDETERMINATE) +bored = IfcPileTypeEnum.BORED +driven = IfcPileTypeEnum.DRIVEN +jetgrouting = IfcPileTypeEnum.JETGROUTING +cohesion = IfcPileTypeEnum.COHESION +friction = IfcPileTypeEnum.FRICTION +support = IfcPileTypeEnum.SUPPORT +userdefined = IfcPileTypeEnum.USERDEFINED +notdefined = IfcPileTypeEnum.NOTDEFINED IfcPipeFittingTypeEnum = enum_namespace() -bend = getattr(IfcPipeFittingTypeEnum, 'BEND', INDETERMINATE) -connector = getattr(IfcPipeFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcPipeFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcPipeFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcPipeFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = getattr(IfcPipeFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = getattr(IfcPipeFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPipeFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcPipeFittingTypeEnum.BEND +connector = IfcPipeFittingTypeEnum.CONNECTOR +entry = IfcPipeFittingTypeEnum.ENTRY +exit = IfcPipeFittingTypeEnum.EXIT +junction = IfcPipeFittingTypeEnum.JUNCTION +obstruction = IfcPipeFittingTypeEnum.OBSTRUCTION +transition = IfcPipeFittingTypeEnum.TRANSITION +userdefined = IfcPipeFittingTypeEnum.USERDEFINED +notdefined = IfcPipeFittingTypeEnum.NOTDEFINED IfcPipeSegmentTypeEnum = enum_namespace() -culvert = getattr(IfcPipeSegmentTypeEnum, 'CULVERT', INDETERMINATE) -flexiblesegment = getattr(IfcPipeSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -rigidsegment = getattr(IfcPipeSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -gutter = getattr(IfcPipeSegmentTypeEnum, 'GUTTER', INDETERMINATE) -spool = getattr(IfcPipeSegmentTypeEnum, 'SPOOL', INDETERMINATE) -userdefined = getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPipeSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +culvert = IfcPipeSegmentTypeEnum.CULVERT +flexiblesegment = IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT +rigidsegment = IfcPipeSegmentTypeEnum.RIGIDSEGMENT +gutter = IfcPipeSegmentTypeEnum.GUTTER +spool = IfcPipeSegmentTypeEnum.SPOOL +userdefined = IfcPipeSegmentTypeEnum.USERDEFINED +notdefined = IfcPipeSegmentTypeEnum.NOTDEFINED IfcPlateTypeEnum = enum_namespace() -curtain_panel = getattr(IfcPlateTypeEnum, 'CURTAIN_PANEL', INDETERMINATE) -sheet = getattr(IfcPlateTypeEnum, 'SHEET', INDETERMINATE) -flange_plate = getattr(IfcPlateTypeEnum, 'FLANGE_PLATE', INDETERMINATE) -web_plate = getattr(IfcPlateTypeEnum, 'WEB_PLATE', INDETERMINATE) -stiffener_plate = getattr(IfcPlateTypeEnum, 'STIFFENER_PLATE', INDETERMINATE) -gusset_plate = getattr(IfcPlateTypeEnum, 'GUSSET_PLATE', INDETERMINATE) -cover_plate = getattr(IfcPlateTypeEnum, 'COVER_PLATE', INDETERMINATE) -splice_plate = getattr(IfcPlateTypeEnum, 'SPLICE_PLATE', INDETERMINATE) -base_plate = getattr(IfcPlateTypeEnum, 'BASE_PLATE', INDETERMINATE) -userdefined = getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPlateTypeEnum, 'NOTDEFINED', INDETERMINATE) +curtain_panel = IfcPlateTypeEnum.CURTAIN_PANEL +sheet = IfcPlateTypeEnum.SHEET +flange_plate = IfcPlateTypeEnum.FLANGE_PLATE +web_plate = IfcPlateTypeEnum.WEB_PLATE +stiffener_plate = IfcPlateTypeEnum.STIFFENER_PLATE +gusset_plate = IfcPlateTypeEnum.GUSSET_PLATE +cover_plate = IfcPlateTypeEnum.COVER_PLATE +splice_plate = IfcPlateTypeEnum.SPLICE_PLATE +base_plate = IfcPlateTypeEnum.BASE_PLATE +userdefined = IfcPlateTypeEnum.USERDEFINED +notdefined = IfcPlateTypeEnum.NOTDEFINED IfcPreferredSurfaceCurveRepresentation = enum_namespace() -curve3d = getattr(IfcPreferredSurfaceCurveRepresentation, 'CURVE3D', INDETERMINATE) -pcurve_s1 = getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S1', INDETERMINATE) -pcurve_s2 = getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S2', INDETERMINATE) +curve3d = IfcPreferredSurfaceCurveRepresentation.CURVE3D +pcurve_s1 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 +pcurve_s2 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 IfcProcedureTypeEnum = enum_namespace() -advice_caution = getattr(IfcProcedureTypeEnum, 'ADVICE_CAUTION', INDETERMINATE) -advice_note = getattr(IfcProcedureTypeEnum, 'ADVICE_NOTE', INDETERMINATE) -advice_warning = getattr(IfcProcedureTypeEnum, 'ADVICE_WARNING', INDETERMINATE) -calibration = getattr(IfcProcedureTypeEnum, 'CALIBRATION', INDETERMINATE) -diagnostic = getattr(IfcProcedureTypeEnum, 'DIAGNOSTIC', INDETERMINATE) -shutdown = getattr(IfcProcedureTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = getattr(IfcProcedureTypeEnum, 'STARTUP', INDETERMINATE) -userdefined = getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProcedureTypeEnum, 'NOTDEFINED', INDETERMINATE) +advice_caution = IfcProcedureTypeEnum.ADVICE_CAUTION +advice_note = IfcProcedureTypeEnum.ADVICE_NOTE +advice_warning = IfcProcedureTypeEnum.ADVICE_WARNING +calibration = IfcProcedureTypeEnum.CALIBRATION +diagnostic = IfcProcedureTypeEnum.DIAGNOSTIC +shutdown = IfcProcedureTypeEnum.SHUTDOWN +startup = IfcProcedureTypeEnum.STARTUP +userdefined = IfcProcedureTypeEnum.USERDEFINED +notdefined = IfcProcedureTypeEnum.NOTDEFINED IfcProfileTypeEnum = enum_namespace() -curve = getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE) -area = getattr(IfcProfileTypeEnum, 'AREA', INDETERMINATE) +curve = IfcProfileTypeEnum.CURVE +area = IfcProfileTypeEnum.AREA IfcProjectOrderTypeEnum = enum_namespace() -changeorder = getattr(IfcProjectOrderTypeEnum, 'CHANGEORDER', INDETERMINATE) -maintenanceworkorder = getattr(IfcProjectOrderTypeEnum, 'MAINTENANCEWORKORDER', INDETERMINATE) -moveorder = getattr(IfcProjectOrderTypeEnum, 'MOVEORDER', INDETERMINATE) -purchaseorder = getattr(IfcProjectOrderTypeEnum, 'PURCHASEORDER', INDETERMINATE) -workorder = getattr(IfcProjectOrderTypeEnum, 'WORKORDER', INDETERMINATE) -userdefined = getattr(IfcProjectOrderTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProjectOrderTypeEnum, 'NOTDEFINED', INDETERMINATE) +changeorder = IfcProjectOrderTypeEnum.CHANGEORDER +maintenanceworkorder = IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER +moveorder = IfcProjectOrderTypeEnum.MOVEORDER +purchaseorder = IfcProjectOrderTypeEnum.PURCHASEORDER +workorder = IfcProjectOrderTypeEnum.WORKORDER +userdefined = IfcProjectOrderTypeEnum.USERDEFINED +notdefined = IfcProjectOrderTypeEnum.NOTDEFINED IfcProjectedOrTrueLengthEnum = enum_namespace() -projected_length = getattr(IfcProjectedOrTrueLengthEnum, 'PROJECTED_LENGTH', INDETERMINATE) -true_length = getattr(IfcProjectedOrTrueLengthEnum, 'TRUE_LENGTH', INDETERMINATE) +projected_length = IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH +true_length = IfcProjectedOrTrueLengthEnum.TRUE_LENGTH IfcProjectionElementTypeEnum = enum_namespace() -blister = getattr(IfcProjectionElementTypeEnum, 'BLISTER', INDETERMINATE) -deviator = getattr(IfcProjectionElementTypeEnum, 'DEVIATOR', INDETERMINATE) -userdefined = getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProjectionElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +blister = IfcProjectionElementTypeEnum.BLISTER +deviator = IfcProjectionElementTypeEnum.DEVIATOR +userdefined = IfcProjectionElementTypeEnum.USERDEFINED +notdefined = IfcProjectionElementTypeEnum.NOTDEFINED IfcPropertySetTemplateTypeEnum = enum_namespace() -pset_typedrivenonly = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENONLY', INDETERMINATE) -pset_typedrivenoverride = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENOVERRIDE', INDETERMINATE) -pset_occurrencedriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_OCCURRENCEDRIVEN', INDETERMINATE) -pset_performancedriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PERFORMANCEDRIVEN', INDETERMINATE) -qto_typedrivenonly = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENONLY', INDETERMINATE) -qto_typedrivenoverride = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENOVERRIDE', INDETERMINATE) -qto_occurrencedriven = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_OCCURRENCEDRIVEN', INDETERMINATE) -notdefined = getattr(IfcPropertySetTemplateTypeEnum, 'NOTDEFINED', INDETERMINATE) +pset_typedrivenonly = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY +pset_typedrivenoverride = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE +pset_occurrencedriven = IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN +pset_performancedriven = IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN +qto_typedrivenonly = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY +qto_typedrivenoverride = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE +qto_occurrencedriven = IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN +notdefined = IfcPropertySetTemplateTypeEnum.NOTDEFINED IfcProtectiveDeviceTrippingUnitTypeEnum = enum_namespace() -electronic = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTRONIC', INDETERMINATE) -electromagnetic = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTROMAGNETIC', INDETERMINATE) -residualcurrent = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'RESIDUALCURRENT', INDETERMINATE) -thermal = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'THERMAL', INDETERMINATE) -userdefined = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC +electromagnetic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC +residualcurrent = IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT +thermal = IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL +userdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED IfcProtectiveDeviceTypeEnum = enum_namespace() -circuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'CIRCUITBREAKER', INDETERMINATE) -earthleakagecircuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'EARTHLEAKAGECIRCUITBREAKER', INDETERMINATE) -earthingswitch = getattr(IfcProtectiveDeviceTypeEnum, 'EARTHINGSWITCH', INDETERMINATE) -fusedisconnector = getattr(IfcProtectiveDeviceTypeEnum, 'FUSEDISCONNECTOR', INDETERMINATE) -residualcurrentcircuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTCIRCUITBREAKER', INDETERMINATE) -residualcurrentswitch = getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTSWITCH', INDETERMINATE) -varistor = getattr(IfcProtectiveDeviceTypeEnum, 'VARISTOR', INDETERMINATE) -userdefined = getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProtectiveDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +circuitbreaker = IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER +earthleakagecircuitbreaker = IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER +earthingswitch = IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH +fusedisconnector = IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR +residualcurrentcircuitbreaker = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER +residualcurrentswitch = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH +varistor = IfcProtectiveDeviceTypeEnum.VARISTOR +userdefined = IfcProtectiveDeviceTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTypeEnum.NOTDEFINED IfcPumpTypeEnum = enum_namespace() -circulator = getattr(IfcPumpTypeEnum, 'CIRCULATOR', INDETERMINATE) -endsuction = getattr(IfcPumpTypeEnum, 'ENDSUCTION', INDETERMINATE) -splitcase = getattr(IfcPumpTypeEnum, 'SPLITCASE', INDETERMINATE) -submersiblepump = getattr(IfcPumpTypeEnum, 'SUBMERSIBLEPUMP', INDETERMINATE) -sumppump = getattr(IfcPumpTypeEnum, 'SUMPPUMP', INDETERMINATE) -verticalinline = getattr(IfcPumpTypeEnum, 'VERTICALINLINE', INDETERMINATE) -verticalturbine = getattr(IfcPumpTypeEnum, 'VERTICALTURBINE', INDETERMINATE) -userdefined = getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPumpTypeEnum, 'NOTDEFINED', INDETERMINATE) +circulator = IfcPumpTypeEnum.CIRCULATOR +endsuction = IfcPumpTypeEnum.ENDSUCTION +splitcase = IfcPumpTypeEnum.SPLITCASE +submersiblepump = IfcPumpTypeEnum.SUBMERSIBLEPUMP +sumppump = IfcPumpTypeEnum.SUMPPUMP +verticalinline = IfcPumpTypeEnum.VERTICALINLINE +verticalturbine = IfcPumpTypeEnum.VERTICALTURBINE +userdefined = IfcPumpTypeEnum.USERDEFINED +notdefined = IfcPumpTypeEnum.NOTDEFINED IfcRailingTypeEnum = enum_namespace() -handrail = getattr(IfcRailingTypeEnum, 'HANDRAIL', INDETERMINATE) -guardrail = getattr(IfcRailingTypeEnum, 'GUARDRAIL', INDETERMINATE) -balustrade = getattr(IfcRailingTypeEnum, 'BALUSTRADE', INDETERMINATE) -userdefined = getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailingTypeEnum, 'NOTDEFINED', INDETERMINATE) +handrail = IfcRailingTypeEnum.HANDRAIL +guardrail = IfcRailingTypeEnum.GUARDRAIL +balustrade = IfcRailingTypeEnum.BALUSTRADE +userdefined = IfcRailingTypeEnum.USERDEFINED +notdefined = IfcRailingTypeEnum.NOTDEFINED IfcRampFlightTypeEnum = enum_namespace() -straight = getattr(IfcRampFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -spiral = getattr(IfcRampFlightTypeEnum, 'SPIRAL', INDETERMINATE) -userdefined = getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRampFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcRampFlightTypeEnum.STRAIGHT +spiral = IfcRampFlightTypeEnum.SPIRAL +userdefined = IfcRampFlightTypeEnum.USERDEFINED +notdefined = IfcRampFlightTypeEnum.NOTDEFINED IfcRampTypeEnum = enum_namespace() -straight_run_ramp = getattr(IfcRampTypeEnum, 'STRAIGHT_RUN_RAMP', INDETERMINATE) -two_straight_run_ramp = getattr(IfcRampTypeEnum, 'TWO_STRAIGHT_RUN_RAMP', INDETERMINATE) -quarter_turn_ramp = getattr(IfcRampTypeEnum, 'QUARTER_TURN_RAMP', INDETERMINATE) -two_quarter_turn_ramp = getattr(IfcRampTypeEnum, 'TWO_QUARTER_TURN_RAMP', INDETERMINATE) -half_turn_ramp = getattr(IfcRampTypeEnum, 'HALF_TURN_RAMP', INDETERMINATE) -spiral_ramp = getattr(IfcRampTypeEnum, 'SPIRAL_RAMP', INDETERMINATE) -userdefined = getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRampTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_ramp = IfcRampTypeEnum.STRAIGHT_RUN_RAMP +two_straight_run_ramp = IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP +quarter_turn_ramp = IfcRampTypeEnum.QUARTER_TURN_RAMP +two_quarter_turn_ramp = IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP +half_turn_ramp = IfcRampTypeEnum.HALF_TURN_RAMP +spiral_ramp = IfcRampTypeEnum.SPIRAL_RAMP +userdefined = IfcRampTypeEnum.USERDEFINED +notdefined = IfcRampTypeEnum.NOTDEFINED IfcRecurrenceTypeEnum = enum_namespace() -daily = getattr(IfcRecurrenceTypeEnum, 'DAILY', INDETERMINATE) -weekly = getattr(IfcRecurrenceTypeEnum, 'WEEKLY', INDETERMINATE) -monthly_by_day_of_month = getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_DAY_OF_MONTH', INDETERMINATE) -monthly_by_position = getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_POSITION', INDETERMINATE) -by_day_count = getattr(IfcRecurrenceTypeEnum, 'BY_DAY_COUNT', INDETERMINATE) -by_weekday_count = getattr(IfcRecurrenceTypeEnum, 'BY_WEEKDAY_COUNT', INDETERMINATE) -yearly_by_day_of_month = getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_DAY_OF_MONTH', INDETERMINATE) -yearly_by_position = getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_POSITION', INDETERMINATE) +daily = IfcRecurrenceTypeEnum.DAILY +weekly = IfcRecurrenceTypeEnum.WEEKLY +monthly_by_day_of_month = IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH +monthly_by_position = IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION +by_day_count = IfcRecurrenceTypeEnum.BY_DAY_COUNT +by_weekday_count = IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT +yearly_by_day_of_month = IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH +yearly_by_position = IfcRecurrenceTypeEnum.YEARLY_BY_POSITION IfcReferentTypeEnum = enum_namespace() -kilopoint = getattr(IfcReferentTypeEnum, 'KILOPOINT', INDETERMINATE) -milepoint = getattr(IfcReferentTypeEnum, 'MILEPOINT', INDETERMINATE) -station = getattr(IfcReferentTypeEnum, 'STATION', INDETERMINATE) -userdefined = getattr(IfcReferentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReferentTypeEnum, 'NOTDEFINED', INDETERMINATE) +kilopoint = IfcReferentTypeEnum.KILOPOINT +milepoint = IfcReferentTypeEnum.MILEPOINT +station = IfcReferentTypeEnum.STATION +userdefined = IfcReferentTypeEnum.USERDEFINED +notdefined = IfcReferentTypeEnum.NOTDEFINED IfcReflectanceMethodEnum = enum_namespace() -blinn = getattr(IfcReflectanceMethodEnum, 'BLINN', INDETERMINATE) -flat = getattr(IfcReflectanceMethodEnum, 'FLAT', INDETERMINATE) -glass = getattr(IfcReflectanceMethodEnum, 'GLASS', INDETERMINATE) -matt = getattr(IfcReflectanceMethodEnum, 'MATT', INDETERMINATE) -metal = getattr(IfcReflectanceMethodEnum, 'METAL', INDETERMINATE) -mirror = getattr(IfcReflectanceMethodEnum, 'MIRROR', INDETERMINATE) -phong = getattr(IfcReflectanceMethodEnum, 'PHONG', INDETERMINATE) -plastic = getattr(IfcReflectanceMethodEnum, 'PLASTIC', INDETERMINATE) -strauss = getattr(IfcReflectanceMethodEnum, 'STRAUSS', INDETERMINATE) -notdefined = getattr(IfcReflectanceMethodEnum, 'NOTDEFINED', INDETERMINATE) +blinn = IfcReflectanceMethodEnum.BLINN +flat = IfcReflectanceMethodEnum.FLAT +glass = IfcReflectanceMethodEnum.GLASS +matt = IfcReflectanceMethodEnum.MATT +metal = IfcReflectanceMethodEnum.METAL +mirror = IfcReflectanceMethodEnum.MIRROR +phong = IfcReflectanceMethodEnum.PHONG +plastic = IfcReflectanceMethodEnum.PLASTIC +strauss = IfcReflectanceMethodEnum.STRAUSS +notdefined = IfcReflectanceMethodEnum.NOTDEFINED IfcReinforcingBarRoleEnum = enum_namespace() -main = getattr(IfcReinforcingBarRoleEnum, 'MAIN', INDETERMINATE) -shear = getattr(IfcReinforcingBarRoleEnum, 'SHEAR', INDETERMINATE) -ligature = getattr(IfcReinforcingBarRoleEnum, 'LIGATURE', INDETERMINATE) -stud = getattr(IfcReinforcingBarRoleEnum, 'STUD', INDETERMINATE) -punching = getattr(IfcReinforcingBarRoleEnum, 'PUNCHING', INDETERMINATE) -edge = getattr(IfcReinforcingBarRoleEnum, 'EDGE', INDETERMINATE) -ring = getattr(IfcReinforcingBarRoleEnum, 'RING', INDETERMINATE) -anchoring = getattr(IfcReinforcingBarRoleEnum, 'ANCHORING', INDETERMINATE) -userdefined = getattr(IfcReinforcingBarRoleEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingBarRoleEnum, 'NOTDEFINED', INDETERMINATE) +main = IfcReinforcingBarRoleEnum.MAIN +shear = IfcReinforcingBarRoleEnum.SHEAR +ligature = IfcReinforcingBarRoleEnum.LIGATURE +stud = IfcReinforcingBarRoleEnum.STUD +punching = IfcReinforcingBarRoleEnum.PUNCHING +edge = IfcReinforcingBarRoleEnum.EDGE +ring = IfcReinforcingBarRoleEnum.RING +anchoring = IfcReinforcingBarRoleEnum.ANCHORING +userdefined = IfcReinforcingBarRoleEnum.USERDEFINED +notdefined = IfcReinforcingBarRoleEnum.NOTDEFINED IfcReinforcingBarSurfaceEnum = enum_namespace() -plain = getattr(IfcReinforcingBarSurfaceEnum, 'PLAIN', INDETERMINATE) -textured = getattr(IfcReinforcingBarSurfaceEnum, 'TEXTURED', INDETERMINATE) +plain = IfcReinforcingBarSurfaceEnum.PLAIN +textured = IfcReinforcingBarSurfaceEnum.TEXTURED IfcReinforcingBarTypeEnum = enum_namespace() -anchoring = getattr(IfcReinforcingBarTypeEnum, 'ANCHORING', INDETERMINATE) -edge = getattr(IfcReinforcingBarTypeEnum, 'EDGE', INDETERMINATE) -ligature = getattr(IfcReinforcingBarTypeEnum, 'LIGATURE', INDETERMINATE) -main = getattr(IfcReinforcingBarTypeEnum, 'MAIN', INDETERMINATE) -punching = getattr(IfcReinforcingBarTypeEnum, 'PUNCHING', INDETERMINATE) -ring = getattr(IfcReinforcingBarTypeEnum, 'RING', INDETERMINATE) -shear = getattr(IfcReinforcingBarTypeEnum, 'SHEAR', INDETERMINATE) -stud = getattr(IfcReinforcingBarTypeEnum, 'STUD', INDETERMINATE) -spacebar = getattr(IfcReinforcingBarTypeEnum, 'SPACEBAR', INDETERMINATE) -userdefined = getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingBarTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarTypeEnum.ANCHORING +edge = IfcReinforcingBarTypeEnum.EDGE +ligature = IfcReinforcingBarTypeEnum.LIGATURE +main = IfcReinforcingBarTypeEnum.MAIN +punching = IfcReinforcingBarTypeEnum.PUNCHING +ring = IfcReinforcingBarTypeEnum.RING +shear = IfcReinforcingBarTypeEnum.SHEAR +stud = IfcReinforcingBarTypeEnum.STUD +spacebar = IfcReinforcingBarTypeEnum.SPACEBAR +userdefined = IfcReinforcingBarTypeEnum.USERDEFINED +notdefined = IfcReinforcingBarTypeEnum.NOTDEFINED IfcReinforcingMeshTypeEnum = enum_namespace() -userdefined = getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingMeshTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcReinforcingMeshTypeEnum.USERDEFINED +notdefined = IfcReinforcingMeshTypeEnum.NOTDEFINED IfcRoleEnum = enum_namespace() -supplier = getattr(IfcRoleEnum, 'SUPPLIER', INDETERMINATE) -manufacturer = getattr(IfcRoleEnum, 'MANUFACTURER', INDETERMINATE) -contractor = getattr(IfcRoleEnum, 'CONTRACTOR', INDETERMINATE) -subcontractor = getattr(IfcRoleEnum, 'SUBCONTRACTOR', INDETERMINATE) -architect = getattr(IfcRoleEnum, 'ARCHITECT', INDETERMINATE) -structuralengineer = getattr(IfcRoleEnum, 'STRUCTURALENGINEER', INDETERMINATE) -costengineer = getattr(IfcRoleEnum, 'COSTENGINEER', INDETERMINATE) -client = getattr(IfcRoleEnum, 'CLIENT', INDETERMINATE) -buildingowner = getattr(IfcRoleEnum, 'BUILDINGOWNER', INDETERMINATE) -buildingoperator = getattr(IfcRoleEnum, 'BUILDINGOPERATOR', INDETERMINATE) -mechanicalengineer = getattr(IfcRoleEnum, 'MECHANICALENGINEER', INDETERMINATE) -electricalengineer = getattr(IfcRoleEnum, 'ELECTRICALENGINEER', INDETERMINATE) -projectmanager = getattr(IfcRoleEnum, 'PROJECTMANAGER', INDETERMINATE) -facilitiesmanager = getattr(IfcRoleEnum, 'FACILITIESMANAGER', INDETERMINATE) -civilengineer = getattr(IfcRoleEnum, 'CIVILENGINEER', INDETERMINATE) -commissioningengineer = getattr(IfcRoleEnum, 'COMMISSIONINGENGINEER', INDETERMINATE) -engineer = getattr(IfcRoleEnum, 'ENGINEER', INDETERMINATE) -owner = getattr(IfcRoleEnum, 'OWNER', INDETERMINATE) -consultant = getattr(IfcRoleEnum, 'CONSULTANT', INDETERMINATE) -constructionmanager = getattr(IfcRoleEnum, 'CONSTRUCTIONMANAGER', INDETERMINATE) -fieldconstructionmanager = getattr(IfcRoleEnum, 'FIELDCONSTRUCTIONMANAGER', INDETERMINATE) -reseller = getattr(IfcRoleEnum, 'RESELLER', INDETERMINATE) -userdefined = getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) +supplier = IfcRoleEnum.SUPPLIER +manufacturer = IfcRoleEnum.MANUFACTURER +contractor = IfcRoleEnum.CONTRACTOR +subcontractor = IfcRoleEnum.SUBCONTRACTOR +architect = IfcRoleEnum.ARCHITECT +structuralengineer = IfcRoleEnum.STRUCTURALENGINEER +costengineer = IfcRoleEnum.COSTENGINEER +client = IfcRoleEnum.CLIENT +buildingowner = IfcRoleEnum.BUILDINGOWNER +buildingoperator = IfcRoleEnum.BUILDINGOPERATOR +mechanicalengineer = IfcRoleEnum.MECHANICALENGINEER +electricalengineer = IfcRoleEnum.ELECTRICALENGINEER +projectmanager = IfcRoleEnum.PROJECTMANAGER +facilitiesmanager = IfcRoleEnum.FACILITIESMANAGER +civilengineer = IfcRoleEnum.CIVILENGINEER +commissioningengineer = IfcRoleEnum.COMMISSIONINGENGINEER +engineer = IfcRoleEnum.ENGINEER +owner = IfcRoleEnum.OWNER +consultant = IfcRoleEnum.CONSULTANT +constructionmanager = IfcRoleEnum.CONSTRUCTIONMANAGER +fieldconstructionmanager = IfcRoleEnum.FIELDCONSTRUCTIONMANAGER +reseller = IfcRoleEnum.RESELLER +userdefined = IfcRoleEnum.USERDEFINED IfcRoofTypeEnum = enum_namespace() -flat_roof = getattr(IfcRoofTypeEnum, 'FLAT_ROOF', INDETERMINATE) -shed_roof = getattr(IfcRoofTypeEnum, 'SHED_ROOF', INDETERMINATE) -gable_roof = getattr(IfcRoofTypeEnum, 'GABLE_ROOF', INDETERMINATE) -hip_roof = getattr(IfcRoofTypeEnum, 'HIP_ROOF', INDETERMINATE) -hipped_gable_roof = getattr(IfcRoofTypeEnum, 'HIPPED_GABLE_ROOF', INDETERMINATE) -gambrel_roof = getattr(IfcRoofTypeEnum, 'GAMBREL_ROOF', INDETERMINATE) -mansard_roof = getattr(IfcRoofTypeEnum, 'MANSARD_ROOF', INDETERMINATE) -barrel_roof = getattr(IfcRoofTypeEnum, 'BARREL_ROOF', INDETERMINATE) -rainbow_roof = getattr(IfcRoofTypeEnum, 'RAINBOW_ROOF', INDETERMINATE) -butterfly_roof = getattr(IfcRoofTypeEnum, 'BUTTERFLY_ROOF', INDETERMINATE) -pavilion_roof = getattr(IfcRoofTypeEnum, 'PAVILION_ROOF', INDETERMINATE) -dome_roof = getattr(IfcRoofTypeEnum, 'DOME_ROOF', INDETERMINATE) -freeform = getattr(IfcRoofTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRoofTypeEnum, 'NOTDEFINED', INDETERMINATE) +flat_roof = IfcRoofTypeEnum.FLAT_ROOF +shed_roof = IfcRoofTypeEnum.SHED_ROOF +gable_roof = IfcRoofTypeEnum.GABLE_ROOF +hip_roof = IfcRoofTypeEnum.HIP_ROOF +hipped_gable_roof = IfcRoofTypeEnum.HIPPED_GABLE_ROOF +gambrel_roof = IfcRoofTypeEnum.GAMBREL_ROOF +mansard_roof = IfcRoofTypeEnum.MANSARD_ROOF +barrel_roof = IfcRoofTypeEnum.BARREL_ROOF +rainbow_roof = IfcRoofTypeEnum.RAINBOW_ROOF +butterfly_roof = IfcRoofTypeEnum.BUTTERFLY_ROOF +pavilion_roof = IfcRoofTypeEnum.PAVILION_ROOF +dome_roof = IfcRoofTypeEnum.DOME_ROOF +freeform = IfcRoofTypeEnum.FREEFORM +userdefined = IfcRoofTypeEnum.USERDEFINED +notdefined = IfcRoofTypeEnum.NOTDEFINED IfcSIPrefix = enum_namespace() -exa = getattr(IfcSIPrefix, 'EXA', INDETERMINATE) -peta = getattr(IfcSIPrefix, 'PETA', INDETERMINATE) -tera = getattr(IfcSIPrefix, 'TERA', INDETERMINATE) -giga = getattr(IfcSIPrefix, 'GIGA', INDETERMINATE) -mega = getattr(IfcSIPrefix, 'MEGA', INDETERMINATE) -kilo = getattr(IfcSIPrefix, 'KILO', INDETERMINATE) -hecto = getattr(IfcSIPrefix, 'HECTO', INDETERMINATE) -deca = getattr(IfcSIPrefix, 'DECA', INDETERMINATE) -deci = getattr(IfcSIPrefix, 'DECI', INDETERMINATE) -centi = getattr(IfcSIPrefix, 'CENTI', INDETERMINATE) -milli = getattr(IfcSIPrefix, 'MILLI', INDETERMINATE) -micro = getattr(IfcSIPrefix, 'MICRO', INDETERMINATE) -nano = getattr(IfcSIPrefix, 'NANO', INDETERMINATE) -pico = getattr(IfcSIPrefix, 'PICO', INDETERMINATE) -femto = getattr(IfcSIPrefix, 'FEMTO', INDETERMINATE) -atto = getattr(IfcSIPrefix, 'ATTO', INDETERMINATE) +exa = IfcSIPrefix.EXA +peta = IfcSIPrefix.PETA +tera = IfcSIPrefix.TERA +giga = IfcSIPrefix.GIGA +mega = IfcSIPrefix.MEGA +kilo = IfcSIPrefix.KILO +hecto = IfcSIPrefix.HECTO +deca = IfcSIPrefix.DECA +deci = IfcSIPrefix.DECI +centi = IfcSIPrefix.CENTI +milli = IfcSIPrefix.MILLI +micro = IfcSIPrefix.MICRO +nano = IfcSIPrefix.NANO +pico = IfcSIPrefix.PICO +femto = IfcSIPrefix.FEMTO +atto = IfcSIPrefix.ATTO IfcSIUnitName = enum_namespace() -ampere = getattr(IfcSIUnitName, 'AMPERE', INDETERMINATE) -becquerel = getattr(IfcSIUnitName, 'BECQUEREL', INDETERMINATE) -candela = getattr(IfcSIUnitName, 'CANDELA', INDETERMINATE) -coulomb = getattr(IfcSIUnitName, 'COULOMB', INDETERMINATE) -cubic_metre = getattr(IfcSIUnitName, 'CUBIC_METRE', INDETERMINATE) -degree_celsius = getattr(IfcSIUnitName, 'DEGREE_CELSIUS', INDETERMINATE) -farad = getattr(IfcSIUnitName, 'FARAD', INDETERMINATE) -gram = getattr(IfcSIUnitName, 'GRAM', INDETERMINATE) -gray = getattr(IfcSIUnitName, 'GRAY', INDETERMINATE) -henry = getattr(IfcSIUnitName, 'HENRY', INDETERMINATE) -hertz = getattr(IfcSIUnitName, 'HERTZ', INDETERMINATE) -joule = getattr(IfcSIUnitName, 'JOULE', INDETERMINATE) -kelvin = getattr(IfcSIUnitName, 'KELVIN', INDETERMINATE) -lumen = getattr(IfcSIUnitName, 'LUMEN', INDETERMINATE) -lux = getattr(IfcSIUnitName, 'LUX', INDETERMINATE) -metre = getattr(IfcSIUnitName, 'METRE', INDETERMINATE) -mole = getattr(IfcSIUnitName, 'MOLE', INDETERMINATE) -newton = getattr(IfcSIUnitName, 'NEWTON', INDETERMINATE) -ohm = getattr(IfcSIUnitName, 'OHM', INDETERMINATE) -pascal = getattr(IfcSIUnitName, 'PASCAL', INDETERMINATE) -radian = getattr(IfcSIUnitName, 'RADIAN', INDETERMINATE) -second = getattr(IfcSIUnitName, 'SECOND', INDETERMINATE) -siemens = getattr(IfcSIUnitName, 'SIEMENS', INDETERMINATE) -sievert = getattr(IfcSIUnitName, 'SIEVERT', INDETERMINATE) -square_metre = getattr(IfcSIUnitName, 'SQUARE_METRE', INDETERMINATE) -steradian = getattr(IfcSIUnitName, 'STERADIAN', INDETERMINATE) -tesla = getattr(IfcSIUnitName, 'TESLA', INDETERMINATE) -volt = getattr(IfcSIUnitName, 'VOLT', INDETERMINATE) -watt = getattr(IfcSIUnitName, 'WATT', INDETERMINATE) -weber = getattr(IfcSIUnitName, 'WEBER', INDETERMINATE) +ampere = IfcSIUnitName.AMPERE +becquerel = IfcSIUnitName.BECQUEREL +candela = IfcSIUnitName.CANDELA +coulomb = IfcSIUnitName.COULOMB +cubic_metre = IfcSIUnitName.CUBIC_METRE +degree_celsius = IfcSIUnitName.DEGREE_CELSIUS +farad = IfcSIUnitName.FARAD +gram = IfcSIUnitName.GRAM +gray = IfcSIUnitName.GRAY +henry = IfcSIUnitName.HENRY +hertz = IfcSIUnitName.HERTZ +joule = IfcSIUnitName.JOULE +kelvin = IfcSIUnitName.KELVIN +lumen = IfcSIUnitName.LUMEN +lux = IfcSIUnitName.LUX +metre = IfcSIUnitName.METRE +mole = IfcSIUnitName.MOLE +newton = IfcSIUnitName.NEWTON +ohm = IfcSIUnitName.OHM +pascal = IfcSIUnitName.PASCAL +radian = IfcSIUnitName.RADIAN +second = IfcSIUnitName.SECOND +siemens = IfcSIUnitName.SIEMENS +sievert = IfcSIUnitName.SIEVERT +square_metre = IfcSIUnitName.SQUARE_METRE +steradian = IfcSIUnitName.STERADIAN +tesla = IfcSIUnitName.TESLA +volt = IfcSIUnitName.VOLT +watt = IfcSIUnitName.WATT +weber = IfcSIUnitName.WEBER IfcSanitaryTerminalTypeEnum = enum_namespace() -bath = getattr(IfcSanitaryTerminalTypeEnum, 'BATH', INDETERMINATE) -bidet = getattr(IfcSanitaryTerminalTypeEnum, 'BIDET', INDETERMINATE) -cistern = getattr(IfcSanitaryTerminalTypeEnum, 'CISTERN', INDETERMINATE) -shower = getattr(IfcSanitaryTerminalTypeEnum, 'SHOWER', INDETERMINATE) -sink = getattr(IfcSanitaryTerminalTypeEnum, 'SINK', INDETERMINATE) -sanitaryfountain = getattr(IfcSanitaryTerminalTypeEnum, 'SANITARYFOUNTAIN', INDETERMINATE) -toiletpan = getattr(IfcSanitaryTerminalTypeEnum, 'TOILETPAN', INDETERMINATE) -urinal = getattr(IfcSanitaryTerminalTypeEnum, 'URINAL', INDETERMINATE) -washhandbasin = getattr(IfcSanitaryTerminalTypeEnum, 'WASHHANDBASIN', INDETERMINATE) -wcseat = getattr(IfcSanitaryTerminalTypeEnum, 'WCSEAT', INDETERMINATE) -userdefined = getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSanitaryTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +bath = IfcSanitaryTerminalTypeEnum.BATH +bidet = IfcSanitaryTerminalTypeEnum.BIDET +cistern = IfcSanitaryTerminalTypeEnum.CISTERN +shower = IfcSanitaryTerminalTypeEnum.SHOWER +sink = IfcSanitaryTerminalTypeEnum.SINK +sanitaryfountain = IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN +toiletpan = IfcSanitaryTerminalTypeEnum.TOILETPAN +urinal = IfcSanitaryTerminalTypeEnum.URINAL +washhandbasin = IfcSanitaryTerminalTypeEnum.WASHHANDBASIN +wcseat = IfcSanitaryTerminalTypeEnum.WCSEAT +userdefined = IfcSanitaryTerminalTypeEnum.USERDEFINED +notdefined = IfcSanitaryTerminalTypeEnum.NOTDEFINED IfcSectionTypeEnum = enum_namespace() -uniform = getattr(IfcSectionTypeEnum, 'UNIFORM', INDETERMINATE) -tapered = getattr(IfcSectionTypeEnum, 'TAPERED', INDETERMINATE) +uniform = IfcSectionTypeEnum.UNIFORM +tapered = IfcSectionTypeEnum.TAPERED IfcSensorTypeEnum = enum_namespace() -cosensor = getattr(IfcSensorTypeEnum, 'COSENSOR', INDETERMINATE) -co2sensor = getattr(IfcSensorTypeEnum, 'CO2SENSOR', INDETERMINATE) -conductancesensor = getattr(IfcSensorTypeEnum, 'CONDUCTANCESENSOR', INDETERMINATE) -contactsensor = getattr(IfcSensorTypeEnum, 'CONTACTSENSOR', INDETERMINATE) -firesensor = getattr(IfcSensorTypeEnum, 'FIRESENSOR', INDETERMINATE) -flowsensor = getattr(IfcSensorTypeEnum, 'FLOWSENSOR', INDETERMINATE) -frostsensor = getattr(IfcSensorTypeEnum, 'FROSTSENSOR', INDETERMINATE) -gassensor = getattr(IfcSensorTypeEnum, 'GASSENSOR', INDETERMINATE) -heatsensor = getattr(IfcSensorTypeEnum, 'HEATSENSOR', INDETERMINATE) -humiditysensor = getattr(IfcSensorTypeEnum, 'HUMIDITYSENSOR', INDETERMINATE) -identifiersensor = getattr(IfcSensorTypeEnum, 'IDENTIFIERSENSOR', INDETERMINATE) -ionconcentrationsensor = getattr(IfcSensorTypeEnum, 'IONCONCENTRATIONSENSOR', INDETERMINATE) -levelsensor = getattr(IfcSensorTypeEnum, 'LEVELSENSOR', INDETERMINATE) -lightsensor = getattr(IfcSensorTypeEnum, 'LIGHTSENSOR', INDETERMINATE) -moisturesensor = getattr(IfcSensorTypeEnum, 'MOISTURESENSOR', INDETERMINATE) -movementsensor = getattr(IfcSensorTypeEnum, 'MOVEMENTSENSOR', INDETERMINATE) -phsensor = getattr(IfcSensorTypeEnum, 'PHSENSOR', INDETERMINATE) -pressuresensor = getattr(IfcSensorTypeEnum, 'PRESSURESENSOR', INDETERMINATE) -radiationsensor = getattr(IfcSensorTypeEnum, 'RADIATIONSENSOR', INDETERMINATE) -radioactivitysensor = getattr(IfcSensorTypeEnum, 'RADIOACTIVITYSENSOR', INDETERMINATE) -smokesensor = getattr(IfcSensorTypeEnum, 'SMOKESENSOR', INDETERMINATE) -soundsensor = getattr(IfcSensorTypeEnum, 'SOUNDSENSOR', INDETERMINATE) -temperaturesensor = getattr(IfcSensorTypeEnum, 'TEMPERATURESENSOR', INDETERMINATE) -windsensor = getattr(IfcSensorTypeEnum, 'WINDSENSOR', INDETERMINATE) -userdefined = getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSensorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cosensor = IfcSensorTypeEnum.COSENSOR +co2sensor = IfcSensorTypeEnum.CO2SENSOR +conductancesensor = IfcSensorTypeEnum.CONDUCTANCESENSOR +contactsensor = IfcSensorTypeEnum.CONTACTSENSOR +firesensor = IfcSensorTypeEnum.FIRESENSOR +flowsensor = IfcSensorTypeEnum.FLOWSENSOR +frostsensor = IfcSensorTypeEnum.FROSTSENSOR +gassensor = IfcSensorTypeEnum.GASSENSOR +heatsensor = IfcSensorTypeEnum.HEATSENSOR +humiditysensor = IfcSensorTypeEnum.HUMIDITYSENSOR +identifiersensor = IfcSensorTypeEnum.IDENTIFIERSENSOR +ionconcentrationsensor = IfcSensorTypeEnum.IONCONCENTRATIONSENSOR +levelsensor = IfcSensorTypeEnum.LEVELSENSOR +lightsensor = IfcSensorTypeEnum.LIGHTSENSOR +moisturesensor = IfcSensorTypeEnum.MOISTURESENSOR +movementsensor = IfcSensorTypeEnum.MOVEMENTSENSOR +phsensor = IfcSensorTypeEnum.PHSENSOR +pressuresensor = IfcSensorTypeEnum.PRESSURESENSOR +radiationsensor = IfcSensorTypeEnum.RADIATIONSENSOR +radioactivitysensor = IfcSensorTypeEnum.RADIOACTIVITYSENSOR +smokesensor = IfcSensorTypeEnum.SMOKESENSOR +soundsensor = IfcSensorTypeEnum.SOUNDSENSOR +temperaturesensor = IfcSensorTypeEnum.TEMPERATURESENSOR +windsensor = IfcSensorTypeEnum.WINDSENSOR +userdefined = IfcSensorTypeEnum.USERDEFINED +notdefined = IfcSensorTypeEnum.NOTDEFINED IfcSequenceEnum = enum_namespace() -start_start = getattr(IfcSequenceEnum, 'START_START', INDETERMINATE) -start_finish = getattr(IfcSequenceEnum, 'START_FINISH', INDETERMINATE) -finish_start = getattr(IfcSequenceEnum, 'FINISH_START', INDETERMINATE) -finish_finish = getattr(IfcSequenceEnum, 'FINISH_FINISH', INDETERMINATE) -userdefined = getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSequenceEnum, 'NOTDEFINED', INDETERMINATE) +start_start = IfcSequenceEnum.START_START +start_finish = IfcSequenceEnum.START_FINISH +finish_start = IfcSequenceEnum.FINISH_START +finish_finish = IfcSequenceEnum.FINISH_FINISH +userdefined = IfcSequenceEnum.USERDEFINED +notdefined = IfcSequenceEnum.NOTDEFINED IfcShadingDeviceTypeEnum = enum_namespace() -jalousie = getattr(IfcShadingDeviceTypeEnum, 'JALOUSIE', INDETERMINATE) -shutter = getattr(IfcShadingDeviceTypeEnum, 'SHUTTER', INDETERMINATE) -awning = getattr(IfcShadingDeviceTypeEnum, 'AWNING', INDETERMINATE) -userdefined = getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcShadingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +jalousie = IfcShadingDeviceTypeEnum.JALOUSIE +shutter = IfcShadingDeviceTypeEnum.SHUTTER +awning = IfcShadingDeviceTypeEnum.AWNING +userdefined = IfcShadingDeviceTypeEnum.USERDEFINED +notdefined = IfcShadingDeviceTypeEnum.NOTDEFINED IfcSimplePropertyTemplateTypeEnum = enum_namespace() -p_singlevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_SINGLEVALUE', INDETERMINATE) -p_enumeratedvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_ENUMERATEDVALUE', INDETERMINATE) -p_boundedvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_BOUNDEDVALUE', INDETERMINATE) -p_listvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_LISTVALUE', INDETERMINATE) -p_tablevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_TABLEVALUE', INDETERMINATE) -p_referencevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_REFERENCEVALUE', INDETERMINATE) -q_length = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_LENGTH', INDETERMINATE) -q_area = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_AREA', INDETERMINATE) -q_volume = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_VOLUME', INDETERMINATE) -q_count = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_COUNT', INDETERMINATE) -q_weight = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_WEIGHT', INDETERMINATE) -q_time = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_TIME', INDETERMINATE) +p_singlevalue = IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE +p_enumeratedvalue = IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE +p_boundedvalue = IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE +p_listvalue = IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE +p_tablevalue = IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE +p_referencevalue = IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE +q_length = IfcSimplePropertyTemplateTypeEnum.Q_LENGTH +q_area = IfcSimplePropertyTemplateTypeEnum.Q_AREA +q_volume = IfcSimplePropertyTemplateTypeEnum.Q_VOLUME +q_count = IfcSimplePropertyTemplateTypeEnum.Q_COUNT +q_weight = IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT +q_time = IfcSimplePropertyTemplateTypeEnum.Q_TIME IfcSlabTypeEnum = enum_namespace() -floor = getattr(IfcSlabTypeEnum, 'FLOOR', INDETERMINATE) -roof = getattr(IfcSlabTypeEnum, 'ROOF', INDETERMINATE) -landing = getattr(IfcSlabTypeEnum, 'LANDING', INDETERMINATE) -baseslab = getattr(IfcSlabTypeEnum, 'BASESLAB', INDETERMINATE) -approach_slab = getattr(IfcSlabTypeEnum, 'APPROACH_SLAB', INDETERMINATE) -paving = getattr(IfcSlabTypeEnum, 'PAVING', INDETERMINATE) -wearing = getattr(IfcSlabTypeEnum, 'WEARING', INDETERMINATE) -sidewalk = getattr(IfcSlabTypeEnum, 'SIDEWALK', INDETERMINATE) -userdefined = getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSlabTypeEnum, 'NOTDEFINED', INDETERMINATE) +floor = IfcSlabTypeEnum.FLOOR +roof = IfcSlabTypeEnum.ROOF +landing = IfcSlabTypeEnum.LANDING +baseslab = IfcSlabTypeEnum.BASESLAB +approach_slab = IfcSlabTypeEnum.APPROACH_SLAB +paving = IfcSlabTypeEnum.PAVING +wearing = IfcSlabTypeEnum.WEARING +sidewalk = IfcSlabTypeEnum.SIDEWALK +userdefined = IfcSlabTypeEnum.USERDEFINED +notdefined = IfcSlabTypeEnum.NOTDEFINED IfcSolarDeviceTypeEnum = enum_namespace() -solarcollector = getattr(IfcSolarDeviceTypeEnum, 'SOLARCOLLECTOR', INDETERMINATE) -solarpanel = getattr(IfcSolarDeviceTypeEnum, 'SOLARPANEL', INDETERMINATE) -userdefined = getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSolarDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +solarcollector = IfcSolarDeviceTypeEnum.SOLARCOLLECTOR +solarpanel = IfcSolarDeviceTypeEnum.SOLARPANEL +userdefined = IfcSolarDeviceTypeEnum.USERDEFINED +notdefined = IfcSolarDeviceTypeEnum.NOTDEFINED IfcSpaceHeaterTypeEnum = enum_namespace() -convector = getattr(IfcSpaceHeaterTypeEnum, 'CONVECTOR', INDETERMINATE) -radiator = getattr(IfcSpaceHeaterTypeEnum, 'RADIATOR', INDETERMINATE) -userdefined = getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpaceHeaterTypeEnum, 'NOTDEFINED', INDETERMINATE) +convector = IfcSpaceHeaterTypeEnum.CONVECTOR +radiator = IfcSpaceHeaterTypeEnum.RADIATOR +userdefined = IfcSpaceHeaterTypeEnum.USERDEFINED +notdefined = IfcSpaceHeaterTypeEnum.NOTDEFINED IfcSpaceTypeEnum = enum_namespace() -space = getattr(IfcSpaceTypeEnum, 'SPACE', INDETERMINATE) -parking = getattr(IfcSpaceTypeEnum, 'PARKING', INDETERMINATE) -gfa = getattr(IfcSpaceTypeEnum, 'GFA', INDETERMINATE) -internal = getattr(IfcSpaceTypeEnum, 'INTERNAL', INDETERMINATE) -external = getattr(IfcSpaceTypeEnum, 'EXTERNAL', INDETERMINATE) -userdefined = getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpaceTypeEnum, 'NOTDEFINED', INDETERMINATE) +space = IfcSpaceTypeEnum.SPACE +parking = IfcSpaceTypeEnum.PARKING +gfa = IfcSpaceTypeEnum.GFA +internal = IfcSpaceTypeEnum.INTERNAL +external = IfcSpaceTypeEnum.EXTERNAL +userdefined = IfcSpaceTypeEnum.USERDEFINED +notdefined = IfcSpaceTypeEnum.NOTDEFINED IfcSpatialZoneTypeEnum = enum_namespace() -construction = getattr(IfcSpatialZoneTypeEnum, 'CONSTRUCTION', INDETERMINATE) -firesafety = getattr(IfcSpatialZoneTypeEnum, 'FIRESAFETY', INDETERMINATE) -lighting = getattr(IfcSpatialZoneTypeEnum, 'LIGHTING', INDETERMINATE) -occupancy = getattr(IfcSpatialZoneTypeEnum, 'OCCUPANCY', INDETERMINATE) -security = getattr(IfcSpatialZoneTypeEnum, 'SECURITY', INDETERMINATE) -thermal = getattr(IfcSpatialZoneTypeEnum, 'THERMAL', INDETERMINATE) -transport = getattr(IfcSpatialZoneTypeEnum, 'TRANSPORT', INDETERMINATE) -ventilation = getattr(IfcSpatialZoneTypeEnum, 'VENTILATION', INDETERMINATE) -userdefined = getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpatialZoneTypeEnum, 'NOTDEFINED', INDETERMINATE) +construction = IfcSpatialZoneTypeEnum.CONSTRUCTION +firesafety = IfcSpatialZoneTypeEnum.FIRESAFETY +lighting = IfcSpatialZoneTypeEnum.LIGHTING +occupancy = IfcSpatialZoneTypeEnum.OCCUPANCY +security = IfcSpatialZoneTypeEnum.SECURITY +thermal = IfcSpatialZoneTypeEnum.THERMAL +transport = IfcSpatialZoneTypeEnum.TRANSPORT +ventilation = IfcSpatialZoneTypeEnum.VENTILATION +userdefined = IfcSpatialZoneTypeEnum.USERDEFINED +notdefined = IfcSpatialZoneTypeEnum.NOTDEFINED IfcStackTerminalTypeEnum = enum_namespace() -birdcage = getattr(IfcStackTerminalTypeEnum, 'BIRDCAGE', INDETERMINATE) -cowl = getattr(IfcStackTerminalTypeEnum, 'COWL', INDETERMINATE) -rainwaterhopper = getattr(IfcStackTerminalTypeEnum, 'RAINWATERHOPPER', INDETERMINATE) -userdefined = getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStackTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +birdcage = IfcStackTerminalTypeEnum.BIRDCAGE +cowl = IfcStackTerminalTypeEnum.COWL +rainwaterhopper = IfcStackTerminalTypeEnum.RAINWATERHOPPER +userdefined = IfcStackTerminalTypeEnum.USERDEFINED +notdefined = IfcStackTerminalTypeEnum.NOTDEFINED IfcStairFlightTypeEnum = enum_namespace() -straight = getattr(IfcStairFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -winder = getattr(IfcStairFlightTypeEnum, 'WINDER', INDETERMINATE) -spiral = getattr(IfcStairFlightTypeEnum, 'SPIRAL', INDETERMINATE) -curved = getattr(IfcStairFlightTypeEnum, 'CURVED', INDETERMINATE) -freeform = getattr(IfcStairFlightTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStairFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcStairFlightTypeEnum.STRAIGHT +winder = IfcStairFlightTypeEnum.WINDER +spiral = IfcStairFlightTypeEnum.SPIRAL +curved = IfcStairFlightTypeEnum.CURVED +freeform = IfcStairFlightTypeEnum.FREEFORM +userdefined = IfcStairFlightTypeEnum.USERDEFINED +notdefined = IfcStairFlightTypeEnum.NOTDEFINED IfcStairTypeEnum = enum_namespace() -straight_run_stair = getattr(IfcStairTypeEnum, 'STRAIGHT_RUN_STAIR', INDETERMINATE) -two_straight_run_stair = getattr(IfcStairTypeEnum, 'TWO_STRAIGHT_RUN_STAIR', INDETERMINATE) -quarter_winding_stair = getattr(IfcStairTypeEnum, 'QUARTER_WINDING_STAIR', INDETERMINATE) -quarter_turn_stair = getattr(IfcStairTypeEnum, 'QUARTER_TURN_STAIR', INDETERMINATE) -half_winding_stair = getattr(IfcStairTypeEnum, 'HALF_WINDING_STAIR', INDETERMINATE) -half_turn_stair = getattr(IfcStairTypeEnum, 'HALF_TURN_STAIR', INDETERMINATE) -two_quarter_winding_stair = getattr(IfcStairTypeEnum, 'TWO_QUARTER_WINDING_STAIR', INDETERMINATE) -two_quarter_turn_stair = getattr(IfcStairTypeEnum, 'TWO_QUARTER_TURN_STAIR', INDETERMINATE) -three_quarter_winding_stair = getattr(IfcStairTypeEnum, 'THREE_QUARTER_WINDING_STAIR', INDETERMINATE) -three_quarter_turn_stair = getattr(IfcStairTypeEnum, 'THREE_QUARTER_TURN_STAIR', INDETERMINATE) -spiral_stair = getattr(IfcStairTypeEnum, 'SPIRAL_STAIR', INDETERMINATE) -double_return_stair = getattr(IfcStairTypeEnum, 'DOUBLE_RETURN_STAIR', INDETERMINATE) -curved_run_stair = getattr(IfcStairTypeEnum, 'CURVED_RUN_STAIR', INDETERMINATE) -two_curved_run_stair = getattr(IfcStairTypeEnum, 'TWO_CURVED_RUN_STAIR', INDETERMINATE) -userdefined = getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStairTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_stair = IfcStairTypeEnum.STRAIGHT_RUN_STAIR +two_straight_run_stair = IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR +quarter_winding_stair = IfcStairTypeEnum.QUARTER_WINDING_STAIR +quarter_turn_stair = IfcStairTypeEnum.QUARTER_TURN_STAIR +half_winding_stair = IfcStairTypeEnum.HALF_WINDING_STAIR +half_turn_stair = IfcStairTypeEnum.HALF_TURN_STAIR +two_quarter_winding_stair = IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR +two_quarter_turn_stair = IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR +three_quarter_winding_stair = IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR +three_quarter_turn_stair = IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR +spiral_stair = IfcStairTypeEnum.SPIRAL_STAIR +double_return_stair = IfcStairTypeEnum.DOUBLE_RETURN_STAIR +curved_run_stair = IfcStairTypeEnum.CURVED_RUN_STAIR +two_curved_run_stair = IfcStairTypeEnum.TWO_CURVED_RUN_STAIR +userdefined = IfcStairTypeEnum.USERDEFINED +notdefined = IfcStairTypeEnum.NOTDEFINED IfcStateEnum = enum_namespace() -readwrite = getattr(IfcStateEnum, 'READWRITE', INDETERMINATE) -readonly = getattr(IfcStateEnum, 'READONLY', INDETERMINATE) -locked = getattr(IfcStateEnum, 'LOCKED', INDETERMINATE) -readwritelocked = getattr(IfcStateEnum, 'READWRITELOCKED', INDETERMINATE) -readonlylocked = getattr(IfcStateEnum, 'READONLYLOCKED', INDETERMINATE) +readwrite = IfcStateEnum.READWRITE +readonly = IfcStateEnum.READONLY +locked = IfcStateEnum.LOCKED +readwritelocked = IfcStateEnum.READWRITELOCKED +readonlylocked = IfcStateEnum.READONLYLOCKED IfcStructuralCurveActivityTypeEnum = enum_namespace() -const = getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE) -linear = getattr(IfcStructuralCurveActivityTypeEnum, 'LINEAR', INDETERMINATE) -polygonal = getattr(IfcStructuralCurveActivityTypeEnum, 'POLYGONAL', INDETERMINATE) -equidistant = getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE) -sinus = getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) -parabola = getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE) -discrete = getattr(IfcStructuralCurveActivityTypeEnum, 'DISCRETE', INDETERMINATE) -userdefined = getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralCurveActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralCurveActivityTypeEnum.CONST +linear = IfcStructuralCurveActivityTypeEnum.LINEAR +polygonal = IfcStructuralCurveActivityTypeEnum.POLYGONAL +equidistant = IfcStructuralCurveActivityTypeEnum.EQUIDISTANT +sinus = IfcStructuralCurveActivityTypeEnum.SINUS +parabola = IfcStructuralCurveActivityTypeEnum.PARABOLA +discrete = IfcStructuralCurveActivityTypeEnum.DISCRETE +userdefined = IfcStructuralCurveActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveActivityTypeEnum.NOTDEFINED IfcStructuralCurveMemberTypeEnum = enum_namespace() -rigid_joined_member = getattr(IfcStructuralCurveMemberTypeEnum, 'RIGID_JOINED_MEMBER', INDETERMINATE) -pin_joined_member = getattr(IfcStructuralCurveMemberTypeEnum, 'PIN_JOINED_MEMBER', INDETERMINATE) -cable = getattr(IfcStructuralCurveMemberTypeEnum, 'CABLE', INDETERMINATE) -tension_member = getattr(IfcStructuralCurveMemberTypeEnum, 'TENSION_MEMBER', INDETERMINATE) -compression_member = getattr(IfcStructuralCurveMemberTypeEnum, 'COMPRESSION_MEMBER', INDETERMINATE) -userdefined = getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralCurveMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigid_joined_member = IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER +pin_joined_member = IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER +cable = IfcStructuralCurveMemberTypeEnum.CABLE +tension_member = IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER +compression_member = IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER +userdefined = IfcStructuralCurveMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveMemberTypeEnum.NOTDEFINED IfcStructuralSurfaceActivityTypeEnum = enum_namespace() -const = getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE) -bilinear = getattr(IfcStructuralSurfaceActivityTypeEnum, 'BILINEAR', INDETERMINATE) -discrete = getattr(IfcStructuralSurfaceActivityTypeEnum, 'DISCRETE', INDETERMINATE) -isocontour = getattr(IfcStructuralSurfaceActivityTypeEnum, 'ISOCONTOUR', INDETERMINATE) -userdefined = getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralSurfaceActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralSurfaceActivityTypeEnum.CONST +bilinear = IfcStructuralSurfaceActivityTypeEnum.BILINEAR +discrete = IfcStructuralSurfaceActivityTypeEnum.DISCRETE +isocontour = IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR +userdefined = IfcStructuralSurfaceActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED IfcStructuralSurfaceMemberTypeEnum = enum_namespace() -bending_element = getattr(IfcStructuralSurfaceMemberTypeEnum, 'BENDING_ELEMENT', INDETERMINATE) -membrane_element = getattr(IfcStructuralSurfaceMemberTypeEnum, 'MEMBRANE_ELEMENT', INDETERMINATE) -shell = getattr(IfcStructuralSurfaceMemberTypeEnum, 'SHELL', INDETERMINATE) -userdefined = getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralSurfaceMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_element = IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT +membrane_element = IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT +shell = IfcStructuralSurfaceMemberTypeEnum.SHELL +userdefined = IfcStructuralSurfaceMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED IfcSubContractResourceTypeEnum = enum_namespace() -purchase = getattr(IfcSubContractResourceTypeEnum, 'PURCHASE', INDETERMINATE) -work = getattr(IfcSubContractResourceTypeEnum, 'WORK', INDETERMINATE) -userdefined = getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSubContractResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +purchase = IfcSubContractResourceTypeEnum.PURCHASE +work = IfcSubContractResourceTypeEnum.WORK +userdefined = IfcSubContractResourceTypeEnum.USERDEFINED +notdefined = IfcSubContractResourceTypeEnum.NOTDEFINED IfcSurfaceFeatureTypeEnum = enum_namespace() -mark = getattr(IfcSurfaceFeatureTypeEnum, 'MARK', INDETERMINATE) -tag = getattr(IfcSurfaceFeatureTypeEnum, 'TAG', INDETERMINATE) -treatment = getattr(IfcSurfaceFeatureTypeEnum, 'TREATMENT', INDETERMINATE) -defect = getattr(IfcSurfaceFeatureTypeEnum, 'DEFECT', INDETERMINATE) -userdefined = getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSurfaceFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +mark = IfcSurfaceFeatureTypeEnum.MARK +tag = IfcSurfaceFeatureTypeEnum.TAG +treatment = IfcSurfaceFeatureTypeEnum.TREATMENT +defect = IfcSurfaceFeatureTypeEnum.DEFECT +userdefined = IfcSurfaceFeatureTypeEnum.USERDEFINED +notdefined = IfcSurfaceFeatureTypeEnum.NOTDEFINED IfcSurfaceSide = enum_namespace() -positive = getattr(IfcSurfaceSide, 'POSITIVE', INDETERMINATE) -negative = getattr(IfcSurfaceSide, 'NEGATIVE', INDETERMINATE) -both = getattr(IfcSurfaceSide, 'BOTH', INDETERMINATE) +positive = IfcSurfaceSide.POSITIVE +negative = IfcSurfaceSide.NEGATIVE +both = IfcSurfaceSide.BOTH IfcSwitchingDeviceTypeEnum = enum_namespace() -contactor = getattr(IfcSwitchingDeviceTypeEnum, 'CONTACTOR', INDETERMINATE) -dimmerswitch = getattr(IfcSwitchingDeviceTypeEnum, 'DIMMERSWITCH', INDETERMINATE) -emergencystop = getattr(IfcSwitchingDeviceTypeEnum, 'EMERGENCYSTOP', INDETERMINATE) -keypad = getattr(IfcSwitchingDeviceTypeEnum, 'KEYPAD', INDETERMINATE) -momentaryswitch = getattr(IfcSwitchingDeviceTypeEnum, 'MOMENTARYSWITCH', INDETERMINATE) -selectorswitch = getattr(IfcSwitchingDeviceTypeEnum, 'SELECTORSWITCH', INDETERMINATE) -starter = getattr(IfcSwitchingDeviceTypeEnum, 'STARTER', INDETERMINATE) -switchdisconnector = getattr(IfcSwitchingDeviceTypeEnum, 'SWITCHDISCONNECTOR', INDETERMINATE) -toggleswitch = getattr(IfcSwitchingDeviceTypeEnum, 'TOGGLESWITCH', INDETERMINATE) -userdefined = getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSwitchingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +contactor = IfcSwitchingDeviceTypeEnum.CONTACTOR +dimmerswitch = IfcSwitchingDeviceTypeEnum.DIMMERSWITCH +emergencystop = IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP +keypad = IfcSwitchingDeviceTypeEnum.KEYPAD +momentaryswitch = IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH +selectorswitch = IfcSwitchingDeviceTypeEnum.SELECTORSWITCH +starter = IfcSwitchingDeviceTypeEnum.STARTER +switchdisconnector = IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR +toggleswitch = IfcSwitchingDeviceTypeEnum.TOGGLESWITCH +userdefined = IfcSwitchingDeviceTypeEnum.USERDEFINED +notdefined = IfcSwitchingDeviceTypeEnum.NOTDEFINED IfcSystemFurnitureElementTypeEnum = enum_namespace() -panel = getattr(IfcSystemFurnitureElementTypeEnum, 'PANEL', INDETERMINATE) -worksurface = getattr(IfcSystemFurnitureElementTypeEnum, 'WORKSURFACE', INDETERMINATE) -userdefined = getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSystemFurnitureElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +panel = IfcSystemFurnitureElementTypeEnum.PANEL +worksurface = IfcSystemFurnitureElementTypeEnum.WORKSURFACE +userdefined = IfcSystemFurnitureElementTypeEnum.USERDEFINED +notdefined = IfcSystemFurnitureElementTypeEnum.NOTDEFINED IfcTankTypeEnum = enum_namespace() -basin = getattr(IfcTankTypeEnum, 'BASIN', INDETERMINATE) -breakpressure = getattr(IfcTankTypeEnum, 'BREAKPRESSURE', INDETERMINATE) -expansion = getattr(IfcTankTypeEnum, 'EXPANSION', INDETERMINATE) -feedandexpansion = getattr(IfcTankTypeEnum, 'FEEDANDEXPANSION', INDETERMINATE) -pressurevessel = getattr(IfcTankTypeEnum, 'PRESSUREVESSEL', INDETERMINATE) -storage = getattr(IfcTankTypeEnum, 'STORAGE', INDETERMINATE) -vessel = getattr(IfcTankTypeEnum, 'VESSEL', INDETERMINATE) -userdefined = getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTankTypeEnum, 'NOTDEFINED', INDETERMINATE) +basin = IfcTankTypeEnum.BASIN +breakpressure = IfcTankTypeEnum.BREAKPRESSURE +expansion = IfcTankTypeEnum.EXPANSION +feedandexpansion = IfcTankTypeEnum.FEEDANDEXPANSION +pressurevessel = IfcTankTypeEnum.PRESSUREVESSEL +storage = IfcTankTypeEnum.STORAGE +vessel = IfcTankTypeEnum.VESSEL +userdefined = IfcTankTypeEnum.USERDEFINED +notdefined = IfcTankTypeEnum.NOTDEFINED IfcTaskDurationEnum = enum_namespace() -elapsedtime = getattr(IfcTaskDurationEnum, 'ELAPSEDTIME', INDETERMINATE) -worktime = getattr(IfcTaskDurationEnum, 'WORKTIME', INDETERMINATE) -notdefined = getattr(IfcTaskDurationEnum, 'NOTDEFINED', INDETERMINATE) +elapsedtime = IfcTaskDurationEnum.ELAPSEDTIME +worktime = IfcTaskDurationEnum.WORKTIME +notdefined = IfcTaskDurationEnum.NOTDEFINED IfcTaskTypeEnum = enum_namespace() -attendance = getattr(IfcTaskTypeEnum, 'ATTENDANCE', INDETERMINATE) -construction = getattr(IfcTaskTypeEnum, 'CONSTRUCTION', INDETERMINATE) -demolition = getattr(IfcTaskTypeEnum, 'DEMOLITION', INDETERMINATE) -dismantle = getattr(IfcTaskTypeEnum, 'DISMANTLE', INDETERMINATE) -disposal = getattr(IfcTaskTypeEnum, 'DISPOSAL', INDETERMINATE) -installation = getattr(IfcTaskTypeEnum, 'INSTALLATION', INDETERMINATE) -logistic = getattr(IfcTaskTypeEnum, 'LOGISTIC', INDETERMINATE) -maintenance = getattr(IfcTaskTypeEnum, 'MAINTENANCE', INDETERMINATE) -move = getattr(IfcTaskTypeEnum, 'MOVE', INDETERMINATE) -operation = getattr(IfcTaskTypeEnum, 'OPERATION', INDETERMINATE) -removal = getattr(IfcTaskTypeEnum, 'REMOVAL', INDETERMINATE) -renovation = getattr(IfcTaskTypeEnum, 'RENOVATION', INDETERMINATE) -userdefined = getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTaskTypeEnum, 'NOTDEFINED', INDETERMINATE) +attendance = IfcTaskTypeEnum.ATTENDANCE +construction = IfcTaskTypeEnum.CONSTRUCTION +demolition = IfcTaskTypeEnum.DEMOLITION +dismantle = IfcTaskTypeEnum.DISMANTLE +disposal = IfcTaskTypeEnum.DISPOSAL +installation = IfcTaskTypeEnum.INSTALLATION +logistic = IfcTaskTypeEnum.LOGISTIC +maintenance = IfcTaskTypeEnum.MAINTENANCE +move = IfcTaskTypeEnum.MOVE +operation = IfcTaskTypeEnum.OPERATION +removal = IfcTaskTypeEnum.REMOVAL +renovation = IfcTaskTypeEnum.RENOVATION +userdefined = IfcTaskTypeEnum.USERDEFINED +notdefined = IfcTaskTypeEnum.NOTDEFINED IfcTendonAnchorTypeEnum = enum_namespace() -coupler = getattr(IfcTendonAnchorTypeEnum, 'COUPLER', INDETERMINATE) -fixed_end = getattr(IfcTendonAnchorTypeEnum, 'FIXED_END', INDETERMINATE) -tensioning_end = getattr(IfcTendonAnchorTypeEnum, 'TENSIONING_END', INDETERMINATE) -userdefined = getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonAnchorTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonAnchorTypeEnum.COUPLER +fixed_end = IfcTendonAnchorTypeEnum.FIXED_END +tensioning_end = IfcTendonAnchorTypeEnum.TENSIONING_END +userdefined = IfcTendonAnchorTypeEnum.USERDEFINED +notdefined = IfcTendonAnchorTypeEnum.NOTDEFINED IfcTendonConduitTypeEnum = enum_namespace() -duct = getattr(IfcTendonConduitTypeEnum, 'DUCT', INDETERMINATE) -coupler = getattr(IfcTendonConduitTypeEnum, 'COUPLER', INDETERMINATE) -grouting_duct = getattr(IfcTendonConduitTypeEnum, 'GROUTING_DUCT', INDETERMINATE) -trumpet = getattr(IfcTendonConduitTypeEnum, 'TRUMPET', INDETERMINATE) -diabolo = getattr(IfcTendonConduitTypeEnum, 'DIABOLO', INDETERMINATE) -userdefined = getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonConduitTypeEnum, 'NOTDEFINED', INDETERMINATE) +duct = IfcTendonConduitTypeEnum.DUCT +coupler = IfcTendonConduitTypeEnum.COUPLER +grouting_duct = IfcTendonConduitTypeEnum.GROUTING_DUCT +trumpet = IfcTendonConduitTypeEnum.TRUMPET +diabolo = IfcTendonConduitTypeEnum.DIABOLO +userdefined = IfcTendonConduitTypeEnum.USERDEFINED +notdefined = IfcTendonConduitTypeEnum.NOTDEFINED IfcTendonTypeEnum = enum_namespace() -bar = getattr(IfcTendonTypeEnum, 'BAR', INDETERMINATE) -coated = getattr(IfcTendonTypeEnum, 'COATED', INDETERMINATE) -strand = getattr(IfcTendonTypeEnum, 'STRAND', INDETERMINATE) -wire = getattr(IfcTendonTypeEnum, 'WIRE', INDETERMINATE) -userdefined = getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonTypeEnum, 'NOTDEFINED', INDETERMINATE) +bar = IfcTendonTypeEnum.BAR +coated = IfcTendonTypeEnum.COATED +strand = IfcTendonTypeEnum.STRAND +wire = IfcTendonTypeEnum.WIRE +userdefined = IfcTendonTypeEnum.USERDEFINED +notdefined = IfcTendonTypeEnum.NOTDEFINED IfcTextPath = enum_namespace() -left = getattr(IfcTextPath, 'LEFT', INDETERMINATE) -right = getattr(IfcTextPath, 'RIGHT', INDETERMINATE) -up = getattr(IfcTextPath, 'UP', INDETERMINATE) -down = getattr(IfcTextPath, 'DOWN', INDETERMINATE) +left = IfcTextPath.LEFT +right = IfcTextPath.RIGHT +up = IfcTextPath.UP +down = IfcTextPath.DOWN IfcTimeSeriesDataTypeEnum = enum_namespace() -continuous = getattr(IfcTimeSeriesDataTypeEnum, 'CONTINUOUS', INDETERMINATE) -discrete = getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETE', INDETERMINATE) -discretebinary = getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETEBINARY', INDETERMINATE) -piecewisebinary = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISEBINARY', INDETERMINATE) -piecewiseconstant = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONSTANT', INDETERMINATE) -piecewisecontinuous = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONTINUOUS', INDETERMINATE) -notdefined = getattr(IfcTimeSeriesDataTypeEnum, 'NOTDEFINED', INDETERMINATE) +continuous = IfcTimeSeriesDataTypeEnum.CONTINUOUS +discrete = IfcTimeSeriesDataTypeEnum.DISCRETE +discretebinary = IfcTimeSeriesDataTypeEnum.DISCRETEBINARY +piecewisebinary = IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY +piecewiseconstant = IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT +piecewisecontinuous = IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS +notdefined = IfcTimeSeriesDataTypeEnum.NOTDEFINED IfcTransformerTypeEnum = enum_namespace() -current = getattr(IfcTransformerTypeEnum, 'CURRENT', INDETERMINATE) -frequency = getattr(IfcTransformerTypeEnum, 'FREQUENCY', INDETERMINATE) -inverter = getattr(IfcTransformerTypeEnum, 'INVERTER', INDETERMINATE) -rectifier = getattr(IfcTransformerTypeEnum, 'RECTIFIER', INDETERMINATE) -voltage = getattr(IfcTransformerTypeEnum, 'VOLTAGE', INDETERMINATE) -userdefined = getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTransformerTypeEnum, 'NOTDEFINED', INDETERMINATE) +current = IfcTransformerTypeEnum.CURRENT +frequency = IfcTransformerTypeEnum.FREQUENCY +inverter = IfcTransformerTypeEnum.INVERTER +rectifier = IfcTransformerTypeEnum.RECTIFIER +voltage = IfcTransformerTypeEnum.VOLTAGE +userdefined = IfcTransformerTypeEnum.USERDEFINED +notdefined = IfcTransformerTypeEnum.NOTDEFINED IfcTransitionCode = enum_namespace() -discontinuous = getattr(IfcTransitionCode, 'DISCONTINUOUS', INDETERMINATE) -continuous = getattr(IfcTransitionCode, 'CONTINUOUS', INDETERMINATE) -contsamegradient = getattr(IfcTransitionCode, 'CONTSAMEGRADIENT', INDETERMINATE) -contsamegradientsamecurvature = getattr(IfcTransitionCode, 'CONTSAMEGRADIENTSAMECURVATURE', INDETERMINATE) +discontinuous = IfcTransitionCode.DISCONTINUOUS +continuous = IfcTransitionCode.CONTINUOUS +contsamegradient = IfcTransitionCode.CONTSAMEGRADIENT +contsamegradientsamecurvature = IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE IfcTransitionCurveType = enum_namespace() -biquadraticparabola = getattr(IfcTransitionCurveType, 'BIQUADRATICPARABOLA', INDETERMINATE) -blosscurve = getattr(IfcTransitionCurveType, 'BLOSSCURVE', INDETERMINATE) -clothoidcurve = getattr(IfcTransitionCurveType, 'CLOTHOIDCURVE', INDETERMINATE) -cosinecurve = getattr(IfcTransitionCurveType, 'COSINECURVE', INDETERMINATE) -cubicparabola = getattr(IfcTransitionCurveType, 'CUBICPARABOLA', INDETERMINATE) -sinecurve = getattr(IfcTransitionCurveType, 'SINECURVE', INDETERMINATE) +biquadraticparabola = IfcTransitionCurveType.BIQUADRATICPARABOLA +blosscurve = IfcTransitionCurveType.BLOSSCURVE +clothoidcurve = IfcTransitionCurveType.CLOTHOIDCURVE +cosinecurve = IfcTransitionCurveType.COSINECURVE +cubicparabola = IfcTransitionCurveType.CUBICPARABOLA +sinecurve = IfcTransitionCurveType.SINECURVE IfcTransportElementTypeEnum = enum_namespace() -elevator = getattr(IfcTransportElementTypeEnum, 'ELEVATOR', INDETERMINATE) -escalator = getattr(IfcTransportElementTypeEnum, 'ESCALATOR', INDETERMINATE) -movingwalkway = getattr(IfcTransportElementTypeEnum, 'MOVINGWALKWAY', INDETERMINATE) -craneway = getattr(IfcTransportElementTypeEnum, 'CRANEWAY', INDETERMINATE) -liftinggear = getattr(IfcTransportElementTypeEnum, 'LIFTINGGEAR', INDETERMINATE) -userdefined = getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTransportElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +elevator = IfcTransportElementTypeEnum.ELEVATOR +escalator = IfcTransportElementTypeEnum.ESCALATOR +movingwalkway = IfcTransportElementTypeEnum.MOVINGWALKWAY +craneway = IfcTransportElementTypeEnum.CRANEWAY +liftinggear = IfcTransportElementTypeEnum.LIFTINGGEAR +userdefined = IfcTransportElementTypeEnum.USERDEFINED +notdefined = IfcTransportElementTypeEnum.NOTDEFINED IfcTrimmingPreference = enum_namespace() -cartesian = getattr(IfcTrimmingPreference, 'CARTESIAN', INDETERMINATE) -parameter = getattr(IfcTrimmingPreference, 'PARAMETER', INDETERMINATE) -unspecified = getattr(IfcTrimmingPreference, 'UNSPECIFIED', INDETERMINATE) +cartesian = IfcTrimmingPreference.CARTESIAN +parameter = IfcTrimmingPreference.PARAMETER +unspecified = IfcTrimmingPreference.UNSPECIFIED IfcTubeBundleTypeEnum = enum_namespace() -finned = getattr(IfcTubeBundleTypeEnum, 'FINNED', INDETERMINATE) -userdefined = getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTubeBundleTypeEnum, 'NOTDEFINED', INDETERMINATE) +finned = IfcTubeBundleTypeEnum.FINNED +userdefined = IfcTubeBundleTypeEnum.USERDEFINED +notdefined = IfcTubeBundleTypeEnum.NOTDEFINED IfcUnitEnum = enum_namespace() -absorbeddoseunit = getattr(IfcUnitEnum, 'ABSORBEDDOSEUNIT', INDETERMINATE) -amountofsubstanceunit = getattr(IfcUnitEnum, 'AMOUNTOFSUBSTANCEUNIT', INDETERMINATE) -areaunit = getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE) -doseequivalentunit = getattr(IfcUnitEnum, 'DOSEEQUIVALENTUNIT', INDETERMINATE) -electriccapacitanceunit = getattr(IfcUnitEnum, 'ELECTRICCAPACITANCEUNIT', INDETERMINATE) -electricchargeunit = getattr(IfcUnitEnum, 'ELECTRICCHARGEUNIT', INDETERMINATE) -electricconductanceunit = getattr(IfcUnitEnum, 'ELECTRICCONDUCTANCEUNIT', INDETERMINATE) -electriccurrentunit = getattr(IfcUnitEnum, 'ELECTRICCURRENTUNIT', INDETERMINATE) -electricresistanceunit = getattr(IfcUnitEnum, 'ELECTRICRESISTANCEUNIT', INDETERMINATE) -electricvoltageunit = getattr(IfcUnitEnum, 'ELECTRICVOLTAGEUNIT', INDETERMINATE) -energyunit = getattr(IfcUnitEnum, 'ENERGYUNIT', INDETERMINATE) -forceunit = getattr(IfcUnitEnum, 'FORCEUNIT', INDETERMINATE) -frequencyunit = getattr(IfcUnitEnum, 'FREQUENCYUNIT', INDETERMINATE) -illuminanceunit = getattr(IfcUnitEnum, 'ILLUMINANCEUNIT', INDETERMINATE) -inductanceunit = getattr(IfcUnitEnum, 'INDUCTANCEUNIT', INDETERMINATE) -lengthunit = getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE) -luminousfluxunit = getattr(IfcUnitEnum, 'LUMINOUSFLUXUNIT', INDETERMINATE) -luminousintensityunit = getattr(IfcUnitEnum, 'LUMINOUSINTENSITYUNIT', INDETERMINATE) -magneticfluxdensityunit = getattr(IfcUnitEnum, 'MAGNETICFLUXDENSITYUNIT', INDETERMINATE) -magneticfluxunit = getattr(IfcUnitEnum, 'MAGNETICFLUXUNIT', INDETERMINATE) -massunit = getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE) -planeangleunit = getattr(IfcUnitEnum, 'PLANEANGLEUNIT', INDETERMINATE) -powerunit = getattr(IfcUnitEnum, 'POWERUNIT', INDETERMINATE) -pressureunit = getattr(IfcUnitEnum, 'PRESSUREUNIT', INDETERMINATE) -radioactivityunit = getattr(IfcUnitEnum, 'RADIOACTIVITYUNIT', INDETERMINATE) -solidangleunit = getattr(IfcUnitEnum, 'SOLIDANGLEUNIT', INDETERMINATE) -thermodynamictemperatureunit = getattr(IfcUnitEnum, 'THERMODYNAMICTEMPERATUREUNIT', INDETERMINATE) -timeunit = getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE) -volumeunit = getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE) -userdefined = getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE) +absorbeddoseunit = IfcUnitEnum.ABSORBEDDOSEUNIT +amountofsubstanceunit = IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT +areaunit = IfcUnitEnum.AREAUNIT +doseequivalentunit = IfcUnitEnum.DOSEEQUIVALENTUNIT +electriccapacitanceunit = IfcUnitEnum.ELECTRICCAPACITANCEUNIT +electricchargeunit = IfcUnitEnum.ELECTRICCHARGEUNIT +electricconductanceunit = IfcUnitEnum.ELECTRICCONDUCTANCEUNIT +electriccurrentunit = IfcUnitEnum.ELECTRICCURRENTUNIT +electricresistanceunit = IfcUnitEnum.ELECTRICRESISTANCEUNIT +electricvoltageunit = IfcUnitEnum.ELECTRICVOLTAGEUNIT +energyunit = IfcUnitEnum.ENERGYUNIT +forceunit = IfcUnitEnum.FORCEUNIT +frequencyunit = IfcUnitEnum.FREQUENCYUNIT +illuminanceunit = IfcUnitEnum.ILLUMINANCEUNIT +inductanceunit = IfcUnitEnum.INDUCTANCEUNIT +lengthunit = IfcUnitEnum.LENGTHUNIT +luminousfluxunit = IfcUnitEnum.LUMINOUSFLUXUNIT +luminousintensityunit = IfcUnitEnum.LUMINOUSINTENSITYUNIT +magneticfluxdensityunit = IfcUnitEnum.MAGNETICFLUXDENSITYUNIT +magneticfluxunit = IfcUnitEnum.MAGNETICFLUXUNIT +massunit = IfcUnitEnum.MASSUNIT +planeangleunit = IfcUnitEnum.PLANEANGLEUNIT +powerunit = IfcUnitEnum.POWERUNIT +pressureunit = IfcUnitEnum.PRESSUREUNIT +radioactivityunit = IfcUnitEnum.RADIOACTIVITYUNIT +solidangleunit = IfcUnitEnum.SOLIDANGLEUNIT +thermodynamictemperatureunit = IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT +timeunit = IfcUnitEnum.TIMEUNIT +volumeunit = IfcUnitEnum.VOLUMEUNIT +userdefined = IfcUnitEnum.USERDEFINED IfcUnitaryControlElementTypeEnum = enum_namespace() -alarmpanel = getattr(IfcUnitaryControlElementTypeEnum, 'ALARMPANEL', INDETERMINATE) -controlpanel = getattr(IfcUnitaryControlElementTypeEnum, 'CONTROLPANEL', INDETERMINATE) -gasdetectionpanel = getattr(IfcUnitaryControlElementTypeEnum, 'GASDETECTIONPANEL', INDETERMINATE) -indicatorpanel = getattr(IfcUnitaryControlElementTypeEnum, 'INDICATORPANEL', INDETERMINATE) -mimicpanel = getattr(IfcUnitaryControlElementTypeEnum, 'MIMICPANEL', INDETERMINATE) -humidistat = getattr(IfcUnitaryControlElementTypeEnum, 'HUMIDISTAT', INDETERMINATE) -thermostat = getattr(IfcUnitaryControlElementTypeEnum, 'THERMOSTAT', INDETERMINATE) -weatherstation = getattr(IfcUnitaryControlElementTypeEnum, 'WEATHERSTATION', INDETERMINATE) -userdefined = getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcUnitaryControlElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +alarmpanel = IfcUnitaryControlElementTypeEnum.ALARMPANEL +controlpanel = IfcUnitaryControlElementTypeEnum.CONTROLPANEL +gasdetectionpanel = IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL +indicatorpanel = IfcUnitaryControlElementTypeEnum.INDICATORPANEL +mimicpanel = IfcUnitaryControlElementTypeEnum.MIMICPANEL +humidistat = IfcUnitaryControlElementTypeEnum.HUMIDISTAT +thermostat = IfcUnitaryControlElementTypeEnum.THERMOSTAT +weatherstation = IfcUnitaryControlElementTypeEnum.WEATHERSTATION +userdefined = IfcUnitaryControlElementTypeEnum.USERDEFINED +notdefined = IfcUnitaryControlElementTypeEnum.NOTDEFINED IfcUnitaryEquipmentTypeEnum = enum_namespace() -airhandler = getattr(IfcUnitaryEquipmentTypeEnum, 'AIRHANDLER', INDETERMINATE) -airconditioningunit = getattr(IfcUnitaryEquipmentTypeEnum, 'AIRCONDITIONINGUNIT', INDETERMINATE) -dehumidifier = getattr(IfcUnitaryEquipmentTypeEnum, 'DEHUMIDIFIER', INDETERMINATE) -splitsystem = getattr(IfcUnitaryEquipmentTypeEnum, 'SPLITSYSTEM', INDETERMINATE) -rooftopunit = getattr(IfcUnitaryEquipmentTypeEnum, 'ROOFTOPUNIT', INDETERMINATE) -userdefined = getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcUnitaryEquipmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +airhandler = IfcUnitaryEquipmentTypeEnum.AIRHANDLER +airconditioningunit = IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT +dehumidifier = IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER +splitsystem = IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM +rooftopunit = IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT +userdefined = IfcUnitaryEquipmentTypeEnum.USERDEFINED +notdefined = IfcUnitaryEquipmentTypeEnum.NOTDEFINED IfcValveTypeEnum = enum_namespace() -airrelease = getattr(IfcValveTypeEnum, 'AIRRELEASE', INDETERMINATE) -antivacuum = getattr(IfcValveTypeEnum, 'ANTIVACUUM', INDETERMINATE) -changeover = getattr(IfcValveTypeEnum, 'CHANGEOVER', INDETERMINATE) -check = getattr(IfcValveTypeEnum, 'CHECK', INDETERMINATE) -commissioning = getattr(IfcValveTypeEnum, 'COMMISSIONING', INDETERMINATE) -diverting = getattr(IfcValveTypeEnum, 'DIVERTING', INDETERMINATE) -drawoffcock = getattr(IfcValveTypeEnum, 'DRAWOFFCOCK', INDETERMINATE) -doublecheck = getattr(IfcValveTypeEnum, 'DOUBLECHECK', INDETERMINATE) -doubleregulating = getattr(IfcValveTypeEnum, 'DOUBLEREGULATING', INDETERMINATE) -faucet = getattr(IfcValveTypeEnum, 'FAUCET', INDETERMINATE) -flushing = getattr(IfcValveTypeEnum, 'FLUSHING', INDETERMINATE) -gascock = getattr(IfcValveTypeEnum, 'GASCOCK', INDETERMINATE) -gastap = getattr(IfcValveTypeEnum, 'GASTAP', INDETERMINATE) -isolating = getattr(IfcValveTypeEnum, 'ISOLATING', INDETERMINATE) -mixing = getattr(IfcValveTypeEnum, 'MIXING', INDETERMINATE) -pressurereducing = getattr(IfcValveTypeEnum, 'PRESSUREREDUCING', INDETERMINATE) -pressurerelief = getattr(IfcValveTypeEnum, 'PRESSURERELIEF', INDETERMINATE) -regulating = getattr(IfcValveTypeEnum, 'REGULATING', INDETERMINATE) -safetycutoff = getattr(IfcValveTypeEnum, 'SAFETYCUTOFF', INDETERMINATE) -steamtrap = getattr(IfcValveTypeEnum, 'STEAMTRAP', INDETERMINATE) -stopcock = getattr(IfcValveTypeEnum, 'STOPCOCK', INDETERMINATE) -userdefined = getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcValveTypeEnum, 'NOTDEFINED', INDETERMINATE) +airrelease = IfcValveTypeEnum.AIRRELEASE +antivacuum = IfcValveTypeEnum.ANTIVACUUM +changeover = IfcValveTypeEnum.CHANGEOVER +check = IfcValveTypeEnum.CHECK +commissioning = IfcValveTypeEnum.COMMISSIONING +diverting = IfcValveTypeEnum.DIVERTING +drawoffcock = IfcValveTypeEnum.DRAWOFFCOCK +doublecheck = IfcValveTypeEnum.DOUBLECHECK +doubleregulating = IfcValveTypeEnum.DOUBLEREGULATING +faucet = IfcValveTypeEnum.FAUCET +flushing = IfcValveTypeEnum.FLUSHING +gascock = IfcValveTypeEnum.GASCOCK +gastap = IfcValveTypeEnum.GASTAP +isolating = IfcValveTypeEnum.ISOLATING +mixing = IfcValveTypeEnum.MIXING +pressurereducing = IfcValveTypeEnum.PRESSUREREDUCING +pressurerelief = IfcValveTypeEnum.PRESSURERELIEF +regulating = IfcValveTypeEnum.REGULATING +safetycutoff = IfcValveTypeEnum.SAFETYCUTOFF +steamtrap = IfcValveTypeEnum.STEAMTRAP +stopcock = IfcValveTypeEnum.STOPCOCK +userdefined = IfcValveTypeEnum.USERDEFINED +notdefined = IfcValveTypeEnum.NOTDEFINED IfcVibrationDamperTypeEnum = enum_namespace() -bending_yield = getattr(IfcVibrationDamperTypeEnum, 'BENDING_YIELD', INDETERMINATE) -shear_yield = getattr(IfcVibrationDamperTypeEnum, 'SHEAR_YIELD', INDETERMINATE) -axial_yield = getattr(IfcVibrationDamperTypeEnum, 'AXIAL_YIELD', INDETERMINATE) -friction = getattr(IfcVibrationDamperTypeEnum, 'FRICTION', INDETERMINATE) -viscous = getattr(IfcVibrationDamperTypeEnum, 'VISCOUS', INDETERMINATE) -rubber = getattr(IfcVibrationDamperTypeEnum, 'RUBBER', INDETERMINATE) -userdefined = getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVibrationDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_yield = IfcVibrationDamperTypeEnum.BENDING_YIELD +shear_yield = IfcVibrationDamperTypeEnum.SHEAR_YIELD +axial_yield = IfcVibrationDamperTypeEnum.AXIAL_YIELD +friction = IfcVibrationDamperTypeEnum.FRICTION +viscous = IfcVibrationDamperTypeEnum.VISCOUS +rubber = IfcVibrationDamperTypeEnum.RUBBER +userdefined = IfcVibrationDamperTypeEnum.USERDEFINED +notdefined = IfcVibrationDamperTypeEnum.NOTDEFINED IfcVibrationIsolatorTypeEnum = enum_namespace() -compression = getattr(IfcVibrationIsolatorTypeEnum, 'COMPRESSION', INDETERMINATE) -spring = getattr(IfcVibrationIsolatorTypeEnum, 'SPRING', INDETERMINATE) -base = getattr(IfcVibrationIsolatorTypeEnum, 'BASE', INDETERMINATE) -userdefined = getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVibrationIsolatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +compression = IfcVibrationIsolatorTypeEnum.COMPRESSION +spring = IfcVibrationIsolatorTypeEnum.SPRING +base = IfcVibrationIsolatorTypeEnum.BASE +userdefined = IfcVibrationIsolatorTypeEnum.USERDEFINED +notdefined = IfcVibrationIsolatorTypeEnum.NOTDEFINED IfcVoidingFeatureTypeEnum = enum_namespace() -cutout = getattr(IfcVoidingFeatureTypeEnum, 'CUTOUT', INDETERMINATE) -notch = getattr(IfcVoidingFeatureTypeEnum, 'NOTCH', INDETERMINATE) -hole = getattr(IfcVoidingFeatureTypeEnum, 'HOLE', INDETERMINATE) -miter = getattr(IfcVoidingFeatureTypeEnum, 'MITER', INDETERMINATE) -chamfer = getattr(IfcVoidingFeatureTypeEnum, 'CHAMFER', INDETERMINATE) -edge = getattr(IfcVoidingFeatureTypeEnum, 'EDGE', INDETERMINATE) -userdefined = getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVoidingFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +cutout = IfcVoidingFeatureTypeEnum.CUTOUT +notch = IfcVoidingFeatureTypeEnum.NOTCH +hole = IfcVoidingFeatureTypeEnum.HOLE +miter = IfcVoidingFeatureTypeEnum.MITER +chamfer = IfcVoidingFeatureTypeEnum.CHAMFER +edge = IfcVoidingFeatureTypeEnum.EDGE +userdefined = IfcVoidingFeatureTypeEnum.USERDEFINED +notdefined = IfcVoidingFeatureTypeEnum.NOTDEFINED IfcWallTypeEnum = enum_namespace() -movable = getattr(IfcWallTypeEnum, 'MOVABLE', INDETERMINATE) -parapet = getattr(IfcWallTypeEnum, 'PARAPET', INDETERMINATE) -partitioning = getattr(IfcWallTypeEnum, 'PARTITIONING', INDETERMINATE) -plumbingwall = getattr(IfcWallTypeEnum, 'PLUMBINGWALL', INDETERMINATE) -shear = getattr(IfcWallTypeEnum, 'SHEAR', INDETERMINATE) -solidwall = getattr(IfcWallTypeEnum, 'SOLIDWALL', INDETERMINATE) -standard = getattr(IfcWallTypeEnum, 'STANDARD', INDETERMINATE) -polygonal = getattr(IfcWallTypeEnum, 'POLYGONAL', INDETERMINATE) -elementedwall = getattr(IfcWallTypeEnum, 'ELEMENTEDWALL', INDETERMINATE) -retainingwall = getattr(IfcWallTypeEnum, 'RETAININGWALL', INDETERMINATE) -userdefined = getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +movable = IfcWallTypeEnum.MOVABLE +parapet = IfcWallTypeEnum.PARAPET +partitioning = IfcWallTypeEnum.PARTITIONING +plumbingwall = IfcWallTypeEnum.PLUMBINGWALL +shear = IfcWallTypeEnum.SHEAR +solidwall = IfcWallTypeEnum.SOLIDWALL +standard = IfcWallTypeEnum.STANDARD +polygonal = IfcWallTypeEnum.POLYGONAL +elementedwall = IfcWallTypeEnum.ELEMENTEDWALL +retainingwall = IfcWallTypeEnum.RETAININGWALL +userdefined = IfcWallTypeEnum.USERDEFINED +notdefined = IfcWallTypeEnum.NOTDEFINED IfcWasteTerminalTypeEnum = enum_namespace() -floortrap = getattr(IfcWasteTerminalTypeEnum, 'FLOORTRAP', INDETERMINATE) -floorwaste = getattr(IfcWasteTerminalTypeEnum, 'FLOORWASTE', INDETERMINATE) -gullysump = getattr(IfcWasteTerminalTypeEnum, 'GULLYSUMP', INDETERMINATE) -gullytrap = getattr(IfcWasteTerminalTypeEnum, 'GULLYTRAP', INDETERMINATE) -roofdrain = getattr(IfcWasteTerminalTypeEnum, 'ROOFDRAIN', INDETERMINATE) -wastedisposalunit = getattr(IfcWasteTerminalTypeEnum, 'WASTEDISPOSALUNIT', INDETERMINATE) -wastetrap = getattr(IfcWasteTerminalTypeEnum, 'WASTETRAP', INDETERMINATE) -userdefined = getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWasteTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +floortrap = IfcWasteTerminalTypeEnum.FLOORTRAP +floorwaste = IfcWasteTerminalTypeEnum.FLOORWASTE +gullysump = IfcWasteTerminalTypeEnum.GULLYSUMP +gullytrap = IfcWasteTerminalTypeEnum.GULLYTRAP +roofdrain = IfcWasteTerminalTypeEnum.ROOFDRAIN +wastedisposalunit = IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT +wastetrap = IfcWasteTerminalTypeEnum.WASTETRAP +userdefined = IfcWasteTerminalTypeEnum.USERDEFINED +notdefined = IfcWasteTerminalTypeEnum.NOTDEFINED IfcWindowPanelOperationEnum = enum_namespace() -sidehungrighthand = getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGRIGHTHAND', INDETERMINATE) -sidehunglefthand = getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGLEFTHAND', INDETERMINATE) -tiltandturnrighthand = getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNRIGHTHAND', INDETERMINATE) -tiltandturnlefthand = getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNLEFTHAND', INDETERMINATE) -tophung = getattr(IfcWindowPanelOperationEnum, 'TOPHUNG', INDETERMINATE) -bottomhung = getattr(IfcWindowPanelOperationEnum, 'BOTTOMHUNG', INDETERMINATE) -pivothorizontal = getattr(IfcWindowPanelOperationEnum, 'PIVOTHORIZONTAL', INDETERMINATE) -pivotvertical = getattr(IfcWindowPanelOperationEnum, 'PIVOTVERTICAL', INDETERMINATE) -slidinghorizontal = getattr(IfcWindowPanelOperationEnum, 'SLIDINGHORIZONTAL', INDETERMINATE) -slidingvertical = getattr(IfcWindowPanelOperationEnum, 'SLIDINGVERTICAL', INDETERMINATE) -removablecasement = getattr(IfcWindowPanelOperationEnum, 'REMOVABLECASEMENT', INDETERMINATE) -fixedcasement = getattr(IfcWindowPanelOperationEnum, 'FIXEDCASEMENT', INDETERMINATE) -otheroperation = getattr(IfcWindowPanelOperationEnum, 'OTHEROPERATION', INDETERMINATE) -notdefined = getattr(IfcWindowPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +sidehungrighthand = IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND +sidehunglefthand = IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND +tiltandturnrighthand = IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND +tiltandturnlefthand = IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND +tophung = IfcWindowPanelOperationEnum.TOPHUNG +bottomhung = IfcWindowPanelOperationEnum.BOTTOMHUNG +pivothorizontal = IfcWindowPanelOperationEnum.PIVOTHORIZONTAL +pivotvertical = IfcWindowPanelOperationEnum.PIVOTVERTICAL +slidinghorizontal = IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL +slidingvertical = IfcWindowPanelOperationEnum.SLIDINGVERTICAL +removablecasement = IfcWindowPanelOperationEnum.REMOVABLECASEMENT +fixedcasement = IfcWindowPanelOperationEnum.FIXEDCASEMENT +otheroperation = IfcWindowPanelOperationEnum.OTHEROPERATION +notdefined = IfcWindowPanelOperationEnum.NOTDEFINED IfcWindowPanelPositionEnum = enum_namespace() -left = getattr(IfcWindowPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = getattr(IfcWindowPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = getattr(IfcWindowPanelPositionEnum, 'RIGHT', INDETERMINATE) -bottom = getattr(IfcWindowPanelPositionEnum, 'BOTTOM', INDETERMINATE) -top = getattr(IfcWindowPanelPositionEnum, 'TOP', INDETERMINATE) -notdefined = getattr(IfcWindowPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcWindowPanelPositionEnum.LEFT +middle = IfcWindowPanelPositionEnum.MIDDLE +right = IfcWindowPanelPositionEnum.RIGHT +bottom = IfcWindowPanelPositionEnum.BOTTOM +top = IfcWindowPanelPositionEnum.TOP +notdefined = IfcWindowPanelPositionEnum.NOTDEFINED IfcWindowStyleConstructionEnum = enum_namespace() -aluminium = getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = getattr(IfcWindowStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = getattr(IfcWindowStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = getattr(IfcWindowStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -plastic = getattr(IfcWindowStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -other_construction = getattr(IfcWindowStyleConstructionEnum, 'OTHER_CONSTRUCTION', INDETERMINATE) -notdefined = getattr(IfcWindowStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcWindowStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcWindowStyleConstructionEnum.STEEL +wood = IfcWindowStyleConstructionEnum.WOOD +aluminium_wood = IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD +plastic = IfcWindowStyleConstructionEnum.PLASTIC +other_construction = IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION +notdefined = IfcWindowStyleConstructionEnum.NOTDEFINED IfcWindowStyleOperationEnum = enum_namespace() -single_panel = getattr(IfcWindowStyleOperationEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = getattr(IfcWindowStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowStyleOperationEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowStyleOperationEnum.USERDEFINED +notdefined = IfcWindowStyleOperationEnum.NOTDEFINED IfcWindowTypeEnum = enum_namespace() -window = getattr(IfcWindowTypeEnum, 'WINDOW', INDETERMINATE) -skylight = getattr(IfcWindowTypeEnum, 'SKYLIGHT', INDETERMINATE) -lightdome = getattr(IfcWindowTypeEnum, 'LIGHTDOME', INDETERMINATE) -userdefined = getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowTypeEnum, 'NOTDEFINED', INDETERMINATE) +window = IfcWindowTypeEnum.WINDOW +skylight = IfcWindowTypeEnum.SKYLIGHT +lightdome = IfcWindowTypeEnum.LIGHTDOME +userdefined = IfcWindowTypeEnum.USERDEFINED +notdefined = IfcWindowTypeEnum.NOTDEFINED IfcWindowTypePartitioningEnum = enum_namespace() -single_panel = getattr(IfcWindowTypePartitioningEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = getattr(IfcWindowTypePartitioningEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowTypePartitioningEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowTypePartitioningEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowTypePartitioningEnum.USERDEFINED +notdefined = IfcWindowTypePartitioningEnum.NOTDEFINED IfcWorkCalendarTypeEnum = enum_namespace() -firstshift = getattr(IfcWorkCalendarTypeEnum, 'FIRSTSHIFT', INDETERMINATE) -secondshift = getattr(IfcWorkCalendarTypeEnum, 'SECONDSHIFT', INDETERMINATE) -thirdshift = getattr(IfcWorkCalendarTypeEnum, 'THIRDSHIFT', INDETERMINATE) -userdefined = getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkCalendarTypeEnum, 'NOTDEFINED', INDETERMINATE) +firstshift = IfcWorkCalendarTypeEnum.FIRSTSHIFT +secondshift = IfcWorkCalendarTypeEnum.SECONDSHIFT +thirdshift = IfcWorkCalendarTypeEnum.THIRDSHIFT +userdefined = IfcWorkCalendarTypeEnum.USERDEFINED +notdefined = IfcWorkCalendarTypeEnum.NOTDEFINED IfcWorkPlanTypeEnum = enum_namespace() -actual = getattr(IfcWorkPlanTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = getattr(IfcWorkPlanTypeEnum, 'BASELINE', INDETERMINATE) -planned = getattr(IfcWorkPlanTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkPlanTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkPlanTypeEnum.ACTUAL +baseline = IfcWorkPlanTypeEnum.BASELINE +planned = IfcWorkPlanTypeEnum.PLANNED +userdefined = IfcWorkPlanTypeEnum.USERDEFINED +notdefined = IfcWorkPlanTypeEnum.NOTDEFINED IfcWorkScheduleTypeEnum = enum_namespace() -actual = getattr(IfcWorkScheduleTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = getattr(IfcWorkScheduleTypeEnum, 'BASELINE', INDETERMINATE) -planned = getattr(IfcWorkScheduleTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkScheduleTypeEnum.ACTUAL +baseline = IfcWorkScheduleTypeEnum.BASELINE +planned = IfcWorkScheduleTypeEnum.PLANNED +userdefined = IfcWorkScheduleTypeEnum.USERDEFINED +notdefined = IfcWorkScheduleTypeEnum.NOTDEFINED def IfcActionRequest(*args, **kwargs): return ifcopenshell.create_entity('IfcActionRequest', 'IFC4X2', *args, **kwargs) @@ -4558,7 +4568,7 @@ class IfcBoxAlignment_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False class IfcCardinalPointReference_GreaterThanZero: SCOPE = 'type' @@ -4639,7 +4649,7 @@ class IfcFontStyle_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False class IfcFontVariant_WR1: SCOPE = 'type' @@ -4648,7 +4658,7 @@ class IfcFontVariant_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False class IfcFontWeight_WR1: SCOPE = 'type' @@ -4657,7 +4667,7 @@ class IfcFontWeight_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False class IfcHeatingValueMeasure_WR1: SCOPE = 'type' @@ -4756,7 +4766,7 @@ class IfcTextAlignment_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False class IfcTextDecoration_WR1: SCOPE = 'type' @@ -4765,7 +4775,7 @@ class IfcTextDecoration_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False class IfcTextTransformation_WR1: SCOPE = 'type' @@ -4774,7 +4784,7 @@ class IfcTextTransformation_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False class IfcActorRole_WR1: SCOPE = 'entity' @@ -4783,8 +4793,8 @@ class IfcActorRole_WR1: @staticmethod def __call__(self): - role = getattr(self, 'Role', INDETERMINATE) - assert (role != getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) or (role == getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedRole', INDETERMINATE)))) is not False + role = express_getattr(self, 'Role', INDETERMINATE) + assert (role != express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) or (role == express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedRole', INDETERMINATE)))) is not False class IfcActuator_CorrectPredefinedType: SCOPE = 'entity' @@ -4793,8 +4803,8 @@ class IfcActuator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcActuator_CorrectTypeAssigned: SCOPE = 'entity' @@ -4803,8 +4813,8 @@ class IfcActuator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcactuatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcactuatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcActuatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -4813,8 +4823,8 @@ class IfcActuatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAddress_WR1: SCOPE = 'entity' @@ -4823,8 +4833,8 @@ class IfcAddress_WR1: @staticmethod def __call__(self): - purpose = getattr(self, 'Purpose', INDETERMINATE) - assert (not exists(purpose) or (purpose != getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) or (purpose == getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedPurpose', INDETERMINATE))))) is not False + purpose = express_getattr(self, 'Purpose', INDETERMINATE) + assert (not exists(purpose) or (purpose != express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) or (purpose == express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedPurpose', INDETERMINATE))))) is not False class IfcAdvancedBrep_HasAdvancedFaces: SCOPE = 'entity' @@ -4833,7 +4843,7 @@ class IfcAdvancedBrep_HasAdvancedFaces: @staticmethod def __call__(self): - assert (sizeof([afs for afs in getattr(getattr(self, 'Outer', INDETERMINATE), 'CfsFaces', INDETERMINATE) if not 'ifc4x2.ifcadvancedface' in typeof(afs)]) == 0) is not False + assert (sizeof([afs for afs in express_getattr(express_getattr(self, 'Outer', INDETERMINATE), 'CfsFaces', INDETERMINATE) if not 'ifc4x2.ifcadvancedface' in typeof(afs)]) == 0) is not False class IfcAdvancedBrepWithVoids_VoidsHaveAdvancedFaces: SCOPE = 'entity' @@ -4842,8 +4852,8 @@ class IfcAdvancedBrepWithVoids_VoidsHaveAdvancedFaces: @staticmethod def __call__(self): - voids = getattr(self, 'Voids', INDETERMINATE) - assert (sizeof([vsh for vsh in voids if sizeof([afs for afs in getattr(vsh, 'CfsFaces', INDETERMINATE) if not 'ifc4x2.ifcadvancedface' in typeof(afs)]) == 0]) == 0) is not False + voids = express_getattr(self, 'Voids', INDETERMINATE) + assert (sizeof([vsh for vsh in voids if sizeof([afs for afs in express_getattr(vsh, 'CfsFaces', INDETERMINATE) if not 'ifc4x2.ifcadvancedface' in typeof(afs)]) == 0]) == 0) is not False class IfcAdvancedFace_ApplicableSurface: SCOPE = 'entity' @@ -4852,7 +4862,7 @@ class IfcAdvancedFace_ApplicableSurface: @staticmethod def __call__(self): - assert (sizeof(['ifc4x2.ifcelementarysurface', 'ifc4x2.ifcsweptsurface', 'ifc4x2.ifcbsplinesurface'] * typeof(getattr(self, 'FaceSurface', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x2.ifcelementarysurface', 'ifc4x2.ifcsweptsurface', 'ifc4x2.ifcbsplinesurface'] * typeof(express_getattr(self, 'FaceSurface', INDETERMINATE))) == 1) is not False class IfcAdvancedFace_RequiresEdgeCurve: SCOPE = 'entity' @@ -4861,7 +4871,7 @@ class IfcAdvancedFace_RequiresEdgeCurve: @staticmethod def __call__(self): - assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x2.ifcedgeloop' in typeof(getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in getattr(getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not 'ifc4x2.ifcedgecurve' in typeof(getattr(oe, 'EdgeElement', INDETERMINATE))]) == 0]) == 0) is not False + assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in express_getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x2.ifcedgeloop' in typeof(express_getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in express_getattr(express_getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not 'ifc4x2.ifcedgecurve' in typeof(express_getattr(oe, 'EdgeElement', INDETERMINATE))]) == 0]) == 0) is not False class IfcAdvancedFace_ApplicableEdgeCurves: SCOPE = 'entity' @@ -4870,7 +4880,7 @@ class IfcAdvancedFace_ApplicableEdgeCurves: @staticmethod def __call__(self): - assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x2.ifcedgeloop' in typeof(getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in getattr(getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not sizeof(['ifc4x2.ifcline', 'ifc4x2.ifcconic', 'ifc4x2.ifcpolyline', 'ifc4x2.ifcbsplinecurve'] * typeof(getattr(getattr(oe, 'EdgeElement', INDETERMINATE), 'EdgeGeometry', INDETERMINATE))) == 1]) == 0]) == 0) is not False + assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in express_getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x2.ifcedgeloop' in typeof(express_getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in express_getattr(express_getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not sizeof(['ifc4x2.ifcline', 'ifc4x2.ifcconic', 'ifc4x2.ifcpolyline', 'ifc4x2.ifcbsplinecurve'] * typeof(express_getattr(express_getattr(oe, 'EdgeElement', INDETERMINATE), 'EdgeGeometry', INDETERMINATE))) == 1]) == 0]) == 0) is not False class IfcAirTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -4879,8 +4889,8 @@ class IfcAirTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -4889,8 +4899,8 @@ class IfcAirTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcairterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcairterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirTerminalBox_CorrectPredefinedType: SCOPE = 'entity' @@ -4899,8 +4909,8 @@ class IfcAirTerminalBox_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirTerminalBox_CorrectTypeAssigned: SCOPE = 'entity' @@ -4909,8 +4919,8 @@ class IfcAirTerminalBox_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcairterminalboxtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcairterminalboxtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirTerminalBoxType_CorrectPredefinedType: SCOPE = 'entity' @@ -4919,8 +4929,8 @@ class IfcAirTerminalBoxType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAirTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -4929,8 +4939,8 @@ class IfcAirTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAirToAirHeatRecovery_CorrectPredefinedType: SCOPE = 'entity' @@ -4939,8 +4949,8 @@ class IfcAirToAirHeatRecovery_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirToAirHeatRecovery_CorrectTypeAssigned: SCOPE = 'entity' @@ -4949,8 +4959,8 @@ class IfcAirToAirHeatRecovery_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcairtoairheatrecoverytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcairtoairheatrecoverytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirToAirHeatRecoveryType_CorrectPredefinedType: SCOPE = 'entity' @@ -4959,8 +4969,8 @@ class IfcAirToAirHeatRecoveryType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAlarm_CorrectPredefinedType: SCOPE = 'entity' @@ -4969,8 +4979,8 @@ class IfcAlarm_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAlarm_CorrectTypeAssigned: SCOPE = 'entity' @@ -4979,8 +4989,8 @@ class IfcAlarm_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcalarmtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcalarmtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAlarmType_CorrectPredefinedType: SCOPE = 'entity' @@ -4989,8 +4999,8 @@ class IfcAlarmType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcApproval_HasIdentifierOrName: SCOPE = 'entity' @@ -4999,8 +5009,8 @@ class IfcApproval_HasIdentifierOrName: @staticmethod def __call__(self): - identifier = getattr(self, 'Identifier', INDETERMINATE) - name = getattr(self, 'Name', INDETERMINATE) + identifier = express_getattr(self, 'Identifier', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) assert (exists(identifier) or exists(name)) is not False class IfcArbitraryClosedProfileDef_WR1: @@ -5010,8 +5020,8 @@ class IfcArbitraryClosedProfileDef_WR1: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) - assert (getattr(outercurve, 'Dim', INDETERMINATE) == 2) is not False + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) + assert (express_getattr(outercurve, 'Dim', INDETERMINATE) == 2) is not False class IfcArbitraryClosedProfileDef_WR2: SCOPE = 'entity' @@ -5020,7 +5030,7 @@ class IfcArbitraryClosedProfileDef_WR2: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) assert (not 'ifc4x2.ifcline' in typeof(outercurve)) is not False class IfcArbitraryClosedProfileDef_WR3: @@ -5030,7 +5040,7 @@ class IfcArbitraryClosedProfileDef_WR3: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) assert (not 'ifc4x2.ifcoffsetcurve2d' in typeof(outercurve)) is not False class IfcArbitraryOpenProfileDef_WR11: @@ -5040,7 +5050,7 @@ class IfcArbitraryOpenProfileDef_WR11: @staticmethod def __call__(self): - assert ('ifc4x2.ifccenterlineprofiledef' in typeof(self) or getattr(self, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False + assert ('ifc4x2.ifccenterlineprofiledef' in typeof(self) or express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False class IfcArbitraryOpenProfileDef_WR12: SCOPE = 'entity' @@ -5049,8 +5059,8 @@ class IfcArbitraryOpenProfileDef_WR12: @staticmethod def __call__(self): - curve = getattr(self, 'Curve', INDETERMINATE) - assert (getattr(curve, 'Dim', INDETERMINATE) == 2) is not False + curve = express_getattr(self, 'Curve', INDETERMINATE) + assert (express_getattr(curve, 'Dim', INDETERMINATE) == 2) is not False class IfcArbitraryProfileDefWithVoids_WR1: SCOPE = 'entity' @@ -5059,7 +5069,7 @@ class IfcArbitraryProfileDefWithVoids_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'ProfileType', INDETERMINATE) == area) is not False + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == area) is not False class IfcArbitraryProfileDefWithVoids_WR2: SCOPE = 'entity' @@ -5068,8 +5078,8 @@ class IfcArbitraryProfileDefWithVoids_WR2: @staticmethod def __call__(self): - innercurves = getattr(self, 'InnerCurves', INDETERMINATE) - assert (sizeof([temp for temp in innercurves if getattr(temp, 'Dim', INDETERMINATE) != 2]) == 0) is not False + innercurves = express_getattr(self, 'InnerCurves', INDETERMINATE) + assert (sizeof([temp for temp in innercurves if express_getattr(temp, 'Dim', INDETERMINATE) != 2]) == 0) is not False class IfcArbitraryProfileDefWithVoids_WR3: SCOPE = 'entity' @@ -5078,7 +5088,7 @@ class IfcArbitraryProfileDefWithVoids_WR3: @staticmethod def __call__(self): - innercurves = getattr(self, 'InnerCurves', INDETERMINATE) + innercurves = express_getattr(self, 'InnerCurves', INDETERMINATE) assert (sizeof([temp for temp in innercurves if 'ifc4x2.ifcline' in typeof(temp)]) == 0) is not False class IfcAsymmetricIShapeProfileDef_ValidFlangeThickness: @@ -5088,9 +5098,9 @@ class IfcAsymmetricIShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - bottomflangethickness = getattr(self, 'BottomFlangeThickness', INDETERMINATE) - topflangethickness = getattr(self, 'TopFlangeThickness', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + bottomflangethickness = express_getattr(self, 'BottomFlangeThickness', INDETERMINATE) + topflangethickness = express_getattr(self, 'TopFlangeThickness', INDETERMINATE) assert (not exists(topflangethickness) or bottomflangethickness + topflangethickness < overalldepth) is not False class IfcAsymmetricIShapeProfileDef_ValidWebThickness: @@ -5100,9 +5110,9 @@ class IfcAsymmetricIShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - bottomflangewidth = getattr(self, 'BottomFlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - topflangewidth = getattr(self, 'TopFlangeWidth', INDETERMINATE) + bottomflangewidth = express_getattr(self, 'BottomFlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + topflangewidth = express_getattr(self, 'TopFlangeWidth', INDETERMINATE) assert (webthickness < bottomflangewidth and webthickness < topflangewidth) is not False class IfcAsymmetricIShapeProfileDef_ValidBottomFilletRadius: @@ -5112,9 +5122,9 @@ class IfcAsymmetricIShapeProfileDef_ValidBottomFilletRadius: @staticmethod def __call__(self): - bottomflangewidth = getattr(self, 'BottomFlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - bottomflangefilletradius = getattr(self, 'BottomFlangeFilletRadius', INDETERMINATE) + bottomflangewidth = express_getattr(self, 'BottomFlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + bottomflangefilletradius = express_getattr(self, 'BottomFlangeFilletRadius', INDETERMINATE) assert (not exists(bottomflangefilletradius) or bottomflangefilletradius <= (bottomflangewidth - webthickness) / 2.0) is not False class IfcAsymmetricIShapeProfileDef_ValidTopFilletRadius: @@ -5124,9 +5134,9 @@ class IfcAsymmetricIShapeProfileDef_ValidTopFilletRadius: @staticmethod def __call__(self): - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - topflangewidth = getattr(self, 'TopFlangeWidth', INDETERMINATE) - topflangefilletradius = getattr(self, 'TopFlangeFilletRadius', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + topflangewidth = express_getattr(self, 'TopFlangeWidth', INDETERMINATE) + topflangefilletradius = express_getattr(self, 'TopFlangeFilletRadius', INDETERMINATE) assert (not exists(topflangefilletradius) or topflangefilletradius <= (topflangewidth - webthickness) / 2.0) is not False class IfcAudioVisualAppliance_CorrectPredefinedType: @@ -5136,8 +5146,8 @@ class IfcAudioVisualAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAudioVisualAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -5146,8 +5156,8 @@ class IfcAudioVisualAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcaudiovisualappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcaudiovisualappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAudioVisualApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -5156,8 +5166,8 @@ class IfcAudioVisualApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAxis1Placement_AxisIs3D: SCOPE = 'entity' @@ -5166,8 +5176,8 @@ class IfcAxis1Placement_AxisIs3D: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (not exists(axis) or getattr(axis, 'Dim', INDETERMINATE) == 3) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (not exists(axis) or express_getattr(axis, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis1Placement_LocationIs3D: SCOPE = 'entity' @@ -5176,10 +5186,10 @@ class IfcAxis1Placement_LocationIs3D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False def calc_IfcAxis1Placement_Z(self): - axis = getattr(self, 'Axis', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) return nvl(IfcNormalise(axis), IfcDirection(DirectionRatios=[0.0, 0.0, 1.0])) class IfcAxis2Placement2D_RefDirIs2D: @@ -5189,8 +5199,8 @@ class IfcAxis2Placement2D_RefDirIs2D: @staticmethod def __call__(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(refdirection) or getattr(refdirection, 'Dim', INDETERMINATE) == 2) is not False + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(refdirection) or express_getattr(refdirection, 'Dim', INDETERMINATE) == 2) is not False class IfcAxis2Placement2D_LocationIs2D: SCOPE = 'entity' @@ -5199,10 +5209,10 @@ class IfcAxis2Placement2D_LocationIs2D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False def calc_IfcAxis2Placement2D_P(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) return IfcBuild2Axes(refdirection) class IfcAxis2Placement3D_LocationIs3D: @@ -5212,7 +5222,7 @@ class IfcAxis2Placement3D_LocationIs3D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_AxisIs3D: SCOPE = 'entity' @@ -5221,8 +5231,8 @@ class IfcAxis2Placement3D_AxisIs3D: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (not exists(axis) or getattr(axis, 'Dim', INDETERMINATE) == 3) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (not exists(axis) or express_getattr(axis, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_RefDirIs3D: SCOPE = 'entity' @@ -5231,8 +5241,8 @@ class IfcAxis2Placement3D_RefDirIs3D: @staticmethod def __call__(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(refdirection) or getattr(refdirection, 'Dim', INDETERMINATE) == 3) is not False + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(refdirection) or express_getattr(refdirection, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_AxisToRefDirPosition: SCOPE = 'entity' @@ -5241,9 +5251,9 @@ class IfcAxis2Placement3D_AxisToRefDirPosition: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(axis) or not exists(refdirection) or getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(axis) or not exists(refdirection) or express_getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False class IfcAxis2Placement3D_AxisAndRefDirProvision: SCOPE = 'entity' @@ -5252,13 +5262,13 @@ class IfcAxis2Placement3D_AxisAndRefDirProvision: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) assert (not exists(axis) ^ exists(refdirection)) is not False def calc_IfcAxis2Placement3D_P(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) return IfcBuildAxes(axis, refdirection) class IfcBSplineCurve_SameDim: @@ -5268,16 +5278,16 @@ class IfcBSplineCurve_SameDim: @staticmethod def __call__(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - assert (sizeof([temp for temp in controlpointslist if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + assert (sizeof([temp for temp in controlpointslist if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcBSplineCurve_UpperIndexOnControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(controlpointslist) - 1 def calc_IfcBSplineCurve_ControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - upperindexoncontrolpoints = getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + upperindexoncontrolpoints = express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) return IfcListToArray(controlpointslist, 0, upperindexoncontrolpoints) class IfcBSplineCurveWithKnots_ConsistentBSpline: @@ -5287,11 +5297,11 @@ class IfcBSplineCurveWithKnots_ConsistentBSpline: @staticmethod def __call__(self): - degree = getattr(self, 'Degree', INDETERMINATE) - upperindexoncontrolpoints = getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) - knotmultiplicities = getattr(self, 'KnotMultiplicities', INDETERMINATE) - knots = getattr(self, 'Knots', INDETERMINATE) - upperindexonknots = getattr(self, 'UpperIndexOnKnots', INDETERMINATE) + degree = express_getattr(self, 'Degree', INDETERMINATE) + upperindexoncontrolpoints = express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) + knotmultiplicities = express_getattr(self, 'KnotMultiplicities', INDETERMINATE) + knots = express_getattr(self, 'Knots', INDETERMINATE) + upperindexonknots = express_getattr(self, 'UpperIndexOnKnots', INDETERMINATE) assert IfcConstraintsParamBSpline(degree, upperindexonknots, upperindexoncontrolpoints, knotmultiplicities, knots) is not False class IfcBSplineCurveWithKnots_CorrespondingKnotLists: @@ -5301,26 +5311,26 @@ class IfcBSplineCurveWithKnots_CorrespondingKnotLists: @staticmethod def __call__(self): - knotmultiplicities = getattr(self, 'KnotMultiplicities', INDETERMINATE) - upperindexonknots = getattr(self, 'UpperIndexOnKnots', INDETERMINATE) + knotmultiplicities = express_getattr(self, 'KnotMultiplicities', INDETERMINATE) + upperindexonknots = express_getattr(self, 'UpperIndexOnKnots', INDETERMINATE) assert (sizeof(knotmultiplicities) == upperindexonknots) is not False def calc_IfcBSplineCurveWithKnots_UpperIndexOnKnots(self): - knots = getattr(self, 'Knots', INDETERMINATE) + knots = express_getattr(self, 'Knots', INDETERMINATE) return sizeof(knots) def calc_IfcBSplineSurface_UUpper(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(controlpointslist) - 1 def calc_IfcBSplineSurface_VUpper(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) - 1 def calc_IfcBSplineSurface_ControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - uupper = getattr(self, 'UUpper', INDETERMINATE) - vupper = getattr(self, 'VUpper', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + uupper = express_getattr(self, 'UUpper', INDETERMINATE) + vupper = express_getattr(self, 'VUpper', INDETERMINATE) return IfcMakeArrayOfArray(controlpointslist, 0, uupper, 0, vupper) class IfcBSplineSurfaceWithKnots_UDirectionConstraints: @@ -5330,10 +5340,10 @@ class IfcBSplineSurfaceWithKnots_UDirectionConstraints: @staticmethod def __call__(self): - umultiplicities = getattr(self, 'UMultiplicities', INDETERMINATE) - uknots = getattr(self, 'UKnots', INDETERMINATE) - knotuupper = getattr(self, 'KnotUUpper', INDETERMINATE) - assert IfcConstraintsParamBSpline(getattr(self, 'UDegree', INDETERMINATE), knotuupper, getattr(self, 'UUpper', INDETERMINATE), umultiplicities, uknots) is not False + umultiplicities = express_getattr(self, 'UMultiplicities', INDETERMINATE) + uknots = express_getattr(self, 'UKnots', INDETERMINATE) + knotuupper = express_getattr(self, 'KnotUUpper', INDETERMINATE) + assert IfcConstraintsParamBSpline(express_getattr(self, 'UDegree', INDETERMINATE), knotuupper, express_getattr(self, 'UUpper', INDETERMINATE), umultiplicities, uknots) is not False class IfcBSplineSurfaceWithKnots_VDirectionConstraints: SCOPE = 'entity' @@ -5342,10 +5352,10 @@ class IfcBSplineSurfaceWithKnots_VDirectionConstraints: @staticmethod def __call__(self): - vmultiplicities = getattr(self, 'VMultiplicities', INDETERMINATE) - vknots = getattr(self, 'VKnots', INDETERMINATE) - knotvupper = getattr(self, 'KnotVUpper', INDETERMINATE) - assert IfcConstraintsParamBSpline(getattr(self, 'VDegree', INDETERMINATE), knotvupper, getattr(self, 'VUpper', INDETERMINATE), vmultiplicities, vknots) is not False + vmultiplicities = express_getattr(self, 'VMultiplicities', INDETERMINATE) + vknots = express_getattr(self, 'VKnots', INDETERMINATE) + knotvupper = express_getattr(self, 'KnotVUpper', INDETERMINATE) + assert IfcConstraintsParamBSpline(express_getattr(self, 'VDegree', INDETERMINATE), knotvupper, express_getattr(self, 'VUpper', INDETERMINATE), vmultiplicities, vknots) is not False class IfcBSplineSurfaceWithKnots_CorrespondingULists: SCOPE = 'entity' @@ -5354,8 +5364,8 @@ class IfcBSplineSurfaceWithKnots_CorrespondingULists: @staticmethod def __call__(self): - umultiplicities = getattr(self, 'UMultiplicities', INDETERMINATE) - knotuupper = getattr(self, 'KnotUUpper', INDETERMINATE) + umultiplicities = express_getattr(self, 'UMultiplicities', INDETERMINATE) + knotuupper = express_getattr(self, 'KnotUUpper', INDETERMINATE) assert (sizeof(umultiplicities) == knotuupper) is not False class IfcBSplineSurfaceWithKnots_CorrespondingVLists: @@ -5365,16 +5375,16 @@ class IfcBSplineSurfaceWithKnots_CorrespondingVLists: @staticmethod def __call__(self): - vmultiplicities = getattr(self, 'VMultiplicities', INDETERMINATE) - knotvupper = getattr(self, 'KnotVUpper', INDETERMINATE) + vmultiplicities = express_getattr(self, 'VMultiplicities', INDETERMINATE) + knotvupper = express_getattr(self, 'KnotVUpper', INDETERMINATE) assert (sizeof(vmultiplicities) == knotvupper) is not False def calc_IfcBSplineSurfaceWithKnots_KnotVUpper(self): - vknots = getattr(self, 'VKnots', INDETERMINATE) + vknots = express_getattr(self, 'VKnots', INDETERMINATE) return sizeof(vknots) def calc_IfcBSplineSurfaceWithKnots_KnotUUpper(self): - uknots = getattr(self, 'UKnots', INDETERMINATE) + uknots = express_getattr(self, 'UKnots', INDETERMINATE) return sizeof(uknots) class IfcBeam_CorrectPredefinedType: @@ -5384,8 +5394,8 @@ class IfcBeam_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBeam_CorrectTypeAssigned: SCOPE = 'entity' @@ -5394,8 +5404,8 @@ class IfcBeam_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcbeamtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcbeamtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBeamStandardCase_HasMaterialProfileSetUsage: SCOPE = 'entity' @@ -5404,7 +5414,7 @@ class IfcBeamStandardCase_HasMaterialProfileSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x2.ifcrelassociates.relatedobjects') if 'ifc4x2.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x2.ifcmaterialprofilesetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x2.ifcrelassociates.relatedobjects') if 'ifc4x2.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x2.ifcmaterialprofilesetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcBeamType_CorrectPredefinedType: SCOPE = 'entity' @@ -5413,8 +5423,8 @@ class IfcBeamType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBearing_CorrectPredefinedType: SCOPE = 'entity' @@ -5423,8 +5433,8 @@ class IfcBearing_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBearing_CorrectTypeAssigned: SCOPE = 'entity' @@ -5433,8 +5443,8 @@ class IfcBearing_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcbearingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcbearingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBearingType_CorrectPredefinedType: SCOPE = 'entity' @@ -5443,8 +5453,8 @@ class IfcBearingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBlobTexture_SupportedRasterFormat: SCOPE = 'entity' @@ -5453,7 +5463,7 @@ class IfcBlobTexture_SupportedRasterFormat: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['bmp', 'jpg', 'gif', 'png']) is not False + assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['bmp', 'jpg', 'gif', 'png']) is not False class IfcBlobTexture_RasterCodeByteStream: SCOPE = 'entity' @@ -5462,7 +5472,7 @@ class IfcBlobTexture_RasterCodeByteStream: @staticmethod def __call__(self): - rastercode = getattr(self, 'RasterCode', INDETERMINATE) + rastercode = express_getattr(self, 'RasterCode', INDETERMINATE) assert (blength(rastercode) % 8 == 0) is not False class IfcBoiler_CorrectPredefinedType: @@ -5472,8 +5482,8 @@ class IfcBoiler_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBoiler_CorrectTypeAssigned: SCOPE = 'entity' @@ -5482,8 +5492,8 @@ class IfcBoiler_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcboilertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcboilertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBoilerType_CorrectPredefinedType: SCOPE = 'entity' @@ -5492,8 +5502,8 @@ class IfcBoilerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBooleanClippingResult_FirstOperandType: SCOPE = 'entity' @@ -5502,7 +5512,7 @@ class IfcBooleanClippingResult_FirstOperandType: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) assert ('ifc4x2.ifcsweptareasolid' in typeof(firstoperand) or 'ifc4x2.ifcsweptdiscsolid' in typeof(firstoperand) or 'ifc4x2.ifcbooleanclippingresult' in typeof(firstoperand)) is not False class IfcBooleanClippingResult_SecondOperandType: @@ -5512,7 +5522,7 @@ class IfcBooleanClippingResult_SecondOperandType: @staticmethod def __call__(self): - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) assert ('ifc4x2.ifchalfspacesolid' in typeof(secondoperand)) is not False class IfcBooleanClippingResult_OperatorType: @@ -5522,7 +5532,7 @@ class IfcBooleanClippingResult_OperatorType: @staticmethod def __call__(self): - operator = getattr(self, 'Operator', INDETERMINATE) + operator = express_getattr(self, 'Operator', INDETERMINATE) assert (operator == difference) is not False class IfcBooleanResult_SameDim: @@ -5532,9 +5542,9 @@ class IfcBooleanResult_SameDim: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) - assert (getattr(firstoperand, 'Dim', INDETERMINATE) == getattr(secondoperand, 'Dim', INDETERMINATE)) is not False + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) + assert (express_getattr(firstoperand, 'Dim', INDETERMINATE) == express_getattr(secondoperand, 'Dim', INDETERMINATE)) is not False class IfcBooleanResult_FirstOperandClosed: SCOPE = 'entity' @@ -5543,8 +5553,8 @@ class IfcBooleanResult_FirstOperandClosed: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - assert (not 'ifc4x2.ifctessellatedfaceset' in typeof(firstoperand) or (exists(getattr(firstoperand, 'Closed', INDETERMINATE)) and getattr(firstoperand, 'Closed', INDETERMINATE))) is not False + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + assert (not 'ifc4x2.ifctessellatedfaceset' in typeof(firstoperand) or (exists(express_getattr(firstoperand, 'Closed', INDETERMINATE)) and express_getattr(firstoperand, 'Closed', INDETERMINATE))) is not False class IfcBooleanResult_SecondOperandClosed: SCOPE = 'entity' @@ -5553,12 +5563,12 @@ class IfcBooleanResult_SecondOperandClosed: @staticmethod def __call__(self): - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) - assert (not 'ifc4x2.ifctessellatedfaceset' in typeof(secondoperand) or (exists(getattr(secondoperand, 'Closed', INDETERMINATE)) and getattr(secondoperand, 'Closed', INDETERMINATE))) is not False + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) + assert (not 'ifc4x2.ifctessellatedfaceset' in typeof(secondoperand) or (exists(express_getattr(secondoperand, 'Closed', INDETERMINATE)) and express_getattr(secondoperand, 'Closed', INDETERMINATE))) is not False def calc_IfcBooleanResult_Dim(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - return getattr(firstoperand, 'Dim', INDETERMINATE) + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + return express_getattr(firstoperand, 'Dim', INDETERMINATE) class IfcBoundaryCurve_IsClosed: SCOPE = 'entity' @@ -5567,7 +5577,7 @@ class IfcBoundaryCurve_IsClosed: @staticmethod def __call__(self): - assert getattr(self, 'ClosedCurve', INDETERMINATE) is not False + assert express_getattr(self, 'ClosedCurve', INDETERMINATE) is not False def calc_IfcBoundingBox_Dim(self): return 3 @@ -5579,7 +5589,7 @@ class IfcBoxedHalfSpace_UnboundedSurface: @staticmethod def __call__(self): - assert (not 'ifc4x2.ifccurveboundedplane' in typeof(getattr(self, 'BaseSurface', INDETERMINATE))) is not False + assert (not 'ifc4x2.ifccurveboundedplane' in typeof(express_getattr(self, 'BaseSurface', INDETERMINATE))) is not False class IfcBuildingElement_MaxOneMaterialAssociation: SCOPE = 'entity' @@ -5588,7 +5598,7 @@ class IfcBuildingElement_MaxOneMaterialAssociation: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'HasAssociations', INDETERMINATE) if 'ifc4x2.ifcrelassociatesmaterial' in typeof(temp)]) <= 1) is not False + assert (sizeof([temp for temp in express_getattr(self, 'HasAssociations', INDETERMINATE) if 'ifc4x2.ifcrelassociatesmaterial' in typeof(temp)]) <= 1) is not False class IfcBuildingElementPart_CorrectPredefinedType: SCOPE = 'entity' @@ -5597,8 +5607,8 @@ class IfcBuildingElementPart_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuildingElementPart_CorrectTypeAssigned: SCOPE = 'entity' @@ -5607,8 +5617,8 @@ class IfcBuildingElementPart_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcbuildingelementparttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcbuildingelementparttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBuildingElementPartType_CorrectPredefinedType: SCOPE = 'entity' @@ -5617,8 +5627,8 @@ class IfcBuildingElementPartType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBuildingElementProxy_HasObjectName: SCOPE = 'entity' @@ -5627,7 +5637,7 @@ class IfcBuildingElementProxy_HasObjectName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcBuildingElementProxy_CorrectPredefinedType: SCOPE = 'entity' @@ -5636,8 +5646,8 @@ class IfcBuildingElementProxy_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuildingElementProxy_CorrectTypeAssigned: SCOPE = 'entity' @@ -5646,8 +5656,8 @@ class IfcBuildingElementProxy_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcbuildingelementproxytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcbuildingelementproxytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBuildingElementProxyType_CorrectPredefinedType: SCOPE = 'entity' @@ -5656,8 +5666,8 @@ class IfcBuildingElementProxyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBurner_CorrectPredefinedType: SCOPE = 'entity' @@ -5666,8 +5676,8 @@ class IfcBurner_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBurner_CorrectTypeAssigned: SCOPE = 'entity' @@ -5676,8 +5686,8 @@ class IfcBurner_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcburnertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcburnertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBurnerType_CorrectPredefinedType: SCOPE = 'entity' @@ -5686,8 +5696,8 @@ class IfcBurnerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCShapeProfileDef_ValidGirth: SCOPE = 'entity' @@ -5696,8 +5706,8 @@ class IfcCShapeProfileDef_ValidGirth: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - girth = getattr(self, 'Girth', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + girth = express_getattr(self, 'Girth', INDETERMINATE) assert (girth < depth / 2.0) is not False class IfcCShapeProfileDef_ValidInternalFilletRadius: @@ -5707,10 +5717,10 @@ class IfcCShapeProfileDef_ValidInternalFilletRadius: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - internalfilletradius = getattr(self, 'InternalFilletRadius', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + internalfilletradius = express_getattr(self, 'InternalFilletRadius', INDETERMINATE) assert (not exists(internalfilletradius) or (internalfilletradius <= width / 2.0 - wallthickness and internalfilletradius <= depth / 2.0 - wallthickness)) is not False class IfcCShapeProfileDef_ValidWallThickness: @@ -5720,9 +5730,9 @@ class IfcCShapeProfileDef_ValidWallThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) assert (wallthickness < width / 2.0 and wallthickness < depth / 2.0) is not False class IfcCableCarrierFitting_CorrectPredefinedType: @@ -5732,8 +5742,8 @@ class IfcCableCarrierFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableCarrierFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -5742,8 +5752,8 @@ class IfcCableCarrierFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccablecarrierfittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccablecarrierfittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableCarrierFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -5752,8 +5762,8 @@ class IfcCableCarrierFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableCarrierSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -5762,8 +5772,8 @@ class IfcCableCarrierSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableCarrierSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -5772,8 +5782,8 @@ class IfcCableCarrierSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccablecarriersegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccablecarriersegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableCarrierSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -5782,8 +5792,8 @@ class IfcCableCarrierSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -5792,8 +5802,8 @@ class IfcCableFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -5802,8 +5812,8 @@ class IfcCableFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccablefittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccablefittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -5812,8 +5822,8 @@ class IfcCableFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -5822,8 +5832,8 @@ class IfcCableSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -5832,8 +5842,8 @@ class IfcCableSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccablesegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccablesegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -5842,8 +5852,8 @@ class IfcCableSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCaissonFoundation_CorrectPredefinedType: SCOPE = 'entity' @@ -5852,8 +5862,8 @@ class IfcCaissonFoundation_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCaissonFoundation_CorrectTypeAssigned: SCOPE = 'entity' @@ -5862,8 +5872,8 @@ class IfcCaissonFoundation_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccaissonfoundationtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccaissonfoundationtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCaissonFoundationType_CorrectPredefinedType: SCOPE = 'entity' @@ -5872,8 +5882,8 @@ class IfcCaissonFoundationType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCartesianPoint_CP2Dor3D: SCOPE = 'entity' @@ -5882,11 +5892,11 @@ class IfcCartesianPoint_CP2Dor3D: @staticmethod def __call__(self): - coordinates = getattr(self, 'Coordinates', INDETERMINATE) + coordinates = express_getattr(self, 'Coordinates', INDETERMINATE) assert (hiindex(coordinates) >= 2) is not False def calc_IfcCartesianPoint_Dim(self): - coordinates = getattr(self, 'Coordinates', INDETERMINATE) + coordinates = express_getattr(self, 'Coordinates', INDETERMINATE) return hiindex(coordinates) def calc_IfcCartesianPointList_Dim(self): @@ -5899,16 +5909,16 @@ class IfcCartesianTransformationOperator_ScaleGreaterZero: @staticmethod def __call__(self): - scl = getattr(self, 'Scl', INDETERMINATE) + scl = express_getattr(self, 'Scl', INDETERMINATE) assert (scl > 0.0) is not False def calc_IfcCartesianTransformationOperator_Scl(self): - scale = getattr(self, 'Scale', INDETERMINATE) + scale = express_getattr(self, 'Scale', INDETERMINATE) return nvl(scale, 1.0) def calc_IfcCartesianTransformationOperator_Dim(self): - localorigin = getattr(self, 'LocalOrigin', INDETERMINATE) - return getattr(localorigin, 'Dim', INDETERMINATE) + localorigin = express_getattr(self, 'LocalOrigin', INDETERMINATE) + return express_getattr(localorigin, 'Dim', INDETERMINATE) class IfcCartesianTransformationOperator2D_DimEqual2: SCOPE = 'entity' @@ -5917,7 +5927,7 @@ class IfcCartesianTransformationOperator2D_DimEqual2: @staticmethod def __call__(self): - assert (getattr(self, 'Dim', INDETERMINATE) == 2) is not False + assert (express_getattr(self, 'Dim', INDETERMINATE) == 2) is not False class IfcCartesianTransformationOperator2D_Axis1Is2D: SCOPE = 'entity' @@ -5926,7 +5936,7 @@ class IfcCartesianTransformationOperator2D_Axis1Is2D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis1', INDETERMINATE)) or getattr(getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (not exists(express_getattr(self, 'Axis1', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False class IfcCartesianTransformationOperator2D_Axis2Is2D: SCOPE = 'entity' @@ -5935,10 +5945,10 @@ class IfcCartesianTransformationOperator2D_Axis2Is2D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis2', INDETERMINATE)) or getattr(getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (not exists(express_getattr(self, 'Axis2', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False def calc_IfcCartesianTransformationOperator2D_U(self): - return IfcBaseAxis(2, getattr(self, 'Axis1', INDETERMINATE), getattr(self, 'Axis2', INDETERMINATE), None) + return IfcBaseAxis(2, express_getattr(self, 'Axis1', INDETERMINATE), express_getattr(self, 'Axis2', INDETERMINATE), None) class IfcCartesianTransformationOperator2DnonUniform_Scale2GreaterZero: SCOPE = 'entity' @@ -5947,12 +5957,12 @@ class IfcCartesianTransformationOperator2DnonUniform_Scale2GreaterZero: @staticmethod def __call__(self): - scl2 = getattr(self, 'Scl2', INDETERMINATE) + scl2 = express_getattr(self, 'Scl2', INDETERMINATE) assert (scl2 > 0.0) is not False def calc_IfcCartesianTransformationOperator2DnonUniform_Scl2(self): - scale2 = getattr(self, 'Scale2', INDETERMINATE) - return nvl(scale2, getattr(self, 'Scl', INDETERMINATE)) + scale2 = express_getattr(self, 'Scale2', INDETERMINATE) + return nvl(scale2, express_getattr(self, 'Scl', INDETERMINATE)) class IfcCartesianTransformationOperator3D_DimIs3D: SCOPE = 'entity' @@ -5961,7 +5971,7 @@ class IfcCartesianTransformationOperator3D_DimIs3D: @staticmethod def __call__(self): - assert (getattr(self, 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(self, 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_Axis1Is3D: SCOPE = 'entity' @@ -5970,7 +5980,7 @@ class IfcCartesianTransformationOperator3D_Axis1Is3D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis1', INDETERMINATE)) or getattr(getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (not exists(express_getattr(self, 'Axis1', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_Axis2Is3D: SCOPE = 'entity' @@ -5979,7 +5989,7 @@ class IfcCartesianTransformationOperator3D_Axis2Is3D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis2', INDETERMINATE)) or getattr(getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (not exists(express_getattr(self, 'Axis2', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_Axis3Is3D: SCOPE = 'entity' @@ -5988,12 +5998,12 @@ class IfcCartesianTransformationOperator3D_Axis3Is3D: @staticmethod def __call__(self): - axis3 = getattr(self, 'Axis3', INDETERMINATE) - assert (not exists(axis3) or getattr(axis3, 'Dim', INDETERMINATE) == 3) is not False + axis3 = express_getattr(self, 'Axis3', INDETERMINATE) + assert (not exists(axis3) or express_getattr(axis3, 'Dim', INDETERMINATE) == 3) is not False def calc_IfcCartesianTransformationOperator3D_U(self): - axis3 = getattr(self, 'Axis3', INDETERMINATE) - return IfcBaseAxis(3, getattr(self, 'Axis1', INDETERMINATE), getattr(self, 'Axis2', INDETERMINATE), axis3) + axis3 = express_getattr(self, 'Axis3', INDETERMINATE) + return IfcBaseAxis(3, express_getattr(self, 'Axis1', INDETERMINATE), express_getattr(self, 'Axis2', INDETERMINATE), axis3) class IfcCartesianTransformationOperator3DnonUniform_Scale2GreaterZero: SCOPE = 'entity' @@ -6002,7 +6012,7 @@ class IfcCartesianTransformationOperator3DnonUniform_Scale2GreaterZero: @staticmethod def __call__(self): - scl2 = getattr(self, 'Scl2', INDETERMINATE) + scl2 = express_getattr(self, 'Scl2', INDETERMINATE) assert (scl2 > 0.0) is not False class IfcCartesianTransformationOperator3DnonUniform_Scale3GreaterZero: @@ -6012,16 +6022,16 @@ class IfcCartesianTransformationOperator3DnonUniform_Scale3GreaterZero: @staticmethod def __call__(self): - scl3 = getattr(self, 'Scl3', INDETERMINATE) + scl3 = express_getattr(self, 'Scl3', INDETERMINATE) assert (scl3 > 0.0) is not False def calc_IfcCartesianTransformationOperator3DnonUniform_Scl2(self): - scale2 = getattr(self, 'Scale2', INDETERMINATE) - return nvl(scale2, getattr(self, 'Scl', INDETERMINATE)) + scale2 = express_getattr(self, 'Scale2', INDETERMINATE) + return nvl(scale2, express_getattr(self, 'Scl', INDETERMINATE)) def calc_IfcCartesianTransformationOperator3DnonUniform_Scl3(self): - scale3 = getattr(self, 'Scale3', INDETERMINATE) - return nvl(scale3, getattr(self, 'Scl', INDETERMINATE)) + scale3 = express_getattr(self, 'Scale3', INDETERMINATE) + return nvl(scale3, express_getattr(self, 'Scl', INDETERMINATE)) class IfcChiller_CorrectPredefinedType: SCOPE = 'entity' @@ -6030,8 +6040,8 @@ class IfcChiller_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcChiller_CorrectTypeAssigned: SCOPE = 'entity' @@ -6040,8 +6050,8 @@ class IfcChiller_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcchillertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcchillertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcChillerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6050,8 +6060,8 @@ class IfcChillerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcChimney_CorrectPredefinedType: SCOPE = 'entity' @@ -6060,8 +6070,8 @@ class IfcChimney_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcChimney_CorrectTypeAssigned: SCOPE = 'entity' @@ -6070,8 +6080,8 @@ class IfcChimney_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcchimneytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcchimneytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcChimneyType_CorrectPredefinedType: SCOPE = 'entity' @@ -6080,8 +6090,8 @@ class IfcChimneyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCircleHollowProfileDef_WR1: SCOPE = 'entity' @@ -6090,8 +6100,8 @@ class IfcCircleHollowProfileDef_WR1: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - assert (wallthickness < getattr(self, 'Radius', INDETERMINATE)) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + assert (wallthickness < express_getattr(self, 'Radius', INDETERMINATE)) is not False class IfcCoil_CorrectPredefinedType: SCOPE = 'entity' @@ -6100,8 +6110,8 @@ class IfcCoil_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCoil_CorrectTypeAssigned: SCOPE = 'entity' @@ -6110,8 +6120,8 @@ class IfcCoil_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccoiltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccoiltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoilType_CorrectPredefinedType: SCOPE = 'entity' @@ -6120,8 +6130,8 @@ class IfcCoilType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcColumn_CorrectPredefinedType: SCOPE = 'entity' @@ -6130,8 +6140,8 @@ class IfcColumn_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcColumn_CorrectTypeAssigned: SCOPE = 'entity' @@ -6140,8 +6150,8 @@ class IfcColumn_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccolumntype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccolumntype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcColumnStandardCase_HasMaterialProfileSetUsage: SCOPE = 'entity' @@ -6150,7 +6160,7 @@ class IfcColumnStandardCase_HasMaterialProfileSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x2.ifcrelassociates.relatedobjects') if 'ifc4x2.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x2.ifcmaterialprofilesetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x2.ifcrelassociates.relatedobjects') if 'ifc4x2.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x2.ifcmaterialprofilesetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcColumnType_CorrectPredefinedType: SCOPE = 'entity' @@ -6159,8 +6169,8 @@ class IfcColumnType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCommunicationsAppliance_CorrectPredefinedType: SCOPE = 'entity' @@ -6169,8 +6179,8 @@ class IfcCommunicationsAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCommunicationsAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -6179,8 +6189,8 @@ class IfcCommunicationsAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccommunicationsappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccommunicationsappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCommunicationsApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -6189,8 +6199,8 @@ class IfcCommunicationsApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcComplexProperty_WR21: SCOPE = 'entity' @@ -6199,7 +6209,7 @@ class IfcComplexProperty_WR21: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert (sizeof([temp for temp in hasproperties if self == temp]) == 0) is not False class IfcComplexProperty_WR22: @@ -6209,7 +6219,7 @@ class IfcComplexProperty_WR22: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert IfcUniquePropertyName(hasproperties) is not False class IfcComplexPropertyTemplate_UniquePropertyNames: @@ -6219,7 +6229,7 @@ class IfcComplexPropertyTemplate_UniquePropertyNames: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert IfcUniquePropertyTemplateNames(haspropertytemplates) is not False class IfcComplexPropertyTemplate_NoSelfReference: @@ -6229,7 +6239,7 @@ class IfcComplexPropertyTemplate_NoSelfReference: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert (sizeof([temp for temp in haspropertytemplates if self == temp]) == 0) is not False class IfcCompositeCurve_CurveContinuous: @@ -6239,9 +6249,9 @@ class IfcCompositeCurve_CurveContinuous: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) - closedcurve = getattr(self, 'ClosedCurve', INDETERMINATE) - assert (not closedcurve and sizeof([temp for temp in segments if getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 1 or (closedcurve and sizeof([temp for temp in segments if getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 0)) is not False + segments = express_getattr(self, 'Segments', INDETERMINATE) + closedcurve = express_getattr(self, 'ClosedCurve', INDETERMINATE) + assert (not closedcurve and sizeof([temp for temp in segments if express_getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 1 or (closedcurve and sizeof([temp for temp in segments if express_getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 0)) is not False class IfcCompositeCurve_SameDim: SCOPE = 'entity' @@ -6250,17 +6260,17 @@ class IfcCompositeCurve_SameDim: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) - assert (sizeof([temp for temp in segments if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(segments, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + segments = express_getattr(self, 'Segments', INDETERMINATE) + assert (sizeof([temp for temp in segments if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(segments, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcCompositeCurve_NSegments(self): - segments = getattr(self, 'Segments', INDETERMINATE) + segments = express_getattr(self, 'Segments', INDETERMINATE) return sizeof(segments) def calc_IfcCompositeCurve_ClosedCurve(self): - segments = getattr(self, 'Segments', INDETERMINATE) - nsegments = getattr(self, 'NSegments', INDETERMINATE) - return getattr(express_getitem(segments, nsegments - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Transition', INDETERMINATE) != discontinuous + segments = express_getattr(self, 'Segments', INDETERMINATE) + nsegments = express_getattr(self, 'NSegments', INDETERMINATE) + return express_getattr(express_getitem(segments, nsegments - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Transition', INDETERMINATE) != discontinuous class IfcCompositeCurveOnSurface_SameSurface: SCOPE = 'entity' @@ -6269,7 +6279,7 @@ class IfcCompositeCurveOnSurface_SameSurface: @staticmethod def __call__(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) assert (sizeof(basissurface) > 0) is not False def calc_IfcCompositeCurveOnSurface_BasisSurface(self): @@ -6282,12 +6292,12 @@ class IfcCompositeCurveSegment_ParentIsBoundedCurve: @staticmethod def __call__(self): - parentcurve = getattr(self, 'ParentCurve', INDETERMINATE) + parentcurve = express_getattr(self, 'ParentCurve', INDETERMINATE) assert ('ifc4x2.ifcboundedcurve' in typeof(parentcurve)) is not False def calc_IfcCompositeCurveSegment_Dim(self): - parentcurve = getattr(self, 'ParentCurve', INDETERMINATE) - return getattr(parentcurve, 'Dim', INDETERMINATE) + parentcurve = express_getattr(self, 'ParentCurve', INDETERMINATE) + return express_getattr(parentcurve, 'Dim', INDETERMINATE) class IfcCompositeProfileDef_InvariantProfileType: SCOPE = 'entity' @@ -6296,8 +6306,8 @@ class IfcCompositeProfileDef_InvariantProfileType: @staticmethod def __call__(self): - profiles = getattr(self, 'Profiles', INDETERMINATE) - assert (sizeof([temp for temp in profiles if getattr(temp, 'ProfileType', INDETERMINATE) != getattr(express_getitem(profiles, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE)]) == 0) is not False + profiles = express_getattr(self, 'Profiles', INDETERMINATE) + assert (sizeof([temp for temp in profiles if express_getattr(temp, 'ProfileType', INDETERMINATE) != express_getattr(express_getitem(profiles, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcCompositeProfileDef_NoRecursion: SCOPE = 'entity' @@ -6306,7 +6316,7 @@ class IfcCompositeProfileDef_NoRecursion: @staticmethod def __call__(self): - profiles = getattr(self, 'Profiles', INDETERMINATE) + profiles = express_getattr(self, 'Profiles', INDETERMINATE) assert (sizeof([temp for temp in profiles if 'ifc4x2.ifccompositeprofiledef' in typeof(temp)]) == 0) is not False class IfcCompressor_CorrectPredefinedType: @@ -6316,8 +6326,8 @@ class IfcCompressor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCompressor_CorrectTypeAssigned: SCOPE = 'entity' @@ -6326,8 +6336,8 @@ class IfcCompressor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccompressortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccompressortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCompressorType_CorrectPredefinedType: SCOPE = 'entity' @@ -6336,8 +6346,8 @@ class IfcCompressorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCondenser_CorrectPredefinedType: SCOPE = 'entity' @@ -6346,8 +6356,8 @@ class IfcCondenser_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCondenser_CorrectTypeAssigned: SCOPE = 'entity' @@ -6356,8 +6366,8 @@ class IfcCondenser_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccondensertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccondensertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCondenserType_CorrectPredefinedType: SCOPE = 'entity' @@ -6366,8 +6376,8 @@ class IfcCondenserType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcConstraint_WR11: SCOPE = 'entity' @@ -6376,8 +6386,8 @@ class IfcConstraint_WR11: @staticmethod def __call__(self): - constraintgrade = getattr(self, 'ConstraintGrade', INDETERMINATE) - assert (constraintgrade != getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) or (constraintgrade == getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedGrade', INDETERMINATE)))) is not False + constraintgrade = express_getattr(self, 'ConstraintGrade', INDETERMINATE) + assert (constraintgrade != express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) or (constraintgrade == express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedGrade', INDETERMINATE)))) is not False class IfcConstructionEquipmentResource_CorrectPredefinedType: SCOPE = 'entity' @@ -6386,8 +6396,8 @@ class IfcConstructionEquipmentResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionEquipmentResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -6396,8 +6406,8 @@ class IfcConstructionEquipmentResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcConstructionMaterialResource_CorrectPredefinedType: SCOPE = 'entity' @@ -6406,8 +6416,8 @@ class IfcConstructionMaterialResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionMaterialResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -6416,8 +6426,8 @@ class IfcConstructionMaterialResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcConstructionProductResource_CorrectPredefinedType: SCOPE = 'entity' @@ -6426,8 +6436,8 @@ class IfcConstructionProductResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionProductResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -6436,8 +6446,8 @@ class IfcConstructionProductResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcController_CorrectPredefinedType: SCOPE = 'entity' @@ -6446,8 +6456,8 @@ class IfcController_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcController_CorrectTypeAssigned: SCOPE = 'entity' @@ -6456,8 +6466,8 @@ class IfcController_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccontrollertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccontrollertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcControllerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6466,8 +6476,8 @@ class IfcControllerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCooledBeam_CorrectPredefinedType: SCOPE = 'entity' @@ -6476,8 +6486,8 @@ class IfcCooledBeam_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCooledBeam_CorrectTypeAssigned: SCOPE = 'entity' @@ -6486,8 +6496,8 @@ class IfcCooledBeam_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccooledbeamtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccooledbeamtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCooledBeamType_CorrectPredefinedType: SCOPE = 'entity' @@ -6496,8 +6506,8 @@ class IfcCooledBeamType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCoolingTower_CorrectPredefinedType: SCOPE = 'entity' @@ -6506,8 +6516,8 @@ class IfcCoolingTower_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCoolingTower_CorrectTypeAssigned: SCOPE = 'entity' @@ -6516,8 +6526,8 @@ class IfcCoolingTower_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccoolingtowertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccoolingtowertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoolingTowerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6526,8 +6536,8 @@ class IfcCoolingTowerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCovering_CorrectPredefinedType: SCOPE = 'entity' @@ -6536,8 +6546,8 @@ class IfcCovering_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCovering_CorrectTypeAssigned: SCOPE = 'entity' @@ -6546,8 +6556,8 @@ class IfcCovering_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccoveringtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccoveringtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoveringType_CorrectPredefinedType: SCOPE = 'entity' @@ -6556,8 +6566,8 @@ class IfcCoveringType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCrewResource_CorrectPredefinedType: SCOPE = 'entity' @@ -6566,8 +6576,8 @@ class IfcCrewResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCrewResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -6576,8 +6586,8 @@ class IfcCrewResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False def calc_IfcCsgPrimitive3D_Dim(self): return 3 @@ -6589,8 +6599,8 @@ class IfcCurtainWall_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCurtainWall_CorrectTypeAssigned: SCOPE = 'entity' @@ -6599,8 +6609,8 @@ class IfcCurtainWall_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccurtainwalltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifccurtainwalltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCurtainWallType_CorrectPredefinedType: SCOPE = 'entity' @@ -6609,8 +6619,8 @@ class IfcCurtainWallType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcCurve_Dim(self): return IfcCurveDim(self) @@ -6622,7 +6632,7 @@ class IfcCurveStyle_MeasureOfWidth: @staticmethod def __call__(self): - curvewidth = getattr(self, 'CurveWidth', INDETERMINATE) + curvewidth = express_getattr(self, 'CurveWidth', INDETERMINATE) assert (not exists(curvewidth) or 'ifc4x2.ifcpositivelengthmeasure' in typeof(curvewidth) or ('ifc4x2.ifcdescriptivemeasure' in typeof(curvewidth) and curvewidth == 'bylayer')) is not False class IfcCurveStyle_IdentifiableCurveStyle: @@ -6632,9 +6642,9 @@ class IfcCurveStyle_IdentifiableCurveStyle: @staticmethod def __call__(self): - curvefont = getattr(self, 'CurveFont', INDETERMINATE) - curvewidth = getattr(self, 'CurveWidth', INDETERMINATE) - curvecolour = getattr(self, 'CurveColour', INDETERMINATE) + curvefont = express_getattr(self, 'CurveFont', INDETERMINATE) + curvewidth = express_getattr(self, 'CurveWidth', INDETERMINATE) + curvecolour = express_getattr(self, 'CurveColour', INDETERMINATE) assert (exists(curvefont) or exists(curvewidth) or exists(curvecolour)) is not False class IfcCurveStyleFontPattern_VisibleLengthGreaterEqualZero: @@ -6644,7 +6654,7 @@ class IfcCurveStyleFontPattern_VisibleLengthGreaterEqualZero: @staticmethod def __call__(self): - visiblesegmentlength = getattr(self, 'VisibleSegmentLength', INDETERMINATE) + visiblesegmentlength = express_getattr(self, 'VisibleSegmentLength', INDETERMINATE) assert (visiblesegmentlength >= 0.0) is not False class IfcDamper_CorrectPredefinedType: @@ -6654,8 +6664,8 @@ class IfcDamper_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDamper_CorrectTypeAssigned: SCOPE = 'entity' @@ -6664,8 +6674,8 @@ class IfcDamper_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcdampertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcdampertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDamperType_CorrectPredefinedType: SCOPE = 'entity' @@ -6674,8 +6684,8 @@ class IfcDamperType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDeepFoundation_CorrectTypeAssigned: SCOPE = 'entity' @@ -6684,8 +6694,8 @@ class IfcDeepFoundation_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcdeepfoundationtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcdeepfoundationtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDerivedProfileDef_InvariantProfileType: SCOPE = 'entity' @@ -6694,8 +6704,8 @@ class IfcDerivedProfileDef_InvariantProfileType: @staticmethod def __call__(self): - parentprofile = getattr(self, 'ParentProfile', INDETERMINATE) - assert (getattr(self, 'ProfileType', INDETERMINATE) == getattr(parentprofile, 'ProfileType', INDETERMINATE)) is not False + parentprofile = express_getattr(self, 'ParentProfile', INDETERMINATE) + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(parentprofile, 'ProfileType', INDETERMINATE)) is not False class IfcDerivedUnit_WR1: SCOPE = 'entity' @@ -6704,8 +6714,8 @@ class IfcDerivedUnit_WR1: @staticmethod def __call__(self): - elements = getattr(self, 'Elements', INDETERMINATE) - assert (sizeof(elements) > 1 or (sizeof(elements) == 1 and getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) != 1)) is not False + elements = express_getattr(self, 'Elements', INDETERMINATE) + assert (sizeof(elements) > 1 or (sizeof(elements) == 1 and express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) != 1)) is not False class IfcDerivedUnit_WR2: SCOPE = 'entity' @@ -6714,11 +6724,11 @@ class IfcDerivedUnit_WR2: @staticmethod def __call__(self): - unittype = getattr(self, 'UnitType', INDETERMINATE) - assert (unittype != getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) or (unittype == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedType', INDETERMINATE)))) is not False + unittype = express_getattr(self, 'UnitType', INDETERMINATE) + assert (unittype != express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) or (unittype == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedType', INDETERMINATE)))) is not False def calc_IfcDerivedUnit_Dimensions(self): - elements = getattr(self, 'Elements', INDETERMINATE) + elements = express_getattr(self, 'Elements', INDETERMINATE) return IfcDeriveDimensionalExponents(elements) class IfcDirection_MagnitudeGreaterZero: @@ -6728,11 +6738,11 @@ class IfcDirection_MagnitudeGreaterZero: @staticmethod def __call__(self): - directionratios = getattr(self, 'DirectionRatios', INDETERMINATE) + directionratios = express_getattr(self, 'DirectionRatios', INDETERMINATE) assert (sizeof([tmp for tmp in directionratios if tmp != 0.0]) > 0) is not False def calc_IfcDirection_Dim(self): - directionratios = getattr(self, 'DirectionRatios', INDETERMINATE) + directionratios = express_getattr(self, 'DirectionRatios', INDETERMINATE) return hiindex(directionratios) class IfcDiscreteAccessory_CorrectPredefinedType: @@ -6742,8 +6752,8 @@ class IfcDiscreteAccessory_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDiscreteAccessory_CorrectTypeAssigned: SCOPE = 'entity' @@ -6752,8 +6762,8 @@ class IfcDiscreteAccessory_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcdiscreteaccessorytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcdiscreteaccessorytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDiscreteAccessoryType_CorrectPredefinedType: SCOPE = 'entity' @@ -6762,8 +6772,8 @@ class IfcDiscreteAccessoryType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDistributionChamberElement_CorrectPredefinedType: SCOPE = 'entity' @@ -6772,8 +6782,8 @@ class IfcDistributionChamberElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDistributionChamberElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -6782,8 +6792,8 @@ class IfcDistributionChamberElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcdistributionchamberelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcdistributionchamberelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDistributionChamberElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -6792,8 +6802,8 @@ class IfcDistributionChamberElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDocumentReference_WR1: SCOPE = 'entity' @@ -6802,8 +6812,8 @@ class IfcDocumentReference_WR1: @staticmethod def __call__(self): - name = getattr(self, 'Name', INDETERMINATE) - referenceddocument = getattr(self, 'ReferencedDocument', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) + referenceddocument = express_getattr(self, 'ReferencedDocument', INDETERMINATE) assert exists(name) ^ exists(referenceddocument) is not False class IfcDoor_CorrectStyleAssigned: @@ -6813,8 +6823,8 @@ class IfcDoor_CorrectStyleAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcdoortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcdoortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDoorLiningProperties_WR31: SCOPE = 'entity' @@ -6823,8 +6833,8 @@ class IfcDoorLiningProperties_WR31: @staticmethod def __call__(self): - liningdepth = getattr(self, 'LiningDepth', INDETERMINATE) - liningthickness = getattr(self, 'LiningThickness', INDETERMINATE) + liningdepth = express_getattr(self, 'LiningDepth', INDETERMINATE) + liningthickness = express_getattr(self, 'LiningThickness', INDETERMINATE) assert (not (exists(liningdepth) and (not exists(liningthickness)))) is not False class IfcDoorLiningProperties_WR32: @@ -6834,8 +6844,8 @@ class IfcDoorLiningProperties_WR32: @staticmethod def __call__(self): - thresholddepth = getattr(self, 'ThresholdDepth', INDETERMINATE) - thresholdthickness = getattr(self, 'ThresholdThickness', INDETERMINATE) + thresholddepth = express_getattr(self, 'ThresholdDepth', INDETERMINATE) + thresholdthickness = express_getattr(self, 'ThresholdThickness', INDETERMINATE) assert (not (exists(thresholddepth) and (not exists(thresholdthickness)))) is not False class IfcDoorLiningProperties_WR33: @@ -6845,8 +6855,8 @@ class IfcDoorLiningProperties_WR33: @staticmethod def __call__(self): - transomthickness = getattr(self, 'TransomThickness', INDETERMINATE) - transomoffset = getattr(self, 'TransomOffset', INDETERMINATE) + transomthickness = express_getattr(self, 'TransomThickness', INDETERMINATE) + transomoffset = express_getattr(self, 'TransomOffset', INDETERMINATE) assert (exists(transomoffset) and exists(transomthickness)) ^ (not exists(transomoffset) and (not exists(transomthickness))) is not False class IfcDoorLiningProperties_WR34: @@ -6856,8 +6866,8 @@ class IfcDoorLiningProperties_WR34: @staticmethod def __call__(self): - casingthickness = getattr(self, 'CasingThickness', INDETERMINATE) - casingdepth = getattr(self, 'CasingDepth', INDETERMINATE) + casingthickness = express_getattr(self, 'CasingThickness', INDETERMINATE) + casingdepth = express_getattr(self, 'CasingDepth', INDETERMINATE) assert (exists(casingdepth) and exists(casingthickness)) ^ (not exists(casingdepth) and (not exists(casingthickness))) is not False class IfcDoorLiningProperties_WR35: @@ -6867,7 +6877,7 @@ class IfcDoorLiningProperties_WR35: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x2.ifcdoortype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x2.ifcdoorstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x2.ifcdoortype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x2.ifcdoorstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcDoorPanelProperties_ApplicableToType: SCOPE = 'entity' @@ -6876,7 +6886,7 @@ class IfcDoorPanelProperties_ApplicableToType: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x2.ifcdoortype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x2.ifcdoorstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x2.ifcdoortype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x2.ifcdoorstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcDoorType_CorrectPredefinedType: SCOPE = 'entity' @@ -6885,8 +6895,8 @@ class IfcDoorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDraughtingPreDefinedColour_PreDefinedColourNames: SCOPE = 'entity' @@ -6895,7 +6905,7 @@ class IfcDraughtingPreDefinedColour_PreDefinedColourNames: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'bylayer']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'bylayer']) is not False class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: SCOPE = 'entity' @@ -6904,7 +6914,7 @@ class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chaindoubledash', 'dashed', 'dotted', 'bylayer']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chaindoubledash', 'dashed', 'dotted', 'bylayer']) is not False class IfcDuctFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -6913,8 +6923,8 @@ class IfcDuctFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -6923,8 +6933,8 @@ class IfcDuctFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcductfittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcductfittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -6933,8 +6943,8 @@ class IfcDuctFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDuctSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -6943,8 +6953,8 @@ class IfcDuctSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -6953,8 +6963,8 @@ class IfcDuctSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcductsegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcductsegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -6963,8 +6973,8 @@ class IfcDuctSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDuctSilencer_CorrectPredefinedType: SCOPE = 'entity' @@ -6973,8 +6983,8 @@ class IfcDuctSilencer_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctSilencer_CorrectTypeAssigned: SCOPE = 'entity' @@ -6983,8 +6993,8 @@ class IfcDuctSilencer_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcductsilencertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcductsilencertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctSilencerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6993,8 +7003,8 @@ class IfcDuctSilencerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEdgeLoop_IsClosed: SCOPE = 'entity' @@ -7003,9 +7013,9 @@ class IfcEdgeLoop_IsClosed: @staticmethod def __call__(self): - edgelist = getattr(self, 'EdgeList', INDETERMINATE) - ne = getattr(self, 'Ne', INDETERMINATE) - assert (getattr(express_getitem(edgelist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) == getattr(express_getitem(edgelist, ne - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE)) is not False + edgelist = express_getattr(self, 'EdgeList', INDETERMINATE) + ne = express_getattr(self, 'Ne', INDETERMINATE) + assert (express_getattr(express_getitem(edgelist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) == express_getattr(express_getitem(edgelist, ne - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE)) is not False class IfcEdgeLoop_IsContinuous: SCOPE = 'entity' @@ -7017,7 +7027,7 @@ class IfcEdgeLoop_IsContinuous: assert IfcLoopHeadToTail(self) is not False def calc_IfcEdgeLoop_Ne(self): - edgelist = getattr(self, 'EdgeList', INDETERMINATE) + edgelist = express_getattr(self, 'EdgeList', INDETERMINATE) return sizeof(edgelist) class IfcElectricAppliance_CorrectPredefinedType: @@ -7027,8 +7037,8 @@ class IfcElectricAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -7037,8 +7047,8 @@ class IfcElectricAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcelectricappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcelectricappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7047,8 +7057,8 @@ class IfcElectricApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricDistributionBoard_CorrectPredefinedType: SCOPE = 'entity' @@ -7057,8 +7067,8 @@ class IfcElectricDistributionBoard_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricDistributionBoard_CorrectTypeAssigned: SCOPE = 'entity' @@ -7067,8 +7077,8 @@ class IfcElectricDistributionBoard_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcelectricdistributionboardtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcelectricdistributionboardtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricDistributionBoardType_CorrectPredefinedType: SCOPE = 'entity' @@ -7077,8 +7087,8 @@ class IfcElectricDistributionBoardType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricFlowStorageDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -7087,8 +7097,8 @@ class IfcElectricFlowStorageDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricFlowStorageDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -7097,8 +7107,8 @@ class IfcElectricFlowStorageDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcelectricflowstoragedevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcelectricflowstoragedevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricFlowStorageDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7107,8 +7117,8 @@ class IfcElectricFlowStorageDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricGenerator_CorrectPredefinedType: SCOPE = 'entity' @@ -7117,8 +7127,8 @@ class IfcElectricGenerator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricGenerator_CorrectTypeAssigned: SCOPE = 'entity' @@ -7127,8 +7137,8 @@ class IfcElectricGenerator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcelectricgeneratortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcelectricgeneratortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricGeneratorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7137,8 +7147,8 @@ class IfcElectricGeneratorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricMotor_CorrectPredefinedType: SCOPE = 'entity' @@ -7147,8 +7157,8 @@ class IfcElectricMotor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricMotor_CorrectTypeAssigned: SCOPE = 'entity' @@ -7157,8 +7167,8 @@ class IfcElectricMotor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcelectricmotortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcelectricmotortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricMotorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7167,8 +7177,8 @@ class IfcElectricMotorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricTimeControl_CorrectPredefinedType: SCOPE = 'entity' @@ -7177,8 +7187,8 @@ class IfcElectricTimeControl_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricTimeControl_CorrectTypeAssigned: SCOPE = 'entity' @@ -7187,8 +7197,8 @@ class IfcElectricTimeControl_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcelectrictimecontroltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcelectrictimecontroltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricTimeControlType_CorrectPredefinedType: SCOPE = 'entity' @@ -7197,8 +7207,8 @@ class IfcElectricTimeControlType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElementAssembly_CorrectPredefinedType: SCOPE = 'entity' @@ -7207,8 +7217,8 @@ class IfcElementAssembly_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElementAssembly_CorrectTypeAssigned: SCOPE = 'entity' @@ -7217,8 +7227,8 @@ class IfcElementAssembly_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcelementassemblytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcelementassemblytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElementAssemblyType_CorrectPredefinedType: SCOPE = 'entity' @@ -7227,8 +7237,8 @@ class IfcElementAssemblyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElementQuantity_UniqueQuantityNames: SCOPE = 'entity' @@ -7237,7 +7247,7 @@ class IfcElementQuantity_UniqueQuantityNames: @staticmethod def __call__(self): - quantities = getattr(self, 'Quantities', INDETERMINATE) + quantities = express_getattr(self, 'Quantities', INDETERMINATE) assert IfcUniqueQuantityNames(quantities) is not False class IfcEngine_CorrectPredefinedType: @@ -7247,8 +7257,8 @@ class IfcEngine_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEngine_CorrectTypeAssigned: SCOPE = 'entity' @@ -7257,8 +7267,8 @@ class IfcEngine_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcenginetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcenginetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEngineType_CorrectPredefinedType: SCOPE = 'entity' @@ -7267,8 +7277,8 @@ class IfcEngineType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvaporativeCooler_CorrectPredefinedType: SCOPE = 'entity' @@ -7277,8 +7287,8 @@ class IfcEvaporativeCooler_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvaporativeCooler_CorrectTypeAssigned: SCOPE = 'entity' @@ -7287,8 +7297,8 @@ class IfcEvaporativeCooler_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcevaporativecoolertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcevaporativecoolertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEvaporativeCoolerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7297,8 +7307,8 @@ class IfcEvaporativeCoolerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvaporator_CorrectPredefinedType: SCOPE = 'entity' @@ -7307,8 +7317,8 @@ class IfcEvaporator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvaporator_CorrectTypeAssigned: SCOPE = 'entity' @@ -7317,8 +7327,8 @@ class IfcEvaporator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcevaporatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcevaporatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEvaporatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7327,8 +7337,8 @@ class IfcEvaporatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvent_CorrectPredefinedType: SCOPE = 'entity' @@ -7337,8 +7347,8 @@ class IfcEvent_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvent_CorrectTypeAssigned: SCOPE = 'entity' @@ -7347,9 +7357,9 @@ class IfcEvent_CorrectTypeAssigned: @staticmethod def __call__(self): - eventtriggertype = getattr(self, 'EventTriggerType', INDETERMINATE) - userdefinedeventtriggertype = getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) - assert (not exists(eventtriggertype) or eventtriggertype != getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False + eventtriggertype = express_getattr(self, 'EventTriggerType', INDETERMINATE) + userdefinedeventtriggertype = express_getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) + assert (not exists(eventtriggertype) or eventtriggertype != express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False class IfcEventType_CorrectPredefinedType: SCOPE = 'entity' @@ -7358,8 +7368,8 @@ class IfcEventType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcEventType_CorrectEventTriggerType: SCOPE = 'entity' @@ -7368,9 +7378,9 @@ class IfcEventType_CorrectEventTriggerType: @staticmethod def __call__(self): - eventtriggertype = getattr(self, 'EventTriggerType', INDETERMINATE) - userdefinedeventtriggertype = getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) - assert (eventtriggertype != getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False + eventtriggertype = express_getattr(self, 'EventTriggerType', INDETERMINATE) + userdefinedeventtriggertype = express_getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) + assert (eventtriggertype != express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False class IfcExternalReference_WR1: SCOPE = 'entity' @@ -7379,9 +7389,9 @@ class IfcExternalReference_WR1: @staticmethod def __call__(self): - location = getattr(self, 'Location', INDETERMINATE) - identification = getattr(self, 'Identification', INDETERMINATE) - name = getattr(self, 'Name', INDETERMINATE) + location = express_getattr(self, 'Location', INDETERMINATE) + identification = express_getattr(self, 'Identification', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) assert (exists(identification) or exists(location) or exists(name)) is not False class IfcExtrudedAreaSolid_ValidExtrusionDirection: @@ -7391,7 +7401,7 @@ class IfcExtrudedAreaSolid_ValidExtrusionDirection: @staticmethod def __call__(self): - assert (IfcDotProduct(IfcDirection(DirectionRatios=[0.0, 0.0, 1.0]), getattr(self, 'ExtrudedDirection', INDETERMINATE)) != 0.0) is not False + assert (IfcDotProduct(IfcDirection(DirectionRatios=[0.0, 0.0, 1.0]), express_getattr(self, 'ExtrudedDirection', INDETERMINATE)) != 0.0) is not False class IfcExtrudedAreaSolidTapered_CorrectProfileAssignment: SCOPE = 'entity' @@ -7400,7 +7410,7 @@ class IfcExtrudedAreaSolidTapered_CorrectProfileAssignment: @staticmethod def __call__(self): - assert IfcTaperedSweptAreaProfiles(getattr(self, 'SweptArea', INDETERMINATE), getattr(self, 'EndSweptArea', INDETERMINATE)) is not False + assert IfcTaperedSweptAreaProfiles(express_getattr(self, 'SweptArea', INDETERMINATE), express_getattr(self, 'EndSweptArea', INDETERMINATE)) is not False class IfcFace_HasOuterBound: SCOPE = 'entity' @@ -7409,7 +7419,7 @@ class IfcFace_HasOuterBound: @staticmethod def __call__(self): - bounds = getattr(self, 'Bounds', INDETERMINATE) + bounds = express_getattr(self, 'Bounds', INDETERMINATE) assert (sizeof([temp for temp in bounds if 'ifc4x2.ifcfaceouterbound' in typeof(temp)]) <= 1) is not False def calc_IfcFaceBasedSurfaceModel_Dim(self): @@ -7422,8 +7432,8 @@ class IfcFan_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFan_CorrectTypeAssigned: SCOPE = 'entity' @@ -7432,8 +7442,8 @@ class IfcFan_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcfantype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcfantype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFanType_CorrectPredefinedType: SCOPE = 'entity' @@ -7442,8 +7452,8 @@ class IfcFanType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFastener_CorrectPredefinedType: SCOPE = 'entity' @@ -7452,8 +7462,8 @@ class IfcFastener_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFastener_CorrectTypeAssigned: SCOPE = 'entity' @@ -7462,8 +7472,8 @@ class IfcFastener_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcfastenertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcfastenertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFastenerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7472,8 +7482,8 @@ class IfcFastenerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFeatureElementSubtraction_HasNoSubtraction: SCOPE = 'entity' @@ -7482,7 +7492,7 @@ class IfcFeatureElementSubtraction_HasNoSubtraction: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'HasOpenings', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'HasOpenings', INDETERMINATE)) == 0) is not False class IfcFeatureElementSubtraction_IsNotFilling: SCOPE = 'entity' @@ -7491,7 +7501,7 @@ class IfcFeatureElementSubtraction_IsNotFilling: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'FillsVoids', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'FillsVoids', INDETERMINATE)) == 0) is not False class IfcFillAreaStyle_MaxOneColour: SCOPE = 'entity' @@ -7500,7 +7510,7 @@ class IfcFillAreaStyle_MaxOneColour: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x2.ifccolour' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x2.ifccolour' in typeof(style)]) <= 1) is not False class IfcFillAreaStyle_MaxOneExtHatchStyle: SCOPE = 'entity' @@ -7509,7 +7519,7 @@ class IfcFillAreaStyle_MaxOneExtHatchStyle: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x2.ifcexternallydefinedhatchstyle' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x2.ifcexternallydefinedhatchstyle' in typeof(style)]) <= 1) is not False class IfcFillAreaStyle_ConsistentHatchStyleDef: SCOPE = 'entity' @@ -7518,7 +7528,7 @@ class IfcFillAreaStyle_ConsistentHatchStyleDef: @staticmethod def __call__(self): - assert IfcCorrectFillAreaStyle(getattr(self, 'FillStyles', INDETERMINATE)) is not False + assert IfcCorrectFillAreaStyle(express_getattr(self, 'FillStyles', INDETERMINATE)) is not False class IfcFillAreaStyleHatching_PatternStart2D: SCOPE = 'entity' @@ -7527,8 +7537,8 @@ class IfcFillAreaStyleHatching_PatternStart2D: @staticmethod def __call__(self): - patternstart = getattr(self, 'PatternStart', INDETERMINATE) - assert (not exists(patternstart) or getattr(patternstart, 'Dim', INDETERMINATE) == 2) is not False + patternstart = express_getattr(self, 'PatternStart', INDETERMINATE) + assert (not exists(patternstart) or express_getattr(patternstart, 'Dim', INDETERMINATE) == 2) is not False class IfcFillAreaStyleHatching_RefHatchLine2D: SCOPE = 'entity' @@ -7537,8 +7547,8 @@ class IfcFillAreaStyleHatching_RefHatchLine2D: @staticmethod def __call__(self): - pointofreferencehatchline = getattr(self, 'PointOfReferenceHatchLine', INDETERMINATE) - assert (not exists(pointofreferencehatchline) or getattr(pointofreferencehatchline, 'Dim', INDETERMINATE) == 2) is not False + pointofreferencehatchline = express_getattr(self, 'PointOfReferenceHatchLine', INDETERMINATE) + assert (not exists(pointofreferencehatchline) or express_getattr(pointofreferencehatchline, 'Dim', INDETERMINATE) == 2) is not False class IfcFilter_CorrectPredefinedType: SCOPE = 'entity' @@ -7547,8 +7557,8 @@ class IfcFilter_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFilter_CorrectTypeAssigned: SCOPE = 'entity' @@ -7557,8 +7567,8 @@ class IfcFilter_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcfiltertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcfiltertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFilterType_CorrectPredefinedType: SCOPE = 'entity' @@ -7567,8 +7577,8 @@ class IfcFilterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFireSuppressionTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -7577,8 +7587,8 @@ class IfcFireSuppressionTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFireSuppressionTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -7587,8 +7597,8 @@ class IfcFireSuppressionTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcfiresuppressionterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcfiresuppressionterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFireSuppressionTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -7597,8 +7607,8 @@ class IfcFireSuppressionTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFixedReferenceSweptAreaSolid_DirectrixBounded: SCOPE = 'entity' @@ -7607,9 +7617,9 @@ class IfcFixedReferenceSweptAreaSolid_DirectrixBounded: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - startparam = getattr(self, 'StartParam', INDETERMINATE) - endparam = getattr(self, 'EndParam', INDETERMINATE) + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + startparam = express_getattr(self, 'StartParam', INDETERMINATE) + endparam = express_getattr(self, 'EndParam', INDETERMINATE) assert (exists(startparam) and exists(endparam) or sizeof(['ifc4x2.ifcconic', 'ifc4x2.ifcboundedcurve'] * typeof(directrix)) == 1) is not False class IfcFlowInstrument_CorrectPredefinedType: @@ -7619,8 +7629,8 @@ class IfcFlowInstrument_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFlowInstrument_CorrectTypeAssigned: SCOPE = 'entity' @@ -7629,8 +7639,8 @@ class IfcFlowInstrument_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcflowinstrumenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcflowinstrumenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFlowInstrumentType_CorrectPredefinedType: SCOPE = 'entity' @@ -7639,8 +7649,8 @@ class IfcFlowInstrumentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFlowMeter_CorrectPredefinedType: SCOPE = 'entity' @@ -7649,8 +7659,8 @@ class IfcFlowMeter_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFlowMeter_CorrectTypeAssigned: SCOPE = 'entity' @@ -7659,8 +7669,8 @@ class IfcFlowMeter_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcflowmetertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcflowmetertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFlowMeterType_CorrectPredefinedType: SCOPE = 'entity' @@ -7669,8 +7679,8 @@ class IfcFlowMeterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFooting_CorrectPredefinedType: SCOPE = 'entity' @@ -7679,8 +7689,8 @@ class IfcFooting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFooting_CorrectTypeAssigned: SCOPE = 'entity' @@ -7689,8 +7699,8 @@ class IfcFooting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcfootingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcfootingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFootingType_CorrectPredefinedType: SCOPE = 'entity' @@ -7699,8 +7709,8 @@ class IfcFootingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFurniture_CorrectPredefinedType: SCOPE = 'entity' @@ -7709,8 +7719,8 @@ class IfcFurniture_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFurniture_CorrectTypeAssigned: SCOPE = 'entity' @@ -7719,8 +7729,8 @@ class IfcFurniture_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcfurnituretype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcfurnituretype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFurnitureType_CorrectPredefinedType: SCOPE = 'entity' @@ -7729,8 +7739,8 @@ class IfcFurnitureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcGeographicElement_CorrectPredefinedType: SCOPE = 'entity' @@ -7739,8 +7749,8 @@ class IfcGeographicElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcGeographicElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -7749,8 +7759,8 @@ class IfcGeographicElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcgeographicelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcgeographicelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcGeographicElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -7759,8 +7769,8 @@ class IfcGeographicElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcGeometricCurveSet_NoSurfaces: SCOPE = 'entity' @@ -7769,7 +7779,7 @@ class IfcGeometricCurveSet_NoSurfaces: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Elements', INDETERMINATE) if 'ifc4x2.ifcsurface' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Elements', INDETERMINATE) if 'ifc4x2.ifcsurface' in typeof(temp)]) == 0) is not False class IfcGeometricRepresentationContext_North2D: SCOPE = 'entity' @@ -7778,8 +7788,8 @@ class IfcGeometricRepresentationContext_North2D: @staticmethod def __call__(self): - truenorth = getattr(self, 'TrueNorth', INDETERMINATE) - assert (not exists(truenorth) or hiindex(getattr(truenorth, 'DirectionRatios', INDETERMINATE)) == 2) is not False + truenorth = express_getattr(self, 'TrueNorth', INDETERMINATE) + assert (not exists(truenorth) or hiindex(express_getattr(truenorth, 'DirectionRatios', INDETERMINATE)) == 2) is not False class IfcGeometricRepresentationSubContext_ParentNoSub: SCOPE = 'entity' @@ -7788,7 +7798,7 @@ class IfcGeometricRepresentationSubContext_ParentNoSub: @staticmethod def __call__(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) assert (not 'ifc4x2.ifcgeometricrepresentationsubcontext' in typeof(parentcontext)) is not False class IfcGeometricRepresentationSubContext_UserTargetProvided: @@ -7798,9 +7808,9 @@ class IfcGeometricRepresentationSubContext_UserTargetProvided: @staticmethod def __call__(self): - targetview = getattr(self, 'TargetView', INDETERMINATE) - userdefinedtargetview = getattr(self, 'UserDefinedTargetView', INDETERMINATE) - assert (targetview != getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) or (targetview == getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedtargetview))) is not False + targetview = express_getattr(self, 'TargetView', INDETERMINATE) + userdefinedtargetview = express_getattr(self, 'UserDefinedTargetView', INDETERMINATE) + assert (targetview != express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) or (targetview == express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedtargetview))) is not False class IfcGeometricRepresentationSubContext_NoCoordOperation: SCOPE = 'entity' @@ -7809,23 +7819,23 @@ class IfcGeometricRepresentationSubContext_NoCoordOperation: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'HasCoordinateOperation', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'HasCoordinateOperation', INDETERMINATE)) == 0) is not False def calc_IfcGeometricRepresentationSubContext_WorldCoordinateSystem(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return getattr(parentcontext, 'WorldCoordinateSystem', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return express_getattr(parentcontext, 'WorldCoordinateSystem', INDETERMINATE) def calc_IfcGeometricRepresentationSubContext_CoordinateSpaceDimension(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return getattr(parentcontext, 'CoordinateSpaceDimension', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return express_getattr(parentcontext, 'CoordinateSpaceDimension', INDETERMINATE) def calc_IfcGeometricRepresentationSubContext_TrueNorth(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return nvl(getattr(parentcontext, 'TrueNorth', INDETERMINATE), IfcConvertDirectionInto2D(express_getitem(getattr(getattr(self, 'WorldCoordinateSystem', INDETERMINATE), 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return nvl(express_getattr(parentcontext, 'TrueNorth', INDETERMINATE), IfcConvertDirectionInto2D(express_getitem(express_getattr(express_getattr(self, 'WorldCoordinateSystem', INDETERMINATE), 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) def calc_IfcGeometricRepresentationSubContext_Precision(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return nvl(getattr(parentcontext, 'Precision', INDETERMINATE), 1) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return nvl(express_getattr(parentcontext, 'Precision', INDETERMINATE), 1) class IfcGeometricSet_ConsistentDim: SCOPE = 'entity' @@ -7834,12 +7844,12 @@ class IfcGeometricSet_ConsistentDim: @staticmethod def __call__(self): - elements = getattr(self, 'Elements', INDETERMINATE) - assert (sizeof([temp for temp in elements if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + elements = express_getattr(self, 'Elements', INDETERMINATE) + assert (sizeof([temp for temp in elements if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcGeometricSet_Dim(self): - elements = getattr(self, 'Elements', INDETERMINATE) - return getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + elements = express_getattr(self, 'Elements', INDETERMINATE) + return express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) class IfcGridAxis_WR1: SCOPE = 'entity' @@ -7848,8 +7858,8 @@ class IfcGridAxis_WR1: @staticmethod def __call__(self): - axiscurve = getattr(self, 'AxisCurve', INDETERMINATE) - assert (getattr(axiscurve, 'Dim', INDETERMINATE) == 2) is not False + axiscurve = express_getattr(self, 'AxisCurve', INDETERMINATE) + assert (express_getattr(axiscurve, 'Dim', INDETERMINATE) == 2) is not False class IfcGridAxis_WR2: SCOPE = 'entity' @@ -7858,9 +7868,9 @@ class IfcGridAxis_WR2: @staticmethod def __call__(self): - partofw = getattr(self, 'PartOfW', INDETERMINATE) - partofv = getattr(self, 'PartOfV', INDETERMINATE) - partofu = getattr(self, 'PartOfU', INDETERMINATE) + partofw = express_getattr(self, 'PartOfW', INDETERMINATE) + partofv = express_getattr(self, 'PartOfV', INDETERMINATE) + partofu = express_getattr(self, 'PartOfU', INDETERMINATE) assert (sizeof(partofu) == 1) ^ (sizeof(partofv) == 1) ^ (sizeof(partofw) == 1) is not False def calc_IfcHalfSpaceSolid_Dim(self): @@ -7873,8 +7883,8 @@ class IfcHeatExchanger_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcHeatExchanger_CorrectTypeAssigned: SCOPE = 'entity' @@ -7883,8 +7893,8 @@ class IfcHeatExchanger_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcheatexchangertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcheatexchangertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcHeatExchangerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7893,8 +7903,8 @@ class IfcHeatExchangerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcHumidifier_CorrectPredefinedType: SCOPE = 'entity' @@ -7903,8 +7913,8 @@ class IfcHumidifier_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcHumidifier_CorrectTypeAssigned: SCOPE = 'entity' @@ -7913,8 +7923,8 @@ class IfcHumidifier_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifchumidifiertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifchumidifiertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcHumidifierType_CorrectPredefinedType: SCOPE = 'entity' @@ -7923,8 +7933,8 @@ class IfcHumidifierType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcIShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -7933,8 +7943,8 @@ class IfcIShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (2.0 * flangethickness < overalldepth) is not False class IfcIShapeProfileDef_ValidWebThickness: @@ -7944,8 +7954,8 @@ class IfcIShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - overallwidth = getattr(self, 'OverallWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + overallwidth = express_getattr(self, 'OverallWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < overallwidth) is not False class IfcIShapeProfileDef_ValidFilletRadius: @@ -7955,11 +7965,11 @@ class IfcIShapeProfileDef_ValidFilletRadius: @staticmethod def __call__(self): - overallwidth = getattr(self, 'OverallWidth', INDETERMINATE) - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) - filletradius = getattr(self, 'FilletRadius', INDETERMINATE) + overallwidth = express_getattr(self, 'OverallWidth', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) + filletradius = express_getattr(self, 'FilletRadius', INDETERMINATE) assert (not exists(filletradius) or (filletradius <= (overallwidth - webthickness) / 2.0 and filletradius <= (overalldepth - 2.0 * flangethickness) / 2.0)) is not False class IfcIndexedPolyCurve_Consecutive: @@ -7969,7 +7979,7 @@ class IfcIndexedPolyCurve_Consecutive: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) + segments = express_getattr(self, 'Segments', INDETERMINATE) assert (sizeof(segments) == 0 or IfcConsecutiveSegments(segments)) is not False class IfcInterceptor_CorrectPredefinedType: @@ -7979,8 +7989,8 @@ class IfcInterceptor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcInterceptor_CorrectTypeAssigned: SCOPE = 'entity' @@ -7989,8 +7999,8 @@ class IfcInterceptor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcinterceptortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcinterceptortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcInterceptorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7999,8 +8009,8 @@ class IfcInterceptorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcIntersectionCurve_TwoPCurves: SCOPE = 'entity' @@ -8009,7 +8019,7 @@ class IfcIntersectionCurve_TwoPCurves: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False + assert (sizeof(express_getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False class IfcIntersectionCurve_DistinctSurfaces: SCOPE = 'entity' @@ -8018,7 +8028,7 @@ class IfcIntersectionCurve_DistinctSurfaces: @staticmethod def __call__(self): - assert (IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcJunctionBox_CorrectPredefinedType: SCOPE = 'entity' @@ -8027,8 +8037,8 @@ class IfcJunctionBox_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcJunctionBox_CorrectTypeAssigned: SCOPE = 'entity' @@ -8037,8 +8047,8 @@ class IfcJunctionBox_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcjunctionboxtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcjunctionboxtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcJunctionBoxType_CorrectPredefinedType: SCOPE = 'entity' @@ -8047,8 +8057,8 @@ class IfcJunctionBoxType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLShapeProfileDef_ValidThickness: SCOPE = 'entity' @@ -8057,9 +8067,9 @@ class IfcLShapeProfileDef_ValidThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - thickness = getattr(self, 'Thickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + thickness = express_getattr(self, 'Thickness', INDETERMINATE) assert (thickness < depth and (not exists(width) or thickness < width)) is not False class IfcLaborResource_CorrectPredefinedType: @@ -8069,8 +8079,8 @@ class IfcLaborResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLaborResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -8079,8 +8089,8 @@ class IfcLaborResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcLamp_CorrectPredefinedType: SCOPE = 'entity' @@ -8089,8 +8099,8 @@ class IfcLamp_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLamp_CorrectTypeAssigned: SCOPE = 'entity' @@ -8099,8 +8109,8 @@ class IfcLamp_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifclamptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifclamptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLampType_CorrectPredefinedType: SCOPE = 'entity' @@ -8109,8 +8119,8 @@ class IfcLampType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLightFixture_CorrectPredefinedType: SCOPE = 'entity' @@ -8119,8 +8129,8 @@ class IfcLightFixture_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLightFixture_CorrectTypeAssigned: SCOPE = 'entity' @@ -8129,8 +8139,8 @@ class IfcLightFixture_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifclightfixturetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifclightfixturetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLightFixtureType_CorrectPredefinedType: SCOPE = 'entity' @@ -8139,8 +8149,8 @@ class IfcLightFixtureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLine_SameDim: SCOPE = 'entity' @@ -8149,9 +8159,9 @@ class IfcLine_SameDim: @staticmethod def __call__(self): - pnt = getattr(self, 'Pnt', INDETERMINATE) - dir = getattr(self, 'Dir', INDETERMINATE) - assert (getattr(dir, 'Dim', INDETERMINATE) == getattr(pnt, 'Dim', INDETERMINATE)) is not False + pnt = express_getattr(self, 'Pnt', INDETERMINATE) + dir = express_getattr(self, 'Dir', INDETERMINATE) + assert (express_getattr(dir, 'Dim', INDETERMINATE) == express_getattr(pnt, 'Dim', INDETERMINATE)) is not False class IfcLocalPlacement_WR21: SCOPE = 'entity' @@ -8160,8 +8170,8 @@ class IfcLocalPlacement_WR21: @staticmethod def __call__(self): - placementrelto = getattr(self, 'PlacementRelTo', INDETERMINATE) - relativeplacement = getattr(self, 'RelativePlacement', INDETERMINATE) + placementrelto = express_getattr(self, 'PlacementRelTo', INDETERMINATE) + relativeplacement = express_getattr(self, 'RelativePlacement', INDETERMINATE) assert IfcCorrectLocalPlacement(relativeplacement, placementrelto) is not False class IfcMaterialDefinitionRepresentation_OnlyStyledRepresentations: @@ -8171,7 +8181,7 @@ class IfcMaterialDefinitionRepresentation_OnlyStyledRepresentations: @staticmethod def __call__(self): - representations = getattr(self, 'Representations', INDETERMINATE) + representations = express_getattr(self, 'Representations', INDETERMINATE) assert (sizeof([temp for temp in representations if not 'ifc4x2.ifcstyledrepresentation' in typeof(temp)]) == 0) is not False class IfcMaterialLayer_NormalizedPriority: @@ -8181,7 +8191,7 @@ class IfcMaterialLayer_NormalizedPriority: @staticmethod def __call__(self): - priority = getattr(self, 'Priority', INDETERMINATE) + priority = express_getattr(self, 'Priority', INDETERMINATE) assert (not exists(priority) or 0 <= priority <= 100) is not False def calc_IfcMaterialLayerSet_TotalThickness(self): @@ -8194,7 +8204,7 @@ class IfcMaterialProfile_NormalizedPriority: @staticmethod def __call__(self): - priority = getattr(self, 'Priority', INDETERMINATE) + priority = express_getattr(self, 'Priority', INDETERMINATE) assert (not exists(priority) or 0 <= priority <= 100) is not False class IfcMechanicalFastener_CorrectPredefinedType: @@ -8204,8 +8214,8 @@ class IfcMechanicalFastener_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMechanicalFastener_CorrectTypeAssigned: SCOPE = 'entity' @@ -8214,8 +8224,8 @@ class IfcMechanicalFastener_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcmechanicalfastenertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcmechanicalfastenertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMechanicalFastenerType_CorrectPredefinedType: SCOPE = 'entity' @@ -8224,8 +8234,8 @@ class IfcMechanicalFastenerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMedicalDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -8234,8 +8244,8 @@ class IfcMedicalDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMedicalDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -8244,8 +8254,8 @@ class IfcMedicalDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcmedicaldevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcmedicaldevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMedicalDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -8254,8 +8264,8 @@ class IfcMedicalDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMember_CorrectPredefinedType: SCOPE = 'entity' @@ -8264,8 +8274,8 @@ class IfcMember_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMember_CorrectTypeAssigned: SCOPE = 'entity' @@ -8274,8 +8284,8 @@ class IfcMember_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcmembertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcmembertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMemberStandardCase_HasMaterialProfileSetUsage: SCOPE = 'entity' @@ -8284,7 +8294,7 @@ class IfcMemberStandardCase_HasMaterialProfileSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x2.ifcrelassociates.relatedobjects') if 'ifc4x2.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x2.ifcmaterialprofilesetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x2.ifcrelassociates.relatedobjects') if 'ifc4x2.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x2.ifcmaterialprofilesetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcMemberType_CorrectPredefinedType: SCOPE = 'entity' @@ -8293,8 +8303,8 @@ class IfcMemberType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcMirroredProfileDef_Operator(self): return IfcCartesianTransformationOperator2D(Axis1=IfcDirection(DirectionRatios=[-1.0, 0.0]), Axis2=IfcDirection(DirectionRatios=[0.0, 1.0]), LocalOrigin=IfcCartesianPoint(Coordinates=[0.0, 0.0]), Scale=1.0) @@ -8306,8 +8316,8 @@ class IfcMotorConnection_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMotorConnection_CorrectTypeAssigned: SCOPE = 'entity' @@ -8316,8 +8326,8 @@ class IfcMotorConnection_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcmotorconnectiontype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcmotorconnectiontype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMotorConnectionType_CorrectPredefinedType: SCOPE = 'entity' @@ -8326,8 +8336,8 @@ class IfcMotorConnectionType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcNamedUnit_WR1: SCOPE = 'entity' @@ -8336,7 +8346,7 @@ class IfcNamedUnit_WR1: @staticmethod def __call__(self): - assert IfcCorrectDimensions(getattr(self, 'UnitType', INDETERMINATE), getattr(self, 'Dimensions', INDETERMINATE)) is not False + assert IfcCorrectDimensions(express_getattr(self, 'UnitType', INDETERMINATE), express_getattr(self, 'Dimensions', INDETERMINATE)) is not False class IfcObject_UniquePropertySetNames: SCOPE = 'entity' @@ -8345,7 +8355,7 @@ class IfcObject_UniquePropertySetNames: @staticmethod def __call__(self): - isdefinedby = getattr(self, 'IsDefinedBy', INDETERMINATE) + isdefinedby = express_getattr(self, 'IsDefinedBy', INDETERMINATE) assert (sizeof(isdefinedby) == 0 or IfcUniqueDefinitionNames(isdefinedby)) is not False class IfcObjective_WR21: @@ -8355,8 +8365,8 @@ class IfcObjective_WR21: @staticmethod def __call__(self): - objectivequalifier = getattr(self, 'ObjectiveQualifier', INDETERMINATE) - assert (objectivequalifier != getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) or (objectivequalifier == getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedQualifier', INDETERMINATE)))) is not False + objectivequalifier = express_getattr(self, 'ObjectiveQualifier', INDETERMINATE) + assert (objectivequalifier != express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) or (objectivequalifier == express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedQualifier', INDETERMINATE)))) is not False class IfcOccupant_WR31: SCOPE = 'entity' @@ -8365,8 +8375,8 @@ class IfcOccupant_WR31: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not predefinedtype == getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not predefinedtype == express_getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcOffsetCurve2D_DimIs2D: SCOPE = 'entity' @@ -8375,8 +8385,8 @@ class IfcOffsetCurve2D_DimIs2D: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - assert (getattr(basiscurve, 'Dim', INDETERMINATE) == 2) is not False + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + assert (express_getattr(basiscurve, 'Dim', INDETERMINATE) == 2) is not False class IfcOffsetCurve3D_DimIs2D: SCOPE = 'entity' @@ -8385,8 +8395,8 @@ class IfcOffsetCurve3D_DimIs2D: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - assert (getattr(basiscurve, 'Dim', INDETERMINATE) == 3) is not False + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + assert (express_getattr(basiscurve, 'Dim', INDETERMINATE) == 3) is not False class IfcOrientedEdge_EdgeElementNotOriented: SCOPE = 'entity' @@ -8395,18 +8405,18 @@ class IfcOrientedEdge_EdgeElementNotOriented: @staticmethod def __call__(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) assert (not 'ifc4x2.ifcorientededge' in typeof(edgeelement)) is not False def calc_IfcOrientedEdge_EdgeStart(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) - orientation = getattr(self, 'Orientation', INDETERMINATE) - return IfcBooleanChoose(orientation, getattr(edgeelement, 'EdgeStart', INDETERMINATE), getattr(edgeelement, 'EdgeEnd', INDETERMINATE)) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return IfcBooleanChoose(orientation, express_getattr(edgeelement, 'EdgeStart', INDETERMINATE), express_getattr(edgeelement, 'EdgeEnd', INDETERMINATE)) def calc_IfcOrientedEdge_EdgeEnd(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) - orientation = getattr(self, 'Orientation', INDETERMINATE) - return IfcBooleanChoose(orientation, getattr(edgeelement, 'EdgeEnd', INDETERMINATE), getattr(edgeelement, 'EdgeStart', INDETERMINATE)) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return IfcBooleanChoose(orientation, express_getattr(edgeelement, 'EdgeEnd', INDETERMINATE), express_getattr(edgeelement, 'EdgeStart', INDETERMINATE)) class IfcOutlet_CorrectPredefinedType: SCOPE = 'entity' @@ -8415,8 +8425,8 @@ class IfcOutlet_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcOutlet_CorrectTypeAssigned: SCOPE = 'entity' @@ -8425,8 +8435,8 @@ class IfcOutlet_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcoutlettype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcoutlettype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcOutletType_CorrectPredefinedType: SCOPE = 'entity' @@ -8435,8 +8445,8 @@ class IfcOutletType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcOwnerHistory_CorrectChangeAction: SCOPE = 'entity' @@ -8445,9 +8455,9 @@ class IfcOwnerHistory_CorrectChangeAction: @staticmethod def __call__(self): - changeaction = getattr(self, 'ChangeAction', INDETERMINATE) - lastmodifieddate = getattr(self, 'LastModifiedDate', INDETERMINATE) - assert (exists(lastmodifieddate) or (not exists(lastmodifieddate) and (not exists(changeaction))) or (not exists(lastmodifieddate) and exists(changeaction) and (changeaction == getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) or changeaction == getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE)))) is not False + changeaction = express_getattr(self, 'ChangeAction', INDETERMINATE) + lastmodifieddate = express_getattr(self, 'LastModifiedDate', INDETERMINATE) + assert (exists(lastmodifieddate) or (not exists(lastmodifieddate) and (not exists(changeaction))) or (not exists(lastmodifieddate) and exists(changeaction) and (changeaction == express_getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) or changeaction == express_getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE)))) is not False class IfcPath_IsContinuous: SCOPE = 'entity' @@ -8465,8 +8475,8 @@ class IfcPcurve_DimIs2D: @staticmethod def __call__(self): - referencecurve = getattr(self, 'ReferenceCurve', INDETERMINATE) - assert (getattr(referencecurve, 'Dim', INDETERMINATE) == 2) is not False + referencecurve = express_getattr(self, 'ReferenceCurve', INDETERMINATE) + assert (express_getattr(referencecurve, 'Dim', INDETERMINATE) == 2) is not False class IfcPerson_IdentifiablePerson: SCOPE = 'entity' @@ -8475,9 +8485,9 @@ class IfcPerson_IdentifiablePerson: @staticmethod def __call__(self): - identification = getattr(self, 'Identification', INDETERMINATE) - familyname = getattr(self, 'FamilyName', INDETERMINATE) - givenname = getattr(self, 'GivenName', INDETERMINATE) + identification = express_getattr(self, 'Identification', INDETERMINATE) + familyname = express_getattr(self, 'FamilyName', INDETERMINATE) + givenname = express_getattr(self, 'GivenName', INDETERMINATE) assert (exists(identification) or exists(familyname) or exists(givenname)) is not False class IfcPerson_ValidSetOfNames: @@ -8487,9 +8497,9 @@ class IfcPerson_ValidSetOfNames: @staticmethod def __call__(self): - familyname = getattr(self, 'FamilyName', INDETERMINATE) - givenname = getattr(self, 'GivenName', INDETERMINATE) - middlenames = getattr(self, 'MiddleNames', INDETERMINATE) + familyname = express_getattr(self, 'FamilyName', INDETERMINATE) + givenname = express_getattr(self, 'GivenName', INDETERMINATE) + middlenames = express_getattr(self, 'MiddleNames', INDETERMINATE) assert (not exists(middlenames) or exists(familyname) or exists(givenname)) is not False class IfcPhysicalComplexQuantity_NoSelfReference: @@ -8499,7 +8509,7 @@ class IfcPhysicalComplexQuantity_NoSelfReference: @staticmethod def __call__(self): - hasquantities = getattr(self, 'HasQuantities', INDETERMINATE) + hasquantities = express_getattr(self, 'HasQuantities', INDETERMINATE) assert (sizeof([temp for temp in hasquantities if self == temp]) == 0) is not False class IfcPhysicalComplexQuantity_UniqueQuantityNames: @@ -8509,7 +8519,7 @@ class IfcPhysicalComplexQuantity_UniqueQuantityNames: @staticmethod def __call__(self): - hasquantities = getattr(self, 'HasQuantities', INDETERMINATE) + hasquantities = express_getattr(self, 'HasQuantities', INDETERMINATE) assert IfcUniqueQuantityNames(hasquantities) is not False class IfcPile_CorrectPredefinedType: @@ -8519,8 +8529,8 @@ class IfcPile_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPile_CorrectTypeAssigned: SCOPE = 'entity' @@ -8529,8 +8539,8 @@ class IfcPile_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcpiletype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcpiletype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPileType_CorrectPredefinedType: SCOPE = 'entity' @@ -8539,8 +8549,8 @@ class IfcPileType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPipeFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -8549,8 +8559,8 @@ class IfcPipeFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPipeFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -8559,8 +8569,8 @@ class IfcPipeFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcpipefittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcpipefittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPipeFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -8569,8 +8579,8 @@ class IfcPipeFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPipeSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -8579,8 +8589,8 @@ class IfcPipeSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPipeSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -8589,8 +8599,8 @@ class IfcPipeSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcpipesegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcpipesegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPipeSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -8599,8 +8609,8 @@ class IfcPipeSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPixelTexture_MinPixelInS: SCOPE = 'entity' @@ -8609,7 +8619,7 @@ class IfcPixelTexture_MinPixelInS: @staticmethod def __call__(self): - width = getattr(self, 'Width', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) assert (width >= 1) is not False class IfcPixelTexture_MinPixelInT: @@ -8619,7 +8629,7 @@ class IfcPixelTexture_MinPixelInT: @staticmethod def __call__(self): - height = getattr(self, 'Height', INDETERMINATE) + height = express_getattr(self, 'Height', INDETERMINATE) assert (height >= 1) is not False class IfcPixelTexture_NumberOfColours: @@ -8629,7 +8639,7 @@ class IfcPixelTexture_NumberOfColours: @staticmethod def __call__(self): - colourcomponents = getattr(self, 'ColourComponents', INDETERMINATE) + colourcomponents = express_getattr(self, 'ColourComponents', INDETERMINATE) assert (1 <= colourcomponents <= 4) is not False class IfcPixelTexture_SizeOfPixelList: @@ -8639,9 +8649,9 @@ class IfcPixelTexture_SizeOfPixelList: @staticmethod def __call__(self): - width = getattr(self, 'Width', INDETERMINATE) - height = getattr(self, 'Height', INDETERMINATE) - pixel = getattr(self, 'Pixel', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + height = express_getattr(self, 'Height', INDETERMINATE) + pixel = express_getattr(self, 'Pixel', INDETERMINATE) assert (sizeof(pixel) == width * height) is not False class IfcPixelTexture_PixelAsByteAndSameLength: @@ -8651,12 +8661,12 @@ class IfcPixelTexture_PixelAsByteAndSameLength: @staticmethod def __call__(self): - pixel = getattr(self, 'Pixel', INDETERMINATE) + pixel = express_getattr(self, 'Pixel', INDETERMINATE) assert (sizeof([temp for temp in pixel if blength(temp) % 8 == 0 and blength(temp) == blength(express_getitem(pixel, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == sizeof(pixel)) is not False def calc_IfcPlacement_Dim(self): - location = getattr(self, 'Location', INDETERMINATE) - return getattr(location, 'Dim', INDETERMINATE) + location = express_getattr(self, 'Location', INDETERMINATE) + return express_getattr(location, 'Dim', INDETERMINATE) class IfcPlate_CorrectPredefinedType: SCOPE = 'entity' @@ -8665,8 +8675,8 @@ class IfcPlate_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPlate_CorrectTypeAssigned: SCOPE = 'entity' @@ -8675,8 +8685,8 @@ class IfcPlate_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcplatetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcplatetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPlateStandardCase_HasMaterialLayerSetUsage: SCOPE = 'entity' @@ -8685,7 +8695,7 @@ class IfcPlateStandardCase_HasMaterialLayerSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x2.ifcrelassociates.relatedobjects') if 'ifc4x2.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x2.ifcmateriallayersetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x2.ifcrelassociates.relatedobjects') if 'ifc4x2.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x2.ifcmateriallayersetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcPlateType_CorrectPredefinedType: SCOPE = 'entity' @@ -8694,16 +8704,16 @@ class IfcPlateType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcPointOnCurve_Dim(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - return getattr(basiscurve, 'Dim', INDETERMINATE) + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + return express_getattr(basiscurve, 'Dim', INDETERMINATE) def calc_IfcPointOnSurface_Dim(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) - return getattr(basissurface, 'Dim', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) + return express_getattr(basissurface, 'Dim', INDETERMINATE) class IfcPolyLoop_AllPointsSameDim: SCOPE = 'entity' @@ -8712,8 +8722,8 @@ class IfcPolyLoop_AllPointsSameDim: @staticmethod def __call__(self): - polygon = getattr(self, 'Polygon', INDETERMINATE) - assert (sizeof([temp for temp in polygon if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(polygon, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + polygon = express_getattr(self, 'Polygon', INDETERMINATE) + assert (sizeof([temp for temp in polygon if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(polygon, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False class IfcPolygonalBoundedHalfSpace_BoundaryDim: SCOPE = 'entity' @@ -8722,8 +8732,8 @@ class IfcPolygonalBoundedHalfSpace_BoundaryDim: @staticmethod def __call__(self): - polygonalboundary = getattr(self, 'PolygonalBoundary', INDETERMINATE) - assert (getattr(polygonalboundary, 'Dim', INDETERMINATE) == 2) is not False + polygonalboundary = express_getattr(self, 'PolygonalBoundary', INDETERMINATE) + assert (express_getattr(polygonalboundary, 'Dim', INDETERMINATE) == 2) is not False class IfcPolygonalBoundedHalfSpace_BoundaryType: SCOPE = 'entity' @@ -8732,7 +8742,7 @@ class IfcPolygonalBoundedHalfSpace_BoundaryType: @staticmethod def __call__(self): - polygonalboundary = getattr(self, 'PolygonalBoundary', INDETERMINATE) + polygonalboundary = express_getattr(self, 'PolygonalBoundary', INDETERMINATE) assert (sizeof(typeof(polygonalboundary) * ['ifc4x2.ifcpolyline', 'ifc4x2.ifccompositecurve']) == 1) is not False class IfcPolyline_SameDim: @@ -8742,8 +8752,8 @@ class IfcPolyline_SameDim: @staticmethod def __call__(self): - points = getattr(self, 'Points', INDETERMINATE) - assert (sizeof([temp for temp in points if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(points, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + points = express_getattr(self, 'Points', INDETERMINATE) + assert (sizeof([temp for temp in points if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(points, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False class IfcPositioningElement_HasPlacement: SCOPE = 'entity' @@ -8752,7 +8762,7 @@ class IfcPositioningElement_HasPlacement: @staticmethod def __call__(self): - assert exists(getattr(self, 'ObjectPlacement', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'ObjectPlacement', INDETERMINATE)) is not False class IfcPostalAddress_WR1: SCOPE = 'entity' @@ -8761,13 +8771,13 @@ class IfcPostalAddress_WR1: @staticmethod def __call__(self): - internallocation = getattr(self, 'InternalLocation', INDETERMINATE) - addresslines = getattr(self, 'AddressLines', INDETERMINATE) - postalbox = getattr(self, 'PostalBox', INDETERMINATE) - town = getattr(self, 'Town', INDETERMINATE) - region = getattr(self, 'Region', INDETERMINATE) - postalcode = getattr(self, 'PostalCode', INDETERMINATE) - country = getattr(self, 'Country', INDETERMINATE) + internallocation = express_getattr(self, 'InternalLocation', INDETERMINATE) + addresslines = express_getattr(self, 'AddressLines', INDETERMINATE) + postalbox = express_getattr(self, 'PostalBox', INDETERMINATE) + town = express_getattr(self, 'Town', INDETERMINATE) + region = express_getattr(self, 'Region', INDETERMINATE) + postalcode = express_getattr(self, 'PostalCode', INDETERMINATE) + country = express_getattr(self, 'Country', INDETERMINATE) assert (exists(internallocation) or exists(addresslines) or exists(postalbox) or exists(postalcode) or exists(town) or exists(region) or exists(country)) is not False class IfcPresentationLayerAssignment_ApplicableItems: @@ -8777,7 +8787,7 @@ class IfcPresentationLayerAssignment_ApplicableItems: @staticmethod def __call__(self): - assigneditems = getattr(self, 'AssignedItems', INDETERMINATE) + assigneditems = express_getattr(self, 'AssignedItems', INDETERMINATE) assert (sizeof([temp for temp in assigneditems if sizeof(typeof(temp) * ['ifc4x2.ifcshaperepresentation', 'ifc4x2.ifcgeometricrepresentationitem', 'ifc4x2.ifcmappeditem']) == 1]) == sizeof(assigneditems)) is not False class IfcPresentationLayerWithStyle_ApplicableOnlyToItems: @@ -8787,7 +8797,7 @@ class IfcPresentationLayerWithStyle_ApplicableOnlyToItems: @staticmethod def __call__(self): - assigneditems = getattr(self, 'AssignedItems', INDETERMINATE) + assigneditems = express_getattr(self, 'AssignedItems', INDETERMINATE) assert (sizeof([temp for temp in assigneditems if sizeof(typeof(temp) * ['ifc4x2.ifcgeometricrepresentationitem', 'ifc4x2.ifcmappeditem']) >= 1]) == sizeof(assigneditems)) is not False class IfcProcedure_HasName: @@ -8797,7 +8807,7 @@ class IfcProcedure_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcProcedure_CorrectPredefinedType: SCOPE = 'entity' @@ -8806,8 +8816,8 @@ class IfcProcedure_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProcedureType_CorrectPredefinedType: SCOPE = 'entity' @@ -8816,8 +8826,8 @@ class IfcProcedureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcProduct_PlacementForShapeRepresentation: SCOPE = 'entity' @@ -8826,9 +8836,9 @@ class IfcProduct_PlacementForShapeRepresentation: @staticmethod def __call__(self): - objectplacement = getattr(self, 'ObjectPlacement', INDETERMINATE) - representation = getattr(self, 'Representation', INDETERMINATE) - assert (exists(representation) and exists(objectplacement) or (exists(representation) and sizeof([temp for temp in getattr(representation, 'Representations', INDETERMINATE) if 'ifc4x2.ifcshaperepresentation' in typeof(temp)]) == 0) or (not exists(representation))) is not False + objectplacement = express_getattr(self, 'ObjectPlacement', INDETERMINATE) + representation = express_getattr(self, 'Representation', INDETERMINATE) + assert (exists(representation) and exists(objectplacement) or (exists(representation) and sizeof([temp for temp in express_getattr(representation, 'Representations', INDETERMINATE) if 'ifc4x2.ifcshaperepresentation' in typeof(temp)]) == 0) or (not exists(representation))) is not False class IfcProductDefinitionShape_OnlyShapeModel: SCOPE = 'entity' @@ -8837,7 +8847,7 @@ class IfcProductDefinitionShape_OnlyShapeModel: @staticmethod def __call__(self): - representations = getattr(self, 'Representations', INDETERMINATE) + representations = express_getattr(self, 'Representations', INDETERMINATE) assert (sizeof([temp for temp in representations if not 'ifc4x2.ifcshapemodel' in typeof(temp)]) == 0) is not False class IfcProject_HasName: @@ -8847,7 +8857,7 @@ class IfcProject_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcProject_CorrectContext: SCOPE = 'entity' @@ -8856,7 +8866,7 @@ class IfcProject_CorrectContext: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'RepresentationContexts', INDETERMINATE)) or sizeof([temp for temp in getattr(self, 'RepresentationContexts', INDETERMINATE) if 'ifc4x2.ifcgeometricrepresentationsubcontext' in typeof(temp)]) == 0) is not False + assert (not exists(express_getattr(self, 'RepresentationContexts', INDETERMINATE)) or sizeof([temp for temp in express_getattr(self, 'RepresentationContexts', INDETERMINATE) if 'ifc4x2.ifcgeometricrepresentationsubcontext' in typeof(temp)]) == 0) is not False class IfcProject_NoDecomposition: SCOPE = 'entity' @@ -8865,7 +8875,7 @@ class IfcProject_NoDecomposition: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'Decomposes', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'Decomposes', INDETERMINATE)) == 0) is not False class IfcProjectedCRS_IsLengthUnit: SCOPE = 'entity' @@ -8874,8 +8884,8 @@ class IfcProjectedCRS_IsLengthUnit: @staticmethod def __call__(self): - mapunit = getattr(self, 'MapUnit', INDETERMINATE) - assert (not exists(mapunit) or getattr(mapunit, 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False + mapunit = express_getattr(self, 'MapUnit', INDETERMINATE) + assert (not exists(mapunit) or express_getattr(mapunit, 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False class IfcPropertyBoundedValue_SameUnitUpperLower: SCOPE = 'entity' @@ -8884,8 +8894,8 @@ class IfcPropertyBoundedValue_SameUnitUpperLower: @staticmethod def __call__(self): - upperboundvalue = getattr(self, 'UpperBoundValue', INDETERMINATE) - lowerboundvalue = getattr(self, 'LowerBoundValue', INDETERMINATE) + upperboundvalue = express_getattr(self, 'UpperBoundValue', INDETERMINATE) + lowerboundvalue = express_getattr(self, 'LowerBoundValue', INDETERMINATE) assert (not exists(upperboundvalue) or not exists(lowerboundvalue) or typeof(upperboundvalue) == typeof(lowerboundvalue)) is not False class IfcPropertyBoundedValue_SameUnitUpperSet: @@ -8895,8 +8905,8 @@ class IfcPropertyBoundedValue_SameUnitUpperSet: @staticmethod def __call__(self): - upperboundvalue = getattr(self, 'UpperBoundValue', INDETERMINATE) - setpointvalue = getattr(self, 'SetPointValue', INDETERMINATE) + upperboundvalue = express_getattr(self, 'UpperBoundValue', INDETERMINATE) + setpointvalue = express_getattr(self, 'SetPointValue', INDETERMINATE) assert (not exists(upperboundvalue) or not exists(setpointvalue) or typeof(upperboundvalue) == typeof(setpointvalue)) is not False class IfcPropertyBoundedValue_SameUnitLowerSet: @@ -8906,8 +8916,8 @@ class IfcPropertyBoundedValue_SameUnitLowerSet: @staticmethod def __call__(self): - lowerboundvalue = getattr(self, 'LowerBoundValue', INDETERMINATE) - setpointvalue = getattr(self, 'SetPointValue', INDETERMINATE) + lowerboundvalue = express_getattr(self, 'LowerBoundValue', INDETERMINATE) + setpointvalue = express_getattr(self, 'SetPointValue', INDETERMINATE) assert (not exists(lowerboundvalue) or not exists(setpointvalue) or typeof(lowerboundvalue) == typeof(setpointvalue)) is not False class IfcPropertyDependencyRelationship_NoSelfReference: @@ -8917,8 +8927,8 @@ class IfcPropertyDependencyRelationship_NoSelfReference: @staticmethod def __call__(self): - dependingproperty = getattr(self, 'DependingProperty', INDETERMINATE) - dependantproperty = getattr(self, 'DependantProperty', INDETERMINATE) + dependingproperty = express_getattr(self, 'DependingProperty', INDETERMINATE) + dependantproperty = express_getattr(self, 'DependantProperty', INDETERMINATE) assert (dependingproperty != dependantproperty) is not False class IfcPropertyEnumeratedValue_WR21: @@ -8928,9 +8938,9 @@ class IfcPropertyEnumeratedValue_WR21: @staticmethod def __call__(self): - enumerationvalues = getattr(self, 'EnumerationValues', INDETERMINATE) - enumerationreference = getattr(self, 'EnumerationReference', INDETERMINATE) - assert (not exists(enumerationreference) or not exists(enumerationvalues) or sizeof([temp for temp in enumerationvalues if temp in getattr(enumerationreference, 'EnumerationValues', INDETERMINATE)]) == sizeof(enumerationvalues)) is not False + enumerationvalues = express_getattr(self, 'EnumerationValues', INDETERMINATE) + enumerationreference = express_getattr(self, 'EnumerationReference', INDETERMINATE) + assert (not exists(enumerationreference) or not exists(enumerationvalues) or sizeof([temp for temp in enumerationvalues if temp in express_getattr(enumerationreference, 'EnumerationValues', INDETERMINATE)]) == sizeof(enumerationvalues)) is not False class IfcPropertyEnumeration_WR01: SCOPE = 'entity' @@ -8939,7 +8949,7 @@ class IfcPropertyEnumeration_WR01: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'EnumerationValues', INDETERMINATE) if not typeof(express_getitem(getattr(self, 'EnumerationValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'EnumerationValues', INDETERMINATE) if not typeof(express_getitem(express_getattr(self, 'EnumerationValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False class IfcPropertyListValue_WR31: SCOPE = 'entity' @@ -8948,7 +8958,7 @@ class IfcPropertyListValue_WR31: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'ListValues', INDETERMINATE) if not typeof(express_getitem(getattr(self, 'ListValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'ListValues', INDETERMINATE) if not typeof(express_getitem(express_getattr(self, 'ListValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False class IfcPropertySet_ExistsName: SCOPE = 'entity' @@ -8957,7 +8967,7 @@ class IfcPropertySet_ExistsName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPropertySet_UniquePropertyNames: SCOPE = 'entity' @@ -8966,7 +8976,7 @@ class IfcPropertySet_UniquePropertyNames: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert IfcUniquePropertyName(hasproperties) is not False class IfcPropertySetTemplate_ExistsName: @@ -8976,7 +8986,7 @@ class IfcPropertySetTemplate_ExistsName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPropertySetTemplate_UniquePropertyNames: SCOPE = 'entity' @@ -8985,7 +8995,7 @@ class IfcPropertySetTemplate_UniquePropertyNames: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert IfcUniquePropertyTemplateNames(haspropertytemplates) is not False class IfcPropertyTableValue_WR21: @@ -8995,8 +9005,8 @@ class IfcPropertyTableValue_WR21: @staticmethod def __call__(self): - definingvalues = getattr(self, 'DefiningValues', INDETERMINATE) - definedvalues = getattr(self, 'DefinedValues', INDETERMINATE) + definingvalues = express_getattr(self, 'DefiningValues', INDETERMINATE) + definedvalues = express_getattr(self, 'DefinedValues', INDETERMINATE) assert (not exists(definingvalues) and (not exists(definedvalues)) or sizeof(definingvalues) == sizeof(definedvalues)) is not False class IfcPropertyTableValue_WR22: @@ -9006,8 +9016,8 @@ class IfcPropertyTableValue_WR22: @staticmethod def __call__(self): - definingvalues = getattr(self, 'DefiningValues', INDETERMINATE) - assert (not exists(definingvalues) or sizeof([temp for temp in getattr(self, 'DefiningValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(getattr(self, 'DefiningValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False + definingvalues = express_getattr(self, 'DefiningValues', INDETERMINATE) + assert (not exists(definingvalues) or sizeof([temp for temp in express_getattr(self, 'DefiningValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(express_getattr(self, 'DefiningValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False class IfcPropertyTableValue_WR23: SCOPE = 'entity' @@ -9016,8 +9026,8 @@ class IfcPropertyTableValue_WR23: @staticmethod def __call__(self): - definedvalues = getattr(self, 'DefinedValues', INDETERMINATE) - assert (not exists(definedvalues) or sizeof([temp for temp in getattr(self, 'DefinedValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(getattr(self, 'DefinedValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False + definedvalues = express_getattr(self, 'DefinedValues', INDETERMINATE) + assert (not exists(definedvalues) or sizeof([temp for temp in express_getattr(self, 'DefinedValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(express_getattr(self, 'DefinedValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False class IfcProtectiveDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -9026,8 +9036,8 @@ class IfcProtectiveDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProtectiveDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -9036,8 +9046,8 @@ class IfcProtectiveDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcprotectivedevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcprotectivedevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcProtectiveDeviceTrippingUnit_CorrectPredefinedType: SCOPE = 'entity' @@ -9046,8 +9056,8 @@ class IfcProtectiveDeviceTrippingUnit_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProtectiveDeviceTrippingUnit_CorrectTypeAssigned: SCOPE = 'entity' @@ -9056,8 +9066,8 @@ class IfcProtectiveDeviceTrippingUnit_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcprotectivedevicetrippingunittype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcprotectivedevicetrippingunittype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcProtectiveDeviceTrippingUnitType_CorrectPredefinedType: SCOPE = 'entity' @@ -9066,8 +9076,8 @@ class IfcProtectiveDeviceTrippingUnitType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcProtectiveDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9076,8 +9086,8 @@ class IfcProtectiveDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcProxy_WR1: SCOPE = 'entity' @@ -9086,7 +9096,7 @@ class IfcProxy_WR1: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPump_CorrectPredefinedType: SCOPE = 'entity' @@ -9095,8 +9105,8 @@ class IfcPump_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPump_CorrectTypeAssigned: SCOPE = 'entity' @@ -9105,8 +9115,8 @@ class IfcPump_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcpumptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcpumptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPumpType_CorrectPredefinedType: SCOPE = 'entity' @@ -9115,8 +9125,8 @@ class IfcPumpType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcQuantityArea_WR21: SCOPE = 'entity' @@ -9125,7 +9135,7 @@ class IfcQuantityArea_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE)) is not False class IfcQuantityArea_WR22: SCOPE = 'entity' @@ -9134,7 +9144,7 @@ class IfcQuantityArea_WR22: @staticmethod def __call__(self): - areavalue = getattr(self, 'AreaValue', INDETERMINATE) + areavalue = express_getattr(self, 'AreaValue', INDETERMINATE) assert (areavalue >= 0.0) is not False class IfcQuantityCount_WR21: @@ -9144,7 +9154,7 @@ class IfcQuantityCount_WR21: @staticmethod def __call__(self): - countvalue = getattr(self, 'CountValue', INDETERMINATE) + countvalue = express_getattr(self, 'CountValue', INDETERMINATE) assert (countvalue >= 0.0) is not False class IfcQuantityLength_WR21: @@ -9154,7 +9164,7 @@ class IfcQuantityLength_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False class IfcQuantityLength_WR22: SCOPE = 'entity' @@ -9163,7 +9173,7 @@ class IfcQuantityLength_WR22: @staticmethod def __call__(self): - lengthvalue = getattr(self, 'LengthValue', INDETERMINATE) + lengthvalue = express_getattr(self, 'LengthValue', INDETERMINATE) assert (lengthvalue >= 0.0) is not False class IfcQuantityTime_WR21: @@ -9173,7 +9183,7 @@ class IfcQuantityTime_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE)) is not False class IfcQuantityTime_WR22: SCOPE = 'entity' @@ -9182,7 +9192,7 @@ class IfcQuantityTime_WR22: @staticmethod def __call__(self): - timevalue = getattr(self, 'TimeValue', INDETERMINATE) + timevalue = express_getattr(self, 'TimeValue', INDETERMINATE) assert (timevalue >= 0.0) is not False class IfcQuantityVolume_WR21: @@ -9192,7 +9202,7 @@ class IfcQuantityVolume_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE)) is not False class IfcQuantityVolume_WR22: SCOPE = 'entity' @@ -9201,7 +9211,7 @@ class IfcQuantityVolume_WR22: @staticmethod def __call__(self): - volumevalue = getattr(self, 'VolumeValue', INDETERMINATE) + volumevalue = express_getattr(self, 'VolumeValue', INDETERMINATE) assert (volumevalue >= 0.0) is not False class IfcQuantityWeight_WR21: @@ -9211,7 +9221,7 @@ class IfcQuantityWeight_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE)) is not False class IfcQuantityWeight_WR22: SCOPE = 'entity' @@ -9220,7 +9230,7 @@ class IfcQuantityWeight_WR22: @staticmethod def __call__(self): - weightvalue = getattr(self, 'WeightValue', INDETERMINATE) + weightvalue = express_getattr(self, 'WeightValue', INDETERMINATE) assert (weightvalue >= 0.0) is not False class IfcRailing_CorrectPredefinedType: @@ -9230,8 +9240,8 @@ class IfcRailing_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRailing_CorrectTypeAssigned: SCOPE = 'entity' @@ -9240,8 +9250,8 @@ class IfcRailing_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcrailingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcrailingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRailingType_CorrectPredefinedType: SCOPE = 'entity' @@ -9250,8 +9260,8 @@ class IfcRailingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRamp_CorrectPredefinedType: SCOPE = 'entity' @@ -9260,8 +9270,8 @@ class IfcRamp_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRamp_CorrectTypeAssigned: SCOPE = 'entity' @@ -9270,8 +9280,8 @@ class IfcRamp_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcramptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcramptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRampFlight_CorrectPredefinedType: SCOPE = 'entity' @@ -9280,8 +9290,8 @@ class IfcRampFlight_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRampFlight_CorrectTypeAssigned: SCOPE = 'entity' @@ -9290,8 +9300,8 @@ class IfcRampFlight_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcrampflighttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcrampflighttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRampFlightType_CorrectPredefinedType: SCOPE = 'entity' @@ -9300,8 +9310,8 @@ class IfcRampFlightType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRampType_CorrectPredefinedType: SCOPE = 'entity' @@ -9310,8 +9320,8 @@ class IfcRampType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRationalBSplineCurveWithKnots_SameNumOfWeightsAndPoints: SCOPE = 'entity' @@ -9320,8 +9330,8 @@ class IfcRationalBSplineCurveWithKnots_SameNumOfWeightsAndPoints: @staticmethod def __call__(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - assert (sizeof(weightsdata) == sizeof(getattr(self, 'ControlPointsList', INDETERMINATE))) is not False + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + assert (sizeof(weightsdata) == sizeof(express_getattr(self, 'ControlPointsList', INDETERMINATE))) is not False class IfcRationalBSplineCurveWithKnots_WeightsGreaterZero: SCOPE = 'entity' @@ -9333,8 +9343,8 @@ class IfcRationalBSplineCurveWithKnots_WeightsGreaterZero: assert IfcCurveWeightsPositive(self) is not False def calc_IfcRationalBSplineCurveWithKnots_Weights(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - return IfcListToArray(weightsdata, 0, getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE)) + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + return IfcListToArray(weightsdata, 0, express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE)) class IfcRationalBSplineSurfaceWithKnots_CorrespondingWeightsDataLists: SCOPE = 'entity' @@ -9343,8 +9353,8 @@ class IfcRationalBSplineSurfaceWithKnots_CorrespondingWeightsDataLists: @staticmethod def __call__(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - assert (sizeof(weightsdata) == sizeof(getattr(self, 'ControlPointsList', INDETERMINATE)) and sizeof(express_getitem(weightsdata, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == sizeof(express_getitem(getattr(self, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + assert (sizeof(weightsdata) == sizeof(express_getattr(self, 'ControlPointsList', INDETERMINATE)) and sizeof(express_getitem(weightsdata, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == sizeof(express_getitem(express_getattr(self, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcRationalBSplineSurfaceWithKnots_WeightValuesGreaterZero: SCOPE = 'entity' @@ -9356,9 +9366,9 @@ class IfcRationalBSplineSurfaceWithKnots_WeightValuesGreaterZero: assert IfcSurfaceWeightsPositive(self) is not False def calc_IfcRationalBSplineSurfaceWithKnots_Weights(self): - uupper = getattr(self, 'UUpper', INDETERMINATE) - vupper = getattr(self, 'VUpper', INDETERMINATE) - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) + uupper = express_getattr(self, 'UUpper', INDETERMINATE) + vupper = express_getattr(self, 'VUpper', INDETERMINATE) + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) return IfcMakeArrayOfArray(weightsdata, 0, uupper, 0, vupper) class IfcRectangleHollowProfileDef_ValidWallThickness: @@ -9368,8 +9378,8 @@ class IfcRectangleHollowProfileDef_ValidWallThickness: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - assert (wallthickness < getattr(self, 'XDim', INDETERMINATE) / 2.0 and wallthickness < getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + assert (wallthickness < express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and wallthickness < express_getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False class IfcRectangleHollowProfileDef_ValidInnerRadius: SCOPE = 'entity' @@ -9378,9 +9388,9 @@ class IfcRectangleHollowProfileDef_ValidInnerRadius: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - innerfilletradius = getattr(self, 'InnerFilletRadius', INDETERMINATE) - assert (not exists(innerfilletradius) or (innerfilletradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 - wallthickness and innerfilletradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0 - wallthickness)) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + innerfilletradius = express_getattr(self, 'InnerFilletRadius', INDETERMINATE) + assert (not exists(innerfilletradius) or (innerfilletradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 - wallthickness and innerfilletradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0 - wallthickness)) is not False class IfcRectangleHollowProfileDef_ValidOuterRadius: SCOPE = 'entity' @@ -9389,8 +9399,8 @@ class IfcRectangleHollowProfileDef_ValidOuterRadius: @staticmethod def __call__(self): - outerfilletradius = getattr(self, 'OuterFilletRadius', INDETERMINATE) - assert (not exists(outerfilletradius) or (outerfilletradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 and outerfilletradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0)) is not False + outerfilletradius = express_getattr(self, 'OuterFilletRadius', INDETERMINATE) + assert (not exists(outerfilletradius) or (outerfilletradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and outerfilletradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0)) is not False class IfcRectangularTrimmedSurface_U1AndU2Different: SCOPE = 'entity' @@ -9399,8 +9409,8 @@ class IfcRectangularTrimmedSurface_U1AndU2Different: @staticmethod def __call__(self): - u1 = getattr(self, 'U1', INDETERMINATE) - u2 = getattr(self, 'U2', INDETERMINATE) + u1 = express_getattr(self, 'U1', INDETERMINATE) + u2 = express_getattr(self, 'U2', INDETERMINATE) assert (u1 != u2) is not False class IfcRectangularTrimmedSurface_V1AndV2Different: @@ -9410,8 +9420,8 @@ class IfcRectangularTrimmedSurface_V1AndV2Different: @staticmethod def __call__(self): - v1 = getattr(self, 'V1', INDETERMINATE) - v2 = getattr(self, 'V2', INDETERMINATE) + v1 = express_getattr(self, 'V1', INDETERMINATE) + v2 = express_getattr(self, 'V2', INDETERMINATE) assert (v1 != v2) is not False class IfcRectangularTrimmedSurface_UsenseCompatible: @@ -9421,10 +9431,10 @@ class IfcRectangularTrimmedSurface_UsenseCompatible: @staticmethod def __call__(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) - u1 = getattr(self, 'U1', INDETERMINATE) - u2 = getattr(self, 'U2', INDETERMINATE) - usense = getattr(self, 'Usense', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) + u1 = express_getattr(self, 'U1', INDETERMINATE) + u2 = express_getattr(self, 'U2', INDETERMINATE) + usense = express_getattr(self, 'Usense', INDETERMINATE) assert ('ifc4x2.ifcelementarysurface' in typeof(basissurface) and (not 'ifc4x2.ifcplane' in typeof(basissurface)) or 'ifc4x2.ifcsurfaceofrevolution' in typeof(basissurface) or usense == (u2 > u1)) is not False class IfcRectangularTrimmedSurface_VsenseCompatible: @@ -9434,9 +9444,9 @@ class IfcRectangularTrimmedSurface_VsenseCompatible: @staticmethod def __call__(self): - v1 = getattr(self, 'V1', INDETERMINATE) - v2 = getattr(self, 'V2', INDETERMINATE) - vsense = getattr(self, 'Vsense', INDETERMINATE) + v1 = express_getattr(self, 'V1', INDETERMINATE) + v2 = express_getattr(self, 'V2', INDETERMINATE) + vsense = express_getattr(self, 'Vsense', INDETERMINATE) assert (vsense == (v2 > v1)) is not False class IfcReinforcingBar_CorrectPredefinedType: @@ -9446,8 +9456,8 @@ class IfcReinforcingBar_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingBar_CorrectTypeAssigned: SCOPE = 'entity' @@ -9456,8 +9466,8 @@ class IfcReinforcingBar_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcreinforcingbartype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcreinforcingbartype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcReinforcingBarType_CorrectPredefinedType: SCOPE = 'entity' @@ -9466,8 +9476,8 @@ class IfcReinforcingBarType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcReinforcingBarType_BendingShapeCodeProvided: SCOPE = 'entity' @@ -9476,8 +9486,8 @@ class IfcReinforcingBarType_BendingShapeCodeProvided: @staticmethod def __call__(self): - bendingshapecode = getattr(self, 'BendingShapeCode', INDETERMINATE) - bendingparameters = getattr(self, 'BendingParameters', INDETERMINATE) + bendingshapecode = express_getattr(self, 'BendingShapeCode', INDETERMINATE) + bendingparameters = express_getattr(self, 'BendingParameters', INDETERMINATE) assert (not exists(bendingparameters) or exists(bendingshapecode)) is not False class IfcReinforcingMesh_CorrectPredefinedType: @@ -9487,8 +9497,8 @@ class IfcReinforcingMesh_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingMesh_CorrectTypeAssigned: SCOPE = 'entity' @@ -9497,8 +9507,8 @@ class IfcReinforcingMesh_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcreinforcingmeshtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcreinforcingmeshtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcReinforcingMeshType_CorrectPredefinedType: SCOPE = 'entity' @@ -9507,8 +9517,8 @@ class IfcReinforcingMeshType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcReinforcingMeshType_BendingShapeCodeProvided: SCOPE = 'entity' @@ -9517,8 +9527,8 @@ class IfcReinforcingMeshType_BendingShapeCodeProvided: @staticmethod def __call__(self): - bendingshapecode = getattr(self, 'BendingShapeCode', INDETERMINATE) - bendingparameters = getattr(self, 'BendingParameters', INDETERMINATE) + bendingshapecode = express_getattr(self, 'BendingShapeCode', INDETERMINATE) + bendingparameters = express_getattr(self, 'BendingParameters', INDETERMINATE) assert (not exists(bendingparameters) or exists(bendingshapecode)) is not False class IfcRelAggregates_NoSelfReference: @@ -9528,8 +9538,8 @@ class IfcRelAggregates_NoSelfReference: @staticmethod def __call__(self): - relatingobject = getattr(self, 'RelatingObject', INDETERMINATE) - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) + relatingobject = express_getattr(self, 'RelatingObject', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) assert (sizeof([temp for temp in relatedobjects if relatingobject == temp]) == 0) is not False class IfcRelAssigns_WR1: @@ -9539,8 +9549,8 @@ class IfcRelAssigns_WR1: @staticmethod def __call__(self): - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) - relatedobjectstype = getattr(self, 'RelatedObjectsType', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) + relatedobjectstype = express_getattr(self, 'RelatedObjectsType', INDETERMINATE) assert IfcCorrectObjectAssignment(relatedobjectstype, relatedobjects) is not False class IfcRelAssignsToActor_NoSelfReference: @@ -9550,8 +9560,8 @@ class IfcRelAssignsToActor_NoSelfReference: @staticmethod def __call__(self): - relatingactor = getattr(self, 'RelatingActor', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingactor == temp]) == 0) is not False + relatingactor = express_getattr(self, 'RelatingActor', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingactor == temp]) == 0) is not False class IfcRelAssignsToControl_NoSelfReference: SCOPE = 'entity' @@ -9560,8 +9570,8 @@ class IfcRelAssignsToControl_NoSelfReference: @staticmethod def __call__(self): - relatingcontrol = getattr(self, 'RelatingControl', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingcontrol == temp]) == 0) is not False + relatingcontrol = express_getattr(self, 'RelatingControl', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingcontrol == temp]) == 0) is not False class IfcRelAssignsToGroup_NoSelfReference: SCOPE = 'entity' @@ -9570,8 +9580,8 @@ class IfcRelAssignsToGroup_NoSelfReference: @staticmethod def __call__(self): - relatinggroup = getattr(self, 'RelatingGroup', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatinggroup == temp]) == 0) is not False + relatinggroup = express_getattr(self, 'RelatingGroup', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatinggroup == temp]) == 0) is not False class IfcRelAssignsToProcess_NoSelfReference: SCOPE = 'entity' @@ -9580,8 +9590,8 @@ class IfcRelAssignsToProcess_NoSelfReference: @staticmethod def __call__(self): - relatingprocess = getattr(self, 'RelatingProcess', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingprocess == temp]) == 0) is not False + relatingprocess = express_getattr(self, 'RelatingProcess', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingprocess == temp]) == 0) is not False class IfcRelAssignsToProduct_NoSelfReference: SCOPE = 'entity' @@ -9590,8 +9600,8 @@ class IfcRelAssignsToProduct_NoSelfReference: @staticmethod def __call__(self): - relatingproduct = getattr(self, 'RelatingProduct', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingproduct == temp]) == 0) is not False + relatingproduct = express_getattr(self, 'RelatingProduct', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingproduct == temp]) == 0) is not False class IfcRelAssignsToResource_NoSelfReference: SCOPE = 'entity' @@ -9600,8 +9610,8 @@ class IfcRelAssignsToResource_NoSelfReference: @staticmethod def __call__(self): - relatingresource = getattr(self, 'RelatingResource', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingresource == temp]) == 0) is not False + relatingresource = express_getattr(self, 'RelatingResource', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingresource == temp]) == 0) is not False class IfcRelAssociatesMaterial_NoVoidElement: SCOPE = 'entity' @@ -9610,7 +9620,7 @@ class IfcRelAssociatesMaterial_NoVoidElement: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x2.ifcfeatureelementsubtraction' in typeof(temp) or 'ifc4x2.ifcvirtualelement' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x2.ifcfeatureelementsubtraction' in typeof(temp) or 'ifc4x2.ifcvirtualelement' in typeof(temp)]) == 0) is not False class IfcRelAssociatesMaterial_AllowedElements: SCOPE = 'entity' @@ -9619,7 +9629,7 @@ class IfcRelAssociatesMaterial_AllowedElements: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if sizeof(typeof(temp) * ['ifc4x2.ifcelement', 'ifc4x2.ifcelementtype', 'ifc4x2.ifcwindowstyle', 'ifc4x2.ifcdoorstyle', 'ifc4x2.ifcstructuralmember', 'ifc4x2.ifcport']) == 0]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if sizeof(typeof(temp) * ['ifc4x2.ifcelement', 'ifc4x2.ifcelementtype', 'ifc4x2.ifcwindowstyle', 'ifc4x2.ifcdoorstyle', 'ifc4x2.ifcstructuralmember', 'ifc4x2.ifcport']) == 0]) == 0) is not False class IfcRelConnectsElements_NoSelfReference: SCOPE = 'entity' @@ -9628,8 +9638,8 @@ class IfcRelConnectsElements_NoSelfReference: @staticmethod def __call__(self): - relatingelement = getattr(self, 'RelatingElement', INDETERMINATE) - relatedelement = getattr(self, 'RelatedElement', INDETERMINATE) + relatingelement = express_getattr(self, 'RelatingElement', INDETERMINATE) + relatedelement = express_getattr(self, 'RelatedElement', INDETERMINATE) assert (relatingelement != relatedelement) is not False class IfcRelConnectsPathElements_NormalizedRelatingPriorities: @@ -9639,7 +9649,7 @@ class IfcRelConnectsPathElements_NormalizedRelatingPriorities: @staticmethod def __call__(self): - relatingpriorities = getattr(self, 'RelatingPriorities', INDETERMINATE) + relatingpriorities = express_getattr(self, 'RelatingPriorities', INDETERMINATE) assert (sizeof(relatingpriorities) == 0 or sizeof([temp for temp in relatingpriorities if 0 <= temp <= 100]) == sizeof(relatingpriorities)) is not False class IfcRelConnectsPathElements_NormalizedRelatedPriorities: @@ -9649,7 +9659,7 @@ class IfcRelConnectsPathElements_NormalizedRelatedPriorities: @staticmethod def __call__(self): - relatedpriorities = getattr(self, 'RelatedPriorities', INDETERMINATE) + relatedpriorities = express_getattr(self, 'RelatedPriorities', INDETERMINATE) assert (sizeof(relatedpriorities) == 0 or sizeof([temp for temp in relatedpriorities if 0 <= temp <= 100]) == sizeof(relatedpriorities)) is not False class IfcRelConnectsPorts_NoSelfReference: @@ -9659,8 +9669,8 @@ class IfcRelConnectsPorts_NoSelfReference: @staticmethod def __call__(self): - relatingport = getattr(self, 'RelatingPort', INDETERMINATE) - relatedport = getattr(self, 'RelatedPort', INDETERMINATE) + relatingport = express_getattr(self, 'RelatingPort', INDETERMINATE) + relatedport = express_getattr(self, 'RelatedPort', INDETERMINATE) assert (relatingport != relatedport) is not False class IfcRelContainedInSpatialStructure_WR31: @@ -9670,7 +9680,7 @@ class IfcRelContainedInSpatialStructure_WR31: @staticmethod def __call__(self): - relatedelements = getattr(self, 'RelatedElements', INDETERMINATE) + relatedelements = express_getattr(self, 'RelatedElements', INDETERMINATE) assert (sizeof([temp for temp in relatedelements if 'ifc4x2.ifcspatialstructureelement' in typeof(temp)]) == 0) is not False class IfcRelDeclares_NoSelfReference: @@ -9680,8 +9690,8 @@ class IfcRelDeclares_NoSelfReference: @staticmethod def __call__(self): - relatingcontext = getattr(self, 'RelatingContext', INDETERMINATE) - relateddefinitions = getattr(self, 'RelatedDefinitions', INDETERMINATE) + relatingcontext = express_getattr(self, 'RelatingContext', INDETERMINATE) + relateddefinitions = express_getattr(self, 'RelatedDefinitions', INDETERMINATE) assert (sizeof([temp for temp in relateddefinitions if relatingcontext == temp]) == 0) is not False class IfcRelDefinesByProperties_NoRelatedTypeObject: @@ -9691,7 +9701,7 @@ class IfcRelDefinesByProperties_NoRelatedTypeObject: @staticmethod def __call__(self): - assert (sizeof([types for types in getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x2.ifctypeobject' in typeof(types)]) == 0) is not False + assert (sizeof([types for types in express_getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x2.ifctypeobject' in typeof(types)]) == 0) is not False class IfcRelInterferesElements_NoSelfReference: SCOPE = 'entity' @@ -9700,8 +9710,8 @@ class IfcRelInterferesElements_NoSelfReference: @staticmethod def __call__(self): - relatingelement = getattr(self, 'RelatingElement', INDETERMINATE) - relatedelement = getattr(self, 'RelatedElement', INDETERMINATE) + relatingelement = express_getattr(self, 'RelatingElement', INDETERMINATE) + relatedelement = express_getattr(self, 'RelatedElement', INDETERMINATE) assert (relatingelement != relatedelement) is not False class IfcRelNests_NoSelfReference: @@ -9711,8 +9721,8 @@ class IfcRelNests_NoSelfReference: @staticmethod def __call__(self): - relatingobject = getattr(self, 'RelatingObject', INDETERMINATE) - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) + relatingobject = express_getattr(self, 'RelatingObject', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) assert (sizeof([temp for temp in relatedobjects if relatingobject == temp]) == 0) is not False class IfcRelPositions_NoSelfReference: @@ -9722,8 +9732,8 @@ class IfcRelPositions_NoSelfReference: @staticmethod def __call__(self): - relatingpositioningelement = getattr(self, 'RelatingPositioningElement', INDETERMINATE) - relatedproducts = getattr(self, 'RelatedProducts', INDETERMINATE) + relatingpositioningelement = express_getattr(self, 'RelatingPositioningElement', INDETERMINATE) + relatedproducts = express_getattr(self, 'RelatedProducts', INDETERMINATE) assert (sizeof([temp for temp in relatedproducts if relatingpositioningelement == temp]) == 0) is not False class IfcRelReferencedInSpatialStructure_AllowedRelatedElements: @@ -9733,7 +9743,7 @@ class IfcRelReferencedInSpatialStructure_AllowedRelatedElements: @staticmethod def __call__(self): - relatedelements = getattr(self, 'RelatedElements', INDETERMINATE) + relatedelements = express_getattr(self, 'RelatedElements', INDETERMINATE) assert (sizeof([temp for temp in relatedelements if 'ifc4x2.ifcspatialstructureelement' in typeof(temp) and (not 'ifc4x2.ifcspace' in typeof(temp))]) == 0) is not False class IfcRelSequence_AvoidInconsistentSequence: @@ -9743,8 +9753,8 @@ class IfcRelSequence_AvoidInconsistentSequence: @staticmethod def __call__(self): - relatingprocess = getattr(self, 'RelatingProcess', INDETERMINATE) - relatedprocess = getattr(self, 'RelatedProcess', INDETERMINATE) + relatingprocess = express_getattr(self, 'RelatingProcess', INDETERMINATE) + relatedprocess = express_getattr(self, 'RelatedProcess', INDETERMINATE) assert (relatingprocess != relatedprocess) is not False class IfcRelSequence_CorrectSequenceType: @@ -9754,9 +9764,9 @@ class IfcRelSequence_CorrectSequenceType: @staticmethod def __call__(self): - sequencetype = getattr(self, 'SequenceType', INDETERMINATE) - userdefinedsequencetype = getattr(self, 'UserDefinedSequenceType', INDETERMINATE) - assert (sequencetype != getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) or (sequencetype == getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedsequencetype))) is not False + sequencetype = express_getattr(self, 'SequenceType', INDETERMINATE) + userdefinedsequencetype = express_getattr(self, 'UserDefinedSequenceType', INDETERMINATE) + assert (sequencetype != express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) or (sequencetype == express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedsequencetype))) is not False class IfcRelSpaceBoundary_CorrectPhysOrVirt: SCOPE = 'entity' @@ -9765,9 +9775,9 @@ class IfcRelSpaceBoundary_CorrectPhysOrVirt: @staticmethod def __call__(self): - relatedbuildingelement = getattr(self, 'RelatedBuildingElement', INDETERMINATE) - physicalorvirtualboundary = getattr(self, 'PhysicalOrVirtualBoundary', INDETERMINATE) - assert (physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'Physical', INDETERMINATE) and (not 'ifc4x2.ifcvirtualelement' in typeof(relatedbuildingelement)) or (physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'Virtual', INDETERMINATE) and ('ifc4x2.ifcvirtualelement' in typeof(relatedbuildingelement) or 'ifc4x2.ifcopeningelement' in typeof(relatedbuildingelement))) or physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'NotDefined', INDETERMINATE)) is not False + relatedbuildingelement = express_getattr(self, 'RelatedBuildingElement', INDETERMINATE) + physicalorvirtualboundary = express_getattr(self, 'PhysicalOrVirtualBoundary', INDETERMINATE) + assert (physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'Physical', INDETERMINATE) and (not 'ifc4x2.ifcvirtualelement' in typeof(relatedbuildingelement)) or (physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'Virtual', INDETERMINATE) and ('ifc4x2.ifcvirtualelement' in typeof(relatedbuildingelement) or 'ifc4x2.ifcopeningelement' in typeof(relatedbuildingelement))) or physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'NotDefined', INDETERMINATE)) is not False class IfcReparametrisedCompositeCurveSegment_PositiveLengthParameter: SCOPE = 'entity' @@ -9776,7 +9786,7 @@ class IfcReparametrisedCompositeCurveSegment_PositiveLengthParameter: @staticmethod def __call__(self): - paramlength = getattr(self, 'ParamLength', INDETERMINATE) + paramlength = express_getattr(self, 'ParamLength', INDETERMINATE) assert (paramlength > 0.0) is not False class IfcRepresentationMap_ApplicableMappedRepr: @@ -9786,7 +9796,7 @@ class IfcRepresentationMap_ApplicableMappedRepr: @staticmethod def __call__(self): - mappedrepresentation = getattr(self, 'MappedRepresentation', INDETERMINATE) + mappedrepresentation = express_getattr(self, 'MappedRepresentation', INDETERMINATE) assert ('ifc4x2.ifcshapemodel' in typeof(mappedrepresentation)) is not False class IfcRevolvedAreaSolid_AxisStartInXY: @@ -9796,8 +9806,8 @@ class IfcRevolvedAreaSolid_AxisStartInXY: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (express_getitem(getattr(getattr(axis, 'Location', INDETERMINATE), 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (express_getitem(express_getattr(express_getattr(axis, 'Location', INDETERMINATE), 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False class IfcRevolvedAreaSolid_AxisDirectionInXY: SCOPE = 'entity' @@ -9806,12 +9816,12 @@ class IfcRevolvedAreaSolid_AxisDirectionInXY: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (express_getitem(getattr(getattr(axis, 'Z', INDETERMINATE), 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (express_getitem(express_getattr(express_getattr(axis, 'Z', INDETERMINATE), 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False def calc_IfcRevolvedAreaSolid_AxisLine(self): - axis = getattr(self, 'Axis', INDETERMINATE) - return IfcLine(Pnt=getattr(axis, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=getattr(axis, 'Z', INDETERMINATE), Magnitude=1.0)) + axis = express_getattr(self, 'Axis', INDETERMINATE) + return IfcLine(Pnt=express_getattr(axis, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=express_getattr(axis, 'Z', INDETERMINATE), Magnitude=1.0)) class IfcRevolvedAreaSolidTapered_CorrectProfileAssignment: SCOPE = 'entity' @@ -9820,7 +9830,7 @@ class IfcRevolvedAreaSolidTapered_CorrectProfileAssignment: @staticmethod def __call__(self): - assert IfcTaperedSweptAreaProfiles(getattr(self, 'SweptArea', INDETERMINATE), getattr(self, 'EndSweptArea', INDETERMINATE)) is not False + assert IfcTaperedSweptAreaProfiles(express_getattr(self, 'SweptArea', INDETERMINATE), express_getattr(self, 'EndSweptArea', INDETERMINATE)) is not False class IfcRoof_CorrectPredefinedType: SCOPE = 'entity' @@ -9829,8 +9839,8 @@ class IfcRoof_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRoof_CorrectTypeAssigned: SCOPE = 'entity' @@ -9839,8 +9849,8 @@ class IfcRoof_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcrooftype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcrooftype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRoofType_CorrectPredefinedType: SCOPE = 'entity' @@ -9849,8 +9859,8 @@ class IfcRoofType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRoundedRectangleProfileDef_ValidRadius: SCOPE = 'entity' @@ -9859,11 +9869,11 @@ class IfcRoundedRectangleProfileDef_ValidRadius: @staticmethod def __call__(self): - roundingradius = getattr(self, 'RoundingRadius', INDETERMINATE) - assert (roundingradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 and roundingradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False + roundingradius = express_getattr(self, 'RoundingRadius', INDETERMINATE) + assert (roundingradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and roundingradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False def calc_IfcSIUnit_Dimensions(self): - return IfcDimensionsForSiUnit(getattr(self, 'Name', INDETERMINATE)) + return IfcDimensionsForSiUnit(express_getattr(self, 'Name', INDETERMINATE)) class IfcSanitaryTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -9872,8 +9882,8 @@ class IfcSanitaryTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSanitaryTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -9882,8 +9892,8 @@ class IfcSanitaryTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcsanitaryterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcsanitaryterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSanitaryTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -9892,8 +9902,8 @@ class IfcSanitaryTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSeamCurve_TwoPCurves: SCOPE = 'entity' @@ -9902,7 +9912,7 @@ class IfcSeamCurve_TwoPCurves: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False + assert (sizeof(express_getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False class IfcSeamCurve_SameSurface: SCOPE = 'entity' @@ -9911,7 +9921,7 @@ class IfcSeamCurve_SameSurface: @staticmethod def __call__(self): - assert (IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcSectionedSolid_DirectrixIs3D: SCOPE = 'entity' @@ -9920,8 +9930,8 @@ class IfcSectionedSolid_DirectrixIs3D: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - assert (getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + assert (express_getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False class IfcSectionedSolid_ConsistentProfileTypes: SCOPE = 'entity' @@ -9930,8 +9940,8 @@ class IfcSectionedSolid_ConsistentProfileTypes: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - assert (sizeof([temp for temp in crosssections if getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + assert (sizeof([temp for temp in crosssections if express_getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != express_getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcSectionedSolid_SectionsSameType: SCOPE = 'entity' @@ -9940,7 +9950,7 @@ class IfcSectionedSolid_SectionsSameType: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) assert (sizeof([temp for temp in crosssections if typeof(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(temp)]) == 0) is not False class IfcSectionedSolidHorizontal_CorrespondingSectionPositions: @@ -9950,8 +9960,8 @@ class IfcSectionedSolidHorizontal_CorrespondingSectionPositions: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) assert (sizeof(crosssections) == sizeof(crosssectionpositions)) is not False class IfcSectionedSolidHorizontal_NoLongitudinalOffsets: @@ -9961,8 +9971,8 @@ class IfcSectionedSolidHorizontal_NoLongitudinalOffsets: @staticmethod def __call__(self): - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) - assert (sizeof([temp for temp in crosssectionpositions if exists(getattr(temp, 'OffsetLongitudinal', INDETERMINATE))]) == 0) is not False + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) + assert (sizeof([temp for temp in crosssectionpositions if exists(express_getattr(temp, 'OffsetLongitudinal', INDETERMINATE))]) == 0) is not False class IfcSectionedSpine_CorrespondingSectionPositions: SCOPE = 'entity' @@ -9971,8 +9981,8 @@ class IfcSectionedSpine_CorrespondingSectionPositions: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) assert (sizeof(crosssections) == sizeof(crosssectionpositions)) is not False class IfcSectionedSpine_ConsistentProfileTypes: @@ -9982,8 +9992,8 @@ class IfcSectionedSpine_ConsistentProfileTypes: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - assert (sizeof([temp for temp in crosssections if getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + assert (sizeof([temp for temp in crosssections if express_getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != express_getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcSectionedSpine_SpineCurveDim: SCOPE = 'entity' @@ -9992,8 +10002,8 @@ class IfcSectionedSpine_SpineCurveDim: @staticmethod def __call__(self): - spinecurve = getattr(self, 'SpineCurve', INDETERMINATE) - assert (getattr(spinecurve, 'Dim', INDETERMINATE) == 3) is not False + spinecurve = express_getattr(self, 'SpineCurve', INDETERMINATE) + assert (express_getattr(spinecurve, 'Dim', INDETERMINATE) == 3) is not False def calc_IfcSectionedSpine_Dim(self): return 3 @@ -10005,8 +10015,8 @@ class IfcSensor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSensor_CorrectTypeAssigned: SCOPE = 'entity' @@ -10015,8 +10025,8 @@ class IfcSensor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcsensortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcsensortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSensorType_CorrectPredefinedType: SCOPE = 'entity' @@ -10025,8 +10035,8 @@ class IfcSensorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcShadingDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -10035,8 +10045,8 @@ class IfcShadingDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcShadingDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -10045,8 +10055,8 @@ class IfcShadingDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcshadingdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcshadingdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcShadingDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -10055,8 +10065,8 @@ class IfcShadingDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcShapeModel_WR11: SCOPE = 'entity' @@ -10065,8 +10075,8 @@ class IfcShapeModel_WR11: @staticmethod def __call__(self): - ofshapeaspect = getattr(self, 'OfShapeAspect', INDETERMINATE) - assert (sizeof(getattr(self, 'OfProductRepresentation', INDETERMINATE)) == 1) ^ (sizeof(getattr(self, 'RepresentationMap', INDETERMINATE)) == 1) ^ (sizeof(ofshapeaspect) == 1) is not False + ofshapeaspect = express_getattr(self, 'OfShapeAspect', INDETERMINATE) + assert (sizeof(express_getattr(self, 'OfProductRepresentation', INDETERMINATE)) == 1) ^ (sizeof(express_getattr(self, 'RepresentationMap', INDETERMINATE)) == 1) ^ (sizeof(ofshapeaspect) == 1) is not False class IfcShapeRepresentation_CorrectContext: SCOPE = 'entity' @@ -10075,7 +10085,7 @@ class IfcShapeRepresentation_CorrectContext: @staticmethod def __call__(self): - assert ('ifc4x2.ifcgeometricrepresentationcontext' in typeof(getattr(self, 'ContextOfItems', INDETERMINATE))) is not False + assert ('ifc4x2.ifcgeometricrepresentationcontext' in typeof(express_getattr(self, 'ContextOfItems', INDETERMINATE))) is not False class IfcShapeRepresentation_NoTopologicalItem: SCOPE = 'entity' @@ -10084,7 +10094,7 @@ class IfcShapeRepresentation_NoTopologicalItem: @staticmethod def __call__(self): - items = getattr(self, 'Items', INDETERMINATE) + items = express_getattr(self, 'Items', INDETERMINATE) assert (sizeof([temp for temp in items if 'ifc4x2.ifctopologicalrepresentationitem' in typeof(temp) and (not sizeof(['ifc4x2.ifcvertexpoint', 'ifc4x2.ifcedgecurve', 'ifc4x2.ifcfacesurface'] * typeof(temp)) == 1)]) == 0) is not False class IfcShapeRepresentation_HasRepresentationType: @@ -10094,7 +10104,7 @@ class IfcShapeRepresentation_HasRepresentationType: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationType', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationType', INDETERMINATE)) is not False class IfcShapeRepresentation_HasRepresentationIdentifier: SCOPE = 'entity' @@ -10103,7 +10113,7 @@ class IfcShapeRepresentation_HasRepresentationIdentifier: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationIdentifier', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationIdentifier', INDETERMINATE)) is not False class IfcShapeRepresentation_CorrectItemsForType: SCOPE = 'entity' @@ -10112,7 +10122,7 @@ class IfcShapeRepresentation_CorrectItemsForType: @staticmethod def __call__(self): - assert IfcShapeRepresentationTypes(getattr(self, 'RepresentationType', INDETERMINATE), getattr(self, 'Items', INDETERMINATE)) is not False + assert IfcShapeRepresentationTypes(express_getattr(self, 'RepresentationType', INDETERMINATE), express_getattr(self, 'Items', INDETERMINATE)) is not False def calc_IfcShellBasedSurfaceModel_Dim(self): return 3 @@ -10124,8 +10134,8 @@ class IfcSlab_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSlab_CorrectTypeAssigned: SCOPE = 'entity' @@ -10134,8 +10144,8 @@ class IfcSlab_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcslabtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcslabtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSlabElementedCase_HasDecomposition: SCOPE = 'entity' @@ -10144,7 +10154,7 @@ class IfcSlabElementedCase_HasDecomposition: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'IsDecomposedBy', INDETERMINATE)) > 0) is not False + assert (hiindex(express_getattr(self, 'IsDecomposedBy', INDETERMINATE)) > 0) is not False class IfcSlabStandardCase_HasMaterialLayerSetusage: SCOPE = 'entity' @@ -10153,7 +10163,7 @@ class IfcSlabStandardCase_HasMaterialLayerSetusage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x2.ifcrelassociates.relatedobjects') if 'ifc4x2.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x2.ifcmateriallayersetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x2.ifcrelassociates.relatedobjects') if 'ifc4x2.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x2.ifcmateriallayersetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcSlabType_CorrectPredefinedType: SCOPE = 'entity' @@ -10162,8 +10172,8 @@ class IfcSlabType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSolarDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -10172,8 +10182,8 @@ class IfcSolarDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSolarDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -10182,8 +10192,8 @@ class IfcSolarDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcsolardevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcsolardevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSolarDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -10192,8 +10202,8 @@ class IfcSolarDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcSolidModel_Dim(self): return 3 @@ -10205,8 +10215,8 @@ class IfcSpace_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpace_CorrectTypeAssigned: SCOPE = 'entity' @@ -10215,8 +10225,8 @@ class IfcSpace_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcspacetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcspacetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpaceHeater_CorrectPredefinedType: SCOPE = 'entity' @@ -10225,8 +10235,8 @@ class IfcSpaceHeater_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpaceHeater_CorrectTypeAssigned: SCOPE = 'entity' @@ -10235,8 +10245,8 @@ class IfcSpaceHeater_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcspaceheatertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcspaceheatertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpaceHeaterType_CorrectPredefinedType: SCOPE = 'entity' @@ -10245,8 +10255,8 @@ class IfcSpaceHeaterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSpaceType_CorrectPredefinedType: SCOPE = 'entity' @@ -10255,8 +10265,8 @@ class IfcSpaceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSpatialStructureElement_WR41: SCOPE = 'entity' @@ -10265,7 +10275,7 @@ class IfcSpatialStructureElement_WR41: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'Decomposes', INDETERMINATE)) == 1 and 'ifc4x2.ifcrelaggregates' in typeof(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x2.ifcproject' in typeof(getattr(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)) or 'ifc4x2.ifcspatialstructureelement' in typeof(getattr(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)))) is not False + assert (hiindex(express_getattr(self, 'Decomposes', INDETERMINATE)) == 1 and 'ifc4x2.ifcrelaggregates' in typeof(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x2.ifcproject' in typeof(express_getattr(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)) or 'ifc4x2.ifcspatialstructureelement' in typeof(express_getattr(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)))) is not False class IfcSpatialZone_CorrectPredefinedType: SCOPE = 'entity' @@ -10274,8 +10284,8 @@ class IfcSpatialZone_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpatialZone_CorrectTypeAssigned: SCOPE = 'entity' @@ -10284,8 +10294,8 @@ class IfcSpatialZone_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcspatialzonetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcspatialzonetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpatialZoneType_CorrectPredefinedType: SCOPE = 'entity' @@ -10294,8 +10304,8 @@ class IfcSpatialZoneType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStackTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -10304,8 +10314,8 @@ class IfcStackTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStackTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -10314,8 +10324,8 @@ class IfcStackTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcstackterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcstackterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStackTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -10324,8 +10334,8 @@ class IfcStackTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStair_CorrectPredefinedType: SCOPE = 'entity' @@ -10334,8 +10344,8 @@ class IfcStair_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStair_CorrectTypeAssigned: SCOPE = 'entity' @@ -10344,8 +10354,8 @@ class IfcStair_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcstairtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcstairtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStairFlight_CorrectPredefinedType: SCOPE = 'entity' @@ -10354,8 +10364,8 @@ class IfcStairFlight_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStairFlight_CorrectTypeAssigned: SCOPE = 'entity' @@ -10364,8 +10374,8 @@ class IfcStairFlight_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcstairflighttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcstairflighttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStairFlightType_CorrectPredefinedType: SCOPE = 'entity' @@ -10374,8 +10384,8 @@ class IfcStairFlightType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStairType_CorrectPredefinedType: SCOPE = 'entity' @@ -10384,8 +10394,8 @@ class IfcStairType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStructuralAnalysisModel_HasObjectType: SCOPE = 'entity' @@ -10394,8 +10404,8 @@ class IfcStructuralAnalysisModel_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveAction_ProjectedIsGlobal: SCOPE = 'entity' @@ -10404,8 +10414,8 @@ class IfcStructuralCurveAction_ProjectedIsGlobal: @staticmethod def __call__(self): - projectedortrue = getattr(self, 'ProjectedOrTrue', INDETERMINATE) - assert (not exists(projectedortrue) or (projectedortrue != projected_length or getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False + projectedortrue = express_getattr(self, 'ProjectedOrTrue', INDETERMINATE) + assert (not exists(projectedortrue) or (projectedortrue != projected_length or express_getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False class IfcStructuralCurveAction_HasObjectType: SCOPE = 'entity' @@ -10414,8 +10424,8 @@ class IfcStructuralCurveAction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveAction_SuitablePredefinedType: SCOPE = 'entity' @@ -10424,8 +10434,8 @@ class IfcStructuralCurveAction_SuitablePredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE)) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE)) is not False class IfcStructuralCurveMember_HasObjectType: SCOPE = 'entity' @@ -10434,8 +10444,8 @@ class IfcStructuralCurveMember_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveReaction_HasObjectType: SCOPE = 'entity' @@ -10444,8 +10454,8 @@ class IfcStructuralCurveReaction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveReaction_SuitablePredefinedType: SCOPE = 'entity' @@ -10454,8 +10464,8 @@ class IfcStructuralCurveReaction_SuitablePredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) and predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE)) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) and predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE)) is not False class IfcStructuralLinearAction_SuitableLoadType: SCOPE = 'entity' @@ -10464,7 +10474,7 @@ class IfcStructuralLinearAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x2.ifcstructuralloadlinearforce', 'ifc4x2.ifcstructuralloadtemperature'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x2.ifcstructuralloadlinearforce', 'ifc4x2.ifcstructuralloadtemperature'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralLinearAction_ConstPredefinedType: SCOPE = 'entity' @@ -10473,7 +10483,7 @@ class IfcStructuralLinearAction_ConstPredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE)) is not False class IfcStructuralLoadCase_IsLoadCasePredefinedType: SCOPE = 'entity' @@ -10482,7 +10492,7 @@ class IfcStructuralLoadCase_IsLoadCasePredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE)) is not False class IfcStructuralLoadConfiguration_ValidListSize: SCOPE = 'entity' @@ -10491,8 +10501,8 @@ class IfcStructuralLoadConfiguration_ValidListSize: @staticmethod def __call__(self): - values = getattr(self, 'Values', INDETERMINATE) - locations = getattr(self, 'Locations', INDETERMINATE) + values = express_getattr(self, 'Values', INDETERMINATE) + locations = express_getattr(self, 'Locations', INDETERMINATE) assert (not exists(locations) or sizeof(locations) == sizeof(values)) is not False class IfcStructuralLoadGroup_HasObjectType: @@ -10502,10 +10512,10 @@ class IfcStructuralLoadGroup_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - actiontype = getattr(self, 'ActionType', INDETERMINATE) - actionsource = getattr(self, 'ActionSource', INDETERMINATE) - assert (predefinedtype != getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) and actiontype != getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) and (actionsource != getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE)) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + actiontype = express_getattr(self, 'ActionType', INDETERMINATE) + actionsource = express_getattr(self, 'ActionSource', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) and actiontype != express_getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) and (actionsource != express_getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE)) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralPlanarAction_SuitableLoadType: SCOPE = 'entity' @@ -10514,7 +10524,7 @@ class IfcStructuralPlanarAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x2.ifcstructuralloadplanarforce', 'ifc4x2.ifcstructuralloadtemperature'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x2.ifcstructuralloadplanarforce', 'ifc4x2.ifcstructuralloadtemperature'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralPlanarAction_ConstPredefinedType: SCOPE = 'entity' @@ -10523,7 +10533,7 @@ class IfcStructuralPlanarAction_ConstPredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE)) is not False class IfcStructuralPointAction_SuitableLoadType: SCOPE = 'entity' @@ -10532,7 +10542,7 @@ class IfcStructuralPointAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x2.ifcstructuralloadsingleforce', 'ifc4x2.ifcstructuralloadsingledisplacement'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x2.ifcstructuralloadsingleforce', 'ifc4x2.ifcstructuralloadsingledisplacement'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralPointReaction_SuitableLoadType: SCOPE = 'entity' @@ -10541,7 +10551,7 @@ class IfcStructuralPointReaction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x2.ifcstructuralloadsingleforce', 'ifc4x2.ifcstructuralloadsingledisplacement'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x2.ifcstructuralloadsingleforce', 'ifc4x2.ifcstructuralloadsingledisplacement'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralResultGroup_HasObjectType: SCOPE = 'entity' @@ -10550,8 +10560,8 @@ class IfcStructuralResultGroup_HasObjectType: @staticmethod def __call__(self): - theorytype = getattr(self, 'TheoryType', INDETERMINATE) - assert (theorytype != getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + theorytype = express_getattr(self, 'TheoryType', INDETERMINATE) + assert (theorytype != express_getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceAction_ProjectedIsGlobal: SCOPE = 'entity' @@ -10560,8 +10570,8 @@ class IfcStructuralSurfaceAction_ProjectedIsGlobal: @staticmethod def __call__(self): - projectedortrue = getattr(self, 'ProjectedOrTrue', INDETERMINATE) - assert (not exists(projectedortrue) or (projectedortrue != projected_length or getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False + projectedortrue = express_getattr(self, 'ProjectedOrTrue', INDETERMINATE) + assert (not exists(projectedortrue) or (projectedortrue != projected_length or express_getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False class IfcStructuralSurfaceAction_HasObjectType: SCOPE = 'entity' @@ -10570,8 +10580,8 @@ class IfcStructuralSurfaceAction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceMember_HasObjectType: SCOPE = 'entity' @@ -10580,8 +10590,8 @@ class IfcStructuralSurfaceMember_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceReaction_HasPredefinedType: SCOPE = 'entity' @@ -10590,8 +10600,8 @@ class IfcStructuralSurfaceReaction_HasPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStyledItem_ApplicableItem: SCOPE = 'entity' @@ -10600,7 +10610,7 @@ class IfcStyledItem_ApplicableItem: @staticmethod def __call__(self): - item = getattr(self, 'Item', INDETERMINATE) + item = express_getattr(self, 'Item', INDETERMINATE) assert (not 'ifc4x2.ifcstyleditem' in typeof(item)) is not False class IfcStyledRepresentation_OnlyStyledItems: @@ -10610,7 +10620,7 @@ class IfcStyledRepresentation_OnlyStyledItems: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Items', INDETERMINATE) if not 'ifc4x2.ifcstyleditem' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Items', INDETERMINATE) if not 'ifc4x2.ifcstyleditem' in typeof(temp)]) == 0) is not False class IfcSubContractResource_CorrectPredefinedType: SCOPE = 'entity' @@ -10619,8 +10629,8 @@ class IfcSubContractResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSubContractResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -10629,8 +10639,8 @@ class IfcSubContractResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False def calc_IfcSurface_Dim(self): return 3 @@ -10642,8 +10652,8 @@ class IfcSurfaceCurve_CurveIs3D: @staticmethod def __call__(self): - curve3d = getattr(self, 'Curve3D', INDETERMINATE) - assert (getattr(curve3d, 'Dim', INDETERMINATE) == 3) is not False + curve3d = express_getattr(self, 'Curve3D', INDETERMINATE) + assert (express_getattr(curve3d, 'Dim', INDETERMINATE) == 3) is not False class IfcSurfaceCurve_CurveIsNotPcurve: SCOPE = 'entity' @@ -10652,7 +10662,7 @@ class IfcSurfaceCurve_CurveIsNotPcurve: @staticmethod def __call__(self): - curve3d = getattr(self, 'Curve3D', INDETERMINATE) + curve3d = express_getattr(self, 'Curve3D', INDETERMINATE) assert (not 'ifc4x2.ifcpcurve' in typeof(curve3d)) is not False def calc_IfcSurfaceCurve_BasisSurface(self): @@ -10665,9 +10675,9 @@ class IfcSurfaceCurveSweptAreaSolid_DirectrixBounded: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - startparam = getattr(self, 'StartParam', INDETERMINATE) - endparam = getattr(self, 'EndParam', INDETERMINATE) + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + startparam = express_getattr(self, 'StartParam', INDETERMINATE) + endparam = express_getattr(self, 'EndParam', INDETERMINATE) assert (exists(startparam) and exists(endparam) or sizeof(['ifc4x2.ifcconic', 'ifc4x2.ifcboundedcurve'] * typeof(directrix)) == 1) is not False class IfcSurfaceFeature_HasObjectType: @@ -10677,8 +10687,8 @@ class IfcSurfaceFeature_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcSurfaceOfLinearExtrusion_DepthGreaterZero: SCOPE = 'entity' @@ -10687,17 +10697,17 @@ class IfcSurfaceOfLinearExtrusion_DepthGreaterZero: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) assert (depth > 0.0) is not False def calc_IfcSurfaceOfLinearExtrusion_ExtrusionAxis(self): - extrudeddirection = getattr(self, 'ExtrudedDirection', INDETERMINATE) - depth = getattr(self, 'Depth', INDETERMINATE) + extrudeddirection = express_getattr(self, 'ExtrudedDirection', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) return IfcVector(Orientation=extrudeddirection, Magnitude=depth) def calc_IfcSurfaceOfRevolution_AxisLine(self): - axisposition = getattr(self, 'AxisPosition', INDETERMINATE) - return IfcLine(Pnt=getattr(axisposition, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=getattr(axisposition, 'Z', INDETERMINATE), Magnitude=1.0)) + axisposition = express_getattr(self, 'AxisPosition', INDETERMINATE) + return IfcLine(Pnt=express_getattr(axisposition, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=express_getattr(axisposition, 'Z', INDETERMINATE), Magnitude=1.0)) class IfcSurfaceReinforcementArea_SurfaceAndOrShearAreaSpecified: SCOPE = 'entity' @@ -10706,9 +10716,9 @@ class IfcSurfaceReinforcementArea_SurfaceAndOrShearAreaSpecified: @staticmethod def __call__(self): - surfacereinforcement1 = getattr(self, 'SurfaceReinforcement1', INDETERMINATE) - surfacereinforcement2 = getattr(self, 'SurfaceReinforcement2', INDETERMINATE) - shearreinforcement = getattr(self, 'ShearReinforcement', INDETERMINATE) + surfacereinforcement1 = express_getattr(self, 'SurfaceReinforcement1', INDETERMINATE) + surfacereinforcement2 = express_getattr(self, 'SurfaceReinforcement2', INDETERMINATE) + shearreinforcement = express_getattr(self, 'ShearReinforcement', INDETERMINATE) assert (exists(surfacereinforcement1) or exists(surfacereinforcement2) or exists(shearreinforcement)) is not False class IfcSurfaceReinforcementArea_NonnegativeArea1: @@ -10718,7 +10728,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea1: @staticmethod def __call__(self): - surfacereinforcement1 = getattr(self, 'SurfaceReinforcement1', INDETERMINATE) + surfacereinforcement1 = express_getattr(self, 'SurfaceReinforcement1', INDETERMINATE) assert (not exists(surfacereinforcement1) or (express_getitem(surfacereinforcement1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and express_getitem(surfacereinforcement1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and (sizeof(surfacereinforcement1) == 1 or express_getitem(surfacereinforcement1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0))) is not False class IfcSurfaceReinforcementArea_NonnegativeArea2: @@ -10728,7 +10738,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea2: @staticmethod def __call__(self): - surfacereinforcement2 = getattr(self, 'SurfaceReinforcement2', INDETERMINATE) + surfacereinforcement2 = express_getattr(self, 'SurfaceReinforcement2', INDETERMINATE) assert (not exists(surfacereinforcement2) or (express_getitem(surfacereinforcement2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and express_getitem(surfacereinforcement2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and (sizeof(surfacereinforcement2) == 1 or express_getitem(surfacereinforcement2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0))) is not False class IfcSurfaceReinforcementArea_NonnegativeArea3: @@ -10738,7 +10748,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea3: @staticmethod def __call__(self): - shearreinforcement = getattr(self, 'ShearReinforcement', INDETERMINATE) + shearreinforcement = express_getattr(self, 'ShearReinforcement', INDETERMINATE) assert (not exists(shearreinforcement) or shearreinforcement >= 0.0) is not False class IfcSurfaceStyle_MaxOneShading: @@ -10748,7 +10758,7 @@ class IfcSurfaceStyle_MaxOneShading: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x2.ifcsurfacestyleshading' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x2.ifcsurfacestyleshading' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneLighting: SCOPE = 'entity' @@ -10757,7 +10767,7 @@ class IfcSurfaceStyle_MaxOneLighting: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x2.ifcsurfacestylelighting' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x2.ifcsurfacestylelighting' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneRefraction: SCOPE = 'entity' @@ -10766,7 +10776,7 @@ class IfcSurfaceStyle_MaxOneRefraction: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x2.ifcsurfacestylerefraction' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x2.ifcsurfacestylerefraction' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneTextures: SCOPE = 'entity' @@ -10775,7 +10785,7 @@ class IfcSurfaceStyle_MaxOneTextures: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x2.ifcsurfacestylewithtextures' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x2.ifcsurfacestylewithtextures' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneExtDefined: SCOPE = 'entity' @@ -10784,7 +10794,7 @@ class IfcSurfaceStyle_MaxOneExtDefined: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x2.ifcexternallydefinedsurfacestyle' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x2.ifcexternallydefinedsurfacestyle' in typeof(style)]) <= 1) is not False class IfcSweptAreaSolid_SweptAreaType: SCOPE = 'entity' @@ -10793,8 +10803,8 @@ class IfcSweptAreaSolid_SweptAreaType: @staticmethod def __call__(self): - sweptarea = getattr(self, 'SweptArea', INDETERMINATE) - assert (getattr(sweptarea, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'Area', INDETERMINATE)) is not False + sweptarea = express_getattr(self, 'SweptArea', INDETERMINATE) + assert (express_getattr(sweptarea, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'Area', INDETERMINATE)) is not False class IfcSweptDiskSolid_DirectrixDim: SCOPE = 'entity' @@ -10803,8 +10813,8 @@ class IfcSweptDiskSolid_DirectrixDim: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - assert (getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + assert (express_getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False class IfcSweptDiskSolid_InnerRadiusSize: SCOPE = 'entity' @@ -10813,8 +10823,8 @@ class IfcSweptDiskSolid_InnerRadiusSize: @staticmethod def __call__(self): - radius = getattr(self, 'Radius', INDETERMINATE) - innerradius = getattr(self, 'InnerRadius', INDETERMINATE) + radius = express_getattr(self, 'Radius', INDETERMINATE) + innerradius = express_getattr(self, 'InnerRadius', INDETERMINATE) assert (not exists(innerradius) or radius > innerradius) is not False class IfcSweptDiskSolid_DirectrixBounded: @@ -10824,9 +10834,9 @@ class IfcSweptDiskSolid_DirectrixBounded: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - startparam = getattr(self, 'StartParam', INDETERMINATE) - endparam = getattr(self, 'EndParam', INDETERMINATE) + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + startparam = express_getattr(self, 'StartParam', INDETERMINATE) + endparam = express_getattr(self, 'EndParam', INDETERMINATE) assert (exists(startparam) and exists(endparam) or sizeof(['ifc4x2.ifcconic', 'ifc4x2.ifcboundedcurve'] * typeof(directrix)) == 1) is not False class IfcSweptDiskSolidPolygonal_CorrectRadii: @@ -10836,8 +10846,8 @@ class IfcSweptDiskSolidPolygonal_CorrectRadii: @staticmethod def __call__(self): - filletradius = getattr(self, 'FilletRadius', INDETERMINATE) - assert (not exists(filletradius) or filletradius >= getattr(self, 'Radius', INDETERMINATE)) is not False + filletradius = express_getattr(self, 'FilletRadius', INDETERMINATE) + assert (not exists(filletradius) or filletradius >= express_getattr(self, 'Radius', INDETERMINATE)) is not False class IfcSweptDiskSolidPolygonal_DirectrixIsPolyline: SCOPE = 'entity' @@ -10846,7 +10856,7 @@ class IfcSweptDiskSolidPolygonal_DirectrixIsPolyline: @staticmethod def __call__(self): - assert ('ifc4x2.ifcpolyline' in typeof(getattr(self, 'Directrix', INDETERMINATE)) or ('ifc4x2.ifcindexedpolycurve' in typeof(getattr(self, 'Directrix', INDETERMINATE)) and (not exists(getattr(getattr(self, 'Directrix', INDETERMINATE), 'Segments', INDETERMINATE))))) is not False + assert ('ifc4x2.ifcpolyline' in typeof(express_getattr(self, 'Directrix', INDETERMINATE)) or ('ifc4x2.ifcindexedpolycurve' in typeof(express_getattr(self, 'Directrix', INDETERMINATE)) and (not exists(express_getattr(express_getattr(self, 'Directrix', INDETERMINATE), 'Segments', INDETERMINATE))))) is not False class IfcSweptSurface_SweptCurveType: SCOPE = 'entity' @@ -10855,8 +10865,8 @@ class IfcSweptSurface_SweptCurveType: @staticmethod def __call__(self): - sweptcurve = getattr(self, 'SweptCurve', INDETERMINATE) - assert (getattr(sweptcurve, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'Curve', INDETERMINATE)) is not False + sweptcurve = express_getattr(self, 'SweptCurve', INDETERMINATE) + assert (express_getattr(sweptcurve, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'Curve', INDETERMINATE)) is not False class IfcSwitchingDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -10865,8 +10875,8 @@ class IfcSwitchingDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSwitchingDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -10875,8 +10885,8 @@ class IfcSwitchingDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcswitchingdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcswitchingdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSwitchingDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -10885,8 +10895,8 @@ class IfcSwitchingDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSystemFurnitureElement_CorrectPredefinedType: SCOPE = 'entity' @@ -10895,8 +10905,8 @@ class IfcSystemFurnitureElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSystemFurnitureElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -10905,8 +10915,8 @@ class IfcSystemFurnitureElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcsystemfurnitureelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcsystemfurnitureelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSystemFurnitureElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -10915,8 +10925,8 @@ class IfcSystemFurnitureElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -10925,8 +10935,8 @@ class IfcTShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth) is not False class IfcTShapeProfileDef_ValidWebThickness: @@ -10936,8 +10946,8 @@ class IfcTShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - flangewidth = getattr(self, 'FlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + flangewidth = express_getattr(self, 'FlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < flangewidth) is not False class IfcTable_WR1: @@ -10947,8 +10957,8 @@ class IfcTable_WR1: @staticmethod def __call__(self): - rows = getattr(self, 'Rows', INDETERMINATE) - assert (sizeof([temp for temp in rows if hiindex(getattr(temp, 'RowCells', INDETERMINATE)) != hiindex(getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE))]) == 0) is not False + rows = express_getattr(self, 'Rows', INDETERMINATE) + assert (sizeof([temp for temp in rows if hiindex(express_getattr(temp, 'RowCells', INDETERMINATE)) != hiindex(express_getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE))]) == 0) is not False class IfcTable_WR2: SCOPE = 'entity' @@ -10957,20 +10967,20 @@ class IfcTable_WR2: @staticmethod def __call__(self): - numberofheadings = getattr(self, 'NumberOfHeadings', INDETERMINATE) + numberofheadings = express_getattr(self, 'NumberOfHeadings', INDETERMINATE) assert (0 <= numberofheadings <= 1) is not False def calc_IfcTable_NumberOfCellsInRow(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return hiindex(getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE)) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return hiindex(express_getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE)) def calc_IfcTable_NumberOfHeadings(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return sizeof([temp for temp in rows if getattr(temp, 'IsHeading', INDETERMINATE)]) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return sizeof([temp for temp in rows if express_getattr(temp, 'IsHeading', INDETERMINATE)]) def calc_IfcTable_NumberOfDataRows(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return sizeof([temp for temp in rows if not getattr(temp, 'IsHeading', INDETERMINATE)]) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return sizeof([temp for temp in rows if not express_getattr(temp, 'IsHeading', INDETERMINATE)]) class IfcTank_CorrectPredefinedType: SCOPE = 'entity' @@ -10979,8 +10989,8 @@ class IfcTank_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTank_CorrectTypeAssigned: SCOPE = 'entity' @@ -10989,8 +10999,8 @@ class IfcTank_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifctanktype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifctanktype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTankType_CorrectPredefinedType: SCOPE = 'entity' @@ -10999,8 +11009,8 @@ class IfcTankType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTask_HasName: SCOPE = 'entity' @@ -11009,7 +11019,7 @@ class IfcTask_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcTask_CorrectPredefinedType: SCOPE = 'entity' @@ -11018,8 +11028,8 @@ class IfcTask_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTaskType_CorrectPredefinedType: SCOPE = 'entity' @@ -11028,8 +11038,8 @@ class IfcTaskType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcTelecomAddress_MinimumDataProvided: SCOPE = 'entity' @@ -11038,12 +11048,12 @@ class IfcTelecomAddress_MinimumDataProvided: @staticmethod def __call__(self): - telephonenumbers = getattr(self, 'TelephoneNumbers', INDETERMINATE) - facsimilenumbers = getattr(self, 'FacsimileNumbers', INDETERMINATE) - pagernumber = getattr(self, 'PagerNumber', INDETERMINATE) - electronicmailaddresses = getattr(self, 'ElectronicMailAddresses', INDETERMINATE) - wwwhomepageurl = getattr(self, 'WWWHomePageURL', INDETERMINATE) - messagingids = getattr(self, 'MessagingIDs', INDETERMINATE) + telephonenumbers = express_getattr(self, 'TelephoneNumbers', INDETERMINATE) + facsimilenumbers = express_getattr(self, 'FacsimileNumbers', INDETERMINATE) + pagernumber = express_getattr(self, 'PagerNumber', INDETERMINATE) + electronicmailaddresses = express_getattr(self, 'ElectronicMailAddresses', INDETERMINATE) + wwwhomepageurl = express_getattr(self, 'WWWHomePageURL', INDETERMINATE) + messagingids = express_getattr(self, 'MessagingIDs', INDETERMINATE) assert (exists(telephonenumbers) or exists(facsimilenumbers) or exists(pagernumber) or exists(electronicmailaddresses) or exists(wwwhomepageurl) or exists(messagingids)) is not False class IfcTendon_CorrectPredefinedType: @@ -11053,8 +11063,8 @@ class IfcTendon_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendon_CorrectTypeAssigned: SCOPE = 'entity' @@ -11063,8 +11073,8 @@ class IfcTendon_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifctendontype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifctendontype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonAnchor_CorrectPredefinedType: SCOPE = 'entity' @@ -11073,8 +11083,8 @@ class IfcTendonAnchor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendonAnchor_CorrectTypeAssigned: SCOPE = 'entity' @@ -11083,8 +11093,8 @@ class IfcTendonAnchor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifctendonanchortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifctendonanchortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonAnchorType_CorrectPredefinedType: SCOPE = 'entity' @@ -11093,8 +11103,8 @@ class IfcTendonAnchorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTendonConduit_CorrectPredefinedType: SCOPE = 'entity' @@ -11103,8 +11113,8 @@ class IfcTendonConduit_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendonConduit_CorrectTypeAssigned: SCOPE = 'entity' @@ -11113,8 +11123,8 @@ class IfcTendonConduit_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifctendonconduittype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifctendonconduittype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonConduitType_CorrectPredefinedType: SCOPE = 'entity' @@ -11123,8 +11133,8 @@ class IfcTendonConduitType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTendonType_CorrectPredefinedType: SCOPE = 'entity' @@ -11133,8 +11143,8 @@ class IfcTendonType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcTessellatedFaceSet_Dim(self): return 3 @@ -11146,7 +11156,7 @@ class IfcTextLiteralWithExtent_WR31: @staticmethod def __call__(self): - extent = getattr(self, 'Extent', INDETERMINATE) + extent = express_getattr(self, 'Extent', INDETERMINATE) assert (not 'ifc4x2.ifcplanarbox' in typeof(extent)) is not False class IfcTextStyleFontModel_MeasureOfFontSize: @@ -11156,7 +11166,7 @@ class IfcTextStyleFontModel_MeasureOfFontSize: @staticmethod def __call__(self): - assert ('ifc4x2.ifclengthmeasure' in typeof(getattr(self, 'FontSize', INDETERMINATE)) and getattr(self, 'FontSize', INDETERMINATE) > 0.0) is not False + assert ('ifc4x2.ifclengthmeasure' in typeof(express_getattr(self, 'FontSize', INDETERMINATE)) and express_getattr(self, 'FontSize', INDETERMINATE) > 0.0) is not False class IfcTopologyRepresentation_WR21: SCOPE = 'entity' @@ -11165,7 +11175,7 @@ class IfcTopologyRepresentation_WR21: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Items', INDETERMINATE) if not 'ifc4x2.ifctopologicalrepresentationitem' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Items', INDETERMINATE) if not 'ifc4x2.ifctopologicalrepresentationitem' in typeof(temp)]) == 0) is not False class IfcTopologyRepresentation_WR22: SCOPE = 'entity' @@ -11174,7 +11184,7 @@ class IfcTopologyRepresentation_WR22: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationType', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationType', INDETERMINATE)) is not False class IfcTopologyRepresentation_WR23: SCOPE = 'entity' @@ -11183,7 +11193,7 @@ class IfcTopologyRepresentation_WR23: @staticmethod def __call__(self): - assert IfcTopologyRepresentationTypes(getattr(self, 'RepresentationType', INDETERMINATE), getattr(self, 'Items', INDETERMINATE)) is not False + assert IfcTopologyRepresentationTypes(express_getattr(self, 'RepresentationType', INDETERMINATE), express_getattr(self, 'Items', INDETERMINATE)) is not False class IfcToroidalSurface_MajorLargerMinor: SCOPE = 'entity' @@ -11192,8 +11202,8 @@ class IfcToroidalSurface_MajorLargerMinor: @staticmethod def __call__(self): - majorradius = getattr(self, 'MajorRadius', INDETERMINATE) - minorradius = getattr(self, 'MinorRadius', INDETERMINATE) + majorradius = express_getattr(self, 'MajorRadius', INDETERMINATE) + minorradius = express_getattr(self, 'MinorRadius', INDETERMINATE) assert (minorradius < majorradius) is not False class IfcTransformer_CorrectPredefinedType: @@ -11203,8 +11213,8 @@ class IfcTransformer_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTransformer_CorrectTypeAssigned: SCOPE = 'entity' @@ -11213,8 +11223,8 @@ class IfcTransformer_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifctranformertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifctranformertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTransformerType_CorrectPredefinedType: SCOPE = 'entity' @@ -11223,8 +11233,8 @@ class IfcTransformerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTransportElement_CorrectPredefinedType: SCOPE = 'entity' @@ -11233,8 +11243,8 @@ class IfcTransportElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTransportElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -11243,8 +11253,8 @@ class IfcTransportElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifctransportelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifctransportelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTransportElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -11253,11 +11263,11 @@ class IfcTransportElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcTriangulatedFaceSet_NumberOfTriangles(self): - coordindex = getattr(self, 'CoordIndex', INDETERMINATE) + coordindex = express_getattr(self, 'CoordIndex', INDETERMINATE) return sizeof(coordindex) class IfcTriangulatedIrregularNetwork_NotClosed: @@ -11267,7 +11277,7 @@ class IfcTriangulatedIrregularNetwork_NotClosed: @staticmethod def __call__(self): - assert (getattr(self, 'Closed', INDETERMINATE) == False) is not False + assert (express_getattr(self, 'Closed', INDETERMINATE) == False) is not False class IfcTrimmedCurve_Trim1ValuesConsistent: SCOPE = 'entity' @@ -11276,7 +11286,7 @@ class IfcTrimmedCurve_Trim1ValuesConsistent: @staticmethod def __call__(self): - trim1 = getattr(self, 'Trim1', INDETERMINATE) + trim1 = express_getattr(self, 'Trim1', INDETERMINATE) assert (hiindex(trim1) == 1 or typeof(express_getitem(trim1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(express_getitem(trim1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcTrimmedCurve_Trim2ValuesConsistent: @@ -11286,7 +11296,7 @@ class IfcTrimmedCurve_Trim2ValuesConsistent: @staticmethod def __call__(self): - trim2 = getattr(self, 'Trim2', INDETERMINATE) + trim2 = express_getattr(self, 'Trim2', INDETERMINATE) assert (hiindex(trim2) == 1 or typeof(express_getitem(trim2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(express_getitem(trim2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcTrimmedCurve_NoTrimOfBoundedCurves: @@ -11296,7 +11306,7 @@ class IfcTrimmedCurve_NoTrimOfBoundedCurves: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) assert (not 'ifc4x2.ifcboundedcurve' in typeof(basiscurve)) is not False class IfcTubeBundle_CorrectPredefinedType: @@ -11306,8 +11316,8 @@ class IfcTubeBundle_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTubeBundle_CorrectTypeAssigned: SCOPE = 'entity' @@ -11316,8 +11326,8 @@ class IfcTubeBundle_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifctubebundletype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifctubebundletype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTubeBundleType_CorrectPredefinedType: SCOPE = 'entity' @@ -11326,8 +11336,8 @@ class IfcTubeBundleType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTypeObject_NameRequired: SCOPE = 'entity' @@ -11336,7 +11346,7 @@ class IfcTypeObject_NameRequired: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcTypeObject_UniquePropertySetNames: SCOPE = 'entity' @@ -11345,7 +11355,7 @@ class IfcTypeObject_UniquePropertySetNames: @staticmethod def __call__(self): - haspropertysets = getattr(self, 'HasPropertySets', INDETERMINATE) + haspropertysets = express_getattr(self, 'HasPropertySets', INDETERMINATE) assert (not exists(haspropertysets) or IfcUniquePropertySetNames(haspropertysets)) is not False class IfcTypeProduct_ApplicableOccurrence: @@ -11355,7 +11365,7 @@ class IfcTypeProduct_ApplicableOccurrence: @staticmethod def __call__(self): - assert (not exists(lambda : express_getitem(getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or sizeof([temp for temp in getattr(express_getitem(getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not 'ifc4x2.ifcproduct' in typeof(temp)]) == 0) is not False + assert (not exists(lambda : express_getitem(express_getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or sizeof([temp for temp in express_getattr(express_getitem(express_getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not 'ifc4x2.ifcproduct' in typeof(temp)]) == 0) is not False class IfcUShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -11364,8 +11374,8 @@ class IfcUShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth / 2.0) is not False class IfcUShapeProfileDef_ValidWebThickness: @@ -11375,8 +11385,8 @@ class IfcUShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - flangewidth = getattr(self, 'FlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + flangewidth = express_getattr(self, 'FlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < flangewidth) is not False class IfcUnitAssignment_WR01: @@ -11386,7 +11396,7 @@ class IfcUnitAssignment_WR01: @staticmethod def __call__(self): - units = getattr(self, 'Units', INDETERMINATE) + units = express_getattr(self, 'Units', INDETERMINATE) assert IfcCorrectUnitAssignment(units) is not False class IfcUnitaryControlElement_CorrectPredefinedType: @@ -11396,8 +11406,8 @@ class IfcUnitaryControlElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcUnitaryControlElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -11406,8 +11416,8 @@ class IfcUnitaryControlElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcunitarycontrolelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcunitarycontrolelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcUnitaryControlElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -11416,8 +11426,8 @@ class IfcUnitaryControlElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcUnitaryEquipment_CorrectPredefinedType: SCOPE = 'entity' @@ -11426,8 +11436,8 @@ class IfcUnitaryEquipment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcUnitaryEquipment_CorrectTypeAssigned: SCOPE = 'entity' @@ -11436,8 +11446,8 @@ class IfcUnitaryEquipment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcunitaryequipmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcunitaryequipmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcUnitaryEquipmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -11446,8 +11456,8 @@ class IfcUnitaryEquipmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcValve_CorrectPredefinedType: SCOPE = 'entity' @@ -11456,8 +11466,8 @@ class IfcValve_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcValve_CorrectTypeAssigned: SCOPE = 'entity' @@ -11466,8 +11476,8 @@ class IfcValve_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcvalvetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcvalvetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcValveType_CorrectPredefinedType: SCOPE = 'entity' @@ -11476,8 +11486,8 @@ class IfcValveType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVector_MagGreaterOrEqualZero: SCOPE = 'entity' @@ -11486,12 +11496,12 @@ class IfcVector_MagGreaterOrEqualZero: @staticmethod def __call__(self): - magnitude = getattr(self, 'Magnitude', INDETERMINATE) + magnitude = express_getattr(self, 'Magnitude', INDETERMINATE) assert (magnitude >= 0.0) is not False def calc_IfcVector_Dim(self): - orientation = getattr(self, 'Orientation', INDETERMINATE) - return getattr(orientation, 'Dim', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return express_getattr(orientation, 'Dim', INDETERMINATE) class IfcVibrationDamper_CorrectPredefinedType: SCOPE = 'entity' @@ -11500,8 +11510,8 @@ class IfcVibrationDamper_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcVibrationDamper_CorrectTypeAssigned: SCOPE = 'entity' @@ -11510,8 +11520,8 @@ class IfcVibrationDamper_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcvibrationdampertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcvibrationdampertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcVibrationDamperType_CorrectPredefinedType: SCOPE = 'entity' @@ -11520,8 +11530,8 @@ class IfcVibrationDamperType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVibrationIsolator_CorrectPredefinedType: SCOPE = 'entity' @@ -11530,8 +11540,8 @@ class IfcVibrationIsolator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcVibrationIsolator_CorrectTypeAssigned: SCOPE = 'entity' @@ -11540,8 +11550,8 @@ class IfcVibrationIsolator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcvibrationisolatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcvibrationisolatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcVibrationIsolatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -11550,8 +11560,8 @@ class IfcVibrationIsolatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVoidingFeature_HasObjectType: SCOPE = 'entity' @@ -11560,8 +11570,8 @@ class IfcVoidingFeature_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcWall_CorrectPredefinedType: SCOPE = 'entity' @@ -11570,8 +11580,8 @@ class IfcWall_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWall_CorrectTypeAssigned: SCOPE = 'entity' @@ -11580,8 +11590,8 @@ class IfcWall_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcwalltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcwalltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWallElementedCase_HasDecomposition: SCOPE = 'entity' @@ -11590,7 +11600,7 @@ class IfcWallElementedCase_HasDecomposition: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'IsDecomposedBy', INDETERMINATE)) > 0) is not False + assert (hiindex(express_getattr(self, 'IsDecomposedBy', INDETERMINATE)) > 0) is not False class IfcWallStandardCase_HasMaterialLayerSetUsage: SCOPE = 'entity' @@ -11599,7 +11609,7 @@ class IfcWallStandardCase_HasMaterialLayerSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x2.ifcrelassociates.relatedobjects') if 'ifc4x2.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x2.ifcmateriallayersetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x2.ifcrelassociates.relatedobjects') if 'ifc4x2.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x2.ifcmateriallayersetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcWallType_CorrectPredefinedType: SCOPE = 'entity' @@ -11608,8 +11618,8 @@ class IfcWallType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWasteTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -11618,8 +11628,8 @@ class IfcWasteTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWasteTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -11628,8 +11638,8 @@ class IfcWasteTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcwasteterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcwasteterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWasteTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -11638,8 +11648,8 @@ class IfcWasteTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWindow_CorrectStyleAssigned: SCOPE = 'entity' @@ -11648,8 +11658,8 @@ class IfcWindow_CorrectStyleAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcwindowtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x2.ifcwindowtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWindowLiningProperties_WR31: SCOPE = 'entity' @@ -11658,8 +11668,8 @@ class IfcWindowLiningProperties_WR31: @staticmethod def __call__(self): - liningdepth = getattr(self, 'LiningDepth', INDETERMINATE) - liningthickness = getattr(self, 'LiningThickness', INDETERMINATE) + liningdepth = express_getattr(self, 'LiningDepth', INDETERMINATE) + liningthickness = express_getattr(self, 'LiningThickness', INDETERMINATE) assert (not (exists(liningdepth) and (not exists(liningthickness)))) is not False class IfcWindowLiningProperties_WR32: @@ -11669,8 +11679,8 @@ class IfcWindowLiningProperties_WR32: @staticmethod def __call__(self): - firsttransomoffset = getattr(self, 'FirstTransomOffset', INDETERMINATE) - secondtransomoffset = getattr(self, 'SecondTransomOffset', INDETERMINATE) + firsttransomoffset = express_getattr(self, 'FirstTransomOffset', INDETERMINATE) + secondtransomoffset = express_getattr(self, 'SecondTransomOffset', INDETERMINATE) assert (not (not exists(firsttransomoffset) and exists(secondtransomoffset))) is not False class IfcWindowLiningProperties_WR33: @@ -11680,8 +11690,8 @@ class IfcWindowLiningProperties_WR33: @staticmethod def __call__(self): - firstmullionoffset = getattr(self, 'FirstMullionOffset', INDETERMINATE) - secondmullionoffset = getattr(self, 'SecondMullionOffset', INDETERMINATE) + firstmullionoffset = express_getattr(self, 'FirstMullionOffset', INDETERMINATE) + secondmullionoffset = express_getattr(self, 'SecondMullionOffset', INDETERMINATE) assert (not (not exists(firstmullionoffset) and exists(secondmullionoffset))) is not False class IfcWindowLiningProperties_WR34: @@ -11691,7 +11701,7 @@ class IfcWindowLiningProperties_WR34: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x2.ifcwindowtype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x2.ifcwindowstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x2.ifcwindowtype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x2.ifcwindowstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcWindowPanelProperties_ApplicableToType: SCOPE = 'entity' @@ -11700,7 +11710,7 @@ class IfcWindowPanelProperties_ApplicableToType: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x2.ifcwindowtype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x2.ifcwindowstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x2.ifcwindowtype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x2.ifcwindowstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcWindowType_CorrectPredefinedType: SCOPE = 'entity' @@ -11709,8 +11719,8 @@ class IfcWindowType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWorkCalendar_CorrectPredefinedType: SCOPE = 'entity' @@ -11719,8 +11729,8 @@ class IfcWorkCalendar_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWorkPlan_CorrectPredefinedType: SCOPE = 'entity' @@ -11729,8 +11739,8 @@ class IfcWorkPlan_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWorkSchedule_CorrectPredefinedType: SCOPE = 'entity' @@ -11739,8 +11749,8 @@ class IfcWorkSchedule_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcZShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -11749,8 +11759,8 @@ class IfcZShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth / 2.0) is not False class IfcZone_WR1: @@ -11760,19 +11770,19 @@ class IfcZone_WR1: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'IsGroupedBy', INDETERMINATE)) == 0 or sizeof([temp for temp in getattr(express_getitem(getattr(self, 'IsGroupedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not ('ifc4x2.ifczone' in typeof(temp) or 'ifc4x2.ifcspace' in typeof(temp) or 'ifc4x2.ifcspatialzone' in typeof(temp))]) == 0) is not False + assert (sizeof(express_getattr(self, 'IsGroupedBy', INDETERMINATE)) == 0 or sizeof([temp for temp in express_getattr(express_getitem(express_getattr(self, 'IsGroupedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not ('ifc4x2.ifczone' in typeof(temp) or 'ifc4x2.ifcspace' in typeof(temp) or 'ifc4x2.ifcspatialzone' in typeof(temp))]) == 0) is not False class IfcRepresentationContextSameWCS: SCOPE = 'file' @staticmethod def __call__(file): - IfcGeometricRepresentationContext = getattr(file, 'by_type', INDETERMINATE)('IfcGeometricRepresentationContext') + IfcGeometricRepresentationContext = express_getattr(file, 'by_type', INDETERMINATE)('IfcGeometricRepresentationContext') isdifferent = False if sizeof(IfcGeometricRepresentationContext) > 1: for i in range(2, hiindex(IfcGeometricRepresentationContext) + 1): - if getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE) != getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE): - isdifferent = not IfcSameValidPrecision(getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) or not IfcSameAxis2Placement(getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) + if express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE) != express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE): + isdifferent = not IfcSameValidPrecision(express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) or not IfcSameAxis2Placement(express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) if isdifferent == True: break assert (isdifferent == False) is not False @@ -11782,11 +11792,11 @@ class IfcSingleProjectInstance: @staticmethod def __call__(file): - IfcProject = getattr(file, 'by_type', INDETERMINATE)('IfcProject') + IfcProject = express_getattr(file, 'by_type', INDETERMINATE)('IfcProject') assert (sizeof(IfcProject) <= 1) is not False def IfcAssociatedSurface(arg): - surf = getattr(arg, 'BasisSurface', INDETERMINATE) + surf = express_getattr(arg, 'BasisSurface', INDETERMINATE) return surf def IfcBaseAxis(dim, axis1, axis2, axis3): @@ -11800,13 +11810,13 @@ def IfcBaseAxis(dim, axis1, axis2, axis3): if exists(axis2): factor = IfcDotProduct(axis2, express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) if factor < 0.0: - u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) elif exists(axis2): d1 = IfcNormalise(axis2) u = [IfcOrthogonalComplement(d1), d1] - u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) else: u = [IfcDirection(DirectionRatios=[1.0, 0.0]), IfcDirection(DirectionRatios=[0.0, 1.0])] return u @@ -11824,7 +11834,7 @@ def IfcBuild2Axes(refdirection): def IfcBuildAxes(axis, refdirection): d1 = nvl(IfcNormalise(axis), IfcDirection(DirectionRatios=[0.0, 0.0, 1.0])) d2 = IfcFirstProjAxis(d1, refdirection) - return [d2, getattr(IfcNormalise(IfcCrossProduct(d1, d2)), 'Orientation', INDETERMINATE), d1] + return [d2, express_getattr(IfcNormalise(IfcCrossProduct(d1, d2)), 'Orientation', INDETERMINATE), d1] def IfcConsecutiveSegments(segments): result = True @@ -11861,11 +11871,11 @@ def IfcConstraintsParamBSpline(degree, upknots, upcp, knotmult, knots): def IfcConvertDirectionInto2D(direction): direction2d = IfcDirection(DirectionRatios=[0.0, 1.0]) - temp = list(getattr(direction2d, 'DirectionRatios', INDETERMINATE)) - temp[1 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(direction, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(direction2d, 'DirectionRatios', INDETERMINATE)) + temp[1 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(direction, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) direction2d.DirectionRatios = temp - temp = list(getattr(direction2d, 'DirectionRatios', INDETERMINATE)) - temp[2 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(direction, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(direction2d, 'DirectionRatios', INDETERMINATE)) + temp[2 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(direction, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) direction2d.DirectionRatios = temp return direction2d @@ -12045,7 +12055,7 @@ def IfcCorrectLocalPlacement(axisplacement, relplacement): if 'ifc4x2.ifcaxis2placement2d' in typeof(axisplacement): return True if 'ifc4x2.ifcaxis2placement3d' in typeof(axisplacement): - if getattr(getattr(relplacement, 'RelativePlacement', INDETERMINATE), 'Dim', INDETERMINATE) == 3: + if express_getattr(express_getattr(relplacement, 'RelativePlacement', INDETERMINATE), 'Dim', INDETERMINATE) == 3: return True else: return False @@ -12056,27 +12066,27 @@ def IfcCorrectObjectAssignment(constraint, objects): count = 0 if not exists(constraint): return True - if constraint == getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE): + if constraint == express_getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE): return True - elif constraint == getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x2.ifcproduct' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x2.ifcprocess' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x2.ifccontrol' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x2.ifcresource' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x2.ifcactor' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x2.ifcgroup' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x2.ifcproject' in typeof(temp)]) return count == 0 else: @@ -12088,26 +12098,26 @@ def IfcCorrectUnitAssignment(units): monetaryunitnumber = 0 namedunitnames = express_set([]) derivedunitnames = express_set([]) - namedunitnumber = sizeof([temp for temp in units if 'ifc4x2.ifcnamedunit' in typeof(temp) and (not getattr(temp, 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE))]) - derivedunitnumber = sizeof([temp for temp in units if 'ifc4x2.ifcderivedunit' in typeof(temp) and (not getattr(temp, 'UnitType', INDETERMINATE) == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE))]) + namedunitnumber = sizeof([temp for temp in units if 'ifc4x2.ifcnamedunit' in typeof(temp) and (not express_getattr(temp, 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE))]) + derivedunitnumber = sizeof([temp for temp in units if 'ifc4x2.ifcderivedunit' in typeof(temp) and (not express_getattr(temp, 'UnitType', INDETERMINATE) == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE))]) monetaryunitnumber = sizeof([temp for temp in units if 'ifc4x2.ifcmonetaryunit' in typeof(temp)]) for i in range(1, sizeof(units) + 1): - if 'ifc4x2.ifcnamedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE)): - namedunitnames = namedunitnames + getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) - if 'ifc4x2.ifcderivedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE)): - derivedunitnames = derivedunitnames + getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) + if 'ifc4x2.ifcnamedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE)): + namedunitnames = namedunitnames + express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) + if 'ifc4x2.ifcderivedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE)): + derivedunitnames = derivedunitnames + express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) return sizeof(namedunitnames) == namedunitnumber and sizeof(derivedunitnames) == derivedunitnumber and (monetaryunitnumber <= 1) def IfcCrossProduct(arg1, arg2): - if (not exists(arg1) or getattr(arg1, 'Dim', INDETERMINATE) == 2) or (not exists(arg2) or getattr(arg2, 'Dim', INDETERMINATE) == 2): + if (not exists(arg1) or express_getattr(arg1, 'Dim', INDETERMINATE) == 2) or (not exists(arg2) or express_getattr(arg2, 'Dim', INDETERMINATE) == 2): return None else: - v1 = getattr(IfcNormalise(arg1), 'DirectionRatios', INDETERMINATE) - v2 = getattr(IfcNormalise(arg2), 'DirectionRatios', INDETERMINATE) + v1 = express_getattr(IfcNormalise(arg1), 'DirectionRatios', INDETERMINATE) + v2 = express_getattr(IfcNormalise(arg2), 'DirectionRatios', INDETERMINATE) res = IfcDirection(DirectionRatios=[express_getitem(v1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(v1, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(v1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) mag = 0.0 for i in range(1, 3 + 1): - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: @@ -12116,17 +12126,17 @@ def IfcCrossProduct(arg1, arg2): def IfcCurveDim(curve): if 'ifc4x2.ifcline' in typeof(curve): - return getattr(getattr(curve, 'Pnt', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Pnt', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x2.ifcconic' in typeof(curve): - return getattr(getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x2.ifcpolyline' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'Points', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'Points', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x2.ifctrimmedcurve' in typeof(curve): - return IfcCurveDim(getattr(curve, 'BasisCurve', INDETERMINATE)) + return IfcCurveDim(express_getattr(curve, 'BasisCurve', INDETERMINATE)) if 'ifc4x2.ifccompositecurve' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x2.ifcbsplinecurve' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x2.ifcoffsetcurve2d' in typeof(curve): return 2 if 'ifc4x2.ifcoffsetcurve3d' in typeof(curve): @@ -12140,13 +12150,13 @@ def IfcCurveDim(curve): if 'ifc4x2.ifcpcurve' in typeof(curve): return 3 if 'ifc4x2.ifcindexedpolycurve' in typeof(curve): - return getattr(getattr(curve, 'Points', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Points', INDETERMINATE), 'Dim', INDETERMINATE) return None def IfcCurveWeightsPositive(b): result = True - for i in range(0, getattr(b, 'UpperIndexOnControlPoints', INDETERMINATE) + 1): - if express_getitem(getattr(b, 'Weights', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: + for i in range(0, express_getattr(b, 'UpperIndexOnControlPoints', INDETERMINATE) + 1): + if express_getitem(express_getattr(b, 'Weights', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: result = False return result return result @@ -12154,13 +12164,13 @@ def IfcCurveWeightsPositive(b): def IfcDeriveDimensionalExponents(unitelements): result = IfcDimensionalExponents(0, 0, 0, 0, 0, 0, 0) for i in range(loindex(unitelements), hiindex(unitelements) + 1): - result.LengthExponent = getattr(result, 'LengthExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LengthExponent', INDETERMINATE) - result.MassExponent = getattr(result, 'MassExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'MassExponent', INDETERMINATE) - result.TimeExponent = getattr(result, 'TimeExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'TimeExponent', INDETERMINATE) - result.ElectricCurrentExponent = getattr(result, 'ElectricCurrentExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ElectricCurrentExponent', INDETERMINATE) - result.ThermodynamicTemperatureExponent = getattr(result, 'ThermodynamicTemperatureExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ThermodynamicTemperatureExponent', INDETERMINATE) - result.AmountOfSubstanceExponent = getattr(result, 'AmountOfSubstanceExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'AmountOfSubstanceExponent', INDETERMINATE) - result.LuminousIntensityExponent = getattr(result, 'LuminousIntensityExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LuminousIntensityExponent', INDETERMINATE) + result.LengthExponent = express_getattr(result, 'LengthExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LengthExponent', INDETERMINATE) + result.MassExponent = express_getattr(result, 'MassExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'MassExponent', INDETERMINATE) + result.TimeExponent = express_getattr(result, 'TimeExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'TimeExponent', INDETERMINATE) + result.ElectricCurrentExponent = express_getattr(result, 'ElectricCurrentExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ElectricCurrentExponent', INDETERMINATE) + result.ThermodynamicTemperatureExponent = express_getattr(result, 'ThermodynamicTemperatureExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ThermodynamicTemperatureExponent', INDETERMINATE) + result.AmountOfSubstanceExponent = express_getattr(result, 'AmountOfSubstanceExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'AmountOfSubstanceExponent', INDETERMINATE) + result.LuminousIntensityExponent = express_getattr(result, 'LuminousIntensityExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LuminousIntensityExponent', INDETERMINATE) return result def IfcDimensionsForSiUnit(n): @@ -12230,15 +12240,15 @@ def IfcDimensionsForSiUnit(n): def IfcDotProduct(arg1, arg2): if not exists(arg1) or not exists(arg2): scalar = None - elif getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + elif express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): scalar = None else: vec1 = IfcNormalise(arg1) vec2 = IfcNormalise(arg2) - ndim = getattr(arg1, 'Dim', INDETERMINATE) + ndim = express_getattr(arg1, 'Dim', INDETERMINATE) scalar = 0.0 for i in range(1, ndim + 1): - scalar = scalar + express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + scalar = scalar + express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return scalar def IfcFirstProjAxis(zaxis, arg): @@ -12247,36 +12257,36 @@ def IfcFirstProjAxis(zaxis, arg): else: z = IfcNormalise(zaxis) if not exists(arg): - if getattr(z, 'DirectionRatios', INDETERMINATE) != [1.0, 0.0, 0.0]: + if express_getattr(z, 'DirectionRatios', INDETERMINATE) != [1.0, 0.0, 0.0]: v = IfcDirection(DirectionRatios=[1.0, 0.0, 0.0]) else: v = IfcDirection(DirectionRatios=[0.0, 1.0, 0.0]) else: - if getattr(arg, 'Dim', INDETERMINATE) != 3: + if express_getattr(arg, 'Dim', INDETERMINATE) != 3: return None - if getattr(IfcCrossProduct(arg, z), 'Magnitude', INDETERMINATE) == 0.0: + if express_getattr(IfcCrossProduct(arg, z), 'Magnitude', INDETERMINATE) == 0.0: return None else: v = IfcNormalise(arg) xvec = IfcScalarTimesVector(IfcDotProduct(v, z), z) - xaxis = getattr(IfcVectorDifference(v, xvec), 'Orientation', INDETERMINATE) + xaxis = express_getattr(IfcVectorDifference(v, xvec), 'Orientation', INDETERMINATE) xaxis = IfcNormalise(xaxis) return xaxis def IfcGetBasisSurface(c): surfs = [] if 'ifc4x2.ifcpcurve' in typeof(c): - surfs = [getattr(c, 'BasisSurface', INDETERMINATE)] + surfs = [express_getattr(c, 'BasisSurface', INDETERMINATE)] elif 'ifc4x2.ifcsurfacecurve' in typeof(c): - n = sizeof(getattr(c, 'AssociatedGeometry', INDETERMINATE)) + n = sizeof(express_getattr(c, 'AssociatedGeometry', INDETERMINATE)) for i in range(1, n + 1): - surfs = surfs + IfcAssociatedSurface(express_getitem(getattr(c, 'AssociatedGeometry', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) + surfs = surfs + IfcAssociatedSurface(express_getitem(express_getattr(c, 'AssociatedGeometry', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) if 'ifc4x2.ifccompositecurveonsurface' in typeof(c): - n = sizeof(getattr(c, 'Segments', INDETERMINATE)) - surfs = IfcGetBasisSurface(getattr(express_getitem(getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) + n = sizeof(express_getattr(c, 'Segments', INDETERMINATE)) + surfs = IfcGetBasisSurface(express_getattr(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) if n > 1: for i in range(2, n + 1): - surfs = surfs * IfcGetBasisSurface(getattr(express_getitem(getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) + surfs = surfs * IfcGetBasisSurface(express_getattr(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) return surfs def IfcListToArray(lis, low, u): @@ -12293,9 +12303,9 @@ def IfcListToArray(lis, low, u): def IfcLoopHeadToTail(aloop): p = True - n = sizeof(getattr(aloop, 'EdgeList', INDETERMINATE)) + n = sizeof(express_getattr(aloop, 'EdgeList', INDETERMINATE)) for i in range(2, n + 1): - p = p and getattr(express_getitem(getattr(aloop, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == getattr(express_getitem(getattr(aloop, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) + p = p and express_getattr(express_getitem(express_getattr(aloop, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == express_getattr(express_getitem(express_getattr(aloop, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) return p def IfcMakeArrayOfArray(lis, low1, u1, low2, u2): @@ -12313,10 +12323,10 @@ def IfcMakeArrayOfArray(lis, low1, u1, low2, u2): return res def IfcMlsTotalThickness(layerset): - max = getattr(express_getitem(getattr(layerset, 'MaterialLayers', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) - if sizeof(getattr(layerset, 'MaterialLayers', INDETERMINATE)) > 1: - for i in range(2, hiindex(getattr(layerset, 'MaterialLayers', INDETERMINATE)) + 1): - max = max + getattr(express_getitem(getattr(layerset, 'MaterialLayers', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) + max = express_getattr(express_getitem(express_getattr(layerset, 'MaterialLayers', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) + if sizeof(express_getattr(layerset, 'MaterialLayers', INDETERMINATE)) > 1: + for i in range(2, hiindex(express_getattr(layerset, 'MaterialLayers', INDETERMINATE)) + 1): + max = max + express_getattr(express_getitem(express_getattr(layerset, 'MaterialLayers', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) return max def IfcNormalise(arg): @@ -12327,25 +12337,25 @@ def IfcNormalise(arg): return None else: if 'ifc4x2.ifcvector' in typeof(arg): - ndim = getattr(arg, 'Dim', INDETERMINATE) - v.DirectionRatios = getattr(getattr(arg, 'Orientation', INDETERMINATE), 'DirectionRatios', INDETERMINATE) - vec.Magnitude = getattr(arg, 'Magnitude', INDETERMINATE) + ndim = express_getattr(arg, 'Dim', INDETERMINATE) + v.DirectionRatios = express_getattr(express_getattr(arg, 'Orientation', INDETERMINATE), 'DirectionRatios', INDETERMINATE) + vec.Magnitude = express_getattr(arg, 'Magnitude', INDETERMINATE) vec.Orientation = v - if getattr(arg, 'Magnitude', INDETERMINATE) == 0.0: + if express_getattr(arg, 'Magnitude', INDETERMINATE) == 0.0: return None else: vec.Magnitude = 1.0 else: - ndim = getattr(arg, 'Dim', INDETERMINATE) - v.DirectionRatios = getattr(arg, 'DirectionRatios', INDETERMINATE) + ndim = express_getattr(arg, 'Dim', INDETERMINATE) + v.DirectionRatios = express_getattr(arg, 'DirectionRatios', INDETERMINATE) mag = 0.0 for i in range(1, ndim + 1): - mag = mag + express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: mag = sqrt(mag) for i in range(1, ndim + 1): - temp = list(getattr(v, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) / mag + temp = list(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) / mag v.DirectionRatios = temp if 'ifc4x2.ifcvector' in typeof(arg): vec.Orientation = v @@ -12357,18 +12367,18 @@ def IfcNormalise(arg): return result def IfcOrthogonalComplement(vec): - if not exists(vec) or getattr(vec, 'Dim', INDETERMINATE) != 2: + if not exists(vec) or express_getattr(vec, 'Dim', INDETERMINATE) != 2: return None else: - result = IfcDirection(DirectionRatios=[-express_getitem(getattr(vec, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(vec, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) + result = IfcDirection(DirectionRatios=[-express_getitem(express_getattr(vec, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(vec, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) return result def IfcPathHeadToTail(apath): n = 0 p = unknown - n = sizeof(getattr(apath, 'EdgeList', INDETERMINATE)) + n = sizeof(express_getattr(apath, 'EdgeList', INDETERMINATE)) for i in range(2, n + 1): - p = p and getattr(express_getitem(getattr(apath, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == getattr(express_getitem(getattr(apath, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) + p = p and express_getattr(express_getitem(express_getattr(apath, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == express_getattr(express_getitem(express_getattr(apath, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) return p def IfcPointListDim(pointlist): @@ -12379,32 +12389,32 @@ def IfcPointListDim(pointlist): return None def IfcSameAxis2Placement(ap1, ap2, epsilon): - return IfcSameDirection(express_getitem(getattr(ap1, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(ap2, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameDirection(express_getitem(getattr(ap1, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(ap2, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameCartesianPoint(getattr(ap1, 'Location', INDETERMINATE), getattr(ap1, 'Location', INDETERMINATE), epsilon) + return IfcSameDirection(express_getitem(express_getattr(ap1, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(ap2, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameDirection(express_getitem(express_getattr(ap1, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(ap2, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameCartesianPoint(express_getattr(ap1, 'Location', INDETERMINATE), express_getattr(ap1, 'Location', INDETERMINATE), epsilon) def IfcSameCartesianPoint(cp1, cp2, epsilon): - cp1x = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - cp1y = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp1x = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp1y = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) cp1z = 0 - cp2x = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - cp2y = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp2x = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp2y = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) cp2z = 0 - if sizeof(getattr(cp1, 'Coordinates', INDETERMINATE)) > 2: - cp1z = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - if sizeof(getattr(cp2, 'Coordinates', INDETERMINATE)) > 2: - cp2z = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(cp1, 'Coordinates', INDETERMINATE)) > 2: + cp1z = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(cp2, 'Coordinates', INDETERMINATE)) > 2: + cp2z = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return IfcSameValue(cp1x, cp2x, epsilon) and IfcSameValue(cp1y, cp2y, epsilon) and IfcSameValue(cp1z, cp2z, epsilon) def IfcSameDirection(dir1, dir2, epsilon): - dir1x = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - dir1y = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir1x = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir1y = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) dir1z = 0 - dir2x = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - dir2y = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir2x = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir2y = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) dir2z = 0 - if sizeof(getattr(dir1, 'DirectionRatios', INDETERMINATE)) > 2: - dir1z = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - if sizeof(getattr(dir2, 'DirectionRatios', INDETERMINATE)) > 2: - dir2z = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(dir1, 'DirectionRatios', INDETERMINATE)) > 2: + dir1z = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(dir2, 'DirectionRatios', INDETERMINATE)) > 2: + dir2z = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return IfcSameValue(dir1x, dir2x, epsilon) and IfcSameValue(dir1y, dir2y, epsilon) and IfcSameValue(dir1z, dir2z, epsilon) def IfcSameValidPrecision(epsilon1, epsilon2): @@ -12425,15 +12435,15 @@ def IfcScalarTimesVector(scalar, vec): return None else: if 'ifc4x2.ifcvector' in typeof(vec): - v = getattr(vec, 'Orientation', INDETERMINATE) - mag = scalar * getattr(vec, 'Magnitude', INDETERMINATE) + v = express_getattr(vec, 'Orientation', INDETERMINATE) + mag = scalar * express_getattr(vec, 'Magnitude', INDETERMINATE) else: v = vec mag = scalar if mag < 0.0: - for i in range(1, sizeof(getattr(v, 'DirectionRatios', INDETERMINATE)) + 1): - temp = list(getattr(v, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + for i in range(1, sizeof(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + 1): + temp = list(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) v.DirectionRatios = temp mag = -mag result = IfcVector(Orientation=IfcNormalise(v), Magnitude=mag) @@ -12449,71 +12459,71 @@ def IfcSecondProjAxis(zaxis, xaxis, arg): temp = IfcScalarTimesVector(IfcDotProduct(v, xaxis), xaxis) yaxis = IfcVectorDifference(yaxis, temp) yaxis = IfcNormalise(yaxis) - return getattr(yaxis, 'Orientation', INDETERMINATE) + return express_getattr(yaxis, 'Orientation', INDETERMINATE) def IfcShapeRepresentationTypes(reptype, items): count = 0 - if getattr(reptype, 'lower', INDETERMINATE)() == 'point': + if express_getattr(reptype, 'lower', INDETERMINATE)() == 'point': count = sizeof([temp for temp in items if 'ifc4x2.ifcpoint' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'pointcloud': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'pointcloud': count = sizeof([temp for temp in items if 'ifc4x2.ifccartesianpointlist3d' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve': count = sizeof([temp for temp in items if 'ifc4x2.ifccurve' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve2d': - count = sizeof([temp for temp in items if 'ifc4x2.ifccurve' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 2]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve3d': - count = sizeof([temp for temp in items if 'ifc4x2.ifccurve' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 3]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve2d': + count = sizeof([temp for temp in items if 'ifc4x2.ifccurve' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 2]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve3d': + count = sizeof([temp for temp in items if 'ifc4x2.ifccurve' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 3]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface': count = sizeof([temp for temp in items if 'ifc4x2.ifcsurface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface2d': - count = sizeof([temp for temp in items if 'ifc4x2.ifcsurface' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 2]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface3d': - count = sizeof([temp for temp in items if 'ifc4x2.ifcsurface' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 3]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'fillarea': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface2d': + count = sizeof([temp for temp in items if 'ifc4x2.ifcsurface' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 2]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface3d': + count = sizeof([temp for temp in items if 'ifc4x2.ifcsurface' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 3]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'fillarea': count = sizeof([temp for temp in items if 'ifc4x2.ifcannotationfillarea' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'text': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'text': count = sizeof([temp for temp in items if 'ifc4x2.ifctextliteral' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsurface': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsurface': count = sizeof([temp for temp in items if 'ifc4x2.ifcbsplinesurface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'annotation2d': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'annotation2d': count = sizeof([temp for temp in items if sizeof(typeof(temp) * ['ifc4x2.ifcpoint', 'ifc4x2.ifccurve', 'ifc4x2.ifcgeometriccurveset', 'ifc4x2.ifcannotationfillarea', 'ifc4x2.ifctextliteral']) == 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'geometricset': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'geometricset': count = sizeof([temp for temp in items if 'ifc4x2.ifcgeometricset' in typeof(temp) or 'ifc4x2.ifcpoint' in typeof(temp) or 'ifc4x2.ifccurve' in typeof(temp) or ('ifc4x2.ifcsurface' in typeof(temp))]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'geometriccurveset': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'geometriccurveset': count = sizeof([temp for temp in items if 'ifc4x2.ifcgeometriccurveset' in typeof(temp) or 'ifc4x2.ifcgeometricset' in typeof(temp) or 'ifc4x2.ifcpoint' in typeof(temp) or ('ifc4x2.ifccurve' in typeof(temp))]) for i in range(1, hiindex(items) + 1): if 'ifc4x2.ifcgeometricset' in typeof(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - if sizeof([temp for temp in getattr(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Elements', INDETERMINATE) if 'ifc4x2.ifcsurface' in typeof(temp)]) > 0: + if sizeof([temp for temp in express_getattr(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Elements', INDETERMINATE) if 'ifc4x2.ifcsurface' in typeof(temp)]) > 0: count = count - 1 - elif getattr(reptype, 'lower', INDETERMINATE)() == 'tessellation': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'tessellation': count = sizeof([temp for temp in items if 'ifc4x2.ifctessellateditem' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surfaceorsolidmodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surfaceorsolidmodel': count = sizeof([temp for temp in items if sizeof(['ifc4x2.ifctessellateditem', 'ifc4x2.ifcshellbasedsurfacemodel', 'ifc4x2.ifcfacebasedsurfacemodel', 'ifc4x2.ifcsolidmodel'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surfacemodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surfacemodel': count = sizeof([temp for temp in items if sizeof(['ifc4x2.ifctessellateditem', 'ifc4x2.ifcshellbasedsurfacemodel', 'ifc4x2.ifcfacebasedsurfacemodel'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'solidmodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'solidmodel': count = sizeof([temp for temp in items if 'ifc4x2.ifcsolidmodel' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'sweptsolid': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'sweptsolid': count = sizeof([temp for temp in items if sizeof(['ifc4x2.ifcextrudedareasolid', 'ifc4x2.ifcrevolvedareasolid'] * typeof(temp)) >= 1 and sizeof(['ifc4x2.ifcextrudedareasolidtapered', 'ifc4x2.ifcrevolvedareasolidtapered'] * typeof(temp)) == 0]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsweptsolid': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsweptsolid': count = sizeof([temp for temp in items if sizeof(['ifc4x2.ifcsweptareasolid', 'ifc4x2.ifcsweptdisksolid'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'csg': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'csg': count = sizeof([temp for temp in items if sizeof(['ifc4x2.ifcbooleanresult', 'ifc4x2.ifccsgprimitive3d', 'ifc4x2.ifccsgsolid'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'clipping': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'clipping': count = sizeof([temp for temp in items if sizeof(['ifc4x2.ifccsgsolid', 'ifc4x2.ifcbooleanclippingresult'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'brep': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'brep': count = sizeof([temp for temp in items if 'ifc4x2.ifcfacetedbrep' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedbrep': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedbrep': count = sizeof([temp for temp in items if 'ifc4x2.ifcmanifoldsolidbrep' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'boundingbox': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'boundingbox': count = sizeof([temp for temp in items if 'ifc4x2.ifcboundingbox' in typeof(temp)]) if sizeof(items) > 1: count = 0 - elif getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedspine': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedspine': count = sizeof([temp for temp in items if 'ifc4x2.ifcsectionedspine' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'lightsource': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'lightsource': count = sizeof([temp for temp in items if 'ifc4x2.ifclightsource' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'mappedrepresentation': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'mappedrepresentation': count = sizeof([temp for temp in items if 'ifc4x2.ifcmappeditem' in typeof(temp)]) else: return None @@ -12521,9 +12531,9 @@ def IfcShapeRepresentationTypes(reptype, items): def IfcSurfaceWeightsPositive(b): result = True - weights = getattr(b, 'Weights', INDETERMINATE) - for i in range(0, getattr(b, 'UUpper', INDETERMINATE) + 1): - for j in range(0, getattr(b, 'VUpper', INDETERMINATE) + 1): + weights = express_getattr(b, 'Weights', INDETERMINATE) + for i in range(0, express_getattr(b, 'UUpper', INDETERMINATE) + 1): + for j in range(0, express_getattr(b, 'VUpper', INDETERMINATE) + 1): if express_getitem(express_getitem(weights, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), j - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: result = False return result @@ -12533,28 +12543,28 @@ def IfcTaperedSweptAreaProfiles(startarea, endarea): result = False if 'ifc4x2.ifcparameterizedprofiledef' in typeof(startarea): if 'ifc4x2.ifcderivedprofiledef' in typeof(endarea): - result = startarea == getattr(endarea, 'ParentProfile', INDETERMINATE) + result = startarea == express_getattr(endarea, 'ParentProfile', INDETERMINATE) else: result = typeof(startarea) == typeof(endarea) elif 'ifc4x2.ifcderivedprofiledef' in typeof(endarea): - result = startarea == getattr(endarea, 'ParentProfile', INDETERMINATE) + result = startarea == express_getattr(endarea, 'ParentProfile', INDETERMINATE) else: result = False return result def IfcTopologyRepresentationTypes(reptype, items): count = 0 - if getattr(reptype, 'lower', INDETERMINATE)() == 'vertex': + if express_getattr(reptype, 'lower', INDETERMINATE)() == 'vertex': count = sizeof([temp for temp in items if 'ifc4x2.ifcvertex' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'edge': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'edge': count = sizeof([temp for temp in items if 'ifc4x2.ifcedge' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'path': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'path': count = sizeof([temp for temp in items if 'ifc4x2.ifcpath' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'face': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'face': count = sizeof([temp for temp in items if 'ifc4x2.ifcface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'shell': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'shell': count = sizeof([temp for temp in items if 'ifc4x2.ifcopenshell' in typeof(temp) or 'ifc4x2.ifcclosedshell' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'undefined': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'undefined': return True else: return None @@ -12565,7 +12575,7 @@ def IfcUniqueDefinitionNames(relations): if sizeof(relations) == 0: return True for i in range(1, hiindex(relations) + 1): - definition = getattr(express_getitem(relations, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingPropertyDefinition', INDETERMINATE) + definition = express_getattr(express_getitem(relations, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingPropertyDefinition', INDETERMINATE) if 'ifc4x2.ifcpropertysetdefinition' in typeof(definition): properties = properties + definition elif 'ifc4x2.ifcpropertysetdefinitionset' in typeof(definition): @@ -12578,7 +12588,7 @@ def IfcUniqueDefinitionNames(relations): def IfcUniquePropertyName(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcUniquePropertySetNames(properties): @@ -12586,7 +12596,7 @@ def IfcUniquePropertySetNames(properties): unnamed = 0 for i in range(1, hiindex(properties) + 1): if 'ifc4x2.ifcpropertyset' in typeof(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) else: unnamed = unnamed + 1 return sizeof(names) + unnamed == sizeof(properties) @@ -12594,41 +12604,41 @@ def IfcUniquePropertySetNames(properties): def IfcUniquePropertyTemplateNames(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcUniqueQuantityNames(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcVectorDifference(arg1, arg2): - if (not exists(arg1) or not exists(arg2)) or getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + if (not exists(arg1) or not exists(arg2)) or express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): return None else: if 'ifc4x2.ifcvector' in typeof(arg1): - mag1 = getattr(arg1, 'Magnitude', INDETERMINATE) - vec1 = getattr(arg1, 'Orientation', INDETERMINATE) + mag1 = express_getattr(arg1, 'Magnitude', INDETERMINATE) + vec1 = express_getattr(arg1, 'Orientation', INDETERMINATE) else: mag1 = 1.0 vec1 = arg1 if 'ifc4x2.ifcvector' in typeof(arg2): - mag2 = getattr(arg2, 'Magnitude', INDETERMINATE) - vec2 = getattr(arg2, 'Orientation', INDETERMINATE) + mag2 = express_getattr(arg2, 'Magnitude', INDETERMINATE) + vec2 = express_getattr(arg2, 'Orientation', INDETERMINATE) else: mag2 = 1.0 vec2 = arg2 vec1 = IfcNormalise(vec1) vec2 = IfcNormalise(vec2) - ndim = sizeof(getattr(vec1, 'DirectionRatios', INDETERMINATE)) + ndim = sizeof(express_getattr(vec1, 'DirectionRatios', INDETERMINATE)) mag = 0.0 res = IfcDirection(DirectionRatios=[0.0] * ndim) for i in range(1, ndim + 1): - temp = list(getattr(res, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - mag2 * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(res, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - mag2 * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) res.DirectionRatios = temp - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: @@ -12636,31 +12646,31 @@ def IfcVectorDifference(arg1, arg2): return result def IfcVectorSum(arg1, arg2): - if (not exists(arg1) or not exists(arg2)) or getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + if (not exists(arg1) or not exists(arg2)) or express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): return None else: if 'ifc4x2.ifcvector' in typeof(arg1): - mag1 = getattr(arg1, 'Magnitude', INDETERMINATE) - vec1 = getattr(arg1, 'Orientation', INDETERMINATE) + mag1 = express_getattr(arg1, 'Magnitude', INDETERMINATE) + vec1 = express_getattr(arg1, 'Orientation', INDETERMINATE) else: mag1 = 1.0 vec1 = arg1 if 'ifc4x2.ifcvector' in typeof(arg2): - mag2 = getattr(arg2, 'Magnitude', INDETERMINATE) - vec2 = getattr(arg2, 'Orientation', INDETERMINATE) + mag2 = express_getattr(arg2, 'Magnitude', INDETERMINATE) + vec2 = express_getattr(arg2, 'Orientation', INDETERMINATE) else: mag2 = 1.0 vec2 = arg2 vec1 = IfcNormalise(vec1) vec2 = IfcNormalise(vec2) - ndim = sizeof(getattr(vec1, 'DirectionRatios', INDETERMINATE)) + ndim = sizeof(express_getattr(vec1, 'DirectionRatios', INDETERMINATE)) mag = 0.0 res = IfcDirection(DirectionRatios=[0.0] * ndim) for i in range(1, ndim + 1): - temp = list(getattr(res, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag2 * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(res, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag2 * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) res.DirectionRatios = temp - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3.py index 6271263953..3e99f58511 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3.py @@ -1,5 +1,8 @@ import ifcopenshell +def is_indeterminate(v): + return v is None or type(v).__name__ == 'indeterminate_type' + def exists(v): if callable(v): try: @@ -7,10 +10,10 @@ def exists(v): except IndexError as e: return False else: - return v is not None + return not is_indeterminate(v) def nvl(v, default): - return v if v is not None else default + return v if not is_indeterminate(v) else default def is_entity(inst): if isinstance(inst, ifcopenshell.entity_instance): @@ -22,13 +25,13 @@ def is_entity(inst): def express_len(v): if isinstance(v, ifcopenshell.entity_instance) and (not is_entity(v)): v = v[0] - elif v is None or v is INDETERMINATE: + elif is_indeterminate(v): return INDETERMINATE return len(v) old_range = range def range(*args): - if INDETERMINATE in args: + if any(map(is_indeterminate, args)): return yield from old_range(*args) sizeof = express_len @@ -80,6 +83,13 @@ def express_getitem(aggr, idx, default): return aggr[idx] except IndexError as e: return None + +def express_getattr(aggr, name, default): + v = getattr(aggr, name, default) + if v is None: + return default + else: + return v EXPRESS_ONE_BASED_INDEXING = 1 def typeof(inst): @@ -140,2425 +150,2425 @@ INDETERMINATE = indeterminate_type() class enum_namespace: def __getattr__(self, k): - return getattr(k, 'upper', INDETERMINATE)() + return express_getattr(k, 'upper', INDETERMINATE)() IfcActionRequestTypeEnum = enum_namespace() -email = getattr(IfcActionRequestTypeEnum, 'EMAIL', INDETERMINATE) -fax = getattr(IfcActionRequestTypeEnum, 'FAX', INDETERMINATE) -phone = getattr(IfcActionRequestTypeEnum, 'PHONE', INDETERMINATE) -post = getattr(IfcActionRequestTypeEnum, 'POST', INDETERMINATE) -verbal = getattr(IfcActionRequestTypeEnum, 'VERBAL', INDETERMINATE) -userdefined = getattr(IfcActionRequestTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionRequestTypeEnum, 'NOTDEFINED', INDETERMINATE) +email = IfcActionRequestTypeEnum.EMAIL +fax = IfcActionRequestTypeEnum.FAX +phone = IfcActionRequestTypeEnum.PHONE +post = IfcActionRequestTypeEnum.POST +verbal = IfcActionRequestTypeEnum.VERBAL +userdefined = IfcActionRequestTypeEnum.USERDEFINED +notdefined = IfcActionRequestTypeEnum.NOTDEFINED IfcActionSourceTypeEnum = enum_namespace() -brakes = getattr(IfcActionSourceTypeEnum, 'BRAKES', INDETERMINATE) -buoyancy = getattr(IfcActionSourceTypeEnum, 'BUOYANCY', INDETERMINATE) -completion_g1 = getattr(IfcActionSourceTypeEnum, 'COMPLETION_G1', INDETERMINATE) -creep = getattr(IfcActionSourceTypeEnum, 'CREEP', INDETERMINATE) -current = getattr(IfcActionSourceTypeEnum, 'CURRENT', INDETERMINATE) -dead_load_g = getattr(IfcActionSourceTypeEnum, 'DEAD_LOAD_G', INDETERMINATE) -earthquake_e = getattr(IfcActionSourceTypeEnum, 'EARTHQUAKE_E', INDETERMINATE) -erection = getattr(IfcActionSourceTypeEnum, 'ERECTION', INDETERMINATE) -fire = getattr(IfcActionSourceTypeEnum, 'FIRE', INDETERMINATE) -ice = getattr(IfcActionSourceTypeEnum, 'ICE', INDETERMINATE) -impact = getattr(IfcActionSourceTypeEnum, 'IMPACT', INDETERMINATE) -impulse = getattr(IfcActionSourceTypeEnum, 'IMPULSE', INDETERMINATE) -lack_of_fit = getattr(IfcActionSourceTypeEnum, 'LACK_OF_FIT', INDETERMINATE) -live_load_q = getattr(IfcActionSourceTypeEnum, 'LIVE_LOAD_Q', INDETERMINATE) -prestressing_p = getattr(IfcActionSourceTypeEnum, 'PRESTRESSING_P', INDETERMINATE) -propping = getattr(IfcActionSourceTypeEnum, 'PROPPING', INDETERMINATE) -rain = getattr(IfcActionSourceTypeEnum, 'RAIN', INDETERMINATE) -settlement_u = getattr(IfcActionSourceTypeEnum, 'SETTLEMENT_U', INDETERMINATE) -shrinkage = getattr(IfcActionSourceTypeEnum, 'SHRINKAGE', INDETERMINATE) -snow_s = getattr(IfcActionSourceTypeEnum, 'SNOW_S', INDETERMINATE) -system_imperfection = getattr(IfcActionSourceTypeEnum, 'SYSTEM_IMPERFECTION', INDETERMINATE) -temperature_t = getattr(IfcActionSourceTypeEnum, 'TEMPERATURE_T', INDETERMINATE) -transport = getattr(IfcActionSourceTypeEnum, 'TRANSPORT', INDETERMINATE) -wave = getattr(IfcActionSourceTypeEnum, 'WAVE', INDETERMINATE) -wind_w = getattr(IfcActionSourceTypeEnum, 'WIND_W', INDETERMINATE) -userdefined = getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionSourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +brakes = IfcActionSourceTypeEnum.BRAKES +buoyancy = IfcActionSourceTypeEnum.BUOYANCY +completion_g1 = IfcActionSourceTypeEnum.COMPLETION_G1 +creep = IfcActionSourceTypeEnum.CREEP +current = IfcActionSourceTypeEnum.CURRENT +dead_load_g = IfcActionSourceTypeEnum.DEAD_LOAD_G +earthquake_e = IfcActionSourceTypeEnum.EARTHQUAKE_E +erection = IfcActionSourceTypeEnum.ERECTION +fire = IfcActionSourceTypeEnum.FIRE +ice = IfcActionSourceTypeEnum.ICE +impact = IfcActionSourceTypeEnum.IMPACT +impulse = IfcActionSourceTypeEnum.IMPULSE +lack_of_fit = IfcActionSourceTypeEnum.LACK_OF_FIT +live_load_q = IfcActionSourceTypeEnum.LIVE_LOAD_Q +prestressing_p = IfcActionSourceTypeEnum.PRESTRESSING_P +propping = IfcActionSourceTypeEnum.PROPPING +rain = IfcActionSourceTypeEnum.RAIN +settlement_u = IfcActionSourceTypeEnum.SETTLEMENT_U +shrinkage = IfcActionSourceTypeEnum.SHRINKAGE +snow_s = IfcActionSourceTypeEnum.SNOW_S +system_imperfection = IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION +temperature_t = IfcActionSourceTypeEnum.TEMPERATURE_T +transport = IfcActionSourceTypeEnum.TRANSPORT +wave = IfcActionSourceTypeEnum.WAVE +wind_w = IfcActionSourceTypeEnum.WIND_W +userdefined = IfcActionSourceTypeEnum.USERDEFINED +notdefined = IfcActionSourceTypeEnum.NOTDEFINED IfcActionTypeEnum = enum_namespace() -extraordinary_a = getattr(IfcActionTypeEnum, 'EXTRAORDINARY_A', INDETERMINATE) -permanent_g = getattr(IfcActionTypeEnum, 'PERMANENT_G', INDETERMINATE) -variable_q = getattr(IfcActionTypeEnum, 'VARIABLE_Q', INDETERMINATE) -userdefined = getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionTypeEnum, 'NOTDEFINED', INDETERMINATE) +extraordinary_a = IfcActionTypeEnum.EXTRAORDINARY_A +permanent_g = IfcActionTypeEnum.PERMANENT_G +variable_q = IfcActionTypeEnum.VARIABLE_Q +userdefined = IfcActionTypeEnum.USERDEFINED +notdefined = IfcActionTypeEnum.NOTDEFINED IfcActuatorTypeEnum = enum_namespace() -electricactuator = getattr(IfcActuatorTypeEnum, 'ELECTRICACTUATOR', INDETERMINATE) -handoperatedactuator = getattr(IfcActuatorTypeEnum, 'HANDOPERATEDACTUATOR', INDETERMINATE) -hydraulicactuator = getattr(IfcActuatorTypeEnum, 'HYDRAULICACTUATOR', INDETERMINATE) -pneumaticactuator = getattr(IfcActuatorTypeEnum, 'PNEUMATICACTUATOR', INDETERMINATE) -thermostaticactuator = getattr(IfcActuatorTypeEnum, 'THERMOSTATICACTUATOR', INDETERMINATE) -userdefined = getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActuatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +electricactuator = IfcActuatorTypeEnum.ELECTRICACTUATOR +handoperatedactuator = IfcActuatorTypeEnum.HANDOPERATEDACTUATOR +hydraulicactuator = IfcActuatorTypeEnum.HYDRAULICACTUATOR +pneumaticactuator = IfcActuatorTypeEnum.PNEUMATICACTUATOR +thermostaticactuator = IfcActuatorTypeEnum.THERMOSTATICACTUATOR +userdefined = IfcActuatorTypeEnum.USERDEFINED +notdefined = IfcActuatorTypeEnum.NOTDEFINED IfcAddressTypeEnum = enum_namespace() -distributionpoint = getattr(IfcAddressTypeEnum, 'DISTRIBUTIONPOINT', INDETERMINATE) -home = getattr(IfcAddressTypeEnum, 'HOME', INDETERMINATE) -office = getattr(IfcAddressTypeEnum, 'OFFICE', INDETERMINATE) -site = getattr(IfcAddressTypeEnum, 'SITE', INDETERMINATE) -userdefined = getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) +distributionpoint = IfcAddressTypeEnum.DISTRIBUTIONPOINT +home = IfcAddressTypeEnum.HOME +office = IfcAddressTypeEnum.OFFICE +site = IfcAddressTypeEnum.SITE +userdefined = IfcAddressTypeEnum.USERDEFINED IfcAirTerminalBoxTypeEnum = enum_namespace() -constantflow = getattr(IfcAirTerminalBoxTypeEnum, 'CONSTANTFLOW', INDETERMINATE) -variableflowpressuredependant = getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREDEPENDANT', INDETERMINATE) -variableflowpressureindependant = getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREINDEPENDANT', INDETERMINATE) -userdefined = getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirTerminalBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +constantflow = IfcAirTerminalBoxTypeEnum.CONSTANTFLOW +variableflowpressuredependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT +variableflowpressureindependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT +userdefined = IfcAirTerminalBoxTypeEnum.USERDEFINED +notdefined = IfcAirTerminalBoxTypeEnum.NOTDEFINED IfcAirTerminalTypeEnum = enum_namespace() -diffuser = getattr(IfcAirTerminalTypeEnum, 'DIFFUSER', INDETERMINATE) -grille = getattr(IfcAirTerminalTypeEnum, 'GRILLE', INDETERMINATE) -louvre = getattr(IfcAirTerminalTypeEnum, 'LOUVRE', INDETERMINATE) -register = getattr(IfcAirTerminalTypeEnum, 'REGISTER', INDETERMINATE) -userdefined = getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +diffuser = IfcAirTerminalTypeEnum.DIFFUSER +grille = IfcAirTerminalTypeEnum.GRILLE +louvre = IfcAirTerminalTypeEnum.LOUVRE +register = IfcAirTerminalTypeEnum.REGISTER +userdefined = IfcAirTerminalTypeEnum.USERDEFINED +notdefined = IfcAirTerminalTypeEnum.NOTDEFINED IfcAirToAirHeatRecoveryTypeEnum = enum_namespace() -fixedplatecounterflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECOUNTERFLOWEXCHANGER', INDETERMINATE) -fixedplatecrossflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECROSSFLOWEXCHANGER', INDETERMINATE) -fixedplateparallelflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATEPARALLELFLOWEXCHANGER', INDETERMINATE) -heatpipe = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'HEATPIPE', INDETERMINATE) -rotarywheel = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'ROTARYWHEEL', INDETERMINATE) -runaroundcoilloop = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'RUNAROUNDCOILLOOP', INDETERMINATE) -thermosiphoncoiltypeheatexchangers = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONCOILTYPEHEATEXCHANGERS', INDETERMINATE) -thermosiphonsealedtubeheatexchangers = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONSEALEDTUBEHEATEXCHANGERS', INDETERMINATE) -twintowerenthalpyrecoveryloops = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'TWINTOWERENTHALPYRECOVERYLOOPS', INDETERMINATE) -userdefined = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'NOTDEFINED', INDETERMINATE) +fixedplatecounterflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER +fixedplatecrossflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER +fixedplateparallelflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER +heatpipe = IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE +rotarywheel = IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL +runaroundcoilloop = IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP +thermosiphoncoiltypeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS +thermosiphonsealedtubeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS +twintowerenthalpyrecoveryloops = IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS +userdefined = IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED +notdefined = IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED IfcAlarmTypeEnum = enum_namespace() -bell = getattr(IfcAlarmTypeEnum, 'BELL', INDETERMINATE) -breakglassbutton = getattr(IfcAlarmTypeEnum, 'BREAKGLASSBUTTON', INDETERMINATE) -light = getattr(IfcAlarmTypeEnum, 'LIGHT', INDETERMINATE) -manualpullbox = getattr(IfcAlarmTypeEnum, 'MANUALPULLBOX', INDETERMINATE) -railwaycrocodile = getattr(IfcAlarmTypeEnum, 'RAILWAYCROCODILE', INDETERMINATE) -railwaydetonator = getattr(IfcAlarmTypeEnum, 'RAILWAYDETONATOR', INDETERMINATE) -siren = getattr(IfcAlarmTypeEnum, 'SIREN', INDETERMINATE) -whistle = getattr(IfcAlarmTypeEnum, 'WHISTLE', INDETERMINATE) -userdefined = getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAlarmTypeEnum, 'NOTDEFINED', INDETERMINATE) +bell = IfcAlarmTypeEnum.BELL +breakglassbutton = IfcAlarmTypeEnum.BREAKGLASSBUTTON +light = IfcAlarmTypeEnum.LIGHT +manualpullbox = IfcAlarmTypeEnum.MANUALPULLBOX +railwaycrocodile = IfcAlarmTypeEnum.RAILWAYCROCODILE +railwaydetonator = IfcAlarmTypeEnum.RAILWAYDETONATOR +siren = IfcAlarmTypeEnum.SIREN +whistle = IfcAlarmTypeEnum.WHISTLE +userdefined = IfcAlarmTypeEnum.USERDEFINED +notdefined = IfcAlarmTypeEnum.NOTDEFINED IfcAlignmentCantSegmentTypeEnum = enum_namespace() -blosscurve = getattr(IfcAlignmentCantSegmentTypeEnum, 'BLOSSCURVE', INDETERMINATE) -constantcant = getattr(IfcAlignmentCantSegmentTypeEnum, 'CONSTANTCANT', INDETERMINATE) -cosinecurve = getattr(IfcAlignmentCantSegmentTypeEnum, 'COSINECURVE', INDETERMINATE) -helmertcurve = getattr(IfcAlignmentCantSegmentTypeEnum, 'HELMERTCURVE', INDETERMINATE) -lineartransition = getattr(IfcAlignmentCantSegmentTypeEnum, 'LINEARTRANSITION', INDETERMINATE) -sinecurve = getattr(IfcAlignmentCantSegmentTypeEnum, 'SINECURVE', INDETERMINATE) -viennesebend = getattr(IfcAlignmentCantSegmentTypeEnum, 'VIENNESEBEND', INDETERMINATE) +blosscurve = IfcAlignmentCantSegmentTypeEnum.BLOSSCURVE +constantcant = IfcAlignmentCantSegmentTypeEnum.CONSTANTCANT +cosinecurve = IfcAlignmentCantSegmentTypeEnum.COSINECURVE +helmertcurve = IfcAlignmentCantSegmentTypeEnum.HELMERTCURVE +lineartransition = IfcAlignmentCantSegmentTypeEnum.LINEARTRANSITION +sinecurve = IfcAlignmentCantSegmentTypeEnum.SINECURVE +viennesebend = IfcAlignmentCantSegmentTypeEnum.VIENNESEBEND IfcAlignmentHorizontalSegmentTypeEnum = enum_namespace() -blosscurve = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'BLOSSCURVE', INDETERMINATE) -circulararc = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CIRCULARARC', INDETERMINATE) -clothoid = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CLOTHOID', INDETERMINATE) -cosinecurve = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'COSINECURVE', INDETERMINATE) -cubic = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CUBIC', INDETERMINATE) -helmertcurve = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'HELMERTCURVE', INDETERMINATE) -line = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'LINE', INDETERMINATE) -sinecurve = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'SINECURVE', INDETERMINATE) -viennesebend = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'VIENNESEBEND', INDETERMINATE) +blosscurve = IfcAlignmentHorizontalSegmentTypeEnum.BLOSSCURVE +circulararc = IfcAlignmentHorizontalSegmentTypeEnum.CIRCULARARC +clothoid = IfcAlignmentHorizontalSegmentTypeEnum.CLOTHOID +cosinecurve = IfcAlignmentHorizontalSegmentTypeEnum.COSINECURVE +cubic = IfcAlignmentHorizontalSegmentTypeEnum.CUBIC +helmertcurve = IfcAlignmentHorizontalSegmentTypeEnum.HELMERTCURVE +line = IfcAlignmentHorizontalSegmentTypeEnum.LINE +sinecurve = IfcAlignmentHorizontalSegmentTypeEnum.SINECURVE +viennesebend = IfcAlignmentHorizontalSegmentTypeEnum.VIENNESEBEND IfcAlignmentTypeEnum = enum_namespace() -userdefined = getattr(IfcAlignmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAlignmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcAlignmentTypeEnum.USERDEFINED +notdefined = IfcAlignmentTypeEnum.NOTDEFINED IfcAlignmentVerticalSegmentTypeEnum = enum_namespace() -circulararc = getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CIRCULARARC', INDETERMINATE) -clothoid = getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CLOTHOID', INDETERMINATE) -constantgradient = getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CONSTANTGRADIENT', INDETERMINATE) -parabolicarc = getattr(IfcAlignmentVerticalSegmentTypeEnum, 'PARABOLICARC', INDETERMINATE) +circulararc = IfcAlignmentVerticalSegmentTypeEnum.CIRCULARARC +clothoid = IfcAlignmentVerticalSegmentTypeEnum.CLOTHOID +constantgradient = IfcAlignmentVerticalSegmentTypeEnum.CONSTANTGRADIENT +parabolicarc = IfcAlignmentVerticalSegmentTypeEnum.PARABOLICARC IfcAnalysisModelTypeEnum = enum_namespace() -in_plane_loading_2d = getattr(IfcAnalysisModelTypeEnum, 'IN_PLANE_LOADING_2D', INDETERMINATE) -loading_3d = getattr(IfcAnalysisModelTypeEnum, 'LOADING_3D', INDETERMINATE) -out_plane_loading_2d = getattr(IfcAnalysisModelTypeEnum, 'OUT_PLANE_LOADING_2D', INDETERMINATE) -userdefined = getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnalysisModelTypeEnum, 'NOTDEFINED', INDETERMINATE) +in_plane_loading_2d = IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D +loading_3d = IfcAnalysisModelTypeEnum.LOADING_3D +out_plane_loading_2d = IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D +userdefined = IfcAnalysisModelTypeEnum.USERDEFINED +notdefined = IfcAnalysisModelTypeEnum.NOTDEFINED IfcAnalysisTheoryTypeEnum = enum_namespace() -first_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'FIRST_ORDER_THEORY', INDETERMINATE) -full_nonlinear_theory = getattr(IfcAnalysisTheoryTypeEnum, 'FULL_NONLINEAR_THEORY', INDETERMINATE) -second_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'SECOND_ORDER_THEORY', INDETERMINATE) -third_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'THIRD_ORDER_THEORY', INDETERMINATE) -userdefined = getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnalysisTheoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +first_order_theory = IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY +full_nonlinear_theory = IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY +second_order_theory = IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY +third_order_theory = IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY +userdefined = IfcAnalysisTheoryTypeEnum.USERDEFINED +notdefined = IfcAnalysisTheoryTypeEnum.NOTDEFINED IfcAnnotationTypeEnum = enum_namespace() -asbuiltarea = getattr(IfcAnnotationTypeEnum, 'ASBUILTAREA', INDETERMINATE) -asbuiltline = getattr(IfcAnnotationTypeEnum, 'ASBUILTLINE', INDETERMINATE) -asbuiltpoint = getattr(IfcAnnotationTypeEnum, 'ASBUILTPOINT', INDETERMINATE) -assumedarea = getattr(IfcAnnotationTypeEnum, 'ASSUMEDAREA', INDETERMINATE) -assumedline = getattr(IfcAnnotationTypeEnum, 'ASSUMEDLINE', INDETERMINATE) -assumedpoint = getattr(IfcAnnotationTypeEnum, 'ASSUMEDPOINT', INDETERMINATE) -non_physical_signal = getattr(IfcAnnotationTypeEnum, 'NON_PHYSICAL_SIGNAL', INDETERMINATE) -superelevationevent = getattr(IfcAnnotationTypeEnum, 'SUPERELEVATIONEVENT', INDETERMINATE) -widthevent = getattr(IfcAnnotationTypeEnum, 'WIDTHEVENT', INDETERMINATE) -userdefined = getattr(IfcAnnotationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnnotationTypeEnum, 'NOTDEFINED', INDETERMINATE) +asbuiltarea = IfcAnnotationTypeEnum.ASBUILTAREA +asbuiltline = IfcAnnotationTypeEnum.ASBUILTLINE +asbuiltpoint = IfcAnnotationTypeEnum.ASBUILTPOINT +assumedarea = IfcAnnotationTypeEnum.ASSUMEDAREA +assumedline = IfcAnnotationTypeEnum.ASSUMEDLINE +assumedpoint = IfcAnnotationTypeEnum.ASSUMEDPOINT +non_physical_signal = IfcAnnotationTypeEnum.NON_PHYSICAL_SIGNAL +superelevationevent = IfcAnnotationTypeEnum.SUPERELEVATIONEVENT +widthevent = IfcAnnotationTypeEnum.WIDTHEVENT +userdefined = IfcAnnotationTypeEnum.USERDEFINED +notdefined = IfcAnnotationTypeEnum.NOTDEFINED IfcArithmeticOperatorEnum = enum_namespace() -add = getattr(IfcArithmeticOperatorEnum, 'ADD', INDETERMINATE) -divide = getattr(IfcArithmeticOperatorEnum, 'DIVIDE', INDETERMINATE) -multiply = getattr(IfcArithmeticOperatorEnum, 'MULTIPLY', INDETERMINATE) -subtract = getattr(IfcArithmeticOperatorEnum, 'SUBTRACT', INDETERMINATE) +add = IfcArithmeticOperatorEnum.ADD +divide = IfcArithmeticOperatorEnum.DIVIDE +multiply = IfcArithmeticOperatorEnum.MULTIPLY +subtract = IfcArithmeticOperatorEnum.SUBTRACT IfcAssemblyPlaceEnum = enum_namespace() -factory = getattr(IfcAssemblyPlaceEnum, 'FACTORY', INDETERMINATE) -site = getattr(IfcAssemblyPlaceEnum, 'SITE', INDETERMINATE) -notdefined = getattr(IfcAssemblyPlaceEnum, 'NOTDEFINED', INDETERMINATE) +factory = IfcAssemblyPlaceEnum.FACTORY +site = IfcAssemblyPlaceEnum.SITE +notdefined = IfcAssemblyPlaceEnum.NOTDEFINED IfcAudioVisualApplianceTypeEnum = enum_namespace() -amplifier = getattr(IfcAudioVisualApplianceTypeEnum, 'AMPLIFIER', INDETERMINATE) -camera = getattr(IfcAudioVisualApplianceTypeEnum, 'CAMERA', INDETERMINATE) -communicationterminal = getattr(IfcAudioVisualApplianceTypeEnum, 'COMMUNICATIONTERMINAL', INDETERMINATE) -display = getattr(IfcAudioVisualApplianceTypeEnum, 'DISPLAY', INDETERMINATE) -microphone = getattr(IfcAudioVisualApplianceTypeEnum, 'MICROPHONE', INDETERMINATE) -player = getattr(IfcAudioVisualApplianceTypeEnum, 'PLAYER', INDETERMINATE) -projector = getattr(IfcAudioVisualApplianceTypeEnum, 'PROJECTOR', INDETERMINATE) -receiver = getattr(IfcAudioVisualApplianceTypeEnum, 'RECEIVER', INDETERMINATE) -recordingequipment = getattr(IfcAudioVisualApplianceTypeEnum, 'RECORDINGEQUIPMENT', INDETERMINATE) -speaker = getattr(IfcAudioVisualApplianceTypeEnum, 'SPEAKER', INDETERMINATE) -switcher = getattr(IfcAudioVisualApplianceTypeEnum, 'SWITCHER', INDETERMINATE) -telephone = getattr(IfcAudioVisualApplianceTypeEnum, 'TELEPHONE', INDETERMINATE) -tuner = getattr(IfcAudioVisualApplianceTypeEnum, 'TUNER', INDETERMINATE) -userdefined = getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAudioVisualApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +amplifier = IfcAudioVisualApplianceTypeEnum.AMPLIFIER +camera = IfcAudioVisualApplianceTypeEnum.CAMERA +communicationterminal = IfcAudioVisualApplianceTypeEnum.COMMUNICATIONTERMINAL +display = IfcAudioVisualApplianceTypeEnum.DISPLAY +microphone = IfcAudioVisualApplianceTypeEnum.MICROPHONE +player = IfcAudioVisualApplianceTypeEnum.PLAYER +projector = IfcAudioVisualApplianceTypeEnum.PROJECTOR +receiver = IfcAudioVisualApplianceTypeEnum.RECEIVER +recordingequipment = IfcAudioVisualApplianceTypeEnum.RECORDINGEQUIPMENT +speaker = IfcAudioVisualApplianceTypeEnum.SPEAKER +switcher = IfcAudioVisualApplianceTypeEnum.SWITCHER +telephone = IfcAudioVisualApplianceTypeEnum.TELEPHONE +tuner = IfcAudioVisualApplianceTypeEnum.TUNER +userdefined = IfcAudioVisualApplianceTypeEnum.USERDEFINED +notdefined = IfcAudioVisualApplianceTypeEnum.NOTDEFINED IfcBSplineCurveForm = enum_namespace() -circular_arc = getattr(IfcBSplineCurveForm, 'CIRCULAR_ARC', INDETERMINATE) -elliptic_arc = getattr(IfcBSplineCurveForm, 'ELLIPTIC_ARC', INDETERMINATE) -hyperbolic_arc = getattr(IfcBSplineCurveForm, 'HYPERBOLIC_ARC', INDETERMINATE) -parabolic_arc = getattr(IfcBSplineCurveForm, 'PARABOLIC_ARC', INDETERMINATE) -polyline_form = getattr(IfcBSplineCurveForm, 'POLYLINE_FORM', INDETERMINATE) -unspecified = getattr(IfcBSplineCurveForm, 'UNSPECIFIED', INDETERMINATE) +circular_arc = IfcBSplineCurveForm.CIRCULAR_ARC +elliptic_arc = IfcBSplineCurveForm.ELLIPTIC_ARC +hyperbolic_arc = IfcBSplineCurveForm.HYPERBOLIC_ARC +parabolic_arc = IfcBSplineCurveForm.PARABOLIC_ARC +polyline_form = IfcBSplineCurveForm.POLYLINE_FORM +unspecified = IfcBSplineCurveForm.UNSPECIFIED IfcBSplineSurfaceForm = enum_namespace() -conical_surf = getattr(IfcBSplineSurfaceForm, 'CONICAL_SURF', INDETERMINATE) -cylindrical_surf = getattr(IfcBSplineSurfaceForm, 'CYLINDRICAL_SURF', INDETERMINATE) -generalised_cone = getattr(IfcBSplineSurfaceForm, 'GENERALISED_CONE', INDETERMINATE) -plane_surf = getattr(IfcBSplineSurfaceForm, 'PLANE_SURF', INDETERMINATE) -quadric_surf = getattr(IfcBSplineSurfaceForm, 'QUADRIC_SURF', INDETERMINATE) -ruled_surf = getattr(IfcBSplineSurfaceForm, 'RULED_SURF', INDETERMINATE) -spherical_surf = getattr(IfcBSplineSurfaceForm, 'SPHERICAL_SURF', INDETERMINATE) -surf_of_linear_extrusion = getattr(IfcBSplineSurfaceForm, 'SURF_OF_LINEAR_EXTRUSION', INDETERMINATE) -surf_of_revolution = getattr(IfcBSplineSurfaceForm, 'SURF_OF_REVOLUTION', INDETERMINATE) -toroidal_surf = getattr(IfcBSplineSurfaceForm, 'TOROIDAL_SURF', INDETERMINATE) -unspecified = getattr(IfcBSplineSurfaceForm, 'UNSPECIFIED', INDETERMINATE) +conical_surf = IfcBSplineSurfaceForm.CONICAL_SURF +cylindrical_surf = IfcBSplineSurfaceForm.CYLINDRICAL_SURF +generalised_cone = IfcBSplineSurfaceForm.GENERALISED_CONE +plane_surf = IfcBSplineSurfaceForm.PLANE_SURF +quadric_surf = IfcBSplineSurfaceForm.QUADRIC_SURF +ruled_surf = IfcBSplineSurfaceForm.RULED_SURF +spherical_surf = IfcBSplineSurfaceForm.SPHERICAL_SURF +surf_of_linear_extrusion = IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION +surf_of_revolution = IfcBSplineSurfaceForm.SURF_OF_REVOLUTION +toroidal_surf = IfcBSplineSurfaceForm.TOROIDAL_SURF +unspecified = IfcBSplineSurfaceForm.UNSPECIFIED IfcBeamTypeEnum = enum_namespace() -beam = getattr(IfcBeamTypeEnum, 'BEAM', INDETERMINATE) -cornice = getattr(IfcBeamTypeEnum, 'CORNICE', INDETERMINATE) -diaphragm = getattr(IfcBeamTypeEnum, 'DIAPHRAGM', INDETERMINATE) -edgebeam = getattr(IfcBeamTypeEnum, 'EDGEBEAM', INDETERMINATE) -girder_segment = getattr(IfcBeamTypeEnum, 'GIRDER_SEGMENT', INDETERMINATE) -hatstone = getattr(IfcBeamTypeEnum, 'HATSTONE', INDETERMINATE) -hollowcore = getattr(IfcBeamTypeEnum, 'HOLLOWCORE', INDETERMINATE) -joist = getattr(IfcBeamTypeEnum, 'JOIST', INDETERMINATE) -lintel = getattr(IfcBeamTypeEnum, 'LINTEL', INDETERMINATE) -piercap = getattr(IfcBeamTypeEnum, 'PIERCAP', INDETERMINATE) -spandrel = getattr(IfcBeamTypeEnum, 'SPANDREL', INDETERMINATE) -t_beam = getattr(IfcBeamTypeEnum, 'T_BEAM', INDETERMINATE) -userdefined = getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +beam = IfcBeamTypeEnum.BEAM +cornice = IfcBeamTypeEnum.CORNICE +diaphragm = IfcBeamTypeEnum.DIAPHRAGM +edgebeam = IfcBeamTypeEnum.EDGEBEAM +girder_segment = IfcBeamTypeEnum.GIRDER_SEGMENT +hatstone = IfcBeamTypeEnum.HATSTONE +hollowcore = IfcBeamTypeEnum.HOLLOWCORE +joist = IfcBeamTypeEnum.JOIST +lintel = IfcBeamTypeEnum.LINTEL +piercap = IfcBeamTypeEnum.PIERCAP +spandrel = IfcBeamTypeEnum.SPANDREL +t_beam = IfcBeamTypeEnum.T_BEAM +userdefined = IfcBeamTypeEnum.USERDEFINED +notdefined = IfcBeamTypeEnum.NOTDEFINED IfcBearingTypeDisplacementEnum = enum_namespace() -fixed_movement = getattr(IfcBearingTypeDisplacementEnum, 'FIXED_MOVEMENT', INDETERMINATE) -free_movement = getattr(IfcBearingTypeDisplacementEnum, 'FREE_MOVEMENT', INDETERMINATE) -guided_longitudinal = getattr(IfcBearingTypeDisplacementEnum, 'GUIDED_LONGITUDINAL', INDETERMINATE) -guided_transversal = getattr(IfcBearingTypeDisplacementEnum, 'GUIDED_TRANSVERSAL', INDETERMINATE) -notdefined = getattr(IfcBearingTypeDisplacementEnum, 'NOTDEFINED', INDETERMINATE) +fixed_movement = IfcBearingTypeDisplacementEnum.FIXED_MOVEMENT +free_movement = IfcBearingTypeDisplacementEnum.FREE_MOVEMENT +guided_longitudinal = IfcBearingTypeDisplacementEnum.GUIDED_LONGITUDINAL +guided_transversal = IfcBearingTypeDisplacementEnum.GUIDED_TRANSVERSAL +notdefined = IfcBearingTypeDisplacementEnum.NOTDEFINED IfcBearingTypeEnum = enum_namespace() -cylindrical = getattr(IfcBearingTypeEnum, 'CYLINDRICAL', INDETERMINATE) -disk = getattr(IfcBearingTypeEnum, 'DISK', INDETERMINATE) -elastomeric = getattr(IfcBearingTypeEnum, 'ELASTOMERIC', INDETERMINATE) -guide = getattr(IfcBearingTypeEnum, 'GUIDE', INDETERMINATE) -pot = getattr(IfcBearingTypeEnum, 'POT', INDETERMINATE) -rocker = getattr(IfcBearingTypeEnum, 'ROCKER', INDETERMINATE) -roller = getattr(IfcBearingTypeEnum, 'ROLLER', INDETERMINATE) -spherical = getattr(IfcBearingTypeEnum, 'SPHERICAL', INDETERMINATE) -userdefined = getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBearingTypeEnum, 'NOTDEFINED', INDETERMINATE) +cylindrical = IfcBearingTypeEnum.CYLINDRICAL +disk = IfcBearingTypeEnum.DISK +elastomeric = IfcBearingTypeEnum.ELASTOMERIC +guide = IfcBearingTypeEnum.GUIDE +pot = IfcBearingTypeEnum.POT +rocker = IfcBearingTypeEnum.ROCKER +roller = IfcBearingTypeEnum.ROLLER +spherical = IfcBearingTypeEnum.SPHERICAL +userdefined = IfcBearingTypeEnum.USERDEFINED +notdefined = IfcBearingTypeEnum.NOTDEFINED IfcBenchmarkEnum = enum_namespace() -equalto = getattr(IfcBenchmarkEnum, 'EQUALTO', INDETERMINATE) -greaterthan = getattr(IfcBenchmarkEnum, 'GREATERTHAN', INDETERMINATE) -greaterthanorequalto = getattr(IfcBenchmarkEnum, 'GREATERTHANOREQUALTO', INDETERMINATE) -includedin = getattr(IfcBenchmarkEnum, 'INCLUDEDIN', INDETERMINATE) -includes = getattr(IfcBenchmarkEnum, 'INCLUDES', INDETERMINATE) -lessthan = getattr(IfcBenchmarkEnum, 'LESSTHAN', INDETERMINATE) -lessthanorequalto = getattr(IfcBenchmarkEnum, 'LESSTHANOREQUALTO', INDETERMINATE) -notequalto = getattr(IfcBenchmarkEnum, 'NOTEQUALTO', INDETERMINATE) -notincludedin = getattr(IfcBenchmarkEnum, 'NOTINCLUDEDIN', INDETERMINATE) -notincludes = getattr(IfcBenchmarkEnum, 'NOTINCLUDES', INDETERMINATE) +equalto = IfcBenchmarkEnum.EQUALTO +greaterthan = IfcBenchmarkEnum.GREATERTHAN +greaterthanorequalto = IfcBenchmarkEnum.GREATERTHANOREQUALTO +includedin = IfcBenchmarkEnum.INCLUDEDIN +includes = IfcBenchmarkEnum.INCLUDES +lessthan = IfcBenchmarkEnum.LESSTHAN +lessthanorequalto = IfcBenchmarkEnum.LESSTHANOREQUALTO +notequalto = IfcBenchmarkEnum.NOTEQUALTO +notincludedin = IfcBenchmarkEnum.NOTINCLUDEDIN +notincludes = IfcBenchmarkEnum.NOTINCLUDES IfcBoilerTypeEnum = enum_namespace() -steam = getattr(IfcBoilerTypeEnum, 'STEAM', INDETERMINATE) -water = getattr(IfcBoilerTypeEnum, 'WATER', INDETERMINATE) -userdefined = getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBoilerTypeEnum, 'NOTDEFINED', INDETERMINATE) +steam = IfcBoilerTypeEnum.STEAM +water = IfcBoilerTypeEnum.WATER +userdefined = IfcBoilerTypeEnum.USERDEFINED +notdefined = IfcBoilerTypeEnum.NOTDEFINED IfcBooleanOperator = enum_namespace() -difference = getattr(IfcBooleanOperator, 'DIFFERENCE', INDETERMINATE) -intersection = getattr(IfcBooleanOperator, 'INTERSECTION', INDETERMINATE) -union = getattr(IfcBooleanOperator, 'UNION', INDETERMINATE) +difference = IfcBooleanOperator.DIFFERENCE +intersection = IfcBooleanOperator.INTERSECTION +union = IfcBooleanOperator.UNION IfcBridgePartTypeEnum = enum_namespace() -abutment = getattr(IfcBridgePartTypeEnum, 'ABUTMENT', INDETERMINATE) -deck = getattr(IfcBridgePartTypeEnum, 'DECK', INDETERMINATE) -deck_segment = getattr(IfcBridgePartTypeEnum, 'DECK_SEGMENT', INDETERMINATE) -foundation = getattr(IfcBridgePartTypeEnum, 'FOUNDATION', INDETERMINATE) -pier = getattr(IfcBridgePartTypeEnum, 'PIER', INDETERMINATE) -pier_segment = getattr(IfcBridgePartTypeEnum, 'PIER_SEGMENT', INDETERMINATE) -pylon = getattr(IfcBridgePartTypeEnum, 'PYLON', INDETERMINATE) -substructure = getattr(IfcBridgePartTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -superstructure = getattr(IfcBridgePartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -surfacestructure = getattr(IfcBridgePartTypeEnum, 'SURFACESTRUCTURE', INDETERMINATE) -userdefined = getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBridgePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +abutment = IfcBridgePartTypeEnum.ABUTMENT +deck = IfcBridgePartTypeEnum.DECK +deck_segment = IfcBridgePartTypeEnum.DECK_SEGMENT +foundation = IfcBridgePartTypeEnum.FOUNDATION +pier = IfcBridgePartTypeEnum.PIER +pier_segment = IfcBridgePartTypeEnum.PIER_SEGMENT +pylon = IfcBridgePartTypeEnum.PYLON +substructure = IfcBridgePartTypeEnum.SUBSTRUCTURE +superstructure = IfcBridgePartTypeEnum.SUPERSTRUCTURE +surfacestructure = IfcBridgePartTypeEnum.SURFACESTRUCTURE +userdefined = IfcBridgePartTypeEnum.USERDEFINED +notdefined = IfcBridgePartTypeEnum.NOTDEFINED IfcBridgeTypeEnum = enum_namespace() -arched = getattr(IfcBridgeTypeEnum, 'ARCHED', INDETERMINATE) -cable_stayed = getattr(IfcBridgeTypeEnum, 'CABLE_STAYED', INDETERMINATE) -cantilever = getattr(IfcBridgeTypeEnum, 'CANTILEVER', INDETERMINATE) -culvert = getattr(IfcBridgeTypeEnum, 'CULVERT', INDETERMINATE) -framework = getattr(IfcBridgeTypeEnum, 'FRAMEWORK', INDETERMINATE) -girder = getattr(IfcBridgeTypeEnum, 'GIRDER', INDETERMINATE) -suspension = getattr(IfcBridgeTypeEnum, 'SUSPENSION', INDETERMINATE) -truss = getattr(IfcBridgeTypeEnum, 'TRUSS', INDETERMINATE) -userdefined = getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBridgeTypeEnum, 'NOTDEFINED', INDETERMINATE) +arched = IfcBridgeTypeEnum.ARCHED +cable_stayed = IfcBridgeTypeEnum.CABLE_STAYED +cantilever = IfcBridgeTypeEnum.CANTILEVER +culvert = IfcBridgeTypeEnum.CULVERT +framework = IfcBridgeTypeEnum.FRAMEWORK +girder = IfcBridgeTypeEnum.GIRDER +suspension = IfcBridgeTypeEnum.SUSPENSION +truss = IfcBridgeTypeEnum.TRUSS +userdefined = IfcBridgeTypeEnum.USERDEFINED +notdefined = IfcBridgeTypeEnum.NOTDEFINED IfcBuildingElementPartTypeEnum = enum_namespace() -apron = getattr(IfcBuildingElementPartTypeEnum, 'APRON', INDETERMINATE) -armourunit = getattr(IfcBuildingElementPartTypeEnum, 'ARMOURUNIT', INDETERMINATE) -insulation = getattr(IfcBuildingElementPartTypeEnum, 'INSULATION', INDETERMINATE) -precastpanel = getattr(IfcBuildingElementPartTypeEnum, 'PRECASTPANEL', INDETERMINATE) -safetycage = getattr(IfcBuildingElementPartTypeEnum, 'SAFETYCAGE', INDETERMINATE) -userdefined = getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingElementPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +apron = IfcBuildingElementPartTypeEnum.APRON +armourunit = IfcBuildingElementPartTypeEnum.ARMOURUNIT +insulation = IfcBuildingElementPartTypeEnum.INSULATION +precastpanel = IfcBuildingElementPartTypeEnum.PRECASTPANEL +safetycage = IfcBuildingElementPartTypeEnum.SAFETYCAGE +userdefined = IfcBuildingElementPartTypeEnum.USERDEFINED +notdefined = IfcBuildingElementPartTypeEnum.NOTDEFINED IfcBuildingElementProxyTypeEnum = enum_namespace() -complex = getattr(IfcBuildingElementProxyTypeEnum, 'COMPLEX', INDETERMINATE) -element = getattr(IfcBuildingElementProxyTypeEnum, 'ELEMENT', INDETERMINATE) -partial = getattr(IfcBuildingElementProxyTypeEnum, 'PARTIAL', INDETERMINATE) -userdefined = getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingElementProxyTypeEnum, 'NOTDEFINED', INDETERMINATE) +complex = IfcBuildingElementProxyTypeEnum.COMPLEX +element = IfcBuildingElementProxyTypeEnum.ELEMENT +partial = IfcBuildingElementProxyTypeEnum.PARTIAL +userdefined = IfcBuildingElementProxyTypeEnum.USERDEFINED +notdefined = IfcBuildingElementProxyTypeEnum.NOTDEFINED IfcBuildingSystemTypeEnum = enum_namespace() -erosionprevention = getattr(IfcBuildingSystemTypeEnum, 'EROSIONPREVENTION', INDETERMINATE) -fenestration = getattr(IfcBuildingSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = getattr(IfcBuildingSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = getattr(IfcBuildingSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -outershell = getattr(IfcBuildingSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -prestressing = getattr(IfcBuildingSystemTypeEnum, 'PRESTRESSING', INDETERMINATE) -reinforcing = getattr(IfcBuildingSystemTypeEnum, 'REINFORCING', INDETERMINATE) -shading = getattr(IfcBuildingSystemTypeEnum, 'SHADING', INDETERMINATE) -transport = getattr(IfcBuildingSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -userdefined = getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +erosionprevention = IfcBuildingSystemTypeEnum.EROSIONPREVENTION +fenestration = IfcBuildingSystemTypeEnum.FENESTRATION +foundation = IfcBuildingSystemTypeEnum.FOUNDATION +loadbearing = IfcBuildingSystemTypeEnum.LOADBEARING +outershell = IfcBuildingSystemTypeEnum.OUTERSHELL +prestressing = IfcBuildingSystemTypeEnum.PRESTRESSING +reinforcing = IfcBuildingSystemTypeEnum.REINFORCING +shading = IfcBuildingSystemTypeEnum.SHADING +transport = IfcBuildingSystemTypeEnum.TRANSPORT +userdefined = IfcBuildingSystemTypeEnum.USERDEFINED +notdefined = IfcBuildingSystemTypeEnum.NOTDEFINED IfcBuiltSystemTypeEnum = enum_namespace() -erosionprevention = getattr(IfcBuiltSystemTypeEnum, 'EROSIONPREVENTION', INDETERMINATE) -fenestration = getattr(IfcBuiltSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = getattr(IfcBuiltSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = getattr(IfcBuiltSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -mooring = getattr(IfcBuiltSystemTypeEnum, 'MOORING', INDETERMINATE) -outershell = getattr(IfcBuiltSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -prestressing = getattr(IfcBuiltSystemTypeEnum, 'PRESTRESSING', INDETERMINATE) -railwayline = getattr(IfcBuiltSystemTypeEnum, 'RAILWAYLINE', INDETERMINATE) -railwaytrack = getattr(IfcBuiltSystemTypeEnum, 'RAILWAYTRACK', INDETERMINATE) -reinforcing = getattr(IfcBuiltSystemTypeEnum, 'REINFORCING', INDETERMINATE) -shading = getattr(IfcBuiltSystemTypeEnum, 'SHADING', INDETERMINATE) -trackcircuit = getattr(IfcBuiltSystemTypeEnum, 'TRACKCIRCUIT', INDETERMINATE) -transport = getattr(IfcBuiltSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -userdefined = getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuiltSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +erosionprevention = IfcBuiltSystemTypeEnum.EROSIONPREVENTION +fenestration = IfcBuiltSystemTypeEnum.FENESTRATION +foundation = IfcBuiltSystemTypeEnum.FOUNDATION +loadbearing = IfcBuiltSystemTypeEnum.LOADBEARING +mooring = IfcBuiltSystemTypeEnum.MOORING +outershell = IfcBuiltSystemTypeEnum.OUTERSHELL +prestressing = IfcBuiltSystemTypeEnum.PRESTRESSING +railwayline = IfcBuiltSystemTypeEnum.RAILWAYLINE +railwaytrack = IfcBuiltSystemTypeEnum.RAILWAYTRACK +reinforcing = IfcBuiltSystemTypeEnum.REINFORCING +shading = IfcBuiltSystemTypeEnum.SHADING +trackcircuit = IfcBuiltSystemTypeEnum.TRACKCIRCUIT +transport = IfcBuiltSystemTypeEnum.TRANSPORT +userdefined = IfcBuiltSystemTypeEnum.USERDEFINED +notdefined = IfcBuiltSystemTypeEnum.NOTDEFINED IfcBurnerTypeEnum = enum_namespace() -userdefined = getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBurnerTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcBurnerTypeEnum.USERDEFINED +notdefined = IfcBurnerTypeEnum.NOTDEFINED IfcCableCarrierFittingTypeEnum = enum_namespace() -bend = getattr(IfcCableCarrierFittingTypeEnum, 'BEND', INDETERMINATE) -connector = getattr(IfcCableCarrierFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -cross = getattr(IfcCableCarrierFittingTypeEnum, 'CROSS', INDETERMINATE) -junction = getattr(IfcCableCarrierFittingTypeEnum, 'JUNCTION', INDETERMINATE) -tee = getattr(IfcCableCarrierFittingTypeEnum, 'TEE', INDETERMINATE) -transition = getattr(IfcCableCarrierFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableCarrierFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcCableCarrierFittingTypeEnum.BEND +connector = IfcCableCarrierFittingTypeEnum.CONNECTOR +cross = IfcCableCarrierFittingTypeEnum.CROSS +junction = IfcCableCarrierFittingTypeEnum.JUNCTION +tee = IfcCableCarrierFittingTypeEnum.TEE +transition = IfcCableCarrierFittingTypeEnum.TRANSITION +userdefined = IfcCableCarrierFittingTypeEnum.USERDEFINED +notdefined = IfcCableCarrierFittingTypeEnum.NOTDEFINED IfcCableCarrierSegmentTypeEnum = enum_namespace() -cablebracket = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLEBRACKET', INDETERMINATE) -cableladdersegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLELADDERSEGMENT', INDETERMINATE) -cabletraysegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRAYSEGMENT', INDETERMINATE) -cabletrunkingsegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRUNKINGSEGMENT', INDETERMINATE) -catenarywire = getattr(IfcCableCarrierSegmentTypeEnum, 'CATENARYWIRE', INDETERMINATE) -conduitsegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CONDUITSEGMENT', INDETERMINATE) -dropper = getattr(IfcCableCarrierSegmentTypeEnum, 'DROPPER', INDETERMINATE) -userdefined = getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableCarrierSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +cablebracket = IfcCableCarrierSegmentTypeEnum.CABLEBRACKET +cableladdersegment = IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT +cabletraysegment = IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT +cabletrunkingsegment = IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT +catenarywire = IfcCableCarrierSegmentTypeEnum.CATENARYWIRE +conduitsegment = IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT +dropper = IfcCableCarrierSegmentTypeEnum.DROPPER +userdefined = IfcCableCarrierSegmentTypeEnum.USERDEFINED +notdefined = IfcCableCarrierSegmentTypeEnum.NOTDEFINED IfcCableFittingTypeEnum = enum_namespace() -connector = getattr(IfcCableFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcCableFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcCableFittingTypeEnum, 'EXIT', INDETERMINATE) -fanout = getattr(IfcCableFittingTypeEnum, 'FANOUT', INDETERMINATE) -junction = getattr(IfcCableFittingTypeEnum, 'JUNCTION', INDETERMINATE) -transition = getattr(IfcCableFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +connector = IfcCableFittingTypeEnum.CONNECTOR +entry = IfcCableFittingTypeEnum.ENTRY +exit = IfcCableFittingTypeEnum.EXIT +fanout = IfcCableFittingTypeEnum.FANOUT +junction = IfcCableFittingTypeEnum.JUNCTION +transition = IfcCableFittingTypeEnum.TRANSITION +userdefined = IfcCableFittingTypeEnum.USERDEFINED +notdefined = IfcCableFittingTypeEnum.NOTDEFINED IfcCableSegmentTypeEnum = enum_namespace() -busbarsegment = getattr(IfcCableSegmentTypeEnum, 'BUSBARSEGMENT', INDETERMINATE) -cablesegment = getattr(IfcCableSegmentTypeEnum, 'CABLESEGMENT', INDETERMINATE) -conductorsegment = getattr(IfcCableSegmentTypeEnum, 'CONDUCTORSEGMENT', INDETERMINATE) -contactwiresegment = getattr(IfcCableSegmentTypeEnum, 'CONTACTWIRESEGMENT', INDETERMINATE) -coresegment = getattr(IfcCableSegmentTypeEnum, 'CORESEGMENT', INDETERMINATE) -fibersegment = getattr(IfcCableSegmentTypeEnum, 'FIBERSEGMENT', INDETERMINATE) -fibertube = getattr(IfcCableSegmentTypeEnum, 'FIBERTUBE', INDETERMINATE) -opticalcablesegment = getattr(IfcCableSegmentTypeEnum, 'OPTICALCABLESEGMENT', INDETERMINATE) -stitchwire = getattr(IfcCableSegmentTypeEnum, 'STITCHWIRE', INDETERMINATE) -wirepairsegment = getattr(IfcCableSegmentTypeEnum, 'WIREPAIRSEGMENT', INDETERMINATE) -userdefined = getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +busbarsegment = IfcCableSegmentTypeEnum.BUSBARSEGMENT +cablesegment = IfcCableSegmentTypeEnum.CABLESEGMENT +conductorsegment = IfcCableSegmentTypeEnum.CONDUCTORSEGMENT +contactwiresegment = IfcCableSegmentTypeEnum.CONTACTWIRESEGMENT +coresegment = IfcCableSegmentTypeEnum.CORESEGMENT +fibersegment = IfcCableSegmentTypeEnum.FIBERSEGMENT +fibertube = IfcCableSegmentTypeEnum.FIBERTUBE +opticalcablesegment = IfcCableSegmentTypeEnum.OPTICALCABLESEGMENT +stitchwire = IfcCableSegmentTypeEnum.STITCHWIRE +wirepairsegment = IfcCableSegmentTypeEnum.WIREPAIRSEGMENT +userdefined = IfcCableSegmentTypeEnum.USERDEFINED +notdefined = IfcCableSegmentTypeEnum.NOTDEFINED IfcCaissonFoundationTypeEnum = enum_namespace() -caisson = getattr(IfcCaissonFoundationTypeEnum, 'CAISSON', INDETERMINATE) -well = getattr(IfcCaissonFoundationTypeEnum, 'WELL', INDETERMINATE) -userdefined = getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCaissonFoundationTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson = IfcCaissonFoundationTypeEnum.CAISSON +well = IfcCaissonFoundationTypeEnum.WELL +userdefined = IfcCaissonFoundationTypeEnum.USERDEFINED +notdefined = IfcCaissonFoundationTypeEnum.NOTDEFINED IfcChangeActionEnum = enum_namespace() -added = getattr(IfcChangeActionEnum, 'ADDED', INDETERMINATE) -deleted = getattr(IfcChangeActionEnum, 'DELETED', INDETERMINATE) -modified = getattr(IfcChangeActionEnum, 'MODIFIED', INDETERMINATE) -nochange = getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE) -notdefined = getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) +added = IfcChangeActionEnum.ADDED +deleted = IfcChangeActionEnum.DELETED +modified = IfcChangeActionEnum.MODIFIED +nochange = IfcChangeActionEnum.NOCHANGE +notdefined = IfcChangeActionEnum.NOTDEFINED IfcChillerTypeEnum = enum_namespace() -aircooled = getattr(IfcChillerTypeEnum, 'AIRCOOLED', INDETERMINATE) -heatrecovery = getattr(IfcChillerTypeEnum, 'HEATRECOVERY', INDETERMINATE) -watercooled = getattr(IfcChillerTypeEnum, 'WATERCOOLED', INDETERMINATE) -userdefined = getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcChillerTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcChillerTypeEnum.AIRCOOLED +heatrecovery = IfcChillerTypeEnum.HEATRECOVERY +watercooled = IfcChillerTypeEnum.WATERCOOLED +userdefined = IfcChillerTypeEnum.USERDEFINED +notdefined = IfcChillerTypeEnum.NOTDEFINED IfcChimneyTypeEnum = enum_namespace() -userdefined = getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcChimneyTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcChimneyTypeEnum.USERDEFINED +notdefined = IfcChimneyTypeEnum.NOTDEFINED IfcCoilTypeEnum = enum_namespace() -dxcoolingcoil = getattr(IfcCoilTypeEnum, 'DXCOOLINGCOIL', INDETERMINATE) -electricheatingcoil = getattr(IfcCoilTypeEnum, 'ELECTRICHEATINGCOIL', INDETERMINATE) -gasheatingcoil = getattr(IfcCoilTypeEnum, 'GASHEATINGCOIL', INDETERMINATE) -hydroniccoil = getattr(IfcCoilTypeEnum, 'HYDRONICCOIL', INDETERMINATE) -steamheatingcoil = getattr(IfcCoilTypeEnum, 'STEAMHEATINGCOIL', INDETERMINATE) -watercoolingcoil = getattr(IfcCoilTypeEnum, 'WATERCOOLINGCOIL', INDETERMINATE) -waterheatingcoil = getattr(IfcCoilTypeEnum, 'WATERHEATINGCOIL', INDETERMINATE) -userdefined = getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dxcoolingcoil = IfcCoilTypeEnum.DXCOOLINGCOIL +electricheatingcoil = IfcCoilTypeEnum.ELECTRICHEATINGCOIL +gasheatingcoil = IfcCoilTypeEnum.GASHEATINGCOIL +hydroniccoil = IfcCoilTypeEnum.HYDRONICCOIL +steamheatingcoil = IfcCoilTypeEnum.STEAMHEATINGCOIL +watercoolingcoil = IfcCoilTypeEnum.WATERCOOLINGCOIL +waterheatingcoil = IfcCoilTypeEnum.WATERHEATINGCOIL +userdefined = IfcCoilTypeEnum.USERDEFINED +notdefined = IfcCoilTypeEnum.NOTDEFINED IfcColumnTypeEnum = enum_namespace() -column = getattr(IfcColumnTypeEnum, 'COLUMN', INDETERMINATE) -pierstem = getattr(IfcColumnTypeEnum, 'PIERSTEM', INDETERMINATE) -pierstem_segment = getattr(IfcColumnTypeEnum, 'PIERSTEM_SEGMENT', INDETERMINATE) -pilaster = getattr(IfcColumnTypeEnum, 'PILASTER', INDETERMINATE) -standcolumn = getattr(IfcColumnTypeEnum, 'STANDCOLUMN', INDETERMINATE) -userdefined = getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcColumnTypeEnum, 'NOTDEFINED', INDETERMINATE) +column = IfcColumnTypeEnum.COLUMN +pierstem = IfcColumnTypeEnum.PIERSTEM +pierstem_segment = IfcColumnTypeEnum.PIERSTEM_SEGMENT +pilaster = IfcColumnTypeEnum.PILASTER +standcolumn = IfcColumnTypeEnum.STANDCOLUMN +userdefined = IfcColumnTypeEnum.USERDEFINED +notdefined = IfcColumnTypeEnum.NOTDEFINED IfcCommunicationsApplianceTypeEnum = enum_namespace() -antenna = getattr(IfcCommunicationsApplianceTypeEnum, 'ANTENNA', INDETERMINATE) -automaton = getattr(IfcCommunicationsApplianceTypeEnum, 'AUTOMATON', INDETERMINATE) -computer = getattr(IfcCommunicationsApplianceTypeEnum, 'COMPUTER', INDETERMINATE) -fax = getattr(IfcCommunicationsApplianceTypeEnum, 'FAX', INDETERMINATE) -gateway = getattr(IfcCommunicationsApplianceTypeEnum, 'GATEWAY', INDETERMINATE) -intelligentperipheral = getattr(IfcCommunicationsApplianceTypeEnum, 'INTELLIGENTPERIPHERAL', INDETERMINATE) -ipnetworkequipment = getattr(IfcCommunicationsApplianceTypeEnum, 'IPNETWORKEQUIPMENT', INDETERMINATE) -linesideelectronicunit = getattr(IfcCommunicationsApplianceTypeEnum, 'LINESIDEELECTRONICUNIT', INDETERMINATE) -modem = getattr(IfcCommunicationsApplianceTypeEnum, 'MODEM', INDETERMINATE) -networkappliance = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKAPPLIANCE', INDETERMINATE) -networkbridge = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKBRIDGE', INDETERMINATE) -networkhub = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKHUB', INDETERMINATE) -opticallineterminal = getattr(IfcCommunicationsApplianceTypeEnum, 'OPTICALLINETERMINAL', INDETERMINATE) -opticalnetworkunit = getattr(IfcCommunicationsApplianceTypeEnum, 'OPTICALNETWORKUNIT', INDETERMINATE) -printer = getattr(IfcCommunicationsApplianceTypeEnum, 'PRINTER', INDETERMINATE) -radioblockcenter = getattr(IfcCommunicationsApplianceTypeEnum, 'RADIOBLOCKCENTER', INDETERMINATE) -repeater = getattr(IfcCommunicationsApplianceTypeEnum, 'REPEATER', INDETERMINATE) -router = getattr(IfcCommunicationsApplianceTypeEnum, 'ROUTER', INDETERMINATE) -scanner = getattr(IfcCommunicationsApplianceTypeEnum, 'SCANNER', INDETERMINATE) -telecommand = getattr(IfcCommunicationsApplianceTypeEnum, 'TELECOMMAND', INDETERMINATE) -telephonyexchange = getattr(IfcCommunicationsApplianceTypeEnum, 'TELEPHONYEXCHANGE', INDETERMINATE) -transitioncomponent = getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSITIONCOMPONENT', INDETERMINATE) -transponder = getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPONDER', INDETERMINATE) -transportequipment = getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPORTEQUIPMENT', INDETERMINATE) -userdefined = getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +antenna = IfcCommunicationsApplianceTypeEnum.ANTENNA +automaton = IfcCommunicationsApplianceTypeEnum.AUTOMATON +computer = IfcCommunicationsApplianceTypeEnum.COMPUTER +fax = IfcCommunicationsApplianceTypeEnum.FAX +gateway = IfcCommunicationsApplianceTypeEnum.GATEWAY +intelligentperipheral = IfcCommunicationsApplianceTypeEnum.INTELLIGENTPERIPHERAL +ipnetworkequipment = IfcCommunicationsApplianceTypeEnum.IPNETWORKEQUIPMENT +linesideelectronicunit = IfcCommunicationsApplianceTypeEnum.LINESIDEELECTRONICUNIT +modem = IfcCommunicationsApplianceTypeEnum.MODEM +networkappliance = IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE +networkbridge = IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE +networkhub = IfcCommunicationsApplianceTypeEnum.NETWORKHUB +opticallineterminal = IfcCommunicationsApplianceTypeEnum.OPTICALLINETERMINAL +opticalnetworkunit = IfcCommunicationsApplianceTypeEnum.OPTICALNETWORKUNIT +printer = IfcCommunicationsApplianceTypeEnum.PRINTER +radioblockcenter = IfcCommunicationsApplianceTypeEnum.RADIOBLOCKCENTER +repeater = IfcCommunicationsApplianceTypeEnum.REPEATER +router = IfcCommunicationsApplianceTypeEnum.ROUTER +scanner = IfcCommunicationsApplianceTypeEnum.SCANNER +telecommand = IfcCommunicationsApplianceTypeEnum.TELECOMMAND +telephonyexchange = IfcCommunicationsApplianceTypeEnum.TELEPHONYEXCHANGE +transitioncomponent = IfcCommunicationsApplianceTypeEnum.TRANSITIONCOMPONENT +transponder = IfcCommunicationsApplianceTypeEnum.TRANSPONDER +transportequipment = IfcCommunicationsApplianceTypeEnum.TRANSPORTEQUIPMENT +userdefined = IfcCommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcCommunicationsApplianceTypeEnum.NOTDEFINED IfcComplexPropertyTemplateTypeEnum = enum_namespace() -p_complex = getattr(IfcComplexPropertyTemplateTypeEnum, 'P_COMPLEX', INDETERMINATE) -q_complex = getattr(IfcComplexPropertyTemplateTypeEnum, 'Q_COMPLEX', INDETERMINATE) +p_complex = IfcComplexPropertyTemplateTypeEnum.P_COMPLEX +q_complex = IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX IfcCompressorTypeEnum = enum_namespace() -booster = getattr(IfcCompressorTypeEnum, 'BOOSTER', INDETERMINATE) -dynamic = getattr(IfcCompressorTypeEnum, 'DYNAMIC', INDETERMINATE) -hermetic = getattr(IfcCompressorTypeEnum, 'HERMETIC', INDETERMINATE) -opentype = getattr(IfcCompressorTypeEnum, 'OPENTYPE', INDETERMINATE) -reciprocating = getattr(IfcCompressorTypeEnum, 'RECIPROCATING', INDETERMINATE) -rollingpiston = getattr(IfcCompressorTypeEnum, 'ROLLINGPISTON', INDETERMINATE) -rotary = getattr(IfcCompressorTypeEnum, 'ROTARY', INDETERMINATE) -rotaryvane = getattr(IfcCompressorTypeEnum, 'ROTARYVANE', INDETERMINATE) -scroll = getattr(IfcCompressorTypeEnum, 'SCROLL', INDETERMINATE) -semihermetic = getattr(IfcCompressorTypeEnum, 'SEMIHERMETIC', INDETERMINATE) -singlescrew = getattr(IfcCompressorTypeEnum, 'SINGLESCREW', INDETERMINATE) -singlestage = getattr(IfcCompressorTypeEnum, 'SINGLESTAGE', INDETERMINATE) -trochoidal = getattr(IfcCompressorTypeEnum, 'TROCHOIDAL', INDETERMINATE) -twinscrew = getattr(IfcCompressorTypeEnum, 'TWINSCREW', INDETERMINATE) -weldedshellhermetic = getattr(IfcCompressorTypeEnum, 'WELDEDSHELLHERMETIC', INDETERMINATE) -userdefined = getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCompressorTypeEnum, 'NOTDEFINED', INDETERMINATE) +booster = IfcCompressorTypeEnum.BOOSTER +dynamic = IfcCompressorTypeEnum.DYNAMIC +hermetic = IfcCompressorTypeEnum.HERMETIC +opentype = IfcCompressorTypeEnum.OPENTYPE +reciprocating = IfcCompressorTypeEnum.RECIPROCATING +rollingpiston = IfcCompressorTypeEnum.ROLLINGPISTON +rotary = IfcCompressorTypeEnum.ROTARY +rotaryvane = IfcCompressorTypeEnum.ROTARYVANE +scroll = IfcCompressorTypeEnum.SCROLL +semihermetic = IfcCompressorTypeEnum.SEMIHERMETIC +singlescrew = IfcCompressorTypeEnum.SINGLESCREW +singlestage = IfcCompressorTypeEnum.SINGLESTAGE +trochoidal = IfcCompressorTypeEnum.TROCHOIDAL +twinscrew = IfcCompressorTypeEnum.TWINSCREW +weldedshellhermetic = IfcCompressorTypeEnum.WELDEDSHELLHERMETIC +userdefined = IfcCompressorTypeEnum.USERDEFINED +notdefined = IfcCompressorTypeEnum.NOTDEFINED IfcCondenserTypeEnum = enum_namespace() -aircooled = getattr(IfcCondenserTypeEnum, 'AIRCOOLED', INDETERMINATE) -evaporativecooled = getattr(IfcCondenserTypeEnum, 'EVAPORATIVECOOLED', INDETERMINATE) -watercooled = getattr(IfcCondenserTypeEnum, 'WATERCOOLED', INDETERMINATE) -watercooledbrazedplate = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDBRAZEDPLATE', INDETERMINATE) -watercooledshellcoil = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLCOIL', INDETERMINATE) -watercooledshelltube = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLTUBE', INDETERMINATE) -watercooledtubeintube = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDTUBEINTUBE', INDETERMINATE) -userdefined = getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCondenserTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcCondenserTypeEnum.AIRCOOLED +evaporativecooled = IfcCondenserTypeEnum.EVAPORATIVECOOLED +watercooled = IfcCondenserTypeEnum.WATERCOOLED +watercooledbrazedplate = IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE +watercooledshellcoil = IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL +watercooledshelltube = IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE +watercooledtubeintube = IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE +userdefined = IfcCondenserTypeEnum.USERDEFINED +notdefined = IfcCondenserTypeEnum.NOTDEFINED IfcConnectionTypeEnum = enum_namespace() -atend = getattr(IfcConnectionTypeEnum, 'ATEND', INDETERMINATE) -atpath = getattr(IfcConnectionTypeEnum, 'ATPATH', INDETERMINATE) -atstart = getattr(IfcConnectionTypeEnum, 'ATSTART', INDETERMINATE) -notdefined = getattr(IfcConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +atend = IfcConnectionTypeEnum.ATEND +atpath = IfcConnectionTypeEnum.ATPATH +atstart = IfcConnectionTypeEnum.ATSTART +notdefined = IfcConnectionTypeEnum.NOTDEFINED IfcConstraintEnum = enum_namespace() -advisory = getattr(IfcConstraintEnum, 'ADVISORY', INDETERMINATE) -hard = getattr(IfcConstraintEnum, 'HARD', INDETERMINATE) -soft = getattr(IfcConstraintEnum, 'SOFT', INDETERMINATE) -userdefined = getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstraintEnum, 'NOTDEFINED', INDETERMINATE) +advisory = IfcConstraintEnum.ADVISORY +hard = IfcConstraintEnum.HARD +soft = IfcConstraintEnum.SOFT +userdefined = IfcConstraintEnum.USERDEFINED +notdefined = IfcConstraintEnum.NOTDEFINED IfcConstructionEquipmentResourceTypeEnum = enum_namespace() -demolishing = getattr(IfcConstructionEquipmentResourceTypeEnum, 'DEMOLISHING', INDETERMINATE) -earthmoving = getattr(IfcConstructionEquipmentResourceTypeEnum, 'EARTHMOVING', INDETERMINATE) -erecting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'ERECTING', INDETERMINATE) -heating = getattr(IfcConstructionEquipmentResourceTypeEnum, 'HEATING', INDETERMINATE) -lighting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'LIGHTING', INDETERMINATE) -paving = getattr(IfcConstructionEquipmentResourceTypeEnum, 'PAVING', INDETERMINATE) -pumping = getattr(IfcConstructionEquipmentResourceTypeEnum, 'PUMPING', INDETERMINATE) -transporting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'TRANSPORTING', INDETERMINATE) -userdefined = getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstructionEquipmentResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +demolishing = IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING +earthmoving = IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING +erecting = IfcConstructionEquipmentResourceTypeEnum.ERECTING +heating = IfcConstructionEquipmentResourceTypeEnum.HEATING +lighting = IfcConstructionEquipmentResourceTypeEnum.LIGHTING +paving = IfcConstructionEquipmentResourceTypeEnum.PAVING +pumping = IfcConstructionEquipmentResourceTypeEnum.PUMPING +transporting = IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING +userdefined = IfcConstructionEquipmentResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED IfcConstructionMaterialResourceTypeEnum = enum_namespace() -aggregates = getattr(IfcConstructionMaterialResourceTypeEnum, 'AGGREGATES', INDETERMINATE) -concrete = getattr(IfcConstructionMaterialResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = getattr(IfcConstructionMaterialResourceTypeEnum, 'DRYWALL', INDETERMINATE) -fuel = getattr(IfcConstructionMaterialResourceTypeEnum, 'FUEL', INDETERMINATE) -gypsum = getattr(IfcConstructionMaterialResourceTypeEnum, 'GYPSUM', INDETERMINATE) -masonry = getattr(IfcConstructionMaterialResourceTypeEnum, 'MASONRY', INDETERMINATE) -metal = getattr(IfcConstructionMaterialResourceTypeEnum, 'METAL', INDETERMINATE) -plastic = getattr(IfcConstructionMaterialResourceTypeEnum, 'PLASTIC', INDETERMINATE) -wood = getattr(IfcConstructionMaterialResourceTypeEnum, 'WOOD', INDETERMINATE) -userdefined = getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstructionMaterialResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +aggregates = IfcConstructionMaterialResourceTypeEnum.AGGREGATES +concrete = IfcConstructionMaterialResourceTypeEnum.CONCRETE +drywall = IfcConstructionMaterialResourceTypeEnum.DRYWALL +fuel = IfcConstructionMaterialResourceTypeEnum.FUEL +gypsum = IfcConstructionMaterialResourceTypeEnum.GYPSUM +masonry = IfcConstructionMaterialResourceTypeEnum.MASONRY +metal = IfcConstructionMaterialResourceTypeEnum.METAL +plastic = IfcConstructionMaterialResourceTypeEnum.PLASTIC +wood = IfcConstructionMaterialResourceTypeEnum.WOOD +userdefined = IfcConstructionMaterialResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionMaterialResourceTypeEnum.NOTDEFINED IfcConstructionProductResourceTypeEnum = enum_namespace() -assembly = getattr(IfcConstructionProductResourceTypeEnum, 'ASSEMBLY', INDETERMINATE) -formwork = getattr(IfcConstructionProductResourceTypeEnum, 'FORMWORK', INDETERMINATE) -userdefined = getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstructionProductResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +assembly = IfcConstructionProductResourceTypeEnum.ASSEMBLY +formwork = IfcConstructionProductResourceTypeEnum.FORMWORK +userdefined = IfcConstructionProductResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionProductResourceTypeEnum.NOTDEFINED IfcControllerTypeEnum = enum_namespace() -floating = getattr(IfcControllerTypeEnum, 'FLOATING', INDETERMINATE) -multiposition = getattr(IfcControllerTypeEnum, 'MULTIPOSITION', INDETERMINATE) -programmable = getattr(IfcControllerTypeEnum, 'PROGRAMMABLE', INDETERMINATE) -proportional = getattr(IfcControllerTypeEnum, 'PROPORTIONAL', INDETERMINATE) -twoposition = getattr(IfcControllerTypeEnum, 'TWOPOSITION', INDETERMINATE) -userdefined = getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcControllerTypeEnum, 'NOTDEFINED', INDETERMINATE) +floating = IfcControllerTypeEnum.FLOATING +multiposition = IfcControllerTypeEnum.MULTIPOSITION +programmable = IfcControllerTypeEnum.PROGRAMMABLE +proportional = IfcControllerTypeEnum.PROPORTIONAL +twoposition = IfcControllerTypeEnum.TWOPOSITION +userdefined = IfcControllerTypeEnum.USERDEFINED +notdefined = IfcControllerTypeEnum.NOTDEFINED IfcConveyorSegmentTypeEnum = enum_namespace() -beltconveyor = getattr(IfcConveyorSegmentTypeEnum, 'BELTCONVEYOR', INDETERMINATE) -bucketconveyor = getattr(IfcConveyorSegmentTypeEnum, 'BUCKETCONVEYOR', INDETERMINATE) -chuteconveyor = getattr(IfcConveyorSegmentTypeEnum, 'CHUTECONVEYOR', INDETERMINATE) -screwconveyor = getattr(IfcConveyorSegmentTypeEnum, 'SCREWCONVEYOR', INDETERMINATE) -userdefined = getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConveyorSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltconveyor = IfcConveyorSegmentTypeEnum.BELTCONVEYOR +bucketconveyor = IfcConveyorSegmentTypeEnum.BUCKETCONVEYOR +chuteconveyor = IfcConveyorSegmentTypeEnum.CHUTECONVEYOR +screwconveyor = IfcConveyorSegmentTypeEnum.SCREWCONVEYOR +userdefined = IfcConveyorSegmentTypeEnum.USERDEFINED +notdefined = IfcConveyorSegmentTypeEnum.NOTDEFINED IfcCooledBeamTypeEnum = enum_namespace() -active = getattr(IfcCooledBeamTypeEnum, 'ACTIVE', INDETERMINATE) -passive = getattr(IfcCooledBeamTypeEnum, 'PASSIVE', INDETERMINATE) -userdefined = getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCooledBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +active = IfcCooledBeamTypeEnum.ACTIVE +passive = IfcCooledBeamTypeEnum.PASSIVE +userdefined = IfcCooledBeamTypeEnum.USERDEFINED +notdefined = IfcCooledBeamTypeEnum.NOTDEFINED IfcCoolingTowerTypeEnum = enum_namespace() -mechanicalforceddraft = getattr(IfcCoolingTowerTypeEnum, 'MECHANICALFORCEDDRAFT', INDETERMINATE) -mechanicalinduceddraft = getattr(IfcCoolingTowerTypeEnum, 'MECHANICALINDUCEDDRAFT', INDETERMINATE) -naturaldraft = getattr(IfcCoolingTowerTypeEnum, 'NATURALDRAFT', INDETERMINATE) -userdefined = getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoolingTowerTypeEnum, 'NOTDEFINED', INDETERMINATE) +mechanicalforceddraft = IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT +mechanicalinduceddraft = IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT +naturaldraft = IfcCoolingTowerTypeEnum.NATURALDRAFT +userdefined = IfcCoolingTowerTypeEnum.USERDEFINED +notdefined = IfcCoolingTowerTypeEnum.NOTDEFINED IfcCostItemTypeEnum = enum_namespace() -userdefined = getattr(IfcCostItemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCostItemTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCostItemTypeEnum.USERDEFINED +notdefined = IfcCostItemTypeEnum.NOTDEFINED IfcCostScheduleTypeEnum = enum_namespace() -budget = getattr(IfcCostScheduleTypeEnum, 'BUDGET', INDETERMINATE) -costplan = getattr(IfcCostScheduleTypeEnum, 'COSTPLAN', INDETERMINATE) -estimate = getattr(IfcCostScheduleTypeEnum, 'ESTIMATE', INDETERMINATE) -pricedbillofquantities = getattr(IfcCostScheduleTypeEnum, 'PRICEDBILLOFQUANTITIES', INDETERMINATE) -scheduleofrates = getattr(IfcCostScheduleTypeEnum, 'SCHEDULEOFRATES', INDETERMINATE) -tender = getattr(IfcCostScheduleTypeEnum, 'TENDER', INDETERMINATE) -unpricedbillofquantities = getattr(IfcCostScheduleTypeEnum, 'UNPRICEDBILLOFQUANTITIES', INDETERMINATE) -userdefined = getattr(IfcCostScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCostScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +budget = IfcCostScheduleTypeEnum.BUDGET +costplan = IfcCostScheduleTypeEnum.COSTPLAN +estimate = IfcCostScheduleTypeEnum.ESTIMATE +pricedbillofquantities = IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES +scheduleofrates = IfcCostScheduleTypeEnum.SCHEDULEOFRATES +tender = IfcCostScheduleTypeEnum.TENDER +unpricedbillofquantities = IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES +userdefined = IfcCostScheduleTypeEnum.USERDEFINED +notdefined = IfcCostScheduleTypeEnum.NOTDEFINED IfcCourseTypeEnum = enum_namespace() -armour = getattr(IfcCourseTypeEnum, 'ARMOUR', INDETERMINATE) -ballastbed = getattr(IfcCourseTypeEnum, 'BALLASTBED', INDETERMINATE) -core = getattr(IfcCourseTypeEnum, 'CORE', INDETERMINATE) -filter = getattr(IfcCourseTypeEnum, 'FILTER', INDETERMINATE) -pavement = getattr(IfcCourseTypeEnum, 'PAVEMENT', INDETERMINATE) -protection = getattr(IfcCourseTypeEnum, 'PROTECTION', INDETERMINATE) -userdefined = getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCourseTypeEnum, 'NOTDEFINED', INDETERMINATE) +armour = IfcCourseTypeEnum.ARMOUR +ballastbed = IfcCourseTypeEnum.BALLASTBED +core = IfcCourseTypeEnum.CORE +filter = IfcCourseTypeEnum.FILTER +pavement = IfcCourseTypeEnum.PAVEMENT +protection = IfcCourseTypeEnum.PROTECTION +userdefined = IfcCourseTypeEnum.USERDEFINED +notdefined = IfcCourseTypeEnum.NOTDEFINED IfcCoveringTypeEnum = enum_namespace() -ceiling = getattr(IfcCoveringTypeEnum, 'CEILING', INDETERMINATE) -cladding = getattr(IfcCoveringTypeEnum, 'CLADDING', INDETERMINATE) -coping = getattr(IfcCoveringTypeEnum, 'COPING', INDETERMINATE) -flooring = getattr(IfcCoveringTypeEnum, 'FLOORING', INDETERMINATE) -insulation = getattr(IfcCoveringTypeEnum, 'INSULATION', INDETERMINATE) -membrane = getattr(IfcCoveringTypeEnum, 'MEMBRANE', INDETERMINATE) -molding = getattr(IfcCoveringTypeEnum, 'MOLDING', INDETERMINATE) -roofing = getattr(IfcCoveringTypeEnum, 'ROOFING', INDETERMINATE) -skirtingboard = getattr(IfcCoveringTypeEnum, 'SKIRTINGBOARD', INDETERMINATE) -sleeving = getattr(IfcCoveringTypeEnum, 'SLEEVING', INDETERMINATE) -topping = getattr(IfcCoveringTypeEnum, 'TOPPING', INDETERMINATE) -wrapping = getattr(IfcCoveringTypeEnum, 'WRAPPING', INDETERMINATE) -userdefined = getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoveringTypeEnum, 'NOTDEFINED', INDETERMINATE) +ceiling = IfcCoveringTypeEnum.CEILING +cladding = IfcCoveringTypeEnum.CLADDING +coping = IfcCoveringTypeEnum.COPING +flooring = IfcCoveringTypeEnum.FLOORING +insulation = IfcCoveringTypeEnum.INSULATION +membrane = IfcCoveringTypeEnum.MEMBRANE +molding = IfcCoveringTypeEnum.MOLDING +roofing = IfcCoveringTypeEnum.ROOFING +skirtingboard = IfcCoveringTypeEnum.SKIRTINGBOARD +sleeving = IfcCoveringTypeEnum.SLEEVING +topping = IfcCoveringTypeEnum.TOPPING +wrapping = IfcCoveringTypeEnum.WRAPPING +userdefined = IfcCoveringTypeEnum.USERDEFINED +notdefined = IfcCoveringTypeEnum.NOTDEFINED IfcCrewResourceTypeEnum = enum_namespace() -office = getattr(IfcCrewResourceTypeEnum, 'OFFICE', INDETERMINATE) -site = getattr(IfcCrewResourceTypeEnum, 'SITE', INDETERMINATE) -userdefined = getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCrewResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +office = IfcCrewResourceTypeEnum.OFFICE +site = IfcCrewResourceTypeEnum.SITE +userdefined = IfcCrewResourceTypeEnum.USERDEFINED +notdefined = IfcCrewResourceTypeEnum.NOTDEFINED IfcCurtainWallTypeEnum = enum_namespace() -userdefined = getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCurtainWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCurtainWallTypeEnum.USERDEFINED +notdefined = IfcCurtainWallTypeEnum.NOTDEFINED IfcCurveInterpolationEnum = enum_namespace() -linear = getattr(IfcCurveInterpolationEnum, 'LINEAR', INDETERMINATE) -log_linear = getattr(IfcCurveInterpolationEnum, 'LOG_LINEAR', INDETERMINATE) -log_log = getattr(IfcCurveInterpolationEnum, 'LOG_LOG', INDETERMINATE) -notdefined = getattr(IfcCurveInterpolationEnum, 'NOTDEFINED', INDETERMINATE) +linear = IfcCurveInterpolationEnum.LINEAR +log_linear = IfcCurveInterpolationEnum.LOG_LINEAR +log_log = IfcCurveInterpolationEnum.LOG_LOG +notdefined = IfcCurveInterpolationEnum.NOTDEFINED IfcDamperTypeEnum = enum_namespace() -backdraftdamper = getattr(IfcDamperTypeEnum, 'BACKDRAFTDAMPER', INDETERMINATE) -balancingdamper = getattr(IfcDamperTypeEnum, 'BALANCINGDAMPER', INDETERMINATE) -blastdamper = getattr(IfcDamperTypeEnum, 'BLASTDAMPER', INDETERMINATE) -controldamper = getattr(IfcDamperTypeEnum, 'CONTROLDAMPER', INDETERMINATE) -firedamper = getattr(IfcDamperTypeEnum, 'FIREDAMPER', INDETERMINATE) -firesmokedamper = getattr(IfcDamperTypeEnum, 'FIRESMOKEDAMPER', INDETERMINATE) -fumehoodexhaust = getattr(IfcDamperTypeEnum, 'FUMEHOODEXHAUST', INDETERMINATE) -gravitydamper = getattr(IfcDamperTypeEnum, 'GRAVITYDAMPER', INDETERMINATE) -gravityreliefdamper = getattr(IfcDamperTypeEnum, 'GRAVITYRELIEFDAMPER', INDETERMINATE) -reliefdamper = getattr(IfcDamperTypeEnum, 'RELIEFDAMPER', INDETERMINATE) -smokedamper = getattr(IfcDamperTypeEnum, 'SMOKEDAMPER', INDETERMINATE) -userdefined = getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +backdraftdamper = IfcDamperTypeEnum.BACKDRAFTDAMPER +balancingdamper = IfcDamperTypeEnum.BALANCINGDAMPER +blastdamper = IfcDamperTypeEnum.BLASTDAMPER +controldamper = IfcDamperTypeEnum.CONTROLDAMPER +firedamper = IfcDamperTypeEnum.FIREDAMPER +firesmokedamper = IfcDamperTypeEnum.FIRESMOKEDAMPER +fumehoodexhaust = IfcDamperTypeEnum.FUMEHOODEXHAUST +gravitydamper = IfcDamperTypeEnum.GRAVITYDAMPER +gravityreliefdamper = IfcDamperTypeEnum.GRAVITYRELIEFDAMPER +reliefdamper = IfcDamperTypeEnum.RELIEFDAMPER +smokedamper = IfcDamperTypeEnum.SMOKEDAMPER +userdefined = IfcDamperTypeEnum.USERDEFINED +notdefined = IfcDamperTypeEnum.NOTDEFINED IfcDataOriginEnum = enum_namespace() -measured = getattr(IfcDataOriginEnum, 'MEASURED', INDETERMINATE) -predicted = getattr(IfcDataOriginEnum, 'PREDICTED', INDETERMINATE) -simulated = getattr(IfcDataOriginEnum, 'SIMULATED', INDETERMINATE) -userdefined = getattr(IfcDataOriginEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDataOriginEnum, 'NOTDEFINED', INDETERMINATE) +measured = IfcDataOriginEnum.MEASURED +predicted = IfcDataOriginEnum.PREDICTED +simulated = IfcDataOriginEnum.SIMULATED +userdefined = IfcDataOriginEnum.USERDEFINED +notdefined = IfcDataOriginEnum.NOTDEFINED IfcDerivedUnitEnum = enum_namespace() -accelerationunit = getattr(IfcDerivedUnitEnum, 'ACCELERATIONUNIT', INDETERMINATE) -angularvelocityunit = getattr(IfcDerivedUnitEnum, 'ANGULARVELOCITYUNIT', INDETERMINATE) -areadensityunit = getattr(IfcDerivedUnitEnum, 'AREADENSITYUNIT', INDETERMINATE) -compoundplaneangleunit = getattr(IfcDerivedUnitEnum, 'COMPOUNDPLANEANGLEUNIT', INDETERMINATE) -curvatureunit = getattr(IfcDerivedUnitEnum, 'CURVATUREUNIT', INDETERMINATE) -dynamicviscosityunit = getattr(IfcDerivedUnitEnum, 'DYNAMICVISCOSITYUNIT', INDETERMINATE) -heatfluxdensityunit = getattr(IfcDerivedUnitEnum, 'HEATFLUXDENSITYUNIT', INDETERMINATE) -heatingvalueunit = getattr(IfcDerivedUnitEnum, 'HEATINGVALUEUNIT', INDETERMINATE) -integercountrateunit = getattr(IfcDerivedUnitEnum, 'INTEGERCOUNTRATEUNIT', INDETERMINATE) -ionconcentrationunit = getattr(IfcDerivedUnitEnum, 'IONCONCENTRATIONUNIT', INDETERMINATE) -isothermalmoisturecapacityunit = getattr(IfcDerivedUnitEnum, 'ISOTHERMALMOISTURECAPACITYUNIT', INDETERMINATE) -kinematicviscosityunit = getattr(IfcDerivedUnitEnum, 'KINEMATICVISCOSITYUNIT', INDETERMINATE) -linearforceunit = getattr(IfcDerivedUnitEnum, 'LINEARFORCEUNIT', INDETERMINATE) -linearmomentunit = getattr(IfcDerivedUnitEnum, 'LINEARMOMENTUNIT', INDETERMINATE) -linearstiffnessunit = getattr(IfcDerivedUnitEnum, 'LINEARSTIFFNESSUNIT', INDETERMINATE) -linearvelocityunit = getattr(IfcDerivedUnitEnum, 'LINEARVELOCITYUNIT', INDETERMINATE) -luminousintensitydistributionunit = getattr(IfcDerivedUnitEnum, 'LUMINOUSINTENSITYDISTRIBUTIONUNIT', INDETERMINATE) -massdensityunit = getattr(IfcDerivedUnitEnum, 'MASSDENSITYUNIT', INDETERMINATE) -massflowrateunit = getattr(IfcDerivedUnitEnum, 'MASSFLOWRATEUNIT', INDETERMINATE) -massperlengthunit = getattr(IfcDerivedUnitEnum, 'MASSPERLENGTHUNIT', INDETERMINATE) -modulusofelasticityunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFELASTICITYUNIT', INDETERMINATE) -modulusoflinearsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFLINEARSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofrotationalsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFROTATIONALSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFSUBGRADEREACTIONUNIT', INDETERMINATE) -moisturediffusivityunit = getattr(IfcDerivedUnitEnum, 'MOISTUREDIFFUSIVITYUNIT', INDETERMINATE) -molecularweightunit = getattr(IfcDerivedUnitEnum, 'MOLECULARWEIGHTUNIT', INDETERMINATE) -momentofinertiaunit = getattr(IfcDerivedUnitEnum, 'MOMENTOFINERTIAUNIT', INDETERMINATE) -phunit = getattr(IfcDerivedUnitEnum, 'PHUNIT', INDETERMINATE) -planarforceunit = getattr(IfcDerivedUnitEnum, 'PLANARFORCEUNIT', INDETERMINATE) -rotationalfrequencyunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALFREQUENCYUNIT', INDETERMINATE) -rotationalmassunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALMASSUNIT', INDETERMINATE) -rotationalstiffnessunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALSTIFFNESSUNIT', INDETERMINATE) -sectionareaintegralunit = getattr(IfcDerivedUnitEnum, 'SECTIONAREAINTEGRALUNIT', INDETERMINATE) -sectionmodulusunit = getattr(IfcDerivedUnitEnum, 'SECTIONMODULUSUNIT', INDETERMINATE) -shearmodulusunit = getattr(IfcDerivedUnitEnum, 'SHEARMODULUSUNIT', INDETERMINATE) -soundpowerlevelunit = getattr(IfcDerivedUnitEnum, 'SOUNDPOWERLEVELUNIT', INDETERMINATE) -soundpowerunit = getattr(IfcDerivedUnitEnum, 'SOUNDPOWERUNIT', INDETERMINATE) -soundpressurelevelunit = getattr(IfcDerivedUnitEnum, 'SOUNDPRESSURELEVELUNIT', INDETERMINATE) -soundpressureunit = getattr(IfcDerivedUnitEnum, 'SOUNDPRESSUREUNIT', INDETERMINATE) -specificheatcapacityunit = getattr(IfcDerivedUnitEnum, 'SPECIFICHEATCAPACITYUNIT', INDETERMINATE) -temperaturegradientunit = getattr(IfcDerivedUnitEnum, 'TEMPERATUREGRADIENTUNIT', INDETERMINATE) -temperaturerateofchangeunit = getattr(IfcDerivedUnitEnum, 'TEMPERATURERATEOFCHANGEUNIT', INDETERMINATE) -thermaladmittanceunit = getattr(IfcDerivedUnitEnum, 'THERMALADMITTANCEUNIT', INDETERMINATE) -thermalconductanceunit = getattr(IfcDerivedUnitEnum, 'THERMALCONDUCTANCEUNIT', INDETERMINATE) -thermalexpansioncoefficientunit = getattr(IfcDerivedUnitEnum, 'THERMALEXPANSIONCOEFFICIENTUNIT', INDETERMINATE) -thermalresistanceunit = getattr(IfcDerivedUnitEnum, 'THERMALRESISTANCEUNIT', INDETERMINATE) -thermaltransmittanceunit = getattr(IfcDerivedUnitEnum, 'THERMALTRANSMITTANCEUNIT', INDETERMINATE) -torqueunit = getattr(IfcDerivedUnitEnum, 'TORQUEUNIT', INDETERMINATE) -vaporpermeabilityunit = getattr(IfcDerivedUnitEnum, 'VAPORPERMEABILITYUNIT', INDETERMINATE) -volumetricflowrateunit = getattr(IfcDerivedUnitEnum, 'VOLUMETRICFLOWRATEUNIT', INDETERMINATE) -warpingconstantunit = getattr(IfcDerivedUnitEnum, 'WARPINGCONSTANTUNIT', INDETERMINATE) -warpingmomentunit = getattr(IfcDerivedUnitEnum, 'WARPINGMOMENTUNIT', INDETERMINATE) -userdefined = getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) +accelerationunit = IfcDerivedUnitEnum.ACCELERATIONUNIT +angularvelocityunit = IfcDerivedUnitEnum.ANGULARVELOCITYUNIT +areadensityunit = IfcDerivedUnitEnum.AREADENSITYUNIT +compoundplaneangleunit = IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT +curvatureunit = IfcDerivedUnitEnum.CURVATUREUNIT +dynamicviscosityunit = IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT +heatfluxdensityunit = IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT +heatingvalueunit = IfcDerivedUnitEnum.HEATINGVALUEUNIT +integercountrateunit = IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT +ionconcentrationunit = IfcDerivedUnitEnum.IONCONCENTRATIONUNIT +isothermalmoisturecapacityunit = IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT +kinematicviscosityunit = IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT +linearforceunit = IfcDerivedUnitEnum.LINEARFORCEUNIT +linearmomentunit = IfcDerivedUnitEnum.LINEARMOMENTUNIT +linearstiffnessunit = IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT +linearvelocityunit = IfcDerivedUnitEnum.LINEARVELOCITYUNIT +luminousintensitydistributionunit = IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT +massdensityunit = IfcDerivedUnitEnum.MASSDENSITYUNIT +massflowrateunit = IfcDerivedUnitEnum.MASSFLOWRATEUNIT +massperlengthunit = IfcDerivedUnitEnum.MASSPERLENGTHUNIT +modulusofelasticityunit = IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT +modulusoflinearsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT +modulusofrotationalsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT +modulusofsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT +moisturediffusivityunit = IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT +molecularweightunit = IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT +momentofinertiaunit = IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT +phunit = IfcDerivedUnitEnum.PHUNIT +planarforceunit = IfcDerivedUnitEnum.PLANARFORCEUNIT +rotationalfrequencyunit = IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT +rotationalmassunit = IfcDerivedUnitEnum.ROTATIONALMASSUNIT +rotationalstiffnessunit = IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT +sectionareaintegralunit = IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT +sectionmodulusunit = IfcDerivedUnitEnum.SECTIONMODULUSUNIT +shearmodulusunit = IfcDerivedUnitEnum.SHEARMODULUSUNIT +soundpowerlevelunit = IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT +soundpowerunit = IfcDerivedUnitEnum.SOUNDPOWERUNIT +soundpressurelevelunit = IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT +soundpressureunit = IfcDerivedUnitEnum.SOUNDPRESSUREUNIT +specificheatcapacityunit = IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT +temperaturegradientunit = IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT +temperaturerateofchangeunit = IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT +thermaladmittanceunit = IfcDerivedUnitEnum.THERMALADMITTANCEUNIT +thermalconductanceunit = IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT +thermalexpansioncoefficientunit = IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT +thermalresistanceunit = IfcDerivedUnitEnum.THERMALRESISTANCEUNIT +thermaltransmittanceunit = IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT +torqueunit = IfcDerivedUnitEnum.TORQUEUNIT +vaporpermeabilityunit = IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT +volumetricflowrateunit = IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT +warpingconstantunit = IfcDerivedUnitEnum.WARPINGCONSTANTUNIT +warpingmomentunit = IfcDerivedUnitEnum.WARPINGMOMENTUNIT +userdefined = IfcDerivedUnitEnum.USERDEFINED IfcDirectionSenseEnum = enum_namespace() -negative = getattr(IfcDirectionSenseEnum, 'NEGATIVE', INDETERMINATE) -positive = getattr(IfcDirectionSenseEnum, 'POSITIVE', INDETERMINATE) +negative = IfcDirectionSenseEnum.NEGATIVE +positive = IfcDirectionSenseEnum.POSITIVE IfcDiscreteAccessoryTypeEnum = enum_namespace() -anchorplate = getattr(IfcDiscreteAccessoryTypeEnum, 'ANCHORPLATE', INDETERMINATE) -birdprotection = getattr(IfcDiscreteAccessoryTypeEnum, 'BIRDPROTECTION', INDETERMINATE) -bracket = getattr(IfcDiscreteAccessoryTypeEnum, 'BRACKET', INDETERMINATE) -cablearranger = getattr(IfcDiscreteAccessoryTypeEnum, 'CABLEARRANGER', INDETERMINATE) -elastic_cushion = getattr(IfcDiscreteAccessoryTypeEnum, 'ELASTIC_CUSHION', INDETERMINATE) -expansion_joint_device = getattr(IfcDiscreteAccessoryTypeEnum, 'EXPANSION_JOINT_DEVICE', INDETERMINATE) -filler = getattr(IfcDiscreteAccessoryTypeEnum, 'FILLER', INDETERMINATE) -flashing = getattr(IfcDiscreteAccessoryTypeEnum, 'FLASHING', INDETERMINATE) -insulator = getattr(IfcDiscreteAccessoryTypeEnum, 'INSULATOR', INDETERMINATE) -lock = getattr(IfcDiscreteAccessoryTypeEnum, 'LOCK', INDETERMINATE) -panel_strengthening = getattr(IfcDiscreteAccessoryTypeEnum, 'PANEL_STRENGTHENING', INDETERMINATE) -pointmachinemountingdevice = getattr(IfcDiscreteAccessoryTypeEnum, 'POINTMACHINEMOUNTINGDEVICE', INDETERMINATE) -point_machine_locking_device = getattr(IfcDiscreteAccessoryTypeEnum, 'POINT_MACHINE_LOCKING_DEVICE', INDETERMINATE) -railbrace = getattr(IfcDiscreteAccessoryTypeEnum, 'RAILBRACE', INDETERMINATE) -railpad = getattr(IfcDiscreteAccessoryTypeEnum, 'RAILPAD', INDETERMINATE) -rail_lubrication = getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_LUBRICATION', INDETERMINATE) -rail_mechanical_equipment = getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT', INDETERMINATE) -shoe = getattr(IfcDiscreteAccessoryTypeEnum, 'SHOE', INDETERMINATE) -slidingchair = getattr(IfcDiscreteAccessoryTypeEnum, 'SLIDINGCHAIR', INDETERMINATE) -soundabsorption = getattr(IfcDiscreteAccessoryTypeEnum, 'SOUNDABSORPTION', INDETERMINATE) -tensioningequipment = getattr(IfcDiscreteAccessoryTypeEnum, 'TENSIONINGEQUIPMENT', INDETERMINATE) -userdefined = getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDiscreteAccessoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorplate = IfcDiscreteAccessoryTypeEnum.ANCHORPLATE +birdprotection = IfcDiscreteAccessoryTypeEnum.BIRDPROTECTION +bracket = IfcDiscreteAccessoryTypeEnum.BRACKET +cablearranger = IfcDiscreteAccessoryTypeEnum.CABLEARRANGER +elastic_cushion = IfcDiscreteAccessoryTypeEnum.ELASTIC_CUSHION +expansion_joint_device = IfcDiscreteAccessoryTypeEnum.EXPANSION_JOINT_DEVICE +filler = IfcDiscreteAccessoryTypeEnum.FILLER +flashing = IfcDiscreteAccessoryTypeEnum.FLASHING +insulator = IfcDiscreteAccessoryTypeEnum.INSULATOR +lock = IfcDiscreteAccessoryTypeEnum.LOCK +panel_strengthening = IfcDiscreteAccessoryTypeEnum.PANEL_STRENGTHENING +pointmachinemountingdevice = IfcDiscreteAccessoryTypeEnum.POINTMACHINEMOUNTINGDEVICE +point_machine_locking_device = IfcDiscreteAccessoryTypeEnum.POINT_MACHINE_LOCKING_DEVICE +railbrace = IfcDiscreteAccessoryTypeEnum.RAILBRACE +railpad = IfcDiscreteAccessoryTypeEnum.RAILPAD +rail_lubrication = IfcDiscreteAccessoryTypeEnum.RAIL_LUBRICATION +rail_mechanical_equipment = IfcDiscreteAccessoryTypeEnum.RAIL_MECHANICAL_EQUIPMENT +shoe = IfcDiscreteAccessoryTypeEnum.SHOE +slidingchair = IfcDiscreteAccessoryTypeEnum.SLIDINGCHAIR +soundabsorption = IfcDiscreteAccessoryTypeEnum.SOUNDABSORPTION +tensioningequipment = IfcDiscreteAccessoryTypeEnum.TENSIONINGEQUIPMENT +userdefined = IfcDiscreteAccessoryTypeEnum.USERDEFINED +notdefined = IfcDiscreteAccessoryTypeEnum.NOTDEFINED IfcDistributionBoardTypeEnum = enum_namespace() -consumerunit = getattr(IfcDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -dispatchingboard = getattr(IfcDistributionBoardTypeEnum, 'DISPATCHINGBOARD', INDETERMINATE) -distributionboard = getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -distributionframe = getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONFRAME', INDETERMINATE) -motorcontrolcentre = getattr(IfcDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = getattr(IfcDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcDistributionBoardTypeEnum.CONSUMERUNIT +dispatchingboard = IfcDistributionBoardTypeEnum.DISPATCHINGBOARD +distributionboard = IfcDistributionBoardTypeEnum.DISTRIBUTIONBOARD +distributionframe = IfcDistributionBoardTypeEnum.DISTRIBUTIONFRAME +motorcontrolcentre = IfcDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcDistributionBoardTypeEnum.NOTDEFINED IfcDistributionChamberElementTypeEnum = enum_namespace() -formedduct = getattr(IfcDistributionChamberElementTypeEnum, 'FORMEDDUCT', INDETERMINATE) -inspectionchamber = getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONCHAMBER', INDETERMINATE) -inspectionpit = getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONPIT', INDETERMINATE) -manhole = getattr(IfcDistributionChamberElementTypeEnum, 'MANHOLE', INDETERMINATE) -meterchamber = getattr(IfcDistributionChamberElementTypeEnum, 'METERCHAMBER', INDETERMINATE) -sump = getattr(IfcDistributionChamberElementTypeEnum, 'SUMP', INDETERMINATE) -trench = getattr(IfcDistributionChamberElementTypeEnum, 'TRENCH', INDETERMINATE) -valvechamber = getattr(IfcDistributionChamberElementTypeEnum, 'VALVECHAMBER', INDETERMINATE) -userdefined = getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionChamberElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +formedduct = IfcDistributionChamberElementTypeEnum.FORMEDDUCT +inspectionchamber = IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER +inspectionpit = IfcDistributionChamberElementTypeEnum.INSPECTIONPIT +manhole = IfcDistributionChamberElementTypeEnum.MANHOLE +meterchamber = IfcDistributionChamberElementTypeEnum.METERCHAMBER +sump = IfcDistributionChamberElementTypeEnum.SUMP +trench = IfcDistributionChamberElementTypeEnum.TRENCH +valvechamber = IfcDistributionChamberElementTypeEnum.VALVECHAMBER +userdefined = IfcDistributionChamberElementTypeEnum.USERDEFINED +notdefined = IfcDistributionChamberElementTypeEnum.NOTDEFINED IfcDistributionPortTypeEnum = enum_namespace() -cable = getattr(IfcDistributionPortTypeEnum, 'CABLE', INDETERMINATE) -cablecarrier = getattr(IfcDistributionPortTypeEnum, 'CABLECARRIER', INDETERMINATE) -duct = getattr(IfcDistributionPortTypeEnum, 'DUCT', INDETERMINATE) -pipe = getattr(IfcDistributionPortTypeEnum, 'PIPE', INDETERMINATE) -wireless = getattr(IfcDistributionPortTypeEnum, 'WIRELESS', INDETERMINATE) -userdefined = getattr(IfcDistributionPortTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionPortTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcDistributionPortTypeEnum.CABLE +cablecarrier = IfcDistributionPortTypeEnum.CABLECARRIER +duct = IfcDistributionPortTypeEnum.DUCT +pipe = IfcDistributionPortTypeEnum.PIPE +wireless = IfcDistributionPortTypeEnum.WIRELESS +userdefined = IfcDistributionPortTypeEnum.USERDEFINED +notdefined = IfcDistributionPortTypeEnum.NOTDEFINED IfcDistributionSystemEnum = enum_namespace() -airconditioning = getattr(IfcDistributionSystemEnum, 'AIRCONDITIONING', INDETERMINATE) -audiovisual = getattr(IfcDistributionSystemEnum, 'AUDIOVISUAL', INDETERMINATE) -catenary_system = getattr(IfcDistributionSystemEnum, 'CATENARY_SYSTEM', INDETERMINATE) -chemical = getattr(IfcDistributionSystemEnum, 'CHEMICAL', INDETERMINATE) -chilledwater = getattr(IfcDistributionSystemEnum, 'CHILLEDWATER', INDETERMINATE) -communication = getattr(IfcDistributionSystemEnum, 'COMMUNICATION', INDETERMINATE) -compressedair = getattr(IfcDistributionSystemEnum, 'COMPRESSEDAIR', INDETERMINATE) -condenserwater = getattr(IfcDistributionSystemEnum, 'CONDENSERWATER', INDETERMINATE) -control = getattr(IfcDistributionSystemEnum, 'CONTROL', INDETERMINATE) -conveying = getattr(IfcDistributionSystemEnum, 'CONVEYING', INDETERMINATE) -data = getattr(IfcDistributionSystemEnum, 'DATA', INDETERMINATE) -disposal = getattr(IfcDistributionSystemEnum, 'DISPOSAL', INDETERMINATE) -domesticcoldwater = getattr(IfcDistributionSystemEnum, 'DOMESTICCOLDWATER', INDETERMINATE) -domestichotwater = getattr(IfcDistributionSystemEnum, 'DOMESTICHOTWATER', INDETERMINATE) -drainage = getattr(IfcDistributionSystemEnum, 'DRAINAGE', INDETERMINATE) -earthing = getattr(IfcDistributionSystemEnum, 'EARTHING', INDETERMINATE) -electrical = getattr(IfcDistributionSystemEnum, 'ELECTRICAL', INDETERMINATE) -electroacoustic = getattr(IfcDistributionSystemEnum, 'ELECTROACOUSTIC', INDETERMINATE) -exhaust = getattr(IfcDistributionSystemEnum, 'EXHAUST', INDETERMINATE) -fireprotection = getattr(IfcDistributionSystemEnum, 'FIREPROTECTION', INDETERMINATE) -fixedtransmissionnetwork = getattr(IfcDistributionSystemEnum, 'FIXEDTRANSMISSIONNETWORK', INDETERMINATE) -fuel = getattr(IfcDistributionSystemEnum, 'FUEL', INDETERMINATE) -gas = getattr(IfcDistributionSystemEnum, 'GAS', INDETERMINATE) -hazardous = getattr(IfcDistributionSystemEnum, 'HAZARDOUS', INDETERMINATE) -heating = getattr(IfcDistributionSystemEnum, 'HEATING', INDETERMINATE) -lighting = getattr(IfcDistributionSystemEnum, 'LIGHTING', INDETERMINATE) -lightningprotection = getattr(IfcDistributionSystemEnum, 'LIGHTNINGPROTECTION', INDETERMINATE) -mobilenetwork = getattr(IfcDistributionSystemEnum, 'MOBILENETWORK', INDETERMINATE) -monitoringsystem = getattr(IfcDistributionSystemEnum, 'MONITORINGSYSTEM', INDETERMINATE) -municipalsolidwaste = getattr(IfcDistributionSystemEnum, 'MUNICIPALSOLIDWASTE', INDETERMINATE) -oil = getattr(IfcDistributionSystemEnum, 'OIL', INDETERMINATE) -operational = getattr(IfcDistributionSystemEnum, 'OPERATIONAL', INDETERMINATE) -operationaltelephonysystem = getattr(IfcDistributionSystemEnum, 'OPERATIONALTELEPHONYSYSTEM', INDETERMINATE) -overhead_contactline_system = getattr(IfcDistributionSystemEnum, 'OVERHEAD_CONTACTLINE_SYSTEM', INDETERMINATE) -powergeneration = getattr(IfcDistributionSystemEnum, 'POWERGENERATION', INDETERMINATE) -rainwater = getattr(IfcDistributionSystemEnum, 'RAINWATER', INDETERMINATE) -refrigeration = getattr(IfcDistributionSystemEnum, 'REFRIGERATION', INDETERMINATE) -return_circuit = getattr(IfcDistributionSystemEnum, 'RETURN_CIRCUIT', INDETERMINATE) -security = getattr(IfcDistributionSystemEnum, 'SECURITY', INDETERMINATE) -sewage = getattr(IfcDistributionSystemEnum, 'SEWAGE', INDETERMINATE) -signal = getattr(IfcDistributionSystemEnum, 'SIGNAL', INDETERMINATE) -stormwater = getattr(IfcDistributionSystemEnum, 'STORMWATER', INDETERMINATE) -telephone = getattr(IfcDistributionSystemEnum, 'TELEPHONE', INDETERMINATE) -tv = getattr(IfcDistributionSystemEnum, 'TV', INDETERMINATE) -vacuum = getattr(IfcDistributionSystemEnum, 'VACUUM', INDETERMINATE) -vent = getattr(IfcDistributionSystemEnum, 'VENT', INDETERMINATE) -ventilation = getattr(IfcDistributionSystemEnum, 'VENTILATION', INDETERMINATE) -wastewater = getattr(IfcDistributionSystemEnum, 'WASTEWATER', INDETERMINATE) -watersupply = getattr(IfcDistributionSystemEnum, 'WATERSUPPLY', INDETERMINATE) -userdefined = getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionSystemEnum, 'NOTDEFINED', INDETERMINATE) +airconditioning = IfcDistributionSystemEnum.AIRCONDITIONING +audiovisual = IfcDistributionSystemEnum.AUDIOVISUAL +catenary_system = IfcDistributionSystemEnum.CATENARY_SYSTEM +chemical = IfcDistributionSystemEnum.CHEMICAL +chilledwater = IfcDistributionSystemEnum.CHILLEDWATER +communication = IfcDistributionSystemEnum.COMMUNICATION +compressedair = IfcDistributionSystemEnum.COMPRESSEDAIR +condenserwater = IfcDistributionSystemEnum.CONDENSERWATER +control = IfcDistributionSystemEnum.CONTROL +conveying = IfcDistributionSystemEnum.CONVEYING +data = IfcDistributionSystemEnum.DATA +disposal = IfcDistributionSystemEnum.DISPOSAL +domesticcoldwater = IfcDistributionSystemEnum.DOMESTICCOLDWATER +domestichotwater = IfcDistributionSystemEnum.DOMESTICHOTWATER +drainage = IfcDistributionSystemEnum.DRAINAGE +earthing = IfcDistributionSystemEnum.EARTHING +electrical = IfcDistributionSystemEnum.ELECTRICAL +electroacoustic = IfcDistributionSystemEnum.ELECTROACOUSTIC +exhaust = IfcDistributionSystemEnum.EXHAUST +fireprotection = IfcDistributionSystemEnum.FIREPROTECTION +fixedtransmissionnetwork = IfcDistributionSystemEnum.FIXEDTRANSMISSIONNETWORK +fuel = IfcDistributionSystemEnum.FUEL +gas = IfcDistributionSystemEnum.GAS +hazardous = IfcDistributionSystemEnum.HAZARDOUS +heating = IfcDistributionSystemEnum.HEATING +lighting = IfcDistributionSystemEnum.LIGHTING +lightningprotection = IfcDistributionSystemEnum.LIGHTNINGPROTECTION +mobilenetwork = IfcDistributionSystemEnum.MOBILENETWORK +monitoringsystem = IfcDistributionSystemEnum.MONITORINGSYSTEM +municipalsolidwaste = IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE +oil = IfcDistributionSystemEnum.OIL +operational = IfcDistributionSystemEnum.OPERATIONAL +operationaltelephonysystem = IfcDistributionSystemEnum.OPERATIONALTELEPHONYSYSTEM +overhead_contactline_system = IfcDistributionSystemEnum.OVERHEAD_CONTACTLINE_SYSTEM +powergeneration = IfcDistributionSystemEnum.POWERGENERATION +rainwater = IfcDistributionSystemEnum.RAINWATER +refrigeration = IfcDistributionSystemEnum.REFRIGERATION +return_circuit = IfcDistributionSystemEnum.RETURN_CIRCUIT +security = IfcDistributionSystemEnum.SECURITY +sewage = IfcDistributionSystemEnum.SEWAGE +signal = IfcDistributionSystemEnum.SIGNAL +stormwater = IfcDistributionSystemEnum.STORMWATER +telephone = IfcDistributionSystemEnum.TELEPHONE +tv = IfcDistributionSystemEnum.TV +vacuum = IfcDistributionSystemEnum.VACUUM +vent = IfcDistributionSystemEnum.VENT +ventilation = IfcDistributionSystemEnum.VENTILATION +wastewater = IfcDistributionSystemEnum.WASTEWATER +watersupply = IfcDistributionSystemEnum.WATERSUPPLY +userdefined = IfcDistributionSystemEnum.USERDEFINED +notdefined = IfcDistributionSystemEnum.NOTDEFINED IfcDocumentConfidentialityEnum = enum_namespace() -confidential = getattr(IfcDocumentConfidentialityEnum, 'CONFIDENTIAL', INDETERMINATE) -personal = getattr(IfcDocumentConfidentialityEnum, 'PERSONAL', INDETERMINATE) -public = getattr(IfcDocumentConfidentialityEnum, 'PUBLIC', INDETERMINATE) -restricted = getattr(IfcDocumentConfidentialityEnum, 'RESTRICTED', INDETERMINATE) -userdefined = getattr(IfcDocumentConfidentialityEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDocumentConfidentialityEnum, 'NOTDEFINED', INDETERMINATE) +confidential = IfcDocumentConfidentialityEnum.CONFIDENTIAL +personal = IfcDocumentConfidentialityEnum.PERSONAL +public = IfcDocumentConfidentialityEnum.PUBLIC +restricted = IfcDocumentConfidentialityEnum.RESTRICTED +userdefined = IfcDocumentConfidentialityEnum.USERDEFINED +notdefined = IfcDocumentConfidentialityEnum.NOTDEFINED IfcDocumentStatusEnum = enum_namespace() -draft = getattr(IfcDocumentStatusEnum, 'DRAFT', INDETERMINATE) -final = getattr(IfcDocumentStatusEnum, 'FINAL', INDETERMINATE) -finaldraft = getattr(IfcDocumentStatusEnum, 'FINALDRAFT', INDETERMINATE) -revision = getattr(IfcDocumentStatusEnum, 'REVISION', INDETERMINATE) -notdefined = getattr(IfcDocumentStatusEnum, 'NOTDEFINED', INDETERMINATE) +draft = IfcDocumentStatusEnum.DRAFT +final = IfcDocumentStatusEnum.FINAL +finaldraft = IfcDocumentStatusEnum.FINALDRAFT +revision = IfcDocumentStatusEnum.REVISION +notdefined = IfcDocumentStatusEnum.NOTDEFINED IfcDoorPanelOperationEnum = enum_namespace() -double_acting = getattr(IfcDoorPanelOperationEnum, 'DOUBLE_ACTING', INDETERMINATE) -fixedpanel = getattr(IfcDoorPanelOperationEnum, 'FIXEDPANEL', INDETERMINATE) -folding = getattr(IfcDoorPanelOperationEnum, 'FOLDING', INDETERMINATE) -revolving = getattr(IfcDoorPanelOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = getattr(IfcDoorPanelOperationEnum, 'ROLLINGUP', INDETERMINATE) -sliding = getattr(IfcDoorPanelOperationEnum, 'SLIDING', INDETERMINATE) -swinging = getattr(IfcDoorPanelOperationEnum, 'SWINGING', INDETERMINATE) -userdefined = getattr(IfcDoorPanelOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +double_acting = IfcDoorPanelOperationEnum.DOUBLE_ACTING +fixedpanel = IfcDoorPanelOperationEnum.FIXEDPANEL +folding = IfcDoorPanelOperationEnum.FOLDING +revolving = IfcDoorPanelOperationEnum.REVOLVING +rollingup = IfcDoorPanelOperationEnum.ROLLINGUP +sliding = IfcDoorPanelOperationEnum.SLIDING +swinging = IfcDoorPanelOperationEnum.SWINGING +userdefined = IfcDoorPanelOperationEnum.USERDEFINED +notdefined = IfcDoorPanelOperationEnum.NOTDEFINED IfcDoorPanelPositionEnum = enum_namespace() -left = getattr(IfcDoorPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = getattr(IfcDoorPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = getattr(IfcDoorPanelPositionEnum, 'RIGHT', INDETERMINATE) -notdefined = getattr(IfcDoorPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcDoorPanelPositionEnum.LEFT +middle = IfcDoorPanelPositionEnum.MIDDLE +right = IfcDoorPanelPositionEnum.RIGHT +notdefined = IfcDoorPanelPositionEnum.NOTDEFINED IfcDoorStyleConstructionEnum = enum_namespace() -aluminium = getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -aluminium_plastic = getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_PLASTIC', INDETERMINATE) -aluminium_wood = getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -high_grade_steel = getattr(IfcDoorStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -plastic = getattr(IfcDoorStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -steel = getattr(IfcDoorStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = getattr(IfcDoorStyleConstructionEnum, 'WOOD', INDETERMINATE) -userdefined = getattr(IfcDoorStyleConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcDoorStyleConstructionEnum.ALUMINIUM +aluminium_plastic = IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC +aluminium_wood = IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD +high_grade_steel = IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL +plastic = IfcDoorStyleConstructionEnum.PLASTIC +steel = IfcDoorStyleConstructionEnum.STEEL +wood = IfcDoorStyleConstructionEnum.WOOD +userdefined = IfcDoorStyleConstructionEnum.USERDEFINED +notdefined = IfcDoorStyleConstructionEnum.NOTDEFINED IfcDoorStyleOperationEnum = enum_namespace() -double_door_double_swing = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -double_door_folding = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -double_door_single_swing = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_door_sliding = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -double_swing_left = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -folding_to_left = getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -revolving = getattr(IfcDoorStyleOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = getattr(IfcDoorStyleOperationEnum, 'ROLLINGUP', INDETERMINATE) -single_swing_left = getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -sliding_to_left = getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -userdefined = getattr(IfcDoorStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +double_door_double_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +double_door_folding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING +double_door_single_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_door_sliding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING +double_swing_left = IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT +folding_to_left = IfcDoorStyleOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT +revolving = IfcDoorStyleOperationEnum.REVOLVING +rollingup = IfcDoorStyleOperationEnum.ROLLINGUP +single_swing_left = IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT +sliding_to_left = IfcDoorStyleOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT +userdefined = IfcDoorStyleOperationEnum.USERDEFINED +notdefined = IfcDoorStyleOperationEnum.NOTDEFINED IfcDoorTypeEnum = enum_namespace() -boom_barrier = getattr(IfcDoorTypeEnum, 'BOOM_BARRIER', INDETERMINATE) -door = getattr(IfcDoorTypeEnum, 'DOOR', INDETERMINATE) -gate = getattr(IfcDoorTypeEnum, 'GATE', INDETERMINATE) -trapdoor = getattr(IfcDoorTypeEnum, 'TRAPDOOR', INDETERMINATE) -turnstile = getattr(IfcDoorTypeEnum, 'TURNSTILE', INDETERMINATE) -userdefined = getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorTypeEnum, 'NOTDEFINED', INDETERMINATE) +boom_barrier = IfcDoorTypeEnum.BOOM_BARRIER +door = IfcDoorTypeEnum.DOOR +gate = IfcDoorTypeEnum.GATE +trapdoor = IfcDoorTypeEnum.TRAPDOOR +turnstile = IfcDoorTypeEnum.TURNSTILE +userdefined = IfcDoorTypeEnum.USERDEFINED +notdefined = IfcDoorTypeEnum.NOTDEFINED IfcDoorTypeOperationEnum = enum_namespace() -double_panel_double_swing = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_DOUBLE_SWING', INDETERMINATE) -double_panel_folding = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_FOLDING', INDETERMINATE) -double_panel_lifting_vertical = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_LIFTING_VERTICAL', INDETERMINATE) -double_panel_single_swing = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_SINGLE_SWING', INDETERMINATE) -double_panel_single_swing_opposite_left = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_panel_single_swing_opposite_right = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_panel_sliding = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_SLIDING', INDETERMINATE) -double_swing_left = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -folding_to_left = getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -lifting_horizontal = getattr(IfcDoorTypeOperationEnum, 'LIFTING_HORIZONTAL', INDETERMINATE) -lifting_vertical_left = getattr(IfcDoorTypeOperationEnum, 'LIFTING_VERTICAL_LEFT', INDETERMINATE) -lifting_vertical_right = getattr(IfcDoorTypeOperationEnum, 'LIFTING_VERTICAL_RIGHT', INDETERMINATE) -revolving_horizontal = getattr(IfcDoorTypeOperationEnum, 'REVOLVING_HORIZONTAL', INDETERMINATE) -revolving_vertical = getattr(IfcDoorTypeOperationEnum, 'REVOLVING_VERTICAL', INDETERMINATE) -rollingup = getattr(IfcDoorTypeOperationEnum, 'ROLLINGUP', INDETERMINATE) -single_swing_left = getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -sliding_to_left = getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -swing_fixed_left = getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_LEFT', INDETERMINATE) -swing_fixed_right = getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_RIGHT', INDETERMINATE) -userdefined = getattr(IfcDoorTypeOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorTypeOperationEnum, 'NOTDEFINED', INDETERMINATE) +double_panel_double_swing = IfcDoorTypeOperationEnum.DOUBLE_PANEL_DOUBLE_SWING +double_panel_folding = IfcDoorTypeOperationEnum.DOUBLE_PANEL_FOLDING +double_panel_lifting_vertical = IfcDoorTypeOperationEnum.DOUBLE_PANEL_LIFTING_VERTICAL +double_panel_single_swing = IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING +double_panel_single_swing_opposite_left = IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT +double_panel_single_swing_opposite_right = IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT +double_panel_sliding = IfcDoorTypeOperationEnum.DOUBLE_PANEL_SLIDING +double_swing_left = IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT +folding_to_left = IfcDoorTypeOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT +lifting_horizontal = IfcDoorTypeOperationEnum.LIFTING_HORIZONTAL +lifting_vertical_left = IfcDoorTypeOperationEnum.LIFTING_VERTICAL_LEFT +lifting_vertical_right = IfcDoorTypeOperationEnum.LIFTING_VERTICAL_RIGHT +revolving_horizontal = IfcDoorTypeOperationEnum.REVOLVING_HORIZONTAL +revolving_vertical = IfcDoorTypeOperationEnum.REVOLVING_VERTICAL +rollingup = IfcDoorTypeOperationEnum.ROLLINGUP +single_swing_left = IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT +sliding_to_left = IfcDoorTypeOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT +swing_fixed_left = IfcDoorTypeOperationEnum.SWING_FIXED_LEFT +swing_fixed_right = IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT +userdefined = IfcDoorTypeOperationEnum.USERDEFINED +notdefined = IfcDoorTypeOperationEnum.NOTDEFINED IfcDuctFittingTypeEnum = enum_namespace() -bend = getattr(IfcDuctFittingTypeEnum, 'BEND', INDETERMINATE) -connector = getattr(IfcDuctFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcDuctFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcDuctFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcDuctFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = getattr(IfcDuctFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = getattr(IfcDuctFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcDuctFittingTypeEnum.BEND +connector = IfcDuctFittingTypeEnum.CONNECTOR +entry = IfcDuctFittingTypeEnum.ENTRY +exit = IfcDuctFittingTypeEnum.EXIT +junction = IfcDuctFittingTypeEnum.JUNCTION +obstruction = IfcDuctFittingTypeEnum.OBSTRUCTION +transition = IfcDuctFittingTypeEnum.TRANSITION +userdefined = IfcDuctFittingTypeEnum.USERDEFINED +notdefined = IfcDuctFittingTypeEnum.NOTDEFINED IfcDuctSegmentTypeEnum = enum_namespace() -flexiblesegment = getattr(IfcDuctSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -rigidsegment = getattr(IfcDuctSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -userdefined = getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +flexiblesegment = IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT +rigidsegment = IfcDuctSegmentTypeEnum.RIGIDSEGMENT +userdefined = IfcDuctSegmentTypeEnum.USERDEFINED +notdefined = IfcDuctSegmentTypeEnum.NOTDEFINED IfcDuctSilencerTypeEnum = enum_namespace() -flatoval = getattr(IfcDuctSilencerTypeEnum, 'FLATOVAL', INDETERMINATE) -rectangular = getattr(IfcDuctSilencerTypeEnum, 'RECTANGULAR', INDETERMINATE) -round = getattr(IfcDuctSilencerTypeEnum, 'ROUND', INDETERMINATE) -userdefined = getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctSilencerTypeEnum, 'NOTDEFINED', INDETERMINATE) +flatoval = IfcDuctSilencerTypeEnum.FLATOVAL +rectangular = IfcDuctSilencerTypeEnum.RECTANGULAR +round = IfcDuctSilencerTypeEnum.ROUND +userdefined = IfcDuctSilencerTypeEnum.USERDEFINED +notdefined = IfcDuctSilencerTypeEnum.NOTDEFINED IfcEarthworksCutTypeEnum = enum_namespace() -base_excavation = getattr(IfcEarthworksCutTypeEnum, 'BASE_EXCAVATION', INDETERMINATE) -cut = getattr(IfcEarthworksCutTypeEnum, 'CUT', INDETERMINATE) -dredging = getattr(IfcEarthworksCutTypeEnum, 'DREDGING', INDETERMINATE) -excavation = getattr(IfcEarthworksCutTypeEnum, 'EXCAVATION', INDETERMINATE) -overexcavation = getattr(IfcEarthworksCutTypeEnum, 'OVEREXCAVATION', INDETERMINATE) -pavementmilling = getattr(IfcEarthworksCutTypeEnum, 'PAVEMENTMILLING', INDETERMINATE) -stepexcavation = getattr(IfcEarthworksCutTypeEnum, 'STEPEXCAVATION', INDETERMINATE) -topsoilremoval = getattr(IfcEarthworksCutTypeEnum, 'TOPSOILREMOVAL', INDETERMINATE) -trench = getattr(IfcEarthworksCutTypeEnum, 'TRENCH', INDETERMINATE) -userdefined = getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEarthworksCutTypeEnum, 'NOTDEFINED', INDETERMINATE) +base_excavation = IfcEarthworksCutTypeEnum.BASE_EXCAVATION +cut = IfcEarthworksCutTypeEnum.CUT +dredging = IfcEarthworksCutTypeEnum.DREDGING +excavation = IfcEarthworksCutTypeEnum.EXCAVATION +overexcavation = IfcEarthworksCutTypeEnum.OVEREXCAVATION +pavementmilling = IfcEarthworksCutTypeEnum.PAVEMENTMILLING +stepexcavation = IfcEarthworksCutTypeEnum.STEPEXCAVATION +topsoilremoval = IfcEarthworksCutTypeEnum.TOPSOILREMOVAL +trench = IfcEarthworksCutTypeEnum.TRENCH +userdefined = IfcEarthworksCutTypeEnum.USERDEFINED +notdefined = IfcEarthworksCutTypeEnum.NOTDEFINED IfcEarthworksFillTypeEnum = enum_namespace() -backfill = getattr(IfcEarthworksFillTypeEnum, 'BACKFILL', INDETERMINATE) -counterweight = getattr(IfcEarthworksFillTypeEnum, 'COUNTERWEIGHT', INDETERMINATE) -embankment = getattr(IfcEarthworksFillTypeEnum, 'EMBANKMENT', INDETERMINATE) -slopefill = getattr(IfcEarthworksFillTypeEnum, 'SLOPEFILL', INDETERMINATE) -subgrade = getattr(IfcEarthworksFillTypeEnum, 'SUBGRADE', INDETERMINATE) -subgradebed = getattr(IfcEarthworksFillTypeEnum, 'SUBGRADEBED', INDETERMINATE) -transitionsection = getattr(IfcEarthworksFillTypeEnum, 'TRANSITIONSECTION', INDETERMINATE) -userdefined = getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEarthworksFillTypeEnum, 'NOTDEFINED', INDETERMINATE) +backfill = IfcEarthworksFillTypeEnum.BACKFILL +counterweight = IfcEarthworksFillTypeEnum.COUNTERWEIGHT +embankment = IfcEarthworksFillTypeEnum.EMBANKMENT +slopefill = IfcEarthworksFillTypeEnum.SLOPEFILL +subgrade = IfcEarthworksFillTypeEnum.SUBGRADE +subgradebed = IfcEarthworksFillTypeEnum.SUBGRADEBED +transitionsection = IfcEarthworksFillTypeEnum.TRANSITIONSECTION +userdefined = IfcEarthworksFillTypeEnum.USERDEFINED +notdefined = IfcEarthworksFillTypeEnum.NOTDEFINED IfcElectricApplianceTypeEnum = enum_namespace() -dishwasher = getattr(IfcElectricApplianceTypeEnum, 'DISHWASHER', INDETERMINATE) -electriccooker = getattr(IfcElectricApplianceTypeEnum, 'ELECTRICCOOKER', INDETERMINATE) -freestandingelectricheater = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGELECTRICHEATER', INDETERMINATE) -freestandingfan = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGFAN', INDETERMINATE) -freestandingwatercooler = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERCOOLER', INDETERMINATE) -freestandingwaterheater = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERHEATER', INDETERMINATE) -freezer = getattr(IfcElectricApplianceTypeEnum, 'FREEZER', INDETERMINATE) -fridge_freezer = getattr(IfcElectricApplianceTypeEnum, 'FRIDGE_FREEZER', INDETERMINATE) -handdryer = getattr(IfcElectricApplianceTypeEnum, 'HANDDRYER', INDETERMINATE) -kitchenmachine = getattr(IfcElectricApplianceTypeEnum, 'KITCHENMACHINE', INDETERMINATE) -microwave = getattr(IfcElectricApplianceTypeEnum, 'MICROWAVE', INDETERMINATE) -photocopier = getattr(IfcElectricApplianceTypeEnum, 'PHOTOCOPIER', INDETERMINATE) -refrigerator = getattr(IfcElectricApplianceTypeEnum, 'REFRIGERATOR', INDETERMINATE) -tumbledryer = getattr(IfcElectricApplianceTypeEnum, 'TUMBLEDRYER', INDETERMINATE) -vendingmachine = getattr(IfcElectricApplianceTypeEnum, 'VENDINGMACHINE', INDETERMINATE) -washingmachine = getattr(IfcElectricApplianceTypeEnum, 'WASHINGMACHINE', INDETERMINATE) -userdefined = getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dishwasher = IfcElectricApplianceTypeEnum.DISHWASHER +electriccooker = IfcElectricApplianceTypeEnum.ELECTRICCOOKER +freestandingelectricheater = IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER +freestandingfan = IfcElectricApplianceTypeEnum.FREESTANDINGFAN +freestandingwatercooler = IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER +freestandingwaterheater = IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER +freezer = IfcElectricApplianceTypeEnum.FREEZER +fridge_freezer = IfcElectricApplianceTypeEnum.FRIDGE_FREEZER +handdryer = IfcElectricApplianceTypeEnum.HANDDRYER +kitchenmachine = IfcElectricApplianceTypeEnum.KITCHENMACHINE +microwave = IfcElectricApplianceTypeEnum.MICROWAVE +photocopier = IfcElectricApplianceTypeEnum.PHOTOCOPIER +refrigerator = IfcElectricApplianceTypeEnum.REFRIGERATOR +tumbledryer = IfcElectricApplianceTypeEnum.TUMBLEDRYER +vendingmachine = IfcElectricApplianceTypeEnum.VENDINGMACHINE +washingmachine = IfcElectricApplianceTypeEnum.WASHINGMACHINE +userdefined = IfcElectricApplianceTypeEnum.USERDEFINED +notdefined = IfcElectricApplianceTypeEnum.NOTDEFINED IfcElectricDistributionBoardTypeEnum = enum_namespace() -consumerunit = getattr(IfcElectricDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -distributionboard = getattr(IfcElectricDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -motorcontrolcentre = getattr(IfcElectricDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = getattr(IfcElectricDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT +distributionboard = IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD +motorcontrolcentre = IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcElectricDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcElectricDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcElectricDistributionBoardTypeEnum.NOTDEFINED IfcElectricFlowStorageDeviceTypeEnum = enum_namespace() -battery = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'BATTERY', INDETERMINATE) -capacitor = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITOR', INDETERMINATE) -capacitorbank = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITORBANK', INDETERMINATE) -compensator = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'COMPENSATOR', INDETERMINATE) -harmonicfilter = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'HARMONICFILTER', INDETERMINATE) -inductor = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTOR', INDETERMINATE) -inductorbank = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTORBANK', INDETERMINATE) -recharger = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'RECHARGER', INDETERMINATE) -ups = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'UPS', INDETERMINATE) -userdefined = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +battery = IfcElectricFlowStorageDeviceTypeEnum.BATTERY +capacitor = IfcElectricFlowStorageDeviceTypeEnum.CAPACITOR +capacitorbank = IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK +compensator = IfcElectricFlowStorageDeviceTypeEnum.COMPENSATOR +harmonicfilter = IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER +inductor = IfcElectricFlowStorageDeviceTypeEnum.INDUCTOR +inductorbank = IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK +recharger = IfcElectricFlowStorageDeviceTypeEnum.RECHARGER +ups = IfcElectricFlowStorageDeviceTypeEnum.UPS +userdefined = IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED IfcElectricFlowTreatmentDeviceTypeEnum = enum_namespace() -electronicfilter = getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'ELECTRONICFILTER', INDETERMINATE) -userdefined = getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronicfilter = IfcElectricFlowTreatmentDeviceTypeEnum.ELECTRONICFILTER +userdefined = IfcElectricFlowTreatmentDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowTreatmentDeviceTypeEnum.NOTDEFINED IfcElectricGeneratorTypeEnum = enum_namespace() -chp = getattr(IfcElectricGeneratorTypeEnum, 'CHP', INDETERMINATE) -enginegenerator = getattr(IfcElectricGeneratorTypeEnum, 'ENGINEGENERATOR', INDETERMINATE) -standalone = getattr(IfcElectricGeneratorTypeEnum, 'STANDALONE', INDETERMINATE) -userdefined = getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricGeneratorTypeEnum, 'NOTDEFINED', INDETERMINATE) +chp = IfcElectricGeneratorTypeEnum.CHP +enginegenerator = IfcElectricGeneratorTypeEnum.ENGINEGENERATOR +standalone = IfcElectricGeneratorTypeEnum.STANDALONE +userdefined = IfcElectricGeneratorTypeEnum.USERDEFINED +notdefined = IfcElectricGeneratorTypeEnum.NOTDEFINED IfcElectricMotorTypeEnum = enum_namespace() -dc = getattr(IfcElectricMotorTypeEnum, 'DC', INDETERMINATE) -induction = getattr(IfcElectricMotorTypeEnum, 'INDUCTION', INDETERMINATE) -polyphase = getattr(IfcElectricMotorTypeEnum, 'POLYPHASE', INDETERMINATE) -reluctancesynchronous = getattr(IfcElectricMotorTypeEnum, 'RELUCTANCESYNCHRONOUS', INDETERMINATE) -synchronous = getattr(IfcElectricMotorTypeEnum, 'SYNCHRONOUS', INDETERMINATE) -userdefined = getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricMotorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dc = IfcElectricMotorTypeEnum.DC +induction = IfcElectricMotorTypeEnum.INDUCTION +polyphase = IfcElectricMotorTypeEnum.POLYPHASE +reluctancesynchronous = IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS +synchronous = IfcElectricMotorTypeEnum.SYNCHRONOUS +userdefined = IfcElectricMotorTypeEnum.USERDEFINED +notdefined = IfcElectricMotorTypeEnum.NOTDEFINED IfcElectricTimeControlTypeEnum = enum_namespace() -relay = getattr(IfcElectricTimeControlTypeEnum, 'RELAY', INDETERMINATE) -timeclock = getattr(IfcElectricTimeControlTypeEnum, 'TIMECLOCK', INDETERMINATE) -timedelay = getattr(IfcElectricTimeControlTypeEnum, 'TIMEDELAY', INDETERMINATE) -userdefined = getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricTimeControlTypeEnum, 'NOTDEFINED', INDETERMINATE) +relay = IfcElectricTimeControlTypeEnum.RELAY +timeclock = IfcElectricTimeControlTypeEnum.TIMECLOCK +timedelay = IfcElectricTimeControlTypeEnum.TIMEDELAY +userdefined = IfcElectricTimeControlTypeEnum.USERDEFINED +notdefined = IfcElectricTimeControlTypeEnum.NOTDEFINED IfcElementAssemblyTypeEnum = enum_namespace() -abutment = getattr(IfcElementAssemblyTypeEnum, 'ABUTMENT', INDETERMINATE) -accessory_assembly = getattr(IfcElementAssemblyTypeEnum, 'ACCESSORY_ASSEMBLY', INDETERMINATE) -arch = getattr(IfcElementAssemblyTypeEnum, 'ARCH', INDETERMINATE) -beam_grid = getattr(IfcElementAssemblyTypeEnum, 'BEAM_GRID', INDETERMINATE) -braced_frame = getattr(IfcElementAssemblyTypeEnum, 'BRACED_FRAME', INDETERMINATE) -cross_bracing = getattr(IfcElementAssemblyTypeEnum, 'CROSS_BRACING', INDETERMINATE) -deck = getattr(IfcElementAssemblyTypeEnum, 'DECK', INDETERMINATE) -dilatationpanel = getattr(IfcElementAssemblyTypeEnum, 'DILATATIONPANEL', INDETERMINATE) -entranceworks = getattr(IfcElementAssemblyTypeEnum, 'ENTRANCEWORKS', INDETERMINATE) -girder = getattr(IfcElementAssemblyTypeEnum, 'GIRDER', INDETERMINATE) -grid = getattr(IfcElementAssemblyTypeEnum, 'GRID', INDETERMINATE) -mast = getattr(IfcElementAssemblyTypeEnum, 'MAST', INDETERMINATE) -pier = getattr(IfcElementAssemblyTypeEnum, 'PIER', INDETERMINATE) -pylon = getattr(IfcElementAssemblyTypeEnum, 'PYLON', INDETERMINATE) -rail_mechanical_equipment_assembly = getattr(IfcElementAssemblyTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY', INDETERMINATE) -reinforcement_unit = getattr(IfcElementAssemblyTypeEnum, 'REINFORCEMENT_UNIT', INDETERMINATE) -rigid_frame = getattr(IfcElementAssemblyTypeEnum, 'RIGID_FRAME', INDETERMINATE) -shelter = getattr(IfcElementAssemblyTypeEnum, 'SHELTER', INDETERMINATE) -signalassembly = getattr(IfcElementAssemblyTypeEnum, 'SIGNALASSEMBLY', INDETERMINATE) -slab_field = getattr(IfcElementAssemblyTypeEnum, 'SLAB_FIELD', INDETERMINATE) -sumpbuster = getattr(IfcElementAssemblyTypeEnum, 'SUMPBUSTER', INDETERMINATE) -supportingassembly = getattr(IfcElementAssemblyTypeEnum, 'SUPPORTINGASSEMBLY', INDETERMINATE) -suspensionassembly = getattr(IfcElementAssemblyTypeEnum, 'SUSPENSIONASSEMBLY', INDETERMINATE) -trackpanel = getattr(IfcElementAssemblyTypeEnum, 'TRACKPANEL', INDETERMINATE) -traction_switching_assembly = getattr(IfcElementAssemblyTypeEnum, 'TRACTION_SWITCHING_ASSEMBLY', INDETERMINATE) -traffic_calming_device = getattr(IfcElementAssemblyTypeEnum, 'TRAFFIC_CALMING_DEVICE', INDETERMINATE) -truss = getattr(IfcElementAssemblyTypeEnum, 'TRUSS', INDETERMINATE) -turnoutpanel = getattr(IfcElementAssemblyTypeEnum, 'TURNOUTPANEL', INDETERMINATE) -userdefined = getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElementAssemblyTypeEnum, 'NOTDEFINED', INDETERMINATE) +abutment = IfcElementAssemblyTypeEnum.ABUTMENT +accessory_assembly = IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY +arch = IfcElementAssemblyTypeEnum.ARCH +beam_grid = IfcElementAssemblyTypeEnum.BEAM_GRID +braced_frame = IfcElementAssemblyTypeEnum.BRACED_FRAME +cross_bracing = IfcElementAssemblyTypeEnum.CROSS_BRACING +deck = IfcElementAssemblyTypeEnum.DECK +dilatationpanel = IfcElementAssemblyTypeEnum.DILATATIONPANEL +entranceworks = IfcElementAssemblyTypeEnum.ENTRANCEWORKS +girder = IfcElementAssemblyTypeEnum.GIRDER +grid = IfcElementAssemblyTypeEnum.GRID +mast = IfcElementAssemblyTypeEnum.MAST +pier = IfcElementAssemblyTypeEnum.PIER +pylon = IfcElementAssemblyTypeEnum.PYLON +rail_mechanical_equipment_assembly = IfcElementAssemblyTypeEnum.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY +reinforcement_unit = IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT +rigid_frame = IfcElementAssemblyTypeEnum.RIGID_FRAME +shelter = IfcElementAssemblyTypeEnum.SHELTER +signalassembly = IfcElementAssemblyTypeEnum.SIGNALASSEMBLY +slab_field = IfcElementAssemblyTypeEnum.SLAB_FIELD +sumpbuster = IfcElementAssemblyTypeEnum.SUMPBUSTER +supportingassembly = IfcElementAssemblyTypeEnum.SUPPORTINGASSEMBLY +suspensionassembly = IfcElementAssemblyTypeEnum.SUSPENSIONASSEMBLY +trackpanel = IfcElementAssemblyTypeEnum.TRACKPANEL +traction_switching_assembly = IfcElementAssemblyTypeEnum.TRACTION_SWITCHING_ASSEMBLY +traffic_calming_device = IfcElementAssemblyTypeEnum.TRAFFIC_CALMING_DEVICE +truss = IfcElementAssemblyTypeEnum.TRUSS +turnoutpanel = IfcElementAssemblyTypeEnum.TURNOUTPANEL +userdefined = IfcElementAssemblyTypeEnum.USERDEFINED +notdefined = IfcElementAssemblyTypeEnum.NOTDEFINED IfcElementCompositionEnum = enum_namespace() -complex = getattr(IfcElementCompositionEnum, 'COMPLEX', INDETERMINATE) -element = getattr(IfcElementCompositionEnum, 'ELEMENT', INDETERMINATE) -partial = getattr(IfcElementCompositionEnum, 'PARTIAL', INDETERMINATE) +complex = IfcElementCompositionEnum.COMPLEX +element = IfcElementCompositionEnum.ELEMENT +partial = IfcElementCompositionEnum.PARTIAL IfcEngineTypeEnum = enum_namespace() -externalcombustion = getattr(IfcEngineTypeEnum, 'EXTERNALCOMBUSTION', INDETERMINATE) -internalcombustion = getattr(IfcEngineTypeEnum, 'INTERNALCOMBUSTION', INDETERMINATE) -userdefined = getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEngineTypeEnum, 'NOTDEFINED', INDETERMINATE) +externalcombustion = IfcEngineTypeEnum.EXTERNALCOMBUSTION +internalcombustion = IfcEngineTypeEnum.INTERNALCOMBUSTION +userdefined = IfcEngineTypeEnum.USERDEFINED +notdefined = IfcEngineTypeEnum.NOTDEFINED IfcEvaporativeCoolerTypeEnum = enum_namespace() -directevaporativeairwasher = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEAIRWASHER', INDETERMINATE) -directevaporativepackagedrotaryaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER', INDETERMINATE) -directevaporativerandommediaaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER', INDETERMINATE) -directevaporativerigidmediaaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER', INDETERMINATE) -directevaporativeslingerspackagedaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER', INDETERMINATE) -indirectdirectcombination = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTDIRECTCOMBINATION', INDETERMINATE) -indirectevaporativecoolingtowerorcoilcooler = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER', INDETERMINATE) -indirectevaporativepackageaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEPACKAGEAIRCOOLER', INDETERMINATE) -indirectevaporativewetcoil = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEWETCOIL', INDETERMINATE) -userdefined = getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEvaporativeCoolerTypeEnum, 'NOTDEFINED', INDETERMINATE) +directevaporativeairwasher = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER +directevaporativepackagedrotaryaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER +directevaporativerandommediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER +directevaporativerigidmediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER +directevaporativeslingerspackagedaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER +indirectdirectcombination = IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION +indirectevaporativecoolingtowerorcoilcooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER +indirectevaporativepackageaircooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER +indirectevaporativewetcoil = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL +userdefined = IfcEvaporativeCoolerTypeEnum.USERDEFINED +notdefined = IfcEvaporativeCoolerTypeEnum.NOTDEFINED IfcEvaporatorTypeEnum = enum_namespace() -directexpansion = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSION', INDETERMINATE) -directexpansionbrazedplate = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONBRAZEDPLATE', INDETERMINATE) -directexpansionshellandtube = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONSHELLANDTUBE', INDETERMINATE) -directexpansiontubeintube = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONTUBEINTUBE', INDETERMINATE) -floodedshellandtube = getattr(IfcEvaporatorTypeEnum, 'FLOODEDSHELLANDTUBE', INDETERMINATE) -shellandcoil = getattr(IfcEvaporatorTypeEnum, 'SHELLANDCOIL', INDETERMINATE) -userdefined = getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEvaporatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +directexpansion = IfcEvaporatorTypeEnum.DIRECTEXPANSION +directexpansionbrazedplate = IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE +directexpansionshellandtube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE +directexpansiontubeintube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE +floodedshellandtube = IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE +shellandcoil = IfcEvaporatorTypeEnum.SHELLANDCOIL +userdefined = IfcEvaporatorTypeEnum.USERDEFINED +notdefined = IfcEvaporatorTypeEnum.NOTDEFINED IfcEventTriggerTypeEnum = enum_namespace() -eventcomplex = getattr(IfcEventTriggerTypeEnum, 'EVENTCOMPLEX', INDETERMINATE) -eventmessage = getattr(IfcEventTriggerTypeEnum, 'EVENTMESSAGE', INDETERMINATE) -eventrule = getattr(IfcEventTriggerTypeEnum, 'EVENTRULE', INDETERMINATE) -eventtime = getattr(IfcEventTriggerTypeEnum, 'EVENTTIME', INDETERMINATE) -userdefined = getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEventTriggerTypeEnum, 'NOTDEFINED', INDETERMINATE) +eventcomplex = IfcEventTriggerTypeEnum.EVENTCOMPLEX +eventmessage = IfcEventTriggerTypeEnum.EVENTMESSAGE +eventrule = IfcEventTriggerTypeEnum.EVENTRULE +eventtime = IfcEventTriggerTypeEnum.EVENTTIME +userdefined = IfcEventTriggerTypeEnum.USERDEFINED +notdefined = IfcEventTriggerTypeEnum.NOTDEFINED IfcEventTypeEnum = enum_namespace() -endevent = getattr(IfcEventTypeEnum, 'ENDEVENT', INDETERMINATE) -intermediateevent = getattr(IfcEventTypeEnum, 'INTERMEDIATEEVENT', INDETERMINATE) -startevent = getattr(IfcEventTypeEnum, 'STARTEVENT', INDETERMINATE) -userdefined = getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEventTypeEnum, 'NOTDEFINED', INDETERMINATE) +endevent = IfcEventTypeEnum.ENDEVENT +intermediateevent = IfcEventTypeEnum.INTERMEDIATEEVENT +startevent = IfcEventTypeEnum.STARTEVENT +userdefined = IfcEventTypeEnum.USERDEFINED +notdefined = IfcEventTypeEnum.NOTDEFINED IfcExternalSpatialElementTypeEnum = enum_namespace() -external = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL', INDETERMINATE) -external_earth = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_fire = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_FIRE', INDETERMINATE) -external_water = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_WATER', INDETERMINATE) -userdefined = getattr(IfcExternalSpatialElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcExternalSpatialElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcExternalSpatialElementTypeEnum.EXTERNAL +external_earth = IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH +external_fire = IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE +external_water = IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER +userdefined = IfcExternalSpatialElementTypeEnum.USERDEFINED +notdefined = IfcExternalSpatialElementTypeEnum.NOTDEFINED IfcFacilityPartCommonTypeEnum = enum_namespace() -aboveground = getattr(IfcFacilityPartCommonTypeEnum, 'ABOVEGROUND', INDETERMINATE) -belowground = getattr(IfcFacilityPartCommonTypeEnum, 'BELOWGROUND', INDETERMINATE) -junction = getattr(IfcFacilityPartCommonTypeEnum, 'JUNCTION', INDETERMINATE) -levelcrossing = getattr(IfcFacilityPartCommonTypeEnum, 'LEVELCROSSING', INDETERMINATE) -segment = getattr(IfcFacilityPartCommonTypeEnum, 'SEGMENT', INDETERMINATE) -substructure = getattr(IfcFacilityPartCommonTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -superstructure = getattr(IfcFacilityPartCommonTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -terminal = getattr(IfcFacilityPartCommonTypeEnum, 'TERMINAL', INDETERMINATE) -userdefined = getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFacilityPartCommonTypeEnum, 'NOTDEFINED', INDETERMINATE) +aboveground = IfcFacilityPartCommonTypeEnum.ABOVEGROUND +belowground = IfcFacilityPartCommonTypeEnum.BELOWGROUND +junction = IfcFacilityPartCommonTypeEnum.JUNCTION +levelcrossing = IfcFacilityPartCommonTypeEnum.LEVELCROSSING +segment = IfcFacilityPartCommonTypeEnum.SEGMENT +substructure = IfcFacilityPartCommonTypeEnum.SUBSTRUCTURE +superstructure = IfcFacilityPartCommonTypeEnum.SUPERSTRUCTURE +terminal = IfcFacilityPartCommonTypeEnum.TERMINAL +userdefined = IfcFacilityPartCommonTypeEnum.USERDEFINED +notdefined = IfcFacilityPartCommonTypeEnum.NOTDEFINED IfcFacilityUsageEnum = enum_namespace() -lateral = getattr(IfcFacilityUsageEnum, 'LATERAL', INDETERMINATE) -longitudinal = getattr(IfcFacilityUsageEnum, 'LONGITUDINAL', INDETERMINATE) -region = getattr(IfcFacilityUsageEnum, 'REGION', INDETERMINATE) -vertical = getattr(IfcFacilityUsageEnum, 'VERTICAL', INDETERMINATE) -userdefined = getattr(IfcFacilityUsageEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFacilityUsageEnum, 'NOTDEFINED', INDETERMINATE) +lateral = IfcFacilityUsageEnum.LATERAL +longitudinal = IfcFacilityUsageEnum.LONGITUDINAL +region = IfcFacilityUsageEnum.REGION +vertical = IfcFacilityUsageEnum.VERTICAL +userdefined = IfcFacilityUsageEnum.USERDEFINED +notdefined = IfcFacilityUsageEnum.NOTDEFINED IfcFanTypeEnum = enum_namespace() -centrifugalairfoil = getattr(IfcFanTypeEnum, 'CENTRIFUGALAIRFOIL', INDETERMINATE) -centrifugalbackwardinclinedcurved = getattr(IfcFanTypeEnum, 'CENTRIFUGALBACKWARDINCLINEDCURVED', INDETERMINATE) -centrifugalforwardcurved = getattr(IfcFanTypeEnum, 'CENTRIFUGALFORWARDCURVED', INDETERMINATE) -centrifugalradial = getattr(IfcFanTypeEnum, 'CENTRIFUGALRADIAL', INDETERMINATE) -propelloraxial = getattr(IfcFanTypeEnum, 'PROPELLORAXIAL', INDETERMINATE) -tubeaxial = getattr(IfcFanTypeEnum, 'TUBEAXIAL', INDETERMINATE) -vaneaxial = getattr(IfcFanTypeEnum, 'VANEAXIAL', INDETERMINATE) -userdefined = getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFanTypeEnum, 'NOTDEFINED', INDETERMINATE) +centrifugalairfoil = IfcFanTypeEnum.CENTRIFUGALAIRFOIL +centrifugalbackwardinclinedcurved = IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED +centrifugalforwardcurved = IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED +centrifugalradial = IfcFanTypeEnum.CENTRIFUGALRADIAL +propelloraxial = IfcFanTypeEnum.PROPELLORAXIAL +tubeaxial = IfcFanTypeEnum.TUBEAXIAL +vaneaxial = IfcFanTypeEnum.VANEAXIAL +userdefined = IfcFanTypeEnum.USERDEFINED +notdefined = IfcFanTypeEnum.NOTDEFINED IfcFastenerTypeEnum = enum_namespace() -glue = getattr(IfcFastenerTypeEnum, 'GLUE', INDETERMINATE) -mortar = getattr(IfcFastenerTypeEnum, 'MORTAR', INDETERMINATE) -weld = getattr(IfcFastenerTypeEnum, 'WELD', INDETERMINATE) -userdefined = getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +glue = IfcFastenerTypeEnum.GLUE +mortar = IfcFastenerTypeEnum.MORTAR +weld = IfcFastenerTypeEnum.WELD +userdefined = IfcFastenerTypeEnum.USERDEFINED +notdefined = IfcFastenerTypeEnum.NOTDEFINED IfcFilterTypeEnum = enum_namespace() -airparticlefilter = getattr(IfcFilterTypeEnum, 'AIRPARTICLEFILTER', INDETERMINATE) -compressedairfilter = getattr(IfcFilterTypeEnum, 'COMPRESSEDAIRFILTER', INDETERMINATE) -odorfilter = getattr(IfcFilterTypeEnum, 'ODORFILTER', INDETERMINATE) -oilfilter = getattr(IfcFilterTypeEnum, 'OILFILTER', INDETERMINATE) -strainer = getattr(IfcFilterTypeEnum, 'STRAINER', INDETERMINATE) -waterfilter = getattr(IfcFilterTypeEnum, 'WATERFILTER', INDETERMINATE) -userdefined = getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFilterTypeEnum, 'NOTDEFINED', INDETERMINATE) +airparticlefilter = IfcFilterTypeEnum.AIRPARTICLEFILTER +compressedairfilter = IfcFilterTypeEnum.COMPRESSEDAIRFILTER +odorfilter = IfcFilterTypeEnum.ODORFILTER +oilfilter = IfcFilterTypeEnum.OILFILTER +strainer = IfcFilterTypeEnum.STRAINER +waterfilter = IfcFilterTypeEnum.WATERFILTER +userdefined = IfcFilterTypeEnum.USERDEFINED +notdefined = IfcFilterTypeEnum.NOTDEFINED IfcFireSuppressionTerminalTypeEnum = enum_namespace() -breechinginlet = getattr(IfcFireSuppressionTerminalTypeEnum, 'BREECHINGINLET', INDETERMINATE) -firehydrant = getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREHYDRANT', INDETERMINATE) -firemonitor = getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREMONITOR', INDETERMINATE) -hosereel = getattr(IfcFireSuppressionTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -sprinkler = getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLER', INDETERMINATE) -sprinklerdeflector = getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLERDEFLECTOR', INDETERMINATE) -userdefined = getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFireSuppressionTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +breechinginlet = IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET +firehydrant = IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT +firemonitor = IfcFireSuppressionTerminalTypeEnum.FIREMONITOR +hosereel = IfcFireSuppressionTerminalTypeEnum.HOSEREEL +sprinkler = IfcFireSuppressionTerminalTypeEnum.SPRINKLER +sprinklerdeflector = IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR +userdefined = IfcFireSuppressionTerminalTypeEnum.USERDEFINED +notdefined = IfcFireSuppressionTerminalTypeEnum.NOTDEFINED IfcFlowDirectionEnum = enum_namespace() -sink = getattr(IfcFlowDirectionEnum, 'SINK', INDETERMINATE) -source = getattr(IfcFlowDirectionEnum, 'SOURCE', INDETERMINATE) -sourceandsink = getattr(IfcFlowDirectionEnum, 'SOURCEANDSINK', INDETERMINATE) -notdefined = getattr(IfcFlowDirectionEnum, 'NOTDEFINED', INDETERMINATE) +sink = IfcFlowDirectionEnum.SINK +source = IfcFlowDirectionEnum.SOURCE +sourceandsink = IfcFlowDirectionEnum.SOURCEANDSINK +notdefined = IfcFlowDirectionEnum.NOTDEFINED IfcFlowInstrumentTypeEnum = enum_namespace() -ammeter = getattr(IfcFlowInstrumentTypeEnum, 'AMMETER', INDETERMINATE) -combined = getattr(IfcFlowInstrumentTypeEnum, 'COMBINED', INDETERMINATE) -frequencymeter = getattr(IfcFlowInstrumentTypeEnum, 'FREQUENCYMETER', INDETERMINATE) -phaseanglemeter = getattr(IfcFlowInstrumentTypeEnum, 'PHASEANGLEMETER', INDETERMINATE) -powerfactormeter = getattr(IfcFlowInstrumentTypeEnum, 'POWERFACTORMETER', INDETERMINATE) -pressuregauge = getattr(IfcFlowInstrumentTypeEnum, 'PRESSUREGAUGE', INDETERMINATE) -thermometer = getattr(IfcFlowInstrumentTypeEnum, 'THERMOMETER', INDETERMINATE) -voltmeter = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER', INDETERMINATE) -voltmeter_peak = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_PEAK', INDETERMINATE) -voltmeter_rms = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_RMS', INDETERMINATE) -userdefined = getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFlowInstrumentTypeEnum, 'NOTDEFINED', INDETERMINATE) +ammeter = IfcFlowInstrumentTypeEnum.AMMETER +combined = IfcFlowInstrumentTypeEnum.COMBINED +frequencymeter = IfcFlowInstrumentTypeEnum.FREQUENCYMETER +phaseanglemeter = IfcFlowInstrumentTypeEnum.PHASEANGLEMETER +powerfactormeter = IfcFlowInstrumentTypeEnum.POWERFACTORMETER +pressuregauge = IfcFlowInstrumentTypeEnum.PRESSUREGAUGE +thermometer = IfcFlowInstrumentTypeEnum.THERMOMETER +voltmeter = IfcFlowInstrumentTypeEnum.VOLTMETER +voltmeter_peak = IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK +voltmeter_rms = IfcFlowInstrumentTypeEnum.VOLTMETER_RMS +userdefined = IfcFlowInstrumentTypeEnum.USERDEFINED +notdefined = IfcFlowInstrumentTypeEnum.NOTDEFINED IfcFlowMeterTypeEnum = enum_namespace() -energymeter = getattr(IfcFlowMeterTypeEnum, 'ENERGYMETER', INDETERMINATE) -gasmeter = getattr(IfcFlowMeterTypeEnum, 'GASMETER', INDETERMINATE) -oilmeter = getattr(IfcFlowMeterTypeEnum, 'OILMETER', INDETERMINATE) -watermeter = getattr(IfcFlowMeterTypeEnum, 'WATERMETER', INDETERMINATE) -userdefined = getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFlowMeterTypeEnum, 'NOTDEFINED', INDETERMINATE) +energymeter = IfcFlowMeterTypeEnum.ENERGYMETER +gasmeter = IfcFlowMeterTypeEnum.GASMETER +oilmeter = IfcFlowMeterTypeEnum.OILMETER +watermeter = IfcFlowMeterTypeEnum.WATERMETER +userdefined = IfcFlowMeterTypeEnum.USERDEFINED +notdefined = IfcFlowMeterTypeEnum.NOTDEFINED IfcFootingTypeEnum = enum_namespace() -caisson_foundation = getattr(IfcFootingTypeEnum, 'CAISSON_FOUNDATION', INDETERMINATE) -footing_beam = getattr(IfcFootingTypeEnum, 'FOOTING_BEAM', INDETERMINATE) -pad_footing = getattr(IfcFootingTypeEnum, 'PAD_FOOTING', INDETERMINATE) -pile_cap = getattr(IfcFootingTypeEnum, 'PILE_CAP', INDETERMINATE) -strip_footing = getattr(IfcFootingTypeEnum, 'STRIP_FOOTING', INDETERMINATE) -userdefined = getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFootingTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson_foundation = IfcFootingTypeEnum.CAISSON_FOUNDATION +footing_beam = IfcFootingTypeEnum.FOOTING_BEAM +pad_footing = IfcFootingTypeEnum.PAD_FOOTING +pile_cap = IfcFootingTypeEnum.PILE_CAP +strip_footing = IfcFootingTypeEnum.STRIP_FOOTING +userdefined = IfcFootingTypeEnum.USERDEFINED +notdefined = IfcFootingTypeEnum.NOTDEFINED IfcFurnitureTypeEnum = enum_namespace() -bed = getattr(IfcFurnitureTypeEnum, 'BED', INDETERMINATE) -chair = getattr(IfcFurnitureTypeEnum, 'CHAIR', INDETERMINATE) -desk = getattr(IfcFurnitureTypeEnum, 'DESK', INDETERMINATE) -filecabinet = getattr(IfcFurnitureTypeEnum, 'FILECABINET', INDETERMINATE) -shelf = getattr(IfcFurnitureTypeEnum, 'SHELF', INDETERMINATE) -sofa = getattr(IfcFurnitureTypeEnum, 'SOFA', INDETERMINATE) -table = getattr(IfcFurnitureTypeEnum, 'TABLE', INDETERMINATE) -technicalcabinet = getattr(IfcFurnitureTypeEnum, 'TECHNICALCABINET', INDETERMINATE) -userdefined = getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFurnitureTypeEnum, 'NOTDEFINED', INDETERMINATE) +bed = IfcFurnitureTypeEnum.BED +chair = IfcFurnitureTypeEnum.CHAIR +desk = IfcFurnitureTypeEnum.DESK +filecabinet = IfcFurnitureTypeEnum.FILECABINET +shelf = IfcFurnitureTypeEnum.SHELF +sofa = IfcFurnitureTypeEnum.SOFA +table = IfcFurnitureTypeEnum.TABLE +technicalcabinet = IfcFurnitureTypeEnum.TECHNICALCABINET +userdefined = IfcFurnitureTypeEnum.USERDEFINED +notdefined = IfcFurnitureTypeEnum.NOTDEFINED IfcGeographicElementTypeEnum = enum_namespace() -soil_boring_point = getattr(IfcGeographicElementTypeEnum, 'SOIL_BORING_POINT', INDETERMINATE) -terrain = getattr(IfcGeographicElementTypeEnum, 'TERRAIN', INDETERMINATE) -vegetation = getattr(IfcGeographicElementTypeEnum, 'VEGETATION', INDETERMINATE) -userdefined = getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGeographicElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +soil_boring_point = IfcGeographicElementTypeEnum.SOIL_BORING_POINT +terrain = IfcGeographicElementTypeEnum.TERRAIN +vegetation = IfcGeographicElementTypeEnum.VEGETATION +userdefined = IfcGeographicElementTypeEnum.USERDEFINED +notdefined = IfcGeographicElementTypeEnum.NOTDEFINED IfcGeometricProjectionEnum = enum_namespace() -elevation_view = getattr(IfcGeometricProjectionEnum, 'ELEVATION_VIEW', INDETERMINATE) -graph_view = getattr(IfcGeometricProjectionEnum, 'GRAPH_VIEW', INDETERMINATE) -model_view = getattr(IfcGeometricProjectionEnum, 'MODEL_VIEW', INDETERMINATE) -plan_view = getattr(IfcGeometricProjectionEnum, 'PLAN_VIEW', INDETERMINATE) -reflected_plan_view = getattr(IfcGeometricProjectionEnum, 'REFLECTED_PLAN_VIEW', INDETERMINATE) -section_view = getattr(IfcGeometricProjectionEnum, 'SECTION_VIEW', INDETERMINATE) -sketch_view = getattr(IfcGeometricProjectionEnum, 'SKETCH_VIEW', INDETERMINATE) -userdefined = getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGeometricProjectionEnum, 'NOTDEFINED', INDETERMINATE) +elevation_view = IfcGeometricProjectionEnum.ELEVATION_VIEW +graph_view = IfcGeometricProjectionEnum.GRAPH_VIEW +model_view = IfcGeometricProjectionEnum.MODEL_VIEW +plan_view = IfcGeometricProjectionEnum.PLAN_VIEW +reflected_plan_view = IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW +section_view = IfcGeometricProjectionEnum.SECTION_VIEW +sketch_view = IfcGeometricProjectionEnum.SKETCH_VIEW +userdefined = IfcGeometricProjectionEnum.USERDEFINED +notdefined = IfcGeometricProjectionEnum.NOTDEFINED IfcGeotechnicalStratumTypeEnum = enum_namespace() -solid = getattr(IfcGeotechnicalStratumTypeEnum, 'SOLID', INDETERMINATE) -void = getattr(IfcGeotechnicalStratumTypeEnum, 'VOID', INDETERMINATE) -water = getattr(IfcGeotechnicalStratumTypeEnum, 'WATER', INDETERMINATE) -userdefined = getattr(IfcGeotechnicalStratumTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGeotechnicalStratumTypeEnum, 'NOTDEFINED', INDETERMINATE) +solid = IfcGeotechnicalStratumTypeEnum.SOLID +void = IfcGeotechnicalStratumTypeEnum.VOID +water = IfcGeotechnicalStratumTypeEnum.WATER +userdefined = IfcGeotechnicalStratumTypeEnum.USERDEFINED +notdefined = IfcGeotechnicalStratumTypeEnum.NOTDEFINED IfcGlobalOrLocalEnum = enum_namespace() -global_coords = getattr(IfcGlobalOrLocalEnum, 'GLOBAL_COORDS', INDETERMINATE) -local_coords = getattr(IfcGlobalOrLocalEnum, 'LOCAL_COORDS', INDETERMINATE) +global_coords = IfcGlobalOrLocalEnum.GLOBAL_COORDS +local_coords = IfcGlobalOrLocalEnum.LOCAL_COORDS IfcGridTypeEnum = enum_namespace() -irregular = getattr(IfcGridTypeEnum, 'IRREGULAR', INDETERMINATE) -radial = getattr(IfcGridTypeEnum, 'RADIAL', INDETERMINATE) -rectangular = getattr(IfcGridTypeEnum, 'RECTANGULAR', INDETERMINATE) -triangular = getattr(IfcGridTypeEnum, 'TRIANGULAR', INDETERMINATE) -userdefined = getattr(IfcGridTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGridTypeEnum, 'NOTDEFINED', INDETERMINATE) +irregular = IfcGridTypeEnum.IRREGULAR +radial = IfcGridTypeEnum.RADIAL +rectangular = IfcGridTypeEnum.RECTANGULAR +triangular = IfcGridTypeEnum.TRIANGULAR +userdefined = IfcGridTypeEnum.USERDEFINED +notdefined = IfcGridTypeEnum.NOTDEFINED IfcHeatExchangerTypeEnum = enum_namespace() -plate = getattr(IfcHeatExchangerTypeEnum, 'PLATE', INDETERMINATE) -shellandtube = getattr(IfcHeatExchangerTypeEnum, 'SHELLANDTUBE', INDETERMINATE) -turnoutheating = getattr(IfcHeatExchangerTypeEnum, 'TURNOUTHEATING', INDETERMINATE) -userdefined = getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcHeatExchangerTypeEnum, 'NOTDEFINED', INDETERMINATE) +plate = IfcHeatExchangerTypeEnum.PLATE +shellandtube = IfcHeatExchangerTypeEnum.SHELLANDTUBE +turnoutheating = IfcHeatExchangerTypeEnum.TURNOUTHEATING +userdefined = IfcHeatExchangerTypeEnum.USERDEFINED +notdefined = IfcHeatExchangerTypeEnum.NOTDEFINED IfcHumidifierTypeEnum = enum_namespace() -adiabaticairwasher = getattr(IfcHumidifierTypeEnum, 'ADIABATICAIRWASHER', INDETERMINATE) -adiabaticatomizing = getattr(IfcHumidifierTypeEnum, 'ADIABATICATOMIZING', INDETERMINATE) -adiabaticcompressedairnozzle = getattr(IfcHumidifierTypeEnum, 'ADIABATICCOMPRESSEDAIRNOZZLE', INDETERMINATE) -adiabaticpan = getattr(IfcHumidifierTypeEnum, 'ADIABATICPAN', INDETERMINATE) -adiabaticrigidmedia = getattr(IfcHumidifierTypeEnum, 'ADIABATICRIGIDMEDIA', INDETERMINATE) -adiabaticultrasonic = getattr(IfcHumidifierTypeEnum, 'ADIABATICULTRASONIC', INDETERMINATE) -adiabaticwettedelement = getattr(IfcHumidifierTypeEnum, 'ADIABATICWETTEDELEMENT', INDETERMINATE) -assistedbutane = getattr(IfcHumidifierTypeEnum, 'ASSISTEDBUTANE', INDETERMINATE) -assistedelectric = getattr(IfcHumidifierTypeEnum, 'ASSISTEDELECTRIC', INDETERMINATE) -assistednaturalgas = getattr(IfcHumidifierTypeEnum, 'ASSISTEDNATURALGAS', INDETERMINATE) -assistedpropane = getattr(IfcHumidifierTypeEnum, 'ASSISTEDPROPANE', INDETERMINATE) -assistedsteam = getattr(IfcHumidifierTypeEnum, 'ASSISTEDSTEAM', INDETERMINATE) -steaminjection = getattr(IfcHumidifierTypeEnum, 'STEAMINJECTION', INDETERMINATE) -userdefined = getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcHumidifierTypeEnum, 'NOTDEFINED', INDETERMINATE) +adiabaticairwasher = IfcHumidifierTypeEnum.ADIABATICAIRWASHER +adiabaticatomizing = IfcHumidifierTypeEnum.ADIABATICATOMIZING +adiabaticcompressedairnozzle = IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE +adiabaticpan = IfcHumidifierTypeEnum.ADIABATICPAN +adiabaticrigidmedia = IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA +adiabaticultrasonic = IfcHumidifierTypeEnum.ADIABATICULTRASONIC +adiabaticwettedelement = IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT +assistedbutane = IfcHumidifierTypeEnum.ASSISTEDBUTANE +assistedelectric = IfcHumidifierTypeEnum.ASSISTEDELECTRIC +assistednaturalgas = IfcHumidifierTypeEnum.ASSISTEDNATURALGAS +assistedpropane = IfcHumidifierTypeEnum.ASSISTEDPROPANE +assistedsteam = IfcHumidifierTypeEnum.ASSISTEDSTEAM +steaminjection = IfcHumidifierTypeEnum.STEAMINJECTION +userdefined = IfcHumidifierTypeEnum.USERDEFINED +notdefined = IfcHumidifierTypeEnum.NOTDEFINED IfcImpactProtectionDeviceTypeEnum = enum_namespace() -bumper = getattr(IfcImpactProtectionDeviceTypeEnum, 'BUMPER', INDETERMINATE) -crashcushion = getattr(IfcImpactProtectionDeviceTypeEnum, 'CRASHCUSHION', INDETERMINATE) -dampingsystem = getattr(IfcImpactProtectionDeviceTypeEnum, 'DAMPINGSYSTEM', INDETERMINATE) -fender = getattr(IfcImpactProtectionDeviceTypeEnum, 'FENDER', INDETERMINATE) -userdefined = getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcImpactProtectionDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +bumper = IfcImpactProtectionDeviceTypeEnum.BUMPER +crashcushion = IfcImpactProtectionDeviceTypeEnum.CRASHCUSHION +dampingsystem = IfcImpactProtectionDeviceTypeEnum.DAMPINGSYSTEM +fender = IfcImpactProtectionDeviceTypeEnum.FENDER +userdefined = IfcImpactProtectionDeviceTypeEnum.USERDEFINED +notdefined = IfcImpactProtectionDeviceTypeEnum.NOTDEFINED IfcInterceptorTypeEnum = enum_namespace() -cyclonic = getattr(IfcInterceptorTypeEnum, 'CYCLONIC', INDETERMINATE) -grease = getattr(IfcInterceptorTypeEnum, 'GREASE', INDETERMINATE) -oil = getattr(IfcInterceptorTypeEnum, 'OIL', INDETERMINATE) -petrol = getattr(IfcInterceptorTypeEnum, 'PETROL', INDETERMINATE) -userdefined = getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcInterceptorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cyclonic = IfcInterceptorTypeEnum.CYCLONIC +grease = IfcInterceptorTypeEnum.GREASE +oil = IfcInterceptorTypeEnum.OIL +petrol = IfcInterceptorTypeEnum.PETROL +userdefined = IfcInterceptorTypeEnum.USERDEFINED +notdefined = IfcInterceptorTypeEnum.NOTDEFINED IfcInternalOrExternalEnum = enum_namespace() -external = getattr(IfcInternalOrExternalEnum, 'EXTERNAL', INDETERMINATE) -external_earth = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_fire = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_FIRE', INDETERMINATE) -external_water = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_WATER', INDETERMINATE) -internal = getattr(IfcInternalOrExternalEnum, 'INTERNAL', INDETERMINATE) -notdefined = getattr(IfcInternalOrExternalEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcInternalOrExternalEnum.EXTERNAL +external_earth = IfcInternalOrExternalEnum.EXTERNAL_EARTH +external_fire = IfcInternalOrExternalEnum.EXTERNAL_FIRE +external_water = IfcInternalOrExternalEnum.EXTERNAL_WATER +internal = IfcInternalOrExternalEnum.INTERNAL +notdefined = IfcInternalOrExternalEnum.NOTDEFINED IfcInventoryTypeEnum = enum_namespace() -assetinventory = getattr(IfcInventoryTypeEnum, 'ASSETINVENTORY', INDETERMINATE) -furnitureinventory = getattr(IfcInventoryTypeEnum, 'FURNITUREINVENTORY', INDETERMINATE) -spaceinventory = getattr(IfcInventoryTypeEnum, 'SPACEINVENTORY', INDETERMINATE) -userdefined = getattr(IfcInventoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcInventoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +assetinventory = IfcInventoryTypeEnum.ASSETINVENTORY +furnitureinventory = IfcInventoryTypeEnum.FURNITUREINVENTORY +spaceinventory = IfcInventoryTypeEnum.SPACEINVENTORY +userdefined = IfcInventoryTypeEnum.USERDEFINED +notdefined = IfcInventoryTypeEnum.NOTDEFINED IfcJunctionBoxTypeEnum = enum_namespace() -data = getattr(IfcJunctionBoxTypeEnum, 'DATA', INDETERMINATE) -power = getattr(IfcJunctionBoxTypeEnum, 'POWER', INDETERMINATE) -userdefined = getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcJunctionBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +data = IfcJunctionBoxTypeEnum.DATA +power = IfcJunctionBoxTypeEnum.POWER +userdefined = IfcJunctionBoxTypeEnum.USERDEFINED +notdefined = IfcJunctionBoxTypeEnum.NOTDEFINED IfcKnotType = enum_namespace() -piecewise_bezier_knots = getattr(IfcKnotType, 'PIECEWISE_BEZIER_KNOTS', INDETERMINATE) -quasi_uniform_knots = getattr(IfcKnotType, 'QUASI_UNIFORM_KNOTS', INDETERMINATE) -uniform_knots = getattr(IfcKnotType, 'UNIFORM_KNOTS', INDETERMINATE) -unspecified = getattr(IfcKnotType, 'UNSPECIFIED', INDETERMINATE) +piecewise_bezier_knots = IfcKnotType.PIECEWISE_BEZIER_KNOTS +quasi_uniform_knots = IfcKnotType.QUASI_UNIFORM_KNOTS +uniform_knots = IfcKnotType.UNIFORM_KNOTS +unspecified = IfcKnotType.UNSPECIFIED IfcLaborResourceTypeEnum = enum_namespace() -administration = getattr(IfcLaborResourceTypeEnum, 'ADMINISTRATION', INDETERMINATE) -carpentry = getattr(IfcLaborResourceTypeEnum, 'CARPENTRY', INDETERMINATE) -cleaning = getattr(IfcLaborResourceTypeEnum, 'CLEANING', INDETERMINATE) -concrete = getattr(IfcLaborResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = getattr(IfcLaborResourceTypeEnum, 'DRYWALL', INDETERMINATE) -electric = getattr(IfcLaborResourceTypeEnum, 'ELECTRIC', INDETERMINATE) -finishing = getattr(IfcLaborResourceTypeEnum, 'FINISHING', INDETERMINATE) -flooring = getattr(IfcLaborResourceTypeEnum, 'FLOORING', INDETERMINATE) -general = getattr(IfcLaborResourceTypeEnum, 'GENERAL', INDETERMINATE) -hvac = getattr(IfcLaborResourceTypeEnum, 'HVAC', INDETERMINATE) -landscaping = getattr(IfcLaborResourceTypeEnum, 'LANDSCAPING', INDETERMINATE) -masonry = getattr(IfcLaborResourceTypeEnum, 'MASONRY', INDETERMINATE) -painting = getattr(IfcLaborResourceTypeEnum, 'PAINTING', INDETERMINATE) -paving = getattr(IfcLaborResourceTypeEnum, 'PAVING', INDETERMINATE) -plumbing = getattr(IfcLaborResourceTypeEnum, 'PLUMBING', INDETERMINATE) -roofing = getattr(IfcLaborResourceTypeEnum, 'ROOFING', INDETERMINATE) -sitegrading = getattr(IfcLaborResourceTypeEnum, 'SITEGRADING', INDETERMINATE) -steelwork = getattr(IfcLaborResourceTypeEnum, 'STEELWORK', INDETERMINATE) -surveying = getattr(IfcLaborResourceTypeEnum, 'SURVEYING', INDETERMINATE) -userdefined = getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLaborResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +administration = IfcLaborResourceTypeEnum.ADMINISTRATION +carpentry = IfcLaborResourceTypeEnum.CARPENTRY +cleaning = IfcLaborResourceTypeEnum.CLEANING +concrete = IfcLaborResourceTypeEnum.CONCRETE +drywall = IfcLaborResourceTypeEnum.DRYWALL +electric = IfcLaborResourceTypeEnum.ELECTRIC +finishing = IfcLaborResourceTypeEnum.FINISHING +flooring = IfcLaborResourceTypeEnum.FLOORING +general = IfcLaborResourceTypeEnum.GENERAL +hvac = IfcLaborResourceTypeEnum.HVAC +landscaping = IfcLaborResourceTypeEnum.LANDSCAPING +masonry = IfcLaborResourceTypeEnum.MASONRY +painting = IfcLaborResourceTypeEnum.PAINTING +paving = IfcLaborResourceTypeEnum.PAVING +plumbing = IfcLaborResourceTypeEnum.PLUMBING +roofing = IfcLaborResourceTypeEnum.ROOFING +sitegrading = IfcLaborResourceTypeEnum.SITEGRADING +steelwork = IfcLaborResourceTypeEnum.STEELWORK +surveying = IfcLaborResourceTypeEnum.SURVEYING +userdefined = IfcLaborResourceTypeEnum.USERDEFINED +notdefined = IfcLaborResourceTypeEnum.NOTDEFINED IfcLampTypeEnum = enum_namespace() -compactfluorescent = getattr(IfcLampTypeEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = getattr(IfcLampTypeEnum, 'FLUORESCENT', INDETERMINATE) -halogen = getattr(IfcLampTypeEnum, 'HALOGEN', INDETERMINATE) -highpressuremercury = getattr(IfcLampTypeEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = getattr(IfcLampTypeEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -led = getattr(IfcLampTypeEnum, 'LED', INDETERMINATE) -metalhalide = getattr(IfcLampTypeEnum, 'METALHALIDE', INDETERMINATE) -oled = getattr(IfcLampTypeEnum, 'OLED', INDETERMINATE) -tungstenfilament = getattr(IfcLampTypeEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -userdefined = getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLampTypeEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLampTypeEnum.COMPACTFLUORESCENT +fluorescent = IfcLampTypeEnum.FLUORESCENT +halogen = IfcLampTypeEnum.HALOGEN +highpressuremercury = IfcLampTypeEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLampTypeEnum.HIGHPRESSURESODIUM +led = IfcLampTypeEnum.LED +metalhalide = IfcLampTypeEnum.METALHALIDE +oled = IfcLampTypeEnum.OLED +tungstenfilament = IfcLampTypeEnum.TUNGSTENFILAMENT +userdefined = IfcLampTypeEnum.USERDEFINED +notdefined = IfcLampTypeEnum.NOTDEFINED IfcLayerSetDirectionEnum = enum_namespace() -axis1 = getattr(IfcLayerSetDirectionEnum, 'AXIS1', INDETERMINATE) -axis2 = getattr(IfcLayerSetDirectionEnum, 'AXIS2', INDETERMINATE) -axis3 = getattr(IfcLayerSetDirectionEnum, 'AXIS3', INDETERMINATE) +axis1 = IfcLayerSetDirectionEnum.AXIS1 +axis2 = IfcLayerSetDirectionEnum.AXIS2 +axis3 = IfcLayerSetDirectionEnum.AXIS3 IfcLightDistributionCurveEnum = enum_namespace() -type_a = getattr(IfcLightDistributionCurveEnum, 'TYPE_A', INDETERMINATE) -type_b = getattr(IfcLightDistributionCurveEnum, 'TYPE_B', INDETERMINATE) -type_c = getattr(IfcLightDistributionCurveEnum, 'TYPE_C', INDETERMINATE) -notdefined = getattr(IfcLightDistributionCurveEnum, 'NOTDEFINED', INDETERMINATE) +type_a = IfcLightDistributionCurveEnum.TYPE_A +type_b = IfcLightDistributionCurveEnum.TYPE_B +type_c = IfcLightDistributionCurveEnum.TYPE_C +notdefined = IfcLightDistributionCurveEnum.NOTDEFINED IfcLightEmissionSourceEnum = enum_namespace() -compactfluorescent = getattr(IfcLightEmissionSourceEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = getattr(IfcLightEmissionSourceEnum, 'FLUORESCENT', INDETERMINATE) -highpressuremercury = getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -lightemittingdiode = getattr(IfcLightEmissionSourceEnum, 'LIGHTEMITTINGDIODE', INDETERMINATE) -lowpressuresodium = getattr(IfcLightEmissionSourceEnum, 'LOWPRESSURESODIUM', INDETERMINATE) -lowvoltagehalogen = getattr(IfcLightEmissionSourceEnum, 'LOWVOLTAGEHALOGEN', INDETERMINATE) -mainvoltagehalogen = getattr(IfcLightEmissionSourceEnum, 'MAINVOLTAGEHALOGEN', INDETERMINATE) -metalhalide = getattr(IfcLightEmissionSourceEnum, 'METALHALIDE', INDETERMINATE) -tungstenfilament = getattr(IfcLightEmissionSourceEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -notdefined = getattr(IfcLightEmissionSourceEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLightEmissionSourceEnum.COMPACTFLUORESCENT +fluorescent = IfcLightEmissionSourceEnum.FLUORESCENT +highpressuremercury = IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM +lightemittingdiode = IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE +lowpressuresodium = IfcLightEmissionSourceEnum.LOWPRESSURESODIUM +lowvoltagehalogen = IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN +mainvoltagehalogen = IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN +metalhalide = IfcLightEmissionSourceEnum.METALHALIDE +tungstenfilament = IfcLightEmissionSourceEnum.TUNGSTENFILAMENT +notdefined = IfcLightEmissionSourceEnum.NOTDEFINED IfcLightFixtureTypeEnum = enum_namespace() -directionsource = getattr(IfcLightFixtureTypeEnum, 'DIRECTIONSOURCE', INDETERMINATE) -pointsource = getattr(IfcLightFixtureTypeEnum, 'POINTSOURCE', INDETERMINATE) -securitylighting = getattr(IfcLightFixtureTypeEnum, 'SECURITYLIGHTING', INDETERMINATE) -userdefined = getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLightFixtureTypeEnum, 'NOTDEFINED', INDETERMINATE) +directionsource = IfcLightFixtureTypeEnum.DIRECTIONSOURCE +pointsource = IfcLightFixtureTypeEnum.POINTSOURCE +securitylighting = IfcLightFixtureTypeEnum.SECURITYLIGHTING +userdefined = IfcLightFixtureTypeEnum.USERDEFINED +notdefined = IfcLightFixtureTypeEnum.NOTDEFINED IfcLiquidTerminalTypeEnum = enum_namespace() -hosereel = getattr(IfcLiquidTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -loadingarm = getattr(IfcLiquidTerminalTypeEnum, 'LOADINGARM', INDETERMINATE) -userdefined = getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLiquidTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +hosereel = IfcLiquidTerminalTypeEnum.HOSEREEL +loadingarm = IfcLiquidTerminalTypeEnum.LOADINGARM +userdefined = IfcLiquidTerminalTypeEnum.USERDEFINED +notdefined = IfcLiquidTerminalTypeEnum.NOTDEFINED IfcLoadGroupTypeEnum = enum_namespace() -load_case = getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE) -load_combination = getattr(IfcLoadGroupTypeEnum, 'LOAD_COMBINATION', INDETERMINATE) -load_group = getattr(IfcLoadGroupTypeEnum, 'LOAD_GROUP', INDETERMINATE) -userdefined = getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLoadGroupTypeEnum, 'NOTDEFINED', INDETERMINATE) +load_case = IfcLoadGroupTypeEnum.LOAD_CASE +load_combination = IfcLoadGroupTypeEnum.LOAD_COMBINATION +load_group = IfcLoadGroupTypeEnum.LOAD_GROUP +userdefined = IfcLoadGroupTypeEnum.USERDEFINED +notdefined = IfcLoadGroupTypeEnum.NOTDEFINED IfcLogicalOperatorEnum = enum_namespace() -logicaland = getattr(IfcLogicalOperatorEnum, 'LOGICALAND', INDETERMINATE) -logicalnotand = getattr(IfcLogicalOperatorEnum, 'LOGICALNOTAND', INDETERMINATE) -logicalnotor = getattr(IfcLogicalOperatorEnum, 'LOGICALNOTOR', INDETERMINATE) -logicalor = getattr(IfcLogicalOperatorEnum, 'LOGICALOR', INDETERMINATE) -logicalxor = getattr(IfcLogicalOperatorEnum, 'LOGICALXOR', INDETERMINATE) +logicaland = IfcLogicalOperatorEnum.LOGICALAND +logicalnotand = IfcLogicalOperatorEnum.LOGICALNOTAND +logicalnotor = IfcLogicalOperatorEnum.LOGICALNOTOR +logicalor = IfcLogicalOperatorEnum.LOGICALOR +logicalxor = IfcLogicalOperatorEnum.LOGICALXOR IfcMarineFacilityTypeEnum = enum_namespace() -barrierbeach = getattr(IfcMarineFacilityTypeEnum, 'BARRIERBEACH', INDETERMINATE) -breakwater = getattr(IfcMarineFacilityTypeEnum, 'BREAKWATER', INDETERMINATE) -canal = getattr(IfcMarineFacilityTypeEnum, 'CANAL', INDETERMINATE) -drydock = getattr(IfcMarineFacilityTypeEnum, 'DRYDOCK', INDETERMINATE) -floatingdock = getattr(IfcMarineFacilityTypeEnum, 'FLOATINGDOCK', INDETERMINATE) -hydrolift = getattr(IfcMarineFacilityTypeEnum, 'HYDROLIFT', INDETERMINATE) -jetty = getattr(IfcMarineFacilityTypeEnum, 'JETTY', INDETERMINATE) -launchrecovery = getattr(IfcMarineFacilityTypeEnum, 'LAUNCHRECOVERY', INDETERMINATE) -marinedefence = getattr(IfcMarineFacilityTypeEnum, 'MARINEDEFENCE', INDETERMINATE) -navigationalchannel = getattr(IfcMarineFacilityTypeEnum, 'NAVIGATIONALCHANNEL', INDETERMINATE) -port = getattr(IfcMarineFacilityTypeEnum, 'PORT', INDETERMINATE) -quay = getattr(IfcMarineFacilityTypeEnum, 'QUAY', INDETERMINATE) -revetment = getattr(IfcMarineFacilityTypeEnum, 'REVETMENT', INDETERMINATE) -shiplift = getattr(IfcMarineFacilityTypeEnum, 'SHIPLIFT', INDETERMINATE) -shiplock = getattr(IfcMarineFacilityTypeEnum, 'SHIPLOCK', INDETERMINATE) -shipyard = getattr(IfcMarineFacilityTypeEnum, 'SHIPYARD', INDETERMINATE) -slipway = getattr(IfcMarineFacilityTypeEnum, 'SLIPWAY', INDETERMINATE) -waterway = getattr(IfcMarineFacilityTypeEnum, 'WATERWAY', INDETERMINATE) -waterwayshiplift = getattr(IfcMarineFacilityTypeEnum, 'WATERWAYSHIPLIFT', INDETERMINATE) -userdefined = getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMarineFacilityTypeEnum, 'NOTDEFINED', INDETERMINATE) +barrierbeach = IfcMarineFacilityTypeEnum.BARRIERBEACH +breakwater = IfcMarineFacilityTypeEnum.BREAKWATER +canal = IfcMarineFacilityTypeEnum.CANAL +drydock = IfcMarineFacilityTypeEnum.DRYDOCK +floatingdock = IfcMarineFacilityTypeEnum.FLOATINGDOCK +hydrolift = IfcMarineFacilityTypeEnum.HYDROLIFT +jetty = IfcMarineFacilityTypeEnum.JETTY +launchrecovery = IfcMarineFacilityTypeEnum.LAUNCHRECOVERY +marinedefence = IfcMarineFacilityTypeEnum.MARINEDEFENCE +navigationalchannel = IfcMarineFacilityTypeEnum.NAVIGATIONALCHANNEL +port = IfcMarineFacilityTypeEnum.PORT +quay = IfcMarineFacilityTypeEnum.QUAY +revetment = IfcMarineFacilityTypeEnum.REVETMENT +shiplift = IfcMarineFacilityTypeEnum.SHIPLIFT +shiplock = IfcMarineFacilityTypeEnum.SHIPLOCK +shipyard = IfcMarineFacilityTypeEnum.SHIPYARD +slipway = IfcMarineFacilityTypeEnum.SLIPWAY +waterway = IfcMarineFacilityTypeEnum.WATERWAY +waterwayshiplift = IfcMarineFacilityTypeEnum.WATERWAYSHIPLIFT +userdefined = IfcMarineFacilityTypeEnum.USERDEFINED +notdefined = IfcMarineFacilityTypeEnum.NOTDEFINED IfcMarinePartTypeEnum = enum_namespace() -abovewaterline = getattr(IfcMarinePartTypeEnum, 'ABOVEWATERLINE', INDETERMINATE) -anchorage = getattr(IfcMarinePartTypeEnum, 'ANCHORAGE', INDETERMINATE) -approachchannel = getattr(IfcMarinePartTypeEnum, 'APPROACHCHANNEL', INDETERMINATE) -belowwaterline = getattr(IfcMarinePartTypeEnum, 'BELOWWATERLINE', INDETERMINATE) -berthingstructure = getattr(IfcMarinePartTypeEnum, 'BERTHINGSTRUCTURE', INDETERMINATE) -chamber = getattr(IfcMarinePartTypeEnum, 'CHAMBER', INDETERMINATE) -cill_level = getattr(IfcMarinePartTypeEnum, 'CILL_LEVEL', INDETERMINATE) -copelevel = getattr(IfcMarinePartTypeEnum, 'COPELEVEL', INDETERMINATE) -core = getattr(IfcMarinePartTypeEnum, 'CORE', INDETERMINATE) -crest = getattr(IfcMarinePartTypeEnum, 'CREST', INDETERMINATE) -gatehead = getattr(IfcMarinePartTypeEnum, 'GATEHEAD', INDETERMINATE) -gudingstructure = getattr(IfcMarinePartTypeEnum, 'GUDINGSTRUCTURE', INDETERMINATE) -highwaterline = getattr(IfcMarinePartTypeEnum, 'HIGHWATERLINE', INDETERMINATE) -landfield = getattr(IfcMarinePartTypeEnum, 'LANDFIELD', INDETERMINATE) -leewardside = getattr(IfcMarinePartTypeEnum, 'LEEWARDSIDE', INDETERMINATE) -lowwaterline = getattr(IfcMarinePartTypeEnum, 'LOWWATERLINE', INDETERMINATE) -manufacturing = getattr(IfcMarinePartTypeEnum, 'MANUFACTURING', INDETERMINATE) -navigationalarea = getattr(IfcMarinePartTypeEnum, 'NAVIGATIONALAREA', INDETERMINATE) -protection = getattr(IfcMarinePartTypeEnum, 'PROTECTION', INDETERMINATE) -shiptransfer = getattr(IfcMarinePartTypeEnum, 'SHIPTRANSFER', INDETERMINATE) -storagearea = getattr(IfcMarinePartTypeEnum, 'STORAGEAREA', INDETERMINATE) -vehicleservicing = getattr(IfcMarinePartTypeEnum, 'VEHICLESERVICING', INDETERMINATE) -waterfield = getattr(IfcMarinePartTypeEnum, 'WATERFIELD', INDETERMINATE) -weatherside = getattr(IfcMarinePartTypeEnum, 'WEATHERSIDE', INDETERMINATE) -userdefined = getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMarinePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +abovewaterline = IfcMarinePartTypeEnum.ABOVEWATERLINE +anchorage = IfcMarinePartTypeEnum.ANCHORAGE +approachchannel = IfcMarinePartTypeEnum.APPROACHCHANNEL +belowwaterline = IfcMarinePartTypeEnum.BELOWWATERLINE +berthingstructure = IfcMarinePartTypeEnum.BERTHINGSTRUCTURE +chamber = IfcMarinePartTypeEnum.CHAMBER +cill_level = IfcMarinePartTypeEnum.CILL_LEVEL +copelevel = IfcMarinePartTypeEnum.COPELEVEL +core = IfcMarinePartTypeEnum.CORE +crest = IfcMarinePartTypeEnum.CREST +gatehead = IfcMarinePartTypeEnum.GATEHEAD +gudingstructure = IfcMarinePartTypeEnum.GUDINGSTRUCTURE +highwaterline = IfcMarinePartTypeEnum.HIGHWATERLINE +landfield = IfcMarinePartTypeEnum.LANDFIELD +leewardside = IfcMarinePartTypeEnum.LEEWARDSIDE +lowwaterline = IfcMarinePartTypeEnum.LOWWATERLINE +manufacturing = IfcMarinePartTypeEnum.MANUFACTURING +navigationalarea = IfcMarinePartTypeEnum.NAVIGATIONALAREA +protection = IfcMarinePartTypeEnum.PROTECTION +shiptransfer = IfcMarinePartTypeEnum.SHIPTRANSFER +storagearea = IfcMarinePartTypeEnum.STORAGEAREA +vehicleservicing = IfcMarinePartTypeEnum.VEHICLESERVICING +waterfield = IfcMarinePartTypeEnum.WATERFIELD +weatherside = IfcMarinePartTypeEnum.WEATHERSIDE +userdefined = IfcMarinePartTypeEnum.USERDEFINED +notdefined = IfcMarinePartTypeEnum.NOTDEFINED IfcMechanicalFastenerTypeEnum = enum_namespace() -anchorbolt = getattr(IfcMechanicalFastenerTypeEnum, 'ANCHORBOLT', INDETERMINATE) -bolt = getattr(IfcMechanicalFastenerTypeEnum, 'BOLT', INDETERMINATE) -chain = getattr(IfcMechanicalFastenerTypeEnum, 'CHAIN', INDETERMINATE) -coupler = getattr(IfcMechanicalFastenerTypeEnum, 'COUPLER', INDETERMINATE) -dowel = getattr(IfcMechanicalFastenerTypeEnum, 'DOWEL', INDETERMINATE) -nail = getattr(IfcMechanicalFastenerTypeEnum, 'NAIL', INDETERMINATE) -nailplate = getattr(IfcMechanicalFastenerTypeEnum, 'NAILPLATE', INDETERMINATE) -railfastening = getattr(IfcMechanicalFastenerTypeEnum, 'RAILFASTENING', INDETERMINATE) -railjoint = getattr(IfcMechanicalFastenerTypeEnum, 'RAILJOINT', INDETERMINATE) -rivet = getattr(IfcMechanicalFastenerTypeEnum, 'RIVET', INDETERMINATE) -rope = getattr(IfcMechanicalFastenerTypeEnum, 'ROPE', INDETERMINATE) -screw = getattr(IfcMechanicalFastenerTypeEnum, 'SCREW', INDETERMINATE) -shearconnector = getattr(IfcMechanicalFastenerTypeEnum, 'SHEARCONNECTOR', INDETERMINATE) -staple = getattr(IfcMechanicalFastenerTypeEnum, 'STAPLE', INDETERMINATE) -studshearconnector = getattr(IfcMechanicalFastenerTypeEnum, 'STUDSHEARCONNECTOR', INDETERMINATE) -userdefined = getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMechanicalFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorbolt = IfcMechanicalFastenerTypeEnum.ANCHORBOLT +bolt = IfcMechanicalFastenerTypeEnum.BOLT +chain = IfcMechanicalFastenerTypeEnum.CHAIN +coupler = IfcMechanicalFastenerTypeEnum.COUPLER +dowel = IfcMechanicalFastenerTypeEnum.DOWEL +nail = IfcMechanicalFastenerTypeEnum.NAIL +nailplate = IfcMechanicalFastenerTypeEnum.NAILPLATE +railfastening = IfcMechanicalFastenerTypeEnum.RAILFASTENING +railjoint = IfcMechanicalFastenerTypeEnum.RAILJOINT +rivet = IfcMechanicalFastenerTypeEnum.RIVET +rope = IfcMechanicalFastenerTypeEnum.ROPE +screw = IfcMechanicalFastenerTypeEnum.SCREW +shearconnector = IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR +staple = IfcMechanicalFastenerTypeEnum.STAPLE +studshearconnector = IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR +userdefined = IfcMechanicalFastenerTypeEnum.USERDEFINED +notdefined = IfcMechanicalFastenerTypeEnum.NOTDEFINED IfcMedicalDeviceTypeEnum = enum_namespace() -airstation = getattr(IfcMedicalDeviceTypeEnum, 'AIRSTATION', INDETERMINATE) -feedairunit = getattr(IfcMedicalDeviceTypeEnum, 'FEEDAIRUNIT', INDETERMINATE) -oxygengenerator = getattr(IfcMedicalDeviceTypeEnum, 'OXYGENGENERATOR', INDETERMINATE) -oxygenplant = getattr(IfcMedicalDeviceTypeEnum, 'OXYGENPLANT', INDETERMINATE) -vacuumstation = getattr(IfcMedicalDeviceTypeEnum, 'VACUUMSTATION', INDETERMINATE) -userdefined = getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMedicalDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +airstation = IfcMedicalDeviceTypeEnum.AIRSTATION +feedairunit = IfcMedicalDeviceTypeEnum.FEEDAIRUNIT +oxygengenerator = IfcMedicalDeviceTypeEnum.OXYGENGENERATOR +oxygenplant = IfcMedicalDeviceTypeEnum.OXYGENPLANT +vacuumstation = IfcMedicalDeviceTypeEnum.VACUUMSTATION +userdefined = IfcMedicalDeviceTypeEnum.USERDEFINED +notdefined = IfcMedicalDeviceTypeEnum.NOTDEFINED IfcMemberTypeEnum = enum_namespace() -arch_segment = getattr(IfcMemberTypeEnum, 'ARCH_SEGMENT', INDETERMINATE) -brace = getattr(IfcMemberTypeEnum, 'BRACE', INDETERMINATE) -chord = getattr(IfcMemberTypeEnum, 'CHORD', INDETERMINATE) -collar = getattr(IfcMemberTypeEnum, 'COLLAR', INDETERMINATE) -member = getattr(IfcMemberTypeEnum, 'MEMBER', INDETERMINATE) -mullion = getattr(IfcMemberTypeEnum, 'MULLION', INDETERMINATE) -plate = getattr(IfcMemberTypeEnum, 'PLATE', INDETERMINATE) -post = getattr(IfcMemberTypeEnum, 'POST', INDETERMINATE) -purlin = getattr(IfcMemberTypeEnum, 'PURLIN', INDETERMINATE) -rafter = getattr(IfcMemberTypeEnum, 'RAFTER', INDETERMINATE) -stay_cable = getattr(IfcMemberTypeEnum, 'STAY_CABLE', INDETERMINATE) -stiffening_rib = getattr(IfcMemberTypeEnum, 'STIFFENING_RIB', INDETERMINATE) -stringer = getattr(IfcMemberTypeEnum, 'STRINGER', INDETERMINATE) -structuralcable = getattr(IfcMemberTypeEnum, 'STRUCTURALCABLE', INDETERMINATE) -strut = getattr(IfcMemberTypeEnum, 'STRUT', INDETERMINATE) -stud = getattr(IfcMemberTypeEnum, 'STUD', INDETERMINATE) -suspender = getattr(IfcMemberTypeEnum, 'SUSPENDER', INDETERMINATE) -suspension_cable = getattr(IfcMemberTypeEnum, 'SUSPENSION_CABLE', INDETERMINATE) -tiebar = getattr(IfcMemberTypeEnum, 'TIEBAR', INDETERMINATE) -userdefined = getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +arch_segment = IfcMemberTypeEnum.ARCH_SEGMENT +brace = IfcMemberTypeEnum.BRACE +chord = IfcMemberTypeEnum.CHORD +collar = IfcMemberTypeEnum.COLLAR +member = IfcMemberTypeEnum.MEMBER +mullion = IfcMemberTypeEnum.MULLION +plate = IfcMemberTypeEnum.PLATE +post = IfcMemberTypeEnum.POST +purlin = IfcMemberTypeEnum.PURLIN +rafter = IfcMemberTypeEnum.RAFTER +stay_cable = IfcMemberTypeEnum.STAY_CABLE +stiffening_rib = IfcMemberTypeEnum.STIFFENING_RIB +stringer = IfcMemberTypeEnum.STRINGER +structuralcable = IfcMemberTypeEnum.STRUCTURALCABLE +strut = IfcMemberTypeEnum.STRUT +stud = IfcMemberTypeEnum.STUD +suspender = IfcMemberTypeEnum.SUSPENDER +suspension_cable = IfcMemberTypeEnum.SUSPENSION_CABLE +tiebar = IfcMemberTypeEnum.TIEBAR +userdefined = IfcMemberTypeEnum.USERDEFINED +notdefined = IfcMemberTypeEnum.NOTDEFINED IfcMobileTelecommunicationsApplianceTypeEnum = enum_namespace() -accesspoint = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'ACCESSPOINT', INDETERMINATE) -basebandunit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASEBANDUNIT', INDETERMINATE) -basetransceiverstation = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASETRANSCEIVERSTATION', INDETERMINATE) -e_utran_node_b = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'E_UTRAN_NODE_B', INDETERMINATE) -gateway_gprs_support_node = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'GATEWAY_GPRS_SUPPORT_NODE', INDETERMINATE) -masterunit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MASTERUNIT', INDETERMINATE) -mobileswitchingcenter = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MOBILESWITCHINGCENTER', INDETERMINATE) -mscserver = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MSCSERVER', INDETERMINATE) -packetcontrolunit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'PACKETCONTROLUNIT', INDETERMINATE) -remoteradiounit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTERADIOUNIT', INDETERMINATE) -remoteunit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTEUNIT', INDETERMINATE) -service_gprs_support_node = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'SERVICE_GPRS_SUPPORT_NODE', INDETERMINATE) -subscriberserver = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'SUBSCRIBERSERVER', INDETERMINATE) -userdefined = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +accesspoint = IfcMobileTelecommunicationsApplianceTypeEnum.ACCESSPOINT +basebandunit = IfcMobileTelecommunicationsApplianceTypeEnum.BASEBANDUNIT +basetransceiverstation = IfcMobileTelecommunicationsApplianceTypeEnum.BASETRANSCEIVERSTATION +e_utran_node_b = IfcMobileTelecommunicationsApplianceTypeEnum.E_UTRAN_NODE_B +gateway_gprs_support_node = IfcMobileTelecommunicationsApplianceTypeEnum.GATEWAY_GPRS_SUPPORT_NODE +masterunit = IfcMobileTelecommunicationsApplianceTypeEnum.MASTERUNIT +mobileswitchingcenter = IfcMobileTelecommunicationsApplianceTypeEnum.MOBILESWITCHINGCENTER +mscserver = IfcMobileTelecommunicationsApplianceTypeEnum.MSCSERVER +packetcontrolunit = IfcMobileTelecommunicationsApplianceTypeEnum.PACKETCONTROLUNIT +remoteradiounit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTERADIOUNIT +remoteunit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTEUNIT +service_gprs_support_node = IfcMobileTelecommunicationsApplianceTypeEnum.SERVICE_GPRS_SUPPORT_NODE +subscriberserver = IfcMobileTelecommunicationsApplianceTypeEnum.SUBSCRIBERSERVER +userdefined = IfcMobileTelecommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcMobileTelecommunicationsApplianceTypeEnum.NOTDEFINED IfcMooringDeviceTypeEnum = enum_namespace() -bollard = getattr(IfcMooringDeviceTypeEnum, 'BOLLARD', INDETERMINATE) -linetensioner = getattr(IfcMooringDeviceTypeEnum, 'LINETENSIONER', INDETERMINATE) -magneticdevice = getattr(IfcMooringDeviceTypeEnum, 'MAGNETICDEVICE', INDETERMINATE) -mooringhooks = getattr(IfcMooringDeviceTypeEnum, 'MOORINGHOOKS', INDETERMINATE) -vacuumdevice = getattr(IfcMooringDeviceTypeEnum, 'VACUUMDEVICE', INDETERMINATE) -userdefined = getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMooringDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +bollard = IfcMooringDeviceTypeEnum.BOLLARD +linetensioner = IfcMooringDeviceTypeEnum.LINETENSIONER +magneticdevice = IfcMooringDeviceTypeEnum.MAGNETICDEVICE +mooringhooks = IfcMooringDeviceTypeEnum.MOORINGHOOKS +vacuumdevice = IfcMooringDeviceTypeEnum.VACUUMDEVICE +userdefined = IfcMooringDeviceTypeEnum.USERDEFINED +notdefined = IfcMooringDeviceTypeEnum.NOTDEFINED IfcMotorConnectionTypeEnum = enum_namespace() -beltdrive = getattr(IfcMotorConnectionTypeEnum, 'BELTDRIVE', INDETERMINATE) -coupling = getattr(IfcMotorConnectionTypeEnum, 'COUPLING', INDETERMINATE) -directdrive = getattr(IfcMotorConnectionTypeEnum, 'DIRECTDRIVE', INDETERMINATE) -userdefined = getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMotorConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltdrive = IfcMotorConnectionTypeEnum.BELTDRIVE +coupling = IfcMotorConnectionTypeEnum.COUPLING +directdrive = IfcMotorConnectionTypeEnum.DIRECTDRIVE +userdefined = IfcMotorConnectionTypeEnum.USERDEFINED +notdefined = IfcMotorConnectionTypeEnum.NOTDEFINED IfcNavigationElementTypeEnum = enum_namespace() -beacon = getattr(IfcNavigationElementTypeEnum, 'BEACON', INDETERMINATE) -buoy = getattr(IfcNavigationElementTypeEnum, 'BUOY', INDETERMINATE) -userdefined = getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcNavigationElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +beacon = IfcNavigationElementTypeEnum.BEACON +buoy = IfcNavigationElementTypeEnum.BUOY +userdefined = IfcNavigationElementTypeEnum.USERDEFINED +notdefined = IfcNavigationElementTypeEnum.NOTDEFINED IfcObjectTypeEnum = enum_namespace() -actor = getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE) -control = getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE) -group = getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE) -process = getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE) -product = getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE) -project = getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE) -resource = getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE) -notdefined = getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE) +actor = IfcObjectTypeEnum.ACTOR +control = IfcObjectTypeEnum.CONTROL +group = IfcObjectTypeEnum.GROUP +process = IfcObjectTypeEnum.PROCESS +product = IfcObjectTypeEnum.PRODUCT +project = IfcObjectTypeEnum.PROJECT +resource = IfcObjectTypeEnum.RESOURCE +notdefined = IfcObjectTypeEnum.NOTDEFINED IfcObjectiveEnum = enum_namespace() -codecompliance = getattr(IfcObjectiveEnum, 'CODECOMPLIANCE', INDETERMINATE) -codewaiver = getattr(IfcObjectiveEnum, 'CODEWAIVER', INDETERMINATE) -designintent = getattr(IfcObjectiveEnum, 'DESIGNINTENT', INDETERMINATE) -external = getattr(IfcObjectiveEnum, 'EXTERNAL', INDETERMINATE) -healthandsafety = getattr(IfcObjectiveEnum, 'HEALTHANDSAFETY', INDETERMINATE) -mergeconflict = getattr(IfcObjectiveEnum, 'MERGECONFLICT', INDETERMINATE) -modelview = getattr(IfcObjectiveEnum, 'MODELVIEW', INDETERMINATE) -parameter = getattr(IfcObjectiveEnum, 'PARAMETER', INDETERMINATE) -requirement = getattr(IfcObjectiveEnum, 'REQUIREMENT', INDETERMINATE) -specification = getattr(IfcObjectiveEnum, 'SPECIFICATION', INDETERMINATE) -triggercondition = getattr(IfcObjectiveEnum, 'TRIGGERCONDITION', INDETERMINATE) -userdefined = getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcObjectiveEnum, 'NOTDEFINED', INDETERMINATE) +codecompliance = IfcObjectiveEnum.CODECOMPLIANCE +codewaiver = IfcObjectiveEnum.CODEWAIVER +designintent = IfcObjectiveEnum.DESIGNINTENT +external = IfcObjectiveEnum.EXTERNAL +healthandsafety = IfcObjectiveEnum.HEALTHANDSAFETY +mergeconflict = IfcObjectiveEnum.MERGECONFLICT +modelview = IfcObjectiveEnum.MODELVIEW +parameter = IfcObjectiveEnum.PARAMETER +requirement = IfcObjectiveEnum.REQUIREMENT +specification = IfcObjectiveEnum.SPECIFICATION +triggercondition = IfcObjectiveEnum.TRIGGERCONDITION +userdefined = IfcObjectiveEnum.USERDEFINED +notdefined = IfcObjectiveEnum.NOTDEFINED IfcOccupantTypeEnum = enum_namespace() -assignee = getattr(IfcOccupantTypeEnum, 'ASSIGNEE', INDETERMINATE) -assignor = getattr(IfcOccupantTypeEnum, 'ASSIGNOR', INDETERMINATE) -lessee = getattr(IfcOccupantTypeEnum, 'LESSEE', INDETERMINATE) -lessor = getattr(IfcOccupantTypeEnum, 'LESSOR', INDETERMINATE) -lettingagent = getattr(IfcOccupantTypeEnum, 'LETTINGAGENT', INDETERMINATE) -owner = getattr(IfcOccupantTypeEnum, 'OWNER', INDETERMINATE) -tenant = getattr(IfcOccupantTypeEnum, 'TENANT', INDETERMINATE) -userdefined = getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOccupantTypeEnum, 'NOTDEFINED', INDETERMINATE) +assignee = IfcOccupantTypeEnum.ASSIGNEE +assignor = IfcOccupantTypeEnum.ASSIGNOR +lessee = IfcOccupantTypeEnum.LESSEE +lessor = IfcOccupantTypeEnum.LESSOR +lettingagent = IfcOccupantTypeEnum.LETTINGAGENT +owner = IfcOccupantTypeEnum.OWNER +tenant = IfcOccupantTypeEnum.TENANT +userdefined = IfcOccupantTypeEnum.USERDEFINED +notdefined = IfcOccupantTypeEnum.NOTDEFINED IfcOpeningElementTypeEnum = enum_namespace() -opening = getattr(IfcOpeningElementTypeEnum, 'OPENING', INDETERMINATE) -recess = getattr(IfcOpeningElementTypeEnum, 'RECESS', INDETERMINATE) -userdefined = getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOpeningElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +opening = IfcOpeningElementTypeEnum.OPENING +recess = IfcOpeningElementTypeEnum.RECESS +userdefined = IfcOpeningElementTypeEnum.USERDEFINED +notdefined = IfcOpeningElementTypeEnum.NOTDEFINED IfcOutletTypeEnum = enum_namespace() -audiovisualoutlet = getattr(IfcOutletTypeEnum, 'AUDIOVISUALOUTLET', INDETERMINATE) -communicationsoutlet = getattr(IfcOutletTypeEnum, 'COMMUNICATIONSOUTLET', INDETERMINATE) -dataoutlet = getattr(IfcOutletTypeEnum, 'DATAOUTLET', INDETERMINATE) -poweroutlet = getattr(IfcOutletTypeEnum, 'POWEROUTLET', INDETERMINATE) -telephoneoutlet = getattr(IfcOutletTypeEnum, 'TELEPHONEOUTLET', INDETERMINATE) -userdefined = getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOutletTypeEnum, 'NOTDEFINED', INDETERMINATE) +audiovisualoutlet = IfcOutletTypeEnum.AUDIOVISUALOUTLET +communicationsoutlet = IfcOutletTypeEnum.COMMUNICATIONSOUTLET +dataoutlet = IfcOutletTypeEnum.DATAOUTLET +poweroutlet = IfcOutletTypeEnum.POWEROUTLET +telephoneoutlet = IfcOutletTypeEnum.TELEPHONEOUTLET +userdefined = IfcOutletTypeEnum.USERDEFINED +notdefined = IfcOutletTypeEnum.NOTDEFINED IfcPavementTypeEnum = enum_namespace() -flexible = getattr(IfcPavementTypeEnum, 'FLEXIBLE', INDETERMINATE) -rigid = getattr(IfcPavementTypeEnum, 'RIGID', INDETERMINATE) -userdefined = getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPavementTypeEnum, 'NOTDEFINED', INDETERMINATE) +flexible = IfcPavementTypeEnum.FLEXIBLE +rigid = IfcPavementTypeEnum.RIGID +userdefined = IfcPavementTypeEnum.USERDEFINED +notdefined = IfcPavementTypeEnum.NOTDEFINED IfcPerformanceHistoryTypeEnum = enum_namespace() -userdefined = getattr(IfcPerformanceHistoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPerformanceHistoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcPerformanceHistoryTypeEnum.USERDEFINED +notdefined = IfcPerformanceHistoryTypeEnum.NOTDEFINED IfcPermeableCoveringOperationEnum = enum_namespace() -grill = getattr(IfcPermeableCoveringOperationEnum, 'GRILL', INDETERMINATE) -louver = getattr(IfcPermeableCoveringOperationEnum, 'LOUVER', INDETERMINATE) -screen = getattr(IfcPermeableCoveringOperationEnum, 'SCREEN', INDETERMINATE) -userdefined = getattr(IfcPermeableCoveringOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPermeableCoveringOperationEnum, 'NOTDEFINED', INDETERMINATE) +grill = IfcPermeableCoveringOperationEnum.GRILL +louver = IfcPermeableCoveringOperationEnum.LOUVER +screen = IfcPermeableCoveringOperationEnum.SCREEN +userdefined = IfcPermeableCoveringOperationEnum.USERDEFINED +notdefined = IfcPermeableCoveringOperationEnum.NOTDEFINED IfcPermitTypeEnum = enum_namespace() -access = getattr(IfcPermitTypeEnum, 'ACCESS', INDETERMINATE) -building = getattr(IfcPermitTypeEnum, 'BUILDING', INDETERMINATE) -work = getattr(IfcPermitTypeEnum, 'WORK', INDETERMINATE) -userdefined = getattr(IfcPermitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPermitTypeEnum, 'NOTDEFINED', INDETERMINATE) +access = IfcPermitTypeEnum.ACCESS +building = IfcPermitTypeEnum.BUILDING +work = IfcPermitTypeEnum.WORK +userdefined = IfcPermitTypeEnum.USERDEFINED +notdefined = IfcPermitTypeEnum.NOTDEFINED IfcPhysicalOrVirtualEnum = enum_namespace() -physical = getattr(IfcPhysicalOrVirtualEnum, 'PHYSICAL', INDETERMINATE) -virtual = getattr(IfcPhysicalOrVirtualEnum, 'VIRTUAL', INDETERMINATE) -notdefined = getattr(IfcPhysicalOrVirtualEnum, 'NOTDEFINED', INDETERMINATE) +physical = IfcPhysicalOrVirtualEnum.PHYSICAL +virtual = IfcPhysicalOrVirtualEnum.VIRTUAL +notdefined = IfcPhysicalOrVirtualEnum.NOTDEFINED IfcPileConstructionEnum = enum_namespace() -cast_in_place = getattr(IfcPileConstructionEnum, 'CAST_IN_PLACE', INDETERMINATE) -composite = getattr(IfcPileConstructionEnum, 'COMPOSITE', INDETERMINATE) -precast_concrete = getattr(IfcPileConstructionEnum, 'PRECAST_CONCRETE', INDETERMINATE) -prefab_steel = getattr(IfcPileConstructionEnum, 'PREFAB_STEEL', INDETERMINATE) -userdefined = getattr(IfcPileConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPileConstructionEnum, 'NOTDEFINED', INDETERMINATE) +cast_in_place = IfcPileConstructionEnum.CAST_IN_PLACE +composite = IfcPileConstructionEnum.COMPOSITE +precast_concrete = IfcPileConstructionEnum.PRECAST_CONCRETE +prefab_steel = IfcPileConstructionEnum.PREFAB_STEEL +userdefined = IfcPileConstructionEnum.USERDEFINED +notdefined = IfcPileConstructionEnum.NOTDEFINED IfcPileTypeEnum = enum_namespace() -bored = getattr(IfcPileTypeEnum, 'BORED', INDETERMINATE) -cohesion = getattr(IfcPileTypeEnum, 'COHESION', INDETERMINATE) -driven = getattr(IfcPileTypeEnum, 'DRIVEN', INDETERMINATE) -friction = getattr(IfcPileTypeEnum, 'FRICTION', INDETERMINATE) -jetgrouting = getattr(IfcPileTypeEnum, 'JETGROUTING', INDETERMINATE) -support = getattr(IfcPileTypeEnum, 'SUPPORT', INDETERMINATE) -userdefined = getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPileTypeEnum, 'NOTDEFINED', INDETERMINATE) +bored = IfcPileTypeEnum.BORED +cohesion = IfcPileTypeEnum.COHESION +driven = IfcPileTypeEnum.DRIVEN +friction = IfcPileTypeEnum.FRICTION +jetgrouting = IfcPileTypeEnum.JETGROUTING +support = IfcPileTypeEnum.SUPPORT +userdefined = IfcPileTypeEnum.USERDEFINED +notdefined = IfcPileTypeEnum.NOTDEFINED IfcPipeFittingTypeEnum = enum_namespace() -bend = getattr(IfcPipeFittingTypeEnum, 'BEND', INDETERMINATE) -connector = getattr(IfcPipeFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcPipeFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcPipeFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcPipeFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = getattr(IfcPipeFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = getattr(IfcPipeFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPipeFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcPipeFittingTypeEnum.BEND +connector = IfcPipeFittingTypeEnum.CONNECTOR +entry = IfcPipeFittingTypeEnum.ENTRY +exit = IfcPipeFittingTypeEnum.EXIT +junction = IfcPipeFittingTypeEnum.JUNCTION +obstruction = IfcPipeFittingTypeEnum.OBSTRUCTION +transition = IfcPipeFittingTypeEnum.TRANSITION +userdefined = IfcPipeFittingTypeEnum.USERDEFINED +notdefined = IfcPipeFittingTypeEnum.NOTDEFINED IfcPipeSegmentTypeEnum = enum_namespace() -culvert = getattr(IfcPipeSegmentTypeEnum, 'CULVERT', INDETERMINATE) -flexiblesegment = getattr(IfcPipeSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -gutter = getattr(IfcPipeSegmentTypeEnum, 'GUTTER', INDETERMINATE) -rigidsegment = getattr(IfcPipeSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -spool = getattr(IfcPipeSegmentTypeEnum, 'SPOOL', INDETERMINATE) -userdefined = getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPipeSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +culvert = IfcPipeSegmentTypeEnum.CULVERT +flexiblesegment = IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT +gutter = IfcPipeSegmentTypeEnum.GUTTER +rigidsegment = IfcPipeSegmentTypeEnum.RIGIDSEGMENT +spool = IfcPipeSegmentTypeEnum.SPOOL +userdefined = IfcPipeSegmentTypeEnum.USERDEFINED +notdefined = IfcPipeSegmentTypeEnum.NOTDEFINED IfcPlateTypeEnum = enum_namespace() -base_plate = getattr(IfcPlateTypeEnum, 'BASE_PLATE', INDETERMINATE) -cover_plate = getattr(IfcPlateTypeEnum, 'COVER_PLATE', INDETERMINATE) -curtain_panel = getattr(IfcPlateTypeEnum, 'CURTAIN_PANEL', INDETERMINATE) -flange_plate = getattr(IfcPlateTypeEnum, 'FLANGE_PLATE', INDETERMINATE) -gusset_plate = getattr(IfcPlateTypeEnum, 'GUSSET_PLATE', INDETERMINATE) -sheet = getattr(IfcPlateTypeEnum, 'SHEET', INDETERMINATE) -splice_plate = getattr(IfcPlateTypeEnum, 'SPLICE_PLATE', INDETERMINATE) -stiffener_plate = getattr(IfcPlateTypeEnum, 'STIFFENER_PLATE', INDETERMINATE) -web_plate = getattr(IfcPlateTypeEnum, 'WEB_PLATE', INDETERMINATE) -userdefined = getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPlateTypeEnum, 'NOTDEFINED', INDETERMINATE) +base_plate = IfcPlateTypeEnum.BASE_PLATE +cover_plate = IfcPlateTypeEnum.COVER_PLATE +curtain_panel = IfcPlateTypeEnum.CURTAIN_PANEL +flange_plate = IfcPlateTypeEnum.FLANGE_PLATE +gusset_plate = IfcPlateTypeEnum.GUSSET_PLATE +sheet = IfcPlateTypeEnum.SHEET +splice_plate = IfcPlateTypeEnum.SPLICE_PLATE +stiffener_plate = IfcPlateTypeEnum.STIFFENER_PLATE +web_plate = IfcPlateTypeEnum.WEB_PLATE +userdefined = IfcPlateTypeEnum.USERDEFINED +notdefined = IfcPlateTypeEnum.NOTDEFINED IfcPreferredSurfaceCurveRepresentation = enum_namespace() -curve3d = getattr(IfcPreferredSurfaceCurveRepresentation, 'CURVE3D', INDETERMINATE) -pcurve_s1 = getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S1', INDETERMINATE) -pcurve_s2 = getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S2', INDETERMINATE) +curve3d = IfcPreferredSurfaceCurveRepresentation.CURVE3D +pcurve_s1 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 +pcurve_s2 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 IfcProcedureTypeEnum = enum_namespace() -advice_caution = getattr(IfcProcedureTypeEnum, 'ADVICE_CAUTION', INDETERMINATE) -advice_note = getattr(IfcProcedureTypeEnum, 'ADVICE_NOTE', INDETERMINATE) -advice_warning = getattr(IfcProcedureTypeEnum, 'ADVICE_WARNING', INDETERMINATE) -calibration = getattr(IfcProcedureTypeEnum, 'CALIBRATION', INDETERMINATE) -diagnostic = getattr(IfcProcedureTypeEnum, 'DIAGNOSTIC', INDETERMINATE) -shutdown = getattr(IfcProcedureTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = getattr(IfcProcedureTypeEnum, 'STARTUP', INDETERMINATE) -userdefined = getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProcedureTypeEnum, 'NOTDEFINED', INDETERMINATE) +advice_caution = IfcProcedureTypeEnum.ADVICE_CAUTION +advice_note = IfcProcedureTypeEnum.ADVICE_NOTE +advice_warning = IfcProcedureTypeEnum.ADVICE_WARNING +calibration = IfcProcedureTypeEnum.CALIBRATION +diagnostic = IfcProcedureTypeEnum.DIAGNOSTIC +shutdown = IfcProcedureTypeEnum.SHUTDOWN +startup = IfcProcedureTypeEnum.STARTUP +userdefined = IfcProcedureTypeEnum.USERDEFINED +notdefined = IfcProcedureTypeEnum.NOTDEFINED IfcProfileTypeEnum = enum_namespace() -area = getattr(IfcProfileTypeEnum, 'AREA', INDETERMINATE) -curve = getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE) +area = IfcProfileTypeEnum.AREA +curve = IfcProfileTypeEnum.CURVE IfcProjectOrderTypeEnum = enum_namespace() -changeorder = getattr(IfcProjectOrderTypeEnum, 'CHANGEORDER', INDETERMINATE) -maintenanceworkorder = getattr(IfcProjectOrderTypeEnum, 'MAINTENANCEWORKORDER', INDETERMINATE) -moveorder = getattr(IfcProjectOrderTypeEnum, 'MOVEORDER', INDETERMINATE) -purchaseorder = getattr(IfcProjectOrderTypeEnum, 'PURCHASEORDER', INDETERMINATE) -workorder = getattr(IfcProjectOrderTypeEnum, 'WORKORDER', INDETERMINATE) -userdefined = getattr(IfcProjectOrderTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProjectOrderTypeEnum, 'NOTDEFINED', INDETERMINATE) +changeorder = IfcProjectOrderTypeEnum.CHANGEORDER +maintenanceworkorder = IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER +moveorder = IfcProjectOrderTypeEnum.MOVEORDER +purchaseorder = IfcProjectOrderTypeEnum.PURCHASEORDER +workorder = IfcProjectOrderTypeEnum.WORKORDER +userdefined = IfcProjectOrderTypeEnum.USERDEFINED +notdefined = IfcProjectOrderTypeEnum.NOTDEFINED IfcProjectedOrTrueLengthEnum = enum_namespace() -projected_length = getattr(IfcProjectedOrTrueLengthEnum, 'PROJECTED_LENGTH', INDETERMINATE) -true_length = getattr(IfcProjectedOrTrueLengthEnum, 'TRUE_LENGTH', INDETERMINATE) +projected_length = IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH +true_length = IfcProjectedOrTrueLengthEnum.TRUE_LENGTH IfcProjectionElementTypeEnum = enum_namespace() -blister = getattr(IfcProjectionElementTypeEnum, 'BLISTER', INDETERMINATE) -deviator = getattr(IfcProjectionElementTypeEnum, 'DEVIATOR', INDETERMINATE) -userdefined = getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProjectionElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +blister = IfcProjectionElementTypeEnum.BLISTER +deviator = IfcProjectionElementTypeEnum.DEVIATOR +userdefined = IfcProjectionElementTypeEnum.USERDEFINED +notdefined = IfcProjectionElementTypeEnum.NOTDEFINED IfcPropertySetTemplateTypeEnum = enum_namespace() -pset_materialdriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_MATERIALDRIVEN', INDETERMINATE) -pset_occurrencedriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_OCCURRENCEDRIVEN', INDETERMINATE) -pset_performancedriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PERFORMANCEDRIVEN', INDETERMINATE) -pset_profiledriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PROFILEDRIVEN', INDETERMINATE) -pset_typedrivenonly = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENONLY', INDETERMINATE) -pset_typedrivenoverride = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENOVERRIDE', INDETERMINATE) -qto_occurrencedriven = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_OCCURRENCEDRIVEN', INDETERMINATE) -qto_typedrivenonly = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENONLY', INDETERMINATE) -qto_typedrivenoverride = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENOVERRIDE', INDETERMINATE) -notdefined = getattr(IfcPropertySetTemplateTypeEnum, 'NOTDEFINED', INDETERMINATE) +pset_materialdriven = IfcPropertySetTemplateTypeEnum.PSET_MATERIALDRIVEN +pset_occurrencedriven = IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN +pset_performancedriven = IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN +pset_profiledriven = IfcPropertySetTemplateTypeEnum.PSET_PROFILEDRIVEN +pset_typedrivenonly = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY +pset_typedrivenoverride = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE +qto_occurrencedriven = IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN +qto_typedrivenonly = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY +qto_typedrivenoverride = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE +notdefined = IfcPropertySetTemplateTypeEnum.NOTDEFINED IfcProtectiveDeviceTrippingUnitTypeEnum = enum_namespace() -electromagnetic = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTROMAGNETIC', INDETERMINATE) -electronic = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTRONIC', INDETERMINATE) -residualcurrent = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'RESIDUALCURRENT', INDETERMINATE) -thermal = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'THERMAL', INDETERMINATE) -userdefined = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'NOTDEFINED', INDETERMINATE) +electromagnetic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC +electronic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC +residualcurrent = IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT +thermal = IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL +userdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED IfcProtectiveDeviceTypeEnum = enum_namespace() -anti_arcing_device = getattr(IfcProtectiveDeviceTypeEnum, 'ANTI_ARCING_DEVICE', INDETERMINATE) -circuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'CIRCUITBREAKER', INDETERMINATE) -earthingswitch = getattr(IfcProtectiveDeviceTypeEnum, 'EARTHINGSWITCH', INDETERMINATE) -earthleakagecircuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'EARTHLEAKAGECIRCUITBREAKER', INDETERMINATE) -fusedisconnector = getattr(IfcProtectiveDeviceTypeEnum, 'FUSEDISCONNECTOR', INDETERMINATE) -residualcurrentcircuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTCIRCUITBREAKER', INDETERMINATE) -residualcurrentswitch = getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTSWITCH', INDETERMINATE) -sparkgap = getattr(IfcProtectiveDeviceTypeEnum, 'SPARKGAP', INDETERMINATE) -varistor = getattr(IfcProtectiveDeviceTypeEnum, 'VARISTOR', INDETERMINATE) -voltagelimiter = getattr(IfcProtectiveDeviceTypeEnum, 'VOLTAGELIMITER', INDETERMINATE) -userdefined = getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProtectiveDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +anti_arcing_device = IfcProtectiveDeviceTypeEnum.ANTI_ARCING_DEVICE +circuitbreaker = IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER +earthingswitch = IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH +earthleakagecircuitbreaker = IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER +fusedisconnector = IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR +residualcurrentcircuitbreaker = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER +residualcurrentswitch = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH +sparkgap = IfcProtectiveDeviceTypeEnum.SPARKGAP +varistor = IfcProtectiveDeviceTypeEnum.VARISTOR +voltagelimiter = IfcProtectiveDeviceTypeEnum.VOLTAGELIMITER +userdefined = IfcProtectiveDeviceTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTypeEnum.NOTDEFINED IfcPumpTypeEnum = enum_namespace() -circulator = getattr(IfcPumpTypeEnum, 'CIRCULATOR', INDETERMINATE) -endsuction = getattr(IfcPumpTypeEnum, 'ENDSUCTION', INDETERMINATE) -splitcase = getattr(IfcPumpTypeEnum, 'SPLITCASE', INDETERMINATE) -submersiblepump = getattr(IfcPumpTypeEnum, 'SUBMERSIBLEPUMP', INDETERMINATE) -sumppump = getattr(IfcPumpTypeEnum, 'SUMPPUMP', INDETERMINATE) -verticalinline = getattr(IfcPumpTypeEnum, 'VERTICALINLINE', INDETERMINATE) -verticalturbine = getattr(IfcPumpTypeEnum, 'VERTICALTURBINE', INDETERMINATE) -userdefined = getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPumpTypeEnum, 'NOTDEFINED', INDETERMINATE) +circulator = IfcPumpTypeEnum.CIRCULATOR +endsuction = IfcPumpTypeEnum.ENDSUCTION +splitcase = IfcPumpTypeEnum.SPLITCASE +submersiblepump = IfcPumpTypeEnum.SUBMERSIBLEPUMP +sumppump = IfcPumpTypeEnum.SUMPPUMP +verticalinline = IfcPumpTypeEnum.VERTICALINLINE +verticalturbine = IfcPumpTypeEnum.VERTICALTURBINE +userdefined = IfcPumpTypeEnum.USERDEFINED +notdefined = IfcPumpTypeEnum.NOTDEFINED IfcRailTypeEnum = enum_namespace() -blade = getattr(IfcRailTypeEnum, 'BLADE', INDETERMINATE) -checkrail = getattr(IfcRailTypeEnum, 'CHECKRAIL', INDETERMINATE) -guardrail = getattr(IfcRailTypeEnum, 'GUARDRAIL', INDETERMINATE) -rackrail = getattr(IfcRailTypeEnum, 'RACKRAIL', INDETERMINATE) -rail = getattr(IfcRailTypeEnum, 'RAIL', INDETERMINATE) -stockrail = getattr(IfcRailTypeEnum, 'STOCKRAIL', INDETERMINATE) -userdefined = getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailTypeEnum, 'NOTDEFINED', INDETERMINATE) +blade = IfcRailTypeEnum.BLADE +checkrail = IfcRailTypeEnum.CHECKRAIL +guardrail = IfcRailTypeEnum.GUARDRAIL +rackrail = IfcRailTypeEnum.RACKRAIL +rail = IfcRailTypeEnum.RAIL +stockrail = IfcRailTypeEnum.STOCKRAIL +userdefined = IfcRailTypeEnum.USERDEFINED +notdefined = IfcRailTypeEnum.NOTDEFINED IfcRailingTypeEnum = enum_namespace() -balustrade = getattr(IfcRailingTypeEnum, 'BALUSTRADE', INDETERMINATE) -fence = getattr(IfcRailingTypeEnum, 'FENCE', INDETERMINATE) -guardrail = getattr(IfcRailingTypeEnum, 'GUARDRAIL', INDETERMINATE) -handrail = getattr(IfcRailingTypeEnum, 'HANDRAIL', INDETERMINATE) -userdefined = getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailingTypeEnum, 'NOTDEFINED', INDETERMINATE) +balustrade = IfcRailingTypeEnum.BALUSTRADE +fence = IfcRailingTypeEnum.FENCE +guardrail = IfcRailingTypeEnum.GUARDRAIL +handrail = IfcRailingTypeEnum.HANDRAIL +userdefined = IfcRailingTypeEnum.USERDEFINED +notdefined = IfcRailingTypeEnum.NOTDEFINED IfcRailwayPartTypeEnum = enum_namespace() -dilatationsuperstructure = getattr(IfcRailwayPartTypeEnum, 'DILATATIONSUPERSTRUCTURE', INDETERMINATE) -linesidestructure = getattr(IfcRailwayPartTypeEnum, 'LINESIDESTRUCTURE', INDETERMINATE) -linesidestructurepart = getattr(IfcRailwayPartTypeEnum, 'LINESIDESTRUCTUREPART', INDETERMINATE) -plaintracksuperstructure = getattr(IfcRailwayPartTypeEnum, 'PLAINTRACKSUPERSTRUCTURE', INDETERMINATE) -superstructure = getattr(IfcRailwayPartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -trackstructure = getattr(IfcRailwayPartTypeEnum, 'TRACKSTRUCTURE', INDETERMINATE) -trackstructurepart = getattr(IfcRailwayPartTypeEnum, 'TRACKSTRUCTUREPART', INDETERMINATE) -turnoutsuperstructure = getattr(IfcRailwayPartTypeEnum, 'TURNOUTSUPERSTRUCTURE', INDETERMINATE) -userdefined = getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailwayPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +dilatationsuperstructure = IfcRailwayPartTypeEnum.DILATATIONSUPERSTRUCTURE +linesidestructure = IfcRailwayPartTypeEnum.LINESIDESTRUCTURE +linesidestructurepart = IfcRailwayPartTypeEnum.LINESIDESTRUCTUREPART +plaintracksuperstructure = IfcRailwayPartTypeEnum.PLAINTRACKSUPERSTRUCTURE +superstructure = IfcRailwayPartTypeEnum.SUPERSTRUCTURE +trackstructure = IfcRailwayPartTypeEnum.TRACKSTRUCTURE +trackstructurepart = IfcRailwayPartTypeEnum.TRACKSTRUCTUREPART +turnoutsuperstructure = IfcRailwayPartTypeEnum.TURNOUTSUPERSTRUCTURE +userdefined = IfcRailwayPartTypeEnum.USERDEFINED +notdefined = IfcRailwayPartTypeEnum.NOTDEFINED IfcRailwayTypeEnum = enum_namespace() -userdefined = getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailwayTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcRailwayTypeEnum.USERDEFINED +notdefined = IfcRailwayTypeEnum.NOTDEFINED IfcRampFlightTypeEnum = enum_namespace() -spiral = getattr(IfcRampFlightTypeEnum, 'SPIRAL', INDETERMINATE) -straight = getattr(IfcRampFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -userdefined = getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRampFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +spiral = IfcRampFlightTypeEnum.SPIRAL +straight = IfcRampFlightTypeEnum.STRAIGHT +userdefined = IfcRampFlightTypeEnum.USERDEFINED +notdefined = IfcRampFlightTypeEnum.NOTDEFINED IfcRampTypeEnum = enum_namespace() -half_turn_ramp = getattr(IfcRampTypeEnum, 'HALF_TURN_RAMP', INDETERMINATE) -quarter_turn_ramp = getattr(IfcRampTypeEnum, 'QUARTER_TURN_RAMP', INDETERMINATE) -spiral_ramp = getattr(IfcRampTypeEnum, 'SPIRAL_RAMP', INDETERMINATE) -straight_run_ramp = getattr(IfcRampTypeEnum, 'STRAIGHT_RUN_RAMP', INDETERMINATE) -two_quarter_turn_ramp = getattr(IfcRampTypeEnum, 'TWO_QUARTER_TURN_RAMP', INDETERMINATE) -two_straight_run_ramp = getattr(IfcRampTypeEnum, 'TWO_STRAIGHT_RUN_RAMP', INDETERMINATE) -userdefined = getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRampTypeEnum, 'NOTDEFINED', INDETERMINATE) +half_turn_ramp = IfcRampTypeEnum.HALF_TURN_RAMP +quarter_turn_ramp = IfcRampTypeEnum.QUARTER_TURN_RAMP +spiral_ramp = IfcRampTypeEnum.SPIRAL_RAMP +straight_run_ramp = IfcRampTypeEnum.STRAIGHT_RUN_RAMP +two_quarter_turn_ramp = IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP +two_straight_run_ramp = IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP +userdefined = IfcRampTypeEnum.USERDEFINED +notdefined = IfcRampTypeEnum.NOTDEFINED IfcRecurrenceTypeEnum = enum_namespace() -by_day_count = getattr(IfcRecurrenceTypeEnum, 'BY_DAY_COUNT', INDETERMINATE) -by_weekday_count = getattr(IfcRecurrenceTypeEnum, 'BY_WEEKDAY_COUNT', INDETERMINATE) -daily = getattr(IfcRecurrenceTypeEnum, 'DAILY', INDETERMINATE) -monthly_by_day_of_month = getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_DAY_OF_MONTH', INDETERMINATE) -monthly_by_position = getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_POSITION', INDETERMINATE) -weekly = getattr(IfcRecurrenceTypeEnum, 'WEEKLY', INDETERMINATE) -yearly_by_day_of_month = getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_DAY_OF_MONTH', INDETERMINATE) -yearly_by_position = getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_POSITION', INDETERMINATE) +by_day_count = IfcRecurrenceTypeEnum.BY_DAY_COUNT +by_weekday_count = IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT +daily = IfcRecurrenceTypeEnum.DAILY +monthly_by_day_of_month = IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH +monthly_by_position = IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION +weekly = IfcRecurrenceTypeEnum.WEEKLY +yearly_by_day_of_month = IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH +yearly_by_position = IfcRecurrenceTypeEnum.YEARLY_BY_POSITION IfcReferentTypeEnum = enum_namespace() -boundary = getattr(IfcReferentTypeEnum, 'BOUNDARY', INDETERMINATE) -intersection = getattr(IfcReferentTypeEnum, 'INTERSECTION', INDETERMINATE) -kilopoint = getattr(IfcReferentTypeEnum, 'KILOPOINT', INDETERMINATE) -landmark = getattr(IfcReferentTypeEnum, 'LANDMARK', INDETERMINATE) -milepoint = getattr(IfcReferentTypeEnum, 'MILEPOINT', INDETERMINATE) -position = getattr(IfcReferentTypeEnum, 'POSITION', INDETERMINATE) -referencemarker = getattr(IfcReferentTypeEnum, 'REFERENCEMARKER', INDETERMINATE) -station = getattr(IfcReferentTypeEnum, 'STATION', INDETERMINATE) -userdefined = getattr(IfcReferentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReferentTypeEnum, 'NOTDEFINED', INDETERMINATE) +boundary = IfcReferentTypeEnum.BOUNDARY +intersection = IfcReferentTypeEnum.INTERSECTION +kilopoint = IfcReferentTypeEnum.KILOPOINT +landmark = IfcReferentTypeEnum.LANDMARK +milepoint = IfcReferentTypeEnum.MILEPOINT +position = IfcReferentTypeEnum.POSITION +referencemarker = IfcReferentTypeEnum.REFERENCEMARKER +station = IfcReferentTypeEnum.STATION +userdefined = IfcReferentTypeEnum.USERDEFINED +notdefined = IfcReferentTypeEnum.NOTDEFINED IfcReflectanceMethodEnum = enum_namespace() -blinn = getattr(IfcReflectanceMethodEnum, 'BLINN', INDETERMINATE) -flat = getattr(IfcReflectanceMethodEnum, 'FLAT', INDETERMINATE) -glass = getattr(IfcReflectanceMethodEnum, 'GLASS', INDETERMINATE) -matt = getattr(IfcReflectanceMethodEnum, 'MATT', INDETERMINATE) -metal = getattr(IfcReflectanceMethodEnum, 'METAL', INDETERMINATE) -mirror = getattr(IfcReflectanceMethodEnum, 'MIRROR', INDETERMINATE) -phong = getattr(IfcReflectanceMethodEnum, 'PHONG', INDETERMINATE) -physical = getattr(IfcReflectanceMethodEnum, 'PHYSICAL', INDETERMINATE) -plastic = getattr(IfcReflectanceMethodEnum, 'PLASTIC', INDETERMINATE) -strauss = getattr(IfcReflectanceMethodEnum, 'STRAUSS', INDETERMINATE) -notdefined = getattr(IfcReflectanceMethodEnum, 'NOTDEFINED', INDETERMINATE) +blinn = IfcReflectanceMethodEnum.BLINN +flat = IfcReflectanceMethodEnum.FLAT +glass = IfcReflectanceMethodEnum.GLASS +matt = IfcReflectanceMethodEnum.MATT +metal = IfcReflectanceMethodEnum.METAL +mirror = IfcReflectanceMethodEnum.MIRROR +phong = IfcReflectanceMethodEnum.PHONG +physical = IfcReflectanceMethodEnum.PHYSICAL +plastic = IfcReflectanceMethodEnum.PLASTIC +strauss = IfcReflectanceMethodEnum.STRAUSS +notdefined = IfcReflectanceMethodEnum.NOTDEFINED IfcReinforcedSoilTypeEnum = enum_namespace() -dynamicallycompacted = getattr(IfcReinforcedSoilTypeEnum, 'DYNAMICALLYCOMPACTED', INDETERMINATE) -grouted = getattr(IfcReinforcedSoilTypeEnum, 'GROUTED', INDETERMINATE) -replaced = getattr(IfcReinforcedSoilTypeEnum, 'REPLACED', INDETERMINATE) -rollercompacted = getattr(IfcReinforcedSoilTypeEnum, 'ROLLERCOMPACTED', INDETERMINATE) -surchargepreloaded = getattr(IfcReinforcedSoilTypeEnum, 'SURCHARGEPRELOADED', INDETERMINATE) -verticallydrained = getattr(IfcReinforcedSoilTypeEnum, 'VERTICALLYDRAINED', INDETERMINATE) -userdefined = getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcedSoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dynamicallycompacted = IfcReinforcedSoilTypeEnum.DYNAMICALLYCOMPACTED +grouted = IfcReinforcedSoilTypeEnum.GROUTED +replaced = IfcReinforcedSoilTypeEnum.REPLACED +rollercompacted = IfcReinforcedSoilTypeEnum.ROLLERCOMPACTED +surchargepreloaded = IfcReinforcedSoilTypeEnum.SURCHARGEPRELOADED +verticallydrained = IfcReinforcedSoilTypeEnum.VERTICALLYDRAINED +userdefined = IfcReinforcedSoilTypeEnum.USERDEFINED +notdefined = IfcReinforcedSoilTypeEnum.NOTDEFINED IfcReinforcingBarRoleEnum = enum_namespace() -anchoring = getattr(IfcReinforcingBarRoleEnum, 'ANCHORING', INDETERMINATE) -edge = getattr(IfcReinforcingBarRoleEnum, 'EDGE', INDETERMINATE) -ligature = getattr(IfcReinforcingBarRoleEnum, 'LIGATURE', INDETERMINATE) -main = getattr(IfcReinforcingBarRoleEnum, 'MAIN', INDETERMINATE) -punching = getattr(IfcReinforcingBarRoleEnum, 'PUNCHING', INDETERMINATE) -ring = getattr(IfcReinforcingBarRoleEnum, 'RING', INDETERMINATE) -shear = getattr(IfcReinforcingBarRoleEnum, 'SHEAR', INDETERMINATE) -stud = getattr(IfcReinforcingBarRoleEnum, 'STUD', INDETERMINATE) -userdefined = getattr(IfcReinforcingBarRoleEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingBarRoleEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarRoleEnum.ANCHORING +edge = IfcReinforcingBarRoleEnum.EDGE +ligature = IfcReinforcingBarRoleEnum.LIGATURE +main = IfcReinforcingBarRoleEnum.MAIN +punching = IfcReinforcingBarRoleEnum.PUNCHING +ring = IfcReinforcingBarRoleEnum.RING +shear = IfcReinforcingBarRoleEnum.SHEAR +stud = IfcReinforcingBarRoleEnum.STUD +userdefined = IfcReinforcingBarRoleEnum.USERDEFINED +notdefined = IfcReinforcingBarRoleEnum.NOTDEFINED IfcReinforcingBarSurfaceEnum = enum_namespace() -plain = getattr(IfcReinforcingBarSurfaceEnum, 'PLAIN', INDETERMINATE) -textured = getattr(IfcReinforcingBarSurfaceEnum, 'TEXTURED', INDETERMINATE) +plain = IfcReinforcingBarSurfaceEnum.PLAIN +textured = IfcReinforcingBarSurfaceEnum.TEXTURED IfcReinforcingBarTypeEnum = enum_namespace() -anchoring = getattr(IfcReinforcingBarTypeEnum, 'ANCHORING', INDETERMINATE) -edge = getattr(IfcReinforcingBarTypeEnum, 'EDGE', INDETERMINATE) -ligature = getattr(IfcReinforcingBarTypeEnum, 'LIGATURE', INDETERMINATE) -main = getattr(IfcReinforcingBarTypeEnum, 'MAIN', INDETERMINATE) -punching = getattr(IfcReinforcingBarTypeEnum, 'PUNCHING', INDETERMINATE) -ring = getattr(IfcReinforcingBarTypeEnum, 'RING', INDETERMINATE) -shear = getattr(IfcReinforcingBarTypeEnum, 'SHEAR', INDETERMINATE) -spacebar = getattr(IfcReinforcingBarTypeEnum, 'SPACEBAR', INDETERMINATE) -stud = getattr(IfcReinforcingBarTypeEnum, 'STUD', INDETERMINATE) -userdefined = getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingBarTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarTypeEnum.ANCHORING +edge = IfcReinforcingBarTypeEnum.EDGE +ligature = IfcReinforcingBarTypeEnum.LIGATURE +main = IfcReinforcingBarTypeEnum.MAIN +punching = IfcReinforcingBarTypeEnum.PUNCHING +ring = IfcReinforcingBarTypeEnum.RING +shear = IfcReinforcingBarTypeEnum.SHEAR +spacebar = IfcReinforcingBarTypeEnum.SPACEBAR +stud = IfcReinforcingBarTypeEnum.STUD +userdefined = IfcReinforcingBarTypeEnum.USERDEFINED +notdefined = IfcReinforcingBarTypeEnum.NOTDEFINED IfcReinforcingMeshTypeEnum = enum_namespace() -userdefined = getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingMeshTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcReinforcingMeshTypeEnum.USERDEFINED +notdefined = IfcReinforcingMeshTypeEnum.NOTDEFINED IfcRoadPartTypeEnum = enum_namespace() -bicyclecrossing = getattr(IfcRoadPartTypeEnum, 'BICYCLECROSSING', INDETERMINATE) -bus_stop = getattr(IfcRoadPartTypeEnum, 'BUS_STOP', INDETERMINATE) -carriageway = getattr(IfcRoadPartTypeEnum, 'CARRIAGEWAY', INDETERMINATE) -centralisland = getattr(IfcRoadPartTypeEnum, 'CENTRALISLAND', INDETERMINATE) -centralreserve = getattr(IfcRoadPartTypeEnum, 'CENTRALRESERVE', INDETERMINATE) -hardshoulder = getattr(IfcRoadPartTypeEnum, 'HARDSHOULDER', INDETERMINATE) -intersection = getattr(IfcRoadPartTypeEnum, 'INTERSECTION', INDETERMINATE) -layby = getattr(IfcRoadPartTypeEnum, 'LAYBY', INDETERMINATE) -parkingbay = getattr(IfcRoadPartTypeEnum, 'PARKINGBAY', INDETERMINATE) -passingbay = getattr(IfcRoadPartTypeEnum, 'PASSINGBAY', INDETERMINATE) -pedestrian_crossing = getattr(IfcRoadPartTypeEnum, 'PEDESTRIAN_CROSSING', INDETERMINATE) -railwaycrossing = getattr(IfcRoadPartTypeEnum, 'RAILWAYCROSSING', INDETERMINATE) -refugeisland = getattr(IfcRoadPartTypeEnum, 'REFUGEISLAND', INDETERMINATE) -roadsegment = getattr(IfcRoadPartTypeEnum, 'ROADSEGMENT', INDETERMINATE) -roadside = getattr(IfcRoadPartTypeEnum, 'ROADSIDE', INDETERMINATE) -roadsidepart = getattr(IfcRoadPartTypeEnum, 'ROADSIDEPART', INDETERMINATE) -roadwayplateau = getattr(IfcRoadPartTypeEnum, 'ROADWAYPLATEAU', INDETERMINATE) -roundabout = getattr(IfcRoadPartTypeEnum, 'ROUNDABOUT', INDETERMINATE) -shoulder = getattr(IfcRoadPartTypeEnum, 'SHOULDER', INDETERMINATE) -sidewalk = getattr(IfcRoadPartTypeEnum, 'SIDEWALK', INDETERMINATE) -softshoulder = getattr(IfcRoadPartTypeEnum, 'SOFTSHOULDER', INDETERMINATE) -tollplaza = getattr(IfcRoadPartTypeEnum, 'TOLLPLAZA', INDETERMINATE) -trafficisland = getattr(IfcRoadPartTypeEnum, 'TRAFFICISLAND', INDETERMINATE) -trafficlane = getattr(IfcRoadPartTypeEnum, 'TRAFFICLANE', INDETERMINATE) -userdefined = getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRoadPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +bicyclecrossing = IfcRoadPartTypeEnum.BICYCLECROSSING +bus_stop = IfcRoadPartTypeEnum.BUS_STOP +carriageway = IfcRoadPartTypeEnum.CARRIAGEWAY +centralisland = IfcRoadPartTypeEnum.CENTRALISLAND +centralreserve = IfcRoadPartTypeEnum.CENTRALRESERVE +hardshoulder = IfcRoadPartTypeEnum.HARDSHOULDER +intersection = IfcRoadPartTypeEnum.INTERSECTION +layby = IfcRoadPartTypeEnum.LAYBY +parkingbay = IfcRoadPartTypeEnum.PARKINGBAY +passingbay = IfcRoadPartTypeEnum.PASSINGBAY +pedestrian_crossing = IfcRoadPartTypeEnum.PEDESTRIAN_CROSSING +railwaycrossing = IfcRoadPartTypeEnum.RAILWAYCROSSING +refugeisland = IfcRoadPartTypeEnum.REFUGEISLAND +roadsegment = IfcRoadPartTypeEnum.ROADSEGMENT +roadside = IfcRoadPartTypeEnum.ROADSIDE +roadsidepart = IfcRoadPartTypeEnum.ROADSIDEPART +roadwayplateau = IfcRoadPartTypeEnum.ROADWAYPLATEAU +roundabout = IfcRoadPartTypeEnum.ROUNDABOUT +shoulder = IfcRoadPartTypeEnum.SHOULDER +sidewalk = IfcRoadPartTypeEnum.SIDEWALK +softshoulder = IfcRoadPartTypeEnum.SOFTSHOULDER +tollplaza = IfcRoadPartTypeEnum.TOLLPLAZA +trafficisland = IfcRoadPartTypeEnum.TRAFFICISLAND +trafficlane = IfcRoadPartTypeEnum.TRAFFICLANE +userdefined = IfcRoadPartTypeEnum.USERDEFINED +notdefined = IfcRoadPartTypeEnum.NOTDEFINED IfcRoadTypeEnum = enum_namespace() -userdefined = getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRoadTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcRoadTypeEnum.USERDEFINED +notdefined = IfcRoadTypeEnum.NOTDEFINED IfcRoleEnum = enum_namespace() -architect = getattr(IfcRoleEnum, 'ARCHITECT', INDETERMINATE) -buildingoperator = getattr(IfcRoleEnum, 'BUILDINGOPERATOR', INDETERMINATE) -buildingowner = getattr(IfcRoleEnum, 'BUILDINGOWNER', INDETERMINATE) -civilengineer = getattr(IfcRoleEnum, 'CIVILENGINEER', INDETERMINATE) -client = getattr(IfcRoleEnum, 'CLIENT', INDETERMINATE) -commissioningengineer = getattr(IfcRoleEnum, 'COMMISSIONINGENGINEER', INDETERMINATE) -constructionmanager = getattr(IfcRoleEnum, 'CONSTRUCTIONMANAGER', INDETERMINATE) -consultant = getattr(IfcRoleEnum, 'CONSULTANT', INDETERMINATE) -contractor = getattr(IfcRoleEnum, 'CONTRACTOR', INDETERMINATE) -costengineer = getattr(IfcRoleEnum, 'COSTENGINEER', INDETERMINATE) -electricalengineer = getattr(IfcRoleEnum, 'ELECTRICALENGINEER', INDETERMINATE) -engineer = getattr(IfcRoleEnum, 'ENGINEER', INDETERMINATE) -facilitiesmanager = getattr(IfcRoleEnum, 'FACILITIESMANAGER', INDETERMINATE) -fieldconstructionmanager = getattr(IfcRoleEnum, 'FIELDCONSTRUCTIONMANAGER', INDETERMINATE) -manufacturer = getattr(IfcRoleEnum, 'MANUFACTURER', INDETERMINATE) -mechanicalengineer = getattr(IfcRoleEnum, 'MECHANICALENGINEER', INDETERMINATE) -owner = getattr(IfcRoleEnum, 'OWNER', INDETERMINATE) -projectmanager = getattr(IfcRoleEnum, 'PROJECTMANAGER', INDETERMINATE) -reseller = getattr(IfcRoleEnum, 'RESELLER', INDETERMINATE) -structuralengineer = getattr(IfcRoleEnum, 'STRUCTURALENGINEER', INDETERMINATE) -subcontractor = getattr(IfcRoleEnum, 'SUBCONTRACTOR', INDETERMINATE) -supplier = getattr(IfcRoleEnum, 'SUPPLIER', INDETERMINATE) -userdefined = getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) +architect = IfcRoleEnum.ARCHITECT +buildingoperator = IfcRoleEnum.BUILDINGOPERATOR +buildingowner = IfcRoleEnum.BUILDINGOWNER +civilengineer = IfcRoleEnum.CIVILENGINEER +client = IfcRoleEnum.CLIENT +commissioningengineer = IfcRoleEnum.COMMISSIONINGENGINEER +constructionmanager = IfcRoleEnum.CONSTRUCTIONMANAGER +consultant = IfcRoleEnum.CONSULTANT +contractor = IfcRoleEnum.CONTRACTOR +costengineer = IfcRoleEnum.COSTENGINEER +electricalengineer = IfcRoleEnum.ELECTRICALENGINEER +engineer = IfcRoleEnum.ENGINEER +facilitiesmanager = IfcRoleEnum.FACILITIESMANAGER +fieldconstructionmanager = IfcRoleEnum.FIELDCONSTRUCTIONMANAGER +manufacturer = IfcRoleEnum.MANUFACTURER +mechanicalengineer = IfcRoleEnum.MECHANICALENGINEER +owner = IfcRoleEnum.OWNER +projectmanager = IfcRoleEnum.PROJECTMANAGER +reseller = IfcRoleEnum.RESELLER +structuralengineer = IfcRoleEnum.STRUCTURALENGINEER +subcontractor = IfcRoleEnum.SUBCONTRACTOR +supplier = IfcRoleEnum.SUPPLIER +userdefined = IfcRoleEnum.USERDEFINED IfcRoofTypeEnum = enum_namespace() -barrel_roof = getattr(IfcRoofTypeEnum, 'BARREL_ROOF', INDETERMINATE) -butterfly_roof = getattr(IfcRoofTypeEnum, 'BUTTERFLY_ROOF', INDETERMINATE) -dome_roof = getattr(IfcRoofTypeEnum, 'DOME_ROOF', INDETERMINATE) -flat_roof = getattr(IfcRoofTypeEnum, 'FLAT_ROOF', INDETERMINATE) -freeform = getattr(IfcRoofTypeEnum, 'FREEFORM', INDETERMINATE) -gable_roof = getattr(IfcRoofTypeEnum, 'GABLE_ROOF', INDETERMINATE) -gambrel_roof = getattr(IfcRoofTypeEnum, 'GAMBREL_ROOF', INDETERMINATE) -hipped_gable_roof = getattr(IfcRoofTypeEnum, 'HIPPED_GABLE_ROOF', INDETERMINATE) -hip_roof = getattr(IfcRoofTypeEnum, 'HIP_ROOF', INDETERMINATE) -mansard_roof = getattr(IfcRoofTypeEnum, 'MANSARD_ROOF', INDETERMINATE) -pavilion_roof = getattr(IfcRoofTypeEnum, 'PAVILION_ROOF', INDETERMINATE) -rainbow_roof = getattr(IfcRoofTypeEnum, 'RAINBOW_ROOF', INDETERMINATE) -shed_roof = getattr(IfcRoofTypeEnum, 'SHED_ROOF', INDETERMINATE) -userdefined = getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRoofTypeEnum, 'NOTDEFINED', INDETERMINATE) +barrel_roof = IfcRoofTypeEnum.BARREL_ROOF +butterfly_roof = IfcRoofTypeEnum.BUTTERFLY_ROOF +dome_roof = IfcRoofTypeEnum.DOME_ROOF +flat_roof = IfcRoofTypeEnum.FLAT_ROOF +freeform = IfcRoofTypeEnum.FREEFORM +gable_roof = IfcRoofTypeEnum.GABLE_ROOF +gambrel_roof = IfcRoofTypeEnum.GAMBREL_ROOF +hipped_gable_roof = IfcRoofTypeEnum.HIPPED_GABLE_ROOF +hip_roof = IfcRoofTypeEnum.HIP_ROOF +mansard_roof = IfcRoofTypeEnum.MANSARD_ROOF +pavilion_roof = IfcRoofTypeEnum.PAVILION_ROOF +rainbow_roof = IfcRoofTypeEnum.RAINBOW_ROOF +shed_roof = IfcRoofTypeEnum.SHED_ROOF +userdefined = IfcRoofTypeEnum.USERDEFINED +notdefined = IfcRoofTypeEnum.NOTDEFINED IfcSIPrefix = enum_namespace() -atto = getattr(IfcSIPrefix, 'ATTO', INDETERMINATE) -centi = getattr(IfcSIPrefix, 'CENTI', INDETERMINATE) -deca = getattr(IfcSIPrefix, 'DECA', INDETERMINATE) -deci = getattr(IfcSIPrefix, 'DECI', INDETERMINATE) -exa = getattr(IfcSIPrefix, 'EXA', INDETERMINATE) -femto = getattr(IfcSIPrefix, 'FEMTO', INDETERMINATE) -giga = getattr(IfcSIPrefix, 'GIGA', INDETERMINATE) -hecto = getattr(IfcSIPrefix, 'HECTO', INDETERMINATE) -kilo = getattr(IfcSIPrefix, 'KILO', INDETERMINATE) -mega = getattr(IfcSIPrefix, 'MEGA', INDETERMINATE) -micro = getattr(IfcSIPrefix, 'MICRO', INDETERMINATE) -milli = getattr(IfcSIPrefix, 'MILLI', INDETERMINATE) -nano = getattr(IfcSIPrefix, 'NANO', INDETERMINATE) -peta = getattr(IfcSIPrefix, 'PETA', INDETERMINATE) -pico = getattr(IfcSIPrefix, 'PICO', INDETERMINATE) -tera = getattr(IfcSIPrefix, 'TERA', INDETERMINATE) +atto = IfcSIPrefix.ATTO +centi = IfcSIPrefix.CENTI +deca = IfcSIPrefix.DECA +deci = IfcSIPrefix.DECI +exa = IfcSIPrefix.EXA +femto = IfcSIPrefix.FEMTO +giga = IfcSIPrefix.GIGA +hecto = IfcSIPrefix.HECTO +kilo = IfcSIPrefix.KILO +mega = IfcSIPrefix.MEGA +micro = IfcSIPrefix.MICRO +milli = IfcSIPrefix.MILLI +nano = IfcSIPrefix.NANO +peta = IfcSIPrefix.PETA +pico = IfcSIPrefix.PICO +tera = IfcSIPrefix.TERA IfcSIUnitName = enum_namespace() -ampere = getattr(IfcSIUnitName, 'AMPERE', INDETERMINATE) -becquerel = getattr(IfcSIUnitName, 'BECQUEREL', INDETERMINATE) -candela = getattr(IfcSIUnitName, 'CANDELA', INDETERMINATE) -coulomb = getattr(IfcSIUnitName, 'COULOMB', INDETERMINATE) -cubic_metre = getattr(IfcSIUnitName, 'CUBIC_METRE', INDETERMINATE) -degree_celsius = getattr(IfcSIUnitName, 'DEGREE_CELSIUS', INDETERMINATE) -farad = getattr(IfcSIUnitName, 'FARAD', INDETERMINATE) -gram = getattr(IfcSIUnitName, 'GRAM', INDETERMINATE) -gray = getattr(IfcSIUnitName, 'GRAY', INDETERMINATE) -henry = getattr(IfcSIUnitName, 'HENRY', INDETERMINATE) -hertz = getattr(IfcSIUnitName, 'HERTZ', INDETERMINATE) -joule = getattr(IfcSIUnitName, 'JOULE', INDETERMINATE) -kelvin = getattr(IfcSIUnitName, 'KELVIN', INDETERMINATE) -lumen = getattr(IfcSIUnitName, 'LUMEN', INDETERMINATE) -lux = getattr(IfcSIUnitName, 'LUX', INDETERMINATE) -metre = getattr(IfcSIUnitName, 'METRE', INDETERMINATE) -mole = getattr(IfcSIUnitName, 'MOLE', INDETERMINATE) -newton = getattr(IfcSIUnitName, 'NEWTON', INDETERMINATE) -ohm = getattr(IfcSIUnitName, 'OHM', INDETERMINATE) -pascal = getattr(IfcSIUnitName, 'PASCAL', INDETERMINATE) -radian = getattr(IfcSIUnitName, 'RADIAN', INDETERMINATE) -second = getattr(IfcSIUnitName, 'SECOND', INDETERMINATE) -siemens = getattr(IfcSIUnitName, 'SIEMENS', INDETERMINATE) -sievert = getattr(IfcSIUnitName, 'SIEVERT', INDETERMINATE) -square_metre = getattr(IfcSIUnitName, 'SQUARE_METRE', INDETERMINATE) -steradian = getattr(IfcSIUnitName, 'STERADIAN', INDETERMINATE) -tesla = getattr(IfcSIUnitName, 'TESLA', INDETERMINATE) -volt = getattr(IfcSIUnitName, 'VOLT', INDETERMINATE) -watt = getattr(IfcSIUnitName, 'WATT', INDETERMINATE) -weber = getattr(IfcSIUnitName, 'WEBER', INDETERMINATE) +ampere = IfcSIUnitName.AMPERE +becquerel = IfcSIUnitName.BECQUEREL +candela = IfcSIUnitName.CANDELA +coulomb = IfcSIUnitName.COULOMB +cubic_metre = IfcSIUnitName.CUBIC_METRE +degree_celsius = IfcSIUnitName.DEGREE_CELSIUS +farad = IfcSIUnitName.FARAD +gram = IfcSIUnitName.GRAM +gray = IfcSIUnitName.GRAY +henry = IfcSIUnitName.HENRY +hertz = IfcSIUnitName.HERTZ +joule = IfcSIUnitName.JOULE +kelvin = IfcSIUnitName.KELVIN +lumen = IfcSIUnitName.LUMEN +lux = IfcSIUnitName.LUX +metre = IfcSIUnitName.METRE +mole = IfcSIUnitName.MOLE +newton = IfcSIUnitName.NEWTON +ohm = IfcSIUnitName.OHM +pascal = IfcSIUnitName.PASCAL +radian = IfcSIUnitName.RADIAN +second = IfcSIUnitName.SECOND +siemens = IfcSIUnitName.SIEMENS +sievert = IfcSIUnitName.SIEVERT +square_metre = IfcSIUnitName.SQUARE_METRE +steradian = IfcSIUnitName.STERADIAN +tesla = IfcSIUnitName.TESLA +volt = IfcSIUnitName.VOLT +watt = IfcSIUnitName.WATT +weber = IfcSIUnitName.WEBER IfcSanitaryTerminalTypeEnum = enum_namespace() -bath = getattr(IfcSanitaryTerminalTypeEnum, 'BATH', INDETERMINATE) -bidet = getattr(IfcSanitaryTerminalTypeEnum, 'BIDET', INDETERMINATE) -cistern = getattr(IfcSanitaryTerminalTypeEnum, 'CISTERN', INDETERMINATE) -sanitaryfountain = getattr(IfcSanitaryTerminalTypeEnum, 'SANITARYFOUNTAIN', INDETERMINATE) -shower = getattr(IfcSanitaryTerminalTypeEnum, 'SHOWER', INDETERMINATE) -sink = getattr(IfcSanitaryTerminalTypeEnum, 'SINK', INDETERMINATE) -toiletpan = getattr(IfcSanitaryTerminalTypeEnum, 'TOILETPAN', INDETERMINATE) -urinal = getattr(IfcSanitaryTerminalTypeEnum, 'URINAL', INDETERMINATE) -washhandbasin = getattr(IfcSanitaryTerminalTypeEnum, 'WASHHANDBASIN', INDETERMINATE) -wcseat = getattr(IfcSanitaryTerminalTypeEnum, 'WCSEAT', INDETERMINATE) -userdefined = getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSanitaryTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +bath = IfcSanitaryTerminalTypeEnum.BATH +bidet = IfcSanitaryTerminalTypeEnum.BIDET +cistern = IfcSanitaryTerminalTypeEnum.CISTERN +sanitaryfountain = IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN +shower = IfcSanitaryTerminalTypeEnum.SHOWER +sink = IfcSanitaryTerminalTypeEnum.SINK +toiletpan = IfcSanitaryTerminalTypeEnum.TOILETPAN +urinal = IfcSanitaryTerminalTypeEnum.URINAL +washhandbasin = IfcSanitaryTerminalTypeEnum.WASHHANDBASIN +wcseat = IfcSanitaryTerminalTypeEnum.WCSEAT +userdefined = IfcSanitaryTerminalTypeEnum.USERDEFINED +notdefined = IfcSanitaryTerminalTypeEnum.NOTDEFINED IfcSectionTypeEnum = enum_namespace() -tapered = getattr(IfcSectionTypeEnum, 'TAPERED', INDETERMINATE) -uniform = getattr(IfcSectionTypeEnum, 'UNIFORM', INDETERMINATE) +tapered = IfcSectionTypeEnum.TAPERED +uniform = IfcSectionTypeEnum.UNIFORM IfcSensorTypeEnum = enum_namespace() -co2sensor = getattr(IfcSensorTypeEnum, 'CO2SENSOR', INDETERMINATE) -conductancesensor = getattr(IfcSensorTypeEnum, 'CONDUCTANCESENSOR', INDETERMINATE) -contactsensor = getattr(IfcSensorTypeEnum, 'CONTACTSENSOR', INDETERMINATE) -cosensor = getattr(IfcSensorTypeEnum, 'COSENSOR', INDETERMINATE) -earthquakesensor = getattr(IfcSensorTypeEnum, 'EARTHQUAKESENSOR', INDETERMINATE) -firesensor = getattr(IfcSensorTypeEnum, 'FIRESENSOR', INDETERMINATE) -flowsensor = getattr(IfcSensorTypeEnum, 'FLOWSENSOR', INDETERMINATE) -foreignobjectdetectionsensor = getattr(IfcSensorTypeEnum, 'FOREIGNOBJECTDETECTIONSENSOR', INDETERMINATE) -frostsensor = getattr(IfcSensorTypeEnum, 'FROSTSENSOR', INDETERMINATE) -gassensor = getattr(IfcSensorTypeEnum, 'GASSENSOR', INDETERMINATE) -heatsensor = getattr(IfcSensorTypeEnum, 'HEATSENSOR', INDETERMINATE) -humiditysensor = getattr(IfcSensorTypeEnum, 'HUMIDITYSENSOR', INDETERMINATE) -identifiersensor = getattr(IfcSensorTypeEnum, 'IDENTIFIERSENSOR', INDETERMINATE) -ionconcentrationsensor = getattr(IfcSensorTypeEnum, 'IONCONCENTRATIONSENSOR', INDETERMINATE) -levelsensor = getattr(IfcSensorTypeEnum, 'LEVELSENSOR', INDETERMINATE) -lightsensor = getattr(IfcSensorTypeEnum, 'LIGHTSENSOR', INDETERMINATE) -moisturesensor = getattr(IfcSensorTypeEnum, 'MOISTURESENSOR', INDETERMINATE) -movementsensor = getattr(IfcSensorTypeEnum, 'MOVEMENTSENSOR', INDETERMINATE) -obstaclesensor = getattr(IfcSensorTypeEnum, 'OBSTACLESENSOR', INDETERMINATE) -phsensor = getattr(IfcSensorTypeEnum, 'PHSENSOR', INDETERMINATE) -pressuresensor = getattr(IfcSensorTypeEnum, 'PRESSURESENSOR', INDETERMINATE) -radiationsensor = getattr(IfcSensorTypeEnum, 'RADIATIONSENSOR', INDETERMINATE) -radioactivitysensor = getattr(IfcSensorTypeEnum, 'RADIOACTIVITYSENSOR', INDETERMINATE) -rainsensor = getattr(IfcSensorTypeEnum, 'RAINSENSOR', INDETERMINATE) -smokesensor = getattr(IfcSensorTypeEnum, 'SMOKESENSOR', INDETERMINATE) -snowdepthsensor = getattr(IfcSensorTypeEnum, 'SNOWDEPTHSENSOR', INDETERMINATE) -soundsensor = getattr(IfcSensorTypeEnum, 'SOUNDSENSOR', INDETERMINATE) -temperaturesensor = getattr(IfcSensorTypeEnum, 'TEMPERATURESENSOR', INDETERMINATE) -trainsensor = getattr(IfcSensorTypeEnum, 'TRAINSENSOR', INDETERMINATE) -turnoutclosuresensor = getattr(IfcSensorTypeEnum, 'TURNOUTCLOSURESENSOR', INDETERMINATE) -wheelsensor = getattr(IfcSensorTypeEnum, 'WHEELSENSOR', INDETERMINATE) -windsensor = getattr(IfcSensorTypeEnum, 'WINDSENSOR', INDETERMINATE) -userdefined = getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSensorTypeEnum, 'NOTDEFINED', INDETERMINATE) +co2sensor = IfcSensorTypeEnum.CO2SENSOR +conductancesensor = IfcSensorTypeEnum.CONDUCTANCESENSOR +contactsensor = IfcSensorTypeEnum.CONTACTSENSOR +cosensor = IfcSensorTypeEnum.COSENSOR +earthquakesensor = IfcSensorTypeEnum.EARTHQUAKESENSOR +firesensor = IfcSensorTypeEnum.FIRESENSOR +flowsensor = IfcSensorTypeEnum.FLOWSENSOR +foreignobjectdetectionsensor = IfcSensorTypeEnum.FOREIGNOBJECTDETECTIONSENSOR +frostsensor = IfcSensorTypeEnum.FROSTSENSOR +gassensor = IfcSensorTypeEnum.GASSENSOR +heatsensor = IfcSensorTypeEnum.HEATSENSOR +humiditysensor = IfcSensorTypeEnum.HUMIDITYSENSOR +identifiersensor = IfcSensorTypeEnum.IDENTIFIERSENSOR +ionconcentrationsensor = IfcSensorTypeEnum.IONCONCENTRATIONSENSOR +levelsensor = IfcSensorTypeEnum.LEVELSENSOR +lightsensor = IfcSensorTypeEnum.LIGHTSENSOR +moisturesensor = IfcSensorTypeEnum.MOISTURESENSOR +movementsensor = IfcSensorTypeEnum.MOVEMENTSENSOR +obstaclesensor = IfcSensorTypeEnum.OBSTACLESENSOR +phsensor = IfcSensorTypeEnum.PHSENSOR +pressuresensor = IfcSensorTypeEnum.PRESSURESENSOR +radiationsensor = IfcSensorTypeEnum.RADIATIONSENSOR +radioactivitysensor = IfcSensorTypeEnum.RADIOACTIVITYSENSOR +rainsensor = IfcSensorTypeEnum.RAINSENSOR +smokesensor = IfcSensorTypeEnum.SMOKESENSOR +snowdepthsensor = IfcSensorTypeEnum.SNOWDEPTHSENSOR +soundsensor = IfcSensorTypeEnum.SOUNDSENSOR +temperaturesensor = IfcSensorTypeEnum.TEMPERATURESENSOR +trainsensor = IfcSensorTypeEnum.TRAINSENSOR +turnoutclosuresensor = IfcSensorTypeEnum.TURNOUTCLOSURESENSOR +wheelsensor = IfcSensorTypeEnum.WHEELSENSOR +windsensor = IfcSensorTypeEnum.WINDSENSOR +userdefined = IfcSensorTypeEnum.USERDEFINED +notdefined = IfcSensorTypeEnum.NOTDEFINED IfcSequenceEnum = enum_namespace() -finish_finish = getattr(IfcSequenceEnum, 'FINISH_FINISH', INDETERMINATE) -finish_start = getattr(IfcSequenceEnum, 'FINISH_START', INDETERMINATE) -start_finish = getattr(IfcSequenceEnum, 'START_FINISH', INDETERMINATE) -start_start = getattr(IfcSequenceEnum, 'START_START', INDETERMINATE) -userdefined = getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSequenceEnum, 'NOTDEFINED', INDETERMINATE) +finish_finish = IfcSequenceEnum.FINISH_FINISH +finish_start = IfcSequenceEnum.FINISH_START +start_finish = IfcSequenceEnum.START_FINISH +start_start = IfcSequenceEnum.START_START +userdefined = IfcSequenceEnum.USERDEFINED +notdefined = IfcSequenceEnum.NOTDEFINED IfcShadingDeviceTypeEnum = enum_namespace() -awning = getattr(IfcShadingDeviceTypeEnum, 'AWNING', INDETERMINATE) -jalousie = getattr(IfcShadingDeviceTypeEnum, 'JALOUSIE', INDETERMINATE) -shutter = getattr(IfcShadingDeviceTypeEnum, 'SHUTTER', INDETERMINATE) -userdefined = getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcShadingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +awning = IfcShadingDeviceTypeEnum.AWNING +jalousie = IfcShadingDeviceTypeEnum.JALOUSIE +shutter = IfcShadingDeviceTypeEnum.SHUTTER +userdefined = IfcShadingDeviceTypeEnum.USERDEFINED +notdefined = IfcShadingDeviceTypeEnum.NOTDEFINED IfcSignTypeEnum = enum_namespace() -marker = getattr(IfcSignTypeEnum, 'MARKER', INDETERMINATE) -mirror = getattr(IfcSignTypeEnum, 'MIRROR', INDETERMINATE) -pictoral = getattr(IfcSignTypeEnum, 'PICTORAL', INDETERMINATE) -userdefined = getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSignTypeEnum, 'NOTDEFINED', INDETERMINATE) +marker = IfcSignTypeEnum.MARKER +mirror = IfcSignTypeEnum.MIRROR +pictoral = IfcSignTypeEnum.PICTORAL +userdefined = IfcSignTypeEnum.USERDEFINED +notdefined = IfcSignTypeEnum.NOTDEFINED IfcSignalTypeEnum = enum_namespace() -audio = getattr(IfcSignalTypeEnum, 'AUDIO', INDETERMINATE) -mixed = getattr(IfcSignalTypeEnum, 'MIXED', INDETERMINATE) -visual = getattr(IfcSignalTypeEnum, 'VISUAL', INDETERMINATE) -userdefined = getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSignalTypeEnum, 'NOTDEFINED', INDETERMINATE) +audio = IfcSignalTypeEnum.AUDIO +mixed = IfcSignalTypeEnum.MIXED +visual = IfcSignalTypeEnum.VISUAL +userdefined = IfcSignalTypeEnum.USERDEFINED +notdefined = IfcSignalTypeEnum.NOTDEFINED IfcSimplePropertyTemplateTypeEnum = enum_namespace() -p_boundedvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_BOUNDEDVALUE', INDETERMINATE) -p_enumeratedvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_ENUMERATEDVALUE', INDETERMINATE) -p_listvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_LISTVALUE', INDETERMINATE) -p_referencevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_REFERENCEVALUE', INDETERMINATE) -p_singlevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_SINGLEVALUE', INDETERMINATE) -p_tablevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_TABLEVALUE', INDETERMINATE) -q_area = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_AREA', INDETERMINATE) -q_count = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_COUNT', INDETERMINATE) -q_length = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_LENGTH', INDETERMINATE) -q_number = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_NUMBER', INDETERMINATE) -q_time = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_TIME', INDETERMINATE) -q_volume = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_VOLUME', INDETERMINATE) -q_weight = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_WEIGHT', INDETERMINATE) +p_boundedvalue = IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE +p_enumeratedvalue = IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE +p_listvalue = IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE +p_referencevalue = IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE +p_singlevalue = IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE +p_tablevalue = IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE +q_area = IfcSimplePropertyTemplateTypeEnum.Q_AREA +q_count = IfcSimplePropertyTemplateTypeEnum.Q_COUNT +q_length = IfcSimplePropertyTemplateTypeEnum.Q_LENGTH +q_number = IfcSimplePropertyTemplateTypeEnum.Q_NUMBER +q_time = IfcSimplePropertyTemplateTypeEnum.Q_TIME +q_volume = IfcSimplePropertyTemplateTypeEnum.Q_VOLUME +q_weight = IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT IfcSlabTypeEnum = enum_namespace() -approach_slab = getattr(IfcSlabTypeEnum, 'APPROACH_SLAB', INDETERMINATE) -baseslab = getattr(IfcSlabTypeEnum, 'BASESLAB', INDETERMINATE) -floor = getattr(IfcSlabTypeEnum, 'FLOOR', INDETERMINATE) -landing = getattr(IfcSlabTypeEnum, 'LANDING', INDETERMINATE) -paving = getattr(IfcSlabTypeEnum, 'PAVING', INDETERMINATE) -roof = getattr(IfcSlabTypeEnum, 'ROOF', INDETERMINATE) -sidewalk = getattr(IfcSlabTypeEnum, 'SIDEWALK', INDETERMINATE) -trackslab = getattr(IfcSlabTypeEnum, 'TRACKSLAB', INDETERMINATE) -wearing = getattr(IfcSlabTypeEnum, 'WEARING', INDETERMINATE) -userdefined = getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSlabTypeEnum, 'NOTDEFINED', INDETERMINATE) +approach_slab = IfcSlabTypeEnum.APPROACH_SLAB +baseslab = IfcSlabTypeEnum.BASESLAB +floor = IfcSlabTypeEnum.FLOOR +landing = IfcSlabTypeEnum.LANDING +paving = IfcSlabTypeEnum.PAVING +roof = IfcSlabTypeEnum.ROOF +sidewalk = IfcSlabTypeEnum.SIDEWALK +trackslab = IfcSlabTypeEnum.TRACKSLAB +wearing = IfcSlabTypeEnum.WEARING +userdefined = IfcSlabTypeEnum.USERDEFINED +notdefined = IfcSlabTypeEnum.NOTDEFINED IfcSolarDeviceTypeEnum = enum_namespace() -solarcollector = getattr(IfcSolarDeviceTypeEnum, 'SOLARCOLLECTOR', INDETERMINATE) -solarpanel = getattr(IfcSolarDeviceTypeEnum, 'SOLARPANEL', INDETERMINATE) -userdefined = getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSolarDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +solarcollector = IfcSolarDeviceTypeEnum.SOLARCOLLECTOR +solarpanel = IfcSolarDeviceTypeEnum.SOLARPANEL +userdefined = IfcSolarDeviceTypeEnum.USERDEFINED +notdefined = IfcSolarDeviceTypeEnum.NOTDEFINED IfcSpaceHeaterTypeEnum = enum_namespace() -convector = getattr(IfcSpaceHeaterTypeEnum, 'CONVECTOR', INDETERMINATE) -radiator = getattr(IfcSpaceHeaterTypeEnum, 'RADIATOR', INDETERMINATE) -userdefined = getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpaceHeaterTypeEnum, 'NOTDEFINED', INDETERMINATE) +convector = IfcSpaceHeaterTypeEnum.CONVECTOR +radiator = IfcSpaceHeaterTypeEnum.RADIATOR +userdefined = IfcSpaceHeaterTypeEnum.USERDEFINED +notdefined = IfcSpaceHeaterTypeEnum.NOTDEFINED IfcSpaceTypeEnum = enum_namespace() -berth = getattr(IfcSpaceTypeEnum, 'BERTH', INDETERMINATE) -external = getattr(IfcSpaceTypeEnum, 'EXTERNAL', INDETERMINATE) -gfa = getattr(IfcSpaceTypeEnum, 'GFA', INDETERMINATE) -internal = getattr(IfcSpaceTypeEnum, 'INTERNAL', INDETERMINATE) -parking = getattr(IfcSpaceTypeEnum, 'PARKING', INDETERMINATE) -space = getattr(IfcSpaceTypeEnum, 'SPACE', INDETERMINATE) -userdefined = getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpaceTypeEnum, 'NOTDEFINED', INDETERMINATE) +berth = IfcSpaceTypeEnum.BERTH +external = IfcSpaceTypeEnum.EXTERNAL +gfa = IfcSpaceTypeEnum.GFA +internal = IfcSpaceTypeEnum.INTERNAL +parking = IfcSpaceTypeEnum.PARKING +space = IfcSpaceTypeEnum.SPACE +userdefined = IfcSpaceTypeEnum.USERDEFINED +notdefined = IfcSpaceTypeEnum.NOTDEFINED IfcSpatialZoneTypeEnum = enum_namespace() -construction = getattr(IfcSpatialZoneTypeEnum, 'CONSTRUCTION', INDETERMINATE) -firesafety = getattr(IfcSpatialZoneTypeEnum, 'FIRESAFETY', INDETERMINATE) -interference = getattr(IfcSpatialZoneTypeEnum, 'INTERFERENCE', INDETERMINATE) -lighting = getattr(IfcSpatialZoneTypeEnum, 'LIGHTING', INDETERMINATE) -occupancy = getattr(IfcSpatialZoneTypeEnum, 'OCCUPANCY', INDETERMINATE) -reservation = getattr(IfcSpatialZoneTypeEnum, 'RESERVATION', INDETERMINATE) -security = getattr(IfcSpatialZoneTypeEnum, 'SECURITY', INDETERMINATE) -thermal = getattr(IfcSpatialZoneTypeEnum, 'THERMAL', INDETERMINATE) -transport = getattr(IfcSpatialZoneTypeEnum, 'TRANSPORT', INDETERMINATE) -ventilation = getattr(IfcSpatialZoneTypeEnum, 'VENTILATION', INDETERMINATE) -userdefined = getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpatialZoneTypeEnum, 'NOTDEFINED', INDETERMINATE) +construction = IfcSpatialZoneTypeEnum.CONSTRUCTION +firesafety = IfcSpatialZoneTypeEnum.FIRESAFETY +interference = IfcSpatialZoneTypeEnum.INTERFERENCE +lighting = IfcSpatialZoneTypeEnum.LIGHTING +occupancy = IfcSpatialZoneTypeEnum.OCCUPANCY +reservation = IfcSpatialZoneTypeEnum.RESERVATION +security = IfcSpatialZoneTypeEnum.SECURITY +thermal = IfcSpatialZoneTypeEnum.THERMAL +transport = IfcSpatialZoneTypeEnum.TRANSPORT +ventilation = IfcSpatialZoneTypeEnum.VENTILATION +userdefined = IfcSpatialZoneTypeEnum.USERDEFINED +notdefined = IfcSpatialZoneTypeEnum.NOTDEFINED IfcStackTerminalTypeEnum = enum_namespace() -birdcage = getattr(IfcStackTerminalTypeEnum, 'BIRDCAGE', INDETERMINATE) -cowl = getattr(IfcStackTerminalTypeEnum, 'COWL', INDETERMINATE) -rainwaterhopper = getattr(IfcStackTerminalTypeEnum, 'RAINWATERHOPPER', INDETERMINATE) -userdefined = getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStackTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +birdcage = IfcStackTerminalTypeEnum.BIRDCAGE +cowl = IfcStackTerminalTypeEnum.COWL +rainwaterhopper = IfcStackTerminalTypeEnum.RAINWATERHOPPER +userdefined = IfcStackTerminalTypeEnum.USERDEFINED +notdefined = IfcStackTerminalTypeEnum.NOTDEFINED IfcStairFlightTypeEnum = enum_namespace() -curved = getattr(IfcStairFlightTypeEnum, 'CURVED', INDETERMINATE) -freeform = getattr(IfcStairFlightTypeEnum, 'FREEFORM', INDETERMINATE) -spiral = getattr(IfcStairFlightTypeEnum, 'SPIRAL', INDETERMINATE) -straight = getattr(IfcStairFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -winder = getattr(IfcStairFlightTypeEnum, 'WINDER', INDETERMINATE) -userdefined = getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStairFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +curved = IfcStairFlightTypeEnum.CURVED +freeform = IfcStairFlightTypeEnum.FREEFORM +spiral = IfcStairFlightTypeEnum.SPIRAL +straight = IfcStairFlightTypeEnum.STRAIGHT +winder = IfcStairFlightTypeEnum.WINDER +userdefined = IfcStairFlightTypeEnum.USERDEFINED +notdefined = IfcStairFlightTypeEnum.NOTDEFINED IfcStairTypeEnum = enum_namespace() -curved_run_stair = getattr(IfcStairTypeEnum, 'CURVED_RUN_STAIR', INDETERMINATE) -double_return_stair = getattr(IfcStairTypeEnum, 'DOUBLE_RETURN_STAIR', INDETERMINATE) -half_turn_stair = getattr(IfcStairTypeEnum, 'HALF_TURN_STAIR', INDETERMINATE) -half_winding_stair = getattr(IfcStairTypeEnum, 'HALF_WINDING_STAIR', INDETERMINATE) -ladder = getattr(IfcStairTypeEnum, 'LADDER', INDETERMINATE) -quarter_turn_stair = getattr(IfcStairTypeEnum, 'QUARTER_TURN_STAIR', INDETERMINATE) -quarter_winding_stair = getattr(IfcStairTypeEnum, 'QUARTER_WINDING_STAIR', INDETERMINATE) -spiral_stair = getattr(IfcStairTypeEnum, 'SPIRAL_STAIR', INDETERMINATE) -straight_run_stair = getattr(IfcStairTypeEnum, 'STRAIGHT_RUN_STAIR', INDETERMINATE) -three_quarter_turn_stair = getattr(IfcStairTypeEnum, 'THREE_QUARTER_TURN_STAIR', INDETERMINATE) -three_quarter_winding_stair = getattr(IfcStairTypeEnum, 'THREE_QUARTER_WINDING_STAIR', INDETERMINATE) -two_curved_run_stair = getattr(IfcStairTypeEnum, 'TWO_CURVED_RUN_STAIR', INDETERMINATE) -two_quarter_turn_stair = getattr(IfcStairTypeEnum, 'TWO_QUARTER_TURN_STAIR', INDETERMINATE) -two_quarter_winding_stair = getattr(IfcStairTypeEnum, 'TWO_QUARTER_WINDING_STAIR', INDETERMINATE) -two_straight_run_stair = getattr(IfcStairTypeEnum, 'TWO_STRAIGHT_RUN_STAIR', INDETERMINATE) -userdefined = getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStairTypeEnum, 'NOTDEFINED', INDETERMINATE) +curved_run_stair = IfcStairTypeEnum.CURVED_RUN_STAIR +double_return_stair = IfcStairTypeEnum.DOUBLE_RETURN_STAIR +half_turn_stair = IfcStairTypeEnum.HALF_TURN_STAIR +half_winding_stair = IfcStairTypeEnum.HALF_WINDING_STAIR +ladder = IfcStairTypeEnum.LADDER +quarter_turn_stair = IfcStairTypeEnum.QUARTER_TURN_STAIR +quarter_winding_stair = IfcStairTypeEnum.QUARTER_WINDING_STAIR +spiral_stair = IfcStairTypeEnum.SPIRAL_STAIR +straight_run_stair = IfcStairTypeEnum.STRAIGHT_RUN_STAIR +three_quarter_turn_stair = IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR +three_quarter_winding_stair = IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR +two_curved_run_stair = IfcStairTypeEnum.TWO_CURVED_RUN_STAIR +two_quarter_turn_stair = IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR +two_quarter_winding_stair = IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR +two_straight_run_stair = IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR +userdefined = IfcStairTypeEnum.USERDEFINED +notdefined = IfcStairTypeEnum.NOTDEFINED IfcStateEnum = enum_namespace() -locked = getattr(IfcStateEnum, 'LOCKED', INDETERMINATE) -readonly = getattr(IfcStateEnum, 'READONLY', INDETERMINATE) -readonlylocked = getattr(IfcStateEnum, 'READONLYLOCKED', INDETERMINATE) -readwrite = getattr(IfcStateEnum, 'READWRITE', INDETERMINATE) -readwritelocked = getattr(IfcStateEnum, 'READWRITELOCKED', INDETERMINATE) +locked = IfcStateEnum.LOCKED +readonly = IfcStateEnum.READONLY +readonlylocked = IfcStateEnum.READONLYLOCKED +readwrite = IfcStateEnum.READWRITE +readwritelocked = IfcStateEnum.READWRITELOCKED IfcStructuralCurveActivityTypeEnum = enum_namespace() -const = getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE) -discrete = getattr(IfcStructuralCurveActivityTypeEnum, 'DISCRETE', INDETERMINATE) -equidistant = getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE) -linear = getattr(IfcStructuralCurveActivityTypeEnum, 'LINEAR', INDETERMINATE) -parabola = getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE) -polygonal = getattr(IfcStructuralCurveActivityTypeEnum, 'POLYGONAL', INDETERMINATE) -sinus = getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) -userdefined = getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralCurveActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralCurveActivityTypeEnum.CONST +discrete = IfcStructuralCurveActivityTypeEnum.DISCRETE +equidistant = IfcStructuralCurveActivityTypeEnum.EQUIDISTANT +linear = IfcStructuralCurveActivityTypeEnum.LINEAR +parabola = IfcStructuralCurveActivityTypeEnum.PARABOLA +polygonal = IfcStructuralCurveActivityTypeEnum.POLYGONAL +sinus = IfcStructuralCurveActivityTypeEnum.SINUS +userdefined = IfcStructuralCurveActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveActivityTypeEnum.NOTDEFINED IfcStructuralCurveMemberTypeEnum = enum_namespace() -cable = getattr(IfcStructuralCurveMemberTypeEnum, 'CABLE', INDETERMINATE) -compression_member = getattr(IfcStructuralCurveMemberTypeEnum, 'COMPRESSION_MEMBER', INDETERMINATE) -pin_joined_member = getattr(IfcStructuralCurveMemberTypeEnum, 'PIN_JOINED_MEMBER', INDETERMINATE) -rigid_joined_member = getattr(IfcStructuralCurveMemberTypeEnum, 'RIGID_JOINED_MEMBER', INDETERMINATE) -tension_member = getattr(IfcStructuralCurveMemberTypeEnum, 'TENSION_MEMBER', INDETERMINATE) -userdefined = getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralCurveMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcStructuralCurveMemberTypeEnum.CABLE +compression_member = IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER +pin_joined_member = IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER +rigid_joined_member = IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER +tension_member = IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER +userdefined = IfcStructuralCurveMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveMemberTypeEnum.NOTDEFINED IfcStructuralSurfaceActivityTypeEnum = enum_namespace() -bilinear = getattr(IfcStructuralSurfaceActivityTypeEnum, 'BILINEAR', INDETERMINATE) -const = getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE) -discrete = getattr(IfcStructuralSurfaceActivityTypeEnum, 'DISCRETE', INDETERMINATE) -isocontour = getattr(IfcStructuralSurfaceActivityTypeEnum, 'ISOCONTOUR', INDETERMINATE) -userdefined = getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralSurfaceActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +bilinear = IfcStructuralSurfaceActivityTypeEnum.BILINEAR +const = IfcStructuralSurfaceActivityTypeEnum.CONST +discrete = IfcStructuralSurfaceActivityTypeEnum.DISCRETE +isocontour = IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR +userdefined = IfcStructuralSurfaceActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED IfcStructuralSurfaceMemberTypeEnum = enum_namespace() -bending_element = getattr(IfcStructuralSurfaceMemberTypeEnum, 'BENDING_ELEMENT', INDETERMINATE) -membrane_element = getattr(IfcStructuralSurfaceMemberTypeEnum, 'MEMBRANE_ELEMENT', INDETERMINATE) -shell = getattr(IfcStructuralSurfaceMemberTypeEnum, 'SHELL', INDETERMINATE) -userdefined = getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralSurfaceMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_element = IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT +membrane_element = IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT +shell = IfcStructuralSurfaceMemberTypeEnum.SHELL +userdefined = IfcStructuralSurfaceMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED IfcSubContractResourceTypeEnum = enum_namespace() -purchase = getattr(IfcSubContractResourceTypeEnum, 'PURCHASE', INDETERMINATE) -work = getattr(IfcSubContractResourceTypeEnum, 'WORK', INDETERMINATE) -userdefined = getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSubContractResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +purchase = IfcSubContractResourceTypeEnum.PURCHASE +work = IfcSubContractResourceTypeEnum.WORK +userdefined = IfcSubContractResourceTypeEnum.USERDEFINED +notdefined = IfcSubContractResourceTypeEnum.NOTDEFINED IfcSurfaceFeatureTypeEnum = enum_namespace() -defect = getattr(IfcSurfaceFeatureTypeEnum, 'DEFECT', INDETERMINATE) -hatchmarking = getattr(IfcSurfaceFeatureTypeEnum, 'HATCHMARKING', INDETERMINATE) -linemarking = getattr(IfcSurfaceFeatureTypeEnum, 'LINEMARKING', INDETERMINATE) -mark = getattr(IfcSurfaceFeatureTypeEnum, 'MARK', INDETERMINATE) -nonskidsurfacing = getattr(IfcSurfaceFeatureTypeEnum, 'NONSKIDSURFACING', INDETERMINATE) -pavementsurfacemarking = getattr(IfcSurfaceFeatureTypeEnum, 'PAVEMENTSURFACEMARKING', INDETERMINATE) -rumblestrip = getattr(IfcSurfaceFeatureTypeEnum, 'RUMBLESTRIP', INDETERMINATE) -symbolmarking = getattr(IfcSurfaceFeatureTypeEnum, 'SYMBOLMARKING', INDETERMINATE) -tag = getattr(IfcSurfaceFeatureTypeEnum, 'TAG', INDETERMINATE) -transverserumblestrip = getattr(IfcSurfaceFeatureTypeEnum, 'TRANSVERSERUMBLESTRIP', INDETERMINATE) -treatment = getattr(IfcSurfaceFeatureTypeEnum, 'TREATMENT', INDETERMINATE) -userdefined = getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSurfaceFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +defect = IfcSurfaceFeatureTypeEnum.DEFECT +hatchmarking = IfcSurfaceFeatureTypeEnum.HATCHMARKING +linemarking = IfcSurfaceFeatureTypeEnum.LINEMARKING +mark = IfcSurfaceFeatureTypeEnum.MARK +nonskidsurfacing = IfcSurfaceFeatureTypeEnum.NONSKIDSURFACING +pavementsurfacemarking = IfcSurfaceFeatureTypeEnum.PAVEMENTSURFACEMARKING +rumblestrip = IfcSurfaceFeatureTypeEnum.RUMBLESTRIP +symbolmarking = IfcSurfaceFeatureTypeEnum.SYMBOLMARKING +tag = IfcSurfaceFeatureTypeEnum.TAG +transverserumblestrip = IfcSurfaceFeatureTypeEnum.TRANSVERSERUMBLESTRIP +treatment = IfcSurfaceFeatureTypeEnum.TREATMENT +userdefined = IfcSurfaceFeatureTypeEnum.USERDEFINED +notdefined = IfcSurfaceFeatureTypeEnum.NOTDEFINED IfcSurfaceSide = enum_namespace() -both = getattr(IfcSurfaceSide, 'BOTH', INDETERMINATE) -negative = getattr(IfcSurfaceSide, 'NEGATIVE', INDETERMINATE) -positive = getattr(IfcSurfaceSide, 'POSITIVE', INDETERMINATE) +both = IfcSurfaceSide.BOTH +negative = IfcSurfaceSide.NEGATIVE +positive = IfcSurfaceSide.POSITIVE IfcSwitchingDeviceTypeEnum = enum_namespace() -contactor = getattr(IfcSwitchingDeviceTypeEnum, 'CONTACTOR', INDETERMINATE) -dimmerswitch = getattr(IfcSwitchingDeviceTypeEnum, 'DIMMERSWITCH', INDETERMINATE) -emergencystop = getattr(IfcSwitchingDeviceTypeEnum, 'EMERGENCYSTOP', INDETERMINATE) -keypad = getattr(IfcSwitchingDeviceTypeEnum, 'KEYPAD', INDETERMINATE) -momentaryswitch = getattr(IfcSwitchingDeviceTypeEnum, 'MOMENTARYSWITCH', INDETERMINATE) -relay = getattr(IfcSwitchingDeviceTypeEnum, 'RELAY', INDETERMINATE) -selectorswitch = getattr(IfcSwitchingDeviceTypeEnum, 'SELECTORSWITCH', INDETERMINATE) -starter = getattr(IfcSwitchingDeviceTypeEnum, 'STARTER', INDETERMINATE) -start_and_stop_equipment = getattr(IfcSwitchingDeviceTypeEnum, 'START_AND_STOP_EQUIPMENT', INDETERMINATE) -switchdisconnector = getattr(IfcSwitchingDeviceTypeEnum, 'SWITCHDISCONNECTOR', INDETERMINATE) -toggleswitch = getattr(IfcSwitchingDeviceTypeEnum, 'TOGGLESWITCH', INDETERMINATE) -userdefined = getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSwitchingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +contactor = IfcSwitchingDeviceTypeEnum.CONTACTOR +dimmerswitch = IfcSwitchingDeviceTypeEnum.DIMMERSWITCH +emergencystop = IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP +keypad = IfcSwitchingDeviceTypeEnum.KEYPAD +momentaryswitch = IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH +relay = IfcSwitchingDeviceTypeEnum.RELAY +selectorswitch = IfcSwitchingDeviceTypeEnum.SELECTORSWITCH +starter = IfcSwitchingDeviceTypeEnum.STARTER +start_and_stop_equipment = IfcSwitchingDeviceTypeEnum.START_AND_STOP_EQUIPMENT +switchdisconnector = IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR +toggleswitch = IfcSwitchingDeviceTypeEnum.TOGGLESWITCH +userdefined = IfcSwitchingDeviceTypeEnum.USERDEFINED +notdefined = IfcSwitchingDeviceTypeEnum.NOTDEFINED IfcSystemFurnitureElementTypeEnum = enum_namespace() -panel = getattr(IfcSystemFurnitureElementTypeEnum, 'PANEL', INDETERMINATE) -subrack = getattr(IfcSystemFurnitureElementTypeEnum, 'SUBRACK', INDETERMINATE) -worksurface = getattr(IfcSystemFurnitureElementTypeEnum, 'WORKSURFACE', INDETERMINATE) -userdefined = getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSystemFurnitureElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +panel = IfcSystemFurnitureElementTypeEnum.PANEL +subrack = IfcSystemFurnitureElementTypeEnum.SUBRACK +worksurface = IfcSystemFurnitureElementTypeEnum.WORKSURFACE +userdefined = IfcSystemFurnitureElementTypeEnum.USERDEFINED +notdefined = IfcSystemFurnitureElementTypeEnum.NOTDEFINED IfcTankTypeEnum = enum_namespace() -basin = getattr(IfcTankTypeEnum, 'BASIN', INDETERMINATE) -breakpressure = getattr(IfcTankTypeEnum, 'BREAKPRESSURE', INDETERMINATE) -expansion = getattr(IfcTankTypeEnum, 'EXPANSION', INDETERMINATE) -feedandexpansion = getattr(IfcTankTypeEnum, 'FEEDANDEXPANSION', INDETERMINATE) -oilretentiontray = getattr(IfcTankTypeEnum, 'OILRETENTIONTRAY', INDETERMINATE) -pressurevessel = getattr(IfcTankTypeEnum, 'PRESSUREVESSEL', INDETERMINATE) -storage = getattr(IfcTankTypeEnum, 'STORAGE', INDETERMINATE) -vessel = getattr(IfcTankTypeEnum, 'VESSEL', INDETERMINATE) -userdefined = getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTankTypeEnum, 'NOTDEFINED', INDETERMINATE) +basin = IfcTankTypeEnum.BASIN +breakpressure = IfcTankTypeEnum.BREAKPRESSURE +expansion = IfcTankTypeEnum.EXPANSION +feedandexpansion = IfcTankTypeEnum.FEEDANDEXPANSION +oilretentiontray = IfcTankTypeEnum.OILRETENTIONTRAY +pressurevessel = IfcTankTypeEnum.PRESSUREVESSEL +storage = IfcTankTypeEnum.STORAGE +vessel = IfcTankTypeEnum.VESSEL +userdefined = IfcTankTypeEnum.USERDEFINED +notdefined = IfcTankTypeEnum.NOTDEFINED IfcTaskDurationEnum = enum_namespace() -elapsedtime = getattr(IfcTaskDurationEnum, 'ELAPSEDTIME', INDETERMINATE) -worktime = getattr(IfcTaskDurationEnum, 'WORKTIME', INDETERMINATE) -notdefined = getattr(IfcTaskDurationEnum, 'NOTDEFINED', INDETERMINATE) +elapsedtime = IfcTaskDurationEnum.ELAPSEDTIME +worktime = IfcTaskDurationEnum.WORKTIME +notdefined = IfcTaskDurationEnum.NOTDEFINED IfcTaskTypeEnum = enum_namespace() -adjustment = getattr(IfcTaskTypeEnum, 'ADJUSTMENT', INDETERMINATE) -attendance = getattr(IfcTaskTypeEnum, 'ATTENDANCE', INDETERMINATE) -calibration = getattr(IfcTaskTypeEnum, 'CALIBRATION', INDETERMINATE) -construction = getattr(IfcTaskTypeEnum, 'CONSTRUCTION', INDETERMINATE) -demolition = getattr(IfcTaskTypeEnum, 'DEMOLITION', INDETERMINATE) -dismantle = getattr(IfcTaskTypeEnum, 'DISMANTLE', INDETERMINATE) -disposal = getattr(IfcTaskTypeEnum, 'DISPOSAL', INDETERMINATE) -emergency = getattr(IfcTaskTypeEnum, 'EMERGENCY', INDETERMINATE) -inspection = getattr(IfcTaskTypeEnum, 'INSPECTION', INDETERMINATE) -installation = getattr(IfcTaskTypeEnum, 'INSTALLATION', INDETERMINATE) -logistic = getattr(IfcTaskTypeEnum, 'LOGISTIC', INDETERMINATE) -maintenance = getattr(IfcTaskTypeEnum, 'MAINTENANCE', INDETERMINATE) -move = getattr(IfcTaskTypeEnum, 'MOVE', INDETERMINATE) -operation = getattr(IfcTaskTypeEnum, 'OPERATION', INDETERMINATE) -removal = getattr(IfcTaskTypeEnum, 'REMOVAL', INDETERMINATE) -renovation = getattr(IfcTaskTypeEnum, 'RENOVATION', INDETERMINATE) -safety = getattr(IfcTaskTypeEnum, 'SAFETY', INDETERMINATE) -shutdown = getattr(IfcTaskTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = getattr(IfcTaskTypeEnum, 'STARTUP', INDETERMINATE) -testing = getattr(IfcTaskTypeEnum, 'TESTING', INDETERMINATE) -troubleshooting = getattr(IfcTaskTypeEnum, 'TROUBLESHOOTING', INDETERMINATE) -userdefined = getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTaskTypeEnum, 'NOTDEFINED', INDETERMINATE) +adjustment = IfcTaskTypeEnum.ADJUSTMENT +attendance = IfcTaskTypeEnum.ATTENDANCE +calibration = IfcTaskTypeEnum.CALIBRATION +construction = IfcTaskTypeEnum.CONSTRUCTION +demolition = IfcTaskTypeEnum.DEMOLITION +dismantle = IfcTaskTypeEnum.DISMANTLE +disposal = IfcTaskTypeEnum.DISPOSAL +emergency = IfcTaskTypeEnum.EMERGENCY +inspection = IfcTaskTypeEnum.INSPECTION +installation = IfcTaskTypeEnum.INSTALLATION +logistic = IfcTaskTypeEnum.LOGISTIC +maintenance = IfcTaskTypeEnum.MAINTENANCE +move = IfcTaskTypeEnum.MOVE +operation = IfcTaskTypeEnum.OPERATION +removal = IfcTaskTypeEnum.REMOVAL +renovation = IfcTaskTypeEnum.RENOVATION +safety = IfcTaskTypeEnum.SAFETY +shutdown = IfcTaskTypeEnum.SHUTDOWN +startup = IfcTaskTypeEnum.STARTUP +testing = IfcTaskTypeEnum.TESTING +troubleshooting = IfcTaskTypeEnum.TROUBLESHOOTING +userdefined = IfcTaskTypeEnum.USERDEFINED +notdefined = IfcTaskTypeEnum.NOTDEFINED IfcTendonAnchorTypeEnum = enum_namespace() -coupler = getattr(IfcTendonAnchorTypeEnum, 'COUPLER', INDETERMINATE) -fixed_end = getattr(IfcTendonAnchorTypeEnum, 'FIXED_END', INDETERMINATE) -tensioning_end = getattr(IfcTendonAnchorTypeEnum, 'TENSIONING_END', INDETERMINATE) -userdefined = getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonAnchorTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonAnchorTypeEnum.COUPLER +fixed_end = IfcTendonAnchorTypeEnum.FIXED_END +tensioning_end = IfcTendonAnchorTypeEnum.TENSIONING_END +userdefined = IfcTendonAnchorTypeEnum.USERDEFINED +notdefined = IfcTendonAnchorTypeEnum.NOTDEFINED IfcTendonConduitTypeEnum = enum_namespace() -coupler = getattr(IfcTendonConduitTypeEnum, 'COUPLER', INDETERMINATE) -diabolo = getattr(IfcTendonConduitTypeEnum, 'DIABOLO', INDETERMINATE) -duct = getattr(IfcTendonConduitTypeEnum, 'DUCT', INDETERMINATE) -grouting_duct = getattr(IfcTendonConduitTypeEnum, 'GROUTING_DUCT', INDETERMINATE) -trumpet = getattr(IfcTendonConduitTypeEnum, 'TRUMPET', INDETERMINATE) -userdefined = getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonConduitTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonConduitTypeEnum.COUPLER +diabolo = IfcTendonConduitTypeEnum.DIABOLO +duct = IfcTendonConduitTypeEnum.DUCT +grouting_duct = IfcTendonConduitTypeEnum.GROUTING_DUCT +trumpet = IfcTendonConduitTypeEnum.TRUMPET +userdefined = IfcTendonConduitTypeEnum.USERDEFINED +notdefined = IfcTendonConduitTypeEnum.NOTDEFINED IfcTendonTypeEnum = enum_namespace() -bar = getattr(IfcTendonTypeEnum, 'BAR', INDETERMINATE) -coated = getattr(IfcTendonTypeEnum, 'COATED', INDETERMINATE) -strand = getattr(IfcTendonTypeEnum, 'STRAND', INDETERMINATE) -wire = getattr(IfcTendonTypeEnum, 'WIRE', INDETERMINATE) -userdefined = getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonTypeEnum, 'NOTDEFINED', INDETERMINATE) +bar = IfcTendonTypeEnum.BAR +coated = IfcTendonTypeEnum.COATED +strand = IfcTendonTypeEnum.STRAND +wire = IfcTendonTypeEnum.WIRE +userdefined = IfcTendonTypeEnum.USERDEFINED +notdefined = IfcTendonTypeEnum.NOTDEFINED IfcTextPath = enum_namespace() -down = getattr(IfcTextPath, 'DOWN', INDETERMINATE) -left = getattr(IfcTextPath, 'LEFT', INDETERMINATE) -right = getattr(IfcTextPath, 'RIGHT', INDETERMINATE) -up = getattr(IfcTextPath, 'UP', INDETERMINATE) +down = IfcTextPath.DOWN +left = IfcTextPath.LEFT +right = IfcTextPath.RIGHT +up = IfcTextPath.UP IfcTimeSeriesDataTypeEnum = enum_namespace() -continuous = getattr(IfcTimeSeriesDataTypeEnum, 'CONTINUOUS', INDETERMINATE) -discrete = getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETE', INDETERMINATE) -discretebinary = getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETEBINARY', INDETERMINATE) -piecewisebinary = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISEBINARY', INDETERMINATE) -piecewiseconstant = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONSTANT', INDETERMINATE) -piecewisecontinuous = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONTINUOUS', INDETERMINATE) -notdefined = getattr(IfcTimeSeriesDataTypeEnum, 'NOTDEFINED', INDETERMINATE) +continuous = IfcTimeSeriesDataTypeEnum.CONTINUOUS +discrete = IfcTimeSeriesDataTypeEnum.DISCRETE +discretebinary = IfcTimeSeriesDataTypeEnum.DISCRETEBINARY +piecewisebinary = IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY +piecewiseconstant = IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT +piecewisecontinuous = IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS +notdefined = IfcTimeSeriesDataTypeEnum.NOTDEFINED IfcTrackElementTypeEnum = enum_namespace() -blockingdevice = getattr(IfcTrackElementTypeEnum, 'BLOCKINGDEVICE', INDETERMINATE) -derailer = getattr(IfcTrackElementTypeEnum, 'DERAILER', INDETERMINATE) -frog = getattr(IfcTrackElementTypeEnum, 'FROG', INDETERMINATE) -half_set_of_blades = getattr(IfcTrackElementTypeEnum, 'HALF_SET_OF_BLADES', INDETERMINATE) -sleeper = getattr(IfcTrackElementTypeEnum, 'SLEEPER', INDETERMINATE) -speedregulator = getattr(IfcTrackElementTypeEnum, 'SPEEDREGULATOR', INDETERMINATE) -trackendofalignment = getattr(IfcTrackElementTypeEnum, 'TRACKENDOFALIGNMENT', INDETERMINATE) -vehiclestop = getattr(IfcTrackElementTypeEnum, 'VEHICLESTOP', INDETERMINATE) -userdefined = getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTrackElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +blockingdevice = IfcTrackElementTypeEnum.BLOCKINGDEVICE +derailer = IfcTrackElementTypeEnum.DERAILER +frog = IfcTrackElementTypeEnum.FROG +half_set_of_blades = IfcTrackElementTypeEnum.HALF_SET_OF_BLADES +sleeper = IfcTrackElementTypeEnum.SLEEPER +speedregulator = IfcTrackElementTypeEnum.SPEEDREGULATOR +trackendofalignment = IfcTrackElementTypeEnum.TRACKENDOFALIGNMENT +vehiclestop = IfcTrackElementTypeEnum.VEHICLESTOP +userdefined = IfcTrackElementTypeEnum.USERDEFINED +notdefined = IfcTrackElementTypeEnum.NOTDEFINED IfcTransformerTypeEnum = enum_namespace() -chopper = getattr(IfcTransformerTypeEnum, 'CHOPPER', INDETERMINATE) -combined = getattr(IfcTransformerTypeEnum, 'COMBINED', INDETERMINATE) -current = getattr(IfcTransformerTypeEnum, 'CURRENT', INDETERMINATE) -frequency = getattr(IfcTransformerTypeEnum, 'FREQUENCY', INDETERMINATE) -inverter = getattr(IfcTransformerTypeEnum, 'INVERTER', INDETERMINATE) -rectifier = getattr(IfcTransformerTypeEnum, 'RECTIFIER', INDETERMINATE) -voltage = getattr(IfcTransformerTypeEnum, 'VOLTAGE', INDETERMINATE) -userdefined = getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTransformerTypeEnum, 'NOTDEFINED', INDETERMINATE) +chopper = IfcTransformerTypeEnum.CHOPPER +combined = IfcTransformerTypeEnum.COMBINED +current = IfcTransformerTypeEnum.CURRENT +frequency = IfcTransformerTypeEnum.FREQUENCY +inverter = IfcTransformerTypeEnum.INVERTER +rectifier = IfcTransformerTypeEnum.RECTIFIER +voltage = IfcTransformerTypeEnum.VOLTAGE +userdefined = IfcTransformerTypeEnum.USERDEFINED +notdefined = IfcTransformerTypeEnum.NOTDEFINED IfcTransitionCode = enum_namespace() -continuous = getattr(IfcTransitionCode, 'CONTINUOUS', INDETERMINATE) -contsamegradient = getattr(IfcTransitionCode, 'CONTSAMEGRADIENT', INDETERMINATE) -contsamegradientsamecurvature = getattr(IfcTransitionCode, 'CONTSAMEGRADIENTSAMECURVATURE', INDETERMINATE) -discontinuous = getattr(IfcTransitionCode, 'DISCONTINUOUS', INDETERMINATE) +continuous = IfcTransitionCode.CONTINUOUS +contsamegradient = IfcTransitionCode.CONTSAMEGRADIENT +contsamegradientsamecurvature = IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE +discontinuous = IfcTransitionCode.DISCONTINUOUS IfcTransportElementTypeEnum = enum_namespace() -craneway = getattr(IfcTransportElementTypeEnum, 'CRANEWAY', INDETERMINATE) -elevator = getattr(IfcTransportElementTypeEnum, 'ELEVATOR', INDETERMINATE) -escalator = getattr(IfcTransportElementTypeEnum, 'ESCALATOR', INDETERMINATE) -haulinggear = getattr(IfcTransportElementTypeEnum, 'HAULINGGEAR', INDETERMINATE) -liftinggear = getattr(IfcTransportElementTypeEnum, 'LIFTINGGEAR', INDETERMINATE) -movingwalkway = getattr(IfcTransportElementTypeEnum, 'MOVINGWALKWAY', INDETERMINATE) -userdefined = getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTransportElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +craneway = IfcTransportElementTypeEnum.CRANEWAY +elevator = IfcTransportElementTypeEnum.ELEVATOR +escalator = IfcTransportElementTypeEnum.ESCALATOR +haulinggear = IfcTransportElementTypeEnum.HAULINGGEAR +liftinggear = IfcTransportElementTypeEnum.LIFTINGGEAR +movingwalkway = IfcTransportElementTypeEnum.MOVINGWALKWAY +userdefined = IfcTransportElementTypeEnum.USERDEFINED +notdefined = IfcTransportElementTypeEnum.NOTDEFINED IfcTrimmingPreference = enum_namespace() -cartesian = getattr(IfcTrimmingPreference, 'CARTESIAN', INDETERMINATE) -parameter = getattr(IfcTrimmingPreference, 'PARAMETER', INDETERMINATE) -unspecified = getattr(IfcTrimmingPreference, 'UNSPECIFIED', INDETERMINATE) +cartesian = IfcTrimmingPreference.CARTESIAN +parameter = IfcTrimmingPreference.PARAMETER +unspecified = IfcTrimmingPreference.UNSPECIFIED IfcTubeBundleTypeEnum = enum_namespace() -finned = getattr(IfcTubeBundleTypeEnum, 'FINNED', INDETERMINATE) -userdefined = getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTubeBundleTypeEnum, 'NOTDEFINED', INDETERMINATE) +finned = IfcTubeBundleTypeEnum.FINNED +userdefined = IfcTubeBundleTypeEnum.USERDEFINED +notdefined = IfcTubeBundleTypeEnum.NOTDEFINED IfcUnitEnum = enum_namespace() -absorbeddoseunit = getattr(IfcUnitEnum, 'ABSORBEDDOSEUNIT', INDETERMINATE) -amountofsubstanceunit = getattr(IfcUnitEnum, 'AMOUNTOFSUBSTANCEUNIT', INDETERMINATE) -areaunit = getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE) -doseequivalentunit = getattr(IfcUnitEnum, 'DOSEEQUIVALENTUNIT', INDETERMINATE) -electriccapacitanceunit = getattr(IfcUnitEnum, 'ELECTRICCAPACITANCEUNIT', INDETERMINATE) -electricchargeunit = getattr(IfcUnitEnum, 'ELECTRICCHARGEUNIT', INDETERMINATE) -electricconductanceunit = getattr(IfcUnitEnum, 'ELECTRICCONDUCTANCEUNIT', INDETERMINATE) -electriccurrentunit = getattr(IfcUnitEnum, 'ELECTRICCURRENTUNIT', INDETERMINATE) -electricresistanceunit = getattr(IfcUnitEnum, 'ELECTRICRESISTANCEUNIT', INDETERMINATE) -electricvoltageunit = getattr(IfcUnitEnum, 'ELECTRICVOLTAGEUNIT', INDETERMINATE) -energyunit = getattr(IfcUnitEnum, 'ENERGYUNIT', INDETERMINATE) -forceunit = getattr(IfcUnitEnum, 'FORCEUNIT', INDETERMINATE) -frequencyunit = getattr(IfcUnitEnum, 'FREQUENCYUNIT', INDETERMINATE) -illuminanceunit = getattr(IfcUnitEnum, 'ILLUMINANCEUNIT', INDETERMINATE) -inductanceunit = getattr(IfcUnitEnum, 'INDUCTANCEUNIT', INDETERMINATE) -lengthunit = getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE) -luminousfluxunit = getattr(IfcUnitEnum, 'LUMINOUSFLUXUNIT', INDETERMINATE) -luminousintensityunit = getattr(IfcUnitEnum, 'LUMINOUSINTENSITYUNIT', INDETERMINATE) -magneticfluxdensityunit = getattr(IfcUnitEnum, 'MAGNETICFLUXDENSITYUNIT', INDETERMINATE) -magneticfluxunit = getattr(IfcUnitEnum, 'MAGNETICFLUXUNIT', INDETERMINATE) -massunit = getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE) -planeangleunit = getattr(IfcUnitEnum, 'PLANEANGLEUNIT', INDETERMINATE) -powerunit = getattr(IfcUnitEnum, 'POWERUNIT', INDETERMINATE) -pressureunit = getattr(IfcUnitEnum, 'PRESSUREUNIT', INDETERMINATE) -radioactivityunit = getattr(IfcUnitEnum, 'RADIOACTIVITYUNIT', INDETERMINATE) -solidangleunit = getattr(IfcUnitEnum, 'SOLIDANGLEUNIT', INDETERMINATE) -thermodynamictemperatureunit = getattr(IfcUnitEnum, 'THERMODYNAMICTEMPERATUREUNIT', INDETERMINATE) -timeunit = getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE) -volumeunit = getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE) -userdefined = getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE) +absorbeddoseunit = IfcUnitEnum.ABSORBEDDOSEUNIT +amountofsubstanceunit = IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT +areaunit = IfcUnitEnum.AREAUNIT +doseequivalentunit = IfcUnitEnum.DOSEEQUIVALENTUNIT +electriccapacitanceunit = IfcUnitEnum.ELECTRICCAPACITANCEUNIT +electricchargeunit = IfcUnitEnum.ELECTRICCHARGEUNIT +electricconductanceunit = IfcUnitEnum.ELECTRICCONDUCTANCEUNIT +electriccurrentunit = IfcUnitEnum.ELECTRICCURRENTUNIT +electricresistanceunit = IfcUnitEnum.ELECTRICRESISTANCEUNIT +electricvoltageunit = IfcUnitEnum.ELECTRICVOLTAGEUNIT +energyunit = IfcUnitEnum.ENERGYUNIT +forceunit = IfcUnitEnum.FORCEUNIT +frequencyunit = IfcUnitEnum.FREQUENCYUNIT +illuminanceunit = IfcUnitEnum.ILLUMINANCEUNIT +inductanceunit = IfcUnitEnum.INDUCTANCEUNIT +lengthunit = IfcUnitEnum.LENGTHUNIT +luminousfluxunit = IfcUnitEnum.LUMINOUSFLUXUNIT +luminousintensityunit = IfcUnitEnum.LUMINOUSINTENSITYUNIT +magneticfluxdensityunit = IfcUnitEnum.MAGNETICFLUXDENSITYUNIT +magneticfluxunit = IfcUnitEnum.MAGNETICFLUXUNIT +massunit = IfcUnitEnum.MASSUNIT +planeangleunit = IfcUnitEnum.PLANEANGLEUNIT +powerunit = IfcUnitEnum.POWERUNIT +pressureunit = IfcUnitEnum.PRESSUREUNIT +radioactivityunit = IfcUnitEnum.RADIOACTIVITYUNIT +solidangleunit = IfcUnitEnum.SOLIDANGLEUNIT +thermodynamictemperatureunit = IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT +timeunit = IfcUnitEnum.TIMEUNIT +volumeunit = IfcUnitEnum.VOLUMEUNIT +userdefined = IfcUnitEnum.USERDEFINED IfcUnitaryControlElementTypeEnum = enum_namespace() -alarmpanel = getattr(IfcUnitaryControlElementTypeEnum, 'ALARMPANEL', INDETERMINATE) -basestationcontroller = getattr(IfcUnitaryControlElementTypeEnum, 'BASESTATIONCONTROLLER', INDETERMINATE) -combined = getattr(IfcUnitaryControlElementTypeEnum, 'COMBINED', INDETERMINATE) -controlpanel = getattr(IfcUnitaryControlElementTypeEnum, 'CONTROLPANEL', INDETERMINATE) -gasdetectionpanel = getattr(IfcUnitaryControlElementTypeEnum, 'GASDETECTIONPANEL', INDETERMINATE) -humidistat = getattr(IfcUnitaryControlElementTypeEnum, 'HUMIDISTAT', INDETERMINATE) -indicatorpanel = getattr(IfcUnitaryControlElementTypeEnum, 'INDICATORPANEL', INDETERMINATE) -mimicpanel = getattr(IfcUnitaryControlElementTypeEnum, 'MIMICPANEL', INDETERMINATE) -thermostat = getattr(IfcUnitaryControlElementTypeEnum, 'THERMOSTAT', INDETERMINATE) -weatherstation = getattr(IfcUnitaryControlElementTypeEnum, 'WEATHERSTATION', INDETERMINATE) -userdefined = getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcUnitaryControlElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +alarmpanel = IfcUnitaryControlElementTypeEnum.ALARMPANEL +basestationcontroller = IfcUnitaryControlElementTypeEnum.BASESTATIONCONTROLLER +combined = IfcUnitaryControlElementTypeEnum.COMBINED +controlpanel = IfcUnitaryControlElementTypeEnum.CONTROLPANEL +gasdetectionpanel = IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL +humidistat = IfcUnitaryControlElementTypeEnum.HUMIDISTAT +indicatorpanel = IfcUnitaryControlElementTypeEnum.INDICATORPANEL +mimicpanel = IfcUnitaryControlElementTypeEnum.MIMICPANEL +thermostat = IfcUnitaryControlElementTypeEnum.THERMOSTAT +weatherstation = IfcUnitaryControlElementTypeEnum.WEATHERSTATION +userdefined = IfcUnitaryControlElementTypeEnum.USERDEFINED +notdefined = IfcUnitaryControlElementTypeEnum.NOTDEFINED IfcUnitaryEquipmentTypeEnum = enum_namespace() -airconditioningunit = getattr(IfcUnitaryEquipmentTypeEnum, 'AIRCONDITIONINGUNIT', INDETERMINATE) -airhandler = getattr(IfcUnitaryEquipmentTypeEnum, 'AIRHANDLER', INDETERMINATE) -dehumidifier = getattr(IfcUnitaryEquipmentTypeEnum, 'DEHUMIDIFIER', INDETERMINATE) -rooftopunit = getattr(IfcUnitaryEquipmentTypeEnum, 'ROOFTOPUNIT', INDETERMINATE) -splitsystem = getattr(IfcUnitaryEquipmentTypeEnum, 'SPLITSYSTEM', INDETERMINATE) -userdefined = getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcUnitaryEquipmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +airconditioningunit = IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT +airhandler = IfcUnitaryEquipmentTypeEnum.AIRHANDLER +dehumidifier = IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER +rooftopunit = IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT +splitsystem = IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM +userdefined = IfcUnitaryEquipmentTypeEnum.USERDEFINED +notdefined = IfcUnitaryEquipmentTypeEnum.NOTDEFINED IfcValveTypeEnum = enum_namespace() -airrelease = getattr(IfcValveTypeEnum, 'AIRRELEASE', INDETERMINATE) -antivacuum = getattr(IfcValveTypeEnum, 'ANTIVACUUM', INDETERMINATE) -changeover = getattr(IfcValveTypeEnum, 'CHANGEOVER', INDETERMINATE) -check = getattr(IfcValveTypeEnum, 'CHECK', INDETERMINATE) -commissioning = getattr(IfcValveTypeEnum, 'COMMISSIONING', INDETERMINATE) -diverting = getattr(IfcValveTypeEnum, 'DIVERTING', INDETERMINATE) -doublecheck = getattr(IfcValveTypeEnum, 'DOUBLECHECK', INDETERMINATE) -doubleregulating = getattr(IfcValveTypeEnum, 'DOUBLEREGULATING', INDETERMINATE) -drawoffcock = getattr(IfcValveTypeEnum, 'DRAWOFFCOCK', INDETERMINATE) -faucet = getattr(IfcValveTypeEnum, 'FAUCET', INDETERMINATE) -flushing = getattr(IfcValveTypeEnum, 'FLUSHING', INDETERMINATE) -gascock = getattr(IfcValveTypeEnum, 'GASCOCK', INDETERMINATE) -gastap = getattr(IfcValveTypeEnum, 'GASTAP', INDETERMINATE) -isolating = getattr(IfcValveTypeEnum, 'ISOLATING', INDETERMINATE) -mixing = getattr(IfcValveTypeEnum, 'MIXING', INDETERMINATE) -pressurereducing = getattr(IfcValveTypeEnum, 'PRESSUREREDUCING', INDETERMINATE) -pressurerelief = getattr(IfcValveTypeEnum, 'PRESSURERELIEF', INDETERMINATE) -regulating = getattr(IfcValveTypeEnum, 'REGULATING', INDETERMINATE) -safetycutoff = getattr(IfcValveTypeEnum, 'SAFETYCUTOFF', INDETERMINATE) -steamtrap = getattr(IfcValveTypeEnum, 'STEAMTRAP', INDETERMINATE) -stopcock = getattr(IfcValveTypeEnum, 'STOPCOCK', INDETERMINATE) -userdefined = getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcValveTypeEnum, 'NOTDEFINED', INDETERMINATE) +airrelease = IfcValveTypeEnum.AIRRELEASE +antivacuum = IfcValveTypeEnum.ANTIVACUUM +changeover = IfcValveTypeEnum.CHANGEOVER +check = IfcValveTypeEnum.CHECK +commissioning = IfcValveTypeEnum.COMMISSIONING +diverting = IfcValveTypeEnum.DIVERTING +doublecheck = IfcValveTypeEnum.DOUBLECHECK +doubleregulating = IfcValveTypeEnum.DOUBLEREGULATING +drawoffcock = IfcValveTypeEnum.DRAWOFFCOCK +faucet = IfcValveTypeEnum.FAUCET +flushing = IfcValveTypeEnum.FLUSHING +gascock = IfcValveTypeEnum.GASCOCK +gastap = IfcValveTypeEnum.GASTAP +isolating = IfcValveTypeEnum.ISOLATING +mixing = IfcValveTypeEnum.MIXING +pressurereducing = IfcValveTypeEnum.PRESSUREREDUCING +pressurerelief = IfcValveTypeEnum.PRESSURERELIEF +regulating = IfcValveTypeEnum.REGULATING +safetycutoff = IfcValveTypeEnum.SAFETYCUTOFF +steamtrap = IfcValveTypeEnum.STEAMTRAP +stopcock = IfcValveTypeEnum.STOPCOCK +userdefined = IfcValveTypeEnum.USERDEFINED +notdefined = IfcValveTypeEnum.NOTDEFINED IfcVehicleTypeEnum = enum_namespace() -cargo = getattr(IfcVehicleTypeEnum, 'CARGO', INDETERMINATE) -rollingstock = getattr(IfcVehicleTypeEnum, 'ROLLINGSTOCK', INDETERMINATE) -vehicle = getattr(IfcVehicleTypeEnum, 'VEHICLE', INDETERMINATE) -vehicleair = getattr(IfcVehicleTypeEnum, 'VEHICLEAIR', INDETERMINATE) -vehiclemarine = getattr(IfcVehicleTypeEnum, 'VEHICLEMARINE', INDETERMINATE) -vehicletracked = getattr(IfcVehicleTypeEnum, 'VEHICLETRACKED', INDETERMINATE) -vehiclewheeled = getattr(IfcVehicleTypeEnum, 'VEHICLEWHEELED', INDETERMINATE) -userdefined = getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVehicleTypeEnum, 'NOTDEFINED', INDETERMINATE) +cargo = IfcVehicleTypeEnum.CARGO +rollingstock = IfcVehicleTypeEnum.ROLLINGSTOCK +vehicle = IfcVehicleTypeEnum.VEHICLE +vehicleair = IfcVehicleTypeEnum.VEHICLEAIR +vehiclemarine = IfcVehicleTypeEnum.VEHICLEMARINE +vehicletracked = IfcVehicleTypeEnum.VEHICLETRACKED +vehiclewheeled = IfcVehicleTypeEnum.VEHICLEWHEELED +userdefined = IfcVehicleTypeEnum.USERDEFINED +notdefined = IfcVehicleTypeEnum.NOTDEFINED IfcVibrationDamperTypeEnum = enum_namespace() -axial_yield = getattr(IfcVibrationDamperTypeEnum, 'AXIAL_YIELD', INDETERMINATE) -bending_yield = getattr(IfcVibrationDamperTypeEnum, 'BENDING_YIELD', INDETERMINATE) -friction = getattr(IfcVibrationDamperTypeEnum, 'FRICTION', INDETERMINATE) -rubber = getattr(IfcVibrationDamperTypeEnum, 'RUBBER', INDETERMINATE) -shear_yield = getattr(IfcVibrationDamperTypeEnum, 'SHEAR_YIELD', INDETERMINATE) -viscous = getattr(IfcVibrationDamperTypeEnum, 'VISCOUS', INDETERMINATE) -userdefined = getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVibrationDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +axial_yield = IfcVibrationDamperTypeEnum.AXIAL_YIELD +bending_yield = IfcVibrationDamperTypeEnum.BENDING_YIELD +friction = IfcVibrationDamperTypeEnum.FRICTION +rubber = IfcVibrationDamperTypeEnum.RUBBER +shear_yield = IfcVibrationDamperTypeEnum.SHEAR_YIELD +viscous = IfcVibrationDamperTypeEnum.VISCOUS +userdefined = IfcVibrationDamperTypeEnum.USERDEFINED +notdefined = IfcVibrationDamperTypeEnum.NOTDEFINED IfcVibrationIsolatorTypeEnum = enum_namespace() -base = getattr(IfcVibrationIsolatorTypeEnum, 'BASE', INDETERMINATE) -compression = getattr(IfcVibrationIsolatorTypeEnum, 'COMPRESSION', INDETERMINATE) -spring = getattr(IfcVibrationIsolatorTypeEnum, 'SPRING', INDETERMINATE) -userdefined = getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVibrationIsolatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +base = IfcVibrationIsolatorTypeEnum.BASE +compression = IfcVibrationIsolatorTypeEnum.COMPRESSION +spring = IfcVibrationIsolatorTypeEnum.SPRING +userdefined = IfcVibrationIsolatorTypeEnum.USERDEFINED +notdefined = IfcVibrationIsolatorTypeEnum.NOTDEFINED IfcVirtualElementTypeEnum = enum_namespace() -boundary = getattr(IfcVirtualElementTypeEnum, 'BOUNDARY', INDETERMINATE) -clearance = getattr(IfcVirtualElementTypeEnum, 'CLEARANCE', INDETERMINATE) -provisionforvoid = getattr(IfcVirtualElementTypeEnum, 'PROVISIONFORVOID', INDETERMINATE) -userdefined = getattr(IfcVirtualElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVirtualElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +boundary = IfcVirtualElementTypeEnum.BOUNDARY +clearance = IfcVirtualElementTypeEnum.CLEARANCE +provisionforvoid = IfcVirtualElementTypeEnum.PROVISIONFORVOID +userdefined = IfcVirtualElementTypeEnum.USERDEFINED +notdefined = IfcVirtualElementTypeEnum.NOTDEFINED IfcVoidingFeatureTypeEnum = enum_namespace() -chamfer = getattr(IfcVoidingFeatureTypeEnum, 'CHAMFER', INDETERMINATE) -cutout = getattr(IfcVoidingFeatureTypeEnum, 'CUTOUT', INDETERMINATE) -edge = getattr(IfcVoidingFeatureTypeEnum, 'EDGE', INDETERMINATE) -hole = getattr(IfcVoidingFeatureTypeEnum, 'HOLE', INDETERMINATE) -miter = getattr(IfcVoidingFeatureTypeEnum, 'MITER', INDETERMINATE) -notch = getattr(IfcVoidingFeatureTypeEnum, 'NOTCH', INDETERMINATE) -userdefined = getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVoidingFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +chamfer = IfcVoidingFeatureTypeEnum.CHAMFER +cutout = IfcVoidingFeatureTypeEnum.CUTOUT +edge = IfcVoidingFeatureTypeEnum.EDGE +hole = IfcVoidingFeatureTypeEnum.HOLE +miter = IfcVoidingFeatureTypeEnum.MITER +notch = IfcVoidingFeatureTypeEnum.NOTCH +userdefined = IfcVoidingFeatureTypeEnum.USERDEFINED +notdefined = IfcVoidingFeatureTypeEnum.NOTDEFINED IfcWallTypeEnum = enum_namespace() -elementedwall = getattr(IfcWallTypeEnum, 'ELEMENTEDWALL', INDETERMINATE) -movable = getattr(IfcWallTypeEnum, 'MOVABLE', INDETERMINATE) -parapet = getattr(IfcWallTypeEnum, 'PARAPET', INDETERMINATE) -partitioning = getattr(IfcWallTypeEnum, 'PARTITIONING', INDETERMINATE) -plumbingwall = getattr(IfcWallTypeEnum, 'PLUMBINGWALL', INDETERMINATE) -polygonal = getattr(IfcWallTypeEnum, 'POLYGONAL', INDETERMINATE) -retainingwall = getattr(IfcWallTypeEnum, 'RETAININGWALL', INDETERMINATE) -shear = getattr(IfcWallTypeEnum, 'SHEAR', INDETERMINATE) -solidwall = getattr(IfcWallTypeEnum, 'SOLIDWALL', INDETERMINATE) -standard = getattr(IfcWallTypeEnum, 'STANDARD', INDETERMINATE) -wavewall = getattr(IfcWallTypeEnum, 'WAVEWALL', INDETERMINATE) -userdefined = getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +elementedwall = IfcWallTypeEnum.ELEMENTEDWALL +movable = IfcWallTypeEnum.MOVABLE +parapet = IfcWallTypeEnum.PARAPET +partitioning = IfcWallTypeEnum.PARTITIONING +plumbingwall = IfcWallTypeEnum.PLUMBINGWALL +polygonal = IfcWallTypeEnum.POLYGONAL +retainingwall = IfcWallTypeEnum.RETAININGWALL +shear = IfcWallTypeEnum.SHEAR +solidwall = IfcWallTypeEnum.SOLIDWALL +standard = IfcWallTypeEnum.STANDARD +wavewall = IfcWallTypeEnum.WAVEWALL +userdefined = IfcWallTypeEnum.USERDEFINED +notdefined = IfcWallTypeEnum.NOTDEFINED IfcWasteTerminalTypeEnum = enum_namespace() -floortrap = getattr(IfcWasteTerminalTypeEnum, 'FLOORTRAP', INDETERMINATE) -floorwaste = getattr(IfcWasteTerminalTypeEnum, 'FLOORWASTE', INDETERMINATE) -gullysump = getattr(IfcWasteTerminalTypeEnum, 'GULLYSUMP', INDETERMINATE) -gullytrap = getattr(IfcWasteTerminalTypeEnum, 'GULLYTRAP', INDETERMINATE) -roofdrain = getattr(IfcWasteTerminalTypeEnum, 'ROOFDRAIN', INDETERMINATE) -wastedisposalunit = getattr(IfcWasteTerminalTypeEnum, 'WASTEDISPOSALUNIT', INDETERMINATE) -wastetrap = getattr(IfcWasteTerminalTypeEnum, 'WASTETRAP', INDETERMINATE) -userdefined = getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWasteTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +floortrap = IfcWasteTerminalTypeEnum.FLOORTRAP +floorwaste = IfcWasteTerminalTypeEnum.FLOORWASTE +gullysump = IfcWasteTerminalTypeEnum.GULLYSUMP +gullytrap = IfcWasteTerminalTypeEnum.GULLYTRAP +roofdrain = IfcWasteTerminalTypeEnum.ROOFDRAIN +wastedisposalunit = IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT +wastetrap = IfcWasteTerminalTypeEnum.WASTETRAP +userdefined = IfcWasteTerminalTypeEnum.USERDEFINED +notdefined = IfcWasteTerminalTypeEnum.NOTDEFINED IfcWindowPanelOperationEnum = enum_namespace() -bottomhung = getattr(IfcWindowPanelOperationEnum, 'BOTTOMHUNG', INDETERMINATE) -fixedcasement = getattr(IfcWindowPanelOperationEnum, 'FIXEDCASEMENT', INDETERMINATE) -otheroperation = getattr(IfcWindowPanelOperationEnum, 'OTHEROPERATION', INDETERMINATE) -pivothorizontal = getattr(IfcWindowPanelOperationEnum, 'PIVOTHORIZONTAL', INDETERMINATE) -pivotvertical = getattr(IfcWindowPanelOperationEnum, 'PIVOTVERTICAL', INDETERMINATE) -removablecasement = getattr(IfcWindowPanelOperationEnum, 'REMOVABLECASEMENT', INDETERMINATE) -sidehunglefthand = getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGLEFTHAND', INDETERMINATE) -sidehungrighthand = getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGRIGHTHAND', INDETERMINATE) -slidinghorizontal = getattr(IfcWindowPanelOperationEnum, 'SLIDINGHORIZONTAL', INDETERMINATE) -slidingvertical = getattr(IfcWindowPanelOperationEnum, 'SLIDINGVERTICAL', INDETERMINATE) -tiltandturnlefthand = getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNLEFTHAND', INDETERMINATE) -tiltandturnrighthand = getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNRIGHTHAND', INDETERMINATE) -tophung = getattr(IfcWindowPanelOperationEnum, 'TOPHUNG', INDETERMINATE) -notdefined = getattr(IfcWindowPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +bottomhung = IfcWindowPanelOperationEnum.BOTTOMHUNG +fixedcasement = IfcWindowPanelOperationEnum.FIXEDCASEMENT +otheroperation = IfcWindowPanelOperationEnum.OTHEROPERATION +pivothorizontal = IfcWindowPanelOperationEnum.PIVOTHORIZONTAL +pivotvertical = IfcWindowPanelOperationEnum.PIVOTVERTICAL +removablecasement = IfcWindowPanelOperationEnum.REMOVABLECASEMENT +sidehunglefthand = IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND +sidehungrighthand = IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND +slidinghorizontal = IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL +slidingvertical = IfcWindowPanelOperationEnum.SLIDINGVERTICAL +tiltandturnlefthand = IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND +tiltandturnrighthand = IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND +tophung = IfcWindowPanelOperationEnum.TOPHUNG +notdefined = IfcWindowPanelOperationEnum.NOTDEFINED IfcWindowPanelPositionEnum = enum_namespace() -bottom = getattr(IfcWindowPanelPositionEnum, 'BOTTOM', INDETERMINATE) -left = getattr(IfcWindowPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = getattr(IfcWindowPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = getattr(IfcWindowPanelPositionEnum, 'RIGHT', INDETERMINATE) -top = getattr(IfcWindowPanelPositionEnum, 'TOP', INDETERMINATE) -notdefined = getattr(IfcWindowPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +bottom = IfcWindowPanelPositionEnum.BOTTOM +left = IfcWindowPanelPositionEnum.LEFT +middle = IfcWindowPanelPositionEnum.MIDDLE +right = IfcWindowPanelPositionEnum.RIGHT +top = IfcWindowPanelPositionEnum.TOP +notdefined = IfcWindowPanelPositionEnum.NOTDEFINED IfcWindowStyleConstructionEnum = enum_namespace() -aluminium = getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -aluminium_wood = getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -high_grade_steel = getattr(IfcWindowStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -other_construction = getattr(IfcWindowStyleConstructionEnum, 'OTHER_CONSTRUCTION', INDETERMINATE) -plastic = getattr(IfcWindowStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -steel = getattr(IfcWindowStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = getattr(IfcWindowStyleConstructionEnum, 'WOOD', INDETERMINATE) -notdefined = getattr(IfcWindowStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcWindowStyleConstructionEnum.ALUMINIUM +aluminium_wood = IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD +high_grade_steel = IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL +other_construction = IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION +plastic = IfcWindowStyleConstructionEnum.PLASTIC +steel = IfcWindowStyleConstructionEnum.STEEL +wood = IfcWindowStyleConstructionEnum.WOOD +notdefined = IfcWindowStyleConstructionEnum.NOTDEFINED IfcWindowStyleOperationEnum = enum_namespace() -double_panel_horizontal = getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -double_panel_vertical = getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -single_panel = getattr(IfcWindowStyleOperationEnum, 'SINGLE_PANEL', INDETERMINATE) -triple_panel_bottom = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_horizontal = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_left = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_top = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_vertical = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -userdefined = getattr(IfcWindowStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +double_panel_horizontal = IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL +double_panel_vertical = IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL +single_panel = IfcWindowStyleOperationEnum.SINGLE_PANEL +triple_panel_bottom = IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM +triple_panel_horizontal = IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL +triple_panel_left = IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT +triple_panel_top = IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP +triple_panel_vertical = IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL +userdefined = IfcWindowStyleOperationEnum.USERDEFINED +notdefined = IfcWindowStyleOperationEnum.NOTDEFINED IfcWindowTypeEnum = enum_namespace() -lightdome = getattr(IfcWindowTypeEnum, 'LIGHTDOME', INDETERMINATE) -skylight = getattr(IfcWindowTypeEnum, 'SKYLIGHT', INDETERMINATE) -window = getattr(IfcWindowTypeEnum, 'WINDOW', INDETERMINATE) -userdefined = getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowTypeEnum, 'NOTDEFINED', INDETERMINATE) +lightdome = IfcWindowTypeEnum.LIGHTDOME +skylight = IfcWindowTypeEnum.SKYLIGHT +window = IfcWindowTypeEnum.WINDOW +userdefined = IfcWindowTypeEnum.USERDEFINED +notdefined = IfcWindowTypeEnum.NOTDEFINED IfcWindowTypePartitioningEnum = enum_namespace() -double_panel_horizontal = getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -double_panel_vertical = getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -single_panel = getattr(IfcWindowTypePartitioningEnum, 'SINGLE_PANEL', INDETERMINATE) -triple_panel_bottom = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_horizontal = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_left = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_top = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_vertical = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -userdefined = getattr(IfcWindowTypePartitioningEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowTypePartitioningEnum, 'NOTDEFINED', INDETERMINATE) +double_panel_horizontal = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL +double_panel_vertical = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL +single_panel = IfcWindowTypePartitioningEnum.SINGLE_PANEL +triple_panel_bottom = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM +triple_panel_horizontal = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL +triple_panel_left = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT +triple_panel_top = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP +triple_panel_vertical = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL +userdefined = IfcWindowTypePartitioningEnum.USERDEFINED +notdefined = IfcWindowTypePartitioningEnum.NOTDEFINED IfcWorkCalendarTypeEnum = enum_namespace() -firstshift = getattr(IfcWorkCalendarTypeEnum, 'FIRSTSHIFT', INDETERMINATE) -secondshift = getattr(IfcWorkCalendarTypeEnum, 'SECONDSHIFT', INDETERMINATE) -thirdshift = getattr(IfcWorkCalendarTypeEnum, 'THIRDSHIFT', INDETERMINATE) -userdefined = getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkCalendarTypeEnum, 'NOTDEFINED', INDETERMINATE) +firstshift = IfcWorkCalendarTypeEnum.FIRSTSHIFT +secondshift = IfcWorkCalendarTypeEnum.SECONDSHIFT +thirdshift = IfcWorkCalendarTypeEnum.THIRDSHIFT +userdefined = IfcWorkCalendarTypeEnum.USERDEFINED +notdefined = IfcWorkCalendarTypeEnum.NOTDEFINED IfcWorkPlanTypeEnum = enum_namespace() -actual = getattr(IfcWorkPlanTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = getattr(IfcWorkPlanTypeEnum, 'BASELINE', INDETERMINATE) -planned = getattr(IfcWorkPlanTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkPlanTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkPlanTypeEnum.ACTUAL +baseline = IfcWorkPlanTypeEnum.BASELINE +planned = IfcWorkPlanTypeEnum.PLANNED +userdefined = IfcWorkPlanTypeEnum.USERDEFINED +notdefined = IfcWorkPlanTypeEnum.NOTDEFINED IfcWorkScheduleTypeEnum = enum_namespace() -actual = getattr(IfcWorkScheduleTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = getattr(IfcWorkScheduleTypeEnum, 'BASELINE', INDETERMINATE) -planned = getattr(IfcWorkScheduleTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkScheduleTypeEnum.ACTUAL +baseline = IfcWorkScheduleTypeEnum.BASELINE +planned = IfcWorkScheduleTypeEnum.PLANNED +userdefined = IfcWorkScheduleTypeEnum.USERDEFINED +notdefined = IfcWorkScheduleTypeEnum.NOTDEFINED def IfcActionRequest(*args, **kwargs): return ifcopenshell.create_entity('IfcActionRequest', 'IFC4X3', *args, **kwargs) @@ -5183,7 +5193,7 @@ class IfcBoxAlignment_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False class IfcCardinalPointReference_GreaterThanZero: SCOPE = 'type' @@ -5264,7 +5274,7 @@ class IfcFontStyle_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False class IfcFontVariant_WR1: SCOPE = 'type' @@ -5273,7 +5283,7 @@ class IfcFontVariant_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False class IfcFontWeight_WR1: SCOPE = 'type' @@ -5282,7 +5292,7 @@ class IfcFontWeight_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False class IfcHeatingValueMeasure_WR1: SCOPE = 'type' @@ -5381,7 +5391,7 @@ class IfcTextAlignment_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False class IfcTextDecoration_WR1: SCOPE = 'type' @@ -5390,7 +5400,7 @@ class IfcTextDecoration_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False class IfcTextTransformation_WR1: SCOPE = 'type' @@ -5399,7 +5409,7 @@ class IfcTextTransformation_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False class IfcActorRole_WR1: SCOPE = 'entity' @@ -5408,8 +5418,8 @@ class IfcActorRole_WR1: @staticmethod def __call__(self): - role = getattr(self, 'Role', INDETERMINATE) - assert (role != getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) or (role == getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedRole', INDETERMINATE)))) is not False + role = express_getattr(self, 'Role', INDETERMINATE) + assert (role != express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) or (role == express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedRole', INDETERMINATE)))) is not False class IfcActuator_CorrectPredefinedType: SCOPE = 'entity' @@ -5418,8 +5428,8 @@ class IfcActuator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcActuator_CorrectTypeAssigned: SCOPE = 'entity' @@ -5428,8 +5438,8 @@ class IfcActuator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcactuatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcactuatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcActuatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -5438,8 +5448,8 @@ class IfcActuatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAddress_WR1: SCOPE = 'entity' @@ -5448,8 +5458,8 @@ class IfcAddress_WR1: @staticmethod def __call__(self): - purpose = getattr(self, 'Purpose', INDETERMINATE) - assert (not exists(purpose) or (purpose != getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) or (purpose == getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedPurpose', INDETERMINATE))))) is not False + purpose = express_getattr(self, 'Purpose', INDETERMINATE) + assert (not exists(purpose) or (purpose != express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) or (purpose == express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedPurpose', INDETERMINATE))))) is not False class IfcAdvancedBrep_HasAdvancedFaces: SCOPE = 'entity' @@ -5458,7 +5468,7 @@ class IfcAdvancedBrep_HasAdvancedFaces: @staticmethod def __call__(self): - assert (sizeof([afs for afs in getattr(getattr(self, 'Outer', INDETERMINATE), 'CfsFaces', INDETERMINATE) if not 'ifc4x3.ifcadvancedface' in typeof(afs)]) == 0) is not False + assert (sizeof([afs for afs in express_getattr(express_getattr(self, 'Outer', INDETERMINATE), 'CfsFaces', INDETERMINATE) if not 'ifc4x3.ifcadvancedface' in typeof(afs)]) == 0) is not False class IfcAdvancedBrepWithVoids_VoidsHaveAdvancedFaces: SCOPE = 'entity' @@ -5467,8 +5477,8 @@ class IfcAdvancedBrepWithVoids_VoidsHaveAdvancedFaces: @staticmethod def __call__(self): - voids = getattr(self, 'Voids', INDETERMINATE) - assert (sizeof([vsh for vsh in voids if sizeof([afs for afs in getattr(vsh, 'CfsFaces', INDETERMINATE) if not 'ifc4x3.ifcadvancedface' in typeof(afs)]) == 0]) == 0) is not False + voids = express_getattr(self, 'Voids', INDETERMINATE) + assert (sizeof([vsh for vsh in voids if sizeof([afs for afs in express_getattr(vsh, 'CfsFaces', INDETERMINATE) if not 'ifc4x3.ifcadvancedface' in typeof(afs)]) == 0]) == 0) is not False class IfcAdvancedFace_ApplicableEdgeCurves: SCOPE = 'entity' @@ -5477,7 +5487,7 @@ class IfcAdvancedFace_ApplicableEdgeCurves: @staticmethod def __call__(self): - assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3.ifcedgeloop' in typeof(getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in getattr(getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not sizeof(['ifc4x3.ifcline', 'ifc4x3.ifcconic', 'ifc4x3.ifcpolyline', 'ifc4x3.ifcbsplinecurve'] * typeof(getattr(getattr(oe, 'EdgeElement', INDETERMINATE), 'EdgeGeometry', INDETERMINATE))) == 1]) == 0]) == 0) is not False + assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in express_getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3.ifcedgeloop' in typeof(express_getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in express_getattr(express_getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not sizeof(['ifc4x3.ifcline', 'ifc4x3.ifcconic', 'ifc4x3.ifcpolyline', 'ifc4x3.ifcbsplinecurve'] * typeof(express_getattr(express_getattr(oe, 'EdgeElement', INDETERMINATE), 'EdgeGeometry', INDETERMINATE))) == 1]) == 0]) == 0) is not False class IfcAdvancedFace_ApplicableSurface: SCOPE = 'entity' @@ -5486,7 +5496,7 @@ class IfcAdvancedFace_ApplicableSurface: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3.ifcelementarysurface', 'ifc4x3.ifcsweptsurface', 'ifc4x3.ifcbsplinesurface'] * typeof(getattr(self, 'FaceSurface', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3.ifcelementarysurface', 'ifc4x3.ifcsweptsurface', 'ifc4x3.ifcbsplinesurface'] * typeof(express_getattr(self, 'FaceSurface', INDETERMINATE))) == 1) is not False class IfcAdvancedFace_RequiresEdgeCurve: SCOPE = 'entity' @@ -5495,7 +5505,7 @@ class IfcAdvancedFace_RequiresEdgeCurve: @staticmethod def __call__(self): - assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3.ifcedgeloop' in typeof(getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in getattr(getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not 'ifc4x3.ifcedgecurve' in typeof(getattr(oe, 'EdgeElement', INDETERMINATE))]) == 0]) == 0) is not False + assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in express_getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3.ifcedgeloop' in typeof(express_getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in express_getattr(express_getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not 'ifc4x3.ifcedgecurve' in typeof(express_getattr(oe, 'EdgeElement', INDETERMINATE))]) == 0]) == 0) is not False class IfcAirTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -5504,8 +5514,8 @@ class IfcAirTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -5514,8 +5524,8 @@ class IfcAirTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcairterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcairterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirTerminalBox_CorrectPredefinedType: SCOPE = 'entity' @@ -5524,8 +5534,8 @@ class IfcAirTerminalBox_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirTerminalBox_CorrectTypeAssigned: SCOPE = 'entity' @@ -5534,8 +5544,8 @@ class IfcAirTerminalBox_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcairterminalboxtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcairterminalboxtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirTerminalBoxType_CorrectPredefinedType: SCOPE = 'entity' @@ -5544,8 +5554,8 @@ class IfcAirTerminalBoxType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAirTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -5554,8 +5564,8 @@ class IfcAirTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAirToAirHeatRecovery_CorrectPredefinedType: SCOPE = 'entity' @@ -5564,8 +5574,8 @@ class IfcAirToAirHeatRecovery_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirToAirHeatRecovery_CorrectTypeAssigned: SCOPE = 'entity' @@ -5574,8 +5584,8 @@ class IfcAirToAirHeatRecovery_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcairtoairheatrecoverytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcairtoairheatrecoverytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirToAirHeatRecoveryType_CorrectPredefinedType: SCOPE = 'entity' @@ -5584,8 +5594,8 @@ class IfcAirToAirHeatRecoveryType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAlarm_CorrectPredefinedType: SCOPE = 'entity' @@ -5594,8 +5604,8 @@ class IfcAlarm_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAlarm_CorrectTypeAssigned: SCOPE = 'entity' @@ -5604,8 +5614,8 @@ class IfcAlarm_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcalarmtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcalarmtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAlarmType_CorrectPredefinedType: SCOPE = 'entity' @@ -5614,8 +5624,8 @@ class IfcAlarmType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcApproval_HasIdentifierOrName: SCOPE = 'entity' @@ -5624,8 +5634,8 @@ class IfcApproval_HasIdentifierOrName: @staticmethod def __call__(self): - identifier = getattr(self, 'Identifier', INDETERMINATE) - name = getattr(self, 'Name', INDETERMINATE) + identifier = express_getattr(self, 'Identifier', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) assert (exists(identifier) or exists(name)) is not False class IfcArbitraryClosedProfileDef_WR1: @@ -5635,8 +5645,8 @@ class IfcArbitraryClosedProfileDef_WR1: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) - assert (getattr(outercurve, 'Dim', INDETERMINATE) == 2) is not False + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) + assert (express_getattr(outercurve, 'Dim', INDETERMINATE) == 2) is not False class IfcArbitraryClosedProfileDef_WR2: SCOPE = 'entity' @@ -5645,7 +5655,7 @@ class IfcArbitraryClosedProfileDef_WR2: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) assert (not 'ifc4x3.ifcline' in typeof(outercurve)) is not False class IfcArbitraryClosedProfileDef_WR3: @@ -5655,7 +5665,7 @@ class IfcArbitraryClosedProfileDef_WR3: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) assert (not 'ifc4x3.ifcoffsetcurve2d' in typeof(outercurve)) is not False class IfcArbitraryOpenProfileDef_WR11: @@ -5665,7 +5675,7 @@ class IfcArbitraryOpenProfileDef_WR11: @staticmethod def __call__(self): - assert ('ifc4x3.ifccenterlineprofiledef' in typeof(self) or getattr(self, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False + assert ('ifc4x3.ifccenterlineprofiledef' in typeof(self) or express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False class IfcArbitraryOpenProfileDef_WR12: SCOPE = 'entity' @@ -5674,8 +5684,8 @@ class IfcArbitraryOpenProfileDef_WR12: @staticmethod def __call__(self): - curve = getattr(self, 'Curve', INDETERMINATE) - assert (getattr(curve, 'Dim', INDETERMINATE) == 2) is not False + curve = express_getattr(self, 'Curve', INDETERMINATE) + assert (express_getattr(curve, 'Dim', INDETERMINATE) == 2) is not False class IfcArbitraryProfileDefWithVoids_WR1: SCOPE = 'entity' @@ -5684,7 +5694,7 @@ class IfcArbitraryProfileDefWithVoids_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'ProfileType', INDETERMINATE) == area) is not False + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == area) is not False class IfcArbitraryProfileDefWithVoids_WR2: SCOPE = 'entity' @@ -5693,8 +5703,8 @@ class IfcArbitraryProfileDefWithVoids_WR2: @staticmethod def __call__(self): - innercurves = getattr(self, 'InnerCurves', INDETERMINATE) - assert (sizeof([temp for temp in innercurves if getattr(temp, 'Dim', INDETERMINATE) != 2]) == 0) is not False + innercurves = express_getattr(self, 'InnerCurves', INDETERMINATE) + assert (sizeof([temp for temp in innercurves if express_getattr(temp, 'Dim', INDETERMINATE) != 2]) == 0) is not False class IfcArbitraryProfileDefWithVoids_WR3: SCOPE = 'entity' @@ -5703,7 +5713,7 @@ class IfcArbitraryProfileDefWithVoids_WR3: @staticmethod def __call__(self): - innercurves = getattr(self, 'InnerCurves', INDETERMINATE) + innercurves = express_getattr(self, 'InnerCurves', INDETERMINATE) assert (sizeof([temp for temp in innercurves if 'ifc4x3.ifcline' in typeof(temp)]) == 0) is not False class IfcAsymmetricIShapeProfileDef_ValidBottomFilletRadius: @@ -5713,9 +5723,9 @@ class IfcAsymmetricIShapeProfileDef_ValidBottomFilletRadius: @staticmethod def __call__(self): - bottomflangewidth = getattr(self, 'BottomFlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - bottomflangefilletradius = getattr(self, 'BottomFlangeFilletRadius', INDETERMINATE) + bottomflangewidth = express_getattr(self, 'BottomFlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + bottomflangefilletradius = express_getattr(self, 'BottomFlangeFilletRadius', INDETERMINATE) assert (not exists(bottomflangefilletradius) or bottomflangefilletradius <= (bottomflangewidth - webthickness) / 2.0) is not False class IfcAsymmetricIShapeProfileDef_ValidFlangeThickness: @@ -5725,9 +5735,9 @@ class IfcAsymmetricIShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - bottomflangethickness = getattr(self, 'BottomFlangeThickness', INDETERMINATE) - topflangethickness = getattr(self, 'TopFlangeThickness', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + bottomflangethickness = express_getattr(self, 'BottomFlangeThickness', INDETERMINATE) + topflangethickness = express_getattr(self, 'TopFlangeThickness', INDETERMINATE) assert (not exists(topflangethickness) or bottomflangethickness + topflangethickness < overalldepth) is not False class IfcAsymmetricIShapeProfileDef_ValidTopFilletRadius: @@ -5737,9 +5747,9 @@ class IfcAsymmetricIShapeProfileDef_ValidTopFilletRadius: @staticmethod def __call__(self): - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - topflangewidth = getattr(self, 'TopFlangeWidth', INDETERMINATE) - topflangefilletradius = getattr(self, 'TopFlangeFilletRadius', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + topflangewidth = express_getattr(self, 'TopFlangeWidth', INDETERMINATE) + topflangefilletradius = express_getattr(self, 'TopFlangeFilletRadius', INDETERMINATE) assert (not exists(topflangefilletradius) or topflangefilletradius <= (topflangewidth - webthickness) / 2.0) is not False class IfcAsymmetricIShapeProfileDef_ValidWebThickness: @@ -5749,9 +5759,9 @@ class IfcAsymmetricIShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - bottomflangewidth = getattr(self, 'BottomFlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - topflangewidth = getattr(self, 'TopFlangeWidth', INDETERMINATE) + bottomflangewidth = express_getattr(self, 'BottomFlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + topflangewidth = express_getattr(self, 'TopFlangeWidth', INDETERMINATE) assert (webthickness < bottomflangewidth and webthickness < topflangewidth) is not False class IfcAudioVisualAppliance_CorrectPredefinedType: @@ -5761,8 +5771,8 @@ class IfcAudioVisualAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAudioVisualAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -5771,8 +5781,8 @@ class IfcAudioVisualAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcaudiovisualappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcaudiovisualappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAudioVisualApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -5781,8 +5791,8 @@ class IfcAudioVisualApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAxis1Placement_AxisIs3D: SCOPE = 'entity' @@ -5791,8 +5801,8 @@ class IfcAxis1Placement_AxisIs3D: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (not exists(axis) or getattr(axis, 'Dim', INDETERMINATE) == 3) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (not exists(axis) or express_getattr(axis, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis1Placement_LocationIs3D: SCOPE = 'entity' @@ -5801,7 +5811,7 @@ class IfcAxis1Placement_LocationIs3D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcAxis1Placement_LocationIsCP: SCOPE = 'entity' @@ -5810,10 +5820,10 @@ class IfcAxis1Placement_LocationIsCP: @staticmethod def __call__(self): - assert ('ifc4x3.ifccartesianpoint' in typeof(getattr(self, 'Location', INDETERMINATE))) is not False + assert ('ifc4x3.ifccartesianpoint' in typeof(express_getattr(self, 'Location', INDETERMINATE))) is not False def calc_IfcAxis1Placement_Z(self): - axis = getattr(self, 'Axis', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) return nvl(IfcNormalise(axis), IfcDirection(DirectionRatios=[0.0, 0.0, 1.0])) class IfcAxis2Placement2D_LocationIs2D: @@ -5823,7 +5833,7 @@ class IfcAxis2Placement2D_LocationIs2D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False class IfcAxis2Placement2D_LocationIsCP: SCOPE = 'entity' @@ -5832,7 +5842,7 @@ class IfcAxis2Placement2D_LocationIsCP: @staticmethod def __call__(self): - assert ('ifc4x3.ifccartesianpoint' in typeof(getattr(self, 'Location', INDETERMINATE))) is not False + assert ('ifc4x3.ifccartesianpoint' in typeof(express_getattr(self, 'Location', INDETERMINATE))) is not False class IfcAxis2Placement2D_RefDirIs2D: SCOPE = 'entity' @@ -5841,11 +5851,11 @@ class IfcAxis2Placement2D_RefDirIs2D: @staticmethod def __call__(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(refdirection) or getattr(refdirection, 'Dim', INDETERMINATE) == 2) is not False + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(refdirection) or express_getattr(refdirection, 'Dim', INDETERMINATE) == 2) is not False def calc_IfcAxis2Placement2D_P(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) return IfcBuild2Axes(refdirection) class IfcAxis2Placement3D_AxisAndRefDirProvision: @@ -5855,8 +5865,8 @@ class IfcAxis2Placement3D_AxisAndRefDirProvision: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) assert (not exists(axis) ^ exists(refdirection)) is not False class IfcAxis2Placement3D_AxisIs3D: @@ -5866,8 +5876,8 @@ class IfcAxis2Placement3D_AxisIs3D: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (not exists(axis) or getattr(axis, 'Dim', INDETERMINATE) == 3) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (not exists(axis) or express_getattr(axis, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_AxisToRefDirPosition: SCOPE = 'entity' @@ -5876,9 +5886,9 @@ class IfcAxis2Placement3D_AxisToRefDirPosition: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(axis) or not exists(refdirection) or getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(axis) or not exists(refdirection) or express_getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False class IfcAxis2Placement3D_LocationIs3D: SCOPE = 'entity' @@ -5887,7 +5897,7 @@ class IfcAxis2Placement3D_LocationIs3D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_LocationIsCP: SCOPE = 'entity' @@ -5896,7 +5906,7 @@ class IfcAxis2Placement3D_LocationIsCP: @staticmethod def __call__(self): - assert ('ifc4x3.ifccartesianpoint' in typeof(getattr(self, 'Location', INDETERMINATE))) is not False + assert ('ifc4x3.ifccartesianpoint' in typeof(express_getattr(self, 'Location', INDETERMINATE))) is not False class IfcAxis2Placement3D_RefDirIs3D: SCOPE = 'entity' @@ -5905,12 +5915,12 @@ class IfcAxis2Placement3D_RefDirIs3D: @staticmethod def __call__(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(refdirection) or getattr(refdirection, 'Dim', INDETERMINATE) == 3) is not False + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(refdirection) or express_getattr(refdirection, 'Dim', INDETERMINATE) == 3) is not False def calc_IfcAxis2Placement3D_P(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) return IfcBuildAxes(axis, refdirection) class IfcAxis2PlacementLinear_WR1: @@ -5920,7 +5930,7 @@ class IfcAxis2PlacementLinear_WR1: @staticmethod def __call__(self): - assert ('ifc4x3.ifcpointbydistanceexpression' in typeof(getattr(self, 'Location', INDETERMINATE))) is not False + assert ('ifc4x3.ifcpointbydistanceexpression' in typeof(express_getattr(self, 'Location', INDETERMINATE))) is not False class IfcAxis2PlacementLinear_WR2: SCOPE = 'entity' @@ -5929,9 +5939,9 @@ class IfcAxis2PlacementLinear_WR2: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(axis) or not exists(refdirection) or getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(axis) or not exists(refdirection) or express_getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False class IfcBSplineCurve_SameDim: SCOPE = 'entity' @@ -5940,16 +5950,16 @@ class IfcBSplineCurve_SameDim: @staticmethod def __call__(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - assert (sizeof([temp for temp in controlpointslist if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + assert (sizeof([temp for temp in controlpointslist if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcBSplineCurve_UpperIndexOnControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(controlpointslist) - 1 def calc_IfcBSplineCurve_ControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - upperindexoncontrolpoints = getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + upperindexoncontrolpoints = express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) return IfcListToArray(controlpointslist, 0, upperindexoncontrolpoints) class IfcBSplineCurveWithKnots_ConsistentBSpline: @@ -5959,11 +5969,11 @@ class IfcBSplineCurveWithKnots_ConsistentBSpline: @staticmethod def __call__(self): - degree = getattr(self, 'Degree', INDETERMINATE) - upperindexoncontrolpoints = getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) - knotmultiplicities = getattr(self, 'KnotMultiplicities', INDETERMINATE) - knots = getattr(self, 'Knots', INDETERMINATE) - upperindexonknots = getattr(self, 'UpperIndexOnKnots', INDETERMINATE) + degree = express_getattr(self, 'Degree', INDETERMINATE) + upperindexoncontrolpoints = express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) + knotmultiplicities = express_getattr(self, 'KnotMultiplicities', INDETERMINATE) + knots = express_getattr(self, 'Knots', INDETERMINATE) + upperindexonknots = express_getattr(self, 'UpperIndexOnKnots', INDETERMINATE) assert IfcConstraintsParamBSpline(degree, upperindexonknots, upperindexoncontrolpoints, knotmultiplicities, knots) is not False class IfcBSplineCurveWithKnots_CorrespondingKnotLists: @@ -5973,26 +5983,26 @@ class IfcBSplineCurveWithKnots_CorrespondingKnotLists: @staticmethod def __call__(self): - knotmultiplicities = getattr(self, 'KnotMultiplicities', INDETERMINATE) - upperindexonknots = getattr(self, 'UpperIndexOnKnots', INDETERMINATE) + knotmultiplicities = express_getattr(self, 'KnotMultiplicities', INDETERMINATE) + upperindexonknots = express_getattr(self, 'UpperIndexOnKnots', INDETERMINATE) assert (sizeof(knotmultiplicities) == upperindexonknots) is not False def calc_IfcBSplineCurveWithKnots_UpperIndexOnKnots(self): - knots = getattr(self, 'Knots', INDETERMINATE) + knots = express_getattr(self, 'Knots', INDETERMINATE) return sizeof(knots) def calc_IfcBSplineSurface_UUpper(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(controlpointslist) - 1 def calc_IfcBSplineSurface_VUpper(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) - 1 def calc_IfcBSplineSurface_ControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - uupper = getattr(self, 'UUpper', INDETERMINATE) - vupper = getattr(self, 'VUpper', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + uupper = express_getattr(self, 'UUpper', INDETERMINATE) + vupper = express_getattr(self, 'VUpper', INDETERMINATE) return IfcMakeArrayOfArray(controlpointslist, 0, uupper, 0, vupper) class IfcBSplineSurfaceWithKnots_CorrespondingULists: @@ -6002,8 +6012,8 @@ class IfcBSplineSurfaceWithKnots_CorrespondingULists: @staticmethod def __call__(self): - umultiplicities = getattr(self, 'UMultiplicities', INDETERMINATE) - knotuupper = getattr(self, 'KnotUUpper', INDETERMINATE) + umultiplicities = express_getattr(self, 'UMultiplicities', INDETERMINATE) + knotuupper = express_getattr(self, 'KnotUUpper', INDETERMINATE) assert (sizeof(umultiplicities) == knotuupper) is not False class IfcBSplineSurfaceWithKnots_CorrespondingVLists: @@ -6013,8 +6023,8 @@ class IfcBSplineSurfaceWithKnots_CorrespondingVLists: @staticmethod def __call__(self): - vmultiplicities = getattr(self, 'VMultiplicities', INDETERMINATE) - knotvupper = getattr(self, 'KnotVUpper', INDETERMINATE) + vmultiplicities = express_getattr(self, 'VMultiplicities', INDETERMINATE) + knotvupper = express_getattr(self, 'KnotVUpper', INDETERMINATE) assert (sizeof(vmultiplicities) == knotvupper) is not False class IfcBSplineSurfaceWithKnots_UDirectionConstraints: @@ -6024,10 +6034,10 @@ class IfcBSplineSurfaceWithKnots_UDirectionConstraints: @staticmethod def __call__(self): - umultiplicities = getattr(self, 'UMultiplicities', INDETERMINATE) - uknots = getattr(self, 'UKnots', INDETERMINATE) - knotuupper = getattr(self, 'KnotUUpper', INDETERMINATE) - assert IfcConstraintsParamBSpline(getattr(self, 'UDegree', INDETERMINATE), knotuupper, getattr(self, 'UUpper', INDETERMINATE), umultiplicities, uknots) is not False + umultiplicities = express_getattr(self, 'UMultiplicities', INDETERMINATE) + uknots = express_getattr(self, 'UKnots', INDETERMINATE) + knotuupper = express_getattr(self, 'KnotUUpper', INDETERMINATE) + assert IfcConstraintsParamBSpline(express_getattr(self, 'UDegree', INDETERMINATE), knotuupper, express_getattr(self, 'UUpper', INDETERMINATE), umultiplicities, uknots) is not False class IfcBSplineSurfaceWithKnots_VDirectionConstraints: SCOPE = 'entity' @@ -6036,17 +6046,17 @@ class IfcBSplineSurfaceWithKnots_VDirectionConstraints: @staticmethod def __call__(self): - vmultiplicities = getattr(self, 'VMultiplicities', INDETERMINATE) - vknots = getattr(self, 'VKnots', INDETERMINATE) - knotvupper = getattr(self, 'KnotVUpper', INDETERMINATE) - assert IfcConstraintsParamBSpline(getattr(self, 'VDegree', INDETERMINATE), knotvupper, getattr(self, 'VUpper', INDETERMINATE), vmultiplicities, vknots) is not False + vmultiplicities = express_getattr(self, 'VMultiplicities', INDETERMINATE) + vknots = express_getattr(self, 'VKnots', INDETERMINATE) + knotvupper = express_getattr(self, 'KnotVUpper', INDETERMINATE) + assert IfcConstraintsParamBSpline(express_getattr(self, 'VDegree', INDETERMINATE), knotvupper, express_getattr(self, 'VUpper', INDETERMINATE), vmultiplicities, vknots) is not False def calc_IfcBSplineSurfaceWithKnots_KnotVUpper(self): - vknots = getattr(self, 'VKnots', INDETERMINATE) + vknots = express_getattr(self, 'VKnots', INDETERMINATE) return sizeof(vknots) def calc_IfcBSplineSurfaceWithKnots_KnotUUpper(self): - uknots = getattr(self, 'UKnots', INDETERMINATE) + uknots = express_getattr(self, 'UKnots', INDETERMINATE) return sizeof(uknots) class IfcBeam_CorrectPredefinedType: @@ -6056,8 +6066,8 @@ class IfcBeam_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBeam_CorrectTypeAssigned: SCOPE = 'entity' @@ -6066,8 +6076,8 @@ class IfcBeam_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcbeamtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcbeamtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBeamType_CorrectPredefinedType: SCOPE = 'entity' @@ -6076,8 +6086,8 @@ class IfcBeamType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBearing_CorrectPredefinedType: SCOPE = 'entity' @@ -6086,8 +6096,8 @@ class IfcBearing_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBearing_CorrectTypeAssigned: SCOPE = 'entity' @@ -6096,8 +6106,8 @@ class IfcBearing_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcbearingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcbearingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBearingType_CorrectPredefinedType: SCOPE = 'entity' @@ -6106,8 +6116,8 @@ class IfcBearingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBlobTexture_RasterCodeByteStream: SCOPE = 'entity' @@ -6116,7 +6126,7 @@ class IfcBlobTexture_RasterCodeByteStream: @staticmethod def __call__(self): - rastercode = getattr(self, 'RasterCode', INDETERMINATE) + rastercode = express_getattr(self, 'RasterCode', INDETERMINATE) assert (blength(rastercode) % 8 == 0) is not False class IfcBlobTexture_SupportedRasterFormat: @@ -6126,7 +6136,7 @@ class IfcBlobTexture_SupportedRasterFormat: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['bmp', 'jpg', 'gif', 'png']) is not False + assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['bmp', 'jpg', 'gif', 'png']) is not False class IfcBoiler_CorrectPredefinedType: SCOPE = 'entity' @@ -6135,8 +6145,8 @@ class IfcBoiler_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBoiler_CorrectTypeAssigned: SCOPE = 'entity' @@ -6145,8 +6155,8 @@ class IfcBoiler_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcboilertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcboilertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBoilerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6155,8 +6165,8 @@ class IfcBoilerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBooleanClippingResult_FirstOperandType: SCOPE = 'entity' @@ -6165,7 +6175,7 @@ class IfcBooleanClippingResult_FirstOperandType: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) assert ('ifc4x3.ifcsweptareasolid' in typeof(firstoperand) or 'ifc4x3.ifcsweptdiscsolid' in typeof(firstoperand) or 'ifc4x3.ifcbooleanclippingresult' in typeof(firstoperand)) is not False class IfcBooleanClippingResult_OperatorType: @@ -6175,7 +6185,7 @@ class IfcBooleanClippingResult_OperatorType: @staticmethod def __call__(self): - operator = getattr(self, 'Operator', INDETERMINATE) + operator = express_getattr(self, 'Operator', INDETERMINATE) assert (operator == difference) is not False class IfcBooleanClippingResult_SecondOperandType: @@ -6185,7 +6195,7 @@ class IfcBooleanClippingResult_SecondOperandType: @staticmethod def __call__(self): - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) assert ('ifc4x3.ifchalfspacesolid' in typeof(secondoperand)) is not False class IfcBooleanResult_FirstOperandClosed: @@ -6195,8 +6205,8 @@ class IfcBooleanResult_FirstOperandClosed: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - assert (not 'ifc4x3.ifctessellatedfaceset' in typeof(firstoperand) or (exists(getattr(firstoperand, 'Closed', INDETERMINATE)) and getattr(firstoperand, 'Closed', INDETERMINATE))) is not False + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + assert (not 'ifc4x3.ifctessellatedfaceset' in typeof(firstoperand) or (exists(express_getattr(firstoperand, 'Closed', INDETERMINATE)) and express_getattr(firstoperand, 'Closed', INDETERMINATE))) is not False class IfcBooleanResult_SameDim: SCOPE = 'entity' @@ -6205,9 +6215,9 @@ class IfcBooleanResult_SameDim: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) - assert (getattr(firstoperand, 'Dim', INDETERMINATE) == getattr(secondoperand, 'Dim', INDETERMINATE)) is not False + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) + assert (express_getattr(firstoperand, 'Dim', INDETERMINATE) == express_getattr(secondoperand, 'Dim', INDETERMINATE)) is not False class IfcBooleanResult_SecondOperandClosed: SCOPE = 'entity' @@ -6216,12 +6226,12 @@ class IfcBooleanResult_SecondOperandClosed: @staticmethod def __call__(self): - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) - assert (not 'ifc4x3.ifctessellatedfaceset' in typeof(secondoperand) or (exists(getattr(secondoperand, 'Closed', INDETERMINATE)) and getattr(secondoperand, 'Closed', INDETERMINATE))) is not False + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) + assert (not 'ifc4x3.ifctessellatedfaceset' in typeof(secondoperand) or (exists(express_getattr(secondoperand, 'Closed', INDETERMINATE)) and express_getattr(secondoperand, 'Closed', INDETERMINATE))) is not False def calc_IfcBooleanResult_Dim(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - return getattr(firstoperand, 'Dim', INDETERMINATE) + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + return express_getattr(firstoperand, 'Dim', INDETERMINATE) class IfcBoundaryCurve_IsClosed: SCOPE = 'entity' @@ -6230,7 +6240,7 @@ class IfcBoundaryCurve_IsClosed: @staticmethod def __call__(self): - assert getattr(self, 'ClosedCurve', INDETERMINATE) is not False + assert express_getattr(self, 'ClosedCurve', INDETERMINATE) is not False def calc_IfcBoundingBox_Dim(self): return 3 @@ -6242,7 +6252,7 @@ class IfcBoxedHalfSpace_UnboundedSurface: @staticmethod def __call__(self): - assert (not 'ifc4x3.ifccurveboundedplane' in typeof(getattr(self, 'BaseSurface', INDETERMINATE))) is not False + assert (not 'ifc4x3.ifccurveboundedplane' in typeof(express_getattr(self, 'BaseSurface', INDETERMINATE))) is not False class IfcBridge_CorrectPredefinedType: SCOPE = 'entity' @@ -6251,8 +6261,8 @@ class IfcBridge_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBridgePart_CorrectPredefinedType: SCOPE = 'entity' @@ -6261,8 +6271,8 @@ class IfcBridgePart_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuildingElementPart_CorrectPredefinedType: SCOPE = 'entity' @@ -6271,8 +6281,8 @@ class IfcBuildingElementPart_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuildingElementPart_CorrectTypeAssigned: SCOPE = 'entity' @@ -6281,8 +6291,8 @@ class IfcBuildingElementPart_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcbuildingelementparttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcbuildingelementparttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBuildingElementPartType_CorrectPredefinedType: SCOPE = 'entity' @@ -6291,8 +6301,8 @@ class IfcBuildingElementPartType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBuildingElementProxy_CorrectPredefinedType: SCOPE = 'entity' @@ -6301,8 +6311,8 @@ class IfcBuildingElementProxy_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuildingElementProxy_CorrectTypeAssigned: SCOPE = 'entity' @@ -6311,8 +6321,8 @@ class IfcBuildingElementProxy_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcbuildingelementproxytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcbuildingelementproxytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBuildingElementProxy_HasObjectName: SCOPE = 'entity' @@ -6321,7 +6331,7 @@ class IfcBuildingElementProxy_HasObjectName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcBuildingElementProxyType_CorrectPredefinedType: SCOPE = 'entity' @@ -6330,8 +6340,8 @@ class IfcBuildingElementProxyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBuildingSystem_CorrectPredefinedType: SCOPE = 'entity' @@ -6340,8 +6350,8 @@ class IfcBuildingSystem_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuiltElement_MaxOneMaterialAssociation: SCOPE = 'entity' @@ -6350,7 +6360,7 @@ class IfcBuiltElement_MaxOneMaterialAssociation: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'HasAssociations', INDETERMINATE) if 'ifc4x3.ifcrelassociatesmaterial' in typeof(temp)]) <= 1) is not False + assert (sizeof([temp for temp in express_getattr(self, 'HasAssociations', INDETERMINATE) if 'ifc4x3.ifcrelassociatesmaterial' in typeof(temp)]) <= 1) is not False class IfcBuiltSystem_CorrectPredefinedType: SCOPE = 'entity' @@ -6359,8 +6369,8 @@ class IfcBuiltSystem_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBurner_CorrectPredefinedType: SCOPE = 'entity' @@ -6369,8 +6379,8 @@ class IfcBurner_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBurner_CorrectTypeAssigned: SCOPE = 'entity' @@ -6379,8 +6389,8 @@ class IfcBurner_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcburnertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcburnertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBurnerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6389,8 +6399,8 @@ class IfcBurnerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCShapeProfileDef_ValidGirth: SCOPE = 'entity' @@ -6399,8 +6409,8 @@ class IfcCShapeProfileDef_ValidGirth: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - girth = getattr(self, 'Girth', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + girth = express_getattr(self, 'Girth', INDETERMINATE) assert (girth < depth / 2.0) is not False class IfcCShapeProfileDef_ValidInternalFilletRadius: @@ -6410,10 +6420,10 @@ class IfcCShapeProfileDef_ValidInternalFilletRadius: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - internalfilletradius = getattr(self, 'InternalFilletRadius', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + internalfilletradius = express_getattr(self, 'InternalFilletRadius', INDETERMINATE) assert (not exists(internalfilletradius) or (internalfilletradius <= width / 2.0 - wallthickness and internalfilletradius <= depth / 2.0 - wallthickness)) is not False class IfcCShapeProfileDef_ValidWallThickness: @@ -6423,9 +6433,9 @@ class IfcCShapeProfileDef_ValidWallThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) assert (wallthickness < width / 2.0 and wallthickness < depth / 2.0) is not False class IfcCableCarrierFitting_CorrectPredefinedType: @@ -6435,8 +6445,8 @@ class IfcCableCarrierFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableCarrierFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -6445,8 +6455,8 @@ class IfcCableCarrierFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccablecarrierfittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccablecarrierfittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableCarrierFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -6455,8 +6465,8 @@ class IfcCableCarrierFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableCarrierSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -6465,8 +6475,8 @@ class IfcCableCarrierSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableCarrierSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -6475,8 +6485,8 @@ class IfcCableCarrierSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccablecarriersegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccablecarriersegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableCarrierSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -6485,8 +6495,8 @@ class IfcCableCarrierSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -6495,8 +6505,8 @@ class IfcCableFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -6505,8 +6515,8 @@ class IfcCableFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccablefittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccablefittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -6515,8 +6525,8 @@ class IfcCableFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -6525,8 +6535,8 @@ class IfcCableSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -6535,8 +6545,8 @@ class IfcCableSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccablesegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccablesegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -6545,8 +6555,8 @@ class IfcCableSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCaissonFoundation_CorrectPredefinedType: SCOPE = 'entity' @@ -6555,8 +6565,8 @@ class IfcCaissonFoundation_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCaissonFoundation_CorrectTypeAssigned: SCOPE = 'entity' @@ -6565,8 +6575,8 @@ class IfcCaissonFoundation_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccaissonfoundationtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccaissonfoundationtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCaissonFoundationType_CorrectPredefinedType: SCOPE = 'entity' @@ -6575,8 +6585,8 @@ class IfcCaissonFoundationType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCartesianPoint_CP2Dor3D: SCOPE = 'entity' @@ -6585,11 +6595,11 @@ class IfcCartesianPoint_CP2Dor3D: @staticmethod def __call__(self): - coordinates = getattr(self, 'Coordinates', INDETERMINATE) + coordinates = express_getattr(self, 'Coordinates', INDETERMINATE) assert (hiindex(coordinates) >= 2) is not False def calc_IfcCartesianPoint_Dim(self): - coordinates = getattr(self, 'Coordinates', INDETERMINATE) + coordinates = express_getattr(self, 'Coordinates', INDETERMINATE) return hiindex(coordinates) def calc_IfcCartesianPointList_Dim(self): @@ -6602,16 +6612,16 @@ class IfcCartesianTransformationOperator_ScaleGreaterZero: @staticmethod def __call__(self): - scl = getattr(self, 'Scl', INDETERMINATE) + scl = express_getattr(self, 'Scl', INDETERMINATE) assert (scl > 0.0) is not False def calc_IfcCartesianTransformationOperator_Scl(self): - scale = getattr(self, 'Scale', INDETERMINATE) + scale = express_getattr(self, 'Scale', INDETERMINATE) return nvl(scale, 1.0) def calc_IfcCartesianTransformationOperator_Dim(self): - localorigin = getattr(self, 'LocalOrigin', INDETERMINATE) - return getattr(localorigin, 'Dim', INDETERMINATE) + localorigin = express_getattr(self, 'LocalOrigin', INDETERMINATE) + return express_getattr(localorigin, 'Dim', INDETERMINATE) class IfcCartesianTransformationOperator2D_Axis1Is2D: SCOPE = 'entity' @@ -6620,7 +6630,7 @@ class IfcCartesianTransformationOperator2D_Axis1Is2D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis1', INDETERMINATE)) or getattr(getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (not exists(express_getattr(self, 'Axis1', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False class IfcCartesianTransformationOperator2D_Axis2Is2D: SCOPE = 'entity' @@ -6629,7 +6639,7 @@ class IfcCartesianTransformationOperator2D_Axis2Is2D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis2', INDETERMINATE)) or getattr(getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (not exists(express_getattr(self, 'Axis2', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False class IfcCartesianTransformationOperator2D_DimEqual2: SCOPE = 'entity' @@ -6638,10 +6648,10 @@ class IfcCartesianTransformationOperator2D_DimEqual2: @staticmethod def __call__(self): - assert (getattr(self, 'Dim', INDETERMINATE) == 2) is not False + assert (express_getattr(self, 'Dim', INDETERMINATE) == 2) is not False def calc_IfcCartesianTransformationOperator2D_U(self): - return IfcBaseAxis(2, getattr(self, 'Axis1', INDETERMINATE), getattr(self, 'Axis2', INDETERMINATE), None) + return IfcBaseAxis(2, express_getattr(self, 'Axis1', INDETERMINATE), express_getattr(self, 'Axis2', INDETERMINATE), None) class IfcCartesianTransformationOperator2DnonUniform_Scale2GreaterZero: SCOPE = 'entity' @@ -6650,12 +6660,12 @@ class IfcCartesianTransformationOperator2DnonUniform_Scale2GreaterZero: @staticmethod def __call__(self): - scl2 = getattr(self, 'Scl2', INDETERMINATE) + scl2 = express_getattr(self, 'Scl2', INDETERMINATE) assert (scl2 > 0.0) is not False def calc_IfcCartesianTransformationOperator2DnonUniform_Scl2(self): - scale2 = getattr(self, 'Scale2', INDETERMINATE) - return nvl(scale2, getattr(self, 'Scl', INDETERMINATE)) + scale2 = express_getattr(self, 'Scale2', INDETERMINATE) + return nvl(scale2, express_getattr(self, 'Scl', INDETERMINATE)) class IfcCartesianTransformationOperator3D_Axis1Is3D: SCOPE = 'entity' @@ -6664,7 +6674,7 @@ class IfcCartesianTransformationOperator3D_Axis1Is3D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis1', INDETERMINATE)) or getattr(getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (not exists(express_getattr(self, 'Axis1', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_Axis2Is3D: SCOPE = 'entity' @@ -6673,7 +6683,7 @@ class IfcCartesianTransformationOperator3D_Axis2Is3D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis2', INDETERMINATE)) or getattr(getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (not exists(express_getattr(self, 'Axis2', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_Axis3Is3D: SCOPE = 'entity' @@ -6682,8 +6692,8 @@ class IfcCartesianTransformationOperator3D_Axis3Is3D: @staticmethod def __call__(self): - axis3 = getattr(self, 'Axis3', INDETERMINATE) - assert (not exists(axis3) or getattr(axis3, 'Dim', INDETERMINATE) == 3) is not False + axis3 = express_getattr(self, 'Axis3', INDETERMINATE) + assert (not exists(axis3) or express_getattr(axis3, 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_DimIs3D: SCOPE = 'entity' @@ -6692,11 +6702,11 @@ class IfcCartesianTransformationOperator3D_DimIs3D: @staticmethod def __call__(self): - assert (getattr(self, 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(self, 'Dim', INDETERMINATE) == 3) is not False def calc_IfcCartesianTransformationOperator3D_U(self): - axis3 = getattr(self, 'Axis3', INDETERMINATE) - return IfcBaseAxis(3, getattr(self, 'Axis1', INDETERMINATE), getattr(self, 'Axis2', INDETERMINATE), axis3) + axis3 = express_getattr(self, 'Axis3', INDETERMINATE) + return IfcBaseAxis(3, express_getattr(self, 'Axis1', INDETERMINATE), express_getattr(self, 'Axis2', INDETERMINATE), axis3) class IfcCartesianTransformationOperator3DnonUniform_Scale2GreaterZero: SCOPE = 'entity' @@ -6705,7 +6715,7 @@ class IfcCartesianTransformationOperator3DnonUniform_Scale2GreaterZero: @staticmethod def __call__(self): - scl2 = getattr(self, 'Scl2', INDETERMINATE) + scl2 = express_getattr(self, 'Scl2', INDETERMINATE) assert (scl2 > 0.0) is not False class IfcCartesianTransformationOperator3DnonUniform_Scale3GreaterZero: @@ -6715,16 +6725,16 @@ class IfcCartesianTransformationOperator3DnonUniform_Scale3GreaterZero: @staticmethod def __call__(self): - scl3 = getattr(self, 'Scl3', INDETERMINATE) + scl3 = express_getattr(self, 'Scl3', INDETERMINATE) assert (scl3 > 0.0) is not False def calc_IfcCartesianTransformationOperator3DnonUniform_Scl2(self): - scale2 = getattr(self, 'Scale2', INDETERMINATE) - return nvl(scale2, getattr(self, 'Scl', INDETERMINATE)) + scale2 = express_getattr(self, 'Scale2', INDETERMINATE) + return nvl(scale2, express_getattr(self, 'Scl', INDETERMINATE)) def calc_IfcCartesianTransformationOperator3DnonUniform_Scl3(self): - scale3 = getattr(self, 'Scale3', INDETERMINATE) - return nvl(scale3, getattr(self, 'Scl', INDETERMINATE)) + scale3 = express_getattr(self, 'Scale3', INDETERMINATE) + return nvl(scale3, express_getattr(self, 'Scl', INDETERMINATE)) class IfcChiller_CorrectPredefinedType: SCOPE = 'entity' @@ -6733,8 +6743,8 @@ class IfcChiller_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcChiller_CorrectTypeAssigned: SCOPE = 'entity' @@ -6743,8 +6753,8 @@ class IfcChiller_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcchillertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcchillertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcChillerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6753,8 +6763,8 @@ class IfcChillerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcChimney_CorrectPredefinedType: SCOPE = 'entity' @@ -6763,8 +6773,8 @@ class IfcChimney_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcChimney_CorrectTypeAssigned: SCOPE = 'entity' @@ -6773,8 +6783,8 @@ class IfcChimney_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcchimneytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcchimneytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcChimneyType_CorrectPredefinedType: SCOPE = 'entity' @@ -6783,8 +6793,8 @@ class IfcChimneyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCircleHollowProfileDef_WR1: SCOPE = 'entity' @@ -6793,8 +6803,8 @@ class IfcCircleHollowProfileDef_WR1: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - assert (wallthickness < getattr(self, 'Radius', INDETERMINATE)) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + assert (wallthickness < express_getattr(self, 'Radius', INDETERMINATE)) is not False class IfcCoil_CorrectPredefinedType: SCOPE = 'entity' @@ -6803,8 +6813,8 @@ class IfcCoil_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCoil_CorrectTypeAssigned: SCOPE = 'entity' @@ -6813,8 +6823,8 @@ class IfcCoil_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccoiltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccoiltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoilType_CorrectPredefinedType: SCOPE = 'entity' @@ -6823,8 +6833,8 @@ class IfcCoilType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcColumn_CorrectPredefinedType: SCOPE = 'entity' @@ -6833,8 +6843,8 @@ class IfcColumn_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcColumn_CorrectTypeAssigned: SCOPE = 'entity' @@ -6843,8 +6853,8 @@ class IfcColumn_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccolumntype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccolumntype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcColumnType_CorrectPredefinedType: SCOPE = 'entity' @@ -6853,8 +6863,8 @@ class IfcColumnType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCommunicationsAppliance_CorrectPredefinedType: SCOPE = 'entity' @@ -6863,8 +6873,8 @@ class IfcCommunicationsAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCommunicationsAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -6873,8 +6883,8 @@ class IfcCommunicationsAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccommunicationsappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccommunicationsappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCommunicationsApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -6883,8 +6893,8 @@ class IfcCommunicationsApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcComplexProperty_WR21: SCOPE = 'entity' @@ -6893,7 +6903,7 @@ class IfcComplexProperty_WR21: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert (sizeof([temp for temp in hasproperties if self == temp]) == 0) is not False class IfcComplexProperty_WR22: @@ -6903,7 +6913,7 @@ class IfcComplexProperty_WR22: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert IfcUniquePropertyName(hasproperties) is not False class IfcComplexPropertyTemplate_NoSelfReference: @@ -6913,7 +6923,7 @@ class IfcComplexPropertyTemplate_NoSelfReference: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert (sizeof([temp for temp in haspropertytemplates if self == temp]) == 0) is not False class IfcComplexPropertyTemplate_UniquePropertyNames: @@ -6923,7 +6933,7 @@ class IfcComplexPropertyTemplate_UniquePropertyNames: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert IfcUniquePropertyTemplateNames(haspropertytemplates) is not False class IfcCompositeCurve_CurveContinuous: @@ -6933,9 +6943,9 @@ class IfcCompositeCurve_CurveContinuous: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) - closedcurve = getattr(self, 'ClosedCurve', INDETERMINATE) - assert (not closedcurve and sizeof([temp for temp in segments if getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 1 or (closedcurve and sizeof([temp for temp in segments if getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 0)) is not False + segments = express_getattr(self, 'Segments', INDETERMINATE) + closedcurve = express_getattr(self, 'ClosedCurve', INDETERMINATE) + assert (not closedcurve and sizeof([temp for temp in segments if express_getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 1 or (closedcurve and sizeof([temp for temp in segments if express_getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 0)) is not False class IfcCompositeCurve_SameDim: SCOPE = 'entity' @@ -6944,17 +6954,17 @@ class IfcCompositeCurve_SameDim: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) - assert (sizeof([temp for temp in segments if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(segments, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + segments = express_getattr(self, 'Segments', INDETERMINATE) + assert (sizeof([temp for temp in segments if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(segments, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcCompositeCurve_NSegments(self): - segments = getattr(self, 'Segments', INDETERMINATE) + segments = express_getattr(self, 'Segments', INDETERMINATE) return sizeof(segments) def calc_IfcCompositeCurve_ClosedCurve(self): - segments = getattr(self, 'Segments', INDETERMINATE) - nsegments = getattr(self, 'NSegments', INDETERMINATE) - return getattr(express_getitem(segments, nsegments - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Transition', INDETERMINATE) != discontinuous + segments = express_getattr(self, 'Segments', INDETERMINATE) + nsegments = express_getattr(self, 'NSegments', INDETERMINATE) + return express_getattr(express_getitem(segments, nsegments - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Transition', INDETERMINATE) != discontinuous class IfcCompositeCurveOnSurface_SameSurface: SCOPE = 'entity' @@ -6963,7 +6973,7 @@ class IfcCompositeCurveOnSurface_SameSurface: @staticmethod def __call__(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) assert (sizeof(basissurface) > 0) is not False def calc_IfcCompositeCurveOnSurface_BasisSurface(self): @@ -6976,12 +6986,12 @@ class IfcCompositeCurveSegment_ParentIsBoundedCurve: @staticmethod def __call__(self): - parentcurve = getattr(self, 'ParentCurve', INDETERMINATE) + parentcurve = express_getattr(self, 'ParentCurve', INDETERMINATE) assert ('ifc4x3.ifcboundedcurve' in typeof(parentcurve)) is not False def calc_IfcCompositeCurveSegment_Dim(self): - parentcurve = getattr(self, 'ParentCurve', INDETERMINATE) - return getattr(parentcurve, 'Dim', INDETERMINATE) + parentcurve = express_getattr(self, 'ParentCurve', INDETERMINATE) + return express_getattr(parentcurve, 'Dim', INDETERMINATE) class IfcCompositeProfileDef_InvariantProfileType: SCOPE = 'entity' @@ -6990,8 +7000,8 @@ class IfcCompositeProfileDef_InvariantProfileType: @staticmethod def __call__(self): - profiles = getattr(self, 'Profiles', INDETERMINATE) - assert (sizeof([temp for temp in profiles if getattr(temp, 'ProfileType', INDETERMINATE) != getattr(express_getitem(profiles, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE)]) == 0) is not False + profiles = express_getattr(self, 'Profiles', INDETERMINATE) + assert (sizeof([temp for temp in profiles if express_getattr(temp, 'ProfileType', INDETERMINATE) != express_getattr(express_getitem(profiles, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcCompositeProfileDef_NoRecursion: SCOPE = 'entity' @@ -7000,7 +7010,7 @@ class IfcCompositeProfileDef_NoRecursion: @staticmethod def __call__(self): - profiles = getattr(self, 'Profiles', INDETERMINATE) + profiles = express_getattr(self, 'Profiles', INDETERMINATE) assert (sizeof([temp for temp in profiles if 'ifc4x3.ifccompositeprofiledef' in typeof(temp)]) == 0) is not False class IfcCompressor_CorrectPredefinedType: @@ -7010,8 +7020,8 @@ class IfcCompressor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCompressor_CorrectTypeAssigned: SCOPE = 'entity' @@ -7020,8 +7030,8 @@ class IfcCompressor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccompressortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccompressortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCompressorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7030,8 +7040,8 @@ class IfcCompressorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCondenser_CorrectPredefinedType: SCOPE = 'entity' @@ -7040,8 +7050,8 @@ class IfcCondenser_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCondenser_CorrectTypeAssigned: SCOPE = 'entity' @@ -7050,8 +7060,8 @@ class IfcCondenser_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccondensertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccondensertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCondenserType_CorrectPredefinedType: SCOPE = 'entity' @@ -7060,8 +7070,8 @@ class IfcCondenserType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcConstraint_WR11: SCOPE = 'entity' @@ -7070,8 +7080,8 @@ class IfcConstraint_WR11: @staticmethod def __call__(self): - constraintgrade = getattr(self, 'ConstraintGrade', INDETERMINATE) - assert (constraintgrade != getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) or (constraintgrade == getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedGrade', INDETERMINATE)))) is not False + constraintgrade = express_getattr(self, 'ConstraintGrade', INDETERMINATE) + assert (constraintgrade != express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) or (constraintgrade == express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedGrade', INDETERMINATE)))) is not False class IfcConstructionEquipmentResource_CorrectPredefinedType: SCOPE = 'entity' @@ -7080,8 +7090,8 @@ class IfcConstructionEquipmentResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionEquipmentResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7090,8 +7100,8 @@ class IfcConstructionEquipmentResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcConstructionMaterialResource_CorrectPredefinedType: SCOPE = 'entity' @@ -7100,8 +7110,8 @@ class IfcConstructionMaterialResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionMaterialResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7110,8 +7120,8 @@ class IfcConstructionMaterialResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcConstructionProductResource_CorrectPredefinedType: SCOPE = 'entity' @@ -7120,8 +7130,8 @@ class IfcConstructionProductResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionProductResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7130,8 +7140,8 @@ class IfcConstructionProductResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcController_CorrectPredefinedType: SCOPE = 'entity' @@ -7140,8 +7150,8 @@ class IfcController_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcController_CorrectTypeAssigned: SCOPE = 'entity' @@ -7150,8 +7160,8 @@ class IfcController_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccontrollertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccontrollertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcControllerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7160,8 +7170,8 @@ class IfcControllerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcConveyorSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -7170,8 +7180,8 @@ class IfcConveyorSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConveyorSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -7180,8 +7190,8 @@ class IfcConveyorSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcconveyorsegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcconveyorsegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcConveyorSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -7190,8 +7200,8 @@ class IfcConveyorSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCooledBeam_CorrectPredefinedType: SCOPE = 'entity' @@ -7200,8 +7210,8 @@ class IfcCooledBeam_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCooledBeam_CorrectTypeAssigned: SCOPE = 'entity' @@ -7210,8 +7220,8 @@ class IfcCooledBeam_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccooledbeamtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccooledbeamtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCooledBeamType_CorrectPredefinedType: SCOPE = 'entity' @@ -7220,8 +7230,8 @@ class IfcCooledBeamType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCoolingTower_CorrectPredefinedType: SCOPE = 'entity' @@ -7230,8 +7240,8 @@ class IfcCoolingTower_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCoolingTower_CorrectTypeAssigned: SCOPE = 'entity' @@ -7240,8 +7250,8 @@ class IfcCoolingTower_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccoolingtowertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccoolingtowertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoolingTowerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7250,8 +7260,8 @@ class IfcCoolingTowerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCourse_CorrectPredefinedType: SCOPE = 'entity' @@ -7260,8 +7270,8 @@ class IfcCourse_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCourse_CorrectTypeAssigned: SCOPE = 'entity' @@ -7270,8 +7280,8 @@ class IfcCourse_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccoursetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccoursetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCourseType_CorrectPredefinedType: SCOPE = 'entity' @@ -7280,8 +7290,8 @@ class IfcCourseType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCovering_CorrectPredefinedType: SCOPE = 'entity' @@ -7290,8 +7300,8 @@ class IfcCovering_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCovering_CorrectTypeAssigned: SCOPE = 'entity' @@ -7300,8 +7310,8 @@ class IfcCovering_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccoveringtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccoveringtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoveringType_CorrectPredefinedType: SCOPE = 'entity' @@ -7310,8 +7320,8 @@ class IfcCoveringType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCrewResource_CorrectPredefinedType: SCOPE = 'entity' @@ -7320,8 +7330,8 @@ class IfcCrewResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCrewResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7330,8 +7340,8 @@ class IfcCrewResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False def calc_IfcCsgPrimitive3D_Dim(self): return 3 @@ -7343,8 +7353,8 @@ class IfcCurtainWall_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCurtainWall_CorrectTypeAssigned: SCOPE = 'entity' @@ -7353,8 +7363,8 @@ class IfcCurtainWall_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccurtainwalltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifccurtainwalltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCurtainWallType_CorrectPredefinedType: SCOPE = 'entity' @@ -7363,15 +7373,15 @@ class IfcCurtainWallType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcCurve_Dim(self): return IfcCurveDim(self) def calc_IfcCurveSegment_Dim(self): - parentcurve = getattr(self, 'ParentCurve', INDETERMINATE) - return getattr(parentcurve, 'Dim', INDETERMINATE) + parentcurve = express_getattr(self, 'ParentCurve', INDETERMINATE) + return express_getattr(parentcurve, 'Dim', INDETERMINATE) class IfcCurveStyle_IdentifiableCurveStyle: SCOPE = 'entity' @@ -7380,9 +7390,9 @@ class IfcCurveStyle_IdentifiableCurveStyle: @staticmethod def __call__(self): - curvefont = getattr(self, 'CurveFont', INDETERMINATE) - curvewidth = getattr(self, 'CurveWidth', INDETERMINATE) - curvecolour = getattr(self, 'CurveColour', INDETERMINATE) + curvefont = express_getattr(self, 'CurveFont', INDETERMINATE) + curvewidth = express_getattr(self, 'CurveWidth', INDETERMINATE) + curvecolour = express_getattr(self, 'CurveColour', INDETERMINATE) assert (exists(curvefont) or exists(curvewidth) or exists(curvecolour)) is not False class IfcCurveStyle_MeasureOfWidth: @@ -7392,7 +7402,7 @@ class IfcCurveStyle_MeasureOfWidth: @staticmethod def __call__(self): - curvewidth = getattr(self, 'CurveWidth', INDETERMINATE) + curvewidth = express_getattr(self, 'CurveWidth', INDETERMINATE) assert (not exists(curvewidth) or 'ifc4x3.ifcpositivelengthmeasure' in typeof(curvewidth) or ('ifc4x3.ifcdescriptivemeasure' in typeof(curvewidth) and curvewidth == 'bylayer')) is not False class IfcCurveStyleFontPattern_VisibleLengthGreaterEqualZero: @@ -7402,7 +7412,7 @@ class IfcCurveStyleFontPattern_VisibleLengthGreaterEqualZero: @staticmethod def __call__(self): - visiblesegmentlength = getattr(self, 'VisibleSegmentLength', INDETERMINATE) + visiblesegmentlength = express_getattr(self, 'VisibleSegmentLength', INDETERMINATE) assert (visiblesegmentlength >= 0.0) is not False class IfcDamper_CorrectPredefinedType: @@ -7412,8 +7422,8 @@ class IfcDamper_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDamper_CorrectTypeAssigned: SCOPE = 'entity' @@ -7422,8 +7432,8 @@ class IfcDamper_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcdampertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcdampertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDamperType_CorrectPredefinedType: SCOPE = 'entity' @@ -7432,8 +7442,8 @@ class IfcDamperType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDeepFoundation_CorrectTypeAssigned: SCOPE = 'entity' @@ -7442,8 +7452,8 @@ class IfcDeepFoundation_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcdeepfoundationtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcdeepfoundationtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDerivedProfileDef_InvariantProfileType: SCOPE = 'entity' @@ -7452,8 +7462,8 @@ class IfcDerivedProfileDef_InvariantProfileType: @staticmethod def __call__(self): - parentprofile = getattr(self, 'ParentProfile', INDETERMINATE) - assert (getattr(self, 'ProfileType', INDETERMINATE) == getattr(parentprofile, 'ProfileType', INDETERMINATE)) is not False + parentprofile = express_getattr(self, 'ParentProfile', INDETERMINATE) + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(parentprofile, 'ProfileType', INDETERMINATE)) is not False class IfcDerivedUnit_WR1: SCOPE = 'entity' @@ -7462,8 +7472,8 @@ class IfcDerivedUnit_WR1: @staticmethod def __call__(self): - elements = getattr(self, 'Elements', INDETERMINATE) - assert (sizeof(elements) > 1 or (sizeof(elements) == 1 and getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) != 1)) is not False + elements = express_getattr(self, 'Elements', INDETERMINATE) + assert (sizeof(elements) > 1 or (sizeof(elements) == 1 and express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) != 1)) is not False class IfcDerivedUnit_WR2: SCOPE = 'entity' @@ -7472,11 +7482,11 @@ class IfcDerivedUnit_WR2: @staticmethod def __call__(self): - unittype = getattr(self, 'UnitType', INDETERMINATE) - assert (unittype != getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) or (unittype == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedType', INDETERMINATE)))) is not False + unittype = express_getattr(self, 'UnitType', INDETERMINATE) + assert (unittype != express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) or (unittype == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedType', INDETERMINATE)))) is not False def calc_IfcDerivedUnit_Dimensions(self): - elements = getattr(self, 'Elements', INDETERMINATE) + elements = express_getattr(self, 'Elements', INDETERMINATE) return IfcDeriveDimensionalExponents(elements) class IfcDirection_MagnitudeGreaterZero: @@ -7486,11 +7496,11 @@ class IfcDirection_MagnitudeGreaterZero: @staticmethod def __call__(self): - directionratios = getattr(self, 'DirectionRatios', INDETERMINATE) + directionratios = express_getattr(self, 'DirectionRatios', INDETERMINATE) assert (sizeof([tmp for tmp in directionratios if tmp != 0.0]) > 0) is not False def calc_IfcDirection_Dim(self): - directionratios = getattr(self, 'DirectionRatios', INDETERMINATE) + directionratios = express_getattr(self, 'DirectionRatios', INDETERMINATE) return hiindex(directionratios) class IfcDirectrixCurveSweptAreaSolid_DirectrixBounded: @@ -7500,9 +7510,9 @@ class IfcDirectrixCurveSweptAreaSolid_DirectrixBounded: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - startparam = getattr(self, 'StartParam', INDETERMINATE) - endparam = getattr(self, 'EndParam', INDETERMINATE) + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + startparam = express_getattr(self, 'StartParam', INDETERMINATE) + endparam = express_getattr(self, 'EndParam', INDETERMINATE) assert (exists(startparam) and exists(endparam) or sizeof(['ifc4x3.ifcconic', 'ifc4x3.ifcboundedcurve'] * typeof(directrix)) == 1) is not False class IfcDiscreteAccessory_CorrectPredefinedType: @@ -7512,8 +7522,8 @@ class IfcDiscreteAccessory_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDiscreteAccessory_CorrectTypeAssigned: SCOPE = 'entity' @@ -7522,8 +7532,8 @@ class IfcDiscreteAccessory_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcdiscreteaccessorytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcdiscreteaccessorytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDiscreteAccessoryType_CorrectPredefinedType: SCOPE = 'entity' @@ -7532,8 +7542,8 @@ class IfcDiscreteAccessoryType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDistributionBoard_CorrectPredefinedType: SCOPE = 'entity' @@ -7542,8 +7552,8 @@ class IfcDistributionBoard_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDistributionBoard_CorrectTypeAssigned: SCOPE = 'entity' @@ -7552,8 +7562,8 @@ class IfcDistributionBoard_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcdistributionboardtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcdistributionboardtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDistributionBoardType_CorrectPredefinedType: SCOPE = 'entity' @@ -7562,8 +7572,8 @@ class IfcDistributionBoardType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDistributionChamberElement_CorrectPredefinedType: SCOPE = 'entity' @@ -7572,8 +7582,8 @@ class IfcDistributionChamberElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDistributionChamberElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -7582,8 +7592,8 @@ class IfcDistributionChamberElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcdistributionchamberelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcdistributionchamberelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDistributionChamberElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -7592,8 +7602,8 @@ class IfcDistributionChamberElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDistributionSystem_CorrectPredefinedType: SCOPE = 'entity' @@ -7602,8 +7612,8 @@ class IfcDistributionSystem_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDocumentReference_WR1: SCOPE = 'entity' @@ -7612,8 +7622,8 @@ class IfcDocumentReference_WR1: @staticmethod def __call__(self): - name = getattr(self, 'Name', INDETERMINATE) - referenceddocument = getattr(self, 'ReferencedDocument', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) + referenceddocument = express_getattr(self, 'ReferencedDocument', INDETERMINATE) assert exists(name) ^ exists(referenceddocument) is not False class IfcDoor_CorrectPredefinedType: @@ -7623,8 +7633,8 @@ class IfcDoor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDoor_CorrectTypeAssigned: SCOPE = 'entity' @@ -7633,8 +7643,8 @@ class IfcDoor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcdoortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcdoortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDoorLiningProperties_WR31: SCOPE = 'entity' @@ -7643,8 +7653,8 @@ class IfcDoorLiningProperties_WR31: @staticmethod def __call__(self): - liningdepth = getattr(self, 'LiningDepth', INDETERMINATE) - liningthickness = getattr(self, 'LiningThickness', INDETERMINATE) + liningdepth = express_getattr(self, 'LiningDepth', INDETERMINATE) + liningthickness = express_getattr(self, 'LiningThickness', INDETERMINATE) assert (not (exists(liningdepth) and (not exists(liningthickness)))) is not False class IfcDoorLiningProperties_WR32: @@ -7654,8 +7664,8 @@ class IfcDoorLiningProperties_WR32: @staticmethod def __call__(self): - thresholddepth = getattr(self, 'ThresholdDepth', INDETERMINATE) - thresholdthickness = getattr(self, 'ThresholdThickness', INDETERMINATE) + thresholddepth = express_getattr(self, 'ThresholdDepth', INDETERMINATE) + thresholdthickness = express_getattr(self, 'ThresholdThickness', INDETERMINATE) assert (not (exists(thresholddepth) and (not exists(thresholdthickness)))) is not False class IfcDoorLiningProperties_WR33: @@ -7665,8 +7675,8 @@ class IfcDoorLiningProperties_WR33: @staticmethod def __call__(self): - transomthickness = getattr(self, 'TransomThickness', INDETERMINATE) - transomoffset = getattr(self, 'TransomOffset', INDETERMINATE) + transomthickness = express_getattr(self, 'TransomThickness', INDETERMINATE) + transomoffset = express_getattr(self, 'TransomOffset', INDETERMINATE) assert (exists(transomoffset) and exists(transomthickness)) ^ (not exists(transomoffset) and (not exists(transomthickness))) is not False class IfcDoorLiningProperties_WR34: @@ -7676,8 +7686,8 @@ class IfcDoorLiningProperties_WR34: @staticmethod def __call__(self): - casingthickness = getattr(self, 'CasingThickness', INDETERMINATE) - casingdepth = getattr(self, 'CasingDepth', INDETERMINATE) + casingthickness = express_getattr(self, 'CasingThickness', INDETERMINATE) + casingdepth = express_getattr(self, 'CasingDepth', INDETERMINATE) assert (exists(casingdepth) and exists(casingthickness)) ^ (not exists(casingdepth) and (not exists(casingthickness))) is not False class IfcDoorLiningProperties_WR35: @@ -7687,7 +7697,7 @@ class IfcDoorLiningProperties_WR35: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3.ifcdoortype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3.ifcdoorstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3.ifcdoortype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3.ifcdoorstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcDoorPanelProperties_ApplicableToType: SCOPE = 'entity' @@ -7696,7 +7706,7 @@ class IfcDoorPanelProperties_ApplicableToType: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3.ifcdoortype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3.ifcdoorstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3.ifcdoortype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3.ifcdoorstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcDoorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7705,8 +7715,8 @@ class IfcDoorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDraughtingPreDefinedColour_PreDefinedColourNames: SCOPE = 'entity' @@ -7715,7 +7725,7 @@ class IfcDraughtingPreDefinedColour_PreDefinedColourNames: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'bylayer']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'bylayer']) is not False class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: SCOPE = 'entity' @@ -7724,7 +7734,7 @@ class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chaindoubledash', 'dashed', 'dotted', 'bylayer']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chaindoubledash', 'dashed', 'dotted', 'bylayer']) is not False class IfcDuctFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -7733,8 +7743,8 @@ class IfcDuctFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -7743,8 +7753,8 @@ class IfcDuctFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcductfittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcductfittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -7753,8 +7763,8 @@ class IfcDuctFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDuctSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -7763,8 +7773,8 @@ class IfcDuctSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -7773,8 +7783,8 @@ class IfcDuctSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcductsegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcductsegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -7783,8 +7793,8 @@ class IfcDuctSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDuctSilencer_CorrectPredefinedType: SCOPE = 'entity' @@ -7793,8 +7803,8 @@ class IfcDuctSilencer_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctSilencer_CorrectTypeAssigned: SCOPE = 'entity' @@ -7803,8 +7813,8 @@ class IfcDuctSilencer_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcductsilencertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcductsilencertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctSilencerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7813,8 +7823,8 @@ class IfcDuctSilencerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEarthworksCut_CorrectPredefinedType: SCOPE = 'entity' @@ -7823,8 +7833,8 @@ class IfcEarthworksCut_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEarthworksFill_CorrectPredefinedType: SCOPE = 'entity' @@ -7833,8 +7843,8 @@ class IfcEarthworksFill_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEdgeLoop_IsClosed: SCOPE = 'entity' @@ -7843,9 +7853,9 @@ class IfcEdgeLoop_IsClosed: @staticmethod def __call__(self): - edgelist = getattr(self, 'EdgeList', INDETERMINATE) - ne = getattr(self, 'Ne', INDETERMINATE) - assert (getattr(express_getitem(edgelist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) == getattr(express_getitem(edgelist, ne - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE)) is not False + edgelist = express_getattr(self, 'EdgeList', INDETERMINATE) + ne = express_getattr(self, 'Ne', INDETERMINATE) + assert (express_getattr(express_getitem(edgelist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) == express_getattr(express_getitem(edgelist, ne - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE)) is not False class IfcEdgeLoop_IsContinuous: SCOPE = 'entity' @@ -7857,7 +7867,7 @@ class IfcEdgeLoop_IsContinuous: assert IfcLoopHeadToTail(self) is not False def calc_IfcEdgeLoop_Ne(self): - edgelist = getattr(self, 'EdgeList', INDETERMINATE) + edgelist = express_getattr(self, 'EdgeList', INDETERMINATE) return sizeof(edgelist) class IfcElectricAppliance_CorrectPredefinedType: @@ -7867,8 +7877,8 @@ class IfcElectricAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -7877,8 +7887,8 @@ class IfcElectricAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcelectricappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcelectricappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7887,8 +7897,8 @@ class IfcElectricApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricDistributionBoard_CorrectPredefinedType: SCOPE = 'entity' @@ -7897,8 +7907,8 @@ class IfcElectricDistributionBoard_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricDistributionBoard_CorrectTypeAssigned: SCOPE = 'entity' @@ -7907,8 +7917,8 @@ class IfcElectricDistributionBoard_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcelectricdistributionboardtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcelectricdistributionboardtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricDistributionBoardType_CorrectPredefinedType: SCOPE = 'entity' @@ -7917,8 +7927,8 @@ class IfcElectricDistributionBoardType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricFlowStorageDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -7927,8 +7937,8 @@ class IfcElectricFlowStorageDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricFlowStorageDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -7937,8 +7947,8 @@ class IfcElectricFlowStorageDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcelectricflowstoragedevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcelectricflowstoragedevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricFlowStorageDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7947,8 +7957,8 @@ class IfcElectricFlowStorageDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricFlowTreatmentDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -7957,8 +7967,8 @@ class IfcElectricFlowTreatmentDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricFlowTreatmentDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -7967,8 +7977,8 @@ class IfcElectricFlowTreatmentDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcelectricflowtreatmentdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcelectricflowtreatmentdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricFlowTreatmentDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7977,8 +7987,8 @@ class IfcElectricFlowTreatmentDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricGenerator_CorrectPredefinedType: SCOPE = 'entity' @@ -7987,8 +7997,8 @@ class IfcElectricGenerator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricGenerator_CorrectTypeAssigned: SCOPE = 'entity' @@ -7997,8 +8007,8 @@ class IfcElectricGenerator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcelectricgeneratortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcelectricgeneratortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricGeneratorType_CorrectPredefinedType: SCOPE = 'entity' @@ -8007,8 +8017,8 @@ class IfcElectricGeneratorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricMotor_CorrectPredefinedType: SCOPE = 'entity' @@ -8017,8 +8027,8 @@ class IfcElectricMotor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricMotor_CorrectTypeAssigned: SCOPE = 'entity' @@ -8027,8 +8037,8 @@ class IfcElectricMotor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcelectricmotortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcelectricmotortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricMotorType_CorrectPredefinedType: SCOPE = 'entity' @@ -8037,8 +8047,8 @@ class IfcElectricMotorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricTimeControl_CorrectPredefinedType: SCOPE = 'entity' @@ -8047,8 +8057,8 @@ class IfcElectricTimeControl_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricTimeControl_CorrectTypeAssigned: SCOPE = 'entity' @@ -8057,8 +8067,8 @@ class IfcElectricTimeControl_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcelectrictimecontroltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcelectrictimecontroltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricTimeControlType_CorrectPredefinedType: SCOPE = 'entity' @@ -8067,8 +8077,8 @@ class IfcElectricTimeControlType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElementAssembly_CorrectPredefinedType: SCOPE = 'entity' @@ -8077,8 +8087,8 @@ class IfcElementAssembly_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElementAssembly_CorrectTypeAssigned: SCOPE = 'entity' @@ -8087,8 +8097,8 @@ class IfcElementAssembly_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcelementassemblytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcelementassemblytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElementAssemblyType_CorrectPredefinedType: SCOPE = 'entity' @@ -8097,8 +8107,8 @@ class IfcElementAssemblyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElementQuantity_UniqueQuantityNames: SCOPE = 'entity' @@ -8107,7 +8117,7 @@ class IfcElementQuantity_UniqueQuantityNames: @staticmethod def __call__(self): - quantities = getattr(self, 'Quantities', INDETERMINATE) + quantities = express_getattr(self, 'Quantities', INDETERMINATE) assert IfcUniqueQuantityNames(quantities) is not False class IfcEngine_CorrectPredefinedType: @@ -8117,8 +8127,8 @@ class IfcEngine_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEngine_CorrectTypeAssigned: SCOPE = 'entity' @@ -8127,8 +8137,8 @@ class IfcEngine_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcenginetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcenginetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEngineType_CorrectPredefinedType: SCOPE = 'entity' @@ -8137,8 +8147,8 @@ class IfcEngineType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvaporativeCooler_CorrectPredefinedType: SCOPE = 'entity' @@ -8147,8 +8157,8 @@ class IfcEvaporativeCooler_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvaporativeCooler_CorrectTypeAssigned: SCOPE = 'entity' @@ -8157,8 +8167,8 @@ class IfcEvaporativeCooler_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcevaporativecoolertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcevaporativecoolertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEvaporativeCoolerType_CorrectPredefinedType: SCOPE = 'entity' @@ -8167,8 +8177,8 @@ class IfcEvaporativeCoolerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvaporator_CorrectPredefinedType: SCOPE = 'entity' @@ -8177,8 +8187,8 @@ class IfcEvaporator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvaporator_CorrectTypeAssigned: SCOPE = 'entity' @@ -8187,8 +8197,8 @@ class IfcEvaporator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcevaporatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcevaporatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEvaporatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -8197,8 +8207,8 @@ class IfcEvaporatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvent_CorrectPredefinedType: SCOPE = 'entity' @@ -8207,8 +8217,8 @@ class IfcEvent_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvent_CorrectTypeAssigned: SCOPE = 'entity' @@ -8217,9 +8227,9 @@ class IfcEvent_CorrectTypeAssigned: @staticmethod def __call__(self): - eventtriggertype = getattr(self, 'EventTriggerType', INDETERMINATE) - userdefinedeventtriggertype = getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) - assert (not exists(eventtriggertype) or eventtriggertype != getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False + eventtriggertype = express_getattr(self, 'EventTriggerType', INDETERMINATE) + userdefinedeventtriggertype = express_getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) + assert (not exists(eventtriggertype) or eventtriggertype != express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False class IfcEventType_CorrectEventTriggerType: SCOPE = 'entity' @@ -8228,9 +8238,9 @@ class IfcEventType_CorrectEventTriggerType: @staticmethod def __call__(self): - eventtriggertype = getattr(self, 'EventTriggerType', INDETERMINATE) - userdefinedeventtriggertype = getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) - assert (eventtriggertype != getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False + eventtriggertype = express_getattr(self, 'EventTriggerType', INDETERMINATE) + userdefinedeventtriggertype = express_getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) + assert (eventtriggertype != express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False class IfcEventType_CorrectPredefinedType: SCOPE = 'entity' @@ -8239,8 +8249,8 @@ class IfcEventType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcExternalReference_WR1: SCOPE = 'entity' @@ -8249,9 +8259,9 @@ class IfcExternalReference_WR1: @staticmethod def __call__(self): - location = getattr(self, 'Location', INDETERMINATE) - identification = getattr(self, 'Identification', INDETERMINATE) - name = getattr(self, 'Name', INDETERMINATE) + location = express_getattr(self, 'Location', INDETERMINATE) + identification = express_getattr(self, 'Identification', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) assert (exists(identification) or exists(location) or exists(name)) is not False class IfcExtrudedAreaSolid_ValidExtrusionDirection: @@ -8261,7 +8271,7 @@ class IfcExtrudedAreaSolid_ValidExtrusionDirection: @staticmethod def __call__(self): - assert (IfcDotProduct(IfcDirection(DirectionRatios=[0.0, 0.0, 1.0]), getattr(self, 'ExtrudedDirection', INDETERMINATE)) != 0.0) is not False + assert (IfcDotProduct(IfcDirection(DirectionRatios=[0.0, 0.0, 1.0]), express_getattr(self, 'ExtrudedDirection', INDETERMINATE)) != 0.0) is not False class IfcExtrudedAreaSolidTapered_CorrectProfileAssignment: SCOPE = 'entity' @@ -8270,7 +8280,7 @@ class IfcExtrudedAreaSolidTapered_CorrectProfileAssignment: @staticmethod def __call__(self): - assert IfcTaperedSweptAreaProfiles(getattr(self, 'SweptArea', INDETERMINATE), getattr(self, 'EndSweptArea', INDETERMINATE)) is not False + assert IfcTaperedSweptAreaProfiles(express_getattr(self, 'SweptArea', INDETERMINATE), express_getattr(self, 'EndSweptArea', INDETERMINATE)) is not False class IfcFace_HasOuterBound: SCOPE = 'entity' @@ -8279,7 +8289,7 @@ class IfcFace_HasOuterBound: @staticmethod def __call__(self): - bounds = getattr(self, 'Bounds', INDETERMINATE) + bounds = express_getattr(self, 'Bounds', INDETERMINATE) assert (sizeof([temp for temp in bounds if 'ifc4x3.ifcfaceouterbound' in typeof(temp)]) <= 1) is not False def calc_IfcFaceBasedSurfaceModel_Dim(self): @@ -8292,8 +8302,8 @@ class IfcFacilityPartCommon_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFan_CorrectPredefinedType: SCOPE = 'entity' @@ -8302,8 +8312,8 @@ class IfcFan_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFan_CorrectTypeAssigned: SCOPE = 'entity' @@ -8312,8 +8322,8 @@ class IfcFan_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcfantype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcfantype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFanType_CorrectPredefinedType: SCOPE = 'entity' @@ -8322,8 +8332,8 @@ class IfcFanType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFastener_CorrectPredefinedType: SCOPE = 'entity' @@ -8332,8 +8342,8 @@ class IfcFastener_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFastener_CorrectTypeAssigned: SCOPE = 'entity' @@ -8342,8 +8352,8 @@ class IfcFastener_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcfastenertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcfastenertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFastenerType_CorrectPredefinedType: SCOPE = 'entity' @@ -8352,8 +8362,8 @@ class IfcFastenerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFeatureElement_NotContained: SCOPE = 'entity' @@ -8362,7 +8372,7 @@ class IfcFeatureElement_NotContained: @staticmethod def __call__(self): - containedinstructure = getattr(self, 'ContainedInStructure', INDETERMINATE) + containedinstructure = express_getattr(self, 'ContainedInStructure', INDETERMINATE) assert (sizeof(containedinstructure) == 0) is not False class IfcFeatureElementSubtraction_HasNoSubtraction: @@ -8372,7 +8382,7 @@ class IfcFeatureElementSubtraction_HasNoSubtraction: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'HasOpenings', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'HasOpenings', INDETERMINATE)) == 0) is not False class IfcFeatureElementSubtraction_IsNotFilling: SCOPE = 'entity' @@ -8381,7 +8391,7 @@ class IfcFeatureElementSubtraction_IsNotFilling: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'FillsVoids', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'FillsVoids', INDETERMINATE)) == 0) is not False class IfcFillAreaStyle_ConsistentHatchStyleDef: SCOPE = 'entity' @@ -8390,7 +8400,7 @@ class IfcFillAreaStyle_ConsistentHatchStyleDef: @staticmethod def __call__(self): - assert IfcCorrectFillAreaStyle(getattr(self, 'FillStyles', INDETERMINATE)) is not False + assert IfcCorrectFillAreaStyle(express_getattr(self, 'FillStyles', INDETERMINATE)) is not False class IfcFillAreaStyle_MaxOneColour: SCOPE = 'entity' @@ -8399,7 +8409,7 @@ class IfcFillAreaStyle_MaxOneColour: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3.ifccolour' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3.ifccolour' in typeof(style)]) <= 1) is not False class IfcFillAreaStyle_MaxOneExtHatchStyle: SCOPE = 'entity' @@ -8408,7 +8418,7 @@ class IfcFillAreaStyle_MaxOneExtHatchStyle: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3.ifcexternallydefinedhatchstyle' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3.ifcexternallydefinedhatchstyle' in typeof(style)]) <= 1) is not False class IfcFillAreaStyleHatching_PatternStart2D: SCOPE = 'entity' @@ -8417,8 +8427,8 @@ class IfcFillAreaStyleHatching_PatternStart2D: @staticmethod def __call__(self): - patternstart = getattr(self, 'PatternStart', INDETERMINATE) - assert (not exists(patternstart) or getattr(patternstart, 'Dim', INDETERMINATE) == 2) is not False + patternstart = express_getattr(self, 'PatternStart', INDETERMINATE) + assert (not exists(patternstart) or express_getattr(patternstart, 'Dim', INDETERMINATE) == 2) is not False class IfcFillAreaStyleHatching_RefHatchLine2D: SCOPE = 'entity' @@ -8427,8 +8437,8 @@ class IfcFillAreaStyleHatching_RefHatchLine2D: @staticmethod def __call__(self): - pointofreferencehatchline = getattr(self, 'PointOfReferenceHatchLine', INDETERMINATE) - assert (not exists(pointofreferencehatchline) or getattr(pointofreferencehatchline, 'Dim', INDETERMINATE) == 2) is not False + pointofreferencehatchline = express_getattr(self, 'PointOfReferenceHatchLine', INDETERMINATE) + assert (not exists(pointofreferencehatchline) or express_getattr(pointofreferencehatchline, 'Dim', INDETERMINATE) == 2) is not False class IfcFilter_CorrectPredefinedType: SCOPE = 'entity' @@ -8437,8 +8447,8 @@ class IfcFilter_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFilter_CorrectTypeAssigned: SCOPE = 'entity' @@ -8447,8 +8457,8 @@ class IfcFilter_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcfiltertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcfiltertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFilterType_CorrectPredefinedType: SCOPE = 'entity' @@ -8457,8 +8467,8 @@ class IfcFilterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFireSuppressionTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -8467,8 +8477,8 @@ class IfcFireSuppressionTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFireSuppressionTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -8477,8 +8487,8 @@ class IfcFireSuppressionTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcfiresuppressionterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcfiresuppressionterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFireSuppressionTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -8487,8 +8497,8 @@ class IfcFireSuppressionTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFlowInstrument_CorrectPredefinedType: SCOPE = 'entity' @@ -8497,8 +8507,8 @@ class IfcFlowInstrument_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFlowInstrument_CorrectTypeAssigned: SCOPE = 'entity' @@ -8507,8 +8517,8 @@ class IfcFlowInstrument_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcflowinstrumenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcflowinstrumenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFlowInstrumentType_CorrectPredefinedType: SCOPE = 'entity' @@ -8517,8 +8527,8 @@ class IfcFlowInstrumentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFlowMeter_CorrectPredefinedType: SCOPE = 'entity' @@ -8527,8 +8537,8 @@ class IfcFlowMeter_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFlowMeter_CorrectTypeAssigned: SCOPE = 'entity' @@ -8537,8 +8547,8 @@ class IfcFlowMeter_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcflowmetertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcflowmetertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFlowMeterType_CorrectPredefinedType: SCOPE = 'entity' @@ -8547,8 +8557,8 @@ class IfcFlowMeterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFooting_CorrectPredefinedType: SCOPE = 'entity' @@ -8557,8 +8567,8 @@ class IfcFooting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFooting_CorrectTypeAssigned: SCOPE = 'entity' @@ -8567,8 +8577,8 @@ class IfcFooting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcfootingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcfootingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFootingType_CorrectPredefinedType: SCOPE = 'entity' @@ -8577,8 +8587,8 @@ class IfcFootingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFurniture_CorrectPredefinedType: SCOPE = 'entity' @@ -8587,8 +8597,8 @@ class IfcFurniture_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFurniture_CorrectTypeAssigned: SCOPE = 'entity' @@ -8597,8 +8607,8 @@ class IfcFurniture_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcfurnituretype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcfurnituretype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFurnitureType_CorrectPredefinedType: SCOPE = 'entity' @@ -8607,8 +8617,8 @@ class IfcFurnitureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcGeographicElement_CorrectPredefinedType: SCOPE = 'entity' @@ -8617,8 +8627,8 @@ class IfcGeographicElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcGeographicElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -8627,8 +8637,8 @@ class IfcGeographicElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcgeographicelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcgeographicelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcGeographicElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -8637,8 +8647,8 @@ class IfcGeographicElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcGeometricCurveSet_NoSurfaces: SCOPE = 'entity' @@ -8647,7 +8657,7 @@ class IfcGeometricCurveSet_NoSurfaces: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Elements', INDETERMINATE) if 'ifc4x3.ifcsurface' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Elements', INDETERMINATE) if 'ifc4x3.ifcsurface' in typeof(temp)]) == 0) is not False class IfcGeometricRepresentationContext_North2D: SCOPE = 'entity' @@ -8656,8 +8666,8 @@ class IfcGeometricRepresentationContext_North2D: @staticmethod def __call__(self): - truenorth = getattr(self, 'TrueNorth', INDETERMINATE) - assert (not exists(truenorth) or hiindex(getattr(truenorth, 'DirectionRatios', INDETERMINATE)) == 2) is not False + truenorth = express_getattr(self, 'TrueNorth', INDETERMINATE) + assert (not exists(truenorth) or hiindex(express_getattr(truenorth, 'DirectionRatios', INDETERMINATE)) == 2) is not False class IfcGeometricRepresentationSubContext_NoCoordOperation: SCOPE = 'entity' @@ -8666,7 +8676,7 @@ class IfcGeometricRepresentationSubContext_NoCoordOperation: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'HasCoordinateOperation', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'HasCoordinateOperation', INDETERMINATE)) == 0) is not False class IfcGeometricRepresentationSubContext_ParentNoSub: SCOPE = 'entity' @@ -8675,7 +8685,7 @@ class IfcGeometricRepresentationSubContext_ParentNoSub: @staticmethod def __call__(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) assert (not 'ifc4x3.ifcgeometricrepresentationsubcontext' in typeof(parentcontext)) is not False class IfcGeometricRepresentationSubContext_UserTargetProvided: @@ -8685,25 +8695,25 @@ class IfcGeometricRepresentationSubContext_UserTargetProvided: @staticmethod def __call__(self): - targetview = getattr(self, 'TargetView', INDETERMINATE) - userdefinedtargetview = getattr(self, 'UserDefinedTargetView', INDETERMINATE) - assert (targetview != getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) or (targetview == getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedtargetview))) is not False + targetview = express_getattr(self, 'TargetView', INDETERMINATE) + userdefinedtargetview = express_getattr(self, 'UserDefinedTargetView', INDETERMINATE) + assert (targetview != express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) or (targetview == express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedtargetview))) is not False def calc_IfcGeometricRepresentationSubContext_WorldCoordinateSystem(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return getattr(parentcontext, 'WorldCoordinateSystem', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return express_getattr(parentcontext, 'WorldCoordinateSystem', INDETERMINATE) def calc_IfcGeometricRepresentationSubContext_CoordinateSpaceDimension(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return getattr(parentcontext, 'CoordinateSpaceDimension', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return express_getattr(parentcontext, 'CoordinateSpaceDimension', INDETERMINATE) def calc_IfcGeometricRepresentationSubContext_TrueNorth(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return nvl(getattr(parentcontext, 'TrueNorth', INDETERMINATE), IfcConvertDirectionInto2D(express_getitem(getattr(getattr(self, 'WorldCoordinateSystem', INDETERMINATE), 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return nvl(express_getattr(parentcontext, 'TrueNorth', INDETERMINATE), IfcConvertDirectionInto2D(express_getitem(express_getattr(express_getattr(self, 'WorldCoordinateSystem', INDETERMINATE), 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) def calc_IfcGeometricRepresentationSubContext_Precision(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return nvl(getattr(parentcontext, 'Precision', INDETERMINATE), 1) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return nvl(express_getattr(parentcontext, 'Precision', INDETERMINATE), 1) class IfcGeometricSet_ConsistentDim: SCOPE = 'entity' @@ -8712,12 +8722,12 @@ class IfcGeometricSet_ConsistentDim: @staticmethod def __call__(self): - elements = getattr(self, 'Elements', INDETERMINATE) - assert (sizeof([temp for temp in elements if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + elements = express_getattr(self, 'Elements', INDETERMINATE) + assert (sizeof([temp for temp in elements if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcGeometricSet_Dim(self): - elements = getattr(self, 'Elements', INDETERMINATE) - return getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + elements = express_getattr(self, 'Elements', INDETERMINATE) + return express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) class IfcGeotechnicalStratum_CorrectPredefinedType: SCOPE = 'entity' @@ -8726,8 +8736,8 @@ class IfcGeotechnicalStratum_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcGeotechnicalStratumTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcGeotechnicalStratumTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcGeotechnicalStratumTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcGeotechnicalStratumTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False def calc_IfcGradientCurve_RelativeElevation(self): return IfcGradient(self) @@ -8739,8 +8749,8 @@ class IfcGridAxis_WR1: @staticmethod def __call__(self): - axiscurve = getattr(self, 'AxisCurve', INDETERMINATE) - assert (getattr(axiscurve, 'Dim', INDETERMINATE) == 2) is not False + axiscurve = express_getattr(self, 'AxisCurve', INDETERMINATE) + assert (express_getattr(axiscurve, 'Dim', INDETERMINATE) == 2) is not False class IfcGridAxis_WR2: SCOPE = 'entity' @@ -8749,9 +8759,9 @@ class IfcGridAxis_WR2: @staticmethod def __call__(self): - partofw = getattr(self, 'PartOfW', INDETERMINATE) - partofv = getattr(self, 'PartOfV', INDETERMINATE) - partofu = getattr(self, 'PartOfU', INDETERMINATE) + partofw = express_getattr(self, 'PartOfW', INDETERMINATE) + partofv = express_getattr(self, 'PartOfV', INDETERMINATE) + partofu = express_getattr(self, 'PartOfU', INDETERMINATE) assert (sizeof(partofu) == 1) ^ (sizeof(partofv) == 1) ^ (sizeof(partofw) == 1) is not False def calc_IfcHalfSpaceSolid_Dim(self): @@ -8764,8 +8774,8 @@ class IfcHeatExchanger_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcHeatExchanger_CorrectTypeAssigned: SCOPE = 'entity' @@ -8774,8 +8784,8 @@ class IfcHeatExchanger_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcheatexchangertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcheatexchangertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcHeatExchangerType_CorrectPredefinedType: SCOPE = 'entity' @@ -8784,8 +8794,8 @@ class IfcHeatExchangerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcHumidifier_CorrectPredefinedType: SCOPE = 'entity' @@ -8794,8 +8804,8 @@ class IfcHumidifier_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcHumidifier_CorrectTypeAssigned: SCOPE = 'entity' @@ -8804,8 +8814,8 @@ class IfcHumidifier_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifchumidifiertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifchumidifiertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcHumidifierType_CorrectPredefinedType: SCOPE = 'entity' @@ -8814,8 +8824,8 @@ class IfcHumidifierType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcIShapeProfileDef_ValidFilletRadius: SCOPE = 'entity' @@ -8824,11 +8834,11 @@ class IfcIShapeProfileDef_ValidFilletRadius: @staticmethod def __call__(self): - overallwidth = getattr(self, 'OverallWidth', INDETERMINATE) - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) - filletradius = getattr(self, 'FilletRadius', INDETERMINATE) + overallwidth = express_getattr(self, 'OverallWidth', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) + filletradius = express_getattr(self, 'FilletRadius', INDETERMINATE) assert (not exists(filletradius) or (filletradius <= (overallwidth - webthickness) / 2.0 and filletradius <= (overalldepth - 2.0 * flangethickness) / 2.0)) is not False class IfcIShapeProfileDef_ValidFlangeThickness: @@ -8838,8 +8848,8 @@ class IfcIShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (2.0 * flangethickness < overalldepth) is not False class IfcIShapeProfileDef_ValidWebThickness: @@ -8849,8 +8859,8 @@ class IfcIShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - overallwidth = getattr(self, 'OverallWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + overallwidth = express_getattr(self, 'OverallWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < overallwidth) is not False class IfcImpactProtectionDevice_CorrectPredefinedType: @@ -8860,8 +8870,8 @@ class IfcImpactProtectionDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcImpactProtectionDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -8870,8 +8880,8 @@ class IfcImpactProtectionDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcimpactprotectiondevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcimpactprotectiondevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcImpactProtectionDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -8880,8 +8890,8 @@ class IfcImpactProtectionDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcIndexedPolyCurve_Consecutive: SCOPE = 'entity' @@ -8890,7 +8900,7 @@ class IfcIndexedPolyCurve_Consecutive: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) + segments = express_getattr(self, 'Segments', INDETERMINATE) assert (not exists(segments) or IfcConsecutiveSegments(segments)) is not False class IfcInterceptor_CorrectPredefinedType: @@ -8900,8 +8910,8 @@ class IfcInterceptor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcInterceptor_CorrectTypeAssigned: SCOPE = 'entity' @@ -8910,8 +8920,8 @@ class IfcInterceptor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcinterceptortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcinterceptortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcInterceptorType_CorrectPredefinedType: SCOPE = 'entity' @@ -8920,8 +8930,8 @@ class IfcInterceptorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcIntersectionCurve_DistinctSurfaces: SCOPE = 'entity' @@ -8930,7 +8940,7 @@ class IfcIntersectionCurve_DistinctSurfaces: @staticmethod def __call__(self): - assert (IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcIntersectionCurve_TwoPCurves: SCOPE = 'entity' @@ -8939,7 +8949,7 @@ class IfcIntersectionCurve_TwoPCurves: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False + assert (sizeof(express_getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False class IfcJunctionBox_CorrectPredefinedType: SCOPE = 'entity' @@ -8948,8 +8958,8 @@ class IfcJunctionBox_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcJunctionBox_CorrectTypeAssigned: SCOPE = 'entity' @@ -8958,8 +8968,8 @@ class IfcJunctionBox_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcjunctionboxtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcjunctionboxtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcJunctionBoxType_CorrectPredefinedType: SCOPE = 'entity' @@ -8968,8 +8978,8 @@ class IfcJunctionBoxType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLShapeProfileDef_ValidThickness: SCOPE = 'entity' @@ -8978,9 +8988,9 @@ class IfcLShapeProfileDef_ValidThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - thickness = getattr(self, 'Thickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + thickness = express_getattr(self, 'Thickness', INDETERMINATE) assert (thickness < depth and (not exists(width) or thickness < width)) is not False class IfcLaborResource_CorrectPredefinedType: @@ -8990,8 +9000,8 @@ class IfcLaborResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLaborResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9000,8 +9010,8 @@ class IfcLaborResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcLamp_CorrectPredefinedType: SCOPE = 'entity' @@ -9010,8 +9020,8 @@ class IfcLamp_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLamp_CorrectTypeAssigned: SCOPE = 'entity' @@ -9020,8 +9030,8 @@ class IfcLamp_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifclamptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifclamptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLampType_CorrectPredefinedType: SCOPE = 'entity' @@ -9030,8 +9040,8 @@ class IfcLampType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLightFixture_CorrectPredefinedType: SCOPE = 'entity' @@ -9040,8 +9050,8 @@ class IfcLightFixture_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLightFixture_CorrectTypeAssigned: SCOPE = 'entity' @@ -9050,8 +9060,8 @@ class IfcLightFixture_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifclightfixturetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifclightfixturetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLightFixtureType_CorrectPredefinedType: SCOPE = 'entity' @@ -9060,8 +9070,8 @@ class IfcLightFixtureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLine_SameDim: SCOPE = 'entity' @@ -9070,9 +9080,9 @@ class IfcLine_SameDim: @staticmethod def __call__(self): - pnt = getattr(self, 'Pnt', INDETERMINATE) - dir = getattr(self, 'Dir', INDETERMINATE) - assert (getattr(dir, 'Dim', INDETERMINATE) == getattr(pnt, 'Dim', INDETERMINATE)) is not False + pnt = express_getattr(self, 'Pnt', INDETERMINATE) + dir = express_getattr(self, 'Dir', INDETERMINATE) + assert (express_getattr(dir, 'Dim', INDETERMINATE) == express_getattr(pnt, 'Dim', INDETERMINATE)) is not False class IfcLiquidTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -9081,8 +9091,8 @@ class IfcLiquidTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLiquidTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -9091,8 +9101,8 @@ class IfcLiquidTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcliquidterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcliquidterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLiquidTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -9101,8 +9111,8 @@ class IfcLiquidTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLocalPlacement_WR21: SCOPE = 'entity' @@ -9111,8 +9121,8 @@ class IfcLocalPlacement_WR21: @staticmethod def __call__(self): - placementrelto = getattr(self, 'PlacementRelTo', INDETERMINATE) - relativeplacement = getattr(self, 'RelativePlacement', INDETERMINATE) + placementrelto = express_getattr(self, 'PlacementRelTo', INDETERMINATE) + relativeplacement = express_getattr(self, 'RelativePlacement', INDETERMINATE) assert IfcCorrectLocalPlacement(relativeplacement, placementrelto) is not False class IfcMarineFacility_CorrectPredefinedType: @@ -9122,8 +9132,8 @@ class IfcMarineFacility_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMarinePart_CorrectPredefinedType: SCOPE = 'entity' @@ -9132,8 +9142,8 @@ class IfcMarinePart_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMaterialDefinitionRepresentation_OnlyStyledRepresentations: SCOPE = 'entity' @@ -9142,7 +9152,7 @@ class IfcMaterialDefinitionRepresentation_OnlyStyledRepresentations: @staticmethod def __call__(self): - representations = getattr(self, 'Representations', INDETERMINATE) + representations = express_getattr(self, 'Representations', INDETERMINATE) assert (sizeof([temp for temp in representations if not 'ifc4x3.ifcstyledrepresentation' in typeof(temp)]) == 0) is not False class IfcMaterialLayer_NormalizedPriority: @@ -9152,7 +9162,7 @@ class IfcMaterialLayer_NormalizedPriority: @staticmethod def __call__(self): - priority = getattr(self, 'Priority', INDETERMINATE) + priority = express_getattr(self, 'Priority', INDETERMINATE) assert (not exists(priority) or 0 <= priority <= 100) is not False def calc_IfcMaterialLayerSet_TotalThickness(self): @@ -9165,7 +9175,7 @@ class IfcMaterialProfile_NormalizedPriority: @staticmethod def __call__(self): - priority = getattr(self, 'Priority', INDETERMINATE) + priority = express_getattr(self, 'Priority', INDETERMINATE) assert (not exists(priority) or 0 <= priority <= 100) is not False class IfcMechanicalFastener_CorrectPredefinedType: @@ -9175,8 +9185,8 @@ class IfcMechanicalFastener_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMechanicalFastener_CorrectTypeAssigned: SCOPE = 'entity' @@ -9185,8 +9195,8 @@ class IfcMechanicalFastener_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcmechanicalfastenertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcmechanicalfastenertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMechanicalFastenerType_CorrectPredefinedType: SCOPE = 'entity' @@ -9195,8 +9205,8 @@ class IfcMechanicalFastenerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMedicalDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -9205,8 +9215,8 @@ class IfcMedicalDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMedicalDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -9215,8 +9225,8 @@ class IfcMedicalDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcmedicaldevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcmedicaldevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMedicalDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9225,8 +9235,8 @@ class IfcMedicalDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMember_CorrectPredefinedType: SCOPE = 'entity' @@ -9235,8 +9245,8 @@ class IfcMember_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMember_CorrectTypeAssigned: SCOPE = 'entity' @@ -9245,8 +9255,8 @@ class IfcMember_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcmembertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcmembertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMemberType_CorrectPredefinedType: SCOPE = 'entity' @@ -9255,8 +9265,8 @@ class IfcMemberType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcMirroredProfileDef_Operator(self): return IfcCartesianTransformationOperator2D(Axis1=IfcDirection(DirectionRatios=[-1.0, 0.0]), Axis2=IfcDirection(DirectionRatios=[0.0, 1.0]), LocalOrigin=IfcCartesianPoint(Coordinates=[0.0, 0.0]), Scale=1.0) @@ -9268,8 +9278,8 @@ class IfcMobileTelecommunicationsAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMobileTelecommunicationsAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -9278,8 +9288,8 @@ class IfcMobileTelecommunicationsAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcmobiletelecommunicationsappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcmobiletelecommunicationsappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMobileTelecommunicationsApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9288,8 +9298,8 @@ class IfcMobileTelecommunicationsApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMooringDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -9298,8 +9308,8 @@ class IfcMooringDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMooringDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -9308,8 +9318,8 @@ class IfcMooringDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcmooringdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcmooringdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMooringDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9318,8 +9328,8 @@ class IfcMooringDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMotorConnection_CorrectPredefinedType: SCOPE = 'entity' @@ -9328,8 +9338,8 @@ class IfcMotorConnection_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMotorConnection_CorrectTypeAssigned: SCOPE = 'entity' @@ -9338,8 +9348,8 @@ class IfcMotorConnection_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcmotorconnectiontype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcmotorconnectiontype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMotorConnectionType_CorrectPredefinedType: SCOPE = 'entity' @@ -9348,8 +9358,8 @@ class IfcMotorConnectionType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcNamedUnit_WR1: SCOPE = 'entity' @@ -9358,7 +9368,7 @@ class IfcNamedUnit_WR1: @staticmethod def __call__(self): - assert IfcCorrectDimensions(getattr(self, 'UnitType', INDETERMINATE), getattr(self, 'Dimensions', INDETERMINATE)) is not False + assert IfcCorrectDimensions(express_getattr(self, 'UnitType', INDETERMINATE), express_getattr(self, 'Dimensions', INDETERMINATE)) is not False class IfcNavigationElement_CorrectPredefinedType: SCOPE = 'entity' @@ -9367,8 +9377,8 @@ class IfcNavigationElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcNavigationElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -9377,8 +9387,8 @@ class IfcNavigationElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcnavigationelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcnavigationelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcNavigationElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -9387,8 +9397,8 @@ class IfcNavigationElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcObject_UniquePropertySetNames: SCOPE = 'entity' @@ -9397,7 +9407,7 @@ class IfcObject_UniquePropertySetNames: @staticmethod def __call__(self): - isdefinedby = getattr(self, 'IsDefinedBy', INDETERMINATE) + isdefinedby = express_getattr(self, 'IsDefinedBy', INDETERMINATE) assert (sizeof(isdefinedby) == 0 or IfcUniqueDefinitionNames(isdefinedby)) is not False class IfcObjective_WR21: @@ -9407,8 +9417,8 @@ class IfcObjective_WR21: @staticmethod def __call__(self): - objectivequalifier = getattr(self, 'ObjectiveQualifier', INDETERMINATE) - assert (objectivequalifier != getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) or (objectivequalifier == getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedQualifier', INDETERMINATE)))) is not False + objectivequalifier = express_getattr(self, 'ObjectiveQualifier', INDETERMINATE) + assert (objectivequalifier != express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) or (objectivequalifier == express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedQualifier', INDETERMINATE)))) is not False class IfcOccupant_WR31: SCOPE = 'entity' @@ -9417,8 +9427,8 @@ class IfcOccupant_WR31: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not predefinedtype == getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not predefinedtype == express_getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcOffsetCurve2D_DimIs2D: SCOPE = 'entity' @@ -9427,8 +9437,8 @@ class IfcOffsetCurve2D_DimIs2D: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - assert (getattr(basiscurve, 'Dim', INDETERMINATE) == 2) is not False + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + assert (express_getattr(basiscurve, 'Dim', INDETERMINATE) == 2) is not False class IfcOffsetCurve3D_DimIs2D: SCOPE = 'entity' @@ -9437,8 +9447,8 @@ class IfcOffsetCurve3D_DimIs2D: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - assert (getattr(basiscurve, 'Dim', INDETERMINATE) == 3) is not False + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + assert (express_getattr(basiscurve, 'Dim', INDETERMINATE) == 3) is not False class IfcOpenCrossProfileDef_CorrectProfileType: SCOPE = 'entity' @@ -9447,7 +9457,7 @@ class IfcOpenCrossProfileDef_CorrectProfileType: @staticmethod def __call__(self): - assert (getattr(self, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False class IfcOpenCrossProfileDef_CorrespondingSlopeWidths: SCOPE = 'entity' @@ -9456,8 +9466,8 @@ class IfcOpenCrossProfileDef_CorrespondingSlopeWidths: @staticmethod def __call__(self): - widths = getattr(self, 'Widths', INDETERMINATE) - slopes = getattr(self, 'Slopes', INDETERMINATE) + widths = express_getattr(self, 'Widths', INDETERMINATE) + slopes = express_getattr(self, 'Slopes', INDETERMINATE) assert (sizeof(slopes) == sizeof(widths)) is not False class IfcOpenCrossProfileDef_CorrespondingTags: @@ -9467,8 +9477,8 @@ class IfcOpenCrossProfileDef_CorrespondingTags: @staticmethod def __call__(self): - slopes = getattr(self, 'Slopes', INDETERMINATE) - tags = getattr(self, 'Tags', INDETERMINATE) + slopes = express_getattr(self, 'Slopes', INDETERMINATE) + tags = express_getattr(self, 'Tags', INDETERMINATE) assert (not exists(tags) or sizeof(tags) == sizeof(slopes) + 1) is not False class IfcOpeningElement_CorrectPredefinedType: @@ -9478,8 +9488,8 @@ class IfcOpeningElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcOrientedEdge_EdgeElementNotOriented: SCOPE = 'entity' @@ -9488,18 +9498,18 @@ class IfcOrientedEdge_EdgeElementNotOriented: @staticmethod def __call__(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) assert (not 'ifc4x3.ifcorientededge' in typeof(edgeelement)) is not False def calc_IfcOrientedEdge_EdgeStart(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) - orientation = getattr(self, 'Orientation', INDETERMINATE) - return IfcBooleanChoose(orientation, getattr(edgeelement, 'EdgeStart', INDETERMINATE), getattr(edgeelement, 'EdgeEnd', INDETERMINATE)) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return IfcBooleanChoose(orientation, express_getattr(edgeelement, 'EdgeStart', INDETERMINATE), express_getattr(edgeelement, 'EdgeEnd', INDETERMINATE)) def calc_IfcOrientedEdge_EdgeEnd(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) - orientation = getattr(self, 'Orientation', INDETERMINATE) - return IfcBooleanChoose(orientation, getattr(edgeelement, 'EdgeEnd', INDETERMINATE), getattr(edgeelement, 'EdgeStart', INDETERMINATE)) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return IfcBooleanChoose(orientation, express_getattr(edgeelement, 'EdgeEnd', INDETERMINATE), express_getattr(edgeelement, 'EdgeStart', INDETERMINATE)) class IfcOutlet_CorrectPredefinedType: SCOPE = 'entity' @@ -9508,8 +9518,8 @@ class IfcOutlet_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcOutlet_CorrectTypeAssigned: SCOPE = 'entity' @@ -9518,8 +9528,8 @@ class IfcOutlet_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcoutlettype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcoutlettype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcOutletType_CorrectPredefinedType: SCOPE = 'entity' @@ -9528,8 +9538,8 @@ class IfcOutletType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcOwnerHistory_CorrectChangeAction: SCOPE = 'entity' @@ -9538,9 +9548,9 @@ class IfcOwnerHistory_CorrectChangeAction: @staticmethod def __call__(self): - changeaction = getattr(self, 'ChangeAction', INDETERMINATE) - lastmodifieddate = getattr(self, 'LastModifiedDate', INDETERMINATE) - assert (exists(lastmodifieddate) or (not exists(lastmodifieddate) and (not exists(changeaction))) or (not exists(lastmodifieddate) and exists(changeaction) and (changeaction == getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) or changeaction == getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE)))) is not False + changeaction = express_getattr(self, 'ChangeAction', INDETERMINATE) + lastmodifieddate = express_getattr(self, 'LastModifiedDate', INDETERMINATE) + assert (exists(lastmodifieddate) or (not exists(lastmodifieddate) and (not exists(changeaction))) or (not exists(lastmodifieddate) and exists(changeaction) and (changeaction == express_getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) or changeaction == express_getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE)))) is not False class IfcPath_IsContinuous: SCOPE = 'entity' @@ -9558,8 +9568,8 @@ class IfcPavement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPavement_CorrectTypeAssigned: SCOPE = 'entity' @@ -9568,8 +9578,8 @@ class IfcPavement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcpavementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcpavementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPavementType_CorrectPredefinedType: SCOPE = 'entity' @@ -9578,8 +9588,8 @@ class IfcPavementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPcurve_DimIs2D: SCOPE = 'entity' @@ -9588,8 +9598,8 @@ class IfcPcurve_DimIs2D: @staticmethod def __call__(self): - referencecurve = getattr(self, 'ReferenceCurve', INDETERMINATE) - assert (getattr(referencecurve, 'Dim', INDETERMINATE) == 2) is not False + referencecurve = express_getattr(self, 'ReferenceCurve', INDETERMINATE) + assert (express_getattr(referencecurve, 'Dim', INDETERMINATE) == 2) is not False class IfcPerson_IdentifiablePerson: SCOPE = 'entity' @@ -9598,9 +9608,9 @@ class IfcPerson_IdentifiablePerson: @staticmethod def __call__(self): - identification = getattr(self, 'Identification', INDETERMINATE) - familyname = getattr(self, 'FamilyName', INDETERMINATE) - givenname = getattr(self, 'GivenName', INDETERMINATE) + identification = express_getattr(self, 'Identification', INDETERMINATE) + familyname = express_getattr(self, 'FamilyName', INDETERMINATE) + givenname = express_getattr(self, 'GivenName', INDETERMINATE) assert (exists(identification) or exists(familyname) or exists(givenname)) is not False class IfcPerson_ValidSetOfNames: @@ -9610,9 +9620,9 @@ class IfcPerson_ValidSetOfNames: @staticmethod def __call__(self): - familyname = getattr(self, 'FamilyName', INDETERMINATE) - givenname = getattr(self, 'GivenName', INDETERMINATE) - middlenames = getattr(self, 'MiddleNames', INDETERMINATE) + familyname = express_getattr(self, 'FamilyName', INDETERMINATE) + givenname = express_getattr(self, 'GivenName', INDETERMINATE) + middlenames = express_getattr(self, 'MiddleNames', INDETERMINATE) assert (not exists(middlenames) or exists(familyname) or exists(givenname)) is not False class IfcPhysicalComplexQuantity_NoSelfReference: @@ -9622,7 +9632,7 @@ class IfcPhysicalComplexQuantity_NoSelfReference: @staticmethod def __call__(self): - hasquantities = getattr(self, 'HasQuantities', INDETERMINATE) + hasquantities = express_getattr(self, 'HasQuantities', INDETERMINATE) assert (sizeof([temp for temp in hasquantities if self == temp]) == 0) is not False class IfcPhysicalComplexQuantity_UniqueQuantityNames: @@ -9632,7 +9642,7 @@ class IfcPhysicalComplexQuantity_UniqueQuantityNames: @staticmethod def __call__(self): - hasquantities = getattr(self, 'HasQuantities', INDETERMINATE) + hasquantities = express_getattr(self, 'HasQuantities', INDETERMINATE) assert IfcUniqueQuantityNames(hasquantities) is not False class IfcPile_CorrectPredefinedType: @@ -9642,8 +9652,8 @@ class IfcPile_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPile_CorrectTypeAssigned: SCOPE = 'entity' @@ -9652,8 +9662,8 @@ class IfcPile_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcpiletype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcpiletype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPileType_CorrectPredefinedType: SCOPE = 'entity' @@ -9662,8 +9672,8 @@ class IfcPileType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPipeFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -9672,8 +9682,8 @@ class IfcPipeFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPipeFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -9682,8 +9692,8 @@ class IfcPipeFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcpipefittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcpipefittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPipeFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -9692,8 +9702,8 @@ class IfcPipeFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPipeSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -9702,8 +9712,8 @@ class IfcPipeSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPipeSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -9712,8 +9722,8 @@ class IfcPipeSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcpipesegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcpipesegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPipeSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -9722,8 +9732,8 @@ class IfcPipeSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPixelTexture_MinPixelInS: SCOPE = 'entity' @@ -9732,7 +9742,7 @@ class IfcPixelTexture_MinPixelInS: @staticmethod def __call__(self): - width = getattr(self, 'Width', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) assert (width >= 1) is not False class IfcPixelTexture_MinPixelInT: @@ -9742,7 +9752,7 @@ class IfcPixelTexture_MinPixelInT: @staticmethod def __call__(self): - height = getattr(self, 'Height', INDETERMINATE) + height = express_getattr(self, 'Height', INDETERMINATE) assert (height >= 1) is not False class IfcPixelTexture_NumberOfColours: @@ -9752,7 +9762,7 @@ class IfcPixelTexture_NumberOfColours: @staticmethod def __call__(self): - colourcomponents = getattr(self, 'ColourComponents', INDETERMINATE) + colourcomponents = express_getattr(self, 'ColourComponents', INDETERMINATE) assert (1 <= colourcomponents <= 4) is not False class IfcPixelTexture_PixelAsByteAndSameLength: @@ -9762,7 +9772,7 @@ class IfcPixelTexture_PixelAsByteAndSameLength: @staticmethod def __call__(self): - pixel = getattr(self, 'Pixel', INDETERMINATE) + pixel = express_getattr(self, 'Pixel', INDETERMINATE) assert (sizeof([temp for temp in pixel if blength(temp) % 8 == 0 and blength(temp) == blength(express_getitem(pixel, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == sizeof(pixel)) is not False class IfcPixelTexture_SizeOfPixelList: @@ -9772,14 +9782,14 @@ class IfcPixelTexture_SizeOfPixelList: @staticmethod def __call__(self): - width = getattr(self, 'Width', INDETERMINATE) - height = getattr(self, 'Height', INDETERMINATE) - pixel = getattr(self, 'Pixel', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + height = express_getattr(self, 'Height', INDETERMINATE) + pixel = express_getattr(self, 'Pixel', INDETERMINATE) assert (sizeof(pixel) == width * height) is not False def calc_IfcPlacement_Dim(self): - location = getattr(self, 'Location', INDETERMINATE) - return getattr(location, 'Dim', INDETERMINATE) + location = express_getattr(self, 'Location', INDETERMINATE) + return express_getattr(location, 'Dim', INDETERMINATE) class IfcPlate_CorrectPredefinedType: SCOPE = 'entity' @@ -9788,8 +9798,8 @@ class IfcPlate_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPlate_CorrectTypeAssigned: SCOPE = 'entity' @@ -9798,8 +9808,8 @@ class IfcPlate_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcplatetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcplatetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPlateType_CorrectPredefinedType: SCOPE = 'entity' @@ -9808,20 +9818,20 @@ class IfcPlateType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcPointByDistanceExpression_Dim(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - return getattr(basiscurve, 'Dim', INDETERMINATE) + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + return express_getattr(basiscurve, 'Dim', INDETERMINATE) def calc_IfcPointOnCurve_Dim(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - return getattr(basiscurve, 'Dim', INDETERMINATE) + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + return express_getattr(basiscurve, 'Dim', INDETERMINATE) def calc_IfcPointOnSurface_Dim(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) - return getattr(basissurface, 'Dim', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) + return express_getattr(basissurface, 'Dim', INDETERMINATE) class IfcPolyLoop_AllPointsSameDim: SCOPE = 'entity' @@ -9830,8 +9840,8 @@ class IfcPolyLoop_AllPointsSameDim: @staticmethod def __call__(self): - polygon = getattr(self, 'Polygon', INDETERMINATE) - assert (sizeof([temp for temp in polygon if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(polygon, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + polygon = express_getattr(self, 'Polygon', INDETERMINATE) + assert (sizeof([temp for temp in polygon if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(polygon, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False class IfcPolygonalBoundedHalfSpace_BoundaryDim: SCOPE = 'entity' @@ -9840,8 +9850,8 @@ class IfcPolygonalBoundedHalfSpace_BoundaryDim: @staticmethod def __call__(self): - polygonalboundary = getattr(self, 'PolygonalBoundary', INDETERMINATE) - assert (getattr(polygonalboundary, 'Dim', INDETERMINATE) == 2) is not False + polygonalboundary = express_getattr(self, 'PolygonalBoundary', INDETERMINATE) + assert (express_getattr(polygonalboundary, 'Dim', INDETERMINATE) == 2) is not False class IfcPolygonalBoundedHalfSpace_BoundaryType: SCOPE = 'entity' @@ -9850,7 +9860,7 @@ class IfcPolygonalBoundedHalfSpace_BoundaryType: @staticmethod def __call__(self): - polygonalboundary = getattr(self, 'PolygonalBoundary', INDETERMINATE) + polygonalboundary = express_getattr(self, 'PolygonalBoundary', INDETERMINATE) assert (sizeof(typeof(polygonalboundary) * ['ifc4x3.ifcpolyline', 'ifc4x3.ifccompositecurve', 'ifc4x3.ifcindexedpolycurve']) == 1) is not False class IfcPolyline_SameDim: @@ -9860,8 +9870,8 @@ class IfcPolyline_SameDim: @staticmethod def __call__(self): - points = getattr(self, 'Points', INDETERMINATE) - assert (sizeof([temp for temp in points if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(points, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + points = express_getattr(self, 'Points', INDETERMINATE) + assert (sizeof([temp for temp in points if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(points, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False class IfcPolynomialCurve_CorrectPositionDim: SCOPE = 'entity' @@ -9870,9 +9880,9 @@ class IfcPolynomialCurve_CorrectPositionDim: @staticmethod def __call__(self): - position = getattr(self, 'Position', INDETERMINATE) - coefficientsz = getattr(self, 'CoefficientsZ', INDETERMINATE) - assert (getattr(position, 'Dim', INDETERMINATE) == 2 and (not exists(coefficientsz)) or getattr(position, 'Dim', INDETERMINATE) == 3) is not False + position = express_getattr(self, 'Position', INDETERMINATE) + coefficientsz = express_getattr(self, 'CoefficientsZ', INDETERMINATE) + assert (express_getattr(position, 'Dim', INDETERMINATE) == 2 and (not exists(coefficientsz)) or express_getattr(position, 'Dim', INDETERMINATE) == 3) is not False class IfcPolynomialCurve_ValidCoefficients: SCOPE = 'entity' @@ -9881,9 +9891,9 @@ class IfcPolynomialCurve_ValidCoefficients: @staticmethod def __call__(self): - coefficientsx = getattr(self, 'CoefficientsX', INDETERMINATE) - coefficientsy = getattr(self, 'CoefficientsY', INDETERMINATE) - coefficientsz = getattr(self, 'CoefficientsZ', INDETERMINATE) + coefficientsx = express_getattr(self, 'CoefficientsX', INDETERMINATE) + coefficientsy = express_getattr(self, 'CoefficientsY', INDETERMINATE) + coefficientsz = express_getattr(self, 'CoefficientsZ', INDETERMINATE) assert (exists(coefficientsx) and exists(coefficientsy) or (exists(coefficientsx) and exists(coefficientsz)) or (exists(coefficientsy) and exists(coefficientsz)) or (exists(coefficientsx) and exists(coefficientsy) and exists(coefficientsz))) is not False class IfcPositioningElement_HasPlacement: @@ -9893,7 +9903,7 @@ class IfcPositioningElement_HasPlacement: @staticmethod def __call__(self): - assert exists(getattr(self, 'ObjectPlacement', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'ObjectPlacement', INDETERMINATE)) is not False class IfcPostalAddress_WR1: SCOPE = 'entity' @@ -9902,13 +9912,13 @@ class IfcPostalAddress_WR1: @staticmethod def __call__(self): - internallocation = getattr(self, 'InternalLocation', INDETERMINATE) - addresslines = getattr(self, 'AddressLines', INDETERMINATE) - postalbox = getattr(self, 'PostalBox', INDETERMINATE) - town = getattr(self, 'Town', INDETERMINATE) - region = getattr(self, 'Region', INDETERMINATE) - postalcode = getattr(self, 'PostalCode', INDETERMINATE) - country = getattr(self, 'Country', INDETERMINATE) + internallocation = express_getattr(self, 'InternalLocation', INDETERMINATE) + addresslines = express_getattr(self, 'AddressLines', INDETERMINATE) + postalbox = express_getattr(self, 'PostalBox', INDETERMINATE) + town = express_getattr(self, 'Town', INDETERMINATE) + region = express_getattr(self, 'Region', INDETERMINATE) + postalcode = express_getattr(self, 'PostalCode', INDETERMINATE) + country = express_getattr(self, 'Country', INDETERMINATE) assert (exists(internallocation) or exists(addresslines) or exists(postalbox) or exists(postalcode) or exists(town) or exists(region) or exists(country)) is not False class IfcPresentationLayerAssignment_ApplicableItems: @@ -9918,7 +9928,7 @@ class IfcPresentationLayerAssignment_ApplicableItems: @staticmethod def __call__(self): - assigneditems = getattr(self, 'AssignedItems', INDETERMINATE) + assigneditems = express_getattr(self, 'AssignedItems', INDETERMINATE) assert (sizeof([temp for temp in assigneditems if sizeof(typeof(temp) * ['ifc4x3.ifcshaperepresentation', 'ifc4x3.ifcgeometricrepresentationitem', 'ifc4x3.ifcmappeditem']) == 1]) == sizeof(assigneditems)) is not False class IfcPresentationLayerWithStyle_ApplicableOnlyToItems: @@ -9928,7 +9938,7 @@ class IfcPresentationLayerWithStyle_ApplicableOnlyToItems: @staticmethod def __call__(self): - assigneditems = getattr(self, 'AssignedItems', INDETERMINATE) + assigneditems = express_getattr(self, 'AssignedItems', INDETERMINATE) assert (sizeof([temp for temp in assigneditems if sizeof(typeof(temp) * ['ifc4x3.ifcgeometricrepresentationitem', 'ifc4x3.ifcmappeditem']) >= 1]) == sizeof(assigneditems)) is not False class IfcProcedure_CorrectPredefinedType: @@ -9938,8 +9948,8 @@ class IfcProcedure_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProcedure_HasName: SCOPE = 'entity' @@ -9948,7 +9958,7 @@ class IfcProcedure_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcProcedureType_CorrectPredefinedType: SCOPE = 'entity' @@ -9957,8 +9967,8 @@ class IfcProcedureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcProduct_PlacementForShapeRepresentation: SCOPE = 'entity' @@ -9967,9 +9977,9 @@ class IfcProduct_PlacementForShapeRepresentation: @staticmethod def __call__(self): - objectplacement = getattr(self, 'ObjectPlacement', INDETERMINATE) - representation = getattr(self, 'Representation', INDETERMINATE) - assert (exists(representation) and exists(objectplacement) or (exists(representation) and sizeof([temp for temp in getattr(representation, 'Representations', INDETERMINATE) if 'ifc4x3.ifcshaperepresentation' in typeof(temp)]) == 0) or (not exists(representation))) is not False + objectplacement = express_getattr(self, 'ObjectPlacement', INDETERMINATE) + representation = express_getattr(self, 'Representation', INDETERMINATE) + assert (exists(representation) and exists(objectplacement) or (exists(representation) and sizeof([temp for temp in express_getattr(representation, 'Representations', INDETERMINATE) if 'ifc4x3.ifcshaperepresentation' in typeof(temp)]) == 0) or (not exists(representation))) is not False class IfcProductDefinitionShape_OnlyShapeModel: SCOPE = 'entity' @@ -9978,7 +9988,7 @@ class IfcProductDefinitionShape_OnlyShapeModel: @staticmethod def __call__(self): - representations = getattr(self, 'Representations', INDETERMINATE) + representations = express_getattr(self, 'Representations', INDETERMINATE) assert (sizeof([temp for temp in representations if not 'ifc4x3.ifcshapemodel' in typeof(temp)]) == 0) is not False class IfcProject_CorrectContext: @@ -9988,7 +9998,7 @@ class IfcProject_CorrectContext: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'RepresentationContexts', INDETERMINATE)) or sizeof([temp for temp in getattr(self, 'RepresentationContexts', INDETERMINATE) if 'ifc4x3.ifcgeometricrepresentationsubcontext' in typeof(temp)]) == 0) is not False + assert (not exists(express_getattr(self, 'RepresentationContexts', INDETERMINATE)) or sizeof([temp for temp in express_getattr(self, 'RepresentationContexts', INDETERMINATE) if 'ifc4x3.ifcgeometricrepresentationsubcontext' in typeof(temp)]) == 0) is not False class IfcProject_HasName: SCOPE = 'entity' @@ -9997,7 +10007,7 @@ class IfcProject_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcProject_NoDecomposition: SCOPE = 'entity' @@ -10006,7 +10016,7 @@ class IfcProject_NoDecomposition: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'Decomposes', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'Decomposes', INDETERMINATE)) == 0) is not False class IfcProjectedCRS_IsLengthUnit: SCOPE = 'entity' @@ -10015,8 +10025,8 @@ class IfcProjectedCRS_IsLengthUnit: @staticmethod def __call__(self): - mapunit = getattr(self, 'MapUnit', INDETERMINATE) - assert (not exists(mapunit) or getattr(mapunit, 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False + mapunit = express_getattr(self, 'MapUnit', INDETERMINATE) + assert (not exists(mapunit) or express_getattr(mapunit, 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False class IfcProjectionElement_CorrectPredefinedType: SCOPE = 'entity' @@ -10025,8 +10035,8 @@ class IfcProjectionElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPropertyBoundedValue_SameUnitLowerSet: SCOPE = 'entity' @@ -10035,8 +10045,8 @@ class IfcPropertyBoundedValue_SameUnitLowerSet: @staticmethod def __call__(self): - lowerboundvalue = getattr(self, 'LowerBoundValue', INDETERMINATE) - setpointvalue = getattr(self, 'SetPointValue', INDETERMINATE) + lowerboundvalue = express_getattr(self, 'LowerBoundValue', INDETERMINATE) + setpointvalue = express_getattr(self, 'SetPointValue', INDETERMINATE) assert (not exists(lowerboundvalue) or not exists(setpointvalue) or typeof(lowerboundvalue) == typeof(setpointvalue)) is not False class IfcPropertyBoundedValue_SameUnitUpperLower: @@ -10046,8 +10056,8 @@ class IfcPropertyBoundedValue_SameUnitUpperLower: @staticmethod def __call__(self): - upperboundvalue = getattr(self, 'UpperBoundValue', INDETERMINATE) - lowerboundvalue = getattr(self, 'LowerBoundValue', INDETERMINATE) + upperboundvalue = express_getattr(self, 'UpperBoundValue', INDETERMINATE) + lowerboundvalue = express_getattr(self, 'LowerBoundValue', INDETERMINATE) assert (not exists(upperboundvalue) or not exists(lowerboundvalue) or typeof(upperboundvalue) == typeof(lowerboundvalue)) is not False class IfcPropertyBoundedValue_SameUnitUpperSet: @@ -10057,8 +10067,8 @@ class IfcPropertyBoundedValue_SameUnitUpperSet: @staticmethod def __call__(self): - upperboundvalue = getattr(self, 'UpperBoundValue', INDETERMINATE) - setpointvalue = getattr(self, 'SetPointValue', INDETERMINATE) + upperboundvalue = express_getattr(self, 'UpperBoundValue', INDETERMINATE) + setpointvalue = express_getattr(self, 'SetPointValue', INDETERMINATE) assert (not exists(upperboundvalue) or not exists(setpointvalue) or typeof(upperboundvalue) == typeof(setpointvalue)) is not False class IfcPropertyDependencyRelationship_NoSelfReference: @@ -10068,8 +10078,8 @@ class IfcPropertyDependencyRelationship_NoSelfReference: @staticmethod def __call__(self): - dependingproperty = getattr(self, 'DependingProperty', INDETERMINATE) - dependantproperty = getattr(self, 'DependantProperty', INDETERMINATE) + dependingproperty = express_getattr(self, 'DependingProperty', INDETERMINATE) + dependantproperty = express_getattr(self, 'DependantProperty', INDETERMINATE) assert (dependingproperty != dependantproperty) is not False class IfcPropertyEnumeratedValue_WR21: @@ -10079,9 +10089,9 @@ class IfcPropertyEnumeratedValue_WR21: @staticmethod def __call__(self): - enumerationvalues = getattr(self, 'EnumerationValues', INDETERMINATE) - enumerationreference = getattr(self, 'EnumerationReference', INDETERMINATE) - assert (not exists(enumerationreference) or not exists(enumerationvalues) or sizeof([temp for temp in enumerationvalues if temp in getattr(enumerationreference, 'EnumerationValues', INDETERMINATE)]) == sizeof(enumerationvalues)) is not False + enumerationvalues = express_getattr(self, 'EnumerationValues', INDETERMINATE) + enumerationreference = express_getattr(self, 'EnumerationReference', INDETERMINATE) + assert (not exists(enumerationreference) or not exists(enumerationvalues) or sizeof([temp for temp in enumerationvalues if temp in express_getattr(enumerationreference, 'EnumerationValues', INDETERMINATE)]) == sizeof(enumerationvalues)) is not False class IfcPropertyEnumeration_WR01: SCOPE = 'entity' @@ -10090,7 +10100,7 @@ class IfcPropertyEnumeration_WR01: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'EnumerationValues', INDETERMINATE) if not typeof(express_getitem(getattr(self, 'EnumerationValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'EnumerationValues', INDETERMINATE) if not typeof(express_getitem(express_getattr(self, 'EnumerationValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False class IfcPropertyListValue_WR31: SCOPE = 'entity' @@ -10099,7 +10109,7 @@ class IfcPropertyListValue_WR31: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'ListValues', INDETERMINATE) if not typeof(express_getitem(getattr(self, 'ListValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'ListValues', INDETERMINATE) if not typeof(express_getitem(express_getattr(self, 'ListValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False class IfcPropertySet_ExistsName: SCOPE = 'entity' @@ -10108,7 +10118,7 @@ class IfcPropertySet_ExistsName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPropertySet_UniquePropertyNames: SCOPE = 'entity' @@ -10117,7 +10127,7 @@ class IfcPropertySet_UniquePropertyNames: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert IfcUniquePropertyName(hasproperties) is not False class IfcPropertySetTemplate_ExistsName: @@ -10127,7 +10137,7 @@ class IfcPropertySetTemplate_ExistsName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPropertySetTemplate_UniquePropertyNames: SCOPE = 'entity' @@ -10136,7 +10146,7 @@ class IfcPropertySetTemplate_UniquePropertyNames: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert IfcUniquePropertyTemplateNames(haspropertytemplates) is not False class IfcPropertyTableValue_WR21: @@ -10146,8 +10156,8 @@ class IfcPropertyTableValue_WR21: @staticmethod def __call__(self): - definingvalues = getattr(self, 'DefiningValues', INDETERMINATE) - definedvalues = getattr(self, 'DefinedValues', INDETERMINATE) + definingvalues = express_getattr(self, 'DefiningValues', INDETERMINATE) + definedvalues = express_getattr(self, 'DefinedValues', INDETERMINATE) assert (not exists(definingvalues) and (not exists(definedvalues)) or sizeof(definingvalues) == sizeof(definedvalues)) is not False class IfcPropertyTableValue_WR22: @@ -10157,8 +10167,8 @@ class IfcPropertyTableValue_WR22: @staticmethod def __call__(self): - definingvalues = getattr(self, 'DefiningValues', INDETERMINATE) - assert (not exists(definingvalues) or sizeof([temp for temp in getattr(self, 'DefiningValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(getattr(self, 'DefiningValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False + definingvalues = express_getattr(self, 'DefiningValues', INDETERMINATE) + assert (not exists(definingvalues) or sizeof([temp for temp in express_getattr(self, 'DefiningValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(express_getattr(self, 'DefiningValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False class IfcPropertyTableValue_WR23: SCOPE = 'entity' @@ -10167,8 +10177,8 @@ class IfcPropertyTableValue_WR23: @staticmethod def __call__(self): - definedvalues = getattr(self, 'DefinedValues', INDETERMINATE) - assert (not exists(definedvalues) or sizeof([temp for temp in getattr(self, 'DefinedValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(getattr(self, 'DefinedValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False + definedvalues = express_getattr(self, 'DefinedValues', INDETERMINATE) + assert (not exists(definedvalues) or sizeof([temp for temp in express_getattr(self, 'DefinedValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(express_getattr(self, 'DefinedValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False class IfcProtectiveDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -10177,8 +10187,8 @@ class IfcProtectiveDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProtectiveDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -10187,8 +10197,8 @@ class IfcProtectiveDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcprotectivedevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcprotectivedevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcProtectiveDeviceTrippingUnit_CorrectPredefinedType: SCOPE = 'entity' @@ -10197,8 +10207,8 @@ class IfcProtectiveDeviceTrippingUnit_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProtectiveDeviceTrippingUnit_CorrectTypeAssigned: SCOPE = 'entity' @@ -10207,8 +10217,8 @@ class IfcProtectiveDeviceTrippingUnit_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcprotectivedevicetrippingunittype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcprotectivedevicetrippingunittype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcProtectiveDeviceTrippingUnitType_CorrectPredefinedType: SCOPE = 'entity' @@ -10217,8 +10227,8 @@ class IfcProtectiveDeviceTrippingUnitType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcProtectiveDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -10227,8 +10237,8 @@ class IfcProtectiveDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPump_CorrectPredefinedType: SCOPE = 'entity' @@ -10237,8 +10247,8 @@ class IfcPump_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPump_CorrectTypeAssigned: SCOPE = 'entity' @@ -10247,8 +10257,8 @@ class IfcPump_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcpumptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcpumptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPumpType_CorrectPredefinedType: SCOPE = 'entity' @@ -10257,8 +10267,8 @@ class IfcPumpType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcQuantityArea_WR21: SCOPE = 'entity' @@ -10267,7 +10277,7 @@ class IfcQuantityArea_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE)) is not False class IfcQuantityArea_WR22: SCOPE = 'entity' @@ -10276,7 +10286,7 @@ class IfcQuantityArea_WR22: @staticmethod def __call__(self): - areavalue = getattr(self, 'AreaValue', INDETERMINATE) + areavalue = express_getattr(self, 'AreaValue', INDETERMINATE) assert (areavalue >= 0.0) is not False class IfcQuantityCount_WR21: @@ -10286,7 +10296,7 @@ class IfcQuantityCount_WR21: @staticmethod def __call__(self): - countvalue = getattr(self, 'CountValue', INDETERMINATE) + countvalue = express_getattr(self, 'CountValue', INDETERMINATE) assert (countvalue >= 0) is not False class IfcQuantityLength_WR21: @@ -10296,7 +10306,7 @@ class IfcQuantityLength_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False class IfcQuantityLength_WR22: SCOPE = 'entity' @@ -10305,7 +10315,7 @@ class IfcQuantityLength_WR22: @staticmethod def __call__(self): - lengthvalue = getattr(self, 'LengthValue', INDETERMINATE) + lengthvalue = express_getattr(self, 'LengthValue', INDETERMINATE) assert (lengthvalue >= 0.0) is not False class IfcQuantityTime_WR21: @@ -10315,7 +10325,7 @@ class IfcQuantityTime_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE)) is not False class IfcQuantityTime_WR22: SCOPE = 'entity' @@ -10324,7 +10334,7 @@ class IfcQuantityTime_WR22: @staticmethod def __call__(self): - timevalue = getattr(self, 'TimeValue', INDETERMINATE) + timevalue = express_getattr(self, 'TimeValue', INDETERMINATE) assert (timevalue >= 0.0) is not False class IfcQuantityVolume_WR21: @@ -10334,7 +10344,7 @@ class IfcQuantityVolume_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE)) is not False class IfcQuantityVolume_WR22: SCOPE = 'entity' @@ -10343,7 +10353,7 @@ class IfcQuantityVolume_WR22: @staticmethod def __call__(self): - volumevalue = getattr(self, 'VolumeValue', INDETERMINATE) + volumevalue = express_getattr(self, 'VolumeValue', INDETERMINATE) assert (volumevalue >= 0.0) is not False class IfcQuantityWeight_WR21: @@ -10353,7 +10363,7 @@ class IfcQuantityWeight_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE)) is not False class IfcQuantityWeight_WR22: SCOPE = 'entity' @@ -10362,7 +10372,7 @@ class IfcQuantityWeight_WR22: @staticmethod def __call__(self): - weightvalue = getattr(self, 'WeightValue', INDETERMINATE) + weightvalue = express_getattr(self, 'WeightValue', INDETERMINATE) assert (weightvalue >= 0.0) is not False class IfcRail_CorrectPredefinedType: @@ -10372,8 +10382,8 @@ class IfcRail_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRail_CorrectTypeAssigned: SCOPE = 'entity' @@ -10382,8 +10392,8 @@ class IfcRail_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcrailtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcrailtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRailType_CorrectPredefinedType: SCOPE = 'entity' @@ -10392,8 +10402,8 @@ class IfcRailType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRailing_CorrectPredefinedType: SCOPE = 'entity' @@ -10402,8 +10412,8 @@ class IfcRailing_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRailing_CorrectTypeAssigned: SCOPE = 'entity' @@ -10412,8 +10422,8 @@ class IfcRailing_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcrailingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcrailingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRailingType_CorrectPredefinedType: SCOPE = 'entity' @@ -10422,8 +10432,8 @@ class IfcRailingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRailway_CorrectPredefinedType: SCOPE = 'entity' @@ -10432,8 +10442,8 @@ class IfcRailway_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRailway_HasObjectType: SCOPE = 'entity' @@ -10442,8 +10452,8 @@ class IfcRailway_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcRailwayPart_CorrectPredefinedType: SCOPE = 'entity' @@ -10452,8 +10462,8 @@ class IfcRailwayPart_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRamp_CorrectPredefinedType: SCOPE = 'entity' @@ -10462,8 +10472,8 @@ class IfcRamp_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRamp_CorrectTypeAssigned: SCOPE = 'entity' @@ -10472,8 +10482,8 @@ class IfcRamp_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcramptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcramptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRampFlight_CorrectPredefinedType: SCOPE = 'entity' @@ -10482,8 +10492,8 @@ class IfcRampFlight_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRampFlight_CorrectTypeAssigned: SCOPE = 'entity' @@ -10492,8 +10502,8 @@ class IfcRampFlight_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcrampflighttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcrampflighttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRampFlightType_CorrectPredefinedType: SCOPE = 'entity' @@ -10502,8 +10512,8 @@ class IfcRampFlightType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRampType_CorrectPredefinedType: SCOPE = 'entity' @@ -10512,8 +10522,8 @@ class IfcRampType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRationalBSplineCurveWithKnots_SameNumOfWeightsAndPoints: SCOPE = 'entity' @@ -10522,8 +10532,8 @@ class IfcRationalBSplineCurveWithKnots_SameNumOfWeightsAndPoints: @staticmethod def __call__(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - assert (sizeof(weightsdata) == sizeof(getattr(self, 'ControlPointsList', INDETERMINATE))) is not False + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + assert (sizeof(weightsdata) == sizeof(express_getattr(self, 'ControlPointsList', INDETERMINATE))) is not False class IfcRationalBSplineCurveWithKnots_WeightsGreaterZero: SCOPE = 'entity' @@ -10535,8 +10545,8 @@ class IfcRationalBSplineCurveWithKnots_WeightsGreaterZero: assert IfcCurveWeightsPositive(self) is not False def calc_IfcRationalBSplineCurveWithKnots_Weights(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - return IfcListToArray(weightsdata, 0, getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE)) + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + return IfcListToArray(weightsdata, 0, express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE)) class IfcRationalBSplineSurfaceWithKnots_CorrespondingWeightsDataLists: SCOPE = 'entity' @@ -10545,8 +10555,8 @@ class IfcRationalBSplineSurfaceWithKnots_CorrespondingWeightsDataLists: @staticmethod def __call__(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - assert (sizeof(weightsdata) == sizeof(getattr(self, 'ControlPointsList', INDETERMINATE)) and sizeof(express_getitem(weightsdata, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == sizeof(express_getitem(getattr(self, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + assert (sizeof(weightsdata) == sizeof(express_getattr(self, 'ControlPointsList', INDETERMINATE)) and sizeof(express_getitem(weightsdata, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == sizeof(express_getitem(express_getattr(self, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcRationalBSplineSurfaceWithKnots_WeightValuesGreaterZero: SCOPE = 'entity' @@ -10558,9 +10568,9 @@ class IfcRationalBSplineSurfaceWithKnots_WeightValuesGreaterZero: assert IfcSurfaceWeightsPositive(self) is not False def calc_IfcRationalBSplineSurfaceWithKnots_Weights(self): - uupper = getattr(self, 'UUpper', INDETERMINATE) - vupper = getattr(self, 'VUpper', INDETERMINATE) - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) + uupper = express_getattr(self, 'UUpper', INDETERMINATE) + vupper = express_getattr(self, 'VUpper', INDETERMINATE) + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) return IfcMakeArrayOfArray(weightsdata, 0, uupper, 0, vupper) class IfcRectangleHollowProfileDef_ValidInnerRadius: @@ -10570,9 +10580,9 @@ class IfcRectangleHollowProfileDef_ValidInnerRadius: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - innerfilletradius = getattr(self, 'InnerFilletRadius', INDETERMINATE) - assert (not exists(innerfilletradius) or (innerfilletradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 - wallthickness and innerfilletradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0 - wallthickness)) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + innerfilletradius = express_getattr(self, 'InnerFilletRadius', INDETERMINATE) + assert (not exists(innerfilletradius) or (innerfilletradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 - wallthickness and innerfilletradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0 - wallthickness)) is not False class IfcRectangleHollowProfileDef_ValidOuterRadius: SCOPE = 'entity' @@ -10581,8 +10591,8 @@ class IfcRectangleHollowProfileDef_ValidOuterRadius: @staticmethod def __call__(self): - outerfilletradius = getattr(self, 'OuterFilletRadius', INDETERMINATE) - assert (not exists(outerfilletradius) or (outerfilletradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 and outerfilletradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0)) is not False + outerfilletradius = express_getattr(self, 'OuterFilletRadius', INDETERMINATE) + assert (not exists(outerfilletradius) or (outerfilletradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and outerfilletradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0)) is not False class IfcRectangleHollowProfileDef_ValidWallThickness: SCOPE = 'entity' @@ -10591,8 +10601,8 @@ class IfcRectangleHollowProfileDef_ValidWallThickness: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - assert (wallthickness < getattr(self, 'XDim', INDETERMINATE) / 2.0 and wallthickness < getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + assert (wallthickness < express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and wallthickness < express_getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False class IfcRectangularTrimmedSurface_U1AndU2Different: SCOPE = 'entity' @@ -10601,8 +10611,8 @@ class IfcRectangularTrimmedSurface_U1AndU2Different: @staticmethod def __call__(self): - u1 = getattr(self, 'U1', INDETERMINATE) - u2 = getattr(self, 'U2', INDETERMINATE) + u1 = express_getattr(self, 'U1', INDETERMINATE) + u2 = express_getattr(self, 'U2', INDETERMINATE) assert (u1 != u2) is not False class IfcRectangularTrimmedSurface_UsenseCompatible: @@ -10612,10 +10622,10 @@ class IfcRectangularTrimmedSurface_UsenseCompatible: @staticmethod def __call__(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) - u1 = getattr(self, 'U1', INDETERMINATE) - u2 = getattr(self, 'U2', INDETERMINATE) - usense = getattr(self, 'Usense', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) + u1 = express_getattr(self, 'U1', INDETERMINATE) + u2 = express_getattr(self, 'U2', INDETERMINATE) + usense = express_getattr(self, 'Usense', INDETERMINATE) assert ('ifc4x3.ifcelementarysurface' in typeof(basissurface) and (not 'ifc4x3.ifcplane' in typeof(basissurface)) or 'ifc4x3.ifcsurfaceofrevolution' in typeof(basissurface) or usense == (u2 > u1)) is not False class IfcRectangularTrimmedSurface_V1AndV2Different: @@ -10625,8 +10635,8 @@ class IfcRectangularTrimmedSurface_V1AndV2Different: @staticmethod def __call__(self): - v1 = getattr(self, 'V1', INDETERMINATE) - v2 = getattr(self, 'V2', INDETERMINATE) + v1 = express_getattr(self, 'V1', INDETERMINATE) + v2 = express_getattr(self, 'V2', INDETERMINATE) assert (v1 != v2) is not False class IfcRectangularTrimmedSurface_VsenseCompatible: @@ -10636,9 +10646,9 @@ class IfcRectangularTrimmedSurface_VsenseCompatible: @staticmethod def __call__(self): - v1 = getattr(self, 'V1', INDETERMINATE) - v2 = getattr(self, 'V2', INDETERMINATE) - vsense = getattr(self, 'Vsense', INDETERMINATE) + v1 = express_getattr(self, 'V1', INDETERMINATE) + v2 = express_getattr(self, 'V2', INDETERMINATE) + vsense = express_getattr(self, 'Vsense', INDETERMINATE) assert (vsense == (v2 > v1)) is not False class IfcReinforcedSoil_CorrectPredefinedType: @@ -10648,8 +10658,8 @@ class IfcReinforcedSoil_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingBar_CorrectPredefinedType: SCOPE = 'entity' @@ -10658,8 +10668,8 @@ class IfcReinforcingBar_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingBar_CorrectTypeAssigned: SCOPE = 'entity' @@ -10668,8 +10678,8 @@ class IfcReinforcingBar_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcreinforcingbartype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcreinforcingbartype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcReinforcingBarType_BendingShapeCodeProvided: SCOPE = 'entity' @@ -10678,8 +10688,8 @@ class IfcReinforcingBarType_BendingShapeCodeProvided: @staticmethod def __call__(self): - bendingshapecode = getattr(self, 'BendingShapeCode', INDETERMINATE) - bendingparameters = getattr(self, 'BendingParameters', INDETERMINATE) + bendingshapecode = express_getattr(self, 'BendingShapeCode', INDETERMINATE) + bendingparameters = express_getattr(self, 'BendingParameters', INDETERMINATE) assert (not exists(bendingparameters) or exists(bendingshapecode)) is not False class IfcReinforcingBarType_CorrectPredefinedType: @@ -10689,8 +10699,8 @@ class IfcReinforcingBarType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcReinforcingMesh_CorrectPredefinedType: SCOPE = 'entity' @@ -10699,8 +10709,8 @@ class IfcReinforcingMesh_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingMesh_CorrectTypeAssigned: SCOPE = 'entity' @@ -10709,8 +10719,8 @@ class IfcReinforcingMesh_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcreinforcingmeshtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcreinforcingmeshtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcReinforcingMeshType_BendingShapeCodeProvided: SCOPE = 'entity' @@ -10719,8 +10729,8 @@ class IfcReinforcingMeshType_BendingShapeCodeProvided: @staticmethod def __call__(self): - bendingshapecode = getattr(self, 'BendingShapeCode', INDETERMINATE) - bendingparameters = getattr(self, 'BendingParameters', INDETERMINATE) + bendingshapecode = express_getattr(self, 'BendingShapeCode', INDETERMINATE) + bendingparameters = express_getattr(self, 'BendingParameters', INDETERMINATE) assert (not exists(bendingparameters) or exists(bendingshapecode)) is not False class IfcReinforcingMeshType_CorrectPredefinedType: @@ -10730,8 +10740,8 @@ class IfcReinforcingMeshType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRelAggregates_NoSelfReference: SCOPE = 'entity' @@ -10740,8 +10750,8 @@ class IfcRelAggregates_NoSelfReference: @staticmethod def __call__(self): - relatingobject = getattr(self, 'RelatingObject', INDETERMINATE) - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) + relatingobject = express_getattr(self, 'RelatingObject', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) assert (sizeof([temp for temp in relatedobjects if relatingobject == temp]) == 0) is not False class IfcRelAssigns_WR1: @@ -10751,8 +10761,8 @@ class IfcRelAssigns_WR1: @staticmethod def __call__(self): - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) - relatedobjectstype = getattr(self, 'RelatedObjectsType', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) + relatedobjectstype = express_getattr(self, 'RelatedObjectsType', INDETERMINATE) assert IfcCorrectObjectAssignment(relatedobjectstype, relatedobjects) is not False class IfcRelAssignsToActor_NoSelfReference: @@ -10762,8 +10772,8 @@ class IfcRelAssignsToActor_NoSelfReference: @staticmethod def __call__(self): - relatingactor = getattr(self, 'RelatingActor', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingactor == temp]) == 0) is not False + relatingactor = express_getattr(self, 'RelatingActor', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingactor == temp]) == 0) is not False class IfcRelAssignsToControl_NoSelfReference: SCOPE = 'entity' @@ -10772,8 +10782,8 @@ class IfcRelAssignsToControl_NoSelfReference: @staticmethod def __call__(self): - relatingcontrol = getattr(self, 'RelatingControl', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingcontrol == temp]) == 0) is not False + relatingcontrol = express_getattr(self, 'RelatingControl', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingcontrol == temp]) == 0) is not False class IfcRelAssignsToGroup_NoSelfReference: SCOPE = 'entity' @@ -10782,8 +10792,8 @@ class IfcRelAssignsToGroup_NoSelfReference: @staticmethod def __call__(self): - relatinggroup = getattr(self, 'RelatingGroup', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatinggroup == temp]) == 0) is not False + relatinggroup = express_getattr(self, 'RelatingGroup', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatinggroup == temp]) == 0) is not False class IfcRelAssignsToProcess_NoSelfReference: SCOPE = 'entity' @@ -10792,8 +10802,8 @@ class IfcRelAssignsToProcess_NoSelfReference: @staticmethod def __call__(self): - relatingprocess = getattr(self, 'RelatingProcess', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingprocess == temp]) == 0) is not False + relatingprocess = express_getattr(self, 'RelatingProcess', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingprocess == temp]) == 0) is not False class IfcRelAssignsToProduct_NoSelfReference: SCOPE = 'entity' @@ -10802,8 +10812,8 @@ class IfcRelAssignsToProduct_NoSelfReference: @staticmethod def __call__(self): - relatingproduct = getattr(self, 'RelatingProduct', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingproduct == temp]) == 0) is not False + relatingproduct = express_getattr(self, 'RelatingProduct', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingproduct == temp]) == 0) is not False class IfcRelAssignsToResource_NoSelfReference: SCOPE = 'entity' @@ -10812,8 +10822,8 @@ class IfcRelAssignsToResource_NoSelfReference: @staticmethod def __call__(self): - relatingresource = getattr(self, 'RelatingResource', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingresource == temp]) == 0) is not False + relatingresource = express_getattr(self, 'RelatingResource', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingresource == temp]) == 0) is not False class IfcRelAssociatesMaterial_AllowedElements: SCOPE = 'entity' @@ -10822,7 +10832,7 @@ class IfcRelAssociatesMaterial_AllowedElements: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if sizeof(typeof(temp) * ['ifc4x3.ifcelement', 'ifc4x3.ifcelementtype', 'ifc4x3.ifcwindowstyle', 'ifc4x3.ifcdoorstyle', 'ifc4x3.ifcstructuralmember', 'ifc4x3.ifcport']) == 0]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if sizeof(typeof(temp) * ['ifc4x3.ifcelement', 'ifc4x3.ifcelementtype', 'ifc4x3.ifcwindowstyle', 'ifc4x3.ifcdoorstyle', 'ifc4x3.ifcstructuralmember', 'ifc4x3.ifcport']) == 0]) == 0) is not False class IfcRelAssociatesMaterial_NoVoidElement: SCOPE = 'entity' @@ -10831,7 +10841,7 @@ class IfcRelAssociatesMaterial_NoVoidElement: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3.ifcfeatureelementsubtraction' in typeof(temp) or 'ifc4x3.ifcvirtualelement' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3.ifcfeatureelementsubtraction' in typeof(temp) or 'ifc4x3.ifcvirtualelement' in typeof(temp)]) == 0) is not False class IfcRelConnectsElements_NoSelfReference: SCOPE = 'entity' @@ -10840,8 +10850,8 @@ class IfcRelConnectsElements_NoSelfReference: @staticmethod def __call__(self): - relatingelement = getattr(self, 'RelatingElement', INDETERMINATE) - relatedelement = getattr(self, 'RelatedElement', INDETERMINATE) + relatingelement = express_getattr(self, 'RelatingElement', INDETERMINATE) + relatedelement = express_getattr(self, 'RelatedElement', INDETERMINATE) assert (relatingelement != relatedelement) is not False class IfcRelConnectsPathElements_NormalizedRelatedPriorities: @@ -10851,7 +10861,7 @@ class IfcRelConnectsPathElements_NormalizedRelatedPriorities: @staticmethod def __call__(self): - relatedpriorities = getattr(self, 'RelatedPriorities', INDETERMINATE) + relatedpriorities = express_getattr(self, 'RelatedPriorities', INDETERMINATE) assert (sizeof(relatedpriorities) == 0 or sizeof([temp for temp in relatedpriorities if 0 <= temp <= 100]) == sizeof(relatedpriorities)) is not False class IfcRelConnectsPathElements_NormalizedRelatingPriorities: @@ -10861,7 +10871,7 @@ class IfcRelConnectsPathElements_NormalizedRelatingPriorities: @staticmethod def __call__(self): - relatingpriorities = getattr(self, 'RelatingPriorities', INDETERMINATE) + relatingpriorities = express_getattr(self, 'RelatingPriorities', INDETERMINATE) assert (sizeof(relatingpriorities) == 0 or sizeof([temp for temp in relatingpriorities if 0 <= temp <= 100]) == sizeof(relatingpriorities)) is not False class IfcRelConnectsPorts_NoSelfReference: @@ -10871,8 +10881,8 @@ class IfcRelConnectsPorts_NoSelfReference: @staticmethod def __call__(self): - relatingport = getattr(self, 'RelatingPort', INDETERMINATE) - relatedport = getattr(self, 'RelatedPort', INDETERMINATE) + relatingport = express_getattr(self, 'RelatingPort', INDETERMINATE) + relatedport = express_getattr(self, 'RelatedPort', INDETERMINATE) assert (relatingport != relatedport) is not False class IfcRelContainedInSpatialStructure_WR31: @@ -10882,7 +10892,7 @@ class IfcRelContainedInSpatialStructure_WR31: @staticmethod def __call__(self): - relatedelements = getattr(self, 'RelatedElements', INDETERMINATE) + relatedelements = express_getattr(self, 'RelatedElements', INDETERMINATE) assert (sizeof([temp for temp in relatedelements if 'ifc4x3.ifcspatialstructureelement' in typeof(temp)]) == 0) is not False class IfcRelDeclares_NoSelfReference: @@ -10892,8 +10902,8 @@ class IfcRelDeclares_NoSelfReference: @staticmethod def __call__(self): - relatingcontext = getattr(self, 'RelatingContext', INDETERMINATE) - relateddefinitions = getattr(self, 'RelatedDefinitions', INDETERMINATE) + relatingcontext = express_getattr(self, 'RelatingContext', INDETERMINATE) + relateddefinitions = express_getattr(self, 'RelatedDefinitions', INDETERMINATE) assert (sizeof([temp for temp in relateddefinitions if relatingcontext == temp]) == 0) is not False class IfcRelDefinesByProperties_NoRelatedTypeObject: @@ -10903,7 +10913,7 @@ class IfcRelDefinesByProperties_NoRelatedTypeObject: @staticmethod def __call__(self): - assert (sizeof([types for types in getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3.ifctypeobject' in typeof(types)]) == 0) is not False + assert (sizeof([types for types in express_getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3.ifctypeobject' in typeof(types)]) == 0) is not False class IfcRelInterferesElements_NoSelfReference: SCOPE = 'entity' @@ -10912,8 +10922,8 @@ class IfcRelInterferesElements_NoSelfReference: @staticmethod def __call__(self): - relatingelement = getattr(self, 'RelatingElement', INDETERMINATE) - relatedelement = getattr(self, 'RelatedElement', INDETERMINATE) + relatingelement = express_getattr(self, 'RelatingElement', INDETERMINATE) + relatedelement = express_getattr(self, 'RelatedElement', INDETERMINATE) assert (relatingelement != relatedelement) is not False class IfcRelNests_NoSelfReference: @@ -10923,8 +10933,8 @@ class IfcRelNests_NoSelfReference: @staticmethod def __call__(self): - relatingobject = getattr(self, 'RelatingObject', INDETERMINATE) - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) + relatingobject = express_getattr(self, 'RelatingObject', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) assert (sizeof([temp for temp in relatedobjects if relatingobject == temp]) == 0) is not False class IfcRelPositions_NoSelfReference: @@ -10934,8 +10944,8 @@ class IfcRelPositions_NoSelfReference: @staticmethod def __call__(self): - relatingpositioningelement = getattr(self, 'RelatingPositioningElement', INDETERMINATE) - relatedproducts = getattr(self, 'RelatedProducts', INDETERMINATE) + relatingpositioningelement = express_getattr(self, 'RelatingPositioningElement', INDETERMINATE) + relatedproducts = express_getattr(self, 'RelatedProducts', INDETERMINATE) assert (sizeof([temp for temp in relatedproducts if relatingpositioningelement == temp]) == 0) is not False class IfcRelReferencedInSpatialStructure_AllowedRelatedElements: @@ -10945,7 +10955,7 @@ class IfcRelReferencedInSpatialStructure_AllowedRelatedElements: @staticmethod def __call__(self): - relatedelements = getattr(self, 'RelatedElements', INDETERMINATE) + relatedelements = express_getattr(self, 'RelatedElements', INDETERMINATE) assert (sizeof([temp for temp in relatedelements if 'ifc4x3.ifcspatialstructureelement' in typeof(temp) and (not 'ifc4x3.ifcspace' in typeof(temp))]) == 0) is not False class IfcRelSequence_AvoidInconsistentSequence: @@ -10955,8 +10965,8 @@ class IfcRelSequence_AvoidInconsistentSequence: @staticmethod def __call__(self): - relatingprocess = getattr(self, 'RelatingProcess', INDETERMINATE) - relatedprocess = getattr(self, 'RelatedProcess', INDETERMINATE) + relatingprocess = express_getattr(self, 'RelatingProcess', INDETERMINATE) + relatedprocess = express_getattr(self, 'RelatedProcess', INDETERMINATE) assert (relatingprocess != relatedprocess) is not False class IfcRelSequence_CorrectSequenceType: @@ -10966,9 +10976,9 @@ class IfcRelSequence_CorrectSequenceType: @staticmethod def __call__(self): - sequencetype = getattr(self, 'SequenceType', INDETERMINATE) - userdefinedsequencetype = getattr(self, 'UserDefinedSequenceType', INDETERMINATE) - assert (sequencetype != getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) or (sequencetype == getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedsequencetype))) is not False + sequencetype = express_getattr(self, 'SequenceType', INDETERMINATE) + userdefinedsequencetype = express_getattr(self, 'UserDefinedSequenceType', INDETERMINATE) + assert (sequencetype != express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) or (sequencetype == express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedsequencetype))) is not False class IfcRelSpaceBoundary_CorrectPhysOrVirt: SCOPE = 'entity' @@ -10977,9 +10987,9 @@ class IfcRelSpaceBoundary_CorrectPhysOrVirt: @staticmethod def __call__(self): - relatedbuildingelement = getattr(self, 'RelatedBuildingElement', INDETERMINATE) - physicalorvirtualboundary = getattr(self, 'PhysicalOrVirtualBoundary', INDETERMINATE) - assert (physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'Physical', INDETERMINATE) and (not 'ifc4x3.ifcvirtualelement' in typeof(relatedbuildingelement)) or (physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'Virtual', INDETERMINATE) and ('ifc4x3.ifcvirtualelement' in typeof(relatedbuildingelement) or 'ifc4x3.ifcopeningelement' in typeof(relatedbuildingelement))) or physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'NotDefined', INDETERMINATE)) is not False + relatedbuildingelement = express_getattr(self, 'RelatedBuildingElement', INDETERMINATE) + physicalorvirtualboundary = express_getattr(self, 'PhysicalOrVirtualBoundary', INDETERMINATE) + assert (physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'Physical', INDETERMINATE) and (not 'ifc4x3.ifcvirtualelement' in typeof(relatedbuildingelement)) or (physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'Virtual', INDETERMINATE) and ('ifc4x3.ifcvirtualelement' in typeof(relatedbuildingelement) or 'ifc4x3.ifcopeningelement' in typeof(relatedbuildingelement))) or physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'NotDefined', INDETERMINATE)) is not False class IfcReparametrisedCompositeCurveSegment_PositiveLengthParameter: SCOPE = 'entity' @@ -10988,7 +10998,7 @@ class IfcReparametrisedCompositeCurveSegment_PositiveLengthParameter: @staticmethod def __call__(self): - paramlength = getattr(self, 'ParamLength', INDETERMINATE) + paramlength = express_getattr(self, 'ParamLength', INDETERMINATE) assert (paramlength > 0.0) is not False class IfcRepresentationMap_ApplicableMappedRepr: @@ -10998,7 +11008,7 @@ class IfcRepresentationMap_ApplicableMappedRepr: @staticmethod def __call__(self): - mappedrepresentation = getattr(self, 'MappedRepresentation', INDETERMINATE) + mappedrepresentation = express_getattr(self, 'MappedRepresentation', INDETERMINATE) assert ('ifc4x3.ifcshapemodel' in typeof(mappedrepresentation)) is not False class IfcRevolvedAreaSolid_AxisDirectionInXY: @@ -11008,8 +11018,8 @@ class IfcRevolvedAreaSolid_AxisDirectionInXY: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (express_getitem(getattr(getattr(axis, 'Z', INDETERMINATE), 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (express_getitem(express_getattr(express_getattr(axis, 'Z', INDETERMINATE), 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False class IfcRevolvedAreaSolid_AxisStartInXY: SCOPE = 'entity' @@ -11018,12 +11028,12 @@ class IfcRevolvedAreaSolid_AxisStartInXY: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (express_getitem(getattr(getattr(axis, 'Location', INDETERMINATE), 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (express_getitem(express_getattr(express_getattr(axis, 'Location', INDETERMINATE), 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False def calc_IfcRevolvedAreaSolid_AxisLine(self): - axis = getattr(self, 'Axis', INDETERMINATE) - return IfcLine(Pnt=getattr(axis, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=getattr(axis, 'Z', INDETERMINATE), Magnitude=1.0)) + axis = express_getattr(self, 'Axis', INDETERMINATE) + return IfcLine(Pnt=express_getattr(axis, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=express_getattr(axis, 'Z', INDETERMINATE), Magnitude=1.0)) class IfcRevolvedAreaSolidTapered_CorrectProfileAssignment: SCOPE = 'entity' @@ -11032,7 +11042,7 @@ class IfcRevolvedAreaSolidTapered_CorrectProfileAssignment: @staticmethod def __call__(self): - assert IfcTaperedSweptAreaProfiles(getattr(self, 'SweptArea', INDETERMINATE), getattr(self, 'EndSweptArea', INDETERMINATE)) is not False + assert IfcTaperedSweptAreaProfiles(express_getattr(self, 'SweptArea', INDETERMINATE), express_getattr(self, 'EndSweptArea', INDETERMINATE)) is not False class IfcRoad_CorrectPredefinedType: SCOPE = 'entity' @@ -11041,8 +11051,8 @@ class IfcRoad_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRoad_HasObjectType: SCOPE = 'entity' @@ -11051,8 +11061,8 @@ class IfcRoad_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcRoadPart_CorrectPredefinedType: SCOPE = 'entity' @@ -11061,8 +11071,8 @@ class IfcRoadPart_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRoof_CorrectPredefinedType: SCOPE = 'entity' @@ -11071,8 +11081,8 @@ class IfcRoof_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRoof_CorrectTypeAssigned: SCOPE = 'entity' @@ -11081,8 +11091,8 @@ class IfcRoof_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcrooftype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcrooftype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRoofType_CorrectPredefinedType: SCOPE = 'entity' @@ -11091,8 +11101,8 @@ class IfcRoofType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRoundedRectangleProfileDef_ValidRadius: SCOPE = 'entity' @@ -11101,11 +11111,11 @@ class IfcRoundedRectangleProfileDef_ValidRadius: @staticmethod def __call__(self): - roundingradius = getattr(self, 'RoundingRadius', INDETERMINATE) - assert (roundingradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 and roundingradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False + roundingradius = express_getattr(self, 'RoundingRadius', INDETERMINATE) + assert (roundingradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and roundingradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False def calc_IfcSIUnit_Dimensions(self): - return IfcDimensionsForSIUnit(getattr(self, 'Name', INDETERMINATE)) + return IfcDimensionsForSIUnit(express_getattr(self, 'Name', INDETERMINATE)) class IfcSanitaryTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -11114,8 +11124,8 @@ class IfcSanitaryTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSanitaryTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -11124,8 +11134,8 @@ class IfcSanitaryTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcsanitaryterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcsanitaryterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSanitaryTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -11134,8 +11144,8 @@ class IfcSanitaryTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSeamCurve_SameSurface: SCOPE = 'entity' @@ -11144,7 +11154,7 @@ class IfcSeamCurve_SameSurface: @staticmethod def __call__(self): - assert (IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcSeamCurve_TwoPCurves: SCOPE = 'entity' @@ -11153,7 +11163,7 @@ class IfcSeamCurve_TwoPCurves: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False + assert (sizeof(express_getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False class IfcSectionedSolid_ConsistentProfileTypes: SCOPE = 'entity' @@ -11162,8 +11172,8 @@ class IfcSectionedSolid_ConsistentProfileTypes: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - assert (sizeof([temp for temp in crosssections if getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + assert (sizeof([temp for temp in crosssections if express_getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != express_getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcSectionedSolid_DirectrixIs3D: SCOPE = 'entity' @@ -11172,8 +11182,8 @@ class IfcSectionedSolid_DirectrixIs3D: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - assert (getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + assert (express_getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False class IfcSectionedSolid_SectionsSameType: SCOPE = 'entity' @@ -11182,7 +11192,7 @@ class IfcSectionedSolid_SectionsSameType: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) assert (sizeof([temp for temp in crosssections if typeof(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(temp)]) == 0) is not False class IfcSectionedSolidHorizontal_CorrespondingSectionPositions: @@ -11192,8 +11202,8 @@ class IfcSectionedSolidHorizontal_CorrespondingSectionPositions: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) assert (sizeof(crosssections) == sizeof(crosssectionpositions)) is not False class IfcSectionedSolidHorizontal_NoLongitudinalOffsets: @@ -11203,8 +11213,8 @@ class IfcSectionedSolidHorizontal_NoLongitudinalOffsets: @staticmethod def __call__(self): - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) - assert (sizeof([temp for temp in crosssectionpositions if exists(getattr(getattr(temp, 'Location', INDETERMINATE), 'OffsetLongitudinal', INDETERMINATE))]) == 0) is not False + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) + assert (sizeof([temp for temp in crosssectionpositions if exists(express_getattr(express_getattr(temp, 'Location', INDETERMINATE), 'OffsetLongitudinal', INDETERMINATE))]) == 0) is not False class IfcSectionedSpine_ConsistentProfileTypes: SCOPE = 'entity' @@ -11213,8 +11223,8 @@ class IfcSectionedSpine_ConsistentProfileTypes: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - assert (sizeof([temp for temp in crosssections if getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + assert (sizeof([temp for temp in crosssections if express_getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != express_getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcSectionedSpine_CorrespondingSectionPositions: SCOPE = 'entity' @@ -11223,8 +11233,8 @@ class IfcSectionedSpine_CorrespondingSectionPositions: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) assert (sizeof(crosssections) == sizeof(crosssectionpositions)) is not False class IfcSectionedSpine_SpineCurveDim: @@ -11234,8 +11244,8 @@ class IfcSectionedSpine_SpineCurveDim: @staticmethod def __call__(self): - spinecurve = getattr(self, 'SpineCurve', INDETERMINATE) - assert (getattr(spinecurve, 'Dim', INDETERMINATE) == 3) is not False + spinecurve = express_getattr(self, 'SpineCurve', INDETERMINATE) + assert (express_getattr(spinecurve, 'Dim', INDETERMINATE) == 3) is not False def calc_IfcSectionedSpine_Dim(self): return 3 @@ -11247,8 +11257,8 @@ class IfcSectionedSurface_AreaProfileTypes: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - assert (sizeof([temp for temp in crosssections if getattr(temp, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)]) == 0) is not False + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + assert (sizeof([temp for temp in crosssections if express_getattr(temp, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)]) == 0) is not False class IfcSectionedSurface_CorrespondingSectionPositions: SCOPE = 'entity' @@ -11257,8 +11267,8 @@ class IfcSectionedSurface_CorrespondingSectionPositions: @staticmethod def __call__(self): - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) - crosssections = getattr(self, 'CrossSections', INDETERMINATE) + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) assert (sizeof(crosssections) == sizeof(crosssectionpositions)) is not False class IfcSectionedSurface_DirectrixIs3D: @@ -11268,8 +11278,8 @@ class IfcSectionedSurface_DirectrixIs3D: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - assert (getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + assert (express_getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False class IfcSectionedSurface_NoOffsets: SCOPE = 'entity' @@ -11278,8 +11288,8 @@ class IfcSectionedSurface_NoOffsets: @staticmethod def __call__(self): - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) - assert (sizeof([temp for temp in crosssectionpositions if exists(getattr(getattr(temp, 'Location', INDETERMINATE), 'OffsetLateral', INDETERMINATE)) or exists(getattr(getattr(temp, 'Location', INDETERMINATE), 'OffsetVertical', INDETERMINATE)) or exists(getattr(getattr(temp, 'Location', INDETERMINATE), 'OffsetLongitudinal', INDETERMINATE))]) == 0) is not False + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) + assert (sizeof([temp for temp in crosssectionpositions if exists(express_getattr(express_getattr(temp, 'Location', INDETERMINATE), 'OffsetLateral', INDETERMINATE)) or exists(express_getattr(express_getattr(temp, 'Location', INDETERMINATE), 'OffsetVertical', INDETERMINATE)) or exists(express_getattr(express_getattr(temp, 'Location', INDETERMINATE), 'OffsetLongitudinal', INDETERMINATE))]) == 0) is not False class IfcSectionedSurface_SectionsSameType: SCOPE = 'entity' @@ -11288,7 +11298,7 @@ class IfcSectionedSurface_SectionsSameType: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) assert (sizeof([temp for temp in crosssections if typeof(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(temp)]) == 0) is not False class IfcSensor_CorrectPredefinedType: @@ -11298,8 +11308,8 @@ class IfcSensor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSensor_CorrectTypeAssigned: SCOPE = 'entity' @@ -11308,8 +11318,8 @@ class IfcSensor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcsensortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcsensortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSensorType_CorrectPredefinedType: SCOPE = 'entity' @@ -11318,8 +11328,8 @@ class IfcSensorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcShadingDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -11328,8 +11338,8 @@ class IfcShadingDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcShadingDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -11338,8 +11348,8 @@ class IfcShadingDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcshadingdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcshadingdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcShadingDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11348,8 +11358,8 @@ class IfcShadingDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcShapeModel_WR11: SCOPE = 'entity' @@ -11358,8 +11368,8 @@ class IfcShapeModel_WR11: @staticmethod def __call__(self): - ofshapeaspect = getattr(self, 'OfShapeAspect', INDETERMINATE) - assert (sizeof(getattr(self, 'OfProductRepresentation', INDETERMINATE)) == 1) ^ (sizeof(getattr(self, 'RepresentationMap', INDETERMINATE)) == 1) ^ (sizeof(ofshapeaspect) == 1) is not False + ofshapeaspect = express_getattr(self, 'OfShapeAspect', INDETERMINATE) + assert (sizeof(express_getattr(self, 'OfProductRepresentation', INDETERMINATE)) == 1) ^ (sizeof(express_getattr(self, 'RepresentationMap', INDETERMINATE)) == 1) ^ (sizeof(ofshapeaspect) == 1) is not False class IfcShapeRepresentation_CorrectContext: SCOPE = 'entity' @@ -11368,7 +11378,7 @@ class IfcShapeRepresentation_CorrectContext: @staticmethod def __call__(self): - assert ('ifc4x3.ifcgeometricrepresentationcontext' in typeof(getattr(self, 'ContextOfItems', INDETERMINATE))) is not False + assert ('ifc4x3.ifcgeometricrepresentationcontext' in typeof(express_getattr(self, 'ContextOfItems', INDETERMINATE))) is not False class IfcShapeRepresentation_CorrectItemsForType: SCOPE = 'entity' @@ -11377,7 +11387,7 @@ class IfcShapeRepresentation_CorrectItemsForType: @staticmethod def __call__(self): - assert IfcShapeRepresentationTypes(getattr(self, 'RepresentationType', INDETERMINATE), getattr(self, 'Items', INDETERMINATE)) is not False + assert IfcShapeRepresentationTypes(express_getattr(self, 'RepresentationType', INDETERMINATE), express_getattr(self, 'Items', INDETERMINATE)) is not False class IfcShapeRepresentation_HasRepresentationIdentifier: SCOPE = 'entity' @@ -11386,7 +11396,7 @@ class IfcShapeRepresentation_HasRepresentationIdentifier: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationIdentifier', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationIdentifier', INDETERMINATE)) is not False class IfcShapeRepresentation_HasRepresentationType: SCOPE = 'entity' @@ -11395,7 +11405,7 @@ class IfcShapeRepresentation_HasRepresentationType: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationType', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationType', INDETERMINATE)) is not False class IfcShapeRepresentation_NoTopologicalItem: SCOPE = 'entity' @@ -11404,7 +11414,7 @@ class IfcShapeRepresentation_NoTopologicalItem: @staticmethod def __call__(self): - items = getattr(self, 'Items', INDETERMINATE) + items = express_getattr(self, 'Items', INDETERMINATE) assert (sizeof([temp for temp in items if 'ifc4x3.ifctopologicalrepresentationitem' in typeof(temp) and (not sizeof(['ifc4x3.ifcvertexpoint', 'ifc4x3.ifcedgecurve', 'ifc4x3.ifcfacesurface'] * typeof(temp)) == 1)]) == 0) is not False def calc_IfcShellBasedSurfaceModel_Dim(self): @@ -11417,8 +11427,8 @@ class IfcSign_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSign_CorrectTypeAssigned: SCOPE = 'entity' @@ -11427,8 +11437,8 @@ class IfcSign_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcsigntype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcsigntype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSignType_CorrectPredefinedType: SCOPE = 'entity' @@ -11437,8 +11447,8 @@ class IfcSignType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSignal_CorrectPredefinedType: SCOPE = 'entity' @@ -11447,8 +11457,8 @@ class IfcSignal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSignal_CorrectTypeAssigned: SCOPE = 'entity' @@ -11457,8 +11467,8 @@ class IfcSignal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcsignaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcsignaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSignalType_CorrectPredefinedType: SCOPE = 'entity' @@ -11467,8 +11477,8 @@ class IfcSignalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSlab_CorrectPredefinedType: SCOPE = 'entity' @@ -11477,8 +11487,8 @@ class IfcSlab_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSlab_CorrectTypeAssigned: SCOPE = 'entity' @@ -11487,8 +11497,8 @@ class IfcSlab_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcslabtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcslabtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSlabType_CorrectPredefinedType: SCOPE = 'entity' @@ -11497,8 +11507,8 @@ class IfcSlabType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSolarDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -11507,8 +11517,8 @@ class IfcSolarDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSolarDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -11517,8 +11527,8 @@ class IfcSolarDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcsolardevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcsolardevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSolarDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11527,8 +11537,8 @@ class IfcSolarDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcSolidModel_Dim(self): return 3 @@ -11540,8 +11550,8 @@ class IfcSpace_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpace_CorrectTypeAssigned: SCOPE = 'entity' @@ -11550,8 +11560,8 @@ class IfcSpace_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcspacetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcspacetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpaceHeater_CorrectPredefinedType: SCOPE = 'entity' @@ -11560,8 +11570,8 @@ class IfcSpaceHeater_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpaceHeater_CorrectTypeAssigned: SCOPE = 'entity' @@ -11570,8 +11580,8 @@ class IfcSpaceHeater_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcspaceheatertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcspaceheatertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpaceHeaterType_CorrectPredefinedType: SCOPE = 'entity' @@ -11580,8 +11590,8 @@ class IfcSpaceHeaterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSpaceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11590,8 +11600,8 @@ class IfcSpaceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSpatialStructureElement_WR41: SCOPE = 'entity' @@ -11600,7 +11610,7 @@ class IfcSpatialStructureElement_WR41: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'Decomposes', INDETERMINATE)) == 1 and 'ifc4x3.ifcrelaggregates' in typeof(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3.ifcproject' in typeof(getattr(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)) or 'ifc4x3.ifcspatialstructureelement' in typeof(getattr(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)))) is not False + assert (hiindex(express_getattr(self, 'Decomposes', INDETERMINATE)) == 1 and 'ifc4x3.ifcrelaggregates' in typeof(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3.ifcproject' in typeof(express_getattr(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)) or 'ifc4x3.ifcspatialstructureelement' in typeof(express_getattr(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)))) is not False class IfcSpatialZone_CorrectPredefinedType: SCOPE = 'entity' @@ -11609,8 +11619,8 @@ class IfcSpatialZone_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpatialZone_CorrectTypeAssigned: SCOPE = 'entity' @@ -11619,8 +11629,8 @@ class IfcSpatialZone_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcspatialzonetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcspatialzonetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpatialZoneType_CorrectPredefinedType: SCOPE = 'entity' @@ -11629,8 +11639,8 @@ class IfcSpatialZoneType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStackTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -11639,8 +11649,8 @@ class IfcStackTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStackTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -11649,8 +11659,8 @@ class IfcStackTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcstackterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcstackterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStackTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -11659,8 +11669,8 @@ class IfcStackTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStair_CorrectPredefinedType: SCOPE = 'entity' @@ -11669,8 +11679,8 @@ class IfcStair_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStair_CorrectTypeAssigned: SCOPE = 'entity' @@ -11679,8 +11689,8 @@ class IfcStair_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcstairtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcstairtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStairFlight_CorrectPredefinedType: SCOPE = 'entity' @@ -11689,8 +11699,8 @@ class IfcStairFlight_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStairFlight_CorrectTypeAssigned: SCOPE = 'entity' @@ -11699,8 +11709,8 @@ class IfcStairFlight_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcstairflighttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcstairflighttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStairFlightType_CorrectPredefinedType: SCOPE = 'entity' @@ -11709,8 +11719,8 @@ class IfcStairFlightType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStairType_CorrectPredefinedType: SCOPE = 'entity' @@ -11719,8 +11729,8 @@ class IfcStairType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStructuralAnalysisModel_CorrectPredefinedType: SCOPE = 'entity' @@ -11729,8 +11739,8 @@ class IfcStructuralAnalysisModel_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStructuralAnalysisModel_HasObjectType: SCOPE = 'entity' @@ -11739,8 +11749,8 @@ class IfcStructuralAnalysisModel_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveAction_HasObjectType: SCOPE = 'entity' @@ -11749,8 +11759,8 @@ class IfcStructuralCurveAction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveAction_ProjectedIsGlobal: SCOPE = 'entity' @@ -11759,8 +11769,8 @@ class IfcStructuralCurveAction_ProjectedIsGlobal: @staticmethod def __call__(self): - projectedortrue = getattr(self, 'ProjectedOrTrue', INDETERMINATE) - assert (not exists(projectedortrue) or (projectedortrue != projected_length or getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False + projectedortrue = express_getattr(self, 'ProjectedOrTrue', INDETERMINATE) + assert (not exists(projectedortrue) or (projectedortrue != projected_length or express_getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False class IfcStructuralCurveAction_SuitablePredefinedType: SCOPE = 'entity' @@ -11769,8 +11779,8 @@ class IfcStructuralCurveAction_SuitablePredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE)) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE)) is not False class IfcStructuralCurveMember_HasObjectType: SCOPE = 'entity' @@ -11779,8 +11789,8 @@ class IfcStructuralCurveMember_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveReaction_HasObjectType: SCOPE = 'entity' @@ -11789,8 +11799,8 @@ class IfcStructuralCurveReaction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveReaction_SuitablePredefinedType: SCOPE = 'entity' @@ -11799,8 +11809,8 @@ class IfcStructuralCurveReaction_SuitablePredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) and predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE)) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) and predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE)) is not False class IfcStructuralLinearAction_ConstPredefinedType: SCOPE = 'entity' @@ -11809,7 +11819,7 @@ class IfcStructuralLinearAction_ConstPredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE)) is not False class IfcStructuralLinearAction_SuitableLoadType: SCOPE = 'entity' @@ -11818,7 +11828,7 @@ class IfcStructuralLinearAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3.ifcstructuralloadlinearforce', 'ifc4x3.ifcstructuralloadtemperature'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3.ifcstructuralloadlinearforce', 'ifc4x3.ifcstructuralloadtemperature'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralLoadCase_IsLoadCasePredefinedType: SCOPE = 'entity' @@ -11827,7 +11837,7 @@ class IfcStructuralLoadCase_IsLoadCasePredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE)) is not False class IfcStructuralLoadConfiguration_ValidListSize: SCOPE = 'entity' @@ -11836,8 +11846,8 @@ class IfcStructuralLoadConfiguration_ValidListSize: @staticmethod def __call__(self): - values = getattr(self, 'Values', INDETERMINATE) - locations = getattr(self, 'Locations', INDETERMINATE) + values = express_getattr(self, 'Values', INDETERMINATE) + locations = express_getattr(self, 'Locations', INDETERMINATE) assert (not exists(locations) or sizeof(locations) == sizeof(values)) is not False class IfcStructuralLoadGroup_HasObjectType: @@ -11847,10 +11857,10 @@ class IfcStructuralLoadGroup_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - actiontype = getattr(self, 'ActionType', INDETERMINATE) - actionsource = getattr(self, 'ActionSource', INDETERMINATE) - assert (predefinedtype != getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) and actiontype != getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) and (actionsource != getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE)) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + actiontype = express_getattr(self, 'ActionType', INDETERMINATE) + actionsource = express_getattr(self, 'ActionSource', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) and actiontype != express_getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) and (actionsource != express_getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE)) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralPlanarAction_ConstPredefinedType: SCOPE = 'entity' @@ -11859,7 +11869,7 @@ class IfcStructuralPlanarAction_ConstPredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE)) is not False class IfcStructuralPlanarAction_SuitableLoadType: SCOPE = 'entity' @@ -11868,7 +11878,7 @@ class IfcStructuralPlanarAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3.ifcstructuralloadplanarforce', 'ifc4x3.ifcstructuralloadtemperature'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3.ifcstructuralloadplanarforce', 'ifc4x3.ifcstructuralloadtemperature'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralPointAction_SuitableLoadType: SCOPE = 'entity' @@ -11877,7 +11887,7 @@ class IfcStructuralPointAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3.ifcstructuralloadsingleforce', 'ifc4x3.ifcstructuralloadsingledisplacement'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3.ifcstructuralloadsingleforce', 'ifc4x3.ifcstructuralloadsingledisplacement'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralPointReaction_SuitableLoadType: SCOPE = 'entity' @@ -11886,7 +11896,7 @@ class IfcStructuralPointReaction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3.ifcstructuralloadsingleforce', 'ifc4x3.ifcstructuralloadsingledisplacement'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3.ifcstructuralloadsingleforce', 'ifc4x3.ifcstructuralloadsingledisplacement'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralResultGroup_HasObjectType: SCOPE = 'entity' @@ -11895,8 +11905,8 @@ class IfcStructuralResultGroup_HasObjectType: @staticmethod def __call__(self): - theorytype = getattr(self, 'TheoryType', INDETERMINATE) - assert (theorytype != getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + theorytype = express_getattr(self, 'TheoryType', INDETERMINATE) + assert (theorytype != express_getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceAction_HasObjectType: SCOPE = 'entity' @@ -11905,8 +11915,8 @@ class IfcStructuralSurfaceAction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceAction_ProjectedIsGlobal: SCOPE = 'entity' @@ -11915,8 +11925,8 @@ class IfcStructuralSurfaceAction_ProjectedIsGlobal: @staticmethod def __call__(self): - projectedortrue = getattr(self, 'ProjectedOrTrue', INDETERMINATE) - assert (not exists(projectedortrue) or (projectedortrue != projected_length or getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False + projectedortrue = express_getattr(self, 'ProjectedOrTrue', INDETERMINATE) + assert (not exists(projectedortrue) or (projectedortrue != projected_length or express_getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False class IfcStructuralSurfaceMember_HasObjectType: SCOPE = 'entity' @@ -11925,8 +11935,8 @@ class IfcStructuralSurfaceMember_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceReaction_HasPredefinedType: SCOPE = 'entity' @@ -11935,8 +11945,8 @@ class IfcStructuralSurfaceReaction_HasPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStyledItem_ApplicableItem: SCOPE = 'entity' @@ -11945,7 +11955,7 @@ class IfcStyledItem_ApplicableItem: @staticmethod def __call__(self): - item = getattr(self, 'Item', INDETERMINATE) + item = express_getattr(self, 'Item', INDETERMINATE) assert (not 'ifc4x3.ifcstyleditem' in typeof(item)) is not False class IfcStyledRepresentation_OnlyStyledItems: @@ -11955,7 +11965,7 @@ class IfcStyledRepresentation_OnlyStyledItems: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3.ifcstyleditem' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3.ifcstyleditem' in typeof(temp)]) == 0) is not False class IfcSubContractResource_CorrectPredefinedType: SCOPE = 'entity' @@ -11964,8 +11974,8 @@ class IfcSubContractResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSubContractResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11974,8 +11984,8 @@ class IfcSubContractResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False def calc_IfcSurface_Dim(self): return 3 @@ -11987,8 +11997,8 @@ class IfcSurfaceCurve_CurveIs3D: @staticmethod def __call__(self): - curve3d = getattr(self, 'Curve3D', INDETERMINATE) - assert (getattr(curve3d, 'Dim', INDETERMINATE) == 3) is not False + curve3d = express_getattr(self, 'Curve3D', INDETERMINATE) + assert (express_getattr(curve3d, 'Dim', INDETERMINATE) == 3) is not False class IfcSurfaceCurve_CurveIsNotPcurve: SCOPE = 'entity' @@ -11997,7 +12007,7 @@ class IfcSurfaceCurve_CurveIsNotPcurve: @staticmethod def __call__(self): - curve3d = getattr(self, 'Curve3D', INDETERMINATE) + curve3d = express_getattr(self, 'Curve3D', INDETERMINATE) assert (not 'ifc4x3.ifcpcurve' in typeof(curve3d)) is not False def calc_IfcSurfaceCurve_BasisSurface(self): @@ -12010,8 +12020,8 @@ class IfcSurfaceFeature_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSurfaceFeature_HasObjectType: SCOPE = 'entity' @@ -12020,8 +12030,8 @@ class IfcSurfaceFeature_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcSurfaceOfLinearExtrusion_DepthGreaterZero: SCOPE = 'entity' @@ -12030,17 +12040,17 @@ class IfcSurfaceOfLinearExtrusion_DepthGreaterZero: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) assert (depth > 0.0) is not False def calc_IfcSurfaceOfLinearExtrusion_ExtrusionAxis(self): - extrudeddirection = getattr(self, 'ExtrudedDirection', INDETERMINATE) - depth = getattr(self, 'Depth', INDETERMINATE) + extrudeddirection = express_getattr(self, 'ExtrudedDirection', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) return IfcVector(Orientation=extrudeddirection, Magnitude=depth) def calc_IfcSurfaceOfRevolution_AxisLine(self): - axisposition = getattr(self, 'AxisPosition', INDETERMINATE) - return IfcLine(Pnt=getattr(axisposition, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=getattr(axisposition, 'Z', INDETERMINATE), Magnitude=1.0)) + axisposition = express_getattr(self, 'AxisPosition', INDETERMINATE) + return IfcLine(Pnt=express_getattr(axisposition, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=express_getattr(axisposition, 'Z', INDETERMINATE), Magnitude=1.0)) class IfcSurfaceReinforcementArea_NonnegativeArea1: SCOPE = 'entity' @@ -12049,7 +12059,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea1: @staticmethod def __call__(self): - surfacereinforcement1 = getattr(self, 'SurfaceReinforcement1', INDETERMINATE) + surfacereinforcement1 = express_getattr(self, 'SurfaceReinforcement1', INDETERMINATE) assert (not exists(surfacereinforcement1) or (express_getitem(surfacereinforcement1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and express_getitem(surfacereinforcement1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and (sizeof(surfacereinforcement1) == 1 or express_getitem(surfacereinforcement1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0))) is not False class IfcSurfaceReinforcementArea_NonnegativeArea2: @@ -12059,7 +12069,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea2: @staticmethod def __call__(self): - surfacereinforcement2 = getattr(self, 'SurfaceReinforcement2', INDETERMINATE) + surfacereinforcement2 = express_getattr(self, 'SurfaceReinforcement2', INDETERMINATE) assert (not exists(surfacereinforcement2) or (express_getitem(surfacereinforcement2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and express_getitem(surfacereinforcement2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and (sizeof(surfacereinforcement2) == 1 or express_getitem(surfacereinforcement2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0))) is not False class IfcSurfaceReinforcementArea_NonnegativeArea3: @@ -12069,7 +12079,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea3: @staticmethod def __call__(self): - shearreinforcement = getattr(self, 'ShearReinforcement', INDETERMINATE) + shearreinforcement = express_getattr(self, 'ShearReinforcement', INDETERMINATE) assert (not exists(shearreinforcement) or shearreinforcement >= 0.0) is not False class IfcSurfaceReinforcementArea_SurfaceAndOrShearAreaSpecified: @@ -12079,9 +12089,9 @@ class IfcSurfaceReinforcementArea_SurfaceAndOrShearAreaSpecified: @staticmethod def __call__(self): - surfacereinforcement1 = getattr(self, 'SurfaceReinforcement1', INDETERMINATE) - surfacereinforcement2 = getattr(self, 'SurfaceReinforcement2', INDETERMINATE) - shearreinforcement = getattr(self, 'ShearReinforcement', INDETERMINATE) + surfacereinforcement1 = express_getattr(self, 'SurfaceReinforcement1', INDETERMINATE) + surfacereinforcement2 = express_getattr(self, 'SurfaceReinforcement2', INDETERMINATE) + shearreinforcement = express_getattr(self, 'ShearReinforcement', INDETERMINATE) assert (exists(surfacereinforcement1) or exists(surfacereinforcement2) or exists(shearreinforcement)) is not False class IfcSurfaceStyle_MaxOneExtDefined: @@ -12091,7 +12101,7 @@ class IfcSurfaceStyle_MaxOneExtDefined: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3.ifcexternallydefinedsurfacestyle' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3.ifcexternallydefinedsurfacestyle' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneLighting: SCOPE = 'entity' @@ -12100,7 +12110,7 @@ class IfcSurfaceStyle_MaxOneLighting: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3.ifcsurfacestylelighting' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3.ifcsurfacestylelighting' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneRefraction: SCOPE = 'entity' @@ -12109,7 +12119,7 @@ class IfcSurfaceStyle_MaxOneRefraction: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3.ifcsurfacestylerefraction' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3.ifcsurfacestylerefraction' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneShading: SCOPE = 'entity' @@ -12118,7 +12128,7 @@ class IfcSurfaceStyle_MaxOneShading: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3.ifcsurfacestyleshading' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3.ifcsurfacestyleshading' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneTextures: SCOPE = 'entity' @@ -12127,7 +12137,7 @@ class IfcSurfaceStyle_MaxOneTextures: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3.ifcsurfacestylewithtextures' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3.ifcsurfacestylewithtextures' in typeof(style)]) <= 1) is not False class IfcSweptAreaSolid_SweptAreaType: SCOPE = 'entity' @@ -12136,8 +12146,8 @@ class IfcSweptAreaSolid_SweptAreaType: @staticmethod def __call__(self): - sweptarea = getattr(self, 'SweptArea', INDETERMINATE) - assert (getattr(sweptarea, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'Area', INDETERMINATE)) is not False + sweptarea = express_getattr(self, 'SweptArea', INDETERMINATE) + assert (express_getattr(sweptarea, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'Area', INDETERMINATE)) is not False class IfcSweptDiskSolid_DirectrixBounded: SCOPE = 'entity' @@ -12146,9 +12156,9 @@ class IfcSweptDiskSolid_DirectrixBounded: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - startparam = getattr(self, 'StartParam', INDETERMINATE) - endparam = getattr(self, 'EndParam', INDETERMINATE) + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + startparam = express_getattr(self, 'StartParam', INDETERMINATE) + endparam = express_getattr(self, 'EndParam', INDETERMINATE) assert (exists(startparam) and exists(endparam) or sizeof(['ifc4x3.ifcconic', 'ifc4x3.ifcboundedcurve'] * typeof(directrix)) == 1) is not False class IfcSweptDiskSolid_DirectrixDim: @@ -12158,8 +12168,8 @@ class IfcSweptDiskSolid_DirectrixDim: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - assert (getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + assert (express_getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False class IfcSweptDiskSolid_InnerRadiusSize: SCOPE = 'entity' @@ -12168,8 +12178,8 @@ class IfcSweptDiskSolid_InnerRadiusSize: @staticmethod def __call__(self): - radius = getattr(self, 'Radius', INDETERMINATE) - innerradius = getattr(self, 'InnerRadius', INDETERMINATE) + radius = express_getattr(self, 'Radius', INDETERMINATE) + innerradius = express_getattr(self, 'InnerRadius', INDETERMINATE) assert (not exists(innerradius) or radius > innerradius) is not False class IfcSweptDiskSolidPolygonal_CorrectRadii: @@ -12179,8 +12189,8 @@ class IfcSweptDiskSolidPolygonal_CorrectRadii: @staticmethod def __call__(self): - filletradius = getattr(self, 'FilletRadius', INDETERMINATE) - assert (not exists(filletradius) or filletradius >= getattr(self, 'Radius', INDETERMINATE)) is not False + filletradius = express_getattr(self, 'FilletRadius', INDETERMINATE) + assert (not exists(filletradius) or filletradius >= express_getattr(self, 'Radius', INDETERMINATE)) is not False class IfcSweptDiskSolidPolygonal_DirectrixIsPolyline: SCOPE = 'entity' @@ -12189,7 +12199,7 @@ class IfcSweptDiskSolidPolygonal_DirectrixIsPolyline: @staticmethod def __call__(self): - assert ('ifc4x3.ifcpolyline' in typeof(getattr(self, 'Directrix', INDETERMINATE)) or ('ifc4x3.ifcindexedpolycurve' in typeof(getattr(self, 'Directrix', INDETERMINATE)) and (not exists(getattr(getattr(self, 'Directrix', INDETERMINATE), 'Segments', INDETERMINATE))))) is not False + assert ('ifc4x3.ifcpolyline' in typeof(express_getattr(self, 'Directrix', INDETERMINATE)) or ('ifc4x3.ifcindexedpolycurve' in typeof(express_getattr(self, 'Directrix', INDETERMINATE)) and (not exists(express_getattr(express_getattr(self, 'Directrix', INDETERMINATE), 'Segments', INDETERMINATE))))) is not False class IfcSweptSurface_SweptCurveType: SCOPE = 'entity' @@ -12198,8 +12208,8 @@ class IfcSweptSurface_SweptCurveType: @staticmethod def __call__(self): - sweptcurve = getattr(self, 'SweptCurve', INDETERMINATE) - assert (getattr(sweptcurve, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'Curve', INDETERMINATE)) is not False + sweptcurve = express_getattr(self, 'SweptCurve', INDETERMINATE) + assert (express_getattr(sweptcurve, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'Curve', INDETERMINATE)) is not False class IfcSwitchingDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -12208,8 +12218,8 @@ class IfcSwitchingDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSwitchingDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -12218,8 +12228,8 @@ class IfcSwitchingDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcswitchingdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcswitchingdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSwitchingDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -12228,8 +12238,8 @@ class IfcSwitchingDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSystemFurnitureElement_CorrectPredefinedType: SCOPE = 'entity' @@ -12238,8 +12248,8 @@ class IfcSystemFurnitureElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSystemFurnitureElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12248,8 +12258,8 @@ class IfcSystemFurnitureElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcsystemfurnitureelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcsystemfurnitureelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSystemFurnitureElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12258,8 +12268,8 @@ class IfcSystemFurnitureElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -12268,8 +12278,8 @@ class IfcTShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth) is not False class IfcTShapeProfileDef_ValidWebThickness: @@ -12279,8 +12289,8 @@ class IfcTShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - flangewidth = getattr(self, 'FlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + flangewidth = express_getattr(self, 'FlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < flangewidth) is not False class IfcTable_WR1: @@ -12290,8 +12300,8 @@ class IfcTable_WR1: @staticmethod def __call__(self): - rows = getattr(self, 'Rows', INDETERMINATE) - assert (sizeof([temp for temp in rows if hiindex(getattr(temp, 'RowCells', INDETERMINATE)) != hiindex(getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE))]) == 0) is not False + rows = express_getattr(self, 'Rows', INDETERMINATE) + assert (sizeof([temp for temp in rows if hiindex(express_getattr(temp, 'RowCells', INDETERMINATE)) != hiindex(express_getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE))]) == 0) is not False class IfcTable_WR2: SCOPE = 'entity' @@ -12300,20 +12310,20 @@ class IfcTable_WR2: @staticmethod def __call__(self): - numberofheadings = getattr(self, 'NumberOfHeadings', INDETERMINATE) + numberofheadings = express_getattr(self, 'NumberOfHeadings', INDETERMINATE) assert (0 <= numberofheadings <= 1) is not False def calc_IfcTable_NumberOfCellsInRow(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return hiindex(getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE)) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return hiindex(express_getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE)) def calc_IfcTable_NumberOfHeadings(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return sizeof([temp for temp in rows if getattr(temp, 'IsHeading', INDETERMINATE)]) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return sizeof([temp for temp in rows if express_getattr(temp, 'IsHeading', INDETERMINATE)]) def calc_IfcTable_NumberOfDataRows(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return sizeof([temp for temp in rows if not getattr(temp, 'IsHeading', INDETERMINATE)]) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return sizeof([temp for temp in rows if not express_getattr(temp, 'IsHeading', INDETERMINATE)]) class IfcTank_CorrectPredefinedType: SCOPE = 'entity' @@ -12322,8 +12332,8 @@ class IfcTank_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTank_CorrectTypeAssigned: SCOPE = 'entity' @@ -12332,8 +12342,8 @@ class IfcTank_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifctanktype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifctanktype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTankType_CorrectPredefinedType: SCOPE = 'entity' @@ -12342,8 +12352,8 @@ class IfcTankType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTask_CorrectPredefinedType: SCOPE = 'entity' @@ -12352,8 +12362,8 @@ class IfcTask_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTask_HasName: SCOPE = 'entity' @@ -12362,7 +12372,7 @@ class IfcTask_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcTaskType_CorrectPredefinedType: SCOPE = 'entity' @@ -12371,8 +12381,8 @@ class IfcTaskType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcTelecomAddress_MinimumDataProvided: SCOPE = 'entity' @@ -12381,12 +12391,12 @@ class IfcTelecomAddress_MinimumDataProvided: @staticmethod def __call__(self): - telephonenumbers = getattr(self, 'TelephoneNumbers', INDETERMINATE) - facsimilenumbers = getattr(self, 'FacsimileNumbers', INDETERMINATE) - pagernumber = getattr(self, 'PagerNumber', INDETERMINATE) - electronicmailaddresses = getattr(self, 'ElectronicMailAddresses', INDETERMINATE) - wwwhomepageurl = getattr(self, 'WWWHomePageURL', INDETERMINATE) - messagingids = getattr(self, 'MessagingIDs', INDETERMINATE) + telephonenumbers = express_getattr(self, 'TelephoneNumbers', INDETERMINATE) + facsimilenumbers = express_getattr(self, 'FacsimileNumbers', INDETERMINATE) + pagernumber = express_getattr(self, 'PagerNumber', INDETERMINATE) + electronicmailaddresses = express_getattr(self, 'ElectronicMailAddresses', INDETERMINATE) + wwwhomepageurl = express_getattr(self, 'WWWHomePageURL', INDETERMINATE) + messagingids = express_getattr(self, 'MessagingIDs', INDETERMINATE) assert (exists(telephonenumbers) or exists(facsimilenumbers) or exists(pagernumber) or exists(electronicmailaddresses) or exists(wwwhomepageurl) or exists(messagingids)) is not False class IfcTendon_CorrectPredefinedType: @@ -12396,8 +12406,8 @@ class IfcTendon_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendon_CorrectTypeAssigned: SCOPE = 'entity' @@ -12406,8 +12416,8 @@ class IfcTendon_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifctendontype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifctendontype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonAnchor_CorrectPredefinedType: SCOPE = 'entity' @@ -12416,8 +12426,8 @@ class IfcTendonAnchor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendonAnchor_CorrectTypeAssigned: SCOPE = 'entity' @@ -12426,8 +12436,8 @@ class IfcTendonAnchor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifctendonanchortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifctendonanchortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonAnchorType_CorrectPredefinedType: SCOPE = 'entity' @@ -12436,8 +12446,8 @@ class IfcTendonAnchorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTendonConduit_CorrectPredefinedType: SCOPE = 'entity' @@ -12446,8 +12456,8 @@ class IfcTendonConduit_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendonConduit_CorrectTypeAssigned: SCOPE = 'entity' @@ -12456,8 +12466,8 @@ class IfcTendonConduit_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifctendonconduittype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifctendonconduittype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonConduitType_CorrectPredefinedType: SCOPE = 'entity' @@ -12466,8 +12476,8 @@ class IfcTendonConduitType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTendonType_CorrectPredefinedType: SCOPE = 'entity' @@ -12476,8 +12486,8 @@ class IfcTendonType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcTessellatedFaceSet_Dim(self): return 3 @@ -12489,7 +12499,7 @@ class IfcTextLiteralWithExtent_WR31: @staticmethod def __call__(self): - extent = getattr(self, 'Extent', INDETERMINATE) + extent = express_getattr(self, 'Extent', INDETERMINATE) assert (not 'ifc4x3.ifcplanarbox' in typeof(extent)) is not False class IfcTextStyleFontModel_MeasureOfFontSize: @@ -12499,7 +12509,7 @@ class IfcTextStyleFontModel_MeasureOfFontSize: @staticmethod def __call__(self): - assert ('ifc4x3.ifclengthmeasure' in typeof(getattr(self, 'FontSize', INDETERMINATE)) and getattr(self, 'FontSize', INDETERMINATE) > 0.0) is not False + assert ('ifc4x3.ifclengthmeasure' in typeof(express_getattr(self, 'FontSize', INDETERMINATE)) and express_getattr(self, 'FontSize', INDETERMINATE) > 0.0) is not False class IfcTopologyRepresentation_WR21: SCOPE = 'entity' @@ -12508,7 +12518,7 @@ class IfcTopologyRepresentation_WR21: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3.ifctopologicalrepresentationitem' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3.ifctopologicalrepresentationitem' in typeof(temp)]) == 0) is not False class IfcTopologyRepresentation_WR22: SCOPE = 'entity' @@ -12517,7 +12527,7 @@ class IfcTopologyRepresentation_WR22: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationType', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationType', INDETERMINATE)) is not False class IfcTopologyRepresentation_WR23: SCOPE = 'entity' @@ -12526,7 +12536,7 @@ class IfcTopologyRepresentation_WR23: @staticmethod def __call__(self): - assert IfcTopologyRepresentationTypes(getattr(self, 'RepresentationType', INDETERMINATE), getattr(self, 'Items', INDETERMINATE)) is not False + assert IfcTopologyRepresentationTypes(express_getattr(self, 'RepresentationType', INDETERMINATE), express_getattr(self, 'Items', INDETERMINATE)) is not False class IfcToroidalSurface_MajorLargerMinor: SCOPE = 'entity' @@ -12535,8 +12545,8 @@ class IfcToroidalSurface_MajorLargerMinor: @staticmethod def __call__(self): - majorradius = getattr(self, 'MajorRadius', INDETERMINATE) - minorradius = getattr(self, 'MinorRadius', INDETERMINATE) + majorradius = express_getattr(self, 'MajorRadius', INDETERMINATE) + minorradius = express_getattr(self, 'MinorRadius', INDETERMINATE) assert (minorradius < majorradius) is not False class IfcTrackElement_CorrectPredefinedType: @@ -12546,8 +12556,8 @@ class IfcTrackElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTrackElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12556,8 +12566,8 @@ class IfcTrackElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifctrackelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifctrackelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTrackElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12566,8 +12576,8 @@ class IfcTrackElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTransformer_CorrectPredefinedType: SCOPE = 'entity' @@ -12576,8 +12586,8 @@ class IfcTransformer_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTransformer_CorrectTypeAssigned: SCOPE = 'entity' @@ -12586,8 +12596,8 @@ class IfcTransformer_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifctransformertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifctransformertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTransformerType_CorrectPredefinedType: SCOPE = 'entity' @@ -12596,8 +12606,8 @@ class IfcTransformerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTransportElement_CorrectPredefinedType: SCOPE = 'entity' @@ -12606,8 +12616,8 @@ class IfcTransportElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTransportElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12616,8 +12626,8 @@ class IfcTransportElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifctransportelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifctransportelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTransportElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12626,11 +12636,11 @@ class IfcTransportElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcTriangulatedFaceSet_NumberOfTriangles(self): - coordindex = getattr(self, 'CoordIndex', INDETERMINATE) + coordindex = express_getattr(self, 'CoordIndex', INDETERMINATE) return sizeof(coordindex) class IfcTriangulatedIrregularNetwork_NotClosed: @@ -12640,7 +12650,7 @@ class IfcTriangulatedIrregularNetwork_NotClosed: @staticmethod def __call__(self): - assert (getattr(self, 'Closed', INDETERMINATE) == False) is not False + assert (express_getattr(self, 'Closed', INDETERMINATE) == False) is not False class IfcTrimmedCurve_NoTrimOfBoundedCurves: SCOPE = 'entity' @@ -12649,7 +12659,7 @@ class IfcTrimmedCurve_NoTrimOfBoundedCurves: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) assert (not 'ifc4x3.ifcboundedcurve' in typeof(basiscurve)) is not False class IfcTrimmedCurve_Trim1ValuesConsistent: @@ -12659,7 +12669,7 @@ class IfcTrimmedCurve_Trim1ValuesConsistent: @staticmethod def __call__(self): - trim1 = getattr(self, 'Trim1', INDETERMINATE) + trim1 = express_getattr(self, 'Trim1', INDETERMINATE) assert (hiindex(trim1) == 1 or typeof(express_getitem(trim1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(express_getitem(trim1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcTrimmedCurve_Trim2ValuesConsistent: @@ -12669,7 +12679,7 @@ class IfcTrimmedCurve_Trim2ValuesConsistent: @staticmethod def __call__(self): - trim2 = getattr(self, 'Trim2', INDETERMINATE) + trim2 = express_getattr(self, 'Trim2', INDETERMINATE) assert (hiindex(trim2) == 1 or typeof(express_getitem(trim2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(express_getitem(trim2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcTubeBundle_CorrectPredefinedType: @@ -12679,8 +12689,8 @@ class IfcTubeBundle_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTubeBundle_CorrectTypeAssigned: SCOPE = 'entity' @@ -12689,8 +12699,8 @@ class IfcTubeBundle_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifctubebundletype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifctubebundletype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTubeBundleType_CorrectPredefinedType: SCOPE = 'entity' @@ -12699,8 +12709,8 @@ class IfcTubeBundleType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTypeObject_NameRequired: SCOPE = 'entity' @@ -12709,7 +12719,7 @@ class IfcTypeObject_NameRequired: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcTypeObject_UniquePropertySetNames: SCOPE = 'entity' @@ -12718,7 +12728,7 @@ class IfcTypeObject_UniquePropertySetNames: @staticmethod def __call__(self): - haspropertysets = getattr(self, 'HasPropertySets', INDETERMINATE) + haspropertysets = express_getattr(self, 'HasPropertySets', INDETERMINATE) assert (not exists(haspropertysets) or IfcUniquePropertySetNames(haspropertysets)) is not False class IfcTypeProduct_ApplicableOccurrence: @@ -12728,7 +12738,7 @@ class IfcTypeProduct_ApplicableOccurrence: @staticmethod def __call__(self): - assert (not exists(lambda : express_getitem(getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or sizeof([temp for temp in getattr(express_getitem(getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not 'ifc4x3.ifcproduct' in typeof(temp)]) == 0) is not False + assert (not exists(lambda : express_getitem(express_getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or sizeof([temp for temp in express_getattr(express_getitem(express_getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not 'ifc4x3.ifcproduct' in typeof(temp)]) == 0) is not False class IfcUShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -12737,8 +12747,8 @@ class IfcUShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth / 2.0) is not False class IfcUShapeProfileDef_ValidWebThickness: @@ -12748,8 +12758,8 @@ class IfcUShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - flangewidth = getattr(self, 'FlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + flangewidth = express_getattr(self, 'FlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < flangewidth) is not False class IfcUnitAssignment_WR01: @@ -12759,7 +12769,7 @@ class IfcUnitAssignment_WR01: @staticmethod def __call__(self): - units = getattr(self, 'Units', INDETERMINATE) + units = express_getattr(self, 'Units', INDETERMINATE) assert IfcCorrectUnitAssignment(units) is not False class IfcUnitaryControlElement_CorrectPredefinedType: @@ -12769,8 +12779,8 @@ class IfcUnitaryControlElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcUnitaryControlElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12779,8 +12789,8 @@ class IfcUnitaryControlElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcunitarycontrolelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcunitarycontrolelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcUnitaryControlElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12789,8 +12799,8 @@ class IfcUnitaryControlElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcUnitaryEquipment_CorrectPredefinedType: SCOPE = 'entity' @@ -12799,8 +12809,8 @@ class IfcUnitaryEquipment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcUnitaryEquipment_CorrectTypeAssigned: SCOPE = 'entity' @@ -12809,8 +12819,8 @@ class IfcUnitaryEquipment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcunitaryequipmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcunitaryequipmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcUnitaryEquipmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -12819,8 +12829,8 @@ class IfcUnitaryEquipmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcValve_CorrectPredefinedType: SCOPE = 'entity' @@ -12829,8 +12839,8 @@ class IfcValve_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcValve_CorrectTypeAssigned: SCOPE = 'entity' @@ -12839,8 +12849,8 @@ class IfcValve_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcvalvetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcvalvetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcValveType_CorrectPredefinedType: SCOPE = 'entity' @@ -12849,8 +12859,8 @@ class IfcValveType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVector_MagGreaterOrEqualZero: SCOPE = 'entity' @@ -12859,12 +12869,12 @@ class IfcVector_MagGreaterOrEqualZero: @staticmethod def __call__(self): - magnitude = getattr(self, 'Magnitude', INDETERMINATE) + magnitude = express_getattr(self, 'Magnitude', INDETERMINATE) assert (magnitude >= 0.0) is not False def calc_IfcVector_Dim(self): - orientation = getattr(self, 'Orientation', INDETERMINATE) - return getattr(orientation, 'Dim', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return express_getattr(orientation, 'Dim', INDETERMINATE) class IfcVehicle_CorrectPredefinedType: SCOPE = 'entity' @@ -12873,8 +12883,8 @@ class IfcVehicle_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcVehicle_CorrectTypeAssigned: SCOPE = 'entity' @@ -12883,8 +12893,8 @@ class IfcVehicle_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcvehicletype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcvehicletype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcVehicleType_CorrectPredefinedType: SCOPE = 'entity' @@ -12893,8 +12903,8 @@ class IfcVehicleType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVibrationDamper_CorrectPredefinedType: SCOPE = 'entity' @@ -12903,8 +12913,8 @@ class IfcVibrationDamper_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcVibrationDamper_CorrectTypeAssigned: SCOPE = 'entity' @@ -12913,8 +12923,8 @@ class IfcVibrationDamper_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcvibrationdampertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcvibrationdampertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcVibrationDamperType_CorrectPredefinedType: SCOPE = 'entity' @@ -12923,8 +12933,8 @@ class IfcVibrationDamperType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVibrationIsolator_CorrectPredefinedType: SCOPE = 'entity' @@ -12933,8 +12943,8 @@ class IfcVibrationIsolator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcVibrationIsolator_CorrectTypeAssigned: SCOPE = 'entity' @@ -12943,8 +12953,8 @@ class IfcVibrationIsolator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcvibrationisolatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcvibrationisolatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcVibrationIsolatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -12953,8 +12963,8 @@ class IfcVibrationIsolatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVirtualElement_CorrectPredefinedType: SCOPE = 'entity' @@ -12963,8 +12973,8 @@ class IfcVirtualElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVirtualElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVirtualElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVirtualElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVirtualElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcVoidingFeature_CorrectPredefinedType: SCOPE = 'entity' @@ -12973,8 +12983,8 @@ class IfcVoidingFeature_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcVoidingFeature_HasObjectType: SCOPE = 'entity' @@ -12983,8 +12993,8 @@ class IfcVoidingFeature_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcWall_CorrectPredefinedType: SCOPE = 'entity' @@ -12993,8 +13003,8 @@ class IfcWall_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWall_CorrectTypeAssigned: SCOPE = 'entity' @@ -13003,8 +13013,8 @@ class IfcWall_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcwalltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcwalltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWallStandardCase_HasMaterialLayerSetUsage: SCOPE = 'entity' @@ -13013,7 +13023,7 @@ class IfcWallStandardCase_HasMaterialLayerSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x3.ifcrelassociates.relatedobjects') if 'ifc4x3.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3.ifcmateriallayersetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x3.ifcrelassociates.relatedobjects') if 'ifc4x3.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3.ifcmateriallayersetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcWallType_CorrectPredefinedType: SCOPE = 'entity' @@ -13022,8 +13032,8 @@ class IfcWallType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWasteTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -13032,8 +13042,8 @@ class IfcWasteTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWasteTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -13042,8 +13052,8 @@ class IfcWasteTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcwasteterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcwasteterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWasteTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -13052,8 +13062,8 @@ class IfcWasteTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWindow_CorrectPredefinedType: SCOPE = 'entity' @@ -13062,8 +13072,8 @@ class IfcWindow_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWindow_CorrectTypeAssigned: SCOPE = 'entity' @@ -13072,8 +13082,8 @@ class IfcWindow_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcwindowtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3.ifcwindowtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWindowLiningProperties_WR31: SCOPE = 'entity' @@ -13082,8 +13092,8 @@ class IfcWindowLiningProperties_WR31: @staticmethod def __call__(self): - liningdepth = getattr(self, 'LiningDepth', INDETERMINATE) - liningthickness = getattr(self, 'LiningThickness', INDETERMINATE) + liningdepth = express_getattr(self, 'LiningDepth', INDETERMINATE) + liningthickness = express_getattr(self, 'LiningThickness', INDETERMINATE) assert (not (exists(liningdepth) and (not exists(liningthickness)))) is not False class IfcWindowLiningProperties_WR32: @@ -13093,8 +13103,8 @@ class IfcWindowLiningProperties_WR32: @staticmethod def __call__(self): - firsttransomoffset = getattr(self, 'FirstTransomOffset', INDETERMINATE) - secondtransomoffset = getattr(self, 'SecondTransomOffset', INDETERMINATE) + firsttransomoffset = express_getattr(self, 'FirstTransomOffset', INDETERMINATE) + secondtransomoffset = express_getattr(self, 'SecondTransomOffset', INDETERMINATE) assert (not (not exists(firsttransomoffset) and exists(secondtransomoffset))) is not False class IfcWindowLiningProperties_WR33: @@ -13104,8 +13114,8 @@ class IfcWindowLiningProperties_WR33: @staticmethod def __call__(self): - firstmullionoffset = getattr(self, 'FirstMullionOffset', INDETERMINATE) - secondmullionoffset = getattr(self, 'SecondMullionOffset', INDETERMINATE) + firstmullionoffset = express_getattr(self, 'FirstMullionOffset', INDETERMINATE) + secondmullionoffset = express_getattr(self, 'SecondMullionOffset', INDETERMINATE) assert (not (not exists(firstmullionoffset) and exists(secondmullionoffset))) is not False class IfcWindowLiningProperties_WR34: @@ -13115,7 +13125,7 @@ class IfcWindowLiningProperties_WR34: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3.ifcwindowtype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3.ifcwindowstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3.ifcwindowtype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3.ifcwindowstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcWindowPanelProperties_ApplicableToType: SCOPE = 'entity' @@ -13124,7 +13134,7 @@ class IfcWindowPanelProperties_ApplicableToType: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3.ifcwindowtype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3.ifcwindowstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3.ifcwindowtype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3.ifcwindowstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcWindowType_CorrectPredefinedType: SCOPE = 'entity' @@ -13133,8 +13143,8 @@ class IfcWindowType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWorkCalendar_CorrectPredefinedType: SCOPE = 'entity' @@ -13143,8 +13153,8 @@ class IfcWorkCalendar_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWorkPlan_CorrectPredefinedType: SCOPE = 'entity' @@ -13153,8 +13163,8 @@ class IfcWorkPlan_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWorkSchedule_CorrectPredefinedType: SCOPE = 'entity' @@ -13163,8 +13173,8 @@ class IfcWorkSchedule_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcZShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -13173,8 +13183,8 @@ class IfcZShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth / 2.0) is not False class IfcZone_WR1: @@ -13184,19 +13194,19 @@ class IfcZone_WR1: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'IsGroupedBy', INDETERMINATE)) == 0 or sizeof([temp for temp in getattr(express_getitem(getattr(self, 'IsGroupedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not ('ifc4x3.ifczone' in typeof(temp) or 'ifc4x3.ifcspace' in typeof(temp) or 'ifc4x3.ifcspatialzone' in typeof(temp))]) == 0) is not False + assert (sizeof(express_getattr(self, 'IsGroupedBy', INDETERMINATE)) == 0 or sizeof([temp for temp in express_getattr(express_getitem(express_getattr(self, 'IsGroupedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not ('ifc4x3.ifczone' in typeof(temp) or 'ifc4x3.ifcspace' in typeof(temp) or 'ifc4x3.ifcspatialzone' in typeof(temp))]) == 0) is not False class IfcRepresentationContextSameWCS: SCOPE = 'file' @staticmethod def __call__(file): - IfcGeometricRepresentationContext = getattr(file, 'by_type', INDETERMINATE)('IfcGeometricRepresentationContext') + IfcGeometricRepresentationContext = express_getattr(file, 'by_type', INDETERMINATE)('IfcGeometricRepresentationContext') isdifferent = False if sizeof(IfcGeometricRepresentationContext) > 1: for i in range(2, hiindex(IfcGeometricRepresentationContext) + 1): - if getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE) != getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE): - isdifferent = not IfcSameValidPrecision(getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) or not IfcSameAxis2Placement(getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) + if express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE) != express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE): + isdifferent = not IfcSameValidPrecision(express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) or not IfcSameAxis2Placement(express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) if isdifferent == True: break assert (isdifferent == False) is not False @@ -13206,11 +13216,11 @@ class IfcSingleProjectInstance: @staticmethod def __call__(file): - IfcProject = getattr(file, 'by_type', INDETERMINATE)('IfcProject') + IfcProject = express_getattr(file, 'by_type', INDETERMINATE)('IfcProject') assert (sizeof(IfcProject) <= 1) is not False def IfcAssociatedSurface(arg): - surf = getattr(arg, 'BasisSurface', INDETERMINATE) + surf = express_getattr(arg, 'BasisSurface', INDETERMINATE) return surf def IfcBaseAxis(dim, axis1, axis2, axis3): @@ -13224,13 +13234,13 @@ def IfcBaseAxis(dim, axis1, axis2, axis3): if exists(axis2): factor = IfcDotProduct(axis2, express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) if factor < 0.0: - u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) elif exists(axis2): d1 = IfcNormalise(axis2) u = [IfcOrthogonalComplement(d1), d1] - u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) else: u = [IfcDirection(DirectionRatios=[1.0, 0.0]), IfcDirection(DirectionRatios=[0.0, 1.0])] return u @@ -13248,7 +13258,7 @@ def IfcBuild2Axes(refdirection): def IfcBuildAxes(axis, refdirection): d1 = nvl(IfcNormalise(axis), IfcDirection(DirectionRatios=[0.0, 0.0, 1.0])) d2 = IfcFirstProjAxis(d1, refdirection) - return [d2, getattr(IfcNormalise(IfcCrossProduct(d1, d2)), 'Orientation', INDETERMINATE), d1] + return [d2, express_getattr(IfcNormalise(IfcCrossProduct(d1, d2)), 'Orientation', INDETERMINATE), d1] def IfcConsecutiveSegments(segments): result = True @@ -13285,11 +13295,11 @@ def IfcConstraintsParamBSpline(degree, upknots, upcp, knotmult, knots): def IfcConvertDirectionInto2D(direction): direction2d = IfcDirection(DirectionRatios=[0.0, 1.0]) - temp = list(getattr(direction2d, 'DirectionRatios', INDETERMINATE)) - temp[1 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(direction, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(direction2d, 'DirectionRatios', INDETERMINATE)) + temp[1 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(direction, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) direction2d.DirectionRatios = temp - temp = list(getattr(direction2d, 'DirectionRatios', INDETERMINATE)) - temp[2 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(direction, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(direction2d, 'DirectionRatios', INDETERMINATE)) + temp[2 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(direction, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) direction2d.DirectionRatios = temp return direction2d @@ -13469,7 +13479,7 @@ def IfcCorrectLocalPlacement(axisplacement, relplacement): if 'ifc4x3.ifcaxis2placement2d' in typeof(axisplacement): return True if 'ifc4x3.ifcaxis2placement3d' in typeof(axisplacement): - if getattr(getattr(relplacement, 'RelativePlacement', INDETERMINATE), 'Dim', INDETERMINATE) == 3: + if express_getattr(express_getattr(relplacement, 'RelativePlacement', INDETERMINATE), 'Dim', INDETERMINATE) == 3: return True else: return False @@ -13480,27 +13490,27 @@ def IfcCorrectObjectAssignment(constraint, objects): count = 0 if not exists(constraint): return True - if constraint == getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE): + if constraint == express_getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE): return True - elif constraint == getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3.ifcproduct' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3.ifcprocess' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3.ifccontrol' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3.ifcresource' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3.ifcactor' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3.ifcgroup' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3.ifcproject' in typeof(temp)]) return count == 0 else: @@ -13512,26 +13522,26 @@ def IfcCorrectUnitAssignment(units): monetaryunitnumber = 0 namedunitnames = express_set([]) derivedunitnames = express_set([]) - namedunitnumber = sizeof([temp for temp in units if 'ifc4x3.ifcnamedunit' in typeof(temp) and (not getattr(temp, 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE))]) - derivedunitnumber = sizeof([temp for temp in units if 'ifc4x3.ifcderivedunit' in typeof(temp) and (not getattr(temp, 'UnitType', INDETERMINATE) == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE))]) + namedunitnumber = sizeof([temp for temp in units if 'ifc4x3.ifcnamedunit' in typeof(temp) and (not express_getattr(temp, 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE))]) + derivedunitnumber = sizeof([temp for temp in units if 'ifc4x3.ifcderivedunit' in typeof(temp) and (not express_getattr(temp, 'UnitType', INDETERMINATE) == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE))]) monetaryunitnumber = sizeof([temp for temp in units if 'ifc4x3.ifcmonetaryunit' in typeof(temp)]) for i in range(1, sizeof(units) + 1): - if 'ifc4x3.ifcnamedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE)): - namedunitnames = namedunitnames + getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) - if 'ifc4x3.ifcderivedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE)): - derivedunitnames = derivedunitnames + getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) + if 'ifc4x3.ifcnamedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE)): + namedunitnames = namedunitnames + express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) + if 'ifc4x3.ifcderivedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE)): + derivedunitnames = derivedunitnames + express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) return sizeof(namedunitnames) == namedunitnumber and sizeof(derivedunitnames) == derivedunitnumber and (monetaryunitnumber <= 1) def IfcCrossProduct(arg1, arg2): - if (not exists(arg1) or getattr(arg1, 'Dim', INDETERMINATE) == 2) or (not exists(arg2) or getattr(arg2, 'Dim', INDETERMINATE) == 2): + if (not exists(arg1) or express_getattr(arg1, 'Dim', INDETERMINATE) == 2) or (not exists(arg2) or express_getattr(arg2, 'Dim', INDETERMINATE) == 2): return None else: - v1 = getattr(IfcNormalise(arg1), 'DirectionRatios', INDETERMINATE) - v2 = getattr(IfcNormalise(arg2), 'DirectionRatios', INDETERMINATE) + v1 = express_getattr(IfcNormalise(arg1), 'DirectionRatios', INDETERMINATE) + v2 = express_getattr(IfcNormalise(arg2), 'DirectionRatios', INDETERMINATE) res = IfcDirection(DirectionRatios=[express_getitem(v1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(v1, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(v1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) mag = 0.0 for i in range(1, 3 + 1): - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: @@ -13540,21 +13550,21 @@ def IfcCrossProduct(arg1, arg2): def IfcCurveDim(curve): if 'ifc4x3.ifcline' in typeof(curve): - return getattr(getattr(curve, 'Pnt', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Pnt', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3.ifcconic' in typeof(curve): - return getattr(getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3.ifcpolyline' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'Points', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'Points', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3.ifctrimmedcurve' in typeof(curve): - return IfcCurveDim(getattr(curve, 'BasisCurve', INDETERMINATE)) + return IfcCurveDim(express_getattr(curve, 'BasisCurve', INDETERMINATE)) if 'ifc4x3.ifcgradientcurve' in typeof(curve): return 3 if 'ifc4x3.ifcsegmentedreferencecurve' in typeof(curve): return 3 if 'ifc4x3.ifccompositecurve' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3.ifcbsplinecurve' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3.ifcoffsetcurve2d' in typeof(curve): return 2 if 'ifc4x3.ifcoffsetcurve3d' in typeof(curve): @@ -13564,19 +13574,19 @@ def IfcCurveDim(curve): if 'ifc4x3.ifccurvesegment2d' in typeof(curve): return 2 if 'ifc4x3.ifcpolynomialcurve' in typeof(curve): - if not exists(getattr(curve, 'CoefficientsZ', INDETERMINATE)) and getattr(getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) == 2: + if not exists(express_getattr(curve, 'CoefficientsZ', INDETERMINATE)) and express_getattr(express_getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) == 2: return 2 return 3 if 'ifc4x3.ifcpcurve' in typeof(curve): return 3 if 'ifc4x3.ifcindexedpolycurve' in typeof(curve): - return getattr(getattr(curve, 'Points', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Points', INDETERMINATE), 'Dim', INDETERMINATE) return None def IfcCurveWeightsPositive(b): result = True - for i in range(0, getattr(b, 'UpperIndexOnControlPoints', INDETERMINATE) + 1): - if express_getitem(getattr(b, 'Weights', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: + for i in range(0, express_getattr(b, 'UpperIndexOnControlPoints', INDETERMINATE) + 1): + if express_getitem(express_getattr(b, 'Weights', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: result = False return result return result @@ -13584,13 +13594,13 @@ def IfcCurveWeightsPositive(b): def IfcDeriveDimensionalExponents(unitelements): result = IfcDimensionalExponents(0, 0, 0, 0, 0, 0, 0) for i in range(loindex(unitelements), hiindex(unitelements) + 1): - result.LengthExponent = getattr(result, 'LengthExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LengthExponent', INDETERMINATE) - result.MassExponent = getattr(result, 'MassExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'MassExponent', INDETERMINATE) - result.TimeExponent = getattr(result, 'TimeExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'TimeExponent', INDETERMINATE) - result.ElectricCurrentExponent = getattr(result, 'ElectricCurrentExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ElectricCurrentExponent', INDETERMINATE) - result.ThermodynamicTemperatureExponent = getattr(result, 'ThermodynamicTemperatureExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ThermodynamicTemperatureExponent', INDETERMINATE) - result.AmountOfSubstanceExponent = getattr(result, 'AmountOfSubstanceExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'AmountOfSubstanceExponent', INDETERMINATE) - result.LuminousIntensityExponent = getattr(result, 'LuminousIntensityExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LuminousIntensityExponent', INDETERMINATE) + result.LengthExponent = express_getattr(result, 'LengthExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LengthExponent', INDETERMINATE) + result.MassExponent = express_getattr(result, 'MassExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'MassExponent', INDETERMINATE) + result.TimeExponent = express_getattr(result, 'TimeExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'TimeExponent', INDETERMINATE) + result.ElectricCurrentExponent = express_getattr(result, 'ElectricCurrentExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ElectricCurrentExponent', INDETERMINATE) + result.ThermodynamicTemperatureExponent = express_getattr(result, 'ThermodynamicTemperatureExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ThermodynamicTemperatureExponent', INDETERMINATE) + result.AmountOfSubstanceExponent = express_getattr(result, 'AmountOfSubstanceExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'AmountOfSubstanceExponent', INDETERMINATE) + result.LuminousIntensityExponent = express_getattr(result, 'LuminousIntensityExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LuminousIntensityExponent', INDETERMINATE) return result def IfcDimensionsForSIUnit(n): @@ -13660,15 +13670,15 @@ def IfcDimensionsForSIUnit(n): def IfcDotProduct(arg1, arg2): if not exists(arg1) or not exists(arg2): scalar = None - elif getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + elif express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): scalar = None else: vec1 = IfcNormalise(arg1) vec2 = IfcNormalise(arg2) - ndim = getattr(arg1, 'Dim', INDETERMINATE) + ndim = express_getattr(arg1, 'Dim', INDETERMINATE) scalar = 0.0 for i in range(1, ndim + 1): - scalar = scalar + express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + scalar = scalar + express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return scalar def IfcFirstProjAxis(zaxis, arg): @@ -13677,36 +13687,36 @@ def IfcFirstProjAxis(zaxis, arg): else: z = IfcNormalise(zaxis) if not exists(arg): - if getattr(z, 'DirectionRatios', INDETERMINATE) != [1.0, 0.0, 0.0]: + if express_getattr(z, 'DirectionRatios', INDETERMINATE) != [1.0, 0.0, 0.0]: v = IfcDirection(DirectionRatios=[1.0, 0.0, 0.0]) else: v = IfcDirection(DirectionRatios=[0.0, 1.0, 0.0]) else: - if getattr(arg, 'Dim', INDETERMINATE) != 3: + if express_getattr(arg, 'Dim', INDETERMINATE) != 3: return None - if getattr(IfcCrossProduct(arg, z), 'Magnitude', INDETERMINATE) == 0.0: + if express_getattr(IfcCrossProduct(arg, z), 'Magnitude', INDETERMINATE) == 0.0: return None else: v = IfcNormalise(arg) xvec = IfcScalarTimesVector(IfcDotProduct(v, z), z) - xaxis = getattr(IfcVectorDifference(v, xvec), 'Orientation', INDETERMINATE) + xaxis = express_getattr(IfcVectorDifference(v, xvec), 'Orientation', INDETERMINATE) xaxis = IfcNormalise(xaxis) return xaxis def IfcGetBasisSurface(c): surfs = [] if 'ifc4x3.ifcpcurve' in typeof(c): - surfs = [getattr(c, 'BasisSurface', INDETERMINATE)] + surfs = [express_getattr(c, 'BasisSurface', INDETERMINATE)] elif 'ifc4x3.ifcsurfacecurve' in typeof(c): - n = sizeof(getattr(c, 'AssociatedGeometry', INDETERMINATE)) + n = sizeof(express_getattr(c, 'AssociatedGeometry', INDETERMINATE)) for i in range(1, n + 1): - surfs = surfs + IfcAssociatedSurface(express_getitem(getattr(c, 'AssociatedGeometry', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) + surfs = surfs + IfcAssociatedSurface(express_getitem(express_getattr(c, 'AssociatedGeometry', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) if 'ifc4x3.ifccompositecurveonsurface' in typeof(c): - n = sizeof(getattr(c, 'Segments', INDETERMINATE)) - surfs = IfcGetBasisSurface(getattr(express_getitem(getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) + n = sizeof(express_getattr(c, 'Segments', INDETERMINATE)) + surfs = IfcGetBasisSurface(express_getattr(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) if n > 1: for i in range(2, n + 1): - surfs = surfs * IfcGetBasisSurface(getattr(express_getitem(getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) + surfs = surfs * IfcGetBasisSurface(express_getattr(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) return surfs def IfcGradient(gradientcurve): @@ -13726,9 +13736,9 @@ def IfcListToArray(lis, low, u): def IfcLoopHeadToTail(aloop): p = True - n = sizeof(getattr(aloop, 'EdgeList', INDETERMINATE)) + n = sizeof(express_getattr(aloop, 'EdgeList', INDETERMINATE)) for i in range(2, n + 1): - p = p and getattr(express_getitem(getattr(aloop, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == getattr(express_getitem(getattr(aloop, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) + p = p and express_getattr(express_getitem(express_getattr(aloop, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == express_getattr(express_getitem(express_getattr(aloop, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) return p def IfcMakeArrayOfArray(lis, low1, u1, low2, u2): @@ -13746,10 +13756,10 @@ def IfcMakeArrayOfArray(lis, low1, u1, low2, u2): return res def IfcMlsTotalThickness(layerset): - max = getattr(express_getitem(getattr(layerset, 'MaterialLayers', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) - if sizeof(getattr(layerset, 'MaterialLayers', INDETERMINATE)) > 1: - for i in range(2, hiindex(getattr(layerset, 'MaterialLayers', INDETERMINATE)) + 1): - max = max + getattr(express_getitem(getattr(layerset, 'MaterialLayers', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) + max = express_getattr(express_getitem(express_getattr(layerset, 'MaterialLayers', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) + if sizeof(express_getattr(layerset, 'MaterialLayers', INDETERMINATE)) > 1: + for i in range(2, hiindex(express_getattr(layerset, 'MaterialLayers', INDETERMINATE)) + 1): + max = max + express_getattr(express_getitem(express_getattr(layerset, 'MaterialLayers', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) return max def IfcNormalise(arg): @@ -13760,25 +13770,25 @@ def IfcNormalise(arg): return None else: if 'ifc4x3.ifcvector' in typeof(arg): - ndim = getattr(arg, 'Dim', INDETERMINATE) - v.DirectionRatios = getattr(getattr(arg, 'Orientation', INDETERMINATE), 'DirectionRatios', INDETERMINATE) - vec.Magnitude = getattr(arg, 'Magnitude', INDETERMINATE) + ndim = express_getattr(arg, 'Dim', INDETERMINATE) + v.DirectionRatios = express_getattr(express_getattr(arg, 'Orientation', INDETERMINATE), 'DirectionRatios', INDETERMINATE) + vec.Magnitude = express_getattr(arg, 'Magnitude', INDETERMINATE) vec.Orientation = v - if getattr(arg, 'Magnitude', INDETERMINATE) == 0.0: + if express_getattr(arg, 'Magnitude', INDETERMINATE) == 0.0: return None else: vec.Magnitude = 1.0 else: - ndim = getattr(arg, 'Dim', INDETERMINATE) - v.DirectionRatios = getattr(arg, 'DirectionRatios', INDETERMINATE) + ndim = express_getattr(arg, 'Dim', INDETERMINATE) + v.DirectionRatios = express_getattr(arg, 'DirectionRatios', INDETERMINATE) mag = 0.0 for i in range(1, ndim + 1): - mag = mag + express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: mag = sqrt(mag) for i in range(1, ndim + 1): - temp = list(getattr(v, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) / mag + temp = list(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) / mag v.DirectionRatios = temp if 'ifc4x3.ifcvector' in typeof(arg): vec.Orientation = v @@ -13790,18 +13800,18 @@ def IfcNormalise(arg): return result def IfcOrthogonalComplement(vec): - if not exists(vec) or getattr(vec, 'Dim', INDETERMINATE) != 2: + if not exists(vec) or express_getattr(vec, 'Dim', INDETERMINATE) != 2: return None else: - result = IfcDirection(DirectionRatios=[-express_getitem(getattr(vec, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(vec, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) + result = IfcDirection(DirectionRatios=[-express_getitem(express_getattr(vec, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(vec, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) return result def IfcPathHeadToTail(apath): n = 0 p = unknown - n = sizeof(getattr(apath, 'EdgeList', INDETERMINATE)) + n = sizeof(express_getattr(apath, 'EdgeList', INDETERMINATE)) for i in range(2, n + 1): - p = p and getattr(express_getitem(getattr(apath, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == getattr(express_getitem(getattr(apath, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) + p = p and express_getattr(express_getitem(express_getattr(apath, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == express_getattr(express_getitem(express_getattr(apath, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) return p def IfcPointListDim(pointlist): @@ -13812,32 +13822,32 @@ def IfcPointListDim(pointlist): return None def IfcSameAxis2Placement(ap1, ap2, epsilon): - return IfcSameDirection(express_getitem(getattr(ap1, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(ap2, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameDirection(express_getitem(getattr(ap1, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(ap2, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameCartesianPoint(getattr(ap1, 'Location', INDETERMINATE), getattr(ap1, 'Location', INDETERMINATE), epsilon) + return IfcSameDirection(express_getitem(express_getattr(ap1, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(ap2, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameDirection(express_getitem(express_getattr(ap1, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(ap2, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameCartesianPoint(express_getattr(ap1, 'Location', INDETERMINATE), express_getattr(ap1, 'Location', INDETERMINATE), epsilon) def IfcSameCartesianPoint(cp1, cp2, epsilon): - cp1x = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - cp1y = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp1x = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp1y = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) cp1z = 0 - cp2x = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - cp2y = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp2x = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp2y = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) cp2z = 0 - if sizeof(getattr(cp1, 'Coordinates', INDETERMINATE)) > 2: - cp1z = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - if sizeof(getattr(cp2, 'Coordinates', INDETERMINATE)) > 2: - cp2z = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(cp1, 'Coordinates', INDETERMINATE)) > 2: + cp1z = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(cp2, 'Coordinates', INDETERMINATE)) > 2: + cp2z = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return IfcSameValue(cp1x, cp2x, epsilon) and IfcSameValue(cp1y, cp2y, epsilon) and IfcSameValue(cp1z, cp2z, epsilon) def IfcSameDirection(dir1, dir2, epsilon): - dir1x = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - dir1y = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir1x = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir1y = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) dir1z = 0 - dir2x = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - dir2y = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir2x = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir2y = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) dir2z = 0 - if sizeof(getattr(dir1, 'DirectionRatios', INDETERMINATE)) > 2: - dir1z = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - if sizeof(getattr(dir2, 'DirectionRatios', INDETERMINATE)) > 2: - dir2z = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(dir1, 'DirectionRatios', INDETERMINATE)) > 2: + dir1z = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(dir2, 'DirectionRatios', INDETERMINATE)) > 2: + dir2z = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return IfcSameValue(dir1x, dir2x, epsilon) and IfcSameValue(dir1y, dir2y, epsilon) and IfcSameValue(dir1z, dir2z, epsilon) def IfcSameValidPrecision(epsilon1, epsilon2): @@ -13858,15 +13868,15 @@ def IfcScalarTimesVector(scalar, vec): return None else: if 'ifc4x3.ifcvector' in typeof(vec): - v = getattr(vec, 'Orientation', INDETERMINATE) - mag = scalar * getattr(vec, 'Magnitude', INDETERMINATE) + v = express_getattr(vec, 'Orientation', INDETERMINATE) + mag = scalar * express_getattr(vec, 'Magnitude', INDETERMINATE) else: v = vec mag = scalar if mag < 0.0: - for i in range(1, sizeof(getattr(v, 'DirectionRatios', INDETERMINATE)) + 1): - temp = list(getattr(v, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + for i in range(1, sizeof(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + 1): + temp = list(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) v.DirectionRatios = temp mag = -mag result = IfcVector(Orientation=IfcNormalise(v), Magnitude=mag) @@ -13882,75 +13892,75 @@ def IfcSecondProjAxis(zaxis, xaxis, arg): temp = IfcScalarTimesVector(IfcDotProduct(v, xaxis), xaxis) yaxis = IfcVectorDifference(yaxis, temp) yaxis = IfcNormalise(yaxis) - return getattr(yaxis, 'Orientation', INDETERMINATE) + return express_getattr(yaxis, 'Orientation', INDETERMINATE) def IfcShapeRepresentationTypes(reptype, items): count = 0 - if getattr(reptype, 'lower', INDETERMINATE)() == 'point': + if express_getattr(reptype, 'lower', INDETERMINATE)() == 'point': count = sizeof([temp for temp in items if 'ifc4x3.ifcpoint' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'pointcloud': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'pointcloud': count = sizeof([temp for temp in items if 'ifc4x3.ifccartesianpointlist3d' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve': count = sizeof([temp for temp in items if 'ifc4x3.ifccurve' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve2d': - count = sizeof([temp for temp in items if 'ifc4x3.ifccurve' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 2]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve3d': - count = sizeof([temp for temp in items if 'ifc4x3.ifccurve' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 3]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'segment': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve2d': + count = sizeof([temp for temp in items if 'ifc4x3.ifccurve' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 2]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve3d': + count = sizeof([temp for temp in items if 'ifc4x3.ifccurve' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 3]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'segment': count = sizeof([temp for temp in items if 'ifc4x3.ifcsegment' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface': count = sizeof([temp for temp in items if 'ifc4x3.ifcsurface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface2d': - count = sizeof([temp for temp in items if 'ifc4x3.ifcsurface' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 2]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface3d': - count = sizeof([temp for temp in items if 'ifc4x3.ifcsurface' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 3]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedsurface': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface2d': + count = sizeof([temp for temp in items if 'ifc4x3.ifcsurface' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 2]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface3d': + count = sizeof([temp for temp in items if 'ifc4x3.ifcsurface' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 3]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedsurface': count = sizeof([temp for temp in items if 'ifc4x3.ifcsectionedsurface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'fillarea': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'fillarea': count = sizeof([temp for temp in items if 'ifc4x3.ifcannotationfillarea' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'text': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'text': count = sizeof([temp for temp in items if 'ifc4x3.ifctextliteral' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsurface': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsurface': count = sizeof([temp for temp in items if 'ifc4x3.ifcbsplinesurface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'annotation2d': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'annotation2d': count = sizeof([temp for temp in items if sizeof(typeof(temp) * ['ifc4x3.ifcpoint', 'ifc4x3.ifccurve', 'ifc4x3.ifcgeometriccurveset', 'ifc4x3.ifcannotationfillarea', 'ifc4x3.ifctextliteral']) == 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'geometricset': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'geometricset': count = sizeof([temp for temp in items if 'ifc4x3.ifcgeometricset' in typeof(temp) or 'ifc4x3.ifcpoint' in typeof(temp) or 'ifc4x3.ifccurve' in typeof(temp) or ('ifc4x3.ifcsurface' in typeof(temp))]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'geometriccurveset': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'geometriccurveset': count = sizeof([temp for temp in items if 'ifc4x3.ifcgeometriccurveset' in typeof(temp) or 'ifc4x3.ifcgeometricset' in typeof(temp) or 'ifc4x3.ifcpoint' in typeof(temp) or ('ifc4x3.ifccurve' in typeof(temp))]) for i in range(1, hiindex(items) + 1): if 'ifc4x3.ifcgeometricset' in typeof(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - if sizeof([temp for temp in getattr(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Elements', INDETERMINATE) if 'ifc4x3.ifcsurface' in typeof(temp)]) > 0: + if sizeof([temp for temp in express_getattr(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Elements', INDETERMINATE) if 'ifc4x3.ifcsurface' in typeof(temp)]) > 0: count = count - 1 - elif getattr(reptype, 'lower', INDETERMINATE)() == 'tessellation': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'tessellation': count = sizeof([temp for temp in items if 'ifc4x3.ifctessellateditem' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surfaceorsolidmodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surfaceorsolidmodel': count = sizeof([temp for temp in items if sizeof(['ifc4x3.ifctessellateditem', 'ifc4x3.ifcshellbasedsurfacemodel', 'ifc4x3.ifcfacebasedsurfacemodel', 'ifc4x3.ifcsolidmodel'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surfacemodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surfacemodel': count = sizeof([temp for temp in items if sizeof(['ifc4x3.ifctessellateditem', 'ifc4x3.ifcshellbasedsurfacemodel', 'ifc4x3.ifcfacebasedsurfacemodel'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'solidmodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'solidmodel': count = sizeof([temp for temp in items if 'ifc4x3.ifcsolidmodel' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'sweptsolid': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'sweptsolid': count = sizeof([temp for temp in items if sizeof(['ifc4x3.ifcextrudedareasolid', 'ifc4x3.ifcrevolvedareasolid'] * typeof(temp)) >= 1 and sizeof(['ifc4x3.ifcextrudedareasolidtapered', 'ifc4x3.ifcrevolvedareasolidtapered'] * typeof(temp)) == 0]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsweptsolid': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsweptsolid': count = sizeof([temp for temp in items if sizeof(['ifc4x3.ifcsweptareasolid', 'ifc4x3.ifcsweptdisksolid', 'ifc4x3.ifcsectionedsolidhorizontal'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'csg': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'csg': count = sizeof([temp for temp in items if sizeof(['ifc4x3.ifcbooleanresult', 'ifc4x3.ifccsgprimitive3d', 'ifc4x3.ifccsgsolid'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'clipping': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'clipping': count = sizeof([temp for temp in items if sizeof(['ifc4x3.ifccsgsolid', 'ifc4x3.ifcbooleanclippingresult'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'brep': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'brep': count = sizeof([temp for temp in items if 'ifc4x3.ifcfacetedbrep' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedbrep': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedbrep': count = sizeof([temp for temp in items if 'ifc4x3.ifcmanifoldsolidbrep' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'boundingbox': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'boundingbox': count = sizeof([temp for temp in items if 'ifc4x3.ifcboundingbox' in typeof(temp)]) if sizeof(items) > 1: count = 0 - elif getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedspine': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedspine': count = sizeof([temp for temp in items if 'ifc4x3.ifcsectionedspine' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'lightsource': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'lightsource': count = sizeof([temp for temp in items if 'ifc4x3.ifclightsource' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'mappedrepresentation': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'mappedrepresentation': count = sizeof([temp for temp in items if 'ifc4x3.ifcmappeditem' in typeof(temp)]) else: return None @@ -13958,9 +13968,9 @@ def IfcShapeRepresentationTypes(reptype, items): def IfcSurfaceWeightsPositive(b): result = True - weights = getattr(b, 'Weights', INDETERMINATE) - for i in range(0, getattr(b, 'UUpper', INDETERMINATE) + 1): - for j in range(0, getattr(b, 'VUpper', INDETERMINATE) + 1): + weights = express_getattr(b, 'Weights', INDETERMINATE) + for i in range(0, express_getattr(b, 'UUpper', INDETERMINATE) + 1): + for j in range(0, express_getattr(b, 'VUpper', INDETERMINATE) + 1): if express_getitem(express_getitem(weights, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), j - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: result = False return result @@ -13970,28 +13980,28 @@ def IfcTaperedSweptAreaProfiles(startarea, endarea): result = False if 'ifc4x3.ifcparameterizedprofiledef' in typeof(startarea): if 'ifc4x3.ifcderivedprofiledef' in typeof(endarea): - result = startarea == getattr(endarea, 'ParentProfile', INDETERMINATE) + result = startarea == express_getattr(endarea, 'ParentProfile', INDETERMINATE) else: result = typeof(startarea) == typeof(endarea) elif 'ifc4x3.ifcderivedprofiledef' in typeof(endarea): - result = startarea == getattr(endarea, 'ParentProfile', INDETERMINATE) + result = startarea == express_getattr(endarea, 'ParentProfile', INDETERMINATE) else: result = False return result def IfcTopologyRepresentationTypes(reptype, items): count = 0 - if getattr(reptype, 'lower', INDETERMINATE)() == 'vertex': + if express_getattr(reptype, 'lower', INDETERMINATE)() == 'vertex': count = sizeof([temp for temp in items if 'ifc4x3.ifcvertex' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'edge': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'edge': count = sizeof([temp for temp in items if 'ifc4x3.ifcedge' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'path': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'path': count = sizeof([temp for temp in items if 'ifc4x3.ifcpath' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'face': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'face': count = sizeof([temp for temp in items if 'ifc4x3.ifcface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'shell': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'shell': count = sizeof([temp for temp in items if 'ifc4x3.ifcopenshell' in typeof(temp) or 'ifc4x3.ifcclosedshell' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'undefined': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'undefined': return True else: return None @@ -14002,7 +14012,7 @@ def IfcUniqueDefinitionNames(relations): if sizeof(relations) == 0: return True for i in range(1, hiindex(relations) + 1): - definition = getattr(express_getitem(relations, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingPropertyDefinition', INDETERMINATE) + definition = express_getattr(express_getitem(relations, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingPropertyDefinition', INDETERMINATE) if 'ifc4x3.ifcpropertysetdefinition' in typeof(definition): properties = properties + definition elif 'ifc4x3.ifcpropertysetdefinitionset' in typeof(definition): @@ -14015,7 +14025,7 @@ def IfcUniqueDefinitionNames(relations): def IfcUniquePropertyName(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcUniquePropertySetNames(properties): @@ -14023,7 +14033,7 @@ def IfcUniquePropertySetNames(properties): unnamed = 0 for i in range(1, hiindex(properties) + 1): if 'ifc4x3.ifcpropertyset' in typeof(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) else: unnamed = unnamed + 1 return sizeof(names) + unnamed == sizeof(properties) @@ -14031,41 +14041,41 @@ def IfcUniquePropertySetNames(properties): def IfcUniquePropertyTemplateNames(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcUniqueQuantityNames(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcVectorDifference(arg1, arg2): - if (not exists(arg1) or not exists(arg2)) or getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + if (not exists(arg1) or not exists(arg2)) or express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): return None else: if 'ifc4x3.ifcvector' in typeof(arg1): - mag1 = getattr(arg1, 'Magnitude', INDETERMINATE) - vec1 = getattr(arg1, 'Orientation', INDETERMINATE) + mag1 = express_getattr(arg1, 'Magnitude', INDETERMINATE) + vec1 = express_getattr(arg1, 'Orientation', INDETERMINATE) else: mag1 = 1.0 vec1 = arg1 if 'ifc4x3.ifcvector' in typeof(arg2): - mag2 = getattr(arg2, 'Magnitude', INDETERMINATE) - vec2 = getattr(arg2, 'Orientation', INDETERMINATE) + mag2 = express_getattr(arg2, 'Magnitude', INDETERMINATE) + vec2 = express_getattr(arg2, 'Orientation', INDETERMINATE) else: mag2 = 1.0 vec2 = arg2 vec1 = IfcNormalise(vec1) vec2 = IfcNormalise(vec2) - ndim = sizeof(getattr(vec1, 'DirectionRatios', INDETERMINATE)) + ndim = sizeof(express_getattr(vec1, 'DirectionRatios', INDETERMINATE)) mag = 0.0 res = IfcDirection(DirectionRatios=[0.0] * ndim) for i in range(1, ndim + 1): - temp = list(getattr(res, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - mag2 * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(res, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - mag2 * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) res.DirectionRatios = temp - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: @@ -14073,31 +14083,31 @@ def IfcVectorDifference(arg1, arg2): return result def IfcVectorSum(arg1, arg2): - if (not exists(arg1) or not exists(arg2)) or getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + if (not exists(arg1) or not exists(arg2)) or express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): return None else: if 'ifc4x3.ifcvector' in typeof(arg1): - mag1 = getattr(arg1, 'Magnitude', INDETERMINATE) - vec1 = getattr(arg1, 'Orientation', INDETERMINATE) + mag1 = express_getattr(arg1, 'Magnitude', INDETERMINATE) + vec1 = express_getattr(arg1, 'Orientation', INDETERMINATE) else: mag1 = 1.0 vec1 = arg1 if 'ifc4x3.ifcvector' in typeof(arg2): - mag2 = getattr(arg2, 'Magnitude', INDETERMINATE) - vec2 = getattr(arg2, 'Orientation', INDETERMINATE) + mag2 = express_getattr(arg2, 'Magnitude', INDETERMINATE) + vec2 = express_getattr(arg2, 'Orientation', INDETERMINATE) else: mag2 = 1.0 vec2 = arg2 vec1 = IfcNormalise(vec1) vec2 = IfcNormalise(vec2) - ndim = sizeof(getattr(vec1, 'DirectionRatios', INDETERMINATE)) + ndim = sizeof(express_getattr(vec1, 'DirectionRatios', INDETERMINATE)) mag = 0.0 res = IfcDirection(DirectionRatios=[0.0] * ndim) for i in range(1, ndim + 1): - temp = list(getattr(res, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag2 * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(res, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag2 * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) res.DirectionRatios = temp - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD1.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD1.py index 53ca078c98..64f436782a 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD1.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD1.py @@ -1,5 +1,8 @@ import ifcopenshell +def is_indeterminate(v): + return v is None or type(v).__name__ == 'indeterminate_type' + def exists(v): if callable(v): try: @@ -7,10 +10,10 @@ def exists(v): except IndexError as e: return False else: - return v is not None + return not is_indeterminate(v) def nvl(v, default): - return v if v is not None else default + return v if not is_indeterminate(v) else default def is_entity(inst): if isinstance(inst, ifcopenshell.entity_instance): @@ -22,13 +25,13 @@ def is_entity(inst): def express_len(v): if isinstance(v, ifcopenshell.entity_instance) and (not is_entity(v)): v = v[0] - elif v is None or v is INDETERMINATE: + elif is_indeterminate(v): return INDETERMINATE return len(v) old_range = range def range(*args): - if INDETERMINATE in args: + if any(map(is_indeterminate, args)): return yield from old_range(*args) sizeof = express_len @@ -80,6 +83,13 @@ def express_getitem(aggr, idx, default): return aggr[idx] except IndexError as e: return None + +def express_getattr(aggr, name, default): + v = getattr(aggr, name, default) + if v is None: + return default + else: + return v EXPRESS_ONE_BASED_INDEXING = 1 def typeof(inst): @@ -140,2363 +150,2363 @@ INDETERMINATE = indeterminate_type() class enum_namespace: def __getattr__(self, k): - return getattr(k, 'upper', INDETERMINATE)() + return express_getattr(k, 'upper', INDETERMINATE)() IfcActionRequestTypeEnum = enum_namespace() -email = getattr(IfcActionRequestTypeEnum, 'EMAIL', INDETERMINATE) -fax = getattr(IfcActionRequestTypeEnum, 'FAX', INDETERMINATE) -phone = getattr(IfcActionRequestTypeEnum, 'PHONE', INDETERMINATE) -post = getattr(IfcActionRequestTypeEnum, 'POST', INDETERMINATE) -verbal = getattr(IfcActionRequestTypeEnum, 'VERBAL', INDETERMINATE) -userdefined = getattr(IfcActionRequestTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionRequestTypeEnum, 'NOTDEFINED', INDETERMINATE) +email = IfcActionRequestTypeEnum.EMAIL +fax = IfcActionRequestTypeEnum.FAX +phone = IfcActionRequestTypeEnum.PHONE +post = IfcActionRequestTypeEnum.POST +verbal = IfcActionRequestTypeEnum.VERBAL +userdefined = IfcActionRequestTypeEnum.USERDEFINED +notdefined = IfcActionRequestTypeEnum.NOTDEFINED IfcActionSourceTypeEnum = enum_namespace() -brakes = getattr(IfcActionSourceTypeEnum, 'BRAKES', INDETERMINATE) -buoyancy = getattr(IfcActionSourceTypeEnum, 'BUOYANCY', INDETERMINATE) -completion_g1 = getattr(IfcActionSourceTypeEnum, 'COMPLETION_G1', INDETERMINATE) -creep = getattr(IfcActionSourceTypeEnum, 'CREEP', INDETERMINATE) -current = getattr(IfcActionSourceTypeEnum, 'CURRENT', INDETERMINATE) -dead_load_g = getattr(IfcActionSourceTypeEnum, 'DEAD_LOAD_G', INDETERMINATE) -earthquake_e = getattr(IfcActionSourceTypeEnum, 'EARTHQUAKE_E', INDETERMINATE) -erection = getattr(IfcActionSourceTypeEnum, 'ERECTION', INDETERMINATE) -fire = getattr(IfcActionSourceTypeEnum, 'FIRE', INDETERMINATE) -ice = getattr(IfcActionSourceTypeEnum, 'ICE', INDETERMINATE) -impact = getattr(IfcActionSourceTypeEnum, 'IMPACT', INDETERMINATE) -impulse = getattr(IfcActionSourceTypeEnum, 'IMPULSE', INDETERMINATE) -lack_of_fit = getattr(IfcActionSourceTypeEnum, 'LACK_OF_FIT', INDETERMINATE) -live_load_q = getattr(IfcActionSourceTypeEnum, 'LIVE_LOAD_Q', INDETERMINATE) -prestressing_p = getattr(IfcActionSourceTypeEnum, 'PRESTRESSING_P', INDETERMINATE) -propping = getattr(IfcActionSourceTypeEnum, 'PROPPING', INDETERMINATE) -rain = getattr(IfcActionSourceTypeEnum, 'RAIN', INDETERMINATE) -settlement_u = getattr(IfcActionSourceTypeEnum, 'SETTLEMENT_U', INDETERMINATE) -shrinkage = getattr(IfcActionSourceTypeEnum, 'SHRINKAGE', INDETERMINATE) -snow_s = getattr(IfcActionSourceTypeEnum, 'SNOW_S', INDETERMINATE) -system_imperfection = getattr(IfcActionSourceTypeEnum, 'SYSTEM_IMPERFECTION', INDETERMINATE) -temperature_t = getattr(IfcActionSourceTypeEnum, 'TEMPERATURE_T', INDETERMINATE) -transport = getattr(IfcActionSourceTypeEnum, 'TRANSPORT', INDETERMINATE) -wave = getattr(IfcActionSourceTypeEnum, 'WAVE', INDETERMINATE) -wind_w = getattr(IfcActionSourceTypeEnum, 'WIND_W', INDETERMINATE) -userdefined = getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionSourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +brakes = IfcActionSourceTypeEnum.BRAKES +buoyancy = IfcActionSourceTypeEnum.BUOYANCY +completion_g1 = IfcActionSourceTypeEnum.COMPLETION_G1 +creep = IfcActionSourceTypeEnum.CREEP +current = IfcActionSourceTypeEnum.CURRENT +dead_load_g = IfcActionSourceTypeEnum.DEAD_LOAD_G +earthquake_e = IfcActionSourceTypeEnum.EARTHQUAKE_E +erection = IfcActionSourceTypeEnum.ERECTION +fire = IfcActionSourceTypeEnum.FIRE +ice = IfcActionSourceTypeEnum.ICE +impact = IfcActionSourceTypeEnum.IMPACT +impulse = IfcActionSourceTypeEnum.IMPULSE +lack_of_fit = IfcActionSourceTypeEnum.LACK_OF_FIT +live_load_q = IfcActionSourceTypeEnum.LIVE_LOAD_Q +prestressing_p = IfcActionSourceTypeEnum.PRESTRESSING_P +propping = IfcActionSourceTypeEnum.PROPPING +rain = IfcActionSourceTypeEnum.RAIN +settlement_u = IfcActionSourceTypeEnum.SETTLEMENT_U +shrinkage = IfcActionSourceTypeEnum.SHRINKAGE +snow_s = IfcActionSourceTypeEnum.SNOW_S +system_imperfection = IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION +temperature_t = IfcActionSourceTypeEnum.TEMPERATURE_T +transport = IfcActionSourceTypeEnum.TRANSPORT +wave = IfcActionSourceTypeEnum.WAVE +wind_w = IfcActionSourceTypeEnum.WIND_W +userdefined = IfcActionSourceTypeEnum.USERDEFINED +notdefined = IfcActionSourceTypeEnum.NOTDEFINED IfcActionTypeEnum = enum_namespace() -extraordinary_a = getattr(IfcActionTypeEnum, 'EXTRAORDINARY_A', INDETERMINATE) -permanent_g = getattr(IfcActionTypeEnum, 'PERMANENT_G', INDETERMINATE) -variable_q = getattr(IfcActionTypeEnum, 'VARIABLE_Q', INDETERMINATE) -userdefined = getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionTypeEnum, 'NOTDEFINED', INDETERMINATE) +extraordinary_a = IfcActionTypeEnum.EXTRAORDINARY_A +permanent_g = IfcActionTypeEnum.PERMANENT_G +variable_q = IfcActionTypeEnum.VARIABLE_Q +userdefined = IfcActionTypeEnum.USERDEFINED +notdefined = IfcActionTypeEnum.NOTDEFINED IfcActuatorTypeEnum = enum_namespace() -electricactuator = getattr(IfcActuatorTypeEnum, 'ELECTRICACTUATOR', INDETERMINATE) -handoperatedactuator = getattr(IfcActuatorTypeEnum, 'HANDOPERATEDACTUATOR', INDETERMINATE) -hydraulicactuator = getattr(IfcActuatorTypeEnum, 'HYDRAULICACTUATOR', INDETERMINATE) -pneumaticactuator = getattr(IfcActuatorTypeEnum, 'PNEUMATICACTUATOR', INDETERMINATE) -thermostaticactuator = getattr(IfcActuatorTypeEnum, 'THERMOSTATICACTUATOR', INDETERMINATE) -userdefined = getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActuatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +electricactuator = IfcActuatorTypeEnum.ELECTRICACTUATOR +handoperatedactuator = IfcActuatorTypeEnum.HANDOPERATEDACTUATOR +hydraulicactuator = IfcActuatorTypeEnum.HYDRAULICACTUATOR +pneumaticactuator = IfcActuatorTypeEnum.PNEUMATICACTUATOR +thermostaticactuator = IfcActuatorTypeEnum.THERMOSTATICACTUATOR +userdefined = IfcActuatorTypeEnum.USERDEFINED +notdefined = IfcActuatorTypeEnum.NOTDEFINED IfcAddressTypeEnum = enum_namespace() -distributionpoint = getattr(IfcAddressTypeEnum, 'DISTRIBUTIONPOINT', INDETERMINATE) -home = getattr(IfcAddressTypeEnum, 'HOME', INDETERMINATE) -office = getattr(IfcAddressTypeEnum, 'OFFICE', INDETERMINATE) -site = getattr(IfcAddressTypeEnum, 'SITE', INDETERMINATE) -userdefined = getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) +distributionpoint = IfcAddressTypeEnum.DISTRIBUTIONPOINT +home = IfcAddressTypeEnum.HOME +office = IfcAddressTypeEnum.OFFICE +site = IfcAddressTypeEnum.SITE +userdefined = IfcAddressTypeEnum.USERDEFINED IfcAirTerminalBoxTypeEnum = enum_namespace() -constantflow = getattr(IfcAirTerminalBoxTypeEnum, 'CONSTANTFLOW', INDETERMINATE) -variableflowpressuredependant = getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREDEPENDANT', INDETERMINATE) -variableflowpressureindependant = getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREINDEPENDANT', INDETERMINATE) -userdefined = getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirTerminalBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +constantflow = IfcAirTerminalBoxTypeEnum.CONSTANTFLOW +variableflowpressuredependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT +variableflowpressureindependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT +userdefined = IfcAirTerminalBoxTypeEnum.USERDEFINED +notdefined = IfcAirTerminalBoxTypeEnum.NOTDEFINED IfcAirTerminalTypeEnum = enum_namespace() -diffuser = getattr(IfcAirTerminalTypeEnum, 'DIFFUSER', INDETERMINATE) -grille = getattr(IfcAirTerminalTypeEnum, 'GRILLE', INDETERMINATE) -louvre = getattr(IfcAirTerminalTypeEnum, 'LOUVRE', INDETERMINATE) -register = getattr(IfcAirTerminalTypeEnum, 'REGISTER', INDETERMINATE) -userdefined = getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +diffuser = IfcAirTerminalTypeEnum.DIFFUSER +grille = IfcAirTerminalTypeEnum.GRILLE +louvre = IfcAirTerminalTypeEnum.LOUVRE +register = IfcAirTerminalTypeEnum.REGISTER +userdefined = IfcAirTerminalTypeEnum.USERDEFINED +notdefined = IfcAirTerminalTypeEnum.NOTDEFINED IfcAirToAirHeatRecoveryTypeEnum = enum_namespace() -fixedplatecounterflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECOUNTERFLOWEXCHANGER', INDETERMINATE) -fixedplatecrossflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECROSSFLOWEXCHANGER', INDETERMINATE) -fixedplateparallelflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATEPARALLELFLOWEXCHANGER', INDETERMINATE) -heatpipe = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'HEATPIPE', INDETERMINATE) -rotarywheel = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'ROTARYWHEEL', INDETERMINATE) -runaroundcoilloop = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'RUNAROUNDCOILLOOP', INDETERMINATE) -thermosiphoncoiltypeheatexchangers = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONCOILTYPEHEATEXCHANGERS', INDETERMINATE) -thermosiphonsealedtubeheatexchangers = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONSEALEDTUBEHEATEXCHANGERS', INDETERMINATE) -twintowerenthalpyrecoveryloops = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'TWINTOWERENTHALPYRECOVERYLOOPS', INDETERMINATE) -userdefined = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'NOTDEFINED', INDETERMINATE) +fixedplatecounterflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER +fixedplatecrossflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER +fixedplateparallelflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER +heatpipe = IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE +rotarywheel = IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL +runaroundcoilloop = IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP +thermosiphoncoiltypeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS +thermosiphonsealedtubeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS +twintowerenthalpyrecoveryloops = IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS +userdefined = IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED +notdefined = IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED IfcAlarmTypeEnum = enum_namespace() -bell = getattr(IfcAlarmTypeEnum, 'BELL', INDETERMINATE) -breakglassbutton = getattr(IfcAlarmTypeEnum, 'BREAKGLASSBUTTON', INDETERMINATE) -light = getattr(IfcAlarmTypeEnum, 'LIGHT', INDETERMINATE) -manualpullbox = getattr(IfcAlarmTypeEnum, 'MANUALPULLBOX', INDETERMINATE) -railwaycrocodile = getattr(IfcAlarmTypeEnum, 'RAILWAYCROCODILE', INDETERMINATE) -railwaydetonator = getattr(IfcAlarmTypeEnum, 'RAILWAYDETONATOR', INDETERMINATE) -siren = getattr(IfcAlarmTypeEnum, 'SIREN', INDETERMINATE) -whistle = getattr(IfcAlarmTypeEnum, 'WHISTLE', INDETERMINATE) -userdefined = getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAlarmTypeEnum, 'NOTDEFINED', INDETERMINATE) +bell = IfcAlarmTypeEnum.BELL +breakglassbutton = IfcAlarmTypeEnum.BREAKGLASSBUTTON +light = IfcAlarmTypeEnum.LIGHT +manualpullbox = IfcAlarmTypeEnum.MANUALPULLBOX +railwaycrocodile = IfcAlarmTypeEnum.RAILWAYCROCODILE +railwaydetonator = IfcAlarmTypeEnum.RAILWAYDETONATOR +siren = IfcAlarmTypeEnum.SIREN +whistle = IfcAlarmTypeEnum.WHISTLE +userdefined = IfcAlarmTypeEnum.USERDEFINED +notdefined = IfcAlarmTypeEnum.NOTDEFINED IfcAlignmentCantSegmentTypeEnum = enum_namespace() -blosscurve = getattr(IfcAlignmentCantSegmentTypeEnum, 'BLOSSCURVE', INDETERMINATE) -constantcant = getattr(IfcAlignmentCantSegmentTypeEnum, 'CONSTANTCANT', INDETERMINATE) -cosinecurve = getattr(IfcAlignmentCantSegmentTypeEnum, 'COSINECURVE', INDETERMINATE) -helmertcurve = getattr(IfcAlignmentCantSegmentTypeEnum, 'HELMERTCURVE', INDETERMINATE) -lineartransition = getattr(IfcAlignmentCantSegmentTypeEnum, 'LINEARTRANSITION', INDETERMINATE) -sinecurve = getattr(IfcAlignmentCantSegmentTypeEnum, 'SINECURVE', INDETERMINATE) -viennesebend = getattr(IfcAlignmentCantSegmentTypeEnum, 'VIENNESEBEND', INDETERMINATE) +blosscurve = IfcAlignmentCantSegmentTypeEnum.BLOSSCURVE +constantcant = IfcAlignmentCantSegmentTypeEnum.CONSTANTCANT +cosinecurve = IfcAlignmentCantSegmentTypeEnum.COSINECURVE +helmertcurve = IfcAlignmentCantSegmentTypeEnum.HELMERTCURVE +lineartransition = IfcAlignmentCantSegmentTypeEnum.LINEARTRANSITION +sinecurve = IfcAlignmentCantSegmentTypeEnum.SINECURVE +viennesebend = IfcAlignmentCantSegmentTypeEnum.VIENNESEBEND IfcAlignmentHorizontalSegmentTypeEnum = enum_namespace() -blosscurve = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'BLOSSCURVE', INDETERMINATE) -circulararc = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CIRCULARARC', INDETERMINATE) -clothoid = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CLOTHOID', INDETERMINATE) -cosinecurve = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'COSINECURVE', INDETERMINATE) -cubic = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CUBIC', INDETERMINATE) -helmertcurve = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'HELMERTCURVE', INDETERMINATE) -line = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'LINE', INDETERMINATE) -sinecurve = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'SINECURVE', INDETERMINATE) -viennesebend = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'VIENNESEBEND', INDETERMINATE) +blosscurve = IfcAlignmentHorizontalSegmentTypeEnum.BLOSSCURVE +circulararc = IfcAlignmentHorizontalSegmentTypeEnum.CIRCULARARC +clothoid = IfcAlignmentHorizontalSegmentTypeEnum.CLOTHOID +cosinecurve = IfcAlignmentHorizontalSegmentTypeEnum.COSINECURVE +cubic = IfcAlignmentHorizontalSegmentTypeEnum.CUBIC +helmertcurve = IfcAlignmentHorizontalSegmentTypeEnum.HELMERTCURVE +line = IfcAlignmentHorizontalSegmentTypeEnum.LINE +sinecurve = IfcAlignmentHorizontalSegmentTypeEnum.SINECURVE +viennesebend = IfcAlignmentHorizontalSegmentTypeEnum.VIENNESEBEND IfcAlignmentTypeEnum = enum_namespace() -userdefined = getattr(IfcAlignmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAlignmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcAlignmentTypeEnum.USERDEFINED +notdefined = IfcAlignmentTypeEnum.NOTDEFINED IfcAlignmentVerticalSegmentTypeEnum = enum_namespace() -circulararc = getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CIRCULARARC', INDETERMINATE) -clothoid = getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CLOTHOID', INDETERMINATE) -constantgradient = getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CONSTANTGRADIENT', INDETERMINATE) -parabolicarc = getattr(IfcAlignmentVerticalSegmentTypeEnum, 'PARABOLICARC', INDETERMINATE) +circulararc = IfcAlignmentVerticalSegmentTypeEnum.CIRCULARARC +clothoid = IfcAlignmentVerticalSegmentTypeEnum.CLOTHOID +constantgradient = IfcAlignmentVerticalSegmentTypeEnum.CONSTANTGRADIENT +parabolicarc = IfcAlignmentVerticalSegmentTypeEnum.PARABOLICARC IfcAnalysisModelTypeEnum = enum_namespace() -in_plane_loading_2d = getattr(IfcAnalysisModelTypeEnum, 'IN_PLANE_LOADING_2D', INDETERMINATE) -loading_3d = getattr(IfcAnalysisModelTypeEnum, 'LOADING_3D', INDETERMINATE) -out_plane_loading_2d = getattr(IfcAnalysisModelTypeEnum, 'OUT_PLANE_LOADING_2D', INDETERMINATE) -userdefined = getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnalysisModelTypeEnum, 'NOTDEFINED', INDETERMINATE) +in_plane_loading_2d = IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D +loading_3d = IfcAnalysisModelTypeEnum.LOADING_3D +out_plane_loading_2d = IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D +userdefined = IfcAnalysisModelTypeEnum.USERDEFINED +notdefined = IfcAnalysisModelTypeEnum.NOTDEFINED IfcAnalysisTheoryTypeEnum = enum_namespace() -first_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'FIRST_ORDER_THEORY', INDETERMINATE) -full_nonlinear_theory = getattr(IfcAnalysisTheoryTypeEnum, 'FULL_NONLINEAR_THEORY', INDETERMINATE) -second_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'SECOND_ORDER_THEORY', INDETERMINATE) -third_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'THIRD_ORDER_THEORY', INDETERMINATE) -userdefined = getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnalysisTheoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +first_order_theory = IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY +full_nonlinear_theory = IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY +second_order_theory = IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY +third_order_theory = IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY +userdefined = IfcAnalysisTheoryTypeEnum.USERDEFINED +notdefined = IfcAnalysisTheoryTypeEnum.NOTDEFINED IfcAnnotationTypeEnum = enum_namespace() -asbuiltarea = getattr(IfcAnnotationTypeEnum, 'ASBUILTAREA', INDETERMINATE) -asbuiltline = getattr(IfcAnnotationTypeEnum, 'ASBUILTLINE', INDETERMINATE) -asbuiltpoint = getattr(IfcAnnotationTypeEnum, 'ASBUILTPOINT', INDETERMINATE) -assumedarea = getattr(IfcAnnotationTypeEnum, 'ASSUMEDAREA', INDETERMINATE) -assumedline = getattr(IfcAnnotationTypeEnum, 'ASSUMEDLINE', INDETERMINATE) -assumedpoint = getattr(IfcAnnotationTypeEnum, 'ASSUMEDPOINT', INDETERMINATE) -non_physical_signal = getattr(IfcAnnotationTypeEnum, 'NON_PHYSICAL_SIGNAL', INDETERMINATE) -superelevationevent = getattr(IfcAnnotationTypeEnum, 'SUPERELEVATIONEVENT', INDETERMINATE) -widthevent = getattr(IfcAnnotationTypeEnum, 'WIDTHEVENT', INDETERMINATE) -userdefined = getattr(IfcAnnotationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnnotationTypeEnum, 'NOTDEFINED', INDETERMINATE) +asbuiltarea = IfcAnnotationTypeEnum.ASBUILTAREA +asbuiltline = IfcAnnotationTypeEnum.ASBUILTLINE +asbuiltpoint = IfcAnnotationTypeEnum.ASBUILTPOINT +assumedarea = IfcAnnotationTypeEnum.ASSUMEDAREA +assumedline = IfcAnnotationTypeEnum.ASSUMEDLINE +assumedpoint = IfcAnnotationTypeEnum.ASSUMEDPOINT +non_physical_signal = IfcAnnotationTypeEnum.NON_PHYSICAL_SIGNAL +superelevationevent = IfcAnnotationTypeEnum.SUPERELEVATIONEVENT +widthevent = IfcAnnotationTypeEnum.WIDTHEVENT +userdefined = IfcAnnotationTypeEnum.USERDEFINED +notdefined = IfcAnnotationTypeEnum.NOTDEFINED IfcArithmeticOperatorEnum = enum_namespace() -add = getattr(IfcArithmeticOperatorEnum, 'ADD', INDETERMINATE) -divide = getattr(IfcArithmeticOperatorEnum, 'DIVIDE', INDETERMINATE) -multiply = getattr(IfcArithmeticOperatorEnum, 'MULTIPLY', INDETERMINATE) -subtract = getattr(IfcArithmeticOperatorEnum, 'SUBTRACT', INDETERMINATE) +add = IfcArithmeticOperatorEnum.ADD +divide = IfcArithmeticOperatorEnum.DIVIDE +multiply = IfcArithmeticOperatorEnum.MULTIPLY +subtract = IfcArithmeticOperatorEnum.SUBTRACT IfcAssemblyPlaceEnum = enum_namespace() -factory = getattr(IfcAssemblyPlaceEnum, 'FACTORY', INDETERMINATE) -site = getattr(IfcAssemblyPlaceEnum, 'SITE', INDETERMINATE) -notdefined = getattr(IfcAssemblyPlaceEnum, 'NOTDEFINED', INDETERMINATE) +factory = IfcAssemblyPlaceEnum.FACTORY +site = IfcAssemblyPlaceEnum.SITE +notdefined = IfcAssemblyPlaceEnum.NOTDEFINED IfcAudioVisualApplianceTypeEnum = enum_namespace() -amplifier = getattr(IfcAudioVisualApplianceTypeEnum, 'AMPLIFIER', INDETERMINATE) -camera = getattr(IfcAudioVisualApplianceTypeEnum, 'CAMERA', INDETERMINATE) -communicationterminal = getattr(IfcAudioVisualApplianceTypeEnum, 'COMMUNICATIONTERMINAL', INDETERMINATE) -display = getattr(IfcAudioVisualApplianceTypeEnum, 'DISPLAY', INDETERMINATE) -microphone = getattr(IfcAudioVisualApplianceTypeEnum, 'MICROPHONE', INDETERMINATE) -player = getattr(IfcAudioVisualApplianceTypeEnum, 'PLAYER', INDETERMINATE) -projector = getattr(IfcAudioVisualApplianceTypeEnum, 'PROJECTOR', INDETERMINATE) -receiver = getattr(IfcAudioVisualApplianceTypeEnum, 'RECEIVER', INDETERMINATE) -recordingequipment = getattr(IfcAudioVisualApplianceTypeEnum, 'RECORDINGEQUIPMENT', INDETERMINATE) -speaker = getattr(IfcAudioVisualApplianceTypeEnum, 'SPEAKER', INDETERMINATE) -switcher = getattr(IfcAudioVisualApplianceTypeEnum, 'SWITCHER', INDETERMINATE) -telephone = getattr(IfcAudioVisualApplianceTypeEnum, 'TELEPHONE', INDETERMINATE) -tuner = getattr(IfcAudioVisualApplianceTypeEnum, 'TUNER', INDETERMINATE) -userdefined = getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAudioVisualApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +amplifier = IfcAudioVisualApplianceTypeEnum.AMPLIFIER +camera = IfcAudioVisualApplianceTypeEnum.CAMERA +communicationterminal = IfcAudioVisualApplianceTypeEnum.COMMUNICATIONTERMINAL +display = IfcAudioVisualApplianceTypeEnum.DISPLAY +microphone = IfcAudioVisualApplianceTypeEnum.MICROPHONE +player = IfcAudioVisualApplianceTypeEnum.PLAYER +projector = IfcAudioVisualApplianceTypeEnum.PROJECTOR +receiver = IfcAudioVisualApplianceTypeEnum.RECEIVER +recordingequipment = IfcAudioVisualApplianceTypeEnum.RECORDINGEQUIPMENT +speaker = IfcAudioVisualApplianceTypeEnum.SPEAKER +switcher = IfcAudioVisualApplianceTypeEnum.SWITCHER +telephone = IfcAudioVisualApplianceTypeEnum.TELEPHONE +tuner = IfcAudioVisualApplianceTypeEnum.TUNER +userdefined = IfcAudioVisualApplianceTypeEnum.USERDEFINED +notdefined = IfcAudioVisualApplianceTypeEnum.NOTDEFINED IfcBSplineCurveForm = enum_namespace() -circular_arc = getattr(IfcBSplineCurveForm, 'CIRCULAR_ARC', INDETERMINATE) -elliptic_arc = getattr(IfcBSplineCurveForm, 'ELLIPTIC_ARC', INDETERMINATE) -hyperbolic_arc = getattr(IfcBSplineCurveForm, 'HYPERBOLIC_ARC', INDETERMINATE) -parabolic_arc = getattr(IfcBSplineCurveForm, 'PARABOLIC_ARC', INDETERMINATE) -polyline_form = getattr(IfcBSplineCurveForm, 'POLYLINE_FORM', INDETERMINATE) -unspecified = getattr(IfcBSplineCurveForm, 'UNSPECIFIED', INDETERMINATE) +circular_arc = IfcBSplineCurveForm.CIRCULAR_ARC +elliptic_arc = IfcBSplineCurveForm.ELLIPTIC_ARC +hyperbolic_arc = IfcBSplineCurveForm.HYPERBOLIC_ARC +parabolic_arc = IfcBSplineCurveForm.PARABOLIC_ARC +polyline_form = IfcBSplineCurveForm.POLYLINE_FORM +unspecified = IfcBSplineCurveForm.UNSPECIFIED IfcBSplineSurfaceForm = enum_namespace() -conical_surf = getattr(IfcBSplineSurfaceForm, 'CONICAL_SURF', INDETERMINATE) -cylindrical_surf = getattr(IfcBSplineSurfaceForm, 'CYLINDRICAL_SURF', INDETERMINATE) -generalised_cone = getattr(IfcBSplineSurfaceForm, 'GENERALISED_CONE', INDETERMINATE) -plane_surf = getattr(IfcBSplineSurfaceForm, 'PLANE_SURF', INDETERMINATE) -quadric_surf = getattr(IfcBSplineSurfaceForm, 'QUADRIC_SURF', INDETERMINATE) -ruled_surf = getattr(IfcBSplineSurfaceForm, 'RULED_SURF', INDETERMINATE) -spherical_surf = getattr(IfcBSplineSurfaceForm, 'SPHERICAL_SURF', INDETERMINATE) -surf_of_linear_extrusion = getattr(IfcBSplineSurfaceForm, 'SURF_OF_LINEAR_EXTRUSION', INDETERMINATE) -surf_of_revolution = getattr(IfcBSplineSurfaceForm, 'SURF_OF_REVOLUTION', INDETERMINATE) -toroidal_surf = getattr(IfcBSplineSurfaceForm, 'TOROIDAL_SURF', INDETERMINATE) -unspecified = getattr(IfcBSplineSurfaceForm, 'UNSPECIFIED', INDETERMINATE) +conical_surf = IfcBSplineSurfaceForm.CONICAL_SURF +cylindrical_surf = IfcBSplineSurfaceForm.CYLINDRICAL_SURF +generalised_cone = IfcBSplineSurfaceForm.GENERALISED_CONE +plane_surf = IfcBSplineSurfaceForm.PLANE_SURF +quadric_surf = IfcBSplineSurfaceForm.QUADRIC_SURF +ruled_surf = IfcBSplineSurfaceForm.RULED_SURF +spherical_surf = IfcBSplineSurfaceForm.SPHERICAL_SURF +surf_of_linear_extrusion = IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION +surf_of_revolution = IfcBSplineSurfaceForm.SURF_OF_REVOLUTION +toroidal_surf = IfcBSplineSurfaceForm.TOROIDAL_SURF +unspecified = IfcBSplineSurfaceForm.UNSPECIFIED IfcBeamTypeEnum = enum_namespace() -beam = getattr(IfcBeamTypeEnum, 'BEAM', INDETERMINATE) -cornice = getattr(IfcBeamTypeEnum, 'CORNICE', INDETERMINATE) -diaphragm = getattr(IfcBeamTypeEnum, 'DIAPHRAGM', INDETERMINATE) -edgebeam = getattr(IfcBeamTypeEnum, 'EDGEBEAM', INDETERMINATE) -girder_segment = getattr(IfcBeamTypeEnum, 'GIRDER_SEGMENT', INDETERMINATE) -hatstone = getattr(IfcBeamTypeEnum, 'HATSTONE', INDETERMINATE) -hollowcore = getattr(IfcBeamTypeEnum, 'HOLLOWCORE', INDETERMINATE) -joist = getattr(IfcBeamTypeEnum, 'JOIST', INDETERMINATE) -lintel = getattr(IfcBeamTypeEnum, 'LINTEL', INDETERMINATE) -piercap = getattr(IfcBeamTypeEnum, 'PIERCAP', INDETERMINATE) -spandrel = getattr(IfcBeamTypeEnum, 'SPANDREL', INDETERMINATE) -t_beam = getattr(IfcBeamTypeEnum, 'T_BEAM', INDETERMINATE) -userdefined = getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +beam = IfcBeamTypeEnum.BEAM +cornice = IfcBeamTypeEnum.CORNICE +diaphragm = IfcBeamTypeEnum.DIAPHRAGM +edgebeam = IfcBeamTypeEnum.EDGEBEAM +girder_segment = IfcBeamTypeEnum.GIRDER_SEGMENT +hatstone = IfcBeamTypeEnum.HATSTONE +hollowcore = IfcBeamTypeEnum.HOLLOWCORE +joist = IfcBeamTypeEnum.JOIST +lintel = IfcBeamTypeEnum.LINTEL +piercap = IfcBeamTypeEnum.PIERCAP +spandrel = IfcBeamTypeEnum.SPANDREL +t_beam = IfcBeamTypeEnum.T_BEAM +userdefined = IfcBeamTypeEnum.USERDEFINED +notdefined = IfcBeamTypeEnum.NOTDEFINED IfcBearingTypeEnum = enum_namespace() -cylindrical = getattr(IfcBearingTypeEnum, 'CYLINDRICAL', INDETERMINATE) -disk = getattr(IfcBearingTypeEnum, 'DISK', INDETERMINATE) -elastomeric = getattr(IfcBearingTypeEnum, 'ELASTOMERIC', INDETERMINATE) -guide = getattr(IfcBearingTypeEnum, 'GUIDE', INDETERMINATE) -pot = getattr(IfcBearingTypeEnum, 'POT', INDETERMINATE) -rocker = getattr(IfcBearingTypeEnum, 'ROCKER', INDETERMINATE) -roller = getattr(IfcBearingTypeEnum, 'ROLLER', INDETERMINATE) -spherical = getattr(IfcBearingTypeEnum, 'SPHERICAL', INDETERMINATE) -userdefined = getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBearingTypeEnum, 'NOTDEFINED', INDETERMINATE) +cylindrical = IfcBearingTypeEnum.CYLINDRICAL +disk = IfcBearingTypeEnum.DISK +elastomeric = IfcBearingTypeEnum.ELASTOMERIC +guide = IfcBearingTypeEnum.GUIDE +pot = IfcBearingTypeEnum.POT +rocker = IfcBearingTypeEnum.ROCKER +roller = IfcBearingTypeEnum.ROLLER +spherical = IfcBearingTypeEnum.SPHERICAL +userdefined = IfcBearingTypeEnum.USERDEFINED +notdefined = IfcBearingTypeEnum.NOTDEFINED IfcBenchmarkEnum = enum_namespace() -equalto = getattr(IfcBenchmarkEnum, 'EQUALTO', INDETERMINATE) -greaterthan = getattr(IfcBenchmarkEnum, 'GREATERTHAN', INDETERMINATE) -greaterthanorequalto = getattr(IfcBenchmarkEnum, 'GREATERTHANOREQUALTO', INDETERMINATE) -includedin = getattr(IfcBenchmarkEnum, 'INCLUDEDIN', INDETERMINATE) -includes = getattr(IfcBenchmarkEnum, 'INCLUDES', INDETERMINATE) -lessthan = getattr(IfcBenchmarkEnum, 'LESSTHAN', INDETERMINATE) -lessthanorequalto = getattr(IfcBenchmarkEnum, 'LESSTHANOREQUALTO', INDETERMINATE) -notequalto = getattr(IfcBenchmarkEnum, 'NOTEQUALTO', INDETERMINATE) -notincludedin = getattr(IfcBenchmarkEnum, 'NOTINCLUDEDIN', INDETERMINATE) -notincludes = getattr(IfcBenchmarkEnum, 'NOTINCLUDES', INDETERMINATE) +equalto = IfcBenchmarkEnum.EQUALTO +greaterthan = IfcBenchmarkEnum.GREATERTHAN +greaterthanorequalto = IfcBenchmarkEnum.GREATERTHANOREQUALTO +includedin = IfcBenchmarkEnum.INCLUDEDIN +includes = IfcBenchmarkEnum.INCLUDES +lessthan = IfcBenchmarkEnum.LESSTHAN +lessthanorequalto = IfcBenchmarkEnum.LESSTHANOREQUALTO +notequalto = IfcBenchmarkEnum.NOTEQUALTO +notincludedin = IfcBenchmarkEnum.NOTINCLUDEDIN +notincludes = IfcBenchmarkEnum.NOTINCLUDES IfcBoilerTypeEnum = enum_namespace() -steam = getattr(IfcBoilerTypeEnum, 'STEAM', INDETERMINATE) -water = getattr(IfcBoilerTypeEnum, 'WATER', INDETERMINATE) -userdefined = getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBoilerTypeEnum, 'NOTDEFINED', INDETERMINATE) +steam = IfcBoilerTypeEnum.STEAM +water = IfcBoilerTypeEnum.WATER +userdefined = IfcBoilerTypeEnum.USERDEFINED +notdefined = IfcBoilerTypeEnum.NOTDEFINED IfcBooleanOperator = enum_namespace() -difference = getattr(IfcBooleanOperator, 'DIFFERENCE', INDETERMINATE) -intersection = getattr(IfcBooleanOperator, 'INTERSECTION', INDETERMINATE) -union = getattr(IfcBooleanOperator, 'UNION', INDETERMINATE) +difference = IfcBooleanOperator.DIFFERENCE +intersection = IfcBooleanOperator.INTERSECTION +union = IfcBooleanOperator.UNION IfcBridgePartTypeEnum = enum_namespace() -abutment = getattr(IfcBridgePartTypeEnum, 'ABUTMENT', INDETERMINATE) -deck = getattr(IfcBridgePartTypeEnum, 'DECK', INDETERMINATE) -deck_segment = getattr(IfcBridgePartTypeEnum, 'DECK_SEGMENT', INDETERMINATE) -foundation = getattr(IfcBridgePartTypeEnum, 'FOUNDATION', INDETERMINATE) -pier = getattr(IfcBridgePartTypeEnum, 'PIER', INDETERMINATE) -pier_segment = getattr(IfcBridgePartTypeEnum, 'PIER_SEGMENT', INDETERMINATE) -pylon = getattr(IfcBridgePartTypeEnum, 'PYLON', INDETERMINATE) -substructure = getattr(IfcBridgePartTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -superstructure = getattr(IfcBridgePartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -surfacestructure = getattr(IfcBridgePartTypeEnum, 'SURFACESTRUCTURE', INDETERMINATE) -userdefined = getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBridgePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +abutment = IfcBridgePartTypeEnum.ABUTMENT +deck = IfcBridgePartTypeEnum.DECK +deck_segment = IfcBridgePartTypeEnum.DECK_SEGMENT +foundation = IfcBridgePartTypeEnum.FOUNDATION +pier = IfcBridgePartTypeEnum.PIER +pier_segment = IfcBridgePartTypeEnum.PIER_SEGMENT +pylon = IfcBridgePartTypeEnum.PYLON +substructure = IfcBridgePartTypeEnum.SUBSTRUCTURE +superstructure = IfcBridgePartTypeEnum.SUPERSTRUCTURE +surfacestructure = IfcBridgePartTypeEnum.SURFACESTRUCTURE +userdefined = IfcBridgePartTypeEnum.USERDEFINED +notdefined = IfcBridgePartTypeEnum.NOTDEFINED IfcBridgeTypeEnum = enum_namespace() -arched = getattr(IfcBridgeTypeEnum, 'ARCHED', INDETERMINATE) -cable_stayed = getattr(IfcBridgeTypeEnum, 'CABLE_STAYED', INDETERMINATE) -cantilever = getattr(IfcBridgeTypeEnum, 'CANTILEVER', INDETERMINATE) -culvert = getattr(IfcBridgeTypeEnum, 'CULVERT', INDETERMINATE) -framework = getattr(IfcBridgeTypeEnum, 'FRAMEWORK', INDETERMINATE) -girder = getattr(IfcBridgeTypeEnum, 'GIRDER', INDETERMINATE) -suspension = getattr(IfcBridgeTypeEnum, 'SUSPENSION', INDETERMINATE) -truss = getattr(IfcBridgeTypeEnum, 'TRUSS', INDETERMINATE) -userdefined = getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBridgeTypeEnum, 'NOTDEFINED', INDETERMINATE) +arched = IfcBridgeTypeEnum.ARCHED +cable_stayed = IfcBridgeTypeEnum.CABLE_STAYED +cantilever = IfcBridgeTypeEnum.CANTILEVER +culvert = IfcBridgeTypeEnum.CULVERT +framework = IfcBridgeTypeEnum.FRAMEWORK +girder = IfcBridgeTypeEnum.GIRDER +suspension = IfcBridgeTypeEnum.SUSPENSION +truss = IfcBridgeTypeEnum.TRUSS +userdefined = IfcBridgeTypeEnum.USERDEFINED +notdefined = IfcBridgeTypeEnum.NOTDEFINED IfcBuildingElementPartTypeEnum = enum_namespace() -apron = getattr(IfcBuildingElementPartTypeEnum, 'APRON', INDETERMINATE) -armourunit = getattr(IfcBuildingElementPartTypeEnum, 'ARMOURUNIT', INDETERMINATE) -insulation = getattr(IfcBuildingElementPartTypeEnum, 'INSULATION', INDETERMINATE) -precastpanel = getattr(IfcBuildingElementPartTypeEnum, 'PRECASTPANEL', INDETERMINATE) -safetycage = getattr(IfcBuildingElementPartTypeEnum, 'SAFETYCAGE', INDETERMINATE) -userdefined = getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingElementPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +apron = IfcBuildingElementPartTypeEnum.APRON +armourunit = IfcBuildingElementPartTypeEnum.ARMOURUNIT +insulation = IfcBuildingElementPartTypeEnum.INSULATION +precastpanel = IfcBuildingElementPartTypeEnum.PRECASTPANEL +safetycage = IfcBuildingElementPartTypeEnum.SAFETYCAGE +userdefined = IfcBuildingElementPartTypeEnum.USERDEFINED +notdefined = IfcBuildingElementPartTypeEnum.NOTDEFINED IfcBuildingElementProxyTypeEnum = enum_namespace() -complex = getattr(IfcBuildingElementProxyTypeEnum, 'COMPLEX', INDETERMINATE) -element = getattr(IfcBuildingElementProxyTypeEnum, 'ELEMENT', INDETERMINATE) -partial = getattr(IfcBuildingElementProxyTypeEnum, 'PARTIAL', INDETERMINATE) -provisionforspace = getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORSPACE', INDETERMINATE) -provisionforvoid = getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORVOID', INDETERMINATE) -userdefined = getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingElementProxyTypeEnum, 'NOTDEFINED', INDETERMINATE) +complex = IfcBuildingElementProxyTypeEnum.COMPLEX +element = IfcBuildingElementProxyTypeEnum.ELEMENT +partial = IfcBuildingElementProxyTypeEnum.PARTIAL +provisionforspace = IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE +provisionforvoid = IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID +userdefined = IfcBuildingElementProxyTypeEnum.USERDEFINED +notdefined = IfcBuildingElementProxyTypeEnum.NOTDEFINED IfcBuildingSystemTypeEnum = enum_namespace() -fenestration = getattr(IfcBuildingSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = getattr(IfcBuildingSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = getattr(IfcBuildingSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -outershell = getattr(IfcBuildingSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -shading = getattr(IfcBuildingSystemTypeEnum, 'SHADING', INDETERMINATE) -transport = getattr(IfcBuildingSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -userdefined = getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +fenestration = IfcBuildingSystemTypeEnum.FENESTRATION +foundation = IfcBuildingSystemTypeEnum.FOUNDATION +loadbearing = IfcBuildingSystemTypeEnum.LOADBEARING +outershell = IfcBuildingSystemTypeEnum.OUTERSHELL +shading = IfcBuildingSystemTypeEnum.SHADING +transport = IfcBuildingSystemTypeEnum.TRANSPORT +userdefined = IfcBuildingSystemTypeEnum.USERDEFINED +notdefined = IfcBuildingSystemTypeEnum.NOTDEFINED IfcBuiltSystemTypeEnum = enum_namespace() -erosionprevention = getattr(IfcBuiltSystemTypeEnum, 'EROSIONPREVENTION', INDETERMINATE) -fenestration = getattr(IfcBuiltSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = getattr(IfcBuiltSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = getattr(IfcBuiltSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -mooring = getattr(IfcBuiltSystemTypeEnum, 'MOORING', INDETERMINATE) -outershell = getattr(IfcBuiltSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -prestressing = getattr(IfcBuiltSystemTypeEnum, 'PRESTRESSING', INDETERMINATE) -railwayline = getattr(IfcBuiltSystemTypeEnum, 'RAILWAYLINE', INDETERMINATE) -railwaytrack = getattr(IfcBuiltSystemTypeEnum, 'RAILWAYTRACK', INDETERMINATE) -reinforcing = getattr(IfcBuiltSystemTypeEnum, 'REINFORCING', INDETERMINATE) -shading = getattr(IfcBuiltSystemTypeEnum, 'SHADING', INDETERMINATE) -trackcircuit = getattr(IfcBuiltSystemTypeEnum, 'TRACKCIRCUIT', INDETERMINATE) -transport = getattr(IfcBuiltSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -userdefined = getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuiltSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +erosionprevention = IfcBuiltSystemTypeEnum.EROSIONPREVENTION +fenestration = IfcBuiltSystemTypeEnum.FENESTRATION +foundation = IfcBuiltSystemTypeEnum.FOUNDATION +loadbearing = IfcBuiltSystemTypeEnum.LOADBEARING +mooring = IfcBuiltSystemTypeEnum.MOORING +outershell = IfcBuiltSystemTypeEnum.OUTERSHELL +prestressing = IfcBuiltSystemTypeEnum.PRESTRESSING +railwayline = IfcBuiltSystemTypeEnum.RAILWAYLINE +railwaytrack = IfcBuiltSystemTypeEnum.RAILWAYTRACK +reinforcing = IfcBuiltSystemTypeEnum.REINFORCING +shading = IfcBuiltSystemTypeEnum.SHADING +trackcircuit = IfcBuiltSystemTypeEnum.TRACKCIRCUIT +transport = IfcBuiltSystemTypeEnum.TRANSPORT +userdefined = IfcBuiltSystemTypeEnum.USERDEFINED +notdefined = IfcBuiltSystemTypeEnum.NOTDEFINED IfcBurnerTypeEnum = enum_namespace() -userdefined = getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBurnerTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcBurnerTypeEnum.USERDEFINED +notdefined = IfcBurnerTypeEnum.NOTDEFINED IfcCableCarrierFittingTypeEnum = enum_namespace() -bend = getattr(IfcCableCarrierFittingTypeEnum, 'BEND', INDETERMINATE) -connector = getattr(IfcCableCarrierFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -cross = getattr(IfcCableCarrierFittingTypeEnum, 'CROSS', INDETERMINATE) -junction = getattr(IfcCableCarrierFittingTypeEnum, 'JUNCTION', INDETERMINATE) -reducer = getattr(IfcCableCarrierFittingTypeEnum, 'REDUCER', INDETERMINATE) -tee = getattr(IfcCableCarrierFittingTypeEnum, 'TEE', INDETERMINATE) -transition = getattr(IfcCableCarrierFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableCarrierFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcCableCarrierFittingTypeEnum.BEND +connector = IfcCableCarrierFittingTypeEnum.CONNECTOR +cross = IfcCableCarrierFittingTypeEnum.CROSS +junction = IfcCableCarrierFittingTypeEnum.JUNCTION +reducer = IfcCableCarrierFittingTypeEnum.REDUCER +tee = IfcCableCarrierFittingTypeEnum.TEE +transition = IfcCableCarrierFittingTypeEnum.TRANSITION +userdefined = IfcCableCarrierFittingTypeEnum.USERDEFINED +notdefined = IfcCableCarrierFittingTypeEnum.NOTDEFINED IfcCableCarrierSegmentTypeEnum = enum_namespace() -cablebracket = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLEBRACKET', INDETERMINATE) -cableladdersegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLELADDERSEGMENT', INDETERMINATE) -cabletraysegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRAYSEGMENT', INDETERMINATE) -cabletrunkingsegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRUNKINGSEGMENT', INDETERMINATE) -catenarywire = getattr(IfcCableCarrierSegmentTypeEnum, 'CATENARYWIRE', INDETERMINATE) -conduitsegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CONDUITSEGMENT', INDETERMINATE) -dropper = getattr(IfcCableCarrierSegmentTypeEnum, 'DROPPER', INDETERMINATE) -userdefined = getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableCarrierSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +cablebracket = IfcCableCarrierSegmentTypeEnum.CABLEBRACKET +cableladdersegment = IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT +cabletraysegment = IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT +cabletrunkingsegment = IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT +catenarywire = IfcCableCarrierSegmentTypeEnum.CATENARYWIRE +conduitsegment = IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT +dropper = IfcCableCarrierSegmentTypeEnum.DROPPER +userdefined = IfcCableCarrierSegmentTypeEnum.USERDEFINED +notdefined = IfcCableCarrierSegmentTypeEnum.NOTDEFINED IfcCableFittingTypeEnum = enum_namespace() -connector = getattr(IfcCableFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcCableFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcCableFittingTypeEnum, 'EXIT', INDETERMINATE) -fanout = getattr(IfcCableFittingTypeEnum, 'FANOUT', INDETERMINATE) -junction = getattr(IfcCableFittingTypeEnum, 'JUNCTION', INDETERMINATE) -transition = getattr(IfcCableFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +connector = IfcCableFittingTypeEnum.CONNECTOR +entry = IfcCableFittingTypeEnum.ENTRY +exit = IfcCableFittingTypeEnum.EXIT +fanout = IfcCableFittingTypeEnum.FANOUT +junction = IfcCableFittingTypeEnum.JUNCTION +transition = IfcCableFittingTypeEnum.TRANSITION +userdefined = IfcCableFittingTypeEnum.USERDEFINED +notdefined = IfcCableFittingTypeEnum.NOTDEFINED IfcCableSegmentTypeEnum = enum_namespace() -busbarsegment = getattr(IfcCableSegmentTypeEnum, 'BUSBARSEGMENT', INDETERMINATE) -cablesegment = getattr(IfcCableSegmentTypeEnum, 'CABLESEGMENT', INDETERMINATE) -conductorsegment = getattr(IfcCableSegmentTypeEnum, 'CONDUCTORSEGMENT', INDETERMINATE) -contactwiresegment = getattr(IfcCableSegmentTypeEnum, 'CONTACTWIRESEGMENT', INDETERMINATE) -coresegment = getattr(IfcCableSegmentTypeEnum, 'CORESEGMENT', INDETERMINATE) -fibersegment = getattr(IfcCableSegmentTypeEnum, 'FIBERSEGMENT', INDETERMINATE) -fibertube = getattr(IfcCableSegmentTypeEnum, 'FIBERTUBE', INDETERMINATE) -opticalcablesegment = getattr(IfcCableSegmentTypeEnum, 'OPTICALCABLESEGMENT', INDETERMINATE) -stitchwire = getattr(IfcCableSegmentTypeEnum, 'STITCHWIRE', INDETERMINATE) -wirepairsegment = getattr(IfcCableSegmentTypeEnum, 'WIREPAIRSEGMENT', INDETERMINATE) -userdefined = getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +busbarsegment = IfcCableSegmentTypeEnum.BUSBARSEGMENT +cablesegment = IfcCableSegmentTypeEnum.CABLESEGMENT +conductorsegment = IfcCableSegmentTypeEnum.CONDUCTORSEGMENT +contactwiresegment = IfcCableSegmentTypeEnum.CONTACTWIRESEGMENT +coresegment = IfcCableSegmentTypeEnum.CORESEGMENT +fibersegment = IfcCableSegmentTypeEnum.FIBERSEGMENT +fibertube = IfcCableSegmentTypeEnum.FIBERTUBE +opticalcablesegment = IfcCableSegmentTypeEnum.OPTICALCABLESEGMENT +stitchwire = IfcCableSegmentTypeEnum.STITCHWIRE +wirepairsegment = IfcCableSegmentTypeEnum.WIREPAIRSEGMENT +userdefined = IfcCableSegmentTypeEnum.USERDEFINED +notdefined = IfcCableSegmentTypeEnum.NOTDEFINED IfcCaissonFoundationTypeEnum = enum_namespace() -caisson = getattr(IfcCaissonFoundationTypeEnum, 'CAISSON', INDETERMINATE) -well = getattr(IfcCaissonFoundationTypeEnum, 'WELL', INDETERMINATE) -userdefined = getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCaissonFoundationTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson = IfcCaissonFoundationTypeEnum.CAISSON +well = IfcCaissonFoundationTypeEnum.WELL +userdefined = IfcCaissonFoundationTypeEnum.USERDEFINED +notdefined = IfcCaissonFoundationTypeEnum.NOTDEFINED IfcChangeActionEnum = enum_namespace() -added = getattr(IfcChangeActionEnum, 'ADDED', INDETERMINATE) -deleted = getattr(IfcChangeActionEnum, 'DELETED', INDETERMINATE) -modified = getattr(IfcChangeActionEnum, 'MODIFIED', INDETERMINATE) -nochange = getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE) -notdefined = getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) +added = IfcChangeActionEnum.ADDED +deleted = IfcChangeActionEnum.DELETED +modified = IfcChangeActionEnum.MODIFIED +nochange = IfcChangeActionEnum.NOCHANGE +notdefined = IfcChangeActionEnum.NOTDEFINED IfcChillerTypeEnum = enum_namespace() -aircooled = getattr(IfcChillerTypeEnum, 'AIRCOOLED', INDETERMINATE) -heatrecovery = getattr(IfcChillerTypeEnum, 'HEATRECOVERY', INDETERMINATE) -watercooled = getattr(IfcChillerTypeEnum, 'WATERCOOLED', INDETERMINATE) -userdefined = getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcChillerTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcChillerTypeEnum.AIRCOOLED +heatrecovery = IfcChillerTypeEnum.HEATRECOVERY +watercooled = IfcChillerTypeEnum.WATERCOOLED +userdefined = IfcChillerTypeEnum.USERDEFINED +notdefined = IfcChillerTypeEnum.NOTDEFINED IfcChimneyTypeEnum = enum_namespace() -userdefined = getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcChimneyTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcChimneyTypeEnum.USERDEFINED +notdefined = IfcChimneyTypeEnum.NOTDEFINED IfcCoilTypeEnum = enum_namespace() -dxcoolingcoil = getattr(IfcCoilTypeEnum, 'DXCOOLINGCOIL', INDETERMINATE) -electricheatingcoil = getattr(IfcCoilTypeEnum, 'ELECTRICHEATINGCOIL', INDETERMINATE) -gasheatingcoil = getattr(IfcCoilTypeEnum, 'GASHEATINGCOIL', INDETERMINATE) -hydroniccoil = getattr(IfcCoilTypeEnum, 'HYDRONICCOIL', INDETERMINATE) -steamheatingcoil = getattr(IfcCoilTypeEnum, 'STEAMHEATINGCOIL', INDETERMINATE) -watercoolingcoil = getattr(IfcCoilTypeEnum, 'WATERCOOLINGCOIL', INDETERMINATE) -waterheatingcoil = getattr(IfcCoilTypeEnum, 'WATERHEATINGCOIL', INDETERMINATE) -userdefined = getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dxcoolingcoil = IfcCoilTypeEnum.DXCOOLINGCOIL +electricheatingcoil = IfcCoilTypeEnum.ELECTRICHEATINGCOIL +gasheatingcoil = IfcCoilTypeEnum.GASHEATINGCOIL +hydroniccoil = IfcCoilTypeEnum.HYDRONICCOIL +steamheatingcoil = IfcCoilTypeEnum.STEAMHEATINGCOIL +watercoolingcoil = IfcCoilTypeEnum.WATERCOOLINGCOIL +waterheatingcoil = IfcCoilTypeEnum.WATERHEATINGCOIL +userdefined = IfcCoilTypeEnum.USERDEFINED +notdefined = IfcCoilTypeEnum.NOTDEFINED IfcColumnTypeEnum = enum_namespace() -column = getattr(IfcColumnTypeEnum, 'COLUMN', INDETERMINATE) -pierstem = getattr(IfcColumnTypeEnum, 'PIERSTEM', INDETERMINATE) -pierstem_segment = getattr(IfcColumnTypeEnum, 'PIERSTEM_SEGMENT', INDETERMINATE) -pilaster = getattr(IfcColumnTypeEnum, 'PILASTER', INDETERMINATE) -standcolumn = getattr(IfcColumnTypeEnum, 'STANDCOLUMN', INDETERMINATE) -userdefined = getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcColumnTypeEnum, 'NOTDEFINED', INDETERMINATE) +column = IfcColumnTypeEnum.COLUMN +pierstem = IfcColumnTypeEnum.PIERSTEM +pierstem_segment = IfcColumnTypeEnum.PIERSTEM_SEGMENT +pilaster = IfcColumnTypeEnum.PILASTER +standcolumn = IfcColumnTypeEnum.STANDCOLUMN +userdefined = IfcColumnTypeEnum.USERDEFINED +notdefined = IfcColumnTypeEnum.NOTDEFINED IfcCommunicationsApplianceTypeEnum = enum_namespace() -antenna = getattr(IfcCommunicationsApplianceTypeEnum, 'ANTENNA', INDETERMINATE) -automaton = getattr(IfcCommunicationsApplianceTypeEnum, 'AUTOMATON', INDETERMINATE) -computer = getattr(IfcCommunicationsApplianceTypeEnum, 'COMPUTER', INDETERMINATE) -fax = getattr(IfcCommunicationsApplianceTypeEnum, 'FAX', INDETERMINATE) -gateway = getattr(IfcCommunicationsApplianceTypeEnum, 'GATEWAY', INDETERMINATE) -intelligentperipheral = getattr(IfcCommunicationsApplianceTypeEnum, 'INTELLIGENTPERIPHERAL', INDETERMINATE) -ipnetworkequipment = getattr(IfcCommunicationsApplianceTypeEnum, 'IPNETWORKEQUIPMENT', INDETERMINATE) -linesideelectronicunit = getattr(IfcCommunicationsApplianceTypeEnum, 'LINESIDEELECTRONICUNIT', INDETERMINATE) -modem = getattr(IfcCommunicationsApplianceTypeEnum, 'MODEM', INDETERMINATE) -networkappliance = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKAPPLIANCE', INDETERMINATE) -networkbridge = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKBRIDGE', INDETERMINATE) -networkhub = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKHUB', INDETERMINATE) -opticallineterminal = getattr(IfcCommunicationsApplianceTypeEnum, 'OPTICALLINETERMINAL', INDETERMINATE) -opticalnetworkunit = getattr(IfcCommunicationsApplianceTypeEnum, 'OPTICALNETWORKUNIT', INDETERMINATE) -printer = getattr(IfcCommunicationsApplianceTypeEnum, 'PRINTER', INDETERMINATE) -radioblockcenter = getattr(IfcCommunicationsApplianceTypeEnum, 'RADIOBLOCKCENTER', INDETERMINATE) -repeater = getattr(IfcCommunicationsApplianceTypeEnum, 'REPEATER', INDETERMINATE) -router = getattr(IfcCommunicationsApplianceTypeEnum, 'ROUTER', INDETERMINATE) -scanner = getattr(IfcCommunicationsApplianceTypeEnum, 'SCANNER', INDETERMINATE) -telecommand = getattr(IfcCommunicationsApplianceTypeEnum, 'TELECOMMAND', INDETERMINATE) -telephonyexchange = getattr(IfcCommunicationsApplianceTypeEnum, 'TELEPHONYEXCHANGE', INDETERMINATE) -transitioncomponent = getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSITIONCOMPONENT', INDETERMINATE) -transponder = getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPONDER', INDETERMINATE) -transportequipment = getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPORTEQUIPMENT', INDETERMINATE) -userdefined = getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +antenna = IfcCommunicationsApplianceTypeEnum.ANTENNA +automaton = IfcCommunicationsApplianceTypeEnum.AUTOMATON +computer = IfcCommunicationsApplianceTypeEnum.COMPUTER +fax = IfcCommunicationsApplianceTypeEnum.FAX +gateway = IfcCommunicationsApplianceTypeEnum.GATEWAY +intelligentperipheral = IfcCommunicationsApplianceTypeEnum.INTELLIGENTPERIPHERAL +ipnetworkequipment = IfcCommunicationsApplianceTypeEnum.IPNETWORKEQUIPMENT +linesideelectronicunit = IfcCommunicationsApplianceTypeEnum.LINESIDEELECTRONICUNIT +modem = IfcCommunicationsApplianceTypeEnum.MODEM +networkappliance = IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE +networkbridge = IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE +networkhub = IfcCommunicationsApplianceTypeEnum.NETWORKHUB +opticallineterminal = IfcCommunicationsApplianceTypeEnum.OPTICALLINETERMINAL +opticalnetworkunit = IfcCommunicationsApplianceTypeEnum.OPTICALNETWORKUNIT +printer = IfcCommunicationsApplianceTypeEnum.PRINTER +radioblockcenter = IfcCommunicationsApplianceTypeEnum.RADIOBLOCKCENTER +repeater = IfcCommunicationsApplianceTypeEnum.REPEATER +router = IfcCommunicationsApplianceTypeEnum.ROUTER +scanner = IfcCommunicationsApplianceTypeEnum.SCANNER +telecommand = IfcCommunicationsApplianceTypeEnum.TELECOMMAND +telephonyexchange = IfcCommunicationsApplianceTypeEnum.TELEPHONYEXCHANGE +transitioncomponent = IfcCommunicationsApplianceTypeEnum.TRANSITIONCOMPONENT +transponder = IfcCommunicationsApplianceTypeEnum.TRANSPONDER +transportequipment = IfcCommunicationsApplianceTypeEnum.TRANSPORTEQUIPMENT +userdefined = IfcCommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcCommunicationsApplianceTypeEnum.NOTDEFINED IfcComplexPropertyTemplateTypeEnum = enum_namespace() -p_complex = getattr(IfcComplexPropertyTemplateTypeEnum, 'P_COMPLEX', INDETERMINATE) -q_complex = getattr(IfcComplexPropertyTemplateTypeEnum, 'Q_COMPLEX', INDETERMINATE) +p_complex = IfcComplexPropertyTemplateTypeEnum.P_COMPLEX +q_complex = IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX IfcCompressorTypeEnum = enum_namespace() -booster = getattr(IfcCompressorTypeEnum, 'BOOSTER', INDETERMINATE) -dynamic = getattr(IfcCompressorTypeEnum, 'DYNAMIC', INDETERMINATE) -hermetic = getattr(IfcCompressorTypeEnum, 'HERMETIC', INDETERMINATE) -opentype = getattr(IfcCompressorTypeEnum, 'OPENTYPE', INDETERMINATE) -reciprocating = getattr(IfcCompressorTypeEnum, 'RECIPROCATING', INDETERMINATE) -rollingpiston = getattr(IfcCompressorTypeEnum, 'ROLLINGPISTON', INDETERMINATE) -rotary = getattr(IfcCompressorTypeEnum, 'ROTARY', INDETERMINATE) -rotaryvane = getattr(IfcCompressorTypeEnum, 'ROTARYVANE', INDETERMINATE) -scroll = getattr(IfcCompressorTypeEnum, 'SCROLL', INDETERMINATE) -semihermetic = getattr(IfcCompressorTypeEnum, 'SEMIHERMETIC', INDETERMINATE) -singlescrew = getattr(IfcCompressorTypeEnum, 'SINGLESCREW', INDETERMINATE) -singlestage = getattr(IfcCompressorTypeEnum, 'SINGLESTAGE', INDETERMINATE) -trochoidal = getattr(IfcCompressorTypeEnum, 'TROCHOIDAL', INDETERMINATE) -twinscrew = getattr(IfcCompressorTypeEnum, 'TWINSCREW', INDETERMINATE) -weldedshellhermetic = getattr(IfcCompressorTypeEnum, 'WELDEDSHELLHERMETIC', INDETERMINATE) -userdefined = getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCompressorTypeEnum, 'NOTDEFINED', INDETERMINATE) +booster = IfcCompressorTypeEnum.BOOSTER +dynamic = IfcCompressorTypeEnum.DYNAMIC +hermetic = IfcCompressorTypeEnum.HERMETIC +opentype = IfcCompressorTypeEnum.OPENTYPE +reciprocating = IfcCompressorTypeEnum.RECIPROCATING +rollingpiston = IfcCompressorTypeEnum.ROLLINGPISTON +rotary = IfcCompressorTypeEnum.ROTARY +rotaryvane = IfcCompressorTypeEnum.ROTARYVANE +scroll = IfcCompressorTypeEnum.SCROLL +semihermetic = IfcCompressorTypeEnum.SEMIHERMETIC +singlescrew = IfcCompressorTypeEnum.SINGLESCREW +singlestage = IfcCompressorTypeEnum.SINGLESTAGE +trochoidal = IfcCompressorTypeEnum.TROCHOIDAL +twinscrew = IfcCompressorTypeEnum.TWINSCREW +weldedshellhermetic = IfcCompressorTypeEnum.WELDEDSHELLHERMETIC +userdefined = IfcCompressorTypeEnum.USERDEFINED +notdefined = IfcCompressorTypeEnum.NOTDEFINED IfcCondenserTypeEnum = enum_namespace() -aircooled = getattr(IfcCondenserTypeEnum, 'AIRCOOLED', INDETERMINATE) -evaporativecooled = getattr(IfcCondenserTypeEnum, 'EVAPORATIVECOOLED', INDETERMINATE) -watercooled = getattr(IfcCondenserTypeEnum, 'WATERCOOLED', INDETERMINATE) -watercooledbrazedplate = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDBRAZEDPLATE', INDETERMINATE) -watercooledshellcoil = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLCOIL', INDETERMINATE) -watercooledshelltube = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLTUBE', INDETERMINATE) -watercooledtubeintube = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDTUBEINTUBE', INDETERMINATE) -userdefined = getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCondenserTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcCondenserTypeEnum.AIRCOOLED +evaporativecooled = IfcCondenserTypeEnum.EVAPORATIVECOOLED +watercooled = IfcCondenserTypeEnum.WATERCOOLED +watercooledbrazedplate = IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE +watercooledshellcoil = IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL +watercooledshelltube = IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE +watercooledtubeintube = IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE +userdefined = IfcCondenserTypeEnum.USERDEFINED +notdefined = IfcCondenserTypeEnum.NOTDEFINED IfcConnectionTypeEnum = enum_namespace() -atend = getattr(IfcConnectionTypeEnum, 'ATEND', INDETERMINATE) -atpath = getattr(IfcConnectionTypeEnum, 'ATPATH', INDETERMINATE) -atstart = getattr(IfcConnectionTypeEnum, 'ATSTART', INDETERMINATE) -notdefined = getattr(IfcConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +atend = IfcConnectionTypeEnum.ATEND +atpath = IfcConnectionTypeEnum.ATPATH +atstart = IfcConnectionTypeEnum.ATSTART +notdefined = IfcConnectionTypeEnum.NOTDEFINED IfcConstraintEnum = enum_namespace() -advisory = getattr(IfcConstraintEnum, 'ADVISORY', INDETERMINATE) -hard = getattr(IfcConstraintEnum, 'HARD', INDETERMINATE) -soft = getattr(IfcConstraintEnum, 'SOFT', INDETERMINATE) -userdefined = getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstraintEnum, 'NOTDEFINED', INDETERMINATE) +advisory = IfcConstraintEnum.ADVISORY +hard = IfcConstraintEnum.HARD +soft = IfcConstraintEnum.SOFT +userdefined = IfcConstraintEnum.USERDEFINED +notdefined = IfcConstraintEnum.NOTDEFINED IfcConstructionEquipmentResourceTypeEnum = enum_namespace() -demolishing = getattr(IfcConstructionEquipmentResourceTypeEnum, 'DEMOLISHING', INDETERMINATE) -earthmoving = getattr(IfcConstructionEquipmentResourceTypeEnum, 'EARTHMOVING', INDETERMINATE) -erecting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'ERECTING', INDETERMINATE) -heating = getattr(IfcConstructionEquipmentResourceTypeEnum, 'HEATING', INDETERMINATE) -lighting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'LIGHTING', INDETERMINATE) -paving = getattr(IfcConstructionEquipmentResourceTypeEnum, 'PAVING', INDETERMINATE) -pumping = getattr(IfcConstructionEquipmentResourceTypeEnum, 'PUMPING', INDETERMINATE) -transporting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'TRANSPORTING', INDETERMINATE) -userdefined = getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstructionEquipmentResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +demolishing = IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING +earthmoving = IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING +erecting = IfcConstructionEquipmentResourceTypeEnum.ERECTING +heating = IfcConstructionEquipmentResourceTypeEnum.HEATING +lighting = IfcConstructionEquipmentResourceTypeEnum.LIGHTING +paving = IfcConstructionEquipmentResourceTypeEnum.PAVING +pumping = IfcConstructionEquipmentResourceTypeEnum.PUMPING +transporting = IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING +userdefined = IfcConstructionEquipmentResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED IfcConstructionMaterialResourceTypeEnum = enum_namespace() -aggregates = getattr(IfcConstructionMaterialResourceTypeEnum, 'AGGREGATES', INDETERMINATE) -concrete = getattr(IfcConstructionMaterialResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = getattr(IfcConstructionMaterialResourceTypeEnum, 'DRYWALL', INDETERMINATE) -fuel = getattr(IfcConstructionMaterialResourceTypeEnum, 'FUEL', INDETERMINATE) -gypsum = getattr(IfcConstructionMaterialResourceTypeEnum, 'GYPSUM', INDETERMINATE) -masonry = getattr(IfcConstructionMaterialResourceTypeEnum, 'MASONRY', INDETERMINATE) -metal = getattr(IfcConstructionMaterialResourceTypeEnum, 'METAL', INDETERMINATE) -plastic = getattr(IfcConstructionMaterialResourceTypeEnum, 'PLASTIC', INDETERMINATE) -wood = getattr(IfcConstructionMaterialResourceTypeEnum, 'WOOD', INDETERMINATE) -userdefined = getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstructionMaterialResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +aggregates = IfcConstructionMaterialResourceTypeEnum.AGGREGATES +concrete = IfcConstructionMaterialResourceTypeEnum.CONCRETE +drywall = IfcConstructionMaterialResourceTypeEnum.DRYWALL +fuel = IfcConstructionMaterialResourceTypeEnum.FUEL +gypsum = IfcConstructionMaterialResourceTypeEnum.GYPSUM +masonry = IfcConstructionMaterialResourceTypeEnum.MASONRY +metal = IfcConstructionMaterialResourceTypeEnum.METAL +plastic = IfcConstructionMaterialResourceTypeEnum.PLASTIC +wood = IfcConstructionMaterialResourceTypeEnum.WOOD +userdefined = IfcConstructionMaterialResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionMaterialResourceTypeEnum.NOTDEFINED IfcConstructionProductResourceTypeEnum = enum_namespace() -assembly = getattr(IfcConstructionProductResourceTypeEnum, 'ASSEMBLY', INDETERMINATE) -formwork = getattr(IfcConstructionProductResourceTypeEnum, 'FORMWORK', INDETERMINATE) -userdefined = getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstructionProductResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +assembly = IfcConstructionProductResourceTypeEnum.ASSEMBLY +formwork = IfcConstructionProductResourceTypeEnum.FORMWORK +userdefined = IfcConstructionProductResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionProductResourceTypeEnum.NOTDEFINED IfcControllerTypeEnum = enum_namespace() -floating = getattr(IfcControllerTypeEnum, 'FLOATING', INDETERMINATE) -multiposition = getattr(IfcControllerTypeEnum, 'MULTIPOSITION', INDETERMINATE) -programmable = getattr(IfcControllerTypeEnum, 'PROGRAMMABLE', INDETERMINATE) -proportional = getattr(IfcControllerTypeEnum, 'PROPORTIONAL', INDETERMINATE) -twoposition = getattr(IfcControllerTypeEnum, 'TWOPOSITION', INDETERMINATE) -userdefined = getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcControllerTypeEnum, 'NOTDEFINED', INDETERMINATE) +floating = IfcControllerTypeEnum.FLOATING +multiposition = IfcControllerTypeEnum.MULTIPOSITION +programmable = IfcControllerTypeEnum.PROGRAMMABLE +proportional = IfcControllerTypeEnum.PROPORTIONAL +twoposition = IfcControllerTypeEnum.TWOPOSITION +userdefined = IfcControllerTypeEnum.USERDEFINED +notdefined = IfcControllerTypeEnum.NOTDEFINED IfcConveyorSegmentTypeEnum = enum_namespace() -beltconveyor = getattr(IfcConveyorSegmentTypeEnum, 'BELTCONVEYOR', INDETERMINATE) -bucketconveyor = getattr(IfcConveyorSegmentTypeEnum, 'BUCKETCONVEYOR', INDETERMINATE) -chuteconveyor = getattr(IfcConveyorSegmentTypeEnum, 'CHUTECONVEYOR', INDETERMINATE) -screwconveyor = getattr(IfcConveyorSegmentTypeEnum, 'SCREWCONVEYOR', INDETERMINATE) -userdefined = getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConveyorSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltconveyor = IfcConveyorSegmentTypeEnum.BELTCONVEYOR +bucketconveyor = IfcConveyorSegmentTypeEnum.BUCKETCONVEYOR +chuteconveyor = IfcConveyorSegmentTypeEnum.CHUTECONVEYOR +screwconveyor = IfcConveyorSegmentTypeEnum.SCREWCONVEYOR +userdefined = IfcConveyorSegmentTypeEnum.USERDEFINED +notdefined = IfcConveyorSegmentTypeEnum.NOTDEFINED IfcCooledBeamTypeEnum = enum_namespace() -active = getattr(IfcCooledBeamTypeEnum, 'ACTIVE', INDETERMINATE) -passive = getattr(IfcCooledBeamTypeEnum, 'PASSIVE', INDETERMINATE) -userdefined = getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCooledBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +active = IfcCooledBeamTypeEnum.ACTIVE +passive = IfcCooledBeamTypeEnum.PASSIVE +userdefined = IfcCooledBeamTypeEnum.USERDEFINED +notdefined = IfcCooledBeamTypeEnum.NOTDEFINED IfcCoolingTowerTypeEnum = enum_namespace() -mechanicalforceddraft = getattr(IfcCoolingTowerTypeEnum, 'MECHANICALFORCEDDRAFT', INDETERMINATE) -mechanicalinduceddraft = getattr(IfcCoolingTowerTypeEnum, 'MECHANICALINDUCEDDRAFT', INDETERMINATE) -naturaldraft = getattr(IfcCoolingTowerTypeEnum, 'NATURALDRAFT', INDETERMINATE) -userdefined = getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoolingTowerTypeEnum, 'NOTDEFINED', INDETERMINATE) +mechanicalforceddraft = IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT +mechanicalinduceddraft = IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT +naturaldraft = IfcCoolingTowerTypeEnum.NATURALDRAFT +userdefined = IfcCoolingTowerTypeEnum.USERDEFINED +notdefined = IfcCoolingTowerTypeEnum.NOTDEFINED IfcCostItemTypeEnum = enum_namespace() -userdefined = getattr(IfcCostItemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCostItemTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCostItemTypeEnum.USERDEFINED +notdefined = IfcCostItemTypeEnum.NOTDEFINED IfcCostScheduleTypeEnum = enum_namespace() -budget = getattr(IfcCostScheduleTypeEnum, 'BUDGET', INDETERMINATE) -costplan = getattr(IfcCostScheduleTypeEnum, 'COSTPLAN', INDETERMINATE) -estimate = getattr(IfcCostScheduleTypeEnum, 'ESTIMATE', INDETERMINATE) -pricedbillofquantities = getattr(IfcCostScheduleTypeEnum, 'PRICEDBILLOFQUANTITIES', INDETERMINATE) -scheduleofrates = getattr(IfcCostScheduleTypeEnum, 'SCHEDULEOFRATES', INDETERMINATE) -tender = getattr(IfcCostScheduleTypeEnum, 'TENDER', INDETERMINATE) -unpricedbillofquantities = getattr(IfcCostScheduleTypeEnum, 'UNPRICEDBILLOFQUANTITIES', INDETERMINATE) -userdefined = getattr(IfcCostScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCostScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +budget = IfcCostScheduleTypeEnum.BUDGET +costplan = IfcCostScheduleTypeEnum.COSTPLAN +estimate = IfcCostScheduleTypeEnum.ESTIMATE +pricedbillofquantities = IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES +scheduleofrates = IfcCostScheduleTypeEnum.SCHEDULEOFRATES +tender = IfcCostScheduleTypeEnum.TENDER +unpricedbillofquantities = IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES +userdefined = IfcCostScheduleTypeEnum.USERDEFINED +notdefined = IfcCostScheduleTypeEnum.NOTDEFINED IfcCourseTypeEnum = enum_namespace() -armour = getattr(IfcCourseTypeEnum, 'ARMOUR', INDETERMINATE) -ballastbed = getattr(IfcCourseTypeEnum, 'BALLASTBED', INDETERMINATE) -core = getattr(IfcCourseTypeEnum, 'CORE', INDETERMINATE) -filter = getattr(IfcCourseTypeEnum, 'FILTER', INDETERMINATE) -pavement = getattr(IfcCourseTypeEnum, 'PAVEMENT', INDETERMINATE) -protection = getattr(IfcCourseTypeEnum, 'PROTECTION', INDETERMINATE) -userdefined = getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCourseTypeEnum, 'NOTDEFINED', INDETERMINATE) +armour = IfcCourseTypeEnum.ARMOUR +ballastbed = IfcCourseTypeEnum.BALLASTBED +core = IfcCourseTypeEnum.CORE +filter = IfcCourseTypeEnum.FILTER +pavement = IfcCourseTypeEnum.PAVEMENT +protection = IfcCourseTypeEnum.PROTECTION +userdefined = IfcCourseTypeEnum.USERDEFINED +notdefined = IfcCourseTypeEnum.NOTDEFINED IfcCoveringTypeEnum = enum_namespace() -ceiling = getattr(IfcCoveringTypeEnum, 'CEILING', INDETERMINATE) -cladding = getattr(IfcCoveringTypeEnum, 'CLADDING', INDETERMINATE) -coping = getattr(IfcCoveringTypeEnum, 'COPING', INDETERMINATE) -flooring = getattr(IfcCoveringTypeEnum, 'FLOORING', INDETERMINATE) -insulation = getattr(IfcCoveringTypeEnum, 'INSULATION', INDETERMINATE) -membrane = getattr(IfcCoveringTypeEnum, 'MEMBRANE', INDETERMINATE) -molding = getattr(IfcCoveringTypeEnum, 'MOLDING', INDETERMINATE) -roofing = getattr(IfcCoveringTypeEnum, 'ROOFING', INDETERMINATE) -skirtingboard = getattr(IfcCoveringTypeEnum, 'SKIRTINGBOARD', INDETERMINATE) -sleeving = getattr(IfcCoveringTypeEnum, 'SLEEVING', INDETERMINATE) -topping = getattr(IfcCoveringTypeEnum, 'TOPPING', INDETERMINATE) -wrapping = getattr(IfcCoveringTypeEnum, 'WRAPPING', INDETERMINATE) -userdefined = getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoveringTypeEnum, 'NOTDEFINED', INDETERMINATE) +ceiling = IfcCoveringTypeEnum.CEILING +cladding = IfcCoveringTypeEnum.CLADDING +coping = IfcCoveringTypeEnum.COPING +flooring = IfcCoveringTypeEnum.FLOORING +insulation = IfcCoveringTypeEnum.INSULATION +membrane = IfcCoveringTypeEnum.MEMBRANE +molding = IfcCoveringTypeEnum.MOLDING +roofing = IfcCoveringTypeEnum.ROOFING +skirtingboard = IfcCoveringTypeEnum.SKIRTINGBOARD +sleeving = IfcCoveringTypeEnum.SLEEVING +topping = IfcCoveringTypeEnum.TOPPING +wrapping = IfcCoveringTypeEnum.WRAPPING +userdefined = IfcCoveringTypeEnum.USERDEFINED +notdefined = IfcCoveringTypeEnum.NOTDEFINED IfcCrewResourceTypeEnum = enum_namespace() -office = getattr(IfcCrewResourceTypeEnum, 'OFFICE', INDETERMINATE) -site = getattr(IfcCrewResourceTypeEnum, 'SITE', INDETERMINATE) -userdefined = getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCrewResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +office = IfcCrewResourceTypeEnum.OFFICE +site = IfcCrewResourceTypeEnum.SITE +userdefined = IfcCrewResourceTypeEnum.USERDEFINED +notdefined = IfcCrewResourceTypeEnum.NOTDEFINED IfcCurtainWallTypeEnum = enum_namespace() -userdefined = getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCurtainWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCurtainWallTypeEnum.USERDEFINED +notdefined = IfcCurtainWallTypeEnum.NOTDEFINED IfcCurveInterpolationEnum = enum_namespace() -linear = getattr(IfcCurveInterpolationEnum, 'LINEAR', INDETERMINATE) -log_linear = getattr(IfcCurveInterpolationEnum, 'LOG_LINEAR', INDETERMINATE) -log_log = getattr(IfcCurveInterpolationEnum, 'LOG_LOG', INDETERMINATE) -notdefined = getattr(IfcCurveInterpolationEnum, 'NOTDEFINED', INDETERMINATE) +linear = IfcCurveInterpolationEnum.LINEAR +log_linear = IfcCurveInterpolationEnum.LOG_LINEAR +log_log = IfcCurveInterpolationEnum.LOG_LOG +notdefined = IfcCurveInterpolationEnum.NOTDEFINED IfcDamperTypeEnum = enum_namespace() -backdraftdamper = getattr(IfcDamperTypeEnum, 'BACKDRAFTDAMPER', INDETERMINATE) -balancingdamper = getattr(IfcDamperTypeEnum, 'BALANCINGDAMPER', INDETERMINATE) -blastdamper = getattr(IfcDamperTypeEnum, 'BLASTDAMPER', INDETERMINATE) -controldamper = getattr(IfcDamperTypeEnum, 'CONTROLDAMPER', INDETERMINATE) -firedamper = getattr(IfcDamperTypeEnum, 'FIREDAMPER', INDETERMINATE) -firesmokedamper = getattr(IfcDamperTypeEnum, 'FIRESMOKEDAMPER', INDETERMINATE) -fumehoodexhaust = getattr(IfcDamperTypeEnum, 'FUMEHOODEXHAUST', INDETERMINATE) -gravitydamper = getattr(IfcDamperTypeEnum, 'GRAVITYDAMPER', INDETERMINATE) -gravityreliefdamper = getattr(IfcDamperTypeEnum, 'GRAVITYRELIEFDAMPER', INDETERMINATE) -reliefdamper = getattr(IfcDamperTypeEnum, 'RELIEFDAMPER', INDETERMINATE) -smokedamper = getattr(IfcDamperTypeEnum, 'SMOKEDAMPER', INDETERMINATE) -userdefined = getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +backdraftdamper = IfcDamperTypeEnum.BACKDRAFTDAMPER +balancingdamper = IfcDamperTypeEnum.BALANCINGDAMPER +blastdamper = IfcDamperTypeEnum.BLASTDAMPER +controldamper = IfcDamperTypeEnum.CONTROLDAMPER +firedamper = IfcDamperTypeEnum.FIREDAMPER +firesmokedamper = IfcDamperTypeEnum.FIRESMOKEDAMPER +fumehoodexhaust = IfcDamperTypeEnum.FUMEHOODEXHAUST +gravitydamper = IfcDamperTypeEnum.GRAVITYDAMPER +gravityreliefdamper = IfcDamperTypeEnum.GRAVITYRELIEFDAMPER +reliefdamper = IfcDamperTypeEnum.RELIEFDAMPER +smokedamper = IfcDamperTypeEnum.SMOKEDAMPER +userdefined = IfcDamperTypeEnum.USERDEFINED +notdefined = IfcDamperTypeEnum.NOTDEFINED IfcDataOriginEnum = enum_namespace() -measured = getattr(IfcDataOriginEnum, 'MEASURED', INDETERMINATE) -predicted = getattr(IfcDataOriginEnum, 'PREDICTED', INDETERMINATE) -simulated = getattr(IfcDataOriginEnum, 'SIMULATED', INDETERMINATE) -userdefined = getattr(IfcDataOriginEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDataOriginEnum, 'NOTDEFINED', INDETERMINATE) +measured = IfcDataOriginEnum.MEASURED +predicted = IfcDataOriginEnum.PREDICTED +simulated = IfcDataOriginEnum.SIMULATED +userdefined = IfcDataOriginEnum.USERDEFINED +notdefined = IfcDataOriginEnum.NOTDEFINED IfcDerivedUnitEnum = enum_namespace() -accelerationunit = getattr(IfcDerivedUnitEnum, 'ACCELERATIONUNIT', INDETERMINATE) -angularvelocityunit = getattr(IfcDerivedUnitEnum, 'ANGULARVELOCITYUNIT', INDETERMINATE) -areadensityunit = getattr(IfcDerivedUnitEnum, 'AREADENSITYUNIT', INDETERMINATE) -compoundplaneangleunit = getattr(IfcDerivedUnitEnum, 'COMPOUNDPLANEANGLEUNIT', INDETERMINATE) -curvatureunit = getattr(IfcDerivedUnitEnum, 'CURVATUREUNIT', INDETERMINATE) -dynamicviscosityunit = getattr(IfcDerivedUnitEnum, 'DYNAMICVISCOSITYUNIT', INDETERMINATE) -heatfluxdensityunit = getattr(IfcDerivedUnitEnum, 'HEATFLUXDENSITYUNIT', INDETERMINATE) -heatingvalueunit = getattr(IfcDerivedUnitEnum, 'HEATINGVALUEUNIT', INDETERMINATE) -integercountrateunit = getattr(IfcDerivedUnitEnum, 'INTEGERCOUNTRATEUNIT', INDETERMINATE) -ionconcentrationunit = getattr(IfcDerivedUnitEnum, 'IONCONCENTRATIONUNIT', INDETERMINATE) -isothermalmoisturecapacityunit = getattr(IfcDerivedUnitEnum, 'ISOTHERMALMOISTURECAPACITYUNIT', INDETERMINATE) -kinematicviscosityunit = getattr(IfcDerivedUnitEnum, 'KINEMATICVISCOSITYUNIT', INDETERMINATE) -linearforceunit = getattr(IfcDerivedUnitEnum, 'LINEARFORCEUNIT', INDETERMINATE) -linearmomentunit = getattr(IfcDerivedUnitEnum, 'LINEARMOMENTUNIT', INDETERMINATE) -linearstiffnessunit = getattr(IfcDerivedUnitEnum, 'LINEARSTIFFNESSUNIT', INDETERMINATE) -linearvelocityunit = getattr(IfcDerivedUnitEnum, 'LINEARVELOCITYUNIT', INDETERMINATE) -luminousintensitydistributionunit = getattr(IfcDerivedUnitEnum, 'LUMINOUSINTENSITYDISTRIBUTIONUNIT', INDETERMINATE) -massdensityunit = getattr(IfcDerivedUnitEnum, 'MASSDENSITYUNIT', INDETERMINATE) -massflowrateunit = getattr(IfcDerivedUnitEnum, 'MASSFLOWRATEUNIT', INDETERMINATE) -massperlengthunit = getattr(IfcDerivedUnitEnum, 'MASSPERLENGTHUNIT', INDETERMINATE) -modulusofelasticityunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFELASTICITYUNIT', INDETERMINATE) -modulusoflinearsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFLINEARSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofrotationalsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFROTATIONALSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFSUBGRADEREACTIONUNIT', INDETERMINATE) -moisturediffusivityunit = getattr(IfcDerivedUnitEnum, 'MOISTUREDIFFUSIVITYUNIT', INDETERMINATE) -molecularweightunit = getattr(IfcDerivedUnitEnum, 'MOLECULARWEIGHTUNIT', INDETERMINATE) -momentofinertiaunit = getattr(IfcDerivedUnitEnum, 'MOMENTOFINERTIAUNIT', INDETERMINATE) -phunit = getattr(IfcDerivedUnitEnum, 'PHUNIT', INDETERMINATE) -planarforceunit = getattr(IfcDerivedUnitEnum, 'PLANARFORCEUNIT', INDETERMINATE) -rotationalfrequencyunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALFREQUENCYUNIT', INDETERMINATE) -rotationalmassunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALMASSUNIT', INDETERMINATE) -rotationalstiffnessunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALSTIFFNESSUNIT', INDETERMINATE) -sectionareaintegralunit = getattr(IfcDerivedUnitEnum, 'SECTIONAREAINTEGRALUNIT', INDETERMINATE) -sectionmodulusunit = getattr(IfcDerivedUnitEnum, 'SECTIONMODULUSUNIT', INDETERMINATE) -shearmodulusunit = getattr(IfcDerivedUnitEnum, 'SHEARMODULUSUNIT', INDETERMINATE) -soundpowerlevelunit = getattr(IfcDerivedUnitEnum, 'SOUNDPOWERLEVELUNIT', INDETERMINATE) -soundpowerunit = getattr(IfcDerivedUnitEnum, 'SOUNDPOWERUNIT', INDETERMINATE) -soundpressurelevelunit = getattr(IfcDerivedUnitEnum, 'SOUNDPRESSURELEVELUNIT', INDETERMINATE) -soundpressureunit = getattr(IfcDerivedUnitEnum, 'SOUNDPRESSUREUNIT', INDETERMINATE) -specificheatcapacityunit = getattr(IfcDerivedUnitEnum, 'SPECIFICHEATCAPACITYUNIT', INDETERMINATE) -temperaturegradientunit = getattr(IfcDerivedUnitEnum, 'TEMPERATUREGRADIENTUNIT', INDETERMINATE) -temperaturerateofchangeunit = getattr(IfcDerivedUnitEnum, 'TEMPERATURERATEOFCHANGEUNIT', INDETERMINATE) -thermaladmittanceunit = getattr(IfcDerivedUnitEnum, 'THERMALADMITTANCEUNIT', INDETERMINATE) -thermalconductanceunit = getattr(IfcDerivedUnitEnum, 'THERMALCONDUCTANCEUNIT', INDETERMINATE) -thermalexpansioncoefficientunit = getattr(IfcDerivedUnitEnum, 'THERMALEXPANSIONCOEFFICIENTUNIT', INDETERMINATE) -thermalresistanceunit = getattr(IfcDerivedUnitEnum, 'THERMALRESISTANCEUNIT', INDETERMINATE) -thermaltransmittanceunit = getattr(IfcDerivedUnitEnum, 'THERMALTRANSMITTANCEUNIT', INDETERMINATE) -torqueunit = getattr(IfcDerivedUnitEnum, 'TORQUEUNIT', INDETERMINATE) -vaporpermeabilityunit = getattr(IfcDerivedUnitEnum, 'VAPORPERMEABILITYUNIT', INDETERMINATE) -volumetricflowrateunit = getattr(IfcDerivedUnitEnum, 'VOLUMETRICFLOWRATEUNIT', INDETERMINATE) -warpingconstantunit = getattr(IfcDerivedUnitEnum, 'WARPINGCONSTANTUNIT', INDETERMINATE) -warpingmomentunit = getattr(IfcDerivedUnitEnum, 'WARPINGMOMENTUNIT', INDETERMINATE) -userdefined = getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) +accelerationunit = IfcDerivedUnitEnum.ACCELERATIONUNIT +angularvelocityunit = IfcDerivedUnitEnum.ANGULARVELOCITYUNIT +areadensityunit = IfcDerivedUnitEnum.AREADENSITYUNIT +compoundplaneangleunit = IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT +curvatureunit = IfcDerivedUnitEnum.CURVATUREUNIT +dynamicviscosityunit = IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT +heatfluxdensityunit = IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT +heatingvalueunit = IfcDerivedUnitEnum.HEATINGVALUEUNIT +integercountrateunit = IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT +ionconcentrationunit = IfcDerivedUnitEnum.IONCONCENTRATIONUNIT +isothermalmoisturecapacityunit = IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT +kinematicviscosityunit = IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT +linearforceunit = IfcDerivedUnitEnum.LINEARFORCEUNIT +linearmomentunit = IfcDerivedUnitEnum.LINEARMOMENTUNIT +linearstiffnessunit = IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT +linearvelocityunit = IfcDerivedUnitEnum.LINEARVELOCITYUNIT +luminousintensitydistributionunit = IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT +massdensityunit = IfcDerivedUnitEnum.MASSDENSITYUNIT +massflowrateunit = IfcDerivedUnitEnum.MASSFLOWRATEUNIT +massperlengthunit = IfcDerivedUnitEnum.MASSPERLENGTHUNIT +modulusofelasticityunit = IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT +modulusoflinearsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT +modulusofrotationalsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT +modulusofsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT +moisturediffusivityunit = IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT +molecularweightunit = IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT +momentofinertiaunit = IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT +phunit = IfcDerivedUnitEnum.PHUNIT +planarforceunit = IfcDerivedUnitEnum.PLANARFORCEUNIT +rotationalfrequencyunit = IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT +rotationalmassunit = IfcDerivedUnitEnum.ROTATIONALMASSUNIT +rotationalstiffnessunit = IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT +sectionareaintegralunit = IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT +sectionmodulusunit = IfcDerivedUnitEnum.SECTIONMODULUSUNIT +shearmodulusunit = IfcDerivedUnitEnum.SHEARMODULUSUNIT +soundpowerlevelunit = IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT +soundpowerunit = IfcDerivedUnitEnum.SOUNDPOWERUNIT +soundpressurelevelunit = IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT +soundpressureunit = IfcDerivedUnitEnum.SOUNDPRESSUREUNIT +specificheatcapacityunit = IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT +temperaturegradientunit = IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT +temperaturerateofchangeunit = IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT +thermaladmittanceunit = IfcDerivedUnitEnum.THERMALADMITTANCEUNIT +thermalconductanceunit = IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT +thermalexpansioncoefficientunit = IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT +thermalresistanceunit = IfcDerivedUnitEnum.THERMALRESISTANCEUNIT +thermaltransmittanceunit = IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT +torqueunit = IfcDerivedUnitEnum.TORQUEUNIT +vaporpermeabilityunit = IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT +volumetricflowrateunit = IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT +warpingconstantunit = IfcDerivedUnitEnum.WARPINGCONSTANTUNIT +warpingmomentunit = IfcDerivedUnitEnum.WARPINGMOMENTUNIT +userdefined = IfcDerivedUnitEnum.USERDEFINED IfcDirectionSenseEnum = enum_namespace() -negative = getattr(IfcDirectionSenseEnum, 'NEGATIVE', INDETERMINATE) -positive = getattr(IfcDirectionSenseEnum, 'POSITIVE', INDETERMINATE) +negative = IfcDirectionSenseEnum.NEGATIVE +positive = IfcDirectionSenseEnum.POSITIVE IfcDiscreteAccessoryTypeEnum = enum_namespace() -anchorplate = getattr(IfcDiscreteAccessoryTypeEnum, 'ANCHORPLATE', INDETERMINATE) -birdprotection = getattr(IfcDiscreteAccessoryTypeEnum, 'BIRDPROTECTION', INDETERMINATE) -bracket = getattr(IfcDiscreteAccessoryTypeEnum, 'BRACKET', INDETERMINATE) -cablearranger = getattr(IfcDiscreteAccessoryTypeEnum, 'CABLEARRANGER', INDETERMINATE) -elastic_cushion = getattr(IfcDiscreteAccessoryTypeEnum, 'ELASTIC_CUSHION', INDETERMINATE) -expansion_joint_device = getattr(IfcDiscreteAccessoryTypeEnum, 'EXPANSION_JOINT_DEVICE', INDETERMINATE) -filler = getattr(IfcDiscreteAccessoryTypeEnum, 'FILLER', INDETERMINATE) -flashing = getattr(IfcDiscreteAccessoryTypeEnum, 'FLASHING', INDETERMINATE) -insulator = getattr(IfcDiscreteAccessoryTypeEnum, 'INSULATOR', INDETERMINATE) -lock = getattr(IfcDiscreteAccessoryTypeEnum, 'LOCK', INDETERMINATE) -panel_strengthening = getattr(IfcDiscreteAccessoryTypeEnum, 'PANEL_STRENGTHENING', INDETERMINATE) -pointmachinemountingdevice = getattr(IfcDiscreteAccessoryTypeEnum, 'POINTMACHINEMOUNTINGDEVICE', INDETERMINATE) -point_machine_locking_device = getattr(IfcDiscreteAccessoryTypeEnum, 'POINT_MACHINE_LOCKING_DEVICE', INDETERMINATE) -railbrace = getattr(IfcDiscreteAccessoryTypeEnum, 'RAILBRACE', INDETERMINATE) -railpad = getattr(IfcDiscreteAccessoryTypeEnum, 'RAILPAD', INDETERMINATE) -rail_lubrication = getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_LUBRICATION', INDETERMINATE) -rail_mechanical_equipment = getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT', INDETERMINATE) -shoe = getattr(IfcDiscreteAccessoryTypeEnum, 'SHOE', INDETERMINATE) -slidingchair = getattr(IfcDiscreteAccessoryTypeEnum, 'SLIDINGCHAIR', INDETERMINATE) -soundabsorption = getattr(IfcDiscreteAccessoryTypeEnum, 'SOUNDABSORPTION', INDETERMINATE) -tensioningequipment = getattr(IfcDiscreteAccessoryTypeEnum, 'TENSIONINGEQUIPMENT', INDETERMINATE) -userdefined = getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDiscreteAccessoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorplate = IfcDiscreteAccessoryTypeEnum.ANCHORPLATE +birdprotection = IfcDiscreteAccessoryTypeEnum.BIRDPROTECTION +bracket = IfcDiscreteAccessoryTypeEnum.BRACKET +cablearranger = IfcDiscreteAccessoryTypeEnum.CABLEARRANGER +elastic_cushion = IfcDiscreteAccessoryTypeEnum.ELASTIC_CUSHION +expansion_joint_device = IfcDiscreteAccessoryTypeEnum.EXPANSION_JOINT_DEVICE +filler = IfcDiscreteAccessoryTypeEnum.FILLER +flashing = IfcDiscreteAccessoryTypeEnum.FLASHING +insulator = IfcDiscreteAccessoryTypeEnum.INSULATOR +lock = IfcDiscreteAccessoryTypeEnum.LOCK +panel_strengthening = IfcDiscreteAccessoryTypeEnum.PANEL_STRENGTHENING +pointmachinemountingdevice = IfcDiscreteAccessoryTypeEnum.POINTMACHINEMOUNTINGDEVICE +point_machine_locking_device = IfcDiscreteAccessoryTypeEnum.POINT_MACHINE_LOCKING_DEVICE +railbrace = IfcDiscreteAccessoryTypeEnum.RAILBRACE +railpad = IfcDiscreteAccessoryTypeEnum.RAILPAD +rail_lubrication = IfcDiscreteAccessoryTypeEnum.RAIL_LUBRICATION +rail_mechanical_equipment = IfcDiscreteAccessoryTypeEnum.RAIL_MECHANICAL_EQUIPMENT +shoe = IfcDiscreteAccessoryTypeEnum.SHOE +slidingchair = IfcDiscreteAccessoryTypeEnum.SLIDINGCHAIR +soundabsorption = IfcDiscreteAccessoryTypeEnum.SOUNDABSORPTION +tensioningequipment = IfcDiscreteAccessoryTypeEnum.TENSIONINGEQUIPMENT +userdefined = IfcDiscreteAccessoryTypeEnum.USERDEFINED +notdefined = IfcDiscreteAccessoryTypeEnum.NOTDEFINED IfcDistributionBoardTypeEnum = enum_namespace() -consumerunit = getattr(IfcDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -dispatchingboard = getattr(IfcDistributionBoardTypeEnum, 'DISPATCHINGBOARD', INDETERMINATE) -distributionboard = getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -distributionframe = getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONFRAME', INDETERMINATE) -motorcontrolcentre = getattr(IfcDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = getattr(IfcDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcDistributionBoardTypeEnum.CONSUMERUNIT +dispatchingboard = IfcDistributionBoardTypeEnum.DISPATCHINGBOARD +distributionboard = IfcDistributionBoardTypeEnum.DISTRIBUTIONBOARD +distributionframe = IfcDistributionBoardTypeEnum.DISTRIBUTIONFRAME +motorcontrolcentre = IfcDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcDistributionBoardTypeEnum.NOTDEFINED IfcDistributionChamberElementTypeEnum = enum_namespace() -formedduct = getattr(IfcDistributionChamberElementTypeEnum, 'FORMEDDUCT', INDETERMINATE) -inspectionchamber = getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONCHAMBER', INDETERMINATE) -inspectionpit = getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONPIT', INDETERMINATE) -manhole = getattr(IfcDistributionChamberElementTypeEnum, 'MANHOLE', INDETERMINATE) -meterchamber = getattr(IfcDistributionChamberElementTypeEnum, 'METERCHAMBER', INDETERMINATE) -sump = getattr(IfcDistributionChamberElementTypeEnum, 'SUMP', INDETERMINATE) -trench = getattr(IfcDistributionChamberElementTypeEnum, 'TRENCH', INDETERMINATE) -valvechamber = getattr(IfcDistributionChamberElementTypeEnum, 'VALVECHAMBER', INDETERMINATE) -userdefined = getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionChamberElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +formedduct = IfcDistributionChamberElementTypeEnum.FORMEDDUCT +inspectionchamber = IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER +inspectionpit = IfcDistributionChamberElementTypeEnum.INSPECTIONPIT +manhole = IfcDistributionChamberElementTypeEnum.MANHOLE +meterchamber = IfcDistributionChamberElementTypeEnum.METERCHAMBER +sump = IfcDistributionChamberElementTypeEnum.SUMP +trench = IfcDistributionChamberElementTypeEnum.TRENCH +valvechamber = IfcDistributionChamberElementTypeEnum.VALVECHAMBER +userdefined = IfcDistributionChamberElementTypeEnum.USERDEFINED +notdefined = IfcDistributionChamberElementTypeEnum.NOTDEFINED IfcDistributionPortTypeEnum = enum_namespace() -cable = getattr(IfcDistributionPortTypeEnum, 'CABLE', INDETERMINATE) -cablecarrier = getattr(IfcDistributionPortTypeEnum, 'CABLECARRIER', INDETERMINATE) -duct = getattr(IfcDistributionPortTypeEnum, 'DUCT', INDETERMINATE) -pipe = getattr(IfcDistributionPortTypeEnum, 'PIPE', INDETERMINATE) -wireless = getattr(IfcDistributionPortTypeEnum, 'WIRELESS', INDETERMINATE) -userdefined = getattr(IfcDistributionPortTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionPortTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcDistributionPortTypeEnum.CABLE +cablecarrier = IfcDistributionPortTypeEnum.CABLECARRIER +duct = IfcDistributionPortTypeEnum.DUCT +pipe = IfcDistributionPortTypeEnum.PIPE +wireless = IfcDistributionPortTypeEnum.WIRELESS +userdefined = IfcDistributionPortTypeEnum.USERDEFINED +notdefined = IfcDistributionPortTypeEnum.NOTDEFINED IfcDistributionSystemEnum = enum_namespace() -airconditioning = getattr(IfcDistributionSystemEnum, 'AIRCONDITIONING', INDETERMINATE) -audiovisual = getattr(IfcDistributionSystemEnum, 'AUDIOVISUAL', INDETERMINATE) -catenary_system = getattr(IfcDistributionSystemEnum, 'CATENARY_SYSTEM', INDETERMINATE) -chemical = getattr(IfcDistributionSystemEnum, 'CHEMICAL', INDETERMINATE) -chilledwater = getattr(IfcDistributionSystemEnum, 'CHILLEDWATER', INDETERMINATE) -communication = getattr(IfcDistributionSystemEnum, 'COMMUNICATION', INDETERMINATE) -compressedair = getattr(IfcDistributionSystemEnum, 'COMPRESSEDAIR', INDETERMINATE) -condenserwater = getattr(IfcDistributionSystemEnum, 'CONDENSERWATER', INDETERMINATE) -control = getattr(IfcDistributionSystemEnum, 'CONTROL', INDETERMINATE) -conveying = getattr(IfcDistributionSystemEnum, 'CONVEYING', INDETERMINATE) -data = getattr(IfcDistributionSystemEnum, 'DATA', INDETERMINATE) -disposal = getattr(IfcDistributionSystemEnum, 'DISPOSAL', INDETERMINATE) -domesticcoldwater = getattr(IfcDistributionSystemEnum, 'DOMESTICCOLDWATER', INDETERMINATE) -domestichotwater = getattr(IfcDistributionSystemEnum, 'DOMESTICHOTWATER', INDETERMINATE) -drainage = getattr(IfcDistributionSystemEnum, 'DRAINAGE', INDETERMINATE) -earthing = getattr(IfcDistributionSystemEnum, 'EARTHING', INDETERMINATE) -electrical = getattr(IfcDistributionSystemEnum, 'ELECTRICAL', INDETERMINATE) -electroacoustic = getattr(IfcDistributionSystemEnum, 'ELECTROACOUSTIC', INDETERMINATE) -exhaust = getattr(IfcDistributionSystemEnum, 'EXHAUST', INDETERMINATE) -fireprotection = getattr(IfcDistributionSystemEnum, 'FIREPROTECTION', INDETERMINATE) -fixedtransmissionnetwork = getattr(IfcDistributionSystemEnum, 'FIXEDTRANSMISSIONNETWORK', INDETERMINATE) -fuel = getattr(IfcDistributionSystemEnum, 'FUEL', INDETERMINATE) -gas = getattr(IfcDistributionSystemEnum, 'GAS', INDETERMINATE) -hazardous = getattr(IfcDistributionSystemEnum, 'HAZARDOUS', INDETERMINATE) -heating = getattr(IfcDistributionSystemEnum, 'HEATING', INDETERMINATE) -lighting = getattr(IfcDistributionSystemEnum, 'LIGHTING', INDETERMINATE) -lightningprotection = getattr(IfcDistributionSystemEnum, 'LIGHTNINGPROTECTION', INDETERMINATE) -mobilenetwork = getattr(IfcDistributionSystemEnum, 'MOBILENETWORK', INDETERMINATE) -monitoringsystem = getattr(IfcDistributionSystemEnum, 'MONITORINGSYSTEM', INDETERMINATE) -municipalsolidwaste = getattr(IfcDistributionSystemEnum, 'MUNICIPALSOLIDWASTE', INDETERMINATE) -oil = getattr(IfcDistributionSystemEnum, 'OIL', INDETERMINATE) -operational = getattr(IfcDistributionSystemEnum, 'OPERATIONAL', INDETERMINATE) -operationaltelephonysystem = getattr(IfcDistributionSystemEnum, 'OPERATIONALTELEPHONYSYSTEM', INDETERMINATE) -overhead_contactline_system = getattr(IfcDistributionSystemEnum, 'OVERHEAD_CONTACTLINE_SYSTEM', INDETERMINATE) -powergeneration = getattr(IfcDistributionSystemEnum, 'POWERGENERATION', INDETERMINATE) -rainwater = getattr(IfcDistributionSystemEnum, 'RAINWATER', INDETERMINATE) -refrigeration = getattr(IfcDistributionSystemEnum, 'REFRIGERATION', INDETERMINATE) -return_circuit = getattr(IfcDistributionSystemEnum, 'RETURN_CIRCUIT', INDETERMINATE) -security = getattr(IfcDistributionSystemEnum, 'SECURITY', INDETERMINATE) -sewage = getattr(IfcDistributionSystemEnum, 'SEWAGE', INDETERMINATE) -signal = getattr(IfcDistributionSystemEnum, 'SIGNAL', INDETERMINATE) -stormwater = getattr(IfcDistributionSystemEnum, 'STORMWATER', INDETERMINATE) -telephone = getattr(IfcDistributionSystemEnum, 'TELEPHONE', INDETERMINATE) -tv = getattr(IfcDistributionSystemEnum, 'TV', INDETERMINATE) -vacuum = getattr(IfcDistributionSystemEnum, 'VACUUM', INDETERMINATE) -vent = getattr(IfcDistributionSystemEnum, 'VENT', INDETERMINATE) -ventilation = getattr(IfcDistributionSystemEnum, 'VENTILATION', INDETERMINATE) -wastewater = getattr(IfcDistributionSystemEnum, 'WASTEWATER', INDETERMINATE) -watersupply = getattr(IfcDistributionSystemEnum, 'WATERSUPPLY', INDETERMINATE) -userdefined = getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionSystemEnum, 'NOTDEFINED', INDETERMINATE) +airconditioning = IfcDistributionSystemEnum.AIRCONDITIONING +audiovisual = IfcDistributionSystemEnum.AUDIOVISUAL +catenary_system = IfcDistributionSystemEnum.CATENARY_SYSTEM +chemical = IfcDistributionSystemEnum.CHEMICAL +chilledwater = IfcDistributionSystemEnum.CHILLEDWATER +communication = IfcDistributionSystemEnum.COMMUNICATION +compressedair = IfcDistributionSystemEnum.COMPRESSEDAIR +condenserwater = IfcDistributionSystemEnum.CONDENSERWATER +control = IfcDistributionSystemEnum.CONTROL +conveying = IfcDistributionSystemEnum.CONVEYING +data = IfcDistributionSystemEnum.DATA +disposal = IfcDistributionSystemEnum.DISPOSAL +domesticcoldwater = IfcDistributionSystemEnum.DOMESTICCOLDWATER +domestichotwater = IfcDistributionSystemEnum.DOMESTICHOTWATER +drainage = IfcDistributionSystemEnum.DRAINAGE +earthing = IfcDistributionSystemEnum.EARTHING +electrical = IfcDistributionSystemEnum.ELECTRICAL +electroacoustic = IfcDistributionSystemEnum.ELECTROACOUSTIC +exhaust = IfcDistributionSystemEnum.EXHAUST +fireprotection = IfcDistributionSystemEnum.FIREPROTECTION +fixedtransmissionnetwork = IfcDistributionSystemEnum.FIXEDTRANSMISSIONNETWORK +fuel = IfcDistributionSystemEnum.FUEL +gas = IfcDistributionSystemEnum.GAS +hazardous = IfcDistributionSystemEnum.HAZARDOUS +heating = IfcDistributionSystemEnum.HEATING +lighting = IfcDistributionSystemEnum.LIGHTING +lightningprotection = IfcDistributionSystemEnum.LIGHTNINGPROTECTION +mobilenetwork = IfcDistributionSystemEnum.MOBILENETWORK +monitoringsystem = IfcDistributionSystemEnum.MONITORINGSYSTEM +municipalsolidwaste = IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE +oil = IfcDistributionSystemEnum.OIL +operational = IfcDistributionSystemEnum.OPERATIONAL +operationaltelephonysystem = IfcDistributionSystemEnum.OPERATIONALTELEPHONYSYSTEM +overhead_contactline_system = IfcDistributionSystemEnum.OVERHEAD_CONTACTLINE_SYSTEM +powergeneration = IfcDistributionSystemEnum.POWERGENERATION +rainwater = IfcDistributionSystemEnum.RAINWATER +refrigeration = IfcDistributionSystemEnum.REFRIGERATION +return_circuit = IfcDistributionSystemEnum.RETURN_CIRCUIT +security = IfcDistributionSystemEnum.SECURITY +sewage = IfcDistributionSystemEnum.SEWAGE +signal = IfcDistributionSystemEnum.SIGNAL +stormwater = IfcDistributionSystemEnum.STORMWATER +telephone = IfcDistributionSystemEnum.TELEPHONE +tv = IfcDistributionSystemEnum.TV +vacuum = IfcDistributionSystemEnum.VACUUM +vent = IfcDistributionSystemEnum.VENT +ventilation = IfcDistributionSystemEnum.VENTILATION +wastewater = IfcDistributionSystemEnum.WASTEWATER +watersupply = IfcDistributionSystemEnum.WATERSUPPLY +userdefined = IfcDistributionSystemEnum.USERDEFINED +notdefined = IfcDistributionSystemEnum.NOTDEFINED IfcDocumentConfidentialityEnum = enum_namespace() -confidential = getattr(IfcDocumentConfidentialityEnum, 'CONFIDENTIAL', INDETERMINATE) -personal = getattr(IfcDocumentConfidentialityEnum, 'PERSONAL', INDETERMINATE) -public = getattr(IfcDocumentConfidentialityEnum, 'PUBLIC', INDETERMINATE) -restricted = getattr(IfcDocumentConfidentialityEnum, 'RESTRICTED', INDETERMINATE) -userdefined = getattr(IfcDocumentConfidentialityEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDocumentConfidentialityEnum, 'NOTDEFINED', INDETERMINATE) +confidential = IfcDocumentConfidentialityEnum.CONFIDENTIAL +personal = IfcDocumentConfidentialityEnum.PERSONAL +public = IfcDocumentConfidentialityEnum.PUBLIC +restricted = IfcDocumentConfidentialityEnum.RESTRICTED +userdefined = IfcDocumentConfidentialityEnum.USERDEFINED +notdefined = IfcDocumentConfidentialityEnum.NOTDEFINED IfcDocumentStatusEnum = enum_namespace() -draft = getattr(IfcDocumentStatusEnum, 'DRAFT', INDETERMINATE) -final = getattr(IfcDocumentStatusEnum, 'FINAL', INDETERMINATE) -finaldraft = getattr(IfcDocumentStatusEnum, 'FINALDRAFT', INDETERMINATE) -revision = getattr(IfcDocumentStatusEnum, 'REVISION', INDETERMINATE) -notdefined = getattr(IfcDocumentStatusEnum, 'NOTDEFINED', INDETERMINATE) +draft = IfcDocumentStatusEnum.DRAFT +final = IfcDocumentStatusEnum.FINAL +finaldraft = IfcDocumentStatusEnum.FINALDRAFT +revision = IfcDocumentStatusEnum.REVISION +notdefined = IfcDocumentStatusEnum.NOTDEFINED IfcDoorPanelOperationEnum = enum_namespace() -double_acting = getattr(IfcDoorPanelOperationEnum, 'DOUBLE_ACTING', INDETERMINATE) -fixedpanel = getattr(IfcDoorPanelOperationEnum, 'FIXEDPANEL', INDETERMINATE) -folding = getattr(IfcDoorPanelOperationEnum, 'FOLDING', INDETERMINATE) -revolving = getattr(IfcDoorPanelOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = getattr(IfcDoorPanelOperationEnum, 'ROLLINGUP', INDETERMINATE) -sliding = getattr(IfcDoorPanelOperationEnum, 'SLIDING', INDETERMINATE) -swinging = getattr(IfcDoorPanelOperationEnum, 'SWINGING', INDETERMINATE) -userdefined = getattr(IfcDoorPanelOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +double_acting = IfcDoorPanelOperationEnum.DOUBLE_ACTING +fixedpanel = IfcDoorPanelOperationEnum.FIXEDPANEL +folding = IfcDoorPanelOperationEnum.FOLDING +revolving = IfcDoorPanelOperationEnum.REVOLVING +rollingup = IfcDoorPanelOperationEnum.ROLLINGUP +sliding = IfcDoorPanelOperationEnum.SLIDING +swinging = IfcDoorPanelOperationEnum.SWINGING +userdefined = IfcDoorPanelOperationEnum.USERDEFINED +notdefined = IfcDoorPanelOperationEnum.NOTDEFINED IfcDoorPanelPositionEnum = enum_namespace() -left = getattr(IfcDoorPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = getattr(IfcDoorPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = getattr(IfcDoorPanelPositionEnum, 'RIGHT', INDETERMINATE) -notdefined = getattr(IfcDoorPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcDoorPanelPositionEnum.LEFT +middle = IfcDoorPanelPositionEnum.MIDDLE +right = IfcDoorPanelPositionEnum.RIGHT +notdefined = IfcDoorPanelPositionEnum.NOTDEFINED IfcDoorTypeEnum = enum_namespace() -boom_barrier = getattr(IfcDoorTypeEnum, 'BOOM_BARRIER', INDETERMINATE) -door = getattr(IfcDoorTypeEnum, 'DOOR', INDETERMINATE) -gate = getattr(IfcDoorTypeEnum, 'GATE', INDETERMINATE) -trapdoor = getattr(IfcDoorTypeEnum, 'TRAPDOOR', INDETERMINATE) -turnstile = getattr(IfcDoorTypeEnum, 'TURNSTILE', INDETERMINATE) -userdefined = getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorTypeEnum, 'NOTDEFINED', INDETERMINATE) +boom_barrier = IfcDoorTypeEnum.BOOM_BARRIER +door = IfcDoorTypeEnum.DOOR +gate = IfcDoorTypeEnum.GATE +trapdoor = IfcDoorTypeEnum.TRAPDOOR +turnstile = IfcDoorTypeEnum.TURNSTILE +userdefined = IfcDoorTypeEnum.USERDEFINED +notdefined = IfcDoorTypeEnum.NOTDEFINED IfcDoorTypeOperationEnum = enum_namespace() -double_door_double_swing = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -double_door_folding = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -double_door_lifting_vertical = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_LIFTING_VERTICAL', INDETERMINATE) -double_door_single_swing = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_door_sliding = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -double_swing_left = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -folding_to_left = getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -lifting_horizontal = getattr(IfcDoorTypeOperationEnum, 'LIFTING_HORIZONTAL', INDETERMINATE) -lifting_vertical_left = getattr(IfcDoorTypeOperationEnum, 'LIFTING_VERTICAL_LEFT', INDETERMINATE) -lifting_vertical_right = getattr(IfcDoorTypeOperationEnum, 'LIFTING_VERTICAL_RIGHT', INDETERMINATE) -revolving = getattr(IfcDoorTypeOperationEnum, 'REVOLVING', INDETERMINATE) -revolving_vertical = getattr(IfcDoorTypeOperationEnum, 'REVOLVING_VERTICAL', INDETERMINATE) -rollingup = getattr(IfcDoorTypeOperationEnum, 'ROLLINGUP', INDETERMINATE) -single_swing_left = getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -sliding_to_left = getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -swing_fixed_left = getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_LEFT', INDETERMINATE) -swing_fixed_right = getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_RIGHT', INDETERMINATE) -userdefined = getattr(IfcDoorTypeOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorTypeOperationEnum, 'NOTDEFINED', INDETERMINATE) +double_door_double_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +double_door_folding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_FOLDING +double_door_lifting_vertical = IfcDoorTypeOperationEnum.DOUBLE_DOOR_LIFTING_VERTICAL +double_door_single_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_door_sliding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SLIDING +double_swing_left = IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT +folding_to_left = IfcDoorTypeOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT +lifting_horizontal = IfcDoorTypeOperationEnum.LIFTING_HORIZONTAL +lifting_vertical_left = IfcDoorTypeOperationEnum.LIFTING_VERTICAL_LEFT +lifting_vertical_right = IfcDoorTypeOperationEnum.LIFTING_VERTICAL_RIGHT +revolving = IfcDoorTypeOperationEnum.REVOLVING +revolving_vertical = IfcDoorTypeOperationEnum.REVOLVING_VERTICAL +rollingup = IfcDoorTypeOperationEnum.ROLLINGUP +single_swing_left = IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT +sliding_to_left = IfcDoorTypeOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT +swing_fixed_left = IfcDoorTypeOperationEnum.SWING_FIXED_LEFT +swing_fixed_right = IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT +userdefined = IfcDoorTypeOperationEnum.USERDEFINED +notdefined = IfcDoorTypeOperationEnum.NOTDEFINED IfcDuctFittingTypeEnum = enum_namespace() -bend = getattr(IfcDuctFittingTypeEnum, 'BEND', INDETERMINATE) -connector = getattr(IfcDuctFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcDuctFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcDuctFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcDuctFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = getattr(IfcDuctFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = getattr(IfcDuctFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcDuctFittingTypeEnum.BEND +connector = IfcDuctFittingTypeEnum.CONNECTOR +entry = IfcDuctFittingTypeEnum.ENTRY +exit = IfcDuctFittingTypeEnum.EXIT +junction = IfcDuctFittingTypeEnum.JUNCTION +obstruction = IfcDuctFittingTypeEnum.OBSTRUCTION +transition = IfcDuctFittingTypeEnum.TRANSITION +userdefined = IfcDuctFittingTypeEnum.USERDEFINED +notdefined = IfcDuctFittingTypeEnum.NOTDEFINED IfcDuctSegmentTypeEnum = enum_namespace() -flexiblesegment = getattr(IfcDuctSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -rigidsegment = getattr(IfcDuctSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -userdefined = getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +flexiblesegment = IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT +rigidsegment = IfcDuctSegmentTypeEnum.RIGIDSEGMENT +userdefined = IfcDuctSegmentTypeEnum.USERDEFINED +notdefined = IfcDuctSegmentTypeEnum.NOTDEFINED IfcDuctSilencerTypeEnum = enum_namespace() -flatoval = getattr(IfcDuctSilencerTypeEnum, 'FLATOVAL', INDETERMINATE) -rectangular = getattr(IfcDuctSilencerTypeEnum, 'RECTANGULAR', INDETERMINATE) -round = getattr(IfcDuctSilencerTypeEnum, 'ROUND', INDETERMINATE) -userdefined = getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctSilencerTypeEnum, 'NOTDEFINED', INDETERMINATE) +flatoval = IfcDuctSilencerTypeEnum.FLATOVAL +rectangular = IfcDuctSilencerTypeEnum.RECTANGULAR +round = IfcDuctSilencerTypeEnum.ROUND +userdefined = IfcDuctSilencerTypeEnum.USERDEFINED +notdefined = IfcDuctSilencerTypeEnum.NOTDEFINED IfcEarthworksCutTypeEnum = enum_namespace() -base_excavation = getattr(IfcEarthworksCutTypeEnum, 'BASE_EXCAVATION', INDETERMINATE) -cut = getattr(IfcEarthworksCutTypeEnum, 'CUT', INDETERMINATE) -dredging = getattr(IfcEarthworksCutTypeEnum, 'DREDGING', INDETERMINATE) -excavation = getattr(IfcEarthworksCutTypeEnum, 'EXCAVATION', INDETERMINATE) -overexcavation = getattr(IfcEarthworksCutTypeEnum, 'OVEREXCAVATION', INDETERMINATE) -pavementmilling = getattr(IfcEarthworksCutTypeEnum, 'PAVEMENTMILLING', INDETERMINATE) -stepexcavation = getattr(IfcEarthworksCutTypeEnum, 'STEPEXCAVATION', INDETERMINATE) -topsoilremoval = getattr(IfcEarthworksCutTypeEnum, 'TOPSOILREMOVAL', INDETERMINATE) -trench = getattr(IfcEarthworksCutTypeEnum, 'TRENCH', INDETERMINATE) -userdefined = getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEarthworksCutTypeEnum, 'NOTDEFINED', INDETERMINATE) +base_excavation = IfcEarthworksCutTypeEnum.BASE_EXCAVATION +cut = IfcEarthworksCutTypeEnum.CUT +dredging = IfcEarthworksCutTypeEnum.DREDGING +excavation = IfcEarthworksCutTypeEnum.EXCAVATION +overexcavation = IfcEarthworksCutTypeEnum.OVEREXCAVATION +pavementmilling = IfcEarthworksCutTypeEnum.PAVEMENTMILLING +stepexcavation = IfcEarthworksCutTypeEnum.STEPEXCAVATION +topsoilremoval = IfcEarthworksCutTypeEnum.TOPSOILREMOVAL +trench = IfcEarthworksCutTypeEnum.TRENCH +userdefined = IfcEarthworksCutTypeEnum.USERDEFINED +notdefined = IfcEarthworksCutTypeEnum.NOTDEFINED IfcEarthworksFillTypeEnum = enum_namespace() -backfill = getattr(IfcEarthworksFillTypeEnum, 'BACKFILL', INDETERMINATE) -counterweight = getattr(IfcEarthworksFillTypeEnum, 'COUNTERWEIGHT', INDETERMINATE) -embankment = getattr(IfcEarthworksFillTypeEnum, 'EMBANKMENT', INDETERMINATE) -slopefill = getattr(IfcEarthworksFillTypeEnum, 'SLOPEFILL', INDETERMINATE) -subgrade = getattr(IfcEarthworksFillTypeEnum, 'SUBGRADE', INDETERMINATE) -subgradebed = getattr(IfcEarthworksFillTypeEnum, 'SUBGRADEBED', INDETERMINATE) -transitionsection = getattr(IfcEarthworksFillTypeEnum, 'TRANSITIONSECTION', INDETERMINATE) -userdefined = getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEarthworksFillTypeEnum, 'NOTDEFINED', INDETERMINATE) +backfill = IfcEarthworksFillTypeEnum.BACKFILL +counterweight = IfcEarthworksFillTypeEnum.COUNTERWEIGHT +embankment = IfcEarthworksFillTypeEnum.EMBANKMENT +slopefill = IfcEarthworksFillTypeEnum.SLOPEFILL +subgrade = IfcEarthworksFillTypeEnum.SUBGRADE +subgradebed = IfcEarthworksFillTypeEnum.SUBGRADEBED +transitionsection = IfcEarthworksFillTypeEnum.TRANSITIONSECTION +userdefined = IfcEarthworksFillTypeEnum.USERDEFINED +notdefined = IfcEarthworksFillTypeEnum.NOTDEFINED IfcElectricApplianceTypeEnum = enum_namespace() -dishwasher = getattr(IfcElectricApplianceTypeEnum, 'DISHWASHER', INDETERMINATE) -electriccooker = getattr(IfcElectricApplianceTypeEnum, 'ELECTRICCOOKER', INDETERMINATE) -freestandingelectricheater = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGELECTRICHEATER', INDETERMINATE) -freestandingfan = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGFAN', INDETERMINATE) -freestandingwatercooler = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERCOOLER', INDETERMINATE) -freestandingwaterheater = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERHEATER', INDETERMINATE) -freezer = getattr(IfcElectricApplianceTypeEnum, 'FREEZER', INDETERMINATE) -fridge_freezer = getattr(IfcElectricApplianceTypeEnum, 'FRIDGE_FREEZER', INDETERMINATE) -handdryer = getattr(IfcElectricApplianceTypeEnum, 'HANDDRYER', INDETERMINATE) -kitchenmachine = getattr(IfcElectricApplianceTypeEnum, 'KITCHENMACHINE', INDETERMINATE) -microwave = getattr(IfcElectricApplianceTypeEnum, 'MICROWAVE', INDETERMINATE) -photocopier = getattr(IfcElectricApplianceTypeEnum, 'PHOTOCOPIER', INDETERMINATE) -refrigerator = getattr(IfcElectricApplianceTypeEnum, 'REFRIGERATOR', INDETERMINATE) -tumbledryer = getattr(IfcElectricApplianceTypeEnum, 'TUMBLEDRYER', INDETERMINATE) -vendingmachine = getattr(IfcElectricApplianceTypeEnum, 'VENDINGMACHINE', INDETERMINATE) -washingmachine = getattr(IfcElectricApplianceTypeEnum, 'WASHINGMACHINE', INDETERMINATE) -userdefined = getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dishwasher = IfcElectricApplianceTypeEnum.DISHWASHER +electriccooker = IfcElectricApplianceTypeEnum.ELECTRICCOOKER +freestandingelectricheater = IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER +freestandingfan = IfcElectricApplianceTypeEnum.FREESTANDINGFAN +freestandingwatercooler = IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER +freestandingwaterheater = IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER +freezer = IfcElectricApplianceTypeEnum.FREEZER +fridge_freezer = IfcElectricApplianceTypeEnum.FRIDGE_FREEZER +handdryer = IfcElectricApplianceTypeEnum.HANDDRYER +kitchenmachine = IfcElectricApplianceTypeEnum.KITCHENMACHINE +microwave = IfcElectricApplianceTypeEnum.MICROWAVE +photocopier = IfcElectricApplianceTypeEnum.PHOTOCOPIER +refrigerator = IfcElectricApplianceTypeEnum.REFRIGERATOR +tumbledryer = IfcElectricApplianceTypeEnum.TUMBLEDRYER +vendingmachine = IfcElectricApplianceTypeEnum.VENDINGMACHINE +washingmachine = IfcElectricApplianceTypeEnum.WASHINGMACHINE +userdefined = IfcElectricApplianceTypeEnum.USERDEFINED +notdefined = IfcElectricApplianceTypeEnum.NOTDEFINED IfcElectricDistributionBoardTypeEnum = enum_namespace() -consumerunit = getattr(IfcElectricDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -distributionboard = getattr(IfcElectricDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -motorcontrolcentre = getattr(IfcElectricDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = getattr(IfcElectricDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT +distributionboard = IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD +motorcontrolcentre = IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcElectricDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcElectricDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcElectricDistributionBoardTypeEnum.NOTDEFINED IfcElectricFlowStorageDeviceTypeEnum = enum_namespace() -battery = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'BATTERY', INDETERMINATE) -capacitor = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITOR', INDETERMINATE) -capacitorbank = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITORBANK', INDETERMINATE) -compensator = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'COMPENSATOR', INDETERMINATE) -harmonicfilter = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'HARMONICFILTER', INDETERMINATE) -inductor = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTOR', INDETERMINATE) -inductorbank = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTORBANK', INDETERMINATE) -recharger = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'RECHARGER', INDETERMINATE) -ups = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'UPS', INDETERMINATE) -userdefined = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +battery = IfcElectricFlowStorageDeviceTypeEnum.BATTERY +capacitor = IfcElectricFlowStorageDeviceTypeEnum.CAPACITOR +capacitorbank = IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK +compensator = IfcElectricFlowStorageDeviceTypeEnum.COMPENSATOR +harmonicfilter = IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER +inductor = IfcElectricFlowStorageDeviceTypeEnum.INDUCTOR +inductorbank = IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK +recharger = IfcElectricFlowStorageDeviceTypeEnum.RECHARGER +ups = IfcElectricFlowStorageDeviceTypeEnum.UPS +userdefined = IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED IfcElectricFlowTreatmentDeviceTypeEnum = enum_namespace() -electronicfilter = getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'ELECTRONICFILTER', INDETERMINATE) -userdefined = getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronicfilter = IfcElectricFlowTreatmentDeviceTypeEnum.ELECTRONICFILTER +userdefined = IfcElectricFlowTreatmentDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowTreatmentDeviceTypeEnum.NOTDEFINED IfcElectricGeneratorTypeEnum = enum_namespace() -chp = getattr(IfcElectricGeneratorTypeEnum, 'CHP', INDETERMINATE) -enginegenerator = getattr(IfcElectricGeneratorTypeEnum, 'ENGINEGENERATOR', INDETERMINATE) -standalone = getattr(IfcElectricGeneratorTypeEnum, 'STANDALONE', INDETERMINATE) -userdefined = getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricGeneratorTypeEnum, 'NOTDEFINED', INDETERMINATE) +chp = IfcElectricGeneratorTypeEnum.CHP +enginegenerator = IfcElectricGeneratorTypeEnum.ENGINEGENERATOR +standalone = IfcElectricGeneratorTypeEnum.STANDALONE +userdefined = IfcElectricGeneratorTypeEnum.USERDEFINED +notdefined = IfcElectricGeneratorTypeEnum.NOTDEFINED IfcElectricMotorTypeEnum = enum_namespace() -dc = getattr(IfcElectricMotorTypeEnum, 'DC', INDETERMINATE) -induction = getattr(IfcElectricMotorTypeEnum, 'INDUCTION', INDETERMINATE) -polyphase = getattr(IfcElectricMotorTypeEnum, 'POLYPHASE', INDETERMINATE) -reluctancesynchronous = getattr(IfcElectricMotorTypeEnum, 'RELUCTANCESYNCHRONOUS', INDETERMINATE) -synchronous = getattr(IfcElectricMotorTypeEnum, 'SYNCHRONOUS', INDETERMINATE) -userdefined = getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricMotorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dc = IfcElectricMotorTypeEnum.DC +induction = IfcElectricMotorTypeEnum.INDUCTION +polyphase = IfcElectricMotorTypeEnum.POLYPHASE +reluctancesynchronous = IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS +synchronous = IfcElectricMotorTypeEnum.SYNCHRONOUS +userdefined = IfcElectricMotorTypeEnum.USERDEFINED +notdefined = IfcElectricMotorTypeEnum.NOTDEFINED IfcElectricTimeControlTypeEnum = enum_namespace() -relay = getattr(IfcElectricTimeControlTypeEnum, 'RELAY', INDETERMINATE) -timeclock = getattr(IfcElectricTimeControlTypeEnum, 'TIMECLOCK', INDETERMINATE) -timedelay = getattr(IfcElectricTimeControlTypeEnum, 'TIMEDELAY', INDETERMINATE) -userdefined = getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricTimeControlTypeEnum, 'NOTDEFINED', INDETERMINATE) +relay = IfcElectricTimeControlTypeEnum.RELAY +timeclock = IfcElectricTimeControlTypeEnum.TIMECLOCK +timedelay = IfcElectricTimeControlTypeEnum.TIMEDELAY +userdefined = IfcElectricTimeControlTypeEnum.USERDEFINED +notdefined = IfcElectricTimeControlTypeEnum.NOTDEFINED IfcElementAssemblyTypeEnum = enum_namespace() -abutment = getattr(IfcElementAssemblyTypeEnum, 'ABUTMENT', INDETERMINATE) -accessory_assembly = getattr(IfcElementAssemblyTypeEnum, 'ACCESSORY_ASSEMBLY', INDETERMINATE) -arch = getattr(IfcElementAssemblyTypeEnum, 'ARCH', INDETERMINATE) -beam_grid = getattr(IfcElementAssemblyTypeEnum, 'BEAM_GRID', INDETERMINATE) -braced_frame = getattr(IfcElementAssemblyTypeEnum, 'BRACED_FRAME', INDETERMINATE) -cross_bracing = getattr(IfcElementAssemblyTypeEnum, 'CROSS_BRACING', INDETERMINATE) -deck = getattr(IfcElementAssemblyTypeEnum, 'DECK', INDETERMINATE) -dilatationpanel = getattr(IfcElementAssemblyTypeEnum, 'DILATATIONPANEL', INDETERMINATE) -entranceworks = getattr(IfcElementAssemblyTypeEnum, 'ENTRANCEWORKS', INDETERMINATE) -girder = getattr(IfcElementAssemblyTypeEnum, 'GIRDER', INDETERMINATE) -grid = getattr(IfcElementAssemblyTypeEnum, 'GRID', INDETERMINATE) -mast = getattr(IfcElementAssemblyTypeEnum, 'MAST', INDETERMINATE) -pier = getattr(IfcElementAssemblyTypeEnum, 'PIER', INDETERMINATE) -pylon = getattr(IfcElementAssemblyTypeEnum, 'PYLON', INDETERMINATE) -rail_mechanical_equipment_assembly = getattr(IfcElementAssemblyTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY', INDETERMINATE) -reinforcement_unit = getattr(IfcElementAssemblyTypeEnum, 'REINFORCEMENT_UNIT', INDETERMINATE) -rigid_frame = getattr(IfcElementAssemblyTypeEnum, 'RIGID_FRAME', INDETERMINATE) -shelter = getattr(IfcElementAssemblyTypeEnum, 'SHELTER', INDETERMINATE) -signalassembly = getattr(IfcElementAssemblyTypeEnum, 'SIGNALASSEMBLY', INDETERMINATE) -slab_field = getattr(IfcElementAssemblyTypeEnum, 'SLAB_FIELD', INDETERMINATE) -sumpbuster = getattr(IfcElementAssemblyTypeEnum, 'SUMPBUSTER', INDETERMINATE) -supportingassembly = getattr(IfcElementAssemblyTypeEnum, 'SUPPORTINGASSEMBLY', INDETERMINATE) -suspensionassembly = getattr(IfcElementAssemblyTypeEnum, 'SUSPENSIONASSEMBLY', INDETERMINATE) -trackpanel = getattr(IfcElementAssemblyTypeEnum, 'TRACKPANEL', INDETERMINATE) -traction_switching_assembly = getattr(IfcElementAssemblyTypeEnum, 'TRACTION_SWITCHING_ASSEMBLY', INDETERMINATE) -traffic_calming_device = getattr(IfcElementAssemblyTypeEnum, 'TRAFFIC_CALMING_DEVICE', INDETERMINATE) -truss = getattr(IfcElementAssemblyTypeEnum, 'TRUSS', INDETERMINATE) -turnoutpanel = getattr(IfcElementAssemblyTypeEnum, 'TURNOUTPANEL', INDETERMINATE) -userdefined = getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElementAssemblyTypeEnum, 'NOTDEFINED', INDETERMINATE) +abutment = IfcElementAssemblyTypeEnum.ABUTMENT +accessory_assembly = IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY +arch = IfcElementAssemblyTypeEnum.ARCH +beam_grid = IfcElementAssemblyTypeEnum.BEAM_GRID +braced_frame = IfcElementAssemblyTypeEnum.BRACED_FRAME +cross_bracing = IfcElementAssemblyTypeEnum.CROSS_BRACING +deck = IfcElementAssemblyTypeEnum.DECK +dilatationpanel = IfcElementAssemblyTypeEnum.DILATATIONPANEL +entranceworks = IfcElementAssemblyTypeEnum.ENTRANCEWORKS +girder = IfcElementAssemblyTypeEnum.GIRDER +grid = IfcElementAssemblyTypeEnum.GRID +mast = IfcElementAssemblyTypeEnum.MAST +pier = IfcElementAssemblyTypeEnum.PIER +pylon = IfcElementAssemblyTypeEnum.PYLON +rail_mechanical_equipment_assembly = IfcElementAssemblyTypeEnum.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY +reinforcement_unit = IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT +rigid_frame = IfcElementAssemblyTypeEnum.RIGID_FRAME +shelter = IfcElementAssemblyTypeEnum.SHELTER +signalassembly = IfcElementAssemblyTypeEnum.SIGNALASSEMBLY +slab_field = IfcElementAssemblyTypeEnum.SLAB_FIELD +sumpbuster = IfcElementAssemblyTypeEnum.SUMPBUSTER +supportingassembly = IfcElementAssemblyTypeEnum.SUPPORTINGASSEMBLY +suspensionassembly = IfcElementAssemblyTypeEnum.SUSPENSIONASSEMBLY +trackpanel = IfcElementAssemblyTypeEnum.TRACKPANEL +traction_switching_assembly = IfcElementAssemblyTypeEnum.TRACTION_SWITCHING_ASSEMBLY +traffic_calming_device = IfcElementAssemblyTypeEnum.TRAFFIC_CALMING_DEVICE +truss = IfcElementAssemblyTypeEnum.TRUSS +turnoutpanel = IfcElementAssemblyTypeEnum.TURNOUTPANEL +userdefined = IfcElementAssemblyTypeEnum.USERDEFINED +notdefined = IfcElementAssemblyTypeEnum.NOTDEFINED IfcElementCompositionEnum = enum_namespace() -complex = getattr(IfcElementCompositionEnum, 'COMPLEX', INDETERMINATE) -element = getattr(IfcElementCompositionEnum, 'ELEMENT', INDETERMINATE) -partial = getattr(IfcElementCompositionEnum, 'PARTIAL', INDETERMINATE) +complex = IfcElementCompositionEnum.COMPLEX +element = IfcElementCompositionEnum.ELEMENT +partial = IfcElementCompositionEnum.PARTIAL IfcEngineTypeEnum = enum_namespace() -externalcombustion = getattr(IfcEngineTypeEnum, 'EXTERNALCOMBUSTION', INDETERMINATE) -internalcombustion = getattr(IfcEngineTypeEnum, 'INTERNALCOMBUSTION', INDETERMINATE) -userdefined = getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEngineTypeEnum, 'NOTDEFINED', INDETERMINATE) +externalcombustion = IfcEngineTypeEnum.EXTERNALCOMBUSTION +internalcombustion = IfcEngineTypeEnum.INTERNALCOMBUSTION +userdefined = IfcEngineTypeEnum.USERDEFINED +notdefined = IfcEngineTypeEnum.NOTDEFINED IfcEvaporativeCoolerTypeEnum = enum_namespace() -directevaporativeairwasher = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEAIRWASHER', INDETERMINATE) -directevaporativepackagedrotaryaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER', INDETERMINATE) -directevaporativerandommediaaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER', INDETERMINATE) -directevaporativerigidmediaaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER', INDETERMINATE) -directevaporativeslingerspackagedaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER', INDETERMINATE) -indirectdirectcombination = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTDIRECTCOMBINATION', INDETERMINATE) -indirectevaporativecoolingtowerorcoilcooler = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER', INDETERMINATE) -indirectevaporativepackageaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEPACKAGEAIRCOOLER', INDETERMINATE) -indirectevaporativewetcoil = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEWETCOIL', INDETERMINATE) -userdefined = getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEvaporativeCoolerTypeEnum, 'NOTDEFINED', INDETERMINATE) +directevaporativeairwasher = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER +directevaporativepackagedrotaryaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER +directevaporativerandommediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER +directevaporativerigidmediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER +directevaporativeslingerspackagedaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER +indirectdirectcombination = IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION +indirectevaporativecoolingtowerorcoilcooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER +indirectevaporativepackageaircooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER +indirectevaporativewetcoil = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL +userdefined = IfcEvaporativeCoolerTypeEnum.USERDEFINED +notdefined = IfcEvaporativeCoolerTypeEnum.NOTDEFINED IfcEvaporatorTypeEnum = enum_namespace() -directexpansion = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSION', INDETERMINATE) -directexpansionbrazedplate = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONBRAZEDPLATE', INDETERMINATE) -directexpansionshellandtube = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONSHELLANDTUBE', INDETERMINATE) -directexpansiontubeintube = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONTUBEINTUBE', INDETERMINATE) -floodedshellandtube = getattr(IfcEvaporatorTypeEnum, 'FLOODEDSHELLANDTUBE', INDETERMINATE) -shellandcoil = getattr(IfcEvaporatorTypeEnum, 'SHELLANDCOIL', INDETERMINATE) -userdefined = getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEvaporatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +directexpansion = IfcEvaporatorTypeEnum.DIRECTEXPANSION +directexpansionbrazedplate = IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE +directexpansionshellandtube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE +directexpansiontubeintube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE +floodedshellandtube = IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE +shellandcoil = IfcEvaporatorTypeEnum.SHELLANDCOIL +userdefined = IfcEvaporatorTypeEnum.USERDEFINED +notdefined = IfcEvaporatorTypeEnum.NOTDEFINED IfcEventTriggerTypeEnum = enum_namespace() -eventcomplex = getattr(IfcEventTriggerTypeEnum, 'EVENTCOMPLEX', INDETERMINATE) -eventmessage = getattr(IfcEventTriggerTypeEnum, 'EVENTMESSAGE', INDETERMINATE) -eventrule = getattr(IfcEventTriggerTypeEnum, 'EVENTRULE', INDETERMINATE) -eventtime = getattr(IfcEventTriggerTypeEnum, 'EVENTTIME', INDETERMINATE) -userdefined = getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEventTriggerTypeEnum, 'NOTDEFINED', INDETERMINATE) +eventcomplex = IfcEventTriggerTypeEnum.EVENTCOMPLEX +eventmessage = IfcEventTriggerTypeEnum.EVENTMESSAGE +eventrule = IfcEventTriggerTypeEnum.EVENTRULE +eventtime = IfcEventTriggerTypeEnum.EVENTTIME +userdefined = IfcEventTriggerTypeEnum.USERDEFINED +notdefined = IfcEventTriggerTypeEnum.NOTDEFINED IfcEventTypeEnum = enum_namespace() -endevent = getattr(IfcEventTypeEnum, 'ENDEVENT', INDETERMINATE) -intermediateevent = getattr(IfcEventTypeEnum, 'INTERMEDIATEEVENT', INDETERMINATE) -startevent = getattr(IfcEventTypeEnum, 'STARTEVENT', INDETERMINATE) -userdefined = getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEventTypeEnum, 'NOTDEFINED', INDETERMINATE) +endevent = IfcEventTypeEnum.ENDEVENT +intermediateevent = IfcEventTypeEnum.INTERMEDIATEEVENT +startevent = IfcEventTypeEnum.STARTEVENT +userdefined = IfcEventTypeEnum.USERDEFINED +notdefined = IfcEventTypeEnum.NOTDEFINED IfcExternalSpatialElementTypeEnum = enum_namespace() -external = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL', INDETERMINATE) -external_earth = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_fire = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_FIRE', INDETERMINATE) -external_water = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_WATER', INDETERMINATE) -userdefined = getattr(IfcExternalSpatialElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcExternalSpatialElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcExternalSpatialElementTypeEnum.EXTERNAL +external_earth = IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH +external_fire = IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE +external_water = IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER +userdefined = IfcExternalSpatialElementTypeEnum.USERDEFINED +notdefined = IfcExternalSpatialElementTypeEnum.NOTDEFINED IfcFacilityPartCommonTypeEnum = enum_namespace() -aboveground = getattr(IfcFacilityPartCommonTypeEnum, 'ABOVEGROUND', INDETERMINATE) -belowground = getattr(IfcFacilityPartCommonTypeEnum, 'BELOWGROUND', INDETERMINATE) -junction = getattr(IfcFacilityPartCommonTypeEnum, 'JUNCTION', INDETERMINATE) -levelcrossing = getattr(IfcFacilityPartCommonTypeEnum, 'LEVELCROSSING', INDETERMINATE) -segment = getattr(IfcFacilityPartCommonTypeEnum, 'SEGMENT', INDETERMINATE) -substructure = getattr(IfcFacilityPartCommonTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -superstructure = getattr(IfcFacilityPartCommonTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -terminal = getattr(IfcFacilityPartCommonTypeEnum, 'TERMINAL', INDETERMINATE) -userdefined = getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFacilityPartCommonTypeEnum, 'NOTDEFINED', INDETERMINATE) +aboveground = IfcFacilityPartCommonTypeEnum.ABOVEGROUND +belowground = IfcFacilityPartCommonTypeEnum.BELOWGROUND +junction = IfcFacilityPartCommonTypeEnum.JUNCTION +levelcrossing = IfcFacilityPartCommonTypeEnum.LEVELCROSSING +segment = IfcFacilityPartCommonTypeEnum.SEGMENT +substructure = IfcFacilityPartCommonTypeEnum.SUBSTRUCTURE +superstructure = IfcFacilityPartCommonTypeEnum.SUPERSTRUCTURE +terminal = IfcFacilityPartCommonTypeEnum.TERMINAL +userdefined = IfcFacilityPartCommonTypeEnum.USERDEFINED +notdefined = IfcFacilityPartCommonTypeEnum.NOTDEFINED IfcFacilityUsageEnum = enum_namespace() -lateral = getattr(IfcFacilityUsageEnum, 'LATERAL', INDETERMINATE) -longitudinal = getattr(IfcFacilityUsageEnum, 'LONGITUDINAL', INDETERMINATE) -region = getattr(IfcFacilityUsageEnum, 'REGION', INDETERMINATE) -vertical = getattr(IfcFacilityUsageEnum, 'VERTICAL', INDETERMINATE) -userdefined = getattr(IfcFacilityUsageEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFacilityUsageEnum, 'NOTDEFINED', INDETERMINATE) +lateral = IfcFacilityUsageEnum.LATERAL +longitudinal = IfcFacilityUsageEnum.LONGITUDINAL +region = IfcFacilityUsageEnum.REGION +vertical = IfcFacilityUsageEnum.VERTICAL +userdefined = IfcFacilityUsageEnum.USERDEFINED +notdefined = IfcFacilityUsageEnum.NOTDEFINED IfcFanTypeEnum = enum_namespace() -centrifugalairfoil = getattr(IfcFanTypeEnum, 'CENTRIFUGALAIRFOIL', INDETERMINATE) -centrifugalbackwardinclinedcurved = getattr(IfcFanTypeEnum, 'CENTRIFUGALBACKWARDINCLINEDCURVED', INDETERMINATE) -centrifugalforwardcurved = getattr(IfcFanTypeEnum, 'CENTRIFUGALFORWARDCURVED', INDETERMINATE) -centrifugalradial = getattr(IfcFanTypeEnum, 'CENTRIFUGALRADIAL', INDETERMINATE) -propelloraxial = getattr(IfcFanTypeEnum, 'PROPELLORAXIAL', INDETERMINATE) -tubeaxial = getattr(IfcFanTypeEnum, 'TUBEAXIAL', INDETERMINATE) -vaneaxial = getattr(IfcFanTypeEnum, 'VANEAXIAL', INDETERMINATE) -userdefined = getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFanTypeEnum, 'NOTDEFINED', INDETERMINATE) +centrifugalairfoil = IfcFanTypeEnum.CENTRIFUGALAIRFOIL +centrifugalbackwardinclinedcurved = IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED +centrifugalforwardcurved = IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED +centrifugalradial = IfcFanTypeEnum.CENTRIFUGALRADIAL +propelloraxial = IfcFanTypeEnum.PROPELLORAXIAL +tubeaxial = IfcFanTypeEnum.TUBEAXIAL +vaneaxial = IfcFanTypeEnum.VANEAXIAL +userdefined = IfcFanTypeEnum.USERDEFINED +notdefined = IfcFanTypeEnum.NOTDEFINED IfcFastenerTypeEnum = enum_namespace() -glue = getattr(IfcFastenerTypeEnum, 'GLUE', INDETERMINATE) -mortar = getattr(IfcFastenerTypeEnum, 'MORTAR', INDETERMINATE) -weld = getattr(IfcFastenerTypeEnum, 'WELD', INDETERMINATE) -userdefined = getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +glue = IfcFastenerTypeEnum.GLUE +mortar = IfcFastenerTypeEnum.MORTAR +weld = IfcFastenerTypeEnum.WELD +userdefined = IfcFastenerTypeEnum.USERDEFINED +notdefined = IfcFastenerTypeEnum.NOTDEFINED IfcFilterTypeEnum = enum_namespace() -airparticlefilter = getattr(IfcFilterTypeEnum, 'AIRPARTICLEFILTER', INDETERMINATE) -compressedairfilter = getattr(IfcFilterTypeEnum, 'COMPRESSEDAIRFILTER', INDETERMINATE) -odorfilter = getattr(IfcFilterTypeEnum, 'ODORFILTER', INDETERMINATE) -oilfilter = getattr(IfcFilterTypeEnum, 'OILFILTER', INDETERMINATE) -strainer = getattr(IfcFilterTypeEnum, 'STRAINER', INDETERMINATE) -waterfilter = getattr(IfcFilterTypeEnum, 'WATERFILTER', INDETERMINATE) -userdefined = getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFilterTypeEnum, 'NOTDEFINED', INDETERMINATE) +airparticlefilter = IfcFilterTypeEnum.AIRPARTICLEFILTER +compressedairfilter = IfcFilterTypeEnum.COMPRESSEDAIRFILTER +odorfilter = IfcFilterTypeEnum.ODORFILTER +oilfilter = IfcFilterTypeEnum.OILFILTER +strainer = IfcFilterTypeEnum.STRAINER +waterfilter = IfcFilterTypeEnum.WATERFILTER +userdefined = IfcFilterTypeEnum.USERDEFINED +notdefined = IfcFilterTypeEnum.NOTDEFINED IfcFireSuppressionTerminalTypeEnum = enum_namespace() -breechinginlet = getattr(IfcFireSuppressionTerminalTypeEnum, 'BREECHINGINLET', INDETERMINATE) -firehydrant = getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREHYDRANT', INDETERMINATE) -firemonitor = getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREMONITOR', INDETERMINATE) -hosereel = getattr(IfcFireSuppressionTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -sprinkler = getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLER', INDETERMINATE) -sprinklerdeflector = getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLERDEFLECTOR', INDETERMINATE) -userdefined = getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFireSuppressionTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +breechinginlet = IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET +firehydrant = IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT +firemonitor = IfcFireSuppressionTerminalTypeEnum.FIREMONITOR +hosereel = IfcFireSuppressionTerminalTypeEnum.HOSEREEL +sprinkler = IfcFireSuppressionTerminalTypeEnum.SPRINKLER +sprinklerdeflector = IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR +userdefined = IfcFireSuppressionTerminalTypeEnum.USERDEFINED +notdefined = IfcFireSuppressionTerminalTypeEnum.NOTDEFINED IfcFlowDirectionEnum = enum_namespace() -sink = getattr(IfcFlowDirectionEnum, 'SINK', INDETERMINATE) -source = getattr(IfcFlowDirectionEnum, 'SOURCE', INDETERMINATE) -sourceandsink = getattr(IfcFlowDirectionEnum, 'SOURCEANDSINK', INDETERMINATE) -notdefined = getattr(IfcFlowDirectionEnum, 'NOTDEFINED', INDETERMINATE) +sink = IfcFlowDirectionEnum.SINK +source = IfcFlowDirectionEnum.SOURCE +sourceandsink = IfcFlowDirectionEnum.SOURCEANDSINK +notdefined = IfcFlowDirectionEnum.NOTDEFINED IfcFlowInstrumentTypeEnum = enum_namespace() -ammeter = getattr(IfcFlowInstrumentTypeEnum, 'AMMETER', INDETERMINATE) -combined = getattr(IfcFlowInstrumentTypeEnum, 'COMBINED', INDETERMINATE) -frequencymeter = getattr(IfcFlowInstrumentTypeEnum, 'FREQUENCYMETER', INDETERMINATE) -phaseanglemeter = getattr(IfcFlowInstrumentTypeEnum, 'PHASEANGLEMETER', INDETERMINATE) -powerfactormeter = getattr(IfcFlowInstrumentTypeEnum, 'POWERFACTORMETER', INDETERMINATE) -pressuregauge = getattr(IfcFlowInstrumentTypeEnum, 'PRESSUREGAUGE', INDETERMINATE) -thermometer = getattr(IfcFlowInstrumentTypeEnum, 'THERMOMETER', INDETERMINATE) -voltmeter = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER', INDETERMINATE) -voltmeter_peak = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_PEAK', INDETERMINATE) -voltmeter_rms = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_RMS', INDETERMINATE) -userdefined = getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFlowInstrumentTypeEnum, 'NOTDEFINED', INDETERMINATE) +ammeter = IfcFlowInstrumentTypeEnum.AMMETER +combined = IfcFlowInstrumentTypeEnum.COMBINED +frequencymeter = IfcFlowInstrumentTypeEnum.FREQUENCYMETER +phaseanglemeter = IfcFlowInstrumentTypeEnum.PHASEANGLEMETER +powerfactormeter = IfcFlowInstrumentTypeEnum.POWERFACTORMETER +pressuregauge = IfcFlowInstrumentTypeEnum.PRESSUREGAUGE +thermometer = IfcFlowInstrumentTypeEnum.THERMOMETER +voltmeter = IfcFlowInstrumentTypeEnum.VOLTMETER +voltmeter_peak = IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK +voltmeter_rms = IfcFlowInstrumentTypeEnum.VOLTMETER_RMS +userdefined = IfcFlowInstrumentTypeEnum.USERDEFINED +notdefined = IfcFlowInstrumentTypeEnum.NOTDEFINED IfcFlowMeterTypeEnum = enum_namespace() -energymeter = getattr(IfcFlowMeterTypeEnum, 'ENERGYMETER', INDETERMINATE) -gasmeter = getattr(IfcFlowMeterTypeEnum, 'GASMETER', INDETERMINATE) -oilmeter = getattr(IfcFlowMeterTypeEnum, 'OILMETER', INDETERMINATE) -watermeter = getattr(IfcFlowMeterTypeEnum, 'WATERMETER', INDETERMINATE) -userdefined = getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFlowMeterTypeEnum, 'NOTDEFINED', INDETERMINATE) +energymeter = IfcFlowMeterTypeEnum.ENERGYMETER +gasmeter = IfcFlowMeterTypeEnum.GASMETER +oilmeter = IfcFlowMeterTypeEnum.OILMETER +watermeter = IfcFlowMeterTypeEnum.WATERMETER +userdefined = IfcFlowMeterTypeEnum.USERDEFINED +notdefined = IfcFlowMeterTypeEnum.NOTDEFINED IfcFootingTypeEnum = enum_namespace() -caisson_foundation = getattr(IfcFootingTypeEnum, 'CAISSON_FOUNDATION', INDETERMINATE) -footing_beam = getattr(IfcFootingTypeEnum, 'FOOTING_BEAM', INDETERMINATE) -pad_footing = getattr(IfcFootingTypeEnum, 'PAD_FOOTING', INDETERMINATE) -pile_cap = getattr(IfcFootingTypeEnum, 'PILE_CAP', INDETERMINATE) -strip_footing = getattr(IfcFootingTypeEnum, 'STRIP_FOOTING', INDETERMINATE) -userdefined = getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFootingTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson_foundation = IfcFootingTypeEnum.CAISSON_FOUNDATION +footing_beam = IfcFootingTypeEnum.FOOTING_BEAM +pad_footing = IfcFootingTypeEnum.PAD_FOOTING +pile_cap = IfcFootingTypeEnum.PILE_CAP +strip_footing = IfcFootingTypeEnum.STRIP_FOOTING +userdefined = IfcFootingTypeEnum.USERDEFINED +notdefined = IfcFootingTypeEnum.NOTDEFINED IfcFurnitureTypeEnum = enum_namespace() -bed = getattr(IfcFurnitureTypeEnum, 'BED', INDETERMINATE) -chair = getattr(IfcFurnitureTypeEnum, 'CHAIR', INDETERMINATE) -desk = getattr(IfcFurnitureTypeEnum, 'DESK', INDETERMINATE) -filecabinet = getattr(IfcFurnitureTypeEnum, 'FILECABINET', INDETERMINATE) -shelf = getattr(IfcFurnitureTypeEnum, 'SHELF', INDETERMINATE) -sofa = getattr(IfcFurnitureTypeEnum, 'SOFA', INDETERMINATE) -table = getattr(IfcFurnitureTypeEnum, 'TABLE', INDETERMINATE) -technicalcabinet = getattr(IfcFurnitureTypeEnum, 'TECHNICALCABINET', INDETERMINATE) -userdefined = getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFurnitureTypeEnum, 'NOTDEFINED', INDETERMINATE) +bed = IfcFurnitureTypeEnum.BED +chair = IfcFurnitureTypeEnum.CHAIR +desk = IfcFurnitureTypeEnum.DESK +filecabinet = IfcFurnitureTypeEnum.FILECABINET +shelf = IfcFurnitureTypeEnum.SHELF +sofa = IfcFurnitureTypeEnum.SOFA +table = IfcFurnitureTypeEnum.TABLE +technicalcabinet = IfcFurnitureTypeEnum.TECHNICALCABINET +userdefined = IfcFurnitureTypeEnum.USERDEFINED +notdefined = IfcFurnitureTypeEnum.NOTDEFINED IfcGeographicElementTypeEnum = enum_namespace() -soil_boring_point = getattr(IfcGeographicElementTypeEnum, 'SOIL_BORING_POINT', INDETERMINATE) -terrain = getattr(IfcGeographicElementTypeEnum, 'TERRAIN', INDETERMINATE) -vegetation = getattr(IfcGeographicElementTypeEnum, 'VEGETATION', INDETERMINATE) -userdefined = getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGeographicElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +soil_boring_point = IfcGeographicElementTypeEnum.SOIL_BORING_POINT +terrain = IfcGeographicElementTypeEnum.TERRAIN +vegetation = IfcGeographicElementTypeEnum.VEGETATION +userdefined = IfcGeographicElementTypeEnum.USERDEFINED +notdefined = IfcGeographicElementTypeEnum.NOTDEFINED IfcGeometricProjectionEnum = enum_namespace() -elevation_view = getattr(IfcGeometricProjectionEnum, 'ELEVATION_VIEW', INDETERMINATE) -graph_view = getattr(IfcGeometricProjectionEnum, 'GRAPH_VIEW', INDETERMINATE) -model_view = getattr(IfcGeometricProjectionEnum, 'MODEL_VIEW', INDETERMINATE) -plan_view = getattr(IfcGeometricProjectionEnum, 'PLAN_VIEW', INDETERMINATE) -reflected_plan_view = getattr(IfcGeometricProjectionEnum, 'REFLECTED_PLAN_VIEW', INDETERMINATE) -section_view = getattr(IfcGeometricProjectionEnum, 'SECTION_VIEW', INDETERMINATE) -sketch_view = getattr(IfcGeometricProjectionEnum, 'SKETCH_VIEW', INDETERMINATE) -userdefined = getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGeometricProjectionEnum, 'NOTDEFINED', INDETERMINATE) +elevation_view = IfcGeometricProjectionEnum.ELEVATION_VIEW +graph_view = IfcGeometricProjectionEnum.GRAPH_VIEW +model_view = IfcGeometricProjectionEnum.MODEL_VIEW +plan_view = IfcGeometricProjectionEnum.PLAN_VIEW +reflected_plan_view = IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW +section_view = IfcGeometricProjectionEnum.SECTION_VIEW +sketch_view = IfcGeometricProjectionEnum.SKETCH_VIEW +userdefined = IfcGeometricProjectionEnum.USERDEFINED +notdefined = IfcGeometricProjectionEnum.NOTDEFINED IfcGeotechnicalStratumTypeEnum = enum_namespace() -solid = getattr(IfcGeotechnicalStratumTypeEnum, 'SOLID', INDETERMINATE) -void = getattr(IfcGeotechnicalStratumTypeEnum, 'VOID', INDETERMINATE) -water = getattr(IfcGeotechnicalStratumTypeEnum, 'WATER', INDETERMINATE) -userdefined = getattr(IfcGeotechnicalStratumTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGeotechnicalStratumTypeEnum, 'NOTDEFINED', INDETERMINATE) +solid = IfcGeotechnicalStratumTypeEnum.SOLID +void = IfcGeotechnicalStratumTypeEnum.VOID +water = IfcGeotechnicalStratumTypeEnum.WATER +userdefined = IfcGeotechnicalStratumTypeEnum.USERDEFINED +notdefined = IfcGeotechnicalStratumTypeEnum.NOTDEFINED IfcGlobalOrLocalEnum = enum_namespace() -global_coords = getattr(IfcGlobalOrLocalEnum, 'GLOBAL_COORDS', INDETERMINATE) -local_coords = getattr(IfcGlobalOrLocalEnum, 'LOCAL_COORDS', INDETERMINATE) +global_coords = IfcGlobalOrLocalEnum.GLOBAL_COORDS +local_coords = IfcGlobalOrLocalEnum.LOCAL_COORDS IfcGridTypeEnum = enum_namespace() -irregular = getattr(IfcGridTypeEnum, 'IRREGULAR', INDETERMINATE) -radial = getattr(IfcGridTypeEnum, 'RADIAL', INDETERMINATE) -rectangular = getattr(IfcGridTypeEnum, 'RECTANGULAR', INDETERMINATE) -triangular = getattr(IfcGridTypeEnum, 'TRIANGULAR', INDETERMINATE) -userdefined = getattr(IfcGridTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGridTypeEnum, 'NOTDEFINED', INDETERMINATE) +irregular = IfcGridTypeEnum.IRREGULAR +radial = IfcGridTypeEnum.RADIAL +rectangular = IfcGridTypeEnum.RECTANGULAR +triangular = IfcGridTypeEnum.TRIANGULAR +userdefined = IfcGridTypeEnum.USERDEFINED +notdefined = IfcGridTypeEnum.NOTDEFINED IfcHeatExchangerTypeEnum = enum_namespace() -plate = getattr(IfcHeatExchangerTypeEnum, 'PLATE', INDETERMINATE) -shellandtube = getattr(IfcHeatExchangerTypeEnum, 'SHELLANDTUBE', INDETERMINATE) -turnoutheating = getattr(IfcHeatExchangerTypeEnum, 'TURNOUTHEATING', INDETERMINATE) -userdefined = getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcHeatExchangerTypeEnum, 'NOTDEFINED', INDETERMINATE) +plate = IfcHeatExchangerTypeEnum.PLATE +shellandtube = IfcHeatExchangerTypeEnum.SHELLANDTUBE +turnoutheating = IfcHeatExchangerTypeEnum.TURNOUTHEATING +userdefined = IfcHeatExchangerTypeEnum.USERDEFINED +notdefined = IfcHeatExchangerTypeEnum.NOTDEFINED IfcHumidifierTypeEnum = enum_namespace() -adiabaticairwasher = getattr(IfcHumidifierTypeEnum, 'ADIABATICAIRWASHER', INDETERMINATE) -adiabaticatomizing = getattr(IfcHumidifierTypeEnum, 'ADIABATICATOMIZING', INDETERMINATE) -adiabaticcompressedairnozzle = getattr(IfcHumidifierTypeEnum, 'ADIABATICCOMPRESSEDAIRNOZZLE', INDETERMINATE) -adiabaticpan = getattr(IfcHumidifierTypeEnum, 'ADIABATICPAN', INDETERMINATE) -adiabaticrigidmedia = getattr(IfcHumidifierTypeEnum, 'ADIABATICRIGIDMEDIA', INDETERMINATE) -adiabaticultrasonic = getattr(IfcHumidifierTypeEnum, 'ADIABATICULTRASONIC', INDETERMINATE) -adiabaticwettedelement = getattr(IfcHumidifierTypeEnum, 'ADIABATICWETTEDELEMENT', INDETERMINATE) -assistedbutane = getattr(IfcHumidifierTypeEnum, 'ASSISTEDBUTANE', INDETERMINATE) -assistedelectric = getattr(IfcHumidifierTypeEnum, 'ASSISTEDELECTRIC', INDETERMINATE) -assistednaturalgas = getattr(IfcHumidifierTypeEnum, 'ASSISTEDNATURALGAS', INDETERMINATE) -assistedpropane = getattr(IfcHumidifierTypeEnum, 'ASSISTEDPROPANE', INDETERMINATE) -assistedsteam = getattr(IfcHumidifierTypeEnum, 'ASSISTEDSTEAM', INDETERMINATE) -steaminjection = getattr(IfcHumidifierTypeEnum, 'STEAMINJECTION', INDETERMINATE) -userdefined = getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcHumidifierTypeEnum, 'NOTDEFINED', INDETERMINATE) +adiabaticairwasher = IfcHumidifierTypeEnum.ADIABATICAIRWASHER +adiabaticatomizing = IfcHumidifierTypeEnum.ADIABATICATOMIZING +adiabaticcompressedairnozzle = IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE +adiabaticpan = IfcHumidifierTypeEnum.ADIABATICPAN +adiabaticrigidmedia = IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA +adiabaticultrasonic = IfcHumidifierTypeEnum.ADIABATICULTRASONIC +adiabaticwettedelement = IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT +assistedbutane = IfcHumidifierTypeEnum.ASSISTEDBUTANE +assistedelectric = IfcHumidifierTypeEnum.ASSISTEDELECTRIC +assistednaturalgas = IfcHumidifierTypeEnum.ASSISTEDNATURALGAS +assistedpropane = IfcHumidifierTypeEnum.ASSISTEDPROPANE +assistedsteam = IfcHumidifierTypeEnum.ASSISTEDSTEAM +steaminjection = IfcHumidifierTypeEnum.STEAMINJECTION +userdefined = IfcHumidifierTypeEnum.USERDEFINED +notdefined = IfcHumidifierTypeEnum.NOTDEFINED IfcImpactProtectionDeviceTypeEnum = enum_namespace() -bumper = getattr(IfcImpactProtectionDeviceTypeEnum, 'BUMPER', INDETERMINATE) -crashcushion = getattr(IfcImpactProtectionDeviceTypeEnum, 'CRASHCUSHION', INDETERMINATE) -dampingsystem = getattr(IfcImpactProtectionDeviceTypeEnum, 'DAMPINGSYSTEM', INDETERMINATE) -fender = getattr(IfcImpactProtectionDeviceTypeEnum, 'FENDER', INDETERMINATE) -userdefined = getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcImpactProtectionDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +bumper = IfcImpactProtectionDeviceTypeEnum.BUMPER +crashcushion = IfcImpactProtectionDeviceTypeEnum.CRASHCUSHION +dampingsystem = IfcImpactProtectionDeviceTypeEnum.DAMPINGSYSTEM +fender = IfcImpactProtectionDeviceTypeEnum.FENDER +userdefined = IfcImpactProtectionDeviceTypeEnum.USERDEFINED +notdefined = IfcImpactProtectionDeviceTypeEnum.NOTDEFINED IfcInterceptorTypeEnum = enum_namespace() -cyclonic = getattr(IfcInterceptorTypeEnum, 'CYCLONIC', INDETERMINATE) -grease = getattr(IfcInterceptorTypeEnum, 'GREASE', INDETERMINATE) -oil = getattr(IfcInterceptorTypeEnum, 'OIL', INDETERMINATE) -petrol = getattr(IfcInterceptorTypeEnum, 'PETROL', INDETERMINATE) -userdefined = getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcInterceptorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cyclonic = IfcInterceptorTypeEnum.CYCLONIC +grease = IfcInterceptorTypeEnum.GREASE +oil = IfcInterceptorTypeEnum.OIL +petrol = IfcInterceptorTypeEnum.PETROL +userdefined = IfcInterceptorTypeEnum.USERDEFINED +notdefined = IfcInterceptorTypeEnum.NOTDEFINED IfcInternalOrExternalEnum = enum_namespace() -external = getattr(IfcInternalOrExternalEnum, 'EXTERNAL', INDETERMINATE) -external_earth = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_fire = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_FIRE', INDETERMINATE) -external_water = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_WATER', INDETERMINATE) -internal = getattr(IfcInternalOrExternalEnum, 'INTERNAL', INDETERMINATE) -notdefined = getattr(IfcInternalOrExternalEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcInternalOrExternalEnum.EXTERNAL +external_earth = IfcInternalOrExternalEnum.EXTERNAL_EARTH +external_fire = IfcInternalOrExternalEnum.EXTERNAL_FIRE +external_water = IfcInternalOrExternalEnum.EXTERNAL_WATER +internal = IfcInternalOrExternalEnum.INTERNAL +notdefined = IfcInternalOrExternalEnum.NOTDEFINED IfcInventoryTypeEnum = enum_namespace() -assetinventory = getattr(IfcInventoryTypeEnum, 'ASSETINVENTORY', INDETERMINATE) -furnitureinventory = getattr(IfcInventoryTypeEnum, 'FURNITUREINVENTORY', INDETERMINATE) -spaceinventory = getattr(IfcInventoryTypeEnum, 'SPACEINVENTORY', INDETERMINATE) -userdefined = getattr(IfcInventoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcInventoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +assetinventory = IfcInventoryTypeEnum.ASSETINVENTORY +furnitureinventory = IfcInventoryTypeEnum.FURNITUREINVENTORY +spaceinventory = IfcInventoryTypeEnum.SPACEINVENTORY +userdefined = IfcInventoryTypeEnum.USERDEFINED +notdefined = IfcInventoryTypeEnum.NOTDEFINED IfcJunctionBoxTypeEnum = enum_namespace() -data = getattr(IfcJunctionBoxTypeEnum, 'DATA', INDETERMINATE) -power = getattr(IfcJunctionBoxTypeEnum, 'POWER', INDETERMINATE) -userdefined = getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcJunctionBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +data = IfcJunctionBoxTypeEnum.DATA +power = IfcJunctionBoxTypeEnum.POWER +userdefined = IfcJunctionBoxTypeEnum.USERDEFINED +notdefined = IfcJunctionBoxTypeEnum.NOTDEFINED IfcKerbTypeEnum = enum_namespace() -userdefined = getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcKerbTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcKerbTypeEnum.USERDEFINED +notdefined = IfcKerbTypeEnum.NOTDEFINED IfcKnotType = enum_namespace() -piecewise_bezier_knots = getattr(IfcKnotType, 'PIECEWISE_BEZIER_KNOTS', INDETERMINATE) -quasi_uniform_knots = getattr(IfcKnotType, 'QUASI_UNIFORM_KNOTS', INDETERMINATE) -uniform_knots = getattr(IfcKnotType, 'UNIFORM_KNOTS', INDETERMINATE) -unspecified = getattr(IfcKnotType, 'UNSPECIFIED', INDETERMINATE) +piecewise_bezier_knots = IfcKnotType.PIECEWISE_BEZIER_KNOTS +quasi_uniform_knots = IfcKnotType.QUASI_UNIFORM_KNOTS +uniform_knots = IfcKnotType.UNIFORM_KNOTS +unspecified = IfcKnotType.UNSPECIFIED IfcLaborResourceTypeEnum = enum_namespace() -administration = getattr(IfcLaborResourceTypeEnum, 'ADMINISTRATION', INDETERMINATE) -carpentry = getattr(IfcLaborResourceTypeEnum, 'CARPENTRY', INDETERMINATE) -cleaning = getattr(IfcLaborResourceTypeEnum, 'CLEANING', INDETERMINATE) -concrete = getattr(IfcLaborResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = getattr(IfcLaborResourceTypeEnum, 'DRYWALL', INDETERMINATE) -electric = getattr(IfcLaborResourceTypeEnum, 'ELECTRIC', INDETERMINATE) -finishing = getattr(IfcLaborResourceTypeEnum, 'FINISHING', INDETERMINATE) -flooring = getattr(IfcLaborResourceTypeEnum, 'FLOORING', INDETERMINATE) -general = getattr(IfcLaborResourceTypeEnum, 'GENERAL', INDETERMINATE) -hvac = getattr(IfcLaborResourceTypeEnum, 'HVAC', INDETERMINATE) -landscaping = getattr(IfcLaborResourceTypeEnum, 'LANDSCAPING', INDETERMINATE) -masonry = getattr(IfcLaborResourceTypeEnum, 'MASONRY', INDETERMINATE) -painting = getattr(IfcLaborResourceTypeEnum, 'PAINTING', INDETERMINATE) -paving = getattr(IfcLaborResourceTypeEnum, 'PAVING', INDETERMINATE) -plumbing = getattr(IfcLaborResourceTypeEnum, 'PLUMBING', INDETERMINATE) -roofing = getattr(IfcLaborResourceTypeEnum, 'ROOFING', INDETERMINATE) -sitegrading = getattr(IfcLaborResourceTypeEnum, 'SITEGRADING', INDETERMINATE) -steelwork = getattr(IfcLaborResourceTypeEnum, 'STEELWORK', INDETERMINATE) -surveying = getattr(IfcLaborResourceTypeEnum, 'SURVEYING', INDETERMINATE) -userdefined = getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLaborResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +administration = IfcLaborResourceTypeEnum.ADMINISTRATION +carpentry = IfcLaborResourceTypeEnum.CARPENTRY +cleaning = IfcLaborResourceTypeEnum.CLEANING +concrete = IfcLaborResourceTypeEnum.CONCRETE +drywall = IfcLaborResourceTypeEnum.DRYWALL +electric = IfcLaborResourceTypeEnum.ELECTRIC +finishing = IfcLaborResourceTypeEnum.FINISHING +flooring = IfcLaborResourceTypeEnum.FLOORING +general = IfcLaborResourceTypeEnum.GENERAL +hvac = IfcLaborResourceTypeEnum.HVAC +landscaping = IfcLaborResourceTypeEnum.LANDSCAPING +masonry = IfcLaborResourceTypeEnum.MASONRY +painting = IfcLaborResourceTypeEnum.PAINTING +paving = IfcLaborResourceTypeEnum.PAVING +plumbing = IfcLaborResourceTypeEnum.PLUMBING +roofing = IfcLaborResourceTypeEnum.ROOFING +sitegrading = IfcLaborResourceTypeEnum.SITEGRADING +steelwork = IfcLaborResourceTypeEnum.STEELWORK +surveying = IfcLaborResourceTypeEnum.SURVEYING +userdefined = IfcLaborResourceTypeEnum.USERDEFINED +notdefined = IfcLaborResourceTypeEnum.NOTDEFINED IfcLampTypeEnum = enum_namespace() -compactfluorescent = getattr(IfcLampTypeEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = getattr(IfcLampTypeEnum, 'FLUORESCENT', INDETERMINATE) -halogen = getattr(IfcLampTypeEnum, 'HALOGEN', INDETERMINATE) -highpressuremercury = getattr(IfcLampTypeEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = getattr(IfcLampTypeEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -led = getattr(IfcLampTypeEnum, 'LED', INDETERMINATE) -metalhalide = getattr(IfcLampTypeEnum, 'METALHALIDE', INDETERMINATE) -oled = getattr(IfcLampTypeEnum, 'OLED', INDETERMINATE) -tungstenfilament = getattr(IfcLampTypeEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -userdefined = getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLampTypeEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLampTypeEnum.COMPACTFLUORESCENT +fluorescent = IfcLampTypeEnum.FLUORESCENT +halogen = IfcLampTypeEnum.HALOGEN +highpressuremercury = IfcLampTypeEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLampTypeEnum.HIGHPRESSURESODIUM +led = IfcLampTypeEnum.LED +metalhalide = IfcLampTypeEnum.METALHALIDE +oled = IfcLampTypeEnum.OLED +tungstenfilament = IfcLampTypeEnum.TUNGSTENFILAMENT +userdefined = IfcLampTypeEnum.USERDEFINED +notdefined = IfcLampTypeEnum.NOTDEFINED IfcLayerSetDirectionEnum = enum_namespace() -axis1 = getattr(IfcLayerSetDirectionEnum, 'AXIS1', INDETERMINATE) -axis2 = getattr(IfcLayerSetDirectionEnum, 'AXIS2', INDETERMINATE) -axis3 = getattr(IfcLayerSetDirectionEnum, 'AXIS3', INDETERMINATE) +axis1 = IfcLayerSetDirectionEnum.AXIS1 +axis2 = IfcLayerSetDirectionEnum.AXIS2 +axis3 = IfcLayerSetDirectionEnum.AXIS3 IfcLightDistributionCurveEnum = enum_namespace() -type_a = getattr(IfcLightDistributionCurveEnum, 'TYPE_A', INDETERMINATE) -type_b = getattr(IfcLightDistributionCurveEnum, 'TYPE_B', INDETERMINATE) -type_c = getattr(IfcLightDistributionCurveEnum, 'TYPE_C', INDETERMINATE) -notdefined = getattr(IfcLightDistributionCurveEnum, 'NOTDEFINED', INDETERMINATE) +type_a = IfcLightDistributionCurveEnum.TYPE_A +type_b = IfcLightDistributionCurveEnum.TYPE_B +type_c = IfcLightDistributionCurveEnum.TYPE_C +notdefined = IfcLightDistributionCurveEnum.NOTDEFINED IfcLightEmissionSourceEnum = enum_namespace() -compactfluorescent = getattr(IfcLightEmissionSourceEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = getattr(IfcLightEmissionSourceEnum, 'FLUORESCENT', INDETERMINATE) -highpressuremercury = getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -lightemittingdiode = getattr(IfcLightEmissionSourceEnum, 'LIGHTEMITTINGDIODE', INDETERMINATE) -lowpressuresodium = getattr(IfcLightEmissionSourceEnum, 'LOWPRESSURESODIUM', INDETERMINATE) -lowvoltagehalogen = getattr(IfcLightEmissionSourceEnum, 'LOWVOLTAGEHALOGEN', INDETERMINATE) -mainvoltagehalogen = getattr(IfcLightEmissionSourceEnum, 'MAINVOLTAGEHALOGEN', INDETERMINATE) -metalhalide = getattr(IfcLightEmissionSourceEnum, 'METALHALIDE', INDETERMINATE) -tungstenfilament = getattr(IfcLightEmissionSourceEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -notdefined = getattr(IfcLightEmissionSourceEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLightEmissionSourceEnum.COMPACTFLUORESCENT +fluorescent = IfcLightEmissionSourceEnum.FLUORESCENT +highpressuremercury = IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM +lightemittingdiode = IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE +lowpressuresodium = IfcLightEmissionSourceEnum.LOWPRESSURESODIUM +lowvoltagehalogen = IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN +mainvoltagehalogen = IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN +metalhalide = IfcLightEmissionSourceEnum.METALHALIDE +tungstenfilament = IfcLightEmissionSourceEnum.TUNGSTENFILAMENT +notdefined = IfcLightEmissionSourceEnum.NOTDEFINED IfcLightFixtureTypeEnum = enum_namespace() -directionsource = getattr(IfcLightFixtureTypeEnum, 'DIRECTIONSOURCE', INDETERMINATE) -pointsource = getattr(IfcLightFixtureTypeEnum, 'POINTSOURCE', INDETERMINATE) -securitylighting = getattr(IfcLightFixtureTypeEnum, 'SECURITYLIGHTING', INDETERMINATE) -userdefined = getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLightFixtureTypeEnum, 'NOTDEFINED', INDETERMINATE) +directionsource = IfcLightFixtureTypeEnum.DIRECTIONSOURCE +pointsource = IfcLightFixtureTypeEnum.POINTSOURCE +securitylighting = IfcLightFixtureTypeEnum.SECURITYLIGHTING +userdefined = IfcLightFixtureTypeEnum.USERDEFINED +notdefined = IfcLightFixtureTypeEnum.NOTDEFINED IfcLiquidTerminalTypeEnum = enum_namespace() -hosereel = getattr(IfcLiquidTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -loadingarm = getattr(IfcLiquidTerminalTypeEnum, 'LOADINGARM', INDETERMINATE) -userdefined = getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLiquidTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +hosereel = IfcLiquidTerminalTypeEnum.HOSEREEL +loadingarm = IfcLiquidTerminalTypeEnum.LOADINGARM +userdefined = IfcLiquidTerminalTypeEnum.USERDEFINED +notdefined = IfcLiquidTerminalTypeEnum.NOTDEFINED IfcLoadGroupTypeEnum = enum_namespace() -load_case = getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE) -load_combination = getattr(IfcLoadGroupTypeEnum, 'LOAD_COMBINATION', INDETERMINATE) -load_group = getattr(IfcLoadGroupTypeEnum, 'LOAD_GROUP', INDETERMINATE) -userdefined = getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLoadGroupTypeEnum, 'NOTDEFINED', INDETERMINATE) +load_case = IfcLoadGroupTypeEnum.LOAD_CASE +load_combination = IfcLoadGroupTypeEnum.LOAD_COMBINATION +load_group = IfcLoadGroupTypeEnum.LOAD_GROUP +userdefined = IfcLoadGroupTypeEnum.USERDEFINED +notdefined = IfcLoadGroupTypeEnum.NOTDEFINED IfcLogicalOperatorEnum = enum_namespace() -logicaland = getattr(IfcLogicalOperatorEnum, 'LOGICALAND', INDETERMINATE) -logicalnotand = getattr(IfcLogicalOperatorEnum, 'LOGICALNOTAND', INDETERMINATE) -logicalnotor = getattr(IfcLogicalOperatorEnum, 'LOGICALNOTOR', INDETERMINATE) -logicalor = getattr(IfcLogicalOperatorEnum, 'LOGICALOR', INDETERMINATE) -logicalxor = getattr(IfcLogicalOperatorEnum, 'LOGICALXOR', INDETERMINATE) +logicaland = IfcLogicalOperatorEnum.LOGICALAND +logicalnotand = IfcLogicalOperatorEnum.LOGICALNOTAND +logicalnotor = IfcLogicalOperatorEnum.LOGICALNOTOR +logicalor = IfcLogicalOperatorEnum.LOGICALOR +logicalxor = IfcLogicalOperatorEnum.LOGICALXOR IfcMarineFacilityTypeEnum = enum_namespace() -barrierbeach = getattr(IfcMarineFacilityTypeEnum, 'BARRIERBEACH', INDETERMINATE) -breakwater = getattr(IfcMarineFacilityTypeEnum, 'BREAKWATER', INDETERMINATE) -canal = getattr(IfcMarineFacilityTypeEnum, 'CANAL', INDETERMINATE) -drydock = getattr(IfcMarineFacilityTypeEnum, 'DRYDOCK', INDETERMINATE) -floatingdock = getattr(IfcMarineFacilityTypeEnum, 'FLOATINGDOCK', INDETERMINATE) -hydrolift = getattr(IfcMarineFacilityTypeEnum, 'HYDROLIFT', INDETERMINATE) -jetty = getattr(IfcMarineFacilityTypeEnum, 'JETTY', INDETERMINATE) -launchrecovery = getattr(IfcMarineFacilityTypeEnum, 'LAUNCHRECOVERY', INDETERMINATE) -marinedefence = getattr(IfcMarineFacilityTypeEnum, 'MARINEDEFENCE', INDETERMINATE) -navigationalchannel = getattr(IfcMarineFacilityTypeEnum, 'NAVIGATIONALCHANNEL', INDETERMINATE) -port = getattr(IfcMarineFacilityTypeEnum, 'PORT', INDETERMINATE) -quay = getattr(IfcMarineFacilityTypeEnum, 'QUAY', INDETERMINATE) -revetment = getattr(IfcMarineFacilityTypeEnum, 'REVETMENT', INDETERMINATE) -shiplift = getattr(IfcMarineFacilityTypeEnum, 'SHIPLIFT', INDETERMINATE) -shiplock = getattr(IfcMarineFacilityTypeEnum, 'SHIPLOCK', INDETERMINATE) -shipyard = getattr(IfcMarineFacilityTypeEnum, 'SHIPYARD', INDETERMINATE) -slipway = getattr(IfcMarineFacilityTypeEnum, 'SLIPWAY', INDETERMINATE) -waterway = getattr(IfcMarineFacilityTypeEnum, 'WATERWAY', INDETERMINATE) -waterwayshiplift = getattr(IfcMarineFacilityTypeEnum, 'WATERWAYSHIPLIFT', INDETERMINATE) -userdefined = getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMarineFacilityTypeEnum, 'NOTDEFINED', INDETERMINATE) +barrierbeach = IfcMarineFacilityTypeEnum.BARRIERBEACH +breakwater = IfcMarineFacilityTypeEnum.BREAKWATER +canal = IfcMarineFacilityTypeEnum.CANAL +drydock = IfcMarineFacilityTypeEnum.DRYDOCK +floatingdock = IfcMarineFacilityTypeEnum.FLOATINGDOCK +hydrolift = IfcMarineFacilityTypeEnum.HYDROLIFT +jetty = IfcMarineFacilityTypeEnum.JETTY +launchrecovery = IfcMarineFacilityTypeEnum.LAUNCHRECOVERY +marinedefence = IfcMarineFacilityTypeEnum.MARINEDEFENCE +navigationalchannel = IfcMarineFacilityTypeEnum.NAVIGATIONALCHANNEL +port = IfcMarineFacilityTypeEnum.PORT +quay = IfcMarineFacilityTypeEnum.QUAY +revetment = IfcMarineFacilityTypeEnum.REVETMENT +shiplift = IfcMarineFacilityTypeEnum.SHIPLIFT +shiplock = IfcMarineFacilityTypeEnum.SHIPLOCK +shipyard = IfcMarineFacilityTypeEnum.SHIPYARD +slipway = IfcMarineFacilityTypeEnum.SLIPWAY +waterway = IfcMarineFacilityTypeEnum.WATERWAY +waterwayshiplift = IfcMarineFacilityTypeEnum.WATERWAYSHIPLIFT +userdefined = IfcMarineFacilityTypeEnum.USERDEFINED +notdefined = IfcMarineFacilityTypeEnum.NOTDEFINED IfcMarinePartTypeEnum = enum_namespace() -abovewaterline = getattr(IfcMarinePartTypeEnum, 'ABOVEWATERLINE', INDETERMINATE) -anchorage = getattr(IfcMarinePartTypeEnum, 'ANCHORAGE', INDETERMINATE) -approachchannel = getattr(IfcMarinePartTypeEnum, 'APPROACHCHANNEL', INDETERMINATE) -belowwaterline = getattr(IfcMarinePartTypeEnum, 'BELOWWATERLINE', INDETERMINATE) -berthingstructure = getattr(IfcMarinePartTypeEnum, 'BERTHINGSTRUCTURE', INDETERMINATE) -chamber = getattr(IfcMarinePartTypeEnum, 'CHAMBER', INDETERMINATE) -cill_level = getattr(IfcMarinePartTypeEnum, 'CILL_LEVEL', INDETERMINATE) -copelevel = getattr(IfcMarinePartTypeEnum, 'COPELEVEL', INDETERMINATE) -core = getattr(IfcMarinePartTypeEnum, 'CORE', INDETERMINATE) -crest = getattr(IfcMarinePartTypeEnum, 'CREST', INDETERMINATE) -gatehead = getattr(IfcMarinePartTypeEnum, 'GATEHEAD', INDETERMINATE) -gudingstructure = getattr(IfcMarinePartTypeEnum, 'GUDINGSTRUCTURE', INDETERMINATE) -highwaterline = getattr(IfcMarinePartTypeEnum, 'HIGHWATERLINE', INDETERMINATE) -landfield = getattr(IfcMarinePartTypeEnum, 'LANDFIELD', INDETERMINATE) -leewardside = getattr(IfcMarinePartTypeEnum, 'LEEWARDSIDE', INDETERMINATE) -lowwaterline = getattr(IfcMarinePartTypeEnum, 'LOWWATERLINE', INDETERMINATE) -manufacturing = getattr(IfcMarinePartTypeEnum, 'MANUFACTURING', INDETERMINATE) -navigationalarea = getattr(IfcMarinePartTypeEnum, 'NAVIGATIONALAREA', INDETERMINATE) -protection = getattr(IfcMarinePartTypeEnum, 'PROTECTION', INDETERMINATE) -shiptransfer = getattr(IfcMarinePartTypeEnum, 'SHIPTRANSFER', INDETERMINATE) -storagearea = getattr(IfcMarinePartTypeEnum, 'STORAGEAREA', INDETERMINATE) -vehicleservicing = getattr(IfcMarinePartTypeEnum, 'VEHICLESERVICING', INDETERMINATE) -waterfield = getattr(IfcMarinePartTypeEnum, 'WATERFIELD', INDETERMINATE) -weatherside = getattr(IfcMarinePartTypeEnum, 'WEATHERSIDE', INDETERMINATE) -userdefined = getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMarinePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +abovewaterline = IfcMarinePartTypeEnum.ABOVEWATERLINE +anchorage = IfcMarinePartTypeEnum.ANCHORAGE +approachchannel = IfcMarinePartTypeEnum.APPROACHCHANNEL +belowwaterline = IfcMarinePartTypeEnum.BELOWWATERLINE +berthingstructure = IfcMarinePartTypeEnum.BERTHINGSTRUCTURE +chamber = IfcMarinePartTypeEnum.CHAMBER +cill_level = IfcMarinePartTypeEnum.CILL_LEVEL +copelevel = IfcMarinePartTypeEnum.COPELEVEL +core = IfcMarinePartTypeEnum.CORE +crest = IfcMarinePartTypeEnum.CREST +gatehead = IfcMarinePartTypeEnum.GATEHEAD +gudingstructure = IfcMarinePartTypeEnum.GUDINGSTRUCTURE +highwaterline = IfcMarinePartTypeEnum.HIGHWATERLINE +landfield = IfcMarinePartTypeEnum.LANDFIELD +leewardside = IfcMarinePartTypeEnum.LEEWARDSIDE +lowwaterline = IfcMarinePartTypeEnum.LOWWATERLINE +manufacturing = IfcMarinePartTypeEnum.MANUFACTURING +navigationalarea = IfcMarinePartTypeEnum.NAVIGATIONALAREA +protection = IfcMarinePartTypeEnum.PROTECTION +shiptransfer = IfcMarinePartTypeEnum.SHIPTRANSFER +storagearea = IfcMarinePartTypeEnum.STORAGEAREA +vehicleservicing = IfcMarinePartTypeEnum.VEHICLESERVICING +waterfield = IfcMarinePartTypeEnum.WATERFIELD +weatherside = IfcMarinePartTypeEnum.WEATHERSIDE +userdefined = IfcMarinePartTypeEnum.USERDEFINED +notdefined = IfcMarinePartTypeEnum.NOTDEFINED IfcMechanicalFastenerTypeEnum = enum_namespace() -anchorbolt = getattr(IfcMechanicalFastenerTypeEnum, 'ANCHORBOLT', INDETERMINATE) -bolt = getattr(IfcMechanicalFastenerTypeEnum, 'BOLT', INDETERMINATE) -chain = getattr(IfcMechanicalFastenerTypeEnum, 'CHAIN', INDETERMINATE) -coupler = getattr(IfcMechanicalFastenerTypeEnum, 'COUPLER', INDETERMINATE) -dowel = getattr(IfcMechanicalFastenerTypeEnum, 'DOWEL', INDETERMINATE) -nail = getattr(IfcMechanicalFastenerTypeEnum, 'NAIL', INDETERMINATE) -nailplate = getattr(IfcMechanicalFastenerTypeEnum, 'NAILPLATE', INDETERMINATE) -railfastening = getattr(IfcMechanicalFastenerTypeEnum, 'RAILFASTENING', INDETERMINATE) -railjoint = getattr(IfcMechanicalFastenerTypeEnum, 'RAILJOINT', INDETERMINATE) -rivet = getattr(IfcMechanicalFastenerTypeEnum, 'RIVET', INDETERMINATE) -rope = getattr(IfcMechanicalFastenerTypeEnum, 'ROPE', INDETERMINATE) -screw = getattr(IfcMechanicalFastenerTypeEnum, 'SCREW', INDETERMINATE) -shearconnector = getattr(IfcMechanicalFastenerTypeEnum, 'SHEARCONNECTOR', INDETERMINATE) -staple = getattr(IfcMechanicalFastenerTypeEnum, 'STAPLE', INDETERMINATE) -studshearconnector = getattr(IfcMechanicalFastenerTypeEnum, 'STUDSHEARCONNECTOR', INDETERMINATE) -userdefined = getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMechanicalFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorbolt = IfcMechanicalFastenerTypeEnum.ANCHORBOLT +bolt = IfcMechanicalFastenerTypeEnum.BOLT +chain = IfcMechanicalFastenerTypeEnum.CHAIN +coupler = IfcMechanicalFastenerTypeEnum.COUPLER +dowel = IfcMechanicalFastenerTypeEnum.DOWEL +nail = IfcMechanicalFastenerTypeEnum.NAIL +nailplate = IfcMechanicalFastenerTypeEnum.NAILPLATE +railfastening = IfcMechanicalFastenerTypeEnum.RAILFASTENING +railjoint = IfcMechanicalFastenerTypeEnum.RAILJOINT +rivet = IfcMechanicalFastenerTypeEnum.RIVET +rope = IfcMechanicalFastenerTypeEnum.ROPE +screw = IfcMechanicalFastenerTypeEnum.SCREW +shearconnector = IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR +staple = IfcMechanicalFastenerTypeEnum.STAPLE +studshearconnector = IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR +userdefined = IfcMechanicalFastenerTypeEnum.USERDEFINED +notdefined = IfcMechanicalFastenerTypeEnum.NOTDEFINED IfcMedicalDeviceTypeEnum = enum_namespace() -airstation = getattr(IfcMedicalDeviceTypeEnum, 'AIRSTATION', INDETERMINATE) -feedairunit = getattr(IfcMedicalDeviceTypeEnum, 'FEEDAIRUNIT', INDETERMINATE) -oxygengenerator = getattr(IfcMedicalDeviceTypeEnum, 'OXYGENGENERATOR', INDETERMINATE) -oxygenplant = getattr(IfcMedicalDeviceTypeEnum, 'OXYGENPLANT', INDETERMINATE) -vacuumstation = getattr(IfcMedicalDeviceTypeEnum, 'VACUUMSTATION', INDETERMINATE) -userdefined = getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMedicalDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +airstation = IfcMedicalDeviceTypeEnum.AIRSTATION +feedairunit = IfcMedicalDeviceTypeEnum.FEEDAIRUNIT +oxygengenerator = IfcMedicalDeviceTypeEnum.OXYGENGENERATOR +oxygenplant = IfcMedicalDeviceTypeEnum.OXYGENPLANT +vacuumstation = IfcMedicalDeviceTypeEnum.VACUUMSTATION +userdefined = IfcMedicalDeviceTypeEnum.USERDEFINED +notdefined = IfcMedicalDeviceTypeEnum.NOTDEFINED IfcMemberTypeEnum = enum_namespace() -arch_segment = getattr(IfcMemberTypeEnum, 'ARCH_SEGMENT', INDETERMINATE) -brace = getattr(IfcMemberTypeEnum, 'BRACE', INDETERMINATE) -chord = getattr(IfcMemberTypeEnum, 'CHORD', INDETERMINATE) -collar = getattr(IfcMemberTypeEnum, 'COLLAR', INDETERMINATE) -member = getattr(IfcMemberTypeEnum, 'MEMBER', INDETERMINATE) -mullion = getattr(IfcMemberTypeEnum, 'MULLION', INDETERMINATE) -plate = getattr(IfcMemberTypeEnum, 'PLATE', INDETERMINATE) -post = getattr(IfcMemberTypeEnum, 'POST', INDETERMINATE) -purlin = getattr(IfcMemberTypeEnum, 'PURLIN', INDETERMINATE) -rafter = getattr(IfcMemberTypeEnum, 'RAFTER', INDETERMINATE) -stay_cable = getattr(IfcMemberTypeEnum, 'STAY_CABLE', INDETERMINATE) -stiffening_rib = getattr(IfcMemberTypeEnum, 'STIFFENING_RIB', INDETERMINATE) -stringer = getattr(IfcMemberTypeEnum, 'STRINGER', INDETERMINATE) -structuralcable = getattr(IfcMemberTypeEnum, 'STRUCTURALCABLE', INDETERMINATE) -strut = getattr(IfcMemberTypeEnum, 'STRUT', INDETERMINATE) -stud = getattr(IfcMemberTypeEnum, 'STUD', INDETERMINATE) -suspender = getattr(IfcMemberTypeEnum, 'SUSPENDER', INDETERMINATE) -suspension_cable = getattr(IfcMemberTypeEnum, 'SUSPENSION_CABLE', INDETERMINATE) -tiebar = getattr(IfcMemberTypeEnum, 'TIEBAR', INDETERMINATE) -userdefined = getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +arch_segment = IfcMemberTypeEnum.ARCH_SEGMENT +brace = IfcMemberTypeEnum.BRACE +chord = IfcMemberTypeEnum.CHORD +collar = IfcMemberTypeEnum.COLLAR +member = IfcMemberTypeEnum.MEMBER +mullion = IfcMemberTypeEnum.MULLION +plate = IfcMemberTypeEnum.PLATE +post = IfcMemberTypeEnum.POST +purlin = IfcMemberTypeEnum.PURLIN +rafter = IfcMemberTypeEnum.RAFTER +stay_cable = IfcMemberTypeEnum.STAY_CABLE +stiffening_rib = IfcMemberTypeEnum.STIFFENING_RIB +stringer = IfcMemberTypeEnum.STRINGER +structuralcable = IfcMemberTypeEnum.STRUCTURALCABLE +strut = IfcMemberTypeEnum.STRUT +stud = IfcMemberTypeEnum.STUD +suspender = IfcMemberTypeEnum.SUSPENDER +suspension_cable = IfcMemberTypeEnum.SUSPENSION_CABLE +tiebar = IfcMemberTypeEnum.TIEBAR +userdefined = IfcMemberTypeEnum.USERDEFINED +notdefined = IfcMemberTypeEnum.NOTDEFINED IfcMobileTelecommunicationsApplianceTypeEnum = enum_namespace() -accesspoint = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'ACCESSPOINT', INDETERMINATE) -basebandunit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASEBANDUNIT', INDETERMINATE) -basetransceiverstation = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASETRANSCEIVERSTATION', INDETERMINATE) -e_utran_node_b = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'E_UTRAN_NODE_B', INDETERMINATE) -gateway_gprs_support_node = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'GATEWAY_GPRS_SUPPORT_NODE', INDETERMINATE) -masterunit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MASTERUNIT', INDETERMINATE) -mobileswitchingcenter = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MOBILESWITCHINGCENTER', INDETERMINATE) -mscserver = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MSCSERVER', INDETERMINATE) -packetcontrolunit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'PACKETCONTROLUNIT', INDETERMINATE) -remoteradiounit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTERADIOUNIT', INDETERMINATE) -remoteunit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTEUNIT', INDETERMINATE) -service_gprs_support_node = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'SERVICE_GPRS_SUPPORT_NODE', INDETERMINATE) -subscriberserver = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'SUBSCRIBERSERVER', INDETERMINATE) -userdefined = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +accesspoint = IfcMobileTelecommunicationsApplianceTypeEnum.ACCESSPOINT +basebandunit = IfcMobileTelecommunicationsApplianceTypeEnum.BASEBANDUNIT +basetransceiverstation = IfcMobileTelecommunicationsApplianceTypeEnum.BASETRANSCEIVERSTATION +e_utran_node_b = IfcMobileTelecommunicationsApplianceTypeEnum.E_UTRAN_NODE_B +gateway_gprs_support_node = IfcMobileTelecommunicationsApplianceTypeEnum.GATEWAY_GPRS_SUPPORT_NODE +masterunit = IfcMobileTelecommunicationsApplianceTypeEnum.MASTERUNIT +mobileswitchingcenter = IfcMobileTelecommunicationsApplianceTypeEnum.MOBILESWITCHINGCENTER +mscserver = IfcMobileTelecommunicationsApplianceTypeEnum.MSCSERVER +packetcontrolunit = IfcMobileTelecommunicationsApplianceTypeEnum.PACKETCONTROLUNIT +remoteradiounit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTERADIOUNIT +remoteunit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTEUNIT +service_gprs_support_node = IfcMobileTelecommunicationsApplianceTypeEnum.SERVICE_GPRS_SUPPORT_NODE +subscriberserver = IfcMobileTelecommunicationsApplianceTypeEnum.SUBSCRIBERSERVER +userdefined = IfcMobileTelecommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcMobileTelecommunicationsApplianceTypeEnum.NOTDEFINED IfcMooringDeviceTypeEnum = enum_namespace() -bollard = getattr(IfcMooringDeviceTypeEnum, 'BOLLARD', INDETERMINATE) -linetensioner = getattr(IfcMooringDeviceTypeEnum, 'LINETENSIONER', INDETERMINATE) -magneticdevice = getattr(IfcMooringDeviceTypeEnum, 'MAGNETICDEVICE', INDETERMINATE) -mooringhooks = getattr(IfcMooringDeviceTypeEnum, 'MOORINGHOOKS', INDETERMINATE) -vacuumdevice = getattr(IfcMooringDeviceTypeEnum, 'VACUUMDEVICE', INDETERMINATE) -userdefined = getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMooringDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +bollard = IfcMooringDeviceTypeEnum.BOLLARD +linetensioner = IfcMooringDeviceTypeEnum.LINETENSIONER +magneticdevice = IfcMooringDeviceTypeEnum.MAGNETICDEVICE +mooringhooks = IfcMooringDeviceTypeEnum.MOORINGHOOKS +vacuumdevice = IfcMooringDeviceTypeEnum.VACUUMDEVICE +userdefined = IfcMooringDeviceTypeEnum.USERDEFINED +notdefined = IfcMooringDeviceTypeEnum.NOTDEFINED IfcMotorConnectionTypeEnum = enum_namespace() -beltdrive = getattr(IfcMotorConnectionTypeEnum, 'BELTDRIVE', INDETERMINATE) -coupling = getattr(IfcMotorConnectionTypeEnum, 'COUPLING', INDETERMINATE) -directdrive = getattr(IfcMotorConnectionTypeEnum, 'DIRECTDRIVE', INDETERMINATE) -userdefined = getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMotorConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltdrive = IfcMotorConnectionTypeEnum.BELTDRIVE +coupling = IfcMotorConnectionTypeEnum.COUPLING +directdrive = IfcMotorConnectionTypeEnum.DIRECTDRIVE +userdefined = IfcMotorConnectionTypeEnum.USERDEFINED +notdefined = IfcMotorConnectionTypeEnum.NOTDEFINED IfcNavigationElementTypeEnum = enum_namespace() -beacon = getattr(IfcNavigationElementTypeEnum, 'BEACON', INDETERMINATE) -buoy = getattr(IfcNavigationElementTypeEnum, 'BUOY', INDETERMINATE) -userdefined = getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcNavigationElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +beacon = IfcNavigationElementTypeEnum.BEACON +buoy = IfcNavigationElementTypeEnum.BUOY +userdefined = IfcNavigationElementTypeEnum.USERDEFINED +notdefined = IfcNavigationElementTypeEnum.NOTDEFINED IfcObjectiveEnum = enum_namespace() -codecompliance = getattr(IfcObjectiveEnum, 'CODECOMPLIANCE', INDETERMINATE) -codewaiver = getattr(IfcObjectiveEnum, 'CODEWAIVER', INDETERMINATE) -designintent = getattr(IfcObjectiveEnum, 'DESIGNINTENT', INDETERMINATE) -external = getattr(IfcObjectiveEnum, 'EXTERNAL', INDETERMINATE) -healthandsafety = getattr(IfcObjectiveEnum, 'HEALTHANDSAFETY', INDETERMINATE) -mergeconflict = getattr(IfcObjectiveEnum, 'MERGECONFLICT', INDETERMINATE) -modelview = getattr(IfcObjectiveEnum, 'MODELVIEW', INDETERMINATE) -parameter = getattr(IfcObjectiveEnum, 'PARAMETER', INDETERMINATE) -requirement = getattr(IfcObjectiveEnum, 'REQUIREMENT', INDETERMINATE) -specification = getattr(IfcObjectiveEnum, 'SPECIFICATION', INDETERMINATE) -triggercondition = getattr(IfcObjectiveEnum, 'TRIGGERCONDITION', INDETERMINATE) -userdefined = getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcObjectiveEnum, 'NOTDEFINED', INDETERMINATE) +codecompliance = IfcObjectiveEnum.CODECOMPLIANCE +codewaiver = IfcObjectiveEnum.CODEWAIVER +designintent = IfcObjectiveEnum.DESIGNINTENT +external = IfcObjectiveEnum.EXTERNAL +healthandsafety = IfcObjectiveEnum.HEALTHANDSAFETY +mergeconflict = IfcObjectiveEnum.MERGECONFLICT +modelview = IfcObjectiveEnum.MODELVIEW +parameter = IfcObjectiveEnum.PARAMETER +requirement = IfcObjectiveEnum.REQUIREMENT +specification = IfcObjectiveEnum.SPECIFICATION +triggercondition = IfcObjectiveEnum.TRIGGERCONDITION +userdefined = IfcObjectiveEnum.USERDEFINED +notdefined = IfcObjectiveEnum.NOTDEFINED IfcOccupantTypeEnum = enum_namespace() -assignee = getattr(IfcOccupantTypeEnum, 'ASSIGNEE', INDETERMINATE) -assignor = getattr(IfcOccupantTypeEnum, 'ASSIGNOR', INDETERMINATE) -lessee = getattr(IfcOccupantTypeEnum, 'LESSEE', INDETERMINATE) -lessor = getattr(IfcOccupantTypeEnum, 'LESSOR', INDETERMINATE) -lettingagent = getattr(IfcOccupantTypeEnum, 'LETTINGAGENT', INDETERMINATE) -owner = getattr(IfcOccupantTypeEnum, 'OWNER', INDETERMINATE) -tenant = getattr(IfcOccupantTypeEnum, 'TENANT', INDETERMINATE) -userdefined = getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOccupantTypeEnum, 'NOTDEFINED', INDETERMINATE) +assignee = IfcOccupantTypeEnum.ASSIGNEE +assignor = IfcOccupantTypeEnum.ASSIGNOR +lessee = IfcOccupantTypeEnum.LESSEE +lessor = IfcOccupantTypeEnum.LESSOR +lettingagent = IfcOccupantTypeEnum.LETTINGAGENT +owner = IfcOccupantTypeEnum.OWNER +tenant = IfcOccupantTypeEnum.TENANT +userdefined = IfcOccupantTypeEnum.USERDEFINED +notdefined = IfcOccupantTypeEnum.NOTDEFINED IfcOpeningElementTypeEnum = enum_namespace() -opening = getattr(IfcOpeningElementTypeEnum, 'OPENING', INDETERMINATE) -recess = getattr(IfcOpeningElementTypeEnum, 'RECESS', INDETERMINATE) -userdefined = getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOpeningElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +opening = IfcOpeningElementTypeEnum.OPENING +recess = IfcOpeningElementTypeEnum.RECESS +userdefined = IfcOpeningElementTypeEnum.USERDEFINED +notdefined = IfcOpeningElementTypeEnum.NOTDEFINED IfcOutletTypeEnum = enum_namespace() -audiovisualoutlet = getattr(IfcOutletTypeEnum, 'AUDIOVISUALOUTLET', INDETERMINATE) -communicationsoutlet = getattr(IfcOutletTypeEnum, 'COMMUNICATIONSOUTLET', INDETERMINATE) -dataoutlet = getattr(IfcOutletTypeEnum, 'DATAOUTLET', INDETERMINATE) -poweroutlet = getattr(IfcOutletTypeEnum, 'POWEROUTLET', INDETERMINATE) -telephoneoutlet = getattr(IfcOutletTypeEnum, 'TELEPHONEOUTLET', INDETERMINATE) -userdefined = getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOutletTypeEnum, 'NOTDEFINED', INDETERMINATE) +audiovisualoutlet = IfcOutletTypeEnum.AUDIOVISUALOUTLET +communicationsoutlet = IfcOutletTypeEnum.COMMUNICATIONSOUTLET +dataoutlet = IfcOutletTypeEnum.DATAOUTLET +poweroutlet = IfcOutletTypeEnum.POWEROUTLET +telephoneoutlet = IfcOutletTypeEnum.TELEPHONEOUTLET +userdefined = IfcOutletTypeEnum.USERDEFINED +notdefined = IfcOutletTypeEnum.NOTDEFINED IfcPavementTypeEnum = enum_namespace() -flexible = getattr(IfcPavementTypeEnum, 'FLEXIBLE', INDETERMINATE) -rigid = getattr(IfcPavementTypeEnum, 'RIGID', INDETERMINATE) -userdefined = getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPavementTypeEnum, 'NOTDEFINED', INDETERMINATE) +flexible = IfcPavementTypeEnum.FLEXIBLE +rigid = IfcPavementTypeEnum.RIGID +userdefined = IfcPavementTypeEnum.USERDEFINED +notdefined = IfcPavementTypeEnum.NOTDEFINED IfcPerformanceHistoryTypeEnum = enum_namespace() -userdefined = getattr(IfcPerformanceHistoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPerformanceHistoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcPerformanceHistoryTypeEnum.USERDEFINED +notdefined = IfcPerformanceHistoryTypeEnum.NOTDEFINED IfcPermeableCoveringOperationEnum = enum_namespace() -grill = getattr(IfcPermeableCoveringOperationEnum, 'GRILL', INDETERMINATE) -louver = getattr(IfcPermeableCoveringOperationEnum, 'LOUVER', INDETERMINATE) -screen = getattr(IfcPermeableCoveringOperationEnum, 'SCREEN', INDETERMINATE) -userdefined = getattr(IfcPermeableCoveringOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPermeableCoveringOperationEnum, 'NOTDEFINED', INDETERMINATE) +grill = IfcPermeableCoveringOperationEnum.GRILL +louver = IfcPermeableCoveringOperationEnum.LOUVER +screen = IfcPermeableCoveringOperationEnum.SCREEN +userdefined = IfcPermeableCoveringOperationEnum.USERDEFINED +notdefined = IfcPermeableCoveringOperationEnum.NOTDEFINED IfcPermitTypeEnum = enum_namespace() -access = getattr(IfcPermitTypeEnum, 'ACCESS', INDETERMINATE) -building = getattr(IfcPermitTypeEnum, 'BUILDING', INDETERMINATE) -work = getattr(IfcPermitTypeEnum, 'WORK', INDETERMINATE) -userdefined = getattr(IfcPermitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPermitTypeEnum, 'NOTDEFINED', INDETERMINATE) +access = IfcPermitTypeEnum.ACCESS +building = IfcPermitTypeEnum.BUILDING +work = IfcPermitTypeEnum.WORK +userdefined = IfcPermitTypeEnum.USERDEFINED +notdefined = IfcPermitTypeEnum.NOTDEFINED IfcPhysicalOrVirtualEnum = enum_namespace() -physical = getattr(IfcPhysicalOrVirtualEnum, 'PHYSICAL', INDETERMINATE) -virtual = getattr(IfcPhysicalOrVirtualEnum, 'VIRTUAL', INDETERMINATE) -notdefined = getattr(IfcPhysicalOrVirtualEnum, 'NOTDEFINED', INDETERMINATE) +physical = IfcPhysicalOrVirtualEnum.PHYSICAL +virtual = IfcPhysicalOrVirtualEnum.VIRTUAL +notdefined = IfcPhysicalOrVirtualEnum.NOTDEFINED IfcPileConstructionEnum = enum_namespace() -cast_in_place = getattr(IfcPileConstructionEnum, 'CAST_IN_PLACE', INDETERMINATE) -composite = getattr(IfcPileConstructionEnum, 'COMPOSITE', INDETERMINATE) -precast_concrete = getattr(IfcPileConstructionEnum, 'PRECAST_CONCRETE', INDETERMINATE) -prefab_steel = getattr(IfcPileConstructionEnum, 'PREFAB_STEEL', INDETERMINATE) -userdefined = getattr(IfcPileConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPileConstructionEnum, 'NOTDEFINED', INDETERMINATE) +cast_in_place = IfcPileConstructionEnum.CAST_IN_PLACE +composite = IfcPileConstructionEnum.COMPOSITE +precast_concrete = IfcPileConstructionEnum.PRECAST_CONCRETE +prefab_steel = IfcPileConstructionEnum.PREFAB_STEEL +userdefined = IfcPileConstructionEnum.USERDEFINED +notdefined = IfcPileConstructionEnum.NOTDEFINED IfcPileTypeEnum = enum_namespace() -bored = getattr(IfcPileTypeEnum, 'BORED', INDETERMINATE) -cohesion = getattr(IfcPileTypeEnum, 'COHESION', INDETERMINATE) -driven = getattr(IfcPileTypeEnum, 'DRIVEN', INDETERMINATE) -friction = getattr(IfcPileTypeEnum, 'FRICTION', INDETERMINATE) -jetgrouting = getattr(IfcPileTypeEnum, 'JETGROUTING', INDETERMINATE) -support = getattr(IfcPileTypeEnum, 'SUPPORT', INDETERMINATE) -userdefined = getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPileTypeEnum, 'NOTDEFINED', INDETERMINATE) +bored = IfcPileTypeEnum.BORED +cohesion = IfcPileTypeEnum.COHESION +driven = IfcPileTypeEnum.DRIVEN +friction = IfcPileTypeEnum.FRICTION +jetgrouting = IfcPileTypeEnum.JETGROUTING +support = IfcPileTypeEnum.SUPPORT +userdefined = IfcPileTypeEnum.USERDEFINED +notdefined = IfcPileTypeEnum.NOTDEFINED IfcPipeFittingTypeEnum = enum_namespace() -bend = getattr(IfcPipeFittingTypeEnum, 'BEND', INDETERMINATE) -connector = getattr(IfcPipeFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcPipeFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcPipeFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcPipeFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = getattr(IfcPipeFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = getattr(IfcPipeFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPipeFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcPipeFittingTypeEnum.BEND +connector = IfcPipeFittingTypeEnum.CONNECTOR +entry = IfcPipeFittingTypeEnum.ENTRY +exit = IfcPipeFittingTypeEnum.EXIT +junction = IfcPipeFittingTypeEnum.JUNCTION +obstruction = IfcPipeFittingTypeEnum.OBSTRUCTION +transition = IfcPipeFittingTypeEnum.TRANSITION +userdefined = IfcPipeFittingTypeEnum.USERDEFINED +notdefined = IfcPipeFittingTypeEnum.NOTDEFINED IfcPipeSegmentTypeEnum = enum_namespace() -culvert = getattr(IfcPipeSegmentTypeEnum, 'CULVERT', INDETERMINATE) -flexiblesegment = getattr(IfcPipeSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -gutter = getattr(IfcPipeSegmentTypeEnum, 'GUTTER', INDETERMINATE) -rigidsegment = getattr(IfcPipeSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -spool = getattr(IfcPipeSegmentTypeEnum, 'SPOOL', INDETERMINATE) -userdefined = getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPipeSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +culvert = IfcPipeSegmentTypeEnum.CULVERT +flexiblesegment = IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT +gutter = IfcPipeSegmentTypeEnum.GUTTER +rigidsegment = IfcPipeSegmentTypeEnum.RIGIDSEGMENT +spool = IfcPipeSegmentTypeEnum.SPOOL +userdefined = IfcPipeSegmentTypeEnum.USERDEFINED +notdefined = IfcPipeSegmentTypeEnum.NOTDEFINED IfcPlateTypeEnum = enum_namespace() -base_plate = getattr(IfcPlateTypeEnum, 'BASE_PLATE', INDETERMINATE) -cover_plate = getattr(IfcPlateTypeEnum, 'COVER_PLATE', INDETERMINATE) -curtain_panel = getattr(IfcPlateTypeEnum, 'CURTAIN_PANEL', INDETERMINATE) -flange_plate = getattr(IfcPlateTypeEnum, 'FLANGE_PLATE', INDETERMINATE) -gusset_plate = getattr(IfcPlateTypeEnum, 'GUSSET_PLATE', INDETERMINATE) -sheet = getattr(IfcPlateTypeEnum, 'SHEET', INDETERMINATE) -splice_plate = getattr(IfcPlateTypeEnum, 'SPLICE_PLATE', INDETERMINATE) -stiffener_plate = getattr(IfcPlateTypeEnum, 'STIFFENER_PLATE', INDETERMINATE) -web_plate = getattr(IfcPlateTypeEnum, 'WEB_PLATE', INDETERMINATE) -userdefined = getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPlateTypeEnum, 'NOTDEFINED', INDETERMINATE) +base_plate = IfcPlateTypeEnum.BASE_PLATE +cover_plate = IfcPlateTypeEnum.COVER_PLATE +curtain_panel = IfcPlateTypeEnum.CURTAIN_PANEL +flange_plate = IfcPlateTypeEnum.FLANGE_PLATE +gusset_plate = IfcPlateTypeEnum.GUSSET_PLATE +sheet = IfcPlateTypeEnum.SHEET +splice_plate = IfcPlateTypeEnum.SPLICE_PLATE +stiffener_plate = IfcPlateTypeEnum.STIFFENER_PLATE +web_plate = IfcPlateTypeEnum.WEB_PLATE +userdefined = IfcPlateTypeEnum.USERDEFINED +notdefined = IfcPlateTypeEnum.NOTDEFINED IfcPreferredSurfaceCurveRepresentation = enum_namespace() -curve3d = getattr(IfcPreferredSurfaceCurveRepresentation, 'CURVE3D', INDETERMINATE) -pcurve_s1 = getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S1', INDETERMINATE) -pcurve_s2 = getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S2', INDETERMINATE) +curve3d = IfcPreferredSurfaceCurveRepresentation.CURVE3D +pcurve_s1 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 +pcurve_s2 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 IfcProcedureTypeEnum = enum_namespace() -advice_caution = getattr(IfcProcedureTypeEnum, 'ADVICE_CAUTION', INDETERMINATE) -advice_note = getattr(IfcProcedureTypeEnum, 'ADVICE_NOTE', INDETERMINATE) -advice_warning = getattr(IfcProcedureTypeEnum, 'ADVICE_WARNING', INDETERMINATE) -calibration = getattr(IfcProcedureTypeEnum, 'CALIBRATION', INDETERMINATE) -diagnostic = getattr(IfcProcedureTypeEnum, 'DIAGNOSTIC', INDETERMINATE) -shutdown = getattr(IfcProcedureTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = getattr(IfcProcedureTypeEnum, 'STARTUP', INDETERMINATE) -userdefined = getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProcedureTypeEnum, 'NOTDEFINED', INDETERMINATE) +advice_caution = IfcProcedureTypeEnum.ADVICE_CAUTION +advice_note = IfcProcedureTypeEnum.ADVICE_NOTE +advice_warning = IfcProcedureTypeEnum.ADVICE_WARNING +calibration = IfcProcedureTypeEnum.CALIBRATION +diagnostic = IfcProcedureTypeEnum.DIAGNOSTIC +shutdown = IfcProcedureTypeEnum.SHUTDOWN +startup = IfcProcedureTypeEnum.STARTUP +userdefined = IfcProcedureTypeEnum.USERDEFINED +notdefined = IfcProcedureTypeEnum.NOTDEFINED IfcProfileTypeEnum = enum_namespace() -area = getattr(IfcProfileTypeEnum, 'AREA', INDETERMINATE) -curve = getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE) +area = IfcProfileTypeEnum.AREA +curve = IfcProfileTypeEnum.CURVE IfcProjectOrderTypeEnum = enum_namespace() -changeorder = getattr(IfcProjectOrderTypeEnum, 'CHANGEORDER', INDETERMINATE) -maintenanceworkorder = getattr(IfcProjectOrderTypeEnum, 'MAINTENANCEWORKORDER', INDETERMINATE) -moveorder = getattr(IfcProjectOrderTypeEnum, 'MOVEORDER', INDETERMINATE) -purchaseorder = getattr(IfcProjectOrderTypeEnum, 'PURCHASEORDER', INDETERMINATE) -workorder = getattr(IfcProjectOrderTypeEnum, 'WORKORDER', INDETERMINATE) -userdefined = getattr(IfcProjectOrderTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProjectOrderTypeEnum, 'NOTDEFINED', INDETERMINATE) +changeorder = IfcProjectOrderTypeEnum.CHANGEORDER +maintenanceworkorder = IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER +moveorder = IfcProjectOrderTypeEnum.MOVEORDER +purchaseorder = IfcProjectOrderTypeEnum.PURCHASEORDER +workorder = IfcProjectOrderTypeEnum.WORKORDER +userdefined = IfcProjectOrderTypeEnum.USERDEFINED +notdefined = IfcProjectOrderTypeEnum.NOTDEFINED IfcProjectedOrTrueLengthEnum = enum_namespace() -projected_length = getattr(IfcProjectedOrTrueLengthEnum, 'PROJECTED_LENGTH', INDETERMINATE) -true_length = getattr(IfcProjectedOrTrueLengthEnum, 'TRUE_LENGTH', INDETERMINATE) +projected_length = IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH +true_length = IfcProjectedOrTrueLengthEnum.TRUE_LENGTH IfcProjectionElementTypeEnum = enum_namespace() -blister = getattr(IfcProjectionElementTypeEnum, 'BLISTER', INDETERMINATE) -deviator = getattr(IfcProjectionElementTypeEnum, 'DEVIATOR', INDETERMINATE) -userdefined = getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProjectionElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +blister = IfcProjectionElementTypeEnum.BLISTER +deviator = IfcProjectionElementTypeEnum.DEVIATOR +userdefined = IfcProjectionElementTypeEnum.USERDEFINED +notdefined = IfcProjectionElementTypeEnum.NOTDEFINED IfcPropertySetTemplateTypeEnum = enum_namespace() -pset_materialdriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_MATERIALDRIVEN', INDETERMINATE) -pset_occurrencedriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_OCCURRENCEDRIVEN', INDETERMINATE) -pset_performancedriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PERFORMANCEDRIVEN', INDETERMINATE) -pset_profiledriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PROFILEDRIVEN', INDETERMINATE) -pset_typedrivenonly = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENONLY', INDETERMINATE) -pset_typedrivenoverride = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENOVERRIDE', INDETERMINATE) -qto_occurrencedriven = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_OCCURRENCEDRIVEN', INDETERMINATE) -qto_typedrivenonly = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENONLY', INDETERMINATE) -qto_typedrivenoverride = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENOVERRIDE', INDETERMINATE) -notdefined = getattr(IfcPropertySetTemplateTypeEnum, 'NOTDEFINED', INDETERMINATE) +pset_materialdriven = IfcPropertySetTemplateTypeEnum.PSET_MATERIALDRIVEN +pset_occurrencedriven = IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN +pset_performancedriven = IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN +pset_profiledriven = IfcPropertySetTemplateTypeEnum.PSET_PROFILEDRIVEN +pset_typedrivenonly = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY +pset_typedrivenoverride = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE +qto_occurrencedriven = IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN +qto_typedrivenonly = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY +qto_typedrivenoverride = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE +notdefined = IfcPropertySetTemplateTypeEnum.NOTDEFINED IfcProtectiveDeviceTrippingUnitTypeEnum = enum_namespace() -electromagnetic = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTROMAGNETIC', INDETERMINATE) -electronic = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTRONIC', INDETERMINATE) -residualcurrent = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'RESIDUALCURRENT', INDETERMINATE) -thermal = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'THERMAL', INDETERMINATE) -userdefined = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'NOTDEFINED', INDETERMINATE) +electromagnetic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC +electronic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC +residualcurrent = IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT +thermal = IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL +userdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED IfcProtectiveDeviceTypeEnum = enum_namespace() -anti_arcing_device = getattr(IfcProtectiveDeviceTypeEnum, 'ANTI_ARCING_DEVICE', INDETERMINATE) -circuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'CIRCUITBREAKER', INDETERMINATE) -earthingswitch = getattr(IfcProtectiveDeviceTypeEnum, 'EARTHINGSWITCH', INDETERMINATE) -earthleakagecircuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'EARTHLEAKAGECIRCUITBREAKER', INDETERMINATE) -fusedisconnector = getattr(IfcProtectiveDeviceTypeEnum, 'FUSEDISCONNECTOR', INDETERMINATE) -residualcurrentcircuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTCIRCUITBREAKER', INDETERMINATE) -residualcurrentswitch = getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTSWITCH', INDETERMINATE) -sparkgap = getattr(IfcProtectiveDeviceTypeEnum, 'SPARKGAP', INDETERMINATE) -varistor = getattr(IfcProtectiveDeviceTypeEnum, 'VARISTOR', INDETERMINATE) -voltagelimiter = getattr(IfcProtectiveDeviceTypeEnum, 'VOLTAGELIMITER', INDETERMINATE) -userdefined = getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProtectiveDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +anti_arcing_device = IfcProtectiveDeviceTypeEnum.ANTI_ARCING_DEVICE +circuitbreaker = IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER +earthingswitch = IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH +earthleakagecircuitbreaker = IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER +fusedisconnector = IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR +residualcurrentcircuitbreaker = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER +residualcurrentswitch = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH +sparkgap = IfcProtectiveDeviceTypeEnum.SPARKGAP +varistor = IfcProtectiveDeviceTypeEnum.VARISTOR +voltagelimiter = IfcProtectiveDeviceTypeEnum.VOLTAGELIMITER +userdefined = IfcProtectiveDeviceTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTypeEnum.NOTDEFINED IfcPumpTypeEnum = enum_namespace() -circulator = getattr(IfcPumpTypeEnum, 'CIRCULATOR', INDETERMINATE) -endsuction = getattr(IfcPumpTypeEnum, 'ENDSUCTION', INDETERMINATE) -splitcase = getattr(IfcPumpTypeEnum, 'SPLITCASE', INDETERMINATE) -submersiblepump = getattr(IfcPumpTypeEnum, 'SUBMERSIBLEPUMP', INDETERMINATE) -sumppump = getattr(IfcPumpTypeEnum, 'SUMPPUMP', INDETERMINATE) -verticalinline = getattr(IfcPumpTypeEnum, 'VERTICALINLINE', INDETERMINATE) -verticalturbine = getattr(IfcPumpTypeEnum, 'VERTICALTURBINE', INDETERMINATE) -userdefined = getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPumpTypeEnum, 'NOTDEFINED', INDETERMINATE) +circulator = IfcPumpTypeEnum.CIRCULATOR +endsuction = IfcPumpTypeEnum.ENDSUCTION +splitcase = IfcPumpTypeEnum.SPLITCASE +submersiblepump = IfcPumpTypeEnum.SUBMERSIBLEPUMP +sumppump = IfcPumpTypeEnum.SUMPPUMP +verticalinline = IfcPumpTypeEnum.VERTICALINLINE +verticalturbine = IfcPumpTypeEnum.VERTICALTURBINE +userdefined = IfcPumpTypeEnum.USERDEFINED +notdefined = IfcPumpTypeEnum.NOTDEFINED IfcRailTypeEnum = enum_namespace() -blade = getattr(IfcRailTypeEnum, 'BLADE', INDETERMINATE) -checkrail = getattr(IfcRailTypeEnum, 'CHECKRAIL', INDETERMINATE) -guardrail = getattr(IfcRailTypeEnum, 'GUARDRAIL', INDETERMINATE) -rackrail = getattr(IfcRailTypeEnum, 'RACKRAIL', INDETERMINATE) -rail = getattr(IfcRailTypeEnum, 'RAIL', INDETERMINATE) -stockrail = getattr(IfcRailTypeEnum, 'STOCKRAIL', INDETERMINATE) -userdefined = getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailTypeEnum, 'NOTDEFINED', INDETERMINATE) +blade = IfcRailTypeEnum.BLADE +checkrail = IfcRailTypeEnum.CHECKRAIL +guardrail = IfcRailTypeEnum.GUARDRAIL +rackrail = IfcRailTypeEnum.RACKRAIL +rail = IfcRailTypeEnum.RAIL +stockrail = IfcRailTypeEnum.STOCKRAIL +userdefined = IfcRailTypeEnum.USERDEFINED +notdefined = IfcRailTypeEnum.NOTDEFINED IfcRailingTypeEnum = enum_namespace() -balustrade = getattr(IfcRailingTypeEnum, 'BALUSTRADE', INDETERMINATE) -fence = getattr(IfcRailingTypeEnum, 'FENCE', INDETERMINATE) -guardrail = getattr(IfcRailingTypeEnum, 'GUARDRAIL', INDETERMINATE) -handrail = getattr(IfcRailingTypeEnum, 'HANDRAIL', INDETERMINATE) -userdefined = getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailingTypeEnum, 'NOTDEFINED', INDETERMINATE) +balustrade = IfcRailingTypeEnum.BALUSTRADE +fence = IfcRailingTypeEnum.FENCE +guardrail = IfcRailingTypeEnum.GUARDRAIL +handrail = IfcRailingTypeEnum.HANDRAIL +userdefined = IfcRailingTypeEnum.USERDEFINED +notdefined = IfcRailingTypeEnum.NOTDEFINED IfcRailwayPartTypeEnum = enum_namespace() -dilatationsuperstructure = getattr(IfcRailwayPartTypeEnum, 'DILATATIONSUPERSTRUCTURE', INDETERMINATE) -linesidestructure = getattr(IfcRailwayPartTypeEnum, 'LINESIDESTRUCTURE', INDETERMINATE) -linesidestructurepart = getattr(IfcRailwayPartTypeEnum, 'LINESIDESTRUCTUREPART', INDETERMINATE) -plaintracksuperstructure = getattr(IfcRailwayPartTypeEnum, 'PLAINTRACKSUPERSTRUCTURE', INDETERMINATE) -superstructure = getattr(IfcRailwayPartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -trackstructure = getattr(IfcRailwayPartTypeEnum, 'TRACKSTRUCTURE', INDETERMINATE) -trackstructurepart = getattr(IfcRailwayPartTypeEnum, 'TRACKSTRUCTUREPART', INDETERMINATE) -turnoutsuperstructure = getattr(IfcRailwayPartTypeEnum, 'TURNOUTSUPERSTRUCTURE', INDETERMINATE) -userdefined = getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailwayPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +dilatationsuperstructure = IfcRailwayPartTypeEnum.DILATATIONSUPERSTRUCTURE +linesidestructure = IfcRailwayPartTypeEnum.LINESIDESTRUCTURE +linesidestructurepart = IfcRailwayPartTypeEnum.LINESIDESTRUCTUREPART +plaintracksuperstructure = IfcRailwayPartTypeEnum.PLAINTRACKSUPERSTRUCTURE +superstructure = IfcRailwayPartTypeEnum.SUPERSTRUCTURE +trackstructure = IfcRailwayPartTypeEnum.TRACKSTRUCTURE +trackstructurepart = IfcRailwayPartTypeEnum.TRACKSTRUCTUREPART +turnoutsuperstructure = IfcRailwayPartTypeEnum.TURNOUTSUPERSTRUCTURE +userdefined = IfcRailwayPartTypeEnum.USERDEFINED +notdefined = IfcRailwayPartTypeEnum.NOTDEFINED IfcRailwayTypeEnum = enum_namespace() -userdefined = getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailwayTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcRailwayTypeEnum.USERDEFINED +notdefined = IfcRailwayTypeEnum.NOTDEFINED IfcRampFlightTypeEnum = enum_namespace() -spiral = getattr(IfcRampFlightTypeEnum, 'SPIRAL', INDETERMINATE) -straight = getattr(IfcRampFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -userdefined = getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRampFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +spiral = IfcRampFlightTypeEnum.SPIRAL +straight = IfcRampFlightTypeEnum.STRAIGHT +userdefined = IfcRampFlightTypeEnum.USERDEFINED +notdefined = IfcRampFlightTypeEnum.NOTDEFINED IfcRampTypeEnum = enum_namespace() -half_turn_ramp = getattr(IfcRampTypeEnum, 'HALF_TURN_RAMP', INDETERMINATE) -quarter_turn_ramp = getattr(IfcRampTypeEnum, 'QUARTER_TURN_RAMP', INDETERMINATE) -spiral_ramp = getattr(IfcRampTypeEnum, 'SPIRAL_RAMP', INDETERMINATE) -straight_run_ramp = getattr(IfcRampTypeEnum, 'STRAIGHT_RUN_RAMP', INDETERMINATE) -two_quarter_turn_ramp = getattr(IfcRampTypeEnum, 'TWO_QUARTER_TURN_RAMP', INDETERMINATE) -two_straight_run_ramp = getattr(IfcRampTypeEnum, 'TWO_STRAIGHT_RUN_RAMP', INDETERMINATE) -userdefined = getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRampTypeEnum, 'NOTDEFINED', INDETERMINATE) +half_turn_ramp = IfcRampTypeEnum.HALF_TURN_RAMP +quarter_turn_ramp = IfcRampTypeEnum.QUARTER_TURN_RAMP +spiral_ramp = IfcRampTypeEnum.SPIRAL_RAMP +straight_run_ramp = IfcRampTypeEnum.STRAIGHT_RUN_RAMP +two_quarter_turn_ramp = IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP +two_straight_run_ramp = IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP +userdefined = IfcRampTypeEnum.USERDEFINED +notdefined = IfcRampTypeEnum.NOTDEFINED IfcRecurrenceTypeEnum = enum_namespace() -by_day_count = getattr(IfcRecurrenceTypeEnum, 'BY_DAY_COUNT', INDETERMINATE) -by_weekday_count = getattr(IfcRecurrenceTypeEnum, 'BY_WEEKDAY_COUNT', INDETERMINATE) -daily = getattr(IfcRecurrenceTypeEnum, 'DAILY', INDETERMINATE) -monthly_by_day_of_month = getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_DAY_OF_MONTH', INDETERMINATE) -monthly_by_position = getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_POSITION', INDETERMINATE) -weekly = getattr(IfcRecurrenceTypeEnum, 'WEEKLY', INDETERMINATE) -yearly_by_day_of_month = getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_DAY_OF_MONTH', INDETERMINATE) -yearly_by_position = getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_POSITION', INDETERMINATE) +by_day_count = IfcRecurrenceTypeEnum.BY_DAY_COUNT +by_weekday_count = IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT +daily = IfcRecurrenceTypeEnum.DAILY +monthly_by_day_of_month = IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH +monthly_by_position = IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION +weekly = IfcRecurrenceTypeEnum.WEEKLY +yearly_by_day_of_month = IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH +yearly_by_position = IfcRecurrenceTypeEnum.YEARLY_BY_POSITION IfcReferentTypeEnum = enum_namespace() -boundary = getattr(IfcReferentTypeEnum, 'BOUNDARY', INDETERMINATE) -intersection = getattr(IfcReferentTypeEnum, 'INTERSECTION', INDETERMINATE) -kilopoint = getattr(IfcReferentTypeEnum, 'KILOPOINT', INDETERMINATE) -landmark = getattr(IfcReferentTypeEnum, 'LANDMARK', INDETERMINATE) -milepoint = getattr(IfcReferentTypeEnum, 'MILEPOINT', INDETERMINATE) -position = getattr(IfcReferentTypeEnum, 'POSITION', INDETERMINATE) -referencemarker = getattr(IfcReferentTypeEnum, 'REFERENCEMARKER', INDETERMINATE) -station = getattr(IfcReferentTypeEnum, 'STATION', INDETERMINATE) -userdefined = getattr(IfcReferentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReferentTypeEnum, 'NOTDEFINED', INDETERMINATE) +boundary = IfcReferentTypeEnum.BOUNDARY +intersection = IfcReferentTypeEnum.INTERSECTION +kilopoint = IfcReferentTypeEnum.KILOPOINT +landmark = IfcReferentTypeEnum.LANDMARK +milepoint = IfcReferentTypeEnum.MILEPOINT +position = IfcReferentTypeEnum.POSITION +referencemarker = IfcReferentTypeEnum.REFERENCEMARKER +station = IfcReferentTypeEnum.STATION +userdefined = IfcReferentTypeEnum.USERDEFINED +notdefined = IfcReferentTypeEnum.NOTDEFINED IfcReflectanceMethodEnum = enum_namespace() -blinn = getattr(IfcReflectanceMethodEnum, 'BLINN', INDETERMINATE) -flat = getattr(IfcReflectanceMethodEnum, 'FLAT', INDETERMINATE) -glass = getattr(IfcReflectanceMethodEnum, 'GLASS', INDETERMINATE) -matt = getattr(IfcReflectanceMethodEnum, 'MATT', INDETERMINATE) -metal = getattr(IfcReflectanceMethodEnum, 'METAL', INDETERMINATE) -mirror = getattr(IfcReflectanceMethodEnum, 'MIRROR', INDETERMINATE) -phong = getattr(IfcReflectanceMethodEnum, 'PHONG', INDETERMINATE) -physical = getattr(IfcReflectanceMethodEnum, 'PHYSICAL', INDETERMINATE) -plastic = getattr(IfcReflectanceMethodEnum, 'PLASTIC', INDETERMINATE) -strauss = getattr(IfcReflectanceMethodEnum, 'STRAUSS', INDETERMINATE) -notdefined = getattr(IfcReflectanceMethodEnum, 'NOTDEFINED', INDETERMINATE) +blinn = IfcReflectanceMethodEnum.BLINN +flat = IfcReflectanceMethodEnum.FLAT +glass = IfcReflectanceMethodEnum.GLASS +matt = IfcReflectanceMethodEnum.MATT +metal = IfcReflectanceMethodEnum.METAL +mirror = IfcReflectanceMethodEnum.MIRROR +phong = IfcReflectanceMethodEnum.PHONG +physical = IfcReflectanceMethodEnum.PHYSICAL +plastic = IfcReflectanceMethodEnum.PLASTIC +strauss = IfcReflectanceMethodEnum.STRAUSS +notdefined = IfcReflectanceMethodEnum.NOTDEFINED IfcReinforcedSoilTypeEnum = enum_namespace() -dynamicallycompacted = getattr(IfcReinforcedSoilTypeEnum, 'DYNAMICALLYCOMPACTED', INDETERMINATE) -grouted = getattr(IfcReinforcedSoilTypeEnum, 'GROUTED', INDETERMINATE) -replaced = getattr(IfcReinforcedSoilTypeEnum, 'REPLACED', INDETERMINATE) -rollercompacted = getattr(IfcReinforcedSoilTypeEnum, 'ROLLERCOMPACTED', INDETERMINATE) -surchargepreloaded = getattr(IfcReinforcedSoilTypeEnum, 'SURCHARGEPRELOADED', INDETERMINATE) -verticallydrained = getattr(IfcReinforcedSoilTypeEnum, 'VERTICALLYDRAINED', INDETERMINATE) -userdefined = getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcedSoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dynamicallycompacted = IfcReinforcedSoilTypeEnum.DYNAMICALLYCOMPACTED +grouted = IfcReinforcedSoilTypeEnum.GROUTED +replaced = IfcReinforcedSoilTypeEnum.REPLACED +rollercompacted = IfcReinforcedSoilTypeEnum.ROLLERCOMPACTED +surchargepreloaded = IfcReinforcedSoilTypeEnum.SURCHARGEPRELOADED +verticallydrained = IfcReinforcedSoilTypeEnum.VERTICALLYDRAINED +userdefined = IfcReinforcedSoilTypeEnum.USERDEFINED +notdefined = IfcReinforcedSoilTypeEnum.NOTDEFINED IfcReinforcingBarRoleEnum = enum_namespace() -anchoring = getattr(IfcReinforcingBarRoleEnum, 'ANCHORING', INDETERMINATE) -edge = getattr(IfcReinforcingBarRoleEnum, 'EDGE', INDETERMINATE) -ligature = getattr(IfcReinforcingBarRoleEnum, 'LIGATURE', INDETERMINATE) -main = getattr(IfcReinforcingBarRoleEnum, 'MAIN', INDETERMINATE) -punching = getattr(IfcReinforcingBarRoleEnum, 'PUNCHING', INDETERMINATE) -ring = getattr(IfcReinforcingBarRoleEnum, 'RING', INDETERMINATE) -shear = getattr(IfcReinforcingBarRoleEnum, 'SHEAR', INDETERMINATE) -stud = getattr(IfcReinforcingBarRoleEnum, 'STUD', INDETERMINATE) -userdefined = getattr(IfcReinforcingBarRoleEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingBarRoleEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarRoleEnum.ANCHORING +edge = IfcReinforcingBarRoleEnum.EDGE +ligature = IfcReinforcingBarRoleEnum.LIGATURE +main = IfcReinforcingBarRoleEnum.MAIN +punching = IfcReinforcingBarRoleEnum.PUNCHING +ring = IfcReinforcingBarRoleEnum.RING +shear = IfcReinforcingBarRoleEnum.SHEAR +stud = IfcReinforcingBarRoleEnum.STUD +userdefined = IfcReinforcingBarRoleEnum.USERDEFINED +notdefined = IfcReinforcingBarRoleEnum.NOTDEFINED IfcReinforcingBarSurfaceEnum = enum_namespace() -plain = getattr(IfcReinforcingBarSurfaceEnum, 'PLAIN', INDETERMINATE) -textured = getattr(IfcReinforcingBarSurfaceEnum, 'TEXTURED', INDETERMINATE) +plain = IfcReinforcingBarSurfaceEnum.PLAIN +textured = IfcReinforcingBarSurfaceEnum.TEXTURED IfcReinforcingBarTypeEnum = enum_namespace() -anchoring = getattr(IfcReinforcingBarTypeEnum, 'ANCHORING', INDETERMINATE) -edge = getattr(IfcReinforcingBarTypeEnum, 'EDGE', INDETERMINATE) -ligature = getattr(IfcReinforcingBarTypeEnum, 'LIGATURE', INDETERMINATE) -main = getattr(IfcReinforcingBarTypeEnum, 'MAIN', INDETERMINATE) -punching = getattr(IfcReinforcingBarTypeEnum, 'PUNCHING', INDETERMINATE) -ring = getattr(IfcReinforcingBarTypeEnum, 'RING', INDETERMINATE) -shear = getattr(IfcReinforcingBarTypeEnum, 'SHEAR', INDETERMINATE) -spacebar = getattr(IfcReinforcingBarTypeEnum, 'SPACEBAR', INDETERMINATE) -stud = getattr(IfcReinforcingBarTypeEnum, 'STUD', INDETERMINATE) -userdefined = getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingBarTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarTypeEnum.ANCHORING +edge = IfcReinforcingBarTypeEnum.EDGE +ligature = IfcReinforcingBarTypeEnum.LIGATURE +main = IfcReinforcingBarTypeEnum.MAIN +punching = IfcReinforcingBarTypeEnum.PUNCHING +ring = IfcReinforcingBarTypeEnum.RING +shear = IfcReinforcingBarTypeEnum.SHEAR +spacebar = IfcReinforcingBarTypeEnum.SPACEBAR +stud = IfcReinforcingBarTypeEnum.STUD +userdefined = IfcReinforcingBarTypeEnum.USERDEFINED +notdefined = IfcReinforcingBarTypeEnum.NOTDEFINED IfcReinforcingMeshTypeEnum = enum_namespace() -userdefined = getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingMeshTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcReinforcingMeshTypeEnum.USERDEFINED +notdefined = IfcReinforcingMeshTypeEnum.NOTDEFINED IfcRoadPartTypeEnum = enum_namespace() -bicyclecrossing = getattr(IfcRoadPartTypeEnum, 'BICYCLECROSSING', INDETERMINATE) -bus_stop = getattr(IfcRoadPartTypeEnum, 'BUS_STOP', INDETERMINATE) -carriageway = getattr(IfcRoadPartTypeEnum, 'CARRIAGEWAY', INDETERMINATE) -centralisland = getattr(IfcRoadPartTypeEnum, 'CENTRALISLAND', INDETERMINATE) -centralreserve = getattr(IfcRoadPartTypeEnum, 'CENTRALRESERVE', INDETERMINATE) -hardshoulder = getattr(IfcRoadPartTypeEnum, 'HARDSHOULDER', INDETERMINATE) -intersection = getattr(IfcRoadPartTypeEnum, 'INTERSECTION', INDETERMINATE) -layby = getattr(IfcRoadPartTypeEnum, 'LAYBY', INDETERMINATE) -parkingbay = getattr(IfcRoadPartTypeEnum, 'PARKINGBAY', INDETERMINATE) -passingbay = getattr(IfcRoadPartTypeEnum, 'PASSINGBAY', INDETERMINATE) -pedestrian_crossing = getattr(IfcRoadPartTypeEnum, 'PEDESTRIAN_CROSSING', INDETERMINATE) -railwaycrossing = getattr(IfcRoadPartTypeEnum, 'RAILWAYCROSSING', INDETERMINATE) -refugeisland = getattr(IfcRoadPartTypeEnum, 'REFUGEISLAND', INDETERMINATE) -roadsegment = getattr(IfcRoadPartTypeEnum, 'ROADSEGMENT', INDETERMINATE) -roadside = getattr(IfcRoadPartTypeEnum, 'ROADSIDE', INDETERMINATE) -roadsidepart = getattr(IfcRoadPartTypeEnum, 'ROADSIDEPART', INDETERMINATE) -roadwayplateau = getattr(IfcRoadPartTypeEnum, 'ROADWAYPLATEAU', INDETERMINATE) -roundabout = getattr(IfcRoadPartTypeEnum, 'ROUNDABOUT', INDETERMINATE) -shoulder = getattr(IfcRoadPartTypeEnum, 'SHOULDER', INDETERMINATE) -sidewalk = getattr(IfcRoadPartTypeEnum, 'SIDEWALK', INDETERMINATE) -softshoulder = getattr(IfcRoadPartTypeEnum, 'SOFTSHOULDER', INDETERMINATE) -tollplaza = getattr(IfcRoadPartTypeEnum, 'TOLLPLAZA', INDETERMINATE) -trafficisland = getattr(IfcRoadPartTypeEnum, 'TRAFFICISLAND', INDETERMINATE) -trafficlane = getattr(IfcRoadPartTypeEnum, 'TRAFFICLANE', INDETERMINATE) -userdefined = getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRoadPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +bicyclecrossing = IfcRoadPartTypeEnum.BICYCLECROSSING +bus_stop = IfcRoadPartTypeEnum.BUS_STOP +carriageway = IfcRoadPartTypeEnum.CARRIAGEWAY +centralisland = IfcRoadPartTypeEnum.CENTRALISLAND +centralreserve = IfcRoadPartTypeEnum.CENTRALRESERVE +hardshoulder = IfcRoadPartTypeEnum.HARDSHOULDER +intersection = IfcRoadPartTypeEnum.INTERSECTION +layby = IfcRoadPartTypeEnum.LAYBY +parkingbay = IfcRoadPartTypeEnum.PARKINGBAY +passingbay = IfcRoadPartTypeEnum.PASSINGBAY +pedestrian_crossing = IfcRoadPartTypeEnum.PEDESTRIAN_CROSSING +railwaycrossing = IfcRoadPartTypeEnum.RAILWAYCROSSING +refugeisland = IfcRoadPartTypeEnum.REFUGEISLAND +roadsegment = IfcRoadPartTypeEnum.ROADSEGMENT +roadside = IfcRoadPartTypeEnum.ROADSIDE +roadsidepart = IfcRoadPartTypeEnum.ROADSIDEPART +roadwayplateau = IfcRoadPartTypeEnum.ROADWAYPLATEAU +roundabout = IfcRoadPartTypeEnum.ROUNDABOUT +shoulder = IfcRoadPartTypeEnum.SHOULDER +sidewalk = IfcRoadPartTypeEnum.SIDEWALK +softshoulder = IfcRoadPartTypeEnum.SOFTSHOULDER +tollplaza = IfcRoadPartTypeEnum.TOLLPLAZA +trafficisland = IfcRoadPartTypeEnum.TRAFFICISLAND +trafficlane = IfcRoadPartTypeEnum.TRAFFICLANE +userdefined = IfcRoadPartTypeEnum.USERDEFINED +notdefined = IfcRoadPartTypeEnum.NOTDEFINED IfcRoadTypeEnum = enum_namespace() -userdefined = getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRoadTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcRoadTypeEnum.USERDEFINED +notdefined = IfcRoadTypeEnum.NOTDEFINED IfcRoleEnum = enum_namespace() -architect = getattr(IfcRoleEnum, 'ARCHITECT', INDETERMINATE) -buildingoperator = getattr(IfcRoleEnum, 'BUILDINGOPERATOR', INDETERMINATE) -buildingowner = getattr(IfcRoleEnum, 'BUILDINGOWNER', INDETERMINATE) -civilengineer = getattr(IfcRoleEnum, 'CIVILENGINEER', INDETERMINATE) -client = getattr(IfcRoleEnum, 'CLIENT', INDETERMINATE) -commissioningengineer = getattr(IfcRoleEnum, 'COMMISSIONINGENGINEER', INDETERMINATE) -constructionmanager = getattr(IfcRoleEnum, 'CONSTRUCTIONMANAGER', INDETERMINATE) -consultant = getattr(IfcRoleEnum, 'CONSULTANT', INDETERMINATE) -contractor = getattr(IfcRoleEnum, 'CONTRACTOR', INDETERMINATE) -costengineer = getattr(IfcRoleEnum, 'COSTENGINEER', INDETERMINATE) -electricalengineer = getattr(IfcRoleEnum, 'ELECTRICALENGINEER', INDETERMINATE) -engineer = getattr(IfcRoleEnum, 'ENGINEER', INDETERMINATE) -facilitiesmanager = getattr(IfcRoleEnum, 'FACILITIESMANAGER', INDETERMINATE) -fieldconstructionmanager = getattr(IfcRoleEnum, 'FIELDCONSTRUCTIONMANAGER', INDETERMINATE) -manufacturer = getattr(IfcRoleEnum, 'MANUFACTURER', INDETERMINATE) -mechanicalengineer = getattr(IfcRoleEnum, 'MECHANICALENGINEER', INDETERMINATE) -owner = getattr(IfcRoleEnum, 'OWNER', INDETERMINATE) -projectmanager = getattr(IfcRoleEnum, 'PROJECTMANAGER', INDETERMINATE) -reseller = getattr(IfcRoleEnum, 'RESELLER', INDETERMINATE) -structuralengineer = getattr(IfcRoleEnum, 'STRUCTURALENGINEER', INDETERMINATE) -subcontractor = getattr(IfcRoleEnum, 'SUBCONTRACTOR', INDETERMINATE) -supplier = getattr(IfcRoleEnum, 'SUPPLIER', INDETERMINATE) -userdefined = getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) +architect = IfcRoleEnum.ARCHITECT +buildingoperator = IfcRoleEnum.BUILDINGOPERATOR +buildingowner = IfcRoleEnum.BUILDINGOWNER +civilengineer = IfcRoleEnum.CIVILENGINEER +client = IfcRoleEnum.CLIENT +commissioningengineer = IfcRoleEnum.COMMISSIONINGENGINEER +constructionmanager = IfcRoleEnum.CONSTRUCTIONMANAGER +consultant = IfcRoleEnum.CONSULTANT +contractor = IfcRoleEnum.CONTRACTOR +costengineer = IfcRoleEnum.COSTENGINEER +electricalengineer = IfcRoleEnum.ELECTRICALENGINEER +engineer = IfcRoleEnum.ENGINEER +facilitiesmanager = IfcRoleEnum.FACILITIESMANAGER +fieldconstructionmanager = IfcRoleEnum.FIELDCONSTRUCTIONMANAGER +manufacturer = IfcRoleEnum.MANUFACTURER +mechanicalengineer = IfcRoleEnum.MECHANICALENGINEER +owner = IfcRoleEnum.OWNER +projectmanager = IfcRoleEnum.PROJECTMANAGER +reseller = IfcRoleEnum.RESELLER +structuralengineer = IfcRoleEnum.STRUCTURALENGINEER +subcontractor = IfcRoleEnum.SUBCONTRACTOR +supplier = IfcRoleEnum.SUPPLIER +userdefined = IfcRoleEnum.USERDEFINED IfcRoofTypeEnum = enum_namespace() -barrel_roof = getattr(IfcRoofTypeEnum, 'BARREL_ROOF', INDETERMINATE) -butterfly_roof = getattr(IfcRoofTypeEnum, 'BUTTERFLY_ROOF', INDETERMINATE) -dome_roof = getattr(IfcRoofTypeEnum, 'DOME_ROOF', INDETERMINATE) -flat_roof = getattr(IfcRoofTypeEnum, 'FLAT_ROOF', INDETERMINATE) -freeform = getattr(IfcRoofTypeEnum, 'FREEFORM', INDETERMINATE) -gable_roof = getattr(IfcRoofTypeEnum, 'GABLE_ROOF', INDETERMINATE) -gambrel_roof = getattr(IfcRoofTypeEnum, 'GAMBREL_ROOF', INDETERMINATE) -hipped_gable_roof = getattr(IfcRoofTypeEnum, 'HIPPED_GABLE_ROOF', INDETERMINATE) -hip_roof = getattr(IfcRoofTypeEnum, 'HIP_ROOF', INDETERMINATE) -mansard_roof = getattr(IfcRoofTypeEnum, 'MANSARD_ROOF', INDETERMINATE) -pavilion_roof = getattr(IfcRoofTypeEnum, 'PAVILION_ROOF', INDETERMINATE) -rainbow_roof = getattr(IfcRoofTypeEnum, 'RAINBOW_ROOF', INDETERMINATE) -shed_roof = getattr(IfcRoofTypeEnum, 'SHED_ROOF', INDETERMINATE) -userdefined = getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRoofTypeEnum, 'NOTDEFINED', INDETERMINATE) +barrel_roof = IfcRoofTypeEnum.BARREL_ROOF +butterfly_roof = IfcRoofTypeEnum.BUTTERFLY_ROOF +dome_roof = IfcRoofTypeEnum.DOME_ROOF +flat_roof = IfcRoofTypeEnum.FLAT_ROOF +freeform = IfcRoofTypeEnum.FREEFORM +gable_roof = IfcRoofTypeEnum.GABLE_ROOF +gambrel_roof = IfcRoofTypeEnum.GAMBREL_ROOF +hipped_gable_roof = IfcRoofTypeEnum.HIPPED_GABLE_ROOF +hip_roof = IfcRoofTypeEnum.HIP_ROOF +mansard_roof = IfcRoofTypeEnum.MANSARD_ROOF +pavilion_roof = IfcRoofTypeEnum.PAVILION_ROOF +rainbow_roof = IfcRoofTypeEnum.RAINBOW_ROOF +shed_roof = IfcRoofTypeEnum.SHED_ROOF +userdefined = IfcRoofTypeEnum.USERDEFINED +notdefined = IfcRoofTypeEnum.NOTDEFINED IfcSIPrefix = enum_namespace() -atto = getattr(IfcSIPrefix, 'ATTO', INDETERMINATE) -centi = getattr(IfcSIPrefix, 'CENTI', INDETERMINATE) -deca = getattr(IfcSIPrefix, 'DECA', INDETERMINATE) -deci = getattr(IfcSIPrefix, 'DECI', INDETERMINATE) -exa = getattr(IfcSIPrefix, 'EXA', INDETERMINATE) -femto = getattr(IfcSIPrefix, 'FEMTO', INDETERMINATE) -giga = getattr(IfcSIPrefix, 'GIGA', INDETERMINATE) -hecto = getattr(IfcSIPrefix, 'HECTO', INDETERMINATE) -kilo = getattr(IfcSIPrefix, 'KILO', INDETERMINATE) -mega = getattr(IfcSIPrefix, 'MEGA', INDETERMINATE) -micro = getattr(IfcSIPrefix, 'MICRO', INDETERMINATE) -milli = getattr(IfcSIPrefix, 'MILLI', INDETERMINATE) -nano = getattr(IfcSIPrefix, 'NANO', INDETERMINATE) -peta = getattr(IfcSIPrefix, 'PETA', INDETERMINATE) -pico = getattr(IfcSIPrefix, 'PICO', INDETERMINATE) -tera = getattr(IfcSIPrefix, 'TERA', INDETERMINATE) +atto = IfcSIPrefix.ATTO +centi = IfcSIPrefix.CENTI +deca = IfcSIPrefix.DECA +deci = IfcSIPrefix.DECI +exa = IfcSIPrefix.EXA +femto = IfcSIPrefix.FEMTO +giga = IfcSIPrefix.GIGA +hecto = IfcSIPrefix.HECTO +kilo = IfcSIPrefix.KILO +mega = IfcSIPrefix.MEGA +micro = IfcSIPrefix.MICRO +milli = IfcSIPrefix.MILLI +nano = IfcSIPrefix.NANO +peta = IfcSIPrefix.PETA +pico = IfcSIPrefix.PICO +tera = IfcSIPrefix.TERA IfcSIUnitName = enum_namespace() -ampere = getattr(IfcSIUnitName, 'AMPERE', INDETERMINATE) -becquerel = getattr(IfcSIUnitName, 'BECQUEREL', INDETERMINATE) -candela = getattr(IfcSIUnitName, 'CANDELA', INDETERMINATE) -coulomb = getattr(IfcSIUnitName, 'COULOMB', INDETERMINATE) -cubic_metre = getattr(IfcSIUnitName, 'CUBIC_METRE', INDETERMINATE) -degree_celsius = getattr(IfcSIUnitName, 'DEGREE_CELSIUS', INDETERMINATE) -farad = getattr(IfcSIUnitName, 'FARAD', INDETERMINATE) -gram = getattr(IfcSIUnitName, 'GRAM', INDETERMINATE) -gray = getattr(IfcSIUnitName, 'GRAY', INDETERMINATE) -henry = getattr(IfcSIUnitName, 'HENRY', INDETERMINATE) -hertz = getattr(IfcSIUnitName, 'HERTZ', INDETERMINATE) -joule = getattr(IfcSIUnitName, 'JOULE', INDETERMINATE) -kelvin = getattr(IfcSIUnitName, 'KELVIN', INDETERMINATE) -lumen = getattr(IfcSIUnitName, 'LUMEN', INDETERMINATE) -lux = getattr(IfcSIUnitName, 'LUX', INDETERMINATE) -metre = getattr(IfcSIUnitName, 'METRE', INDETERMINATE) -mole = getattr(IfcSIUnitName, 'MOLE', INDETERMINATE) -newton = getattr(IfcSIUnitName, 'NEWTON', INDETERMINATE) -ohm = getattr(IfcSIUnitName, 'OHM', INDETERMINATE) -pascal = getattr(IfcSIUnitName, 'PASCAL', INDETERMINATE) -radian = getattr(IfcSIUnitName, 'RADIAN', INDETERMINATE) -second = getattr(IfcSIUnitName, 'SECOND', INDETERMINATE) -siemens = getattr(IfcSIUnitName, 'SIEMENS', INDETERMINATE) -sievert = getattr(IfcSIUnitName, 'SIEVERT', INDETERMINATE) -square_metre = getattr(IfcSIUnitName, 'SQUARE_METRE', INDETERMINATE) -steradian = getattr(IfcSIUnitName, 'STERADIAN', INDETERMINATE) -tesla = getattr(IfcSIUnitName, 'TESLA', INDETERMINATE) -volt = getattr(IfcSIUnitName, 'VOLT', INDETERMINATE) -watt = getattr(IfcSIUnitName, 'WATT', INDETERMINATE) -weber = getattr(IfcSIUnitName, 'WEBER', INDETERMINATE) +ampere = IfcSIUnitName.AMPERE +becquerel = IfcSIUnitName.BECQUEREL +candela = IfcSIUnitName.CANDELA +coulomb = IfcSIUnitName.COULOMB +cubic_metre = IfcSIUnitName.CUBIC_METRE +degree_celsius = IfcSIUnitName.DEGREE_CELSIUS +farad = IfcSIUnitName.FARAD +gram = IfcSIUnitName.GRAM +gray = IfcSIUnitName.GRAY +henry = IfcSIUnitName.HENRY +hertz = IfcSIUnitName.HERTZ +joule = IfcSIUnitName.JOULE +kelvin = IfcSIUnitName.KELVIN +lumen = IfcSIUnitName.LUMEN +lux = IfcSIUnitName.LUX +metre = IfcSIUnitName.METRE +mole = IfcSIUnitName.MOLE +newton = IfcSIUnitName.NEWTON +ohm = IfcSIUnitName.OHM +pascal = IfcSIUnitName.PASCAL +radian = IfcSIUnitName.RADIAN +second = IfcSIUnitName.SECOND +siemens = IfcSIUnitName.SIEMENS +sievert = IfcSIUnitName.SIEVERT +square_metre = IfcSIUnitName.SQUARE_METRE +steradian = IfcSIUnitName.STERADIAN +tesla = IfcSIUnitName.TESLA +volt = IfcSIUnitName.VOLT +watt = IfcSIUnitName.WATT +weber = IfcSIUnitName.WEBER IfcSanitaryTerminalTypeEnum = enum_namespace() -bath = getattr(IfcSanitaryTerminalTypeEnum, 'BATH', INDETERMINATE) -bidet = getattr(IfcSanitaryTerminalTypeEnum, 'BIDET', INDETERMINATE) -cistern = getattr(IfcSanitaryTerminalTypeEnum, 'CISTERN', INDETERMINATE) -sanitaryfountain = getattr(IfcSanitaryTerminalTypeEnum, 'SANITARYFOUNTAIN', INDETERMINATE) -shower = getattr(IfcSanitaryTerminalTypeEnum, 'SHOWER', INDETERMINATE) -sink = getattr(IfcSanitaryTerminalTypeEnum, 'SINK', INDETERMINATE) -toiletpan = getattr(IfcSanitaryTerminalTypeEnum, 'TOILETPAN', INDETERMINATE) -urinal = getattr(IfcSanitaryTerminalTypeEnum, 'URINAL', INDETERMINATE) -washhandbasin = getattr(IfcSanitaryTerminalTypeEnum, 'WASHHANDBASIN', INDETERMINATE) -wcseat = getattr(IfcSanitaryTerminalTypeEnum, 'WCSEAT', INDETERMINATE) -userdefined = getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSanitaryTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +bath = IfcSanitaryTerminalTypeEnum.BATH +bidet = IfcSanitaryTerminalTypeEnum.BIDET +cistern = IfcSanitaryTerminalTypeEnum.CISTERN +sanitaryfountain = IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN +shower = IfcSanitaryTerminalTypeEnum.SHOWER +sink = IfcSanitaryTerminalTypeEnum.SINK +toiletpan = IfcSanitaryTerminalTypeEnum.TOILETPAN +urinal = IfcSanitaryTerminalTypeEnum.URINAL +washhandbasin = IfcSanitaryTerminalTypeEnum.WASHHANDBASIN +wcseat = IfcSanitaryTerminalTypeEnum.WCSEAT +userdefined = IfcSanitaryTerminalTypeEnum.USERDEFINED +notdefined = IfcSanitaryTerminalTypeEnum.NOTDEFINED IfcSectionTypeEnum = enum_namespace() -tapered = getattr(IfcSectionTypeEnum, 'TAPERED', INDETERMINATE) -uniform = getattr(IfcSectionTypeEnum, 'UNIFORM', INDETERMINATE) +tapered = IfcSectionTypeEnum.TAPERED +uniform = IfcSectionTypeEnum.UNIFORM IfcSensorTypeEnum = enum_namespace() -co2sensor = getattr(IfcSensorTypeEnum, 'CO2SENSOR', INDETERMINATE) -conductancesensor = getattr(IfcSensorTypeEnum, 'CONDUCTANCESENSOR', INDETERMINATE) -contactsensor = getattr(IfcSensorTypeEnum, 'CONTACTSENSOR', INDETERMINATE) -cosensor = getattr(IfcSensorTypeEnum, 'COSENSOR', INDETERMINATE) -earthquakesensor = getattr(IfcSensorTypeEnum, 'EARTHQUAKESENSOR', INDETERMINATE) -firesensor = getattr(IfcSensorTypeEnum, 'FIRESENSOR', INDETERMINATE) -flowsensor = getattr(IfcSensorTypeEnum, 'FLOWSENSOR', INDETERMINATE) -foreignobjectdetectionsensor = getattr(IfcSensorTypeEnum, 'FOREIGNOBJECTDETECTIONSENSOR', INDETERMINATE) -frostsensor = getattr(IfcSensorTypeEnum, 'FROSTSENSOR', INDETERMINATE) -gassensor = getattr(IfcSensorTypeEnum, 'GASSENSOR', INDETERMINATE) -heatsensor = getattr(IfcSensorTypeEnum, 'HEATSENSOR', INDETERMINATE) -humiditysensor = getattr(IfcSensorTypeEnum, 'HUMIDITYSENSOR', INDETERMINATE) -identifiersensor = getattr(IfcSensorTypeEnum, 'IDENTIFIERSENSOR', INDETERMINATE) -ionconcentrationsensor = getattr(IfcSensorTypeEnum, 'IONCONCENTRATIONSENSOR', INDETERMINATE) -levelsensor = getattr(IfcSensorTypeEnum, 'LEVELSENSOR', INDETERMINATE) -lightsensor = getattr(IfcSensorTypeEnum, 'LIGHTSENSOR', INDETERMINATE) -moisturesensor = getattr(IfcSensorTypeEnum, 'MOISTURESENSOR', INDETERMINATE) -movementsensor = getattr(IfcSensorTypeEnum, 'MOVEMENTSENSOR', INDETERMINATE) -obstaclesensor = getattr(IfcSensorTypeEnum, 'OBSTACLESENSOR', INDETERMINATE) -phsensor = getattr(IfcSensorTypeEnum, 'PHSENSOR', INDETERMINATE) -pressuresensor = getattr(IfcSensorTypeEnum, 'PRESSURESENSOR', INDETERMINATE) -radiationsensor = getattr(IfcSensorTypeEnum, 'RADIATIONSENSOR', INDETERMINATE) -radioactivitysensor = getattr(IfcSensorTypeEnum, 'RADIOACTIVITYSENSOR', INDETERMINATE) -rainsensor = getattr(IfcSensorTypeEnum, 'RAINSENSOR', INDETERMINATE) -smokesensor = getattr(IfcSensorTypeEnum, 'SMOKESENSOR', INDETERMINATE) -snowdepthsensor = getattr(IfcSensorTypeEnum, 'SNOWDEPTHSENSOR', INDETERMINATE) -soundsensor = getattr(IfcSensorTypeEnum, 'SOUNDSENSOR', INDETERMINATE) -temperaturesensor = getattr(IfcSensorTypeEnum, 'TEMPERATURESENSOR', INDETERMINATE) -trainsensor = getattr(IfcSensorTypeEnum, 'TRAINSENSOR', INDETERMINATE) -turnoutclosuresensor = getattr(IfcSensorTypeEnum, 'TURNOUTCLOSURESENSOR', INDETERMINATE) -wheelsensor = getattr(IfcSensorTypeEnum, 'WHEELSENSOR', INDETERMINATE) -windsensor = getattr(IfcSensorTypeEnum, 'WINDSENSOR', INDETERMINATE) -userdefined = getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSensorTypeEnum, 'NOTDEFINED', INDETERMINATE) +co2sensor = IfcSensorTypeEnum.CO2SENSOR +conductancesensor = IfcSensorTypeEnum.CONDUCTANCESENSOR +contactsensor = IfcSensorTypeEnum.CONTACTSENSOR +cosensor = IfcSensorTypeEnum.COSENSOR +earthquakesensor = IfcSensorTypeEnum.EARTHQUAKESENSOR +firesensor = IfcSensorTypeEnum.FIRESENSOR +flowsensor = IfcSensorTypeEnum.FLOWSENSOR +foreignobjectdetectionsensor = IfcSensorTypeEnum.FOREIGNOBJECTDETECTIONSENSOR +frostsensor = IfcSensorTypeEnum.FROSTSENSOR +gassensor = IfcSensorTypeEnum.GASSENSOR +heatsensor = IfcSensorTypeEnum.HEATSENSOR +humiditysensor = IfcSensorTypeEnum.HUMIDITYSENSOR +identifiersensor = IfcSensorTypeEnum.IDENTIFIERSENSOR +ionconcentrationsensor = IfcSensorTypeEnum.IONCONCENTRATIONSENSOR +levelsensor = IfcSensorTypeEnum.LEVELSENSOR +lightsensor = IfcSensorTypeEnum.LIGHTSENSOR +moisturesensor = IfcSensorTypeEnum.MOISTURESENSOR +movementsensor = IfcSensorTypeEnum.MOVEMENTSENSOR +obstaclesensor = IfcSensorTypeEnum.OBSTACLESENSOR +phsensor = IfcSensorTypeEnum.PHSENSOR +pressuresensor = IfcSensorTypeEnum.PRESSURESENSOR +radiationsensor = IfcSensorTypeEnum.RADIATIONSENSOR +radioactivitysensor = IfcSensorTypeEnum.RADIOACTIVITYSENSOR +rainsensor = IfcSensorTypeEnum.RAINSENSOR +smokesensor = IfcSensorTypeEnum.SMOKESENSOR +snowdepthsensor = IfcSensorTypeEnum.SNOWDEPTHSENSOR +soundsensor = IfcSensorTypeEnum.SOUNDSENSOR +temperaturesensor = IfcSensorTypeEnum.TEMPERATURESENSOR +trainsensor = IfcSensorTypeEnum.TRAINSENSOR +turnoutclosuresensor = IfcSensorTypeEnum.TURNOUTCLOSURESENSOR +wheelsensor = IfcSensorTypeEnum.WHEELSENSOR +windsensor = IfcSensorTypeEnum.WINDSENSOR +userdefined = IfcSensorTypeEnum.USERDEFINED +notdefined = IfcSensorTypeEnum.NOTDEFINED IfcSequenceEnum = enum_namespace() -finish_finish = getattr(IfcSequenceEnum, 'FINISH_FINISH', INDETERMINATE) -finish_start = getattr(IfcSequenceEnum, 'FINISH_START', INDETERMINATE) -start_finish = getattr(IfcSequenceEnum, 'START_FINISH', INDETERMINATE) -start_start = getattr(IfcSequenceEnum, 'START_START', INDETERMINATE) -userdefined = getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSequenceEnum, 'NOTDEFINED', INDETERMINATE) +finish_finish = IfcSequenceEnum.FINISH_FINISH +finish_start = IfcSequenceEnum.FINISH_START +start_finish = IfcSequenceEnum.START_FINISH +start_start = IfcSequenceEnum.START_START +userdefined = IfcSequenceEnum.USERDEFINED +notdefined = IfcSequenceEnum.NOTDEFINED IfcShadingDeviceTypeEnum = enum_namespace() -awning = getattr(IfcShadingDeviceTypeEnum, 'AWNING', INDETERMINATE) -jalousie = getattr(IfcShadingDeviceTypeEnum, 'JALOUSIE', INDETERMINATE) -shutter = getattr(IfcShadingDeviceTypeEnum, 'SHUTTER', INDETERMINATE) -userdefined = getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcShadingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +awning = IfcShadingDeviceTypeEnum.AWNING +jalousie = IfcShadingDeviceTypeEnum.JALOUSIE +shutter = IfcShadingDeviceTypeEnum.SHUTTER +userdefined = IfcShadingDeviceTypeEnum.USERDEFINED +notdefined = IfcShadingDeviceTypeEnum.NOTDEFINED IfcSignTypeEnum = enum_namespace() -marker = getattr(IfcSignTypeEnum, 'MARKER', INDETERMINATE) -mirror = getattr(IfcSignTypeEnum, 'MIRROR', INDETERMINATE) -pictoral = getattr(IfcSignTypeEnum, 'PICTORAL', INDETERMINATE) -userdefined = getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSignTypeEnum, 'NOTDEFINED', INDETERMINATE) +marker = IfcSignTypeEnum.MARKER +mirror = IfcSignTypeEnum.MIRROR +pictoral = IfcSignTypeEnum.PICTORAL +userdefined = IfcSignTypeEnum.USERDEFINED +notdefined = IfcSignTypeEnum.NOTDEFINED IfcSignalTypeEnum = enum_namespace() -audio = getattr(IfcSignalTypeEnum, 'AUDIO', INDETERMINATE) -mixed = getattr(IfcSignalTypeEnum, 'MIXED', INDETERMINATE) -visual = getattr(IfcSignalTypeEnum, 'VISUAL', INDETERMINATE) -userdefined = getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSignalTypeEnum, 'NOTDEFINED', INDETERMINATE) +audio = IfcSignalTypeEnum.AUDIO +mixed = IfcSignalTypeEnum.MIXED +visual = IfcSignalTypeEnum.VISUAL +userdefined = IfcSignalTypeEnum.USERDEFINED +notdefined = IfcSignalTypeEnum.NOTDEFINED IfcSimplePropertyTemplateTypeEnum = enum_namespace() -p_boundedvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_BOUNDEDVALUE', INDETERMINATE) -p_enumeratedvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_ENUMERATEDVALUE', INDETERMINATE) -p_listvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_LISTVALUE', INDETERMINATE) -p_referencevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_REFERENCEVALUE', INDETERMINATE) -p_singlevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_SINGLEVALUE', INDETERMINATE) -p_tablevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_TABLEVALUE', INDETERMINATE) -q_area = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_AREA', INDETERMINATE) -q_count = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_COUNT', INDETERMINATE) -q_length = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_LENGTH', INDETERMINATE) -q_number = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_NUMBER', INDETERMINATE) -q_time = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_TIME', INDETERMINATE) -q_volume = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_VOLUME', INDETERMINATE) -q_weight = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_WEIGHT', INDETERMINATE) +p_boundedvalue = IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE +p_enumeratedvalue = IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE +p_listvalue = IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE +p_referencevalue = IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE +p_singlevalue = IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE +p_tablevalue = IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE +q_area = IfcSimplePropertyTemplateTypeEnum.Q_AREA +q_count = IfcSimplePropertyTemplateTypeEnum.Q_COUNT +q_length = IfcSimplePropertyTemplateTypeEnum.Q_LENGTH +q_number = IfcSimplePropertyTemplateTypeEnum.Q_NUMBER +q_time = IfcSimplePropertyTemplateTypeEnum.Q_TIME +q_volume = IfcSimplePropertyTemplateTypeEnum.Q_VOLUME +q_weight = IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT IfcSlabTypeEnum = enum_namespace() -approach_slab = getattr(IfcSlabTypeEnum, 'APPROACH_SLAB', INDETERMINATE) -baseslab = getattr(IfcSlabTypeEnum, 'BASESLAB', INDETERMINATE) -floor = getattr(IfcSlabTypeEnum, 'FLOOR', INDETERMINATE) -landing = getattr(IfcSlabTypeEnum, 'LANDING', INDETERMINATE) -paving = getattr(IfcSlabTypeEnum, 'PAVING', INDETERMINATE) -roof = getattr(IfcSlabTypeEnum, 'ROOF', INDETERMINATE) -sidewalk = getattr(IfcSlabTypeEnum, 'SIDEWALK', INDETERMINATE) -trackslab = getattr(IfcSlabTypeEnum, 'TRACKSLAB', INDETERMINATE) -wearing = getattr(IfcSlabTypeEnum, 'WEARING', INDETERMINATE) -userdefined = getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSlabTypeEnum, 'NOTDEFINED', INDETERMINATE) +approach_slab = IfcSlabTypeEnum.APPROACH_SLAB +baseslab = IfcSlabTypeEnum.BASESLAB +floor = IfcSlabTypeEnum.FLOOR +landing = IfcSlabTypeEnum.LANDING +paving = IfcSlabTypeEnum.PAVING +roof = IfcSlabTypeEnum.ROOF +sidewalk = IfcSlabTypeEnum.SIDEWALK +trackslab = IfcSlabTypeEnum.TRACKSLAB +wearing = IfcSlabTypeEnum.WEARING +userdefined = IfcSlabTypeEnum.USERDEFINED +notdefined = IfcSlabTypeEnum.NOTDEFINED IfcSolarDeviceTypeEnum = enum_namespace() -solarcollector = getattr(IfcSolarDeviceTypeEnum, 'SOLARCOLLECTOR', INDETERMINATE) -solarpanel = getattr(IfcSolarDeviceTypeEnum, 'SOLARPANEL', INDETERMINATE) -userdefined = getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSolarDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +solarcollector = IfcSolarDeviceTypeEnum.SOLARCOLLECTOR +solarpanel = IfcSolarDeviceTypeEnum.SOLARPANEL +userdefined = IfcSolarDeviceTypeEnum.USERDEFINED +notdefined = IfcSolarDeviceTypeEnum.NOTDEFINED IfcSpaceHeaterTypeEnum = enum_namespace() -convector = getattr(IfcSpaceHeaterTypeEnum, 'CONVECTOR', INDETERMINATE) -radiator = getattr(IfcSpaceHeaterTypeEnum, 'RADIATOR', INDETERMINATE) -userdefined = getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpaceHeaterTypeEnum, 'NOTDEFINED', INDETERMINATE) +convector = IfcSpaceHeaterTypeEnum.CONVECTOR +radiator = IfcSpaceHeaterTypeEnum.RADIATOR +userdefined = IfcSpaceHeaterTypeEnum.USERDEFINED +notdefined = IfcSpaceHeaterTypeEnum.NOTDEFINED IfcSpaceTypeEnum = enum_namespace() -berth = getattr(IfcSpaceTypeEnum, 'BERTH', INDETERMINATE) -external = getattr(IfcSpaceTypeEnum, 'EXTERNAL', INDETERMINATE) -gfa = getattr(IfcSpaceTypeEnum, 'GFA', INDETERMINATE) -internal = getattr(IfcSpaceTypeEnum, 'INTERNAL', INDETERMINATE) -parking = getattr(IfcSpaceTypeEnum, 'PARKING', INDETERMINATE) -space = getattr(IfcSpaceTypeEnum, 'SPACE', INDETERMINATE) -userdefined = getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpaceTypeEnum, 'NOTDEFINED', INDETERMINATE) +berth = IfcSpaceTypeEnum.BERTH +external = IfcSpaceTypeEnum.EXTERNAL +gfa = IfcSpaceTypeEnum.GFA +internal = IfcSpaceTypeEnum.INTERNAL +parking = IfcSpaceTypeEnum.PARKING +space = IfcSpaceTypeEnum.SPACE +userdefined = IfcSpaceTypeEnum.USERDEFINED +notdefined = IfcSpaceTypeEnum.NOTDEFINED IfcSpatialZoneTypeEnum = enum_namespace() -construction = getattr(IfcSpatialZoneTypeEnum, 'CONSTRUCTION', INDETERMINATE) -firesafety = getattr(IfcSpatialZoneTypeEnum, 'FIRESAFETY', INDETERMINATE) -interference = getattr(IfcSpatialZoneTypeEnum, 'INTERFERENCE', INDETERMINATE) -lighting = getattr(IfcSpatialZoneTypeEnum, 'LIGHTING', INDETERMINATE) -occupancy = getattr(IfcSpatialZoneTypeEnum, 'OCCUPANCY', INDETERMINATE) -reservation = getattr(IfcSpatialZoneTypeEnum, 'RESERVATION', INDETERMINATE) -security = getattr(IfcSpatialZoneTypeEnum, 'SECURITY', INDETERMINATE) -thermal = getattr(IfcSpatialZoneTypeEnum, 'THERMAL', INDETERMINATE) -transport = getattr(IfcSpatialZoneTypeEnum, 'TRANSPORT', INDETERMINATE) -ventilation = getattr(IfcSpatialZoneTypeEnum, 'VENTILATION', INDETERMINATE) -userdefined = getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpatialZoneTypeEnum, 'NOTDEFINED', INDETERMINATE) +construction = IfcSpatialZoneTypeEnum.CONSTRUCTION +firesafety = IfcSpatialZoneTypeEnum.FIRESAFETY +interference = IfcSpatialZoneTypeEnum.INTERFERENCE +lighting = IfcSpatialZoneTypeEnum.LIGHTING +occupancy = IfcSpatialZoneTypeEnum.OCCUPANCY +reservation = IfcSpatialZoneTypeEnum.RESERVATION +security = IfcSpatialZoneTypeEnum.SECURITY +thermal = IfcSpatialZoneTypeEnum.THERMAL +transport = IfcSpatialZoneTypeEnum.TRANSPORT +ventilation = IfcSpatialZoneTypeEnum.VENTILATION +userdefined = IfcSpatialZoneTypeEnum.USERDEFINED +notdefined = IfcSpatialZoneTypeEnum.NOTDEFINED IfcStackTerminalTypeEnum = enum_namespace() -birdcage = getattr(IfcStackTerminalTypeEnum, 'BIRDCAGE', INDETERMINATE) -cowl = getattr(IfcStackTerminalTypeEnum, 'COWL', INDETERMINATE) -rainwaterhopper = getattr(IfcStackTerminalTypeEnum, 'RAINWATERHOPPER', INDETERMINATE) -userdefined = getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStackTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +birdcage = IfcStackTerminalTypeEnum.BIRDCAGE +cowl = IfcStackTerminalTypeEnum.COWL +rainwaterhopper = IfcStackTerminalTypeEnum.RAINWATERHOPPER +userdefined = IfcStackTerminalTypeEnum.USERDEFINED +notdefined = IfcStackTerminalTypeEnum.NOTDEFINED IfcStairFlightTypeEnum = enum_namespace() -curved = getattr(IfcStairFlightTypeEnum, 'CURVED', INDETERMINATE) -freeform = getattr(IfcStairFlightTypeEnum, 'FREEFORM', INDETERMINATE) -spiral = getattr(IfcStairFlightTypeEnum, 'SPIRAL', INDETERMINATE) -straight = getattr(IfcStairFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -winder = getattr(IfcStairFlightTypeEnum, 'WINDER', INDETERMINATE) -userdefined = getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStairFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +curved = IfcStairFlightTypeEnum.CURVED +freeform = IfcStairFlightTypeEnum.FREEFORM +spiral = IfcStairFlightTypeEnum.SPIRAL +straight = IfcStairFlightTypeEnum.STRAIGHT +winder = IfcStairFlightTypeEnum.WINDER +userdefined = IfcStairFlightTypeEnum.USERDEFINED +notdefined = IfcStairFlightTypeEnum.NOTDEFINED IfcStairTypeEnum = enum_namespace() -curved_run_stair = getattr(IfcStairTypeEnum, 'CURVED_RUN_STAIR', INDETERMINATE) -double_return_stair = getattr(IfcStairTypeEnum, 'DOUBLE_RETURN_STAIR', INDETERMINATE) -half_turn_stair = getattr(IfcStairTypeEnum, 'HALF_TURN_STAIR', INDETERMINATE) -half_winding_stair = getattr(IfcStairTypeEnum, 'HALF_WINDING_STAIR', INDETERMINATE) -ladder = getattr(IfcStairTypeEnum, 'LADDER', INDETERMINATE) -quarter_turn_stair = getattr(IfcStairTypeEnum, 'QUARTER_TURN_STAIR', INDETERMINATE) -quarter_winding_stair = getattr(IfcStairTypeEnum, 'QUARTER_WINDING_STAIR', INDETERMINATE) -spiral_stair = getattr(IfcStairTypeEnum, 'SPIRAL_STAIR', INDETERMINATE) -straight_run_stair = getattr(IfcStairTypeEnum, 'STRAIGHT_RUN_STAIR', INDETERMINATE) -three_quarter_turn_stair = getattr(IfcStairTypeEnum, 'THREE_QUARTER_TURN_STAIR', INDETERMINATE) -three_quarter_winding_stair = getattr(IfcStairTypeEnum, 'THREE_QUARTER_WINDING_STAIR', INDETERMINATE) -two_curved_run_stair = getattr(IfcStairTypeEnum, 'TWO_CURVED_RUN_STAIR', INDETERMINATE) -two_quarter_turn_stair = getattr(IfcStairTypeEnum, 'TWO_QUARTER_TURN_STAIR', INDETERMINATE) -two_quarter_winding_stair = getattr(IfcStairTypeEnum, 'TWO_QUARTER_WINDING_STAIR', INDETERMINATE) -two_straight_run_stair = getattr(IfcStairTypeEnum, 'TWO_STRAIGHT_RUN_STAIR', INDETERMINATE) -userdefined = getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStairTypeEnum, 'NOTDEFINED', INDETERMINATE) +curved_run_stair = IfcStairTypeEnum.CURVED_RUN_STAIR +double_return_stair = IfcStairTypeEnum.DOUBLE_RETURN_STAIR +half_turn_stair = IfcStairTypeEnum.HALF_TURN_STAIR +half_winding_stair = IfcStairTypeEnum.HALF_WINDING_STAIR +ladder = IfcStairTypeEnum.LADDER +quarter_turn_stair = IfcStairTypeEnum.QUARTER_TURN_STAIR +quarter_winding_stair = IfcStairTypeEnum.QUARTER_WINDING_STAIR +spiral_stair = IfcStairTypeEnum.SPIRAL_STAIR +straight_run_stair = IfcStairTypeEnum.STRAIGHT_RUN_STAIR +three_quarter_turn_stair = IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR +three_quarter_winding_stair = IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR +two_curved_run_stair = IfcStairTypeEnum.TWO_CURVED_RUN_STAIR +two_quarter_turn_stair = IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR +two_quarter_winding_stair = IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR +two_straight_run_stair = IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR +userdefined = IfcStairTypeEnum.USERDEFINED +notdefined = IfcStairTypeEnum.NOTDEFINED IfcStateEnum = enum_namespace() -locked = getattr(IfcStateEnum, 'LOCKED', INDETERMINATE) -readonly = getattr(IfcStateEnum, 'READONLY', INDETERMINATE) -readonlylocked = getattr(IfcStateEnum, 'READONLYLOCKED', INDETERMINATE) -readwrite = getattr(IfcStateEnum, 'READWRITE', INDETERMINATE) -readwritelocked = getattr(IfcStateEnum, 'READWRITELOCKED', INDETERMINATE) +locked = IfcStateEnum.LOCKED +readonly = IfcStateEnum.READONLY +readonlylocked = IfcStateEnum.READONLYLOCKED +readwrite = IfcStateEnum.READWRITE +readwritelocked = IfcStateEnum.READWRITELOCKED IfcStructuralCurveActivityTypeEnum = enum_namespace() -const = getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE) -discrete = getattr(IfcStructuralCurveActivityTypeEnum, 'DISCRETE', INDETERMINATE) -equidistant = getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE) -linear = getattr(IfcStructuralCurveActivityTypeEnum, 'LINEAR', INDETERMINATE) -parabola = getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE) -polygonal = getattr(IfcStructuralCurveActivityTypeEnum, 'POLYGONAL', INDETERMINATE) -sinus = getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) -userdefined = getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralCurveActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralCurveActivityTypeEnum.CONST +discrete = IfcStructuralCurveActivityTypeEnum.DISCRETE +equidistant = IfcStructuralCurveActivityTypeEnum.EQUIDISTANT +linear = IfcStructuralCurveActivityTypeEnum.LINEAR +parabola = IfcStructuralCurveActivityTypeEnum.PARABOLA +polygonal = IfcStructuralCurveActivityTypeEnum.POLYGONAL +sinus = IfcStructuralCurveActivityTypeEnum.SINUS +userdefined = IfcStructuralCurveActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveActivityTypeEnum.NOTDEFINED IfcStructuralCurveMemberTypeEnum = enum_namespace() -cable = getattr(IfcStructuralCurveMemberTypeEnum, 'CABLE', INDETERMINATE) -compression_member = getattr(IfcStructuralCurveMemberTypeEnum, 'COMPRESSION_MEMBER', INDETERMINATE) -pin_joined_member = getattr(IfcStructuralCurveMemberTypeEnum, 'PIN_JOINED_MEMBER', INDETERMINATE) -rigid_joined_member = getattr(IfcStructuralCurveMemberTypeEnum, 'RIGID_JOINED_MEMBER', INDETERMINATE) -tension_member = getattr(IfcStructuralCurveMemberTypeEnum, 'TENSION_MEMBER', INDETERMINATE) -userdefined = getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralCurveMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcStructuralCurveMemberTypeEnum.CABLE +compression_member = IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER +pin_joined_member = IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER +rigid_joined_member = IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER +tension_member = IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER +userdefined = IfcStructuralCurveMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveMemberTypeEnum.NOTDEFINED IfcStructuralSurfaceActivityTypeEnum = enum_namespace() -bilinear = getattr(IfcStructuralSurfaceActivityTypeEnum, 'BILINEAR', INDETERMINATE) -const = getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE) -discrete = getattr(IfcStructuralSurfaceActivityTypeEnum, 'DISCRETE', INDETERMINATE) -isocontour = getattr(IfcStructuralSurfaceActivityTypeEnum, 'ISOCONTOUR', INDETERMINATE) -userdefined = getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralSurfaceActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +bilinear = IfcStructuralSurfaceActivityTypeEnum.BILINEAR +const = IfcStructuralSurfaceActivityTypeEnum.CONST +discrete = IfcStructuralSurfaceActivityTypeEnum.DISCRETE +isocontour = IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR +userdefined = IfcStructuralSurfaceActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED IfcStructuralSurfaceMemberTypeEnum = enum_namespace() -bending_element = getattr(IfcStructuralSurfaceMemberTypeEnum, 'BENDING_ELEMENT', INDETERMINATE) -membrane_element = getattr(IfcStructuralSurfaceMemberTypeEnum, 'MEMBRANE_ELEMENT', INDETERMINATE) -shell = getattr(IfcStructuralSurfaceMemberTypeEnum, 'SHELL', INDETERMINATE) -userdefined = getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralSurfaceMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_element = IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT +membrane_element = IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT +shell = IfcStructuralSurfaceMemberTypeEnum.SHELL +userdefined = IfcStructuralSurfaceMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED IfcSubContractResourceTypeEnum = enum_namespace() -purchase = getattr(IfcSubContractResourceTypeEnum, 'PURCHASE', INDETERMINATE) -work = getattr(IfcSubContractResourceTypeEnum, 'WORK', INDETERMINATE) -userdefined = getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSubContractResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +purchase = IfcSubContractResourceTypeEnum.PURCHASE +work = IfcSubContractResourceTypeEnum.WORK +userdefined = IfcSubContractResourceTypeEnum.USERDEFINED +notdefined = IfcSubContractResourceTypeEnum.NOTDEFINED IfcSurfaceFeatureTypeEnum = enum_namespace() -defect = getattr(IfcSurfaceFeatureTypeEnum, 'DEFECT', INDETERMINATE) -hatchmarking = getattr(IfcSurfaceFeatureTypeEnum, 'HATCHMARKING', INDETERMINATE) -linemarking = getattr(IfcSurfaceFeatureTypeEnum, 'LINEMARKING', INDETERMINATE) -mark = getattr(IfcSurfaceFeatureTypeEnum, 'MARK', INDETERMINATE) -nonskidsurfacing = getattr(IfcSurfaceFeatureTypeEnum, 'NONSKIDSURFACING', INDETERMINATE) -pavementsurfacemarking = getattr(IfcSurfaceFeatureTypeEnum, 'PAVEMENTSURFACEMARKING', INDETERMINATE) -rumblestrip = getattr(IfcSurfaceFeatureTypeEnum, 'RUMBLESTRIP', INDETERMINATE) -symbolmarking = getattr(IfcSurfaceFeatureTypeEnum, 'SYMBOLMARKING', INDETERMINATE) -tag = getattr(IfcSurfaceFeatureTypeEnum, 'TAG', INDETERMINATE) -transverserumblestrip = getattr(IfcSurfaceFeatureTypeEnum, 'TRANSVERSERUMBLESTRIP', INDETERMINATE) -treatment = getattr(IfcSurfaceFeatureTypeEnum, 'TREATMENT', INDETERMINATE) -userdefined = getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSurfaceFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +defect = IfcSurfaceFeatureTypeEnum.DEFECT +hatchmarking = IfcSurfaceFeatureTypeEnum.HATCHMARKING +linemarking = IfcSurfaceFeatureTypeEnum.LINEMARKING +mark = IfcSurfaceFeatureTypeEnum.MARK +nonskidsurfacing = IfcSurfaceFeatureTypeEnum.NONSKIDSURFACING +pavementsurfacemarking = IfcSurfaceFeatureTypeEnum.PAVEMENTSURFACEMARKING +rumblestrip = IfcSurfaceFeatureTypeEnum.RUMBLESTRIP +symbolmarking = IfcSurfaceFeatureTypeEnum.SYMBOLMARKING +tag = IfcSurfaceFeatureTypeEnum.TAG +transverserumblestrip = IfcSurfaceFeatureTypeEnum.TRANSVERSERUMBLESTRIP +treatment = IfcSurfaceFeatureTypeEnum.TREATMENT +userdefined = IfcSurfaceFeatureTypeEnum.USERDEFINED +notdefined = IfcSurfaceFeatureTypeEnum.NOTDEFINED IfcSurfaceSide = enum_namespace() -both = getattr(IfcSurfaceSide, 'BOTH', INDETERMINATE) -negative = getattr(IfcSurfaceSide, 'NEGATIVE', INDETERMINATE) -positive = getattr(IfcSurfaceSide, 'POSITIVE', INDETERMINATE) +both = IfcSurfaceSide.BOTH +negative = IfcSurfaceSide.NEGATIVE +positive = IfcSurfaceSide.POSITIVE IfcSwitchingDeviceTypeEnum = enum_namespace() -contactor = getattr(IfcSwitchingDeviceTypeEnum, 'CONTACTOR', INDETERMINATE) -dimmerswitch = getattr(IfcSwitchingDeviceTypeEnum, 'DIMMERSWITCH', INDETERMINATE) -emergencystop = getattr(IfcSwitchingDeviceTypeEnum, 'EMERGENCYSTOP', INDETERMINATE) -keypad = getattr(IfcSwitchingDeviceTypeEnum, 'KEYPAD', INDETERMINATE) -momentaryswitch = getattr(IfcSwitchingDeviceTypeEnum, 'MOMENTARYSWITCH', INDETERMINATE) -relay = getattr(IfcSwitchingDeviceTypeEnum, 'RELAY', INDETERMINATE) -selectorswitch = getattr(IfcSwitchingDeviceTypeEnum, 'SELECTORSWITCH', INDETERMINATE) -starter = getattr(IfcSwitchingDeviceTypeEnum, 'STARTER', INDETERMINATE) -start_and_stop_equipment = getattr(IfcSwitchingDeviceTypeEnum, 'START_AND_STOP_EQUIPMENT', INDETERMINATE) -switchdisconnector = getattr(IfcSwitchingDeviceTypeEnum, 'SWITCHDISCONNECTOR', INDETERMINATE) -toggleswitch = getattr(IfcSwitchingDeviceTypeEnum, 'TOGGLESWITCH', INDETERMINATE) -userdefined = getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSwitchingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +contactor = IfcSwitchingDeviceTypeEnum.CONTACTOR +dimmerswitch = IfcSwitchingDeviceTypeEnum.DIMMERSWITCH +emergencystop = IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP +keypad = IfcSwitchingDeviceTypeEnum.KEYPAD +momentaryswitch = IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH +relay = IfcSwitchingDeviceTypeEnum.RELAY +selectorswitch = IfcSwitchingDeviceTypeEnum.SELECTORSWITCH +starter = IfcSwitchingDeviceTypeEnum.STARTER +start_and_stop_equipment = IfcSwitchingDeviceTypeEnum.START_AND_STOP_EQUIPMENT +switchdisconnector = IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR +toggleswitch = IfcSwitchingDeviceTypeEnum.TOGGLESWITCH +userdefined = IfcSwitchingDeviceTypeEnum.USERDEFINED +notdefined = IfcSwitchingDeviceTypeEnum.NOTDEFINED IfcSystemFurnitureElementTypeEnum = enum_namespace() -panel = getattr(IfcSystemFurnitureElementTypeEnum, 'PANEL', INDETERMINATE) -subrack = getattr(IfcSystemFurnitureElementTypeEnum, 'SUBRACK', INDETERMINATE) -worksurface = getattr(IfcSystemFurnitureElementTypeEnum, 'WORKSURFACE', INDETERMINATE) -userdefined = getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSystemFurnitureElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +panel = IfcSystemFurnitureElementTypeEnum.PANEL +subrack = IfcSystemFurnitureElementTypeEnum.SUBRACK +worksurface = IfcSystemFurnitureElementTypeEnum.WORKSURFACE +userdefined = IfcSystemFurnitureElementTypeEnum.USERDEFINED +notdefined = IfcSystemFurnitureElementTypeEnum.NOTDEFINED IfcTankTypeEnum = enum_namespace() -basin = getattr(IfcTankTypeEnum, 'BASIN', INDETERMINATE) -breakpressure = getattr(IfcTankTypeEnum, 'BREAKPRESSURE', INDETERMINATE) -expansion = getattr(IfcTankTypeEnum, 'EXPANSION', INDETERMINATE) -feedandexpansion = getattr(IfcTankTypeEnum, 'FEEDANDEXPANSION', INDETERMINATE) -oilretentiontray = getattr(IfcTankTypeEnum, 'OILRETENTIONTRAY', INDETERMINATE) -pressurevessel = getattr(IfcTankTypeEnum, 'PRESSUREVESSEL', INDETERMINATE) -storage = getattr(IfcTankTypeEnum, 'STORAGE', INDETERMINATE) -vessel = getattr(IfcTankTypeEnum, 'VESSEL', INDETERMINATE) -userdefined = getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTankTypeEnum, 'NOTDEFINED', INDETERMINATE) +basin = IfcTankTypeEnum.BASIN +breakpressure = IfcTankTypeEnum.BREAKPRESSURE +expansion = IfcTankTypeEnum.EXPANSION +feedandexpansion = IfcTankTypeEnum.FEEDANDEXPANSION +oilretentiontray = IfcTankTypeEnum.OILRETENTIONTRAY +pressurevessel = IfcTankTypeEnum.PRESSUREVESSEL +storage = IfcTankTypeEnum.STORAGE +vessel = IfcTankTypeEnum.VESSEL +userdefined = IfcTankTypeEnum.USERDEFINED +notdefined = IfcTankTypeEnum.NOTDEFINED IfcTaskDurationEnum = enum_namespace() -elapsedtime = getattr(IfcTaskDurationEnum, 'ELAPSEDTIME', INDETERMINATE) -worktime = getattr(IfcTaskDurationEnum, 'WORKTIME', INDETERMINATE) -notdefined = getattr(IfcTaskDurationEnum, 'NOTDEFINED', INDETERMINATE) +elapsedtime = IfcTaskDurationEnum.ELAPSEDTIME +worktime = IfcTaskDurationEnum.WORKTIME +notdefined = IfcTaskDurationEnum.NOTDEFINED IfcTaskTypeEnum = enum_namespace() -adjustment = getattr(IfcTaskTypeEnum, 'ADJUSTMENT', INDETERMINATE) -attendance = getattr(IfcTaskTypeEnum, 'ATTENDANCE', INDETERMINATE) -calibration = getattr(IfcTaskTypeEnum, 'CALIBRATION', INDETERMINATE) -construction = getattr(IfcTaskTypeEnum, 'CONSTRUCTION', INDETERMINATE) -demolition = getattr(IfcTaskTypeEnum, 'DEMOLITION', INDETERMINATE) -dismantle = getattr(IfcTaskTypeEnum, 'DISMANTLE', INDETERMINATE) -disposal = getattr(IfcTaskTypeEnum, 'DISPOSAL', INDETERMINATE) -emergency = getattr(IfcTaskTypeEnum, 'EMERGENCY', INDETERMINATE) -inspection = getattr(IfcTaskTypeEnum, 'INSPECTION', INDETERMINATE) -installation = getattr(IfcTaskTypeEnum, 'INSTALLATION', INDETERMINATE) -logistic = getattr(IfcTaskTypeEnum, 'LOGISTIC', INDETERMINATE) -maintenance = getattr(IfcTaskTypeEnum, 'MAINTENANCE', INDETERMINATE) -move = getattr(IfcTaskTypeEnum, 'MOVE', INDETERMINATE) -operation = getattr(IfcTaskTypeEnum, 'OPERATION', INDETERMINATE) -removal = getattr(IfcTaskTypeEnum, 'REMOVAL', INDETERMINATE) -renovation = getattr(IfcTaskTypeEnum, 'RENOVATION', INDETERMINATE) -safety = getattr(IfcTaskTypeEnum, 'SAFETY', INDETERMINATE) -shutdown = getattr(IfcTaskTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = getattr(IfcTaskTypeEnum, 'STARTUP', INDETERMINATE) -testing = getattr(IfcTaskTypeEnum, 'TESTING', INDETERMINATE) -troubleshooting = getattr(IfcTaskTypeEnum, 'TROUBLESHOOTING', INDETERMINATE) -userdefined = getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTaskTypeEnum, 'NOTDEFINED', INDETERMINATE) +adjustment = IfcTaskTypeEnum.ADJUSTMENT +attendance = IfcTaskTypeEnum.ATTENDANCE +calibration = IfcTaskTypeEnum.CALIBRATION +construction = IfcTaskTypeEnum.CONSTRUCTION +demolition = IfcTaskTypeEnum.DEMOLITION +dismantle = IfcTaskTypeEnum.DISMANTLE +disposal = IfcTaskTypeEnum.DISPOSAL +emergency = IfcTaskTypeEnum.EMERGENCY +inspection = IfcTaskTypeEnum.INSPECTION +installation = IfcTaskTypeEnum.INSTALLATION +logistic = IfcTaskTypeEnum.LOGISTIC +maintenance = IfcTaskTypeEnum.MAINTENANCE +move = IfcTaskTypeEnum.MOVE +operation = IfcTaskTypeEnum.OPERATION +removal = IfcTaskTypeEnum.REMOVAL +renovation = IfcTaskTypeEnum.RENOVATION +safety = IfcTaskTypeEnum.SAFETY +shutdown = IfcTaskTypeEnum.SHUTDOWN +startup = IfcTaskTypeEnum.STARTUP +testing = IfcTaskTypeEnum.TESTING +troubleshooting = IfcTaskTypeEnum.TROUBLESHOOTING +userdefined = IfcTaskTypeEnum.USERDEFINED +notdefined = IfcTaskTypeEnum.NOTDEFINED IfcTendonAnchorTypeEnum = enum_namespace() -coupler = getattr(IfcTendonAnchorTypeEnum, 'COUPLER', INDETERMINATE) -fixed_end = getattr(IfcTendonAnchorTypeEnum, 'FIXED_END', INDETERMINATE) -tensioning_end = getattr(IfcTendonAnchorTypeEnum, 'TENSIONING_END', INDETERMINATE) -userdefined = getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonAnchorTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonAnchorTypeEnum.COUPLER +fixed_end = IfcTendonAnchorTypeEnum.FIXED_END +tensioning_end = IfcTendonAnchorTypeEnum.TENSIONING_END +userdefined = IfcTendonAnchorTypeEnum.USERDEFINED +notdefined = IfcTendonAnchorTypeEnum.NOTDEFINED IfcTendonConduitTypeEnum = enum_namespace() -coupler = getattr(IfcTendonConduitTypeEnum, 'COUPLER', INDETERMINATE) -diabolo = getattr(IfcTendonConduitTypeEnum, 'DIABOLO', INDETERMINATE) -duct = getattr(IfcTendonConduitTypeEnum, 'DUCT', INDETERMINATE) -grouting_duct = getattr(IfcTendonConduitTypeEnum, 'GROUTING_DUCT', INDETERMINATE) -trumpet = getattr(IfcTendonConduitTypeEnum, 'TRUMPET', INDETERMINATE) -userdefined = getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonConduitTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonConduitTypeEnum.COUPLER +diabolo = IfcTendonConduitTypeEnum.DIABOLO +duct = IfcTendonConduitTypeEnum.DUCT +grouting_duct = IfcTendonConduitTypeEnum.GROUTING_DUCT +trumpet = IfcTendonConduitTypeEnum.TRUMPET +userdefined = IfcTendonConduitTypeEnum.USERDEFINED +notdefined = IfcTendonConduitTypeEnum.NOTDEFINED IfcTendonTypeEnum = enum_namespace() -bar = getattr(IfcTendonTypeEnum, 'BAR', INDETERMINATE) -coated = getattr(IfcTendonTypeEnum, 'COATED', INDETERMINATE) -strand = getattr(IfcTendonTypeEnum, 'STRAND', INDETERMINATE) -wire = getattr(IfcTendonTypeEnum, 'WIRE', INDETERMINATE) -userdefined = getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonTypeEnum, 'NOTDEFINED', INDETERMINATE) +bar = IfcTendonTypeEnum.BAR +coated = IfcTendonTypeEnum.COATED +strand = IfcTendonTypeEnum.STRAND +wire = IfcTendonTypeEnum.WIRE +userdefined = IfcTendonTypeEnum.USERDEFINED +notdefined = IfcTendonTypeEnum.NOTDEFINED IfcTextPath = enum_namespace() -down = getattr(IfcTextPath, 'DOWN', INDETERMINATE) -left = getattr(IfcTextPath, 'LEFT', INDETERMINATE) -right = getattr(IfcTextPath, 'RIGHT', INDETERMINATE) -up = getattr(IfcTextPath, 'UP', INDETERMINATE) +down = IfcTextPath.DOWN +left = IfcTextPath.LEFT +right = IfcTextPath.RIGHT +up = IfcTextPath.UP IfcTimeSeriesDataTypeEnum = enum_namespace() -continuous = getattr(IfcTimeSeriesDataTypeEnum, 'CONTINUOUS', INDETERMINATE) -discrete = getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETE', INDETERMINATE) -discretebinary = getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETEBINARY', INDETERMINATE) -piecewisebinary = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISEBINARY', INDETERMINATE) -piecewiseconstant = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONSTANT', INDETERMINATE) -piecewisecontinuous = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONTINUOUS', INDETERMINATE) -notdefined = getattr(IfcTimeSeriesDataTypeEnum, 'NOTDEFINED', INDETERMINATE) +continuous = IfcTimeSeriesDataTypeEnum.CONTINUOUS +discrete = IfcTimeSeriesDataTypeEnum.DISCRETE +discretebinary = IfcTimeSeriesDataTypeEnum.DISCRETEBINARY +piecewisebinary = IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY +piecewiseconstant = IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT +piecewisecontinuous = IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS +notdefined = IfcTimeSeriesDataTypeEnum.NOTDEFINED IfcTrackElementTypeEnum = enum_namespace() -blockingdevice = getattr(IfcTrackElementTypeEnum, 'BLOCKINGDEVICE', INDETERMINATE) -derailer = getattr(IfcTrackElementTypeEnum, 'DERAILER', INDETERMINATE) -frog = getattr(IfcTrackElementTypeEnum, 'FROG', INDETERMINATE) -half_set_of_blades = getattr(IfcTrackElementTypeEnum, 'HALF_SET_OF_BLADES', INDETERMINATE) -sleeper = getattr(IfcTrackElementTypeEnum, 'SLEEPER', INDETERMINATE) -speedregulator = getattr(IfcTrackElementTypeEnum, 'SPEEDREGULATOR', INDETERMINATE) -trackendofalignment = getattr(IfcTrackElementTypeEnum, 'TRACKENDOFALIGNMENT', INDETERMINATE) -vehiclestop = getattr(IfcTrackElementTypeEnum, 'VEHICLESTOP', INDETERMINATE) -userdefined = getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTrackElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +blockingdevice = IfcTrackElementTypeEnum.BLOCKINGDEVICE +derailer = IfcTrackElementTypeEnum.DERAILER +frog = IfcTrackElementTypeEnum.FROG +half_set_of_blades = IfcTrackElementTypeEnum.HALF_SET_OF_BLADES +sleeper = IfcTrackElementTypeEnum.SLEEPER +speedregulator = IfcTrackElementTypeEnum.SPEEDREGULATOR +trackendofalignment = IfcTrackElementTypeEnum.TRACKENDOFALIGNMENT +vehiclestop = IfcTrackElementTypeEnum.VEHICLESTOP +userdefined = IfcTrackElementTypeEnum.USERDEFINED +notdefined = IfcTrackElementTypeEnum.NOTDEFINED IfcTransformerTypeEnum = enum_namespace() -chopper = getattr(IfcTransformerTypeEnum, 'CHOPPER', INDETERMINATE) -combined = getattr(IfcTransformerTypeEnum, 'COMBINED', INDETERMINATE) -current = getattr(IfcTransformerTypeEnum, 'CURRENT', INDETERMINATE) -frequency = getattr(IfcTransformerTypeEnum, 'FREQUENCY', INDETERMINATE) -inverter = getattr(IfcTransformerTypeEnum, 'INVERTER', INDETERMINATE) -rectifier = getattr(IfcTransformerTypeEnum, 'RECTIFIER', INDETERMINATE) -voltage = getattr(IfcTransformerTypeEnum, 'VOLTAGE', INDETERMINATE) -userdefined = getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTransformerTypeEnum, 'NOTDEFINED', INDETERMINATE) +chopper = IfcTransformerTypeEnum.CHOPPER +combined = IfcTransformerTypeEnum.COMBINED +current = IfcTransformerTypeEnum.CURRENT +frequency = IfcTransformerTypeEnum.FREQUENCY +inverter = IfcTransformerTypeEnum.INVERTER +rectifier = IfcTransformerTypeEnum.RECTIFIER +voltage = IfcTransformerTypeEnum.VOLTAGE +userdefined = IfcTransformerTypeEnum.USERDEFINED +notdefined = IfcTransformerTypeEnum.NOTDEFINED IfcTransitionCode = enum_namespace() -continuous = getattr(IfcTransitionCode, 'CONTINUOUS', INDETERMINATE) -contsamegradient = getattr(IfcTransitionCode, 'CONTSAMEGRADIENT', INDETERMINATE) -contsamegradientsamecurvature = getattr(IfcTransitionCode, 'CONTSAMEGRADIENTSAMECURVATURE', INDETERMINATE) -discontinuous = getattr(IfcTransitionCode, 'DISCONTINUOUS', INDETERMINATE) +continuous = IfcTransitionCode.CONTINUOUS +contsamegradient = IfcTransitionCode.CONTSAMEGRADIENT +contsamegradientsamecurvature = IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE +discontinuous = IfcTransitionCode.DISCONTINUOUS IfcTransportElementTypeEnum = enum_namespace() -craneway = getattr(IfcTransportElementTypeEnum, 'CRANEWAY', INDETERMINATE) -elevator = getattr(IfcTransportElementTypeEnum, 'ELEVATOR', INDETERMINATE) -escalator = getattr(IfcTransportElementTypeEnum, 'ESCALATOR', INDETERMINATE) -haulinggear = getattr(IfcTransportElementTypeEnum, 'HAULINGGEAR', INDETERMINATE) -liftinggear = getattr(IfcTransportElementTypeEnum, 'LIFTINGGEAR', INDETERMINATE) -movingwalkway = getattr(IfcTransportElementTypeEnum, 'MOVINGWALKWAY', INDETERMINATE) -userdefined = getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTransportElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +craneway = IfcTransportElementTypeEnum.CRANEWAY +elevator = IfcTransportElementTypeEnum.ELEVATOR +escalator = IfcTransportElementTypeEnum.ESCALATOR +haulinggear = IfcTransportElementTypeEnum.HAULINGGEAR +liftinggear = IfcTransportElementTypeEnum.LIFTINGGEAR +movingwalkway = IfcTransportElementTypeEnum.MOVINGWALKWAY +userdefined = IfcTransportElementTypeEnum.USERDEFINED +notdefined = IfcTransportElementTypeEnum.NOTDEFINED IfcTrimmingPreference = enum_namespace() -cartesian = getattr(IfcTrimmingPreference, 'CARTESIAN', INDETERMINATE) -parameter = getattr(IfcTrimmingPreference, 'PARAMETER', INDETERMINATE) -unspecified = getattr(IfcTrimmingPreference, 'UNSPECIFIED', INDETERMINATE) +cartesian = IfcTrimmingPreference.CARTESIAN +parameter = IfcTrimmingPreference.PARAMETER +unspecified = IfcTrimmingPreference.UNSPECIFIED IfcTubeBundleTypeEnum = enum_namespace() -finned = getattr(IfcTubeBundleTypeEnum, 'FINNED', INDETERMINATE) -userdefined = getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTubeBundleTypeEnum, 'NOTDEFINED', INDETERMINATE) +finned = IfcTubeBundleTypeEnum.FINNED +userdefined = IfcTubeBundleTypeEnum.USERDEFINED +notdefined = IfcTubeBundleTypeEnum.NOTDEFINED IfcUnitEnum = enum_namespace() -absorbeddoseunit = getattr(IfcUnitEnum, 'ABSORBEDDOSEUNIT', INDETERMINATE) -amountofsubstanceunit = getattr(IfcUnitEnum, 'AMOUNTOFSUBSTANCEUNIT', INDETERMINATE) -areaunit = getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE) -doseequivalentunit = getattr(IfcUnitEnum, 'DOSEEQUIVALENTUNIT', INDETERMINATE) -electriccapacitanceunit = getattr(IfcUnitEnum, 'ELECTRICCAPACITANCEUNIT', INDETERMINATE) -electricchargeunit = getattr(IfcUnitEnum, 'ELECTRICCHARGEUNIT', INDETERMINATE) -electricconductanceunit = getattr(IfcUnitEnum, 'ELECTRICCONDUCTANCEUNIT', INDETERMINATE) -electriccurrentunit = getattr(IfcUnitEnum, 'ELECTRICCURRENTUNIT', INDETERMINATE) -electricresistanceunit = getattr(IfcUnitEnum, 'ELECTRICRESISTANCEUNIT', INDETERMINATE) -electricvoltageunit = getattr(IfcUnitEnum, 'ELECTRICVOLTAGEUNIT', INDETERMINATE) -energyunit = getattr(IfcUnitEnum, 'ENERGYUNIT', INDETERMINATE) -forceunit = getattr(IfcUnitEnum, 'FORCEUNIT', INDETERMINATE) -frequencyunit = getattr(IfcUnitEnum, 'FREQUENCYUNIT', INDETERMINATE) -illuminanceunit = getattr(IfcUnitEnum, 'ILLUMINANCEUNIT', INDETERMINATE) -inductanceunit = getattr(IfcUnitEnum, 'INDUCTANCEUNIT', INDETERMINATE) -lengthunit = getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE) -luminousfluxunit = getattr(IfcUnitEnum, 'LUMINOUSFLUXUNIT', INDETERMINATE) -luminousintensityunit = getattr(IfcUnitEnum, 'LUMINOUSINTENSITYUNIT', INDETERMINATE) -magneticfluxdensityunit = getattr(IfcUnitEnum, 'MAGNETICFLUXDENSITYUNIT', INDETERMINATE) -magneticfluxunit = getattr(IfcUnitEnum, 'MAGNETICFLUXUNIT', INDETERMINATE) -massunit = getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE) -planeangleunit = getattr(IfcUnitEnum, 'PLANEANGLEUNIT', INDETERMINATE) -powerunit = getattr(IfcUnitEnum, 'POWERUNIT', INDETERMINATE) -pressureunit = getattr(IfcUnitEnum, 'PRESSUREUNIT', INDETERMINATE) -radioactivityunit = getattr(IfcUnitEnum, 'RADIOACTIVITYUNIT', INDETERMINATE) -solidangleunit = getattr(IfcUnitEnum, 'SOLIDANGLEUNIT', INDETERMINATE) -thermodynamictemperatureunit = getattr(IfcUnitEnum, 'THERMODYNAMICTEMPERATUREUNIT', INDETERMINATE) -timeunit = getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE) -volumeunit = getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE) -userdefined = getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE) +absorbeddoseunit = IfcUnitEnum.ABSORBEDDOSEUNIT +amountofsubstanceunit = IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT +areaunit = IfcUnitEnum.AREAUNIT +doseequivalentunit = IfcUnitEnum.DOSEEQUIVALENTUNIT +electriccapacitanceunit = IfcUnitEnum.ELECTRICCAPACITANCEUNIT +electricchargeunit = IfcUnitEnum.ELECTRICCHARGEUNIT +electricconductanceunit = IfcUnitEnum.ELECTRICCONDUCTANCEUNIT +electriccurrentunit = IfcUnitEnum.ELECTRICCURRENTUNIT +electricresistanceunit = IfcUnitEnum.ELECTRICRESISTANCEUNIT +electricvoltageunit = IfcUnitEnum.ELECTRICVOLTAGEUNIT +energyunit = IfcUnitEnum.ENERGYUNIT +forceunit = IfcUnitEnum.FORCEUNIT +frequencyunit = IfcUnitEnum.FREQUENCYUNIT +illuminanceunit = IfcUnitEnum.ILLUMINANCEUNIT +inductanceunit = IfcUnitEnum.INDUCTANCEUNIT +lengthunit = IfcUnitEnum.LENGTHUNIT +luminousfluxunit = IfcUnitEnum.LUMINOUSFLUXUNIT +luminousintensityunit = IfcUnitEnum.LUMINOUSINTENSITYUNIT +magneticfluxdensityunit = IfcUnitEnum.MAGNETICFLUXDENSITYUNIT +magneticfluxunit = IfcUnitEnum.MAGNETICFLUXUNIT +massunit = IfcUnitEnum.MASSUNIT +planeangleunit = IfcUnitEnum.PLANEANGLEUNIT +powerunit = IfcUnitEnum.POWERUNIT +pressureunit = IfcUnitEnum.PRESSUREUNIT +radioactivityunit = IfcUnitEnum.RADIOACTIVITYUNIT +solidangleunit = IfcUnitEnum.SOLIDANGLEUNIT +thermodynamictemperatureunit = IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT +timeunit = IfcUnitEnum.TIMEUNIT +volumeunit = IfcUnitEnum.VOLUMEUNIT +userdefined = IfcUnitEnum.USERDEFINED IfcUnitaryControlElementTypeEnum = enum_namespace() -alarmpanel = getattr(IfcUnitaryControlElementTypeEnum, 'ALARMPANEL', INDETERMINATE) -basestationcontroller = getattr(IfcUnitaryControlElementTypeEnum, 'BASESTATIONCONTROLLER', INDETERMINATE) -combined = getattr(IfcUnitaryControlElementTypeEnum, 'COMBINED', INDETERMINATE) -controlpanel = getattr(IfcUnitaryControlElementTypeEnum, 'CONTROLPANEL', INDETERMINATE) -gasdetectionpanel = getattr(IfcUnitaryControlElementTypeEnum, 'GASDETECTIONPANEL', INDETERMINATE) -humidistat = getattr(IfcUnitaryControlElementTypeEnum, 'HUMIDISTAT', INDETERMINATE) -indicatorpanel = getattr(IfcUnitaryControlElementTypeEnum, 'INDICATORPANEL', INDETERMINATE) -mimicpanel = getattr(IfcUnitaryControlElementTypeEnum, 'MIMICPANEL', INDETERMINATE) -thermostat = getattr(IfcUnitaryControlElementTypeEnum, 'THERMOSTAT', INDETERMINATE) -weatherstation = getattr(IfcUnitaryControlElementTypeEnum, 'WEATHERSTATION', INDETERMINATE) -userdefined = getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcUnitaryControlElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +alarmpanel = IfcUnitaryControlElementTypeEnum.ALARMPANEL +basestationcontroller = IfcUnitaryControlElementTypeEnum.BASESTATIONCONTROLLER +combined = IfcUnitaryControlElementTypeEnum.COMBINED +controlpanel = IfcUnitaryControlElementTypeEnum.CONTROLPANEL +gasdetectionpanel = IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL +humidistat = IfcUnitaryControlElementTypeEnum.HUMIDISTAT +indicatorpanel = IfcUnitaryControlElementTypeEnum.INDICATORPANEL +mimicpanel = IfcUnitaryControlElementTypeEnum.MIMICPANEL +thermostat = IfcUnitaryControlElementTypeEnum.THERMOSTAT +weatherstation = IfcUnitaryControlElementTypeEnum.WEATHERSTATION +userdefined = IfcUnitaryControlElementTypeEnum.USERDEFINED +notdefined = IfcUnitaryControlElementTypeEnum.NOTDEFINED IfcUnitaryEquipmentTypeEnum = enum_namespace() -airconditioningunit = getattr(IfcUnitaryEquipmentTypeEnum, 'AIRCONDITIONINGUNIT', INDETERMINATE) -airhandler = getattr(IfcUnitaryEquipmentTypeEnum, 'AIRHANDLER', INDETERMINATE) -dehumidifier = getattr(IfcUnitaryEquipmentTypeEnum, 'DEHUMIDIFIER', INDETERMINATE) -rooftopunit = getattr(IfcUnitaryEquipmentTypeEnum, 'ROOFTOPUNIT', INDETERMINATE) -splitsystem = getattr(IfcUnitaryEquipmentTypeEnum, 'SPLITSYSTEM', INDETERMINATE) -userdefined = getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcUnitaryEquipmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +airconditioningunit = IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT +airhandler = IfcUnitaryEquipmentTypeEnum.AIRHANDLER +dehumidifier = IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER +rooftopunit = IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT +splitsystem = IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM +userdefined = IfcUnitaryEquipmentTypeEnum.USERDEFINED +notdefined = IfcUnitaryEquipmentTypeEnum.NOTDEFINED IfcValveTypeEnum = enum_namespace() -airrelease = getattr(IfcValveTypeEnum, 'AIRRELEASE', INDETERMINATE) -antivacuum = getattr(IfcValveTypeEnum, 'ANTIVACUUM', INDETERMINATE) -changeover = getattr(IfcValveTypeEnum, 'CHANGEOVER', INDETERMINATE) -check = getattr(IfcValveTypeEnum, 'CHECK', INDETERMINATE) -commissioning = getattr(IfcValveTypeEnum, 'COMMISSIONING', INDETERMINATE) -diverting = getattr(IfcValveTypeEnum, 'DIVERTING', INDETERMINATE) -doublecheck = getattr(IfcValveTypeEnum, 'DOUBLECHECK', INDETERMINATE) -doubleregulating = getattr(IfcValveTypeEnum, 'DOUBLEREGULATING', INDETERMINATE) -drawoffcock = getattr(IfcValveTypeEnum, 'DRAWOFFCOCK', INDETERMINATE) -faucet = getattr(IfcValveTypeEnum, 'FAUCET', INDETERMINATE) -flushing = getattr(IfcValveTypeEnum, 'FLUSHING', INDETERMINATE) -gascock = getattr(IfcValveTypeEnum, 'GASCOCK', INDETERMINATE) -gastap = getattr(IfcValveTypeEnum, 'GASTAP', INDETERMINATE) -isolating = getattr(IfcValveTypeEnum, 'ISOLATING', INDETERMINATE) -mixing = getattr(IfcValveTypeEnum, 'MIXING', INDETERMINATE) -pressurereducing = getattr(IfcValveTypeEnum, 'PRESSUREREDUCING', INDETERMINATE) -pressurerelief = getattr(IfcValveTypeEnum, 'PRESSURERELIEF', INDETERMINATE) -regulating = getattr(IfcValveTypeEnum, 'REGULATING', INDETERMINATE) -safetycutoff = getattr(IfcValveTypeEnum, 'SAFETYCUTOFF', INDETERMINATE) -steamtrap = getattr(IfcValveTypeEnum, 'STEAMTRAP', INDETERMINATE) -stopcock = getattr(IfcValveTypeEnum, 'STOPCOCK', INDETERMINATE) -userdefined = getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcValveTypeEnum, 'NOTDEFINED', INDETERMINATE) +airrelease = IfcValveTypeEnum.AIRRELEASE +antivacuum = IfcValveTypeEnum.ANTIVACUUM +changeover = IfcValveTypeEnum.CHANGEOVER +check = IfcValveTypeEnum.CHECK +commissioning = IfcValveTypeEnum.COMMISSIONING +diverting = IfcValveTypeEnum.DIVERTING +doublecheck = IfcValveTypeEnum.DOUBLECHECK +doubleregulating = IfcValveTypeEnum.DOUBLEREGULATING +drawoffcock = IfcValveTypeEnum.DRAWOFFCOCK +faucet = IfcValveTypeEnum.FAUCET +flushing = IfcValveTypeEnum.FLUSHING +gascock = IfcValveTypeEnum.GASCOCK +gastap = IfcValveTypeEnum.GASTAP +isolating = IfcValveTypeEnum.ISOLATING +mixing = IfcValveTypeEnum.MIXING +pressurereducing = IfcValveTypeEnum.PRESSUREREDUCING +pressurerelief = IfcValveTypeEnum.PRESSURERELIEF +regulating = IfcValveTypeEnum.REGULATING +safetycutoff = IfcValveTypeEnum.SAFETYCUTOFF +steamtrap = IfcValveTypeEnum.STEAMTRAP +stopcock = IfcValveTypeEnum.STOPCOCK +userdefined = IfcValveTypeEnum.USERDEFINED +notdefined = IfcValveTypeEnum.NOTDEFINED IfcVehicleTypeEnum = enum_namespace() -cargo = getattr(IfcVehicleTypeEnum, 'CARGO', INDETERMINATE) -rollingstock = getattr(IfcVehicleTypeEnum, 'ROLLINGSTOCK', INDETERMINATE) -vehicle = getattr(IfcVehicleTypeEnum, 'VEHICLE', INDETERMINATE) -vehicleair = getattr(IfcVehicleTypeEnum, 'VEHICLEAIR', INDETERMINATE) -vehiclemarine = getattr(IfcVehicleTypeEnum, 'VEHICLEMARINE', INDETERMINATE) -vehicletracked = getattr(IfcVehicleTypeEnum, 'VEHICLETRACKED', INDETERMINATE) -vehiclewheeled = getattr(IfcVehicleTypeEnum, 'VEHICLEWHEELED', INDETERMINATE) -userdefined = getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVehicleTypeEnum, 'NOTDEFINED', INDETERMINATE) +cargo = IfcVehicleTypeEnum.CARGO +rollingstock = IfcVehicleTypeEnum.ROLLINGSTOCK +vehicle = IfcVehicleTypeEnum.VEHICLE +vehicleair = IfcVehicleTypeEnum.VEHICLEAIR +vehiclemarine = IfcVehicleTypeEnum.VEHICLEMARINE +vehicletracked = IfcVehicleTypeEnum.VEHICLETRACKED +vehiclewheeled = IfcVehicleTypeEnum.VEHICLEWHEELED +userdefined = IfcVehicleTypeEnum.USERDEFINED +notdefined = IfcVehicleTypeEnum.NOTDEFINED IfcVibrationDamperTypeEnum = enum_namespace() -axial_yield = getattr(IfcVibrationDamperTypeEnum, 'AXIAL_YIELD', INDETERMINATE) -bending_yield = getattr(IfcVibrationDamperTypeEnum, 'BENDING_YIELD', INDETERMINATE) -friction = getattr(IfcVibrationDamperTypeEnum, 'FRICTION', INDETERMINATE) -rubber = getattr(IfcVibrationDamperTypeEnum, 'RUBBER', INDETERMINATE) -shear_yield = getattr(IfcVibrationDamperTypeEnum, 'SHEAR_YIELD', INDETERMINATE) -viscous = getattr(IfcVibrationDamperTypeEnum, 'VISCOUS', INDETERMINATE) -userdefined = getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVibrationDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +axial_yield = IfcVibrationDamperTypeEnum.AXIAL_YIELD +bending_yield = IfcVibrationDamperTypeEnum.BENDING_YIELD +friction = IfcVibrationDamperTypeEnum.FRICTION +rubber = IfcVibrationDamperTypeEnum.RUBBER +shear_yield = IfcVibrationDamperTypeEnum.SHEAR_YIELD +viscous = IfcVibrationDamperTypeEnum.VISCOUS +userdefined = IfcVibrationDamperTypeEnum.USERDEFINED +notdefined = IfcVibrationDamperTypeEnum.NOTDEFINED IfcVibrationIsolatorTypeEnum = enum_namespace() -base = getattr(IfcVibrationIsolatorTypeEnum, 'BASE', INDETERMINATE) -compression = getattr(IfcVibrationIsolatorTypeEnum, 'COMPRESSION', INDETERMINATE) -spring = getattr(IfcVibrationIsolatorTypeEnum, 'SPRING', INDETERMINATE) -userdefined = getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVibrationIsolatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +base = IfcVibrationIsolatorTypeEnum.BASE +compression = IfcVibrationIsolatorTypeEnum.COMPRESSION +spring = IfcVibrationIsolatorTypeEnum.SPRING +userdefined = IfcVibrationIsolatorTypeEnum.USERDEFINED +notdefined = IfcVibrationIsolatorTypeEnum.NOTDEFINED IfcVirtualElementTypeEnum = enum_namespace() -boundary = getattr(IfcVirtualElementTypeEnum, 'BOUNDARY', INDETERMINATE) -clearance = getattr(IfcVirtualElementTypeEnum, 'CLEARANCE', INDETERMINATE) -provisionforvoid = getattr(IfcVirtualElementTypeEnum, 'PROVISIONFORVOID', INDETERMINATE) -userdefined = getattr(IfcVirtualElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVirtualElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +boundary = IfcVirtualElementTypeEnum.BOUNDARY +clearance = IfcVirtualElementTypeEnum.CLEARANCE +provisionforvoid = IfcVirtualElementTypeEnum.PROVISIONFORVOID +userdefined = IfcVirtualElementTypeEnum.USERDEFINED +notdefined = IfcVirtualElementTypeEnum.NOTDEFINED IfcVoidingFeatureTypeEnum = enum_namespace() -chamfer = getattr(IfcVoidingFeatureTypeEnum, 'CHAMFER', INDETERMINATE) -cutout = getattr(IfcVoidingFeatureTypeEnum, 'CUTOUT', INDETERMINATE) -edge = getattr(IfcVoidingFeatureTypeEnum, 'EDGE', INDETERMINATE) -hole = getattr(IfcVoidingFeatureTypeEnum, 'HOLE', INDETERMINATE) -miter = getattr(IfcVoidingFeatureTypeEnum, 'MITER', INDETERMINATE) -notch = getattr(IfcVoidingFeatureTypeEnum, 'NOTCH', INDETERMINATE) -userdefined = getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVoidingFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +chamfer = IfcVoidingFeatureTypeEnum.CHAMFER +cutout = IfcVoidingFeatureTypeEnum.CUTOUT +edge = IfcVoidingFeatureTypeEnum.EDGE +hole = IfcVoidingFeatureTypeEnum.HOLE +miter = IfcVoidingFeatureTypeEnum.MITER +notch = IfcVoidingFeatureTypeEnum.NOTCH +userdefined = IfcVoidingFeatureTypeEnum.USERDEFINED +notdefined = IfcVoidingFeatureTypeEnum.NOTDEFINED IfcWallTypeEnum = enum_namespace() -elementedwall = getattr(IfcWallTypeEnum, 'ELEMENTEDWALL', INDETERMINATE) -movable = getattr(IfcWallTypeEnum, 'MOVABLE', INDETERMINATE) -parapet = getattr(IfcWallTypeEnum, 'PARAPET', INDETERMINATE) -partitioning = getattr(IfcWallTypeEnum, 'PARTITIONING', INDETERMINATE) -plumbingwall = getattr(IfcWallTypeEnum, 'PLUMBINGWALL', INDETERMINATE) -polygonal = getattr(IfcWallTypeEnum, 'POLYGONAL', INDETERMINATE) -retainingwall = getattr(IfcWallTypeEnum, 'RETAININGWALL', INDETERMINATE) -shear = getattr(IfcWallTypeEnum, 'SHEAR', INDETERMINATE) -solidwall = getattr(IfcWallTypeEnum, 'SOLIDWALL', INDETERMINATE) -standard = getattr(IfcWallTypeEnum, 'STANDARD', INDETERMINATE) -wavewall = getattr(IfcWallTypeEnum, 'WAVEWALL', INDETERMINATE) -userdefined = getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +elementedwall = IfcWallTypeEnum.ELEMENTEDWALL +movable = IfcWallTypeEnum.MOVABLE +parapet = IfcWallTypeEnum.PARAPET +partitioning = IfcWallTypeEnum.PARTITIONING +plumbingwall = IfcWallTypeEnum.PLUMBINGWALL +polygonal = IfcWallTypeEnum.POLYGONAL +retainingwall = IfcWallTypeEnum.RETAININGWALL +shear = IfcWallTypeEnum.SHEAR +solidwall = IfcWallTypeEnum.SOLIDWALL +standard = IfcWallTypeEnum.STANDARD +wavewall = IfcWallTypeEnum.WAVEWALL +userdefined = IfcWallTypeEnum.USERDEFINED +notdefined = IfcWallTypeEnum.NOTDEFINED IfcWasteTerminalTypeEnum = enum_namespace() -floortrap = getattr(IfcWasteTerminalTypeEnum, 'FLOORTRAP', INDETERMINATE) -floorwaste = getattr(IfcWasteTerminalTypeEnum, 'FLOORWASTE', INDETERMINATE) -gullysump = getattr(IfcWasteTerminalTypeEnum, 'GULLYSUMP', INDETERMINATE) -gullytrap = getattr(IfcWasteTerminalTypeEnum, 'GULLYTRAP', INDETERMINATE) -roofdrain = getattr(IfcWasteTerminalTypeEnum, 'ROOFDRAIN', INDETERMINATE) -wastedisposalunit = getattr(IfcWasteTerminalTypeEnum, 'WASTEDISPOSALUNIT', INDETERMINATE) -wastetrap = getattr(IfcWasteTerminalTypeEnum, 'WASTETRAP', INDETERMINATE) -userdefined = getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWasteTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +floortrap = IfcWasteTerminalTypeEnum.FLOORTRAP +floorwaste = IfcWasteTerminalTypeEnum.FLOORWASTE +gullysump = IfcWasteTerminalTypeEnum.GULLYSUMP +gullytrap = IfcWasteTerminalTypeEnum.GULLYTRAP +roofdrain = IfcWasteTerminalTypeEnum.ROOFDRAIN +wastedisposalunit = IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT +wastetrap = IfcWasteTerminalTypeEnum.WASTETRAP +userdefined = IfcWasteTerminalTypeEnum.USERDEFINED +notdefined = IfcWasteTerminalTypeEnum.NOTDEFINED IfcWindowPanelOperationEnum = enum_namespace() -bottomhung = getattr(IfcWindowPanelOperationEnum, 'BOTTOMHUNG', INDETERMINATE) -fixedcasement = getattr(IfcWindowPanelOperationEnum, 'FIXEDCASEMENT', INDETERMINATE) -otheroperation = getattr(IfcWindowPanelOperationEnum, 'OTHEROPERATION', INDETERMINATE) -pivothorizontal = getattr(IfcWindowPanelOperationEnum, 'PIVOTHORIZONTAL', INDETERMINATE) -pivotvertical = getattr(IfcWindowPanelOperationEnum, 'PIVOTVERTICAL', INDETERMINATE) -removablecasement = getattr(IfcWindowPanelOperationEnum, 'REMOVABLECASEMENT', INDETERMINATE) -sidehunglefthand = getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGLEFTHAND', INDETERMINATE) -sidehungrighthand = getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGRIGHTHAND', INDETERMINATE) -slidinghorizontal = getattr(IfcWindowPanelOperationEnum, 'SLIDINGHORIZONTAL', INDETERMINATE) -slidingvertical = getattr(IfcWindowPanelOperationEnum, 'SLIDINGVERTICAL', INDETERMINATE) -tiltandturnlefthand = getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNLEFTHAND', INDETERMINATE) -tiltandturnrighthand = getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNRIGHTHAND', INDETERMINATE) -tophung = getattr(IfcWindowPanelOperationEnum, 'TOPHUNG', INDETERMINATE) -notdefined = getattr(IfcWindowPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +bottomhung = IfcWindowPanelOperationEnum.BOTTOMHUNG +fixedcasement = IfcWindowPanelOperationEnum.FIXEDCASEMENT +otheroperation = IfcWindowPanelOperationEnum.OTHEROPERATION +pivothorizontal = IfcWindowPanelOperationEnum.PIVOTHORIZONTAL +pivotvertical = IfcWindowPanelOperationEnum.PIVOTVERTICAL +removablecasement = IfcWindowPanelOperationEnum.REMOVABLECASEMENT +sidehunglefthand = IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND +sidehungrighthand = IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND +slidinghorizontal = IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL +slidingvertical = IfcWindowPanelOperationEnum.SLIDINGVERTICAL +tiltandturnlefthand = IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND +tiltandturnrighthand = IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND +tophung = IfcWindowPanelOperationEnum.TOPHUNG +notdefined = IfcWindowPanelOperationEnum.NOTDEFINED IfcWindowPanelPositionEnum = enum_namespace() -bottom = getattr(IfcWindowPanelPositionEnum, 'BOTTOM', INDETERMINATE) -left = getattr(IfcWindowPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = getattr(IfcWindowPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = getattr(IfcWindowPanelPositionEnum, 'RIGHT', INDETERMINATE) -top = getattr(IfcWindowPanelPositionEnum, 'TOP', INDETERMINATE) -notdefined = getattr(IfcWindowPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +bottom = IfcWindowPanelPositionEnum.BOTTOM +left = IfcWindowPanelPositionEnum.LEFT +middle = IfcWindowPanelPositionEnum.MIDDLE +right = IfcWindowPanelPositionEnum.RIGHT +top = IfcWindowPanelPositionEnum.TOP +notdefined = IfcWindowPanelPositionEnum.NOTDEFINED IfcWindowTypeEnum = enum_namespace() -lightdome = getattr(IfcWindowTypeEnum, 'LIGHTDOME', INDETERMINATE) -skylight = getattr(IfcWindowTypeEnum, 'SKYLIGHT', INDETERMINATE) -window = getattr(IfcWindowTypeEnum, 'WINDOW', INDETERMINATE) -userdefined = getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowTypeEnum, 'NOTDEFINED', INDETERMINATE) +lightdome = IfcWindowTypeEnum.LIGHTDOME +skylight = IfcWindowTypeEnum.SKYLIGHT +window = IfcWindowTypeEnum.WINDOW +userdefined = IfcWindowTypeEnum.USERDEFINED +notdefined = IfcWindowTypeEnum.NOTDEFINED IfcWindowTypePartitioningEnum = enum_namespace() -double_panel_horizontal = getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -double_panel_vertical = getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -single_panel = getattr(IfcWindowTypePartitioningEnum, 'SINGLE_PANEL', INDETERMINATE) -triple_panel_bottom = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_horizontal = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_left = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_top = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_vertical = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -userdefined = getattr(IfcWindowTypePartitioningEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowTypePartitioningEnum, 'NOTDEFINED', INDETERMINATE) +double_panel_horizontal = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL +double_panel_vertical = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL +single_panel = IfcWindowTypePartitioningEnum.SINGLE_PANEL +triple_panel_bottom = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM +triple_panel_horizontal = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL +triple_panel_left = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT +triple_panel_top = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP +triple_panel_vertical = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL +userdefined = IfcWindowTypePartitioningEnum.USERDEFINED +notdefined = IfcWindowTypePartitioningEnum.NOTDEFINED IfcWorkCalendarTypeEnum = enum_namespace() -firstshift = getattr(IfcWorkCalendarTypeEnum, 'FIRSTSHIFT', INDETERMINATE) -secondshift = getattr(IfcWorkCalendarTypeEnum, 'SECONDSHIFT', INDETERMINATE) -thirdshift = getattr(IfcWorkCalendarTypeEnum, 'THIRDSHIFT', INDETERMINATE) -userdefined = getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkCalendarTypeEnum, 'NOTDEFINED', INDETERMINATE) +firstshift = IfcWorkCalendarTypeEnum.FIRSTSHIFT +secondshift = IfcWorkCalendarTypeEnum.SECONDSHIFT +thirdshift = IfcWorkCalendarTypeEnum.THIRDSHIFT +userdefined = IfcWorkCalendarTypeEnum.USERDEFINED +notdefined = IfcWorkCalendarTypeEnum.NOTDEFINED IfcWorkPlanTypeEnum = enum_namespace() -actual = getattr(IfcWorkPlanTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = getattr(IfcWorkPlanTypeEnum, 'BASELINE', INDETERMINATE) -planned = getattr(IfcWorkPlanTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkPlanTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkPlanTypeEnum.ACTUAL +baseline = IfcWorkPlanTypeEnum.BASELINE +planned = IfcWorkPlanTypeEnum.PLANNED +userdefined = IfcWorkPlanTypeEnum.USERDEFINED +notdefined = IfcWorkPlanTypeEnum.NOTDEFINED IfcWorkScheduleTypeEnum = enum_namespace() -actual = getattr(IfcWorkScheduleTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = getattr(IfcWorkScheduleTypeEnum, 'BASELINE', INDETERMINATE) -planned = getattr(IfcWorkScheduleTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkScheduleTypeEnum.ACTUAL +baseline = IfcWorkScheduleTypeEnum.BASELINE +planned = IfcWorkScheduleTypeEnum.PLANNED +userdefined = IfcWorkScheduleTypeEnum.USERDEFINED +notdefined = IfcWorkScheduleTypeEnum.NOTDEFINED def IfcActionRequest(*args, **kwargs): return ifcopenshell.create_entity('IfcActionRequest', 'IFC4X3_ADD1', *args, **kwargs) @@ -5133,7 +5143,7 @@ class IfcBoxAlignment_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False class IfcCardinalPointReference_GreaterThanZero: SCOPE = 'type' @@ -5214,7 +5224,7 @@ class IfcFontStyle_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False class IfcFontVariant_WR1: SCOPE = 'type' @@ -5223,7 +5233,7 @@ class IfcFontVariant_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False class IfcFontWeight_WR1: SCOPE = 'type' @@ -5232,7 +5242,7 @@ class IfcFontWeight_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False class IfcHeatingValueMeasure_WR1: SCOPE = 'type' @@ -5331,7 +5341,7 @@ class IfcTextAlignment_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False class IfcTextDecoration_WR1: SCOPE = 'type' @@ -5340,7 +5350,7 @@ class IfcTextDecoration_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False class IfcTextTransformation_WR1: SCOPE = 'type' @@ -5349,7 +5359,7 @@ class IfcTextTransformation_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False class IfcActorRole_WR1: SCOPE = 'entity' @@ -5358,8 +5368,8 @@ class IfcActorRole_WR1: @staticmethod def __call__(self): - role = getattr(self, 'Role', INDETERMINATE) - assert (role != getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) or (role == getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedRole', INDETERMINATE)))) is not False + role = express_getattr(self, 'Role', INDETERMINATE) + assert (role != express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) or (role == express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedRole', INDETERMINATE)))) is not False class IfcActuator_CorrectPredefinedType: SCOPE = 'entity' @@ -5368,8 +5378,8 @@ class IfcActuator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcActuator_CorrectTypeAssigned: SCOPE = 'entity' @@ -5378,8 +5388,8 @@ class IfcActuator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcactuatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcactuatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcActuatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -5388,8 +5398,8 @@ class IfcActuatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAddress_WR1: SCOPE = 'entity' @@ -5398,8 +5408,8 @@ class IfcAddress_WR1: @staticmethod def __call__(self): - purpose = getattr(self, 'Purpose', INDETERMINATE) - assert (not exists(purpose) or (purpose != getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) or (purpose == getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedPurpose', INDETERMINATE))))) is not False + purpose = express_getattr(self, 'Purpose', INDETERMINATE) + assert (not exists(purpose) or (purpose != express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) or (purpose == express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedPurpose', INDETERMINATE))))) is not False class IfcAdvancedBrep_HasAdvancedFaces: SCOPE = 'entity' @@ -5408,7 +5418,7 @@ class IfcAdvancedBrep_HasAdvancedFaces: @staticmethod def __call__(self): - assert (sizeof([afs for afs in getattr(getattr(self, 'Outer', INDETERMINATE), 'CfsFaces', INDETERMINATE) if not 'ifc4x3_add1.ifcadvancedface' in typeof(afs)]) == 0) is not False + assert (sizeof([afs for afs in express_getattr(express_getattr(self, 'Outer', INDETERMINATE), 'CfsFaces', INDETERMINATE) if not 'ifc4x3_add1.ifcadvancedface' in typeof(afs)]) == 0) is not False class IfcAdvancedBrepWithVoids_VoidsHaveAdvancedFaces: SCOPE = 'entity' @@ -5417,8 +5427,8 @@ class IfcAdvancedBrepWithVoids_VoidsHaveAdvancedFaces: @staticmethod def __call__(self): - voids = getattr(self, 'Voids', INDETERMINATE) - assert (sizeof([vsh for vsh in voids if sizeof([afs for afs in getattr(vsh, 'CfsFaces', INDETERMINATE) if not 'ifc4x3_add1.ifcadvancedface' in typeof(afs)]) == 0]) == 0) is not False + voids = express_getattr(self, 'Voids', INDETERMINATE) + assert (sizeof([vsh for vsh in voids if sizeof([afs for afs in express_getattr(vsh, 'CfsFaces', INDETERMINATE) if not 'ifc4x3_add1.ifcadvancedface' in typeof(afs)]) == 0]) == 0) is not False class IfcAdvancedFace_ApplicableEdgeCurves: SCOPE = 'entity' @@ -5427,7 +5437,7 @@ class IfcAdvancedFace_ApplicableEdgeCurves: @staticmethod def __call__(self): - assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3_add1.ifcedgeloop' in typeof(getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in getattr(getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not sizeof(['ifc4x3_add1.ifcline', 'ifc4x3_add1.ifcconic', 'ifc4x3_add1.ifcpolyline', 'ifc4x3_add1.ifcbsplinecurve'] * typeof(getattr(getattr(oe, 'EdgeElement', INDETERMINATE), 'EdgeGeometry', INDETERMINATE))) == 1]) == 0]) == 0) is not False + assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in express_getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3_add1.ifcedgeloop' in typeof(express_getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in express_getattr(express_getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not sizeof(['ifc4x3_add1.ifcline', 'ifc4x3_add1.ifcconic', 'ifc4x3_add1.ifcpolyline', 'ifc4x3_add1.ifcbsplinecurve'] * typeof(express_getattr(express_getattr(oe, 'EdgeElement', INDETERMINATE), 'EdgeGeometry', INDETERMINATE))) == 1]) == 0]) == 0) is not False class IfcAdvancedFace_ApplicableSurface: SCOPE = 'entity' @@ -5436,7 +5446,7 @@ class IfcAdvancedFace_ApplicableSurface: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_add1.ifcelementarysurface', 'ifc4x3_add1.ifcsweptsurface', 'ifc4x3_add1.ifcbsplinesurface'] * typeof(getattr(self, 'FaceSurface', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_add1.ifcelementarysurface', 'ifc4x3_add1.ifcsweptsurface', 'ifc4x3_add1.ifcbsplinesurface'] * typeof(express_getattr(self, 'FaceSurface', INDETERMINATE))) == 1) is not False class IfcAdvancedFace_RequiresEdgeCurve: SCOPE = 'entity' @@ -5445,7 +5455,7 @@ class IfcAdvancedFace_RequiresEdgeCurve: @staticmethod def __call__(self): - assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3_add1.ifcedgeloop' in typeof(getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in getattr(getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not 'ifc4x3_add1.ifcedgecurve' in typeof(getattr(oe, 'EdgeElement', INDETERMINATE))]) == 0]) == 0) is not False + assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in express_getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3_add1.ifcedgeloop' in typeof(express_getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in express_getattr(express_getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not 'ifc4x3_add1.ifcedgecurve' in typeof(express_getattr(oe, 'EdgeElement', INDETERMINATE))]) == 0]) == 0) is not False class IfcAirTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -5454,8 +5464,8 @@ class IfcAirTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -5464,8 +5474,8 @@ class IfcAirTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcairterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcairterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirTerminalBox_CorrectPredefinedType: SCOPE = 'entity' @@ -5474,8 +5484,8 @@ class IfcAirTerminalBox_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirTerminalBox_CorrectTypeAssigned: SCOPE = 'entity' @@ -5484,8 +5494,8 @@ class IfcAirTerminalBox_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcairterminalboxtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcairterminalboxtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirTerminalBoxType_CorrectPredefinedType: SCOPE = 'entity' @@ -5494,8 +5504,8 @@ class IfcAirTerminalBoxType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAirTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -5504,8 +5514,8 @@ class IfcAirTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAirToAirHeatRecovery_CorrectPredefinedType: SCOPE = 'entity' @@ -5514,8 +5524,8 @@ class IfcAirToAirHeatRecovery_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirToAirHeatRecovery_CorrectTypeAssigned: SCOPE = 'entity' @@ -5524,8 +5534,8 @@ class IfcAirToAirHeatRecovery_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcairtoairheatrecoverytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcairtoairheatrecoverytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirToAirHeatRecoveryType_CorrectPredefinedType: SCOPE = 'entity' @@ -5534,8 +5544,8 @@ class IfcAirToAirHeatRecoveryType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAlarm_CorrectPredefinedType: SCOPE = 'entity' @@ -5544,8 +5554,8 @@ class IfcAlarm_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAlarm_CorrectTypeAssigned: SCOPE = 'entity' @@ -5554,8 +5564,8 @@ class IfcAlarm_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcalarmtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcalarmtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAlarmType_CorrectPredefinedType: SCOPE = 'entity' @@ -5564,8 +5574,8 @@ class IfcAlarmType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcApproval_HasIdentifierOrName: SCOPE = 'entity' @@ -5574,8 +5584,8 @@ class IfcApproval_HasIdentifierOrName: @staticmethod def __call__(self): - identifier = getattr(self, 'Identifier', INDETERMINATE) - name = getattr(self, 'Name', INDETERMINATE) + identifier = express_getattr(self, 'Identifier', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) assert (exists(identifier) or exists(name)) is not False class IfcArbitraryClosedProfileDef_WR1: @@ -5585,8 +5595,8 @@ class IfcArbitraryClosedProfileDef_WR1: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) - assert (getattr(outercurve, 'Dim', INDETERMINATE) == 2) is not False + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) + assert (express_getattr(outercurve, 'Dim', INDETERMINATE) == 2) is not False class IfcArbitraryClosedProfileDef_WR2: SCOPE = 'entity' @@ -5595,7 +5605,7 @@ class IfcArbitraryClosedProfileDef_WR2: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) assert (not 'ifc4x3_add1.ifcline' in typeof(outercurve)) is not False class IfcArbitraryClosedProfileDef_WR3: @@ -5605,7 +5615,7 @@ class IfcArbitraryClosedProfileDef_WR3: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) assert (not 'ifc4x3_add1.ifcoffsetcurve2d' in typeof(outercurve)) is not False class IfcArbitraryOpenProfileDef_WR11: @@ -5615,7 +5625,7 @@ class IfcArbitraryOpenProfileDef_WR11: @staticmethod def __call__(self): - assert ('ifc4x3_add1.ifccenterlineprofiledef' in typeof(self) or getattr(self, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False + assert ('ifc4x3_add1.ifccenterlineprofiledef' in typeof(self) or express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False class IfcArbitraryOpenProfileDef_WR12: SCOPE = 'entity' @@ -5624,8 +5634,8 @@ class IfcArbitraryOpenProfileDef_WR12: @staticmethod def __call__(self): - curve = getattr(self, 'Curve', INDETERMINATE) - assert (getattr(curve, 'Dim', INDETERMINATE) == 2) is not False + curve = express_getattr(self, 'Curve', INDETERMINATE) + assert (express_getattr(curve, 'Dim', INDETERMINATE) == 2) is not False class IfcArbitraryProfileDefWithVoids_WR1: SCOPE = 'entity' @@ -5634,7 +5644,7 @@ class IfcArbitraryProfileDefWithVoids_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'ProfileType', INDETERMINATE) == area) is not False + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == area) is not False class IfcArbitraryProfileDefWithVoids_WR2: SCOPE = 'entity' @@ -5643,8 +5653,8 @@ class IfcArbitraryProfileDefWithVoids_WR2: @staticmethod def __call__(self): - innercurves = getattr(self, 'InnerCurves', INDETERMINATE) - assert (sizeof([temp for temp in innercurves if getattr(temp, 'Dim', INDETERMINATE) != 2]) == 0) is not False + innercurves = express_getattr(self, 'InnerCurves', INDETERMINATE) + assert (sizeof([temp for temp in innercurves if express_getattr(temp, 'Dim', INDETERMINATE) != 2]) == 0) is not False class IfcArbitraryProfileDefWithVoids_WR3: SCOPE = 'entity' @@ -5653,7 +5663,7 @@ class IfcArbitraryProfileDefWithVoids_WR3: @staticmethod def __call__(self): - innercurves = getattr(self, 'InnerCurves', INDETERMINATE) + innercurves = express_getattr(self, 'InnerCurves', INDETERMINATE) assert (sizeof([temp for temp in innercurves if 'ifc4x3_add1.ifcline' in typeof(temp)]) == 0) is not False class IfcAsymmetricIShapeProfileDef_ValidBottomFilletRadius: @@ -5663,9 +5673,9 @@ class IfcAsymmetricIShapeProfileDef_ValidBottomFilletRadius: @staticmethod def __call__(self): - bottomflangewidth = getattr(self, 'BottomFlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - bottomflangefilletradius = getattr(self, 'BottomFlangeFilletRadius', INDETERMINATE) + bottomflangewidth = express_getattr(self, 'BottomFlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + bottomflangefilletradius = express_getattr(self, 'BottomFlangeFilletRadius', INDETERMINATE) assert (not exists(bottomflangefilletradius) or bottomflangefilletradius <= (bottomflangewidth - webthickness) / 2.0) is not False class IfcAsymmetricIShapeProfileDef_ValidFlangeThickness: @@ -5675,9 +5685,9 @@ class IfcAsymmetricIShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - bottomflangethickness = getattr(self, 'BottomFlangeThickness', INDETERMINATE) - topflangethickness = getattr(self, 'TopFlangeThickness', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + bottomflangethickness = express_getattr(self, 'BottomFlangeThickness', INDETERMINATE) + topflangethickness = express_getattr(self, 'TopFlangeThickness', INDETERMINATE) assert (not exists(topflangethickness) or bottomflangethickness + topflangethickness < overalldepth) is not False class IfcAsymmetricIShapeProfileDef_ValidTopFilletRadius: @@ -5687,9 +5697,9 @@ class IfcAsymmetricIShapeProfileDef_ValidTopFilletRadius: @staticmethod def __call__(self): - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - topflangewidth = getattr(self, 'TopFlangeWidth', INDETERMINATE) - topflangefilletradius = getattr(self, 'TopFlangeFilletRadius', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + topflangewidth = express_getattr(self, 'TopFlangeWidth', INDETERMINATE) + topflangefilletradius = express_getattr(self, 'TopFlangeFilletRadius', INDETERMINATE) assert (not exists(topflangefilletradius) or topflangefilletradius <= (topflangewidth - webthickness) / 2.0) is not False class IfcAsymmetricIShapeProfileDef_ValidWebThickness: @@ -5699,9 +5709,9 @@ class IfcAsymmetricIShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - bottomflangewidth = getattr(self, 'BottomFlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - topflangewidth = getattr(self, 'TopFlangeWidth', INDETERMINATE) + bottomflangewidth = express_getattr(self, 'BottomFlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + topflangewidth = express_getattr(self, 'TopFlangeWidth', INDETERMINATE) assert (webthickness < bottomflangewidth and webthickness < topflangewidth) is not False class IfcAudioVisualAppliance_CorrectPredefinedType: @@ -5711,8 +5721,8 @@ class IfcAudioVisualAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAudioVisualAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -5721,8 +5731,8 @@ class IfcAudioVisualAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcaudiovisualappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcaudiovisualappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAudioVisualApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -5731,8 +5741,8 @@ class IfcAudioVisualApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAxis1Placement_AxisIs3D: SCOPE = 'entity' @@ -5741,8 +5751,8 @@ class IfcAxis1Placement_AxisIs3D: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (not exists(axis) or getattr(axis, 'Dim', INDETERMINATE) == 3) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (not exists(axis) or express_getattr(axis, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis1Placement_LocationIs3D: SCOPE = 'entity' @@ -5751,7 +5761,7 @@ class IfcAxis1Placement_LocationIs3D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcAxis1Placement_LocationIsCP: SCOPE = 'entity' @@ -5760,10 +5770,10 @@ class IfcAxis1Placement_LocationIsCP: @staticmethod def __call__(self): - assert ('ifc4x3_add1.ifccartesianpoint' in typeof(getattr(self, 'Location', INDETERMINATE))) is not False + assert ('ifc4x3_add1.ifccartesianpoint' in typeof(express_getattr(self, 'Location', INDETERMINATE))) is not False def calc_IfcAxis1Placement_Z(self): - axis = getattr(self, 'Axis', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) return nvl(IfcNormalise(axis), IfcDirection(DirectionRatios=[0.0, 0.0, 1.0])) class IfcAxis2Placement2D_LocationIs2D: @@ -5773,7 +5783,7 @@ class IfcAxis2Placement2D_LocationIs2D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False class IfcAxis2Placement2D_LocationIsCP: SCOPE = 'entity' @@ -5782,7 +5792,7 @@ class IfcAxis2Placement2D_LocationIsCP: @staticmethod def __call__(self): - assert ('ifc4x3_add1.ifccartesianpoint' in typeof(getattr(self, 'Location', INDETERMINATE))) is not False + assert ('ifc4x3_add1.ifccartesianpoint' in typeof(express_getattr(self, 'Location', INDETERMINATE))) is not False class IfcAxis2Placement2D_RefDirIs2D: SCOPE = 'entity' @@ -5791,11 +5801,11 @@ class IfcAxis2Placement2D_RefDirIs2D: @staticmethod def __call__(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(refdirection) or getattr(refdirection, 'Dim', INDETERMINATE) == 2) is not False + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(refdirection) or express_getattr(refdirection, 'Dim', INDETERMINATE) == 2) is not False def calc_IfcAxis2Placement2D_P(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) return IfcBuild2Axes(refdirection) class IfcAxis2Placement3D_AxisAndRefDirProvision: @@ -5805,8 +5815,8 @@ class IfcAxis2Placement3D_AxisAndRefDirProvision: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) assert (not exists(axis) ^ exists(refdirection)) is not False class IfcAxis2Placement3D_AxisIs3D: @@ -5816,8 +5826,8 @@ class IfcAxis2Placement3D_AxisIs3D: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (not exists(axis) or getattr(axis, 'Dim', INDETERMINATE) == 3) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (not exists(axis) or express_getattr(axis, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_AxisToRefDirPosition: SCOPE = 'entity' @@ -5826,9 +5836,9 @@ class IfcAxis2Placement3D_AxisToRefDirPosition: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(axis) or not exists(refdirection) or getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(axis) or not exists(refdirection) or express_getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False class IfcAxis2Placement3D_LocationIs3D: SCOPE = 'entity' @@ -5837,7 +5847,7 @@ class IfcAxis2Placement3D_LocationIs3D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_LocationIsCP: SCOPE = 'entity' @@ -5846,7 +5856,7 @@ class IfcAxis2Placement3D_LocationIsCP: @staticmethod def __call__(self): - assert ('ifc4x3_add1.ifccartesianpoint' in typeof(getattr(self, 'Location', INDETERMINATE))) is not False + assert ('ifc4x3_add1.ifccartesianpoint' in typeof(express_getattr(self, 'Location', INDETERMINATE))) is not False class IfcAxis2Placement3D_RefDirIs3D: SCOPE = 'entity' @@ -5855,12 +5865,12 @@ class IfcAxis2Placement3D_RefDirIs3D: @staticmethod def __call__(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(refdirection) or getattr(refdirection, 'Dim', INDETERMINATE) == 3) is not False + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(refdirection) or express_getattr(refdirection, 'Dim', INDETERMINATE) == 3) is not False def calc_IfcAxis2Placement3D_P(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) return IfcBuildAxes(axis, refdirection) class IfcAxis2PlacementLinear_WR1: @@ -5870,7 +5880,7 @@ class IfcAxis2PlacementLinear_WR1: @staticmethod def __call__(self): - assert ('ifc4x3_add1.ifcpointbydistanceexpression' in typeof(getattr(self, 'Location', INDETERMINATE))) is not False + assert ('ifc4x3_add1.ifcpointbydistanceexpression' in typeof(express_getattr(self, 'Location', INDETERMINATE))) is not False class IfcAxis2PlacementLinear_WR2: SCOPE = 'entity' @@ -5879,9 +5889,9 @@ class IfcAxis2PlacementLinear_WR2: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(axis) or not exists(refdirection) or getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(axis) or not exists(refdirection) or express_getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False class IfcBSplineCurve_SameDim: SCOPE = 'entity' @@ -5890,16 +5900,16 @@ class IfcBSplineCurve_SameDim: @staticmethod def __call__(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - assert (sizeof([temp for temp in controlpointslist if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + assert (sizeof([temp for temp in controlpointslist if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcBSplineCurve_UpperIndexOnControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(controlpointslist) - 1 def calc_IfcBSplineCurve_ControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - upperindexoncontrolpoints = getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + upperindexoncontrolpoints = express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) return IfcListToArray(controlpointslist, 0, upperindexoncontrolpoints) class IfcBSplineCurveWithKnots_ConsistentBSpline: @@ -5909,11 +5919,11 @@ class IfcBSplineCurveWithKnots_ConsistentBSpline: @staticmethod def __call__(self): - degree = getattr(self, 'Degree', INDETERMINATE) - upperindexoncontrolpoints = getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) - knotmultiplicities = getattr(self, 'KnotMultiplicities', INDETERMINATE) - knots = getattr(self, 'Knots', INDETERMINATE) - upperindexonknots = getattr(self, 'UpperIndexOnKnots', INDETERMINATE) + degree = express_getattr(self, 'Degree', INDETERMINATE) + upperindexoncontrolpoints = express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) + knotmultiplicities = express_getattr(self, 'KnotMultiplicities', INDETERMINATE) + knots = express_getattr(self, 'Knots', INDETERMINATE) + upperindexonknots = express_getattr(self, 'UpperIndexOnKnots', INDETERMINATE) assert IfcConstraintsParamBSpline(degree, upperindexonknots, upperindexoncontrolpoints, knotmultiplicities, knots) is not False class IfcBSplineCurveWithKnots_CorrespondingKnotLists: @@ -5923,26 +5933,26 @@ class IfcBSplineCurveWithKnots_CorrespondingKnotLists: @staticmethod def __call__(self): - knotmultiplicities = getattr(self, 'KnotMultiplicities', INDETERMINATE) - upperindexonknots = getattr(self, 'UpperIndexOnKnots', INDETERMINATE) + knotmultiplicities = express_getattr(self, 'KnotMultiplicities', INDETERMINATE) + upperindexonknots = express_getattr(self, 'UpperIndexOnKnots', INDETERMINATE) assert (sizeof(knotmultiplicities) == upperindexonknots) is not False def calc_IfcBSplineCurveWithKnots_UpperIndexOnKnots(self): - knots = getattr(self, 'Knots', INDETERMINATE) + knots = express_getattr(self, 'Knots', INDETERMINATE) return sizeof(knots) def calc_IfcBSplineSurface_UUpper(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(controlpointslist) - 1 def calc_IfcBSplineSurface_VUpper(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) - 1 def calc_IfcBSplineSurface_ControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - uupper = getattr(self, 'UUpper', INDETERMINATE) - vupper = getattr(self, 'VUpper', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + uupper = express_getattr(self, 'UUpper', INDETERMINATE) + vupper = express_getattr(self, 'VUpper', INDETERMINATE) return IfcMakeArrayOfArray(controlpointslist, 0, uupper, 0, vupper) class IfcBSplineSurfaceWithKnots_CorrespondingULists: @@ -5952,8 +5962,8 @@ class IfcBSplineSurfaceWithKnots_CorrespondingULists: @staticmethod def __call__(self): - umultiplicities = getattr(self, 'UMultiplicities', INDETERMINATE) - knotuupper = getattr(self, 'KnotUUpper', INDETERMINATE) + umultiplicities = express_getattr(self, 'UMultiplicities', INDETERMINATE) + knotuupper = express_getattr(self, 'KnotUUpper', INDETERMINATE) assert (sizeof(umultiplicities) == knotuupper) is not False class IfcBSplineSurfaceWithKnots_CorrespondingVLists: @@ -5963,8 +5973,8 @@ class IfcBSplineSurfaceWithKnots_CorrespondingVLists: @staticmethod def __call__(self): - vmultiplicities = getattr(self, 'VMultiplicities', INDETERMINATE) - knotvupper = getattr(self, 'KnotVUpper', INDETERMINATE) + vmultiplicities = express_getattr(self, 'VMultiplicities', INDETERMINATE) + knotvupper = express_getattr(self, 'KnotVUpper', INDETERMINATE) assert (sizeof(vmultiplicities) == knotvupper) is not False class IfcBSplineSurfaceWithKnots_UDirectionConstraints: @@ -5974,10 +5984,10 @@ class IfcBSplineSurfaceWithKnots_UDirectionConstraints: @staticmethod def __call__(self): - umultiplicities = getattr(self, 'UMultiplicities', INDETERMINATE) - uknots = getattr(self, 'UKnots', INDETERMINATE) - knotuupper = getattr(self, 'KnotUUpper', INDETERMINATE) - assert IfcConstraintsParamBSpline(getattr(self, 'UDegree', INDETERMINATE), knotuupper, getattr(self, 'UUpper', INDETERMINATE), umultiplicities, uknots) is not False + umultiplicities = express_getattr(self, 'UMultiplicities', INDETERMINATE) + uknots = express_getattr(self, 'UKnots', INDETERMINATE) + knotuupper = express_getattr(self, 'KnotUUpper', INDETERMINATE) + assert IfcConstraintsParamBSpline(express_getattr(self, 'UDegree', INDETERMINATE), knotuupper, express_getattr(self, 'UUpper', INDETERMINATE), umultiplicities, uknots) is not False class IfcBSplineSurfaceWithKnots_VDirectionConstraints: SCOPE = 'entity' @@ -5986,17 +5996,17 @@ class IfcBSplineSurfaceWithKnots_VDirectionConstraints: @staticmethod def __call__(self): - vmultiplicities = getattr(self, 'VMultiplicities', INDETERMINATE) - vknots = getattr(self, 'VKnots', INDETERMINATE) - knotvupper = getattr(self, 'KnotVUpper', INDETERMINATE) - assert IfcConstraintsParamBSpline(getattr(self, 'VDegree', INDETERMINATE), knotvupper, getattr(self, 'VUpper', INDETERMINATE), vmultiplicities, vknots) is not False + vmultiplicities = express_getattr(self, 'VMultiplicities', INDETERMINATE) + vknots = express_getattr(self, 'VKnots', INDETERMINATE) + knotvupper = express_getattr(self, 'KnotVUpper', INDETERMINATE) + assert IfcConstraintsParamBSpline(express_getattr(self, 'VDegree', INDETERMINATE), knotvupper, express_getattr(self, 'VUpper', INDETERMINATE), vmultiplicities, vknots) is not False def calc_IfcBSplineSurfaceWithKnots_KnotVUpper(self): - vknots = getattr(self, 'VKnots', INDETERMINATE) + vknots = express_getattr(self, 'VKnots', INDETERMINATE) return sizeof(vknots) def calc_IfcBSplineSurfaceWithKnots_KnotUUpper(self): - uknots = getattr(self, 'UKnots', INDETERMINATE) + uknots = express_getattr(self, 'UKnots', INDETERMINATE) return sizeof(uknots) class IfcBeam_CorrectPredefinedType: @@ -6006,8 +6016,8 @@ class IfcBeam_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBeam_CorrectTypeAssigned: SCOPE = 'entity' @@ -6016,8 +6026,8 @@ class IfcBeam_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcbeamtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcbeamtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBeamType_CorrectPredefinedType: SCOPE = 'entity' @@ -6026,8 +6036,8 @@ class IfcBeamType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBearing_CorrectPredefinedType: SCOPE = 'entity' @@ -6036,8 +6046,8 @@ class IfcBearing_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBearing_CorrectTypeAssigned: SCOPE = 'entity' @@ -6046,8 +6056,8 @@ class IfcBearing_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcbearingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcbearingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBearingType_CorrectPredefinedType: SCOPE = 'entity' @@ -6056,8 +6066,8 @@ class IfcBearingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBlobTexture_RasterCodeByteStream: SCOPE = 'entity' @@ -6066,7 +6076,7 @@ class IfcBlobTexture_RasterCodeByteStream: @staticmethod def __call__(self): - rastercode = getattr(self, 'RasterCode', INDETERMINATE) + rastercode = express_getattr(self, 'RasterCode', INDETERMINATE) assert (blength(rastercode) % 8 == 0) is not False class IfcBlobTexture_SupportedRasterFormat: @@ -6076,7 +6086,7 @@ class IfcBlobTexture_SupportedRasterFormat: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['bmp', 'jpg', 'gif', 'png']) is not False + assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['bmp', 'jpg', 'gif', 'png']) is not False class IfcBoiler_CorrectPredefinedType: SCOPE = 'entity' @@ -6085,8 +6095,8 @@ class IfcBoiler_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBoiler_CorrectTypeAssigned: SCOPE = 'entity' @@ -6095,8 +6105,8 @@ class IfcBoiler_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcboilertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcboilertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBoilerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6105,8 +6115,8 @@ class IfcBoilerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBooleanClippingResult_FirstOperandType: SCOPE = 'entity' @@ -6115,7 +6125,7 @@ class IfcBooleanClippingResult_FirstOperandType: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) assert ('ifc4x3_add1.ifcsweptareasolid' in typeof(firstoperand) or 'ifc4x3_add1.ifcsweptdiscsolid' in typeof(firstoperand) or 'ifc4x3_add1.ifcbooleanclippingresult' in typeof(firstoperand)) is not False class IfcBooleanClippingResult_OperatorType: @@ -6125,7 +6135,7 @@ class IfcBooleanClippingResult_OperatorType: @staticmethod def __call__(self): - operator = getattr(self, 'Operator', INDETERMINATE) + operator = express_getattr(self, 'Operator', INDETERMINATE) assert (operator == difference) is not False class IfcBooleanClippingResult_SecondOperandType: @@ -6135,7 +6145,7 @@ class IfcBooleanClippingResult_SecondOperandType: @staticmethod def __call__(self): - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) assert ('ifc4x3_add1.ifchalfspacesolid' in typeof(secondoperand)) is not False class IfcBooleanResult_FirstOperandClosed: @@ -6145,8 +6155,8 @@ class IfcBooleanResult_FirstOperandClosed: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - assert (not 'ifc4x3_add1.ifctessellatedfaceset' in typeof(firstoperand) or (exists(getattr(firstoperand, 'Closed', INDETERMINATE)) and getattr(firstoperand, 'Closed', INDETERMINATE))) is not False + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + assert (not 'ifc4x3_add1.ifctessellatedfaceset' in typeof(firstoperand) or (exists(express_getattr(firstoperand, 'Closed', INDETERMINATE)) and express_getattr(firstoperand, 'Closed', INDETERMINATE))) is not False class IfcBooleanResult_SameDim: SCOPE = 'entity' @@ -6155,9 +6165,9 @@ class IfcBooleanResult_SameDim: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) - assert (getattr(firstoperand, 'Dim', INDETERMINATE) == getattr(secondoperand, 'Dim', INDETERMINATE)) is not False + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) + assert (express_getattr(firstoperand, 'Dim', INDETERMINATE) == express_getattr(secondoperand, 'Dim', INDETERMINATE)) is not False class IfcBooleanResult_SecondOperandClosed: SCOPE = 'entity' @@ -6166,12 +6176,12 @@ class IfcBooleanResult_SecondOperandClosed: @staticmethod def __call__(self): - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) - assert (not 'ifc4x3_add1.ifctessellatedfaceset' in typeof(secondoperand) or (exists(getattr(secondoperand, 'Closed', INDETERMINATE)) and getattr(secondoperand, 'Closed', INDETERMINATE))) is not False + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) + assert (not 'ifc4x3_add1.ifctessellatedfaceset' in typeof(secondoperand) or (exists(express_getattr(secondoperand, 'Closed', INDETERMINATE)) and express_getattr(secondoperand, 'Closed', INDETERMINATE))) is not False def calc_IfcBooleanResult_Dim(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - return getattr(firstoperand, 'Dim', INDETERMINATE) + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + return express_getattr(firstoperand, 'Dim', INDETERMINATE) class IfcBoundaryCurve_IsClosed: SCOPE = 'entity' @@ -6180,7 +6190,7 @@ class IfcBoundaryCurve_IsClosed: @staticmethod def __call__(self): - assert getattr(self, 'ClosedCurve', INDETERMINATE) is not False + assert express_getattr(self, 'ClosedCurve', INDETERMINATE) is not False def calc_IfcBoundingBox_Dim(self): return 3 @@ -6192,7 +6202,7 @@ class IfcBoxedHalfSpace_UnboundedSurface: @staticmethod def __call__(self): - assert (not 'ifc4x3_add1.ifccurveboundedplane' in typeof(getattr(self, 'BaseSurface', INDETERMINATE))) is not False + assert (not 'ifc4x3_add1.ifccurveboundedplane' in typeof(express_getattr(self, 'BaseSurface', INDETERMINATE))) is not False class IfcBridge_CorrectPredefinedType: SCOPE = 'entity' @@ -6201,8 +6211,8 @@ class IfcBridge_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBridgePart_CorrectPredefinedType: SCOPE = 'entity' @@ -6211,8 +6221,8 @@ class IfcBridgePart_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuildingElementPart_CorrectPredefinedType: SCOPE = 'entity' @@ -6221,8 +6231,8 @@ class IfcBuildingElementPart_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuildingElementPart_CorrectTypeAssigned: SCOPE = 'entity' @@ -6231,8 +6241,8 @@ class IfcBuildingElementPart_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcbuildingelementparttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcbuildingelementparttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBuildingElementPartType_CorrectPredefinedType: SCOPE = 'entity' @@ -6241,8 +6251,8 @@ class IfcBuildingElementPartType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBuildingElementProxy_CorrectPredefinedType: SCOPE = 'entity' @@ -6251,8 +6261,8 @@ class IfcBuildingElementProxy_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuildingElementProxy_CorrectTypeAssigned: SCOPE = 'entity' @@ -6261,8 +6271,8 @@ class IfcBuildingElementProxy_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcbuildingelementproxytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcbuildingelementproxytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBuildingElementProxy_HasObjectName: SCOPE = 'entity' @@ -6271,7 +6281,7 @@ class IfcBuildingElementProxy_HasObjectName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcBuildingElementProxyType_CorrectPredefinedType: SCOPE = 'entity' @@ -6280,8 +6290,8 @@ class IfcBuildingElementProxyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBuildingSystem_CorrectPredefinedType: SCOPE = 'entity' @@ -6290,8 +6300,8 @@ class IfcBuildingSystem_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuiltElement_MaxOneMaterialAssociation: SCOPE = 'entity' @@ -6300,7 +6310,7 @@ class IfcBuiltElement_MaxOneMaterialAssociation: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'HasAssociations', INDETERMINATE) if 'ifc4x3_add1.ifcrelassociatesmaterial' in typeof(temp)]) <= 1) is not False + assert (sizeof([temp for temp in express_getattr(self, 'HasAssociations', INDETERMINATE) if 'ifc4x3_add1.ifcrelassociatesmaterial' in typeof(temp)]) <= 1) is not False class IfcBuiltSystem_CorrectPredefinedType: SCOPE = 'entity' @@ -6309,8 +6319,8 @@ class IfcBuiltSystem_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBurner_CorrectPredefinedType: SCOPE = 'entity' @@ -6319,8 +6329,8 @@ class IfcBurner_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBurner_CorrectTypeAssigned: SCOPE = 'entity' @@ -6329,8 +6339,8 @@ class IfcBurner_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcburnertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcburnertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBurnerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6339,8 +6349,8 @@ class IfcBurnerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCShapeProfileDef_ValidGirth: SCOPE = 'entity' @@ -6349,8 +6359,8 @@ class IfcCShapeProfileDef_ValidGirth: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - girth = getattr(self, 'Girth', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + girth = express_getattr(self, 'Girth', INDETERMINATE) assert (girth < depth / 2.0) is not False class IfcCShapeProfileDef_ValidInternalFilletRadius: @@ -6360,10 +6370,10 @@ class IfcCShapeProfileDef_ValidInternalFilletRadius: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - internalfilletradius = getattr(self, 'InternalFilletRadius', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + internalfilletradius = express_getattr(self, 'InternalFilletRadius', INDETERMINATE) assert (not exists(internalfilletradius) or (internalfilletradius <= width / 2.0 - wallthickness and internalfilletradius <= depth / 2.0 - wallthickness)) is not False class IfcCShapeProfileDef_ValidWallThickness: @@ -6373,9 +6383,9 @@ class IfcCShapeProfileDef_ValidWallThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) assert (wallthickness < width / 2.0 and wallthickness < depth / 2.0) is not False class IfcCableCarrierFitting_CorrectPredefinedType: @@ -6385,8 +6395,8 @@ class IfcCableCarrierFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableCarrierFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -6395,8 +6405,8 @@ class IfcCableCarrierFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccablecarrierfittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccablecarrierfittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableCarrierFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -6405,8 +6415,8 @@ class IfcCableCarrierFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableCarrierSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -6415,8 +6425,8 @@ class IfcCableCarrierSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableCarrierSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -6425,8 +6435,8 @@ class IfcCableCarrierSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccablecarriersegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccablecarriersegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableCarrierSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -6435,8 +6445,8 @@ class IfcCableCarrierSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -6445,8 +6455,8 @@ class IfcCableFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -6455,8 +6465,8 @@ class IfcCableFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccablefittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccablefittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -6465,8 +6475,8 @@ class IfcCableFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -6475,8 +6485,8 @@ class IfcCableSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -6485,8 +6495,8 @@ class IfcCableSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccablesegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccablesegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -6495,8 +6505,8 @@ class IfcCableSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCaissonFoundation_CorrectPredefinedType: SCOPE = 'entity' @@ -6505,8 +6515,8 @@ class IfcCaissonFoundation_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCaissonFoundation_CorrectTypeAssigned: SCOPE = 'entity' @@ -6515,8 +6525,8 @@ class IfcCaissonFoundation_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccaissonfoundationtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccaissonfoundationtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCaissonFoundationType_CorrectPredefinedType: SCOPE = 'entity' @@ -6525,8 +6535,8 @@ class IfcCaissonFoundationType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCartesianPoint_CP2Dor3D: SCOPE = 'entity' @@ -6535,7 +6545,7 @@ class IfcCartesianPoint_CP2Dor3D: @staticmethod def __call__(self): - coordinates = getattr(self, 'Coordinates', INDETERMINATE) + coordinates = express_getattr(self, 'Coordinates', INDETERMINATE) assert (hiindex(coordinates) >= 2) is not False def calc_IfcCartesianPointList_Dim(self): @@ -6548,16 +6558,16 @@ class IfcCartesianTransformationOperator_ScaleGreaterZero: @staticmethod def __call__(self): - scl = getattr(self, 'Scl', INDETERMINATE) + scl = express_getattr(self, 'Scl', INDETERMINATE) assert (scl > 0.0) is not False def calc_IfcCartesianTransformationOperator_Scl(self): - scale = getattr(self, 'Scale', INDETERMINATE) + scale = express_getattr(self, 'Scale', INDETERMINATE) return nvl(scale, 1.0) def calc_IfcCartesianTransformationOperator_Dim(self): - localorigin = getattr(self, 'LocalOrigin', INDETERMINATE) - return getattr(localorigin, 'Dim', INDETERMINATE) + localorigin = express_getattr(self, 'LocalOrigin', INDETERMINATE) + return express_getattr(localorigin, 'Dim', INDETERMINATE) class IfcCartesianTransformationOperator2D_Axis1Is2D: SCOPE = 'entity' @@ -6566,7 +6576,7 @@ class IfcCartesianTransformationOperator2D_Axis1Is2D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis1', INDETERMINATE)) or getattr(getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (not exists(express_getattr(self, 'Axis1', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False class IfcCartesianTransformationOperator2D_Axis2Is2D: SCOPE = 'entity' @@ -6575,7 +6585,7 @@ class IfcCartesianTransformationOperator2D_Axis2Is2D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis2', INDETERMINATE)) or getattr(getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (not exists(express_getattr(self, 'Axis2', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False class IfcCartesianTransformationOperator2D_DimEqual2: SCOPE = 'entity' @@ -6584,10 +6594,10 @@ class IfcCartesianTransformationOperator2D_DimEqual2: @staticmethod def __call__(self): - assert (getattr(self, 'Dim', INDETERMINATE) == 2) is not False + assert (express_getattr(self, 'Dim', INDETERMINATE) == 2) is not False def calc_IfcCartesianTransformationOperator2D_U(self): - return IfcBaseAxis(2, getattr(self, 'Axis1', INDETERMINATE), getattr(self, 'Axis2', INDETERMINATE), None) + return IfcBaseAxis(2, express_getattr(self, 'Axis1', INDETERMINATE), express_getattr(self, 'Axis2', INDETERMINATE), None) class IfcCartesianTransformationOperator2DnonUniform_Scale2GreaterZero: SCOPE = 'entity' @@ -6596,12 +6606,12 @@ class IfcCartesianTransformationOperator2DnonUniform_Scale2GreaterZero: @staticmethod def __call__(self): - scl2 = getattr(self, 'Scl2', INDETERMINATE) + scl2 = express_getattr(self, 'Scl2', INDETERMINATE) assert (scl2 > 0.0) is not False def calc_IfcCartesianTransformationOperator2DnonUniform_Scl2(self): - scale2 = getattr(self, 'Scale2', INDETERMINATE) - return nvl(scale2, getattr(self, 'Scl', INDETERMINATE)) + scale2 = express_getattr(self, 'Scale2', INDETERMINATE) + return nvl(scale2, express_getattr(self, 'Scl', INDETERMINATE)) class IfcCartesianTransformationOperator3D_Axis1Is3D: SCOPE = 'entity' @@ -6610,7 +6620,7 @@ class IfcCartesianTransformationOperator3D_Axis1Is3D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis1', INDETERMINATE)) or getattr(getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (not exists(express_getattr(self, 'Axis1', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_Axis2Is3D: SCOPE = 'entity' @@ -6619,7 +6629,7 @@ class IfcCartesianTransformationOperator3D_Axis2Is3D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis2', INDETERMINATE)) or getattr(getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (not exists(express_getattr(self, 'Axis2', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_Axis3Is3D: SCOPE = 'entity' @@ -6628,8 +6638,8 @@ class IfcCartesianTransformationOperator3D_Axis3Is3D: @staticmethod def __call__(self): - axis3 = getattr(self, 'Axis3', INDETERMINATE) - assert (not exists(axis3) or getattr(axis3, 'Dim', INDETERMINATE) == 3) is not False + axis3 = express_getattr(self, 'Axis3', INDETERMINATE) + assert (not exists(axis3) or express_getattr(axis3, 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_DimIs3D: SCOPE = 'entity' @@ -6638,11 +6648,11 @@ class IfcCartesianTransformationOperator3D_DimIs3D: @staticmethod def __call__(self): - assert (getattr(self, 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(self, 'Dim', INDETERMINATE) == 3) is not False def calc_IfcCartesianTransformationOperator3D_U(self): - axis3 = getattr(self, 'Axis3', INDETERMINATE) - return IfcBaseAxis(3, getattr(self, 'Axis1', INDETERMINATE), getattr(self, 'Axis2', INDETERMINATE), axis3) + axis3 = express_getattr(self, 'Axis3', INDETERMINATE) + return IfcBaseAxis(3, express_getattr(self, 'Axis1', INDETERMINATE), express_getattr(self, 'Axis2', INDETERMINATE), axis3) class IfcCartesianTransformationOperator3DnonUniform_Scale2GreaterZero: SCOPE = 'entity' @@ -6651,7 +6661,7 @@ class IfcCartesianTransformationOperator3DnonUniform_Scale2GreaterZero: @staticmethod def __call__(self): - scl2 = getattr(self, 'Scl2', INDETERMINATE) + scl2 = express_getattr(self, 'Scl2', INDETERMINATE) assert (scl2 > 0.0) is not False class IfcCartesianTransformationOperator3DnonUniform_Scale3GreaterZero: @@ -6661,16 +6671,16 @@ class IfcCartesianTransformationOperator3DnonUniform_Scale3GreaterZero: @staticmethod def __call__(self): - scl3 = getattr(self, 'Scl3', INDETERMINATE) + scl3 = express_getattr(self, 'Scl3', INDETERMINATE) assert (scl3 > 0.0) is not False def calc_IfcCartesianTransformationOperator3DnonUniform_Scl2(self): - scale2 = getattr(self, 'Scale2', INDETERMINATE) - return nvl(scale2, getattr(self, 'Scl', INDETERMINATE)) + scale2 = express_getattr(self, 'Scale2', INDETERMINATE) + return nvl(scale2, express_getattr(self, 'Scl', INDETERMINATE)) def calc_IfcCartesianTransformationOperator3DnonUniform_Scl3(self): - scale3 = getattr(self, 'Scale3', INDETERMINATE) - return nvl(scale3, getattr(self, 'Scl', INDETERMINATE)) + scale3 = express_getattr(self, 'Scale3', INDETERMINATE) + return nvl(scale3, express_getattr(self, 'Scl', INDETERMINATE)) class IfcChiller_CorrectPredefinedType: SCOPE = 'entity' @@ -6679,8 +6689,8 @@ class IfcChiller_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcChiller_CorrectTypeAssigned: SCOPE = 'entity' @@ -6689,8 +6699,8 @@ class IfcChiller_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcchillertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcchillertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcChillerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6699,8 +6709,8 @@ class IfcChillerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcChimney_CorrectPredefinedType: SCOPE = 'entity' @@ -6709,8 +6719,8 @@ class IfcChimney_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcChimney_CorrectTypeAssigned: SCOPE = 'entity' @@ -6719,8 +6729,8 @@ class IfcChimney_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcchimneytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcchimneytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcChimneyType_CorrectPredefinedType: SCOPE = 'entity' @@ -6729,8 +6739,8 @@ class IfcChimneyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCircleHollowProfileDef_WR1: SCOPE = 'entity' @@ -6739,8 +6749,8 @@ class IfcCircleHollowProfileDef_WR1: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - assert (wallthickness < getattr(self, 'Radius', INDETERMINATE)) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + assert (wallthickness < express_getattr(self, 'Radius', INDETERMINATE)) is not False class IfcCoil_CorrectPredefinedType: SCOPE = 'entity' @@ -6749,8 +6759,8 @@ class IfcCoil_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCoil_CorrectTypeAssigned: SCOPE = 'entity' @@ -6759,8 +6769,8 @@ class IfcCoil_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccoiltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccoiltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoilType_CorrectPredefinedType: SCOPE = 'entity' @@ -6769,8 +6779,8 @@ class IfcCoilType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcColumn_CorrectPredefinedType: SCOPE = 'entity' @@ -6779,8 +6789,8 @@ class IfcColumn_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcColumn_CorrectTypeAssigned: SCOPE = 'entity' @@ -6789,8 +6799,8 @@ class IfcColumn_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccolumntype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccolumntype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcColumnType_CorrectPredefinedType: SCOPE = 'entity' @@ -6799,8 +6809,8 @@ class IfcColumnType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCommunicationsAppliance_CorrectPredefinedType: SCOPE = 'entity' @@ -6809,8 +6819,8 @@ class IfcCommunicationsAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCommunicationsAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -6819,8 +6829,8 @@ class IfcCommunicationsAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccommunicationsappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccommunicationsappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCommunicationsApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -6829,8 +6839,8 @@ class IfcCommunicationsApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcComplexProperty_WR21: SCOPE = 'entity' @@ -6839,7 +6849,7 @@ class IfcComplexProperty_WR21: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert (sizeof([temp for temp in hasproperties if self == temp]) == 0) is not False class IfcComplexProperty_WR22: @@ -6849,7 +6859,7 @@ class IfcComplexProperty_WR22: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert IfcUniquePropertyName(hasproperties) is not False class IfcComplexPropertyTemplate_NoSelfReference: @@ -6859,7 +6869,7 @@ class IfcComplexPropertyTemplate_NoSelfReference: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert (sizeof([temp for temp in haspropertytemplates if self == temp]) == 0) is not False class IfcComplexPropertyTemplate_UniquePropertyNames: @@ -6869,7 +6879,7 @@ class IfcComplexPropertyTemplate_UniquePropertyNames: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert IfcUniquePropertyTemplateNames(haspropertytemplates) is not False class IfcCompositeCurve_CurveContinuous: @@ -6879,9 +6889,9 @@ class IfcCompositeCurve_CurveContinuous: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) - closedcurve = getattr(self, 'ClosedCurve', INDETERMINATE) - assert (not closedcurve and sizeof([temp for temp in segments if getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 1 or (closedcurve and sizeof([temp for temp in segments if getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 0)) is not False + segments = express_getattr(self, 'Segments', INDETERMINATE) + closedcurve = express_getattr(self, 'ClosedCurve', INDETERMINATE) + assert (not closedcurve and sizeof([temp for temp in segments if express_getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 1 or (closedcurve and sizeof([temp for temp in segments if express_getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 0)) is not False class IfcCompositeCurve_SameDim: SCOPE = 'entity' @@ -6890,17 +6900,17 @@ class IfcCompositeCurve_SameDim: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) - assert (sizeof([temp for temp in segments if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(segments, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + segments = express_getattr(self, 'Segments', INDETERMINATE) + assert (sizeof([temp for temp in segments if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(segments, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcCompositeCurve_NSegments(self): - segments = getattr(self, 'Segments', INDETERMINATE) + segments = express_getattr(self, 'Segments', INDETERMINATE) return sizeof(segments) def calc_IfcCompositeCurve_ClosedCurve(self): - segments = getattr(self, 'Segments', INDETERMINATE) - nsegments = getattr(self, 'NSegments', INDETERMINATE) - return getattr(express_getitem(segments, nsegments - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Transition', INDETERMINATE) != discontinuous + segments = express_getattr(self, 'Segments', INDETERMINATE) + nsegments = express_getattr(self, 'NSegments', INDETERMINATE) + return express_getattr(express_getitem(segments, nsegments - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Transition', INDETERMINATE) != discontinuous class IfcCompositeCurveOnSurface_SameSurface: SCOPE = 'entity' @@ -6909,7 +6919,7 @@ class IfcCompositeCurveOnSurface_SameSurface: @staticmethod def __call__(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) assert (sizeof(basissurface) > 0) is not False def calc_IfcCompositeCurveOnSurface_BasisSurface(self): @@ -6922,7 +6932,7 @@ class IfcCompositeCurveSegment_ParentIsBoundedCurve: @staticmethod def __call__(self): - parentcurve = getattr(self, 'ParentCurve', INDETERMINATE) + parentcurve = express_getattr(self, 'ParentCurve', INDETERMINATE) assert ('ifc4x3_add1.ifcboundedcurve' in typeof(parentcurve)) is not False class IfcCompositeProfileDef_InvariantProfileType: @@ -6932,8 +6942,8 @@ class IfcCompositeProfileDef_InvariantProfileType: @staticmethod def __call__(self): - profiles = getattr(self, 'Profiles', INDETERMINATE) - assert (sizeof([temp for temp in profiles if getattr(temp, 'ProfileType', INDETERMINATE) != getattr(express_getitem(profiles, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE)]) == 0) is not False + profiles = express_getattr(self, 'Profiles', INDETERMINATE) + assert (sizeof([temp for temp in profiles if express_getattr(temp, 'ProfileType', INDETERMINATE) != express_getattr(express_getitem(profiles, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcCompositeProfileDef_NoRecursion: SCOPE = 'entity' @@ -6942,7 +6952,7 @@ class IfcCompositeProfileDef_NoRecursion: @staticmethod def __call__(self): - profiles = getattr(self, 'Profiles', INDETERMINATE) + profiles = express_getattr(self, 'Profiles', INDETERMINATE) assert (sizeof([temp for temp in profiles if 'ifc4x3_add1.ifccompositeprofiledef' in typeof(temp)]) == 0) is not False class IfcCompressor_CorrectPredefinedType: @@ -6952,8 +6962,8 @@ class IfcCompressor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCompressor_CorrectTypeAssigned: SCOPE = 'entity' @@ -6962,8 +6972,8 @@ class IfcCompressor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccompressortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccompressortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCompressorType_CorrectPredefinedType: SCOPE = 'entity' @@ -6972,8 +6982,8 @@ class IfcCompressorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCondenser_CorrectPredefinedType: SCOPE = 'entity' @@ -6982,8 +6992,8 @@ class IfcCondenser_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCondenser_CorrectTypeAssigned: SCOPE = 'entity' @@ -6992,8 +7002,8 @@ class IfcCondenser_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccondensertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccondensertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCondenserType_CorrectPredefinedType: SCOPE = 'entity' @@ -7002,8 +7012,8 @@ class IfcCondenserType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcConstraint_WR11: SCOPE = 'entity' @@ -7012,8 +7022,8 @@ class IfcConstraint_WR11: @staticmethod def __call__(self): - constraintgrade = getattr(self, 'ConstraintGrade', INDETERMINATE) - assert (constraintgrade != getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) or (constraintgrade == getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedGrade', INDETERMINATE)))) is not False + constraintgrade = express_getattr(self, 'ConstraintGrade', INDETERMINATE) + assert (constraintgrade != express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) or (constraintgrade == express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedGrade', INDETERMINATE)))) is not False class IfcConstructionEquipmentResource_CorrectPredefinedType: SCOPE = 'entity' @@ -7022,8 +7032,8 @@ class IfcConstructionEquipmentResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionEquipmentResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7032,8 +7042,8 @@ class IfcConstructionEquipmentResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcConstructionMaterialResource_CorrectPredefinedType: SCOPE = 'entity' @@ -7042,8 +7052,8 @@ class IfcConstructionMaterialResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionMaterialResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7052,8 +7062,8 @@ class IfcConstructionMaterialResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcConstructionProductResource_CorrectPredefinedType: SCOPE = 'entity' @@ -7062,8 +7072,8 @@ class IfcConstructionProductResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionProductResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7072,8 +7082,8 @@ class IfcConstructionProductResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcController_CorrectPredefinedType: SCOPE = 'entity' @@ -7082,8 +7092,8 @@ class IfcController_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcController_CorrectTypeAssigned: SCOPE = 'entity' @@ -7092,8 +7102,8 @@ class IfcController_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccontrollertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccontrollertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcControllerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7102,8 +7112,8 @@ class IfcControllerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcConveyorSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -7112,8 +7122,8 @@ class IfcConveyorSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConveyorSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -7122,8 +7132,8 @@ class IfcConveyorSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcconveyorsegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcconveyorsegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcConveyorSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -7132,8 +7142,8 @@ class IfcConveyorSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCooledBeam_CorrectPredefinedType: SCOPE = 'entity' @@ -7142,8 +7152,8 @@ class IfcCooledBeam_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCooledBeam_CorrectTypeAssigned: SCOPE = 'entity' @@ -7152,8 +7162,8 @@ class IfcCooledBeam_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccooledbeamtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccooledbeamtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCooledBeamType_CorrectPredefinedType: SCOPE = 'entity' @@ -7162,8 +7172,8 @@ class IfcCooledBeamType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCoolingTower_CorrectPredefinedType: SCOPE = 'entity' @@ -7172,8 +7182,8 @@ class IfcCoolingTower_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCoolingTower_CorrectTypeAssigned: SCOPE = 'entity' @@ -7182,8 +7192,8 @@ class IfcCoolingTower_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccoolingtowertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccoolingtowertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoolingTowerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7192,8 +7202,8 @@ class IfcCoolingTowerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCoordinateReferenceSystem_NameOrWKT: SCOPE = 'entity' @@ -7202,8 +7212,8 @@ class IfcCoordinateReferenceSystem_NameOrWKT: @staticmethod def __call__(self): - name = getattr(self, 'Name', INDETERMINATE) - wellknowntext = getattr(self, 'WellKnownText', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) + wellknowntext = express_getattr(self, 'WellKnownText', INDETERMINATE) assert (hiindex(wellknowntext) == 1 or exists(name)) is not False class IfcCourse_CorrectPredefinedType: @@ -7213,8 +7223,8 @@ class IfcCourse_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCourse_CorrectTypeAssigned: SCOPE = 'entity' @@ -7223,8 +7233,8 @@ class IfcCourse_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccoursetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccoursetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCourseType_CorrectPredefinedType: SCOPE = 'entity' @@ -7233,8 +7243,8 @@ class IfcCourseType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCovering_CorrectPredefinedType: SCOPE = 'entity' @@ -7243,8 +7253,8 @@ class IfcCovering_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCovering_CorrectTypeAssigned: SCOPE = 'entity' @@ -7253,8 +7263,8 @@ class IfcCovering_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccoveringtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccoveringtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoveringType_CorrectPredefinedType: SCOPE = 'entity' @@ -7263,8 +7273,8 @@ class IfcCoveringType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCrewResource_CorrectPredefinedType: SCOPE = 'entity' @@ -7273,8 +7283,8 @@ class IfcCrewResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCrewResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7283,8 +7293,8 @@ class IfcCrewResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False def calc_IfcCsgPrimitive3D_Dim(self): return 3 @@ -7296,8 +7306,8 @@ class IfcCurtainWall_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCurtainWall_CorrectTypeAssigned: SCOPE = 'entity' @@ -7306,8 +7316,8 @@ class IfcCurtainWall_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccurtainwalltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifccurtainwalltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCurtainWallType_CorrectPredefinedType: SCOPE = 'entity' @@ -7316,8 +7326,8 @@ class IfcCurtainWallType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcCurve_Dim(self): return IfcCurveDim(self) @@ -7329,9 +7339,9 @@ class IfcCurveStyle_IdentifiableCurveStyle: @staticmethod def __call__(self): - curvefont = getattr(self, 'CurveFont', INDETERMINATE) - curvewidth = getattr(self, 'CurveWidth', INDETERMINATE) - curvecolour = getattr(self, 'CurveColour', INDETERMINATE) + curvefont = express_getattr(self, 'CurveFont', INDETERMINATE) + curvewidth = express_getattr(self, 'CurveWidth', INDETERMINATE) + curvecolour = express_getattr(self, 'CurveColour', INDETERMINATE) assert (exists(curvefont) or exists(curvewidth) or exists(curvecolour)) is not False class IfcCurveStyle_MeasureOfWidth: @@ -7341,7 +7351,7 @@ class IfcCurveStyle_MeasureOfWidth: @staticmethod def __call__(self): - curvewidth = getattr(self, 'CurveWidth', INDETERMINATE) + curvewidth = express_getattr(self, 'CurveWidth', INDETERMINATE) assert (not exists(curvewidth) or 'ifc4x3_add1.ifcpositivelengthmeasure' in typeof(curvewidth) or ('ifc4x3_add1.ifcdescriptivemeasure' in typeof(curvewidth) and curvewidth == 'bylayer')) is not False class IfcCurveStyleFontPattern_VisibleLengthGreaterEqualZero: @@ -7351,7 +7361,7 @@ class IfcCurveStyleFontPattern_VisibleLengthGreaterEqualZero: @staticmethod def __call__(self): - visiblesegmentlength = getattr(self, 'VisibleSegmentLength', INDETERMINATE) + visiblesegmentlength = express_getattr(self, 'VisibleSegmentLength', INDETERMINATE) assert (visiblesegmentlength >= 0.0) is not False class IfcDamper_CorrectPredefinedType: @@ -7361,8 +7371,8 @@ class IfcDamper_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDamper_CorrectTypeAssigned: SCOPE = 'entity' @@ -7371,8 +7381,8 @@ class IfcDamper_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcdampertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcdampertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDamperType_CorrectPredefinedType: SCOPE = 'entity' @@ -7381,8 +7391,8 @@ class IfcDamperType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDeepFoundation_CorrectTypeAssigned: SCOPE = 'entity' @@ -7391,8 +7401,8 @@ class IfcDeepFoundation_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcdeepfoundationtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcdeepfoundationtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDerivedProfileDef_InvariantProfileType: SCOPE = 'entity' @@ -7401,8 +7411,8 @@ class IfcDerivedProfileDef_InvariantProfileType: @staticmethod def __call__(self): - parentprofile = getattr(self, 'ParentProfile', INDETERMINATE) - assert (getattr(self, 'ProfileType', INDETERMINATE) == getattr(parentprofile, 'ProfileType', INDETERMINATE)) is not False + parentprofile = express_getattr(self, 'ParentProfile', INDETERMINATE) + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(parentprofile, 'ProfileType', INDETERMINATE)) is not False class IfcDerivedUnit_WR1: SCOPE = 'entity' @@ -7411,8 +7421,8 @@ class IfcDerivedUnit_WR1: @staticmethod def __call__(self): - elements = getattr(self, 'Elements', INDETERMINATE) - assert (sizeof(elements) > 1 or (sizeof(elements) == 1 and getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) != 1)) is not False + elements = express_getattr(self, 'Elements', INDETERMINATE) + assert (sizeof(elements) > 1 or (sizeof(elements) == 1 and express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) != 1)) is not False class IfcDerivedUnit_WR2: SCOPE = 'entity' @@ -7421,11 +7431,11 @@ class IfcDerivedUnit_WR2: @staticmethod def __call__(self): - unittype = getattr(self, 'UnitType', INDETERMINATE) - assert (unittype != getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) or (unittype == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedType', INDETERMINATE)))) is not False + unittype = express_getattr(self, 'UnitType', INDETERMINATE) + assert (unittype != express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) or (unittype == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedType', INDETERMINATE)))) is not False def calc_IfcDerivedUnit_Dimensions(self): - elements = getattr(self, 'Elements', INDETERMINATE) + elements = express_getattr(self, 'Elements', INDETERMINATE) return IfcDeriveDimensionalExponents(elements) class IfcDirection_MagnitudeGreaterZero: @@ -7435,11 +7445,11 @@ class IfcDirection_MagnitudeGreaterZero: @staticmethod def __call__(self): - directionratios = getattr(self, 'DirectionRatios', INDETERMINATE) + directionratios = express_getattr(self, 'DirectionRatios', INDETERMINATE) assert (sizeof([tmp for tmp in directionratios if tmp != 0.0]) > 0) is not False def calc_IfcDirection_Dim(self): - directionratios = getattr(self, 'DirectionRatios', INDETERMINATE) + directionratios = express_getattr(self, 'DirectionRatios', INDETERMINATE) return hiindex(directionratios) class IfcDirectrixCurveSweptAreaSolid_DirectrixBounded: @@ -7449,9 +7459,9 @@ class IfcDirectrixCurveSweptAreaSolid_DirectrixBounded: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - startparam = getattr(self, 'StartParam', INDETERMINATE) - endparam = getattr(self, 'EndParam', INDETERMINATE) + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + startparam = express_getattr(self, 'StartParam', INDETERMINATE) + endparam = express_getattr(self, 'EndParam', INDETERMINATE) assert (exists(startparam) and exists(endparam) or sizeof(['ifc4x3_add1.ifcconic', 'ifc4x3_add1.ifcboundedcurve'] * typeof(directrix)) == 1) is not False class IfcDiscreteAccessory_CorrectPredefinedType: @@ -7461,8 +7471,8 @@ class IfcDiscreteAccessory_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDiscreteAccessory_CorrectTypeAssigned: SCOPE = 'entity' @@ -7471,8 +7481,8 @@ class IfcDiscreteAccessory_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcdiscreteaccessorytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcdiscreteaccessorytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDiscreteAccessoryType_CorrectPredefinedType: SCOPE = 'entity' @@ -7481,8 +7491,8 @@ class IfcDiscreteAccessoryType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDistributionBoard_CorrectPredefinedType: SCOPE = 'entity' @@ -7491,8 +7501,8 @@ class IfcDistributionBoard_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDistributionBoard_CorrectTypeAssigned: SCOPE = 'entity' @@ -7501,8 +7511,8 @@ class IfcDistributionBoard_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcdistributionboardtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcdistributionboardtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDistributionBoardType_CorrectPredefinedType: SCOPE = 'entity' @@ -7511,8 +7521,8 @@ class IfcDistributionBoardType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDistributionChamberElement_CorrectPredefinedType: SCOPE = 'entity' @@ -7521,8 +7531,8 @@ class IfcDistributionChamberElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDistributionChamberElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -7531,8 +7541,8 @@ class IfcDistributionChamberElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcdistributionchamberelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcdistributionchamberelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDistributionChamberElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -7541,8 +7551,8 @@ class IfcDistributionChamberElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDistributionSystem_CorrectPredefinedType: SCOPE = 'entity' @@ -7551,8 +7561,8 @@ class IfcDistributionSystem_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDocumentReference_WR1: SCOPE = 'entity' @@ -7561,8 +7571,8 @@ class IfcDocumentReference_WR1: @staticmethod def __call__(self): - name = getattr(self, 'Name', INDETERMINATE) - referenceddocument = getattr(self, 'ReferencedDocument', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) + referenceddocument = express_getattr(self, 'ReferencedDocument', INDETERMINATE) assert exists(name) ^ exists(referenceddocument) is not False class IfcDoor_CorrectPredefinedType: @@ -7572,8 +7582,8 @@ class IfcDoor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDoor_CorrectTypeAssigned: SCOPE = 'entity' @@ -7582,8 +7592,8 @@ class IfcDoor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcdoortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcdoortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDoorLiningProperties_WR31: SCOPE = 'entity' @@ -7592,8 +7602,8 @@ class IfcDoorLiningProperties_WR31: @staticmethod def __call__(self): - liningdepth = getattr(self, 'LiningDepth', INDETERMINATE) - liningthickness = getattr(self, 'LiningThickness', INDETERMINATE) + liningdepth = express_getattr(self, 'LiningDepth', INDETERMINATE) + liningthickness = express_getattr(self, 'LiningThickness', INDETERMINATE) assert (not (exists(liningdepth) and (not exists(liningthickness)))) is not False class IfcDoorLiningProperties_WR32: @@ -7603,8 +7613,8 @@ class IfcDoorLiningProperties_WR32: @staticmethod def __call__(self): - thresholddepth = getattr(self, 'ThresholdDepth', INDETERMINATE) - thresholdthickness = getattr(self, 'ThresholdThickness', INDETERMINATE) + thresholddepth = express_getattr(self, 'ThresholdDepth', INDETERMINATE) + thresholdthickness = express_getattr(self, 'ThresholdThickness', INDETERMINATE) assert (not (exists(thresholddepth) and (not exists(thresholdthickness)))) is not False class IfcDoorLiningProperties_WR33: @@ -7614,8 +7624,8 @@ class IfcDoorLiningProperties_WR33: @staticmethod def __call__(self): - transomthickness = getattr(self, 'TransomThickness', INDETERMINATE) - transomoffset = getattr(self, 'TransomOffset', INDETERMINATE) + transomthickness = express_getattr(self, 'TransomThickness', INDETERMINATE) + transomoffset = express_getattr(self, 'TransomOffset', INDETERMINATE) assert (exists(transomoffset) and exists(transomthickness)) ^ (not exists(transomoffset) and (not exists(transomthickness))) is not False class IfcDoorLiningProperties_WR34: @@ -7625,8 +7635,8 @@ class IfcDoorLiningProperties_WR34: @staticmethod def __call__(self): - casingthickness = getattr(self, 'CasingThickness', INDETERMINATE) - casingdepth = getattr(self, 'CasingDepth', INDETERMINATE) + casingthickness = express_getattr(self, 'CasingThickness', INDETERMINATE) + casingdepth = express_getattr(self, 'CasingDepth', INDETERMINATE) assert (exists(casingdepth) and exists(casingthickness)) ^ (not exists(casingdepth) and (not exists(casingthickness))) is not False class IfcDoorLiningProperties_WR35: @@ -7636,7 +7646,7 @@ class IfcDoorLiningProperties_WR35: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc4x3_add1.ifcdoortype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc4x3_add1.ifcdoortype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcDoorPanelProperties_ApplicableToType: SCOPE = 'entity' @@ -7645,7 +7655,7 @@ class IfcDoorPanelProperties_ApplicableToType: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc4x3_add1.ifcdoortype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc4x3_add1.ifcdoortype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcDoorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7654,8 +7664,8 @@ class IfcDoorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDraughtingPreDefinedColour_PreDefinedColourNames: SCOPE = 'entity' @@ -7664,7 +7674,7 @@ class IfcDraughtingPreDefinedColour_PreDefinedColourNames: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'bylayer']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'bylayer']) is not False class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: SCOPE = 'entity' @@ -7673,7 +7683,7 @@ class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chaindoubledash', 'dashed', 'dotted', 'bylayer']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chaindoubledash', 'dashed', 'dotted', 'bylayer']) is not False class IfcDuctFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -7682,8 +7692,8 @@ class IfcDuctFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -7692,8 +7702,8 @@ class IfcDuctFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcductfittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcductfittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -7702,8 +7712,8 @@ class IfcDuctFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDuctSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -7712,8 +7722,8 @@ class IfcDuctSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -7722,8 +7732,8 @@ class IfcDuctSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcductsegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcductsegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -7732,8 +7742,8 @@ class IfcDuctSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDuctSilencer_CorrectPredefinedType: SCOPE = 'entity' @@ -7742,8 +7752,8 @@ class IfcDuctSilencer_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctSilencer_CorrectTypeAssigned: SCOPE = 'entity' @@ -7752,8 +7762,8 @@ class IfcDuctSilencer_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcductsilencertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcductsilencertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctSilencerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7762,8 +7772,8 @@ class IfcDuctSilencerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEarthworksCut_CorrectPredefinedType: SCOPE = 'entity' @@ -7772,8 +7782,8 @@ class IfcEarthworksCut_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEarthworksFill_CorrectPredefinedType: SCOPE = 'entity' @@ -7782,8 +7792,8 @@ class IfcEarthworksFill_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEdgeLoop_IsClosed: SCOPE = 'entity' @@ -7792,9 +7802,9 @@ class IfcEdgeLoop_IsClosed: @staticmethod def __call__(self): - edgelist = getattr(self, 'EdgeList', INDETERMINATE) - ne = getattr(self, 'Ne', INDETERMINATE) - assert (getattr(express_getitem(edgelist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) == getattr(express_getitem(edgelist, ne - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE)) is not False + edgelist = express_getattr(self, 'EdgeList', INDETERMINATE) + ne = express_getattr(self, 'Ne', INDETERMINATE) + assert (express_getattr(express_getitem(edgelist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) == express_getattr(express_getitem(edgelist, ne - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE)) is not False class IfcEdgeLoop_IsContinuous: SCOPE = 'entity' @@ -7806,7 +7816,7 @@ class IfcEdgeLoop_IsContinuous: assert IfcLoopHeadToTail(self) is not False def calc_IfcEdgeLoop_Ne(self): - edgelist = getattr(self, 'EdgeList', INDETERMINATE) + edgelist = express_getattr(self, 'EdgeList', INDETERMINATE) return sizeof(edgelist) class IfcElectricAppliance_CorrectPredefinedType: @@ -7816,8 +7826,8 @@ class IfcElectricAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -7826,8 +7836,8 @@ class IfcElectricAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcelectricappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcelectricappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7836,8 +7846,8 @@ class IfcElectricApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricDistributionBoard_CorrectPredefinedType: SCOPE = 'entity' @@ -7846,8 +7856,8 @@ class IfcElectricDistributionBoard_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricDistributionBoard_CorrectTypeAssigned: SCOPE = 'entity' @@ -7856,8 +7866,8 @@ class IfcElectricDistributionBoard_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcelectricdistributionboardtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcelectricdistributionboardtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricDistributionBoardType_CorrectPredefinedType: SCOPE = 'entity' @@ -7866,8 +7876,8 @@ class IfcElectricDistributionBoardType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricFlowStorageDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -7876,8 +7886,8 @@ class IfcElectricFlowStorageDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricFlowStorageDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -7886,8 +7896,8 @@ class IfcElectricFlowStorageDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcelectricflowstoragedevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcelectricflowstoragedevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricFlowStorageDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7896,8 +7906,8 @@ class IfcElectricFlowStorageDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricFlowTreatmentDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -7906,8 +7916,8 @@ class IfcElectricFlowTreatmentDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricFlowTreatmentDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -7916,8 +7926,8 @@ class IfcElectricFlowTreatmentDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcelectricflowtreatmentdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcelectricflowtreatmentdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricFlowTreatmentDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7926,8 +7936,8 @@ class IfcElectricFlowTreatmentDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricGenerator_CorrectPredefinedType: SCOPE = 'entity' @@ -7936,8 +7946,8 @@ class IfcElectricGenerator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricGenerator_CorrectTypeAssigned: SCOPE = 'entity' @@ -7946,8 +7956,8 @@ class IfcElectricGenerator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcelectricgeneratortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcelectricgeneratortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricGeneratorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7956,8 +7966,8 @@ class IfcElectricGeneratorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricMotor_CorrectPredefinedType: SCOPE = 'entity' @@ -7966,8 +7976,8 @@ class IfcElectricMotor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricMotor_CorrectTypeAssigned: SCOPE = 'entity' @@ -7976,8 +7986,8 @@ class IfcElectricMotor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcelectricmotortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcelectricmotortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricMotorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7986,8 +7996,8 @@ class IfcElectricMotorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricTimeControl_CorrectPredefinedType: SCOPE = 'entity' @@ -7996,8 +8006,8 @@ class IfcElectricTimeControl_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricTimeControl_CorrectTypeAssigned: SCOPE = 'entity' @@ -8006,8 +8016,8 @@ class IfcElectricTimeControl_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcelectrictimecontroltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcelectrictimecontroltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricTimeControlType_CorrectPredefinedType: SCOPE = 'entity' @@ -8016,8 +8026,8 @@ class IfcElectricTimeControlType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElementAssembly_CorrectPredefinedType: SCOPE = 'entity' @@ -8026,8 +8036,8 @@ class IfcElementAssembly_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElementAssembly_CorrectTypeAssigned: SCOPE = 'entity' @@ -8036,8 +8046,8 @@ class IfcElementAssembly_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcelementassemblytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcelementassemblytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElementAssemblyType_CorrectPredefinedType: SCOPE = 'entity' @@ -8046,8 +8056,8 @@ class IfcElementAssemblyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElementQuantity_UniqueQuantityNames: SCOPE = 'entity' @@ -8056,7 +8066,7 @@ class IfcElementQuantity_UniqueQuantityNames: @staticmethod def __call__(self): - quantities = getattr(self, 'Quantities', INDETERMINATE) + quantities = express_getattr(self, 'Quantities', INDETERMINATE) assert IfcUniqueQuantityNames(quantities) is not False class IfcEngine_CorrectPredefinedType: @@ -8066,8 +8076,8 @@ class IfcEngine_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEngine_CorrectTypeAssigned: SCOPE = 'entity' @@ -8076,8 +8086,8 @@ class IfcEngine_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcenginetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcenginetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEngineType_CorrectPredefinedType: SCOPE = 'entity' @@ -8086,8 +8096,8 @@ class IfcEngineType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvaporativeCooler_CorrectPredefinedType: SCOPE = 'entity' @@ -8096,8 +8106,8 @@ class IfcEvaporativeCooler_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvaporativeCooler_CorrectTypeAssigned: SCOPE = 'entity' @@ -8106,8 +8116,8 @@ class IfcEvaporativeCooler_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcevaporativecoolertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcevaporativecoolertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEvaporativeCoolerType_CorrectPredefinedType: SCOPE = 'entity' @@ -8116,8 +8126,8 @@ class IfcEvaporativeCoolerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvaporator_CorrectPredefinedType: SCOPE = 'entity' @@ -8126,8 +8136,8 @@ class IfcEvaporator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvaporator_CorrectTypeAssigned: SCOPE = 'entity' @@ -8136,8 +8146,8 @@ class IfcEvaporator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcevaporatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcevaporatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEvaporatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -8146,8 +8156,8 @@ class IfcEvaporatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvent_CorrectPredefinedType: SCOPE = 'entity' @@ -8156,8 +8166,8 @@ class IfcEvent_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvent_CorrectTypeAssigned: SCOPE = 'entity' @@ -8166,9 +8176,9 @@ class IfcEvent_CorrectTypeAssigned: @staticmethod def __call__(self): - eventtriggertype = getattr(self, 'EventTriggerType', INDETERMINATE) - userdefinedeventtriggertype = getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) - assert (not exists(eventtriggertype) or eventtriggertype != getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False + eventtriggertype = express_getattr(self, 'EventTriggerType', INDETERMINATE) + userdefinedeventtriggertype = express_getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) + assert (not exists(eventtriggertype) or eventtriggertype != express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False class IfcEventType_CorrectEventTriggerType: SCOPE = 'entity' @@ -8177,9 +8187,9 @@ class IfcEventType_CorrectEventTriggerType: @staticmethod def __call__(self): - eventtriggertype = getattr(self, 'EventTriggerType', INDETERMINATE) - userdefinedeventtriggertype = getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) - assert (eventtriggertype != getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False + eventtriggertype = express_getattr(self, 'EventTriggerType', INDETERMINATE) + userdefinedeventtriggertype = express_getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) + assert (eventtriggertype != express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False class IfcEventType_CorrectPredefinedType: SCOPE = 'entity' @@ -8188,8 +8198,8 @@ class IfcEventType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcExternalReference_WR1: SCOPE = 'entity' @@ -8198,9 +8208,9 @@ class IfcExternalReference_WR1: @staticmethod def __call__(self): - location = getattr(self, 'Location', INDETERMINATE) - identification = getattr(self, 'Identification', INDETERMINATE) - name = getattr(self, 'Name', INDETERMINATE) + location = express_getattr(self, 'Location', INDETERMINATE) + identification = express_getattr(self, 'Identification', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) assert (exists(identification) or exists(location) or exists(name)) is not False class IfcExtrudedAreaSolid_ValidExtrusionDirection: @@ -8210,7 +8220,7 @@ class IfcExtrudedAreaSolid_ValidExtrusionDirection: @staticmethod def __call__(self): - assert (IfcDotProduct(IfcDirection(DirectionRatios=[0.0, 0.0, 1.0]), getattr(self, 'ExtrudedDirection', INDETERMINATE)) != 0.0) is not False + assert (IfcDotProduct(IfcDirection(DirectionRatios=[0.0, 0.0, 1.0]), express_getattr(self, 'ExtrudedDirection', INDETERMINATE)) != 0.0) is not False class IfcExtrudedAreaSolidTapered_CorrectProfileAssignment: SCOPE = 'entity' @@ -8219,7 +8229,7 @@ class IfcExtrudedAreaSolidTapered_CorrectProfileAssignment: @staticmethod def __call__(self): - assert IfcTaperedSweptAreaProfiles(getattr(self, 'SweptArea', INDETERMINATE), getattr(self, 'EndSweptArea', INDETERMINATE)) is not False + assert IfcTaperedSweptAreaProfiles(express_getattr(self, 'SweptArea', INDETERMINATE), express_getattr(self, 'EndSweptArea', INDETERMINATE)) is not False class IfcFace_HasOuterBound: SCOPE = 'entity' @@ -8228,7 +8238,7 @@ class IfcFace_HasOuterBound: @staticmethod def __call__(self): - bounds = getattr(self, 'Bounds', INDETERMINATE) + bounds = express_getattr(self, 'Bounds', INDETERMINATE) assert (sizeof([temp for temp in bounds if 'ifc4x3_add1.ifcfaceouterbound' in typeof(temp)]) <= 1) is not False def calc_IfcFaceBasedSurfaceModel_Dim(self): @@ -8241,8 +8251,8 @@ class IfcFacilityPartCommon_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFan_CorrectPredefinedType: SCOPE = 'entity' @@ -8251,8 +8261,8 @@ class IfcFan_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFan_CorrectTypeAssigned: SCOPE = 'entity' @@ -8261,8 +8271,8 @@ class IfcFan_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcfantype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcfantype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFanType_CorrectPredefinedType: SCOPE = 'entity' @@ -8271,8 +8281,8 @@ class IfcFanType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFastener_CorrectPredefinedType: SCOPE = 'entity' @@ -8281,8 +8291,8 @@ class IfcFastener_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFastener_CorrectTypeAssigned: SCOPE = 'entity' @@ -8291,8 +8301,8 @@ class IfcFastener_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcfastenertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcfastenertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFastenerType_CorrectPredefinedType: SCOPE = 'entity' @@ -8301,8 +8311,8 @@ class IfcFastenerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFeatureElement_NotContained: SCOPE = 'entity' @@ -8311,7 +8321,7 @@ class IfcFeatureElement_NotContained: @staticmethod def __call__(self): - containedinstructure = getattr(self, 'ContainedInStructure', INDETERMINATE) + containedinstructure = express_getattr(self, 'ContainedInStructure', INDETERMINATE) assert (sizeof(containedinstructure) == 0) is not False class IfcFeatureElementSubtraction_HasNoSubtraction: @@ -8321,7 +8331,7 @@ class IfcFeatureElementSubtraction_HasNoSubtraction: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'HasOpenings', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'HasOpenings', INDETERMINATE)) == 0) is not False class IfcFeatureElementSubtraction_IsNotFilling: SCOPE = 'entity' @@ -8330,7 +8340,7 @@ class IfcFeatureElementSubtraction_IsNotFilling: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'FillsVoids', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'FillsVoids', INDETERMINATE)) == 0) is not False class IfcFillAreaStyle_ConsistentHatchStyleDef: SCOPE = 'entity' @@ -8339,7 +8349,7 @@ class IfcFillAreaStyle_ConsistentHatchStyleDef: @staticmethod def __call__(self): - assert IfcCorrectFillAreaStyle(getattr(self, 'FillStyles', INDETERMINATE)) is not False + assert IfcCorrectFillAreaStyle(express_getattr(self, 'FillStyles', INDETERMINATE)) is not False class IfcFillAreaStyle_MaxOneColour: SCOPE = 'entity' @@ -8348,7 +8358,7 @@ class IfcFillAreaStyle_MaxOneColour: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3_add1.ifccolour' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3_add1.ifccolour' in typeof(style)]) <= 1) is not False class IfcFillAreaStyle_MaxOneExtHatchStyle: SCOPE = 'entity' @@ -8357,7 +8367,7 @@ class IfcFillAreaStyle_MaxOneExtHatchStyle: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3_add1.ifcexternallydefinedhatchstyle' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3_add1.ifcexternallydefinedhatchstyle' in typeof(style)]) <= 1) is not False class IfcFillAreaStyleHatching_PatternStart2D: SCOPE = 'entity' @@ -8366,8 +8376,8 @@ class IfcFillAreaStyleHatching_PatternStart2D: @staticmethod def __call__(self): - patternstart = getattr(self, 'PatternStart', INDETERMINATE) - assert (not exists(patternstart) or getattr(patternstart, 'Dim', INDETERMINATE) == 2) is not False + patternstart = express_getattr(self, 'PatternStart', INDETERMINATE) + assert (not exists(patternstart) or express_getattr(patternstart, 'Dim', INDETERMINATE) == 2) is not False class IfcFillAreaStyleHatching_RefHatchLine2D: SCOPE = 'entity' @@ -8376,8 +8386,8 @@ class IfcFillAreaStyleHatching_RefHatchLine2D: @staticmethod def __call__(self): - pointofreferencehatchline = getattr(self, 'PointOfReferenceHatchLine', INDETERMINATE) - assert (not exists(pointofreferencehatchline) or getattr(pointofreferencehatchline, 'Dim', INDETERMINATE) == 2) is not False + pointofreferencehatchline = express_getattr(self, 'PointOfReferenceHatchLine', INDETERMINATE) + assert (not exists(pointofreferencehatchline) or express_getattr(pointofreferencehatchline, 'Dim', INDETERMINATE) == 2) is not False class IfcFilter_CorrectPredefinedType: SCOPE = 'entity' @@ -8386,8 +8396,8 @@ class IfcFilter_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFilter_CorrectTypeAssigned: SCOPE = 'entity' @@ -8396,8 +8406,8 @@ class IfcFilter_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcfiltertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcfiltertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFilterType_CorrectPredefinedType: SCOPE = 'entity' @@ -8406,8 +8416,8 @@ class IfcFilterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFireSuppressionTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -8416,8 +8426,8 @@ class IfcFireSuppressionTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFireSuppressionTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -8426,8 +8436,8 @@ class IfcFireSuppressionTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcfiresuppressionterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcfiresuppressionterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFireSuppressionTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -8436,8 +8446,8 @@ class IfcFireSuppressionTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFlowInstrument_CorrectPredefinedType: SCOPE = 'entity' @@ -8446,8 +8456,8 @@ class IfcFlowInstrument_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFlowInstrument_CorrectTypeAssigned: SCOPE = 'entity' @@ -8456,8 +8466,8 @@ class IfcFlowInstrument_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcflowinstrumenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcflowinstrumenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFlowInstrumentType_CorrectPredefinedType: SCOPE = 'entity' @@ -8466,8 +8476,8 @@ class IfcFlowInstrumentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFlowMeter_CorrectPredefinedType: SCOPE = 'entity' @@ -8476,8 +8486,8 @@ class IfcFlowMeter_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFlowMeter_CorrectTypeAssigned: SCOPE = 'entity' @@ -8486,8 +8496,8 @@ class IfcFlowMeter_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcflowmetertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcflowmetertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFlowMeterType_CorrectPredefinedType: SCOPE = 'entity' @@ -8496,8 +8506,8 @@ class IfcFlowMeterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFooting_CorrectPredefinedType: SCOPE = 'entity' @@ -8506,8 +8516,8 @@ class IfcFooting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFooting_CorrectTypeAssigned: SCOPE = 'entity' @@ -8516,8 +8526,8 @@ class IfcFooting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcfootingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcfootingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFootingType_CorrectPredefinedType: SCOPE = 'entity' @@ -8526,8 +8536,8 @@ class IfcFootingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFurniture_CorrectPredefinedType: SCOPE = 'entity' @@ -8536,8 +8546,8 @@ class IfcFurniture_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFurniture_CorrectTypeAssigned: SCOPE = 'entity' @@ -8546,8 +8556,8 @@ class IfcFurniture_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcfurnituretype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcfurnituretype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFurnitureType_CorrectPredefinedType: SCOPE = 'entity' @@ -8556,8 +8566,8 @@ class IfcFurnitureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcGeographicCRS_IsPlaneAngleUnit: SCOPE = 'entity' @@ -8566,8 +8576,8 @@ class IfcGeographicCRS_IsPlaneAngleUnit: @staticmethod def __call__(self): - unit = getattr(self, 'Unit', INDETERMINATE) - assert (not exists(unit) or getattr(unit, 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'PLANEANGLEUNIT', INDETERMINATE)) is not False + unit = express_getattr(self, 'Unit', INDETERMINATE) + assert (not exists(unit) or express_getattr(unit, 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'PLANEANGLEUNIT', INDETERMINATE)) is not False class IfcGeographicElement_CorrectPredefinedType: SCOPE = 'entity' @@ -8576,8 +8586,8 @@ class IfcGeographicElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcGeographicElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -8586,8 +8596,8 @@ class IfcGeographicElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcgeographicelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcgeographicelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcGeographicElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -8596,8 +8606,8 @@ class IfcGeographicElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcGeometricCurveSet_NoSurfaces: SCOPE = 'entity' @@ -8606,7 +8616,7 @@ class IfcGeometricCurveSet_NoSurfaces: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Elements', INDETERMINATE) if 'ifc4x3_add1.ifcsurface' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Elements', INDETERMINATE) if 'ifc4x3_add1.ifcsurface' in typeof(temp)]) == 0) is not False class IfcGeometricRepresentationContext_North2D: SCOPE = 'entity' @@ -8615,8 +8625,8 @@ class IfcGeometricRepresentationContext_North2D: @staticmethod def __call__(self): - truenorth = getattr(self, 'TrueNorth', INDETERMINATE) - assert (not exists(truenorth) or hiindex(getattr(truenorth, 'DirectionRatios', INDETERMINATE)) == 2) is not False + truenorth = express_getattr(self, 'TrueNorth', INDETERMINATE) + assert (not exists(truenorth) or hiindex(express_getattr(truenorth, 'DirectionRatios', INDETERMINATE)) == 2) is not False class IfcGeometricRepresentationSubContext_NoCoordOperation: SCOPE = 'entity' @@ -8625,7 +8635,7 @@ class IfcGeometricRepresentationSubContext_NoCoordOperation: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'HasCoordinateOperation', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'HasCoordinateOperation', INDETERMINATE)) == 0) is not False class IfcGeometricRepresentationSubContext_ParentNoSub: SCOPE = 'entity' @@ -8634,7 +8644,7 @@ class IfcGeometricRepresentationSubContext_ParentNoSub: @staticmethod def __call__(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) assert (not 'ifc4x3_add1.ifcgeometricrepresentationsubcontext' in typeof(parentcontext)) is not False class IfcGeometricRepresentationSubContext_UserTargetProvided: @@ -8644,25 +8654,25 @@ class IfcGeometricRepresentationSubContext_UserTargetProvided: @staticmethod def __call__(self): - targetview = getattr(self, 'TargetView', INDETERMINATE) - userdefinedtargetview = getattr(self, 'UserDefinedTargetView', INDETERMINATE) - assert (targetview != getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) or (targetview == getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedtargetview))) is not False + targetview = express_getattr(self, 'TargetView', INDETERMINATE) + userdefinedtargetview = express_getattr(self, 'UserDefinedTargetView', INDETERMINATE) + assert (targetview != express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) or (targetview == express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedtargetview))) is not False def calc_IfcGeometricRepresentationSubContext_WorldCoordinateSystem(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return getattr(parentcontext, 'WorldCoordinateSystem', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return express_getattr(parentcontext, 'WorldCoordinateSystem', INDETERMINATE) def calc_IfcGeometricRepresentationSubContext_CoordinateSpaceDimension(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return getattr(parentcontext, 'CoordinateSpaceDimension', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return express_getattr(parentcontext, 'CoordinateSpaceDimension', INDETERMINATE) def calc_IfcGeometricRepresentationSubContext_TrueNorth(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return nvl(getattr(parentcontext, 'TrueNorth', INDETERMINATE), IfcConvertDirectionInto2D(express_getitem(getattr(getattr(self, 'WorldCoordinateSystem', INDETERMINATE), 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return nvl(express_getattr(parentcontext, 'TrueNorth', INDETERMINATE), IfcConvertDirectionInto2D(express_getitem(express_getattr(express_getattr(self, 'WorldCoordinateSystem', INDETERMINATE), 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) def calc_IfcGeometricRepresentationSubContext_Precision(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return nvl(getattr(parentcontext, 'Precision', INDETERMINATE), 1) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return nvl(express_getattr(parentcontext, 'Precision', INDETERMINATE), 1) class IfcGeometricSet_ConsistentDim: SCOPE = 'entity' @@ -8671,12 +8681,12 @@ class IfcGeometricSet_ConsistentDim: @staticmethod def __call__(self): - elements = getattr(self, 'Elements', INDETERMINATE) - assert (sizeof([temp for temp in elements if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + elements = express_getattr(self, 'Elements', INDETERMINATE) + assert (sizeof([temp for temp in elements if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcGeometricSet_Dim(self): - elements = getattr(self, 'Elements', INDETERMINATE) - return getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + elements = express_getattr(self, 'Elements', INDETERMINATE) + return express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) class IfcGeotechnicalStratum_CorrectPredefinedType: SCOPE = 'entity' @@ -8685,8 +8695,8 @@ class IfcGeotechnicalStratum_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcGeotechnicalStratumTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcGeotechnicalStratumTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcGeotechnicalStratumTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcGeotechnicalStratumTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcGridAxis_WR1: SCOPE = 'entity' @@ -8695,8 +8705,8 @@ class IfcGridAxis_WR1: @staticmethod def __call__(self): - axiscurve = getattr(self, 'AxisCurve', INDETERMINATE) - assert (getattr(axiscurve, 'Dim', INDETERMINATE) == 2) is not False + axiscurve = express_getattr(self, 'AxisCurve', INDETERMINATE) + assert (express_getattr(axiscurve, 'Dim', INDETERMINATE) == 2) is not False class IfcGridAxis_WR2: SCOPE = 'entity' @@ -8705,9 +8715,9 @@ class IfcGridAxis_WR2: @staticmethod def __call__(self): - partofw = getattr(self, 'PartOfW', INDETERMINATE) - partofv = getattr(self, 'PartOfV', INDETERMINATE) - partofu = getattr(self, 'PartOfU', INDETERMINATE) + partofw = express_getattr(self, 'PartOfW', INDETERMINATE) + partofv = express_getattr(self, 'PartOfV', INDETERMINATE) + partofu = express_getattr(self, 'PartOfU', INDETERMINATE) assert (sizeof(partofu) == 1) ^ (sizeof(partofv) == 1) ^ (sizeof(partofw) == 1) is not False def calc_IfcHalfSpaceSolid_Dim(self): @@ -8720,8 +8730,8 @@ class IfcHeatExchanger_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcHeatExchanger_CorrectTypeAssigned: SCOPE = 'entity' @@ -8730,8 +8740,8 @@ class IfcHeatExchanger_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcheatexchangertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcheatexchangertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcHeatExchangerType_CorrectPredefinedType: SCOPE = 'entity' @@ -8740,8 +8750,8 @@ class IfcHeatExchangerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcHumidifier_CorrectPredefinedType: SCOPE = 'entity' @@ -8750,8 +8760,8 @@ class IfcHumidifier_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcHumidifier_CorrectTypeAssigned: SCOPE = 'entity' @@ -8760,8 +8770,8 @@ class IfcHumidifier_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifchumidifiertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifchumidifiertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcHumidifierType_CorrectPredefinedType: SCOPE = 'entity' @@ -8770,8 +8780,8 @@ class IfcHumidifierType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcIShapeProfileDef_ValidFilletRadius: SCOPE = 'entity' @@ -8780,11 +8790,11 @@ class IfcIShapeProfileDef_ValidFilletRadius: @staticmethod def __call__(self): - overallwidth = getattr(self, 'OverallWidth', INDETERMINATE) - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) - filletradius = getattr(self, 'FilletRadius', INDETERMINATE) + overallwidth = express_getattr(self, 'OverallWidth', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) + filletradius = express_getattr(self, 'FilletRadius', INDETERMINATE) assert (not exists(filletradius) or (filletradius <= (overallwidth - webthickness) / 2.0 and filletradius <= (overalldepth - 2.0 * flangethickness) / 2.0)) is not False class IfcIShapeProfileDef_ValidFlangeThickness: @@ -8794,8 +8804,8 @@ class IfcIShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (2.0 * flangethickness < overalldepth) is not False class IfcIShapeProfileDef_ValidWebThickness: @@ -8805,8 +8815,8 @@ class IfcIShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - overallwidth = getattr(self, 'OverallWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + overallwidth = express_getattr(self, 'OverallWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < overallwidth) is not False class IfcImpactProtectionDevice_CorrectPredefinedType: @@ -8816,8 +8826,8 @@ class IfcImpactProtectionDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcImpactProtectionDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -8826,8 +8836,8 @@ class IfcImpactProtectionDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcimpactprotectiondevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcimpactprotectiondevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcImpactProtectionDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -8836,8 +8846,8 @@ class IfcImpactProtectionDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcIndexedPolyCurve_Consecutive: SCOPE = 'entity' @@ -8846,7 +8856,7 @@ class IfcIndexedPolyCurve_Consecutive: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) + segments = express_getattr(self, 'Segments', INDETERMINATE) assert (not exists(segments) or IfcConsecutiveSegments(segments)) is not False class IfcInterceptor_CorrectPredefinedType: @@ -8856,8 +8866,8 @@ class IfcInterceptor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcInterceptor_CorrectTypeAssigned: SCOPE = 'entity' @@ -8866,8 +8876,8 @@ class IfcInterceptor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcinterceptortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcinterceptortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcInterceptorType_CorrectPredefinedType: SCOPE = 'entity' @@ -8876,8 +8886,8 @@ class IfcInterceptorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcIntersectionCurve_DistinctSurfaces: SCOPE = 'entity' @@ -8886,7 +8896,7 @@ class IfcIntersectionCurve_DistinctSurfaces: @staticmethod def __call__(self): - assert (IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcIntersectionCurve_TwoPCurves: SCOPE = 'entity' @@ -8895,7 +8905,7 @@ class IfcIntersectionCurve_TwoPCurves: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False + assert (sizeof(express_getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False class IfcJunctionBox_CorrectPredefinedType: SCOPE = 'entity' @@ -8904,8 +8914,8 @@ class IfcJunctionBox_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcJunctionBox_CorrectTypeAssigned: SCOPE = 'entity' @@ -8914,8 +8924,8 @@ class IfcJunctionBox_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcjunctionboxtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcjunctionboxtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcJunctionBoxType_CorrectPredefinedType: SCOPE = 'entity' @@ -8924,8 +8934,8 @@ class IfcJunctionBoxType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcKerb_CorrectPredefinedType: SCOPE = 'entity' @@ -8934,8 +8944,8 @@ class IfcKerb_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcKerb_CorrectTypeAssigned: SCOPE = 'entity' @@ -8944,8 +8954,8 @@ class IfcKerb_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifckerbtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifckerbtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcKerbType_CorrectPredefinedType: SCOPE = 'entity' @@ -8954,8 +8964,8 @@ class IfcKerbType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLShapeProfileDef_ValidThickness: SCOPE = 'entity' @@ -8964,9 +8974,9 @@ class IfcLShapeProfileDef_ValidThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - thickness = getattr(self, 'Thickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + thickness = express_getattr(self, 'Thickness', INDETERMINATE) assert (thickness < depth and (not exists(width) or thickness < width)) is not False class IfcLaborResource_CorrectPredefinedType: @@ -8976,8 +8986,8 @@ class IfcLaborResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLaborResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -8986,8 +8996,8 @@ class IfcLaborResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcLamp_CorrectPredefinedType: SCOPE = 'entity' @@ -8996,8 +9006,8 @@ class IfcLamp_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLamp_CorrectTypeAssigned: SCOPE = 'entity' @@ -9006,8 +9016,8 @@ class IfcLamp_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifclamptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifclamptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLampType_CorrectPredefinedType: SCOPE = 'entity' @@ -9016,8 +9026,8 @@ class IfcLampType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLightFixture_CorrectPredefinedType: SCOPE = 'entity' @@ -9026,8 +9036,8 @@ class IfcLightFixture_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLightFixture_CorrectTypeAssigned: SCOPE = 'entity' @@ -9036,8 +9046,8 @@ class IfcLightFixture_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifclightfixturetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifclightfixturetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLightFixtureType_CorrectPredefinedType: SCOPE = 'entity' @@ -9046,8 +9056,8 @@ class IfcLightFixtureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLine_SameDim: SCOPE = 'entity' @@ -9056,9 +9066,9 @@ class IfcLine_SameDim: @staticmethod def __call__(self): - pnt = getattr(self, 'Pnt', INDETERMINATE) - dir = getattr(self, 'Dir', INDETERMINATE) - assert (getattr(dir, 'Dim', INDETERMINATE) == getattr(pnt, 'Dim', INDETERMINATE)) is not False + pnt = express_getattr(self, 'Pnt', INDETERMINATE) + dir = express_getattr(self, 'Dir', INDETERMINATE) + assert (express_getattr(dir, 'Dim', INDETERMINATE) == express_getattr(pnt, 'Dim', INDETERMINATE)) is not False class IfcLiquidTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -9067,8 +9077,8 @@ class IfcLiquidTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLiquidTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -9077,8 +9087,8 @@ class IfcLiquidTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcliquidterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcliquidterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLiquidTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -9087,8 +9097,8 @@ class IfcLiquidTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLocalPlacement_WR21: SCOPE = 'entity' @@ -9097,8 +9107,8 @@ class IfcLocalPlacement_WR21: @staticmethod def __call__(self): - placementrelto = getattr(self, 'PlacementRelTo', INDETERMINATE) - relativeplacement = getattr(self, 'RelativePlacement', INDETERMINATE) + placementrelto = express_getattr(self, 'PlacementRelTo', INDETERMINATE) + relativeplacement = express_getattr(self, 'RelativePlacement', INDETERMINATE) assert IfcCorrectLocalPlacement(relativeplacement, placementrelto) is not False class IfcMarineFacility_CorrectPredefinedType: @@ -9108,8 +9118,8 @@ class IfcMarineFacility_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMarinePart_CorrectPredefinedType: SCOPE = 'entity' @@ -9118,8 +9128,8 @@ class IfcMarinePart_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMaterialDefinitionRepresentation_OnlyStyledRepresentations: SCOPE = 'entity' @@ -9128,7 +9138,7 @@ class IfcMaterialDefinitionRepresentation_OnlyStyledRepresentations: @staticmethod def __call__(self): - representations = getattr(self, 'Representations', INDETERMINATE) + representations = express_getattr(self, 'Representations', INDETERMINATE) assert (sizeof([temp for temp in representations if not 'ifc4x3_add1.ifcstyledrepresentation' in typeof(temp)]) == 0) is not False class IfcMaterialLayer_NormalizedPriority: @@ -9138,7 +9148,7 @@ class IfcMaterialLayer_NormalizedPriority: @staticmethod def __call__(self): - priority = getattr(self, 'Priority', INDETERMINATE) + priority = express_getattr(self, 'Priority', INDETERMINATE) assert (not exists(priority) or 0 <= priority <= 100) is not False def calc_IfcMaterialLayerSet_TotalThickness(self): @@ -9151,7 +9161,7 @@ class IfcMaterialProfile_NormalizedPriority: @staticmethod def __call__(self): - priority = getattr(self, 'Priority', INDETERMINATE) + priority = express_getattr(self, 'Priority', INDETERMINATE) assert (not exists(priority) or 0 <= priority <= 100) is not False class IfcMechanicalFastener_CorrectPredefinedType: @@ -9161,8 +9171,8 @@ class IfcMechanicalFastener_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMechanicalFastener_CorrectTypeAssigned: SCOPE = 'entity' @@ -9171,8 +9181,8 @@ class IfcMechanicalFastener_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcmechanicalfastenertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcmechanicalfastenertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMechanicalFastenerType_CorrectPredefinedType: SCOPE = 'entity' @@ -9181,8 +9191,8 @@ class IfcMechanicalFastenerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMedicalDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -9191,8 +9201,8 @@ class IfcMedicalDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMedicalDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -9201,8 +9211,8 @@ class IfcMedicalDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcmedicaldevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcmedicaldevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMedicalDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9211,8 +9221,8 @@ class IfcMedicalDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMember_CorrectPredefinedType: SCOPE = 'entity' @@ -9221,8 +9231,8 @@ class IfcMember_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMember_CorrectTypeAssigned: SCOPE = 'entity' @@ -9231,8 +9241,8 @@ class IfcMember_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcmembertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcmembertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMemberType_CorrectPredefinedType: SCOPE = 'entity' @@ -9241,8 +9251,8 @@ class IfcMemberType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcMirroredProfileDef_Operator(self): return IfcCartesianTransformationOperator2D(Axis1=IfcDirection(DirectionRatios=[-1.0, 0.0]), Axis2=IfcDirection(DirectionRatios=[0.0, 1.0]), LocalOrigin=IfcCartesianPoint(Coordinates=[0.0, 0.0]), Scale=1.0) @@ -9254,8 +9264,8 @@ class IfcMobileTelecommunicationsAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMobileTelecommunicationsAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -9264,8 +9274,8 @@ class IfcMobileTelecommunicationsAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcmobiletelecommunicationsappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcmobiletelecommunicationsappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMobileTelecommunicationsApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9274,8 +9284,8 @@ class IfcMobileTelecommunicationsApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMooringDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -9284,8 +9294,8 @@ class IfcMooringDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMooringDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -9294,8 +9304,8 @@ class IfcMooringDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcmooringdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcmooringdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMooringDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9304,8 +9314,8 @@ class IfcMooringDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMotorConnection_CorrectPredefinedType: SCOPE = 'entity' @@ -9314,8 +9324,8 @@ class IfcMotorConnection_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMotorConnection_CorrectTypeAssigned: SCOPE = 'entity' @@ -9324,8 +9334,8 @@ class IfcMotorConnection_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcmotorconnectiontype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcmotorconnectiontype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMotorConnectionType_CorrectPredefinedType: SCOPE = 'entity' @@ -9334,8 +9344,8 @@ class IfcMotorConnectionType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcNamedUnit_WR1: SCOPE = 'entity' @@ -9344,7 +9354,7 @@ class IfcNamedUnit_WR1: @staticmethod def __call__(self): - assert IfcCorrectDimensions(getattr(self, 'UnitType', INDETERMINATE), getattr(self, 'Dimensions', INDETERMINATE)) is not False + assert IfcCorrectDimensions(express_getattr(self, 'UnitType', INDETERMINATE), express_getattr(self, 'Dimensions', INDETERMINATE)) is not False class IfcNavigationElement_CorrectPredefinedType: SCOPE = 'entity' @@ -9353,8 +9363,8 @@ class IfcNavigationElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcNavigationElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -9363,8 +9373,8 @@ class IfcNavigationElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcnavigationelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcnavigationelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcNavigationElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -9373,8 +9383,8 @@ class IfcNavigationElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcObject_UniquePropertySetNames: SCOPE = 'entity' @@ -9383,7 +9393,7 @@ class IfcObject_UniquePropertySetNames: @staticmethod def __call__(self): - isdefinedby = getattr(self, 'IsDefinedBy', INDETERMINATE) + isdefinedby = express_getattr(self, 'IsDefinedBy', INDETERMINATE) assert (sizeof(isdefinedby) == 0 or IfcUniqueDefinitionNames(isdefinedby)) is not False class IfcObjective_WR21: @@ -9393,8 +9403,8 @@ class IfcObjective_WR21: @staticmethod def __call__(self): - objectivequalifier = getattr(self, 'ObjectiveQualifier', INDETERMINATE) - assert (objectivequalifier != getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) or (objectivequalifier == getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedQualifier', INDETERMINATE)))) is not False + objectivequalifier = express_getattr(self, 'ObjectiveQualifier', INDETERMINATE) + assert (objectivequalifier != express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) or (objectivequalifier == express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedQualifier', INDETERMINATE)))) is not False class IfcOccupant_WR31: SCOPE = 'entity' @@ -9403,8 +9413,8 @@ class IfcOccupant_WR31: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not predefinedtype == getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not predefinedtype == express_getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcOffsetCurve2D_DimIs2D: SCOPE = 'entity' @@ -9413,8 +9423,8 @@ class IfcOffsetCurve2D_DimIs2D: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - assert (getattr(basiscurve, 'Dim', INDETERMINATE) == 2) is not False + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + assert (express_getattr(basiscurve, 'Dim', INDETERMINATE) == 2) is not False class IfcOffsetCurve3D_DimIs2D: SCOPE = 'entity' @@ -9423,8 +9433,8 @@ class IfcOffsetCurve3D_DimIs2D: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - assert (getattr(basiscurve, 'Dim', INDETERMINATE) == 3) is not False + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + assert (express_getattr(basiscurve, 'Dim', INDETERMINATE) == 3) is not False class IfcOpenCrossProfileDef_CorrectProfileType: SCOPE = 'entity' @@ -9433,7 +9443,7 @@ class IfcOpenCrossProfileDef_CorrectProfileType: @staticmethod def __call__(self): - assert (getattr(self, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False class IfcOpenCrossProfileDef_CorrespondingSlopeWidths: SCOPE = 'entity' @@ -9442,8 +9452,8 @@ class IfcOpenCrossProfileDef_CorrespondingSlopeWidths: @staticmethod def __call__(self): - widths = getattr(self, 'Widths', INDETERMINATE) - slopes = getattr(self, 'Slopes', INDETERMINATE) + widths = express_getattr(self, 'Widths', INDETERMINATE) + slopes = express_getattr(self, 'Slopes', INDETERMINATE) assert (sizeof(slopes) == sizeof(widths)) is not False class IfcOpenCrossProfileDef_CorrespondingTags: @@ -9453,8 +9463,8 @@ class IfcOpenCrossProfileDef_CorrespondingTags: @staticmethod def __call__(self): - slopes = getattr(self, 'Slopes', INDETERMINATE) - tags = getattr(self, 'Tags', INDETERMINATE) + slopes = express_getattr(self, 'Slopes', INDETERMINATE) + tags = express_getattr(self, 'Tags', INDETERMINATE) assert (not exists(tags) or sizeof(tags) == sizeof(slopes) + 1) is not False class IfcOpeningElement_CorrectPredefinedType: @@ -9464,8 +9474,8 @@ class IfcOpeningElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcOrientedEdge_EdgeElementNotOriented: SCOPE = 'entity' @@ -9474,18 +9484,18 @@ class IfcOrientedEdge_EdgeElementNotOriented: @staticmethod def __call__(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) assert (not 'ifc4x3_add1.ifcorientededge' in typeof(edgeelement)) is not False def calc_IfcOrientedEdge_EdgeStart(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) - orientation = getattr(self, 'Orientation', INDETERMINATE) - return IfcBooleanChoose(orientation, getattr(edgeelement, 'EdgeStart', INDETERMINATE), getattr(edgeelement, 'EdgeEnd', INDETERMINATE)) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return IfcBooleanChoose(orientation, express_getattr(edgeelement, 'EdgeStart', INDETERMINATE), express_getattr(edgeelement, 'EdgeEnd', INDETERMINATE)) def calc_IfcOrientedEdge_EdgeEnd(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) - orientation = getattr(self, 'Orientation', INDETERMINATE) - return IfcBooleanChoose(orientation, getattr(edgeelement, 'EdgeEnd', INDETERMINATE), getattr(edgeelement, 'EdgeStart', INDETERMINATE)) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return IfcBooleanChoose(orientation, express_getattr(edgeelement, 'EdgeEnd', INDETERMINATE), express_getattr(edgeelement, 'EdgeStart', INDETERMINATE)) class IfcOutlet_CorrectPredefinedType: SCOPE = 'entity' @@ -9494,8 +9504,8 @@ class IfcOutlet_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcOutlet_CorrectTypeAssigned: SCOPE = 'entity' @@ -9504,8 +9514,8 @@ class IfcOutlet_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcoutlettype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcoutlettype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcOutletType_CorrectPredefinedType: SCOPE = 'entity' @@ -9514,8 +9524,8 @@ class IfcOutletType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcOwnerHistory_CorrectChangeAction: SCOPE = 'entity' @@ -9524,9 +9534,9 @@ class IfcOwnerHistory_CorrectChangeAction: @staticmethod def __call__(self): - changeaction = getattr(self, 'ChangeAction', INDETERMINATE) - lastmodifieddate = getattr(self, 'LastModifiedDate', INDETERMINATE) - assert (exists(lastmodifieddate) or (not exists(lastmodifieddate) and (not exists(changeaction))) or (not exists(lastmodifieddate) and exists(changeaction) and (changeaction == getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) or changeaction == getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE)))) is not False + changeaction = express_getattr(self, 'ChangeAction', INDETERMINATE) + lastmodifieddate = express_getattr(self, 'LastModifiedDate', INDETERMINATE) + assert (exists(lastmodifieddate) or (not exists(lastmodifieddate) and (not exists(changeaction))) or (not exists(lastmodifieddate) and exists(changeaction) and (changeaction == express_getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) or changeaction == express_getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE)))) is not False class IfcPath_IsContinuous: SCOPE = 'entity' @@ -9544,8 +9554,8 @@ class IfcPavement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPavement_CorrectTypeAssigned: SCOPE = 'entity' @@ -9554,8 +9564,8 @@ class IfcPavement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcpavementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcpavementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPavementType_CorrectPredefinedType: SCOPE = 'entity' @@ -9564,8 +9574,8 @@ class IfcPavementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPcurve_DimIs2D: SCOPE = 'entity' @@ -9574,8 +9584,8 @@ class IfcPcurve_DimIs2D: @staticmethod def __call__(self): - referencecurve = getattr(self, 'ReferenceCurve', INDETERMINATE) - assert (getattr(referencecurve, 'Dim', INDETERMINATE) == 2) is not False + referencecurve = express_getattr(self, 'ReferenceCurve', INDETERMINATE) + assert (express_getattr(referencecurve, 'Dim', INDETERMINATE) == 2) is not False class IfcPerson_IdentifiablePerson: SCOPE = 'entity' @@ -9584,9 +9594,9 @@ class IfcPerson_IdentifiablePerson: @staticmethod def __call__(self): - identification = getattr(self, 'Identification', INDETERMINATE) - familyname = getattr(self, 'FamilyName', INDETERMINATE) - givenname = getattr(self, 'GivenName', INDETERMINATE) + identification = express_getattr(self, 'Identification', INDETERMINATE) + familyname = express_getattr(self, 'FamilyName', INDETERMINATE) + givenname = express_getattr(self, 'GivenName', INDETERMINATE) assert (exists(identification) or exists(familyname) or exists(givenname)) is not False class IfcPerson_ValidSetOfNames: @@ -9596,9 +9606,9 @@ class IfcPerson_ValidSetOfNames: @staticmethod def __call__(self): - familyname = getattr(self, 'FamilyName', INDETERMINATE) - givenname = getattr(self, 'GivenName', INDETERMINATE) - middlenames = getattr(self, 'MiddleNames', INDETERMINATE) + familyname = express_getattr(self, 'FamilyName', INDETERMINATE) + givenname = express_getattr(self, 'GivenName', INDETERMINATE) + middlenames = express_getattr(self, 'MiddleNames', INDETERMINATE) assert (not exists(middlenames) or exists(familyname) or exists(givenname)) is not False class IfcPhysicalComplexQuantity_NoSelfReference: @@ -9608,7 +9618,7 @@ class IfcPhysicalComplexQuantity_NoSelfReference: @staticmethod def __call__(self): - hasquantities = getattr(self, 'HasQuantities', INDETERMINATE) + hasquantities = express_getattr(self, 'HasQuantities', INDETERMINATE) assert (sizeof([temp for temp in hasquantities if self == temp]) == 0) is not False class IfcPhysicalComplexQuantity_UniqueQuantityNames: @@ -9618,7 +9628,7 @@ class IfcPhysicalComplexQuantity_UniqueQuantityNames: @staticmethod def __call__(self): - hasquantities = getattr(self, 'HasQuantities', INDETERMINATE) + hasquantities = express_getattr(self, 'HasQuantities', INDETERMINATE) assert IfcUniqueQuantityNames(hasquantities) is not False class IfcPile_CorrectPredefinedType: @@ -9628,8 +9638,8 @@ class IfcPile_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPile_CorrectTypeAssigned: SCOPE = 'entity' @@ -9638,8 +9648,8 @@ class IfcPile_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcpiletype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcpiletype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPileType_CorrectPredefinedType: SCOPE = 'entity' @@ -9648,8 +9658,8 @@ class IfcPileType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPipeFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -9658,8 +9668,8 @@ class IfcPipeFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPipeFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -9668,8 +9678,8 @@ class IfcPipeFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcpipefittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcpipefittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPipeFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -9678,8 +9688,8 @@ class IfcPipeFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPipeSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -9688,8 +9698,8 @@ class IfcPipeSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPipeSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -9698,8 +9708,8 @@ class IfcPipeSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcpipesegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcpipesegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPipeSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -9708,8 +9718,8 @@ class IfcPipeSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPixelTexture_MinPixelInS: SCOPE = 'entity' @@ -9718,7 +9728,7 @@ class IfcPixelTexture_MinPixelInS: @staticmethod def __call__(self): - width = getattr(self, 'Width', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) assert (width >= 1) is not False class IfcPixelTexture_MinPixelInT: @@ -9728,7 +9738,7 @@ class IfcPixelTexture_MinPixelInT: @staticmethod def __call__(self): - height = getattr(self, 'Height', INDETERMINATE) + height = express_getattr(self, 'Height', INDETERMINATE) assert (height >= 1) is not False class IfcPixelTexture_NumberOfColours: @@ -9738,7 +9748,7 @@ class IfcPixelTexture_NumberOfColours: @staticmethod def __call__(self): - colourcomponents = getattr(self, 'ColourComponents', INDETERMINATE) + colourcomponents = express_getattr(self, 'ColourComponents', INDETERMINATE) assert (1 <= colourcomponents <= 4) is not False class IfcPixelTexture_PixelAsByteAndSameLength: @@ -9748,7 +9758,7 @@ class IfcPixelTexture_PixelAsByteAndSameLength: @staticmethod def __call__(self): - pixel = getattr(self, 'Pixel', INDETERMINATE) + pixel = express_getattr(self, 'Pixel', INDETERMINATE) assert (sizeof([temp for temp in pixel if blength(temp) % 8 == 0 and blength(temp) == blength(express_getitem(pixel, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == sizeof(pixel)) is not False class IfcPixelTexture_SizeOfPixelList: @@ -9758,14 +9768,14 @@ class IfcPixelTexture_SizeOfPixelList: @staticmethod def __call__(self): - width = getattr(self, 'Width', INDETERMINATE) - height = getattr(self, 'Height', INDETERMINATE) - pixel = getattr(self, 'Pixel', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + height = express_getattr(self, 'Height', INDETERMINATE) + pixel = express_getattr(self, 'Pixel', INDETERMINATE) assert (sizeof(pixel) == width * height) is not False def calc_IfcPlacement_Dim(self): - location = getattr(self, 'Location', INDETERMINATE) - return getattr(location, 'Dim', INDETERMINATE) + location = express_getattr(self, 'Location', INDETERMINATE) + return express_getattr(location, 'Dim', INDETERMINATE) class IfcPlate_CorrectPredefinedType: SCOPE = 'entity' @@ -9774,8 +9784,8 @@ class IfcPlate_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPlate_CorrectTypeAssigned: SCOPE = 'entity' @@ -9784,8 +9794,8 @@ class IfcPlate_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcplatetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcplatetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPlateType_CorrectPredefinedType: SCOPE = 'entity' @@ -9794,8 +9804,8 @@ class IfcPlateType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcPoint_Dim(self): return IfcPointDim(self) @@ -9807,8 +9817,8 @@ class IfcPolyLoop_AllPointsSameDim: @staticmethod def __call__(self): - polygon = getattr(self, 'Polygon', INDETERMINATE) - assert (sizeof([temp for temp in polygon if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(polygon, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + polygon = express_getattr(self, 'Polygon', INDETERMINATE) + assert (sizeof([temp for temp in polygon if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(polygon, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False class IfcPolygonalBoundedHalfSpace_BoundaryDim: SCOPE = 'entity' @@ -9817,8 +9827,8 @@ class IfcPolygonalBoundedHalfSpace_BoundaryDim: @staticmethod def __call__(self): - polygonalboundary = getattr(self, 'PolygonalBoundary', INDETERMINATE) - assert (getattr(polygonalboundary, 'Dim', INDETERMINATE) == 2) is not False + polygonalboundary = express_getattr(self, 'PolygonalBoundary', INDETERMINATE) + assert (express_getattr(polygonalboundary, 'Dim', INDETERMINATE) == 2) is not False class IfcPolygonalBoundedHalfSpace_BoundaryType: SCOPE = 'entity' @@ -9827,7 +9837,7 @@ class IfcPolygonalBoundedHalfSpace_BoundaryType: @staticmethod def __call__(self): - polygonalboundary = getattr(self, 'PolygonalBoundary', INDETERMINATE) + polygonalboundary = express_getattr(self, 'PolygonalBoundary', INDETERMINATE) assert (sizeof(typeof(polygonalboundary) * ['ifc4x3_add1.ifcpolyline', 'ifc4x3_add1.ifccompositecurve', 'ifc4x3_add1.ifcindexedpolycurve']) == 1) is not False class IfcPolyline_SameDim: @@ -9837,8 +9847,8 @@ class IfcPolyline_SameDim: @staticmethod def __call__(self): - points = getattr(self, 'Points', INDETERMINATE) - assert (sizeof([temp for temp in points if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(points, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + points = express_getattr(self, 'Points', INDETERMINATE) + assert (sizeof([temp for temp in points if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(points, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False class IfcPolynomialCurve_CorrectPositionDim: SCOPE = 'entity' @@ -9847,9 +9857,9 @@ class IfcPolynomialCurve_CorrectPositionDim: @staticmethod def __call__(self): - position = getattr(self, 'Position', INDETERMINATE) - coefficientsz = getattr(self, 'CoefficientsZ', INDETERMINATE) - assert (getattr(position, 'Dim', INDETERMINATE) == 2 and (not exists(coefficientsz)) or getattr(position, 'Dim', INDETERMINATE) == 3) is not False + position = express_getattr(self, 'Position', INDETERMINATE) + coefficientsz = express_getattr(self, 'CoefficientsZ', INDETERMINATE) + assert (express_getattr(position, 'Dim', INDETERMINATE) == 2 and (not exists(coefficientsz)) or express_getattr(position, 'Dim', INDETERMINATE) == 3) is not False class IfcPolynomialCurve_ValidCoefficients: SCOPE = 'entity' @@ -9858,9 +9868,9 @@ class IfcPolynomialCurve_ValidCoefficients: @staticmethod def __call__(self): - coefficientsx = getattr(self, 'CoefficientsX', INDETERMINATE) - coefficientsy = getattr(self, 'CoefficientsY', INDETERMINATE) - coefficientsz = getattr(self, 'CoefficientsZ', INDETERMINATE) + coefficientsx = express_getattr(self, 'CoefficientsX', INDETERMINATE) + coefficientsy = express_getattr(self, 'CoefficientsY', INDETERMINATE) + coefficientsz = express_getattr(self, 'CoefficientsZ', INDETERMINATE) assert (exists(coefficientsx) and exists(coefficientsy) or (exists(coefficientsx) and exists(coefficientsz)) or (exists(coefficientsy) and exists(coefficientsz)) or (exists(coefficientsx) and exists(coefficientsy) and exists(coefficientsz))) is not False class IfcPositioningElement_HasPlacement: @@ -9870,7 +9880,7 @@ class IfcPositioningElement_HasPlacement: @staticmethod def __call__(self): - assert exists(getattr(self, 'ObjectPlacement', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'ObjectPlacement', INDETERMINATE)) is not False class IfcPostalAddress_WR1: SCOPE = 'entity' @@ -9879,13 +9889,13 @@ class IfcPostalAddress_WR1: @staticmethod def __call__(self): - internallocation = getattr(self, 'InternalLocation', INDETERMINATE) - addresslines = getattr(self, 'AddressLines', INDETERMINATE) - postalbox = getattr(self, 'PostalBox', INDETERMINATE) - town = getattr(self, 'Town', INDETERMINATE) - region = getattr(self, 'Region', INDETERMINATE) - postalcode = getattr(self, 'PostalCode', INDETERMINATE) - country = getattr(self, 'Country', INDETERMINATE) + internallocation = express_getattr(self, 'InternalLocation', INDETERMINATE) + addresslines = express_getattr(self, 'AddressLines', INDETERMINATE) + postalbox = express_getattr(self, 'PostalBox', INDETERMINATE) + town = express_getattr(self, 'Town', INDETERMINATE) + region = express_getattr(self, 'Region', INDETERMINATE) + postalcode = express_getattr(self, 'PostalCode', INDETERMINATE) + country = express_getattr(self, 'Country', INDETERMINATE) assert (exists(internallocation) or exists(addresslines) or exists(postalbox) or exists(postalcode) or exists(town) or exists(region) or exists(country)) is not False class IfcPresentationLayerAssignment_ApplicableItems: @@ -9895,7 +9905,7 @@ class IfcPresentationLayerAssignment_ApplicableItems: @staticmethod def __call__(self): - assigneditems = getattr(self, 'AssignedItems', INDETERMINATE) + assigneditems = express_getattr(self, 'AssignedItems', INDETERMINATE) assert (sizeof([temp for temp in assigneditems if sizeof(typeof(temp) * ['ifc4x3_add1.ifcshaperepresentation', 'ifc4x3_add1.ifcgeometricrepresentationitem', 'ifc4x3_add1.ifcmappeditem']) == 1]) == sizeof(assigneditems)) is not False class IfcPresentationLayerWithStyle_ApplicableOnlyToItems: @@ -9905,7 +9915,7 @@ class IfcPresentationLayerWithStyle_ApplicableOnlyToItems: @staticmethod def __call__(self): - assigneditems = getattr(self, 'AssignedItems', INDETERMINATE) + assigneditems = express_getattr(self, 'AssignedItems', INDETERMINATE) assert (sizeof([temp for temp in assigneditems if sizeof(typeof(temp) * ['ifc4x3_add1.ifcgeometricrepresentationitem', 'ifc4x3_add1.ifcmappeditem']) >= 1]) == sizeof(assigneditems)) is not False class IfcProcedure_CorrectPredefinedType: @@ -9915,8 +9925,8 @@ class IfcProcedure_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProcedure_HasName: SCOPE = 'entity' @@ -9925,7 +9935,7 @@ class IfcProcedure_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcProcedureType_CorrectPredefinedType: SCOPE = 'entity' @@ -9934,8 +9944,8 @@ class IfcProcedureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcProduct_PlacementForShapeRepresentation: SCOPE = 'entity' @@ -9944,9 +9954,9 @@ class IfcProduct_PlacementForShapeRepresentation: @staticmethod def __call__(self): - objectplacement = getattr(self, 'ObjectPlacement', INDETERMINATE) - representation = getattr(self, 'Representation', INDETERMINATE) - assert (exists(representation) and exists(objectplacement) or (exists(representation) and sizeof([temp for temp in getattr(representation, 'Representations', INDETERMINATE) if 'ifc4x3_add1.ifcshaperepresentation' in typeof(temp)]) == 0) or (not exists(representation))) is not False + objectplacement = express_getattr(self, 'ObjectPlacement', INDETERMINATE) + representation = express_getattr(self, 'Representation', INDETERMINATE) + assert (exists(representation) and exists(objectplacement) or (exists(representation) and sizeof([temp for temp in express_getattr(representation, 'Representations', INDETERMINATE) if 'ifc4x3_add1.ifcshaperepresentation' in typeof(temp)]) == 0) or (not exists(representation))) is not False class IfcProductDefinitionShape_OnlyShapeModel: SCOPE = 'entity' @@ -9955,7 +9965,7 @@ class IfcProductDefinitionShape_OnlyShapeModel: @staticmethod def __call__(self): - representations = getattr(self, 'Representations', INDETERMINATE) + representations = express_getattr(self, 'Representations', INDETERMINATE) assert (sizeof([temp for temp in representations if not 'ifc4x3_add1.ifcshapemodel' in typeof(temp)]) == 0) is not False class IfcProject_CorrectContext: @@ -9965,7 +9975,7 @@ class IfcProject_CorrectContext: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'RepresentationContexts', INDETERMINATE)) or sizeof([temp for temp in getattr(self, 'RepresentationContexts', INDETERMINATE) if 'ifc4x3_add1.ifcgeometricrepresentationsubcontext' in typeof(temp)]) == 0) is not False + assert (not exists(express_getattr(self, 'RepresentationContexts', INDETERMINATE)) or sizeof([temp for temp in express_getattr(self, 'RepresentationContexts', INDETERMINATE) if 'ifc4x3_add1.ifcgeometricrepresentationsubcontext' in typeof(temp)]) == 0) is not False class IfcProject_HasName: SCOPE = 'entity' @@ -9974,7 +9984,7 @@ class IfcProject_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcProject_NoDecomposition: SCOPE = 'entity' @@ -9983,7 +9993,7 @@ class IfcProject_NoDecomposition: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'Decomposes', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'Decomposes', INDETERMINATE)) == 0) is not False class IfcProjectedCRS_IsLengthUnit: SCOPE = 'entity' @@ -9992,8 +10002,8 @@ class IfcProjectedCRS_IsLengthUnit: @staticmethod def __call__(self): - mapunit = getattr(self, 'MapUnit', INDETERMINATE) - assert (not exists(mapunit) or getattr(mapunit, 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False + mapunit = express_getattr(self, 'MapUnit', INDETERMINATE) + assert (not exists(mapunit) or express_getattr(mapunit, 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False class IfcProjectionElement_CorrectPredefinedType: SCOPE = 'entity' @@ -10002,8 +10012,8 @@ class IfcProjectionElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPropertyBoundedValue_SameUnitLowerSet: SCOPE = 'entity' @@ -10012,8 +10022,8 @@ class IfcPropertyBoundedValue_SameUnitLowerSet: @staticmethod def __call__(self): - lowerboundvalue = getattr(self, 'LowerBoundValue', INDETERMINATE) - setpointvalue = getattr(self, 'SetPointValue', INDETERMINATE) + lowerboundvalue = express_getattr(self, 'LowerBoundValue', INDETERMINATE) + setpointvalue = express_getattr(self, 'SetPointValue', INDETERMINATE) assert (not exists(lowerboundvalue) or not exists(setpointvalue) or typeof(lowerboundvalue) == typeof(setpointvalue)) is not False class IfcPropertyBoundedValue_SameUnitUpperLower: @@ -10023,8 +10033,8 @@ class IfcPropertyBoundedValue_SameUnitUpperLower: @staticmethod def __call__(self): - upperboundvalue = getattr(self, 'UpperBoundValue', INDETERMINATE) - lowerboundvalue = getattr(self, 'LowerBoundValue', INDETERMINATE) + upperboundvalue = express_getattr(self, 'UpperBoundValue', INDETERMINATE) + lowerboundvalue = express_getattr(self, 'LowerBoundValue', INDETERMINATE) assert (not exists(upperboundvalue) or not exists(lowerboundvalue) or typeof(upperboundvalue) == typeof(lowerboundvalue)) is not False class IfcPropertyBoundedValue_SameUnitUpperSet: @@ -10034,8 +10044,8 @@ class IfcPropertyBoundedValue_SameUnitUpperSet: @staticmethod def __call__(self): - upperboundvalue = getattr(self, 'UpperBoundValue', INDETERMINATE) - setpointvalue = getattr(self, 'SetPointValue', INDETERMINATE) + upperboundvalue = express_getattr(self, 'UpperBoundValue', INDETERMINATE) + setpointvalue = express_getattr(self, 'SetPointValue', INDETERMINATE) assert (not exists(upperboundvalue) or not exists(setpointvalue) or typeof(upperboundvalue) == typeof(setpointvalue)) is not False class IfcPropertyDependencyRelationship_NoSelfReference: @@ -10045,8 +10055,8 @@ class IfcPropertyDependencyRelationship_NoSelfReference: @staticmethod def __call__(self): - dependingproperty = getattr(self, 'DependingProperty', INDETERMINATE) - dependantproperty = getattr(self, 'DependantProperty', INDETERMINATE) + dependingproperty = express_getattr(self, 'DependingProperty', INDETERMINATE) + dependantproperty = express_getattr(self, 'DependantProperty', INDETERMINATE) assert (dependingproperty != dependantproperty) is not False class IfcPropertyEnumeratedValue_WR21: @@ -10056,9 +10066,9 @@ class IfcPropertyEnumeratedValue_WR21: @staticmethod def __call__(self): - enumerationvalues = getattr(self, 'EnumerationValues', INDETERMINATE) - enumerationreference = getattr(self, 'EnumerationReference', INDETERMINATE) - assert (not exists(enumerationreference) or not exists(enumerationvalues) or sizeof([temp for temp in enumerationvalues if temp in getattr(enumerationreference, 'EnumerationValues', INDETERMINATE)]) == sizeof(enumerationvalues)) is not False + enumerationvalues = express_getattr(self, 'EnumerationValues', INDETERMINATE) + enumerationreference = express_getattr(self, 'EnumerationReference', INDETERMINATE) + assert (not exists(enumerationreference) or not exists(enumerationvalues) or sizeof([temp for temp in enumerationvalues if temp in express_getattr(enumerationreference, 'EnumerationValues', INDETERMINATE)]) == sizeof(enumerationvalues)) is not False class IfcPropertyEnumeration_WR01: SCOPE = 'entity' @@ -10067,7 +10077,7 @@ class IfcPropertyEnumeration_WR01: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'EnumerationValues', INDETERMINATE) if not typeof(express_getitem(getattr(self, 'EnumerationValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'EnumerationValues', INDETERMINATE) if not typeof(express_getitem(express_getattr(self, 'EnumerationValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False class IfcPropertyListValue_WR31: SCOPE = 'entity' @@ -10076,7 +10086,7 @@ class IfcPropertyListValue_WR31: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'ListValues', INDETERMINATE) if not typeof(express_getitem(getattr(self, 'ListValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'ListValues', INDETERMINATE) if not typeof(express_getitem(express_getattr(self, 'ListValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False class IfcPropertySet_ExistsName: SCOPE = 'entity' @@ -10085,7 +10095,7 @@ class IfcPropertySet_ExistsName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPropertySet_UniquePropertyNames: SCOPE = 'entity' @@ -10094,7 +10104,7 @@ class IfcPropertySet_UniquePropertyNames: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert IfcUniquePropertyName(hasproperties) is not False class IfcPropertySetTemplate_ExistsName: @@ -10104,7 +10114,7 @@ class IfcPropertySetTemplate_ExistsName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPropertySetTemplate_UniquePropertyNames: SCOPE = 'entity' @@ -10113,7 +10123,7 @@ class IfcPropertySetTemplate_UniquePropertyNames: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert IfcUniquePropertyTemplateNames(haspropertytemplates) is not False class IfcPropertyTableValue_WR21: @@ -10123,8 +10133,8 @@ class IfcPropertyTableValue_WR21: @staticmethod def __call__(self): - definingvalues = getattr(self, 'DefiningValues', INDETERMINATE) - definedvalues = getattr(self, 'DefinedValues', INDETERMINATE) + definingvalues = express_getattr(self, 'DefiningValues', INDETERMINATE) + definedvalues = express_getattr(self, 'DefinedValues', INDETERMINATE) assert (not exists(definingvalues) and (not exists(definedvalues)) or sizeof(definingvalues) == sizeof(definedvalues)) is not False class IfcPropertyTableValue_WR22: @@ -10134,8 +10144,8 @@ class IfcPropertyTableValue_WR22: @staticmethod def __call__(self): - definingvalues = getattr(self, 'DefiningValues', INDETERMINATE) - assert (not exists(definingvalues) or sizeof([temp for temp in getattr(self, 'DefiningValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(getattr(self, 'DefiningValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False + definingvalues = express_getattr(self, 'DefiningValues', INDETERMINATE) + assert (not exists(definingvalues) or sizeof([temp for temp in express_getattr(self, 'DefiningValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(express_getattr(self, 'DefiningValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False class IfcPropertyTableValue_WR23: SCOPE = 'entity' @@ -10144,8 +10154,8 @@ class IfcPropertyTableValue_WR23: @staticmethod def __call__(self): - definedvalues = getattr(self, 'DefinedValues', INDETERMINATE) - assert (not exists(definedvalues) or sizeof([temp for temp in getattr(self, 'DefinedValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(getattr(self, 'DefinedValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False + definedvalues = express_getattr(self, 'DefinedValues', INDETERMINATE) + assert (not exists(definedvalues) or sizeof([temp for temp in express_getattr(self, 'DefinedValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(express_getattr(self, 'DefinedValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False class IfcProtectiveDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -10154,8 +10164,8 @@ class IfcProtectiveDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProtectiveDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -10164,8 +10174,8 @@ class IfcProtectiveDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcprotectivedevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcprotectivedevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcProtectiveDeviceTrippingUnit_CorrectPredefinedType: SCOPE = 'entity' @@ -10174,8 +10184,8 @@ class IfcProtectiveDeviceTrippingUnit_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProtectiveDeviceTrippingUnit_CorrectTypeAssigned: SCOPE = 'entity' @@ -10184,8 +10194,8 @@ class IfcProtectiveDeviceTrippingUnit_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcprotectivedevicetrippingunittype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcprotectivedevicetrippingunittype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcProtectiveDeviceTrippingUnitType_CorrectPredefinedType: SCOPE = 'entity' @@ -10194,8 +10204,8 @@ class IfcProtectiveDeviceTrippingUnitType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcProtectiveDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -10204,8 +10214,8 @@ class IfcProtectiveDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPump_CorrectPredefinedType: SCOPE = 'entity' @@ -10214,8 +10224,8 @@ class IfcPump_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPump_CorrectTypeAssigned: SCOPE = 'entity' @@ -10224,8 +10234,8 @@ class IfcPump_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcpumptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcpumptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPumpType_CorrectPredefinedType: SCOPE = 'entity' @@ -10234,8 +10244,8 @@ class IfcPumpType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcQuantityArea_WR21: SCOPE = 'entity' @@ -10244,7 +10254,7 @@ class IfcQuantityArea_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE)) is not False class IfcQuantityArea_WR22: SCOPE = 'entity' @@ -10253,7 +10263,7 @@ class IfcQuantityArea_WR22: @staticmethod def __call__(self): - areavalue = getattr(self, 'AreaValue', INDETERMINATE) + areavalue = express_getattr(self, 'AreaValue', INDETERMINATE) assert (areavalue >= 0.0) is not False class IfcQuantityCount_WR21: @@ -10263,7 +10273,7 @@ class IfcQuantityCount_WR21: @staticmethod def __call__(self): - countvalue = getattr(self, 'CountValue', INDETERMINATE) + countvalue = express_getattr(self, 'CountValue', INDETERMINATE) assert (countvalue >= 0) is not False class IfcQuantityLength_WR21: @@ -10273,7 +10283,7 @@ class IfcQuantityLength_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False class IfcQuantityLength_WR22: SCOPE = 'entity' @@ -10282,7 +10292,7 @@ class IfcQuantityLength_WR22: @staticmethod def __call__(self): - lengthvalue = getattr(self, 'LengthValue', INDETERMINATE) + lengthvalue = express_getattr(self, 'LengthValue', INDETERMINATE) assert (lengthvalue >= 0.0) is not False class IfcQuantityTime_WR21: @@ -10292,7 +10302,7 @@ class IfcQuantityTime_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE)) is not False class IfcQuantityTime_WR22: SCOPE = 'entity' @@ -10301,7 +10311,7 @@ class IfcQuantityTime_WR22: @staticmethod def __call__(self): - timevalue = getattr(self, 'TimeValue', INDETERMINATE) + timevalue = express_getattr(self, 'TimeValue', INDETERMINATE) assert (timevalue >= 0.0) is not False class IfcQuantityVolume_WR21: @@ -10311,7 +10321,7 @@ class IfcQuantityVolume_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE)) is not False class IfcQuantityVolume_WR22: SCOPE = 'entity' @@ -10320,7 +10330,7 @@ class IfcQuantityVolume_WR22: @staticmethod def __call__(self): - volumevalue = getattr(self, 'VolumeValue', INDETERMINATE) + volumevalue = express_getattr(self, 'VolumeValue', INDETERMINATE) assert (volumevalue >= 0.0) is not False class IfcQuantityWeight_WR21: @@ -10330,7 +10340,7 @@ class IfcQuantityWeight_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE)) is not False class IfcQuantityWeight_WR22: SCOPE = 'entity' @@ -10339,7 +10349,7 @@ class IfcQuantityWeight_WR22: @staticmethod def __call__(self): - weightvalue = getattr(self, 'WeightValue', INDETERMINATE) + weightvalue = express_getattr(self, 'WeightValue', INDETERMINATE) assert (weightvalue >= 0.0) is not False class IfcRail_CorrectPredefinedType: @@ -10349,8 +10359,8 @@ class IfcRail_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRail_CorrectTypeAssigned: SCOPE = 'entity' @@ -10359,8 +10369,8 @@ class IfcRail_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcrailtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcrailtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRailType_CorrectPredefinedType: SCOPE = 'entity' @@ -10369,8 +10379,8 @@ class IfcRailType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRailing_CorrectPredefinedType: SCOPE = 'entity' @@ -10379,8 +10389,8 @@ class IfcRailing_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRailing_CorrectTypeAssigned: SCOPE = 'entity' @@ -10389,8 +10399,8 @@ class IfcRailing_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcrailingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcrailingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRailingType_CorrectPredefinedType: SCOPE = 'entity' @@ -10399,8 +10409,8 @@ class IfcRailingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRailway_CorrectPredefinedType: SCOPE = 'entity' @@ -10409,8 +10419,8 @@ class IfcRailway_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRailwayPart_CorrectPredefinedType: SCOPE = 'entity' @@ -10419,8 +10429,8 @@ class IfcRailwayPart_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRamp_CorrectPredefinedType: SCOPE = 'entity' @@ -10429,8 +10439,8 @@ class IfcRamp_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRamp_CorrectTypeAssigned: SCOPE = 'entity' @@ -10439,8 +10449,8 @@ class IfcRamp_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcramptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcramptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRampFlight_CorrectPredefinedType: SCOPE = 'entity' @@ -10449,8 +10459,8 @@ class IfcRampFlight_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRampFlight_CorrectTypeAssigned: SCOPE = 'entity' @@ -10459,8 +10469,8 @@ class IfcRampFlight_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcrampflighttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcrampflighttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRampFlightType_CorrectPredefinedType: SCOPE = 'entity' @@ -10469,8 +10479,8 @@ class IfcRampFlightType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRampType_CorrectPredefinedType: SCOPE = 'entity' @@ -10479,8 +10489,8 @@ class IfcRampType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRationalBSplineCurveWithKnots_SameNumOfWeightsAndPoints: SCOPE = 'entity' @@ -10489,8 +10499,8 @@ class IfcRationalBSplineCurveWithKnots_SameNumOfWeightsAndPoints: @staticmethod def __call__(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - assert (sizeof(weightsdata) == sizeof(getattr(self, 'ControlPointsList', INDETERMINATE))) is not False + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + assert (sizeof(weightsdata) == sizeof(express_getattr(self, 'ControlPointsList', INDETERMINATE))) is not False class IfcRationalBSplineCurveWithKnots_WeightsGreaterZero: SCOPE = 'entity' @@ -10502,8 +10512,8 @@ class IfcRationalBSplineCurveWithKnots_WeightsGreaterZero: assert IfcCurveWeightsPositive(self) is not False def calc_IfcRationalBSplineCurveWithKnots_Weights(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - return IfcListToArray(weightsdata, 0, getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE)) + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + return IfcListToArray(weightsdata, 0, express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE)) class IfcRationalBSplineSurfaceWithKnots_CorrespondingWeightsDataLists: SCOPE = 'entity' @@ -10512,8 +10522,8 @@ class IfcRationalBSplineSurfaceWithKnots_CorrespondingWeightsDataLists: @staticmethod def __call__(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - assert (sizeof(weightsdata) == sizeof(getattr(self, 'ControlPointsList', INDETERMINATE)) and sizeof(express_getitem(weightsdata, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == sizeof(express_getitem(getattr(self, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + assert (sizeof(weightsdata) == sizeof(express_getattr(self, 'ControlPointsList', INDETERMINATE)) and sizeof(express_getitem(weightsdata, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == sizeof(express_getitem(express_getattr(self, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcRationalBSplineSurfaceWithKnots_WeightValuesGreaterZero: SCOPE = 'entity' @@ -10525,9 +10535,9 @@ class IfcRationalBSplineSurfaceWithKnots_WeightValuesGreaterZero: assert IfcSurfaceWeightsPositive(self) is not False def calc_IfcRationalBSplineSurfaceWithKnots_Weights(self): - uupper = getattr(self, 'UUpper', INDETERMINATE) - vupper = getattr(self, 'VUpper', INDETERMINATE) - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) + uupper = express_getattr(self, 'UUpper', INDETERMINATE) + vupper = express_getattr(self, 'VUpper', INDETERMINATE) + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) return IfcMakeArrayOfArray(weightsdata, 0, uupper, 0, vupper) class IfcRectangleHollowProfileDef_ValidInnerRadius: @@ -10537,9 +10547,9 @@ class IfcRectangleHollowProfileDef_ValidInnerRadius: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - innerfilletradius = getattr(self, 'InnerFilletRadius', INDETERMINATE) - assert (not exists(innerfilletradius) or (innerfilletradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 - wallthickness and innerfilletradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0 - wallthickness)) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + innerfilletradius = express_getattr(self, 'InnerFilletRadius', INDETERMINATE) + assert (not exists(innerfilletradius) or (innerfilletradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 - wallthickness and innerfilletradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0 - wallthickness)) is not False class IfcRectangleHollowProfileDef_ValidOuterRadius: SCOPE = 'entity' @@ -10548,8 +10558,8 @@ class IfcRectangleHollowProfileDef_ValidOuterRadius: @staticmethod def __call__(self): - outerfilletradius = getattr(self, 'OuterFilletRadius', INDETERMINATE) - assert (not exists(outerfilletradius) or (outerfilletradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 and outerfilletradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0)) is not False + outerfilletradius = express_getattr(self, 'OuterFilletRadius', INDETERMINATE) + assert (not exists(outerfilletradius) or (outerfilletradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and outerfilletradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0)) is not False class IfcRectangleHollowProfileDef_ValidWallThickness: SCOPE = 'entity' @@ -10558,8 +10568,8 @@ class IfcRectangleHollowProfileDef_ValidWallThickness: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - assert (wallthickness < getattr(self, 'XDim', INDETERMINATE) / 2.0 and wallthickness < getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + assert (wallthickness < express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and wallthickness < express_getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False class IfcRectangularTrimmedSurface_U1AndU2Different: SCOPE = 'entity' @@ -10568,8 +10578,8 @@ class IfcRectangularTrimmedSurface_U1AndU2Different: @staticmethod def __call__(self): - u1 = getattr(self, 'U1', INDETERMINATE) - u2 = getattr(self, 'U2', INDETERMINATE) + u1 = express_getattr(self, 'U1', INDETERMINATE) + u2 = express_getattr(self, 'U2', INDETERMINATE) assert (u1 != u2) is not False class IfcRectangularTrimmedSurface_UsenseCompatible: @@ -10579,10 +10589,10 @@ class IfcRectangularTrimmedSurface_UsenseCompatible: @staticmethod def __call__(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) - u1 = getattr(self, 'U1', INDETERMINATE) - u2 = getattr(self, 'U2', INDETERMINATE) - usense = getattr(self, 'Usense', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) + u1 = express_getattr(self, 'U1', INDETERMINATE) + u2 = express_getattr(self, 'U2', INDETERMINATE) + usense = express_getattr(self, 'Usense', INDETERMINATE) assert ('ifc4x3_add1.ifcelementarysurface' in typeof(basissurface) and (not 'ifc4x3_add1.ifcplane' in typeof(basissurface)) or 'ifc4x3_add1.ifcsurfaceofrevolution' in typeof(basissurface) or usense == (u2 > u1)) is not False class IfcRectangularTrimmedSurface_V1AndV2Different: @@ -10592,8 +10602,8 @@ class IfcRectangularTrimmedSurface_V1AndV2Different: @staticmethod def __call__(self): - v1 = getattr(self, 'V1', INDETERMINATE) - v2 = getattr(self, 'V2', INDETERMINATE) + v1 = express_getattr(self, 'V1', INDETERMINATE) + v2 = express_getattr(self, 'V2', INDETERMINATE) assert (v1 != v2) is not False class IfcRectangularTrimmedSurface_VsenseCompatible: @@ -10603,9 +10613,9 @@ class IfcRectangularTrimmedSurface_VsenseCompatible: @staticmethod def __call__(self): - v1 = getattr(self, 'V1', INDETERMINATE) - v2 = getattr(self, 'V2', INDETERMINATE) - vsense = getattr(self, 'Vsense', INDETERMINATE) + v1 = express_getattr(self, 'V1', INDETERMINATE) + v2 = express_getattr(self, 'V2', INDETERMINATE) + vsense = express_getattr(self, 'Vsense', INDETERMINATE) assert (vsense == (v2 > v1)) is not False class IfcReinforcedSoil_CorrectPredefinedType: @@ -10615,8 +10625,8 @@ class IfcReinforcedSoil_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingBar_CorrectPredefinedType: SCOPE = 'entity' @@ -10625,8 +10635,8 @@ class IfcReinforcingBar_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingBar_CorrectTypeAssigned: SCOPE = 'entity' @@ -10635,8 +10645,8 @@ class IfcReinforcingBar_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcreinforcingbartype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcreinforcingbartype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcReinforcingBarType_BendingShapeCodeProvided: SCOPE = 'entity' @@ -10645,8 +10655,8 @@ class IfcReinforcingBarType_BendingShapeCodeProvided: @staticmethod def __call__(self): - bendingshapecode = getattr(self, 'BendingShapeCode', INDETERMINATE) - bendingparameters = getattr(self, 'BendingParameters', INDETERMINATE) + bendingshapecode = express_getattr(self, 'BendingShapeCode', INDETERMINATE) + bendingparameters = express_getattr(self, 'BendingParameters', INDETERMINATE) assert (not exists(bendingparameters) or exists(bendingshapecode)) is not False class IfcReinforcingBarType_CorrectPredefinedType: @@ -10656,8 +10666,8 @@ class IfcReinforcingBarType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcReinforcingMesh_CorrectPredefinedType: SCOPE = 'entity' @@ -10666,8 +10676,8 @@ class IfcReinforcingMesh_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingMesh_CorrectTypeAssigned: SCOPE = 'entity' @@ -10676,8 +10686,8 @@ class IfcReinforcingMesh_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcreinforcingmeshtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcreinforcingmeshtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcReinforcingMeshType_BendingShapeCodeProvided: SCOPE = 'entity' @@ -10686,8 +10696,8 @@ class IfcReinforcingMeshType_BendingShapeCodeProvided: @staticmethod def __call__(self): - bendingshapecode = getattr(self, 'BendingShapeCode', INDETERMINATE) - bendingparameters = getattr(self, 'BendingParameters', INDETERMINATE) + bendingshapecode = express_getattr(self, 'BendingShapeCode', INDETERMINATE) + bendingparameters = express_getattr(self, 'BendingParameters', INDETERMINATE) assert (not exists(bendingparameters) or exists(bendingshapecode)) is not False class IfcReinforcingMeshType_CorrectPredefinedType: @@ -10697,8 +10707,8 @@ class IfcReinforcingMeshType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRelAggregates_NoSelfReference: SCOPE = 'entity' @@ -10707,8 +10717,8 @@ class IfcRelAggregates_NoSelfReference: @staticmethod def __call__(self): - relatingobject = getattr(self, 'RelatingObject', INDETERMINATE) - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) + relatingobject = express_getattr(self, 'RelatingObject', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) assert (sizeof([temp for temp in relatedobjects if relatingobject == temp]) == 0) is not False class IfcRelAssignsToActor_NoSelfReference: @@ -10718,8 +10728,8 @@ class IfcRelAssignsToActor_NoSelfReference: @staticmethod def __call__(self): - relatingactor = getattr(self, 'RelatingActor', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingactor == temp]) == 0) is not False + relatingactor = express_getattr(self, 'RelatingActor', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingactor == temp]) == 0) is not False class IfcRelAssignsToControl_NoSelfReference: SCOPE = 'entity' @@ -10728,8 +10738,8 @@ class IfcRelAssignsToControl_NoSelfReference: @staticmethod def __call__(self): - relatingcontrol = getattr(self, 'RelatingControl', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingcontrol == temp]) == 0) is not False + relatingcontrol = express_getattr(self, 'RelatingControl', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingcontrol == temp]) == 0) is not False class IfcRelAssignsToGroup_NoSelfReference: SCOPE = 'entity' @@ -10738,8 +10748,8 @@ class IfcRelAssignsToGroup_NoSelfReference: @staticmethod def __call__(self): - relatinggroup = getattr(self, 'RelatingGroup', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatinggroup == temp]) == 0) is not False + relatinggroup = express_getattr(self, 'RelatingGroup', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatinggroup == temp]) == 0) is not False class IfcRelAssignsToProcess_NoSelfReference: SCOPE = 'entity' @@ -10748,8 +10758,8 @@ class IfcRelAssignsToProcess_NoSelfReference: @staticmethod def __call__(self): - relatingprocess = getattr(self, 'RelatingProcess', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingprocess == temp]) == 0) is not False + relatingprocess = express_getattr(self, 'RelatingProcess', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingprocess == temp]) == 0) is not False class IfcRelAssignsToProduct_NoSelfReference: SCOPE = 'entity' @@ -10758,8 +10768,8 @@ class IfcRelAssignsToProduct_NoSelfReference: @staticmethod def __call__(self): - relatingproduct = getattr(self, 'RelatingProduct', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingproduct == temp]) == 0) is not False + relatingproduct = express_getattr(self, 'RelatingProduct', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingproduct == temp]) == 0) is not False class IfcRelAssignsToResource_NoSelfReference: SCOPE = 'entity' @@ -10768,8 +10778,8 @@ class IfcRelAssignsToResource_NoSelfReference: @staticmethod def __call__(self): - relatingresource = getattr(self, 'RelatingResource', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingresource == temp]) == 0) is not False + relatingresource = express_getattr(self, 'RelatingResource', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingresource == temp]) == 0) is not False class IfcRelAssociatesMaterial_AllowedElements: SCOPE = 'entity' @@ -10778,7 +10788,7 @@ class IfcRelAssociatesMaterial_AllowedElements: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if sizeof(typeof(temp) * ['ifc4x3_add1.ifcelement', 'ifc4x3_add1.ifcelementtype', 'ifc4x3_add1.ifcstructuralmember', 'ifc4x3_add1.ifcport']) == 0]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if sizeof(typeof(temp) * ['ifc4x3_add1.ifcelement', 'ifc4x3_add1.ifcelementtype', 'ifc4x3_add1.ifcstructuralmember', 'ifc4x3_add1.ifcport']) == 0]) == 0) is not False class IfcRelAssociatesMaterial_NoVoidElement: SCOPE = 'entity' @@ -10787,7 +10797,7 @@ class IfcRelAssociatesMaterial_NoVoidElement: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3_add1.ifcfeatureelementsubtraction' in typeof(temp) or 'ifc4x3_add1.ifcvirtualelement' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3_add1.ifcfeatureelementsubtraction' in typeof(temp) or 'ifc4x3_add1.ifcvirtualelement' in typeof(temp)]) == 0) is not False class IfcRelConnectsElements_NoSelfReference: SCOPE = 'entity' @@ -10796,8 +10806,8 @@ class IfcRelConnectsElements_NoSelfReference: @staticmethod def __call__(self): - relatingelement = getattr(self, 'RelatingElement', INDETERMINATE) - relatedelement = getattr(self, 'RelatedElement', INDETERMINATE) + relatingelement = express_getattr(self, 'RelatingElement', INDETERMINATE) + relatedelement = express_getattr(self, 'RelatedElement', INDETERMINATE) assert (relatingelement != relatedelement) is not False class IfcRelConnectsPathElements_NormalizedRelatedPriorities: @@ -10807,7 +10817,7 @@ class IfcRelConnectsPathElements_NormalizedRelatedPriorities: @staticmethod def __call__(self): - relatedpriorities = getattr(self, 'RelatedPriorities', INDETERMINATE) + relatedpriorities = express_getattr(self, 'RelatedPriorities', INDETERMINATE) assert (sizeof(relatedpriorities) == 0 or sizeof([temp for temp in relatedpriorities if 0 <= temp <= 100]) == sizeof(relatedpriorities)) is not False class IfcRelConnectsPathElements_NormalizedRelatingPriorities: @@ -10817,7 +10827,7 @@ class IfcRelConnectsPathElements_NormalizedRelatingPriorities: @staticmethod def __call__(self): - relatingpriorities = getattr(self, 'RelatingPriorities', INDETERMINATE) + relatingpriorities = express_getattr(self, 'RelatingPriorities', INDETERMINATE) assert (sizeof(relatingpriorities) == 0 or sizeof([temp for temp in relatingpriorities if 0 <= temp <= 100]) == sizeof(relatingpriorities)) is not False class IfcRelConnectsPorts_NoSelfReference: @@ -10827,8 +10837,8 @@ class IfcRelConnectsPorts_NoSelfReference: @staticmethod def __call__(self): - relatingport = getattr(self, 'RelatingPort', INDETERMINATE) - relatedport = getattr(self, 'RelatedPort', INDETERMINATE) + relatingport = express_getattr(self, 'RelatingPort', INDETERMINATE) + relatedport = express_getattr(self, 'RelatedPort', INDETERMINATE) assert (relatingport != relatedport) is not False class IfcRelContainedInSpatialStructure_WR31: @@ -10838,7 +10848,7 @@ class IfcRelContainedInSpatialStructure_WR31: @staticmethod def __call__(self): - relatedelements = getattr(self, 'RelatedElements', INDETERMINATE) + relatedelements = express_getattr(self, 'RelatedElements', INDETERMINATE) assert (sizeof([temp for temp in relatedelements if 'ifc4x3_add1.ifcspatialstructureelement' in typeof(temp)]) == 0) is not False class IfcRelDeclares_NoSelfReference: @@ -10848,8 +10858,8 @@ class IfcRelDeclares_NoSelfReference: @staticmethod def __call__(self): - relatingcontext = getattr(self, 'RelatingContext', INDETERMINATE) - relateddefinitions = getattr(self, 'RelatedDefinitions', INDETERMINATE) + relatingcontext = express_getattr(self, 'RelatingContext', INDETERMINATE) + relateddefinitions = express_getattr(self, 'RelatedDefinitions', INDETERMINATE) assert (sizeof([temp for temp in relateddefinitions if relatingcontext == temp]) == 0) is not False class IfcRelDefinesByProperties_NoRelatedTypeObject: @@ -10859,7 +10869,7 @@ class IfcRelDefinesByProperties_NoRelatedTypeObject: @staticmethod def __call__(self): - assert (sizeof([types for types in getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3_add1.ifctypeobject' in typeof(types)]) == 0) is not False + assert (sizeof([types for types in express_getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3_add1.ifctypeobject' in typeof(types)]) == 0) is not False class IfcRelInterferesElements_NoSelfReference: SCOPE = 'entity' @@ -10868,8 +10878,8 @@ class IfcRelInterferesElements_NoSelfReference: @staticmethod def __call__(self): - relatingelement = getattr(self, 'RelatingElement', INDETERMINATE) - relatedelement = getattr(self, 'RelatedElement', INDETERMINATE) + relatingelement = express_getattr(self, 'RelatingElement', INDETERMINATE) + relatedelement = express_getattr(self, 'RelatedElement', INDETERMINATE) assert (relatingelement != relatedelement) is not False class IfcRelNests_NoSelfReference: @@ -10879,8 +10889,8 @@ class IfcRelNests_NoSelfReference: @staticmethod def __call__(self): - relatingobject = getattr(self, 'RelatingObject', INDETERMINATE) - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) + relatingobject = express_getattr(self, 'RelatingObject', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) assert (sizeof([temp for temp in relatedobjects if relatingobject == temp]) == 0) is not False class IfcRelPositions_NoSelfReference: @@ -10890,8 +10900,8 @@ class IfcRelPositions_NoSelfReference: @staticmethod def __call__(self): - relatingpositioningelement = getattr(self, 'RelatingPositioningElement', INDETERMINATE) - relatedproducts = getattr(self, 'RelatedProducts', INDETERMINATE) + relatingpositioningelement = express_getattr(self, 'RelatingPositioningElement', INDETERMINATE) + relatedproducts = express_getattr(self, 'RelatedProducts', INDETERMINATE) assert (sizeof([temp for temp in relatedproducts if relatingpositioningelement == temp]) == 0) is not False class IfcRelReferencedInSpatialStructure_AllowedRelatedElements: @@ -10901,7 +10911,7 @@ class IfcRelReferencedInSpatialStructure_AllowedRelatedElements: @staticmethod def __call__(self): - relatedelements = getattr(self, 'RelatedElements', INDETERMINATE) + relatedelements = express_getattr(self, 'RelatedElements', INDETERMINATE) assert (sizeof([temp for temp in relatedelements if 'ifc4x3_add1.ifcspatialstructureelement' in typeof(temp) and (not 'ifc4x3_add1.ifcspace' in typeof(temp))]) == 0) is not False class IfcRelSequence_AvoidInconsistentSequence: @@ -10911,8 +10921,8 @@ class IfcRelSequence_AvoidInconsistentSequence: @staticmethod def __call__(self): - relatingprocess = getattr(self, 'RelatingProcess', INDETERMINATE) - relatedprocess = getattr(self, 'RelatedProcess', INDETERMINATE) + relatingprocess = express_getattr(self, 'RelatingProcess', INDETERMINATE) + relatedprocess = express_getattr(self, 'RelatedProcess', INDETERMINATE) assert (relatingprocess != relatedprocess) is not False class IfcRelSequence_CorrectSequenceType: @@ -10922,9 +10932,9 @@ class IfcRelSequence_CorrectSequenceType: @staticmethod def __call__(self): - sequencetype = getattr(self, 'SequenceType', INDETERMINATE) - userdefinedsequencetype = getattr(self, 'UserDefinedSequenceType', INDETERMINATE) - assert (sequencetype != getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) or (sequencetype == getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedsequencetype))) is not False + sequencetype = express_getattr(self, 'SequenceType', INDETERMINATE) + userdefinedsequencetype = express_getattr(self, 'UserDefinedSequenceType', INDETERMINATE) + assert (sequencetype != express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) or (sequencetype == express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedsequencetype))) is not False class IfcRelSpaceBoundary_CorrectPhysOrVirt: SCOPE = 'entity' @@ -10933,9 +10943,9 @@ class IfcRelSpaceBoundary_CorrectPhysOrVirt: @staticmethod def __call__(self): - relatedbuildingelement = getattr(self, 'RelatedBuildingElement', INDETERMINATE) - physicalorvirtualboundary = getattr(self, 'PhysicalOrVirtualBoundary', INDETERMINATE) - assert (physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'Physical', INDETERMINATE) and (not 'ifc4x3_add1.ifcvirtualelement' in typeof(relatedbuildingelement)) or (physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'Virtual', INDETERMINATE) and ('ifc4x3_add1.ifcvirtualelement' in typeof(relatedbuildingelement) or 'ifc4x3_add1.ifcopeningelement' in typeof(relatedbuildingelement))) or physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'NotDefined', INDETERMINATE)) is not False + relatedbuildingelement = express_getattr(self, 'RelatedBuildingElement', INDETERMINATE) + physicalorvirtualboundary = express_getattr(self, 'PhysicalOrVirtualBoundary', INDETERMINATE) + assert (physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'Physical', INDETERMINATE) and (not 'ifc4x3_add1.ifcvirtualelement' in typeof(relatedbuildingelement)) or (physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'Virtual', INDETERMINATE) and ('ifc4x3_add1.ifcvirtualelement' in typeof(relatedbuildingelement) or 'ifc4x3_add1.ifcopeningelement' in typeof(relatedbuildingelement))) or physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'NotDefined', INDETERMINATE)) is not False class IfcReparametrisedCompositeCurveSegment_PositiveLengthParameter: SCOPE = 'entity' @@ -10944,7 +10954,7 @@ class IfcReparametrisedCompositeCurveSegment_PositiveLengthParameter: @staticmethod def __call__(self): - paramlength = getattr(self, 'ParamLength', INDETERMINATE) + paramlength = express_getattr(self, 'ParamLength', INDETERMINATE) assert (paramlength > 0.0) is not False class IfcRepresentationMap_ApplicableMappedRepr: @@ -10954,7 +10964,7 @@ class IfcRepresentationMap_ApplicableMappedRepr: @staticmethod def __call__(self): - mappedrepresentation = getattr(self, 'MappedRepresentation', INDETERMINATE) + mappedrepresentation = express_getattr(self, 'MappedRepresentation', INDETERMINATE) assert ('ifc4x3_add1.ifcshapemodel' in typeof(mappedrepresentation)) is not False class IfcRevolvedAreaSolid_AxisDirectionInXY: @@ -10964,8 +10974,8 @@ class IfcRevolvedAreaSolid_AxisDirectionInXY: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (express_getitem(getattr(getattr(axis, 'Z', INDETERMINATE), 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (express_getitem(express_getattr(express_getattr(axis, 'Z', INDETERMINATE), 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False class IfcRevolvedAreaSolid_AxisStartInXY: SCOPE = 'entity' @@ -10974,12 +10984,12 @@ class IfcRevolvedAreaSolid_AxisStartInXY: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert ('ifc4x3_add1.ifccartesianpoint' in typeof(getattr(axis, 'Location', INDETERMINATE)) and express_getitem(getattr(getattr(axis, 'Location', INDETERMINATE), 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert ('ifc4x3_add1.ifccartesianpoint' in typeof(express_getattr(axis, 'Location', INDETERMINATE)) and express_getitem(express_getattr(express_getattr(axis, 'Location', INDETERMINATE), 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False def calc_IfcRevolvedAreaSolid_AxisLine(self): - axis = getattr(self, 'Axis', INDETERMINATE) - return IfcLine(Pnt=getattr(axis, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=getattr(axis, 'Z', INDETERMINATE), Magnitude=1.0)) + axis = express_getattr(self, 'Axis', INDETERMINATE) + return IfcLine(Pnt=express_getattr(axis, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=express_getattr(axis, 'Z', INDETERMINATE), Magnitude=1.0)) class IfcRevolvedAreaSolidTapered_CorrectProfileAssignment: SCOPE = 'entity' @@ -10988,7 +10998,7 @@ class IfcRevolvedAreaSolidTapered_CorrectProfileAssignment: @staticmethod def __call__(self): - assert IfcTaperedSweptAreaProfiles(getattr(self, 'SweptArea', INDETERMINATE), getattr(self, 'EndSweptArea', INDETERMINATE)) is not False + assert IfcTaperedSweptAreaProfiles(express_getattr(self, 'SweptArea', INDETERMINATE), express_getattr(self, 'EndSweptArea', INDETERMINATE)) is not False class IfcRigidOperation_SameCoordinateType: SCOPE = 'entity' @@ -10997,8 +11007,8 @@ class IfcRigidOperation_SameCoordinateType: @staticmethod def __call__(self): - firstcoordinate = getattr(self, 'FirstCoordinate', INDETERMINATE) - secondcoordinate = getattr(self, 'SecondCoordinate', INDETERMINATE) + firstcoordinate = express_getattr(self, 'FirstCoordinate', INDETERMINATE) + secondcoordinate = express_getattr(self, 'SecondCoordinate', INDETERMINATE) assert ('ifc4x3_add1.ifclengthmeasure' in typeof(firstcoordinate) and 'ifc4x3_add1.ifclengthmeasure' in typeof(secondcoordinate) or ('ifc4x3_add1.ifcplaneanglemeasure' in typeof(firstcoordinate) and 'ifc4x3_add1.ifcplaneanglemeasure' in typeof(secondcoordinate))) is not False class IfcRoad_CorrectPredefinedType: @@ -11008,8 +11018,8 @@ class IfcRoad_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRoadPart_CorrectPredefinedType: SCOPE = 'entity' @@ -11018,8 +11028,8 @@ class IfcRoadPart_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRoof_CorrectPredefinedType: SCOPE = 'entity' @@ -11028,8 +11038,8 @@ class IfcRoof_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRoof_CorrectTypeAssigned: SCOPE = 'entity' @@ -11038,8 +11048,8 @@ class IfcRoof_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcrooftype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcrooftype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRoofType_CorrectPredefinedType: SCOPE = 'entity' @@ -11048,8 +11058,8 @@ class IfcRoofType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRoundedRectangleProfileDef_ValidRadius: SCOPE = 'entity' @@ -11058,11 +11068,11 @@ class IfcRoundedRectangleProfileDef_ValidRadius: @staticmethod def __call__(self): - roundingradius = getattr(self, 'RoundingRadius', INDETERMINATE) - assert (roundingradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 and roundingradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False + roundingradius = express_getattr(self, 'RoundingRadius', INDETERMINATE) + assert (roundingradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and roundingradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False def calc_IfcSIUnit_Dimensions(self): - return IfcDimensionsForSIUnit(getattr(self, 'Name', INDETERMINATE)) + return IfcDimensionsForSIUnit(express_getattr(self, 'Name', INDETERMINATE)) class IfcSanitaryTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -11071,8 +11081,8 @@ class IfcSanitaryTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSanitaryTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -11081,8 +11091,8 @@ class IfcSanitaryTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcsanitaryterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcsanitaryterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSanitaryTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -11091,8 +11101,8 @@ class IfcSanitaryTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSeamCurve_SameSurface: SCOPE = 'entity' @@ -11101,7 +11111,7 @@ class IfcSeamCurve_SameSurface: @staticmethod def __call__(self): - assert (IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcSeamCurve_TwoPCurves: SCOPE = 'entity' @@ -11110,7 +11120,7 @@ class IfcSeamCurve_TwoPCurves: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False + assert (sizeof(express_getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False class IfcSectionedSolid_ConsistentProfileTypes: SCOPE = 'entity' @@ -11119,8 +11129,8 @@ class IfcSectionedSolid_ConsistentProfileTypes: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - assert (sizeof([temp for temp in crosssections if getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + assert (sizeof([temp for temp in crosssections if express_getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != express_getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcSectionedSolid_DirectrixIs3D: SCOPE = 'entity' @@ -11129,8 +11139,8 @@ class IfcSectionedSolid_DirectrixIs3D: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - assert (getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + assert (express_getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False class IfcSectionedSolid_SectionsSameType: SCOPE = 'entity' @@ -11139,7 +11149,7 @@ class IfcSectionedSolid_SectionsSameType: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) assert (sizeof([temp for temp in crosssections if typeof(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(temp)]) == 0) is not False class IfcSectionedSolidHorizontal_CorrespondingSectionPositions: @@ -11149,8 +11159,8 @@ class IfcSectionedSolidHorizontal_CorrespondingSectionPositions: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) assert (sizeof(crosssections) == sizeof(crosssectionpositions)) is not False class IfcSectionedSolidHorizontal_NoLongitudinalOffsets: @@ -11160,8 +11170,8 @@ class IfcSectionedSolidHorizontal_NoLongitudinalOffsets: @staticmethod def __call__(self): - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) - assert (sizeof([temp for temp in crosssectionpositions if exists(getattr(getattr(temp, 'Location', INDETERMINATE), 'OffsetLongitudinal', INDETERMINATE))]) == 0) is not False + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) + assert (sizeof([temp for temp in crosssectionpositions if exists(express_getattr(express_getattr(temp, 'Location', INDETERMINATE), 'OffsetLongitudinal', INDETERMINATE))]) == 0) is not False class IfcSectionedSpine_ConsistentProfileTypes: SCOPE = 'entity' @@ -11170,8 +11180,8 @@ class IfcSectionedSpine_ConsistentProfileTypes: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - assert (sizeof([temp for temp in crosssections if getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + assert (sizeof([temp for temp in crosssections if express_getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != express_getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcSectionedSpine_CorrespondingSectionPositions: SCOPE = 'entity' @@ -11180,8 +11190,8 @@ class IfcSectionedSpine_CorrespondingSectionPositions: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) assert (sizeof(crosssections) == sizeof(crosssectionpositions)) is not False class IfcSectionedSpine_SpineCurveDim: @@ -11191,8 +11201,8 @@ class IfcSectionedSpine_SpineCurveDim: @staticmethod def __call__(self): - spinecurve = getattr(self, 'SpineCurve', INDETERMINATE) - assert (getattr(spinecurve, 'Dim', INDETERMINATE) == 3) is not False + spinecurve = express_getattr(self, 'SpineCurve', INDETERMINATE) + assert (express_getattr(spinecurve, 'Dim', INDETERMINATE) == 3) is not False def calc_IfcSectionedSpine_Dim(self): return 3 @@ -11204,8 +11214,8 @@ class IfcSectionedSurface_AreaProfileTypes: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - assert (sizeof([temp for temp in crosssections if getattr(temp, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)]) == 0) is not False + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + assert (sizeof([temp for temp in crosssections if express_getattr(temp, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)]) == 0) is not False class IfcSectionedSurface_CorrespondingSectionPositions: SCOPE = 'entity' @@ -11214,8 +11224,8 @@ class IfcSectionedSurface_CorrespondingSectionPositions: @staticmethod def __call__(self): - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) - crosssections = getattr(self, 'CrossSections', INDETERMINATE) + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) assert (sizeof(crosssections) == sizeof(crosssectionpositions)) is not False class IfcSectionedSurface_DirectrixIs3D: @@ -11225,8 +11235,8 @@ class IfcSectionedSurface_DirectrixIs3D: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - assert (getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + assert (express_getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False class IfcSectionedSurface_NoOffsets: SCOPE = 'entity' @@ -11235,8 +11245,8 @@ class IfcSectionedSurface_NoOffsets: @staticmethod def __call__(self): - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) - assert (sizeof([temp for temp in crosssectionpositions if exists(getattr(getattr(temp, 'Location', INDETERMINATE), 'OffsetLateral', INDETERMINATE)) or exists(getattr(getattr(temp, 'Location', INDETERMINATE), 'OffsetVertical', INDETERMINATE)) or exists(getattr(getattr(temp, 'Location', INDETERMINATE), 'OffsetLongitudinal', INDETERMINATE))]) == 0) is not False + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) + assert (sizeof([temp for temp in crosssectionpositions if exists(express_getattr(express_getattr(temp, 'Location', INDETERMINATE), 'OffsetLateral', INDETERMINATE)) or exists(express_getattr(express_getattr(temp, 'Location', INDETERMINATE), 'OffsetVertical', INDETERMINATE)) or exists(express_getattr(express_getattr(temp, 'Location', INDETERMINATE), 'OffsetLongitudinal', INDETERMINATE))]) == 0) is not False class IfcSectionedSurface_SectionsSameType: SCOPE = 'entity' @@ -11245,7 +11255,7 @@ class IfcSectionedSurface_SectionsSameType: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) assert (sizeof([temp for temp in crosssections if typeof(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(temp)]) == 0) is not False def calc_IfcSegment_Dim(self): @@ -11258,8 +11268,8 @@ class IfcSensor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSensor_CorrectTypeAssigned: SCOPE = 'entity' @@ -11268,8 +11278,8 @@ class IfcSensor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcsensortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcsensortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSensorType_CorrectPredefinedType: SCOPE = 'entity' @@ -11278,8 +11288,8 @@ class IfcSensorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcShadingDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -11288,8 +11298,8 @@ class IfcShadingDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcShadingDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -11298,8 +11308,8 @@ class IfcShadingDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcshadingdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcshadingdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcShadingDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11308,8 +11318,8 @@ class IfcShadingDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcShapeModel_WR11: SCOPE = 'entity' @@ -11318,8 +11328,8 @@ class IfcShapeModel_WR11: @staticmethod def __call__(self): - ofshapeaspect = getattr(self, 'OfShapeAspect', INDETERMINATE) - assert (sizeof(getattr(self, 'OfProductRepresentation', INDETERMINATE)) == 1) ^ (sizeof(getattr(self, 'RepresentationMap', INDETERMINATE)) == 1) ^ (sizeof(ofshapeaspect) == 1) is not False + ofshapeaspect = express_getattr(self, 'OfShapeAspect', INDETERMINATE) + assert (sizeof(express_getattr(self, 'OfProductRepresentation', INDETERMINATE)) == 1) ^ (sizeof(express_getattr(self, 'RepresentationMap', INDETERMINATE)) == 1) ^ (sizeof(ofshapeaspect) == 1) is not False class IfcShapeRepresentation_CorrectContext: SCOPE = 'entity' @@ -11328,7 +11338,7 @@ class IfcShapeRepresentation_CorrectContext: @staticmethod def __call__(self): - assert ('ifc4x3_add1.ifcgeometricrepresentationcontext' in typeof(getattr(self, 'ContextOfItems', INDETERMINATE))) is not False + assert ('ifc4x3_add1.ifcgeometricrepresentationcontext' in typeof(express_getattr(self, 'ContextOfItems', INDETERMINATE))) is not False class IfcShapeRepresentation_CorrectItemsForType: SCOPE = 'entity' @@ -11337,7 +11347,7 @@ class IfcShapeRepresentation_CorrectItemsForType: @staticmethod def __call__(self): - assert IfcShapeRepresentationTypes(getattr(self, 'RepresentationType', INDETERMINATE), getattr(self, 'Items', INDETERMINATE)) is not False + assert IfcShapeRepresentationTypes(express_getattr(self, 'RepresentationType', INDETERMINATE), express_getattr(self, 'Items', INDETERMINATE)) is not False class IfcShapeRepresentation_HasRepresentationIdentifier: SCOPE = 'entity' @@ -11346,7 +11356,7 @@ class IfcShapeRepresentation_HasRepresentationIdentifier: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationIdentifier', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationIdentifier', INDETERMINATE)) is not False class IfcShapeRepresentation_HasRepresentationType: SCOPE = 'entity' @@ -11355,7 +11365,7 @@ class IfcShapeRepresentation_HasRepresentationType: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationType', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationType', INDETERMINATE)) is not False class IfcShapeRepresentation_NoTopologicalItem: SCOPE = 'entity' @@ -11364,7 +11374,7 @@ class IfcShapeRepresentation_NoTopologicalItem: @staticmethod def __call__(self): - items = getattr(self, 'Items', INDETERMINATE) + items = express_getattr(self, 'Items', INDETERMINATE) assert (sizeof([temp for temp in items if 'ifc4x3_add1.ifctopologicalrepresentationitem' in typeof(temp) and (not sizeof(['ifc4x3_add1.ifcvertexpoint', 'ifc4x3_add1.ifcedgecurve', 'ifc4x3_add1.ifcfacesurface'] * typeof(temp)) == 1)]) == 0) is not False def calc_IfcShellBasedSurfaceModel_Dim(self): @@ -11377,8 +11387,8 @@ class IfcSign_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSign_CorrectTypeAssigned: SCOPE = 'entity' @@ -11387,8 +11397,8 @@ class IfcSign_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcsigntype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcsigntype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSignType_CorrectPredefinedType: SCOPE = 'entity' @@ -11397,8 +11407,8 @@ class IfcSignType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSignal_CorrectPredefinedType: SCOPE = 'entity' @@ -11407,8 +11417,8 @@ class IfcSignal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSignal_CorrectTypeAssigned: SCOPE = 'entity' @@ -11417,8 +11427,8 @@ class IfcSignal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcsignaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcsignaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSignalType_CorrectPredefinedType: SCOPE = 'entity' @@ -11427,8 +11437,8 @@ class IfcSignalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSlab_CorrectPredefinedType: SCOPE = 'entity' @@ -11437,8 +11447,8 @@ class IfcSlab_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSlab_CorrectTypeAssigned: SCOPE = 'entity' @@ -11447,8 +11457,8 @@ class IfcSlab_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcslabtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcslabtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSlabType_CorrectPredefinedType: SCOPE = 'entity' @@ -11457,8 +11467,8 @@ class IfcSlabType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSolarDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -11467,8 +11477,8 @@ class IfcSolarDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSolarDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -11477,8 +11487,8 @@ class IfcSolarDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcsolardevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcsolardevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSolarDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11487,8 +11497,8 @@ class IfcSolarDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcSolidModel_Dim(self): return 3 @@ -11500,8 +11510,8 @@ class IfcSpace_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpace_CorrectTypeAssigned: SCOPE = 'entity' @@ -11510,8 +11520,8 @@ class IfcSpace_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcspacetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcspacetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpaceHeater_CorrectPredefinedType: SCOPE = 'entity' @@ -11520,8 +11530,8 @@ class IfcSpaceHeater_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpaceHeater_CorrectTypeAssigned: SCOPE = 'entity' @@ -11530,8 +11540,8 @@ class IfcSpaceHeater_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcspaceheatertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcspaceheatertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpaceHeaterType_CorrectPredefinedType: SCOPE = 'entity' @@ -11540,8 +11550,8 @@ class IfcSpaceHeaterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSpaceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11550,8 +11560,8 @@ class IfcSpaceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSpatialStructureElement_WR41: SCOPE = 'entity' @@ -11560,7 +11570,7 @@ class IfcSpatialStructureElement_WR41: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'Decomposes', INDETERMINATE)) == 1 and 'ifc4x3_add1.ifcrelaggregates' in typeof(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_add1.ifcproject' in typeof(getattr(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)) or 'ifc4x3_add1.ifcspatialstructureelement' in typeof(getattr(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)))) is not False + assert (hiindex(express_getattr(self, 'Decomposes', INDETERMINATE)) == 1 and 'ifc4x3_add1.ifcrelaggregates' in typeof(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_add1.ifcproject' in typeof(express_getattr(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)) or 'ifc4x3_add1.ifcspatialstructureelement' in typeof(express_getattr(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)))) is not False class IfcSpatialZone_CorrectPredefinedType: SCOPE = 'entity' @@ -11569,8 +11579,8 @@ class IfcSpatialZone_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpatialZone_CorrectTypeAssigned: SCOPE = 'entity' @@ -11579,8 +11589,8 @@ class IfcSpatialZone_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcspatialzonetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcspatialzonetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpatialZoneType_CorrectPredefinedType: SCOPE = 'entity' @@ -11589,8 +11599,8 @@ class IfcSpatialZoneType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStackTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -11599,8 +11609,8 @@ class IfcStackTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStackTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -11609,8 +11619,8 @@ class IfcStackTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcstackterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcstackterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStackTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -11619,8 +11629,8 @@ class IfcStackTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStair_CorrectPredefinedType: SCOPE = 'entity' @@ -11629,8 +11639,8 @@ class IfcStair_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStair_CorrectTypeAssigned: SCOPE = 'entity' @@ -11639,8 +11649,8 @@ class IfcStair_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcstairtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcstairtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStairFlight_CorrectPredefinedType: SCOPE = 'entity' @@ -11649,8 +11659,8 @@ class IfcStairFlight_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStairFlight_CorrectTypeAssigned: SCOPE = 'entity' @@ -11659,8 +11669,8 @@ class IfcStairFlight_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcstairflighttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcstairflighttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStairFlightType_CorrectPredefinedType: SCOPE = 'entity' @@ -11669,8 +11679,8 @@ class IfcStairFlightType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStairType_CorrectPredefinedType: SCOPE = 'entity' @@ -11679,8 +11689,8 @@ class IfcStairType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStructuralAnalysisModel_CorrectPredefinedType: SCOPE = 'entity' @@ -11689,8 +11699,8 @@ class IfcStructuralAnalysisModel_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStructuralCurveAction_HasObjectType: SCOPE = 'entity' @@ -11699,8 +11709,8 @@ class IfcStructuralCurveAction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveAction_ProjectedIsGlobal: SCOPE = 'entity' @@ -11709,8 +11719,8 @@ class IfcStructuralCurveAction_ProjectedIsGlobal: @staticmethod def __call__(self): - projectedortrue = getattr(self, 'ProjectedOrTrue', INDETERMINATE) - assert (not exists(projectedortrue) or (projectedortrue != projected_length or getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False + projectedortrue = express_getattr(self, 'ProjectedOrTrue', INDETERMINATE) + assert (not exists(projectedortrue) or (projectedortrue != projected_length or express_getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False class IfcStructuralCurveAction_SuitablePredefinedType: SCOPE = 'entity' @@ -11719,8 +11729,8 @@ class IfcStructuralCurveAction_SuitablePredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE)) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE)) is not False class IfcStructuralCurveMember_HasObjectType: SCOPE = 'entity' @@ -11729,8 +11739,8 @@ class IfcStructuralCurveMember_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveReaction_HasObjectType: SCOPE = 'entity' @@ -11739,8 +11749,8 @@ class IfcStructuralCurveReaction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveReaction_SuitablePredefinedType: SCOPE = 'entity' @@ -11749,8 +11759,8 @@ class IfcStructuralCurveReaction_SuitablePredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) and predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE)) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) and predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE)) is not False class IfcStructuralLinearAction_ConstPredefinedType: SCOPE = 'entity' @@ -11759,7 +11769,7 @@ class IfcStructuralLinearAction_ConstPredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE)) is not False class IfcStructuralLinearAction_SuitableLoadType: SCOPE = 'entity' @@ -11768,7 +11778,7 @@ class IfcStructuralLinearAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_add1.ifcstructuralloadlinearforce', 'ifc4x3_add1.ifcstructuralloadtemperature'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_add1.ifcstructuralloadlinearforce', 'ifc4x3_add1.ifcstructuralloadtemperature'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralLoadCase_IsLoadCasePredefinedType: SCOPE = 'entity' @@ -11777,7 +11787,7 @@ class IfcStructuralLoadCase_IsLoadCasePredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE)) is not False class IfcStructuralLoadConfiguration_ValidListSize: SCOPE = 'entity' @@ -11786,8 +11796,8 @@ class IfcStructuralLoadConfiguration_ValidListSize: @staticmethod def __call__(self): - values = getattr(self, 'Values', INDETERMINATE) - locations = getattr(self, 'Locations', INDETERMINATE) + values = express_getattr(self, 'Values', INDETERMINATE) + locations = express_getattr(self, 'Locations', INDETERMINATE) assert (not exists(locations) or sizeof(locations) == sizeof(values)) is not False class IfcStructuralLoadGroup_HasObjectType: @@ -11797,10 +11807,10 @@ class IfcStructuralLoadGroup_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - actiontype = getattr(self, 'ActionType', INDETERMINATE) - actionsource = getattr(self, 'ActionSource', INDETERMINATE) - assert (predefinedtype != getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) and actiontype != getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) and (actionsource != getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE)) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + actiontype = express_getattr(self, 'ActionType', INDETERMINATE) + actionsource = express_getattr(self, 'ActionSource', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) and actiontype != express_getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) and (actionsource != express_getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE)) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralPlanarAction_ConstPredefinedType: SCOPE = 'entity' @@ -11809,7 +11819,7 @@ class IfcStructuralPlanarAction_ConstPredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE)) is not False class IfcStructuralPlanarAction_SuitableLoadType: SCOPE = 'entity' @@ -11818,7 +11828,7 @@ class IfcStructuralPlanarAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_add1.ifcstructuralloadplanarforce', 'ifc4x3_add1.ifcstructuralloadtemperature'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_add1.ifcstructuralloadplanarforce', 'ifc4x3_add1.ifcstructuralloadtemperature'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralPointAction_SuitableLoadType: SCOPE = 'entity' @@ -11827,7 +11837,7 @@ class IfcStructuralPointAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_add1.ifcstructuralloadsingleforce', 'ifc4x3_add1.ifcstructuralloadsingledisplacement'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_add1.ifcstructuralloadsingleforce', 'ifc4x3_add1.ifcstructuralloadsingledisplacement'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralPointReaction_SuitableLoadType: SCOPE = 'entity' @@ -11836,7 +11846,7 @@ class IfcStructuralPointReaction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_add1.ifcstructuralloadsingleforce', 'ifc4x3_add1.ifcstructuralloadsingledisplacement'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_add1.ifcstructuralloadsingleforce', 'ifc4x3_add1.ifcstructuralloadsingledisplacement'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralResultGroup_HasObjectType: SCOPE = 'entity' @@ -11845,8 +11855,8 @@ class IfcStructuralResultGroup_HasObjectType: @staticmethod def __call__(self): - theorytype = getattr(self, 'TheoryType', INDETERMINATE) - assert (theorytype != getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + theorytype = express_getattr(self, 'TheoryType', INDETERMINATE) + assert (theorytype != express_getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceAction_HasObjectType: SCOPE = 'entity' @@ -11855,8 +11865,8 @@ class IfcStructuralSurfaceAction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceAction_ProjectedIsGlobal: SCOPE = 'entity' @@ -11865,8 +11875,8 @@ class IfcStructuralSurfaceAction_ProjectedIsGlobal: @staticmethod def __call__(self): - projectedortrue = getattr(self, 'ProjectedOrTrue', INDETERMINATE) - assert (not exists(projectedortrue) or (projectedortrue != projected_length or getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False + projectedortrue = express_getattr(self, 'ProjectedOrTrue', INDETERMINATE) + assert (not exists(projectedortrue) or (projectedortrue != projected_length or express_getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False class IfcStructuralSurfaceMember_HasObjectType: SCOPE = 'entity' @@ -11875,8 +11885,8 @@ class IfcStructuralSurfaceMember_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceReaction_HasPredefinedType: SCOPE = 'entity' @@ -11885,8 +11895,8 @@ class IfcStructuralSurfaceReaction_HasPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStyledItem_ApplicableItem: SCOPE = 'entity' @@ -11895,7 +11905,7 @@ class IfcStyledItem_ApplicableItem: @staticmethod def __call__(self): - item = getattr(self, 'Item', INDETERMINATE) + item = express_getattr(self, 'Item', INDETERMINATE) assert (not 'ifc4x3_add1.ifcstyleditem' in typeof(item)) is not False class IfcStyledRepresentation_OnlyStyledItems: @@ -11905,7 +11915,7 @@ class IfcStyledRepresentation_OnlyStyledItems: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3_add1.ifcstyleditem' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3_add1.ifcstyleditem' in typeof(temp)]) == 0) is not False class IfcSubContractResource_CorrectPredefinedType: SCOPE = 'entity' @@ -11914,8 +11924,8 @@ class IfcSubContractResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSubContractResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11924,8 +11934,8 @@ class IfcSubContractResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False def calc_IfcSurface_Dim(self): return 3 @@ -11937,8 +11947,8 @@ class IfcSurfaceCurve_CurveIs3D: @staticmethod def __call__(self): - curve3d = getattr(self, 'Curve3D', INDETERMINATE) - assert (getattr(curve3d, 'Dim', INDETERMINATE) == 3) is not False + curve3d = express_getattr(self, 'Curve3D', INDETERMINATE) + assert (express_getattr(curve3d, 'Dim', INDETERMINATE) == 3) is not False class IfcSurfaceCurve_CurveIsNotPcurve: SCOPE = 'entity' @@ -11947,7 +11957,7 @@ class IfcSurfaceCurve_CurveIsNotPcurve: @staticmethod def __call__(self): - curve3d = getattr(self, 'Curve3D', INDETERMINATE) + curve3d = express_getattr(self, 'Curve3D', INDETERMINATE) assert (not 'ifc4x3_add1.ifcpcurve' in typeof(curve3d)) is not False def calc_IfcSurfaceCurve_BasisSurface(self): @@ -11960,8 +11970,8 @@ class IfcSurfaceFeature_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSurfaceOfLinearExtrusion_DepthGreaterZero: SCOPE = 'entity' @@ -11970,17 +11980,17 @@ class IfcSurfaceOfLinearExtrusion_DepthGreaterZero: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) assert (depth > 0.0) is not False def calc_IfcSurfaceOfLinearExtrusion_ExtrusionAxis(self): - extrudeddirection = getattr(self, 'ExtrudedDirection', INDETERMINATE) - depth = getattr(self, 'Depth', INDETERMINATE) + extrudeddirection = express_getattr(self, 'ExtrudedDirection', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) return IfcVector(Orientation=extrudeddirection, Magnitude=depth) def calc_IfcSurfaceOfRevolution_AxisLine(self): - axisposition = getattr(self, 'AxisPosition', INDETERMINATE) - return IfcLine(Pnt=getattr(axisposition, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=getattr(axisposition, 'Z', INDETERMINATE), Magnitude=1.0)) + axisposition = express_getattr(self, 'AxisPosition', INDETERMINATE) + return IfcLine(Pnt=express_getattr(axisposition, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=express_getattr(axisposition, 'Z', INDETERMINATE), Magnitude=1.0)) class IfcSurfaceReinforcementArea_NonnegativeArea1: SCOPE = 'entity' @@ -11989,7 +11999,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea1: @staticmethod def __call__(self): - surfacereinforcement1 = getattr(self, 'SurfaceReinforcement1', INDETERMINATE) + surfacereinforcement1 = express_getattr(self, 'SurfaceReinforcement1', INDETERMINATE) assert (not exists(surfacereinforcement1) or (express_getitem(surfacereinforcement1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and express_getitem(surfacereinforcement1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and (sizeof(surfacereinforcement1) == 1 or express_getitem(surfacereinforcement1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0))) is not False class IfcSurfaceReinforcementArea_NonnegativeArea2: @@ -11999,7 +12009,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea2: @staticmethod def __call__(self): - surfacereinforcement2 = getattr(self, 'SurfaceReinforcement2', INDETERMINATE) + surfacereinforcement2 = express_getattr(self, 'SurfaceReinforcement2', INDETERMINATE) assert (not exists(surfacereinforcement2) or (express_getitem(surfacereinforcement2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and express_getitem(surfacereinforcement2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and (sizeof(surfacereinforcement2) == 1 or express_getitem(surfacereinforcement2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0))) is not False class IfcSurfaceReinforcementArea_NonnegativeArea3: @@ -12009,7 +12019,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea3: @staticmethod def __call__(self): - shearreinforcement = getattr(self, 'ShearReinforcement', INDETERMINATE) + shearreinforcement = express_getattr(self, 'ShearReinforcement', INDETERMINATE) assert (not exists(shearreinforcement) or shearreinforcement >= 0.0) is not False class IfcSurfaceReinforcementArea_SurfaceAndOrShearAreaSpecified: @@ -12019,9 +12029,9 @@ class IfcSurfaceReinforcementArea_SurfaceAndOrShearAreaSpecified: @staticmethod def __call__(self): - surfacereinforcement1 = getattr(self, 'SurfaceReinforcement1', INDETERMINATE) - surfacereinforcement2 = getattr(self, 'SurfaceReinforcement2', INDETERMINATE) - shearreinforcement = getattr(self, 'ShearReinforcement', INDETERMINATE) + surfacereinforcement1 = express_getattr(self, 'SurfaceReinforcement1', INDETERMINATE) + surfacereinforcement2 = express_getattr(self, 'SurfaceReinforcement2', INDETERMINATE) + shearreinforcement = express_getattr(self, 'ShearReinforcement', INDETERMINATE) assert (exists(surfacereinforcement1) or exists(surfacereinforcement2) or exists(shearreinforcement)) is not False class IfcSurfaceStyle_MaxOneExtDefined: @@ -12031,7 +12041,7 @@ class IfcSurfaceStyle_MaxOneExtDefined: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_add1.ifcexternallydefinedsurfacestyle' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_add1.ifcexternallydefinedsurfacestyle' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneLighting: SCOPE = 'entity' @@ -12040,7 +12050,7 @@ class IfcSurfaceStyle_MaxOneLighting: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_add1.ifcsurfacestylelighting' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_add1.ifcsurfacestylelighting' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneRefraction: SCOPE = 'entity' @@ -12049,7 +12059,7 @@ class IfcSurfaceStyle_MaxOneRefraction: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_add1.ifcsurfacestylerefraction' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_add1.ifcsurfacestylerefraction' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneShading: SCOPE = 'entity' @@ -12058,7 +12068,7 @@ class IfcSurfaceStyle_MaxOneShading: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_add1.ifcsurfacestyleshading' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_add1.ifcsurfacestyleshading' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneTextures: SCOPE = 'entity' @@ -12067,7 +12077,7 @@ class IfcSurfaceStyle_MaxOneTextures: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_add1.ifcsurfacestylewithtextures' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_add1.ifcsurfacestylewithtextures' in typeof(style)]) <= 1) is not False class IfcSweptAreaSolid_SweptAreaType: SCOPE = 'entity' @@ -12076,8 +12086,8 @@ class IfcSweptAreaSolid_SweptAreaType: @staticmethod def __call__(self): - sweptarea = getattr(self, 'SweptArea', INDETERMINATE) - assert (getattr(sweptarea, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'Area', INDETERMINATE)) is not False + sweptarea = express_getattr(self, 'SweptArea', INDETERMINATE) + assert (express_getattr(sweptarea, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'Area', INDETERMINATE)) is not False class IfcSweptDiskSolid_DirectrixBounded: SCOPE = 'entity' @@ -12086,9 +12096,9 @@ class IfcSweptDiskSolid_DirectrixBounded: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - startparam = getattr(self, 'StartParam', INDETERMINATE) - endparam = getattr(self, 'EndParam', INDETERMINATE) + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + startparam = express_getattr(self, 'StartParam', INDETERMINATE) + endparam = express_getattr(self, 'EndParam', INDETERMINATE) assert (exists(startparam) and exists(endparam) or sizeof(['ifc4x3_add1.ifcconic', 'ifc4x3_add1.ifcboundedcurve'] * typeof(directrix)) == 1) is not False class IfcSweptDiskSolid_DirectrixDim: @@ -12098,8 +12108,8 @@ class IfcSweptDiskSolid_DirectrixDim: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - assert (getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + assert (express_getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False class IfcSweptDiskSolid_InnerRadiusSize: SCOPE = 'entity' @@ -12108,8 +12118,8 @@ class IfcSweptDiskSolid_InnerRadiusSize: @staticmethod def __call__(self): - radius = getattr(self, 'Radius', INDETERMINATE) - innerradius = getattr(self, 'InnerRadius', INDETERMINATE) + radius = express_getattr(self, 'Radius', INDETERMINATE) + innerradius = express_getattr(self, 'InnerRadius', INDETERMINATE) assert (not exists(innerradius) or radius > innerradius) is not False class IfcSweptDiskSolidPolygonal_CorrectRadii: @@ -12119,8 +12129,8 @@ class IfcSweptDiskSolidPolygonal_CorrectRadii: @staticmethod def __call__(self): - filletradius = getattr(self, 'FilletRadius', INDETERMINATE) - assert (not exists(filletradius) or filletradius >= getattr(self, 'Radius', INDETERMINATE)) is not False + filletradius = express_getattr(self, 'FilletRadius', INDETERMINATE) + assert (not exists(filletradius) or filletradius >= express_getattr(self, 'Radius', INDETERMINATE)) is not False class IfcSweptDiskSolidPolygonal_DirectrixIsPolyline: SCOPE = 'entity' @@ -12129,7 +12139,7 @@ class IfcSweptDiskSolidPolygonal_DirectrixIsPolyline: @staticmethod def __call__(self): - assert ('ifc4x3_add1.ifcpolyline' in typeof(getattr(self, 'Directrix', INDETERMINATE)) or ('ifc4x3_add1.ifcindexedpolycurve' in typeof(getattr(self, 'Directrix', INDETERMINATE)) and (not exists(getattr(getattr(self, 'Directrix', INDETERMINATE), 'Segments', INDETERMINATE))))) is not False + assert ('ifc4x3_add1.ifcpolyline' in typeof(express_getattr(self, 'Directrix', INDETERMINATE)) or ('ifc4x3_add1.ifcindexedpolycurve' in typeof(express_getattr(self, 'Directrix', INDETERMINATE)) and (not exists(express_getattr(express_getattr(self, 'Directrix', INDETERMINATE), 'Segments', INDETERMINATE))))) is not False class IfcSweptSurface_SweptCurveType: SCOPE = 'entity' @@ -12138,8 +12148,8 @@ class IfcSweptSurface_SweptCurveType: @staticmethod def __call__(self): - sweptcurve = getattr(self, 'SweptCurve', INDETERMINATE) - assert (getattr(sweptcurve, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'Curve', INDETERMINATE)) is not False + sweptcurve = express_getattr(self, 'SweptCurve', INDETERMINATE) + assert (express_getattr(sweptcurve, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'Curve', INDETERMINATE)) is not False class IfcSwitchingDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -12148,8 +12158,8 @@ class IfcSwitchingDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSwitchingDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -12158,8 +12168,8 @@ class IfcSwitchingDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcswitchingdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcswitchingdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSwitchingDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -12168,8 +12178,8 @@ class IfcSwitchingDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSystemFurnitureElement_CorrectPredefinedType: SCOPE = 'entity' @@ -12178,8 +12188,8 @@ class IfcSystemFurnitureElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSystemFurnitureElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12188,8 +12198,8 @@ class IfcSystemFurnitureElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcsystemfurnitureelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcsystemfurnitureelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSystemFurnitureElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12198,8 +12208,8 @@ class IfcSystemFurnitureElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -12208,8 +12218,8 @@ class IfcTShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth) is not False class IfcTShapeProfileDef_ValidWebThickness: @@ -12219,8 +12229,8 @@ class IfcTShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - flangewidth = getattr(self, 'FlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + flangewidth = express_getattr(self, 'FlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < flangewidth) is not False class IfcTable_WR1: @@ -12230,8 +12240,8 @@ class IfcTable_WR1: @staticmethod def __call__(self): - rows = getattr(self, 'Rows', INDETERMINATE) - assert (sizeof([temp for temp in rows if hiindex(getattr(temp, 'RowCells', INDETERMINATE)) != hiindex(getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE))]) == 0) is not False + rows = express_getattr(self, 'Rows', INDETERMINATE) + assert (sizeof([temp for temp in rows if hiindex(express_getattr(temp, 'RowCells', INDETERMINATE)) != hiindex(express_getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE))]) == 0) is not False class IfcTable_WR2: SCOPE = 'entity' @@ -12240,20 +12250,20 @@ class IfcTable_WR2: @staticmethod def __call__(self): - numberofheadings = getattr(self, 'NumberOfHeadings', INDETERMINATE) + numberofheadings = express_getattr(self, 'NumberOfHeadings', INDETERMINATE) assert (0 <= numberofheadings <= 1) is not False def calc_IfcTable_NumberOfCellsInRow(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return hiindex(getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE)) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return hiindex(express_getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE)) def calc_IfcTable_NumberOfHeadings(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return sizeof([temp for temp in rows if getattr(temp, 'IsHeading', INDETERMINATE)]) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return sizeof([temp for temp in rows if express_getattr(temp, 'IsHeading', INDETERMINATE)]) def calc_IfcTable_NumberOfDataRows(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return sizeof([temp for temp in rows if not getattr(temp, 'IsHeading', INDETERMINATE)]) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return sizeof([temp for temp in rows if not express_getattr(temp, 'IsHeading', INDETERMINATE)]) class IfcTank_CorrectPredefinedType: SCOPE = 'entity' @@ -12262,8 +12272,8 @@ class IfcTank_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTank_CorrectTypeAssigned: SCOPE = 'entity' @@ -12272,8 +12282,8 @@ class IfcTank_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifctanktype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifctanktype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTankType_CorrectPredefinedType: SCOPE = 'entity' @@ -12282,8 +12292,8 @@ class IfcTankType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTask_CorrectPredefinedType: SCOPE = 'entity' @@ -12292,8 +12302,8 @@ class IfcTask_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTask_HasName: SCOPE = 'entity' @@ -12302,7 +12312,7 @@ class IfcTask_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcTaskType_CorrectPredefinedType: SCOPE = 'entity' @@ -12311,8 +12321,8 @@ class IfcTaskType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcTelecomAddress_MinimumDataProvided: SCOPE = 'entity' @@ -12321,12 +12331,12 @@ class IfcTelecomAddress_MinimumDataProvided: @staticmethod def __call__(self): - telephonenumbers = getattr(self, 'TelephoneNumbers', INDETERMINATE) - facsimilenumbers = getattr(self, 'FacsimileNumbers', INDETERMINATE) - pagernumber = getattr(self, 'PagerNumber', INDETERMINATE) - electronicmailaddresses = getattr(self, 'ElectronicMailAddresses', INDETERMINATE) - wwwhomepageurl = getattr(self, 'WWWHomePageURL', INDETERMINATE) - messagingids = getattr(self, 'MessagingIDs', INDETERMINATE) + telephonenumbers = express_getattr(self, 'TelephoneNumbers', INDETERMINATE) + facsimilenumbers = express_getattr(self, 'FacsimileNumbers', INDETERMINATE) + pagernumber = express_getattr(self, 'PagerNumber', INDETERMINATE) + electronicmailaddresses = express_getattr(self, 'ElectronicMailAddresses', INDETERMINATE) + wwwhomepageurl = express_getattr(self, 'WWWHomePageURL', INDETERMINATE) + messagingids = express_getattr(self, 'MessagingIDs', INDETERMINATE) assert (exists(telephonenumbers) or exists(facsimilenumbers) or exists(pagernumber) or exists(electronicmailaddresses) or exists(wwwhomepageurl) or exists(messagingids)) is not False class IfcTendon_CorrectPredefinedType: @@ -12336,8 +12346,8 @@ class IfcTendon_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendon_CorrectTypeAssigned: SCOPE = 'entity' @@ -12346,8 +12356,8 @@ class IfcTendon_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifctendontype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifctendontype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonAnchor_CorrectPredefinedType: SCOPE = 'entity' @@ -12356,8 +12366,8 @@ class IfcTendonAnchor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendonAnchor_CorrectTypeAssigned: SCOPE = 'entity' @@ -12366,8 +12376,8 @@ class IfcTendonAnchor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifctendonanchortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifctendonanchortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonAnchorType_CorrectPredefinedType: SCOPE = 'entity' @@ -12376,8 +12386,8 @@ class IfcTendonAnchorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTendonConduit_CorrectPredefinedType: SCOPE = 'entity' @@ -12386,8 +12396,8 @@ class IfcTendonConduit_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendonConduit_CorrectTypeAssigned: SCOPE = 'entity' @@ -12396,8 +12406,8 @@ class IfcTendonConduit_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifctendonconduittype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifctendonconduittype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonConduitType_CorrectPredefinedType: SCOPE = 'entity' @@ -12406,8 +12416,8 @@ class IfcTendonConduitType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTendonType_CorrectPredefinedType: SCOPE = 'entity' @@ -12416,8 +12426,8 @@ class IfcTendonType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcTessellatedFaceSet_Dim(self): return 3 @@ -12429,7 +12439,7 @@ class IfcTextLiteralWithExtent_WR31: @staticmethod def __call__(self): - extent = getattr(self, 'Extent', INDETERMINATE) + extent = express_getattr(self, 'Extent', INDETERMINATE) assert (not 'ifc4x3_add1.ifcplanarbox' in typeof(extent)) is not False class IfcTextStyleFontModel_MeasureOfFontSize: @@ -12439,7 +12449,7 @@ class IfcTextStyleFontModel_MeasureOfFontSize: @staticmethod def __call__(self): - assert ('ifc4x3_add1.ifclengthmeasure' in typeof(getattr(self, 'FontSize', INDETERMINATE)) and getattr(self, 'FontSize', INDETERMINATE) > 0.0) is not False + assert ('ifc4x3_add1.ifclengthmeasure' in typeof(express_getattr(self, 'FontSize', INDETERMINATE)) and express_getattr(self, 'FontSize', INDETERMINATE) > 0.0) is not False class IfcTopologyRepresentation_WR21: SCOPE = 'entity' @@ -12448,7 +12458,7 @@ class IfcTopologyRepresentation_WR21: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3_add1.ifctopologicalrepresentationitem' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3_add1.ifctopologicalrepresentationitem' in typeof(temp)]) == 0) is not False class IfcTopologyRepresentation_WR22: SCOPE = 'entity' @@ -12457,7 +12467,7 @@ class IfcTopologyRepresentation_WR22: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationType', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationType', INDETERMINATE)) is not False class IfcTopologyRepresentation_WR23: SCOPE = 'entity' @@ -12466,7 +12476,7 @@ class IfcTopologyRepresentation_WR23: @staticmethod def __call__(self): - assert IfcTopologyRepresentationTypes(getattr(self, 'RepresentationType', INDETERMINATE), getattr(self, 'Items', INDETERMINATE)) is not False + assert IfcTopologyRepresentationTypes(express_getattr(self, 'RepresentationType', INDETERMINATE), express_getattr(self, 'Items', INDETERMINATE)) is not False class IfcToroidalSurface_MajorLargerMinor: SCOPE = 'entity' @@ -12475,8 +12485,8 @@ class IfcToroidalSurface_MajorLargerMinor: @staticmethod def __call__(self): - majorradius = getattr(self, 'MajorRadius', INDETERMINATE) - minorradius = getattr(self, 'MinorRadius', INDETERMINATE) + majorradius = express_getattr(self, 'MajorRadius', INDETERMINATE) + minorradius = express_getattr(self, 'MinorRadius', INDETERMINATE) assert (minorradius < majorradius) is not False class IfcTrackElement_CorrectPredefinedType: @@ -12486,8 +12496,8 @@ class IfcTrackElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTrackElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12496,8 +12506,8 @@ class IfcTrackElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifctrackelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifctrackelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTrackElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12506,8 +12516,8 @@ class IfcTrackElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTransformer_CorrectPredefinedType: SCOPE = 'entity' @@ -12516,8 +12526,8 @@ class IfcTransformer_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTransformer_CorrectTypeAssigned: SCOPE = 'entity' @@ -12526,8 +12536,8 @@ class IfcTransformer_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifctransformertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifctransformertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTransformerType_CorrectPredefinedType: SCOPE = 'entity' @@ -12536,8 +12546,8 @@ class IfcTransformerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTransportElement_CorrectPredefinedType: SCOPE = 'entity' @@ -12546,8 +12556,8 @@ class IfcTransportElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTransportElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12556,8 +12566,8 @@ class IfcTransportElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifctransportelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifctransportelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTransportElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12566,11 +12576,11 @@ class IfcTransportElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcTriangulatedFaceSet_NumberOfTriangles(self): - coordindex = getattr(self, 'CoordIndex', INDETERMINATE) + coordindex = express_getattr(self, 'CoordIndex', INDETERMINATE) return sizeof(coordindex) class IfcTriangulatedIrregularNetwork_NotClosed: @@ -12580,7 +12590,7 @@ class IfcTriangulatedIrregularNetwork_NotClosed: @staticmethod def __call__(self): - assert (getattr(self, 'Closed', INDETERMINATE) == False) is not False + assert (express_getattr(self, 'Closed', INDETERMINATE) == False) is not False class IfcTrimmedCurve_NoTrimOfBoundedCurves: SCOPE = 'entity' @@ -12589,7 +12599,7 @@ class IfcTrimmedCurve_NoTrimOfBoundedCurves: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) assert (not 'ifc4x3_add1.ifcboundedcurve' in typeof(basiscurve)) is not False class IfcTrimmedCurve_Trim1ValuesConsistent: @@ -12599,7 +12609,7 @@ class IfcTrimmedCurve_Trim1ValuesConsistent: @staticmethod def __call__(self): - trim1 = getattr(self, 'Trim1', INDETERMINATE) + trim1 = express_getattr(self, 'Trim1', INDETERMINATE) assert (hiindex(trim1) == 1 or typeof(express_getitem(trim1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(express_getitem(trim1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcTrimmedCurve_Trim2ValuesConsistent: @@ -12609,7 +12619,7 @@ class IfcTrimmedCurve_Trim2ValuesConsistent: @staticmethod def __call__(self): - trim2 = getattr(self, 'Trim2', INDETERMINATE) + trim2 = express_getattr(self, 'Trim2', INDETERMINATE) assert (hiindex(trim2) == 1 or typeof(express_getitem(trim2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(express_getitem(trim2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcTubeBundle_CorrectPredefinedType: @@ -12619,8 +12629,8 @@ class IfcTubeBundle_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTubeBundle_CorrectTypeAssigned: SCOPE = 'entity' @@ -12629,8 +12639,8 @@ class IfcTubeBundle_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifctubebundletype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifctubebundletype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTubeBundleType_CorrectPredefinedType: SCOPE = 'entity' @@ -12639,8 +12649,8 @@ class IfcTubeBundleType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTypeObject_NameRequired: SCOPE = 'entity' @@ -12649,7 +12659,7 @@ class IfcTypeObject_NameRequired: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcTypeObject_UniquePropertySetNames: SCOPE = 'entity' @@ -12658,7 +12668,7 @@ class IfcTypeObject_UniquePropertySetNames: @staticmethod def __call__(self): - haspropertysets = getattr(self, 'HasPropertySets', INDETERMINATE) + haspropertysets = express_getattr(self, 'HasPropertySets', INDETERMINATE) assert (not exists(haspropertysets) or IfcUniquePropertySetNames(haspropertysets)) is not False class IfcTypeProduct_ApplicableOccurrence: @@ -12668,7 +12678,7 @@ class IfcTypeProduct_ApplicableOccurrence: @staticmethod def __call__(self): - assert (not exists(lambda : express_getitem(getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or sizeof([temp for temp in getattr(express_getitem(getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not 'ifc4x3_add1.ifcproduct' in typeof(temp)]) == 0) is not False + assert (not exists(lambda : express_getitem(express_getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or sizeof([temp for temp in express_getattr(express_getitem(express_getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not 'ifc4x3_add1.ifcproduct' in typeof(temp)]) == 0) is not False class IfcUShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -12677,8 +12687,8 @@ class IfcUShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth / 2.0) is not False class IfcUShapeProfileDef_ValidWebThickness: @@ -12688,8 +12698,8 @@ class IfcUShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - flangewidth = getattr(self, 'FlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + flangewidth = express_getattr(self, 'FlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < flangewidth) is not False class IfcUnitAssignment_WR01: @@ -12699,7 +12709,7 @@ class IfcUnitAssignment_WR01: @staticmethod def __call__(self): - units = getattr(self, 'Units', INDETERMINATE) + units = express_getattr(self, 'Units', INDETERMINATE) assert IfcCorrectUnitAssignment(units) is not False class IfcUnitaryControlElement_CorrectPredefinedType: @@ -12709,8 +12719,8 @@ class IfcUnitaryControlElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcUnitaryControlElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12719,8 +12729,8 @@ class IfcUnitaryControlElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcunitarycontrolelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcunitarycontrolelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcUnitaryControlElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12729,8 +12739,8 @@ class IfcUnitaryControlElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcUnitaryEquipment_CorrectPredefinedType: SCOPE = 'entity' @@ -12739,8 +12749,8 @@ class IfcUnitaryEquipment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcUnitaryEquipment_CorrectTypeAssigned: SCOPE = 'entity' @@ -12749,8 +12759,8 @@ class IfcUnitaryEquipment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcunitaryequipmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcunitaryequipmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcUnitaryEquipmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -12759,8 +12769,8 @@ class IfcUnitaryEquipmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcValve_CorrectPredefinedType: SCOPE = 'entity' @@ -12769,8 +12779,8 @@ class IfcValve_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcValve_CorrectTypeAssigned: SCOPE = 'entity' @@ -12779,8 +12789,8 @@ class IfcValve_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcvalvetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcvalvetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcValveType_CorrectPredefinedType: SCOPE = 'entity' @@ -12789,8 +12799,8 @@ class IfcValveType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVector_MagGreaterOrEqualZero: SCOPE = 'entity' @@ -12799,12 +12809,12 @@ class IfcVector_MagGreaterOrEqualZero: @staticmethod def __call__(self): - magnitude = getattr(self, 'Magnitude', INDETERMINATE) + magnitude = express_getattr(self, 'Magnitude', INDETERMINATE) assert (magnitude >= 0.0) is not False def calc_IfcVector_Dim(self): - orientation = getattr(self, 'Orientation', INDETERMINATE) - return getattr(orientation, 'Dim', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return express_getattr(orientation, 'Dim', INDETERMINATE) class IfcVehicle_CorrectPredefinedType: SCOPE = 'entity' @@ -12813,8 +12823,8 @@ class IfcVehicle_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcVehicle_CorrectTypeAssigned: SCOPE = 'entity' @@ -12823,8 +12833,8 @@ class IfcVehicle_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcvehicletype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcvehicletype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcVehicleType_CorrectPredefinedType: SCOPE = 'entity' @@ -12833,8 +12843,8 @@ class IfcVehicleType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVibrationDamper_CorrectPredefinedType: SCOPE = 'entity' @@ -12843,8 +12853,8 @@ class IfcVibrationDamper_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcVibrationDamper_CorrectTypeAssigned: SCOPE = 'entity' @@ -12853,8 +12863,8 @@ class IfcVibrationDamper_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcvibrationdampertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcvibrationdampertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcVibrationDamperType_CorrectPredefinedType: SCOPE = 'entity' @@ -12863,8 +12873,8 @@ class IfcVibrationDamperType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVibrationIsolator_CorrectPredefinedType: SCOPE = 'entity' @@ -12873,8 +12883,8 @@ class IfcVibrationIsolator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcVibrationIsolator_CorrectTypeAssigned: SCOPE = 'entity' @@ -12883,8 +12893,8 @@ class IfcVibrationIsolator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcvibrationisolatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcvibrationisolatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcVibrationIsolatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -12893,8 +12903,8 @@ class IfcVibrationIsolatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVirtualElement_CorrectPredefinedType: SCOPE = 'entity' @@ -12903,8 +12913,8 @@ class IfcVirtualElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVirtualElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVirtualElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVirtualElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVirtualElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcVoidingFeature_CorrectPredefinedType: SCOPE = 'entity' @@ -12913,8 +12923,8 @@ class IfcVoidingFeature_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWall_CorrectPredefinedType: SCOPE = 'entity' @@ -12923,8 +12933,8 @@ class IfcWall_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWall_CorrectTypeAssigned: SCOPE = 'entity' @@ -12933,8 +12943,8 @@ class IfcWall_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcwalltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcwalltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWallStandardCase_HasMaterialLayerSetUsage: SCOPE = 'entity' @@ -12943,7 +12953,7 @@ class IfcWallStandardCase_HasMaterialLayerSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x3_add1.ifcrelassociates.relatedobjects') if 'ifc4x3_add1.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_add1.ifcmateriallayersetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x3_add1.ifcrelassociates.relatedobjects') if 'ifc4x3_add1.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_add1.ifcmateriallayersetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcWallType_CorrectPredefinedType: SCOPE = 'entity' @@ -12952,8 +12962,8 @@ class IfcWallType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWasteTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -12962,8 +12972,8 @@ class IfcWasteTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWasteTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -12972,8 +12982,8 @@ class IfcWasteTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcwasteterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcwasteterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWasteTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -12982,8 +12992,8 @@ class IfcWasteTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWindow_CorrectPredefinedType: SCOPE = 'entity' @@ -12992,8 +13002,8 @@ class IfcWindow_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWindow_CorrectTypeAssigned: SCOPE = 'entity' @@ -13002,8 +13012,8 @@ class IfcWindow_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcwindowtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add1.ifcwindowtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWindowLiningProperties_WR31: SCOPE = 'entity' @@ -13012,8 +13022,8 @@ class IfcWindowLiningProperties_WR31: @staticmethod def __call__(self): - liningdepth = getattr(self, 'LiningDepth', INDETERMINATE) - liningthickness = getattr(self, 'LiningThickness', INDETERMINATE) + liningdepth = express_getattr(self, 'LiningDepth', INDETERMINATE) + liningthickness = express_getattr(self, 'LiningThickness', INDETERMINATE) assert (not (exists(liningdepth) and (not exists(liningthickness)))) is not False class IfcWindowLiningProperties_WR32: @@ -13023,8 +13033,8 @@ class IfcWindowLiningProperties_WR32: @staticmethod def __call__(self): - firsttransomoffset = getattr(self, 'FirstTransomOffset', INDETERMINATE) - secondtransomoffset = getattr(self, 'SecondTransomOffset', INDETERMINATE) + firsttransomoffset = express_getattr(self, 'FirstTransomOffset', INDETERMINATE) + secondtransomoffset = express_getattr(self, 'SecondTransomOffset', INDETERMINATE) assert (not (not exists(firsttransomoffset) and exists(secondtransomoffset))) is not False class IfcWindowLiningProperties_WR33: @@ -13034,8 +13044,8 @@ class IfcWindowLiningProperties_WR33: @staticmethod def __call__(self): - firstmullionoffset = getattr(self, 'FirstMullionOffset', INDETERMINATE) - secondmullionoffset = getattr(self, 'SecondMullionOffset', INDETERMINATE) + firstmullionoffset = express_getattr(self, 'FirstMullionOffset', INDETERMINATE) + secondmullionoffset = express_getattr(self, 'SecondMullionOffset', INDETERMINATE) assert (not (not exists(firstmullionoffset) and exists(secondmullionoffset))) is not False class IfcWindowLiningProperties_WR34: @@ -13045,7 +13055,7 @@ class IfcWindowLiningProperties_WR34: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc4x3_add1.ifcwindowtype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc4x3_add1.ifcwindowtype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcWindowPanelProperties_ApplicableToType: SCOPE = 'entity' @@ -13054,7 +13064,7 @@ class IfcWindowPanelProperties_ApplicableToType: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc4x3_add1.ifcwindowtype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc4x3_add1.ifcwindowtype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcWindowType_CorrectPredefinedType: SCOPE = 'entity' @@ -13063,8 +13073,8 @@ class IfcWindowType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWorkCalendar_CorrectPredefinedType: SCOPE = 'entity' @@ -13073,8 +13083,8 @@ class IfcWorkCalendar_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWorkPlan_CorrectPredefinedType: SCOPE = 'entity' @@ -13083,8 +13093,8 @@ class IfcWorkPlan_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWorkSchedule_CorrectPredefinedType: SCOPE = 'entity' @@ -13093,8 +13103,8 @@ class IfcWorkSchedule_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcZShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -13103,8 +13113,8 @@ class IfcZShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth / 2.0) is not False class IfcZone_WR1: @@ -13114,19 +13124,19 @@ class IfcZone_WR1: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'IsGroupedBy', INDETERMINATE)) == 0 or sizeof([temp for temp in getattr(express_getitem(getattr(self, 'IsGroupedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not ('ifc4x3_add1.ifczone' in typeof(temp) or 'ifc4x3_add1.ifcspace' in typeof(temp) or 'ifc4x3_add1.ifcspatialzone' in typeof(temp))]) == 0) is not False + assert (sizeof(express_getattr(self, 'IsGroupedBy', INDETERMINATE)) == 0 or sizeof([temp for temp in express_getattr(express_getitem(express_getattr(self, 'IsGroupedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not ('ifc4x3_add1.ifczone' in typeof(temp) or 'ifc4x3_add1.ifcspace' in typeof(temp) or 'ifc4x3_add1.ifcspatialzone' in typeof(temp))]) == 0) is not False class IfcRepresentationContextSameWCS: SCOPE = 'file' @staticmethod def __call__(file): - IfcGeometricRepresentationContext = getattr(file, 'by_type', INDETERMINATE)('IfcGeometricRepresentationContext') + IfcGeometricRepresentationContext = express_getattr(file, 'by_type', INDETERMINATE)('IfcGeometricRepresentationContext') isdifferent = False if sizeof(IfcGeometricRepresentationContext) > 1: for i in range(2, hiindex(IfcGeometricRepresentationContext) + 1): - if getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE) != getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE): - isdifferent = not IfcSameValidPrecision(getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) or not IfcSameAxis2Placement(getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) + if express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE) != express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE): + isdifferent = not IfcSameValidPrecision(express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) or not IfcSameAxis2Placement(express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) if isdifferent == True: break assert (isdifferent == False) is not False @@ -13136,11 +13146,11 @@ class IfcSingleProjectInstance: @staticmethod def __call__(file): - IfcProject = getattr(file, 'by_type', INDETERMINATE)('IfcProject') + IfcProject = express_getattr(file, 'by_type', INDETERMINATE)('IfcProject') assert (sizeof(IfcProject) <= 1) is not False def IfcAssociatedSurface(arg): - surf = getattr(arg, 'BasisSurface', INDETERMINATE) + surf = express_getattr(arg, 'BasisSurface', INDETERMINATE) return surf def IfcBaseAxis(dim, axis1, axis2, axis3): @@ -13154,13 +13164,13 @@ def IfcBaseAxis(dim, axis1, axis2, axis3): if exists(axis2): factor = IfcDotProduct(axis2, express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) if factor < 0.0: - u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) elif exists(axis2): d1 = IfcNormalise(axis2) u = [IfcOrthogonalComplement(d1), d1] - u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) else: u = [IfcDirection(DirectionRatios=[1.0, 0.0]), IfcDirection(DirectionRatios=[0.0, 1.0])] return u @@ -13178,7 +13188,7 @@ def IfcBuild2Axes(refdirection): def IfcBuildAxes(axis, refdirection): d1 = nvl(IfcNormalise(axis), IfcDirection(DirectionRatios=[0.0, 0.0, 1.0])) d2 = IfcFirstProjAxis(d1, refdirection) - return [d2, getattr(IfcNormalise(IfcCrossProduct(d1, d2)), 'Orientation', INDETERMINATE), d1] + return [d2, express_getattr(IfcNormalise(IfcCrossProduct(d1, d2)), 'Orientation', INDETERMINATE), d1] def IfcConsecutiveSegments(segments): result = True @@ -13215,11 +13225,11 @@ def IfcConstraintsParamBSpline(degree, upknots, upcp, knotmult, knots): def IfcConvertDirectionInto2D(direction): direction2d = IfcDirection(DirectionRatios=[0.0, 1.0]) - temp = list(getattr(direction2d, 'DirectionRatios', INDETERMINATE)) - temp[1 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(direction, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(direction2d, 'DirectionRatios', INDETERMINATE)) + temp[1 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(direction, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) direction2d.DirectionRatios = temp - temp = list(getattr(direction2d, 'DirectionRatios', INDETERMINATE)) - temp[2 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(direction, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(direction2d, 'DirectionRatios', INDETERMINATE)) + temp[2 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(direction, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) direction2d.DirectionRatios = temp return direction2d @@ -13399,7 +13409,7 @@ def IfcCorrectLocalPlacement(axisplacement, relplacement): if 'ifc4x3_add1.ifcaxis2placement2d' in typeof(axisplacement): return True if 'ifc4x3_add1.ifcaxis2placement3d' in typeof(axisplacement): - if getattr(getattr(relplacement, 'RelativePlacement', INDETERMINATE), 'Dim', INDETERMINATE) == 3: + if express_getattr(express_getattr(relplacement, 'RelativePlacement', INDETERMINATE), 'Dim', INDETERMINATE) == 3: return True else: return False @@ -13412,26 +13422,26 @@ def IfcCorrectUnitAssignment(units): monetaryunitnumber = 0 namedunitnames = express_set([]) derivedunitnames = express_set([]) - namedunitnumber = sizeof([temp for temp in units if 'ifc4x3_add1.ifcnamedunit' in typeof(temp) and (not getattr(temp, 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE))]) - derivedunitnumber = sizeof([temp for temp in units if 'ifc4x3_add1.ifcderivedunit' in typeof(temp) and (not getattr(temp, 'UnitType', INDETERMINATE) == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE))]) + namedunitnumber = sizeof([temp for temp in units if 'ifc4x3_add1.ifcnamedunit' in typeof(temp) and (not express_getattr(temp, 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE))]) + derivedunitnumber = sizeof([temp for temp in units if 'ifc4x3_add1.ifcderivedunit' in typeof(temp) and (not express_getattr(temp, 'UnitType', INDETERMINATE) == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE))]) monetaryunitnumber = sizeof([temp for temp in units if 'ifc4x3_add1.ifcmonetaryunit' in typeof(temp)]) for i in range(1, sizeof(units) + 1): - if 'ifc4x3_add1.ifcnamedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE)): - namedunitnames = namedunitnames + getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) - if 'ifc4x3_add1.ifcderivedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE)): - derivedunitnames = derivedunitnames + getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) + if 'ifc4x3_add1.ifcnamedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE)): + namedunitnames = namedunitnames + express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) + if 'ifc4x3_add1.ifcderivedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE)): + derivedunitnames = derivedunitnames + express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) return sizeof(namedunitnames) == namedunitnumber and sizeof(derivedunitnames) == derivedunitnumber and (monetaryunitnumber <= 1) def IfcCrossProduct(arg1, arg2): - if (not exists(arg1) or getattr(arg1, 'Dim', INDETERMINATE) == 2) or (not exists(arg2) or getattr(arg2, 'Dim', INDETERMINATE) == 2): + if (not exists(arg1) or express_getattr(arg1, 'Dim', INDETERMINATE) == 2) or (not exists(arg2) or express_getattr(arg2, 'Dim', INDETERMINATE) == 2): return None else: - v1 = getattr(IfcNormalise(arg1), 'DirectionRatios', INDETERMINATE) - v2 = getattr(IfcNormalise(arg2), 'DirectionRatios', INDETERMINATE) + v1 = express_getattr(IfcNormalise(arg1), 'DirectionRatios', INDETERMINATE) + v2 = express_getattr(IfcNormalise(arg2), 'DirectionRatios', INDETERMINATE) res = IfcDirection(DirectionRatios=[express_getitem(v1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(v1, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(v1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) mag = 0.0 for i in range(1, 3 + 1): - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: @@ -13440,21 +13450,21 @@ def IfcCrossProduct(arg1, arg2): def IfcCurveDim(curve): if 'ifc4x3_add1.ifcline' in typeof(curve): - return getattr(getattr(curve, 'Pnt', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Pnt', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_add1.ifcconic' in typeof(curve): - return getattr(getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_add1.ifcpolyline' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'Points', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'Points', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_add1.ifctrimmedcurve' in typeof(curve): - return IfcCurveDim(getattr(curve, 'BasisCurve', INDETERMINATE)) + return IfcCurveDim(express_getattr(curve, 'BasisCurve', INDETERMINATE)) if 'ifc4x3_add1.ifcgradientcurve' in typeof(curve): return 3 if 'ifc4x3_add1.ifcsegmentedreferencecurve' in typeof(curve): return 3 if 'ifc4x3_add1.ifccompositecurve' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_add1.ifcbsplinecurve' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_add1.ifcoffsetcurve2d' in typeof(curve): return 2 if 'ifc4x3_add1.ifcoffsetcurve3d' in typeof(curve): @@ -13464,19 +13474,19 @@ def IfcCurveDim(curve): if 'ifc4x3_add1.ifccurvesegment2d' in typeof(curve): return 2 if 'ifc4x3_add1.ifcpolynomialcurve' in typeof(curve): - if not exists(getattr(curve, 'CoefficientsZ', INDETERMINATE)) and getattr(getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) == 2: + if not exists(express_getattr(curve, 'CoefficientsZ', INDETERMINATE)) and express_getattr(express_getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) == 2: return 2 return 3 if 'ifc4x3_add1.ifcpcurve' in typeof(curve): return 3 if 'ifc4x3_add1.ifcindexedpolycurve' in typeof(curve): - return getattr(getattr(curve, 'Points', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Points', INDETERMINATE), 'Dim', INDETERMINATE) return None def IfcCurveWeightsPositive(b): result = True - for i in range(0, getattr(b, 'UpperIndexOnControlPoints', INDETERMINATE) + 1): - if express_getitem(getattr(b, 'Weights', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: + for i in range(0, express_getattr(b, 'UpperIndexOnControlPoints', INDETERMINATE) + 1): + if express_getitem(express_getattr(b, 'Weights', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: result = False return result return result @@ -13484,13 +13494,13 @@ def IfcCurveWeightsPositive(b): def IfcDeriveDimensionalExponents(unitelements): result = IfcDimensionalExponents(0, 0, 0, 0, 0, 0, 0) for i in range(loindex(unitelements), hiindex(unitelements) + 1): - result.LengthExponent = getattr(result, 'LengthExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LengthExponent', INDETERMINATE) - result.MassExponent = getattr(result, 'MassExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'MassExponent', INDETERMINATE) - result.TimeExponent = getattr(result, 'TimeExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'TimeExponent', INDETERMINATE) - result.ElectricCurrentExponent = getattr(result, 'ElectricCurrentExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ElectricCurrentExponent', INDETERMINATE) - result.ThermodynamicTemperatureExponent = getattr(result, 'ThermodynamicTemperatureExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ThermodynamicTemperatureExponent', INDETERMINATE) - result.AmountOfSubstanceExponent = getattr(result, 'AmountOfSubstanceExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'AmountOfSubstanceExponent', INDETERMINATE) - result.LuminousIntensityExponent = getattr(result, 'LuminousIntensityExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LuminousIntensityExponent', INDETERMINATE) + result.LengthExponent = express_getattr(result, 'LengthExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LengthExponent', INDETERMINATE) + result.MassExponent = express_getattr(result, 'MassExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'MassExponent', INDETERMINATE) + result.TimeExponent = express_getattr(result, 'TimeExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'TimeExponent', INDETERMINATE) + result.ElectricCurrentExponent = express_getattr(result, 'ElectricCurrentExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ElectricCurrentExponent', INDETERMINATE) + result.ThermodynamicTemperatureExponent = express_getattr(result, 'ThermodynamicTemperatureExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ThermodynamicTemperatureExponent', INDETERMINATE) + result.AmountOfSubstanceExponent = express_getattr(result, 'AmountOfSubstanceExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'AmountOfSubstanceExponent', INDETERMINATE) + result.LuminousIntensityExponent = express_getattr(result, 'LuminousIntensityExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LuminousIntensityExponent', INDETERMINATE) return result def IfcDimensionsForSIUnit(n): @@ -13560,15 +13570,15 @@ def IfcDimensionsForSIUnit(n): def IfcDotProduct(arg1, arg2): if not exists(arg1) or not exists(arg2): scalar = None - elif getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + elif express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): scalar = None else: vec1 = IfcNormalise(arg1) vec2 = IfcNormalise(arg2) - ndim = getattr(arg1, 'Dim', INDETERMINATE) + ndim = express_getattr(arg1, 'Dim', INDETERMINATE) scalar = 0.0 for i in range(1, ndim + 1): - scalar = scalar + express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + scalar = scalar + express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return scalar def IfcFirstProjAxis(zaxis, arg): @@ -13577,42 +13587,42 @@ def IfcFirstProjAxis(zaxis, arg): else: z = IfcNormalise(zaxis) if not exists(arg): - if getattr(z, 'DirectionRatios', INDETERMINATE) != [1.0, 0.0, 0.0]: + if express_getattr(z, 'DirectionRatios', INDETERMINATE) != [1.0, 0.0, 0.0]: v = IfcDirection(DirectionRatios=[1.0, 0.0, 0.0]) else: v = IfcDirection(DirectionRatios=[0.0, 1.0, 0.0]) else: - if getattr(arg, 'Dim', INDETERMINATE) != 3: + if express_getattr(arg, 'Dim', INDETERMINATE) != 3: return None - if getattr(IfcCrossProduct(arg, z), 'Magnitude', INDETERMINATE) == 0.0: + if express_getattr(IfcCrossProduct(arg, z), 'Magnitude', INDETERMINATE) == 0.0: return None else: v = IfcNormalise(arg) xvec = IfcScalarTimesVector(IfcDotProduct(v, z), z) - xaxis = getattr(IfcVectorDifference(v, xvec), 'Orientation', INDETERMINATE) + xaxis = express_getattr(IfcVectorDifference(v, xvec), 'Orientation', INDETERMINATE) xaxis = IfcNormalise(xaxis) return xaxis def IfcGetBasisSurface(c): surfs = [] if 'ifc4x3_add1.ifcpcurve' in typeof(c): - surfs = [getattr(c, 'BasisSurface', INDETERMINATE)] + surfs = [express_getattr(c, 'BasisSurface', INDETERMINATE)] elif 'ifc4x3_add1.ifcsurfacecurve' in typeof(c): - n = sizeof(getattr(c, 'AssociatedGeometry', INDETERMINATE)) + n = sizeof(express_getattr(c, 'AssociatedGeometry', INDETERMINATE)) for i in range(1, n + 1): - surfs = surfs + IfcAssociatedSurface(express_getitem(getattr(c, 'AssociatedGeometry', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) + surfs = surfs + IfcAssociatedSurface(express_getitem(express_getattr(c, 'AssociatedGeometry', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) if 'ifc4x3_add1.ifccompositecurveonsurface' in typeof(c): - n = sizeof(getattr(c, 'Segments', INDETERMINATE)) - if 'ifc4x3_add1.ifccurvesegment' in typeof(express_getitem(getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - surfs = IfcGetBasisSurface(getattr(express_getitem(getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) - if 'ifc4x3_add1.ifccompositecurvesegment' in typeof(express_getitem(getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - surfs = IfcGetBasisSurface(getattr(express_getitem(getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) + n = sizeof(express_getattr(c, 'Segments', INDETERMINATE)) + if 'ifc4x3_add1.ifccurvesegment' in typeof(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): + surfs = IfcGetBasisSurface(express_getattr(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) + if 'ifc4x3_add1.ifccompositecurvesegment' in typeof(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): + surfs = IfcGetBasisSurface(express_getattr(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) if n > 1: for i in range(2, n + 1): - if 'ifc4x3_add1.ifccurvesegment' in typeof(express_getitem(getattr(c, 'Segments', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - surfs = surfs * IfcGetBasisSurface(getattr(express_getitem(getattr(c, 'Segments', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) - if 'ifc4x3_add1.ifccompositecurvesegment' in typeof(express_getitem(getattr(c, 'Segments', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - surfs = surfs * IfcGetBasisSurface(getattr(express_getitem(getattr(c, 'Segments', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) + if 'ifc4x3_add1.ifccurvesegment' in typeof(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): + surfs = surfs * IfcGetBasisSurface(express_getattr(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) + if 'ifc4x3_add1.ifccompositecurvesegment' in typeof(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): + surfs = surfs * IfcGetBasisSurface(express_getattr(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) return surfs def IfcListToArray(lis, low, u): @@ -13629,9 +13639,9 @@ def IfcListToArray(lis, low, u): def IfcLoopHeadToTail(aloop): p = True - n = sizeof(getattr(aloop, 'EdgeList', INDETERMINATE)) + n = sizeof(express_getattr(aloop, 'EdgeList', INDETERMINATE)) for i in range(2, n + 1): - p = p and getattr(express_getitem(getattr(aloop, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == getattr(express_getitem(getattr(aloop, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) + p = p and express_getattr(express_getitem(express_getattr(aloop, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == express_getattr(express_getitem(express_getattr(aloop, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) return p def IfcMakeArrayOfArray(lis, low1, u1, low2, u2): @@ -13649,10 +13659,10 @@ def IfcMakeArrayOfArray(lis, low1, u1, low2, u2): return res def IfcMlsTotalThickness(layerset): - max = getattr(express_getitem(getattr(layerset, 'MaterialLayers', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) - if sizeof(getattr(layerset, 'MaterialLayers', INDETERMINATE)) > 1: - for i in range(2, hiindex(getattr(layerset, 'MaterialLayers', INDETERMINATE)) + 1): - max = max + getattr(express_getitem(getattr(layerset, 'MaterialLayers', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) + max = express_getattr(express_getitem(express_getattr(layerset, 'MaterialLayers', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) + if sizeof(express_getattr(layerset, 'MaterialLayers', INDETERMINATE)) > 1: + for i in range(2, hiindex(express_getattr(layerset, 'MaterialLayers', INDETERMINATE)) + 1): + max = max + express_getattr(express_getitem(express_getattr(layerset, 'MaterialLayers', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) return max def IfcNormalise(arg): @@ -13663,25 +13673,25 @@ def IfcNormalise(arg): return None else: if 'ifc4x3_add1.ifcvector' in typeof(arg): - ndim = getattr(arg, 'Dim', INDETERMINATE) - v.DirectionRatios = getattr(getattr(arg, 'Orientation', INDETERMINATE), 'DirectionRatios', INDETERMINATE) - vec.Magnitude = getattr(arg, 'Magnitude', INDETERMINATE) + ndim = express_getattr(arg, 'Dim', INDETERMINATE) + v.DirectionRatios = express_getattr(express_getattr(arg, 'Orientation', INDETERMINATE), 'DirectionRatios', INDETERMINATE) + vec.Magnitude = express_getattr(arg, 'Magnitude', INDETERMINATE) vec.Orientation = v - if getattr(arg, 'Magnitude', INDETERMINATE) == 0.0: + if express_getattr(arg, 'Magnitude', INDETERMINATE) == 0.0: return None else: vec.Magnitude = 1.0 else: - ndim = getattr(arg, 'Dim', INDETERMINATE) - v.DirectionRatios = getattr(arg, 'DirectionRatios', INDETERMINATE) + ndim = express_getattr(arg, 'Dim', INDETERMINATE) + v.DirectionRatios = express_getattr(arg, 'DirectionRatios', INDETERMINATE) mag = 0.0 for i in range(1, ndim + 1): - mag = mag + express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: mag = sqrt(mag) for i in range(1, ndim + 1): - temp = list(getattr(v, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) / mag + temp = list(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) / mag v.DirectionRatios = temp if 'ifc4x3_add1.ifcvector' in typeof(arg): vec.Orientation = v @@ -13693,29 +13703,29 @@ def IfcNormalise(arg): return result def IfcOrthogonalComplement(vec): - if not exists(vec) or getattr(vec, 'Dim', INDETERMINATE) != 2: + if not exists(vec) or express_getattr(vec, 'Dim', INDETERMINATE) != 2: return None else: - result = IfcDirection(DirectionRatios=[-express_getitem(getattr(vec, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(vec, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) + result = IfcDirection(DirectionRatios=[-express_getitem(express_getattr(vec, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(vec, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) return result def IfcPathHeadToTail(apath): n = 0 p = unknown - n = sizeof(getattr(apath, 'EdgeList', INDETERMINATE)) + n = sizeof(express_getattr(apath, 'EdgeList', INDETERMINATE)) for i in range(2, n + 1): - p = p and getattr(express_getitem(getattr(apath, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == getattr(express_getitem(getattr(apath, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) + p = p and express_getattr(express_getitem(express_getattr(apath, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == express_getattr(express_getitem(express_getattr(apath, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) return p def IfcPointDim(point): if 'ifc4x3_add1.ifccartesianpoint' in typeof(point): - return hiindex(getattr(point, 'Coordinates', INDETERMINATE)) + return hiindex(express_getattr(point, 'Coordinates', INDETERMINATE)) if 'ifc4x3_add1.ifcpointbydistanceexpression' in typeof(point): - return getattr(getattr(point, 'BasisCurve', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(point, 'BasisCurve', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_add1.ifcpointoncurve' in typeof(point): - return getattr(getattr(point, 'BasisCurve', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(point, 'BasisCurve', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_add1.ifcpointonsurface' in typeof(point): - return getattr(getattr(point, 'BasisSurface', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(point, 'BasisSurface', INDETERMINATE), 'Dim', INDETERMINATE) return None def IfcPointListDim(pointlist): @@ -13726,32 +13736,32 @@ def IfcPointListDim(pointlist): return None def IfcSameAxis2Placement(ap1, ap2, epsilon): - return IfcSameDirection(express_getitem(getattr(ap1, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(ap2, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameDirection(express_getitem(getattr(ap1, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(ap2, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameCartesianPoint(getattr(ap1, 'Location', INDETERMINATE), getattr(ap2, 'Location', INDETERMINATE), epsilon) + return IfcSameDirection(express_getitem(express_getattr(ap1, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(ap2, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameDirection(express_getitem(express_getattr(ap1, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(ap2, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameCartesianPoint(express_getattr(ap1, 'Location', INDETERMINATE), express_getattr(ap2, 'Location', INDETERMINATE), epsilon) def IfcSameCartesianPoint(cp1, cp2, epsilon): - cp1x = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - cp1y = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp1x = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp1y = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) cp1z = 0 - cp2x = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - cp2y = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp2x = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp2y = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) cp2z = 0 - if sizeof(getattr(cp1, 'Coordinates', INDETERMINATE)) > 2: - cp1z = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - if sizeof(getattr(cp2, 'Coordinates', INDETERMINATE)) > 2: - cp2z = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(cp1, 'Coordinates', INDETERMINATE)) > 2: + cp1z = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(cp2, 'Coordinates', INDETERMINATE)) > 2: + cp2z = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return IfcSameValue(cp1x, cp2x, epsilon) and IfcSameValue(cp1y, cp2y, epsilon) and IfcSameValue(cp1z, cp2z, epsilon) def IfcSameDirection(dir1, dir2, epsilon): - dir1x = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - dir1y = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir1x = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir1y = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) dir1z = 0 - dir2x = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - dir2y = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir2x = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir2y = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) dir2z = 0 - if sizeof(getattr(dir1, 'DirectionRatios', INDETERMINATE)) > 2: - dir1z = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - if sizeof(getattr(dir2, 'DirectionRatios', INDETERMINATE)) > 2: - dir2z = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(dir1, 'DirectionRatios', INDETERMINATE)) > 2: + dir1z = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(dir2, 'DirectionRatios', INDETERMINATE)) > 2: + dir2z = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return IfcSameValue(dir1x, dir2x, epsilon) and IfcSameValue(dir1y, dir2y, epsilon) and IfcSameValue(dir1z, dir2z, epsilon) def IfcSameValidPrecision(epsilon1, epsilon2): @@ -13772,15 +13782,15 @@ def IfcScalarTimesVector(scalar, vec): return None else: if 'ifc4x3_add1.ifcvector' in typeof(vec): - v = getattr(vec, 'Orientation', INDETERMINATE) - mag = scalar * getattr(vec, 'Magnitude', INDETERMINATE) + v = express_getattr(vec, 'Orientation', INDETERMINATE) + mag = scalar * express_getattr(vec, 'Magnitude', INDETERMINATE) else: v = vec mag = scalar if mag < 0.0: - for i in range(1, sizeof(getattr(v, 'DirectionRatios', INDETERMINATE)) + 1): - temp = list(getattr(v, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + for i in range(1, sizeof(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + 1): + temp = list(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) v.DirectionRatios = temp mag = -mag result = IfcVector(Orientation=IfcNormalise(v), Magnitude=mag) @@ -13796,82 +13806,82 @@ def IfcSecondProjAxis(zaxis, xaxis, arg): temp = IfcScalarTimesVector(IfcDotProduct(v, xaxis), xaxis) yaxis = IfcVectorDifference(yaxis, temp) yaxis = IfcNormalise(yaxis) - return getattr(yaxis, 'Orientation', INDETERMINATE) + return express_getattr(yaxis, 'Orientation', INDETERMINATE) def IfcSegmentDim(segment): if 'ifc4x3_add1.ifccurvesegment' in typeof(segment): - return getattr(getattr(segment, 'ParentCurve', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(segment, 'ParentCurve', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_add1.ifccompositecurvesegment' in typeof(segment): - return getattr(getattr(segment, 'ParentCurve', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(segment, 'ParentCurve', INDETERMINATE), 'Dim', INDETERMINATE) return None def IfcShapeRepresentationTypes(reptype, items): count = 0 - if getattr(reptype, 'lower', INDETERMINATE)() == 'point': + if express_getattr(reptype, 'lower', INDETERMINATE)() == 'point': count = sizeof([temp for temp in items if 'ifc4x3_add1.ifcpoint' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'pointcloud': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'pointcloud': count = sizeof([temp for temp in items if 'ifc4x3_add1.ifccartesianpointlist3d' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve': count = sizeof([temp for temp in items if 'ifc4x3_add1.ifccurve' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve2d': - count = sizeof([temp for temp in items if 'ifc4x3_add1.ifccurve' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 2]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve3d': - count = sizeof([temp for temp in items if 'ifc4x3_add1.ifccurve' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 3]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'segment': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve2d': + count = sizeof([temp for temp in items if 'ifc4x3_add1.ifccurve' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 2]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve3d': + count = sizeof([temp for temp in items if 'ifc4x3_add1.ifccurve' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 3]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'segment': count = sizeof([temp for temp in items if 'ifc4x3_add1.ifcsegment' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface': count = sizeof([temp for temp in items if 'ifc4x3_add1.ifcsurface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface2d': - count = sizeof([temp for temp in items if 'ifc4x3_add1.ifcsurface' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 2]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface3d': - count = sizeof([temp for temp in items if 'ifc4x3_add1.ifcsurface' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 3]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedsurface': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface2d': + count = sizeof([temp for temp in items if 'ifc4x3_add1.ifcsurface' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 2]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface3d': + count = sizeof([temp for temp in items if 'ifc4x3_add1.ifcsurface' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 3]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedsurface': count = sizeof([temp for temp in items if 'ifc4x3_add1.ifcsectionedsurface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'fillarea': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'fillarea': count = sizeof([temp for temp in items if 'ifc4x3_add1.ifcannotationfillarea' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'text': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'text': count = sizeof([temp for temp in items if 'ifc4x3_add1.ifctextliteral' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsurface': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsurface': count = sizeof([temp for temp in items if 'ifc4x3_add1.ifcbsplinesurface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'annotation2d': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'annotation2d': count = sizeof([temp for temp in items if sizeof(typeof(temp) * ['ifc4x3_add1.ifcpoint', 'ifc4x3_add1.ifccurve', 'ifc4x3_add1.ifcgeometriccurveset', 'ifc4x3_add1.ifcannotationfillarea', 'ifc4x3_add1.ifctextliteral']) == 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'geometricset': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'geometricset': count = sizeof([temp for temp in items if 'ifc4x3_add1.ifcgeometricset' in typeof(temp) or 'ifc4x3_add1.ifcpoint' in typeof(temp) or 'ifc4x3_add1.ifccurve' in typeof(temp) or ('ifc4x3_add1.ifcsurface' in typeof(temp))]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'geometriccurveset': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'geometriccurveset': count = sizeof([temp for temp in items if 'ifc4x3_add1.ifcgeometriccurveset' in typeof(temp) or 'ifc4x3_add1.ifcgeometricset' in typeof(temp) or 'ifc4x3_add1.ifcpoint' in typeof(temp) or ('ifc4x3_add1.ifccurve' in typeof(temp))]) for i in range(1, hiindex(items) + 1): if 'ifc4x3_add1.ifcgeometricset' in typeof(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - if sizeof([temp for temp in getattr(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Elements', INDETERMINATE) if 'ifc4x3_add1.ifcsurface' in typeof(temp)]) > 0: + if sizeof([temp for temp in express_getattr(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Elements', INDETERMINATE) if 'ifc4x3_add1.ifcsurface' in typeof(temp)]) > 0: count = count - 1 - elif getattr(reptype, 'lower', INDETERMINATE)() == 'tessellation': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'tessellation': count = sizeof([temp for temp in items if 'ifc4x3_add1.ifctessellateditem' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surfaceorsolidmodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surfaceorsolidmodel': count = sizeof([temp for temp in items if sizeof(['ifc4x3_add1.ifctessellateditem', 'ifc4x3_add1.ifcshellbasedsurfacemodel', 'ifc4x3_add1.ifcfacebasedsurfacemodel', 'ifc4x3_add1.ifcsolidmodel'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surfacemodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surfacemodel': count = sizeof([temp for temp in items if sizeof(['ifc4x3_add1.ifctessellateditem', 'ifc4x3_add1.ifcshellbasedsurfacemodel', 'ifc4x3_add1.ifcfacebasedsurfacemodel'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'solidmodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'solidmodel': count = sizeof([temp for temp in items if 'ifc4x3_add1.ifcsolidmodel' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'sweptsolid': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'sweptsolid': count = sizeof([temp for temp in items if sizeof(['ifc4x3_add1.ifcextrudedareasolid', 'ifc4x3_add1.ifcrevolvedareasolid'] * typeof(temp)) >= 1 and sizeof(['ifc4x3_add1.ifcextrudedareasolidtapered', 'ifc4x3_add1.ifcrevolvedareasolidtapered'] * typeof(temp)) == 0]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsweptsolid': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsweptsolid': count = sizeof([temp for temp in items if sizeof(['ifc4x3_add1.ifcsweptareasolid', 'ifc4x3_add1.ifcsweptdisksolid', 'ifc4x3_add1.ifcsectionedsolidhorizontal'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'csg': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'csg': count = sizeof([temp for temp in items if sizeof(['ifc4x3_add1.ifcbooleanresult', 'ifc4x3_add1.ifccsgprimitive3d', 'ifc4x3_add1.ifccsgsolid'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'clipping': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'clipping': count = sizeof([temp for temp in items if sizeof(['ifc4x3_add1.ifccsgsolid', 'ifc4x3_add1.ifcbooleanclippingresult'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'brep': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'brep': count = sizeof([temp for temp in items if 'ifc4x3_add1.ifcfacetedbrep' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedbrep': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedbrep': count = sizeof([temp for temp in items if 'ifc4x3_add1.ifcmanifoldsolidbrep' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'boundingbox': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'boundingbox': count = sizeof([temp for temp in items if 'ifc4x3_add1.ifcboundingbox' in typeof(temp)]) if sizeof(items) > 1: count = 0 - elif getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedspine': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedspine': count = sizeof([temp for temp in items if 'ifc4x3_add1.ifcsectionedspine' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'lightsource': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'lightsource': count = sizeof([temp for temp in items if 'ifc4x3_add1.ifclightsource' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'mappedrepresentation': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'mappedrepresentation': count = sizeof([temp for temp in items if 'ifc4x3_add1.ifcmappeditem' in typeof(temp)]) else: return None @@ -13879,9 +13889,9 @@ def IfcShapeRepresentationTypes(reptype, items): def IfcSurfaceWeightsPositive(b): result = True - weights = getattr(b, 'Weights', INDETERMINATE) - for i in range(0, getattr(b, 'UUpper', INDETERMINATE) + 1): - for j in range(0, getattr(b, 'VUpper', INDETERMINATE) + 1): + weights = express_getattr(b, 'Weights', INDETERMINATE) + for i in range(0, express_getattr(b, 'UUpper', INDETERMINATE) + 1): + for j in range(0, express_getattr(b, 'VUpper', INDETERMINATE) + 1): if express_getitem(express_getitem(weights, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), j - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: result = False return result @@ -13891,28 +13901,28 @@ def IfcTaperedSweptAreaProfiles(startarea, endarea): result = False if 'ifc4x3_add1.ifcparameterizedprofiledef' in typeof(startarea): if 'ifc4x3_add1.ifcderivedprofiledef' in typeof(endarea): - result = startarea == getattr(endarea, 'ParentProfile', INDETERMINATE) + result = startarea == express_getattr(endarea, 'ParentProfile', INDETERMINATE) else: result = typeof(startarea) == typeof(endarea) elif 'ifc4x3_add1.ifcderivedprofiledef' in typeof(endarea): - result = startarea == getattr(endarea, 'ParentProfile', INDETERMINATE) + result = startarea == express_getattr(endarea, 'ParentProfile', INDETERMINATE) else: result = False return result def IfcTopologyRepresentationTypes(reptype, items): count = 0 - if getattr(reptype, 'lower', INDETERMINATE)() == 'vertex': + if express_getattr(reptype, 'lower', INDETERMINATE)() == 'vertex': count = sizeof([temp for temp in items if 'ifc4x3_add1.ifcvertex' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'edge': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'edge': count = sizeof([temp for temp in items if 'ifc4x3_add1.ifcedge' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'path': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'path': count = sizeof([temp for temp in items if 'ifc4x3_add1.ifcpath' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'face': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'face': count = sizeof([temp for temp in items if 'ifc4x3_add1.ifcface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'shell': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'shell': count = sizeof([temp for temp in items if 'ifc4x3_add1.ifcopenshell' in typeof(temp) or 'ifc4x3_add1.ifcclosedshell' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'undefined': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'undefined': return True else: return None @@ -13923,7 +13933,7 @@ def IfcUniqueDefinitionNames(relations): if sizeof(relations) == 0: return True for i in range(1, hiindex(relations) + 1): - definition = getattr(express_getitem(relations, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingPropertyDefinition', INDETERMINATE) + definition = express_getattr(express_getitem(relations, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingPropertyDefinition', INDETERMINATE) if 'ifc4x3_add1.ifcpropertysetdefinition' in typeof(definition): properties = properties + definition elif 'ifc4x3_add1.ifcpropertysetdefinitionset' in typeof(definition): @@ -13936,7 +13946,7 @@ def IfcUniqueDefinitionNames(relations): def IfcUniquePropertyName(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcUniquePropertySetNames(properties): @@ -13944,7 +13954,7 @@ def IfcUniquePropertySetNames(properties): unnamed = 0 for i in range(1, hiindex(properties) + 1): if 'ifc4x3_add1.ifcpropertyset' in typeof(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) else: unnamed = unnamed + 1 return sizeof(names) + unnamed == sizeof(properties) @@ -13952,41 +13962,41 @@ def IfcUniquePropertySetNames(properties): def IfcUniquePropertyTemplateNames(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcUniqueQuantityNames(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcVectorDifference(arg1, arg2): - if (not exists(arg1) or not exists(arg2)) or getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + if (not exists(arg1) or not exists(arg2)) or express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): return None else: if 'ifc4x3_add1.ifcvector' in typeof(arg1): - mag1 = getattr(arg1, 'Magnitude', INDETERMINATE) - vec1 = getattr(arg1, 'Orientation', INDETERMINATE) + mag1 = express_getattr(arg1, 'Magnitude', INDETERMINATE) + vec1 = express_getattr(arg1, 'Orientation', INDETERMINATE) else: mag1 = 1.0 vec1 = arg1 if 'ifc4x3_add1.ifcvector' in typeof(arg2): - mag2 = getattr(arg2, 'Magnitude', INDETERMINATE) - vec2 = getattr(arg2, 'Orientation', INDETERMINATE) + mag2 = express_getattr(arg2, 'Magnitude', INDETERMINATE) + vec2 = express_getattr(arg2, 'Orientation', INDETERMINATE) else: mag2 = 1.0 vec2 = arg2 vec1 = IfcNormalise(vec1) vec2 = IfcNormalise(vec2) - ndim = sizeof(getattr(vec1, 'DirectionRatios', INDETERMINATE)) + ndim = sizeof(express_getattr(vec1, 'DirectionRatios', INDETERMINATE)) mag = 0.0 res = IfcDirection(DirectionRatios=[0.0] * ndim) for i in range(1, ndim + 1): - temp = list(getattr(res, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - mag2 * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(res, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - mag2 * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) res.DirectionRatios = temp - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: @@ -13994,31 +14004,31 @@ def IfcVectorDifference(arg1, arg2): return result def IfcVectorSum(arg1, arg2): - if (not exists(arg1) or not exists(arg2)) or getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + if (not exists(arg1) or not exists(arg2)) or express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): return None else: if 'ifc4x3_add1.ifcvector' in typeof(arg1): - mag1 = getattr(arg1, 'Magnitude', INDETERMINATE) - vec1 = getattr(arg1, 'Orientation', INDETERMINATE) + mag1 = express_getattr(arg1, 'Magnitude', INDETERMINATE) + vec1 = express_getattr(arg1, 'Orientation', INDETERMINATE) else: mag1 = 1.0 vec1 = arg1 if 'ifc4x3_add1.ifcvector' in typeof(arg2): - mag2 = getattr(arg2, 'Magnitude', INDETERMINATE) - vec2 = getattr(arg2, 'Orientation', INDETERMINATE) + mag2 = express_getattr(arg2, 'Magnitude', INDETERMINATE) + vec2 = express_getattr(arg2, 'Orientation', INDETERMINATE) else: mag2 = 1.0 vec2 = arg2 vec1 = IfcNormalise(vec1) vec2 = IfcNormalise(vec2) - ndim = sizeof(getattr(vec1, 'DirectionRatios', INDETERMINATE)) + ndim = sizeof(express_getattr(vec1, 'DirectionRatios', INDETERMINATE)) mag = 0.0 res = IfcDirection(DirectionRatios=[0.0] * ndim) for i in range(1, ndim + 1): - temp = list(getattr(res, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag2 * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(res, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag2 * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) res.DirectionRatios = temp - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD2.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD2.py index 2b09aad1cf..5eebf0d4d4 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD2.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD2.py @@ -1,5 +1,8 @@ import ifcopenshell +def is_indeterminate(v): + return v is None or type(v).__name__ == 'indeterminate_type' + def exists(v): if callable(v): try: @@ -7,10 +10,10 @@ def exists(v): except IndexError as e: return False else: - return v is not None + return not is_indeterminate(v) def nvl(v, default): - return v if v is not None else default + return v if not is_indeterminate(v) else default def is_entity(inst): if isinstance(inst, ifcopenshell.entity_instance): @@ -22,13 +25,13 @@ def is_entity(inst): def express_len(v): if isinstance(v, ifcopenshell.entity_instance) and (not is_entity(v)): v = v[0] - elif v is None or v is INDETERMINATE: + elif is_indeterminate(v): return INDETERMINATE return len(v) old_range = range def range(*args): - if INDETERMINATE in args: + if any(map(is_indeterminate, args)): return yield from old_range(*args) sizeof = express_len @@ -80,6 +83,13 @@ def express_getitem(aggr, idx, default): return aggr[idx] except IndexError as e: return None + +def express_getattr(aggr, name, default): + v = getattr(aggr, name, default) + if v is None: + return default + else: + return v EXPRESS_ONE_BASED_INDEXING = 1 def typeof(inst): @@ -140,2367 +150,2367 @@ INDETERMINATE = indeterminate_type() class enum_namespace: def __getattr__(self, k): - return getattr(k, 'upper', INDETERMINATE)() + return express_getattr(k, 'upper', INDETERMINATE)() IfcActionRequestTypeEnum = enum_namespace() -email = getattr(IfcActionRequestTypeEnum, 'EMAIL', INDETERMINATE) -fax = getattr(IfcActionRequestTypeEnum, 'FAX', INDETERMINATE) -phone = getattr(IfcActionRequestTypeEnum, 'PHONE', INDETERMINATE) -post = getattr(IfcActionRequestTypeEnum, 'POST', INDETERMINATE) -verbal = getattr(IfcActionRequestTypeEnum, 'VERBAL', INDETERMINATE) -userdefined = getattr(IfcActionRequestTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionRequestTypeEnum, 'NOTDEFINED', INDETERMINATE) +email = IfcActionRequestTypeEnum.EMAIL +fax = IfcActionRequestTypeEnum.FAX +phone = IfcActionRequestTypeEnum.PHONE +post = IfcActionRequestTypeEnum.POST +verbal = IfcActionRequestTypeEnum.VERBAL +userdefined = IfcActionRequestTypeEnum.USERDEFINED +notdefined = IfcActionRequestTypeEnum.NOTDEFINED IfcActionSourceTypeEnum = enum_namespace() -brakes = getattr(IfcActionSourceTypeEnum, 'BRAKES', INDETERMINATE) -buoyancy = getattr(IfcActionSourceTypeEnum, 'BUOYANCY', INDETERMINATE) -completion_g1 = getattr(IfcActionSourceTypeEnum, 'COMPLETION_G1', INDETERMINATE) -creep = getattr(IfcActionSourceTypeEnum, 'CREEP', INDETERMINATE) -current = getattr(IfcActionSourceTypeEnum, 'CURRENT', INDETERMINATE) -dead_load_g = getattr(IfcActionSourceTypeEnum, 'DEAD_LOAD_G', INDETERMINATE) -earthquake_e = getattr(IfcActionSourceTypeEnum, 'EARTHQUAKE_E', INDETERMINATE) -erection = getattr(IfcActionSourceTypeEnum, 'ERECTION', INDETERMINATE) -fire = getattr(IfcActionSourceTypeEnum, 'FIRE', INDETERMINATE) -ice = getattr(IfcActionSourceTypeEnum, 'ICE', INDETERMINATE) -impact = getattr(IfcActionSourceTypeEnum, 'IMPACT', INDETERMINATE) -impulse = getattr(IfcActionSourceTypeEnum, 'IMPULSE', INDETERMINATE) -lack_of_fit = getattr(IfcActionSourceTypeEnum, 'LACK_OF_FIT', INDETERMINATE) -live_load_q = getattr(IfcActionSourceTypeEnum, 'LIVE_LOAD_Q', INDETERMINATE) -prestressing_p = getattr(IfcActionSourceTypeEnum, 'PRESTRESSING_P', INDETERMINATE) -propping = getattr(IfcActionSourceTypeEnum, 'PROPPING', INDETERMINATE) -rain = getattr(IfcActionSourceTypeEnum, 'RAIN', INDETERMINATE) -settlement_u = getattr(IfcActionSourceTypeEnum, 'SETTLEMENT_U', INDETERMINATE) -shrinkage = getattr(IfcActionSourceTypeEnum, 'SHRINKAGE', INDETERMINATE) -snow_s = getattr(IfcActionSourceTypeEnum, 'SNOW_S', INDETERMINATE) -system_imperfection = getattr(IfcActionSourceTypeEnum, 'SYSTEM_IMPERFECTION', INDETERMINATE) -temperature_t = getattr(IfcActionSourceTypeEnum, 'TEMPERATURE_T', INDETERMINATE) -transport = getattr(IfcActionSourceTypeEnum, 'TRANSPORT', INDETERMINATE) -wave = getattr(IfcActionSourceTypeEnum, 'WAVE', INDETERMINATE) -wind_w = getattr(IfcActionSourceTypeEnum, 'WIND_W', INDETERMINATE) -userdefined = getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionSourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +brakes = IfcActionSourceTypeEnum.BRAKES +buoyancy = IfcActionSourceTypeEnum.BUOYANCY +completion_g1 = IfcActionSourceTypeEnum.COMPLETION_G1 +creep = IfcActionSourceTypeEnum.CREEP +current = IfcActionSourceTypeEnum.CURRENT +dead_load_g = IfcActionSourceTypeEnum.DEAD_LOAD_G +earthquake_e = IfcActionSourceTypeEnum.EARTHQUAKE_E +erection = IfcActionSourceTypeEnum.ERECTION +fire = IfcActionSourceTypeEnum.FIRE +ice = IfcActionSourceTypeEnum.ICE +impact = IfcActionSourceTypeEnum.IMPACT +impulse = IfcActionSourceTypeEnum.IMPULSE +lack_of_fit = IfcActionSourceTypeEnum.LACK_OF_FIT +live_load_q = IfcActionSourceTypeEnum.LIVE_LOAD_Q +prestressing_p = IfcActionSourceTypeEnum.PRESTRESSING_P +propping = IfcActionSourceTypeEnum.PROPPING +rain = IfcActionSourceTypeEnum.RAIN +settlement_u = IfcActionSourceTypeEnum.SETTLEMENT_U +shrinkage = IfcActionSourceTypeEnum.SHRINKAGE +snow_s = IfcActionSourceTypeEnum.SNOW_S +system_imperfection = IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION +temperature_t = IfcActionSourceTypeEnum.TEMPERATURE_T +transport = IfcActionSourceTypeEnum.TRANSPORT +wave = IfcActionSourceTypeEnum.WAVE +wind_w = IfcActionSourceTypeEnum.WIND_W +userdefined = IfcActionSourceTypeEnum.USERDEFINED +notdefined = IfcActionSourceTypeEnum.NOTDEFINED IfcActionTypeEnum = enum_namespace() -extraordinary_a = getattr(IfcActionTypeEnum, 'EXTRAORDINARY_A', INDETERMINATE) -permanent_g = getattr(IfcActionTypeEnum, 'PERMANENT_G', INDETERMINATE) -variable_q = getattr(IfcActionTypeEnum, 'VARIABLE_Q', INDETERMINATE) -userdefined = getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionTypeEnum, 'NOTDEFINED', INDETERMINATE) +extraordinary_a = IfcActionTypeEnum.EXTRAORDINARY_A +permanent_g = IfcActionTypeEnum.PERMANENT_G +variable_q = IfcActionTypeEnum.VARIABLE_Q +userdefined = IfcActionTypeEnum.USERDEFINED +notdefined = IfcActionTypeEnum.NOTDEFINED IfcActuatorTypeEnum = enum_namespace() -electricactuator = getattr(IfcActuatorTypeEnum, 'ELECTRICACTUATOR', INDETERMINATE) -handoperatedactuator = getattr(IfcActuatorTypeEnum, 'HANDOPERATEDACTUATOR', INDETERMINATE) -hydraulicactuator = getattr(IfcActuatorTypeEnum, 'HYDRAULICACTUATOR', INDETERMINATE) -pneumaticactuator = getattr(IfcActuatorTypeEnum, 'PNEUMATICACTUATOR', INDETERMINATE) -thermostaticactuator = getattr(IfcActuatorTypeEnum, 'THERMOSTATICACTUATOR', INDETERMINATE) -userdefined = getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActuatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +electricactuator = IfcActuatorTypeEnum.ELECTRICACTUATOR +handoperatedactuator = IfcActuatorTypeEnum.HANDOPERATEDACTUATOR +hydraulicactuator = IfcActuatorTypeEnum.HYDRAULICACTUATOR +pneumaticactuator = IfcActuatorTypeEnum.PNEUMATICACTUATOR +thermostaticactuator = IfcActuatorTypeEnum.THERMOSTATICACTUATOR +userdefined = IfcActuatorTypeEnum.USERDEFINED +notdefined = IfcActuatorTypeEnum.NOTDEFINED IfcAddressTypeEnum = enum_namespace() -distributionpoint = getattr(IfcAddressTypeEnum, 'DISTRIBUTIONPOINT', INDETERMINATE) -home = getattr(IfcAddressTypeEnum, 'HOME', INDETERMINATE) -office = getattr(IfcAddressTypeEnum, 'OFFICE', INDETERMINATE) -site = getattr(IfcAddressTypeEnum, 'SITE', INDETERMINATE) -userdefined = getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) +distributionpoint = IfcAddressTypeEnum.DISTRIBUTIONPOINT +home = IfcAddressTypeEnum.HOME +office = IfcAddressTypeEnum.OFFICE +site = IfcAddressTypeEnum.SITE +userdefined = IfcAddressTypeEnum.USERDEFINED IfcAirTerminalBoxTypeEnum = enum_namespace() -constantflow = getattr(IfcAirTerminalBoxTypeEnum, 'CONSTANTFLOW', INDETERMINATE) -variableflowpressuredependant = getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREDEPENDANT', INDETERMINATE) -variableflowpressureindependant = getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREINDEPENDANT', INDETERMINATE) -userdefined = getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirTerminalBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +constantflow = IfcAirTerminalBoxTypeEnum.CONSTANTFLOW +variableflowpressuredependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT +variableflowpressureindependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT +userdefined = IfcAirTerminalBoxTypeEnum.USERDEFINED +notdefined = IfcAirTerminalBoxTypeEnum.NOTDEFINED IfcAirTerminalTypeEnum = enum_namespace() -diffuser = getattr(IfcAirTerminalTypeEnum, 'DIFFUSER', INDETERMINATE) -grille = getattr(IfcAirTerminalTypeEnum, 'GRILLE', INDETERMINATE) -louvre = getattr(IfcAirTerminalTypeEnum, 'LOUVRE', INDETERMINATE) -register = getattr(IfcAirTerminalTypeEnum, 'REGISTER', INDETERMINATE) -userdefined = getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +diffuser = IfcAirTerminalTypeEnum.DIFFUSER +grille = IfcAirTerminalTypeEnum.GRILLE +louvre = IfcAirTerminalTypeEnum.LOUVRE +register = IfcAirTerminalTypeEnum.REGISTER +userdefined = IfcAirTerminalTypeEnum.USERDEFINED +notdefined = IfcAirTerminalTypeEnum.NOTDEFINED IfcAirToAirHeatRecoveryTypeEnum = enum_namespace() -fixedplatecounterflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECOUNTERFLOWEXCHANGER', INDETERMINATE) -fixedplatecrossflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECROSSFLOWEXCHANGER', INDETERMINATE) -fixedplateparallelflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATEPARALLELFLOWEXCHANGER', INDETERMINATE) -heatpipe = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'HEATPIPE', INDETERMINATE) -rotarywheel = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'ROTARYWHEEL', INDETERMINATE) -runaroundcoilloop = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'RUNAROUNDCOILLOOP', INDETERMINATE) -thermosiphoncoiltypeheatexchangers = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONCOILTYPEHEATEXCHANGERS', INDETERMINATE) -thermosiphonsealedtubeheatexchangers = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONSEALEDTUBEHEATEXCHANGERS', INDETERMINATE) -twintowerenthalpyrecoveryloops = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'TWINTOWERENTHALPYRECOVERYLOOPS', INDETERMINATE) -userdefined = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'NOTDEFINED', INDETERMINATE) +fixedplatecounterflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER +fixedplatecrossflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER +fixedplateparallelflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER +heatpipe = IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE +rotarywheel = IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL +runaroundcoilloop = IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP +thermosiphoncoiltypeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS +thermosiphonsealedtubeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS +twintowerenthalpyrecoveryloops = IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS +userdefined = IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED +notdefined = IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED IfcAlarmTypeEnum = enum_namespace() -bell = getattr(IfcAlarmTypeEnum, 'BELL', INDETERMINATE) -breakglassbutton = getattr(IfcAlarmTypeEnum, 'BREAKGLASSBUTTON', INDETERMINATE) -light = getattr(IfcAlarmTypeEnum, 'LIGHT', INDETERMINATE) -manualpullbox = getattr(IfcAlarmTypeEnum, 'MANUALPULLBOX', INDETERMINATE) -railwaycrocodile = getattr(IfcAlarmTypeEnum, 'RAILWAYCROCODILE', INDETERMINATE) -railwaydetonator = getattr(IfcAlarmTypeEnum, 'RAILWAYDETONATOR', INDETERMINATE) -siren = getattr(IfcAlarmTypeEnum, 'SIREN', INDETERMINATE) -whistle = getattr(IfcAlarmTypeEnum, 'WHISTLE', INDETERMINATE) -userdefined = getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAlarmTypeEnum, 'NOTDEFINED', INDETERMINATE) +bell = IfcAlarmTypeEnum.BELL +breakglassbutton = IfcAlarmTypeEnum.BREAKGLASSBUTTON +light = IfcAlarmTypeEnum.LIGHT +manualpullbox = IfcAlarmTypeEnum.MANUALPULLBOX +railwaycrocodile = IfcAlarmTypeEnum.RAILWAYCROCODILE +railwaydetonator = IfcAlarmTypeEnum.RAILWAYDETONATOR +siren = IfcAlarmTypeEnum.SIREN +whistle = IfcAlarmTypeEnum.WHISTLE +userdefined = IfcAlarmTypeEnum.USERDEFINED +notdefined = IfcAlarmTypeEnum.NOTDEFINED IfcAlignmentCantSegmentTypeEnum = enum_namespace() -blosscurve = getattr(IfcAlignmentCantSegmentTypeEnum, 'BLOSSCURVE', INDETERMINATE) -constantcant = getattr(IfcAlignmentCantSegmentTypeEnum, 'CONSTANTCANT', INDETERMINATE) -cosinecurve = getattr(IfcAlignmentCantSegmentTypeEnum, 'COSINECURVE', INDETERMINATE) -helmertcurve = getattr(IfcAlignmentCantSegmentTypeEnum, 'HELMERTCURVE', INDETERMINATE) -lineartransition = getattr(IfcAlignmentCantSegmentTypeEnum, 'LINEARTRANSITION', INDETERMINATE) -sinecurve = getattr(IfcAlignmentCantSegmentTypeEnum, 'SINECURVE', INDETERMINATE) -viennesebend = getattr(IfcAlignmentCantSegmentTypeEnum, 'VIENNESEBEND', INDETERMINATE) +blosscurve = IfcAlignmentCantSegmentTypeEnum.BLOSSCURVE +constantcant = IfcAlignmentCantSegmentTypeEnum.CONSTANTCANT +cosinecurve = IfcAlignmentCantSegmentTypeEnum.COSINECURVE +helmertcurve = IfcAlignmentCantSegmentTypeEnum.HELMERTCURVE +lineartransition = IfcAlignmentCantSegmentTypeEnum.LINEARTRANSITION +sinecurve = IfcAlignmentCantSegmentTypeEnum.SINECURVE +viennesebend = IfcAlignmentCantSegmentTypeEnum.VIENNESEBEND IfcAlignmentHorizontalSegmentTypeEnum = enum_namespace() -blosscurve = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'BLOSSCURVE', INDETERMINATE) -circulararc = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CIRCULARARC', INDETERMINATE) -clothoid = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CLOTHOID', INDETERMINATE) -cosinecurve = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'COSINECURVE', INDETERMINATE) -cubic = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CUBIC', INDETERMINATE) -helmertcurve = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'HELMERTCURVE', INDETERMINATE) -line = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'LINE', INDETERMINATE) -sinecurve = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'SINECURVE', INDETERMINATE) -viennesebend = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'VIENNESEBEND', INDETERMINATE) +blosscurve = IfcAlignmentHorizontalSegmentTypeEnum.BLOSSCURVE +circulararc = IfcAlignmentHorizontalSegmentTypeEnum.CIRCULARARC +clothoid = IfcAlignmentHorizontalSegmentTypeEnum.CLOTHOID +cosinecurve = IfcAlignmentHorizontalSegmentTypeEnum.COSINECURVE +cubic = IfcAlignmentHorizontalSegmentTypeEnum.CUBIC +helmertcurve = IfcAlignmentHorizontalSegmentTypeEnum.HELMERTCURVE +line = IfcAlignmentHorizontalSegmentTypeEnum.LINE +sinecurve = IfcAlignmentHorizontalSegmentTypeEnum.SINECURVE +viennesebend = IfcAlignmentHorizontalSegmentTypeEnum.VIENNESEBEND IfcAlignmentTypeEnum = enum_namespace() -userdefined = getattr(IfcAlignmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAlignmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcAlignmentTypeEnum.USERDEFINED +notdefined = IfcAlignmentTypeEnum.NOTDEFINED IfcAlignmentVerticalSegmentTypeEnum = enum_namespace() -circulararc = getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CIRCULARARC', INDETERMINATE) -clothoid = getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CLOTHOID', INDETERMINATE) -constantgradient = getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CONSTANTGRADIENT', INDETERMINATE) -parabolicarc = getattr(IfcAlignmentVerticalSegmentTypeEnum, 'PARABOLICARC', INDETERMINATE) +circulararc = IfcAlignmentVerticalSegmentTypeEnum.CIRCULARARC +clothoid = IfcAlignmentVerticalSegmentTypeEnum.CLOTHOID +constantgradient = IfcAlignmentVerticalSegmentTypeEnum.CONSTANTGRADIENT +parabolicarc = IfcAlignmentVerticalSegmentTypeEnum.PARABOLICARC IfcAnalysisModelTypeEnum = enum_namespace() -in_plane_loading_2d = getattr(IfcAnalysisModelTypeEnum, 'IN_PLANE_LOADING_2D', INDETERMINATE) -loading_3d = getattr(IfcAnalysisModelTypeEnum, 'LOADING_3D', INDETERMINATE) -out_plane_loading_2d = getattr(IfcAnalysisModelTypeEnum, 'OUT_PLANE_LOADING_2D', INDETERMINATE) -userdefined = getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnalysisModelTypeEnum, 'NOTDEFINED', INDETERMINATE) +in_plane_loading_2d = IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D +loading_3d = IfcAnalysisModelTypeEnum.LOADING_3D +out_plane_loading_2d = IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D +userdefined = IfcAnalysisModelTypeEnum.USERDEFINED +notdefined = IfcAnalysisModelTypeEnum.NOTDEFINED IfcAnalysisTheoryTypeEnum = enum_namespace() -first_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'FIRST_ORDER_THEORY', INDETERMINATE) -full_nonlinear_theory = getattr(IfcAnalysisTheoryTypeEnum, 'FULL_NONLINEAR_THEORY', INDETERMINATE) -second_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'SECOND_ORDER_THEORY', INDETERMINATE) -third_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'THIRD_ORDER_THEORY', INDETERMINATE) -userdefined = getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnalysisTheoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +first_order_theory = IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY +full_nonlinear_theory = IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY +second_order_theory = IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY +third_order_theory = IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY +userdefined = IfcAnalysisTheoryTypeEnum.USERDEFINED +notdefined = IfcAnalysisTheoryTypeEnum.NOTDEFINED IfcAnnotationTypeEnum = enum_namespace() -contourline = getattr(IfcAnnotationTypeEnum, 'CONTOURLINE', INDETERMINATE) -dimension = getattr(IfcAnnotationTypeEnum, 'DIMENSION', INDETERMINATE) -isobar = getattr(IfcAnnotationTypeEnum, 'ISOBAR', INDETERMINATE) -isolux = getattr(IfcAnnotationTypeEnum, 'ISOLUX', INDETERMINATE) -isotherm = getattr(IfcAnnotationTypeEnum, 'ISOTHERM', INDETERMINATE) -leader = getattr(IfcAnnotationTypeEnum, 'LEADER', INDETERMINATE) -survey = getattr(IfcAnnotationTypeEnum, 'SURVEY', INDETERMINATE) -symbol = getattr(IfcAnnotationTypeEnum, 'SYMBOL', INDETERMINATE) -text = getattr(IfcAnnotationTypeEnum, 'TEXT', INDETERMINATE) -userdefined = getattr(IfcAnnotationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnnotationTypeEnum, 'NOTDEFINED', INDETERMINATE) +contourline = IfcAnnotationTypeEnum.CONTOURLINE +dimension = IfcAnnotationTypeEnum.DIMENSION +isobar = IfcAnnotationTypeEnum.ISOBAR +isolux = IfcAnnotationTypeEnum.ISOLUX +isotherm = IfcAnnotationTypeEnum.ISOTHERM +leader = IfcAnnotationTypeEnum.LEADER +survey = IfcAnnotationTypeEnum.SURVEY +symbol = IfcAnnotationTypeEnum.SYMBOL +text = IfcAnnotationTypeEnum.TEXT +userdefined = IfcAnnotationTypeEnum.USERDEFINED +notdefined = IfcAnnotationTypeEnum.NOTDEFINED IfcArithmeticOperatorEnum = enum_namespace() -add = getattr(IfcArithmeticOperatorEnum, 'ADD', INDETERMINATE) -divide = getattr(IfcArithmeticOperatorEnum, 'DIVIDE', INDETERMINATE) -modulo = getattr(IfcArithmeticOperatorEnum, 'MODULO', INDETERMINATE) -multiply = getattr(IfcArithmeticOperatorEnum, 'MULTIPLY', INDETERMINATE) -subtract = getattr(IfcArithmeticOperatorEnum, 'SUBTRACT', INDETERMINATE) +add = IfcArithmeticOperatorEnum.ADD +divide = IfcArithmeticOperatorEnum.DIVIDE +modulo = IfcArithmeticOperatorEnum.MODULO +multiply = IfcArithmeticOperatorEnum.MULTIPLY +subtract = IfcArithmeticOperatorEnum.SUBTRACT IfcAssemblyPlaceEnum = enum_namespace() -factory = getattr(IfcAssemblyPlaceEnum, 'FACTORY', INDETERMINATE) -site = getattr(IfcAssemblyPlaceEnum, 'SITE', INDETERMINATE) -notdefined = getattr(IfcAssemblyPlaceEnum, 'NOTDEFINED', INDETERMINATE) +factory = IfcAssemblyPlaceEnum.FACTORY +site = IfcAssemblyPlaceEnum.SITE +notdefined = IfcAssemblyPlaceEnum.NOTDEFINED IfcAudioVisualApplianceTypeEnum = enum_namespace() -amplifier = getattr(IfcAudioVisualApplianceTypeEnum, 'AMPLIFIER', INDETERMINATE) -camera = getattr(IfcAudioVisualApplianceTypeEnum, 'CAMERA', INDETERMINATE) -communicationterminal = getattr(IfcAudioVisualApplianceTypeEnum, 'COMMUNICATIONTERMINAL', INDETERMINATE) -display = getattr(IfcAudioVisualApplianceTypeEnum, 'DISPLAY', INDETERMINATE) -microphone = getattr(IfcAudioVisualApplianceTypeEnum, 'MICROPHONE', INDETERMINATE) -player = getattr(IfcAudioVisualApplianceTypeEnum, 'PLAYER', INDETERMINATE) -projector = getattr(IfcAudioVisualApplianceTypeEnum, 'PROJECTOR', INDETERMINATE) -receiver = getattr(IfcAudioVisualApplianceTypeEnum, 'RECEIVER', INDETERMINATE) -recordingequipment = getattr(IfcAudioVisualApplianceTypeEnum, 'RECORDINGEQUIPMENT', INDETERMINATE) -speaker = getattr(IfcAudioVisualApplianceTypeEnum, 'SPEAKER', INDETERMINATE) -switcher = getattr(IfcAudioVisualApplianceTypeEnum, 'SWITCHER', INDETERMINATE) -telephone = getattr(IfcAudioVisualApplianceTypeEnum, 'TELEPHONE', INDETERMINATE) -tuner = getattr(IfcAudioVisualApplianceTypeEnum, 'TUNER', INDETERMINATE) -userdefined = getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAudioVisualApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +amplifier = IfcAudioVisualApplianceTypeEnum.AMPLIFIER +camera = IfcAudioVisualApplianceTypeEnum.CAMERA +communicationterminal = IfcAudioVisualApplianceTypeEnum.COMMUNICATIONTERMINAL +display = IfcAudioVisualApplianceTypeEnum.DISPLAY +microphone = IfcAudioVisualApplianceTypeEnum.MICROPHONE +player = IfcAudioVisualApplianceTypeEnum.PLAYER +projector = IfcAudioVisualApplianceTypeEnum.PROJECTOR +receiver = IfcAudioVisualApplianceTypeEnum.RECEIVER +recordingequipment = IfcAudioVisualApplianceTypeEnum.RECORDINGEQUIPMENT +speaker = IfcAudioVisualApplianceTypeEnum.SPEAKER +switcher = IfcAudioVisualApplianceTypeEnum.SWITCHER +telephone = IfcAudioVisualApplianceTypeEnum.TELEPHONE +tuner = IfcAudioVisualApplianceTypeEnum.TUNER +userdefined = IfcAudioVisualApplianceTypeEnum.USERDEFINED +notdefined = IfcAudioVisualApplianceTypeEnum.NOTDEFINED IfcBSplineCurveForm = enum_namespace() -circular_arc = getattr(IfcBSplineCurveForm, 'CIRCULAR_ARC', INDETERMINATE) -elliptic_arc = getattr(IfcBSplineCurveForm, 'ELLIPTIC_ARC', INDETERMINATE) -hyperbolic_arc = getattr(IfcBSplineCurveForm, 'HYPERBOLIC_ARC', INDETERMINATE) -parabolic_arc = getattr(IfcBSplineCurveForm, 'PARABOLIC_ARC', INDETERMINATE) -polyline_form = getattr(IfcBSplineCurveForm, 'POLYLINE_FORM', INDETERMINATE) -unspecified = getattr(IfcBSplineCurveForm, 'UNSPECIFIED', INDETERMINATE) +circular_arc = IfcBSplineCurveForm.CIRCULAR_ARC +elliptic_arc = IfcBSplineCurveForm.ELLIPTIC_ARC +hyperbolic_arc = IfcBSplineCurveForm.HYPERBOLIC_ARC +parabolic_arc = IfcBSplineCurveForm.PARABOLIC_ARC +polyline_form = IfcBSplineCurveForm.POLYLINE_FORM +unspecified = IfcBSplineCurveForm.UNSPECIFIED IfcBSplineSurfaceForm = enum_namespace() -conical_surf = getattr(IfcBSplineSurfaceForm, 'CONICAL_SURF', INDETERMINATE) -cylindrical_surf = getattr(IfcBSplineSurfaceForm, 'CYLINDRICAL_SURF', INDETERMINATE) -generalised_cone = getattr(IfcBSplineSurfaceForm, 'GENERALISED_CONE', INDETERMINATE) -plane_surf = getattr(IfcBSplineSurfaceForm, 'PLANE_SURF', INDETERMINATE) -quadric_surf = getattr(IfcBSplineSurfaceForm, 'QUADRIC_SURF', INDETERMINATE) -ruled_surf = getattr(IfcBSplineSurfaceForm, 'RULED_SURF', INDETERMINATE) -spherical_surf = getattr(IfcBSplineSurfaceForm, 'SPHERICAL_SURF', INDETERMINATE) -surf_of_linear_extrusion = getattr(IfcBSplineSurfaceForm, 'SURF_OF_LINEAR_EXTRUSION', INDETERMINATE) -surf_of_revolution = getattr(IfcBSplineSurfaceForm, 'SURF_OF_REVOLUTION', INDETERMINATE) -toroidal_surf = getattr(IfcBSplineSurfaceForm, 'TOROIDAL_SURF', INDETERMINATE) -unspecified = getattr(IfcBSplineSurfaceForm, 'UNSPECIFIED', INDETERMINATE) +conical_surf = IfcBSplineSurfaceForm.CONICAL_SURF +cylindrical_surf = IfcBSplineSurfaceForm.CYLINDRICAL_SURF +generalised_cone = IfcBSplineSurfaceForm.GENERALISED_CONE +plane_surf = IfcBSplineSurfaceForm.PLANE_SURF +quadric_surf = IfcBSplineSurfaceForm.QUADRIC_SURF +ruled_surf = IfcBSplineSurfaceForm.RULED_SURF +spherical_surf = IfcBSplineSurfaceForm.SPHERICAL_SURF +surf_of_linear_extrusion = IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION +surf_of_revolution = IfcBSplineSurfaceForm.SURF_OF_REVOLUTION +toroidal_surf = IfcBSplineSurfaceForm.TOROIDAL_SURF +unspecified = IfcBSplineSurfaceForm.UNSPECIFIED IfcBeamTypeEnum = enum_namespace() -beam = getattr(IfcBeamTypeEnum, 'BEAM', INDETERMINATE) -cornice = getattr(IfcBeamTypeEnum, 'CORNICE', INDETERMINATE) -diaphragm = getattr(IfcBeamTypeEnum, 'DIAPHRAGM', INDETERMINATE) -edgebeam = getattr(IfcBeamTypeEnum, 'EDGEBEAM', INDETERMINATE) -girder_segment = getattr(IfcBeamTypeEnum, 'GIRDER_SEGMENT', INDETERMINATE) -hatstone = getattr(IfcBeamTypeEnum, 'HATSTONE', INDETERMINATE) -hollowcore = getattr(IfcBeamTypeEnum, 'HOLLOWCORE', INDETERMINATE) -joist = getattr(IfcBeamTypeEnum, 'JOIST', INDETERMINATE) -lintel = getattr(IfcBeamTypeEnum, 'LINTEL', INDETERMINATE) -piercap = getattr(IfcBeamTypeEnum, 'PIERCAP', INDETERMINATE) -spandrel = getattr(IfcBeamTypeEnum, 'SPANDREL', INDETERMINATE) -t_beam = getattr(IfcBeamTypeEnum, 'T_BEAM', INDETERMINATE) -userdefined = getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +beam = IfcBeamTypeEnum.BEAM +cornice = IfcBeamTypeEnum.CORNICE +diaphragm = IfcBeamTypeEnum.DIAPHRAGM +edgebeam = IfcBeamTypeEnum.EDGEBEAM +girder_segment = IfcBeamTypeEnum.GIRDER_SEGMENT +hatstone = IfcBeamTypeEnum.HATSTONE +hollowcore = IfcBeamTypeEnum.HOLLOWCORE +joist = IfcBeamTypeEnum.JOIST +lintel = IfcBeamTypeEnum.LINTEL +piercap = IfcBeamTypeEnum.PIERCAP +spandrel = IfcBeamTypeEnum.SPANDREL +t_beam = IfcBeamTypeEnum.T_BEAM +userdefined = IfcBeamTypeEnum.USERDEFINED +notdefined = IfcBeamTypeEnum.NOTDEFINED IfcBearingTypeEnum = enum_namespace() -cylindrical = getattr(IfcBearingTypeEnum, 'CYLINDRICAL', INDETERMINATE) -disk = getattr(IfcBearingTypeEnum, 'DISK', INDETERMINATE) -elastomeric = getattr(IfcBearingTypeEnum, 'ELASTOMERIC', INDETERMINATE) -guide = getattr(IfcBearingTypeEnum, 'GUIDE', INDETERMINATE) -pot = getattr(IfcBearingTypeEnum, 'POT', INDETERMINATE) -rocker = getattr(IfcBearingTypeEnum, 'ROCKER', INDETERMINATE) -roller = getattr(IfcBearingTypeEnum, 'ROLLER', INDETERMINATE) -spherical = getattr(IfcBearingTypeEnum, 'SPHERICAL', INDETERMINATE) -userdefined = getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBearingTypeEnum, 'NOTDEFINED', INDETERMINATE) +cylindrical = IfcBearingTypeEnum.CYLINDRICAL +disk = IfcBearingTypeEnum.DISK +elastomeric = IfcBearingTypeEnum.ELASTOMERIC +guide = IfcBearingTypeEnum.GUIDE +pot = IfcBearingTypeEnum.POT +rocker = IfcBearingTypeEnum.ROCKER +roller = IfcBearingTypeEnum.ROLLER +spherical = IfcBearingTypeEnum.SPHERICAL +userdefined = IfcBearingTypeEnum.USERDEFINED +notdefined = IfcBearingTypeEnum.NOTDEFINED IfcBenchmarkEnum = enum_namespace() -equalto = getattr(IfcBenchmarkEnum, 'EQUALTO', INDETERMINATE) -greaterthan = getattr(IfcBenchmarkEnum, 'GREATERTHAN', INDETERMINATE) -greaterthanorequalto = getattr(IfcBenchmarkEnum, 'GREATERTHANOREQUALTO', INDETERMINATE) -includedin = getattr(IfcBenchmarkEnum, 'INCLUDEDIN', INDETERMINATE) -includes = getattr(IfcBenchmarkEnum, 'INCLUDES', INDETERMINATE) -lessthan = getattr(IfcBenchmarkEnum, 'LESSTHAN', INDETERMINATE) -lessthanorequalto = getattr(IfcBenchmarkEnum, 'LESSTHANOREQUALTO', INDETERMINATE) -notequalto = getattr(IfcBenchmarkEnum, 'NOTEQUALTO', INDETERMINATE) -notincludedin = getattr(IfcBenchmarkEnum, 'NOTINCLUDEDIN', INDETERMINATE) -notincludes = getattr(IfcBenchmarkEnum, 'NOTINCLUDES', INDETERMINATE) +equalto = IfcBenchmarkEnum.EQUALTO +greaterthan = IfcBenchmarkEnum.GREATERTHAN +greaterthanorequalto = IfcBenchmarkEnum.GREATERTHANOREQUALTO +includedin = IfcBenchmarkEnum.INCLUDEDIN +includes = IfcBenchmarkEnum.INCLUDES +lessthan = IfcBenchmarkEnum.LESSTHAN +lessthanorequalto = IfcBenchmarkEnum.LESSTHANOREQUALTO +notequalto = IfcBenchmarkEnum.NOTEQUALTO +notincludedin = IfcBenchmarkEnum.NOTINCLUDEDIN +notincludes = IfcBenchmarkEnum.NOTINCLUDES IfcBoilerTypeEnum = enum_namespace() -steam = getattr(IfcBoilerTypeEnum, 'STEAM', INDETERMINATE) -water = getattr(IfcBoilerTypeEnum, 'WATER', INDETERMINATE) -userdefined = getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBoilerTypeEnum, 'NOTDEFINED', INDETERMINATE) +steam = IfcBoilerTypeEnum.STEAM +water = IfcBoilerTypeEnum.WATER +userdefined = IfcBoilerTypeEnum.USERDEFINED +notdefined = IfcBoilerTypeEnum.NOTDEFINED IfcBooleanOperator = enum_namespace() -difference = getattr(IfcBooleanOperator, 'DIFFERENCE', INDETERMINATE) -intersection = getattr(IfcBooleanOperator, 'INTERSECTION', INDETERMINATE) -union = getattr(IfcBooleanOperator, 'UNION', INDETERMINATE) +difference = IfcBooleanOperator.DIFFERENCE +intersection = IfcBooleanOperator.INTERSECTION +union = IfcBooleanOperator.UNION IfcBridgePartTypeEnum = enum_namespace() -abutment = getattr(IfcBridgePartTypeEnum, 'ABUTMENT', INDETERMINATE) -deck = getattr(IfcBridgePartTypeEnum, 'DECK', INDETERMINATE) -deck_segment = getattr(IfcBridgePartTypeEnum, 'DECK_SEGMENT', INDETERMINATE) -foundation = getattr(IfcBridgePartTypeEnum, 'FOUNDATION', INDETERMINATE) -pier = getattr(IfcBridgePartTypeEnum, 'PIER', INDETERMINATE) -pier_segment = getattr(IfcBridgePartTypeEnum, 'PIER_SEGMENT', INDETERMINATE) -pylon = getattr(IfcBridgePartTypeEnum, 'PYLON', INDETERMINATE) -substructure = getattr(IfcBridgePartTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -superstructure = getattr(IfcBridgePartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -surfacestructure = getattr(IfcBridgePartTypeEnum, 'SURFACESTRUCTURE', INDETERMINATE) -userdefined = getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBridgePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +abutment = IfcBridgePartTypeEnum.ABUTMENT +deck = IfcBridgePartTypeEnum.DECK +deck_segment = IfcBridgePartTypeEnum.DECK_SEGMENT +foundation = IfcBridgePartTypeEnum.FOUNDATION +pier = IfcBridgePartTypeEnum.PIER +pier_segment = IfcBridgePartTypeEnum.PIER_SEGMENT +pylon = IfcBridgePartTypeEnum.PYLON +substructure = IfcBridgePartTypeEnum.SUBSTRUCTURE +superstructure = IfcBridgePartTypeEnum.SUPERSTRUCTURE +surfacestructure = IfcBridgePartTypeEnum.SURFACESTRUCTURE +userdefined = IfcBridgePartTypeEnum.USERDEFINED +notdefined = IfcBridgePartTypeEnum.NOTDEFINED IfcBridgeTypeEnum = enum_namespace() -arched = getattr(IfcBridgeTypeEnum, 'ARCHED', INDETERMINATE) -cable_stayed = getattr(IfcBridgeTypeEnum, 'CABLE_STAYED', INDETERMINATE) -cantilever = getattr(IfcBridgeTypeEnum, 'CANTILEVER', INDETERMINATE) -culvert = getattr(IfcBridgeTypeEnum, 'CULVERT', INDETERMINATE) -framework = getattr(IfcBridgeTypeEnum, 'FRAMEWORK', INDETERMINATE) -girder = getattr(IfcBridgeTypeEnum, 'GIRDER', INDETERMINATE) -suspension = getattr(IfcBridgeTypeEnum, 'SUSPENSION', INDETERMINATE) -truss = getattr(IfcBridgeTypeEnum, 'TRUSS', INDETERMINATE) -userdefined = getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBridgeTypeEnum, 'NOTDEFINED', INDETERMINATE) +arched = IfcBridgeTypeEnum.ARCHED +cable_stayed = IfcBridgeTypeEnum.CABLE_STAYED +cantilever = IfcBridgeTypeEnum.CANTILEVER +culvert = IfcBridgeTypeEnum.CULVERT +framework = IfcBridgeTypeEnum.FRAMEWORK +girder = IfcBridgeTypeEnum.GIRDER +suspension = IfcBridgeTypeEnum.SUSPENSION +truss = IfcBridgeTypeEnum.TRUSS +userdefined = IfcBridgeTypeEnum.USERDEFINED +notdefined = IfcBridgeTypeEnum.NOTDEFINED IfcBuildingElementPartTypeEnum = enum_namespace() -apron = getattr(IfcBuildingElementPartTypeEnum, 'APRON', INDETERMINATE) -armourunit = getattr(IfcBuildingElementPartTypeEnum, 'ARMOURUNIT', INDETERMINATE) -insulation = getattr(IfcBuildingElementPartTypeEnum, 'INSULATION', INDETERMINATE) -precastpanel = getattr(IfcBuildingElementPartTypeEnum, 'PRECASTPANEL', INDETERMINATE) -safetycage = getattr(IfcBuildingElementPartTypeEnum, 'SAFETYCAGE', INDETERMINATE) -userdefined = getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingElementPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +apron = IfcBuildingElementPartTypeEnum.APRON +armourunit = IfcBuildingElementPartTypeEnum.ARMOURUNIT +insulation = IfcBuildingElementPartTypeEnum.INSULATION +precastpanel = IfcBuildingElementPartTypeEnum.PRECASTPANEL +safetycage = IfcBuildingElementPartTypeEnum.SAFETYCAGE +userdefined = IfcBuildingElementPartTypeEnum.USERDEFINED +notdefined = IfcBuildingElementPartTypeEnum.NOTDEFINED IfcBuildingElementProxyTypeEnum = enum_namespace() -complex = getattr(IfcBuildingElementProxyTypeEnum, 'COMPLEX', INDETERMINATE) -element = getattr(IfcBuildingElementProxyTypeEnum, 'ELEMENT', INDETERMINATE) -partial = getattr(IfcBuildingElementProxyTypeEnum, 'PARTIAL', INDETERMINATE) -provisionforspace = getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORSPACE', INDETERMINATE) -provisionforvoid = getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORVOID', INDETERMINATE) -userdefined = getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingElementProxyTypeEnum, 'NOTDEFINED', INDETERMINATE) +complex = IfcBuildingElementProxyTypeEnum.COMPLEX +element = IfcBuildingElementProxyTypeEnum.ELEMENT +partial = IfcBuildingElementProxyTypeEnum.PARTIAL +provisionforspace = IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE +provisionforvoid = IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID +userdefined = IfcBuildingElementProxyTypeEnum.USERDEFINED +notdefined = IfcBuildingElementProxyTypeEnum.NOTDEFINED IfcBuildingSystemTypeEnum = enum_namespace() -fenestration = getattr(IfcBuildingSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = getattr(IfcBuildingSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = getattr(IfcBuildingSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -outershell = getattr(IfcBuildingSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -shading = getattr(IfcBuildingSystemTypeEnum, 'SHADING', INDETERMINATE) -transport = getattr(IfcBuildingSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -userdefined = getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +fenestration = IfcBuildingSystemTypeEnum.FENESTRATION +foundation = IfcBuildingSystemTypeEnum.FOUNDATION +loadbearing = IfcBuildingSystemTypeEnum.LOADBEARING +outershell = IfcBuildingSystemTypeEnum.OUTERSHELL +shading = IfcBuildingSystemTypeEnum.SHADING +transport = IfcBuildingSystemTypeEnum.TRANSPORT +userdefined = IfcBuildingSystemTypeEnum.USERDEFINED +notdefined = IfcBuildingSystemTypeEnum.NOTDEFINED IfcBuiltSystemTypeEnum = enum_namespace() -erosionprevention = getattr(IfcBuiltSystemTypeEnum, 'EROSIONPREVENTION', INDETERMINATE) -fenestration = getattr(IfcBuiltSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = getattr(IfcBuiltSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = getattr(IfcBuiltSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -mooring = getattr(IfcBuiltSystemTypeEnum, 'MOORING', INDETERMINATE) -outershell = getattr(IfcBuiltSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -prestressing = getattr(IfcBuiltSystemTypeEnum, 'PRESTRESSING', INDETERMINATE) -railwayline = getattr(IfcBuiltSystemTypeEnum, 'RAILWAYLINE', INDETERMINATE) -railwaytrack = getattr(IfcBuiltSystemTypeEnum, 'RAILWAYTRACK', INDETERMINATE) -reinforcing = getattr(IfcBuiltSystemTypeEnum, 'REINFORCING', INDETERMINATE) -shading = getattr(IfcBuiltSystemTypeEnum, 'SHADING', INDETERMINATE) -trackcircuit = getattr(IfcBuiltSystemTypeEnum, 'TRACKCIRCUIT', INDETERMINATE) -transport = getattr(IfcBuiltSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -userdefined = getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuiltSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +erosionprevention = IfcBuiltSystemTypeEnum.EROSIONPREVENTION +fenestration = IfcBuiltSystemTypeEnum.FENESTRATION +foundation = IfcBuiltSystemTypeEnum.FOUNDATION +loadbearing = IfcBuiltSystemTypeEnum.LOADBEARING +mooring = IfcBuiltSystemTypeEnum.MOORING +outershell = IfcBuiltSystemTypeEnum.OUTERSHELL +prestressing = IfcBuiltSystemTypeEnum.PRESTRESSING +railwayline = IfcBuiltSystemTypeEnum.RAILWAYLINE +railwaytrack = IfcBuiltSystemTypeEnum.RAILWAYTRACK +reinforcing = IfcBuiltSystemTypeEnum.REINFORCING +shading = IfcBuiltSystemTypeEnum.SHADING +trackcircuit = IfcBuiltSystemTypeEnum.TRACKCIRCUIT +transport = IfcBuiltSystemTypeEnum.TRANSPORT +userdefined = IfcBuiltSystemTypeEnum.USERDEFINED +notdefined = IfcBuiltSystemTypeEnum.NOTDEFINED IfcBurnerTypeEnum = enum_namespace() -userdefined = getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBurnerTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcBurnerTypeEnum.USERDEFINED +notdefined = IfcBurnerTypeEnum.NOTDEFINED IfcCableCarrierFittingTypeEnum = enum_namespace() -bend = getattr(IfcCableCarrierFittingTypeEnum, 'BEND', INDETERMINATE) -connector = getattr(IfcCableCarrierFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -cross = getattr(IfcCableCarrierFittingTypeEnum, 'CROSS', INDETERMINATE) -junction = getattr(IfcCableCarrierFittingTypeEnum, 'JUNCTION', INDETERMINATE) -reducer = getattr(IfcCableCarrierFittingTypeEnum, 'REDUCER', INDETERMINATE) -tee = getattr(IfcCableCarrierFittingTypeEnum, 'TEE', INDETERMINATE) -transition = getattr(IfcCableCarrierFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableCarrierFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcCableCarrierFittingTypeEnum.BEND +connector = IfcCableCarrierFittingTypeEnum.CONNECTOR +cross = IfcCableCarrierFittingTypeEnum.CROSS +junction = IfcCableCarrierFittingTypeEnum.JUNCTION +reducer = IfcCableCarrierFittingTypeEnum.REDUCER +tee = IfcCableCarrierFittingTypeEnum.TEE +transition = IfcCableCarrierFittingTypeEnum.TRANSITION +userdefined = IfcCableCarrierFittingTypeEnum.USERDEFINED +notdefined = IfcCableCarrierFittingTypeEnum.NOTDEFINED IfcCableCarrierSegmentTypeEnum = enum_namespace() -cablebracket = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLEBRACKET', INDETERMINATE) -cableladdersegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLELADDERSEGMENT', INDETERMINATE) -cabletraysegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRAYSEGMENT', INDETERMINATE) -cabletrunkingsegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRUNKINGSEGMENT', INDETERMINATE) -catenarywire = getattr(IfcCableCarrierSegmentTypeEnum, 'CATENARYWIRE', INDETERMINATE) -conduitsegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CONDUITSEGMENT', INDETERMINATE) -dropper = getattr(IfcCableCarrierSegmentTypeEnum, 'DROPPER', INDETERMINATE) -userdefined = getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableCarrierSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +cablebracket = IfcCableCarrierSegmentTypeEnum.CABLEBRACKET +cableladdersegment = IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT +cabletraysegment = IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT +cabletrunkingsegment = IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT +catenarywire = IfcCableCarrierSegmentTypeEnum.CATENARYWIRE +conduitsegment = IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT +dropper = IfcCableCarrierSegmentTypeEnum.DROPPER +userdefined = IfcCableCarrierSegmentTypeEnum.USERDEFINED +notdefined = IfcCableCarrierSegmentTypeEnum.NOTDEFINED IfcCableFittingTypeEnum = enum_namespace() -connector = getattr(IfcCableFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcCableFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcCableFittingTypeEnum, 'EXIT', INDETERMINATE) -fanout = getattr(IfcCableFittingTypeEnum, 'FANOUT', INDETERMINATE) -junction = getattr(IfcCableFittingTypeEnum, 'JUNCTION', INDETERMINATE) -transition = getattr(IfcCableFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +connector = IfcCableFittingTypeEnum.CONNECTOR +entry = IfcCableFittingTypeEnum.ENTRY +exit = IfcCableFittingTypeEnum.EXIT +fanout = IfcCableFittingTypeEnum.FANOUT +junction = IfcCableFittingTypeEnum.JUNCTION +transition = IfcCableFittingTypeEnum.TRANSITION +userdefined = IfcCableFittingTypeEnum.USERDEFINED +notdefined = IfcCableFittingTypeEnum.NOTDEFINED IfcCableSegmentTypeEnum = enum_namespace() -busbarsegment = getattr(IfcCableSegmentTypeEnum, 'BUSBARSEGMENT', INDETERMINATE) -cablesegment = getattr(IfcCableSegmentTypeEnum, 'CABLESEGMENT', INDETERMINATE) -conductorsegment = getattr(IfcCableSegmentTypeEnum, 'CONDUCTORSEGMENT', INDETERMINATE) -contactwiresegment = getattr(IfcCableSegmentTypeEnum, 'CONTACTWIRESEGMENT', INDETERMINATE) -coresegment = getattr(IfcCableSegmentTypeEnum, 'CORESEGMENT', INDETERMINATE) -fibersegment = getattr(IfcCableSegmentTypeEnum, 'FIBERSEGMENT', INDETERMINATE) -fibertube = getattr(IfcCableSegmentTypeEnum, 'FIBERTUBE', INDETERMINATE) -opticalcablesegment = getattr(IfcCableSegmentTypeEnum, 'OPTICALCABLESEGMENT', INDETERMINATE) -stitchwire = getattr(IfcCableSegmentTypeEnum, 'STITCHWIRE', INDETERMINATE) -wirepairsegment = getattr(IfcCableSegmentTypeEnum, 'WIREPAIRSEGMENT', INDETERMINATE) -userdefined = getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +busbarsegment = IfcCableSegmentTypeEnum.BUSBARSEGMENT +cablesegment = IfcCableSegmentTypeEnum.CABLESEGMENT +conductorsegment = IfcCableSegmentTypeEnum.CONDUCTORSEGMENT +contactwiresegment = IfcCableSegmentTypeEnum.CONTACTWIRESEGMENT +coresegment = IfcCableSegmentTypeEnum.CORESEGMENT +fibersegment = IfcCableSegmentTypeEnum.FIBERSEGMENT +fibertube = IfcCableSegmentTypeEnum.FIBERTUBE +opticalcablesegment = IfcCableSegmentTypeEnum.OPTICALCABLESEGMENT +stitchwire = IfcCableSegmentTypeEnum.STITCHWIRE +wirepairsegment = IfcCableSegmentTypeEnum.WIREPAIRSEGMENT +userdefined = IfcCableSegmentTypeEnum.USERDEFINED +notdefined = IfcCableSegmentTypeEnum.NOTDEFINED IfcCaissonFoundationTypeEnum = enum_namespace() -caisson = getattr(IfcCaissonFoundationTypeEnum, 'CAISSON', INDETERMINATE) -well = getattr(IfcCaissonFoundationTypeEnum, 'WELL', INDETERMINATE) -userdefined = getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCaissonFoundationTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson = IfcCaissonFoundationTypeEnum.CAISSON +well = IfcCaissonFoundationTypeEnum.WELL +userdefined = IfcCaissonFoundationTypeEnum.USERDEFINED +notdefined = IfcCaissonFoundationTypeEnum.NOTDEFINED IfcChangeActionEnum = enum_namespace() -added = getattr(IfcChangeActionEnum, 'ADDED', INDETERMINATE) -deleted = getattr(IfcChangeActionEnum, 'DELETED', INDETERMINATE) -modified = getattr(IfcChangeActionEnum, 'MODIFIED', INDETERMINATE) -nochange = getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE) -notdefined = getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) +added = IfcChangeActionEnum.ADDED +deleted = IfcChangeActionEnum.DELETED +modified = IfcChangeActionEnum.MODIFIED +nochange = IfcChangeActionEnum.NOCHANGE +notdefined = IfcChangeActionEnum.NOTDEFINED IfcChillerTypeEnum = enum_namespace() -aircooled = getattr(IfcChillerTypeEnum, 'AIRCOOLED', INDETERMINATE) -heatrecovery = getattr(IfcChillerTypeEnum, 'HEATRECOVERY', INDETERMINATE) -watercooled = getattr(IfcChillerTypeEnum, 'WATERCOOLED', INDETERMINATE) -userdefined = getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcChillerTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcChillerTypeEnum.AIRCOOLED +heatrecovery = IfcChillerTypeEnum.HEATRECOVERY +watercooled = IfcChillerTypeEnum.WATERCOOLED +userdefined = IfcChillerTypeEnum.USERDEFINED +notdefined = IfcChillerTypeEnum.NOTDEFINED IfcChimneyTypeEnum = enum_namespace() -userdefined = getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcChimneyTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcChimneyTypeEnum.USERDEFINED +notdefined = IfcChimneyTypeEnum.NOTDEFINED IfcCoilTypeEnum = enum_namespace() -dxcoolingcoil = getattr(IfcCoilTypeEnum, 'DXCOOLINGCOIL', INDETERMINATE) -electricheatingcoil = getattr(IfcCoilTypeEnum, 'ELECTRICHEATINGCOIL', INDETERMINATE) -gasheatingcoil = getattr(IfcCoilTypeEnum, 'GASHEATINGCOIL', INDETERMINATE) -hydroniccoil = getattr(IfcCoilTypeEnum, 'HYDRONICCOIL', INDETERMINATE) -steamheatingcoil = getattr(IfcCoilTypeEnum, 'STEAMHEATINGCOIL', INDETERMINATE) -watercoolingcoil = getattr(IfcCoilTypeEnum, 'WATERCOOLINGCOIL', INDETERMINATE) -waterheatingcoil = getattr(IfcCoilTypeEnum, 'WATERHEATINGCOIL', INDETERMINATE) -userdefined = getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dxcoolingcoil = IfcCoilTypeEnum.DXCOOLINGCOIL +electricheatingcoil = IfcCoilTypeEnum.ELECTRICHEATINGCOIL +gasheatingcoil = IfcCoilTypeEnum.GASHEATINGCOIL +hydroniccoil = IfcCoilTypeEnum.HYDRONICCOIL +steamheatingcoil = IfcCoilTypeEnum.STEAMHEATINGCOIL +watercoolingcoil = IfcCoilTypeEnum.WATERCOOLINGCOIL +waterheatingcoil = IfcCoilTypeEnum.WATERHEATINGCOIL +userdefined = IfcCoilTypeEnum.USERDEFINED +notdefined = IfcCoilTypeEnum.NOTDEFINED IfcColumnTypeEnum = enum_namespace() -column = getattr(IfcColumnTypeEnum, 'COLUMN', INDETERMINATE) -pierstem = getattr(IfcColumnTypeEnum, 'PIERSTEM', INDETERMINATE) -pierstem_segment = getattr(IfcColumnTypeEnum, 'PIERSTEM_SEGMENT', INDETERMINATE) -pilaster = getattr(IfcColumnTypeEnum, 'PILASTER', INDETERMINATE) -standcolumn = getattr(IfcColumnTypeEnum, 'STANDCOLUMN', INDETERMINATE) -userdefined = getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcColumnTypeEnum, 'NOTDEFINED', INDETERMINATE) +column = IfcColumnTypeEnum.COLUMN +pierstem = IfcColumnTypeEnum.PIERSTEM +pierstem_segment = IfcColumnTypeEnum.PIERSTEM_SEGMENT +pilaster = IfcColumnTypeEnum.PILASTER +standcolumn = IfcColumnTypeEnum.STANDCOLUMN +userdefined = IfcColumnTypeEnum.USERDEFINED +notdefined = IfcColumnTypeEnum.NOTDEFINED IfcCommunicationsApplianceTypeEnum = enum_namespace() -antenna = getattr(IfcCommunicationsApplianceTypeEnum, 'ANTENNA', INDETERMINATE) -automaton = getattr(IfcCommunicationsApplianceTypeEnum, 'AUTOMATON', INDETERMINATE) -computer = getattr(IfcCommunicationsApplianceTypeEnum, 'COMPUTER', INDETERMINATE) -fax = getattr(IfcCommunicationsApplianceTypeEnum, 'FAX', INDETERMINATE) -gateway = getattr(IfcCommunicationsApplianceTypeEnum, 'GATEWAY', INDETERMINATE) -intelligentperipheral = getattr(IfcCommunicationsApplianceTypeEnum, 'INTELLIGENTPERIPHERAL', INDETERMINATE) -ipnetworkequipment = getattr(IfcCommunicationsApplianceTypeEnum, 'IPNETWORKEQUIPMENT', INDETERMINATE) -linesideelectronicunit = getattr(IfcCommunicationsApplianceTypeEnum, 'LINESIDEELECTRONICUNIT', INDETERMINATE) -modem = getattr(IfcCommunicationsApplianceTypeEnum, 'MODEM', INDETERMINATE) -networkappliance = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKAPPLIANCE', INDETERMINATE) -networkbridge = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKBRIDGE', INDETERMINATE) -networkhub = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKHUB', INDETERMINATE) -opticallineterminal = getattr(IfcCommunicationsApplianceTypeEnum, 'OPTICALLINETERMINAL', INDETERMINATE) -opticalnetworkunit = getattr(IfcCommunicationsApplianceTypeEnum, 'OPTICALNETWORKUNIT', INDETERMINATE) -printer = getattr(IfcCommunicationsApplianceTypeEnum, 'PRINTER', INDETERMINATE) -radioblockcenter = getattr(IfcCommunicationsApplianceTypeEnum, 'RADIOBLOCKCENTER', INDETERMINATE) -repeater = getattr(IfcCommunicationsApplianceTypeEnum, 'REPEATER', INDETERMINATE) -router = getattr(IfcCommunicationsApplianceTypeEnum, 'ROUTER', INDETERMINATE) -scanner = getattr(IfcCommunicationsApplianceTypeEnum, 'SCANNER', INDETERMINATE) -telecommand = getattr(IfcCommunicationsApplianceTypeEnum, 'TELECOMMAND', INDETERMINATE) -telephonyexchange = getattr(IfcCommunicationsApplianceTypeEnum, 'TELEPHONYEXCHANGE', INDETERMINATE) -transitioncomponent = getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSITIONCOMPONENT', INDETERMINATE) -transponder = getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPONDER', INDETERMINATE) -transportequipment = getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPORTEQUIPMENT', INDETERMINATE) -userdefined = getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +antenna = IfcCommunicationsApplianceTypeEnum.ANTENNA +automaton = IfcCommunicationsApplianceTypeEnum.AUTOMATON +computer = IfcCommunicationsApplianceTypeEnum.COMPUTER +fax = IfcCommunicationsApplianceTypeEnum.FAX +gateway = IfcCommunicationsApplianceTypeEnum.GATEWAY +intelligentperipheral = IfcCommunicationsApplianceTypeEnum.INTELLIGENTPERIPHERAL +ipnetworkequipment = IfcCommunicationsApplianceTypeEnum.IPNETWORKEQUIPMENT +linesideelectronicunit = IfcCommunicationsApplianceTypeEnum.LINESIDEELECTRONICUNIT +modem = IfcCommunicationsApplianceTypeEnum.MODEM +networkappliance = IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE +networkbridge = IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE +networkhub = IfcCommunicationsApplianceTypeEnum.NETWORKHUB +opticallineterminal = IfcCommunicationsApplianceTypeEnum.OPTICALLINETERMINAL +opticalnetworkunit = IfcCommunicationsApplianceTypeEnum.OPTICALNETWORKUNIT +printer = IfcCommunicationsApplianceTypeEnum.PRINTER +radioblockcenter = IfcCommunicationsApplianceTypeEnum.RADIOBLOCKCENTER +repeater = IfcCommunicationsApplianceTypeEnum.REPEATER +router = IfcCommunicationsApplianceTypeEnum.ROUTER +scanner = IfcCommunicationsApplianceTypeEnum.SCANNER +telecommand = IfcCommunicationsApplianceTypeEnum.TELECOMMAND +telephonyexchange = IfcCommunicationsApplianceTypeEnum.TELEPHONYEXCHANGE +transitioncomponent = IfcCommunicationsApplianceTypeEnum.TRANSITIONCOMPONENT +transponder = IfcCommunicationsApplianceTypeEnum.TRANSPONDER +transportequipment = IfcCommunicationsApplianceTypeEnum.TRANSPORTEQUIPMENT +userdefined = IfcCommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcCommunicationsApplianceTypeEnum.NOTDEFINED IfcComplexPropertyTemplateTypeEnum = enum_namespace() -p_complex = getattr(IfcComplexPropertyTemplateTypeEnum, 'P_COMPLEX', INDETERMINATE) -q_complex = getattr(IfcComplexPropertyTemplateTypeEnum, 'Q_COMPLEX', INDETERMINATE) +p_complex = IfcComplexPropertyTemplateTypeEnum.P_COMPLEX +q_complex = IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX IfcCompressorTypeEnum = enum_namespace() -booster = getattr(IfcCompressorTypeEnum, 'BOOSTER', INDETERMINATE) -dynamic = getattr(IfcCompressorTypeEnum, 'DYNAMIC', INDETERMINATE) -hermetic = getattr(IfcCompressorTypeEnum, 'HERMETIC', INDETERMINATE) -opentype = getattr(IfcCompressorTypeEnum, 'OPENTYPE', INDETERMINATE) -reciprocating = getattr(IfcCompressorTypeEnum, 'RECIPROCATING', INDETERMINATE) -rollingpiston = getattr(IfcCompressorTypeEnum, 'ROLLINGPISTON', INDETERMINATE) -rotary = getattr(IfcCompressorTypeEnum, 'ROTARY', INDETERMINATE) -rotaryvane = getattr(IfcCompressorTypeEnum, 'ROTARYVANE', INDETERMINATE) -scroll = getattr(IfcCompressorTypeEnum, 'SCROLL', INDETERMINATE) -semihermetic = getattr(IfcCompressorTypeEnum, 'SEMIHERMETIC', INDETERMINATE) -singlescrew = getattr(IfcCompressorTypeEnum, 'SINGLESCREW', INDETERMINATE) -singlestage = getattr(IfcCompressorTypeEnum, 'SINGLESTAGE', INDETERMINATE) -trochoidal = getattr(IfcCompressorTypeEnum, 'TROCHOIDAL', INDETERMINATE) -twinscrew = getattr(IfcCompressorTypeEnum, 'TWINSCREW', INDETERMINATE) -weldedshellhermetic = getattr(IfcCompressorTypeEnum, 'WELDEDSHELLHERMETIC', INDETERMINATE) -userdefined = getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCompressorTypeEnum, 'NOTDEFINED', INDETERMINATE) +booster = IfcCompressorTypeEnum.BOOSTER +dynamic = IfcCompressorTypeEnum.DYNAMIC +hermetic = IfcCompressorTypeEnum.HERMETIC +opentype = IfcCompressorTypeEnum.OPENTYPE +reciprocating = IfcCompressorTypeEnum.RECIPROCATING +rollingpiston = IfcCompressorTypeEnum.ROLLINGPISTON +rotary = IfcCompressorTypeEnum.ROTARY +rotaryvane = IfcCompressorTypeEnum.ROTARYVANE +scroll = IfcCompressorTypeEnum.SCROLL +semihermetic = IfcCompressorTypeEnum.SEMIHERMETIC +singlescrew = IfcCompressorTypeEnum.SINGLESCREW +singlestage = IfcCompressorTypeEnum.SINGLESTAGE +trochoidal = IfcCompressorTypeEnum.TROCHOIDAL +twinscrew = IfcCompressorTypeEnum.TWINSCREW +weldedshellhermetic = IfcCompressorTypeEnum.WELDEDSHELLHERMETIC +userdefined = IfcCompressorTypeEnum.USERDEFINED +notdefined = IfcCompressorTypeEnum.NOTDEFINED IfcCondenserTypeEnum = enum_namespace() -aircooled = getattr(IfcCondenserTypeEnum, 'AIRCOOLED', INDETERMINATE) -evaporativecooled = getattr(IfcCondenserTypeEnum, 'EVAPORATIVECOOLED', INDETERMINATE) -watercooled = getattr(IfcCondenserTypeEnum, 'WATERCOOLED', INDETERMINATE) -watercooledbrazedplate = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDBRAZEDPLATE', INDETERMINATE) -watercooledshellcoil = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLCOIL', INDETERMINATE) -watercooledshelltube = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLTUBE', INDETERMINATE) -watercooledtubeintube = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDTUBEINTUBE', INDETERMINATE) -userdefined = getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCondenserTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcCondenserTypeEnum.AIRCOOLED +evaporativecooled = IfcCondenserTypeEnum.EVAPORATIVECOOLED +watercooled = IfcCondenserTypeEnum.WATERCOOLED +watercooledbrazedplate = IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE +watercooledshellcoil = IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL +watercooledshelltube = IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE +watercooledtubeintube = IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE +userdefined = IfcCondenserTypeEnum.USERDEFINED +notdefined = IfcCondenserTypeEnum.NOTDEFINED IfcConnectionTypeEnum = enum_namespace() -atend = getattr(IfcConnectionTypeEnum, 'ATEND', INDETERMINATE) -atpath = getattr(IfcConnectionTypeEnum, 'ATPATH', INDETERMINATE) -atstart = getattr(IfcConnectionTypeEnum, 'ATSTART', INDETERMINATE) -notdefined = getattr(IfcConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +atend = IfcConnectionTypeEnum.ATEND +atpath = IfcConnectionTypeEnum.ATPATH +atstart = IfcConnectionTypeEnum.ATSTART +notdefined = IfcConnectionTypeEnum.NOTDEFINED IfcConstraintEnum = enum_namespace() -advisory = getattr(IfcConstraintEnum, 'ADVISORY', INDETERMINATE) -hard = getattr(IfcConstraintEnum, 'HARD', INDETERMINATE) -soft = getattr(IfcConstraintEnum, 'SOFT', INDETERMINATE) -userdefined = getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstraintEnum, 'NOTDEFINED', INDETERMINATE) +advisory = IfcConstraintEnum.ADVISORY +hard = IfcConstraintEnum.HARD +soft = IfcConstraintEnum.SOFT +userdefined = IfcConstraintEnum.USERDEFINED +notdefined = IfcConstraintEnum.NOTDEFINED IfcConstructionEquipmentResourceTypeEnum = enum_namespace() -demolishing = getattr(IfcConstructionEquipmentResourceTypeEnum, 'DEMOLISHING', INDETERMINATE) -earthmoving = getattr(IfcConstructionEquipmentResourceTypeEnum, 'EARTHMOVING', INDETERMINATE) -erecting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'ERECTING', INDETERMINATE) -heating = getattr(IfcConstructionEquipmentResourceTypeEnum, 'HEATING', INDETERMINATE) -lighting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'LIGHTING', INDETERMINATE) -paving = getattr(IfcConstructionEquipmentResourceTypeEnum, 'PAVING', INDETERMINATE) -pumping = getattr(IfcConstructionEquipmentResourceTypeEnum, 'PUMPING', INDETERMINATE) -transporting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'TRANSPORTING', INDETERMINATE) -userdefined = getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstructionEquipmentResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +demolishing = IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING +earthmoving = IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING +erecting = IfcConstructionEquipmentResourceTypeEnum.ERECTING +heating = IfcConstructionEquipmentResourceTypeEnum.HEATING +lighting = IfcConstructionEquipmentResourceTypeEnum.LIGHTING +paving = IfcConstructionEquipmentResourceTypeEnum.PAVING +pumping = IfcConstructionEquipmentResourceTypeEnum.PUMPING +transporting = IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING +userdefined = IfcConstructionEquipmentResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED IfcConstructionMaterialResourceTypeEnum = enum_namespace() -aggregates = getattr(IfcConstructionMaterialResourceTypeEnum, 'AGGREGATES', INDETERMINATE) -concrete = getattr(IfcConstructionMaterialResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = getattr(IfcConstructionMaterialResourceTypeEnum, 'DRYWALL', INDETERMINATE) -fuel = getattr(IfcConstructionMaterialResourceTypeEnum, 'FUEL', INDETERMINATE) -gypsum = getattr(IfcConstructionMaterialResourceTypeEnum, 'GYPSUM', INDETERMINATE) -masonry = getattr(IfcConstructionMaterialResourceTypeEnum, 'MASONRY', INDETERMINATE) -metal = getattr(IfcConstructionMaterialResourceTypeEnum, 'METAL', INDETERMINATE) -plastic = getattr(IfcConstructionMaterialResourceTypeEnum, 'PLASTIC', INDETERMINATE) -wood = getattr(IfcConstructionMaterialResourceTypeEnum, 'WOOD', INDETERMINATE) -userdefined = getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstructionMaterialResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +aggregates = IfcConstructionMaterialResourceTypeEnum.AGGREGATES +concrete = IfcConstructionMaterialResourceTypeEnum.CONCRETE +drywall = IfcConstructionMaterialResourceTypeEnum.DRYWALL +fuel = IfcConstructionMaterialResourceTypeEnum.FUEL +gypsum = IfcConstructionMaterialResourceTypeEnum.GYPSUM +masonry = IfcConstructionMaterialResourceTypeEnum.MASONRY +metal = IfcConstructionMaterialResourceTypeEnum.METAL +plastic = IfcConstructionMaterialResourceTypeEnum.PLASTIC +wood = IfcConstructionMaterialResourceTypeEnum.WOOD +userdefined = IfcConstructionMaterialResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionMaterialResourceTypeEnum.NOTDEFINED IfcConstructionProductResourceTypeEnum = enum_namespace() -assembly = getattr(IfcConstructionProductResourceTypeEnum, 'ASSEMBLY', INDETERMINATE) -formwork = getattr(IfcConstructionProductResourceTypeEnum, 'FORMWORK', INDETERMINATE) -userdefined = getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstructionProductResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +assembly = IfcConstructionProductResourceTypeEnum.ASSEMBLY +formwork = IfcConstructionProductResourceTypeEnum.FORMWORK +userdefined = IfcConstructionProductResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionProductResourceTypeEnum.NOTDEFINED IfcControllerTypeEnum = enum_namespace() -floating = getattr(IfcControllerTypeEnum, 'FLOATING', INDETERMINATE) -multiposition = getattr(IfcControllerTypeEnum, 'MULTIPOSITION', INDETERMINATE) -programmable = getattr(IfcControllerTypeEnum, 'PROGRAMMABLE', INDETERMINATE) -proportional = getattr(IfcControllerTypeEnum, 'PROPORTIONAL', INDETERMINATE) -twoposition = getattr(IfcControllerTypeEnum, 'TWOPOSITION', INDETERMINATE) -userdefined = getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcControllerTypeEnum, 'NOTDEFINED', INDETERMINATE) +floating = IfcControllerTypeEnum.FLOATING +multiposition = IfcControllerTypeEnum.MULTIPOSITION +programmable = IfcControllerTypeEnum.PROGRAMMABLE +proportional = IfcControllerTypeEnum.PROPORTIONAL +twoposition = IfcControllerTypeEnum.TWOPOSITION +userdefined = IfcControllerTypeEnum.USERDEFINED +notdefined = IfcControllerTypeEnum.NOTDEFINED IfcConveyorSegmentTypeEnum = enum_namespace() -beltconveyor = getattr(IfcConveyorSegmentTypeEnum, 'BELTCONVEYOR', INDETERMINATE) -bucketconveyor = getattr(IfcConveyorSegmentTypeEnum, 'BUCKETCONVEYOR', INDETERMINATE) -chuteconveyor = getattr(IfcConveyorSegmentTypeEnum, 'CHUTECONVEYOR', INDETERMINATE) -screwconveyor = getattr(IfcConveyorSegmentTypeEnum, 'SCREWCONVEYOR', INDETERMINATE) -userdefined = getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConveyorSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltconveyor = IfcConveyorSegmentTypeEnum.BELTCONVEYOR +bucketconveyor = IfcConveyorSegmentTypeEnum.BUCKETCONVEYOR +chuteconveyor = IfcConveyorSegmentTypeEnum.CHUTECONVEYOR +screwconveyor = IfcConveyorSegmentTypeEnum.SCREWCONVEYOR +userdefined = IfcConveyorSegmentTypeEnum.USERDEFINED +notdefined = IfcConveyorSegmentTypeEnum.NOTDEFINED IfcCooledBeamTypeEnum = enum_namespace() -active = getattr(IfcCooledBeamTypeEnum, 'ACTIVE', INDETERMINATE) -passive = getattr(IfcCooledBeamTypeEnum, 'PASSIVE', INDETERMINATE) -userdefined = getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCooledBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +active = IfcCooledBeamTypeEnum.ACTIVE +passive = IfcCooledBeamTypeEnum.PASSIVE +userdefined = IfcCooledBeamTypeEnum.USERDEFINED +notdefined = IfcCooledBeamTypeEnum.NOTDEFINED IfcCoolingTowerTypeEnum = enum_namespace() -mechanicalforceddraft = getattr(IfcCoolingTowerTypeEnum, 'MECHANICALFORCEDDRAFT', INDETERMINATE) -mechanicalinduceddraft = getattr(IfcCoolingTowerTypeEnum, 'MECHANICALINDUCEDDRAFT', INDETERMINATE) -naturaldraft = getattr(IfcCoolingTowerTypeEnum, 'NATURALDRAFT', INDETERMINATE) -userdefined = getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoolingTowerTypeEnum, 'NOTDEFINED', INDETERMINATE) +mechanicalforceddraft = IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT +mechanicalinduceddraft = IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT +naturaldraft = IfcCoolingTowerTypeEnum.NATURALDRAFT +userdefined = IfcCoolingTowerTypeEnum.USERDEFINED +notdefined = IfcCoolingTowerTypeEnum.NOTDEFINED IfcCostItemTypeEnum = enum_namespace() -userdefined = getattr(IfcCostItemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCostItemTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCostItemTypeEnum.USERDEFINED +notdefined = IfcCostItemTypeEnum.NOTDEFINED IfcCostScheduleTypeEnum = enum_namespace() -budget = getattr(IfcCostScheduleTypeEnum, 'BUDGET', INDETERMINATE) -costplan = getattr(IfcCostScheduleTypeEnum, 'COSTPLAN', INDETERMINATE) -estimate = getattr(IfcCostScheduleTypeEnum, 'ESTIMATE', INDETERMINATE) -pricedbillofquantities = getattr(IfcCostScheduleTypeEnum, 'PRICEDBILLOFQUANTITIES', INDETERMINATE) -scheduleofrates = getattr(IfcCostScheduleTypeEnum, 'SCHEDULEOFRATES', INDETERMINATE) -tender = getattr(IfcCostScheduleTypeEnum, 'TENDER', INDETERMINATE) -unpricedbillofquantities = getattr(IfcCostScheduleTypeEnum, 'UNPRICEDBILLOFQUANTITIES', INDETERMINATE) -userdefined = getattr(IfcCostScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCostScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +budget = IfcCostScheduleTypeEnum.BUDGET +costplan = IfcCostScheduleTypeEnum.COSTPLAN +estimate = IfcCostScheduleTypeEnum.ESTIMATE +pricedbillofquantities = IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES +scheduleofrates = IfcCostScheduleTypeEnum.SCHEDULEOFRATES +tender = IfcCostScheduleTypeEnum.TENDER +unpricedbillofquantities = IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES +userdefined = IfcCostScheduleTypeEnum.USERDEFINED +notdefined = IfcCostScheduleTypeEnum.NOTDEFINED IfcCourseTypeEnum = enum_namespace() -armour = getattr(IfcCourseTypeEnum, 'ARMOUR', INDETERMINATE) -ballastbed = getattr(IfcCourseTypeEnum, 'BALLASTBED', INDETERMINATE) -core = getattr(IfcCourseTypeEnum, 'CORE', INDETERMINATE) -filter = getattr(IfcCourseTypeEnum, 'FILTER', INDETERMINATE) -pavement = getattr(IfcCourseTypeEnum, 'PAVEMENT', INDETERMINATE) -protection = getattr(IfcCourseTypeEnum, 'PROTECTION', INDETERMINATE) -userdefined = getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCourseTypeEnum, 'NOTDEFINED', INDETERMINATE) +armour = IfcCourseTypeEnum.ARMOUR +ballastbed = IfcCourseTypeEnum.BALLASTBED +core = IfcCourseTypeEnum.CORE +filter = IfcCourseTypeEnum.FILTER +pavement = IfcCourseTypeEnum.PAVEMENT +protection = IfcCourseTypeEnum.PROTECTION +userdefined = IfcCourseTypeEnum.USERDEFINED +notdefined = IfcCourseTypeEnum.NOTDEFINED IfcCoveringTypeEnum = enum_namespace() -ceiling = getattr(IfcCoveringTypeEnum, 'CEILING', INDETERMINATE) -cladding = getattr(IfcCoveringTypeEnum, 'CLADDING', INDETERMINATE) -coping = getattr(IfcCoveringTypeEnum, 'COPING', INDETERMINATE) -flooring = getattr(IfcCoveringTypeEnum, 'FLOORING', INDETERMINATE) -insulation = getattr(IfcCoveringTypeEnum, 'INSULATION', INDETERMINATE) -membrane = getattr(IfcCoveringTypeEnum, 'MEMBRANE', INDETERMINATE) -molding = getattr(IfcCoveringTypeEnum, 'MOLDING', INDETERMINATE) -roofing = getattr(IfcCoveringTypeEnum, 'ROOFING', INDETERMINATE) -skirtingboard = getattr(IfcCoveringTypeEnum, 'SKIRTINGBOARD', INDETERMINATE) -sleeving = getattr(IfcCoveringTypeEnum, 'SLEEVING', INDETERMINATE) -topping = getattr(IfcCoveringTypeEnum, 'TOPPING', INDETERMINATE) -wrapping = getattr(IfcCoveringTypeEnum, 'WRAPPING', INDETERMINATE) -userdefined = getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoveringTypeEnum, 'NOTDEFINED', INDETERMINATE) +ceiling = IfcCoveringTypeEnum.CEILING +cladding = IfcCoveringTypeEnum.CLADDING +coping = IfcCoveringTypeEnum.COPING +flooring = IfcCoveringTypeEnum.FLOORING +insulation = IfcCoveringTypeEnum.INSULATION +membrane = IfcCoveringTypeEnum.MEMBRANE +molding = IfcCoveringTypeEnum.MOLDING +roofing = IfcCoveringTypeEnum.ROOFING +skirtingboard = IfcCoveringTypeEnum.SKIRTINGBOARD +sleeving = IfcCoveringTypeEnum.SLEEVING +topping = IfcCoveringTypeEnum.TOPPING +wrapping = IfcCoveringTypeEnum.WRAPPING +userdefined = IfcCoveringTypeEnum.USERDEFINED +notdefined = IfcCoveringTypeEnum.NOTDEFINED IfcCrewResourceTypeEnum = enum_namespace() -office = getattr(IfcCrewResourceTypeEnum, 'OFFICE', INDETERMINATE) -site = getattr(IfcCrewResourceTypeEnum, 'SITE', INDETERMINATE) -userdefined = getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCrewResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +office = IfcCrewResourceTypeEnum.OFFICE +site = IfcCrewResourceTypeEnum.SITE +userdefined = IfcCrewResourceTypeEnum.USERDEFINED +notdefined = IfcCrewResourceTypeEnum.NOTDEFINED IfcCurtainWallTypeEnum = enum_namespace() -userdefined = getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCurtainWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCurtainWallTypeEnum.USERDEFINED +notdefined = IfcCurtainWallTypeEnum.NOTDEFINED IfcCurveInterpolationEnum = enum_namespace() -linear = getattr(IfcCurveInterpolationEnum, 'LINEAR', INDETERMINATE) -log_linear = getattr(IfcCurveInterpolationEnum, 'LOG_LINEAR', INDETERMINATE) -log_log = getattr(IfcCurveInterpolationEnum, 'LOG_LOG', INDETERMINATE) -notdefined = getattr(IfcCurveInterpolationEnum, 'NOTDEFINED', INDETERMINATE) +linear = IfcCurveInterpolationEnum.LINEAR +log_linear = IfcCurveInterpolationEnum.LOG_LINEAR +log_log = IfcCurveInterpolationEnum.LOG_LOG +notdefined = IfcCurveInterpolationEnum.NOTDEFINED IfcDamperTypeEnum = enum_namespace() -backdraftdamper = getattr(IfcDamperTypeEnum, 'BACKDRAFTDAMPER', INDETERMINATE) -balancingdamper = getattr(IfcDamperTypeEnum, 'BALANCINGDAMPER', INDETERMINATE) -blastdamper = getattr(IfcDamperTypeEnum, 'BLASTDAMPER', INDETERMINATE) -controldamper = getattr(IfcDamperTypeEnum, 'CONTROLDAMPER', INDETERMINATE) -firedamper = getattr(IfcDamperTypeEnum, 'FIREDAMPER', INDETERMINATE) -firesmokedamper = getattr(IfcDamperTypeEnum, 'FIRESMOKEDAMPER', INDETERMINATE) -fumehoodexhaust = getattr(IfcDamperTypeEnum, 'FUMEHOODEXHAUST', INDETERMINATE) -gravitydamper = getattr(IfcDamperTypeEnum, 'GRAVITYDAMPER', INDETERMINATE) -gravityreliefdamper = getattr(IfcDamperTypeEnum, 'GRAVITYRELIEFDAMPER', INDETERMINATE) -reliefdamper = getattr(IfcDamperTypeEnum, 'RELIEFDAMPER', INDETERMINATE) -smokedamper = getattr(IfcDamperTypeEnum, 'SMOKEDAMPER', INDETERMINATE) -userdefined = getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +backdraftdamper = IfcDamperTypeEnum.BACKDRAFTDAMPER +balancingdamper = IfcDamperTypeEnum.BALANCINGDAMPER +blastdamper = IfcDamperTypeEnum.BLASTDAMPER +controldamper = IfcDamperTypeEnum.CONTROLDAMPER +firedamper = IfcDamperTypeEnum.FIREDAMPER +firesmokedamper = IfcDamperTypeEnum.FIRESMOKEDAMPER +fumehoodexhaust = IfcDamperTypeEnum.FUMEHOODEXHAUST +gravitydamper = IfcDamperTypeEnum.GRAVITYDAMPER +gravityreliefdamper = IfcDamperTypeEnum.GRAVITYRELIEFDAMPER +reliefdamper = IfcDamperTypeEnum.RELIEFDAMPER +smokedamper = IfcDamperTypeEnum.SMOKEDAMPER +userdefined = IfcDamperTypeEnum.USERDEFINED +notdefined = IfcDamperTypeEnum.NOTDEFINED IfcDataOriginEnum = enum_namespace() -measured = getattr(IfcDataOriginEnum, 'MEASURED', INDETERMINATE) -predicted = getattr(IfcDataOriginEnum, 'PREDICTED', INDETERMINATE) -simulated = getattr(IfcDataOriginEnum, 'SIMULATED', INDETERMINATE) -userdefined = getattr(IfcDataOriginEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDataOriginEnum, 'NOTDEFINED', INDETERMINATE) +measured = IfcDataOriginEnum.MEASURED +predicted = IfcDataOriginEnum.PREDICTED +simulated = IfcDataOriginEnum.SIMULATED +userdefined = IfcDataOriginEnum.USERDEFINED +notdefined = IfcDataOriginEnum.NOTDEFINED IfcDerivedUnitEnum = enum_namespace() -accelerationunit = getattr(IfcDerivedUnitEnum, 'ACCELERATIONUNIT', INDETERMINATE) -angularvelocityunit = getattr(IfcDerivedUnitEnum, 'ANGULARVELOCITYUNIT', INDETERMINATE) -areadensityunit = getattr(IfcDerivedUnitEnum, 'AREADENSITYUNIT', INDETERMINATE) -compoundplaneangleunit = getattr(IfcDerivedUnitEnum, 'COMPOUNDPLANEANGLEUNIT', INDETERMINATE) -curvatureunit = getattr(IfcDerivedUnitEnum, 'CURVATUREUNIT', INDETERMINATE) -dynamicviscosityunit = getattr(IfcDerivedUnitEnum, 'DYNAMICVISCOSITYUNIT', INDETERMINATE) -heatfluxdensityunit = getattr(IfcDerivedUnitEnum, 'HEATFLUXDENSITYUNIT', INDETERMINATE) -heatingvalueunit = getattr(IfcDerivedUnitEnum, 'HEATINGVALUEUNIT', INDETERMINATE) -integercountrateunit = getattr(IfcDerivedUnitEnum, 'INTEGERCOUNTRATEUNIT', INDETERMINATE) -ionconcentrationunit = getattr(IfcDerivedUnitEnum, 'IONCONCENTRATIONUNIT', INDETERMINATE) -isothermalmoisturecapacityunit = getattr(IfcDerivedUnitEnum, 'ISOTHERMALMOISTURECAPACITYUNIT', INDETERMINATE) -kinematicviscosityunit = getattr(IfcDerivedUnitEnum, 'KINEMATICVISCOSITYUNIT', INDETERMINATE) -linearforceunit = getattr(IfcDerivedUnitEnum, 'LINEARFORCEUNIT', INDETERMINATE) -linearmomentunit = getattr(IfcDerivedUnitEnum, 'LINEARMOMENTUNIT', INDETERMINATE) -linearstiffnessunit = getattr(IfcDerivedUnitEnum, 'LINEARSTIFFNESSUNIT', INDETERMINATE) -linearvelocityunit = getattr(IfcDerivedUnitEnum, 'LINEARVELOCITYUNIT', INDETERMINATE) -luminousintensitydistributionunit = getattr(IfcDerivedUnitEnum, 'LUMINOUSINTENSITYDISTRIBUTIONUNIT', INDETERMINATE) -massdensityunit = getattr(IfcDerivedUnitEnum, 'MASSDENSITYUNIT', INDETERMINATE) -massflowrateunit = getattr(IfcDerivedUnitEnum, 'MASSFLOWRATEUNIT', INDETERMINATE) -massperlengthunit = getattr(IfcDerivedUnitEnum, 'MASSPERLENGTHUNIT', INDETERMINATE) -modulusofelasticityunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFELASTICITYUNIT', INDETERMINATE) -modulusoflinearsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFLINEARSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofrotationalsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFROTATIONALSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFSUBGRADEREACTIONUNIT', INDETERMINATE) -moisturediffusivityunit = getattr(IfcDerivedUnitEnum, 'MOISTUREDIFFUSIVITYUNIT', INDETERMINATE) -molecularweightunit = getattr(IfcDerivedUnitEnum, 'MOLECULARWEIGHTUNIT', INDETERMINATE) -momentofinertiaunit = getattr(IfcDerivedUnitEnum, 'MOMENTOFINERTIAUNIT', INDETERMINATE) -phunit = getattr(IfcDerivedUnitEnum, 'PHUNIT', INDETERMINATE) -planarforceunit = getattr(IfcDerivedUnitEnum, 'PLANARFORCEUNIT', INDETERMINATE) -rotationalfrequencyunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALFREQUENCYUNIT', INDETERMINATE) -rotationalmassunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALMASSUNIT', INDETERMINATE) -rotationalstiffnessunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALSTIFFNESSUNIT', INDETERMINATE) -sectionareaintegralunit = getattr(IfcDerivedUnitEnum, 'SECTIONAREAINTEGRALUNIT', INDETERMINATE) -sectionmodulusunit = getattr(IfcDerivedUnitEnum, 'SECTIONMODULUSUNIT', INDETERMINATE) -shearmodulusunit = getattr(IfcDerivedUnitEnum, 'SHEARMODULUSUNIT', INDETERMINATE) -soundpowerlevelunit = getattr(IfcDerivedUnitEnum, 'SOUNDPOWERLEVELUNIT', INDETERMINATE) -soundpowerunit = getattr(IfcDerivedUnitEnum, 'SOUNDPOWERUNIT', INDETERMINATE) -soundpressurelevelunit = getattr(IfcDerivedUnitEnum, 'SOUNDPRESSURELEVELUNIT', INDETERMINATE) -soundpressureunit = getattr(IfcDerivedUnitEnum, 'SOUNDPRESSUREUNIT', INDETERMINATE) -specificheatcapacityunit = getattr(IfcDerivedUnitEnum, 'SPECIFICHEATCAPACITYUNIT', INDETERMINATE) -temperaturegradientunit = getattr(IfcDerivedUnitEnum, 'TEMPERATUREGRADIENTUNIT', INDETERMINATE) -temperaturerateofchangeunit = getattr(IfcDerivedUnitEnum, 'TEMPERATURERATEOFCHANGEUNIT', INDETERMINATE) -thermaladmittanceunit = getattr(IfcDerivedUnitEnum, 'THERMALADMITTANCEUNIT', INDETERMINATE) -thermalconductanceunit = getattr(IfcDerivedUnitEnum, 'THERMALCONDUCTANCEUNIT', INDETERMINATE) -thermalexpansioncoefficientunit = getattr(IfcDerivedUnitEnum, 'THERMALEXPANSIONCOEFFICIENTUNIT', INDETERMINATE) -thermalresistanceunit = getattr(IfcDerivedUnitEnum, 'THERMALRESISTANCEUNIT', INDETERMINATE) -thermaltransmittanceunit = getattr(IfcDerivedUnitEnum, 'THERMALTRANSMITTANCEUNIT', INDETERMINATE) -torqueunit = getattr(IfcDerivedUnitEnum, 'TORQUEUNIT', INDETERMINATE) -vaporpermeabilityunit = getattr(IfcDerivedUnitEnum, 'VAPORPERMEABILITYUNIT', INDETERMINATE) -volumetricflowrateunit = getattr(IfcDerivedUnitEnum, 'VOLUMETRICFLOWRATEUNIT', INDETERMINATE) -warpingconstantunit = getattr(IfcDerivedUnitEnum, 'WARPINGCONSTANTUNIT', INDETERMINATE) -warpingmomentunit = getattr(IfcDerivedUnitEnum, 'WARPINGMOMENTUNIT', INDETERMINATE) -userdefined = getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) +accelerationunit = IfcDerivedUnitEnum.ACCELERATIONUNIT +angularvelocityunit = IfcDerivedUnitEnum.ANGULARVELOCITYUNIT +areadensityunit = IfcDerivedUnitEnum.AREADENSITYUNIT +compoundplaneangleunit = IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT +curvatureunit = IfcDerivedUnitEnum.CURVATUREUNIT +dynamicviscosityunit = IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT +heatfluxdensityunit = IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT +heatingvalueunit = IfcDerivedUnitEnum.HEATINGVALUEUNIT +integercountrateunit = IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT +ionconcentrationunit = IfcDerivedUnitEnum.IONCONCENTRATIONUNIT +isothermalmoisturecapacityunit = IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT +kinematicviscosityunit = IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT +linearforceunit = IfcDerivedUnitEnum.LINEARFORCEUNIT +linearmomentunit = IfcDerivedUnitEnum.LINEARMOMENTUNIT +linearstiffnessunit = IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT +linearvelocityunit = IfcDerivedUnitEnum.LINEARVELOCITYUNIT +luminousintensitydistributionunit = IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT +massdensityunit = IfcDerivedUnitEnum.MASSDENSITYUNIT +massflowrateunit = IfcDerivedUnitEnum.MASSFLOWRATEUNIT +massperlengthunit = IfcDerivedUnitEnum.MASSPERLENGTHUNIT +modulusofelasticityunit = IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT +modulusoflinearsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT +modulusofrotationalsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT +modulusofsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT +moisturediffusivityunit = IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT +molecularweightunit = IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT +momentofinertiaunit = IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT +phunit = IfcDerivedUnitEnum.PHUNIT +planarforceunit = IfcDerivedUnitEnum.PLANARFORCEUNIT +rotationalfrequencyunit = IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT +rotationalmassunit = IfcDerivedUnitEnum.ROTATIONALMASSUNIT +rotationalstiffnessunit = IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT +sectionareaintegralunit = IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT +sectionmodulusunit = IfcDerivedUnitEnum.SECTIONMODULUSUNIT +shearmodulusunit = IfcDerivedUnitEnum.SHEARMODULUSUNIT +soundpowerlevelunit = IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT +soundpowerunit = IfcDerivedUnitEnum.SOUNDPOWERUNIT +soundpressurelevelunit = IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT +soundpressureunit = IfcDerivedUnitEnum.SOUNDPRESSUREUNIT +specificheatcapacityunit = IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT +temperaturegradientunit = IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT +temperaturerateofchangeunit = IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT +thermaladmittanceunit = IfcDerivedUnitEnum.THERMALADMITTANCEUNIT +thermalconductanceunit = IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT +thermalexpansioncoefficientunit = IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT +thermalresistanceunit = IfcDerivedUnitEnum.THERMALRESISTANCEUNIT +thermaltransmittanceunit = IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT +torqueunit = IfcDerivedUnitEnum.TORQUEUNIT +vaporpermeabilityunit = IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT +volumetricflowrateunit = IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT +warpingconstantunit = IfcDerivedUnitEnum.WARPINGCONSTANTUNIT +warpingmomentunit = IfcDerivedUnitEnum.WARPINGMOMENTUNIT +userdefined = IfcDerivedUnitEnum.USERDEFINED IfcDirectionSenseEnum = enum_namespace() -negative = getattr(IfcDirectionSenseEnum, 'NEGATIVE', INDETERMINATE) -positive = getattr(IfcDirectionSenseEnum, 'POSITIVE', INDETERMINATE) +negative = IfcDirectionSenseEnum.NEGATIVE +positive = IfcDirectionSenseEnum.POSITIVE IfcDiscreteAccessoryTypeEnum = enum_namespace() -anchorplate = getattr(IfcDiscreteAccessoryTypeEnum, 'ANCHORPLATE', INDETERMINATE) -birdprotection = getattr(IfcDiscreteAccessoryTypeEnum, 'BIRDPROTECTION', INDETERMINATE) -bracket = getattr(IfcDiscreteAccessoryTypeEnum, 'BRACKET', INDETERMINATE) -cablearranger = getattr(IfcDiscreteAccessoryTypeEnum, 'CABLEARRANGER', INDETERMINATE) -elastic_cushion = getattr(IfcDiscreteAccessoryTypeEnum, 'ELASTIC_CUSHION', INDETERMINATE) -expansion_joint_device = getattr(IfcDiscreteAccessoryTypeEnum, 'EXPANSION_JOINT_DEVICE', INDETERMINATE) -filler = getattr(IfcDiscreteAccessoryTypeEnum, 'FILLER', INDETERMINATE) -flashing = getattr(IfcDiscreteAccessoryTypeEnum, 'FLASHING', INDETERMINATE) -insulator = getattr(IfcDiscreteAccessoryTypeEnum, 'INSULATOR', INDETERMINATE) -lock = getattr(IfcDiscreteAccessoryTypeEnum, 'LOCK', INDETERMINATE) -panel_strengthening = getattr(IfcDiscreteAccessoryTypeEnum, 'PANEL_STRENGTHENING', INDETERMINATE) -pointmachinemountingdevice = getattr(IfcDiscreteAccessoryTypeEnum, 'POINTMACHINEMOUNTINGDEVICE', INDETERMINATE) -point_machine_locking_device = getattr(IfcDiscreteAccessoryTypeEnum, 'POINT_MACHINE_LOCKING_DEVICE', INDETERMINATE) -railbrace = getattr(IfcDiscreteAccessoryTypeEnum, 'RAILBRACE', INDETERMINATE) -railpad = getattr(IfcDiscreteAccessoryTypeEnum, 'RAILPAD', INDETERMINATE) -rail_lubrication = getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_LUBRICATION', INDETERMINATE) -rail_mechanical_equipment = getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT', INDETERMINATE) -shoe = getattr(IfcDiscreteAccessoryTypeEnum, 'SHOE', INDETERMINATE) -slidingchair = getattr(IfcDiscreteAccessoryTypeEnum, 'SLIDINGCHAIR', INDETERMINATE) -soundabsorption = getattr(IfcDiscreteAccessoryTypeEnum, 'SOUNDABSORPTION', INDETERMINATE) -tensioningequipment = getattr(IfcDiscreteAccessoryTypeEnum, 'TENSIONINGEQUIPMENT', INDETERMINATE) -userdefined = getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDiscreteAccessoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorplate = IfcDiscreteAccessoryTypeEnum.ANCHORPLATE +birdprotection = IfcDiscreteAccessoryTypeEnum.BIRDPROTECTION +bracket = IfcDiscreteAccessoryTypeEnum.BRACKET +cablearranger = IfcDiscreteAccessoryTypeEnum.CABLEARRANGER +elastic_cushion = IfcDiscreteAccessoryTypeEnum.ELASTIC_CUSHION +expansion_joint_device = IfcDiscreteAccessoryTypeEnum.EXPANSION_JOINT_DEVICE +filler = IfcDiscreteAccessoryTypeEnum.FILLER +flashing = IfcDiscreteAccessoryTypeEnum.FLASHING +insulator = IfcDiscreteAccessoryTypeEnum.INSULATOR +lock = IfcDiscreteAccessoryTypeEnum.LOCK +panel_strengthening = IfcDiscreteAccessoryTypeEnum.PANEL_STRENGTHENING +pointmachinemountingdevice = IfcDiscreteAccessoryTypeEnum.POINTMACHINEMOUNTINGDEVICE +point_machine_locking_device = IfcDiscreteAccessoryTypeEnum.POINT_MACHINE_LOCKING_DEVICE +railbrace = IfcDiscreteAccessoryTypeEnum.RAILBRACE +railpad = IfcDiscreteAccessoryTypeEnum.RAILPAD +rail_lubrication = IfcDiscreteAccessoryTypeEnum.RAIL_LUBRICATION +rail_mechanical_equipment = IfcDiscreteAccessoryTypeEnum.RAIL_MECHANICAL_EQUIPMENT +shoe = IfcDiscreteAccessoryTypeEnum.SHOE +slidingchair = IfcDiscreteAccessoryTypeEnum.SLIDINGCHAIR +soundabsorption = IfcDiscreteAccessoryTypeEnum.SOUNDABSORPTION +tensioningequipment = IfcDiscreteAccessoryTypeEnum.TENSIONINGEQUIPMENT +userdefined = IfcDiscreteAccessoryTypeEnum.USERDEFINED +notdefined = IfcDiscreteAccessoryTypeEnum.NOTDEFINED IfcDistributionBoardTypeEnum = enum_namespace() -consumerunit = getattr(IfcDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -dispatchingboard = getattr(IfcDistributionBoardTypeEnum, 'DISPATCHINGBOARD', INDETERMINATE) -distributionboard = getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -distributionframe = getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONFRAME', INDETERMINATE) -motorcontrolcentre = getattr(IfcDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = getattr(IfcDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcDistributionBoardTypeEnum.CONSUMERUNIT +dispatchingboard = IfcDistributionBoardTypeEnum.DISPATCHINGBOARD +distributionboard = IfcDistributionBoardTypeEnum.DISTRIBUTIONBOARD +distributionframe = IfcDistributionBoardTypeEnum.DISTRIBUTIONFRAME +motorcontrolcentre = IfcDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcDistributionBoardTypeEnum.NOTDEFINED IfcDistributionChamberElementTypeEnum = enum_namespace() -formedduct = getattr(IfcDistributionChamberElementTypeEnum, 'FORMEDDUCT', INDETERMINATE) -inspectionchamber = getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONCHAMBER', INDETERMINATE) -inspectionpit = getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONPIT', INDETERMINATE) -manhole = getattr(IfcDistributionChamberElementTypeEnum, 'MANHOLE', INDETERMINATE) -meterchamber = getattr(IfcDistributionChamberElementTypeEnum, 'METERCHAMBER', INDETERMINATE) -sump = getattr(IfcDistributionChamberElementTypeEnum, 'SUMP', INDETERMINATE) -trench = getattr(IfcDistributionChamberElementTypeEnum, 'TRENCH', INDETERMINATE) -valvechamber = getattr(IfcDistributionChamberElementTypeEnum, 'VALVECHAMBER', INDETERMINATE) -userdefined = getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionChamberElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +formedduct = IfcDistributionChamberElementTypeEnum.FORMEDDUCT +inspectionchamber = IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER +inspectionpit = IfcDistributionChamberElementTypeEnum.INSPECTIONPIT +manhole = IfcDistributionChamberElementTypeEnum.MANHOLE +meterchamber = IfcDistributionChamberElementTypeEnum.METERCHAMBER +sump = IfcDistributionChamberElementTypeEnum.SUMP +trench = IfcDistributionChamberElementTypeEnum.TRENCH +valvechamber = IfcDistributionChamberElementTypeEnum.VALVECHAMBER +userdefined = IfcDistributionChamberElementTypeEnum.USERDEFINED +notdefined = IfcDistributionChamberElementTypeEnum.NOTDEFINED IfcDistributionPortTypeEnum = enum_namespace() -cable = getattr(IfcDistributionPortTypeEnum, 'CABLE', INDETERMINATE) -cablecarrier = getattr(IfcDistributionPortTypeEnum, 'CABLECARRIER', INDETERMINATE) -duct = getattr(IfcDistributionPortTypeEnum, 'DUCT', INDETERMINATE) -pipe = getattr(IfcDistributionPortTypeEnum, 'PIPE', INDETERMINATE) -wireless = getattr(IfcDistributionPortTypeEnum, 'WIRELESS', INDETERMINATE) -userdefined = getattr(IfcDistributionPortTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionPortTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcDistributionPortTypeEnum.CABLE +cablecarrier = IfcDistributionPortTypeEnum.CABLECARRIER +duct = IfcDistributionPortTypeEnum.DUCT +pipe = IfcDistributionPortTypeEnum.PIPE +wireless = IfcDistributionPortTypeEnum.WIRELESS +userdefined = IfcDistributionPortTypeEnum.USERDEFINED +notdefined = IfcDistributionPortTypeEnum.NOTDEFINED IfcDistributionSystemEnum = enum_namespace() -airconditioning = getattr(IfcDistributionSystemEnum, 'AIRCONDITIONING', INDETERMINATE) -audiovisual = getattr(IfcDistributionSystemEnum, 'AUDIOVISUAL', INDETERMINATE) -catenary_system = getattr(IfcDistributionSystemEnum, 'CATENARY_SYSTEM', INDETERMINATE) -chemical = getattr(IfcDistributionSystemEnum, 'CHEMICAL', INDETERMINATE) -chilledwater = getattr(IfcDistributionSystemEnum, 'CHILLEDWATER', INDETERMINATE) -communication = getattr(IfcDistributionSystemEnum, 'COMMUNICATION', INDETERMINATE) -compressedair = getattr(IfcDistributionSystemEnum, 'COMPRESSEDAIR', INDETERMINATE) -condenserwater = getattr(IfcDistributionSystemEnum, 'CONDENSERWATER', INDETERMINATE) -control = getattr(IfcDistributionSystemEnum, 'CONTROL', INDETERMINATE) -conveying = getattr(IfcDistributionSystemEnum, 'CONVEYING', INDETERMINATE) -data = getattr(IfcDistributionSystemEnum, 'DATA', INDETERMINATE) -disposal = getattr(IfcDistributionSystemEnum, 'DISPOSAL', INDETERMINATE) -domesticcoldwater = getattr(IfcDistributionSystemEnum, 'DOMESTICCOLDWATER', INDETERMINATE) -domestichotwater = getattr(IfcDistributionSystemEnum, 'DOMESTICHOTWATER', INDETERMINATE) -drainage = getattr(IfcDistributionSystemEnum, 'DRAINAGE', INDETERMINATE) -earthing = getattr(IfcDistributionSystemEnum, 'EARTHING', INDETERMINATE) -electrical = getattr(IfcDistributionSystemEnum, 'ELECTRICAL', INDETERMINATE) -electroacoustic = getattr(IfcDistributionSystemEnum, 'ELECTROACOUSTIC', INDETERMINATE) -exhaust = getattr(IfcDistributionSystemEnum, 'EXHAUST', INDETERMINATE) -fireprotection = getattr(IfcDistributionSystemEnum, 'FIREPROTECTION', INDETERMINATE) -fixedtransmissionnetwork = getattr(IfcDistributionSystemEnum, 'FIXEDTRANSMISSIONNETWORK', INDETERMINATE) -fuel = getattr(IfcDistributionSystemEnum, 'FUEL', INDETERMINATE) -gas = getattr(IfcDistributionSystemEnum, 'GAS', INDETERMINATE) -hazardous = getattr(IfcDistributionSystemEnum, 'HAZARDOUS', INDETERMINATE) -heating = getattr(IfcDistributionSystemEnum, 'HEATING', INDETERMINATE) -lighting = getattr(IfcDistributionSystemEnum, 'LIGHTING', INDETERMINATE) -lightningprotection = getattr(IfcDistributionSystemEnum, 'LIGHTNINGPROTECTION', INDETERMINATE) -mobilenetwork = getattr(IfcDistributionSystemEnum, 'MOBILENETWORK', INDETERMINATE) -monitoringsystem = getattr(IfcDistributionSystemEnum, 'MONITORINGSYSTEM', INDETERMINATE) -municipalsolidwaste = getattr(IfcDistributionSystemEnum, 'MUNICIPALSOLIDWASTE', INDETERMINATE) -oil = getattr(IfcDistributionSystemEnum, 'OIL', INDETERMINATE) -operational = getattr(IfcDistributionSystemEnum, 'OPERATIONAL', INDETERMINATE) -operationaltelephonysystem = getattr(IfcDistributionSystemEnum, 'OPERATIONALTELEPHONYSYSTEM', INDETERMINATE) -overhead_contactline_system = getattr(IfcDistributionSystemEnum, 'OVERHEAD_CONTACTLINE_SYSTEM', INDETERMINATE) -powergeneration = getattr(IfcDistributionSystemEnum, 'POWERGENERATION', INDETERMINATE) -rainwater = getattr(IfcDistributionSystemEnum, 'RAINWATER', INDETERMINATE) -refrigeration = getattr(IfcDistributionSystemEnum, 'REFRIGERATION', INDETERMINATE) -return_circuit = getattr(IfcDistributionSystemEnum, 'RETURN_CIRCUIT', INDETERMINATE) -security = getattr(IfcDistributionSystemEnum, 'SECURITY', INDETERMINATE) -sewage = getattr(IfcDistributionSystemEnum, 'SEWAGE', INDETERMINATE) -signal = getattr(IfcDistributionSystemEnum, 'SIGNAL', INDETERMINATE) -stormwater = getattr(IfcDistributionSystemEnum, 'STORMWATER', INDETERMINATE) -telephone = getattr(IfcDistributionSystemEnum, 'TELEPHONE', INDETERMINATE) -tv = getattr(IfcDistributionSystemEnum, 'TV', INDETERMINATE) -vacuum = getattr(IfcDistributionSystemEnum, 'VACUUM', INDETERMINATE) -vent = getattr(IfcDistributionSystemEnum, 'VENT', INDETERMINATE) -ventilation = getattr(IfcDistributionSystemEnum, 'VENTILATION', INDETERMINATE) -wastewater = getattr(IfcDistributionSystemEnum, 'WASTEWATER', INDETERMINATE) -watersupply = getattr(IfcDistributionSystemEnum, 'WATERSUPPLY', INDETERMINATE) -userdefined = getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionSystemEnum, 'NOTDEFINED', INDETERMINATE) +airconditioning = IfcDistributionSystemEnum.AIRCONDITIONING +audiovisual = IfcDistributionSystemEnum.AUDIOVISUAL +catenary_system = IfcDistributionSystemEnum.CATENARY_SYSTEM +chemical = IfcDistributionSystemEnum.CHEMICAL +chilledwater = IfcDistributionSystemEnum.CHILLEDWATER +communication = IfcDistributionSystemEnum.COMMUNICATION +compressedair = IfcDistributionSystemEnum.COMPRESSEDAIR +condenserwater = IfcDistributionSystemEnum.CONDENSERWATER +control = IfcDistributionSystemEnum.CONTROL +conveying = IfcDistributionSystemEnum.CONVEYING +data = IfcDistributionSystemEnum.DATA +disposal = IfcDistributionSystemEnum.DISPOSAL +domesticcoldwater = IfcDistributionSystemEnum.DOMESTICCOLDWATER +domestichotwater = IfcDistributionSystemEnum.DOMESTICHOTWATER +drainage = IfcDistributionSystemEnum.DRAINAGE +earthing = IfcDistributionSystemEnum.EARTHING +electrical = IfcDistributionSystemEnum.ELECTRICAL +electroacoustic = IfcDistributionSystemEnum.ELECTROACOUSTIC +exhaust = IfcDistributionSystemEnum.EXHAUST +fireprotection = IfcDistributionSystemEnum.FIREPROTECTION +fixedtransmissionnetwork = IfcDistributionSystemEnum.FIXEDTRANSMISSIONNETWORK +fuel = IfcDistributionSystemEnum.FUEL +gas = IfcDistributionSystemEnum.GAS +hazardous = IfcDistributionSystemEnum.HAZARDOUS +heating = IfcDistributionSystemEnum.HEATING +lighting = IfcDistributionSystemEnum.LIGHTING +lightningprotection = IfcDistributionSystemEnum.LIGHTNINGPROTECTION +mobilenetwork = IfcDistributionSystemEnum.MOBILENETWORK +monitoringsystem = IfcDistributionSystemEnum.MONITORINGSYSTEM +municipalsolidwaste = IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE +oil = IfcDistributionSystemEnum.OIL +operational = IfcDistributionSystemEnum.OPERATIONAL +operationaltelephonysystem = IfcDistributionSystemEnum.OPERATIONALTELEPHONYSYSTEM +overhead_contactline_system = IfcDistributionSystemEnum.OVERHEAD_CONTACTLINE_SYSTEM +powergeneration = IfcDistributionSystemEnum.POWERGENERATION +rainwater = IfcDistributionSystemEnum.RAINWATER +refrigeration = IfcDistributionSystemEnum.REFRIGERATION +return_circuit = IfcDistributionSystemEnum.RETURN_CIRCUIT +security = IfcDistributionSystemEnum.SECURITY +sewage = IfcDistributionSystemEnum.SEWAGE +signal = IfcDistributionSystemEnum.SIGNAL +stormwater = IfcDistributionSystemEnum.STORMWATER +telephone = IfcDistributionSystemEnum.TELEPHONE +tv = IfcDistributionSystemEnum.TV +vacuum = IfcDistributionSystemEnum.VACUUM +vent = IfcDistributionSystemEnum.VENT +ventilation = IfcDistributionSystemEnum.VENTILATION +wastewater = IfcDistributionSystemEnum.WASTEWATER +watersupply = IfcDistributionSystemEnum.WATERSUPPLY +userdefined = IfcDistributionSystemEnum.USERDEFINED +notdefined = IfcDistributionSystemEnum.NOTDEFINED IfcDocumentConfidentialityEnum = enum_namespace() -confidential = getattr(IfcDocumentConfidentialityEnum, 'CONFIDENTIAL', INDETERMINATE) -personal = getattr(IfcDocumentConfidentialityEnum, 'PERSONAL', INDETERMINATE) -public = getattr(IfcDocumentConfidentialityEnum, 'PUBLIC', INDETERMINATE) -restricted = getattr(IfcDocumentConfidentialityEnum, 'RESTRICTED', INDETERMINATE) -userdefined = getattr(IfcDocumentConfidentialityEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDocumentConfidentialityEnum, 'NOTDEFINED', INDETERMINATE) +confidential = IfcDocumentConfidentialityEnum.CONFIDENTIAL +personal = IfcDocumentConfidentialityEnum.PERSONAL +public = IfcDocumentConfidentialityEnum.PUBLIC +restricted = IfcDocumentConfidentialityEnum.RESTRICTED +userdefined = IfcDocumentConfidentialityEnum.USERDEFINED +notdefined = IfcDocumentConfidentialityEnum.NOTDEFINED IfcDocumentStatusEnum = enum_namespace() -draft = getattr(IfcDocumentStatusEnum, 'DRAFT', INDETERMINATE) -final = getattr(IfcDocumentStatusEnum, 'FINAL', INDETERMINATE) -finaldraft = getattr(IfcDocumentStatusEnum, 'FINALDRAFT', INDETERMINATE) -revision = getattr(IfcDocumentStatusEnum, 'REVISION', INDETERMINATE) -notdefined = getattr(IfcDocumentStatusEnum, 'NOTDEFINED', INDETERMINATE) +draft = IfcDocumentStatusEnum.DRAFT +final = IfcDocumentStatusEnum.FINAL +finaldraft = IfcDocumentStatusEnum.FINALDRAFT +revision = IfcDocumentStatusEnum.REVISION +notdefined = IfcDocumentStatusEnum.NOTDEFINED IfcDoorPanelOperationEnum = enum_namespace() -double_acting = getattr(IfcDoorPanelOperationEnum, 'DOUBLE_ACTING', INDETERMINATE) -fixedpanel = getattr(IfcDoorPanelOperationEnum, 'FIXEDPANEL', INDETERMINATE) -folding = getattr(IfcDoorPanelOperationEnum, 'FOLDING', INDETERMINATE) -revolving = getattr(IfcDoorPanelOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = getattr(IfcDoorPanelOperationEnum, 'ROLLINGUP', INDETERMINATE) -sliding = getattr(IfcDoorPanelOperationEnum, 'SLIDING', INDETERMINATE) -swinging = getattr(IfcDoorPanelOperationEnum, 'SWINGING', INDETERMINATE) -userdefined = getattr(IfcDoorPanelOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +double_acting = IfcDoorPanelOperationEnum.DOUBLE_ACTING +fixedpanel = IfcDoorPanelOperationEnum.FIXEDPANEL +folding = IfcDoorPanelOperationEnum.FOLDING +revolving = IfcDoorPanelOperationEnum.REVOLVING +rollingup = IfcDoorPanelOperationEnum.ROLLINGUP +sliding = IfcDoorPanelOperationEnum.SLIDING +swinging = IfcDoorPanelOperationEnum.SWINGING +userdefined = IfcDoorPanelOperationEnum.USERDEFINED +notdefined = IfcDoorPanelOperationEnum.NOTDEFINED IfcDoorPanelPositionEnum = enum_namespace() -left = getattr(IfcDoorPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = getattr(IfcDoorPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = getattr(IfcDoorPanelPositionEnum, 'RIGHT', INDETERMINATE) -notdefined = getattr(IfcDoorPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcDoorPanelPositionEnum.LEFT +middle = IfcDoorPanelPositionEnum.MIDDLE +right = IfcDoorPanelPositionEnum.RIGHT +notdefined = IfcDoorPanelPositionEnum.NOTDEFINED IfcDoorTypeEnum = enum_namespace() -boom_barrier = getattr(IfcDoorTypeEnum, 'BOOM_BARRIER', INDETERMINATE) -door = getattr(IfcDoorTypeEnum, 'DOOR', INDETERMINATE) -gate = getattr(IfcDoorTypeEnum, 'GATE', INDETERMINATE) -trapdoor = getattr(IfcDoorTypeEnum, 'TRAPDOOR', INDETERMINATE) -turnstile = getattr(IfcDoorTypeEnum, 'TURNSTILE', INDETERMINATE) -userdefined = getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorTypeEnum, 'NOTDEFINED', INDETERMINATE) +boom_barrier = IfcDoorTypeEnum.BOOM_BARRIER +door = IfcDoorTypeEnum.DOOR +gate = IfcDoorTypeEnum.GATE +trapdoor = IfcDoorTypeEnum.TRAPDOOR +turnstile = IfcDoorTypeEnum.TURNSTILE +userdefined = IfcDoorTypeEnum.USERDEFINED +notdefined = IfcDoorTypeEnum.NOTDEFINED IfcDoorTypeOperationEnum = enum_namespace() -double_door_double_swing = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -double_door_folding = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -double_door_lifting_vertical = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_LIFTING_VERTICAL', INDETERMINATE) -double_door_single_swing = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_door_sliding = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -double_swing_left = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -folding_to_left = getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -lifting_horizontal = getattr(IfcDoorTypeOperationEnum, 'LIFTING_HORIZONTAL', INDETERMINATE) -lifting_vertical_left = getattr(IfcDoorTypeOperationEnum, 'LIFTING_VERTICAL_LEFT', INDETERMINATE) -lifting_vertical_right = getattr(IfcDoorTypeOperationEnum, 'LIFTING_VERTICAL_RIGHT', INDETERMINATE) -revolving = getattr(IfcDoorTypeOperationEnum, 'REVOLVING', INDETERMINATE) -revolving_vertical = getattr(IfcDoorTypeOperationEnum, 'REVOLVING_VERTICAL', INDETERMINATE) -rollingup = getattr(IfcDoorTypeOperationEnum, 'ROLLINGUP', INDETERMINATE) -single_swing_left = getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -sliding_to_left = getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -swing_fixed_left = getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_LEFT', INDETERMINATE) -swing_fixed_right = getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_RIGHT', INDETERMINATE) -userdefined = getattr(IfcDoorTypeOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorTypeOperationEnum, 'NOTDEFINED', INDETERMINATE) +double_door_double_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +double_door_folding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_FOLDING +double_door_lifting_vertical = IfcDoorTypeOperationEnum.DOUBLE_DOOR_LIFTING_VERTICAL +double_door_single_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_door_sliding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SLIDING +double_swing_left = IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT +folding_to_left = IfcDoorTypeOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT +lifting_horizontal = IfcDoorTypeOperationEnum.LIFTING_HORIZONTAL +lifting_vertical_left = IfcDoorTypeOperationEnum.LIFTING_VERTICAL_LEFT +lifting_vertical_right = IfcDoorTypeOperationEnum.LIFTING_VERTICAL_RIGHT +revolving = IfcDoorTypeOperationEnum.REVOLVING +revolving_vertical = IfcDoorTypeOperationEnum.REVOLVING_VERTICAL +rollingup = IfcDoorTypeOperationEnum.ROLLINGUP +single_swing_left = IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT +sliding_to_left = IfcDoorTypeOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT +swing_fixed_left = IfcDoorTypeOperationEnum.SWING_FIXED_LEFT +swing_fixed_right = IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT +userdefined = IfcDoorTypeOperationEnum.USERDEFINED +notdefined = IfcDoorTypeOperationEnum.NOTDEFINED IfcDuctFittingTypeEnum = enum_namespace() -bend = getattr(IfcDuctFittingTypeEnum, 'BEND', INDETERMINATE) -connector = getattr(IfcDuctFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcDuctFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcDuctFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcDuctFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = getattr(IfcDuctFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = getattr(IfcDuctFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcDuctFittingTypeEnum.BEND +connector = IfcDuctFittingTypeEnum.CONNECTOR +entry = IfcDuctFittingTypeEnum.ENTRY +exit = IfcDuctFittingTypeEnum.EXIT +junction = IfcDuctFittingTypeEnum.JUNCTION +obstruction = IfcDuctFittingTypeEnum.OBSTRUCTION +transition = IfcDuctFittingTypeEnum.TRANSITION +userdefined = IfcDuctFittingTypeEnum.USERDEFINED +notdefined = IfcDuctFittingTypeEnum.NOTDEFINED IfcDuctSegmentTypeEnum = enum_namespace() -flexiblesegment = getattr(IfcDuctSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -rigidsegment = getattr(IfcDuctSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -userdefined = getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +flexiblesegment = IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT +rigidsegment = IfcDuctSegmentTypeEnum.RIGIDSEGMENT +userdefined = IfcDuctSegmentTypeEnum.USERDEFINED +notdefined = IfcDuctSegmentTypeEnum.NOTDEFINED IfcDuctSilencerTypeEnum = enum_namespace() -flatoval = getattr(IfcDuctSilencerTypeEnum, 'FLATOVAL', INDETERMINATE) -rectangular = getattr(IfcDuctSilencerTypeEnum, 'RECTANGULAR', INDETERMINATE) -round = getattr(IfcDuctSilencerTypeEnum, 'ROUND', INDETERMINATE) -userdefined = getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctSilencerTypeEnum, 'NOTDEFINED', INDETERMINATE) +flatoval = IfcDuctSilencerTypeEnum.FLATOVAL +rectangular = IfcDuctSilencerTypeEnum.RECTANGULAR +round = IfcDuctSilencerTypeEnum.ROUND +userdefined = IfcDuctSilencerTypeEnum.USERDEFINED +notdefined = IfcDuctSilencerTypeEnum.NOTDEFINED IfcEarthworksCutTypeEnum = enum_namespace() -base_excavation = getattr(IfcEarthworksCutTypeEnum, 'BASE_EXCAVATION', INDETERMINATE) -cut = getattr(IfcEarthworksCutTypeEnum, 'CUT', INDETERMINATE) -dredging = getattr(IfcEarthworksCutTypeEnum, 'DREDGING', INDETERMINATE) -excavation = getattr(IfcEarthworksCutTypeEnum, 'EXCAVATION', INDETERMINATE) -overexcavation = getattr(IfcEarthworksCutTypeEnum, 'OVEREXCAVATION', INDETERMINATE) -pavementmilling = getattr(IfcEarthworksCutTypeEnum, 'PAVEMENTMILLING', INDETERMINATE) -stepexcavation = getattr(IfcEarthworksCutTypeEnum, 'STEPEXCAVATION', INDETERMINATE) -topsoilremoval = getattr(IfcEarthworksCutTypeEnum, 'TOPSOILREMOVAL', INDETERMINATE) -trench = getattr(IfcEarthworksCutTypeEnum, 'TRENCH', INDETERMINATE) -userdefined = getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEarthworksCutTypeEnum, 'NOTDEFINED', INDETERMINATE) +base_excavation = IfcEarthworksCutTypeEnum.BASE_EXCAVATION +cut = IfcEarthworksCutTypeEnum.CUT +dredging = IfcEarthworksCutTypeEnum.DREDGING +excavation = IfcEarthworksCutTypeEnum.EXCAVATION +overexcavation = IfcEarthworksCutTypeEnum.OVEREXCAVATION +pavementmilling = IfcEarthworksCutTypeEnum.PAVEMENTMILLING +stepexcavation = IfcEarthworksCutTypeEnum.STEPEXCAVATION +topsoilremoval = IfcEarthworksCutTypeEnum.TOPSOILREMOVAL +trench = IfcEarthworksCutTypeEnum.TRENCH +userdefined = IfcEarthworksCutTypeEnum.USERDEFINED +notdefined = IfcEarthworksCutTypeEnum.NOTDEFINED IfcEarthworksFillTypeEnum = enum_namespace() -backfill = getattr(IfcEarthworksFillTypeEnum, 'BACKFILL', INDETERMINATE) -counterweight = getattr(IfcEarthworksFillTypeEnum, 'COUNTERWEIGHT', INDETERMINATE) -embankment = getattr(IfcEarthworksFillTypeEnum, 'EMBANKMENT', INDETERMINATE) -slopefill = getattr(IfcEarthworksFillTypeEnum, 'SLOPEFILL', INDETERMINATE) -subgrade = getattr(IfcEarthworksFillTypeEnum, 'SUBGRADE', INDETERMINATE) -subgradebed = getattr(IfcEarthworksFillTypeEnum, 'SUBGRADEBED', INDETERMINATE) -transitionsection = getattr(IfcEarthworksFillTypeEnum, 'TRANSITIONSECTION', INDETERMINATE) -userdefined = getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEarthworksFillTypeEnum, 'NOTDEFINED', INDETERMINATE) +backfill = IfcEarthworksFillTypeEnum.BACKFILL +counterweight = IfcEarthworksFillTypeEnum.COUNTERWEIGHT +embankment = IfcEarthworksFillTypeEnum.EMBANKMENT +slopefill = IfcEarthworksFillTypeEnum.SLOPEFILL +subgrade = IfcEarthworksFillTypeEnum.SUBGRADE +subgradebed = IfcEarthworksFillTypeEnum.SUBGRADEBED +transitionsection = IfcEarthworksFillTypeEnum.TRANSITIONSECTION +userdefined = IfcEarthworksFillTypeEnum.USERDEFINED +notdefined = IfcEarthworksFillTypeEnum.NOTDEFINED IfcElectricApplianceTypeEnum = enum_namespace() -dishwasher = getattr(IfcElectricApplianceTypeEnum, 'DISHWASHER', INDETERMINATE) -electriccooker = getattr(IfcElectricApplianceTypeEnum, 'ELECTRICCOOKER', INDETERMINATE) -freestandingelectricheater = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGELECTRICHEATER', INDETERMINATE) -freestandingfan = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGFAN', INDETERMINATE) -freestandingwatercooler = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERCOOLER', INDETERMINATE) -freestandingwaterheater = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERHEATER', INDETERMINATE) -freezer = getattr(IfcElectricApplianceTypeEnum, 'FREEZER', INDETERMINATE) -fridge_freezer = getattr(IfcElectricApplianceTypeEnum, 'FRIDGE_FREEZER', INDETERMINATE) -handdryer = getattr(IfcElectricApplianceTypeEnum, 'HANDDRYER', INDETERMINATE) -kitchenmachine = getattr(IfcElectricApplianceTypeEnum, 'KITCHENMACHINE', INDETERMINATE) -microwave = getattr(IfcElectricApplianceTypeEnum, 'MICROWAVE', INDETERMINATE) -photocopier = getattr(IfcElectricApplianceTypeEnum, 'PHOTOCOPIER', INDETERMINATE) -refrigerator = getattr(IfcElectricApplianceTypeEnum, 'REFRIGERATOR', INDETERMINATE) -tumbledryer = getattr(IfcElectricApplianceTypeEnum, 'TUMBLEDRYER', INDETERMINATE) -vendingmachine = getattr(IfcElectricApplianceTypeEnum, 'VENDINGMACHINE', INDETERMINATE) -washingmachine = getattr(IfcElectricApplianceTypeEnum, 'WASHINGMACHINE', INDETERMINATE) -userdefined = getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dishwasher = IfcElectricApplianceTypeEnum.DISHWASHER +electriccooker = IfcElectricApplianceTypeEnum.ELECTRICCOOKER +freestandingelectricheater = IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER +freestandingfan = IfcElectricApplianceTypeEnum.FREESTANDINGFAN +freestandingwatercooler = IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER +freestandingwaterheater = IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER +freezer = IfcElectricApplianceTypeEnum.FREEZER +fridge_freezer = IfcElectricApplianceTypeEnum.FRIDGE_FREEZER +handdryer = IfcElectricApplianceTypeEnum.HANDDRYER +kitchenmachine = IfcElectricApplianceTypeEnum.KITCHENMACHINE +microwave = IfcElectricApplianceTypeEnum.MICROWAVE +photocopier = IfcElectricApplianceTypeEnum.PHOTOCOPIER +refrigerator = IfcElectricApplianceTypeEnum.REFRIGERATOR +tumbledryer = IfcElectricApplianceTypeEnum.TUMBLEDRYER +vendingmachine = IfcElectricApplianceTypeEnum.VENDINGMACHINE +washingmachine = IfcElectricApplianceTypeEnum.WASHINGMACHINE +userdefined = IfcElectricApplianceTypeEnum.USERDEFINED +notdefined = IfcElectricApplianceTypeEnum.NOTDEFINED IfcElectricDistributionBoardTypeEnum = enum_namespace() -consumerunit = getattr(IfcElectricDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -distributionboard = getattr(IfcElectricDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -motorcontrolcentre = getattr(IfcElectricDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = getattr(IfcElectricDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT +distributionboard = IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD +motorcontrolcentre = IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcElectricDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcElectricDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcElectricDistributionBoardTypeEnum.NOTDEFINED IfcElectricFlowStorageDeviceTypeEnum = enum_namespace() -battery = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'BATTERY', INDETERMINATE) -capacitor = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITOR', INDETERMINATE) -capacitorbank = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITORBANK', INDETERMINATE) -compensator = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'COMPENSATOR', INDETERMINATE) -harmonicfilter = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'HARMONICFILTER', INDETERMINATE) -inductor = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTOR', INDETERMINATE) -inductorbank = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTORBANK', INDETERMINATE) -recharger = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'RECHARGER', INDETERMINATE) -ups = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'UPS', INDETERMINATE) -userdefined = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +battery = IfcElectricFlowStorageDeviceTypeEnum.BATTERY +capacitor = IfcElectricFlowStorageDeviceTypeEnum.CAPACITOR +capacitorbank = IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK +compensator = IfcElectricFlowStorageDeviceTypeEnum.COMPENSATOR +harmonicfilter = IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER +inductor = IfcElectricFlowStorageDeviceTypeEnum.INDUCTOR +inductorbank = IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK +recharger = IfcElectricFlowStorageDeviceTypeEnum.RECHARGER +ups = IfcElectricFlowStorageDeviceTypeEnum.UPS +userdefined = IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED IfcElectricFlowTreatmentDeviceTypeEnum = enum_namespace() -electronicfilter = getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'ELECTRONICFILTER', INDETERMINATE) -userdefined = getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronicfilter = IfcElectricFlowTreatmentDeviceTypeEnum.ELECTRONICFILTER +userdefined = IfcElectricFlowTreatmentDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowTreatmentDeviceTypeEnum.NOTDEFINED IfcElectricGeneratorTypeEnum = enum_namespace() -chp = getattr(IfcElectricGeneratorTypeEnum, 'CHP', INDETERMINATE) -enginegenerator = getattr(IfcElectricGeneratorTypeEnum, 'ENGINEGENERATOR', INDETERMINATE) -standalone = getattr(IfcElectricGeneratorTypeEnum, 'STANDALONE', INDETERMINATE) -userdefined = getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricGeneratorTypeEnum, 'NOTDEFINED', INDETERMINATE) +chp = IfcElectricGeneratorTypeEnum.CHP +enginegenerator = IfcElectricGeneratorTypeEnum.ENGINEGENERATOR +standalone = IfcElectricGeneratorTypeEnum.STANDALONE +userdefined = IfcElectricGeneratorTypeEnum.USERDEFINED +notdefined = IfcElectricGeneratorTypeEnum.NOTDEFINED IfcElectricMotorTypeEnum = enum_namespace() -dc = getattr(IfcElectricMotorTypeEnum, 'DC', INDETERMINATE) -induction = getattr(IfcElectricMotorTypeEnum, 'INDUCTION', INDETERMINATE) -polyphase = getattr(IfcElectricMotorTypeEnum, 'POLYPHASE', INDETERMINATE) -reluctancesynchronous = getattr(IfcElectricMotorTypeEnum, 'RELUCTANCESYNCHRONOUS', INDETERMINATE) -synchronous = getattr(IfcElectricMotorTypeEnum, 'SYNCHRONOUS', INDETERMINATE) -userdefined = getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricMotorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dc = IfcElectricMotorTypeEnum.DC +induction = IfcElectricMotorTypeEnum.INDUCTION +polyphase = IfcElectricMotorTypeEnum.POLYPHASE +reluctancesynchronous = IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS +synchronous = IfcElectricMotorTypeEnum.SYNCHRONOUS +userdefined = IfcElectricMotorTypeEnum.USERDEFINED +notdefined = IfcElectricMotorTypeEnum.NOTDEFINED IfcElectricTimeControlTypeEnum = enum_namespace() -relay = getattr(IfcElectricTimeControlTypeEnum, 'RELAY', INDETERMINATE) -timeclock = getattr(IfcElectricTimeControlTypeEnum, 'TIMECLOCK', INDETERMINATE) -timedelay = getattr(IfcElectricTimeControlTypeEnum, 'TIMEDELAY', INDETERMINATE) -userdefined = getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricTimeControlTypeEnum, 'NOTDEFINED', INDETERMINATE) +relay = IfcElectricTimeControlTypeEnum.RELAY +timeclock = IfcElectricTimeControlTypeEnum.TIMECLOCK +timedelay = IfcElectricTimeControlTypeEnum.TIMEDELAY +userdefined = IfcElectricTimeControlTypeEnum.USERDEFINED +notdefined = IfcElectricTimeControlTypeEnum.NOTDEFINED IfcElementAssemblyTypeEnum = enum_namespace() -abutment = getattr(IfcElementAssemblyTypeEnum, 'ABUTMENT', INDETERMINATE) -accessory_assembly = getattr(IfcElementAssemblyTypeEnum, 'ACCESSORY_ASSEMBLY', INDETERMINATE) -arch = getattr(IfcElementAssemblyTypeEnum, 'ARCH', INDETERMINATE) -beam_grid = getattr(IfcElementAssemblyTypeEnum, 'BEAM_GRID', INDETERMINATE) -braced_frame = getattr(IfcElementAssemblyTypeEnum, 'BRACED_FRAME', INDETERMINATE) -cross_bracing = getattr(IfcElementAssemblyTypeEnum, 'CROSS_BRACING', INDETERMINATE) -deck = getattr(IfcElementAssemblyTypeEnum, 'DECK', INDETERMINATE) -dilatationpanel = getattr(IfcElementAssemblyTypeEnum, 'DILATATIONPANEL', INDETERMINATE) -entranceworks = getattr(IfcElementAssemblyTypeEnum, 'ENTRANCEWORKS', INDETERMINATE) -girder = getattr(IfcElementAssemblyTypeEnum, 'GIRDER', INDETERMINATE) -grid = getattr(IfcElementAssemblyTypeEnum, 'GRID', INDETERMINATE) -mast = getattr(IfcElementAssemblyTypeEnum, 'MAST', INDETERMINATE) -pier = getattr(IfcElementAssemblyTypeEnum, 'PIER', INDETERMINATE) -pylon = getattr(IfcElementAssemblyTypeEnum, 'PYLON', INDETERMINATE) -rail_mechanical_equipment_assembly = getattr(IfcElementAssemblyTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY', INDETERMINATE) -reinforcement_unit = getattr(IfcElementAssemblyTypeEnum, 'REINFORCEMENT_UNIT', INDETERMINATE) -rigid_frame = getattr(IfcElementAssemblyTypeEnum, 'RIGID_FRAME', INDETERMINATE) -shelter = getattr(IfcElementAssemblyTypeEnum, 'SHELTER', INDETERMINATE) -signalassembly = getattr(IfcElementAssemblyTypeEnum, 'SIGNALASSEMBLY', INDETERMINATE) -slab_field = getattr(IfcElementAssemblyTypeEnum, 'SLAB_FIELD', INDETERMINATE) -sumpbuster = getattr(IfcElementAssemblyTypeEnum, 'SUMPBUSTER', INDETERMINATE) -supportingassembly = getattr(IfcElementAssemblyTypeEnum, 'SUPPORTINGASSEMBLY', INDETERMINATE) -suspensionassembly = getattr(IfcElementAssemblyTypeEnum, 'SUSPENSIONASSEMBLY', INDETERMINATE) -trackpanel = getattr(IfcElementAssemblyTypeEnum, 'TRACKPANEL', INDETERMINATE) -traction_switching_assembly = getattr(IfcElementAssemblyTypeEnum, 'TRACTION_SWITCHING_ASSEMBLY', INDETERMINATE) -traffic_calming_device = getattr(IfcElementAssemblyTypeEnum, 'TRAFFIC_CALMING_DEVICE', INDETERMINATE) -truss = getattr(IfcElementAssemblyTypeEnum, 'TRUSS', INDETERMINATE) -turnoutpanel = getattr(IfcElementAssemblyTypeEnum, 'TURNOUTPANEL', INDETERMINATE) -userdefined = getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElementAssemblyTypeEnum, 'NOTDEFINED', INDETERMINATE) +abutment = IfcElementAssemblyTypeEnum.ABUTMENT +accessory_assembly = IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY +arch = IfcElementAssemblyTypeEnum.ARCH +beam_grid = IfcElementAssemblyTypeEnum.BEAM_GRID +braced_frame = IfcElementAssemblyTypeEnum.BRACED_FRAME +cross_bracing = IfcElementAssemblyTypeEnum.CROSS_BRACING +deck = IfcElementAssemblyTypeEnum.DECK +dilatationpanel = IfcElementAssemblyTypeEnum.DILATATIONPANEL +entranceworks = IfcElementAssemblyTypeEnum.ENTRANCEWORKS +girder = IfcElementAssemblyTypeEnum.GIRDER +grid = IfcElementAssemblyTypeEnum.GRID +mast = IfcElementAssemblyTypeEnum.MAST +pier = IfcElementAssemblyTypeEnum.PIER +pylon = IfcElementAssemblyTypeEnum.PYLON +rail_mechanical_equipment_assembly = IfcElementAssemblyTypeEnum.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY +reinforcement_unit = IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT +rigid_frame = IfcElementAssemblyTypeEnum.RIGID_FRAME +shelter = IfcElementAssemblyTypeEnum.SHELTER +signalassembly = IfcElementAssemblyTypeEnum.SIGNALASSEMBLY +slab_field = IfcElementAssemblyTypeEnum.SLAB_FIELD +sumpbuster = IfcElementAssemblyTypeEnum.SUMPBUSTER +supportingassembly = IfcElementAssemblyTypeEnum.SUPPORTINGASSEMBLY +suspensionassembly = IfcElementAssemblyTypeEnum.SUSPENSIONASSEMBLY +trackpanel = IfcElementAssemblyTypeEnum.TRACKPANEL +traction_switching_assembly = IfcElementAssemblyTypeEnum.TRACTION_SWITCHING_ASSEMBLY +traffic_calming_device = IfcElementAssemblyTypeEnum.TRAFFIC_CALMING_DEVICE +truss = IfcElementAssemblyTypeEnum.TRUSS +turnoutpanel = IfcElementAssemblyTypeEnum.TURNOUTPANEL +userdefined = IfcElementAssemblyTypeEnum.USERDEFINED +notdefined = IfcElementAssemblyTypeEnum.NOTDEFINED IfcElementCompositionEnum = enum_namespace() -complex = getattr(IfcElementCompositionEnum, 'COMPLEX', INDETERMINATE) -element = getattr(IfcElementCompositionEnum, 'ELEMENT', INDETERMINATE) -partial = getattr(IfcElementCompositionEnum, 'PARTIAL', INDETERMINATE) +complex = IfcElementCompositionEnum.COMPLEX +element = IfcElementCompositionEnum.ELEMENT +partial = IfcElementCompositionEnum.PARTIAL IfcEngineTypeEnum = enum_namespace() -externalcombustion = getattr(IfcEngineTypeEnum, 'EXTERNALCOMBUSTION', INDETERMINATE) -internalcombustion = getattr(IfcEngineTypeEnum, 'INTERNALCOMBUSTION', INDETERMINATE) -userdefined = getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEngineTypeEnum, 'NOTDEFINED', INDETERMINATE) +externalcombustion = IfcEngineTypeEnum.EXTERNALCOMBUSTION +internalcombustion = IfcEngineTypeEnum.INTERNALCOMBUSTION +userdefined = IfcEngineTypeEnum.USERDEFINED +notdefined = IfcEngineTypeEnum.NOTDEFINED IfcEvaporativeCoolerTypeEnum = enum_namespace() -directevaporativeairwasher = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEAIRWASHER', INDETERMINATE) -directevaporativepackagedrotaryaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER', INDETERMINATE) -directevaporativerandommediaaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER', INDETERMINATE) -directevaporativerigidmediaaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER', INDETERMINATE) -directevaporativeslingerspackagedaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER', INDETERMINATE) -indirectdirectcombination = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTDIRECTCOMBINATION', INDETERMINATE) -indirectevaporativecoolingtowerorcoilcooler = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER', INDETERMINATE) -indirectevaporativepackageaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEPACKAGEAIRCOOLER', INDETERMINATE) -indirectevaporativewetcoil = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEWETCOIL', INDETERMINATE) -userdefined = getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEvaporativeCoolerTypeEnum, 'NOTDEFINED', INDETERMINATE) +directevaporativeairwasher = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER +directevaporativepackagedrotaryaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER +directevaporativerandommediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER +directevaporativerigidmediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER +directevaporativeslingerspackagedaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER +indirectdirectcombination = IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION +indirectevaporativecoolingtowerorcoilcooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER +indirectevaporativepackageaircooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER +indirectevaporativewetcoil = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL +userdefined = IfcEvaporativeCoolerTypeEnum.USERDEFINED +notdefined = IfcEvaporativeCoolerTypeEnum.NOTDEFINED IfcEvaporatorTypeEnum = enum_namespace() -directexpansion = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSION', INDETERMINATE) -directexpansionbrazedplate = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONBRAZEDPLATE', INDETERMINATE) -directexpansionshellandtube = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONSHELLANDTUBE', INDETERMINATE) -directexpansiontubeintube = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONTUBEINTUBE', INDETERMINATE) -floodedshellandtube = getattr(IfcEvaporatorTypeEnum, 'FLOODEDSHELLANDTUBE', INDETERMINATE) -shellandcoil = getattr(IfcEvaporatorTypeEnum, 'SHELLANDCOIL', INDETERMINATE) -userdefined = getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEvaporatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +directexpansion = IfcEvaporatorTypeEnum.DIRECTEXPANSION +directexpansionbrazedplate = IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE +directexpansionshellandtube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE +directexpansiontubeintube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE +floodedshellandtube = IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE +shellandcoil = IfcEvaporatorTypeEnum.SHELLANDCOIL +userdefined = IfcEvaporatorTypeEnum.USERDEFINED +notdefined = IfcEvaporatorTypeEnum.NOTDEFINED IfcEventTriggerTypeEnum = enum_namespace() -eventcomplex = getattr(IfcEventTriggerTypeEnum, 'EVENTCOMPLEX', INDETERMINATE) -eventmessage = getattr(IfcEventTriggerTypeEnum, 'EVENTMESSAGE', INDETERMINATE) -eventrule = getattr(IfcEventTriggerTypeEnum, 'EVENTRULE', INDETERMINATE) -eventtime = getattr(IfcEventTriggerTypeEnum, 'EVENTTIME', INDETERMINATE) -userdefined = getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEventTriggerTypeEnum, 'NOTDEFINED', INDETERMINATE) +eventcomplex = IfcEventTriggerTypeEnum.EVENTCOMPLEX +eventmessage = IfcEventTriggerTypeEnum.EVENTMESSAGE +eventrule = IfcEventTriggerTypeEnum.EVENTRULE +eventtime = IfcEventTriggerTypeEnum.EVENTTIME +userdefined = IfcEventTriggerTypeEnum.USERDEFINED +notdefined = IfcEventTriggerTypeEnum.NOTDEFINED IfcEventTypeEnum = enum_namespace() -endevent = getattr(IfcEventTypeEnum, 'ENDEVENT', INDETERMINATE) -intermediateevent = getattr(IfcEventTypeEnum, 'INTERMEDIATEEVENT', INDETERMINATE) -startevent = getattr(IfcEventTypeEnum, 'STARTEVENT', INDETERMINATE) -userdefined = getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEventTypeEnum, 'NOTDEFINED', INDETERMINATE) +endevent = IfcEventTypeEnum.ENDEVENT +intermediateevent = IfcEventTypeEnum.INTERMEDIATEEVENT +startevent = IfcEventTypeEnum.STARTEVENT +userdefined = IfcEventTypeEnum.USERDEFINED +notdefined = IfcEventTypeEnum.NOTDEFINED IfcExternalSpatialElementTypeEnum = enum_namespace() -external = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL', INDETERMINATE) -external_earth = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_fire = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_FIRE', INDETERMINATE) -external_water = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_WATER', INDETERMINATE) -userdefined = getattr(IfcExternalSpatialElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcExternalSpatialElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcExternalSpatialElementTypeEnum.EXTERNAL +external_earth = IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH +external_fire = IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE +external_water = IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER +userdefined = IfcExternalSpatialElementTypeEnum.USERDEFINED +notdefined = IfcExternalSpatialElementTypeEnum.NOTDEFINED IfcFacilityPartCommonTypeEnum = enum_namespace() -aboveground = getattr(IfcFacilityPartCommonTypeEnum, 'ABOVEGROUND', INDETERMINATE) -belowground = getattr(IfcFacilityPartCommonTypeEnum, 'BELOWGROUND', INDETERMINATE) -junction = getattr(IfcFacilityPartCommonTypeEnum, 'JUNCTION', INDETERMINATE) -levelcrossing = getattr(IfcFacilityPartCommonTypeEnum, 'LEVELCROSSING', INDETERMINATE) -segment = getattr(IfcFacilityPartCommonTypeEnum, 'SEGMENT', INDETERMINATE) -substructure = getattr(IfcFacilityPartCommonTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -superstructure = getattr(IfcFacilityPartCommonTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -terminal = getattr(IfcFacilityPartCommonTypeEnum, 'TERMINAL', INDETERMINATE) -userdefined = getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFacilityPartCommonTypeEnum, 'NOTDEFINED', INDETERMINATE) +aboveground = IfcFacilityPartCommonTypeEnum.ABOVEGROUND +belowground = IfcFacilityPartCommonTypeEnum.BELOWGROUND +junction = IfcFacilityPartCommonTypeEnum.JUNCTION +levelcrossing = IfcFacilityPartCommonTypeEnum.LEVELCROSSING +segment = IfcFacilityPartCommonTypeEnum.SEGMENT +substructure = IfcFacilityPartCommonTypeEnum.SUBSTRUCTURE +superstructure = IfcFacilityPartCommonTypeEnum.SUPERSTRUCTURE +terminal = IfcFacilityPartCommonTypeEnum.TERMINAL +userdefined = IfcFacilityPartCommonTypeEnum.USERDEFINED +notdefined = IfcFacilityPartCommonTypeEnum.NOTDEFINED IfcFacilityUsageEnum = enum_namespace() -lateral = getattr(IfcFacilityUsageEnum, 'LATERAL', INDETERMINATE) -longitudinal = getattr(IfcFacilityUsageEnum, 'LONGITUDINAL', INDETERMINATE) -region = getattr(IfcFacilityUsageEnum, 'REGION', INDETERMINATE) -vertical = getattr(IfcFacilityUsageEnum, 'VERTICAL', INDETERMINATE) -userdefined = getattr(IfcFacilityUsageEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFacilityUsageEnum, 'NOTDEFINED', INDETERMINATE) +lateral = IfcFacilityUsageEnum.LATERAL +longitudinal = IfcFacilityUsageEnum.LONGITUDINAL +region = IfcFacilityUsageEnum.REGION +vertical = IfcFacilityUsageEnum.VERTICAL +userdefined = IfcFacilityUsageEnum.USERDEFINED +notdefined = IfcFacilityUsageEnum.NOTDEFINED IfcFanTypeEnum = enum_namespace() -centrifugalairfoil = getattr(IfcFanTypeEnum, 'CENTRIFUGALAIRFOIL', INDETERMINATE) -centrifugalbackwardinclinedcurved = getattr(IfcFanTypeEnum, 'CENTRIFUGALBACKWARDINCLINEDCURVED', INDETERMINATE) -centrifugalforwardcurved = getattr(IfcFanTypeEnum, 'CENTRIFUGALFORWARDCURVED', INDETERMINATE) -centrifugalradial = getattr(IfcFanTypeEnum, 'CENTRIFUGALRADIAL', INDETERMINATE) -propelloraxial = getattr(IfcFanTypeEnum, 'PROPELLORAXIAL', INDETERMINATE) -tubeaxial = getattr(IfcFanTypeEnum, 'TUBEAXIAL', INDETERMINATE) -vaneaxial = getattr(IfcFanTypeEnum, 'VANEAXIAL', INDETERMINATE) -userdefined = getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFanTypeEnum, 'NOTDEFINED', INDETERMINATE) +centrifugalairfoil = IfcFanTypeEnum.CENTRIFUGALAIRFOIL +centrifugalbackwardinclinedcurved = IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED +centrifugalforwardcurved = IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED +centrifugalradial = IfcFanTypeEnum.CENTRIFUGALRADIAL +propelloraxial = IfcFanTypeEnum.PROPELLORAXIAL +tubeaxial = IfcFanTypeEnum.TUBEAXIAL +vaneaxial = IfcFanTypeEnum.VANEAXIAL +userdefined = IfcFanTypeEnum.USERDEFINED +notdefined = IfcFanTypeEnum.NOTDEFINED IfcFastenerTypeEnum = enum_namespace() -glue = getattr(IfcFastenerTypeEnum, 'GLUE', INDETERMINATE) -mortar = getattr(IfcFastenerTypeEnum, 'MORTAR', INDETERMINATE) -weld = getattr(IfcFastenerTypeEnum, 'WELD', INDETERMINATE) -userdefined = getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +glue = IfcFastenerTypeEnum.GLUE +mortar = IfcFastenerTypeEnum.MORTAR +weld = IfcFastenerTypeEnum.WELD +userdefined = IfcFastenerTypeEnum.USERDEFINED +notdefined = IfcFastenerTypeEnum.NOTDEFINED IfcFilterTypeEnum = enum_namespace() -airparticlefilter = getattr(IfcFilterTypeEnum, 'AIRPARTICLEFILTER', INDETERMINATE) -compressedairfilter = getattr(IfcFilterTypeEnum, 'COMPRESSEDAIRFILTER', INDETERMINATE) -odorfilter = getattr(IfcFilterTypeEnum, 'ODORFILTER', INDETERMINATE) -oilfilter = getattr(IfcFilterTypeEnum, 'OILFILTER', INDETERMINATE) -strainer = getattr(IfcFilterTypeEnum, 'STRAINER', INDETERMINATE) -waterfilter = getattr(IfcFilterTypeEnum, 'WATERFILTER', INDETERMINATE) -userdefined = getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFilterTypeEnum, 'NOTDEFINED', INDETERMINATE) +airparticlefilter = IfcFilterTypeEnum.AIRPARTICLEFILTER +compressedairfilter = IfcFilterTypeEnum.COMPRESSEDAIRFILTER +odorfilter = IfcFilterTypeEnum.ODORFILTER +oilfilter = IfcFilterTypeEnum.OILFILTER +strainer = IfcFilterTypeEnum.STRAINER +waterfilter = IfcFilterTypeEnum.WATERFILTER +userdefined = IfcFilterTypeEnum.USERDEFINED +notdefined = IfcFilterTypeEnum.NOTDEFINED IfcFireSuppressionTerminalTypeEnum = enum_namespace() -breechinginlet = getattr(IfcFireSuppressionTerminalTypeEnum, 'BREECHINGINLET', INDETERMINATE) -firehydrant = getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREHYDRANT', INDETERMINATE) -firemonitor = getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREMONITOR', INDETERMINATE) -hosereel = getattr(IfcFireSuppressionTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -sprinkler = getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLER', INDETERMINATE) -sprinklerdeflector = getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLERDEFLECTOR', INDETERMINATE) -userdefined = getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFireSuppressionTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +breechinginlet = IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET +firehydrant = IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT +firemonitor = IfcFireSuppressionTerminalTypeEnum.FIREMONITOR +hosereel = IfcFireSuppressionTerminalTypeEnum.HOSEREEL +sprinkler = IfcFireSuppressionTerminalTypeEnum.SPRINKLER +sprinklerdeflector = IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR +userdefined = IfcFireSuppressionTerminalTypeEnum.USERDEFINED +notdefined = IfcFireSuppressionTerminalTypeEnum.NOTDEFINED IfcFlowDirectionEnum = enum_namespace() -sink = getattr(IfcFlowDirectionEnum, 'SINK', INDETERMINATE) -source = getattr(IfcFlowDirectionEnum, 'SOURCE', INDETERMINATE) -sourceandsink = getattr(IfcFlowDirectionEnum, 'SOURCEANDSINK', INDETERMINATE) -notdefined = getattr(IfcFlowDirectionEnum, 'NOTDEFINED', INDETERMINATE) +sink = IfcFlowDirectionEnum.SINK +source = IfcFlowDirectionEnum.SOURCE +sourceandsink = IfcFlowDirectionEnum.SOURCEANDSINK +notdefined = IfcFlowDirectionEnum.NOTDEFINED IfcFlowInstrumentTypeEnum = enum_namespace() -ammeter = getattr(IfcFlowInstrumentTypeEnum, 'AMMETER', INDETERMINATE) -combined = getattr(IfcFlowInstrumentTypeEnum, 'COMBINED', INDETERMINATE) -frequencymeter = getattr(IfcFlowInstrumentTypeEnum, 'FREQUENCYMETER', INDETERMINATE) -phaseanglemeter = getattr(IfcFlowInstrumentTypeEnum, 'PHASEANGLEMETER', INDETERMINATE) -powerfactormeter = getattr(IfcFlowInstrumentTypeEnum, 'POWERFACTORMETER', INDETERMINATE) -pressuregauge = getattr(IfcFlowInstrumentTypeEnum, 'PRESSUREGAUGE', INDETERMINATE) -thermometer = getattr(IfcFlowInstrumentTypeEnum, 'THERMOMETER', INDETERMINATE) -voltmeter = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER', INDETERMINATE) -voltmeter_peak = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_PEAK', INDETERMINATE) -voltmeter_rms = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_RMS', INDETERMINATE) -userdefined = getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFlowInstrumentTypeEnum, 'NOTDEFINED', INDETERMINATE) +ammeter = IfcFlowInstrumentTypeEnum.AMMETER +combined = IfcFlowInstrumentTypeEnum.COMBINED +frequencymeter = IfcFlowInstrumentTypeEnum.FREQUENCYMETER +phaseanglemeter = IfcFlowInstrumentTypeEnum.PHASEANGLEMETER +powerfactormeter = IfcFlowInstrumentTypeEnum.POWERFACTORMETER +pressuregauge = IfcFlowInstrumentTypeEnum.PRESSUREGAUGE +thermometer = IfcFlowInstrumentTypeEnum.THERMOMETER +voltmeter = IfcFlowInstrumentTypeEnum.VOLTMETER +voltmeter_peak = IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK +voltmeter_rms = IfcFlowInstrumentTypeEnum.VOLTMETER_RMS +userdefined = IfcFlowInstrumentTypeEnum.USERDEFINED +notdefined = IfcFlowInstrumentTypeEnum.NOTDEFINED IfcFlowMeterTypeEnum = enum_namespace() -energymeter = getattr(IfcFlowMeterTypeEnum, 'ENERGYMETER', INDETERMINATE) -gasmeter = getattr(IfcFlowMeterTypeEnum, 'GASMETER', INDETERMINATE) -oilmeter = getattr(IfcFlowMeterTypeEnum, 'OILMETER', INDETERMINATE) -watermeter = getattr(IfcFlowMeterTypeEnum, 'WATERMETER', INDETERMINATE) -userdefined = getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFlowMeterTypeEnum, 'NOTDEFINED', INDETERMINATE) +energymeter = IfcFlowMeterTypeEnum.ENERGYMETER +gasmeter = IfcFlowMeterTypeEnum.GASMETER +oilmeter = IfcFlowMeterTypeEnum.OILMETER +watermeter = IfcFlowMeterTypeEnum.WATERMETER +userdefined = IfcFlowMeterTypeEnum.USERDEFINED +notdefined = IfcFlowMeterTypeEnum.NOTDEFINED IfcFootingTypeEnum = enum_namespace() -caisson_foundation = getattr(IfcFootingTypeEnum, 'CAISSON_FOUNDATION', INDETERMINATE) -footing_beam = getattr(IfcFootingTypeEnum, 'FOOTING_BEAM', INDETERMINATE) -pad_footing = getattr(IfcFootingTypeEnum, 'PAD_FOOTING', INDETERMINATE) -pile_cap = getattr(IfcFootingTypeEnum, 'PILE_CAP', INDETERMINATE) -strip_footing = getattr(IfcFootingTypeEnum, 'STRIP_FOOTING', INDETERMINATE) -userdefined = getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFootingTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson_foundation = IfcFootingTypeEnum.CAISSON_FOUNDATION +footing_beam = IfcFootingTypeEnum.FOOTING_BEAM +pad_footing = IfcFootingTypeEnum.PAD_FOOTING +pile_cap = IfcFootingTypeEnum.PILE_CAP +strip_footing = IfcFootingTypeEnum.STRIP_FOOTING +userdefined = IfcFootingTypeEnum.USERDEFINED +notdefined = IfcFootingTypeEnum.NOTDEFINED IfcFurnitureTypeEnum = enum_namespace() -bed = getattr(IfcFurnitureTypeEnum, 'BED', INDETERMINATE) -chair = getattr(IfcFurnitureTypeEnum, 'CHAIR', INDETERMINATE) -desk = getattr(IfcFurnitureTypeEnum, 'DESK', INDETERMINATE) -filecabinet = getattr(IfcFurnitureTypeEnum, 'FILECABINET', INDETERMINATE) -shelf = getattr(IfcFurnitureTypeEnum, 'SHELF', INDETERMINATE) -sofa = getattr(IfcFurnitureTypeEnum, 'SOFA', INDETERMINATE) -table = getattr(IfcFurnitureTypeEnum, 'TABLE', INDETERMINATE) -technicalcabinet = getattr(IfcFurnitureTypeEnum, 'TECHNICALCABINET', INDETERMINATE) -userdefined = getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFurnitureTypeEnum, 'NOTDEFINED', INDETERMINATE) +bed = IfcFurnitureTypeEnum.BED +chair = IfcFurnitureTypeEnum.CHAIR +desk = IfcFurnitureTypeEnum.DESK +filecabinet = IfcFurnitureTypeEnum.FILECABINET +shelf = IfcFurnitureTypeEnum.SHELF +sofa = IfcFurnitureTypeEnum.SOFA +table = IfcFurnitureTypeEnum.TABLE +technicalcabinet = IfcFurnitureTypeEnum.TECHNICALCABINET +userdefined = IfcFurnitureTypeEnum.USERDEFINED +notdefined = IfcFurnitureTypeEnum.NOTDEFINED IfcGeographicElementTypeEnum = enum_namespace() -soil_boring_point = getattr(IfcGeographicElementTypeEnum, 'SOIL_BORING_POINT', INDETERMINATE) -terrain = getattr(IfcGeographicElementTypeEnum, 'TERRAIN', INDETERMINATE) -vegetation = getattr(IfcGeographicElementTypeEnum, 'VEGETATION', INDETERMINATE) -userdefined = getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGeographicElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +soil_boring_point = IfcGeographicElementTypeEnum.SOIL_BORING_POINT +terrain = IfcGeographicElementTypeEnum.TERRAIN +vegetation = IfcGeographicElementTypeEnum.VEGETATION +userdefined = IfcGeographicElementTypeEnum.USERDEFINED +notdefined = IfcGeographicElementTypeEnum.NOTDEFINED IfcGeometricProjectionEnum = enum_namespace() -elevation_view = getattr(IfcGeometricProjectionEnum, 'ELEVATION_VIEW', INDETERMINATE) -graph_view = getattr(IfcGeometricProjectionEnum, 'GRAPH_VIEW', INDETERMINATE) -model_view = getattr(IfcGeometricProjectionEnum, 'MODEL_VIEW', INDETERMINATE) -plan_view = getattr(IfcGeometricProjectionEnum, 'PLAN_VIEW', INDETERMINATE) -reflected_plan_view = getattr(IfcGeometricProjectionEnum, 'REFLECTED_PLAN_VIEW', INDETERMINATE) -section_view = getattr(IfcGeometricProjectionEnum, 'SECTION_VIEW', INDETERMINATE) -sketch_view = getattr(IfcGeometricProjectionEnum, 'SKETCH_VIEW', INDETERMINATE) -userdefined = getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGeometricProjectionEnum, 'NOTDEFINED', INDETERMINATE) +elevation_view = IfcGeometricProjectionEnum.ELEVATION_VIEW +graph_view = IfcGeometricProjectionEnum.GRAPH_VIEW +model_view = IfcGeometricProjectionEnum.MODEL_VIEW +plan_view = IfcGeometricProjectionEnum.PLAN_VIEW +reflected_plan_view = IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW +section_view = IfcGeometricProjectionEnum.SECTION_VIEW +sketch_view = IfcGeometricProjectionEnum.SKETCH_VIEW +userdefined = IfcGeometricProjectionEnum.USERDEFINED +notdefined = IfcGeometricProjectionEnum.NOTDEFINED IfcGeotechnicalStratumTypeEnum = enum_namespace() -solid = getattr(IfcGeotechnicalStratumTypeEnum, 'SOLID', INDETERMINATE) -void = getattr(IfcGeotechnicalStratumTypeEnum, 'VOID', INDETERMINATE) -water = getattr(IfcGeotechnicalStratumTypeEnum, 'WATER', INDETERMINATE) -userdefined = getattr(IfcGeotechnicalStratumTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGeotechnicalStratumTypeEnum, 'NOTDEFINED', INDETERMINATE) +solid = IfcGeotechnicalStratumTypeEnum.SOLID +void = IfcGeotechnicalStratumTypeEnum.VOID +water = IfcGeotechnicalStratumTypeEnum.WATER +userdefined = IfcGeotechnicalStratumTypeEnum.USERDEFINED +notdefined = IfcGeotechnicalStratumTypeEnum.NOTDEFINED IfcGlobalOrLocalEnum = enum_namespace() -global_coords = getattr(IfcGlobalOrLocalEnum, 'GLOBAL_COORDS', INDETERMINATE) -local_coords = getattr(IfcGlobalOrLocalEnum, 'LOCAL_COORDS', INDETERMINATE) +global_coords = IfcGlobalOrLocalEnum.GLOBAL_COORDS +local_coords = IfcGlobalOrLocalEnum.LOCAL_COORDS IfcGridTypeEnum = enum_namespace() -irregular = getattr(IfcGridTypeEnum, 'IRREGULAR', INDETERMINATE) -radial = getattr(IfcGridTypeEnum, 'RADIAL', INDETERMINATE) -rectangular = getattr(IfcGridTypeEnum, 'RECTANGULAR', INDETERMINATE) -triangular = getattr(IfcGridTypeEnum, 'TRIANGULAR', INDETERMINATE) -userdefined = getattr(IfcGridTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGridTypeEnum, 'NOTDEFINED', INDETERMINATE) +irregular = IfcGridTypeEnum.IRREGULAR +radial = IfcGridTypeEnum.RADIAL +rectangular = IfcGridTypeEnum.RECTANGULAR +triangular = IfcGridTypeEnum.TRIANGULAR +userdefined = IfcGridTypeEnum.USERDEFINED +notdefined = IfcGridTypeEnum.NOTDEFINED IfcHeatExchangerTypeEnum = enum_namespace() -plate = getattr(IfcHeatExchangerTypeEnum, 'PLATE', INDETERMINATE) -shellandtube = getattr(IfcHeatExchangerTypeEnum, 'SHELLANDTUBE', INDETERMINATE) -turnoutheating = getattr(IfcHeatExchangerTypeEnum, 'TURNOUTHEATING', INDETERMINATE) -userdefined = getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcHeatExchangerTypeEnum, 'NOTDEFINED', INDETERMINATE) +plate = IfcHeatExchangerTypeEnum.PLATE +shellandtube = IfcHeatExchangerTypeEnum.SHELLANDTUBE +turnoutheating = IfcHeatExchangerTypeEnum.TURNOUTHEATING +userdefined = IfcHeatExchangerTypeEnum.USERDEFINED +notdefined = IfcHeatExchangerTypeEnum.NOTDEFINED IfcHumidifierTypeEnum = enum_namespace() -adiabaticairwasher = getattr(IfcHumidifierTypeEnum, 'ADIABATICAIRWASHER', INDETERMINATE) -adiabaticatomizing = getattr(IfcHumidifierTypeEnum, 'ADIABATICATOMIZING', INDETERMINATE) -adiabaticcompressedairnozzle = getattr(IfcHumidifierTypeEnum, 'ADIABATICCOMPRESSEDAIRNOZZLE', INDETERMINATE) -adiabaticpan = getattr(IfcHumidifierTypeEnum, 'ADIABATICPAN', INDETERMINATE) -adiabaticrigidmedia = getattr(IfcHumidifierTypeEnum, 'ADIABATICRIGIDMEDIA', INDETERMINATE) -adiabaticultrasonic = getattr(IfcHumidifierTypeEnum, 'ADIABATICULTRASONIC', INDETERMINATE) -adiabaticwettedelement = getattr(IfcHumidifierTypeEnum, 'ADIABATICWETTEDELEMENT', INDETERMINATE) -assistedbutane = getattr(IfcHumidifierTypeEnum, 'ASSISTEDBUTANE', INDETERMINATE) -assistedelectric = getattr(IfcHumidifierTypeEnum, 'ASSISTEDELECTRIC', INDETERMINATE) -assistednaturalgas = getattr(IfcHumidifierTypeEnum, 'ASSISTEDNATURALGAS', INDETERMINATE) -assistedpropane = getattr(IfcHumidifierTypeEnum, 'ASSISTEDPROPANE', INDETERMINATE) -assistedsteam = getattr(IfcHumidifierTypeEnum, 'ASSISTEDSTEAM', INDETERMINATE) -steaminjection = getattr(IfcHumidifierTypeEnum, 'STEAMINJECTION', INDETERMINATE) -userdefined = getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcHumidifierTypeEnum, 'NOTDEFINED', INDETERMINATE) +adiabaticairwasher = IfcHumidifierTypeEnum.ADIABATICAIRWASHER +adiabaticatomizing = IfcHumidifierTypeEnum.ADIABATICATOMIZING +adiabaticcompressedairnozzle = IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE +adiabaticpan = IfcHumidifierTypeEnum.ADIABATICPAN +adiabaticrigidmedia = IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA +adiabaticultrasonic = IfcHumidifierTypeEnum.ADIABATICULTRASONIC +adiabaticwettedelement = IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT +assistedbutane = IfcHumidifierTypeEnum.ASSISTEDBUTANE +assistedelectric = IfcHumidifierTypeEnum.ASSISTEDELECTRIC +assistednaturalgas = IfcHumidifierTypeEnum.ASSISTEDNATURALGAS +assistedpropane = IfcHumidifierTypeEnum.ASSISTEDPROPANE +assistedsteam = IfcHumidifierTypeEnum.ASSISTEDSTEAM +steaminjection = IfcHumidifierTypeEnum.STEAMINJECTION +userdefined = IfcHumidifierTypeEnum.USERDEFINED +notdefined = IfcHumidifierTypeEnum.NOTDEFINED IfcImpactProtectionDeviceTypeEnum = enum_namespace() -bumper = getattr(IfcImpactProtectionDeviceTypeEnum, 'BUMPER', INDETERMINATE) -crashcushion = getattr(IfcImpactProtectionDeviceTypeEnum, 'CRASHCUSHION', INDETERMINATE) -dampingsystem = getattr(IfcImpactProtectionDeviceTypeEnum, 'DAMPINGSYSTEM', INDETERMINATE) -fender = getattr(IfcImpactProtectionDeviceTypeEnum, 'FENDER', INDETERMINATE) -userdefined = getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcImpactProtectionDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +bumper = IfcImpactProtectionDeviceTypeEnum.BUMPER +crashcushion = IfcImpactProtectionDeviceTypeEnum.CRASHCUSHION +dampingsystem = IfcImpactProtectionDeviceTypeEnum.DAMPINGSYSTEM +fender = IfcImpactProtectionDeviceTypeEnum.FENDER +userdefined = IfcImpactProtectionDeviceTypeEnum.USERDEFINED +notdefined = IfcImpactProtectionDeviceTypeEnum.NOTDEFINED IfcInterceptorTypeEnum = enum_namespace() -cyclonic = getattr(IfcInterceptorTypeEnum, 'CYCLONIC', INDETERMINATE) -grease = getattr(IfcInterceptorTypeEnum, 'GREASE', INDETERMINATE) -oil = getattr(IfcInterceptorTypeEnum, 'OIL', INDETERMINATE) -petrol = getattr(IfcInterceptorTypeEnum, 'PETROL', INDETERMINATE) -userdefined = getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcInterceptorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cyclonic = IfcInterceptorTypeEnum.CYCLONIC +grease = IfcInterceptorTypeEnum.GREASE +oil = IfcInterceptorTypeEnum.OIL +petrol = IfcInterceptorTypeEnum.PETROL +userdefined = IfcInterceptorTypeEnum.USERDEFINED +notdefined = IfcInterceptorTypeEnum.NOTDEFINED IfcInternalOrExternalEnum = enum_namespace() -external = getattr(IfcInternalOrExternalEnum, 'EXTERNAL', INDETERMINATE) -external_earth = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_fire = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_FIRE', INDETERMINATE) -external_water = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_WATER', INDETERMINATE) -internal = getattr(IfcInternalOrExternalEnum, 'INTERNAL', INDETERMINATE) -notdefined = getattr(IfcInternalOrExternalEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcInternalOrExternalEnum.EXTERNAL +external_earth = IfcInternalOrExternalEnum.EXTERNAL_EARTH +external_fire = IfcInternalOrExternalEnum.EXTERNAL_FIRE +external_water = IfcInternalOrExternalEnum.EXTERNAL_WATER +internal = IfcInternalOrExternalEnum.INTERNAL +notdefined = IfcInternalOrExternalEnum.NOTDEFINED IfcInventoryTypeEnum = enum_namespace() -assetinventory = getattr(IfcInventoryTypeEnum, 'ASSETINVENTORY', INDETERMINATE) -furnitureinventory = getattr(IfcInventoryTypeEnum, 'FURNITUREINVENTORY', INDETERMINATE) -spaceinventory = getattr(IfcInventoryTypeEnum, 'SPACEINVENTORY', INDETERMINATE) -userdefined = getattr(IfcInventoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcInventoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +assetinventory = IfcInventoryTypeEnum.ASSETINVENTORY +furnitureinventory = IfcInventoryTypeEnum.FURNITUREINVENTORY +spaceinventory = IfcInventoryTypeEnum.SPACEINVENTORY +userdefined = IfcInventoryTypeEnum.USERDEFINED +notdefined = IfcInventoryTypeEnum.NOTDEFINED IfcJunctionBoxTypeEnum = enum_namespace() -data = getattr(IfcJunctionBoxTypeEnum, 'DATA', INDETERMINATE) -power = getattr(IfcJunctionBoxTypeEnum, 'POWER', INDETERMINATE) -userdefined = getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcJunctionBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +data = IfcJunctionBoxTypeEnum.DATA +power = IfcJunctionBoxTypeEnum.POWER +userdefined = IfcJunctionBoxTypeEnum.USERDEFINED +notdefined = IfcJunctionBoxTypeEnum.NOTDEFINED IfcKerbTypeEnum = enum_namespace() -userdefined = getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcKerbTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcKerbTypeEnum.USERDEFINED +notdefined = IfcKerbTypeEnum.NOTDEFINED IfcKnotType = enum_namespace() -piecewise_bezier_knots = getattr(IfcKnotType, 'PIECEWISE_BEZIER_KNOTS', INDETERMINATE) -quasi_uniform_knots = getattr(IfcKnotType, 'QUASI_UNIFORM_KNOTS', INDETERMINATE) -uniform_knots = getattr(IfcKnotType, 'UNIFORM_KNOTS', INDETERMINATE) -unspecified = getattr(IfcKnotType, 'UNSPECIFIED', INDETERMINATE) +piecewise_bezier_knots = IfcKnotType.PIECEWISE_BEZIER_KNOTS +quasi_uniform_knots = IfcKnotType.QUASI_UNIFORM_KNOTS +uniform_knots = IfcKnotType.UNIFORM_KNOTS +unspecified = IfcKnotType.UNSPECIFIED IfcLaborResourceTypeEnum = enum_namespace() -administration = getattr(IfcLaborResourceTypeEnum, 'ADMINISTRATION', INDETERMINATE) -carpentry = getattr(IfcLaborResourceTypeEnum, 'CARPENTRY', INDETERMINATE) -cleaning = getattr(IfcLaborResourceTypeEnum, 'CLEANING', INDETERMINATE) -concrete = getattr(IfcLaborResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = getattr(IfcLaborResourceTypeEnum, 'DRYWALL', INDETERMINATE) -electric = getattr(IfcLaborResourceTypeEnum, 'ELECTRIC', INDETERMINATE) -finishing = getattr(IfcLaborResourceTypeEnum, 'FINISHING', INDETERMINATE) -flooring = getattr(IfcLaborResourceTypeEnum, 'FLOORING', INDETERMINATE) -general = getattr(IfcLaborResourceTypeEnum, 'GENERAL', INDETERMINATE) -hvac = getattr(IfcLaborResourceTypeEnum, 'HVAC', INDETERMINATE) -landscaping = getattr(IfcLaborResourceTypeEnum, 'LANDSCAPING', INDETERMINATE) -masonry = getattr(IfcLaborResourceTypeEnum, 'MASONRY', INDETERMINATE) -painting = getattr(IfcLaborResourceTypeEnum, 'PAINTING', INDETERMINATE) -paving = getattr(IfcLaborResourceTypeEnum, 'PAVING', INDETERMINATE) -plumbing = getattr(IfcLaborResourceTypeEnum, 'PLUMBING', INDETERMINATE) -roofing = getattr(IfcLaborResourceTypeEnum, 'ROOFING', INDETERMINATE) -sitegrading = getattr(IfcLaborResourceTypeEnum, 'SITEGRADING', INDETERMINATE) -steelwork = getattr(IfcLaborResourceTypeEnum, 'STEELWORK', INDETERMINATE) -surveying = getattr(IfcLaborResourceTypeEnum, 'SURVEYING', INDETERMINATE) -userdefined = getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLaborResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +administration = IfcLaborResourceTypeEnum.ADMINISTRATION +carpentry = IfcLaborResourceTypeEnum.CARPENTRY +cleaning = IfcLaborResourceTypeEnum.CLEANING +concrete = IfcLaborResourceTypeEnum.CONCRETE +drywall = IfcLaborResourceTypeEnum.DRYWALL +electric = IfcLaborResourceTypeEnum.ELECTRIC +finishing = IfcLaborResourceTypeEnum.FINISHING +flooring = IfcLaborResourceTypeEnum.FLOORING +general = IfcLaborResourceTypeEnum.GENERAL +hvac = IfcLaborResourceTypeEnum.HVAC +landscaping = IfcLaborResourceTypeEnum.LANDSCAPING +masonry = IfcLaborResourceTypeEnum.MASONRY +painting = IfcLaborResourceTypeEnum.PAINTING +paving = IfcLaborResourceTypeEnum.PAVING +plumbing = IfcLaborResourceTypeEnum.PLUMBING +roofing = IfcLaborResourceTypeEnum.ROOFING +sitegrading = IfcLaborResourceTypeEnum.SITEGRADING +steelwork = IfcLaborResourceTypeEnum.STEELWORK +surveying = IfcLaborResourceTypeEnum.SURVEYING +userdefined = IfcLaborResourceTypeEnum.USERDEFINED +notdefined = IfcLaborResourceTypeEnum.NOTDEFINED IfcLampTypeEnum = enum_namespace() -compactfluorescent = getattr(IfcLampTypeEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = getattr(IfcLampTypeEnum, 'FLUORESCENT', INDETERMINATE) -halogen = getattr(IfcLampTypeEnum, 'HALOGEN', INDETERMINATE) -highpressuremercury = getattr(IfcLampTypeEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = getattr(IfcLampTypeEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -led = getattr(IfcLampTypeEnum, 'LED', INDETERMINATE) -metalhalide = getattr(IfcLampTypeEnum, 'METALHALIDE', INDETERMINATE) -oled = getattr(IfcLampTypeEnum, 'OLED', INDETERMINATE) -tungstenfilament = getattr(IfcLampTypeEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -userdefined = getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLampTypeEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLampTypeEnum.COMPACTFLUORESCENT +fluorescent = IfcLampTypeEnum.FLUORESCENT +halogen = IfcLampTypeEnum.HALOGEN +highpressuremercury = IfcLampTypeEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLampTypeEnum.HIGHPRESSURESODIUM +led = IfcLampTypeEnum.LED +metalhalide = IfcLampTypeEnum.METALHALIDE +oled = IfcLampTypeEnum.OLED +tungstenfilament = IfcLampTypeEnum.TUNGSTENFILAMENT +userdefined = IfcLampTypeEnum.USERDEFINED +notdefined = IfcLampTypeEnum.NOTDEFINED IfcLayerSetDirectionEnum = enum_namespace() -axis1 = getattr(IfcLayerSetDirectionEnum, 'AXIS1', INDETERMINATE) -axis2 = getattr(IfcLayerSetDirectionEnum, 'AXIS2', INDETERMINATE) -axis3 = getattr(IfcLayerSetDirectionEnum, 'AXIS3', INDETERMINATE) +axis1 = IfcLayerSetDirectionEnum.AXIS1 +axis2 = IfcLayerSetDirectionEnum.AXIS2 +axis3 = IfcLayerSetDirectionEnum.AXIS3 IfcLightDistributionCurveEnum = enum_namespace() -type_a = getattr(IfcLightDistributionCurveEnum, 'TYPE_A', INDETERMINATE) -type_b = getattr(IfcLightDistributionCurveEnum, 'TYPE_B', INDETERMINATE) -type_c = getattr(IfcLightDistributionCurveEnum, 'TYPE_C', INDETERMINATE) -notdefined = getattr(IfcLightDistributionCurveEnum, 'NOTDEFINED', INDETERMINATE) +type_a = IfcLightDistributionCurveEnum.TYPE_A +type_b = IfcLightDistributionCurveEnum.TYPE_B +type_c = IfcLightDistributionCurveEnum.TYPE_C +notdefined = IfcLightDistributionCurveEnum.NOTDEFINED IfcLightEmissionSourceEnum = enum_namespace() -compactfluorescent = getattr(IfcLightEmissionSourceEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = getattr(IfcLightEmissionSourceEnum, 'FLUORESCENT', INDETERMINATE) -highpressuremercury = getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -lightemittingdiode = getattr(IfcLightEmissionSourceEnum, 'LIGHTEMITTINGDIODE', INDETERMINATE) -lowpressuresodium = getattr(IfcLightEmissionSourceEnum, 'LOWPRESSURESODIUM', INDETERMINATE) -lowvoltagehalogen = getattr(IfcLightEmissionSourceEnum, 'LOWVOLTAGEHALOGEN', INDETERMINATE) -mainvoltagehalogen = getattr(IfcLightEmissionSourceEnum, 'MAINVOLTAGEHALOGEN', INDETERMINATE) -metalhalide = getattr(IfcLightEmissionSourceEnum, 'METALHALIDE', INDETERMINATE) -tungstenfilament = getattr(IfcLightEmissionSourceEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -notdefined = getattr(IfcLightEmissionSourceEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLightEmissionSourceEnum.COMPACTFLUORESCENT +fluorescent = IfcLightEmissionSourceEnum.FLUORESCENT +highpressuremercury = IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM +lightemittingdiode = IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE +lowpressuresodium = IfcLightEmissionSourceEnum.LOWPRESSURESODIUM +lowvoltagehalogen = IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN +mainvoltagehalogen = IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN +metalhalide = IfcLightEmissionSourceEnum.METALHALIDE +tungstenfilament = IfcLightEmissionSourceEnum.TUNGSTENFILAMENT +notdefined = IfcLightEmissionSourceEnum.NOTDEFINED IfcLightFixtureTypeEnum = enum_namespace() -directionsource = getattr(IfcLightFixtureTypeEnum, 'DIRECTIONSOURCE', INDETERMINATE) -pointsource = getattr(IfcLightFixtureTypeEnum, 'POINTSOURCE', INDETERMINATE) -securitylighting = getattr(IfcLightFixtureTypeEnum, 'SECURITYLIGHTING', INDETERMINATE) -userdefined = getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLightFixtureTypeEnum, 'NOTDEFINED', INDETERMINATE) +directionsource = IfcLightFixtureTypeEnum.DIRECTIONSOURCE +pointsource = IfcLightFixtureTypeEnum.POINTSOURCE +securitylighting = IfcLightFixtureTypeEnum.SECURITYLIGHTING +userdefined = IfcLightFixtureTypeEnum.USERDEFINED +notdefined = IfcLightFixtureTypeEnum.NOTDEFINED IfcLiquidTerminalTypeEnum = enum_namespace() -hosereel = getattr(IfcLiquidTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -loadingarm = getattr(IfcLiquidTerminalTypeEnum, 'LOADINGARM', INDETERMINATE) -userdefined = getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLiquidTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +hosereel = IfcLiquidTerminalTypeEnum.HOSEREEL +loadingarm = IfcLiquidTerminalTypeEnum.LOADINGARM +userdefined = IfcLiquidTerminalTypeEnum.USERDEFINED +notdefined = IfcLiquidTerminalTypeEnum.NOTDEFINED IfcLoadGroupTypeEnum = enum_namespace() -load_case = getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE) -load_combination = getattr(IfcLoadGroupTypeEnum, 'LOAD_COMBINATION', INDETERMINATE) -load_group = getattr(IfcLoadGroupTypeEnum, 'LOAD_GROUP', INDETERMINATE) -userdefined = getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLoadGroupTypeEnum, 'NOTDEFINED', INDETERMINATE) +load_case = IfcLoadGroupTypeEnum.LOAD_CASE +load_combination = IfcLoadGroupTypeEnum.LOAD_COMBINATION +load_group = IfcLoadGroupTypeEnum.LOAD_GROUP +userdefined = IfcLoadGroupTypeEnum.USERDEFINED +notdefined = IfcLoadGroupTypeEnum.NOTDEFINED IfcLogicalOperatorEnum = enum_namespace() -logicaland = getattr(IfcLogicalOperatorEnum, 'LOGICALAND', INDETERMINATE) -logicalnotand = getattr(IfcLogicalOperatorEnum, 'LOGICALNOTAND', INDETERMINATE) -logicalnotor = getattr(IfcLogicalOperatorEnum, 'LOGICALNOTOR', INDETERMINATE) -logicalor = getattr(IfcLogicalOperatorEnum, 'LOGICALOR', INDETERMINATE) -logicalxor = getattr(IfcLogicalOperatorEnum, 'LOGICALXOR', INDETERMINATE) +logicaland = IfcLogicalOperatorEnum.LOGICALAND +logicalnotand = IfcLogicalOperatorEnum.LOGICALNOTAND +logicalnotor = IfcLogicalOperatorEnum.LOGICALNOTOR +logicalor = IfcLogicalOperatorEnum.LOGICALOR +logicalxor = IfcLogicalOperatorEnum.LOGICALXOR IfcMarineFacilityTypeEnum = enum_namespace() -barrierbeach = getattr(IfcMarineFacilityTypeEnum, 'BARRIERBEACH', INDETERMINATE) -breakwater = getattr(IfcMarineFacilityTypeEnum, 'BREAKWATER', INDETERMINATE) -canal = getattr(IfcMarineFacilityTypeEnum, 'CANAL', INDETERMINATE) -drydock = getattr(IfcMarineFacilityTypeEnum, 'DRYDOCK', INDETERMINATE) -floatingdock = getattr(IfcMarineFacilityTypeEnum, 'FLOATINGDOCK', INDETERMINATE) -hydrolift = getattr(IfcMarineFacilityTypeEnum, 'HYDROLIFT', INDETERMINATE) -jetty = getattr(IfcMarineFacilityTypeEnum, 'JETTY', INDETERMINATE) -launchrecovery = getattr(IfcMarineFacilityTypeEnum, 'LAUNCHRECOVERY', INDETERMINATE) -marinedefence = getattr(IfcMarineFacilityTypeEnum, 'MARINEDEFENCE', INDETERMINATE) -navigationalchannel = getattr(IfcMarineFacilityTypeEnum, 'NAVIGATIONALCHANNEL', INDETERMINATE) -port = getattr(IfcMarineFacilityTypeEnum, 'PORT', INDETERMINATE) -quay = getattr(IfcMarineFacilityTypeEnum, 'QUAY', INDETERMINATE) -revetment = getattr(IfcMarineFacilityTypeEnum, 'REVETMENT', INDETERMINATE) -shiplift = getattr(IfcMarineFacilityTypeEnum, 'SHIPLIFT', INDETERMINATE) -shiplock = getattr(IfcMarineFacilityTypeEnum, 'SHIPLOCK', INDETERMINATE) -shipyard = getattr(IfcMarineFacilityTypeEnum, 'SHIPYARD', INDETERMINATE) -slipway = getattr(IfcMarineFacilityTypeEnum, 'SLIPWAY', INDETERMINATE) -waterway = getattr(IfcMarineFacilityTypeEnum, 'WATERWAY', INDETERMINATE) -waterwayshiplift = getattr(IfcMarineFacilityTypeEnum, 'WATERWAYSHIPLIFT', INDETERMINATE) -userdefined = getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMarineFacilityTypeEnum, 'NOTDEFINED', INDETERMINATE) +barrierbeach = IfcMarineFacilityTypeEnum.BARRIERBEACH +breakwater = IfcMarineFacilityTypeEnum.BREAKWATER +canal = IfcMarineFacilityTypeEnum.CANAL +drydock = IfcMarineFacilityTypeEnum.DRYDOCK +floatingdock = IfcMarineFacilityTypeEnum.FLOATINGDOCK +hydrolift = IfcMarineFacilityTypeEnum.HYDROLIFT +jetty = IfcMarineFacilityTypeEnum.JETTY +launchrecovery = IfcMarineFacilityTypeEnum.LAUNCHRECOVERY +marinedefence = IfcMarineFacilityTypeEnum.MARINEDEFENCE +navigationalchannel = IfcMarineFacilityTypeEnum.NAVIGATIONALCHANNEL +port = IfcMarineFacilityTypeEnum.PORT +quay = IfcMarineFacilityTypeEnum.QUAY +revetment = IfcMarineFacilityTypeEnum.REVETMENT +shiplift = IfcMarineFacilityTypeEnum.SHIPLIFT +shiplock = IfcMarineFacilityTypeEnum.SHIPLOCK +shipyard = IfcMarineFacilityTypeEnum.SHIPYARD +slipway = IfcMarineFacilityTypeEnum.SLIPWAY +waterway = IfcMarineFacilityTypeEnum.WATERWAY +waterwayshiplift = IfcMarineFacilityTypeEnum.WATERWAYSHIPLIFT +userdefined = IfcMarineFacilityTypeEnum.USERDEFINED +notdefined = IfcMarineFacilityTypeEnum.NOTDEFINED IfcMarinePartTypeEnum = enum_namespace() -abovewaterline = getattr(IfcMarinePartTypeEnum, 'ABOVEWATERLINE', INDETERMINATE) -anchorage = getattr(IfcMarinePartTypeEnum, 'ANCHORAGE', INDETERMINATE) -approachchannel = getattr(IfcMarinePartTypeEnum, 'APPROACHCHANNEL', INDETERMINATE) -belowwaterline = getattr(IfcMarinePartTypeEnum, 'BELOWWATERLINE', INDETERMINATE) -berthingstructure = getattr(IfcMarinePartTypeEnum, 'BERTHINGSTRUCTURE', INDETERMINATE) -chamber = getattr(IfcMarinePartTypeEnum, 'CHAMBER', INDETERMINATE) -cill_level = getattr(IfcMarinePartTypeEnum, 'CILL_LEVEL', INDETERMINATE) -copelevel = getattr(IfcMarinePartTypeEnum, 'COPELEVEL', INDETERMINATE) -core = getattr(IfcMarinePartTypeEnum, 'CORE', INDETERMINATE) -crest = getattr(IfcMarinePartTypeEnum, 'CREST', INDETERMINATE) -gatehead = getattr(IfcMarinePartTypeEnum, 'GATEHEAD', INDETERMINATE) -gudingstructure = getattr(IfcMarinePartTypeEnum, 'GUDINGSTRUCTURE', INDETERMINATE) -highwaterline = getattr(IfcMarinePartTypeEnum, 'HIGHWATERLINE', INDETERMINATE) -landfield = getattr(IfcMarinePartTypeEnum, 'LANDFIELD', INDETERMINATE) -leewardside = getattr(IfcMarinePartTypeEnum, 'LEEWARDSIDE', INDETERMINATE) -lowwaterline = getattr(IfcMarinePartTypeEnum, 'LOWWATERLINE', INDETERMINATE) -manufacturing = getattr(IfcMarinePartTypeEnum, 'MANUFACTURING', INDETERMINATE) -navigationalarea = getattr(IfcMarinePartTypeEnum, 'NAVIGATIONALAREA', INDETERMINATE) -protection = getattr(IfcMarinePartTypeEnum, 'PROTECTION', INDETERMINATE) -shiptransfer = getattr(IfcMarinePartTypeEnum, 'SHIPTRANSFER', INDETERMINATE) -storagearea = getattr(IfcMarinePartTypeEnum, 'STORAGEAREA', INDETERMINATE) -vehicleservicing = getattr(IfcMarinePartTypeEnum, 'VEHICLESERVICING', INDETERMINATE) -waterfield = getattr(IfcMarinePartTypeEnum, 'WATERFIELD', INDETERMINATE) -weatherside = getattr(IfcMarinePartTypeEnum, 'WEATHERSIDE', INDETERMINATE) -userdefined = getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMarinePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +abovewaterline = IfcMarinePartTypeEnum.ABOVEWATERLINE +anchorage = IfcMarinePartTypeEnum.ANCHORAGE +approachchannel = IfcMarinePartTypeEnum.APPROACHCHANNEL +belowwaterline = IfcMarinePartTypeEnum.BELOWWATERLINE +berthingstructure = IfcMarinePartTypeEnum.BERTHINGSTRUCTURE +chamber = IfcMarinePartTypeEnum.CHAMBER +cill_level = IfcMarinePartTypeEnum.CILL_LEVEL +copelevel = IfcMarinePartTypeEnum.COPELEVEL +core = IfcMarinePartTypeEnum.CORE +crest = IfcMarinePartTypeEnum.CREST +gatehead = IfcMarinePartTypeEnum.GATEHEAD +gudingstructure = IfcMarinePartTypeEnum.GUDINGSTRUCTURE +highwaterline = IfcMarinePartTypeEnum.HIGHWATERLINE +landfield = IfcMarinePartTypeEnum.LANDFIELD +leewardside = IfcMarinePartTypeEnum.LEEWARDSIDE +lowwaterline = IfcMarinePartTypeEnum.LOWWATERLINE +manufacturing = IfcMarinePartTypeEnum.MANUFACTURING +navigationalarea = IfcMarinePartTypeEnum.NAVIGATIONALAREA +protection = IfcMarinePartTypeEnum.PROTECTION +shiptransfer = IfcMarinePartTypeEnum.SHIPTRANSFER +storagearea = IfcMarinePartTypeEnum.STORAGEAREA +vehicleservicing = IfcMarinePartTypeEnum.VEHICLESERVICING +waterfield = IfcMarinePartTypeEnum.WATERFIELD +weatherside = IfcMarinePartTypeEnum.WEATHERSIDE +userdefined = IfcMarinePartTypeEnum.USERDEFINED +notdefined = IfcMarinePartTypeEnum.NOTDEFINED IfcMechanicalFastenerTypeEnum = enum_namespace() -anchorbolt = getattr(IfcMechanicalFastenerTypeEnum, 'ANCHORBOLT', INDETERMINATE) -bolt = getattr(IfcMechanicalFastenerTypeEnum, 'BOLT', INDETERMINATE) -chain = getattr(IfcMechanicalFastenerTypeEnum, 'CHAIN', INDETERMINATE) -coupler = getattr(IfcMechanicalFastenerTypeEnum, 'COUPLER', INDETERMINATE) -dowel = getattr(IfcMechanicalFastenerTypeEnum, 'DOWEL', INDETERMINATE) -nail = getattr(IfcMechanicalFastenerTypeEnum, 'NAIL', INDETERMINATE) -nailplate = getattr(IfcMechanicalFastenerTypeEnum, 'NAILPLATE', INDETERMINATE) -railfastening = getattr(IfcMechanicalFastenerTypeEnum, 'RAILFASTENING', INDETERMINATE) -railjoint = getattr(IfcMechanicalFastenerTypeEnum, 'RAILJOINT', INDETERMINATE) -rivet = getattr(IfcMechanicalFastenerTypeEnum, 'RIVET', INDETERMINATE) -rope = getattr(IfcMechanicalFastenerTypeEnum, 'ROPE', INDETERMINATE) -screw = getattr(IfcMechanicalFastenerTypeEnum, 'SCREW', INDETERMINATE) -shearconnector = getattr(IfcMechanicalFastenerTypeEnum, 'SHEARCONNECTOR', INDETERMINATE) -staple = getattr(IfcMechanicalFastenerTypeEnum, 'STAPLE', INDETERMINATE) -studshearconnector = getattr(IfcMechanicalFastenerTypeEnum, 'STUDSHEARCONNECTOR', INDETERMINATE) -userdefined = getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMechanicalFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorbolt = IfcMechanicalFastenerTypeEnum.ANCHORBOLT +bolt = IfcMechanicalFastenerTypeEnum.BOLT +chain = IfcMechanicalFastenerTypeEnum.CHAIN +coupler = IfcMechanicalFastenerTypeEnum.COUPLER +dowel = IfcMechanicalFastenerTypeEnum.DOWEL +nail = IfcMechanicalFastenerTypeEnum.NAIL +nailplate = IfcMechanicalFastenerTypeEnum.NAILPLATE +railfastening = IfcMechanicalFastenerTypeEnum.RAILFASTENING +railjoint = IfcMechanicalFastenerTypeEnum.RAILJOINT +rivet = IfcMechanicalFastenerTypeEnum.RIVET +rope = IfcMechanicalFastenerTypeEnum.ROPE +screw = IfcMechanicalFastenerTypeEnum.SCREW +shearconnector = IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR +staple = IfcMechanicalFastenerTypeEnum.STAPLE +studshearconnector = IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR +userdefined = IfcMechanicalFastenerTypeEnum.USERDEFINED +notdefined = IfcMechanicalFastenerTypeEnum.NOTDEFINED IfcMedicalDeviceTypeEnum = enum_namespace() -airstation = getattr(IfcMedicalDeviceTypeEnum, 'AIRSTATION', INDETERMINATE) -feedairunit = getattr(IfcMedicalDeviceTypeEnum, 'FEEDAIRUNIT', INDETERMINATE) -oxygengenerator = getattr(IfcMedicalDeviceTypeEnum, 'OXYGENGENERATOR', INDETERMINATE) -oxygenplant = getattr(IfcMedicalDeviceTypeEnum, 'OXYGENPLANT', INDETERMINATE) -vacuumstation = getattr(IfcMedicalDeviceTypeEnum, 'VACUUMSTATION', INDETERMINATE) -userdefined = getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMedicalDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +airstation = IfcMedicalDeviceTypeEnum.AIRSTATION +feedairunit = IfcMedicalDeviceTypeEnum.FEEDAIRUNIT +oxygengenerator = IfcMedicalDeviceTypeEnum.OXYGENGENERATOR +oxygenplant = IfcMedicalDeviceTypeEnum.OXYGENPLANT +vacuumstation = IfcMedicalDeviceTypeEnum.VACUUMSTATION +userdefined = IfcMedicalDeviceTypeEnum.USERDEFINED +notdefined = IfcMedicalDeviceTypeEnum.NOTDEFINED IfcMemberTypeEnum = enum_namespace() -arch_segment = getattr(IfcMemberTypeEnum, 'ARCH_SEGMENT', INDETERMINATE) -brace = getattr(IfcMemberTypeEnum, 'BRACE', INDETERMINATE) -chord = getattr(IfcMemberTypeEnum, 'CHORD', INDETERMINATE) -collar = getattr(IfcMemberTypeEnum, 'COLLAR', INDETERMINATE) -member = getattr(IfcMemberTypeEnum, 'MEMBER', INDETERMINATE) -mullion = getattr(IfcMemberTypeEnum, 'MULLION', INDETERMINATE) -plate = getattr(IfcMemberTypeEnum, 'PLATE', INDETERMINATE) -post = getattr(IfcMemberTypeEnum, 'POST', INDETERMINATE) -purlin = getattr(IfcMemberTypeEnum, 'PURLIN', INDETERMINATE) -rafter = getattr(IfcMemberTypeEnum, 'RAFTER', INDETERMINATE) -stay_cable = getattr(IfcMemberTypeEnum, 'STAY_CABLE', INDETERMINATE) -stiffening_rib = getattr(IfcMemberTypeEnum, 'STIFFENING_RIB', INDETERMINATE) -stringer = getattr(IfcMemberTypeEnum, 'STRINGER', INDETERMINATE) -structuralcable = getattr(IfcMemberTypeEnum, 'STRUCTURALCABLE', INDETERMINATE) -strut = getattr(IfcMemberTypeEnum, 'STRUT', INDETERMINATE) -stud = getattr(IfcMemberTypeEnum, 'STUD', INDETERMINATE) -suspender = getattr(IfcMemberTypeEnum, 'SUSPENDER', INDETERMINATE) -suspension_cable = getattr(IfcMemberTypeEnum, 'SUSPENSION_CABLE', INDETERMINATE) -tiebar = getattr(IfcMemberTypeEnum, 'TIEBAR', INDETERMINATE) -userdefined = getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +arch_segment = IfcMemberTypeEnum.ARCH_SEGMENT +brace = IfcMemberTypeEnum.BRACE +chord = IfcMemberTypeEnum.CHORD +collar = IfcMemberTypeEnum.COLLAR +member = IfcMemberTypeEnum.MEMBER +mullion = IfcMemberTypeEnum.MULLION +plate = IfcMemberTypeEnum.PLATE +post = IfcMemberTypeEnum.POST +purlin = IfcMemberTypeEnum.PURLIN +rafter = IfcMemberTypeEnum.RAFTER +stay_cable = IfcMemberTypeEnum.STAY_CABLE +stiffening_rib = IfcMemberTypeEnum.STIFFENING_RIB +stringer = IfcMemberTypeEnum.STRINGER +structuralcable = IfcMemberTypeEnum.STRUCTURALCABLE +strut = IfcMemberTypeEnum.STRUT +stud = IfcMemberTypeEnum.STUD +suspender = IfcMemberTypeEnum.SUSPENDER +suspension_cable = IfcMemberTypeEnum.SUSPENSION_CABLE +tiebar = IfcMemberTypeEnum.TIEBAR +userdefined = IfcMemberTypeEnum.USERDEFINED +notdefined = IfcMemberTypeEnum.NOTDEFINED IfcMobileTelecommunicationsApplianceTypeEnum = enum_namespace() -accesspoint = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'ACCESSPOINT', INDETERMINATE) -basebandunit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASEBANDUNIT', INDETERMINATE) -basetransceiverstation = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASETRANSCEIVERSTATION', INDETERMINATE) -e_utran_node_b = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'E_UTRAN_NODE_B', INDETERMINATE) -gateway_gprs_support_node = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'GATEWAY_GPRS_SUPPORT_NODE', INDETERMINATE) -masterunit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MASTERUNIT', INDETERMINATE) -mobileswitchingcenter = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MOBILESWITCHINGCENTER', INDETERMINATE) -mscserver = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MSCSERVER', INDETERMINATE) -packetcontrolunit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'PACKETCONTROLUNIT', INDETERMINATE) -remoteradiounit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTERADIOUNIT', INDETERMINATE) -remoteunit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTEUNIT', INDETERMINATE) -service_gprs_support_node = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'SERVICE_GPRS_SUPPORT_NODE', INDETERMINATE) -subscriberserver = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'SUBSCRIBERSERVER', INDETERMINATE) -userdefined = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +accesspoint = IfcMobileTelecommunicationsApplianceTypeEnum.ACCESSPOINT +basebandunit = IfcMobileTelecommunicationsApplianceTypeEnum.BASEBANDUNIT +basetransceiverstation = IfcMobileTelecommunicationsApplianceTypeEnum.BASETRANSCEIVERSTATION +e_utran_node_b = IfcMobileTelecommunicationsApplianceTypeEnum.E_UTRAN_NODE_B +gateway_gprs_support_node = IfcMobileTelecommunicationsApplianceTypeEnum.GATEWAY_GPRS_SUPPORT_NODE +masterunit = IfcMobileTelecommunicationsApplianceTypeEnum.MASTERUNIT +mobileswitchingcenter = IfcMobileTelecommunicationsApplianceTypeEnum.MOBILESWITCHINGCENTER +mscserver = IfcMobileTelecommunicationsApplianceTypeEnum.MSCSERVER +packetcontrolunit = IfcMobileTelecommunicationsApplianceTypeEnum.PACKETCONTROLUNIT +remoteradiounit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTERADIOUNIT +remoteunit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTEUNIT +service_gprs_support_node = IfcMobileTelecommunicationsApplianceTypeEnum.SERVICE_GPRS_SUPPORT_NODE +subscriberserver = IfcMobileTelecommunicationsApplianceTypeEnum.SUBSCRIBERSERVER +userdefined = IfcMobileTelecommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcMobileTelecommunicationsApplianceTypeEnum.NOTDEFINED IfcMooringDeviceTypeEnum = enum_namespace() -bollard = getattr(IfcMooringDeviceTypeEnum, 'BOLLARD', INDETERMINATE) -linetensioner = getattr(IfcMooringDeviceTypeEnum, 'LINETENSIONER', INDETERMINATE) -magneticdevice = getattr(IfcMooringDeviceTypeEnum, 'MAGNETICDEVICE', INDETERMINATE) -mooringhooks = getattr(IfcMooringDeviceTypeEnum, 'MOORINGHOOKS', INDETERMINATE) -vacuumdevice = getattr(IfcMooringDeviceTypeEnum, 'VACUUMDEVICE', INDETERMINATE) -userdefined = getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMooringDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +bollard = IfcMooringDeviceTypeEnum.BOLLARD +linetensioner = IfcMooringDeviceTypeEnum.LINETENSIONER +magneticdevice = IfcMooringDeviceTypeEnum.MAGNETICDEVICE +mooringhooks = IfcMooringDeviceTypeEnum.MOORINGHOOKS +vacuumdevice = IfcMooringDeviceTypeEnum.VACUUMDEVICE +userdefined = IfcMooringDeviceTypeEnum.USERDEFINED +notdefined = IfcMooringDeviceTypeEnum.NOTDEFINED IfcMotorConnectionTypeEnum = enum_namespace() -beltdrive = getattr(IfcMotorConnectionTypeEnum, 'BELTDRIVE', INDETERMINATE) -coupling = getattr(IfcMotorConnectionTypeEnum, 'COUPLING', INDETERMINATE) -directdrive = getattr(IfcMotorConnectionTypeEnum, 'DIRECTDRIVE', INDETERMINATE) -userdefined = getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMotorConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltdrive = IfcMotorConnectionTypeEnum.BELTDRIVE +coupling = IfcMotorConnectionTypeEnum.COUPLING +directdrive = IfcMotorConnectionTypeEnum.DIRECTDRIVE +userdefined = IfcMotorConnectionTypeEnum.USERDEFINED +notdefined = IfcMotorConnectionTypeEnum.NOTDEFINED IfcNavigationElementTypeEnum = enum_namespace() -beacon = getattr(IfcNavigationElementTypeEnum, 'BEACON', INDETERMINATE) -buoy = getattr(IfcNavigationElementTypeEnum, 'BUOY', INDETERMINATE) -userdefined = getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcNavigationElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +beacon = IfcNavigationElementTypeEnum.BEACON +buoy = IfcNavigationElementTypeEnum.BUOY +userdefined = IfcNavigationElementTypeEnum.USERDEFINED +notdefined = IfcNavigationElementTypeEnum.NOTDEFINED IfcObjectiveEnum = enum_namespace() -codecompliance = getattr(IfcObjectiveEnum, 'CODECOMPLIANCE', INDETERMINATE) -codewaiver = getattr(IfcObjectiveEnum, 'CODEWAIVER', INDETERMINATE) -designintent = getattr(IfcObjectiveEnum, 'DESIGNINTENT', INDETERMINATE) -external = getattr(IfcObjectiveEnum, 'EXTERNAL', INDETERMINATE) -healthandsafety = getattr(IfcObjectiveEnum, 'HEALTHANDSAFETY', INDETERMINATE) -mergeconflict = getattr(IfcObjectiveEnum, 'MERGECONFLICT', INDETERMINATE) -modelview = getattr(IfcObjectiveEnum, 'MODELVIEW', INDETERMINATE) -parameter = getattr(IfcObjectiveEnum, 'PARAMETER', INDETERMINATE) -requirement = getattr(IfcObjectiveEnum, 'REQUIREMENT', INDETERMINATE) -specification = getattr(IfcObjectiveEnum, 'SPECIFICATION', INDETERMINATE) -triggercondition = getattr(IfcObjectiveEnum, 'TRIGGERCONDITION', INDETERMINATE) -userdefined = getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcObjectiveEnum, 'NOTDEFINED', INDETERMINATE) +codecompliance = IfcObjectiveEnum.CODECOMPLIANCE +codewaiver = IfcObjectiveEnum.CODEWAIVER +designintent = IfcObjectiveEnum.DESIGNINTENT +external = IfcObjectiveEnum.EXTERNAL +healthandsafety = IfcObjectiveEnum.HEALTHANDSAFETY +mergeconflict = IfcObjectiveEnum.MERGECONFLICT +modelview = IfcObjectiveEnum.MODELVIEW +parameter = IfcObjectiveEnum.PARAMETER +requirement = IfcObjectiveEnum.REQUIREMENT +specification = IfcObjectiveEnum.SPECIFICATION +triggercondition = IfcObjectiveEnum.TRIGGERCONDITION +userdefined = IfcObjectiveEnum.USERDEFINED +notdefined = IfcObjectiveEnum.NOTDEFINED IfcOccupantTypeEnum = enum_namespace() -assignee = getattr(IfcOccupantTypeEnum, 'ASSIGNEE', INDETERMINATE) -assignor = getattr(IfcOccupantTypeEnum, 'ASSIGNOR', INDETERMINATE) -lessee = getattr(IfcOccupantTypeEnum, 'LESSEE', INDETERMINATE) -lessor = getattr(IfcOccupantTypeEnum, 'LESSOR', INDETERMINATE) -lettingagent = getattr(IfcOccupantTypeEnum, 'LETTINGAGENT', INDETERMINATE) -owner = getattr(IfcOccupantTypeEnum, 'OWNER', INDETERMINATE) -tenant = getattr(IfcOccupantTypeEnum, 'TENANT', INDETERMINATE) -userdefined = getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOccupantTypeEnum, 'NOTDEFINED', INDETERMINATE) +assignee = IfcOccupantTypeEnum.ASSIGNEE +assignor = IfcOccupantTypeEnum.ASSIGNOR +lessee = IfcOccupantTypeEnum.LESSEE +lessor = IfcOccupantTypeEnum.LESSOR +lettingagent = IfcOccupantTypeEnum.LETTINGAGENT +owner = IfcOccupantTypeEnum.OWNER +tenant = IfcOccupantTypeEnum.TENANT +userdefined = IfcOccupantTypeEnum.USERDEFINED +notdefined = IfcOccupantTypeEnum.NOTDEFINED IfcOpeningElementTypeEnum = enum_namespace() -opening = getattr(IfcOpeningElementTypeEnum, 'OPENING', INDETERMINATE) -recess = getattr(IfcOpeningElementTypeEnum, 'RECESS', INDETERMINATE) -userdefined = getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOpeningElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +opening = IfcOpeningElementTypeEnum.OPENING +recess = IfcOpeningElementTypeEnum.RECESS +userdefined = IfcOpeningElementTypeEnum.USERDEFINED +notdefined = IfcOpeningElementTypeEnum.NOTDEFINED IfcOutletTypeEnum = enum_namespace() -audiovisualoutlet = getattr(IfcOutletTypeEnum, 'AUDIOVISUALOUTLET', INDETERMINATE) -communicationsoutlet = getattr(IfcOutletTypeEnum, 'COMMUNICATIONSOUTLET', INDETERMINATE) -dataoutlet = getattr(IfcOutletTypeEnum, 'DATAOUTLET', INDETERMINATE) -poweroutlet = getattr(IfcOutletTypeEnum, 'POWEROUTLET', INDETERMINATE) -telephoneoutlet = getattr(IfcOutletTypeEnum, 'TELEPHONEOUTLET', INDETERMINATE) -userdefined = getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOutletTypeEnum, 'NOTDEFINED', INDETERMINATE) +audiovisualoutlet = IfcOutletTypeEnum.AUDIOVISUALOUTLET +communicationsoutlet = IfcOutletTypeEnum.COMMUNICATIONSOUTLET +dataoutlet = IfcOutletTypeEnum.DATAOUTLET +poweroutlet = IfcOutletTypeEnum.POWEROUTLET +telephoneoutlet = IfcOutletTypeEnum.TELEPHONEOUTLET +userdefined = IfcOutletTypeEnum.USERDEFINED +notdefined = IfcOutletTypeEnum.NOTDEFINED IfcPavementTypeEnum = enum_namespace() -flexible = getattr(IfcPavementTypeEnum, 'FLEXIBLE', INDETERMINATE) -rigid = getattr(IfcPavementTypeEnum, 'RIGID', INDETERMINATE) -userdefined = getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPavementTypeEnum, 'NOTDEFINED', INDETERMINATE) +flexible = IfcPavementTypeEnum.FLEXIBLE +rigid = IfcPavementTypeEnum.RIGID +userdefined = IfcPavementTypeEnum.USERDEFINED +notdefined = IfcPavementTypeEnum.NOTDEFINED IfcPerformanceHistoryTypeEnum = enum_namespace() -userdefined = getattr(IfcPerformanceHistoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPerformanceHistoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcPerformanceHistoryTypeEnum.USERDEFINED +notdefined = IfcPerformanceHistoryTypeEnum.NOTDEFINED IfcPermeableCoveringOperationEnum = enum_namespace() -grill = getattr(IfcPermeableCoveringOperationEnum, 'GRILL', INDETERMINATE) -louver = getattr(IfcPermeableCoveringOperationEnum, 'LOUVER', INDETERMINATE) -screen = getattr(IfcPermeableCoveringOperationEnum, 'SCREEN', INDETERMINATE) -userdefined = getattr(IfcPermeableCoveringOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPermeableCoveringOperationEnum, 'NOTDEFINED', INDETERMINATE) +grill = IfcPermeableCoveringOperationEnum.GRILL +louver = IfcPermeableCoveringOperationEnum.LOUVER +screen = IfcPermeableCoveringOperationEnum.SCREEN +userdefined = IfcPermeableCoveringOperationEnum.USERDEFINED +notdefined = IfcPermeableCoveringOperationEnum.NOTDEFINED IfcPermitTypeEnum = enum_namespace() -access = getattr(IfcPermitTypeEnum, 'ACCESS', INDETERMINATE) -building = getattr(IfcPermitTypeEnum, 'BUILDING', INDETERMINATE) -work = getattr(IfcPermitTypeEnum, 'WORK', INDETERMINATE) -userdefined = getattr(IfcPermitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPermitTypeEnum, 'NOTDEFINED', INDETERMINATE) +access = IfcPermitTypeEnum.ACCESS +building = IfcPermitTypeEnum.BUILDING +work = IfcPermitTypeEnum.WORK +userdefined = IfcPermitTypeEnum.USERDEFINED +notdefined = IfcPermitTypeEnum.NOTDEFINED IfcPhysicalOrVirtualEnum = enum_namespace() -physical = getattr(IfcPhysicalOrVirtualEnum, 'PHYSICAL', INDETERMINATE) -virtual = getattr(IfcPhysicalOrVirtualEnum, 'VIRTUAL', INDETERMINATE) -notdefined = getattr(IfcPhysicalOrVirtualEnum, 'NOTDEFINED', INDETERMINATE) +physical = IfcPhysicalOrVirtualEnum.PHYSICAL +virtual = IfcPhysicalOrVirtualEnum.VIRTUAL +notdefined = IfcPhysicalOrVirtualEnum.NOTDEFINED IfcPileConstructionEnum = enum_namespace() -cast_in_place = getattr(IfcPileConstructionEnum, 'CAST_IN_PLACE', INDETERMINATE) -composite = getattr(IfcPileConstructionEnum, 'COMPOSITE', INDETERMINATE) -precast_concrete = getattr(IfcPileConstructionEnum, 'PRECAST_CONCRETE', INDETERMINATE) -prefab_steel = getattr(IfcPileConstructionEnum, 'PREFAB_STEEL', INDETERMINATE) -userdefined = getattr(IfcPileConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPileConstructionEnum, 'NOTDEFINED', INDETERMINATE) +cast_in_place = IfcPileConstructionEnum.CAST_IN_PLACE +composite = IfcPileConstructionEnum.COMPOSITE +precast_concrete = IfcPileConstructionEnum.PRECAST_CONCRETE +prefab_steel = IfcPileConstructionEnum.PREFAB_STEEL +userdefined = IfcPileConstructionEnum.USERDEFINED +notdefined = IfcPileConstructionEnum.NOTDEFINED IfcPileTypeEnum = enum_namespace() -bored = getattr(IfcPileTypeEnum, 'BORED', INDETERMINATE) -cohesion = getattr(IfcPileTypeEnum, 'COHESION', INDETERMINATE) -driven = getattr(IfcPileTypeEnum, 'DRIVEN', INDETERMINATE) -friction = getattr(IfcPileTypeEnum, 'FRICTION', INDETERMINATE) -jetgrouting = getattr(IfcPileTypeEnum, 'JETGROUTING', INDETERMINATE) -support = getattr(IfcPileTypeEnum, 'SUPPORT', INDETERMINATE) -userdefined = getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPileTypeEnum, 'NOTDEFINED', INDETERMINATE) +bored = IfcPileTypeEnum.BORED +cohesion = IfcPileTypeEnum.COHESION +driven = IfcPileTypeEnum.DRIVEN +friction = IfcPileTypeEnum.FRICTION +jetgrouting = IfcPileTypeEnum.JETGROUTING +support = IfcPileTypeEnum.SUPPORT +userdefined = IfcPileTypeEnum.USERDEFINED +notdefined = IfcPileTypeEnum.NOTDEFINED IfcPipeFittingTypeEnum = enum_namespace() -bend = getattr(IfcPipeFittingTypeEnum, 'BEND', INDETERMINATE) -connector = getattr(IfcPipeFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcPipeFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcPipeFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcPipeFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = getattr(IfcPipeFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = getattr(IfcPipeFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPipeFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcPipeFittingTypeEnum.BEND +connector = IfcPipeFittingTypeEnum.CONNECTOR +entry = IfcPipeFittingTypeEnum.ENTRY +exit = IfcPipeFittingTypeEnum.EXIT +junction = IfcPipeFittingTypeEnum.JUNCTION +obstruction = IfcPipeFittingTypeEnum.OBSTRUCTION +transition = IfcPipeFittingTypeEnum.TRANSITION +userdefined = IfcPipeFittingTypeEnum.USERDEFINED +notdefined = IfcPipeFittingTypeEnum.NOTDEFINED IfcPipeSegmentTypeEnum = enum_namespace() -culvert = getattr(IfcPipeSegmentTypeEnum, 'CULVERT', INDETERMINATE) -flexiblesegment = getattr(IfcPipeSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -gutter = getattr(IfcPipeSegmentTypeEnum, 'GUTTER', INDETERMINATE) -rigidsegment = getattr(IfcPipeSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -spool = getattr(IfcPipeSegmentTypeEnum, 'SPOOL', INDETERMINATE) -userdefined = getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPipeSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +culvert = IfcPipeSegmentTypeEnum.CULVERT +flexiblesegment = IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT +gutter = IfcPipeSegmentTypeEnum.GUTTER +rigidsegment = IfcPipeSegmentTypeEnum.RIGIDSEGMENT +spool = IfcPipeSegmentTypeEnum.SPOOL +userdefined = IfcPipeSegmentTypeEnum.USERDEFINED +notdefined = IfcPipeSegmentTypeEnum.NOTDEFINED IfcPlateTypeEnum = enum_namespace() -base_plate = getattr(IfcPlateTypeEnum, 'BASE_PLATE', INDETERMINATE) -cover_plate = getattr(IfcPlateTypeEnum, 'COVER_PLATE', INDETERMINATE) -curtain_panel = getattr(IfcPlateTypeEnum, 'CURTAIN_PANEL', INDETERMINATE) -flange_plate = getattr(IfcPlateTypeEnum, 'FLANGE_PLATE', INDETERMINATE) -gusset_plate = getattr(IfcPlateTypeEnum, 'GUSSET_PLATE', INDETERMINATE) -sheet = getattr(IfcPlateTypeEnum, 'SHEET', INDETERMINATE) -splice_plate = getattr(IfcPlateTypeEnum, 'SPLICE_PLATE', INDETERMINATE) -stiffener_plate = getattr(IfcPlateTypeEnum, 'STIFFENER_PLATE', INDETERMINATE) -web_plate = getattr(IfcPlateTypeEnum, 'WEB_PLATE', INDETERMINATE) -userdefined = getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPlateTypeEnum, 'NOTDEFINED', INDETERMINATE) +base_plate = IfcPlateTypeEnum.BASE_PLATE +cover_plate = IfcPlateTypeEnum.COVER_PLATE +curtain_panel = IfcPlateTypeEnum.CURTAIN_PANEL +flange_plate = IfcPlateTypeEnum.FLANGE_PLATE +gusset_plate = IfcPlateTypeEnum.GUSSET_PLATE +sheet = IfcPlateTypeEnum.SHEET +splice_plate = IfcPlateTypeEnum.SPLICE_PLATE +stiffener_plate = IfcPlateTypeEnum.STIFFENER_PLATE +web_plate = IfcPlateTypeEnum.WEB_PLATE +userdefined = IfcPlateTypeEnum.USERDEFINED +notdefined = IfcPlateTypeEnum.NOTDEFINED IfcPreferredSurfaceCurveRepresentation = enum_namespace() -curve3d = getattr(IfcPreferredSurfaceCurveRepresentation, 'CURVE3D', INDETERMINATE) -pcurve_s1 = getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S1', INDETERMINATE) -pcurve_s2 = getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S2', INDETERMINATE) +curve3d = IfcPreferredSurfaceCurveRepresentation.CURVE3D +pcurve_s1 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 +pcurve_s2 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 IfcProcedureTypeEnum = enum_namespace() -advice_caution = getattr(IfcProcedureTypeEnum, 'ADVICE_CAUTION', INDETERMINATE) -advice_note = getattr(IfcProcedureTypeEnum, 'ADVICE_NOTE', INDETERMINATE) -advice_warning = getattr(IfcProcedureTypeEnum, 'ADVICE_WARNING', INDETERMINATE) -calibration = getattr(IfcProcedureTypeEnum, 'CALIBRATION', INDETERMINATE) -diagnostic = getattr(IfcProcedureTypeEnum, 'DIAGNOSTIC', INDETERMINATE) -shutdown = getattr(IfcProcedureTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = getattr(IfcProcedureTypeEnum, 'STARTUP', INDETERMINATE) -userdefined = getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProcedureTypeEnum, 'NOTDEFINED', INDETERMINATE) +advice_caution = IfcProcedureTypeEnum.ADVICE_CAUTION +advice_note = IfcProcedureTypeEnum.ADVICE_NOTE +advice_warning = IfcProcedureTypeEnum.ADVICE_WARNING +calibration = IfcProcedureTypeEnum.CALIBRATION +diagnostic = IfcProcedureTypeEnum.DIAGNOSTIC +shutdown = IfcProcedureTypeEnum.SHUTDOWN +startup = IfcProcedureTypeEnum.STARTUP +userdefined = IfcProcedureTypeEnum.USERDEFINED +notdefined = IfcProcedureTypeEnum.NOTDEFINED IfcProfileTypeEnum = enum_namespace() -area = getattr(IfcProfileTypeEnum, 'AREA', INDETERMINATE) -curve = getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE) +area = IfcProfileTypeEnum.AREA +curve = IfcProfileTypeEnum.CURVE IfcProjectOrderTypeEnum = enum_namespace() -changeorder = getattr(IfcProjectOrderTypeEnum, 'CHANGEORDER', INDETERMINATE) -maintenanceworkorder = getattr(IfcProjectOrderTypeEnum, 'MAINTENANCEWORKORDER', INDETERMINATE) -moveorder = getattr(IfcProjectOrderTypeEnum, 'MOVEORDER', INDETERMINATE) -purchaseorder = getattr(IfcProjectOrderTypeEnum, 'PURCHASEORDER', INDETERMINATE) -workorder = getattr(IfcProjectOrderTypeEnum, 'WORKORDER', INDETERMINATE) -userdefined = getattr(IfcProjectOrderTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProjectOrderTypeEnum, 'NOTDEFINED', INDETERMINATE) +changeorder = IfcProjectOrderTypeEnum.CHANGEORDER +maintenanceworkorder = IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER +moveorder = IfcProjectOrderTypeEnum.MOVEORDER +purchaseorder = IfcProjectOrderTypeEnum.PURCHASEORDER +workorder = IfcProjectOrderTypeEnum.WORKORDER +userdefined = IfcProjectOrderTypeEnum.USERDEFINED +notdefined = IfcProjectOrderTypeEnum.NOTDEFINED IfcProjectedOrTrueLengthEnum = enum_namespace() -projected_length = getattr(IfcProjectedOrTrueLengthEnum, 'PROJECTED_LENGTH', INDETERMINATE) -true_length = getattr(IfcProjectedOrTrueLengthEnum, 'TRUE_LENGTH', INDETERMINATE) +projected_length = IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH +true_length = IfcProjectedOrTrueLengthEnum.TRUE_LENGTH IfcProjectionElementTypeEnum = enum_namespace() -blister = getattr(IfcProjectionElementTypeEnum, 'BLISTER', INDETERMINATE) -deviator = getattr(IfcProjectionElementTypeEnum, 'DEVIATOR', INDETERMINATE) -userdefined = getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProjectionElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +blister = IfcProjectionElementTypeEnum.BLISTER +deviator = IfcProjectionElementTypeEnum.DEVIATOR +userdefined = IfcProjectionElementTypeEnum.USERDEFINED +notdefined = IfcProjectionElementTypeEnum.NOTDEFINED IfcPropertySetTemplateTypeEnum = enum_namespace() -pset_materialdriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_MATERIALDRIVEN', INDETERMINATE) -pset_occurrencedriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_OCCURRENCEDRIVEN', INDETERMINATE) -pset_performancedriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PERFORMANCEDRIVEN', INDETERMINATE) -pset_profiledriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PROFILEDRIVEN', INDETERMINATE) -pset_typedrivenonly = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENONLY', INDETERMINATE) -pset_typedrivenoverride = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENOVERRIDE', INDETERMINATE) -qto_occurrencedriven = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_OCCURRENCEDRIVEN', INDETERMINATE) -qto_typedrivenonly = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENONLY', INDETERMINATE) -qto_typedrivenoverride = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENOVERRIDE', INDETERMINATE) -notdefined = getattr(IfcPropertySetTemplateTypeEnum, 'NOTDEFINED', INDETERMINATE) +pset_materialdriven = IfcPropertySetTemplateTypeEnum.PSET_MATERIALDRIVEN +pset_occurrencedriven = IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN +pset_performancedriven = IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN +pset_profiledriven = IfcPropertySetTemplateTypeEnum.PSET_PROFILEDRIVEN +pset_typedrivenonly = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY +pset_typedrivenoverride = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE +qto_occurrencedriven = IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN +qto_typedrivenonly = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY +qto_typedrivenoverride = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE +notdefined = IfcPropertySetTemplateTypeEnum.NOTDEFINED IfcProtectiveDeviceTrippingUnitTypeEnum = enum_namespace() -electromagnetic = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTROMAGNETIC', INDETERMINATE) -electronic = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTRONIC', INDETERMINATE) -residualcurrent = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'RESIDUALCURRENT', INDETERMINATE) -thermal = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'THERMAL', INDETERMINATE) -userdefined = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'NOTDEFINED', INDETERMINATE) +electromagnetic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC +electronic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC +residualcurrent = IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT +thermal = IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL +userdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED IfcProtectiveDeviceTypeEnum = enum_namespace() -anti_arcing_device = getattr(IfcProtectiveDeviceTypeEnum, 'ANTI_ARCING_DEVICE', INDETERMINATE) -circuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'CIRCUITBREAKER', INDETERMINATE) -earthingswitch = getattr(IfcProtectiveDeviceTypeEnum, 'EARTHINGSWITCH', INDETERMINATE) -earthleakagecircuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'EARTHLEAKAGECIRCUITBREAKER', INDETERMINATE) -fusedisconnector = getattr(IfcProtectiveDeviceTypeEnum, 'FUSEDISCONNECTOR', INDETERMINATE) -residualcurrentcircuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTCIRCUITBREAKER', INDETERMINATE) -residualcurrentswitch = getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTSWITCH', INDETERMINATE) -sparkgap = getattr(IfcProtectiveDeviceTypeEnum, 'SPARKGAP', INDETERMINATE) -varistor = getattr(IfcProtectiveDeviceTypeEnum, 'VARISTOR', INDETERMINATE) -voltagelimiter = getattr(IfcProtectiveDeviceTypeEnum, 'VOLTAGELIMITER', INDETERMINATE) -userdefined = getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProtectiveDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +anti_arcing_device = IfcProtectiveDeviceTypeEnum.ANTI_ARCING_DEVICE +circuitbreaker = IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER +earthingswitch = IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH +earthleakagecircuitbreaker = IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER +fusedisconnector = IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR +residualcurrentcircuitbreaker = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER +residualcurrentswitch = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH +sparkgap = IfcProtectiveDeviceTypeEnum.SPARKGAP +varistor = IfcProtectiveDeviceTypeEnum.VARISTOR +voltagelimiter = IfcProtectiveDeviceTypeEnum.VOLTAGELIMITER +userdefined = IfcProtectiveDeviceTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTypeEnum.NOTDEFINED IfcPumpTypeEnum = enum_namespace() -circulator = getattr(IfcPumpTypeEnum, 'CIRCULATOR', INDETERMINATE) -endsuction = getattr(IfcPumpTypeEnum, 'ENDSUCTION', INDETERMINATE) -splitcase = getattr(IfcPumpTypeEnum, 'SPLITCASE', INDETERMINATE) -submersiblepump = getattr(IfcPumpTypeEnum, 'SUBMERSIBLEPUMP', INDETERMINATE) -sumppump = getattr(IfcPumpTypeEnum, 'SUMPPUMP', INDETERMINATE) -verticalinline = getattr(IfcPumpTypeEnum, 'VERTICALINLINE', INDETERMINATE) -verticalturbine = getattr(IfcPumpTypeEnum, 'VERTICALTURBINE', INDETERMINATE) -userdefined = getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPumpTypeEnum, 'NOTDEFINED', INDETERMINATE) +circulator = IfcPumpTypeEnum.CIRCULATOR +endsuction = IfcPumpTypeEnum.ENDSUCTION +splitcase = IfcPumpTypeEnum.SPLITCASE +submersiblepump = IfcPumpTypeEnum.SUBMERSIBLEPUMP +sumppump = IfcPumpTypeEnum.SUMPPUMP +verticalinline = IfcPumpTypeEnum.VERTICALINLINE +verticalturbine = IfcPumpTypeEnum.VERTICALTURBINE +userdefined = IfcPumpTypeEnum.USERDEFINED +notdefined = IfcPumpTypeEnum.NOTDEFINED IfcRailTypeEnum = enum_namespace() -blade = getattr(IfcRailTypeEnum, 'BLADE', INDETERMINATE) -checkrail = getattr(IfcRailTypeEnum, 'CHECKRAIL', INDETERMINATE) -guardrail = getattr(IfcRailTypeEnum, 'GUARDRAIL', INDETERMINATE) -rackrail = getattr(IfcRailTypeEnum, 'RACKRAIL', INDETERMINATE) -rail = getattr(IfcRailTypeEnum, 'RAIL', INDETERMINATE) -stockrail = getattr(IfcRailTypeEnum, 'STOCKRAIL', INDETERMINATE) -userdefined = getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailTypeEnum, 'NOTDEFINED', INDETERMINATE) +blade = IfcRailTypeEnum.BLADE +checkrail = IfcRailTypeEnum.CHECKRAIL +guardrail = IfcRailTypeEnum.GUARDRAIL +rackrail = IfcRailTypeEnum.RACKRAIL +rail = IfcRailTypeEnum.RAIL +stockrail = IfcRailTypeEnum.STOCKRAIL +userdefined = IfcRailTypeEnum.USERDEFINED +notdefined = IfcRailTypeEnum.NOTDEFINED IfcRailingTypeEnum = enum_namespace() -balustrade = getattr(IfcRailingTypeEnum, 'BALUSTRADE', INDETERMINATE) -fence = getattr(IfcRailingTypeEnum, 'FENCE', INDETERMINATE) -guardrail = getattr(IfcRailingTypeEnum, 'GUARDRAIL', INDETERMINATE) -handrail = getattr(IfcRailingTypeEnum, 'HANDRAIL', INDETERMINATE) -userdefined = getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailingTypeEnum, 'NOTDEFINED', INDETERMINATE) +balustrade = IfcRailingTypeEnum.BALUSTRADE +fence = IfcRailingTypeEnum.FENCE +guardrail = IfcRailingTypeEnum.GUARDRAIL +handrail = IfcRailingTypeEnum.HANDRAIL +userdefined = IfcRailingTypeEnum.USERDEFINED +notdefined = IfcRailingTypeEnum.NOTDEFINED IfcRailwayPartTypeEnum = enum_namespace() -abovetrack = getattr(IfcRailwayPartTypeEnum, 'ABOVETRACK', INDETERMINATE) -dilationtrack = getattr(IfcRailwayPartTypeEnum, 'DILATIONTRACK', INDETERMINATE) -lineside = getattr(IfcRailwayPartTypeEnum, 'LINESIDE', INDETERMINATE) -linesidepart = getattr(IfcRailwayPartTypeEnum, 'LINESIDEPART', INDETERMINATE) -plaintrack = getattr(IfcRailwayPartTypeEnum, 'PLAINTRACK', INDETERMINATE) -substructure = getattr(IfcRailwayPartTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -track = getattr(IfcRailwayPartTypeEnum, 'TRACK', INDETERMINATE) -trackpart = getattr(IfcRailwayPartTypeEnum, 'TRACKPART', INDETERMINATE) -turnouttrack = getattr(IfcRailwayPartTypeEnum, 'TURNOUTTRACK', INDETERMINATE) -userdefined = getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailwayPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +abovetrack = IfcRailwayPartTypeEnum.ABOVETRACK +dilationtrack = IfcRailwayPartTypeEnum.DILATIONTRACK +lineside = IfcRailwayPartTypeEnum.LINESIDE +linesidepart = IfcRailwayPartTypeEnum.LINESIDEPART +plaintrack = IfcRailwayPartTypeEnum.PLAINTRACK +substructure = IfcRailwayPartTypeEnum.SUBSTRUCTURE +track = IfcRailwayPartTypeEnum.TRACK +trackpart = IfcRailwayPartTypeEnum.TRACKPART +turnouttrack = IfcRailwayPartTypeEnum.TURNOUTTRACK +userdefined = IfcRailwayPartTypeEnum.USERDEFINED +notdefined = IfcRailwayPartTypeEnum.NOTDEFINED IfcRailwayTypeEnum = enum_namespace() -userdefined = getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailwayTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcRailwayTypeEnum.USERDEFINED +notdefined = IfcRailwayTypeEnum.NOTDEFINED IfcRampFlightTypeEnum = enum_namespace() -spiral = getattr(IfcRampFlightTypeEnum, 'SPIRAL', INDETERMINATE) -straight = getattr(IfcRampFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -userdefined = getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRampFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +spiral = IfcRampFlightTypeEnum.SPIRAL +straight = IfcRampFlightTypeEnum.STRAIGHT +userdefined = IfcRampFlightTypeEnum.USERDEFINED +notdefined = IfcRampFlightTypeEnum.NOTDEFINED IfcRampTypeEnum = enum_namespace() -half_turn_ramp = getattr(IfcRampTypeEnum, 'HALF_TURN_RAMP', INDETERMINATE) -quarter_turn_ramp = getattr(IfcRampTypeEnum, 'QUARTER_TURN_RAMP', INDETERMINATE) -spiral_ramp = getattr(IfcRampTypeEnum, 'SPIRAL_RAMP', INDETERMINATE) -straight_run_ramp = getattr(IfcRampTypeEnum, 'STRAIGHT_RUN_RAMP', INDETERMINATE) -two_quarter_turn_ramp = getattr(IfcRampTypeEnum, 'TWO_QUARTER_TURN_RAMP', INDETERMINATE) -two_straight_run_ramp = getattr(IfcRampTypeEnum, 'TWO_STRAIGHT_RUN_RAMP', INDETERMINATE) -userdefined = getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRampTypeEnum, 'NOTDEFINED', INDETERMINATE) +half_turn_ramp = IfcRampTypeEnum.HALF_TURN_RAMP +quarter_turn_ramp = IfcRampTypeEnum.QUARTER_TURN_RAMP +spiral_ramp = IfcRampTypeEnum.SPIRAL_RAMP +straight_run_ramp = IfcRampTypeEnum.STRAIGHT_RUN_RAMP +two_quarter_turn_ramp = IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP +two_straight_run_ramp = IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP +userdefined = IfcRampTypeEnum.USERDEFINED +notdefined = IfcRampTypeEnum.NOTDEFINED IfcRecurrenceTypeEnum = enum_namespace() -by_day_count = getattr(IfcRecurrenceTypeEnum, 'BY_DAY_COUNT', INDETERMINATE) -by_weekday_count = getattr(IfcRecurrenceTypeEnum, 'BY_WEEKDAY_COUNT', INDETERMINATE) -daily = getattr(IfcRecurrenceTypeEnum, 'DAILY', INDETERMINATE) -monthly_by_day_of_month = getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_DAY_OF_MONTH', INDETERMINATE) -monthly_by_position = getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_POSITION', INDETERMINATE) -weekly = getattr(IfcRecurrenceTypeEnum, 'WEEKLY', INDETERMINATE) -yearly_by_day_of_month = getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_DAY_OF_MONTH', INDETERMINATE) -yearly_by_position = getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_POSITION', INDETERMINATE) +by_day_count = IfcRecurrenceTypeEnum.BY_DAY_COUNT +by_weekday_count = IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT +daily = IfcRecurrenceTypeEnum.DAILY +monthly_by_day_of_month = IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH +monthly_by_position = IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION +weekly = IfcRecurrenceTypeEnum.WEEKLY +yearly_by_day_of_month = IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH +yearly_by_position = IfcRecurrenceTypeEnum.YEARLY_BY_POSITION IfcReferentTypeEnum = enum_namespace() -boundary = getattr(IfcReferentTypeEnum, 'BOUNDARY', INDETERMINATE) -intersection = getattr(IfcReferentTypeEnum, 'INTERSECTION', INDETERMINATE) -kilopoint = getattr(IfcReferentTypeEnum, 'KILOPOINT', INDETERMINATE) -landmark = getattr(IfcReferentTypeEnum, 'LANDMARK', INDETERMINATE) -milepoint = getattr(IfcReferentTypeEnum, 'MILEPOINT', INDETERMINATE) -position = getattr(IfcReferentTypeEnum, 'POSITION', INDETERMINATE) -referencemarker = getattr(IfcReferentTypeEnum, 'REFERENCEMARKER', INDETERMINATE) -station = getattr(IfcReferentTypeEnum, 'STATION', INDETERMINATE) -superelevationevent = getattr(IfcReferentTypeEnum, 'SUPERELEVATIONEVENT', INDETERMINATE) -widthevent = getattr(IfcReferentTypeEnum, 'WIDTHEVENT', INDETERMINATE) -userdefined = getattr(IfcReferentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReferentTypeEnum, 'NOTDEFINED', INDETERMINATE) +boundary = IfcReferentTypeEnum.BOUNDARY +intersection = IfcReferentTypeEnum.INTERSECTION +kilopoint = IfcReferentTypeEnum.KILOPOINT +landmark = IfcReferentTypeEnum.LANDMARK +milepoint = IfcReferentTypeEnum.MILEPOINT +position = IfcReferentTypeEnum.POSITION +referencemarker = IfcReferentTypeEnum.REFERENCEMARKER +station = IfcReferentTypeEnum.STATION +superelevationevent = IfcReferentTypeEnum.SUPERELEVATIONEVENT +widthevent = IfcReferentTypeEnum.WIDTHEVENT +userdefined = IfcReferentTypeEnum.USERDEFINED +notdefined = IfcReferentTypeEnum.NOTDEFINED IfcReflectanceMethodEnum = enum_namespace() -blinn = getattr(IfcReflectanceMethodEnum, 'BLINN', INDETERMINATE) -flat = getattr(IfcReflectanceMethodEnum, 'FLAT', INDETERMINATE) -glass = getattr(IfcReflectanceMethodEnum, 'GLASS', INDETERMINATE) -matt = getattr(IfcReflectanceMethodEnum, 'MATT', INDETERMINATE) -metal = getattr(IfcReflectanceMethodEnum, 'METAL', INDETERMINATE) -mirror = getattr(IfcReflectanceMethodEnum, 'MIRROR', INDETERMINATE) -phong = getattr(IfcReflectanceMethodEnum, 'PHONG', INDETERMINATE) -physical = getattr(IfcReflectanceMethodEnum, 'PHYSICAL', INDETERMINATE) -plastic = getattr(IfcReflectanceMethodEnum, 'PLASTIC', INDETERMINATE) -strauss = getattr(IfcReflectanceMethodEnum, 'STRAUSS', INDETERMINATE) -notdefined = getattr(IfcReflectanceMethodEnum, 'NOTDEFINED', INDETERMINATE) +blinn = IfcReflectanceMethodEnum.BLINN +flat = IfcReflectanceMethodEnum.FLAT +glass = IfcReflectanceMethodEnum.GLASS +matt = IfcReflectanceMethodEnum.MATT +metal = IfcReflectanceMethodEnum.METAL +mirror = IfcReflectanceMethodEnum.MIRROR +phong = IfcReflectanceMethodEnum.PHONG +physical = IfcReflectanceMethodEnum.PHYSICAL +plastic = IfcReflectanceMethodEnum.PLASTIC +strauss = IfcReflectanceMethodEnum.STRAUSS +notdefined = IfcReflectanceMethodEnum.NOTDEFINED IfcReinforcedSoilTypeEnum = enum_namespace() -dynamicallycompacted = getattr(IfcReinforcedSoilTypeEnum, 'DYNAMICALLYCOMPACTED', INDETERMINATE) -grouted = getattr(IfcReinforcedSoilTypeEnum, 'GROUTED', INDETERMINATE) -replaced = getattr(IfcReinforcedSoilTypeEnum, 'REPLACED', INDETERMINATE) -rollercompacted = getattr(IfcReinforcedSoilTypeEnum, 'ROLLERCOMPACTED', INDETERMINATE) -surchargepreloaded = getattr(IfcReinforcedSoilTypeEnum, 'SURCHARGEPRELOADED', INDETERMINATE) -verticallydrained = getattr(IfcReinforcedSoilTypeEnum, 'VERTICALLYDRAINED', INDETERMINATE) -userdefined = getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcedSoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dynamicallycompacted = IfcReinforcedSoilTypeEnum.DYNAMICALLYCOMPACTED +grouted = IfcReinforcedSoilTypeEnum.GROUTED +replaced = IfcReinforcedSoilTypeEnum.REPLACED +rollercompacted = IfcReinforcedSoilTypeEnum.ROLLERCOMPACTED +surchargepreloaded = IfcReinforcedSoilTypeEnum.SURCHARGEPRELOADED +verticallydrained = IfcReinforcedSoilTypeEnum.VERTICALLYDRAINED +userdefined = IfcReinforcedSoilTypeEnum.USERDEFINED +notdefined = IfcReinforcedSoilTypeEnum.NOTDEFINED IfcReinforcingBarRoleEnum = enum_namespace() -anchoring = getattr(IfcReinforcingBarRoleEnum, 'ANCHORING', INDETERMINATE) -edge = getattr(IfcReinforcingBarRoleEnum, 'EDGE', INDETERMINATE) -ligature = getattr(IfcReinforcingBarRoleEnum, 'LIGATURE', INDETERMINATE) -main = getattr(IfcReinforcingBarRoleEnum, 'MAIN', INDETERMINATE) -punching = getattr(IfcReinforcingBarRoleEnum, 'PUNCHING', INDETERMINATE) -ring = getattr(IfcReinforcingBarRoleEnum, 'RING', INDETERMINATE) -shear = getattr(IfcReinforcingBarRoleEnum, 'SHEAR', INDETERMINATE) -stud = getattr(IfcReinforcingBarRoleEnum, 'STUD', INDETERMINATE) -userdefined = getattr(IfcReinforcingBarRoleEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingBarRoleEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarRoleEnum.ANCHORING +edge = IfcReinforcingBarRoleEnum.EDGE +ligature = IfcReinforcingBarRoleEnum.LIGATURE +main = IfcReinforcingBarRoleEnum.MAIN +punching = IfcReinforcingBarRoleEnum.PUNCHING +ring = IfcReinforcingBarRoleEnum.RING +shear = IfcReinforcingBarRoleEnum.SHEAR +stud = IfcReinforcingBarRoleEnum.STUD +userdefined = IfcReinforcingBarRoleEnum.USERDEFINED +notdefined = IfcReinforcingBarRoleEnum.NOTDEFINED IfcReinforcingBarSurfaceEnum = enum_namespace() -plain = getattr(IfcReinforcingBarSurfaceEnum, 'PLAIN', INDETERMINATE) -textured = getattr(IfcReinforcingBarSurfaceEnum, 'TEXTURED', INDETERMINATE) +plain = IfcReinforcingBarSurfaceEnum.PLAIN +textured = IfcReinforcingBarSurfaceEnum.TEXTURED IfcReinforcingBarTypeEnum = enum_namespace() -anchoring = getattr(IfcReinforcingBarTypeEnum, 'ANCHORING', INDETERMINATE) -edge = getattr(IfcReinforcingBarTypeEnum, 'EDGE', INDETERMINATE) -ligature = getattr(IfcReinforcingBarTypeEnum, 'LIGATURE', INDETERMINATE) -main = getattr(IfcReinforcingBarTypeEnum, 'MAIN', INDETERMINATE) -punching = getattr(IfcReinforcingBarTypeEnum, 'PUNCHING', INDETERMINATE) -ring = getattr(IfcReinforcingBarTypeEnum, 'RING', INDETERMINATE) -shear = getattr(IfcReinforcingBarTypeEnum, 'SHEAR', INDETERMINATE) -spacebar = getattr(IfcReinforcingBarTypeEnum, 'SPACEBAR', INDETERMINATE) -stud = getattr(IfcReinforcingBarTypeEnum, 'STUD', INDETERMINATE) -userdefined = getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingBarTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarTypeEnum.ANCHORING +edge = IfcReinforcingBarTypeEnum.EDGE +ligature = IfcReinforcingBarTypeEnum.LIGATURE +main = IfcReinforcingBarTypeEnum.MAIN +punching = IfcReinforcingBarTypeEnum.PUNCHING +ring = IfcReinforcingBarTypeEnum.RING +shear = IfcReinforcingBarTypeEnum.SHEAR +spacebar = IfcReinforcingBarTypeEnum.SPACEBAR +stud = IfcReinforcingBarTypeEnum.STUD +userdefined = IfcReinforcingBarTypeEnum.USERDEFINED +notdefined = IfcReinforcingBarTypeEnum.NOTDEFINED IfcReinforcingMeshTypeEnum = enum_namespace() -userdefined = getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingMeshTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcReinforcingMeshTypeEnum.USERDEFINED +notdefined = IfcReinforcingMeshTypeEnum.NOTDEFINED IfcRoadPartTypeEnum = enum_namespace() -bicyclecrossing = getattr(IfcRoadPartTypeEnum, 'BICYCLECROSSING', INDETERMINATE) -bus_stop = getattr(IfcRoadPartTypeEnum, 'BUS_STOP', INDETERMINATE) -carriageway = getattr(IfcRoadPartTypeEnum, 'CARRIAGEWAY', INDETERMINATE) -centralisland = getattr(IfcRoadPartTypeEnum, 'CENTRALISLAND', INDETERMINATE) -centralreserve = getattr(IfcRoadPartTypeEnum, 'CENTRALRESERVE', INDETERMINATE) -hardshoulder = getattr(IfcRoadPartTypeEnum, 'HARDSHOULDER', INDETERMINATE) -intersection = getattr(IfcRoadPartTypeEnum, 'INTERSECTION', INDETERMINATE) -layby = getattr(IfcRoadPartTypeEnum, 'LAYBY', INDETERMINATE) -parkingbay = getattr(IfcRoadPartTypeEnum, 'PARKINGBAY', INDETERMINATE) -passingbay = getattr(IfcRoadPartTypeEnum, 'PASSINGBAY', INDETERMINATE) -pedestrian_crossing = getattr(IfcRoadPartTypeEnum, 'PEDESTRIAN_CROSSING', INDETERMINATE) -railwaycrossing = getattr(IfcRoadPartTypeEnum, 'RAILWAYCROSSING', INDETERMINATE) -refugeisland = getattr(IfcRoadPartTypeEnum, 'REFUGEISLAND', INDETERMINATE) -roadsegment = getattr(IfcRoadPartTypeEnum, 'ROADSEGMENT', INDETERMINATE) -roadside = getattr(IfcRoadPartTypeEnum, 'ROADSIDE', INDETERMINATE) -roadsidepart = getattr(IfcRoadPartTypeEnum, 'ROADSIDEPART', INDETERMINATE) -roadwayplateau = getattr(IfcRoadPartTypeEnum, 'ROADWAYPLATEAU', INDETERMINATE) -roundabout = getattr(IfcRoadPartTypeEnum, 'ROUNDABOUT', INDETERMINATE) -shoulder = getattr(IfcRoadPartTypeEnum, 'SHOULDER', INDETERMINATE) -sidewalk = getattr(IfcRoadPartTypeEnum, 'SIDEWALK', INDETERMINATE) -softshoulder = getattr(IfcRoadPartTypeEnum, 'SOFTSHOULDER', INDETERMINATE) -tollplaza = getattr(IfcRoadPartTypeEnum, 'TOLLPLAZA', INDETERMINATE) -trafficisland = getattr(IfcRoadPartTypeEnum, 'TRAFFICISLAND', INDETERMINATE) -trafficlane = getattr(IfcRoadPartTypeEnum, 'TRAFFICLANE', INDETERMINATE) -userdefined = getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRoadPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +bicyclecrossing = IfcRoadPartTypeEnum.BICYCLECROSSING +bus_stop = IfcRoadPartTypeEnum.BUS_STOP +carriageway = IfcRoadPartTypeEnum.CARRIAGEWAY +centralisland = IfcRoadPartTypeEnum.CENTRALISLAND +centralreserve = IfcRoadPartTypeEnum.CENTRALRESERVE +hardshoulder = IfcRoadPartTypeEnum.HARDSHOULDER +intersection = IfcRoadPartTypeEnum.INTERSECTION +layby = IfcRoadPartTypeEnum.LAYBY +parkingbay = IfcRoadPartTypeEnum.PARKINGBAY +passingbay = IfcRoadPartTypeEnum.PASSINGBAY +pedestrian_crossing = IfcRoadPartTypeEnum.PEDESTRIAN_CROSSING +railwaycrossing = IfcRoadPartTypeEnum.RAILWAYCROSSING +refugeisland = IfcRoadPartTypeEnum.REFUGEISLAND +roadsegment = IfcRoadPartTypeEnum.ROADSEGMENT +roadside = IfcRoadPartTypeEnum.ROADSIDE +roadsidepart = IfcRoadPartTypeEnum.ROADSIDEPART +roadwayplateau = IfcRoadPartTypeEnum.ROADWAYPLATEAU +roundabout = IfcRoadPartTypeEnum.ROUNDABOUT +shoulder = IfcRoadPartTypeEnum.SHOULDER +sidewalk = IfcRoadPartTypeEnum.SIDEWALK +softshoulder = IfcRoadPartTypeEnum.SOFTSHOULDER +tollplaza = IfcRoadPartTypeEnum.TOLLPLAZA +trafficisland = IfcRoadPartTypeEnum.TRAFFICISLAND +trafficlane = IfcRoadPartTypeEnum.TRAFFICLANE +userdefined = IfcRoadPartTypeEnum.USERDEFINED +notdefined = IfcRoadPartTypeEnum.NOTDEFINED IfcRoadTypeEnum = enum_namespace() -userdefined = getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRoadTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcRoadTypeEnum.USERDEFINED +notdefined = IfcRoadTypeEnum.NOTDEFINED IfcRoleEnum = enum_namespace() -architect = getattr(IfcRoleEnum, 'ARCHITECT', INDETERMINATE) -buildingoperator = getattr(IfcRoleEnum, 'BUILDINGOPERATOR', INDETERMINATE) -buildingowner = getattr(IfcRoleEnum, 'BUILDINGOWNER', INDETERMINATE) -civilengineer = getattr(IfcRoleEnum, 'CIVILENGINEER', INDETERMINATE) -client = getattr(IfcRoleEnum, 'CLIENT', INDETERMINATE) -commissioningengineer = getattr(IfcRoleEnum, 'COMMISSIONINGENGINEER', INDETERMINATE) -constructionmanager = getattr(IfcRoleEnum, 'CONSTRUCTIONMANAGER', INDETERMINATE) -consultant = getattr(IfcRoleEnum, 'CONSULTANT', INDETERMINATE) -contractor = getattr(IfcRoleEnum, 'CONTRACTOR', INDETERMINATE) -costengineer = getattr(IfcRoleEnum, 'COSTENGINEER', INDETERMINATE) -electricalengineer = getattr(IfcRoleEnum, 'ELECTRICALENGINEER', INDETERMINATE) -engineer = getattr(IfcRoleEnum, 'ENGINEER', INDETERMINATE) -facilitiesmanager = getattr(IfcRoleEnum, 'FACILITIESMANAGER', INDETERMINATE) -fieldconstructionmanager = getattr(IfcRoleEnum, 'FIELDCONSTRUCTIONMANAGER', INDETERMINATE) -manufacturer = getattr(IfcRoleEnum, 'MANUFACTURER', INDETERMINATE) -mechanicalengineer = getattr(IfcRoleEnum, 'MECHANICALENGINEER', INDETERMINATE) -owner = getattr(IfcRoleEnum, 'OWNER', INDETERMINATE) -projectmanager = getattr(IfcRoleEnum, 'PROJECTMANAGER', INDETERMINATE) -reseller = getattr(IfcRoleEnum, 'RESELLER', INDETERMINATE) -structuralengineer = getattr(IfcRoleEnum, 'STRUCTURALENGINEER', INDETERMINATE) -subcontractor = getattr(IfcRoleEnum, 'SUBCONTRACTOR', INDETERMINATE) -supplier = getattr(IfcRoleEnum, 'SUPPLIER', INDETERMINATE) -userdefined = getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) +architect = IfcRoleEnum.ARCHITECT +buildingoperator = IfcRoleEnum.BUILDINGOPERATOR +buildingowner = IfcRoleEnum.BUILDINGOWNER +civilengineer = IfcRoleEnum.CIVILENGINEER +client = IfcRoleEnum.CLIENT +commissioningengineer = IfcRoleEnum.COMMISSIONINGENGINEER +constructionmanager = IfcRoleEnum.CONSTRUCTIONMANAGER +consultant = IfcRoleEnum.CONSULTANT +contractor = IfcRoleEnum.CONTRACTOR +costengineer = IfcRoleEnum.COSTENGINEER +electricalengineer = IfcRoleEnum.ELECTRICALENGINEER +engineer = IfcRoleEnum.ENGINEER +facilitiesmanager = IfcRoleEnum.FACILITIESMANAGER +fieldconstructionmanager = IfcRoleEnum.FIELDCONSTRUCTIONMANAGER +manufacturer = IfcRoleEnum.MANUFACTURER +mechanicalengineer = IfcRoleEnum.MECHANICALENGINEER +owner = IfcRoleEnum.OWNER +projectmanager = IfcRoleEnum.PROJECTMANAGER +reseller = IfcRoleEnum.RESELLER +structuralengineer = IfcRoleEnum.STRUCTURALENGINEER +subcontractor = IfcRoleEnum.SUBCONTRACTOR +supplier = IfcRoleEnum.SUPPLIER +userdefined = IfcRoleEnum.USERDEFINED IfcRoofTypeEnum = enum_namespace() -barrel_roof = getattr(IfcRoofTypeEnum, 'BARREL_ROOF', INDETERMINATE) -butterfly_roof = getattr(IfcRoofTypeEnum, 'BUTTERFLY_ROOF', INDETERMINATE) -dome_roof = getattr(IfcRoofTypeEnum, 'DOME_ROOF', INDETERMINATE) -flat_roof = getattr(IfcRoofTypeEnum, 'FLAT_ROOF', INDETERMINATE) -freeform = getattr(IfcRoofTypeEnum, 'FREEFORM', INDETERMINATE) -gable_roof = getattr(IfcRoofTypeEnum, 'GABLE_ROOF', INDETERMINATE) -gambrel_roof = getattr(IfcRoofTypeEnum, 'GAMBREL_ROOF', INDETERMINATE) -hipped_gable_roof = getattr(IfcRoofTypeEnum, 'HIPPED_GABLE_ROOF', INDETERMINATE) -hip_roof = getattr(IfcRoofTypeEnum, 'HIP_ROOF', INDETERMINATE) -mansard_roof = getattr(IfcRoofTypeEnum, 'MANSARD_ROOF', INDETERMINATE) -pavilion_roof = getattr(IfcRoofTypeEnum, 'PAVILION_ROOF', INDETERMINATE) -rainbow_roof = getattr(IfcRoofTypeEnum, 'RAINBOW_ROOF', INDETERMINATE) -shed_roof = getattr(IfcRoofTypeEnum, 'SHED_ROOF', INDETERMINATE) -userdefined = getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRoofTypeEnum, 'NOTDEFINED', INDETERMINATE) +barrel_roof = IfcRoofTypeEnum.BARREL_ROOF +butterfly_roof = IfcRoofTypeEnum.BUTTERFLY_ROOF +dome_roof = IfcRoofTypeEnum.DOME_ROOF +flat_roof = IfcRoofTypeEnum.FLAT_ROOF +freeform = IfcRoofTypeEnum.FREEFORM +gable_roof = IfcRoofTypeEnum.GABLE_ROOF +gambrel_roof = IfcRoofTypeEnum.GAMBREL_ROOF +hipped_gable_roof = IfcRoofTypeEnum.HIPPED_GABLE_ROOF +hip_roof = IfcRoofTypeEnum.HIP_ROOF +mansard_roof = IfcRoofTypeEnum.MANSARD_ROOF +pavilion_roof = IfcRoofTypeEnum.PAVILION_ROOF +rainbow_roof = IfcRoofTypeEnum.RAINBOW_ROOF +shed_roof = IfcRoofTypeEnum.SHED_ROOF +userdefined = IfcRoofTypeEnum.USERDEFINED +notdefined = IfcRoofTypeEnum.NOTDEFINED IfcSIPrefix = enum_namespace() -atto = getattr(IfcSIPrefix, 'ATTO', INDETERMINATE) -centi = getattr(IfcSIPrefix, 'CENTI', INDETERMINATE) -deca = getattr(IfcSIPrefix, 'DECA', INDETERMINATE) -deci = getattr(IfcSIPrefix, 'DECI', INDETERMINATE) -exa = getattr(IfcSIPrefix, 'EXA', INDETERMINATE) -femto = getattr(IfcSIPrefix, 'FEMTO', INDETERMINATE) -giga = getattr(IfcSIPrefix, 'GIGA', INDETERMINATE) -hecto = getattr(IfcSIPrefix, 'HECTO', INDETERMINATE) -kilo = getattr(IfcSIPrefix, 'KILO', INDETERMINATE) -mega = getattr(IfcSIPrefix, 'MEGA', INDETERMINATE) -micro = getattr(IfcSIPrefix, 'MICRO', INDETERMINATE) -milli = getattr(IfcSIPrefix, 'MILLI', INDETERMINATE) -nano = getattr(IfcSIPrefix, 'NANO', INDETERMINATE) -peta = getattr(IfcSIPrefix, 'PETA', INDETERMINATE) -pico = getattr(IfcSIPrefix, 'PICO', INDETERMINATE) -tera = getattr(IfcSIPrefix, 'TERA', INDETERMINATE) +atto = IfcSIPrefix.ATTO +centi = IfcSIPrefix.CENTI +deca = IfcSIPrefix.DECA +deci = IfcSIPrefix.DECI +exa = IfcSIPrefix.EXA +femto = IfcSIPrefix.FEMTO +giga = IfcSIPrefix.GIGA +hecto = IfcSIPrefix.HECTO +kilo = IfcSIPrefix.KILO +mega = IfcSIPrefix.MEGA +micro = IfcSIPrefix.MICRO +milli = IfcSIPrefix.MILLI +nano = IfcSIPrefix.NANO +peta = IfcSIPrefix.PETA +pico = IfcSIPrefix.PICO +tera = IfcSIPrefix.TERA IfcSIUnitName = enum_namespace() -ampere = getattr(IfcSIUnitName, 'AMPERE', INDETERMINATE) -becquerel = getattr(IfcSIUnitName, 'BECQUEREL', INDETERMINATE) -candela = getattr(IfcSIUnitName, 'CANDELA', INDETERMINATE) -coulomb = getattr(IfcSIUnitName, 'COULOMB', INDETERMINATE) -cubic_metre = getattr(IfcSIUnitName, 'CUBIC_METRE', INDETERMINATE) -degree_celsius = getattr(IfcSIUnitName, 'DEGREE_CELSIUS', INDETERMINATE) -farad = getattr(IfcSIUnitName, 'FARAD', INDETERMINATE) -gram = getattr(IfcSIUnitName, 'GRAM', INDETERMINATE) -gray = getattr(IfcSIUnitName, 'GRAY', INDETERMINATE) -henry = getattr(IfcSIUnitName, 'HENRY', INDETERMINATE) -hertz = getattr(IfcSIUnitName, 'HERTZ', INDETERMINATE) -joule = getattr(IfcSIUnitName, 'JOULE', INDETERMINATE) -kelvin = getattr(IfcSIUnitName, 'KELVIN', INDETERMINATE) -lumen = getattr(IfcSIUnitName, 'LUMEN', INDETERMINATE) -lux = getattr(IfcSIUnitName, 'LUX', INDETERMINATE) -metre = getattr(IfcSIUnitName, 'METRE', INDETERMINATE) -mole = getattr(IfcSIUnitName, 'MOLE', INDETERMINATE) -newton = getattr(IfcSIUnitName, 'NEWTON', INDETERMINATE) -ohm = getattr(IfcSIUnitName, 'OHM', INDETERMINATE) -pascal = getattr(IfcSIUnitName, 'PASCAL', INDETERMINATE) -radian = getattr(IfcSIUnitName, 'RADIAN', INDETERMINATE) -second = getattr(IfcSIUnitName, 'SECOND', INDETERMINATE) -siemens = getattr(IfcSIUnitName, 'SIEMENS', INDETERMINATE) -sievert = getattr(IfcSIUnitName, 'SIEVERT', INDETERMINATE) -square_metre = getattr(IfcSIUnitName, 'SQUARE_METRE', INDETERMINATE) -steradian = getattr(IfcSIUnitName, 'STERADIAN', INDETERMINATE) -tesla = getattr(IfcSIUnitName, 'TESLA', INDETERMINATE) -volt = getattr(IfcSIUnitName, 'VOLT', INDETERMINATE) -watt = getattr(IfcSIUnitName, 'WATT', INDETERMINATE) -weber = getattr(IfcSIUnitName, 'WEBER', INDETERMINATE) +ampere = IfcSIUnitName.AMPERE +becquerel = IfcSIUnitName.BECQUEREL +candela = IfcSIUnitName.CANDELA +coulomb = IfcSIUnitName.COULOMB +cubic_metre = IfcSIUnitName.CUBIC_METRE +degree_celsius = IfcSIUnitName.DEGREE_CELSIUS +farad = IfcSIUnitName.FARAD +gram = IfcSIUnitName.GRAM +gray = IfcSIUnitName.GRAY +henry = IfcSIUnitName.HENRY +hertz = IfcSIUnitName.HERTZ +joule = IfcSIUnitName.JOULE +kelvin = IfcSIUnitName.KELVIN +lumen = IfcSIUnitName.LUMEN +lux = IfcSIUnitName.LUX +metre = IfcSIUnitName.METRE +mole = IfcSIUnitName.MOLE +newton = IfcSIUnitName.NEWTON +ohm = IfcSIUnitName.OHM +pascal = IfcSIUnitName.PASCAL +radian = IfcSIUnitName.RADIAN +second = IfcSIUnitName.SECOND +siemens = IfcSIUnitName.SIEMENS +sievert = IfcSIUnitName.SIEVERT +square_metre = IfcSIUnitName.SQUARE_METRE +steradian = IfcSIUnitName.STERADIAN +tesla = IfcSIUnitName.TESLA +volt = IfcSIUnitName.VOLT +watt = IfcSIUnitName.WATT +weber = IfcSIUnitName.WEBER IfcSanitaryTerminalTypeEnum = enum_namespace() -bath = getattr(IfcSanitaryTerminalTypeEnum, 'BATH', INDETERMINATE) -bidet = getattr(IfcSanitaryTerminalTypeEnum, 'BIDET', INDETERMINATE) -cistern = getattr(IfcSanitaryTerminalTypeEnum, 'CISTERN', INDETERMINATE) -sanitaryfountain = getattr(IfcSanitaryTerminalTypeEnum, 'SANITARYFOUNTAIN', INDETERMINATE) -shower = getattr(IfcSanitaryTerminalTypeEnum, 'SHOWER', INDETERMINATE) -sink = getattr(IfcSanitaryTerminalTypeEnum, 'SINK', INDETERMINATE) -toiletpan = getattr(IfcSanitaryTerminalTypeEnum, 'TOILETPAN', INDETERMINATE) -urinal = getattr(IfcSanitaryTerminalTypeEnum, 'URINAL', INDETERMINATE) -washhandbasin = getattr(IfcSanitaryTerminalTypeEnum, 'WASHHANDBASIN', INDETERMINATE) -wcseat = getattr(IfcSanitaryTerminalTypeEnum, 'WCSEAT', INDETERMINATE) -userdefined = getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSanitaryTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +bath = IfcSanitaryTerminalTypeEnum.BATH +bidet = IfcSanitaryTerminalTypeEnum.BIDET +cistern = IfcSanitaryTerminalTypeEnum.CISTERN +sanitaryfountain = IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN +shower = IfcSanitaryTerminalTypeEnum.SHOWER +sink = IfcSanitaryTerminalTypeEnum.SINK +toiletpan = IfcSanitaryTerminalTypeEnum.TOILETPAN +urinal = IfcSanitaryTerminalTypeEnum.URINAL +washhandbasin = IfcSanitaryTerminalTypeEnum.WASHHANDBASIN +wcseat = IfcSanitaryTerminalTypeEnum.WCSEAT +userdefined = IfcSanitaryTerminalTypeEnum.USERDEFINED +notdefined = IfcSanitaryTerminalTypeEnum.NOTDEFINED IfcSectionTypeEnum = enum_namespace() -tapered = getattr(IfcSectionTypeEnum, 'TAPERED', INDETERMINATE) -uniform = getattr(IfcSectionTypeEnum, 'UNIFORM', INDETERMINATE) +tapered = IfcSectionTypeEnum.TAPERED +uniform = IfcSectionTypeEnum.UNIFORM IfcSensorTypeEnum = enum_namespace() -co2sensor = getattr(IfcSensorTypeEnum, 'CO2SENSOR', INDETERMINATE) -conductancesensor = getattr(IfcSensorTypeEnum, 'CONDUCTANCESENSOR', INDETERMINATE) -contactsensor = getattr(IfcSensorTypeEnum, 'CONTACTSENSOR', INDETERMINATE) -cosensor = getattr(IfcSensorTypeEnum, 'COSENSOR', INDETERMINATE) -earthquakesensor = getattr(IfcSensorTypeEnum, 'EARTHQUAKESENSOR', INDETERMINATE) -firesensor = getattr(IfcSensorTypeEnum, 'FIRESENSOR', INDETERMINATE) -flowsensor = getattr(IfcSensorTypeEnum, 'FLOWSENSOR', INDETERMINATE) -foreignobjectdetectionsensor = getattr(IfcSensorTypeEnum, 'FOREIGNOBJECTDETECTIONSENSOR', INDETERMINATE) -frostsensor = getattr(IfcSensorTypeEnum, 'FROSTSENSOR', INDETERMINATE) -gassensor = getattr(IfcSensorTypeEnum, 'GASSENSOR', INDETERMINATE) -heatsensor = getattr(IfcSensorTypeEnum, 'HEATSENSOR', INDETERMINATE) -humiditysensor = getattr(IfcSensorTypeEnum, 'HUMIDITYSENSOR', INDETERMINATE) -identifiersensor = getattr(IfcSensorTypeEnum, 'IDENTIFIERSENSOR', INDETERMINATE) -ionconcentrationsensor = getattr(IfcSensorTypeEnum, 'IONCONCENTRATIONSENSOR', INDETERMINATE) -levelsensor = getattr(IfcSensorTypeEnum, 'LEVELSENSOR', INDETERMINATE) -lightsensor = getattr(IfcSensorTypeEnum, 'LIGHTSENSOR', INDETERMINATE) -moisturesensor = getattr(IfcSensorTypeEnum, 'MOISTURESENSOR', INDETERMINATE) -movementsensor = getattr(IfcSensorTypeEnum, 'MOVEMENTSENSOR', INDETERMINATE) -obstaclesensor = getattr(IfcSensorTypeEnum, 'OBSTACLESENSOR', INDETERMINATE) -phsensor = getattr(IfcSensorTypeEnum, 'PHSENSOR', INDETERMINATE) -pressuresensor = getattr(IfcSensorTypeEnum, 'PRESSURESENSOR', INDETERMINATE) -radiationsensor = getattr(IfcSensorTypeEnum, 'RADIATIONSENSOR', INDETERMINATE) -radioactivitysensor = getattr(IfcSensorTypeEnum, 'RADIOACTIVITYSENSOR', INDETERMINATE) -rainsensor = getattr(IfcSensorTypeEnum, 'RAINSENSOR', INDETERMINATE) -smokesensor = getattr(IfcSensorTypeEnum, 'SMOKESENSOR', INDETERMINATE) -snowdepthsensor = getattr(IfcSensorTypeEnum, 'SNOWDEPTHSENSOR', INDETERMINATE) -soundsensor = getattr(IfcSensorTypeEnum, 'SOUNDSENSOR', INDETERMINATE) -temperaturesensor = getattr(IfcSensorTypeEnum, 'TEMPERATURESENSOR', INDETERMINATE) -trainsensor = getattr(IfcSensorTypeEnum, 'TRAINSENSOR', INDETERMINATE) -turnoutclosuresensor = getattr(IfcSensorTypeEnum, 'TURNOUTCLOSURESENSOR', INDETERMINATE) -wheelsensor = getattr(IfcSensorTypeEnum, 'WHEELSENSOR', INDETERMINATE) -windsensor = getattr(IfcSensorTypeEnum, 'WINDSENSOR', INDETERMINATE) -userdefined = getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSensorTypeEnum, 'NOTDEFINED', INDETERMINATE) +co2sensor = IfcSensorTypeEnum.CO2SENSOR +conductancesensor = IfcSensorTypeEnum.CONDUCTANCESENSOR +contactsensor = IfcSensorTypeEnum.CONTACTSENSOR +cosensor = IfcSensorTypeEnum.COSENSOR +earthquakesensor = IfcSensorTypeEnum.EARTHQUAKESENSOR +firesensor = IfcSensorTypeEnum.FIRESENSOR +flowsensor = IfcSensorTypeEnum.FLOWSENSOR +foreignobjectdetectionsensor = IfcSensorTypeEnum.FOREIGNOBJECTDETECTIONSENSOR +frostsensor = IfcSensorTypeEnum.FROSTSENSOR +gassensor = IfcSensorTypeEnum.GASSENSOR +heatsensor = IfcSensorTypeEnum.HEATSENSOR +humiditysensor = IfcSensorTypeEnum.HUMIDITYSENSOR +identifiersensor = IfcSensorTypeEnum.IDENTIFIERSENSOR +ionconcentrationsensor = IfcSensorTypeEnum.IONCONCENTRATIONSENSOR +levelsensor = IfcSensorTypeEnum.LEVELSENSOR +lightsensor = IfcSensorTypeEnum.LIGHTSENSOR +moisturesensor = IfcSensorTypeEnum.MOISTURESENSOR +movementsensor = IfcSensorTypeEnum.MOVEMENTSENSOR +obstaclesensor = IfcSensorTypeEnum.OBSTACLESENSOR +phsensor = IfcSensorTypeEnum.PHSENSOR +pressuresensor = IfcSensorTypeEnum.PRESSURESENSOR +radiationsensor = IfcSensorTypeEnum.RADIATIONSENSOR +radioactivitysensor = IfcSensorTypeEnum.RADIOACTIVITYSENSOR +rainsensor = IfcSensorTypeEnum.RAINSENSOR +smokesensor = IfcSensorTypeEnum.SMOKESENSOR +snowdepthsensor = IfcSensorTypeEnum.SNOWDEPTHSENSOR +soundsensor = IfcSensorTypeEnum.SOUNDSENSOR +temperaturesensor = IfcSensorTypeEnum.TEMPERATURESENSOR +trainsensor = IfcSensorTypeEnum.TRAINSENSOR +turnoutclosuresensor = IfcSensorTypeEnum.TURNOUTCLOSURESENSOR +wheelsensor = IfcSensorTypeEnum.WHEELSENSOR +windsensor = IfcSensorTypeEnum.WINDSENSOR +userdefined = IfcSensorTypeEnum.USERDEFINED +notdefined = IfcSensorTypeEnum.NOTDEFINED IfcSequenceEnum = enum_namespace() -finish_finish = getattr(IfcSequenceEnum, 'FINISH_FINISH', INDETERMINATE) -finish_start = getattr(IfcSequenceEnum, 'FINISH_START', INDETERMINATE) -start_finish = getattr(IfcSequenceEnum, 'START_FINISH', INDETERMINATE) -start_start = getattr(IfcSequenceEnum, 'START_START', INDETERMINATE) -userdefined = getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSequenceEnum, 'NOTDEFINED', INDETERMINATE) +finish_finish = IfcSequenceEnum.FINISH_FINISH +finish_start = IfcSequenceEnum.FINISH_START +start_finish = IfcSequenceEnum.START_FINISH +start_start = IfcSequenceEnum.START_START +userdefined = IfcSequenceEnum.USERDEFINED +notdefined = IfcSequenceEnum.NOTDEFINED IfcShadingDeviceTypeEnum = enum_namespace() -awning = getattr(IfcShadingDeviceTypeEnum, 'AWNING', INDETERMINATE) -jalousie = getattr(IfcShadingDeviceTypeEnum, 'JALOUSIE', INDETERMINATE) -shutter = getattr(IfcShadingDeviceTypeEnum, 'SHUTTER', INDETERMINATE) -userdefined = getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcShadingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +awning = IfcShadingDeviceTypeEnum.AWNING +jalousie = IfcShadingDeviceTypeEnum.JALOUSIE +shutter = IfcShadingDeviceTypeEnum.SHUTTER +userdefined = IfcShadingDeviceTypeEnum.USERDEFINED +notdefined = IfcShadingDeviceTypeEnum.NOTDEFINED IfcSignTypeEnum = enum_namespace() -marker = getattr(IfcSignTypeEnum, 'MARKER', INDETERMINATE) -mirror = getattr(IfcSignTypeEnum, 'MIRROR', INDETERMINATE) -pictoral = getattr(IfcSignTypeEnum, 'PICTORAL', INDETERMINATE) -userdefined = getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSignTypeEnum, 'NOTDEFINED', INDETERMINATE) +marker = IfcSignTypeEnum.MARKER +mirror = IfcSignTypeEnum.MIRROR +pictoral = IfcSignTypeEnum.PICTORAL +userdefined = IfcSignTypeEnum.USERDEFINED +notdefined = IfcSignTypeEnum.NOTDEFINED IfcSignalTypeEnum = enum_namespace() -audio = getattr(IfcSignalTypeEnum, 'AUDIO', INDETERMINATE) -mixed = getattr(IfcSignalTypeEnum, 'MIXED', INDETERMINATE) -visual = getattr(IfcSignalTypeEnum, 'VISUAL', INDETERMINATE) -userdefined = getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSignalTypeEnum, 'NOTDEFINED', INDETERMINATE) +audio = IfcSignalTypeEnum.AUDIO +mixed = IfcSignalTypeEnum.MIXED +visual = IfcSignalTypeEnum.VISUAL +userdefined = IfcSignalTypeEnum.USERDEFINED +notdefined = IfcSignalTypeEnum.NOTDEFINED IfcSimplePropertyTemplateTypeEnum = enum_namespace() -p_boundedvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_BOUNDEDVALUE', INDETERMINATE) -p_enumeratedvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_ENUMERATEDVALUE', INDETERMINATE) -p_listvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_LISTVALUE', INDETERMINATE) -p_referencevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_REFERENCEVALUE', INDETERMINATE) -p_singlevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_SINGLEVALUE', INDETERMINATE) -p_tablevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_TABLEVALUE', INDETERMINATE) -q_area = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_AREA', INDETERMINATE) -q_count = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_COUNT', INDETERMINATE) -q_length = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_LENGTH', INDETERMINATE) -q_number = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_NUMBER', INDETERMINATE) -q_time = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_TIME', INDETERMINATE) -q_volume = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_VOLUME', INDETERMINATE) -q_weight = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_WEIGHT', INDETERMINATE) +p_boundedvalue = IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE +p_enumeratedvalue = IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE +p_listvalue = IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE +p_referencevalue = IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE +p_singlevalue = IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE +p_tablevalue = IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE +q_area = IfcSimplePropertyTemplateTypeEnum.Q_AREA +q_count = IfcSimplePropertyTemplateTypeEnum.Q_COUNT +q_length = IfcSimplePropertyTemplateTypeEnum.Q_LENGTH +q_number = IfcSimplePropertyTemplateTypeEnum.Q_NUMBER +q_time = IfcSimplePropertyTemplateTypeEnum.Q_TIME +q_volume = IfcSimplePropertyTemplateTypeEnum.Q_VOLUME +q_weight = IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT IfcSlabTypeEnum = enum_namespace() -approach_slab = getattr(IfcSlabTypeEnum, 'APPROACH_SLAB', INDETERMINATE) -baseslab = getattr(IfcSlabTypeEnum, 'BASESLAB', INDETERMINATE) -floor = getattr(IfcSlabTypeEnum, 'FLOOR', INDETERMINATE) -landing = getattr(IfcSlabTypeEnum, 'LANDING', INDETERMINATE) -paving = getattr(IfcSlabTypeEnum, 'PAVING', INDETERMINATE) -roof = getattr(IfcSlabTypeEnum, 'ROOF', INDETERMINATE) -sidewalk = getattr(IfcSlabTypeEnum, 'SIDEWALK', INDETERMINATE) -trackslab = getattr(IfcSlabTypeEnum, 'TRACKSLAB', INDETERMINATE) -wearing = getattr(IfcSlabTypeEnum, 'WEARING', INDETERMINATE) -userdefined = getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSlabTypeEnum, 'NOTDEFINED', INDETERMINATE) +approach_slab = IfcSlabTypeEnum.APPROACH_SLAB +baseslab = IfcSlabTypeEnum.BASESLAB +floor = IfcSlabTypeEnum.FLOOR +landing = IfcSlabTypeEnum.LANDING +paving = IfcSlabTypeEnum.PAVING +roof = IfcSlabTypeEnum.ROOF +sidewalk = IfcSlabTypeEnum.SIDEWALK +trackslab = IfcSlabTypeEnum.TRACKSLAB +wearing = IfcSlabTypeEnum.WEARING +userdefined = IfcSlabTypeEnum.USERDEFINED +notdefined = IfcSlabTypeEnum.NOTDEFINED IfcSolarDeviceTypeEnum = enum_namespace() -solarcollector = getattr(IfcSolarDeviceTypeEnum, 'SOLARCOLLECTOR', INDETERMINATE) -solarpanel = getattr(IfcSolarDeviceTypeEnum, 'SOLARPANEL', INDETERMINATE) -userdefined = getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSolarDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +solarcollector = IfcSolarDeviceTypeEnum.SOLARCOLLECTOR +solarpanel = IfcSolarDeviceTypeEnum.SOLARPANEL +userdefined = IfcSolarDeviceTypeEnum.USERDEFINED +notdefined = IfcSolarDeviceTypeEnum.NOTDEFINED IfcSpaceHeaterTypeEnum = enum_namespace() -convector = getattr(IfcSpaceHeaterTypeEnum, 'CONVECTOR', INDETERMINATE) -radiator = getattr(IfcSpaceHeaterTypeEnum, 'RADIATOR', INDETERMINATE) -userdefined = getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpaceHeaterTypeEnum, 'NOTDEFINED', INDETERMINATE) +convector = IfcSpaceHeaterTypeEnum.CONVECTOR +radiator = IfcSpaceHeaterTypeEnum.RADIATOR +userdefined = IfcSpaceHeaterTypeEnum.USERDEFINED +notdefined = IfcSpaceHeaterTypeEnum.NOTDEFINED IfcSpaceTypeEnum = enum_namespace() -berth = getattr(IfcSpaceTypeEnum, 'BERTH', INDETERMINATE) -external = getattr(IfcSpaceTypeEnum, 'EXTERNAL', INDETERMINATE) -gfa = getattr(IfcSpaceTypeEnum, 'GFA', INDETERMINATE) -internal = getattr(IfcSpaceTypeEnum, 'INTERNAL', INDETERMINATE) -parking = getattr(IfcSpaceTypeEnum, 'PARKING', INDETERMINATE) -space = getattr(IfcSpaceTypeEnum, 'SPACE', INDETERMINATE) -userdefined = getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpaceTypeEnum, 'NOTDEFINED', INDETERMINATE) +berth = IfcSpaceTypeEnum.BERTH +external = IfcSpaceTypeEnum.EXTERNAL +gfa = IfcSpaceTypeEnum.GFA +internal = IfcSpaceTypeEnum.INTERNAL +parking = IfcSpaceTypeEnum.PARKING +space = IfcSpaceTypeEnum.SPACE +userdefined = IfcSpaceTypeEnum.USERDEFINED +notdefined = IfcSpaceTypeEnum.NOTDEFINED IfcSpatialZoneTypeEnum = enum_namespace() -construction = getattr(IfcSpatialZoneTypeEnum, 'CONSTRUCTION', INDETERMINATE) -firesafety = getattr(IfcSpatialZoneTypeEnum, 'FIRESAFETY', INDETERMINATE) -interference = getattr(IfcSpatialZoneTypeEnum, 'INTERFERENCE', INDETERMINATE) -lighting = getattr(IfcSpatialZoneTypeEnum, 'LIGHTING', INDETERMINATE) -occupancy = getattr(IfcSpatialZoneTypeEnum, 'OCCUPANCY', INDETERMINATE) -reservation = getattr(IfcSpatialZoneTypeEnum, 'RESERVATION', INDETERMINATE) -security = getattr(IfcSpatialZoneTypeEnum, 'SECURITY', INDETERMINATE) -thermal = getattr(IfcSpatialZoneTypeEnum, 'THERMAL', INDETERMINATE) -transport = getattr(IfcSpatialZoneTypeEnum, 'TRANSPORT', INDETERMINATE) -ventilation = getattr(IfcSpatialZoneTypeEnum, 'VENTILATION', INDETERMINATE) -userdefined = getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpatialZoneTypeEnum, 'NOTDEFINED', INDETERMINATE) +construction = IfcSpatialZoneTypeEnum.CONSTRUCTION +firesafety = IfcSpatialZoneTypeEnum.FIRESAFETY +interference = IfcSpatialZoneTypeEnum.INTERFERENCE +lighting = IfcSpatialZoneTypeEnum.LIGHTING +occupancy = IfcSpatialZoneTypeEnum.OCCUPANCY +reservation = IfcSpatialZoneTypeEnum.RESERVATION +security = IfcSpatialZoneTypeEnum.SECURITY +thermal = IfcSpatialZoneTypeEnum.THERMAL +transport = IfcSpatialZoneTypeEnum.TRANSPORT +ventilation = IfcSpatialZoneTypeEnum.VENTILATION +userdefined = IfcSpatialZoneTypeEnum.USERDEFINED +notdefined = IfcSpatialZoneTypeEnum.NOTDEFINED IfcStackTerminalTypeEnum = enum_namespace() -birdcage = getattr(IfcStackTerminalTypeEnum, 'BIRDCAGE', INDETERMINATE) -cowl = getattr(IfcStackTerminalTypeEnum, 'COWL', INDETERMINATE) -rainwaterhopper = getattr(IfcStackTerminalTypeEnum, 'RAINWATERHOPPER', INDETERMINATE) -userdefined = getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStackTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +birdcage = IfcStackTerminalTypeEnum.BIRDCAGE +cowl = IfcStackTerminalTypeEnum.COWL +rainwaterhopper = IfcStackTerminalTypeEnum.RAINWATERHOPPER +userdefined = IfcStackTerminalTypeEnum.USERDEFINED +notdefined = IfcStackTerminalTypeEnum.NOTDEFINED IfcStairFlightTypeEnum = enum_namespace() -curved = getattr(IfcStairFlightTypeEnum, 'CURVED', INDETERMINATE) -freeform = getattr(IfcStairFlightTypeEnum, 'FREEFORM', INDETERMINATE) -spiral = getattr(IfcStairFlightTypeEnum, 'SPIRAL', INDETERMINATE) -straight = getattr(IfcStairFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -winder = getattr(IfcStairFlightTypeEnum, 'WINDER', INDETERMINATE) -userdefined = getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStairFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +curved = IfcStairFlightTypeEnum.CURVED +freeform = IfcStairFlightTypeEnum.FREEFORM +spiral = IfcStairFlightTypeEnum.SPIRAL +straight = IfcStairFlightTypeEnum.STRAIGHT +winder = IfcStairFlightTypeEnum.WINDER +userdefined = IfcStairFlightTypeEnum.USERDEFINED +notdefined = IfcStairFlightTypeEnum.NOTDEFINED IfcStairTypeEnum = enum_namespace() -curved_run_stair = getattr(IfcStairTypeEnum, 'CURVED_RUN_STAIR', INDETERMINATE) -double_return_stair = getattr(IfcStairTypeEnum, 'DOUBLE_RETURN_STAIR', INDETERMINATE) -half_turn_stair = getattr(IfcStairTypeEnum, 'HALF_TURN_STAIR', INDETERMINATE) -half_winding_stair = getattr(IfcStairTypeEnum, 'HALF_WINDING_STAIR', INDETERMINATE) -ladder = getattr(IfcStairTypeEnum, 'LADDER', INDETERMINATE) -quarter_turn_stair = getattr(IfcStairTypeEnum, 'QUARTER_TURN_STAIR', INDETERMINATE) -quarter_winding_stair = getattr(IfcStairTypeEnum, 'QUARTER_WINDING_STAIR', INDETERMINATE) -spiral_stair = getattr(IfcStairTypeEnum, 'SPIRAL_STAIR', INDETERMINATE) -straight_run_stair = getattr(IfcStairTypeEnum, 'STRAIGHT_RUN_STAIR', INDETERMINATE) -three_quarter_turn_stair = getattr(IfcStairTypeEnum, 'THREE_QUARTER_TURN_STAIR', INDETERMINATE) -three_quarter_winding_stair = getattr(IfcStairTypeEnum, 'THREE_QUARTER_WINDING_STAIR', INDETERMINATE) -two_curved_run_stair = getattr(IfcStairTypeEnum, 'TWO_CURVED_RUN_STAIR', INDETERMINATE) -two_quarter_turn_stair = getattr(IfcStairTypeEnum, 'TWO_QUARTER_TURN_STAIR', INDETERMINATE) -two_quarter_winding_stair = getattr(IfcStairTypeEnum, 'TWO_QUARTER_WINDING_STAIR', INDETERMINATE) -two_straight_run_stair = getattr(IfcStairTypeEnum, 'TWO_STRAIGHT_RUN_STAIR', INDETERMINATE) -userdefined = getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStairTypeEnum, 'NOTDEFINED', INDETERMINATE) +curved_run_stair = IfcStairTypeEnum.CURVED_RUN_STAIR +double_return_stair = IfcStairTypeEnum.DOUBLE_RETURN_STAIR +half_turn_stair = IfcStairTypeEnum.HALF_TURN_STAIR +half_winding_stair = IfcStairTypeEnum.HALF_WINDING_STAIR +ladder = IfcStairTypeEnum.LADDER +quarter_turn_stair = IfcStairTypeEnum.QUARTER_TURN_STAIR +quarter_winding_stair = IfcStairTypeEnum.QUARTER_WINDING_STAIR +spiral_stair = IfcStairTypeEnum.SPIRAL_STAIR +straight_run_stair = IfcStairTypeEnum.STRAIGHT_RUN_STAIR +three_quarter_turn_stair = IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR +three_quarter_winding_stair = IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR +two_curved_run_stair = IfcStairTypeEnum.TWO_CURVED_RUN_STAIR +two_quarter_turn_stair = IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR +two_quarter_winding_stair = IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR +two_straight_run_stair = IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR +userdefined = IfcStairTypeEnum.USERDEFINED +notdefined = IfcStairTypeEnum.NOTDEFINED IfcStateEnum = enum_namespace() -locked = getattr(IfcStateEnum, 'LOCKED', INDETERMINATE) -readonly = getattr(IfcStateEnum, 'READONLY', INDETERMINATE) -readonlylocked = getattr(IfcStateEnum, 'READONLYLOCKED', INDETERMINATE) -readwrite = getattr(IfcStateEnum, 'READWRITE', INDETERMINATE) -readwritelocked = getattr(IfcStateEnum, 'READWRITELOCKED', INDETERMINATE) +locked = IfcStateEnum.LOCKED +readonly = IfcStateEnum.READONLY +readonlylocked = IfcStateEnum.READONLYLOCKED +readwrite = IfcStateEnum.READWRITE +readwritelocked = IfcStateEnum.READWRITELOCKED IfcStructuralCurveActivityTypeEnum = enum_namespace() -const = getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE) -discrete = getattr(IfcStructuralCurveActivityTypeEnum, 'DISCRETE', INDETERMINATE) -equidistant = getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE) -linear = getattr(IfcStructuralCurveActivityTypeEnum, 'LINEAR', INDETERMINATE) -parabola = getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE) -polygonal = getattr(IfcStructuralCurveActivityTypeEnum, 'POLYGONAL', INDETERMINATE) -sinus = getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) -userdefined = getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralCurveActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralCurveActivityTypeEnum.CONST +discrete = IfcStructuralCurveActivityTypeEnum.DISCRETE +equidistant = IfcStructuralCurveActivityTypeEnum.EQUIDISTANT +linear = IfcStructuralCurveActivityTypeEnum.LINEAR +parabola = IfcStructuralCurveActivityTypeEnum.PARABOLA +polygonal = IfcStructuralCurveActivityTypeEnum.POLYGONAL +sinus = IfcStructuralCurveActivityTypeEnum.SINUS +userdefined = IfcStructuralCurveActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveActivityTypeEnum.NOTDEFINED IfcStructuralCurveMemberTypeEnum = enum_namespace() -cable = getattr(IfcStructuralCurveMemberTypeEnum, 'CABLE', INDETERMINATE) -compression_member = getattr(IfcStructuralCurveMemberTypeEnum, 'COMPRESSION_MEMBER', INDETERMINATE) -pin_joined_member = getattr(IfcStructuralCurveMemberTypeEnum, 'PIN_JOINED_MEMBER', INDETERMINATE) -rigid_joined_member = getattr(IfcStructuralCurveMemberTypeEnum, 'RIGID_JOINED_MEMBER', INDETERMINATE) -tension_member = getattr(IfcStructuralCurveMemberTypeEnum, 'TENSION_MEMBER', INDETERMINATE) -userdefined = getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralCurveMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcStructuralCurveMemberTypeEnum.CABLE +compression_member = IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER +pin_joined_member = IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER +rigid_joined_member = IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER +tension_member = IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER +userdefined = IfcStructuralCurveMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveMemberTypeEnum.NOTDEFINED IfcStructuralSurfaceActivityTypeEnum = enum_namespace() -bilinear = getattr(IfcStructuralSurfaceActivityTypeEnum, 'BILINEAR', INDETERMINATE) -const = getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE) -discrete = getattr(IfcStructuralSurfaceActivityTypeEnum, 'DISCRETE', INDETERMINATE) -isocontour = getattr(IfcStructuralSurfaceActivityTypeEnum, 'ISOCONTOUR', INDETERMINATE) -userdefined = getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralSurfaceActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +bilinear = IfcStructuralSurfaceActivityTypeEnum.BILINEAR +const = IfcStructuralSurfaceActivityTypeEnum.CONST +discrete = IfcStructuralSurfaceActivityTypeEnum.DISCRETE +isocontour = IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR +userdefined = IfcStructuralSurfaceActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED IfcStructuralSurfaceMemberTypeEnum = enum_namespace() -bending_element = getattr(IfcStructuralSurfaceMemberTypeEnum, 'BENDING_ELEMENT', INDETERMINATE) -membrane_element = getattr(IfcStructuralSurfaceMemberTypeEnum, 'MEMBRANE_ELEMENT', INDETERMINATE) -shell = getattr(IfcStructuralSurfaceMemberTypeEnum, 'SHELL', INDETERMINATE) -userdefined = getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralSurfaceMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_element = IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT +membrane_element = IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT +shell = IfcStructuralSurfaceMemberTypeEnum.SHELL +userdefined = IfcStructuralSurfaceMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED IfcSubContractResourceTypeEnum = enum_namespace() -purchase = getattr(IfcSubContractResourceTypeEnum, 'PURCHASE', INDETERMINATE) -work = getattr(IfcSubContractResourceTypeEnum, 'WORK', INDETERMINATE) -userdefined = getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSubContractResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +purchase = IfcSubContractResourceTypeEnum.PURCHASE +work = IfcSubContractResourceTypeEnum.WORK +userdefined = IfcSubContractResourceTypeEnum.USERDEFINED +notdefined = IfcSubContractResourceTypeEnum.NOTDEFINED IfcSurfaceFeatureTypeEnum = enum_namespace() -defect = getattr(IfcSurfaceFeatureTypeEnum, 'DEFECT', INDETERMINATE) -hatchmarking = getattr(IfcSurfaceFeatureTypeEnum, 'HATCHMARKING', INDETERMINATE) -linemarking = getattr(IfcSurfaceFeatureTypeEnum, 'LINEMARKING', INDETERMINATE) -mark = getattr(IfcSurfaceFeatureTypeEnum, 'MARK', INDETERMINATE) -nonskidsurfacing = getattr(IfcSurfaceFeatureTypeEnum, 'NONSKIDSURFACING', INDETERMINATE) -pavementsurfacemarking = getattr(IfcSurfaceFeatureTypeEnum, 'PAVEMENTSURFACEMARKING', INDETERMINATE) -rumblestrip = getattr(IfcSurfaceFeatureTypeEnum, 'RUMBLESTRIP', INDETERMINATE) -symbolmarking = getattr(IfcSurfaceFeatureTypeEnum, 'SYMBOLMARKING', INDETERMINATE) -tag = getattr(IfcSurfaceFeatureTypeEnum, 'TAG', INDETERMINATE) -transverserumblestrip = getattr(IfcSurfaceFeatureTypeEnum, 'TRANSVERSERUMBLESTRIP', INDETERMINATE) -treatment = getattr(IfcSurfaceFeatureTypeEnum, 'TREATMENT', INDETERMINATE) -userdefined = getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSurfaceFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +defect = IfcSurfaceFeatureTypeEnum.DEFECT +hatchmarking = IfcSurfaceFeatureTypeEnum.HATCHMARKING +linemarking = IfcSurfaceFeatureTypeEnum.LINEMARKING +mark = IfcSurfaceFeatureTypeEnum.MARK +nonskidsurfacing = IfcSurfaceFeatureTypeEnum.NONSKIDSURFACING +pavementsurfacemarking = IfcSurfaceFeatureTypeEnum.PAVEMENTSURFACEMARKING +rumblestrip = IfcSurfaceFeatureTypeEnum.RUMBLESTRIP +symbolmarking = IfcSurfaceFeatureTypeEnum.SYMBOLMARKING +tag = IfcSurfaceFeatureTypeEnum.TAG +transverserumblestrip = IfcSurfaceFeatureTypeEnum.TRANSVERSERUMBLESTRIP +treatment = IfcSurfaceFeatureTypeEnum.TREATMENT +userdefined = IfcSurfaceFeatureTypeEnum.USERDEFINED +notdefined = IfcSurfaceFeatureTypeEnum.NOTDEFINED IfcSurfaceSide = enum_namespace() -both = getattr(IfcSurfaceSide, 'BOTH', INDETERMINATE) -negative = getattr(IfcSurfaceSide, 'NEGATIVE', INDETERMINATE) -positive = getattr(IfcSurfaceSide, 'POSITIVE', INDETERMINATE) +both = IfcSurfaceSide.BOTH +negative = IfcSurfaceSide.NEGATIVE +positive = IfcSurfaceSide.POSITIVE IfcSwitchingDeviceTypeEnum = enum_namespace() -contactor = getattr(IfcSwitchingDeviceTypeEnum, 'CONTACTOR', INDETERMINATE) -dimmerswitch = getattr(IfcSwitchingDeviceTypeEnum, 'DIMMERSWITCH', INDETERMINATE) -emergencystop = getattr(IfcSwitchingDeviceTypeEnum, 'EMERGENCYSTOP', INDETERMINATE) -keypad = getattr(IfcSwitchingDeviceTypeEnum, 'KEYPAD', INDETERMINATE) -momentaryswitch = getattr(IfcSwitchingDeviceTypeEnum, 'MOMENTARYSWITCH', INDETERMINATE) -relay = getattr(IfcSwitchingDeviceTypeEnum, 'RELAY', INDETERMINATE) -selectorswitch = getattr(IfcSwitchingDeviceTypeEnum, 'SELECTORSWITCH', INDETERMINATE) -starter = getattr(IfcSwitchingDeviceTypeEnum, 'STARTER', INDETERMINATE) -start_and_stop_equipment = getattr(IfcSwitchingDeviceTypeEnum, 'START_AND_STOP_EQUIPMENT', INDETERMINATE) -switchdisconnector = getattr(IfcSwitchingDeviceTypeEnum, 'SWITCHDISCONNECTOR', INDETERMINATE) -toggleswitch = getattr(IfcSwitchingDeviceTypeEnum, 'TOGGLESWITCH', INDETERMINATE) -userdefined = getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSwitchingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +contactor = IfcSwitchingDeviceTypeEnum.CONTACTOR +dimmerswitch = IfcSwitchingDeviceTypeEnum.DIMMERSWITCH +emergencystop = IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP +keypad = IfcSwitchingDeviceTypeEnum.KEYPAD +momentaryswitch = IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH +relay = IfcSwitchingDeviceTypeEnum.RELAY +selectorswitch = IfcSwitchingDeviceTypeEnum.SELECTORSWITCH +starter = IfcSwitchingDeviceTypeEnum.STARTER +start_and_stop_equipment = IfcSwitchingDeviceTypeEnum.START_AND_STOP_EQUIPMENT +switchdisconnector = IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR +toggleswitch = IfcSwitchingDeviceTypeEnum.TOGGLESWITCH +userdefined = IfcSwitchingDeviceTypeEnum.USERDEFINED +notdefined = IfcSwitchingDeviceTypeEnum.NOTDEFINED IfcSystemFurnitureElementTypeEnum = enum_namespace() -panel = getattr(IfcSystemFurnitureElementTypeEnum, 'PANEL', INDETERMINATE) -subrack = getattr(IfcSystemFurnitureElementTypeEnum, 'SUBRACK', INDETERMINATE) -worksurface = getattr(IfcSystemFurnitureElementTypeEnum, 'WORKSURFACE', INDETERMINATE) -userdefined = getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSystemFurnitureElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +panel = IfcSystemFurnitureElementTypeEnum.PANEL +subrack = IfcSystemFurnitureElementTypeEnum.SUBRACK +worksurface = IfcSystemFurnitureElementTypeEnum.WORKSURFACE +userdefined = IfcSystemFurnitureElementTypeEnum.USERDEFINED +notdefined = IfcSystemFurnitureElementTypeEnum.NOTDEFINED IfcTankTypeEnum = enum_namespace() -basin = getattr(IfcTankTypeEnum, 'BASIN', INDETERMINATE) -breakpressure = getattr(IfcTankTypeEnum, 'BREAKPRESSURE', INDETERMINATE) -expansion = getattr(IfcTankTypeEnum, 'EXPANSION', INDETERMINATE) -feedandexpansion = getattr(IfcTankTypeEnum, 'FEEDANDEXPANSION', INDETERMINATE) -oilretentiontray = getattr(IfcTankTypeEnum, 'OILRETENTIONTRAY', INDETERMINATE) -pressurevessel = getattr(IfcTankTypeEnum, 'PRESSUREVESSEL', INDETERMINATE) -storage = getattr(IfcTankTypeEnum, 'STORAGE', INDETERMINATE) -vessel = getattr(IfcTankTypeEnum, 'VESSEL', INDETERMINATE) -userdefined = getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTankTypeEnum, 'NOTDEFINED', INDETERMINATE) +basin = IfcTankTypeEnum.BASIN +breakpressure = IfcTankTypeEnum.BREAKPRESSURE +expansion = IfcTankTypeEnum.EXPANSION +feedandexpansion = IfcTankTypeEnum.FEEDANDEXPANSION +oilretentiontray = IfcTankTypeEnum.OILRETENTIONTRAY +pressurevessel = IfcTankTypeEnum.PRESSUREVESSEL +storage = IfcTankTypeEnum.STORAGE +vessel = IfcTankTypeEnum.VESSEL +userdefined = IfcTankTypeEnum.USERDEFINED +notdefined = IfcTankTypeEnum.NOTDEFINED IfcTaskDurationEnum = enum_namespace() -elapsedtime = getattr(IfcTaskDurationEnum, 'ELAPSEDTIME', INDETERMINATE) -worktime = getattr(IfcTaskDurationEnum, 'WORKTIME', INDETERMINATE) -notdefined = getattr(IfcTaskDurationEnum, 'NOTDEFINED', INDETERMINATE) +elapsedtime = IfcTaskDurationEnum.ELAPSEDTIME +worktime = IfcTaskDurationEnum.WORKTIME +notdefined = IfcTaskDurationEnum.NOTDEFINED IfcTaskTypeEnum = enum_namespace() -adjustment = getattr(IfcTaskTypeEnum, 'ADJUSTMENT', INDETERMINATE) -attendance = getattr(IfcTaskTypeEnum, 'ATTENDANCE', INDETERMINATE) -calibration = getattr(IfcTaskTypeEnum, 'CALIBRATION', INDETERMINATE) -construction = getattr(IfcTaskTypeEnum, 'CONSTRUCTION', INDETERMINATE) -demolition = getattr(IfcTaskTypeEnum, 'DEMOLITION', INDETERMINATE) -dismantle = getattr(IfcTaskTypeEnum, 'DISMANTLE', INDETERMINATE) -disposal = getattr(IfcTaskTypeEnum, 'DISPOSAL', INDETERMINATE) -emergency = getattr(IfcTaskTypeEnum, 'EMERGENCY', INDETERMINATE) -inspection = getattr(IfcTaskTypeEnum, 'INSPECTION', INDETERMINATE) -installation = getattr(IfcTaskTypeEnum, 'INSTALLATION', INDETERMINATE) -logistic = getattr(IfcTaskTypeEnum, 'LOGISTIC', INDETERMINATE) -maintenance = getattr(IfcTaskTypeEnum, 'MAINTENANCE', INDETERMINATE) -move = getattr(IfcTaskTypeEnum, 'MOVE', INDETERMINATE) -operation = getattr(IfcTaskTypeEnum, 'OPERATION', INDETERMINATE) -removal = getattr(IfcTaskTypeEnum, 'REMOVAL', INDETERMINATE) -renovation = getattr(IfcTaskTypeEnum, 'RENOVATION', INDETERMINATE) -safety = getattr(IfcTaskTypeEnum, 'SAFETY', INDETERMINATE) -shutdown = getattr(IfcTaskTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = getattr(IfcTaskTypeEnum, 'STARTUP', INDETERMINATE) -testing = getattr(IfcTaskTypeEnum, 'TESTING', INDETERMINATE) -troubleshooting = getattr(IfcTaskTypeEnum, 'TROUBLESHOOTING', INDETERMINATE) -userdefined = getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTaskTypeEnum, 'NOTDEFINED', INDETERMINATE) +adjustment = IfcTaskTypeEnum.ADJUSTMENT +attendance = IfcTaskTypeEnum.ATTENDANCE +calibration = IfcTaskTypeEnum.CALIBRATION +construction = IfcTaskTypeEnum.CONSTRUCTION +demolition = IfcTaskTypeEnum.DEMOLITION +dismantle = IfcTaskTypeEnum.DISMANTLE +disposal = IfcTaskTypeEnum.DISPOSAL +emergency = IfcTaskTypeEnum.EMERGENCY +inspection = IfcTaskTypeEnum.INSPECTION +installation = IfcTaskTypeEnum.INSTALLATION +logistic = IfcTaskTypeEnum.LOGISTIC +maintenance = IfcTaskTypeEnum.MAINTENANCE +move = IfcTaskTypeEnum.MOVE +operation = IfcTaskTypeEnum.OPERATION +removal = IfcTaskTypeEnum.REMOVAL +renovation = IfcTaskTypeEnum.RENOVATION +safety = IfcTaskTypeEnum.SAFETY +shutdown = IfcTaskTypeEnum.SHUTDOWN +startup = IfcTaskTypeEnum.STARTUP +testing = IfcTaskTypeEnum.TESTING +troubleshooting = IfcTaskTypeEnum.TROUBLESHOOTING +userdefined = IfcTaskTypeEnum.USERDEFINED +notdefined = IfcTaskTypeEnum.NOTDEFINED IfcTendonAnchorTypeEnum = enum_namespace() -coupler = getattr(IfcTendonAnchorTypeEnum, 'COUPLER', INDETERMINATE) -fixed_end = getattr(IfcTendonAnchorTypeEnum, 'FIXED_END', INDETERMINATE) -tensioning_end = getattr(IfcTendonAnchorTypeEnum, 'TENSIONING_END', INDETERMINATE) -userdefined = getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonAnchorTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonAnchorTypeEnum.COUPLER +fixed_end = IfcTendonAnchorTypeEnum.FIXED_END +tensioning_end = IfcTendonAnchorTypeEnum.TENSIONING_END +userdefined = IfcTendonAnchorTypeEnum.USERDEFINED +notdefined = IfcTendonAnchorTypeEnum.NOTDEFINED IfcTendonConduitTypeEnum = enum_namespace() -coupler = getattr(IfcTendonConduitTypeEnum, 'COUPLER', INDETERMINATE) -diabolo = getattr(IfcTendonConduitTypeEnum, 'DIABOLO', INDETERMINATE) -duct = getattr(IfcTendonConduitTypeEnum, 'DUCT', INDETERMINATE) -grouting_duct = getattr(IfcTendonConduitTypeEnum, 'GROUTING_DUCT', INDETERMINATE) -trumpet = getattr(IfcTendonConduitTypeEnum, 'TRUMPET', INDETERMINATE) -userdefined = getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonConduitTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonConduitTypeEnum.COUPLER +diabolo = IfcTendonConduitTypeEnum.DIABOLO +duct = IfcTendonConduitTypeEnum.DUCT +grouting_duct = IfcTendonConduitTypeEnum.GROUTING_DUCT +trumpet = IfcTendonConduitTypeEnum.TRUMPET +userdefined = IfcTendonConduitTypeEnum.USERDEFINED +notdefined = IfcTendonConduitTypeEnum.NOTDEFINED IfcTendonTypeEnum = enum_namespace() -bar = getattr(IfcTendonTypeEnum, 'BAR', INDETERMINATE) -coated = getattr(IfcTendonTypeEnum, 'COATED', INDETERMINATE) -strand = getattr(IfcTendonTypeEnum, 'STRAND', INDETERMINATE) -wire = getattr(IfcTendonTypeEnum, 'WIRE', INDETERMINATE) -userdefined = getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonTypeEnum, 'NOTDEFINED', INDETERMINATE) +bar = IfcTendonTypeEnum.BAR +coated = IfcTendonTypeEnum.COATED +strand = IfcTendonTypeEnum.STRAND +wire = IfcTendonTypeEnum.WIRE +userdefined = IfcTendonTypeEnum.USERDEFINED +notdefined = IfcTendonTypeEnum.NOTDEFINED IfcTextPath = enum_namespace() -down = getattr(IfcTextPath, 'DOWN', INDETERMINATE) -left = getattr(IfcTextPath, 'LEFT', INDETERMINATE) -right = getattr(IfcTextPath, 'RIGHT', INDETERMINATE) -up = getattr(IfcTextPath, 'UP', INDETERMINATE) +down = IfcTextPath.DOWN +left = IfcTextPath.LEFT +right = IfcTextPath.RIGHT +up = IfcTextPath.UP IfcTimeSeriesDataTypeEnum = enum_namespace() -continuous = getattr(IfcTimeSeriesDataTypeEnum, 'CONTINUOUS', INDETERMINATE) -discrete = getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETE', INDETERMINATE) -discretebinary = getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETEBINARY', INDETERMINATE) -piecewisebinary = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISEBINARY', INDETERMINATE) -piecewiseconstant = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONSTANT', INDETERMINATE) -piecewisecontinuous = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONTINUOUS', INDETERMINATE) -notdefined = getattr(IfcTimeSeriesDataTypeEnum, 'NOTDEFINED', INDETERMINATE) +continuous = IfcTimeSeriesDataTypeEnum.CONTINUOUS +discrete = IfcTimeSeriesDataTypeEnum.DISCRETE +discretebinary = IfcTimeSeriesDataTypeEnum.DISCRETEBINARY +piecewisebinary = IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY +piecewiseconstant = IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT +piecewisecontinuous = IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS +notdefined = IfcTimeSeriesDataTypeEnum.NOTDEFINED IfcTrackElementTypeEnum = enum_namespace() -blockingdevice = getattr(IfcTrackElementTypeEnum, 'BLOCKINGDEVICE', INDETERMINATE) -derailer = getattr(IfcTrackElementTypeEnum, 'DERAILER', INDETERMINATE) -frog = getattr(IfcTrackElementTypeEnum, 'FROG', INDETERMINATE) -half_set_of_blades = getattr(IfcTrackElementTypeEnum, 'HALF_SET_OF_BLADES', INDETERMINATE) -sleeper = getattr(IfcTrackElementTypeEnum, 'SLEEPER', INDETERMINATE) -speedregulator = getattr(IfcTrackElementTypeEnum, 'SPEEDREGULATOR', INDETERMINATE) -trackendofalignment = getattr(IfcTrackElementTypeEnum, 'TRACKENDOFALIGNMENT', INDETERMINATE) -vehiclestop = getattr(IfcTrackElementTypeEnum, 'VEHICLESTOP', INDETERMINATE) -userdefined = getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTrackElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +blockingdevice = IfcTrackElementTypeEnum.BLOCKINGDEVICE +derailer = IfcTrackElementTypeEnum.DERAILER +frog = IfcTrackElementTypeEnum.FROG +half_set_of_blades = IfcTrackElementTypeEnum.HALF_SET_OF_BLADES +sleeper = IfcTrackElementTypeEnum.SLEEPER +speedregulator = IfcTrackElementTypeEnum.SPEEDREGULATOR +trackendofalignment = IfcTrackElementTypeEnum.TRACKENDOFALIGNMENT +vehiclestop = IfcTrackElementTypeEnum.VEHICLESTOP +userdefined = IfcTrackElementTypeEnum.USERDEFINED +notdefined = IfcTrackElementTypeEnum.NOTDEFINED IfcTransformerTypeEnum = enum_namespace() -chopper = getattr(IfcTransformerTypeEnum, 'CHOPPER', INDETERMINATE) -combined = getattr(IfcTransformerTypeEnum, 'COMBINED', INDETERMINATE) -current = getattr(IfcTransformerTypeEnum, 'CURRENT', INDETERMINATE) -frequency = getattr(IfcTransformerTypeEnum, 'FREQUENCY', INDETERMINATE) -inverter = getattr(IfcTransformerTypeEnum, 'INVERTER', INDETERMINATE) -rectifier = getattr(IfcTransformerTypeEnum, 'RECTIFIER', INDETERMINATE) -voltage = getattr(IfcTransformerTypeEnum, 'VOLTAGE', INDETERMINATE) -userdefined = getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTransformerTypeEnum, 'NOTDEFINED', INDETERMINATE) +chopper = IfcTransformerTypeEnum.CHOPPER +combined = IfcTransformerTypeEnum.COMBINED +current = IfcTransformerTypeEnum.CURRENT +frequency = IfcTransformerTypeEnum.FREQUENCY +inverter = IfcTransformerTypeEnum.INVERTER +rectifier = IfcTransformerTypeEnum.RECTIFIER +voltage = IfcTransformerTypeEnum.VOLTAGE +userdefined = IfcTransformerTypeEnum.USERDEFINED +notdefined = IfcTransformerTypeEnum.NOTDEFINED IfcTransitionCode = enum_namespace() -continuous = getattr(IfcTransitionCode, 'CONTINUOUS', INDETERMINATE) -contsamegradient = getattr(IfcTransitionCode, 'CONTSAMEGRADIENT', INDETERMINATE) -contsamegradientsamecurvature = getattr(IfcTransitionCode, 'CONTSAMEGRADIENTSAMECURVATURE', INDETERMINATE) -discontinuous = getattr(IfcTransitionCode, 'DISCONTINUOUS', INDETERMINATE) +continuous = IfcTransitionCode.CONTINUOUS +contsamegradient = IfcTransitionCode.CONTSAMEGRADIENT +contsamegradientsamecurvature = IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE +discontinuous = IfcTransitionCode.DISCONTINUOUS IfcTransportElementTypeEnum = enum_namespace() -craneway = getattr(IfcTransportElementTypeEnum, 'CRANEWAY', INDETERMINATE) -elevator = getattr(IfcTransportElementTypeEnum, 'ELEVATOR', INDETERMINATE) -escalator = getattr(IfcTransportElementTypeEnum, 'ESCALATOR', INDETERMINATE) -haulinggear = getattr(IfcTransportElementTypeEnum, 'HAULINGGEAR', INDETERMINATE) -liftinggear = getattr(IfcTransportElementTypeEnum, 'LIFTINGGEAR', INDETERMINATE) -movingwalkway = getattr(IfcTransportElementTypeEnum, 'MOVINGWALKWAY', INDETERMINATE) -userdefined = getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTransportElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +craneway = IfcTransportElementTypeEnum.CRANEWAY +elevator = IfcTransportElementTypeEnum.ELEVATOR +escalator = IfcTransportElementTypeEnum.ESCALATOR +haulinggear = IfcTransportElementTypeEnum.HAULINGGEAR +liftinggear = IfcTransportElementTypeEnum.LIFTINGGEAR +movingwalkway = IfcTransportElementTypeEnum.MOVINGWALKWAY +userdefined = IfcTransportElementTypeEnum.USERDEFINED +notdefined = IfcTransportElementTypeEnum.NOTDEFINED IfcTrimmingPreference = enum_namespace() -cartesian = getattr(IfcTrimmingPreference, 'CARTESIAN', INDETERMINATE) -parameter = getattr(IfcTrimmingPreference, 'PARAMETER', INDETERMINATE) -unspecified = getattr(IfcTrimmingPreference, 'UNSPECIFIED', INDETERMINATE) +cartesian = IfcTrimmingPreference.CARTESIAN +parameter = IfcTrimmingPreference.PARAMETER +unspecified = IfcTrimmingPreference.UNSPECIFIED IfcTubeBundleTypeEnum = enum_namespace() -finned = getattr(IfcTubeBundleTypeEnum, 'FINNED', INDETERMINATE) -userdefined = getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTubeBundleTypeEnum, 'NOTDEFINED', INDETERMINATE) +finned = IfcTubeBundleTypeEnum.FINNED +userdefined = IfcTubeBundleTypeEnum.USERDEFINED +notdefined = IfcTubeBundleTypeEnum.NOTDEFINED IfcUnitEnum = enum_namespace() -absorbeddoseunit = getattr(IfcUnitEnum, 'ABSORBEDDOSEUNIT', INDETERMINATE) -amountofsubstanceunit = getattr(IfcUnitEnum, 'AMOUNTOFSUBSTANCEUNIT', INDETERMINATE) -areaunit = getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE) -doseequivalentunit = getattr(IfcUnitEnum, 'DOSEEQUIVALENTUNIT', INDETERMINATE) -electriccapacitanceunit = getattr(IfcUnitEnum, 'ELECTRICCAPACITANCEUNIT', INDETERMINATE) -electricchargeunit = getattr(IfcUnitEnum, 'ELECTRICCHARGEUNIT', INDETERMINATE) -electricconductanceunit = getattr(IfcUnitEnum, 'ELECTRICCONDUCTANCEUNIT', INDETERMINATE) -electriccurrentunit = getattr(IfcUnitEnum, 'ELECTRICCURRENTUNIT', INDETERMINATE) -electricresistanceunit = getattr(IfcUnitEnum, 'ELECTRICRESISTANCEUNIT', INDETERMINATE) -electricvoltageunit = getattr(IfcUnitEnum, 'ELECTRICVOLTAGEUNIT', INDETERMINATE) -energyunit = getattr(IfcUnitEnum, 'ENERGYUNIT', INDETERMINATE) -forceunit = getattr(IfcUnitEnum, 'FORCEUNIT', INDETERMINATE) -frequencyunit = getattr(IfcUnitEnum, 'FREQUENCYUNIT', INDETERMINATE) -illuminanceunit = getattr(IfcUnitEnum, 'ILLUMINANCEUNIT', INDETERMINATE) -inductanceunit = getattr(IfcUnitEnum, 'INDUCTANCEUNIT', INDETERMINATE) -lengthunit = getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE) -luminousfluxunit = getattr(IfcUnitEnum, 'LUMINOUSFLUXUNIT', INDETERMINATE) -luminousintensityunit = getattr(IfcUnitEnum, 'LUMINOUSINTENSITYUNIT', INDETERMINATE) -magneticfluxdensityunit = getattr(IfcUnitEnum, 'MAGNETICFLUXDENSITYUNIT', INDETERMINATE) -magneticfluxunit = getattr(IfcUnitEnum, 'MAGNETICFLUXUNIT', INDETERMINATE) -massunit = getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE) -planeangleunit = getattr(IfcUnitEnum, 'PLANEANGLEUNIT', INDETERMINATE) -powerunit = getattr(IfcUnitEnum, 'POWERUNIT', INDETERMINATE) -pressureunit = getattr(IfcUnitEnum, 'PRESSUREUNIT', INDETERMINATE) -radioactivityunit = getattr(IfcUnitEnum, 'RADIOACTIVITYUNIT', INDETERMINATE) -solidangleunit = getattr(IfcUnitEnum, 'SOLIDANGLEUNIT', INDETERMINATE) -thermodynamictemperatureunit = getattr(IfcUnitEnum, 'THERMODYNAMICTEMPERATUREUNIT', INDETERMINATE) -timeunit = getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE) -volumeunit = getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE) -userdefined = getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE) +absorbeddoseunit = IfcUnitEnum.ABSORBEDDOSEUNIT +amountofsubstanceunit = IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT +areaunit = IfcUnitEnum.AREAUNIT +doseequivalentunit = IfcUnitEnum.DOSEEQUIVALENTUNIT +electriccapacitanceunit = IfcUnitEnum.ELECTRICCAPACITANCEUNIT +electricchargeunit = IfcUnitEnum.ELECTRICCHARGEUNIT +electricconductanceunit = IfcUnitEnum.ELECTRICCONDUCTANCEUNIT +electriccurrentunit = IfcUnitEnum.ELECTRICCURRENTUNIT +electricresistanceunit = IfcUnitEnum.ELECTRICRESISTANCEUNIT +electricvoltageunit = IfcUnitEnum.ELECTRICVOLTAGEUNIT +energyunit = IfcUnitEnum.ENERGYUNIT +forceunit = IfcUnitEnum.FORCEUNIT +frequencyunit = IfcUnitEnum.FREQUENCYUNIT +illuminanceunit = IfcUnitEnum.ILLUMINANCEUNIT +inductanceunit = IfcUnitEnum.INDUCTANCEUNIT +lengthunit = IfcUnitEnum.LENGTHUNIT +luminousfluxunit = IfcUnitEnum.LUMINOUSFLUXUNIT +luminousintensityunit = IfcUnitEnum.LUMINOUSINTENSITYUNIT +magneticfluxdensityunit = IfcUnitEnum.MAGNETICFLUXDENSITYUNIT +magneticfluxunit = IfcUnitEnum.MAGNETICFLUXUNIT +massunit = IfcUnitEnum.MASSUNIT +planeangleunit = IfcUnitEnum.PLANEANGLEUNIT +powerunit = IfcUnitEnum.POWERUNIT +pressureunit = IfcUnitEnum.PRESSUREUNIT +radioactivityunit = IfcUnitEnum.RADIOACTIVITYUNIT +solidangleunit = IfcUnitEnum.SOLIDANGLEUNIT +thermodynamictemperatureunit = IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT +timeunit = IfcUnitEnum.TIMEUNIT +volumeunit = IfcUnitEnum.VOLUMEUNIT +userdefined = IfcUnitEnum.USERDEFINED IfcUnitaryControlElementTypeEnum = enum_namespace() -alarmpanel = getattr(IfcUnitaryControlElementTypeEnum, 'ALARMPANEL', INDETERMINATE) -basestationcontroller = getattr(IfcUnitaryControlElementTypeEnum, 'BASESTATIONCONTROLLER', INDETERMINATE) -combined = getattr(IfcUnitaryControlElementTypeEnum, 'COMBINED', INDETERMINATE) -controlpanel = getattr(IfcUnitaryControlElementTypeEnum, 'CONTROLPANEL', INDETERMINATE) -gasdetectionpanel = getattr(IfcUnitaryControlElementTypeEnum, 'GASDETECTIONPANEL', INDETERMINATE) -humidistat = getattr(IfcUnitaryControlElementTypeEnum, 'HUMIDISTAT', INDETERMINATE) -indicatorpanel = getattr(IfcUnitaryControlElementTypeEnum, 'INDICATORPANEL', INDETERMINATE) -mimicpanel = getattr(IfcUnitaryControlElementTypeEnum, 'MIMICPANEL', INDETERMINATE) -thermostat = getattr(IfcUnitaryControlElementTypeEnum, 'THERMOSTAT', INDETERMINATE) -weatherstation = getattr(IfcUnitaryControlElementTypeEnum, 'WEATHERSTATION', INDETERMINATE) -userdefined = getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcUnitaryControlElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +alarmpanel = IfcUnitaryControlElementTypeEnum.ALARMPANEL +basestationcontroller = IfcUnitaryControlElementTypeEnum.BASESTATIONCONTROLLER +combined = IfcUnitaryControlElementTypeEnum.COMBINED +controlpanel = IfcUnitaryControlElementTypeEnum.CONTROLPANEL +gasdetectionpanel = IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL +humidistat = IfcUnitaryControlElementTypeEnum.HUMIDISTAT +indicatorpanel = IfcUnitaryControlElementTypeEnum.INDICATORPANEL +mimicpanel = IfcUnitaryControlElementTypeEnum.MIMICPANEL +thermostat = IfcUnitaryControlElementTypeEnum.THERMOSTAT +weatherstation = IfcUnitaryControlElementTypeEnum.WEATHERSTATION +userdefined = IfcUnitaryControlElementTypeEnum.USERDEFINED +notdefined = IfcUnitaryControlElementTypeEnum.NOTDEFINED IfcUnitaryEquipmentTypeEnum = enum_namespace() -airconditioningunit = getattr(IfcUnitaryEquipmentTypeEnum, 'AIRCONDITIONINGUNIT', INDETERMINATE) -airhandler = getattr(IfcUnitaryEquipmentTypeEnum, 'AIRHANDLER', INDETERMINATE) -dehumidifier = getattr(IfcUnitaryEquipmentTypeEnum, 'DEHUMIDIFIER', INDETERMINATE) -rooftopunit = getattr(IfcUnitaryEquipmentTypeEnum, 'ROOFTOPUNIT', INDETERMINATE) -splitsystem = getattr(IfcUnitaryEquipmentTypeEnum, 'SPLITSYSTEM', INDETERMINATE) -userdefined = getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcUnitaryEquipmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +airconditioningunit = IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT +airhandler = IfcUnitaryEquipmentTypeEnum.AIRHANDLER +dehumidifier = IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER +rooftopunit = IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT +splitsystem = IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM +userdefined = IfcUnitaryEquipmentTypeEnum.USERDEFINED +notdefined = IfcUnitaryEquipmentTypeEnum.NOTDEFINED IfcValveTypeEnum = enum_namespace() -airrelease = getattr(IfcValveTypeEnum, 'AIRRELEASE', INDETERMINATE) -antivacuum = getattr(IfcValveTypeEnum, 'ANTIVACUUM', INDETERMINATE) -changeover = getattr(IfcValveTypeEnum, 'CHANGEOVER', INDETERMINATE) -check = getattr(IfcValveTypeEnum, 'CHECK', INDETERMINATE) -commissioning = getattr(IfcValveTypeEnum, 'COMMISSIONING', INDETERMINATE) -diverting = getattr(IfcValveTypeEnum, 'DIVERTING', INDETERMINATE) -doublecheck = getattr(IfcValveTypeEnum, 'DOUBLECHECK', INDETERMINATE) -doubleregulating = getattr(IfcValveTypeEnum, 'DOUBLEREGULATING', INDETERMINATE) -drawoffcock = getattr(IfcValveTypeEnum, 'DRAWOFFCOCK', INDETERMINATE) -faucet = getattr(IfcValveTypeEnum, 'FAUCET', INDETERMINATE) -flushing = getattr(IfcValveTypeEnum, 'FLUSHING', INDETERMINATE) -gascock = getattr(IfcValveTypeEnum, 'GASCOCK', INDETERMINATE) -gastap = getattr(IfcValveTypeEnum, 'GASTAP', INDETERMINATE) -isolating = getattr(IfcValveTypeEnum, 'ISOLATING', INDETERMINATE) -mixing = getattr(IfcValveTypeEnum, 'MIXING', INDETERMINATE) -pressurereducing = getattr(IfcValveTypeEnum, 'PRESSUREREDUCING', INDETERMINATE) -pressurerelief = getattr(IfcValveTypeEnum, 'PRESSURERELIEF', INDETERMINATE) -regulating = getattr(IfcValveTypeEnum, 'REGULATING', INDETERMINATE) -safetycutoff = getattr(IfcValveTypeEnum, 'SAFETYCUTOFF', INDETERMINATE) -steamtrap = getattr(IfcValveTypeEnum, 'STEAMTRAP', INDETERMINATE) -stopcock = getattr(IfcValveTypeEnum, 'STOPCOCK', INDETERMINATE) -userdefined = getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcValveTypeEnum, 'NOTDEFINED', INDETERMINATE) +airrelease = IfcValveTypeEnum.AIRRELEASE +antivacuum = IfcValveTypeEnum.ANTIVACUUM +changeover = IfcValveTypeEnum.CHANGEOVER +check = IfcValveTypeEnum.CHECK +commissioning = IfcValveTypeEnum.COMMISSIONING +diverting = IfcValveTypeEnum.DIVERTING +doublecheck = IfcValveTypeEnum.DOUBLECHECK +doubleregulating = IfcValveTypeEnum.DOUBLEREGULATING +drawoffcock = IfcValveTypeEnum.DRAWOFFCOCK +faucet = IfcValveTypeEnum.FAUCET +flushing = IfcValveTypeEnum.FLUSHING +gascock = IfcValveTypeEnum.GASCOCK +gastap = IfcValveTypeEnum.GASTAP +isolating = IfcValveTypeEnum.ISOLATING +mixing = IfcValveTypeEnum.MIXING +pressurereducing = IfcValveTypeEnum.PRESSUREREDUCING +pressurerelief = IfcValveTypeEnum.PRESSURERELIEF +regulating = IfcValveTypeEnum.REGULATING +safetycutoff = IfcValveTypeEnum.SAFETYCUTOFF +steamtrap = IfcValveTypeEnum.STEAMTRAP +stopcock = IfcValveTypeEnum.STOPCOCK +userdefined = IfcValveTypeEnum.USERDEFINED +notdefined = IfcValveTypeEnum.NOTDEFINED IfcVehicleTypeEnum = enum_namespace() -cargo = getattr(IfcVehicleTypeEnum, 'CARGO', INDETERMINATE) -rollingstock = getattr(IfcVehicleTypeEnum, 'ROLLINGSTOCK', INDETERMINATE) -vehicle = getattr(IfcVehicleTypeEnum, 'VEHICLE', INDETERMINATE) -vehicleair = getattr(IfcVehicleTypeEnum, 'VEHICLEAIR', INDETERMINATE) -vehiclemarine = getattr(IfcVehicleTypeEnum, 'VEHICLEMARINE', INDETERMINATE) -vehicletracked = getattr(IfcVehicleTypeEnum, 'VEHICLETRACKED', INDETERMINATE) -vehiclewheeled = getattr(IfcVehicleTypeEnum, 'VEHICLEWHEELED', INDETERMINATE) -userdefined = getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVehicleTypeEnum, 'NOTDEFINED', INDETERMINATE) +cargo = IfcVehicleTypeEnum.CARGO +rollingstock = IfcVehicleTypeEnum.ROLLINGSTOCK +vehicle = IfcVehicleTypeEnum.VEHICLE +vehicleair = IfcVehicleTypeEnum.VEHICLEAIR +vehiclemarine = IfcVehicleTypeEnum.VEHICLEMARINE +vehicletracked = IfcVehicleTypeEnum.VEHICLETRACKED +vehiclewheeled = IfcVehicleTypeEnum.VEHICLEWHEELED +userdefined = IfcVehicleTypeEnum.USERDEFINED +notdefined = IfcVehicleTypeEnum.NOTDEFINED IfcVibrationDamperTypeEnum = enum_namespace() -axial_yield = getattr(IfcVibrationDamperTypeEnum, 'AXIAL_YIELD', INDETERMINATE) -bending_yield = getattr(IfcVibrationDamperTypeEnum, 'BENDING_YIELD', INDETERMINATE) -friction = getattr(IfcVibrationDamperTypeEnum, 'FRICTION', INDETERMINATE) -rubber = getattr(IfcVibrationDamperTypeEnum, 'RUBBER', INDETERMINATE) -shear_yield = getattr(IfcVibrationDamperTypeEnum, 'SHEAR_YIELD', INDETERMINATE) -viscous = getattr(IfcVibrationDamperTypeEnum, 'VISCOUS', INDETERMINATE) -userdefined = getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVibrationDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +axial_yield = IfcVibrationDamperTypeEnum.AXIAL_YIELD +bending_yield = IfcVibrationDamperTypeEnum.BENDING_YIELD +friction = IfcVibrationDamperTypeEnum.FRICTION +rubber = IfcVibrationDamperTypeEnum.RUBBER +shear_yield = IfcVibrationDamperTypeEnum.SHEAR_YIELD +viscous = IfcVibrationDamperTypeEnum.VISCOUS +userdefined = IfcVibrationDamperTypeEnum.USERDEFINED +notdefined = IfcVibrationDamperTypeEnum.NOTDEFINED IfcVibrationIsolatorTypeEnum = enum_namespace() -base = getattr(IfcVibrationIsolatorTypeEnum, 'BASE', INDETERMINATE) -compression = getattr(IfcVibrationIsolatorTypeEnum, 'COMPRESSION', INDETERMINATE) -spring = getattr(IfcVibrationIsolatorTypeEnum, 'SPRING', INDETERMINATE) -userdefined = getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVibrationIsolatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +base = IfcVibrationIsolatorTypeEnum.BASE +compression = IfcVibrationIsolatorTypeEnum.COMPRESSION +spring = IfcVibrationIsolatorTypeEnum.SPRING +userdefined = IfcVibrationIsolatorTypeEnum.USERDEFINED +notdefined = IfcVibrationIsolatorTypeEnum.NOTDEFINED IfcVirtualElementTypeEnum = enum_namespace() -boundary = getattr(IfcVirtualElementTypeEnum, 'BOUNDARY', INDETERMINATE) -clearance = getattr(IfcVirtualElementTypeEnum, 'CLEARANCE', INDETERMINATE) -provisionforvoid = getattr(IfcVirtualElementTypeEnum, 'PROVISIONFORVOID', INDETERMINATE) -userdefined = getattr(IfcVirtualElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVirtualElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +boundary = IfcVirtualElementTypeEnum.BOUNDARY +clearance = IfcVirtualElementTypeEnum.CLEARANCE +provisionforvoid = IfcVirtualElementTypeEnum.PROVISIONFORVOID +userdefined = IfcVirtualElementTypeEnum.USERDEFINED +notdefined = IfcVirtualElementTypeEnum.NOTDEFINED IfcVoidingFeatureTypeEnum = enum_namespace() -chamfer = getattr(IfcVoidingFeatureTypeEnum, 'CHAMFER', INDETERMINATE) -cutout = getattr(IfcVoidingFeatureTypeEnum, 'CUTOUT', INDETERMINATE) -edge = getattr(IfcVoidingFeatureTypeEnum, 'EDGE', INDETERMINATE) -hole = getattr(IfcVoidingFeatureTypeEnum, 'HOLE', INDETERMINATE) -miter = getattr(IfcVoidingFeatureTypeEnum, 'MITER', INDETERMINATE) -notch = getattr(IfcVoidingFeatureTypeEnum, 'NOTCH', INDETERMINATE) -userdefined = getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVoidingFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +chamfer = IfcVoidingFeatureTypeEnum.CHAMFER +cutout = IfcVoidingFeatureTypeEnum.CUTOUT +edge = IfcVoidingFeatureTypeEnum.EDGE +hole = IfcVoidingFeatureTypeEnum.HOLE +miter = IfcVoidingFeatureTypeEnum.MITER +notch = IfcVoidingFeatureTypeEnum.NOTCH +userdefined = IfcVoidingFeatureTypeEnum.USERDEFINED +notdefined = IfcVoidingFeatureTypeEnum.NOTDEFINED IfcWallTypeEnum = enum_namespace() -elementedwall = getattr(IfcWallTypeEnum, 'ELEMENTEDWALL', INDETERMINATE) -movable = getattr(IfcWallTypeEnum, 'MOVABLE', INDETERMINATE) -parapet = getattr(IfcWallTypeEnum, 'PARAPET', INDETERMINATE) -partitioning = getattr(IfcWallTypeEnum, 'PARTITIONING', INDETERMINATE) -plumbingwall = getattr(IfcWallTypeEnum, 'PLUMBINGWALL', INDETERMINATE) -polygonal = getattr(IfcWallTypeEnum, 'POLYGONAL', INDETERMINATE) -retainingwall = getattr(IfcWallTypeEnum, 'RETAININGWALL', INDETERMINATE) -shear = getattr(IfcWallTypeEnum, 'SHEAR', INDETERMINATE) -solidwall = getattr(IfcWallTypeEnum, 'SOLIDWALL', INDETERMINATE) -standard = getattr(IfcWallTypeEnum, 'STANDARD', INDETERMINATE) -wavewall = getattr(IfcWallTypeEnum, 'WAVEWALL', INDETERMINATE) -userdefined = getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +elementedwall = IfcWallTypeEnum.ELEMENTEDWALL +movable = IfcWallTypeEnum.MOVABLE +parapet = IfcWallTypeEnum.PARAPET +partitioning = IfcWallTypeEnum.PARTITIONING +plumbingwall = IfcWallTypeEnum.PLUMBINGWALL +polygonal = IfcWallTypeEnum.POLYGONAL +retainingwall = IfcWallTypeEnum.RETAININGWALL +shear = IfcWallTypeEnum.SHEAR +solidwall = IfcWallTypeEnum.SOLIDWALL +standard = IfcWallTypeEnum.STANDARD +wavewall = IfcWallTypeEnum.WAVEWALL +userdefined = IfcWallTypeEnum.USERDEFINED +notdefined = IfcWallTypeEnum.NOTDEFINED IfcWasteTerminalTypeEnum = enum_namespace() -floortrap = getattr(IfcWasteTerminalTypeEnum, 'FLOORTRAP', INDETERMINATE) -floorwaste = getattr(IfcWasteTerminalTypeEnum, 'FLOORWASTE', INDETERMINATE) -gullysump = getattr(IfcWasteTerminalTypeEnum, 'GULLYSUMP', INDETERMINATE) -gullytrap = getattr(IfcWasteTerminalTypeEnum, 'GULLYTRAP', INDETERMINATE) -roofdrain = getattr(IfcWasteTerminalTypeEnum, 'ROOFDRAIN', INDETERMINATE) -wastedisposalunit = getattr(IfcWasteTerminalTypeEnum, 'WASTEDISPOSALUNIT', INDETERMINATE) -wastetrap = getattr(IfcWasteTerminalTypeEnum, 'WASTETRAP', INDETERMINATE) -userdefined = getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWasteTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +floortrap = IfcWasteTerminalTypeEnum.FLOORTRAP +floorwaste = IfcWasteTerminalTypeEnum.FLOORWASTE +gullysump = IfcWasteTerminalTypeEnum.GULLYSUMP +gullytrap = IfcWasteTerminalTypeEnum.GULLYTRAP +roofdrain = IfcWasteTerminalTypeEnum.ROOFDRAIN +wastedisposalunit = IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT +wastetrap = IfcWasteTerminalTypeEnum.WASTETRAP +userdefined = IfcWasteTerminalTypeEnum.USERDEFINED +notdefined = IfcWasteTerminalTypeEnum.NOTDEFINED IfcWindowPanelOperationEnum = enum_namespace() -bottomhung = getattr(IfcWindowPanelOperationEnum, 'BOTTOMHUNG', INDETERMINATE) -fixedcasement = getattr(IfcWindowPanelOperationEnum, 'FIXEDCASEMENT', INDETERMINATE) -otheroperation = getattr(IfcWindowPanelOperationEnum, 'OTHEROPERATION', INDETERMINATE) -pivothorizontal = getattr(IfcWindowPanelOperationEnum, 'PIVOTHORIZONTAL', INDETERMINATE) -pivotvertical = getattr(IfcWindowPanelOperationEnum, 'PIVOTVERTICAL', INDETERMINATE) -removablecasement = getattr(IfcWindowPanelOperationEnum, 'REMOVABLECASEMENT', INDETERMINATE) -sidehunglefthand = getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGLEFTHAND', INDETERMINATE) -sidehungrighthand = getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGRIGHTHAND', INDETERMINATE) -slidinghorizontal = getattr(IfcWindowPanelOperationEnum, 'SLIDINGHORIZONTAL', INDETERMINATE) -slidingvertical = getattr(IfcWindowPanelOperationEnum, 'SLIDINGVERTICAL', INDETERMINATE) -tiltandturnlefthand = getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNLEFTHAND', INDETERMINATE) -tiltandturnrighthand = getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNRIGHTHAND', INDETERMINATE) -tophung = getattr(IfcWindowPanelOperationEnum, 'TOPHUNG', INDETERMINATE) -notdefined = getattr(IfcWindowPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +bottomhung = IfcWindowPanelOperationEnum.BOTTOMHUNG +fixedcasement = IfcWindowPanelOperationEnum.FIXEDCASEMENT +otheroperation = IfcWindowPanelOperationEnum.OTHEROPERATION +pivothorizontal = IfcWindowPanelOperationEnum.PIVOTHORIZONTAL +pivotvertical = IfcWindowPanelOperationEnum.PIVOTVERTICAL +removablecasement = IfcWindowPanelOperationEnum.REMOVABLECASEMENT +sidehunglefthand = IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND +sidehungrighthand = IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND +slidinghorizontal = IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL +slidingvertical = IfcWindowPanelOperationEnum.SLIDINGVERTICAL +tiltandturnlefthand = IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND +tiltandturnrighthand = IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND +tophung = IfcWindowPanelOperationEnum.TOPHUNG +notdefined = IfcWindowPanelOperationEnum.NOTDEFINED IfcWindowPanelPositionEnum = enum_namespace() -bottom = getattr(IfcWindowPanelPositionEnum, 'BOTTOM', INDETERMINATE) -left = getattr(IfcWindowPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = getattr(IfcWindowPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = getattr(IfcWindowPanelPositionEnum, 'RIGHT', INDETERMINATE) -top = getattr(IfcWindowPanelPositionEnum, 'TOP', INDETERMINATE) -notdefined = getattr(IfcWindowPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +bottom = IfcWindowPanelPositionEnum.BOTTOM +left = IfcWindowPanelPositionEnum.LEFT +middle = IfcWindowPanelPositionEnum.MIDDLE +right = IfcWindowPanelPositionEnum.RIGHT +top = IfcWindowPanelPositionEnum.TOP +notdefined = IfcWindowPanelPositionEnum.NOTDEFINED IfcWindowTypeEnum = enum_namespace() -lightdome = getattr(IfcWindowTypeEnum, 'LIGHTDOME', INDETERMINATE) -skylight = getattr(IfcWindowTypeEnum, 'SKYLIGHT', INDETERMINATE) -window = getattr(IfcWindowTypeEnum, 'WINDOW', INDETERMINATE) -userdefined = getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowTypeEnum, 'NOTDEFINED', INDETERMINATE) +lightdome = IfcWindowTypeEnum.LIGHTDOME +skylight = IfcWindowTypeEnum.SKYLIGHT +window = IfcWindowTypeEnum.WINDOW +userdefined = IfcWindowTypeEnum.USERDEFINED +notdefined = IfcWindowTypeEnum.NOTDEFINED IfcWindowTypePartitioningEnum = enum_namespace() -double_panel_horizontal = getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -double_panel_vertical = getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -single_panel = getattr(IfcWindowTypePartitioningEnum, 'SINGLE_PANEL', INDETERMINATE) -triple_panel_bottom = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_horizontal = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_left = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_top = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_vertical = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -userdefined = getattr(IfcWindowTypePartitioningEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowTypePartitioningEnum, 'NOTDEFINED', INDETERMINATE) +double_panel_horizontal = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL +double_panel_vertical = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL +single_panel = IfcWindowTypePartitioningEnum.SINGLE_PANEL +triple_panel_bottom = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM +triple_panel_horizontal = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL +triple_panel_left = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT +triple_panel_top = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP +triple_panel_vertical = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL +userdefined = IfcWindowTypePartitioningEnum.USERDEFINED +notdefined = IfcWindowTypePartitioningEnum.NOTDEFINED IfcWorkCalendarTypeEnum = enum_namespace() -firstshift = getattr(IfcWorkCalendarTypeEnum, 'FIRSTSHIFT', INDETERMINATE) -secondshift = getattr(IfcWorkCalendarTypeEnum, 'SECONDSHIFT', INDETERMINATE) -thirdshift = getattr(IfcWorkCalendarTypeEnum, 'THIRDSHIFT', INDETERMINATE) -userdefined = getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkCalendarTypeEnum, 'NOTDEFINED', INDETERMINATE) +firstshift = IfcWorkCalendarTypeEnum.FIRSTSHIFT +secondshift = IfcWorkCalendarTypeEnum.SECONDSHIFT +thirdshift = IfcWorkCalendarTypeEnum.THIRDSHIFT +userdefined = IfcWorkCalendarTypeEnum.USERDEFINED +notdefined = IfcWorkCalendarTypeEnum.NOTDEFINED IfcWorkPlanTypeEnum = enum_namespace() -actual = getattr(IfcWorkPlanTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = getattr(IfcWorkPlanTypeEnum, 'BASELINE', INDETERMINATE) -planned = getattr(IfcWorkPlanTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkPlanTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkPlanTypeEnum.ACTUAL +baseline = IfcWorkPlanTypeEnum.BASELINE +planned = IfcWorkPlanTypeEnum.PLANNED +userdefined = IfcWorkPlanTypeEnum.USERDEFINED +notdefined = IfcWorkPlanTypeEnum.NOTDEFINED IfcWorkScheduleTypeEnum = enum_namespace() -actual = getattr(IfcWorkScheduleTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = getattr(IfcWorkScheduleTypeEnum, 'BASELINE', INDETERMINATE) -planned = getattr(IfcWorkScheduleTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkScheduleTypeEnum.ACTUAL +baseline = IfcWorkScheduleTypeEnum.BASELINE +planned = IfcWorkScheduleTypeEnum.PLANNED +userdefined = IfcWorkScheduleTypeEnum.USERDEFINED +notdefined = IfcWorkScheduleTypeEnum.NOTDEFINED def IfcActionRequest(*args, **kwargs): return ifcopenshell.create_entity('IfcActionRequest', 'IFC4X3_ADD2', *args, **kwargs) @@ -5137,7 +5147,7 @@ class IfcBoxAlignment_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False class IfcCardinalPointReference_GreaterThanZero: SCOPE = 'type' @@ -5218,7 +5228,7 @@ class IfcFontStyle_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False class IfcFontVariant_WR1: SCOPE = 'type' @@ -5227,7 +5237,7 @@ class IfcFontVariant_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False class IfcFontWeight_WR1: SCOPE = 'type' @@ -5236,7 +5246,7 @@ class IfcFontWeight_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False class IfcHeatingValueMeasure_WR1: SCOPE = 'type' @@ -5335,7 +5345,7 @@ class IfcTextAlignment_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False class IfcTextDecoration_WR1: SCOPE = 'type' @@ -5344,7 +5354,7 @@ class IfcTextDecoration_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False class IfcTextTransformation_WR1: SCOPE = 'type' @@ -5353,7 +5363,7 @@ class IfcTextTransformation_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False class IfcActorRole_WR1: SCOPE = 'entity' @@ -5362,8 +5372,8 @@ class IfcActorRole_WR1: @staticmethod def __call__(self): - role = getattr(self, 'Role', INDETERMINATE) - assert (role != getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) or (role == getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedRole', INDETERMINATE)))) is not False + role = express_getattr(self, 'Role', INDETERMINATE) + assert (role != express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) or (role == express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedRole', INDETERMINATE)))) is not False class IfcActuator_CorrectPredefinedType: SCOPE = 'entity' @@ -5372,8 +5382,8 @@ class IfcActuator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcActuator_CorrectTypeAssigned: SCOPE = 'entity' @@ -5382,8 +5392,8 @@ class IfcActuator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcactuatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcactuatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcActuatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -5392,8 +5402,8 @@ class IfcActuatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAddress_WR1: SCOPE = 'entity' @@ -5402,8 +5412,8 @@ class IfcAddress_WR1: @staticmethod def __call__(self): - purpose = getattr(self, 'Purpose', INDETERMINATE) - assert (not exists(purpose) or (purpose != getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) or (purpose == getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedPurpose', INDETERMINATE))))) is not False + purpose = express_getattr(self, 'Purpose', INDETERMINATE) + assert (not exists(purpose) or (purpose != express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) or (purpose == express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedPurpose', INDETERMINATE))))) is not False class IfcAdvancedBrep_HasAdvancedFaces: SCOPE = 'entity' @@ -5412,7 +5422,7 @@ class IfcAdvancedBrep_HasAdvancedFaces: @staticmethod def __call__(self): - assert (sizeof([afs for afs in getattr(getattr(self, 'Outer', INDETERMINATE), 'CfsFaces', INDETERMINATE) if not 'ifc4x3_add2.ifcadvancedface' in typeof(afs)]) == 0) is not False + assert (sizeof([afs for afs in express_getattr(express_getattr(self, 'Outer', INDETERMINATE), 'CfsFaces', INDETERMINATE) if not 'ifc4x3_add2.ifcadvancedface' in typeof(afs)]) == 0) is not False class IfcAdvancedBrepWithVoids_VoidsHaveAdvancedFaces: SCOPE = 'entity' @@ -5421,8 +5431,8 @@ class IfcAdvancedBrepWithVoids_VoidsHaveAdvancedFaces: @staticmethod def __call__(self): - voids = getattr(self, 'Voids', INDETERMINATE) - assert (sizeof([vsh for vsh in voids if sizeof([afs for afs in getattr(vsh, 'CfsFaces', INDETERMINATE) if not 'ifc4x3_add2.ifcadvancedface' in typeof(afs)]) == 0]) == 0) is not False + voids = express_getattr(self, 'Voids', INDETERMINATE) + assert (sizeof([vsh for vsh in voids if sizeof([afs for afs in express_getattr(vsh, 'CfsFaces', INDETERMINATE) if not 'ifc4x3_add2.ifcadvancedface' in typeof(afs)]) == 0]) == 0) is not False class IfcAdvancedFace_ApplicableEdgeCurves: SCOPE = 'entity' @@ -5431,7 +5441,7 @@ class IfcAdvancedFace_ApplicableEdgeCurves: @staticmethod def __call__(self): - assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3_add2.ifcedgeloop' in typeof(getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in getattr(getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not sizeof(['ifc4x3_add2.ifcline', 'ifc4x3_add2.ifcconic', 'ifc4x3_add2.ifcpolyline', 'ifc4x3_add2.ifcbsplinecurve'] * typeof(getattr(getattr(oe, 'EdgeElement', INDETERMINATE), 'EdgeGeometry', INDETERMINATE))) == 1]) == 0]) == 0) is not False + assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in express_getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3_add2.ifcedgeloop' in typeof(express_getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in express_getattr(express_getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not sizeof(['ifc4x3_add2.ifcline', 'ifc4x3_add2.ifcconic', 'ifc4x3_add2.ifcpolyline', 'ifc4x3_add2.ifcbsplinecurve'] * typeof(express_getattr(express_getattr(oe, 'EdgeElement', INDETERMINATE), 'EdgeGeometry', INDETERMINATE))) == 1]) == 0]) == 0) is not False class IfcAdvancedFace_ApplicableSurface: SCOPE = 'entity' @@ -5440,7 +5450,7 @@ class IfcAdvancedFace_ApplicableSurface: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_add2.ifcelementarysurface', 'ifc4x3_add2.ifcsweptsurface', 'ifc4x3_add2.ifcbsplinesurface'] * typeof(getattr(self, 'FaceSurface', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_add2.ifcelementarysurface', 'ifc4x3_add2.ifcsweptsurface', 'ifc4x3_add2.ifcbsplinesurface'] * typeof(express_getattr(self, 'FaceSurface', INDETERMINATE))) == 1) is not False class IfcAdvancedFace_RequiresEdgeCurve: SCOPE = 'entity' @@ -5449,7 +5459,7 @@ class IfcAdvancedFace_RequiresEdgeCurve: @staticmethod def __call__(self): - assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3_add2.ifcedgeloop' in typeof(getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in getattr(getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not 'ifc4x3_add2.ifcedgecurve' in typeof(getattr(oe, 'EdgeElement', INDETERMINATE))]) == 0]) == 0) is not False + assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in express_getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3_add2.ifcedgeloop' in typeof(express_getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in express_getattr(express_getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not 'ifc4x3_add2.ifcedgecurve' in typeof(express_getattr(oe, 'EdgeElement', INDETERMINATE))]) == 0]) == 0) is not False class IfcAirTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -5458,8 +5468,8 @@ class IfcAirTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -5468,8 +5478,8 @@ class IfcAirTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcairterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcairterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirTerminalBox_CorrectPredefinedType: SCOPE = 'entity' @@ -5478,8 +5488,8 @@ class IfcAirTerminalBox_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirTerminalBox_CorrectTypeAssigned: SCOPE = 'entity' @@ -5488,8 +5498,8 @@ class IfcAirTerminalBox_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcairterminalboxtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcairterminalboxtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirTerminalBoxType_CorrectPredefinedType: SCOPE = 'entity' @@ -5498,8 +5508,8 @@ class IfcAirTerminalBoxType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAirTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -5508,8 +5518,8 @@ class IfcAirTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAirToAirHeatRecovery_CorrectPredefinedType: SCOPE = 'entity' @@ -5518,8 +5528,8 @@ class IfcAirToAirHeatRecovery_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirToAirHeatRecovery_CorrectTypeAssigned: SCOPE = 'entity' @@ -5528,8 +5538,8 @@ class IfcAirToAirHeatRecovery_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcairtoairheatrecoverytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcairtoairheatrecoverytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirToAirHeatRecoveryType_CorrectPredefinedType: SCOPE = 'entity' @@ -5538,8 +5548,8 @@ class IfcAirToAirHeatRecoveryType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAlarm_CorrectPredefinedType: SCOPE = 'entity' @@ -5548,8 +5558,8 @@ class IfcAlarm_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAlarm_CorrectTypeAssigned: SCOPE = 'entity' @@ -5558,8 +5568,8 @@ class IfcAlarm_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcalarmtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcalarmtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAlarmType_CorrectPredefinedType: SCOPE = 'entity' @@ -5568,8 +5578,8 @@ class IfcAlarmType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcApproval_HasIdentifierOrName: SCOPE = 'entity' @@ -5578,8 +5588,8 @@ class IfcApproval_HasIdentifierOrName: @staticmethod def __call__(self): - identifier = getattr(self, 'Identifier', INDETERMINATE) - name = getattr(self, 'Name', INDETERMINATE) + identifier = express_getattr(self, 'Identifier', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) assert (exists(identifier) or exists(name)) is not False class IfcArbitraryClosedProfileDef_WR1: @@ -5589,8 +5599,8 @@ class IfcArbitraryClosedProfileDef_WR1: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) - assert (getattr(outercurve, 'Dim', INDETERMINATE) == 2) is not False + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) + assert (express_getattr(outercurve, 'Dim', INDETERMINATE) == 2) is not False class IfcArbitraryClosedProfileDef_WR2: SCOPE = 'entity' @@ -5599,7 +5609,7 @@ class IfcArbitraryClosedProfileDef_WR2: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) assert (not 'ifc4x3_add2.ifcline' in typeof(outercurve)) is not False class IfcArbitraryClosedProfileDef_WR3: @@ -5609,7 +5619,7 @@ class IfcArbitraryClosedProfileDef_WR3: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) assert (not 'ifc4x3_add2.ifcoffsetcurve2d' in typeof(outercurve)) is not False class IfcArbitraryOpenProfileDef_WR11: @@ -5619,7 +5629,7 @@ class IfcArbitraryOpenProfileDef_WR11: @staticmethod def __call__(self): - assert ('ifc4x3_add2.ifccenterlineprofiledef' in typeof(self) or getattr(self, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False + assert ('ifc4x3_add2.ifccenterlineprofiledef' in typeof(self) or express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False class IfcArbitraryOpenProfileDef_WR12: SCOPE = 'entity' @@ -5628,8 +5638,8 @@ class IfcArbitraryOpenProfileDef_WR12: @staticmethod def __call__(self): - curve = getattr(self, 'Curve', INDETERMINATE) - assert (getattr(curve, 'Dim', INDETERMINATE) == 2) is not False + curve = express_getattr(self, 'Curve', INDETERMINATE) + assert (express_getattr(curve, 'Dim', INDETERMINATE) == 2) is not False class IfcArbitraryProfileDefWithVoids_WR1: SCOPE = 'entity' @@ -5638,7 +5648,7 @@ class IfcArbitraryProfileDefWithVoids_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'ProfileType', INDETERMINATE) == area) is not False + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == area) is not False class IfcArbitraryProfileDefWithVoids_WR2: SCOPE = 'entity' @@ -5647,8 +5657,8 @@ class IfcArbitraryProfileDefWithVoids_WR2: @staticmethod def __call__(self): - innercurves = getattr(self, 'InnerCurves', INDETERMINATE) - assert (sizeof([temp for temp in innercurves if getattr(temp, 'Dim', INDETERMINATE) != 2]) == 0) is not False + innercurves = express_getattr(self, 'InnerCurves', INDETERMINATE) + assert (sizeof([temp for temp in innercurves if express_getattr(temp, 'Dim', INDETERMINATE) != 2]) == 0) is not False class IfcArbitraryProfileDefWithVoids_WR3: SCOPE = 'entity' @@ -5657,7 +5667,7 @@ class IfcArbitraryProfileDefWithVoids_WR3: @staticmethod def __call__(self): - innercurves = getattr(self, 'InnerCurves', INDETERMINATE) + innercurves = express_getattr(self, 'InnerCurves', INDETERMINATE) assert (sizeof([temp for temp in innercurves if 'ifc4x3_add2.ifcline' in typeof(temp)]) == 0) is not False class IfcAsymmetricIShapeProfileDef_ValidBottomFilletRadius: @@ -5667,9 +5677,9 @@ class IfcAsymmetricIShapeProfileDef_ValidBottomFilletRadius: @staticmethod def __call__(self): - bottomflangewidth = getattr(self, 'BottomFlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - bottomflangefilletradius = getattr(self, 'BottomFlangeFilletRadius', INDETERMINATE) + bottomflangewidth = express_getattr(self, 'BottomFlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + bottomflangefilletradius = express_getattr(self, 'BottomFlangeFilletRadius', INDETERMINATE) assert (not exists(bottomflangefilletradius) or bottomflangefilletradius <= (bottomflangewidth - webthickness) / 2.0) is not False class IfcAsymmetricIShapeProfileDef_ValidFlangeThickness: @@ -5679,9 +5689,9 @@ class IfcAsymmetricIShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - bottomflangethickness = getattr(self, 'BottomFlangeThickness', INDETERMINATE) - topflangethickness = getattr(self, 'TopFlangeThickness', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + bottomflangethickness = express_getattr(self, 'BottomFlangeThickness', INDETERMINATE) + topflangethickness = express_getattr(self, 'TopFlangeThickness', INDETERMINATE) assert (not exists(topflangethickness) or bottomflangethickness + topflangethickness < overalldepth) is not False class IfcAsymmetricIShapeProfileDef_ValidTopFilletRadius: @@ -5691,9 +5701,9 @@ class IfcAsymmetricIShapeProfileDef_ValidTopFilletRadius: @staticmethod def __call__(self): - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - topflangewidth = getattr(self, 'TopFlangeWidth', INDETERMINATE) - topflangefilletradius = getattr(self, 'TopFlangeFilletRadius', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + topflangewidth = express_getattr(self, 'TopFlangeWidth', INDETERMINATE) + topflangefilletradius = express_getattr(self, 'TopFlangeFilletRadius', INDETERMINATE) assert (not exists(topflangefilletradius) or topflangefilletradius <= (topflangewidth - webthickness) / 2.0) is not False class IfcAsymmetricIShapeProfileDef_ValidWebThickness: @@ -5703,9 +5713,9 @@ class IfcAsymmetricIShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - bottomflangewidth = getattr(self, 'BottomFlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - topflangewidth = getattr(self, 'TopFlangeWidth', INDETERMINATE) + bottomflangewidth = express_getattr(self, 'BottomFlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + topflangewidth = express_getattr(self, 'TopFlangeWidth', INDETERMINATE) assert (webthickness < bottomflangewidth and webthickness < topflangewidth) is not False class IfcAudioVisualAppliance_CorrectPredefinedType: @@ -5715,8 +5725,8 @@ class IfcAudioVisualAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAudioVisualAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -5725,8 +5735,8 @@ class IfcAudioVisualAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcaudiovisualappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcaudiovisualappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAudioVisualApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -5735,8 +5745,8 @@ class IfcAudioVisualApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAxis1Placement_AxisIs3D: SCOPE = 'entity' @@ -5745,8 +5755,8 @@ class IfcAxis1Placement_AxisIs3D: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (not exists(axis) or getattr(axis, 'Dim', INDETERMINATE) == 3) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (not exists(axis) or express_getattr(axis, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis1Placement_LocationIs3D: SCOPE = 'entity' @@ -5755,7 +5765,7 @@ class IfcAxis1Placement_LocationIs3D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcAxis1Placement_LocationIsCP: SCOPE = 'entity' @@ -5764,10 +5774,10 @@ class IfcAxis1Placement_LocationIsCP: @staticmethod def __call__(self): - assert ('ifc4x3_add2.ifccartesianpoint' in typeof(getattr(self, 'Location', INDETERMINATE))) is not False + assert ('ifc4x3_add2.ifccartesianpoint' in typeof(express_getattr(self, 'Location', INDETERMINATE))) is not False def calc_IfcAxis1Placement_Z(self): - axis = getattr(self, 'Axis', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) return nvl(IfcNormalise(axis), IfcDirection(DirectionRatios=[0.0, 0.0, 1.0])) class IfcAxis2Placement2D_LocationIs2D: @@ -5777,7 +5787,7 @@ class IfcAxis2Placement2D_LocationIs2D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False class IfcAxis2Placement2D_LocationIsCP: SCOPE = 'entity' @@ -5786,7 +5796,7 @@ class IfcAxis2Placement2D_LocationIsCP: @staticmethod def __call__(self): - assert ('ifc4x3_add2.ifccartesianpoint' in typeof(getattr(self, 'Location', INDETERMINATE))) is not False + assert ('ifc4x3_add2.ifccartesianpoint' in typeof(express_getattr(self, 'Location', INDETERMINATE))) is not False class IfcAxis2Placement2D_RefDirIs2D: SCOPE = 'entity' @@ -5795,11 +5805,11 @@ class IfcAxis2Placement2D_RefDirIs2D: @staticmethod def __call__(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(refdirection) or getattr(refdirection, 'Dim', INDETERMINATE) == 2) is not False + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(refdirection) or express_getattr(refdirection, 'Dim', INDETERMINATE) == 2) is not False def calc_IfcAxis2Placement2D_P(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) return IfcBuild2Axes(refdirection) class IfcAxis2Placement3D_AxisAndRefDirProvision: @@ -5809,8 +5819,8 @@ class IfcAxis2Placement3D_AxisAndRefDirProvision: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) assert (not exists(axis) ^ exists(refdirection)) is not False class IfcAxis2Placement3D_AxisIs3D: @@ -5820,8 +5830,8 @@ class IfcAxis2Placement3D_AxisIs3D: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (not exists(axis) or getattr(axis, 'Dim', INDETERMINATE) == 3) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (not exists(axis) or express_getattr(axis, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_AxisToRefDirPosition: SCOPE = 'entity' @@ -5830,9 +5840,9 @@ class IfcAxis2Placement3D_AxisToRefDirPosition: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(axis) or not exists(refdirection) or getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(axis) or not exists(refdirection) or express_getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False class IfcAxis2Placement3D_LocationIs3D: SCOPE = 'entity' @@ -5841,7 +5851,7 @@ class IfcAxis2Placement3D_LocationIs3D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_LocationIsCP: SCOPE = 'entity' @@ -5850,7 +5860,7 @@ class IfcAxis2Placement3D_LocationIsCP: @staticmethod def __call__(self): - assert ('ifc4x3_add2.ifccartesianpoint' in typeof(getattr(self, 'Location', INDETERMINATE))) is not False + assert ('ifc4x3_add2.ifccartesianpoint' in typeof(express_getattr(self, 'Location', INDETERMINATE))) is not False class IfcAxis2Placement3D_RefDirIs3D: SCOPE = 'entity' @@ -5859,12 +5869,12 @@ class IfcAxis2Placement3D_RefDirIs3D: @staticmethod def __call__(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(refdirection) or getattr(refdirection, 'Dim', INDETERMINATE) == 3) is not False + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(refdirection) or express_getattr(refdirection, 'Dim', INDETERMINATE) == 3) is not False def calc_IfcAxis2Placement3D_P(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) return IfcBuildAxes(axis, refdirection) class IfcAxis2PlacementLinear_WR1: @@ -5874,7 +5884,7 @@ class IfcAxis2PlacementLinear_WR1: @staticmethod def __call__(self): - assert ('ifc4x3_add2.ifcpointbydistanceexpression' in typeof(getattr(self, 'Location', INDETERMINATE))) is not False + assert ('ifc4x3_add2.ifcpointbydistanceexpression' in typeof(express_getattr(self, 'Location', INDETERMINATE))) is not False class IfcAxis2PlacementLinear_WR2: SCOPE = 'entity' @@ -5883,9 +5893,9 @@ class IfcAxis2PlacementLinear_WR2: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(axis) or not exists(refdirection) or getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(axis) or not exists(refdirection) or express_getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False class IfcBSplineCurve_SameDim: SCOPE = 'entity' @@ -5894,16 +5904,16 @@ class IfcBSplineCurve_SameDim: @staticmethod def __call__(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - assert (sizeof([temp for temp in controlpointslist if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + assert (sizeof([temp for temp in controlpointslist if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcBSplineCurve_UpperIndexOnControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(controlpointslist) - 1 def calc_IfcBSplineCurve_ControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - upperindexoncontrolpoints = getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + upperindexoncontrolpoints = express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) return IfcListToArray(controlpointslist, 0, upperindexoncontrolpoints) class IfcBSplineCurveWithKnots_ConsistentBSpline: @@ -5913,11 +5923,11 @@ class IfcBSplineCurveWithKnots_ConsistentBSpline: @staticmethod def __call__(self): - degree = getattr(self, 'Degree', INDETERMINATE) - upperindexoncontrolpoints = getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) - knotmultiplicities = getattr(self, 'KnotMultiplicities', INDETERMINATE) - knots = getattr(self, 'Knots', INDETERMINATE) - upperindexonknots = getattr(self, 'UpperIndexOnKnots', INDETERMINATE) + degree = express_getattr(self, 'Degree', INDETERMINATE) + upperindexoncontrolpoints = express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) + knotmultiplicities = express_getattr(self, 'KnotMultiplicities', INDETERMINATE) + knots = express_getattr(self, 'Knots', INDETERMINATE) + upperindexonknots = express_getattr(self, 'UpperIndexOnKnots', INDETERMINATE) assert IfcConstraintsParamBSpline(degree, upperindexonknots, upperindexoncontrolpoints, knotmultiplicities, knots) is not False class IfcBSplineCurveWithKnots_CorrespondingKnotLists: @@ -5927,26 +5937,26 @@ class IfcBSplineCurveWithKnots_CorrespondingKnotLists: @staticmethod def __call__(self): - knotmultiplicities = getattr(self, 'KnotMultiplicities', INDETERMINATE) - upperindexonknots = getattr(self, 'UpperIndexOnKnots', INDETERMINATE) + knotmultiplicities = express_getattr(self, 'KnotMultiplicities', INDETERMINATE) + upperindexonknots = express_getattr(self, 'UpperIndexOnKnots', INDETERMINATE) assert (sizeof(knotmultiplicities) == upperindexonknots) is not False def calc_IfcBSplineCurveWithKnots_UpperIndexOnKnots(self): - knots = getattr(self, 'Knots', INDETERMINATE) + knots = express_getattr(self, 'Knots', INDETERMINATE) return sizeof(knots) def calc_IfcBSplineSurface_UUpper(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(controlpointslist) - 1 def calc_IfcBSplineSurface_VUpper(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) - 1 def calc_IfcBSplineSurface_ControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - uupper = getattr(self, 'UUpper', INDETERMINATE) - vupper = getattr(self, 'VUpper', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + uupper = express_getattr(self, 'UUpper', INDETERMINATE) + vupper = express_getattr(self, 'VUpper', INDETERMINATE) return IfcMakeArrayOfArray(controlpointslist, 0, uupper, 0, vupper) class IfcBSplineSurfaceWithKnots_CorrespondingULists: @@ -5956,8 +5966,8 @@ class IfcBSplineSurfaceWithKnots_CorrespondingULists: @staticmethod def __call__(self): - umultiplicities = getattr(self, 'UMultiplicities', INDETERMINATE) - knotuupper = getattr(self, 'KnotUUpper', INDETERMINATE) + umultiplicities = express_getattr(self, 'UMultiplicities', INDETERMINATE) + knotuupper = express_getattr(self, 'KnotUUpper', INDETERMINATE) assert (sizeof(umultiplicities) == knotuupper) is not False class IfcBSplineSurfaceWithKnots_CorrespondingVLists: @@ -5967,8 +5977,8 @@ class IfcBSplineSurfaceWithKnots_CorrespondingVLists: @staticmethod def __call__(self): - vmultiplicities = getattr(self, 'VMultiplicities', INDETERMINATE) - knotvupper = getattr(self, 'KnotVUpper', INDETERMINATE) + vmultiplicities = express_getattr(self, 'VMultiplicities', INDETERMINATE) + knotvupper = express_getattr(self, 'KnotVUpper', INDETERMINATE) assert (sizeof(vmultiplicities) == knotvupper) is not False class IfcBSplineSurfaceWithKnots_UDirectionConstraints: @@ -5978,10 +5988,10 @@ class IfcBSplineSurfaceWithKnots_UDirectionConstraints: @staticmethod def __call__(self): - umultiplicities = getattr(self, 'UMultiplicities', INDETERMINATE) - uknots = getattr(self, 'UKnots', INDETERMINATE) - knotuupper = getattr(self, 'KnotUUpper', INDETERMINATE) - assert IfcConstraintsParamBSpline(getattr(self, 'UDegree', INDETERMINATE), knotuupper, getattr(self, 'UUpper', INDETERMINATE), umultiplicities, uknots) is not False + umultiplicities = express_getattr(self, 'UMultiplicities', INDETERMINATE) + uknots = express_getattr(self, 'UKnots', INDETERMINATE) + knotuupper = express_getattr(self, 'KnotUUpper', INDETERMINATE) + assert IfcConstraintsParamBSpline(express_getattr(self, 'UDegree', INDETERMINATE), knotuupper, express_getattr(self, 'UUpper', INDETERMINATE), umultiplicities, uknots) is not False class IfcBSplineSurfaceWithKnots_VDirectionConstraints: SCOPE = 'entity' @@ -5990,17 +6000,17 @@ class IfcBSplineSurfaceWithKnots_VDirectionConstraints: @staticmethod def __call__(self): - vmultiplicities = getattr(self, 'VMultiplicities', INDETERMINATE) - vknots = getattr(self, 'VKnots', INDETERMINATE) - knotvupper = getattr(self, 'KnotVUpper', INDETERMINATE) - assert IfcConstraintsParamBSpline(getattr(self, 'VDegree', INDETERMINATE), knotvupper, getattr(self, 'VUpper', INDETERMINATE), vmultiplicities, vknots) is not False + vmultiplicities = express_getattr(self, 'VMultiplicities', INDETERMINATE) + vknots = express_getattr(self, 'VKnots', INDETERMINATE) + knotvupper = express_getattr(self, 'KnotVUpper', INDETERMINATE) + assert IfcConstraintsParamBSpline(express_getattr(self, 'VDegree', INDETERMINATE), knotvupper, express_getattr(self, 'VUpper', INDETERMINATE), vmultiplicities, vknots) is not False def calc_IfcBSplineSurfaceWithKnots_KnotVUpper(self): - vknots = getattr(self, 'VKnots', INDETERMINATE) + vknots = express_getattr(self, 'VKnots', INDETERMINATE) return sizeof(vknots) def calc_IfcBSplineSurfaceWithKnots_KnotUUpper(self): - uknots = getattr(self, 'UKnots', INDETERMINATE) + uknots = express_getattr(self, 'UKnots', INDETERMINATE) return sizeof(uknots) class IfcBeam_CorrectPredefinedType: @@ -6010,8 +6020,8 @@ class IfcBeam_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBeam_CorrectTypeAssigned: SCOPE = 'entity' @@ -6020,8 +6030,8 @@ class IfcBeam_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcbeamtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcbeamtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBeamType_CorrectPredefinedType: SCOPE = 'entity' @@ -6030,8 +6040,8 @@ class IfcBeamType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBearing_CorrectPredefinedType: SCOPE = 'entity' @@ -6040,8 +6050,8 @@ class IfcBearing_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBearing_CorrectTypeAssigned: SCOPE = 'entity' @@ -6050,8 +6060,8 @@ class IfcBearing_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcbearingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcbearingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBearingType_CorrectPredefinedType: SCOPE = 'entity' @@ -6060,8 +6070,8 @@ class IfcBearingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBlobTexture_RasterCodeByteStream: SCOPE = 'entity' @@ -6070,7 +6080,7 @@ class IfcBlobTexture_RasterCodeByteStream: @staticmethod def __call__(self): - rastercode = getattr(self, 'RasterCode', INDETERMINATE) + rastercode = express_getattr(self, 'RasterCode', INDETERMINATE) assert (blength(rastercode) % 8 == 0) is not False class IfcBlobTexture_SupportedRasterFormat: @@ -6080,7 +6090,7 @@ class IfcBlobTexture_SupportedRasterFormat: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['bmp', 'jpg', 'gif', 'png']) is not False + assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['bmp', 'jpg', 'gif', 'png']) is not False class IfcBoiler_CorrectPredefinedType: SCOPE = 'entity' @@ -6089,8 +6099,8 @@ class IfcBoiler_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBoiler_CorrectTypeAssigned: SCOPE = 'entity' @@ -6099,8 +6109,8 @@ class IfcBoiler_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcboilertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcboilertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBoilerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6109,8 +6119,8 @@ class IfcBoilerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBooleanClippingResult_FirstOperandType: SCOPE = 'entity' @@ -6119,7 +6129,7 @@ class IfcBooleanClippingResult_FirstOperandType: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) assert ('ifc4x3_add2.ifcsweptareasolid' in typeof(firstoperand) or 'ifc4x3_add2.ifcsweptdiscsolid' in typeof(firstoperand) or 'ifc4x3_add2.ifcbooleanclippingresult' in typeof(firstoperand)) is not False class IfcBooleanClippingResult_OperatorType: @@ -6129,7 +6139,7 @@ class IfcBooleanClippingResult_OperatorType: @staticmethod def __call__(self): - operator = getattr(self, 'Operator', INDETERMINATE) + operator = express_getattr(self, 'Operator', INDETERMINATE) assert (operator == difference) is not False class IfcBooleanClippingResult_SecondOperandType: @@ -6139,7 +6149,7 @@ class IfcBooleanClippingResult_SecondOperandType: @staticmethod def __call__(self): - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) assert ('ifc4x3_add2.ifchalfspacesolid' in typeof(secondoperand)) is not False class IfcBooleanResult_FirstOperandClosed: @@ -6149,8 +6159,8 @@ class IfcBooleanResult_FirstOperandClosed: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - assert (not 'ifc4x3_add2.ifctessellatedfaceset' in typeof(firstoperand) or (exists(getattr(firstoperand, 'Closed', INDETERMINATE)) and getattr(firstoperand, 'Closed', INDETERMINATE))) is not False + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + assert (not 'ifc4x3_add2.ifctessellatedfaceset' in typeof(firstoperand) or (exists(express_getattr(firstoperand, 'Closed', INDETERMINATE)) and express_getattr(firstoperand, 'Closed', INDETERMINATE))) is not False class IfcBooleanResult_SameDim: SCOPE = 'entity' @@ -6159,9 +6169,9 @@ class IfcBooleanResult_SameDim: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) - assert (getattr(firstoperand, 'Dim', INDETERMINATE) == getattr(secondoperand, 'Dim', INDETERMINATE)) is not False + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) + assert (express_getattr(firstoperand, 'Dim', INDETERMINATE) == express_getattr(secondoperand, 'Dim', INDETERMINATE)) is not False class IfcBooleanResult_SecondOperandClosed: SCOPE = 'entity' @@ -6170,12 +6180,12 @@ class IfcBooleanResult_SecondOperandClosed: @staticmethod def __call__(self): - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) - assert (not 'ifc4x3_add2.ifctessellatedfaceset' in typeof(secondoperand) or (exists(getattr(secondoperand, 'Closed', INDETERMINATE)) and getattr(secondoperand, 'Closed', INDETERMINATE))) is not False + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) + assert (not 'ifc4x3_add2.ifctessellatedfaceset' in typeof(secondoperand) or (exists(express_getattr(secondoperand, 'Closed', INDETERMINATE)) and express_getattr(secondoperand, 'Closed', INDETERMINATE))) is not False def calc_IfcBooleanResult_Dim(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - return getattr(firstoperand, 'Dim', INDETERMINATE) + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + return express_getattr(firstoperand, 'Dim', INDETERMINATE) class IfcBoundaryCurve_IsClosed: SCOPE = 'entity' @@ -6184,7 +6194,7 @@ class IfcBoundaryCurve_IsClosed: @staticmethod def __call__(self): - assert getattr(self, 'ClosedCurve', INDETERMINATE) is not False + assert express_getattr(self, 'ClosedCurve', INDETERMINATE) is not False def calc_IfcBoundingBox_Dim(self): return 3 @@ -6196,7 +6206,7 @@ class IfcBoxedHalfSpace_UnboundedSurface: @staticmethod def __call__(self): - assert (not 'ifc4x3_add2.ifccurveboundedplane' in typeof(getattr(self, 'BaseSurface', INDETERMINATE))) is not False + assert (not 'ifc4x3_add2.ifccurveboundedplane' in typeof(express_getattr(self, 'BaseSurface', INDETERMINATE))) is not False class IfcBridge_CorrectPredefinedType: SCOPE = 'entity' @@ -6205,8 +6215,8 @@ class IfcBridge_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBridgePart_CorrectPredefinedType: SCOPE = 'entity' @@ -6215,8 +6225,8 @@ class IfcBridgePart_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuildingElementPart_CorrectPredefinedType: SCOPE = 'entity' @@ -6225,8 +6235,8 @@ class IfcBuildingElementPart_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuildingElementPart_CorrectTypeAssigned: SCOPE = 'entity' @@ -6235,8 +6245,8 @@ class IfcBuildingElementPart_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcbuildingelementparttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcbuildingelementparttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBuildingElementPartType_CorrectPredefinedType: SCOPE = 'entity' @@ -6245,8 +6255,8 @@ class IfcBuildingElementPartType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBuildingElementProxy_CorrectPredefinedType: SCOPE = 'entity' @@ -6255,8 +6265,8 @@ class IfcBuildingElementProxy_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuildingElementProxy_CorrectTypeAssigned: SCOPE = 'entity' @@ -6265,8 +6275,8 @@ class IfcBuildingElementProxy_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcbuildingelementproxytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcbuildingelementproxytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBuildingElementProxy_HasObjectName: SCOPE = 'entity' @@ -6275,7 +6285,7 @@ class IfcBuildingElementProxy_HasObjectName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcBuildingElementProxyType_CorrectPredefinedType: SCOPE = 'entity' @@ -6284,8 +6294,8 @@ class IfcBuildingElementProxyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBuildingSystem_CorrectPredefinedType: SCOPE = 'entity' @@ -6294,8 +6304,8 @@ class IfcBuildingSystem_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuiltElement_MaxOneMaterialAssociation: SCOPE = 'entity' @@ -6304,7 +6314,7 @@ class IfcBuiltElement_MaxOneMaterialAssociation: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'HasAssociations', INDETERMINATE) if 'ifc4x3_add2.ifcrelassociatesmaterial' in typeof(temp)]) <= 1) is not False + assert (sizeof([temp for temp in express_getattr(self, 'HasAssociations', INDETERMINATE) if 'ifc4x3_add2.ifcrelassociatesmaterial' in typeof(temp)]) <= 1) is not False class IfcBuiltSystem_CorrectPredefinedType: SCOPE = 'entity' @@ -6313,8 +6323,8 @@ class IfcBuiltSystem_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBurner_CorrectPredefinedType: SCOPE = 'entity' @@ -6323,8 +6333,8 @@ class IfcBurner_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBurner_CorrectTypeAssigned: SCOPE = 'entity' @@ -6333,8 +6343,8 @@ class IfcBurner_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcburnertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcburnertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBurnerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6343,8 +6353,8 @@ class IfcBurnerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCShapeProfileDef_ValidGirth: SCOPE = 'entity' @@ -6353,8 +6363,8 @@ class IfcCShapeProfileDef_ValidGirth: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - girth = getattr(self, 'Girth', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + girth = express_getattr(self, 'Girth', INDETERMINATE) assert (girth < depth / 2.0) is not False class IfcCShapeProfileDef_ValidInternalFilletRadius: @@ -6364,10 +6374,10 @@ class IfcCShapeProfileDef_ValidInternalFilletRadius: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - internalfilletradius = getattr(self, 'InternalFilletRadius', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + internalfilletradius = express_getattr(self, 'InternalFilletRadius', INDETERMINATE) assert (not exists(internalfilletradius) or (internalfilletradius <= width / 2.0 - wallthickness and internalfilletradius <= depth / 2.0 - wallthickness)) is not False class IfcCShapeProfileDef_ValidWallThickness: @@ -6377,9 +6387,9 @@ class IfcCShapeProfileDef_ValidWallThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) assert (wallthickness < width / 2.0 and wallthickness < depth / 2.0) is not False class IfcCableCarrierFitting_CorrectPredefinedType: @@ -6389,8 +6399,8 @@ class IfcCableCarrierFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableCarrierFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -6399,8 +6409,8 @@ class IfcCableCarrierFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccablecarrierfittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccablecarrierfittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableCarrierFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -6409,8 +6419,8 @@ class IfcCableCarrierFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableCarrierSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -6419,8 +6429,8 @@ class IfcCableCarrierSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableCarrierSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -6429,8 +6439,8 @@ class IfcCableCarrierSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccablecarriersegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccablecarriersegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableCarrierSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -6439,8 +6449,8 @@ class IfcCableCarrierSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -6449,8 +6459,8 @@ class IfcCableFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -6459,8 +6469,8 @@ class IfcCableFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccablefittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccablefittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -6469,8 +6479,8 @@ class IfcCableFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -6479,8 +6489,8 @@ class IfcCableSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -6489,8 +6499,8 @@ class IfcCableSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccablesegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccablesegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -6499,8 +6509,8 @@ class IfcCableSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCaissonFoundation_CorrectPredefinedType: SCOPE = 'entity' @@ -6509,8 +6519,8 @@ class IfcCaissonFoundation_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCaissonFoundation_CorrectTypeAssigned: SCOPE = 'entity' @@ -6519,8 +6529,8 @@ class IfcCaissonFoundation_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccaissonfoundationtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccaissonfoundationtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCaissonFoundationType_CorrectPredefinedType: SCOPE = 'entity' @@ -6529,8 +6539,8 @@ class IfcCaissonFoundationType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCartesianPoint_CP2Dor3D: SCOPE = 'entity' @@ -6539,7 +6549,7 @@ class IfcCartesianPoint_CP2Dor3D: @staticmethod def __call__(self): - coordinates = getattr(self, 'Coordinates', INDETERMINATE) + coordinates = express_getattr(self, 'Coordinates', INDETERMINATE) assert (hiindex(coordinates) >= 2) is not False def calc_IfcCartesianPointList_Dim(self): @@ -6552,16 +6562,16 @@ class IfcCartesianTransformationOperator_ScaleGreaterZero: @staticmethod def __call__(self): - scl = getattr(self, 'Scl', INDETERMINATE) + scl = express_getattr(self, 'Scl', INDETERMINATE) assert (scl > 0.0) is not False def calc_IfcCartesianTransformationOperator_Scl(self): - scale = getattr(self, 'Scale', INDETERMINATE) + scale = express_getattr(self, 'Scale', INDETERMINATE) return nvl(scale, 1.0) def calc_IfcCartesianTransformationOperator_Dim(self): - localorigin = getattr(self, 'LocalOrigin', INDETERMINATE) - return getattr(localorigin, 'Dim', INDETERMINATE) + localorigin = express_getattr(self, 'LocalOrigin', INDETERMINATE) + return express_getattr(localorigin, 'Dim', INDETERMINATE) class IfcCartesianTransformationOperator2D_Axis1Is2D: SCOPE = 'entity' @@ -6570,7 +6580,7 @@ class IfcCartesianTransformationOperator2D_Axis1Is2D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis1', INDETERMINATE)) or getattr(getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (not exists(express_getattr(self, 'Axis1', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False class IfcCartesianTransformationOperator2D_Axis2Is2D: SCOPE = 'entity' @@ -6579,7 +6589,7 @@ class IfcCartesianTransformationOperator2D_Axis2Is2D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis2', INDETERMINATE)) or getattr(getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (not exists(express_getattr(self, 'Axis2', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False class IfcCartesianTransformationOperator2D_DimEqual2: SCOPE = 'entity' @@ -6588,10 +6598,10 @@ class IfcCartesianTransformationOperator2D_DimEqual2: @staticmethod def __call__(self): - assert (getattr(self, 'Dim', INDETERMINATE) == 2) is not False + assert (express_getattr(self, 'Dim', INDETERMINATE) == 2) is not False def calc_IfcCartesianTransformationOperator2D_U(self): - return IfcBaseAxis(2, getattr(self, 'Axis1', INDETERMINATE), getattr(self, 'Axis2', INDETERMINATE), None) + return IfcBaseAxis(2, express_getattr(self, 'Axis1', INDETERMINATE), express_getattr(self, 'Axis2', INDETERMINATE), None) class IfcCartesianTransformationOperator2DnonUniform_Scale2GreaterZero: SCOPE = 'entity' @@ -6600,12 +6610,12 @@ class IfcCartesianTransformationOperator2DnonUniform_Scale2GreaterZero: @staticmethod def __call__(self): - scl2 = getattr(self, 'Scl2', INDETERMINATE) + scl2 = express_getattr(self, 'Scl2', INDETERMINATE) assert (scl2 > 0.0) is not False def calc_IfcCartesianTransformationOperator2DnonUniform_Scl2(self): - scale2 = getattr(self, 'Scale2', INDETERMINATE) - return nvl(scale2, getattr(self, 'Scl', INDETERMINATE)) + scale2 = express_getattr(self, 'Scale2', INDETERMINATE) + return nvl(scale2, express_getattr(self, 'Scl', INDETERMINATE)) class IfcCartesianTransformationOperator3D_Axis1Is3D: SCOPE = 'entity' @@ -6614,7 +6624,7 @@ class IfcCartesianTransformationOperator3D_Axis1Is3D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis1', INDETERMINATE)) or getattr(getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (not exists(express_getattr(self, 'Axis1', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_Axis2Is3D: SCOPE = 'entity' @@ -6623,7 +6633,7 @@ class IfcCartesianTransformationOperator3D_Axis2Is3D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis2', INDETERMINATE)) or getattr(getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (not exists(express_getattr(self, 'Axis2', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_Axis3Is3D: SCOPE = 'entity' @@ -6632,8 +6642,8 @@ class IfcCartesianTransformationOperator3D_Axis3Is3D: @staticmethod def __call__(self): - axis3 = getattr(self, 'Axis3', INDETERMINATE) - assert (not exists(axis3) or getattr(axis3, 'Dim', INDETERMINATE) == 3) is not False + axis3 = express_getattr(self, 'Axis3', INDETERMINATE) + assert (not exists(axis3) or express_getattr(axis3, 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_DimIs3D: SCOPE = 'entity' @@ -6642,11 +6652,11 @@ class IfcCartesianTransformationOperator3D_DimIs3D: @staticmethod def __call__(self): - assert (getattr(self, 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(self, 'Dim', INDETERMINATE) == 3) is not False def calc_IfcCartesianTransformationOperator3D_U(self): - axis3 = getattr(self, 'Axis3', INDETERMINATE) - return IfcBaseAxis(3, getattr(self, 'Axis1', INDETERMINATE), getattr(self, 'Axis2', INDETERMINATE), axis3) + axis3 = express_getattr(self, 'Axis3', INDETERMINATE) + return IfcBaseAxis(3, express_getattr(self, 'Axis1', INDETERMINATE), express_getattr(self, 'Axis2', INDETERMINATE), axis3) class IfcCartesianTransformationOperator3DnonUniform_Scale2GreaterZero: SCOPE = 'entity' @@ -6655,7 +6665,7 @@ class IfcCartesianTransformationOperator3DnonUniform_Scale2GreaterZero: @staticmethod def __call__(self): - scl2 = getattr(self, 'Scl2', INDETERMINATE) + scl2 = express_getattr(self, 'Scl2', INDETERMINATE) assert (scl2 > 0.0) is not False class IfcCartesianTransformationOperator3DnonUniform_Scale3GreaterZero: @@ -6665,16 +6675,16 @@ class IfcCartesianTransformationOperator3DnonUniform_Scale3GreaterZero: @staticmethod def __call__(self): - scl3 = getattr(self, 'Scl3', INDETERMINATE) + scl3 = express_getattr(self, 'Scl3', INDETERMINATE) assert (scl3 > 0.0) is not False def calc_IfcCartesianTransformationOperator3DnonUniform_Scl2(self): - scale2 = getattr(self, 'Scale2', INDETERMINATE) - return nvl(scale2, getattr(self, 'Scl', INDETERMINATE)) + scale2 = express_getattr(self, 'Scale2', INDETERMINATE) + return nvl(scale2, express_getattr(self, 'Scl', INDETERMINATE)) def calc_IfcCartesianTransformationOperator3DnonUniform_Scl3(self): - scale3 = getattr(self, 'Scale3', INDETERMINATE) - return nvl(scale3, getattr(self, 'Scl', INDETERMINATE)) + scale3 = express_getattr(self, 'Scale3', INDETERMINATE) + return nvl(scale3, express_getattr(self, 'Scl', INDETERMINATE)) class IfcChiller_CorrectPredefinedType: SCOPE = 'entity' @@ -6683,8 +6693,8 @@ class IfcChiller_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcChiller_CorrectTypeAssigned: SCOPE = 'entity' @@ -6693,8 +6703,8 @@ class IfcChiller_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcchillertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcchillertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcChillerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6703,8 +6713,8 @@ class IfcChillerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcChimney_CorrectPredefinedType: SCOPE = 'entity' @@ -6713,8 +6723,8 @@ class IfcChimney_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcChimney_CorrectTypeAssigned: SCOPE = 'entity' @@ -6723,8 +6733,8 @@ class IfcChimney_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcchimneytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcchimneytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcChimneyType_CorrectPredefinedType: SCOPE = 'entity' @@ -6733,8 +6743,8 @@ class IfcChimneyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCircleHollowProfileDef_WR1: SCOPE = 'entity' @@ -6743,8 +6753,8 @@ class IfcCircleHollowProfileDef_WR1: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - assert (wallthickness < getattr(self, 'Radius', INDETERMINATE)) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + assert (wallthickness < express_getattr(self, 'Radius', INDETERMINATE)) is not False class IfcCoil_CorrectPredefinedType: SCOPE = 'entity' @@ -6753,8 +6763,8 @@ class IfcCoil_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCoil_CorrectTypeAssigned: SCOPE = 'entity' @@ -6763,8 +6773,8 @@ class IfcCoil_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccoiltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccoiltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoilType_CorrectPredefinedType: SCOPE = 'entity' @@ -6773,8 +6783,8 @@ class IfcCoilType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcColumn_CorrectPredefinedType: SCOPE = 'entity' @@ -6783,8 +6793,8 @@ class IfcColumn_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcColumn_CorrectTypeAssigned: SCOPE = 'entity' @@ -6793,8 +6803,8 @@ class IfcColumn_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccolumntype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccolumntype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcColumnType_CorrectPredefinedType: SCOPE = 'entity' @@ -6803,8 +6813,8 @@ class IfcColumnType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCommunicationsAppliance_CorrectPredefinedType: SCOPE = 'entity' @@ -6813,8 +6823,8 @@ class IfcCommunicationsAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCommunicationsAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -6823,8 +6833,8 @@ class IfcCommunicationsAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccommunicationsappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccommunicationsappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCommunicationsApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -6833,8 +6843,8 @@ class IfcCommunicationsApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcComplexProperty_WR21: SCOPE = 'entity' @@ -6843,7 +6853,7 @@ class IfcComplexProperty_WR21: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert (sizeof([temp for temp in hasproperties if self == temp]) == 0) is not False class IfcComplexProperty_WR22: @@ -6853,7 +6863,7 @@ class IfcComplexProperty_WR22: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert IfcUniquePropertyName(hasproperties) is not False class IfcComplexPropertyTemplate_NoSelfReference: @@ -6863,7 +6873,7 @@ class IfcComplexPropertyTemplate_NoSelfReference: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert (sizeof([temp for temp in haspropertytemplates if self == temp]) == 0) is not False class IfcComplexPropertyTemplate_UniquePropertyNames: @@ -6873,7 +6883,7 @@ class IfcComplexPropertyTemplate_UniquePropertyNames: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert IfcUniquePropertyTemplateNames(haspropertytemplates) is not False class IfcCompositeCurve_CurveContinuous: @@ -6883,9 +6893,9 @@ class IfcCompositeCurve_CurveContinuous: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) - closedcurve = getattr(self, 'ClosedCurve', INDETERMINATE) - assert (not closedcurve and sizeof([temp for temp in segments if getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 1 or (closedcurve and sizeof([temp for temp in segments if getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 0)) is not False + segments = express_getattr(self, 'Segments', INDETERMINATE) + closedcurve = express_getattr(self, 'ClosedCurve', INDETERMINATE) + assert (not closedcurve and sizeof([temp for temp in segments if express_getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 1 or (closedcurve and sizeof([temp for temp in segments if express_getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 0)) is not False class IfcCompositeCurve_SameDim: SCOPE = 'entity' @@ -6894,17 +6904,17 @@ class IfcCompositeCurve_SameDim: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) - assert (sizeof([temp for temp in segments if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(segments, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + segments = express_getattr(self, 'Segments', INDETERMINATE) + assert (sizeof([temp for temp in segments if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(segments, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcCompositeCurve_NSegments(self): - segments = getattr(self, 'Segments', INDETERMINATE) + segments = express_getattr(self, 'Segments', INDETERMINATE) return sizeof(segments) def calc_IfcCompositeCurve_ClosedCurve(self): - segments = getattr(self, 'Segments', INDETERMINATE) - nsegments = getattr(self, 'NSegments', INDETERMINATE) - return getattr(express_getitem(segments, nsegments - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Transition', INDETERMINATE) != discontinuous + segments = express_getattr(self, 'Segments', INDETERMINATE) + nsegments = express_getattr(self, 'NSegments', INDETERMINATE) + return express_getattr(express_getitem(segments, nsegments - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Transition', INDETERMINATE) != discontinuous class IfcCompositeCurveOnSurface_SameSurface: SCOPE = 'entity' @@ -6913,7 +6923,7 @@ class IfcCompositeCurveOnSurface_SameSurface: @staticmethod def __call__(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) assert (sizeof(basissurface) > 0) is not False def calc_IfcCompositeCurveOnSurface_BasisSurface(self): @@ -6926,7 +6936,7 @@ class IfcCompositeCurveSegment_ParentIsBoundedCurve: @staticmethod def __call__(self): - parentcurve = getattr(self, 'ParentCurve', INDETERMINATE) + parentcurve = express_getattr(self, 'ParentCurve', INDETERMINATE) assert ('ifc4x3_add2.ifcboundedcurve' in typeof(parentcurve)) is not False class IfcCompositeProfileDef_InvariantProfileType: @@ -6936,8 +6946,8 @@ class IfcCompositeProfileDef_InvariantProfileType: @staticmethod def __call__(self): - profiles = getattr(self, 'Profiles', INDETERMINATE) - assert (sizeof([temp for temp in profiles if getattr(temp, 'ProfileType', INDETERMINATE) != getattr(express_getitem(profiles, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE)]) == 0) is not False + profiles = express_getattr(self, 'Profiles', INDETERMINATE) + assert (sizeof([temp for temp in profiles if express_getattr(temp, 'ProfileType', INDETERMINATE) != express_getattr(express_getitem(profiles, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcCompositeProfileDef_NoRecursion: SCOPE = 'entity' @@ -6946,7 +6956,7 @@ class IfcCompositeProfileDef_NoRecursion: @staticmethod def __call__(self): - profiles = getattr(self, 'Profiles', INDETERMINATE) + profiles = express_getattr(self, 'Profiles', INDETERMINATE) assert (sizeof([temp for temp in profiles if 'ifc4x3_add2.ifccompositeprofiledef' in typeof(temp)]) == 0) is not False class IfcCompressor_CorrectPredefinedType: @@ -6956,8 +6966,8 @@ class IfcCompressor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCompressor_CorrectTypeAssigned: SCOPE = 'entity' @@ -6966,8 +6976,8 @@ class IfcCompressor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccompressortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccompressortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCompressorType_CorrectPredefinedType: SCOPE = 'entity' @@ -6976,8 +6986,8 @@ class IfcCompressorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCondenser_CorrectPredefinedType: SCOPE = 'entity' @@ -6986,8 +6996,8 @@ class IfcCondenser_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCondenser_CorrectTypeAssigned: SCOPE = 'entity' @@ -6996,8 +7006,8 @@ class IfcCondenser_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccondensertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccondensertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCondenserType_CorrectPredefinedType: SCOPE = 'entity' @@ -7006,8 +7016,8 @@ class IfcCondenserType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcConstraint_WR11: SCOPE = 'entity' @@ -7016,8 +7026,8 @@ class IfcConstraint_WR11: @staticmethod def __call__(self): - constraintgrade = getattr(self, 'ConstraintGrade', INDETERMINATE) - assert (constraintgrade != getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) or (constraintgrade == getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedGrade', INDETERMINATE)))) is not False + constraintgrade = express_getattr(self, 'ConstraintGrade', INDETERMINATE) + assert (constraintgrade != express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) or (constraintgrade == express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedGrade', INDETERMINATE)))) is not False class IfcConstructionEquipmentResource_CorrectPredefinedType: SCOPE = 'entity' @@ -7026,8 +7036,8 @@ class IfcConstructionEquipmentResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionEquipmentResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7036,8 +7046,8 @@ class IfcConstructionEquipmentResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcConstructionMaterialResource_CorrectPredefinedType: SCOPE = 'entity' @@ -7046,8 +7056,8 @@ class IfcConstructionMaterialResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionMaterialResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7056,8 +7066,8 @@ class IfcConstructionMaterialResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcConstructionProductResource_CorrectPredefinedType: SCOPE = 'entity' @@ -7066,8 +7076,8 @@ class IfcConstructionProductResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionProductResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7076,8 +7086,8 @@ class IfcConstructionProductResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcController_CorrectPredefinedType: SCOPE = 'entity' @@ -7086,8 +7096,8 @@ class IfcController_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcController_CorrectTypeAssigned: SCOPE = 'entity' @@ -7096,8 +7106,8 @@ class IfcController_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccontrollertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccontrollertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcControllerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7106,8 +7116,8 @@ class IfcControllerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcConveyorSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -7116,8 +7126,8 @@ class IfcConveyorSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConveyorSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -7126,8 +7136,8 @@ class IfcConveyorSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcconveyorsegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcconveyorsegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcConveyorSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -7136,8 +7146,8 @@ class IfcConveyorSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCooledBeam_CorrectPredefinedType: SCOPE = 'entity' @@ -7146,8 +7156,8 @@ class IfcCooledBeam_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCooledBeam_CorrectTypeAssigned: SCOPE = 'entity' @@ -7156,8 +7166,8 @@ class IfcCooledBeam_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccooledbeamtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccooledbeamtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCooledBeamType_CorrectPredefinedType: SCOPE = 'entity' @@ -7166,8 +7176,8 @@ class IfcCooledBeamType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCoolingTower_CorrectPredefinedType: SCOPE = 'entity' @@ -7176,8 +7186,8 @@ class IfcCoolingTower_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCoolingTower_CorrectTypeAssigned: SCOPE = 'entity' @@ -7186,8 +7196,8 @@ class IfcCoolingTower_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccoolingtowertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccoolingtowertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoolingTowerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7196,8 +7206,8 @@ class IfcCoolingTowerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCoordinateReferenceSystem_NameOrWKT: SCOPE = 'entity' @@ -7206,8 +7216,8 @@ class IfcCoordinateReferenceSystem_NameOrWKT: @staticmethod def __call__(self): - name = getattr(self, 'Name', INDETERMINATE) - wellknowntext = getattr(self, 'WellKnownText', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) + wellknowntext = express_getattr(self, 'WellKnownText', INDETERMINATE) assert (hiindex(wellknowntext) == 1 or exists(name)) is not False class IfcCourse_CorrectPredefinedType: @@ -7217,8 +7227,8 @@ class IfcCourse_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCourse_CorrectTypeAssigned: SCOPE = 'entity' @@ -7227,8 +7237,8 @@ class IfcCourse_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccoursetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccoursetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCourseType_CorrectPredefinedType: SCOPE = 'entity' @@ -7237,8 +7247,8 @@ class IfcCourseType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCovering_CorrectPredefinedType: SCOPE = 'entity' @@ -7247,8 +7257,8 @@ class IfcCovering_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCovering_CorrectTypeAssigned: SCOPE = 'entity' @@ -7257,8 +7267,8 @@ class IfcCovering_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccoveringtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccoveringtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoveringType_CorrectPredefinedType: SCOPE = 'entity' @@ -7267,8 +7277,8 @@ class IfcCoveringType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCrewResource_CorrectPredefinedType: SCOPE = 'entity' @@ -7277,8 +7287,8 @@ class IfcCrewResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCrewResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7287,8 +7297,8 @@ class IfcCrewResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False def calc_IfcCsgPrimitive3D_Dim(self): return 3 @@ -7300,8 +7310,8 @@ class IfcCurtainWall_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCurtainWall_CorrectTypeAssigned: SCOPE = 'entity' @@ -7310,8 +7320,8 @@ class IfcCurtainWall_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccurtainwalltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifccurtainwalltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCurtainWallType_CorrectPredefinedType: SCOPE = 'entity' @@ -7320,8 +7330,8 @@ class IfcCurtainWallType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcCurve_Dim(self): return IfcCurveDim(self) @@ -7333,9 +7343,9 @@ class IfcCurveStyle_IdentifiableCurveStyle: @staticmethod def __call__(self): - curvefont = getattr(self, 'CurveFont', INDETERMINATE) - curvewidth = getattr(self, 'CurveWidth', INDETERMINATE) - curvecolour = getattr(self, 'CurveColour', INDETERMINATE) + curvefont = express_getattr(self, 'CurveFont', INDETERMINATE) + curvewidth = express_getattr(self, 'CurveWidth', INDETERMINATE) + curvecolour = express_getattr(self, 'CurveColour', INDETERMINATE) assert (exists(curvefont) or exists(curvewidth) or exists(curvecolour)) is not False class IfcCurveStyle_MeasureOfWidth: @@ -7345,7 +7355,7 @@ class IfcCurveStyle_MeasureOfWidth: @staticmethod def __call__(self): - curvewidth = getattr(self, 'CurveWidth', INDETERMINATE) + curvewidth = express_getattr(self, 'CurveWidth', INDETERMINATE) assert (not exists(curvewidth) or 'ifc4x3_add2.ifcpositivelengthmeasure' in typeof(curvewidth) or ('ifc4x3_add2.ifcdescriptivemeasure' in typeof(curvewidth) and curvewidth == 'bylayer')) is not False class IfcCurveStyleFontPattern_VisibleLengthGreaterEqualZero: @@ -7355,7 +7365,7 @@ class IfcCurveStyleFontPattern_VisibleLengthGreaterEqualZero: @staticmethod def __call__(self): - visiblesegmentlength = getattr(self, 'VisibleSegmentLength', INDETERMINATE) + visiblesegmentlength = express_getattr(self, 'VisibleSegmentLength', INDETERMINATE) assert (visiblesegmentlength >= 0.0) is not False class IfcDamper_CorrectPredefinedType: @@ -7365,8 +7375,8 @@ class IfcDamper_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDamper_CorrectTypeAssigned: SCOPE = 'entity' @@ -7375,8 +7385,8 @@ class IfcDamper_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcdampertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcdampertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDamperType_CorrectPredefinedType: SCOPE = 'entity' @@ -7385,8 +7395,8 @@ class IfcDamperType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDeepFoundation_CorrectTypeAssigned: SCOPE = 'entity' @@ -7395,8 +7405,8 @@ class IfcDeepFoundation_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcdeepfoundationtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcdeepfoundationtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDerivedProfileDef_InvariantProfileType: SCOPE = 'entity' @@ -7405,8 +7415,8 @@ class IfcDerivedProfileDef_InvariantProfileType: @staticmethod def __call__(self): - parentprofile = getattr(self, 'ParentProfile', INDETERMINATE) - assert (getattr(self, 'ProfileType', INDETERMINATE) == getattr(parentprofile, 'ProfileType', INDETERMINATE)) is not False + parentprofile = express_getattr(self, 'ParentProfile', INDETERMINATE) + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(parentprofile, 'ProfileType', INDETERMINATE)) is not False class IfcDerivedUnit_WR1: SCOPE = 'entity' @@ -7415,8 +7425,8 @@ class IfcDerivedUnit_WR1: @staticmethod def __call__(self): - elements = getattr(self, 'Elements', INDETERMINATE) - assert (sizeof(elements) > 1 or (sizeof(elements) == 1 and getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) != 1)) is not False + elements = express_getattr(self, 'Elements', INDETERMINATE) + assert (sizeof(elements) > 1 or (sizeof(elements) == 1 and express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) != 1)) is not False class IfcDerivedUnit_WR2: SCOPE = 'entity' @@ -7425,11 +7435,11 @@ class IfcDerivedUnit_WR2: @staticmethod def __call__(self): - unittype = getattr(self, 'UnitType', INDETERMINATE) - assert (unittype != getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) or (unittype == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedType', INDETERMINATE)))) is not False + unittype = express_getattr(self, 'UnitType', INDETERMINATE) + assert (unittype != express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) or (unittype == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedType', INDETERMINATE)))) is not False def calc_IfcDerivedUnit_Dimensions(self): - elements = getattr(self, 'Elements', INDETERMINATE) + elements = express_getattr(self, 'Elements', INDETERMINATE) return IfcDeriveDimensionalExponents(elements) class IfcDirection_MagnitudeGreaterZero: @@ -7439,11 +7449,11 @@ class IfcDirection_MagnitudeGreaterZero: @staticmethod def __call__(self): - directionratios = getattr(self, 'DirectionRatios', INDETERMINATE) + directionratios = express_getattr(self, 'DirectionRatios', INDETERMINATE) assert (sizeof([tmp for tmp in directionratios if tmp != 0.0]) > 0) is not False def calc_IfcDirection_Dim(self): - directionratios = getattr(self, 'DirectionRatios', INDETERMINATE) + directionratios = express_getattr(self, 'DirectionRatios', INDETERMINATE) return hiindex(directionratios) class IfcDirectrixCurveSweptAreaSolid_DirectrixBounded: @@ -7453,9 +7463,9 @@ class IfcDirectrixCurveSweptAreaSolid_DirectrixBounded: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - startparam = getattr(self, 'StartParam', INDETERMINATE) - endparam = getattr(self, 'EndParam', INDETERMINATE) + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + startparam = express_getattr(self, 'StartParam', INDETERMINATE) + endparam = express_getattr(self, 'EndParam', INDETERMINATE) assert (exists(startparam) and exists(endparam) or sizeof(['ifc4x3_add2.ifcconic', 'ifc4x3_add2.ifcboundedcurve'] * typeof(directrix)) == 1) is not False class IfcDiscreteAccessory_CorrectPredefinedType: @@ -7465,8 +7475,8 @@ class IfcDiscreteAccessory_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDiscreteAccessory_CorrectTypeAssigned: SCOPE = 'entity' @@ -7475,8 +7485,8 @@ class IfcDiscreteAccessory_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcdiscreteaccessorytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcdiscreteaccessorytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDiscreteAccessoryType_CorrectPredefinedType: SCOPE = 'entity' @@ -7485,8 +7495,8 @@ class IfcDiscreteAccessoryType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDistributionBoard_CorrectPredefinedType: SCOPE = 'entity' @@ -7495,8 +7505,8 @@ class IfcDistributionBoard_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDistributionBoard_CorrectTypeAssigned: SCOPE = 'entity' @@ -7505,8 +7515,8 @@ class IfcDistributionBoard_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcdistributionboardtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcdistributionboardtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDistributionBoardType_CorrectPredefinedType: SCOPE = 'entity' @@ -7515,8 +7525,8 @@ class IfcDistributionBoardType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDistributionChamberElement_CorrectPredefinedType: SCOPE = 'entity' @@ -7525,8 +7535,8 @@ class IfcDistributionChamberElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDistributionChamberElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -7535,8 +7545,8 @@ class IfcDistributionChamberElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcdistributionchamberelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcdistributionchamberelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDistributionChamberElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -7545,8 +7555,8 @@ class IfcDistributionChamberElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDistributionSystem_CorrectPredefinedType: SCOPE = 'entity' @@ -7555,8 +7565,8 @@ class IfcDistributionSystem_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDocumentReference_WR1: SCOPE = 'entity' @@ -7565,8 +7575,8 @@ class IfcDocumentReference_WR1: @staticmethod def __call__(self): - name = getattr(self, 'Name', INDETERMINATE) - referenceddocument = getattr(self, 'ReferencedDocument', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) + referenceddocument = express_getattr(self, 'ReferencedDocument', INDETERMINATE) assert exists(name) ^ exists(referenceddocument) is not False class IfcDoor_CorrectPredefinedType: @@ -7576,8 +7586,8 @@ class IfcDoor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDoor_CorrectTypeAssigned: SCOPE = 'entity' @@ -7586,8 +7596,8 @@ class IfcDoor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcdoortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcdoortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDoorLiningProperties_WR31: SCOPE = 'entity' @@ -7596,8 +7606,8 @@ class IfcDoorLiningProperties_WR31: @staticmethod def __call__(self): - liningdepth = getattr(self, 'LiningDepth', INDETERMINATE) - liningthickness = getattr(self, 'LiningThickness', INDETERMINATE) + liningdepth = express_getattr(self, 'LiningDepth', INDETERMINATE) + liningthickness = express_getattr(self, 'LiningThickness', INDETERMINATE) assert (not (exists(liningdepth) and (not exists(liningthickness)))) is not False class IfcDoorLiningProperties_WR32: @@ -7607,8 +7617,8 @@ class IfcDoorLiningProperties_WR32: @staticmethod def __call__(self): - thresholddepth = getattr(self, 'ThresholdDepth', INDETERMINATE) - thresholdthickness = getattr(self, 'ThresholdThickness', INDETERMINATE) + thresholddepth = express_getattr(self, 'ThresholdDepth', INDETERMINATE) + thresholdthickness = express_getattr(self, 'ThresholdThickness', INDETERMINATE) assert (not (exists(thresholddepth) and (not exists(thresholdthickness)))) is not False class IfcDoorLiningProperties_WR33: @@ -7618,8 +7628,8 @@ class IfcDoorLiningProperties_WR33: @staticmethod def __call__(self): - transomthickness = getattr(self, 'TransomThickness', INDETERMINATE) - transomoffset = getattr(self, 'TransomOffset', INDETERMINATE) + transomthickness = express_getattr(self, 'TransomThickness', INDETERMINATE) + transomoffset = express_getattr(self, 'TransomOffset', INDETERMINATE) assert (exists(transomoffset) and exists(transomthickness)) ^ (not exists(transomoffset) and (not exists(transomthickness))) is not False class IfcDoorLiningProperties_WR34: @@ -7629,8 +7639,8 @@ class IfcDoorLiningProperties_WR34: @staticmethod def __call__(self): - casingthickness = getattr(self, 'CasingThickness', INDETERMINATE) - casingdepth = getattr(self, 'CasingDepth', INDETERMINATE) + casingthickness = express_getattr(self, 'CasingThickness', INDETERMINATE) + casingdepth = express_getattr(self, 'CasingDepth', INDETERMINATE) assert (exists(casingdepth) and exists(casingthickness)) ^ (not exists(casingdepth) and (not exists(casingthickness))) is not False class IfcDoorLiningProperties_WR35: @@ -7640,7 +7650,7 @@ class IfcDoorLiningProperties_WR35: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc4x3_add2.ifcdoortype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc4x3_add2.ifcdoortype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcDoorPanelProperties_ApplicableToType: SCOPE = 'entity' @@ -7649,7 +7659,7 @@ class IfcDoorPanelProperties_ApplicableToType: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc4x3_add2.ifcdoortype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc4x3_add2.ifcdoortype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcDoorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7658,8 +7668,8 @@ class IfcDoorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDraughtingPreDefinedColour_PreDefinedColourNames: SCOPE = 'entity' @@ -7668,7 +7678,7 @@ class IfcDraughtingPreDefinedColour_PreDefinedColourNames: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'bylayer']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'bylayer']) is not False class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: SCOPE = 'entity' @@ -7677,7 +7687,7 @@ class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chaindoubledash', 'dashed', 'dotted', 'bylayer']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chaindoubledash', 'dashed', 'dotted', 'bylayer']) is not False class IfcDuctFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -7686,8 +7696,8 @@ class IfcDuctFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -7696,8 +7706,8 @@ class IfcDuctFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcductfittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcductfittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -7706,8 +7716,8 @@ class IfcDuctFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDuctSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -7716,8 +7726,8 @@ class IfcDuctSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -7726,8 +7736,8 @@ class IfcDuctSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcductsegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcductsegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -7736,8 +7746,8 @@ class IfcDuctSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDuctSilencer_CorrectPredefinedType: SCOPE = 'entity' @@ -7746,8 +7756,8 @@ class IfcDuctSilencer_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctSilencer_CorrectTypeAssigned: SCOPE = 'entity' @@ -7756,8 +7766,8 @@ class IfcDuctSilencer_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcductsilencertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcductsilencertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctSilencerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7766,8 +7776,8 @@ class IfcDuctSilencerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEarthworksCut_CorrectPredefinedType: SCOPE = 'entity' @@ -7776,8 +7786,8 @@ class IfcEarthworksCut_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEarthworksFill_CorrectPredefinedType: SCOPE = 'entity' @@ -7786,8 +7796,8 @@ class IfcEarthworksFill_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEdgeLoop_IsClosed: SCOPE = 'entity' @@ -7796,9 +7806,9 @@ class IfcEdgeLoop_IsClosed: @staticmethod def __call__(self): - edgelist = getattr(self, 'EdgeList', INDETERMINATE) - ne = getattr(self, 'Ne', INDETERMINATE) - assert (getattr(express_getitem(edgelist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) == getattr(express_getitem(edgelist, ne - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE)) is not False + edgelist = express_getattr(self, 'EdgeList', INDETERMINATE) + ne = express_getattr(self, 'Ne', INDETERMINATE) + assert (express_getattr(express_getitem(edgelist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) == express_getattr(express_getitem(edgelist, ne - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE)) is not False class IfcEdgeLoop_IsContinuous: SCOPE = 'entity' @@ -7810,7 +7820,7 @@ class IfcEdgeLoop_IsContinuous: assert IfcLoopHeadToTail(self) is not False def calc_IfcEdgeLoop_Ne(self): - edgelist = getattr(self, 'EdgeList', INDETERMINATE) + edgelist = express_getattr(self, 'EdgeList', INDETERMINATE) return sizeof(edgelist) class IfcElectricAppliance_CorrectPredefinedType: @@ -7820,8 +7830,8 @@ class IfcElectricAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -7830,8 +7840,8 @@ class IfcElectricAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcelectricappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcelectricappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7840,8 +7850,8 @@ class IfcElectricApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricDistributionBoard_CorrectPredefinedType: SCOPE = 'entity' @@ -7850,8 +7860,8 @@ class IfcElectricDistributionBoard_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricDistributionBoard_CorrectTypeAssigned: SCOPE = 'entity' @@ -7860,8 +7870,8 @@ class IfcElectricDistributionBoard_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcelectricdistributionboardtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcelectricdistributionboardtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricDistributionBoardType_CorrectPredefinedType: SCOPE = 'entity' @@ -7870,8 +7880,8 @@ class IfcElectricDistributionBoardType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricFlowStorageDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -7880,8 +7890,8 @@ class IfcElectricFlowStorageDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricFlowStorageDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -7890,8 +7900,8 @@ class IfcElectricFlowStorageDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcelectricflowstoragedevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcelectricflowstoragedevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricFlowStorageDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7900,8 +7910,8 @@ class IfcElectricFlowStorageDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricFlowTreatmentDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -7910,8 +7920,8 @@ class IfcElectricFlowTreatmentDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricFlowTreatmentDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -7920,8 +7930,8 @@ class IfcElectricFlowTreatmentDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcelectricflowtreatmentdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcelectricflowtreatmentdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricFlowTreatmentDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7930,8 +7940,8 @@ class IfcElectricFlowTreatmentDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricGenerator_CorrectPredefinedType: SCOPE = 'entity' @@ -7940,8 +7950,8 @@ class IfcElectricGenerator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricGenerator_CorrectTypeAssigned: SCOPE = 'entity' @@ -7950,8 +7960,8 @@ class IfcElectricGenerator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcelectricgeneratortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcelectricgeneratortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricGeneratorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7960,8 +7970,8 @@ class IfcElectricGeneratorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricMotor_CorrectPredefinedType: SCOPE = 'entity' @@ -7970,8 +7980,8 @@ class IfcElectricMotor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricMotor_CorrectTypeAssigned: SCOPE = 'entity' @@ -7980,8 +7990,8 @@ class IfcElectricMotor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcelectricmotortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcelectricmotortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricMotorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7990,8 +8000,8 @@ class IfcElectricMotorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricTimeControl_CorrectPredefinedType: SCOPE = 'entity' @@ -8000,8 +8010,8 @@ class IfcElectricTimeControl_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricTimeControl_CorrectTypeAssigned: SCOPE = 'entity' @@ -8010,8 +8020,8 @@ class IfcElectricTimeControl_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcelectrictimecontroltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcelectrictimecontroltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricTimeControlType_CorrectPredefinedType: SCOPE = 'entity' @@ -8020,8 +8030,8 @@ class IfcElectricTimeControlType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElementAssembly_CorrectPredefinedType: SCOPE = 'entity' @@ -8030,8 +8040,8 @@ class IfcElementAssembly_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElementAssembly_CorrectTypeAssigned: SCOPE = 'entity' @@ -8040,8 +8050,8 @@ class IfcElementAssembly_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcelementassemblytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcelementassemblytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElementAssemblyType_CorrectPredefinedType: SCOPE = 'entity' @@ -8050,8 +8060,8 @@ class IfcElementAssemblyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElementQuantity_UniqueQuantityNames: SCOPE = 'entity' @@ -8060,7 +8070,7 @@ class IfcElementQuantity_UniqueQuantityNames: @staticmethod def __call__(self): - quantities = getattr(self, 'Quantities', INDETERMINATE) + quantities = express_getattr(self, 'Quantities', INDETERMINATE) assert IfcUniqueQuantityNames(quantities) is not False class IfcEngine_CorrectPredefinedType: @@ -8070,8 +8080,8 @@ class IfcEngine_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEngine_CorrectTypeAssigned: SCOPE = 'entity' @@ -8080,8 +8090,8 @@ class IfcEngine_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcenginetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcenginetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEngineType_CorrectPredefinedType: SCOPE = 'entity' @@ -8090,8 +8100,8 @@ class IfcEngineType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvaporativeCooler_CorrectPredefinedType: SCOPE = 'entity' @@ -8100,8 +8110,8 @@ class IfcEvaporativeCooler_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvaporativeCooler_CorrectTypeAssigned: SCOPE = 'entity' @@ -8110,8 +8120,8 @@ class IfcEvaporativeCooler_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcevaporativecoolertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcevaporativecoolertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEvaporativeCoolerType_CorrectPredefinedType: SCOPE = 'entity' @@ -8120,8 +8130,8 @@ class IfcEvaporativeCoolerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvaporator_CorrectPredefinedType: SCOPE = 'entity' @@ -8130,8 +8140,8 @@ class IfcEvaporator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvaporator_CorrectTypeAssigned: SCOPE = 'entity' @@ -8140,8 +8150,8 @@ class IfcEvaporator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcevaporatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcevaporatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEvaporatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -8150,8 +8160,8 @@ class IfcEvaporatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvent_CorrectPredefinedType: SCOPE = 'entity' @@ -8160,8 +8170,8 @@ class IfcEvent_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvent_CorrectTypeAssigned: SCOPE = 'entity' @@ -8170,9 +8180,9 @@ class IfcEvent_CorrectTypeAssigned: @staticmethod def __call__(self): - eventtriggertype = getattr(self, 'EventTriggerType', INDETERMINATE) - userdefinedeventtriggertype = getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) - assert (not exists(eventtriggertype) or eventtriggertype != getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False + eventtriggertype = express_getattr(self, 'EventTriggerType', INDETERMINATE) + userdefinedeventtriggertype = express_getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) + assert (not exists(eventtriggertype) or eventtriggertype != express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False class IfcEventType_CorrectEventTriggerType: SCOPE = 'entity' @@ -8181,9 +8191,9 @@ class IfcEventType_CorrectEventTriggerType: @staticmethod def __call__(self): - eventtriggertype = getattr(self, 'EventTriggerType', INDETERMINATE) - userdefinedeventtriggertype = getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) - assert (eventtriggertype != getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False + eventtriggertype = express_getattr(self, 'EventTriggerType', INDETERMINATE) + userdefinedeventtriggertype = express_getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) + assert (eventtriggertype != express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False class IfcEventType_CorrectPredefinedType: SCOPE = 'entity' @@ -8192,8 +8202,8 @@ class IfcEventType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcExternalReference_WR1: SCOPE = 'entity' @@ -8202,9 +8212,9 @@ class IfcExternalReference_WR1: @staticmethod def __call__(self): - location = getattr(self, 'Location', INDETERMINATE) - identification = getattr(self, 'Identification', INDETERMINATE) - name = getattr(self, 'Name', INDETERMINATE) + location = express_getattr(self, 'Location', INDETERMINATE) + identification = express_getattr(self, 'Identification', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) assert (exists(identification) or exists(location) or exists(name)) is not False class IfcExtrudedAreaSolid_ValidExtrusionDirection: @@ -8214,7 +8224,7 @@ class IfcExtrudedAreaSolid_ValidExtrusionDirection: @staticmethod def __call__(self): - assert (IfcDotProduct(IfcDirection(DirectionRatios=[0.0, 0.0, 1.0]), getattr(self, 'ExtrudedDirection', INDETERMINATE)) != 0.0) is not False + assert (IfcDotProduct(IfcDirection(DirectionRatios=[0.0, 0.0, 1.0]), express_getattr(self, 'ExtrudedDirection', INDETERMINATE)) != 0.0) is not False class IfcExtrudedAreaSolidTapered_CorrectProfileAssignment: SCOPE = 'entity' @@ -8223,7 +8233,7 @@ class IfcExtrudedAreaSolidTapered_CorrectProfileAssignment: @staticmethod def __call__(self): - assert IfcTaperedSweptAreaProfiles(getattr(self, 'SweptArea', INDETERMINATE), getattr(self, 'EndSweptArea', INDETERMINATE)) is not False + assert IfcTaperedSweptAreaProfiles(express_getattr(self, 'SweptArea', INDETERMINATE), express_getattr(self, 'EndSweptArea', INDETERMINATE)) is not False class IfcFace_HasOuterBound: SCOPE = 'entity' @@ -8232,7 +8242,7 @@ class IfcFace_HasOuterBound: @staticmethod def __call__(self): - bounds = getattr(self, 'Bounds', INDETERMINATE) + bounds = express_getattr(self, 'Bounds', INDETERMINATE) assert (sizeof([temp for temp in bounds if 'ifc4x3_add2.ifcfaceouterbound' in typeof(temp)]) <= 1) is not False def calc_IfcFaceBasedSurfaceModel_Dim(self): @@ -8245,8 +8255,8 @@ class IfcFacilityPartCommon_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFan_CorrectPredefinedType: SCOPE = 'entity' @@ -8255,8 +8265,8 @@ class IfcFan_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFan_CorrectTypeAssigned: SCOPE = 'entity' @@ -8265,8 +8275,8 @@ class IfcFan_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcfantype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcfantype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFanType_CorrectPredefinedType: SCOPE = 'entity' @@ -8275,8 +8285,8 @@ class IfcFanType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFastener_CorrectPredefinedType: SCOPE = 'entity' @@ -8285,8 +8295,8 @@ class IfcFastener_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFastener_CorrectTypeAssigned: SCOPE = 'entity' @@ -8295,8 +8305,8 @@ class IfcFastener_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcfastenertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcfastenertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFastenerType_CorrectPredefinedType: SCOPE = 'entity' @@ -8305,8 +8315,8 @@ class IfcFastenerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFeatureElement_NotContained: SCOPE = 'entity' @@ -8315,7 +8325,7 @@ class IfcFeatureElement_NotContained: @staticmethod def __call__(self): - containedinstructure = getattr(self, 'ContainedInStructure', INDETERMINATE) + containedinstructure = express_getattr(self, 'ContainedInStructure', INDETERMINATE) assert (sizeof(containedinstructure) == 0) is not False class IfcFeatureElementSubtraction_HasNoSubtraction: @@ -8325,7 +8335,7 @@ class IfcFeatureElementSubtraction_HasNoSubtraction: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'HasOpenings', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'HasOpenings', INDETERMINATE)) == 0) is not False class IfcFeatureElementSubtraction_IsNotFilling: SCOPE = 'entity' @@ -8334,7 +8344,7 @@ class IfcFeatureElementSubtraction_IsNotFilling: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'FillsVoids', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'FillsVoids', INDETERMINATE)) == 0) is not False class IfcFillAreaStyle_ConsistentHatchStyleDef: SCOPE = 'entity' @@ -8343,7 +8353,7 @@ class IfcFillAreaStyle_ConsistentHatchStyleDef: @staticmethod def __call__(self): - assert IfcCorrectFillAreaStyle(getattr(self, 'FillStyles', INDETERMINATE)) is not False + assert IfcCorrectFillAreaStyle(express_getattr(self, 'FillStyles', INDETERMINATE)) is not False class IfcFillAreaStyle_MaxOneColour: SCOPE = 'entity' @@ -8352,7 +8362,7 @@ class IfcFillAreaStyle_MaxOneColour: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3_add2.ifccolour' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3_add2.ifccolour' in typeof(style)]) <= 1) is not False class IfcFillAreaStyle_MaxOneExtHatchStyle: SCOPE = 'entity' @@ -8361,7 +8371,7 @@ class IfcFillAreaStyle_MaxOneExtHatchStyle: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3_add2.ifcexternallydefinedhatchstyle' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3_add2.ifcexternallydefinedhatchstyle' in typeof(style)]) <= 1) is not False class IfcFillAreaStyleHatching_PatternStart2D: SCOPE = 'entity' @@ -8370,8 +8380,8 @@ class IfcFillAreaStyleHatching_PatternStart2D: @staticmethod def __call__(self): - patternstart = getattr(self, 'PatternStart', INDETERMINATE) - assert (not exists(patternstart) or getattr(patternstart, 'Dim', INDETERMINATE) == 2) is not False + patternstart = express_getattr(self, 'PatternStart', INDETERMINATE) + assert (not exists(patternstart) or express_getattr(patternstart, 'Dim', INDETERMINATE) == 2) is not False class IfcFillAreaStyleHatching_RefHatchLine2D: SCOPE = 'entity' @@ -8380,8 +8390,8 @@ class IfcFillAreaStyleHatching_RefHatchLine2D: @staticmethod def __call__(self): - pointofreferencehatchline = getattr(self, 'PointOfReferenceHatchLine', INDETERMINATE) - assert (not exists(pointofreferencehatchline) or getattr(pointofreferencehatchline, 'Dim', INDETERMINATE) == 2) is not False + pointofreferencehatchline = express_getattr(self, 'PointOfReferenceHatchLine', INDETERMINATE) + assert (not exists(pointofreferencehatchline) or express_getattr(pointofreferencehatchline, 'Dim', INDETERMINATE) == 2) is not False class IfcFilter_CorrectPredefinedType: SCOPE = 'entity' @@ -8390,8 +8400,8 @@ class IfcFilter_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFilter_CorrectTypeAssigned: SCOPE = 'entity' @@ -8400,8 +8410,8 @@ class IfcFilter_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcfiltertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcfiltertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFilterType_CorrectPredefinedType: SCOPE = 'entity' @@ -8410,8 +8420,8 @@ class IfcFilterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFireSuppressionTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -8420,8 +8430,8 @@ class IfcFireSuppressionTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFireSuppressionTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -8430,8 +8440,8 @@ class IfcFireSuppressionTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcfiresuppressionterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcfiresuppressionterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFireSuppressionTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -8440,8 +8450,8 @@ class IfcFireSuppressionTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFlowInstrument_CorrectPredefinedType: SCOPE = 'entity' @@ -8450,8 +8460,8 @@ class IfcFlowInstrument_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFlowInstrument_CorrectTypeAssigned: SCOPE = 'entity' @@ -8460,8 +8470,8 @@ class IfcFlowInstrument_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcflowinstrumenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcflowinstrumenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFlowInstrumentType_CorrectPredefinedType: SCOPE = 'entity' @@ -8470,8 +8480,8 @@ class IfcFlowInstrumentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFlowMeter_CorrectPredefinedType: SCOPE = 'entity' @@ -8480,8 +8490,8 @@ class IfcFlowMeter_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFlowMeter_CorrectTypeAssigned: SCOPE = 'entity' @@ -8490,8 +8500,8 @@ class IfcFlowMeter_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcflowmetertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcflowmetertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFlowMeterType_CorrectPredefinedType: SCOPE = 'entity' @@ -8500,8 +8510,8 @@ class IfcFlowMeterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFooting_CorrectPredefinedType: SCOPE = 'entity' @@ -8510,8 +8520,8 @@ class IfcFooting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFooting_CorrectTypeAssigned: SCOPE = 'entity' @@ -8520,8 +8530,8 @@ class IfcFooting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcfootingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcfootingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFootingType_CorrectPredefinedType: SCOPE = 'entity' @@ -8530,8 +8540,8 @@ class IfcFootingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFurniture_CorrectPredefinedType: SCOPE = 'entity' @@ -8540,8 +8550,8 @@ class IfcFurniture_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFurniture_CorrectTypeAssigned: SCOPE = 'entity' @@ -8550,8 +8560,8 @@ class IfcFurniture_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcfurnituretype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcfurnituretype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFurnitureType_CorrectPredefinedType: SCOPE = 'entity' @@ -8560,8 +8570,8 @@ class IfcFurnitureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcGeographicCRS_AngleUnitIsPlaneAngle: SCOPE = 'entity' @@ -8570,7 +8580,7 @@ class IfcGeographicCRS_AngleUnitIsPlaneAngle: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'AngleUnit', INDETERMINATE)) or getattr(getattr(self, 'AngleUnit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'PLANEANGLEUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'AngleUnit', INDETERMINATE)) or express_getattr(express_getattr(self, 'AngleUnit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'PLANEANGLEUNIT', INDETERMINATE)) is not False class IfcGeographicCRS_HeightUnitIsLength: SCOPE = 'entity' @@ -8579,7 +8589,7 @@ class IfcGeographicCRS_HeightUnitIsLength: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'HeightUnit', INDETERMINATE)) or getattr(getattr(self, 'HeightUnit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'HeightUnit', INDETERMINATE)) or express_getattr(express_getattr(self, 'HeightUnit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False class IfcGeographicElement_CorrectPredefinedType: SCOPE = 'entity' @@ -8588,8 +8598,8 @@ class IfcGeographicElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcGeographicElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -8598,8 +8608,8 @@ class IfcGeographicElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcgeographicelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcgeographicelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcGeographicElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -8608,8 +8618,8 @@ class IfcGeographicElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcGeometricCurveSet_NoSurfaces: SCOPE = 'entity' @@ -8618,7 +8628,7 @@ class IfcGeometricCurveSet_NoSurfaces: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Elements', INDETERMINATE) if 'ifc4x3_add2.ifcsurface' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Elements', INDETERMINATE) if 'ifc4x3_add2.ifcsurface' in typeof(temp)]) == 0) is not False class IfcGeometricRepresentationContext_North2D: SCOPE = 'entity' @@ -8627,8 +8637,8 @@ class IfcGeometricRepresentationContext_North2D: @staticmethod def __call__(self): - truenorth = getattr(self, 'TrueNorth', INDETERMINATE) - assert (not exists(truenorth) or hiindex(getattr(truenorth, 'DirectionRatios', INDETERMINATE)) == 2) is not False + truenorth = express_getattr(self, 'TrueNorth', INDETERMINATE) + assert (not exists(truenorth) or hiindex(express_getattr(truenorth, 'DirectionRatios', INDETERMINATE)) == 2) is not False class IfcGeometricRepresentationSubContext_NoCoordOperation: SCOPE = 'entity' @@ -8637,7 +8647,7 @@ class IfcGeometricRepresentationSubContext_NoCoordOperation: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'HasCoordinateOperation', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'HasCoordinateOperation', INDETERMINATE)) == 0) is not False class IfcGeometricRepresentationSubContext_ParentNoSub: SCOPE = 'entity' @@ -8646,7 +8656,7 @@ class IfcGeometricRepresentationSubContext_ParentNoSub: @staticmethod def __call__(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) assert (not 'ifc4x3_add2.ifcgeometricrepresentationsubcontext' in typeof(parentcontext)) is not False class IfcGeometricRepresentationSubContext_UserTargetProvided: @@ -8656,25 +8666,25 @@ class IfcGeometricRepresentationSubContext_UserTargetProvided: @staticmethod def __call__(self): - targetview = getattr(self, 'TargetView', INDETERMINATE) - userdefinedtargetview = getattr(self, 'UserDefinedTargetView', INDETERMINATE) - assert (targetview != getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) or (targetview == getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedtargetview))) is not False + targetview = express_getattr(self, 'TargetView', INDETERMINATE) + userdefinedtargetview = express_getattr(self, 'UserDefinedTargetView', INDETERMINATE) + assert (targetview != express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) or (targetview == express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedtargetview))) is not False def calc_IfcGeometricRepresentationSubContext_WorldCoordinateSystem(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return getattr(parentcontext, 'WorldCoordinateSystem', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return express_getattr(parentcontext, 'WorldCoordinateSystem', INDETERMINATE) def calc_IfcGeometricRepresentationSubContext_CoordinateSpaceDimension(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return getattr(parentcontext, 'CoordinateSpaceDimension', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return express_getattr(parentcontext, 'CoordinateSpaceDimension', INDETERMINATE) def calc_IfcGeometricRepresentationSubContext_TrueNorth(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return nvl(getattr(parentcontext, 'TrueNorth', INDETERMINATE), IfcConvertDirectionInto2D(express_getitem(getattr(getattr(self, 'WorldCoordinateSystem', INDETERMINATE), 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return nvl(express_getattr(parentcontext, 'TrueNorth', INDETERMINATE), IfcConvertDirectionInto2D(express_getitem(express_getattr(express_getattr(self, 'WorldCoordinateSystem', INDETERMINATE), 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) def calc_IfcGeometricRepresentationSubContext_Precision(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return nvl(getattr(parentcontext, 'Precision', INDETERMINATE), 1) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return nvl(express_getattr(parentcontext, 'Precision', INDETERMINATE), 1) class IfcGeometricSet_ConsistentDim: SCOPE = 'entity' @@ -8683,12 +8693,12 @@ class IfcGeometricSet_ConsistentDim: @staticmethod def __call__(self): - elements = getattr(self, 'Elements', INDETERMINATE) - assert (sizeof([temp for temp in elements if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + elements = express_getattr(self, 'Elements', INDETERMINATE) + assert (sizeof([temp for temp in elements if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcGeometricSet_Dim(self): - elements = getattr(self, 'Elements', INDETERMINATE) - return getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + elements = express_getattr(self, 'Elements', INDETERMINATE) + return express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) class IfcGeotechnicalStratum_CorrectPredefinedType: SCOPE = 'entity' @@ -8697,8 +8707,8 @@ class IfcGeotechnicalStratum_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcGeotechnicalStratumTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcGeotechnicalStratumTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcGeotechnicalStratumTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcGeotechnicalStratumTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcGridAxis_WR1: SCOPE = 'entity' @@ -8707,8 +8717,8 @@ class IfcGridAxis_WR1: @staticmethod def __call__(self): - axiscurve = getattr(self, 'AxisCurve', INDETERMINATE) - assert (getattr(axiscurve, 'Dim', INDETERMINATE) == 2) is not False + axiscurve = express_getattr(self, 'AxisCurve', INDETERMINATE) + assert (express_getattr(axiscurve, 'Dim', INDETERMINATE) == 2) is not False class IfcGridAxis_WR2: SCOPE = 'entity' @@ -8717,9 +8727,9 @@ class IfcGridAxis_WR2: @staticmethod def __call__(self): - partofw = getattr(self, 'PartOfW', INDETERMINATE) - partofv = getattr(self, 'PartOfV', INDETERMINATE) - partofu = getattr(self, 'PartOfU', INDETERMINATE) + partofw = express_getattr(self, 'PartOfW', INDETERMINATE) + partofv = express_getattr(self, 'PartOfV', INDETERMINATE) + partofu = express_getattr(self, 'PartOfU', INDETERMINATE) assert (sizeof(partofu) == 1) ^ (sizeof(partofv) == 1) ^ (sizeof(partofw) == 1) is not False def calc_IfcHalfSpaceSolid_Dim(self): @@ -8732,8 +8742,8 @@ class IfcHeatExchanger_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcHeatExchanger_CorrectTypeAssigned: SCOPE = 'entity' @@ -8742,8 +8752,8 @@ class IfcHeatExchanger_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcheatexchangertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcheatexchangertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcHeatExchangerType_CorrectPredefinedType: SCOPE = 'entity' @@ -8752,8 +8762,8 @@ class IfcHeatExchangerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcHumidifier_CorrectPredefinedType: SCOPE = 'entity' @@ -8762,8 +8772,8 @@ class IfcHumidifier_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcHumidifier_CorrectTypeAssigned: SCOPE = 'entity' @@ -8772,8 +8782,8 @@ class IfcHumidifier_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifchumidifiertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifchumidifiertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcHumidifierType_CorrectPredefinedType: SCOPE = 'entity' @@ -8782,8 +8792,8 @@ class IfcHumidifierType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcIShapeProfileDef_ValidFilletRadius: SCOPE = 'entity' @@ -8792,11 +8802,11 @@ class IfcIShapeProfileDef_ValidFilletRadius: @staticmethod def __call__(self): - overallwidth = getattr(self, 'OverallWidth', INDETERMINATE) - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) - filletradius = getattr(self, 'FilletRadius', INDETERMINATE) + overallwidth = express_getattr(self, 'OverallWidth', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) + filletradius = express_getattr(self, 'FilletRadius', INDETERMINATE) assert (not exists(filletradius) or (filletradius <= (overallwidth - webthickness) / 2.0 and filletradius <= (overalldepth - 2.0 * flangethickness) / 2.0)) is not False class IfcIShapeProfileDef_ValidFlangeThickness: @@ -8806,8 +8816,8 @@ class IfcIShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (2.0 * flangethickness < overalldepth) is not False class IfcIShapeProfileDef_ValidWebThickness: @@ -8817,8 +8827,8 @@ class IfcIShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - overallwidth = getattr(self, 'OverallWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + overallwidth = express_getattr(self, 'OverallWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < overallwidth) is not False class IfcImpactProtectionDevice_CorrectPredefinedType: @@ -8828,8 +8838,8 @@ class IfcImpactProtectionDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcImpactProtectionDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -8838,8 +8848,8 @@ class IfcImpactProtectionDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcimpactprotectiondevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcimpactprotectiondevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcImpactProtectionDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -8848,8 +8858,8 @@ class IfcImpactProtectionDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcIndexedPolyCurve_Consecutive: SCOPE = 'entity' @@ -8858,7 +8868,7 @@ class IfcIndexedPolyCurve_Consecutive: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) + segments = express_getattr(self, 'Segments', INDETERMINATE) assert (not exists(segments) or IfcConsecutiveSegments(segments)) is not False class IfcInterceptor_CorrectPredefinedType: @@ -8868,8 +8878,8 @@ class IfcInterceptor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcInterceptor_CorrectTypeAssigned: SCOPE = 'entity' @@ -8878,8 +8888,8 @@ class IfcInterceptor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcinterceptortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcinterceptortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcInterceptorType_CorrectPredefinedType: SCOPE = 'entity' @@ -8888,8 +8898,8 @@ class IfcInterceptorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcIntersectionCurve_DistinctSurfaces: SCOPE = 'entity' @@ -8898,7 +8908,7 @@ class IfcIntersectionCurve_DistinctSurfaces: @staticmethod def __call__(self): - assert (IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcIntersectionCurve_TwoPCurves: SCOPE = 'entity' @@ -8907,7 +8917,7 @@ class IfcIntersectionCurve_TwoPCurves: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False + assert (sizeof(express_getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False class IfcJunctionBox_CorrectPredefinedType: SCOPE = 'entity' @@ -8916,8 +8926,8 @@ class IfcJunctionBox_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcJunctionBox_CorrectTypeAssigned: SCOPE = 'entity' @@ -8926,8 +8936,8 @@ class IfcJunctionBox_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcjunctionboxtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcjunctionboxtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcJunctionBoxType_CorrectPredefinedType: SCOPE = 'entity' @@ -8936,8 +8946,8 @@ class IfcJunctionBoxType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcKerb_CorrectPredefinedType: SCOPE = 'entity' @@ -8946,8 +8956,8 @@ class IfcKerb_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcKerb_CorrectTypeAssigned: SCOPE = 'entity' @@ -8956,8 +8966,8 @@ class IfcKerb_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifckerbtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifckerbtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcKerbType_CorrectPredefinedType: SCOPE = 'entity' @@ -8966,8 +8976,8 @@ class IfcKerbType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLShapeProfileDef_ValidThickness: SCOPE = 'entity' @@ -8976,9 +8986,9 @@ class IfcLShapeProfileDef_ValidThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - thickness = getattr(self, 'Thickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + thickness = express_getattr(self, 'Thickness', INDETERMINATE) assert (thickness < depth and (not exists(width) or thickness < width)) is not False class IfcLaborResource_CorrectPredefinedType: @@ -8988,8 +8998,8 @@ class IfcLaborResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLaborResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -8998,8 +9008,8 @@ class IfcLaborResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcLamp_CorrectPredefinedType: SCOPE = 'entity' @@ -9008,8 +9018,8 @@ class IfcLamp_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLamp_CorrectTypeAssigned: SCOPE = 'entity' @@ -9018,8 +9028,8 @@ class IfcLamp_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifclamptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifclamptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLampType_CorrectPredefinedType: SCOPE = 'entity' @@ -9028,8 +9038,8 @@ class IfcLampType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLightFixture_CorrectPredefinedType: SCOPE = 'entity' @@ -9038,8 +9048,8 @@ class IfcLightFixture_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLightFixture_CorrectTypeAssigned: SCOPE = 'entity' @@ -9048,8 +9058,8 @@ class IfcLightFixture_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifclightfixturetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifclightfixturetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLightFixtureType_CorrectPredefinedType: SCOPE = 'entity' @@ -9058,8 +9068,8 @@ class IfcLightFixtureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLine_SameDim: SCOPE = 'entity' @@ -9068,9 +9078,9 @@ class IfcLine_SameDim: @staticmethod def __call__(self): - pnt = getattr(self, 'Pnt', INDETERMINATE) - dir = getattr(self, 'Dir', INDETERMINATE) - assert (getattr(dir, 'Dim', INDETERMINATE) == getattr(pnt, 'Dim', INDETERMINATE)) is not False + pnt = express_getattr(self, 'Pnt', INDETERMINATE) + dir = express_getattr(self, 'Dir', INDETERMINATE) + assert (express_getattr(dir, 'Dim', INDETERMINATE) == express_getattr(pnt, 'Dim', INDETERMINATE)) is not False class IfcLiquidTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -9079,8 +9089,8 @@ class IfcLiquidTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLiquidTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -9089,8 +9099,8 @@ class IfcLiquidTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcliquidterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcliquidterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLiquidTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -9099,8 +9109,8 @@ class IfcLiquidTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLocalPlacement_WR21: SCOPE = 'entity' @@ -9109,8 +9119,8 @@ class IfcLocalPlacement_WR21: @staticmethod def __call__(self): - placementrelto = getattr(self, 'PlacementRelTo', INDETERMINATE) - relativeplacement = getattr(self, 'RelativePlacement', INDETERMINATE) + placementrelto = express_getattr(self, 'PlacementRelTo', INDETERMINATE) + relativeplacement = express_getattr(self, 'RelativePlacement', INDETERMINATE) assert IfcCorrectLocalPlacement(relativeplacement, placementrelto) is not False class IfcMapConversion_TargetCRSOnlyProjected: @@ -9120,7 +9130,7 @@ class IfcMapConversion_TargetCRSOnlyProjected: @staticmethod def __call__(self): - assert ('ifc4x3_add2.ifcprojectedcrs' in typeof(getattr(self, 'TargetCRS', INDETERMINATE))) is not False + assert ('ifc4x3_add2.ifcprojectedcrs' in typeof(express_getattr(self, 'TargetCRS', INDETERMINATE))) is not False class IfcMarineFacility_CorrectPredefinedType: SCOPE = 'entity' @@ -9129,8 +9139,8 @@ class IfcMarineFacility_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMarinePart_CorrectPredefinedType: SCOPE = 'entity' @@ -9139,8 +9149,8 @@ class IfcMarinePart_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMaterialDefinitionRepresentation_OnlyStyledRepresentations: SCOPE = 'entity' @@ -9149,7 +9159,7 @@ class IfcMaterialDefinitionRepresentation_OnlyStyledRepresentations: @staticmethod def __call__(self): - representations = getattr(self, 'Representations', INDETERMINATE) + representations = express_getattr(self, 'Representations', INDETERMINATE) assert (sizeof([temp for temp in representations if not 'ifc4x3_add2.ifcstyledrepresentation' in typeof(temp)]) == 0) is not False class IfcMaterialLayer_NormalizedPriority: @@ -9159,7 +9169,7 @@ class IfcMaterialLayer_NormalizedPriority: @staticmethod def __call__(self): - priority = getattr(self, 'Priority', INDETERMINATE) + priority = express_getattr(self, 'Priority', INDETERMINATE) assert (not exists(priority) or 0 <= priority <= 100) is not False def calc_IfcMaterialLayerSet_TotalThickness(self): @@ -9172,7 +9182,7 @@ class IfcMaterialProfile_NormalizedPriority: @staticmethod def __call__(self): - priority = getattr(self, 'Priority', INDETERMINATE) + priority = express_getattr(self, 'Priority', INDETERMINATE) assert (not exists(priority) or 0 <= priority <= 100) is not False class IfcMechanicalFastener_CorrectPredefinedType: @@ -9182,8 +9192,8 @@ class IfcMechanicalFastener_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMechanicalFastener_CorrectTypeAssigned: SCOPE = 'entity' @@ -9192,8 +9202,8 @@ class IfcMechanicalFastener_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcmechanicalfastenertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcmechanicalfastenertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMechanicalFastenerType_CorrectPredefinedType: SCOPE = 'entity' @@ -9202,8 +9212,8 @@ class IfcMechanicalFastenerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMedicalDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -9212,8 +9222,8 @@ class IfcMedicalDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMedicalDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -9222,8 +9232,8 @@ class IfcMedicalDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcmedicaldevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcmedicaldevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMedicalDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9232,8 +9242,8 @@ class IfcMedicalDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMember_CorrectPredefinedType: SCOPE = 'entity' @@ -9242,8 +9252,8 @@ class IfcMember_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMember_CorrectTypeAssigned: SCOPE = 'entity' @@ -9252,8 +9262,8 @@ class IfcMember_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcmembertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcmembertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMemberType_CorrectPredefinedType: SCOPE = 'entity' @@ -9262,8 +9272,8 @@ class IfcMemberType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcMirroredProfileDef_Operator(self): return IfcCartesianTransformationOperator2D(Axis1=IfcDirection(DirectionRatios=[-1.0, 0.0]), Axis2=IfcDirection(DirectionRatios=[0.0, 1.0]), LocalOrigin=IfcCartesianPoint(Coordinates=[0.0, 0.0]), Scale=1.0) @@ -9275,8 +9285,8 @@ class IfcMobileTelecommunicationsAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMobileTelecommunicationsAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -9285,8 +9295,8 @@ class IfcMobileTelecommunicationsAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcmobiletelecommunicationsappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcmobiletelecommunicationsappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMobileTelecommunicationsApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9295,8 +9305,8 @@ class IfcMobileTelecommunicationsApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMooringDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -9305,8 +9315,8 @@ class IfcMooringDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMooringDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -9315,8 +9325,8 @@ class IfcMooringDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcmooringdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcmooringdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMooringDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9325,8 +9335,8 @@ class IfcMooringDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMotorConnection_CorrectPredefinedType: SCOPE = 'entity' @@ -9335,8 +9345,8 @@ class IfcMotorConnection_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMotorConnection_CorrectTypeAssigned: SCOPE = 'entity' @@ -9345,8 +9355,8 @@ class IfcMotorConnection_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcmotorconnectiontype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcmotorconnectiontype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMotorConnectionType_CorrectPredefinedType: SCOPE = 'entity' @@ -9355,8 +9365,8 @@ class IfcMotorConnectionType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcNamedUnit_WR1: SCOPE = 'entity' @@ -9365,7 +9375,7 @@ class IfcNamedUnit_WR1: @staticmethod def __call__(self): - assert IfcCorrectDimensions(getattr(self, 'UnitType', INDETERMINATE), getattr(self, 'Dimensions', INDETERMINATE)) is not False + assert IfcCorrectDimensions(express_getattr(self, 'UnitType', INDETERMINATE), express_getattr(self, 'Dimensions', INDETERMINATE)) is not False class IfcNavigationElement_CorrectPredefinedType: SCOPE = 'entity' @@ -9374,8 +9384,8 @@ class IfcNavigationElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcNavigationElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -9384,8 +9394,8 @@ class IfcNavigationElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcnavigationelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcnavigationelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcNavigationElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -9394,8 +9404,8 @@ class IfcNavigationElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcObject_UniquePropertySetNames: SCOPE = 'entity' @@ -9404,7 +9414,7 @@ class IfcObject_UniquePropertySetNames: @staticmethod def __call__(self): - isdefinedby = getattr(self, 'IsDefinedBy', INDETERMINATE) + isdefinedby = express_getattr(self, 'IsDefinedBy', INDETERMINATE) assert (sizeof(isdefinedby) == 0 or IfcUniqueDefinitionNames(isdefinedby)) is not False class IfcObjective_WR21: @@ -9414,8 +9424,8 @@ class IfcObjective_WR21: @staticmethod def __call__(self): - objectivequalifier = getattr(self, 'ObjectiveQualifier', INDETERMINATE) - assert (objectivequalifier != getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) or (objectivequalifier == getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedQualifier', INDETERMINATE)))) is not False + objectivequalifier = express_getattr(self, 'ObjectiveQualifier', INDETERMINATE) + assert (objectivequalifier != express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) or (objectivequalifier == express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedQualifier', INDETERMINATE)))) is not False class IfcOccupant_WR31: SCOPE = 'entity' @@ -9424,8 +9434,8 @@ class IfcOccupant_WR31: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not predefinedtype == getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not predefinedtype == express_getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcOffsetCurve2D_DimIs2D: SCOPE = 'entity' @@ -9434,8 +9444,8 @@ class IfcOffsetCurve2D_DimIs2D: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - assert (getattr(basiscurve, 'Dim', INDETERMINATE) == 2) is not False + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + assert (express_getattr(basiscurve, 'Dim', INDETERMINATE) == 2) is not False class IfcOffsetCurve3D_DimIs2D: SCOPE = 'entity' @@ -9444,8 +9454,8 @@ class IfcOffsetCurve3D_DimIs2D: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - assert (getattr(basiscurve, 'Dim', INDETERMINATE) == 3) is not False + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + assert (express_getattr(basiscurve, 'Dim', INDETERMINATE) == 3) is not False class IfcOpenCrossProfileDef_CorrectProfileType: SCOPE = 'entity' @@ -9454,7 +9464,7 @@ class IfcOpenCrossProfileDef_CorrectProfileType: @staticmethod def __call__(self): - assert (getattr(self, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False class IfcOpenCrossProfileDef_CorrespondingSlopeWidths: SCOPE = 'entity' @@ -9463,8 +9473,8 @@ class IfcOpenCrossProfileDef_CorrespondingSlopeWidths: @staticmethod def __call__(self): - widths = getattr(self, 'Widths', INDETERMINATE) - slopes = getattr(self, 'Slopes', INDETERMINATE) + widths = express_getattr(self, 'Widths', INDETERMINATE) + slopes = express_getattr(self, 'Slopes', INDETERMINATE) assert (sizeof(slopes) == sizeof(widths)) is not False class IfcOpenCrossProfileDef_CorrespondingTags: @@ -9474,8 +9484,8 @@ class IfcOpenCrossProfileDef_CorrespondingTags: @staticmethod def __call__(self): - slopes = getattr(self, 'Slopes', INDETERMINATE) - tags = getattr(self, 'Tags', INDETERMINATE) + slopes = express_getattr(self, 'Slopes', INDETERMINATE) + tags = express_getattr(self, 'Tags', INDETERMINATE) assert (not exists(tags) or sizeof(tags) == sizeof(slopes) + 1) is not False class IfcOpeningElement_CorrectPredefinedType: @@ -9485,8 +9495,8 @@ class IfcOpeningElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcOrientedEdge_EdgeElementNotOriented: SCOPE = 'entity' @@ -9495,18 +9505,18 @@ class IfcOrientedEdge_EdgeElementNotOriented: @staticmethod def __call__(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) assert (not 'ifc4x3_add2.ifcorientededge' in typeof(edgeelement)) is not False def calc_IfcOrientedEdge_EdgeStart(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) - orientation = getattr(self, 'Orientation', INDETERMINATE) - return IfcBooleanChoose(orientation, getattr(edgeelement, 'EdgeStart', INDETERMINATE), getattr(edgeelement, 'EdgeEnd', INDETERMINATE)) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return IfcBooleanChoose(orientation, express_getattr(edgeelement, 'EdgeStart', INDETERMINATE), express_getattr(edgeelement, 'EdgeEnd', INDETERMINATE)) def calc_IfcOrientedEdge_EdgeEnd(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) - orientation = getattr(self, 'Orientation', INDETERMINATE) - return IfcBooleanChoose(orientation, getattr(edgeelement, 'EdgeEnd', INDETERMINATE), getattr(edgeelement, 'EdgeStart', INDETERMINATE)) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return IfcBooleanChoose(orientation, express_getattr(edgeelement, 'EdgeEnd', INDETERMINATE), express_getattr(edgeelement, 'EdgeStart', INDETERMINATE)) class IfcOutlet_CorrectPredefinedType: SCOPE = 'entity' @@ -9515,8 +9525,8 @@ class IfcOutlet_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcOutlet_CorrectTypeAssigned: SCOPE = 'entity' @@ -9525,8 +9535,8 @@ class IfcOutlet_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcoutlettype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcoutlettype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcOutletType_CorrectPredefinedType: SCOPE = 'entity' @@ -9535,8 +9545,8 @@ class IfcOutletType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcOwnerHistory_CorrectChangeAction: SCOPE = 'entity' @@ -9545,9 +9555,9 @@ class IfcOwnerHistory_CorrectChangeAction: @staticmethod def __call__(self): - changeaction = getattr(self, 'ChangeAction', INDETERMINATE) - lastmodifieddate = getattr(self, 'LastModifiedDate', INDETERMINATE) - assert (exists(lastmodifieddate) or (not exists(lastmodifieddate) and (not exists(changeaction))) or (not exists(lastmodifieddate) and exists(changeaction) and (changeaction == getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) or changeaction == getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE)))) is not False + changeaction = express_getattr(self, 'ChangeAction', INDETERMINATE) + lastmodifieddate = express_getattr(self, 'LastModifiedDate', INDETERMINATE) + assert (exists(lastmodifieddate) or (not exists(lastmodifieddate) and (not exists(changeaction))) or (not exists(lastmodifieddate) and exists(changeaction) and (changeaction == express_getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) or changeaction == express_getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE)))) is not False class IfcPath_IsContinuous: SCOPE = 'entity' @@ -9565,8 +9575,8 @@ class IfcPavement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPavement_CorrectTypeAssigned: SCOPE = 'entity' @@ -9575,8 +9585,8 @@ class IfcPavement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcpavementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcpavementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPavementType_CorrectPredefinedType: SCOPE = 'entity' @@ -9585,8 +9595,8 @@ class IfcPavementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPcurve_DimIs2D: SCOPE = 'entity' @@ -9595,8 +9605,8 @@ class IfcPcurve_DimIs2D: @staticmethod def __call__(self): - referencecurve = getattr(self, 'ReferenceCurve', INDETERMINATE) - assert (getattr(referencecurve, 'Dim', INDETERMINATE) == 2) is not False + referencecurve = express_getattr(self, 'ReferenceCurve', INDETERMINATE) + assert (express_getattr(referencecurve, 'Dim', INDETERMINATE) == 2) is not False class IfcPerson_IdentifiablePerson: SCOPE = 'entity' @@ -9605,9 +9615,9 @@ class IfcPerson_IdentifiablePerson: @staticmethod def __call__(self): - identification = getattr(self, 'Identification', INDETERMINATE) - familyname = getattr(self, 'FamilyName', INDETERMINATE) - givenname = getattr(self, 'GivenName', INDETERMINATE) + identification = express_getattr(self, 'Identification', INDETERMINATE) + familyname = express_getattr(self, 'FamilyName', INDETERMINATE) + givenname = express_getattr(self, 'GivenName', INDETERMINATE) assert (exists(identification) or exists(familyname) or exists(givenname)) is not False class IfcPerson_ValidSetOfNames: @@ -9617,9 +9627,9 @@ class IfcPerson_ValidSetOfNames: @staticmethod def __call__(self): - familyname = getattr(self, 'FamilyName', INDETERMINATE) - givenname = getattr(self, 'GivenName', INDETERMINATE) - middlenames = getattr(self, 'MiddleNames', INDETERMINATE) + familyname = express_getattr(self, 'FamilyName', INDETERMINATE) + givenname = express_getattr(self, 'GivenName', INDETERMINATE) + middlenames = express_getattr(self, 'MiddleNames', INDETERMINATE) assert (not exists(middlenames) or exists(familyname) or exists(givenname)) is not False class IfcPhysicalComplexQuantity_NoSelfReference: @@ -9629,7 +9639,7 @@ class IfcPhysicalComplexQuantity_NoSelfReference: @staticmethod def __call__(self): - hasquantities = getattr(self, 'HasQuantities', INDETERMINATE) + hasquantities = express_getattr(self, 'HasQuantities', INDETERMINATE) assert (sizeof([temp for temp in hasquantities if self == temp]) == 0) is not False class IfcPhysicalComplexQuantity_UniqueQuantityNames: @@ -9639,7 +9649,7 @@ class IfcPhysicalComplexQuantity_UniqueQuantityNames: @staticmethod def __call__(self): - hasquantities = getattr(self, 'HasQuantities', INDETERMINATE) + hasquantities = express_getattr(self, 'HasQuantities', INDETERMINATE) assert IfcUniqueQuantityNames(hasquantities) is not False class IfcPile_CorrectPredefinedType: @@ -9649,8 +9659,8 @@ class IfcPile_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPile_CorrectTypeAssigned: SCOPE = 'entity' @@ -9659,8 +9669,8 @@ class IfcPile_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcpiletype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcpiletype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPileType_CorrectPredefinedType: SCOPE = 'entity' @@ -9669,8 +9679,8 @@ class IfcPileType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPipeFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -9679,8 +9689,8 @@ class IfcPipeFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPipeFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -9689,8 +9699,8 @@ class IfcPipeFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcpipefittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcpipefittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPipeFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -9699,8 +9709,8 @@ class IfcPipeFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPipeSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -9709,8 +9719,8 @@ class IfcPipeSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPipeSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -9719,8 +9729,8 @@ class IfcPipeSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcpipesegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcpipesegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPipeSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -9729,8 +9739,8 @@ class IfcPipeSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPixelTexture_MinPixelInS: SCOPE = 'entity' @@ -9739,7 +9749,7 @@ class IfcPixelTexture_MinPixelInS: @staticmethod def __call__(self): - width = getattr(self, 'Width', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) assert (width >= 1) is not False class IfcPixelTexture_MinPixelInT: @@ -9749,7 +9759,7 @@ class IfcPixelTexture_MinPixelInT: @staticmethod def __call__(self): - height = getattr(self, 'Height', INDETERMINATE) + height = express_getattr(self, 'Height', INDETERMINATE) assert (height >= 1) is not False class IfcPixelTexture_NumberOfColours: @@ -9759,7 +9769,7 @@ class IfcPixelTexture_NumberOfColours: @staticmethod def __call__(self): - colourcomponents = getattr(self, 'ColourComponents', INDETERMINATE) + colourcomponents = express_getattr(self, 'ColourComponents', INDETERMINATE) assert (1 <= colourcomponents <= 4) is not False class IfcPixelTexture_PixelAsByteAndSameLength: @@ -9769,7 +9779,7 @@ class IfcPixelTexture_PixelAsByteAndSameLength: @staticmethod def __call__(self): - pixel = getattr(self, 'Pixel', INDETERMINATE) + pixel = express_getattr(self, 'Pixel', INDETERMINATE) assert (sizeof([temp for temp in pixel if blength(temp) % 8 == 0 and blength(temp) == blength(express_getitem(pixel, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == sizeof(pixel)) is not False class IfcPixelTexture_SizeOfPixelList: @@ -9779,14 +9789,14 @@ class IfcPixelTexture_SizeOfPixelList: @staticmethod def __call__(self): - width = getattr(self, 'Width', INDETERMINATE) - height = getattr(self, 'Height', INDETERMINATE) - pixel = getattr(self, 'Pixel', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + height = express_getattr(self, 'Height', INDETERMINATE) + pixel = express_getattr(self, 'Pixel', INDETERMINATE) assert (sizeof(pixel) == width * height) is not False def calc_IfcPlacement_Dim(self): - location = getattr(self, 'Location', INDETERMINATE) - return getattr(location, 'Dim', INDETERMINATE) + location = express_getattr(self, 'Location', INDETERMINATE) + return express_getattr(location, 'Dim', INDETERMINATE) class IfcPlate_CorrectPredefinedType: SCOPE = 'entity' @@ -9795,8 +9805,8 @@ class IfcPlate_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPlate_CorrectTypeAssigned: SCOPE = 'entity' @@ -9805,8 +9815,8 @@ class IfcPlate_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcplatetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcplatetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPlateType_CorrectPredefinedType: SCOPE = 'entity' @@ -9815,8 +9825,8 @@ class IfcPlateType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcPoint_Dim(self): return IfcPointDim(self) @@ -9828,8 +9838,8 @@ class IfcPolyLoop_AllPointsSameDim: @staticmethod def __call__(self): - polygon = getattr(self, 'Polygon', INDETERMINATE) - assert (sizeof([temp for temp in polygon if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(polygon, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + polygon = express_getattr(self, 'Polygon', INDETERMINATE) + assert (sizeof([temp for temp in polygon if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(polygon, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False class IfcPolygonalBoundedHalfSpace_BoundaryDim: SCOPE = 'entity' @@ -9838,8 +9848,8 @@ class IfcPolygonalBoundedHalfSpace_BoundaryDim: @staticmethod def __call__(self): - polygonalboundary = getattr(self, 'PolygonalBoundary', INDETERMINATE) - assert (getattr(polygonalboundary, 'Dim', INDETERMINATE) == 2) is not False + polygonalboundary = express_getattr(self, 'PolygonalBoundary', INDETERMINATE) + assert (express_getattr(polygonalboundary, 'Dim', INDETERMINATE) == 2) is not False class IfcPolygonalBoundedHalfSpace_BoundaryType: SCOPE = 'entity' @@ -9848,7 +9858,7 @@ class IfcPolygonalBoundedHalfSpace_BoundaryType: @staticmethod def __call__(self): - polygonalboundary = getattr(self, 'PolygonalBoundary', INDETERMINATE) + polygonalboundary = express_getattr(self, 'PolygonalBoundary', INDETERMINATE) assert (sizeof(typeof(polygonalboundary) * ['ifc4x3_add2.ifcpolyline', 'ifc4x3_add2.ifccompositecurve', 'ifc4x3_add2.ifcindexedpolycurve']) == 1) is not False class IfcPolyline_SameDim: @@ -9858,8 +9868,8 @@ class IfcPolyline_SameDim: @staticmethod def __call__(self): - points = getattr(self, 'Points', INDETERMINATE) - assert (sizeof([temp for temp in points if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(points, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + points = express_getattr(self, 'Points', INDETERMINATE) + assert (sizeof([temp for temp in points if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(points, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False class IfcPolynomialCurve_CorrectPositionDim: SCOPE = 'entity' @@ -9868,9 +9878,9 @@ class IfcPolynomialCurve_CorrectPositionDim: @staticmethod def __call__(self): - position = getattr(self, 'Position', INDETERMINATE) - coefficientsz = getattr(self, 'CoefficientsZ', INDETERMINATE) - assert (getattr(position, 'Dim', INDETERMINATE) == 2 and (not exists(coefficientsz)) or getattr(position, 'Dim', INDETERMINATE) == 3) is not False + position = express_getattr(self, 'Position', INDETERMINATE) + coefficientsz = express_getattr(self, 'CoefficientsZ', INDETERMINATE) + assert (express_getattr(position, 'Dim', INDETERMINATE) == 2 and (not exists(coefficientsz)) or express_getattr(position, 'Dim', INDETERMINATE) == 3) is not False class IfcPolynomialCurve_ValidCoefficients: SCOPE = 'entity' @@ -9879,9 +9889,9 @@ class IfcPolynomialCurve_ValidCoefficients: @staticmethod def __call__(self): - coefficientsx = getattr(self, 'CoefficientsX', INDETERMINATE) - coefficientsy = getattr(self, 'CoefficientsY', INDETERMINATE) - coefficientsz = getattr(self, 'CoefficientsZ', INDETERMINATE) + coefficientsx = express_getattr(self, 'CoefficientsX', INDETERMINATE) + coefficientsy = express_getattr(self, 'CoefficientsY', INDETERMINATE) + coefficientsz = express_getattr(self, 'CoefficientsZ', INDETERMINATE) assert (exists(coefficientsx) and exists(coefficientsy) or (exists(coefficientsx) and exists(coefficientsz)) or (exists(coefficientsy) and exists(coefficientsz)) or (exists(coefficientsx) and exists(coefficientsy) and exists(coefficientsz))) is not False class IfcPositioningElement_HasPlacement: @@ -9891,7 +9901,7 @@ class IfcPositioningElement_HasPlacement: @staticmethod def __call__(self): - assert exists(getattr(self, 'ObjectPlacement', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'ObjectPlacement', INDETERMINATE)) is not False class IfcPostalAddress_WR1: SCOPE = 'entity' @@ -9900,13 +9910,13 @@ class IfcPostalAddress_WR1: @staticmethod def __call__(self): - internallocation = getattr(self, 'InternalLocation', INDETERMINATE) - addresslines = getattr(self, 'AddressLines', INDETERMINATE) - postalbox = getattr(self, 'PostalBox', INDETERMINATE) - town = getattr(self, 'Town', INDETERMINATE) - region = getattr(self, 'Region', INDETERMINATE) - postalcode = getattr(self, 'PostalCode', INDETERMINATE) - country = getattr(self, 'Country', INDETERMINATE) + internallocation = express_getattr(self, 'InternalLocation', INDETERMINATE) + addresslines = express_getattr(self, 'AddressLines', INDETERMINATE) + postalbox = express_getattr(self, 'PostalBox', INDETERMINATE) + town = express_getattr(self, 'Town', INDETERMINATE) + region = express_getattr(self, 'Region', INDETERMINATE) + postalcode = express_getattr(self, 'PostalCode', INDETERMINATE) + country = express_getattr(self, 'Country', INDETERMINATE) assert (exists(internallocation) or exists(addresslines) or exists(postalbox) or exists(postalcode) or exists(town) or exists(region) or exists(country)) is not False class IfcPresentationLayerAssignment_ApplicableItems: @@ -9916,7 +9926,7 @@ class IfcPresentationLayerAssignment_ApplicableItems: @staticmethod def __call__(self): - assigneditems = getattr(self, 'AssignedItems', INDETERMINATE) + assigneditems = express_getattr(self, 'AssignedItems', INDETERMINATE) assert (sizeof([temp for temp in assigneditems if sizeof(typeof(temp) * ['ifc4x3_add2.ifcshaperepresentation', 'ifc4x3_add2.ifcgeometricrepresentationitem', 'ifc4x3_add2.ifcmappeditem']) == 1]) == sizeof(assigneditems)) is not False class IfcPresentationLayerWithStyle_ApplicableOnlyToItems: @@ -9926,7 +9936,7 @@ class IfcPresentationLayerWithStyle_ApplicableOnlyToItems: @staticmethod def __call__(self): - assigneditems = getattr(self, 'AssignedItems', INDETERMINATE) + assigneditems = express_getattr(self, 'AssignedItems', INDETERMINATE) assert (sizeof([temp for temp in assigneditems if sizeof(typeof(temp) * ['ifc4x3_add2.ifcgeometricrepresentationitem', 'ifc4x3_add2.ifcmappeditem']) >= 1]) == sizeof(assigneditems)) is not False class IfcProcedure_CorrectPredefinedType: @@ -9936,8 +9946,8 @@ class IfcProcedure_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProcedure_HasName: SCOPE = 'entity' @@ -9946,7 +9956,7 @@ class IfcProcedure_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcProcedureType_CorrectPredefinedType: SCOPE = 'entity' @@ -9955,8 +9965,8 @@ class IfcProcedureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcProduct_PlacementForShapeRepresentation: SCOPE = 'entity' @@ -9965,9 +9975,9 @@ class IfcProduct_PlacementForShapeRepresentation: @staticmethod def __call__(self): - objectplacement = getattr(self, 'ObjectPlacement', INDETERMINATE) - representation = getattr(self, 'Representation', INDETERMINATE) - assert (exists(representation) and exists(objectplacement) or (exists(representation) and sizeof([temp for temp in getattr(representation, 'Representations', INDETERMINATE) if 'ifc4x3_add2.ifcshaperepresentation' in typeof(temp)]) == 0) or (not exists(representation))) is not False + objectplacement = express_getattr(self, 'ObjectPlacement', INDETERMINATE) + representation = express_getattr(self, 'Representation', INDETERMINATE) + assert (exists(representation) and exists(objectplacement) or (exists(representation) and sizeof([temp for temp in express_getattr(representation, 'Representations', INDETERMINATE) if 'ifc4x3_add2.ifcshaperepresentation' in typeof(temp)]) == 0) or (not exists(representation))) is not False class IfcProductDefinitionShape_OnlyShapeModel: SCOPE = 'entity' @@ -9976,7 +9986,7 @@ class IfcProductDefinitionShape_OnlyShapeModel: @staticmethod def __call__(self): - representations = getattr(self, 'Representations', INDETERMINATE) + representations = express_getattr(self, 'Representations', INDETERMINATE) assert (sizeof([temp for temp in representations if not 'ifc4x3_add2.ifcshapemodel' in typeof(temp)]) == 0) is not False class IfcProject_CorrectContext: @@ -9986,7 +9996,7 @@ class IfcProject_CorrectContext: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'RepresentationContexts', INDETERMINATE)) or sizeof([temp for temp in getattr(self, 'RepresentationContexts', INDETERMINATE) if 'ifc4x3_add2.ifcgeometricrepresentationsubcontext' in typeof(temp)]) == 0) is not False + assert (not exists(express_getattr(self, 'RepresentationContexts', INDETERMINATE)) or sizeof([temp for temp in express_getattr(self, 'RepresentationContexts', INDETERMINATE) if 'ifc4x3_add2.ifcgeometricrepresentationsubcontext' in typeof(temp)]) == 0) is not False class IfcProject_HasName: SCOPE = 'entity' @@ -9995,7 +10005,7 @@ class IfcProject_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcProject_NoDecomposition: SCOPE = 'entity' @@ -10004,7 +10014,7 @@ class IfcProject_NoDecomposition: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'Decomposes', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'Decomposes', INDETERMINATE)) == 0) is not False class IfcProjectedCRS_MapUnitIsLength: SCOPE = 'entity' @@ -10013,7 +10023,7 @@ class IfcProjectedCRS_MapUnitIsLength: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'MapUnit', INDETERMINATE)) or getattr(getattr(self, 'MapUnit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'MapUnit', INDETERMINATE)) or express_getattr(express_getattr(self, 'MapUnit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False class IfcProjectionElement_CorrectPredefinedType: SCOPE = 'entity' @@ -10022,8 +10032,8 @@ class IfcProjectionElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPropertyBoundedValue_SameUnitLowerSet: SCOPE = 'entity' @@ -10032,8 +10042,8 @@ class IfcPropertyBoundedValue_SameUnitLowerSet: @staticmethod def __call__(self): - lowerboundvalue = getattr(self, 'LowerBoundValue', INDETERMINATE) - setpointvalue = getattr(self, 'SetPointValue', INDETERMINATE) + lowerboundvalue = express_getattr(self, 'LowerBoundValue', INDETERMINATE) + setpointvalue = express_getattr(self, 'SetPointValue', INDETERMINATE) assert (not exists(lowerboundvalue) or not exists(setpointvalue) or typeof(lowerboundvalue) == typeof(setpointvalue)) is not False class IfcPropertyBoundedValue_SameUnitUpperLower: @@ -10043,8 +10053,8 @@ class IfcPropertyBoundedValue_SameUnitUpperLower: @staticmethod def __call__(self): - upperboundvalue = getattr(self, 'UpperBoundValue', INDETERMINATE) - lowerboundvalue = getattr(self, 'LowerBoundValue', INDETERMINATE) + upperboundvalue = express_getattr(self, 'UpperBoundValue', INDETERMINATE) + lowerboundvalue = express_getattr(self, 'LowerBoundValue', INDETERMINATE) assert (not exists(upperboundvalue) or not exists(lowerboundvalue) or typeof(upperboundvalue) == typeof(lowerboundvalue)) is not False class IfcPropertyBoundedValue_SameUnitUpperSet: @@ -10054,8 +10064,8 @@ class IfcPropertyBoundedValue_SameUnitUpperSet: @staticmethod def __call__(self): - upperboundvalue = getattr(self, 'UpperBoundValue', INDETERMINATE) - setpointvalue = getattr(self, 'SetPointValue', INDETERMINATE) + upperboundvalue = express_getattr(self, 'UpperBoundValue', INDETERMINATE) + setpointvalue = express_getattr(self, 'SetPointValue', INDETERMINATE) assert (not exists(upperboundvalue) or not exists(setpointvalue) or typeof(upperboundvalue) == typeof(setpointvalue)) is not False class IfcPropertyDependencyRelationship_NoSelfReference: @@ -10065,8 +10075,8 @@ class IfcPropertyDependencyRelationship_NoSelfReference: @staticmethod def __call__(self): - dependingproperty = getattr(self, 'DependingProperty', INDETERMINATE) - dependantproperty = getattr(self, 'DependantProperty', INDETERMINATE) + dependingproperty = express_getattr(self, 'DependingProperty', INDETERMINATE) + dependantproperty = express_getattr(self, 'DependantProperty', INDETERMINATE) assert (dependingproperty != dependantproperty) is not False class IfcPropertyEnumeratedValue_WR21: @@ -10076,9 +10086,9 @@ class IfcPropertyEnumeratedValue_WR21: @staticmethod def __call__(self): - enumerationvalues = getattr(self, 'EnumerationValues', INDETERMINATE) - enumerationreference = getattr(self, 'EnumerationReference', INDETERMINATE) - assert (not exists(enumerationreference) or not exists(enumerationvalues) or sizeof([temp for temp in enumerationvalues if temp in getattr(enumerationreference, 'EnumerationValues', INDETERMINATE)]) == sizeof(enumerationvalues)) is not False + enumerationvalues = express_getattr(self, 'EnumerationValues', INDETERMINATE) + enumerationreference = express_getattr(self, 'EnumerationReference', INDETERMINATE) + assert (not exists(enumerationreference) or not exists(enumerationvalues) or sizeof([temp for temp in enumerationvalues if temp in express_getattr(enumerationreference, 'EnumerationValues', INDETERMINATE)]) == sizeof(enumerationvalues)) is not False class IfcPropertyEnumeration_WR01: SCOPE = 'entity' @@ -10087,7 +10097,7 @@ class IfcPropertyEnumeration_WR01: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'EnumerationValues', INDETERMINATE) if not typeof(express_getitem(getattr(self, 'EnumerationValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'EnumerationValues', INDETERMINATE) if not typeof(express_getitem(express_getattr(self, 'EnumerationValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False class IfcPropertyListValue_WR31: SCOPE = 'entity' @@ -10096,7 +10106,7 @@ class IfcPropertyListValue_WR31: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'ListValues', INDETERMINATE) if not typeof(express_getitem(getattr(self, 'ListValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'ListValues', INDETERMINATE) if not typeof(express_getitem(express_getattr(self, 'ListValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False class IfcPropertySet_ExistsName: SCOPE = 'entity' @@ -10105,7 +10115,7 @@ class IfcPropertySet_ExistsName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPropertySet_UniquePropertyNames: SCOPE = 'entity' @@ -10114,7 +10124,7 @@ class IfcPropertySet_UniquePropertyNames: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert IfcUniquePropertyName(hasproperties) is not False class IfcPropertySetTemplate_ExistsName: @@ -10124,7 +10134,7 @@ class IfcPropertySetTemplate_ExistsName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPropertySetTemplate_UniquePropertyNames: SCOPE = 'entity' @@ -10133,7 +10143,7 @@ class IfcPropertySetTemplate_UniquePropertyNames: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert IfcUniquePropertyTemplateNames(haspropertytemplates) is not False class IfcPropertyTableValue_WR21: @@ -10143,8 +10153,8 @@ class IfcPropertyTableValue_WR21: @staticmethod def __call__(self): - definingvalues = getattr(self, 'DefiningValues', INDETERMINATE) - definedvalues = getattr(self, 'DefinedValues', INDETERMINATE) + definingvalues = express_getattr(self, 'DefiningValues', INDETERMINATE) + definedvalues = express_getattr(self, 'DefinedValues', INDETERMINATE) assert (not exists(definingvalues) and (not exists(definedvalues)) or sizeof(definingvalues) == sizeof(definedvalues)) is not False class IfcPropertyTableValue_WR22: @@ -10154,8 +10164,8 @@ class IfcPropertyTableValue_WR22: @staticmethod def __call__(self): - definingvalues = getattr(self, 'DefiningValues', INDETERMINATE) - assert (not exists(definingvalues) or sizeof([temp for temp in getattr(self, 'DefiningValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(getattr(self, 'DefiningValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False + definingvalues = express_getattr(self, 'DefiningValues', INDETERMINATE) + assert (not exists(definingvalues) or sizeof([temp for temp in express_getattr(self, 'DefiningValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(express_getattr(self, 'DefiningValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False class IfcPropertyTableValue_WR23: SCOPE = 'entity' @@ -10164,8 +10174,8 @@ class IfcPropertyTableValue_WR23: @staticmethod def __call__(self): - definedvalues = getattr(self, 'DefinedValues', INDETERMINATE) - assert (not exists(definedvalues) or sizeof([temp for temp in getattr(self, 'DefinedValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(getattr(self, 'DefinedValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False + definedvalues = express_getattr(self, 'DefinedValues', INDETERMINATE) + assert (not exists(definedvalues) or sizeof([temp for temp in express_getattr(self, 'DefinedValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(express_getattr(self, 'DefinedValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False class IfcProtectiveDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -10174,8 +10184,8 @@ class IfcProtectiveDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProtectiveDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -10184,8 +10194,8 @@ class IfcProtectiveDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcprotectivedevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcprotectivedevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcProtectiveDeviceTrippingUnit_CorrectPredefinedType: SCOPE = 'entity' @@ -10194,8 +10204,8 @@ class IfcProtectiveDeviceTrippingUnit_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProtectiveDeviceTrippingUnit_CorrectTypeAssigned: SCOPE = 'entity' @@ -10204,8 +10214,8 @@ class IfcProtectiveDeviceTrippingUnit_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcprotectivedevicetrippingunittype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcprotectivedevicetrippingunittype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcProtectiveDeviceTrippingUnitType_CorrectPredefinedType: SCOPE = 'entity' @@ -10214,8 +10224,8 @@ class IfcProtectiveDeviceTrippingUnitType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcProtectiveDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -10224,8 +10234,8 @@ class IfcProtectiveDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPump_CorrectPredefinedType: SCOPE = 'entity' @@ -10234,8 +10244,8 @@ class IfcPump_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPump_CorrectTypeAssigned: SCOPE = 'entity' @@ -10244,8 +10254,8 @@ class IfcPump_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcpumptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcpumptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPumpType_CorrectPredefinedType: SCOPE = 'entity' @@ -10254,8 +10264,8 @@ class IfcPumpType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcQuantityArea_WR21: SCOPE = 'entity' @@ -10264,7 +10274,7 @@ class IfcQuantityArea_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE)) is not False class IfcQuantityArea_WR22: SCOPE = 'entity' @@ -10273,7 +10283,7 @@ class IfcQuantityArea_WR22: @staticmethod def __call__(self): - areavalue = getattr(self, 'AreaValue', INDETERMINATE) + areavalue = express_getattr(self, 'AreaValue', INDETERMINATE) assert (areavalue >= 0.0) is not False class IfcQuantityCount_WR21: @@ -10283,7 +10293,7 @@ class IfcQuantityCount_WR21: @staticmethod def __call__(self): - countvalue = getattr(self, 'CountValue', INDETERMINATE) + countvalue = express_getattr(self, 'CountValue', INDETERMINATE) assert (countvalue >= 0) is not False class IfcQuantityLength_WR21: @@ -10293,7 +10303,7 @@ class IfcQuantityLength_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False class IfcQuantityLength_WR22: SCOPE = 'entity' @@ -10302,7 +10312,7 @@ class IfcQuantityLength_WR22: @staticmethod def __call__(self): - lengthvalue = getattr(self, 'LengthValue', INDETERMINATE) + lengthvalue = express_getattr(self, 'LengthValue', INDETERMINATE) assert (lengthvalue >= 0.0) is not False class IfcQuantityTime_WR21: @@ -10312,7 +10322,7 @@ class IfcQuantityTime_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE)) is not False class IfcQuantityTime_WR22: SCOPE = 'entity' @@ -10321,7 +10331,7 @@ class IfcQuantityTime_WR22: @staticmethod def __call__(self): - timevalue = getattr(self, 'TimeValue', INDETERMINATE) + timevalue = express_getattr(self, 'TimeValue', INDETERMINATE) assert (timevalue >= 0.0) is not False class IfcQuantityVolume_WR21: @@ -10331,7 +10341,7 @@ class IfcQuantityVolume_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE)) is not False class IfcQuantityVolume_WR22: SCOPE = 'entity' @@ -10340,7 +10350,7 @@ class IfcQuantityVolume_WR22: @staticmethod def __call__(self): - volumevalue = getattr(self, 'VolumeValue', INDETERMINATE) + volumevalue = express_getattr(self, 'VolumeValue', INDETERMINATE) assert (volumevalue >= 0.0) is not False class IfcQuantityWeight_WR21: @@ -10350,7 +10360,7 @@ class IfcQuantityWeight_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE)) is not False class IfcQuantityWeight_WR22: SCOPE = 'entity' @@ -10359,7 +10369,7 @@ class IfcQuantityWeight_WR22: @staticmethod def __call__(self): - weightvalue = getattr(self, 'WeightValue', INDETERMINATE) + weightvalue = express_getattr(self, 'WeightValue', INDETERMINATE) assert (weightvalue >= 0.0) is not False class IfcRail_CorrectPredefinedType: @@ -10369,8 +10379,8 @@ class IfcRail_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRail_CorrectTypeAssigned: SCOPE = 'entity' @@ -10379,8 +10389,8 @@ class IfcRail_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcrailtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcrailtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRailType_CorrectPredefinedType: SCOPE = 'entity' @@ -10389,8 +10399,8 @@ class IfcRailType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRailing_CorrectPredefinedType: SCOPE = 'entity' @@ -10399,8 +10409,8 @@ class IfcRailing_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRailing_CorrectTypeAssigned: SCOPE = 'entity' @@ -10409,8 +10419,8 @@ class IfcRailing_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcrailingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcrailingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRailingType_CorrectPredefinedType: SCOPE = 'entity' @@ -10419,8 +10429,8 @@ class IfcRailingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRailway_CorrectPredefinedType: SCOPE = 'entity' @@ -10429,8 +10439,8 @@ class IfcRailway_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRailwayPart_CorrectPredefinedType: SCOPE = 'entity' @@ -10439,8 +10449,8 @@ class IfcRailwayPart_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRamp_CorrectPredefinedType: SCOPE = 'entity' @@ -10449,8 +10459,8 @@ class IfcRamp_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRamp_CorrectTypeAssigned: SCOPE = 'entity' @@ -10459,8 +10469,8 @@ class IfcRamp_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcramptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcramptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRampFlight_CorrectPredefinedType: SCOPE = 'entity' @@ -10469,8 +10479,8 @@ class IfcRampFlight_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRampFlight_CorrectTypeAssigned: SCOPE = 'entity' @@ -10479,8 +10489,8 @@ class IfcRampFlight_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcrampflighttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcrampflighttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRampFlightType_CorrectPredefinedType: SCOPE = 'entity' @@ -10489,8 +10499,8 @@ class IfcRampFlightType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRampType_CorrectPredefinedType: SCOPE = 'entity' @@ -10499,8 +10509,8 @@ class IfcRampType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRationalBSplineCurveWithKnots_SameNumOfWeightsAndPoints: SCOPE = 'entity' @@ -10509,8 +10519,8 @@ class IfcRationalBSplineCurveWithKnots_SameNumOfWeightsAndPoints: @staticmethod def __call__(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - assert (sizeof(weightsdata) == sizeof(getattr(self, 'ControlPointsList', INDETERMINATE))) is not False + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + assert (sizeof(weightsdata) == sizeof(express_getattr(self, 'ControlPointsList', INDETERMINATE))) is not False class IfcRationalBSplineCurveWithKnots_WeightsGreaterZero: SCOPE = 'entity' @@ -10522,8 +10532,8 @@ class IfcRationalBSplineCurveWithKnots_WeightsGreaterZero: assert IfcCurveWeightsPositive(self) is not False def calc_IfcRationalBSplineCurveWithKnots_Weights(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - return IfcListToArray(weightsdata, 0, getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE)) + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + return IfcListToArray(weightsdata, 0, express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE)) class IfcRationalBSplineSurfaceWithKnots_CorrespondingWeightsDataLists: SCOPE = 'entity' @@ -10532,8 +10542,8 @@ class IfcRationalBSplineSurfaceWithKnots_CorrespondingWeightsDataLists: @staticmethod def __call__(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - assert (sizeof(weightsdata) == sizeof(getattr(self, 'ControlPointsList', INDETERMINATE)) and sizeof(express_getitem(weightsdata, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == sizeof(express_getitem(getattr(self, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + assert (sizeof(weightsdata) == sizeof(express_getattr(self, 'ControlPointsList', INDETERMINATE)) and sizeof(express_getitem(weightsdata, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == sizeof(express_getitem(express_getattr(self, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcRationalBSplineSurfaceWithKnots_WeightValuesGreaterZero: SCOPE = 'entity' @@ -10545,9 +10555,9 @@ class IfcRationalBSplineSurfaceWithKnots_WeightValuesGreaterZero: assert IfcSurfaceWeightsPositive(self) is not False def calc_IfcRationalBSplineSurfaceWithKnots_Weights(self): - uupper = getattr(self, 'UUpper', INDETERMINATE) - vupper = getattr(self, 'VUpper', INDETERMINATE) - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) + uupper = express_getattr(self, 'UUpper', INDETERMINATE) + vupper = express_getattr(self, 'VUpper', INDETERMINATE) + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) return IfcMakeArrayOfArray(weightsdata, 0, uupper, 0, vupper) class IfcRectangleHollowProfileDef_ValidInnerRadius: @@ -10557,9 +10567,9 @@ class IfcRectangleHollowProfileDef_ValidInnerRadius: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - innerfilletradius = getattr(self, 'InnerFilletRadius', INDETERMINATE) - assert (not exists(innerfilletradius) or (innerfilletradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 - wallthickness and innerfilletradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0 - wallthickness)) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + innerfilletradius = express_getattr(self, 'InnerFilletRadius', INDETERMINATE) + assert (not exists(innerfilletradius) or (innerfilletradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 - wallthickness and innerfilletradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0 - wallthickness)) is not False class IfcRectangleHollowProfileDef_ValidOuterRadius: SCOPE = 'entity' @@ -10568,8 +10578,8 @@ class IfcRectangleHollowProfileDef_ValidOuterRadius: @staticmethod def __call__(self): - outerfilletradius = getattr(self, 'OuterFilletRadius', INDETERMINATE) - assert (not exists(outerfilletradius) or (outerfilletradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 and outerfilletradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0)) is not False + outerfilletradius = express_getattr(self, 'OuterFilletRadius', INDETERMINATE) + assert (not exists(outerfilletradius) or (outerfilletradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and outerfilletradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0)) is not False class IfcRectangleHollowProfileDef_ValidWallThickness: SCOPE = 'entity' @@ -10578,8 +10588,8 @@ class IfcRectangleHollowProfileDef_ValidWallThickness: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - assert (wallthickness < getattr(self, 'XDim', INDETERMINATE) / 2.0 and wallthickness < getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + assert (wallthickness < express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and wallthickness < express_getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False class IfcRectangularTrimmedSurface_U1AndU2Different: SCOPE = 'entity' @@ -10588,8 +10598,8 @@ class IfcRectangularTrimmedSurface_U1AndU2Different: @staticmethod def __call__(self): - u1 = getattr(self, 'U1', INDETERMINATE) - u2 = getattr(self, 'U2', INDETERMINATE) + u1 = express_getattr(self, 'U1', INDETERMINATE) + u2 = express_getattr(self, 'U2', INDETERMINATE) assert (u1 != u2) is not False class IfcRectangularTrimmedSurface_UsenseCompatible: @@ -10599,10 +10609,10 @@ class IfcRectangularTrimmedSurface_UsenseCompatible: @staticmethod def __call__(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) - u1 = getattr(self, 'U1', INDETERMINATE) - u2 = getattr(self, 'U2', INDETERMINATE) - usense = getattr(self, 'Usense', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) + u1 = express_getattr(self, 'U1', INDETERMINATE) + u2 = express_getattr(self, 'U2', INDETERMINATE) + usense = express_getattr(self, 'Usense', INDETERMINATE) assert ('ifc4x3_add2.ifcelementarysurface' in typeof(basissurface) and (not 'ifc4x3_add2.ifcplane' in typeof(basissurface)) or 'ifc4x3_add2.ifcsurfaceofrevolution' in typeof(basissurface) or usense == (u2 > u1)) is not False class IfcRectangularTrimmedSurface_V1AndV2Different: @@ -10612,8 +10622,8 @@ class IfcRectangularTrimmedSurface_V1AndV2Different: @staticmethod def __call__(self): - v1 = getattr(self, 'V1', INDETERMINATE) - v2 = getattr(self, 'V2', INDETERMINATE) + v1 = express_getattr(self, 'V1', INDETERMINATE) + v2 = express_getattr(self, 'V2', INDETERMINATE) assert (v1 != v2) is not False class IfcRectangularTrimmedSurface_VsenseCompatible: @@ -10623,9 +10633,9 @@ class IfcRectangularTrimmedSurface_VsenseCompatible: @staticmethod def __call__(self): - v1 = getattr(self, 'V1', INDETERMINATE) - v2 = getattr(self, 'V2', INDETERMINATE) - vsense = getattr(self, 'Vsense', INDETERMINATE) + v1 = express_getattr(self, 'V1', INDETERMINATE) + v2 = express_getattr(self, 'V2', INDETERMINATE) + vsense = express_getattr(self, 'Vsense', INDETERMINATE) assert (vsense == (v2 > v1)) is not False class IfcReinforcedSoil_CorrectPredefinedType: @@ -10635,8 +10645,8 @@ class IfcReinforcedSoil_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingBar_CorrectPredefinedType: SCOPE = 'entity' @@ -10645,8 +10655,8 @@ class IfcReinforcingBar_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingBar_CorrectTypeAssigned: SCOPE = 'entity' @@ -10655,8 +10665,8 @@ class IfcReinforcingBar_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcreinforcingbartype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcreinforcingbartype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcReinforcingBarType_BendingShapeCodeProvided: SCOPE = 'entity' @@ -10665,8 +10675,8 @@ class IfcReinforcingBarType_BendingShapeCodeProvided: @staticmethod def __call__(self): - bendingshapecode = getattr(self, 'BendingShapeCode', INDETERMINATE) - bendingparameters = getattr(self, 'BendingParameters', INDETERMINATE) + bendingshapecode = express_getattr(self, 'BendingShapeCode', INDETERMINATE) + bendingparameters = express_getattr(self, 'BendingParameters', INDETERMINATE) assert (not exists(bendingparameters) or exists(bendingshapecode)) is not False class IfcReinforcingBarType_CorrectPredefinedType: @@ -10676,8 +10686,8 @@ class IfcReinforcingBarType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcReinforcingMesh_CorrectPredefinedType: SCOPE = 'entity' @@ -10686,8 +10696,8 @@ class IfcReinforcingMesh_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingMesh_CorrectTypeAssigned: SCOPE = 'entity' @@ -10696,8 +10706,8 @@ class IfcReinforcingMesh_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcreinforcingmeshtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcreinforcingmeshtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcReinforcingMeshType_BendingShapeCodeProvided: SCOPE = 'entity' @@ -10706,8 +10716,8 @@ class IfcReinforcingMeshType_BendingShapeCodeProvided: @staticmethod def __call__(self): - bendingshapecode = getattr(self, 'BendingShapeCode', INDETERMINATE) - bendingparameters = getattr(self, 'BendingParameters', INDETERMINATE) + bendingshapecode = express_getattr(self, 'BendingShapeCode', INDETERMINATE) + bendingparameters = express_getattr(self, 'BendingParameters', INDETERMINATE) assert (not exists(bendingparameters) or exists(bendingshapecode)) is not False class IfcReinforcingMeshType_CorrectPredefinedType: @@ -10717,8 +10727,8 @@ class IfcReinforcingMeshType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRelAggregates_NoSelfReference: SCOPE = 'entity' @@ -10727,8 +10737,8 @@ class IfcRelAggregates_NoSelfReference: @staticmethod def __call__(self): - relatingobject = getattr(self, 'RelatingObject', INDETERMINATE) - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) + relatingobject = express_getattr(self, 'RelatingObject', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) assert (sizeof([temp for temp in relatedobjects if relatingobject == temp]) == 0) is not False class IfcRelAssignsToActor_NoSelfReference: @@ -10738,8 +10748,8 @@ class IfcRelAssignsToActor_NoSelfReference: @staticmethod def __call__(self): - relatingactor = getattr(self, 'RelatingActor', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingactor == temp]) == 0) is not False + relatingactor = express_getattr(self, 'RelatingActor', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingactor == temp]) == 0) is not False class IfcRelAssignsToControl_NoSelfReference: SCOPE = 'entity' @@ -10748,8 +10758,8 @@ class IfcRelAssignsToControl_NoSelfReference: @staticmethod def __call__(self): - relatingcontrol = getattr(self, 'RelatingControl', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingcontrol == temp]) == 0) is not False + relatingcontrol = express_getattr(self, 'RelatingControl', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingcontrol == temp]) == 0) is not False class IfcRelAssignsToGroup_NoSelfReference: SCOPE = 'entity' @@ -10758,8 +10768,8 @@ class IfcRelAssignsToGroup_NoSelfReference: @staticmethod def __call__(self): - relatinggroup = getattr(self, 'RelatingGroup', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatinggroup == temp]) == 0) is not False + relatinggroup = express_getattr(self, 'RelatingGroup', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatinggroup == temp]) == 0) is not False class IfcRelAssignsToProcess_NoSelfReference: SCOPE = 'entity' @@ -10768,8 +10778,8 @@ class IfcRelAssignsToProcess_NoSelfReference: @staticmethod def __call__(self): - relatingprocess = getattr(self, 'RelatingProcess', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingprocess == temp]) == 0) is not False + relatingprocess = express_getattr(self, 'RelatingProcess', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingprocess == temp]) == 0) is not False class IfcRelAssignsToProduct_NoSelfReference: SCOPE = 'entity' @@ -10778,8 +10788,8 @@ class IfcRelAssignsToProduct_NoSelfReference: @staticmethod def __call__(self): - relatingproduct = getattr(self, 'RelatingProduct', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingproduct == temp]) == 0) is not False + relatingproduct = express_getattr(self, 'RelatingProduct', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingproduct == temp]) == 0) is not False class IfcRelAssignsToResource_NoSelfReference: SCOPE = 'entity' @@ -10788,8 +10798,8 @@ class IfcRelAssignsToResource_NoSelfReference: @staticmethod def __call__(self): - relatingresource = getattr(self, 'RelatingResource', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingresource == temp]) == 0) is not False + relatingresource = express_getattr(self, 'RelatingResource', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingresource == temp]) == 0) is not False class IfcRelAssociatesMaterial_AllowedElements: SCOPE = 'entity' @@ -10798,7 +10808,7 @@ class IfcRelAssociatesMaterial_AllowedElements: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if sizeof(typeof(temp) * ['ifc4x3_add2.ifcelement', 'ifc4x3_add2.ifcelementtype', 'ifc4x3_add2.ifcstructuralmember', 'ifc4x3_add2.ifcport']) == 0]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if sizeof(typeof(temp) * ['ifc4x3_add2.ifcelement', 'ifc4x3_add2.ifcelementtype', 'ifc4x3_add2.ifcstructuralmember', 'ifc4x3_add2.ifcport']) == 0]) == 0) is not False class IfcRelAssociatesMaterial_NoVoidElement: SCOPE = 'entity' @@ -10807,7 +10817,7 @@ class IfcRelAssociatesMaterial_NoVoidElement: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3_add2.ifcfeatureelementsubtraction' in typeof(temp) or 'ifc4x3_add2.ifcvirtualelement' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3_add2.ifcfeatureelementsubtraction' in typeof(temp) or 'ifc4x3_add2.ifcvirtualelement' in typeof(temp)]) == 0) is not False class IfcRelConnectsElements_NoSelfReference: SCOPE = 'entity' @@ -10816,8 +10826,8 @@ class IfcRelConnectsElements_NoSelfReference: @staticmethod def __call__(self): - relatingelement = getattr(self, 'RelatingElement', INDETERMINATE) - relatedelement = getattr(self, 'RelatedElement', INDETERMINATE) + relatingelement = express_getattr(self, 'RelatingElement', INDETERMINATE) + relatedelement = express_getattr(self, 'RelatedElement', INDETERMINATE) assert (relatingelement != relatedelement) is not False class IfcRelConnectsPathElements_NormalizedRelatedPriorities: @@ -10827,7 +10837,7 @@ class IfcRelConnectsPathElements_NormalizedRelatedPriorities: @staticmethod def __call__(self): - relatedpriorities = getattr(self, 'RelatedPriorities', INDETERMINATE) + relatedpriorities = express_getattr(self, 'RelatedPriorities', INDETERMINATE) assert (sizeof(relatedpriorities) == 0 or sizeof([temp for temp in relatedpriorities if 0 <= temp <= 100]) == sizeof(relatedpriorities)) is not False class IfcRelConnectsPathElements_NormalizedRelatingPriorities: @@ -10837,7 +10847,7 @@ class IfcRelConnectsPathElements_NormalizedRelatingPriorities: @staticmethod def __call__(self): - relatingpriorities = getattr(self, 'RelatingPriorities', INDETERMINATE) + relatingpriorities = express_getattr(self, 'RelatingPriorities', INDETERMINATE) assert (sizeof(relatingpriorities) == 0 or sizeof([temp for temp in relatingpriorities if 0 <= temp <= 100]) == sizeof(relatingpriorities)) is not False class IfcRelConnectsPorts_NoSelfReference: @@ -10847,8 +10857,8 @@ class IfcRelConnectsPorts_NoSelfReference: @staticmethod def __call__(self): - relatingport = getattr(self, 'RelatingPort', INDETERMINATE) - relatedport = getattr(self, 'RelatedPort', INDETERMINATE) + relatingport = express_getattr(self, 'RelatingPort', INDETERMINATE) + relatedport = express_getattr(self, 'RelatedPort', INDETERMINATE) assert (relatingport != relatedport) is not False class IfcRelContainedInSpatialStructure_WR31: @@ -10858,7 +10868,7 @@ class IfcRelContainedInSpatialStructure_WR31: @staticmethod def __call__(self): - relatedelements = getattr(self, 'RelatedElements', INDETERMINATE) + relatedelements = express_getattr(self, 'RelatedElements', INDETERMINATE) assert (sizeof([temp for temp in relatedelements if 'ifc4x3_add2.ifcspatialstructureelement' in typeof(temp)]) == 0) is not False class IfcRelDeclares_NoSelfReference: @@ -10868,8 +10878,8 @@ class IfcRelDeclares_NoSelfReference: @staticmethod def __call__(self): - relatingcontext = getattr(self, 'RelatingContext', INDETERMINATE) - relateddefinitions = getattr(self, 'RelatedDefinitions', INDETERMINATE) + relatingcontext = express_getattr(self, 'RelatingContext', INDETERMINATE) + relateddefinitions = express_getattr(self, 'RelatedDefinitions', INDETERMINATE) assert (sizeof([temp for temp in relateddefinitions if relatingcontext == temp]) == 0) is not False class IfcRelDefinesByProperties_NoRelatedTypeObject: @@ -10879,7 +10889,7 @@ class IfcRelDefinesByProperties_NoRelatedTypeObject: @staticmethod def __call__(self): - assert (sizeof([types for types in getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3_add2.ifctypeobject' in typeof(types)]) == 0) is not False + assert (sizeof([types for types in express_getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3_add2.ifctypeobject' in typeof(types)]) == 0) is not False class IfcRelInterferesElements_NoSelfReference: SCOPE = 'entity' @@ -10888,8 +10898,8 @@ class IfcRelInterferesElements_NoSelfReference: @staticmethod def __call__(self): - relatingelement = getattr(self, 'RelatingElement', INDETERMINATE) - relatedelement = getattr(self, 'RelatedElement', INDETERMINATE) + relatingelement = express_getattr(self, 'RelatingElement', INDETERMINATE) + relatedelement = express_getattr(self, 'RelatedElement', INDETERMINATE) assert (relatingelement != relatedelement) is not False class IfcRelNests_NoSelfReference: @@ -10899,8 +10909,8 @@ class IfcRelNests_NoSelfReference: @staticmethod def __call__(self): - relatingobject = getattr(self, 'RelatingObject', INDETERMINATE) - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) + relatingobject = express_getattr(self, 'RelatingObject', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) assert (sizeof([temp for temp in relatedobjects if relatingobject == temp]) == 0) is not False class IfcRelPositions_NoSelfReference: @@ -10910,8 +10920,8 @@ class IfcRelPositions_NoSelfReference: @staticmethod def __call__(self): - relatingpositioningelement = getattr(self, 'RelatingPositioningElement', INDETERMINATE) - relatedproducts = getattr(self, 'RelatedProducts', INDETERMINATE) + relatingpositioningelement = express_getattr(self, 'RelatingPositioningElement', INDETERMINATE) + relatedproducts = express_getattr(self, 'RelatedProducts', INDETERMINATE) assert (sizeof([temp for temp in relatedproducts if relatingpositioningelement == temp]) == 0) is not False class IfcRelReferencedInSpatialStructure_AllowedRelatedElements: @@ -10921,7 +10931,7 @@ class IfcRelReferencedInSpatialStructure_AllowedRelatedElements: @staticmethod def __call__(self): - relatedelements = getattr(self, 'RelatedElements', INDETERMINATE) + relatedelements = express_getattr(self, 'RelatedElements', INDETERMINATE) assert (sizeof([temp for temp in relatedelements if 'ifc4x3_add2.ifcspatialstructureelement' in typeof(temp) and (not 'ifc4x3_add2.ifcspace' in typeof(temp))]) == 0) is not False class IfcRelSequence_AvoidInconsistentSequence: @@ -10931,8 +10941,8 @@ class IfcRelSequence_AvoidInconsistentSequence: @staticmethod def __call__(self): - relatingprocess = getattr(self, 'RelatingProcess', INDETERMINATE) - relatedprocess = getattr(self, 'RelatedProcess', INDETERMINATE) + relatingprocess = express_getattr(self, 'RelatingProcess', INDETERMINATE) + relatedprocess = express_getattr(self, 'RelatedProcess', INDETERMINATE) assert (relatingprocess != relatedprocess) is not False class IfcRelSequence_CorrectSequenceType: @@ -10942,9 +10952,9 @@ class IfcRelSequence_CorrectSequenceType: @staticmethod def __call__(self): - sequencetype = getattr(self, 'SequenceType', INDETERMINATE) - userdefinedsequencetype = getattr(self, 'UserDefinedSequenceType', INDETERMINATE) - assert (sequencetype != getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) or (sequencetype == getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedsequencetype))) is not False + sequencetype = express_getattr(self, 'SequenceType', INDETERMINATE) + userdefinedsequencetype = express_getattr(self, 'UserDefinedSequenceType', INDETERMINATE) + assert (sequencetype != express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) or (sequencetype == express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedsequencetype))) is not False class IfcRelSpaceBoundary_CorrectPhysOrVirt: SCOPE = 'entity' @@ -10953,9 +10963,9 @@ class IfcRelSpaceBoundary_CorrectPhysOrVirt: @staticmethod def __call__(self): - relatedbuildingelement = getattr(self, 'RelatedBuildingElement', INDETERMINATE) - physicalorvirtualboundary = getattr(self, 'PhysicalOrVirtualBoundary', INDETERMINATE) - assert (physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'Physical', INDETERMINATE) and (not 'ifc4x3_add2.ifcvirtualelement' in typeof(relatedbuildingelement)) or (physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'Virtual', INDETERMINATE) and ('ifc4x3_add2.ifcvirtualelement' in typeof(relatedbuildingelement) or 'ifc4x3_add2.ifcopeningelement' in typeof(relatedbuildingelement))) or physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'NotDefined', INDETERMINATE)) is not False + relatedbuildingelement = express_getattr(self, 'RelatedBuildingElement', INDETERMINATE) + physicalorvirtualboundary = express_getattr(self, 'PhysicalOrVirtualBoundary', INDETERMINATE) + assert (physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'Physical', INDETERMINATE) and (not 'ifc4x3_add2.ifcvirtualelement' in typeof(relatedbuildingelement)) or (physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'Virtual', INDETERMINATE) and ('ifc4x3_add2.ifcvirtualelement' in typeof(relatedbuildingelement) or 'ifc4x3_add2.ifcopeningelement' in typeof(relatedbuildingelement))) or physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'NotDefined', INDETERMINATE)) is not False class IfcReparametrisedCompositeCurveSegment_PositiveLengthParameter: SCOPE = 'entity' @@ -10964,7 +10974,7 @@ class IfcReparametrisedCompositeCurveSegment_PositiveLengthParameter: @staticmethod def __call__(self): - paramlength = getattr(self, 'ParamLength', INDETERMINATE) + paramlength = express_getattr(self, 'ParamLength', INDETERMINATE) assert (paramlength > 0.0) is not False class IfcRepresentationMap_ApplicableMappedRepr: @@ -10974,7 +10984,7 @@ class IfcRepresentationMap_ApplicableMappedRepr: @staticmethod def __call__(self): - mappedrepresentation = getattr(self, 'MappedRepresentation', INDETERMINATE) + mappedrepresentation = express_getattr(self, 'MappedRepresentation', INDETERMINATE) assert ('ifc4x3_add2.ifcshapemodel' in typeof(mappedrepresentation)) is not False class IfcRevolvedAreaSolid_AxisDirectionInXY: @@ -10984,8 +10994,8 @@ class IfcRevolvedAreaSolid_AxisDirectionInXY: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (express_getitem(getattr(getattr(axis, 'Z', INDETERMINATE), 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (express_getitem(express_getattr(express_getattr(axis, 'Z', INDETERMINATE), 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False class IfcRevolvedAreaSolid_AxisStartInXY: SCOPE = 'entity' @@ -10994,12 +11004,12 @@ class IfcRevolvedAreaSolid_AxisStartInXY: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert ('ifc4x3_add2.ifccartesianpoint' in typeof(getattr(axis, 'Location', INDETERMINATE)) and express_getitem(getattr(getattr(axis, 'Location', INDETERMINATE), 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert ('ifc4x3_add2.ifccartesianpoint' in typeof(express_getattr(axis, 'Location', INDETERMINATE)) and express_getitem(express_getattr(express_getattr(axis, 'Location', INDETERMINATE), 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False def calc_IfcRevolvedAreaSolid_AxisLine(self): - axis = getattr(self, 'Axis', INDETERMINATE) - return IfcLine(Pnt=getattr(axis, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=getattr(axis, 'Z', INDETERMINATE), Magnitude=1.0)) + axis = express_getattr(self, 'Axis', INDETERMINATE) + return IfcLine(Pnt=express_getattr(axis, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=express_getattr(axis, 'Z', INDETERMINATE), Magnitude=1.0)) class IfcRevolvedAreaSolidTapered_CorrectProfileAssignment: SCOPE = 'entity' @@ -11008,7 +11018,7 @@ class IfcRevolvedAreaSolidTapered_CorrectProfileAssignment: @staticmethod def __call__(self): - assert IfcTaperedSweptAreaProfiles(getattr(self, 'SweptArea', INDETERMINATE), getattr(self, 'EndSweptArea', INDETERMINATE)) is not False + assert IfcTaperedSweptAreaProfiles(express_getattr(self, 'SweptArea', INDETERMINATE), express_getattr(self, 'EndSweptArea', INDETERMINATE)) is not False class IfcRigidOperation_SameCoordinateType: SCOPE = 'entity' @@ -11017,8 +11027,8 @@ class IfcRigidOperation_SameCoordinateType: @staticmethod def __call__(self): - firstcoordinate = getattr(self, 'FirstCoordinate', INDETERMINATE) - secondcoordinate = getattr(self, 'SecondCoordinate', INDETERMINATE) + firstcoordinate = express_getattr(self, 'FirstCoordinate', INDETERMINATE) + secondcoordinate = express_getattr(self, 'SecondCoordinate', INDETERMINATE) assert ('ifc4x3_add2.ifclengthmeasure' in typeof(firstcoordinate) and 'ifc4x3_add2.ifclengthmeasure' in typeof(secondcoordinate) or ('ifc4x3_add2.ifcplaneanglemeasure' in typeof(firstcoordinate) and 'ifc4x3_add2.ifcplaneanglemeasure' in typeof(secondcoordinate))) is not False class IfcRoad_CorrectPredefinedType: @@ -11028,8 +11038,8 @@ class IfcRoad_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRoadPart_CorrectPredefinedType: SCOPE = 'entity' @@ -11038,8 +11048,8 @@ class IfcRoadPart_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRoof_CorrectPredefinedType: SCOPE = 'entity' @@ -11048,8 +11058,8 @@ class IfcRoof_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRoof_CorrectTypeAssigned: SCOPE = 'entity' @@ -11058,8 +11068,8 @@ class IfcRoof_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcrooftype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcrooftype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRoofType_CorrectPredefinedType: SCOPE = 'entity' @@ -11068,8 +11078,8 @@ class IfcRoofType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRoundedRectangleProfileDef_ValidRadius: SCOPE = 'entity' @@ -11078,11 +11088,11 @@ class IfcRoundedRectangleProfileDef_ValidRadius: @staticmethod def __call__(self): - roundingradius = getattr(self, 'RoundingRadius', INDETERMINATE) - assert (roundingradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 and roundingradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False + roundingradius = express_getattr(self, 'RoundingRadius', INDETERMINATE) + assert (roundingradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and roundingradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False def calc_IfcSIUnit_Dimensions(self): - return IfcDimensionsForSIUnit(getattr(self, 'Name', INDETERMINATE)) + return IfcDimensionsForSIUnit(express_getattr(self, 'Name', INDETERMINATE)) class IfcSanitaryTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -11091,8 +11101,8 @@ class IfcSanitaryTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSanitaryTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -11101,8 +11111,8 @@ class IfcSanitaryTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcsanitaryterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcsanitaryterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSanitaryTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -11111,8 +11121,8 @@ class IfcSanitaryTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSeamCurve_SameSurface: SCOPE = 'entity' @@ -11121,7 +11131,7 @@ class IfcSeamCurve_SameSurface: @staticmethod def __call__(self): - assert (IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcSeamCurve_TwoPCurves: SCOPE = 'entity' @@ -11130,7 +11140,7 @@ class IfcSeamCurve_TwoPCurves: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False + assert (sizeof(express_getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False class IfcSectionedSolid_ConsistentProfileTypes: SCOPE = 'entity' @@ -11139,8 +11149,8 @@ class IfcSectionedSolid_ConsistentProfileTypes: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - assert (sizeof([temp for temp in crosssections if getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + assert (sizeof([temp for temp in crosssections if express_getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != express_getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcSectionedSolid_DirectrixIs3D: SCOPE = 'entity' @@ -11149,8 +11159,8 @@ class IfcSectionedSolid_DirectrixIs3D: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - assert (getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + assert (express_getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False class IfcSectionedSolid_SectionsSameType: SCOPE = 'entity' @@ -11159,7 +11169,7 @@ class IfcSectionedSolid_SectionsSameType: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) assert (sizeof([temp for temp in crosssections if typeof(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(temp)]) == 0) is not False class IfcSectionedSolidHorizontal_CorrespondingSectionPositions: @@ -11169,8 +11179,8 @@ class IfcSectionedSolidHorizontal_CorrespondingSectionPositions: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) assert (sizeof(crosssections) == sizeof(crosssectionpositions)) is not False class IfcSectionedSolidHorizontal_NoLongitudinalOffsets: @@ -11180,8 +11190,8 @@ class IfcSectionedSolidHorizontal_NoLongitudinalOffsets: @staticmethod def __call__(self): - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) - assert (sizeof([temp for temp in crosssectionpositions if exists(getattr(getattr(temp, 'Location', INDETERMINATE), 'OffsetLongitudinal', INDETERMINATE))]) == 0) is not False + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) + assert (sizeof([temp for temp in crosssectionpositions if exists(express_getattr(express_getattr(temp, 'Location', INDETERMINATE), 'OffsetLongitudinal', INDETERMINATE))]) == 0) is not False class IfcSectionedSpine_ConsistentProfileTypes: SCOPE = 'entity' @@ -11190,8 +11200,8 @@ class IfcSectionedSpine_ConsistentProfileTypes: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - assert (sizeof([temp for temp in crosssections if getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + assert (sizeof([temp for temp in crosssections if express_getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != express_getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcSectionedSpine_CorrespondingSectionPositions: SCOPE = 'entity' @@ -11200,8 +11210,8 @@ class IfcSectionedSpine_CorrespondingSectionPositions: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) assert (sizeof(crosssections) == sizeof(crosssectionpositions)) is not False class IfcSectionedSpine_SpineCurveDim: @@ -11211,8 +11221,8 @@ class IfcSectionedSpine_SpineCurveDim: @staticmethod def __call__(self): - spinecurve = getattr(self, 'SpineCurve', INDETERMINATE) - assert (getattr(spinecurve, 'Dim', INDETERMINATE) == 3) is not False + spinecurve = express_getattr(self, 'SpineCurve', INDETERMINATE) + assert (express_getattr(spinecurve, 'Dim', INDETERMINATE) == 3) is not False def calc_IfcSectionedSpine_Dim(self): return 3 @@ -11224,8 +11234,8 @@ class IfcSectionedSurface_AreaProfileTypes: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - assert (sizeof([temp for temp in crosssections if getattr(temp, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)]) != 0) is not False + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + assert (sizeof([temp for temp in crosssections if express_getattr(temp, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)]) != 0) is not False class IfcSectionedSurface_CorrespondingSectionPositions: SCOPE = 'entity' @@ -11234,8 +11244,8 @@ class IfcSectionedSurface_CorrespondingSectionPositions: @staticmethod def __call__(self): - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) - crosssections = getattr(self, 'CrossSections', INDETERMINATE) + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) assert (sizeof(crosssections) == sizeof(crosssectionpositions)) is not False class IfcSectionedSurface_DirectrixIs3D: @@ -11245,8 +11255,8 @@ class IfcSectionedSurface_DirectrixIs3D: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - assert (getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + assert (express_getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False class IfcSectionedSurface_NoOffsets: SCOPE = 'entity' @@ -11255,8 +11265,8 @@ class IfcSectionedSurface_NoOffsets: @staticmethod def __call__(self): - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) - assert (sizeof([temp for temp in crosssectionpositions if exists(getattr(getattr(temp, 'Location', INDETERMINATE), 'OffsetLateral', INDETERMINATE)) or exists(getattr(getattr(temp, 'Location', INDETERMINATE), 'OffsetVertical', INDETERMINATE)) or exists(getattr(getattr(temp, 'Location', INDETERMINATE), 'OffsetLongitudinal', INDETERMINATE))]) == 0) is not False + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) + assert (sizeof([temp for temp in crosssectionpositions if exists(express_getattr(express_getattr(temp, 'Location', INDETERMINATE), 'OffsetLateral', INDETERMINATE)) or exists(express_getattr(express_getattr(temp, 'Location', INDETERMINATE), 'OffsetVertical', INDETERMINATE)) or exists(express_getattr(express_getattr(temp, 'Location', INDETERMINATE), 'OffsetLongitudinal', INDETERMINATE))]) == 0) is not False class IfcSectionedSurface_SectionsSameType: SCOPE = 'entity' @@ -11265,7 +11275,7 @@ class IfcSectionedSurface_SectionsSameType: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) assert (sizeof([temp for temp in crosssections if typeof(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(temp)]) == 0) is not False def calc_IfcSegment_Dim(self): @@ -11278,8 +11288,8 @@ class IfcSensor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSensor_CorrectTypeAssigned: SCOPE = 'entity' @@ -11288,8 +11298,8 @@ class IfcSensor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcsensortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcsensortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSensorType_CorrectPredefinedType: SCOPE = 'entity' @@ -11298,8 +11308,8 @@ class IfcSensorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcShadingDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -11308,8 +11318,8 @@ class IfcShadingDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcShadingDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -11318,8 +11328,8 @@ class IfcShadingDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcshadingdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcshadingdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcShadingDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11328,8 +11338,8 @@ class IfcShadingDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcShapeModel_WR11: SCOPE = 'entity' @@ -11338,8 +11348,8 @@ class IfcShapeModel_WR11: @staticmethod def __call__(self): - ofshapeaspect = getattr(self, 'OfShapeAspect', INDETERMINATE) - assert (sizeof(getattr(self, 'OfProductRepresentation', INDETERMINATE)) == 1) ^ (sizeof(getattr(self, 'RepresentationMap', INDETERMINATE)) == 1) ^ (sizeof(ofshapeaspect) == 1) is not False + ofshapeaspect = express_getattr(self, 'OfShapeAspect', INDETERMINATE) + assert (sizeof(express_getattr(self, 'OfProductRepresentation', INDETERMINATE)) == 1) ^ (sizeof(express_getattr(self, 'RepresentationMap', INDETERMINATE)) == 1) ^ (sizeof(ofshapeaspect) == 1) is not False class IfcShapeRepresentation_CorrectContext: SCOPE = 'entity' @@ -11348,7 +11358,7 @@ class IfcShapeRepresentation_CorrectContext: @staticmethod def __call__(self): - assert ('ifc4x3_add2.ifcgeometricrepresentationcontext' in typeof(getattr(self, 'ContextOfItems', INDETERMINATE))) is not False + assert ('ifc4x3_add2.ifcgeometricrepresentationcontext' in typeof(express_getattr(self, 'ContextOfItems', INDETERMINATE))) is not False class IfcShapeRepresentation_CorrectItemsForType: SCOPE = 'entity' @@ -11357,7 +11367,7 @@ class IfcShapeRepresentation_CorrectItemsForType: @staticmethod def __call__(self): - assert IfcShapeRepresentationTypes(getattr(self, 'RepresentationType', INDETERMINATE), getattr(self, 'Items', INDETERMINATE)) is not False + assert IfcShapeRepresentationTypes(express_getattr(self, 'RepresentationType', INDETERMINATE), express_getattr(self, 'Items', INDETERMINATE)) is not False class IfcShapeRepresentation_HasRepresentationIdentifier: SCOPE = 'entity' @@ -11366,7 +11376,7 @@ class IfcShapeRepresentation_HasRepresentationIdentifier: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationIdentifier', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationIdentifier', INDETERMINATE)) is not False class IfcShapeRepresentation_HasRepresentationType: SCOPE = 'entity' @@ -11375,7 +11385,7 @@ class IfcShapeRepresentation_HasRepresentationType: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationType', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationType', INDETERMINATE)) is not False class IfcShapeRepresentation_NoTopologicalItem: SCOPE = 'entity' @@ -11384,7 +11394,7 @@ class IfcShapeRepresentation_NoTopologicalItem: @staticmethod def __call__(self): - items = getattr(self, 'Items', INDETERMINATE) + items = express_getattr(self, 'Items', INDETERMINATE) assert (sizeof([temp for temp in items if 'ifc4x3_add2.ifctopologicalrepresentationitem' in typeof(temp) and (not sizeof(['ifc4x3_add2.ifcvertexpoint', 'ifc4x3_add2.ifcedgecurve', 'ifc4x3_add2.ifcfacesurface'] * typeof(temp)) == 1)]) == 0) is not False def calc_IfcShellBasedSurfaceModel_Dim(self): @@ -11397,8 +11407,8 @@ class IfcSign_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSign_CorrectTypeAssigned: SCOPE = 'entity' @@ -11407,8 +11417,8 @@ class IfcSign_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcsigntype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcsigntype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSignType_CorrectPredefinedType: SCOPE = 'entity' @@ -11417,8 +11427,8 @@ class IfcSignType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSignal_CorrectPredefinedType: SCOPE = 'entity' @@ -11427,8 +11437,8 @@ class IfcSignal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSignal_CorrectTypeAssigned: SCOPE = 'entity' @@ -11437,8 +11447,8 @@ class IfcSignal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcsignaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcsignaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSignalType_CorrectPredefinedType: SCOPE = 'entity' @@ -11447,8 +11457,8 @@ class IfcSignalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSlab_CorrectPredefinedType: SCOPE = 'entity' @@ -11457,8 +11467,8 @@ class IfcSlab_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSlab_CorrectTypeAssigned: SCOPE = 'entity' @@ -11467,8 +11477,8 @@ class IfcSlab_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcslabtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcslabtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSlabType_CorrectPredefinedType: SCOPE = 'entity' @@ -11477,8 +11487,8 @@ class IfcSlabType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSolarDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -11487,8 +11497,8 @@ class IfcSolarDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSolarDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -11497,8 +11507,8 @@ class IfcSolarDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcsolardevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcsolardevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSolarDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11507,8 +11517,8 @@ class IfcSolarDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcSolidModel_Dim(self): return 3 @@ -11520,8 +11530,8 @@ class IfcSpace_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpace_CorrectTypeAssigned: SCOPE = 'entity' @@ -11530,8 +11540,8 @@ class IfcSpace_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcspacetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcspacetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpaceHeater_CorrectPredefinedType: SCOPE = 'entity' @@ -11540,8 +11550,8 @@ class IfcSpaceHeater_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpaceHeater_CorrectTypeAssigned: SCOPE = 'entity' @@ -11550,8 +11560,8 @@ class IfcSpaceHeater_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcspaceheatertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcspaceheatertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpaceHeaterType_CorrectPredefinedType: SCOPE = 'entity' @@ -11560,8 +11570,8 @@ class IfcSpaceHeaterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSpaceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11570,8 +11580,8 @@ class IfcSpaceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSpatialStructureElement_WR41: SCOPE = 'entity' @@ -11580,7 +11590,7 @@ class IfcSpatialStructureElement_WR41: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'Decomposes', INDETERMINATE)) == 1 and 'ifc4x3_add2.ifcrelaggregates' in typeof(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_add2.ifcproject' in typeof(getattr(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)) or 'ifc4x3_add2.ifcspatialstructureelement' in typeof(getattr(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)))) is not False + assert (hiindex(express_getattr(self, 'Decomposes', INDETERMINATE)) == 1 and 'ifc4x3_add2.ifcrelaggregates' in typeof(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_add2.ifcproject' in typeof(express_getattr(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)) or 'ifc4x3_add2.ifcspatialstructureelement' in typeof(express_getattr(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)))) is not False class IfcSpatialZone_CorrectPredefinedType: SCOPE = 'entity' @@ -11589,8 +11599,8 @@ class IfcSpatialZone_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpatialZone_CorrectTypeAssigned: SCOPE = 'entity' @@ -11599,8 +11609,8 @@ class IfcSpatialZone_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcspatialzonetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcspatialzonetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpatialZoneType_CorrectPredefinedType: SCOPE = 'entity' @@ -11609,8 +11619,8 @@ class IfcSpatialZoneType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStackTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -11619,8 +11629,8 @@ class IfcStackTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStackTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -11629,8 +11639,8 @@ class IfcStackTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcstackterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcstackterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStackTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -11639,8 +11649,8 @@ class IfcStackTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStair_CorrectPredefinedType: SCOPE = 'entity' @@ -11649,8 +11659,8 @@ class IfcStair_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStair_CorrectTypeAssigned: SCOPE = 'entity' @@ -11659,8 +11669,8 @@ class IfcStair_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcstairtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcstairtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStairFlight_CorrectPredefinedType: SCOPE = 'entity' @@ -11669,8 +11679,8 @@ class IfcStairFlight_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStairFlight_CorrectTypeAssigned: SCOPE = 'entity' @@ -11679,8 +11689,8 @@ class IfcStairFlight_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcstairflighttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcstairflighttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStairFlightType_CorrectPredefinedType: SCOPE = 'entity' @@ -11689,8 +11699,8 @@ class IfcStairFlightType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStairType_CorrectPredefinedType: SCOPE = 'entity' @@ -11699,8 +11709,8 @@ class IfcStairType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStructuralAnalysisModel_CorrectPredefinedType: SCOPE = 'entity' @@ -11709,8 +11719,8 @@ class IfcStructuralAnalysisModel_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStructuralCurveAction_HasObjectType: SCOPE = 'entity' @@ -11719,8 +11729,8 @@ class IfcStructuralCurveAction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveAction_ProjectedIsGlobal: SCOPE = 'entity' @@ -11729,8 +11739,8 @@ class IfcStructuralCurveAction_ProjectedIsGlobal: @staticmethod def __call__(self): - projectedortrue = getattr(self, 'ProjectedOrTrue', INDETERMINATE) - assert (not exists(projectedortrue) or (projectedortrue != projected_length or getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False + projectedortrue = express_getattr(self, 'ProjectedOrTrue', INDETERMINATE) + assert (not exists(projectedortrue) or (projectedortrue != projected_length or express_getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False class IfcStructuralCurveAction_SuitablePredefinedType: SCOPE = 'entity' @@ -11739,8 +11749,8 @@ class IfcStructuralCurveAction_SuitablePredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE)) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE)) is not False class IfcStructuralCurveMember_HasObjectType: SCOPE = 'entity' @@ -11749,8 +11759,8 @@ class IfcStructuralCurveMember_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveReaction_HasObjectType: SCOPE = 'entity' @@ -11759,8 +11769,8 @@ class IfcStructuralCurveReaction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveReaction_SuitablePredefinedType: SCOPE = 'entity' @@ -11769,8 +11779,8 @@ class IfcStructuralCurveReaction_SuitablePredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) and predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE)) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) and predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE)) is not False class IfcStructuralLinearAction_ConstPredefinedType: SCOPE = 'entity' @@ -11779,7 +11789,7 @@ class IfcStructuralLinearAction_ConstPredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE)) is not False class IfcStructuralLinearAction_SuitableLoadType: SCOPE = 'entity' @@ -11788,7 +11798,7 @@ class IfcStructuralLinearAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_add2.ifcstructuralloadlinearforce', 'ifc4x3_add2.ifcstructuralloadtemperature'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_add2.ifcstructuralloadlinearforce', 'ifc4x3_add2.ifcstructuralloadtemperature'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralLoadCase_IsLoadCasePredefinedType: SCOPE = 'entity' @@ -11797,7 +11807,7 @@ class IfcStructuralLoadCase_IsLoadCasePredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE)) is not False class IfcStructuralLoadConfiguration_ValidListSize: SCOPE = 'entity' @@ -11806,8 +11816,8 @@ class IfcStructuralLoadConfiguration_ValidListSize: @staticmethod def __call__(self): - values = getattr(self, 'Values', INDETERMINATE) - locations = getattr(self, 'Locations', INDETERMINATE) + values = express_getattr(self, 'Values', INDETERMINATE) + locations = express_getattr(self, 'Locations', INDETERMINATE) assert (not exists(locations) or sizeof(locations) == sizeof(values)) is not False class IfcStructuralLoadGroup_HasObjectType: @@ -11817,10 +11827,10 @@ class IfcStructuralLoadGroup_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - actiontype = getattr(self, 'ActionType', INDETERMINATE) - actionsource = getattr(self, 'ActionSource', INDETERMINATE) - assert (predefinedtype != getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) and actiontype != getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) and (actionsource != getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE)) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + actiontype = express_getattr(self, 'ActionType', INDETERMINATE) + actionsource = express_getattr(self, 'ActionSource', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) and actiontype != express_getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) and (actionsource != express_getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE)) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralPlanarAction_ConstPredefinedType: SCOPE = 'entity' @@ -11829,7 +11839,7 @@ class IfcStructuralPlanarAction_ConstPredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE)) is not False class IfcStructuralPlanarAction_SuitableLoadType: SCOPE = 'entity' @@ -11838,7 +11848,7 @@ class IfcStructuralPlanarAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_add2.ifcstructuralloadplanarforce', 'ifc4x3_add2.ifcstructuralloadtemperature'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_add2.ifcstructuralloadplanarforce', 'ifc4x3_add2.ifcstructuralloadtemperature'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralPointAction_SuitableLoadType: SCOPE = 'entity' @@ -11847,7 +11857,7 @@ class IfcStructuralPointAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_add2.ifcstructuralloadsingleforce', 'ifc4x3_add2.ifcstructuralloadsingledisplacement'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_add2.ifcstructuralloadsingleforce', 'ifc4x3_add2.ifcstructuralloadsingledisplacement'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralPointReaction_SuitableLoadType: SCOPE = 'entity' @@ -11856,7 +11866,7 @@ class IfcStructuralPointReaction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_add2.ifcstructuralloadsingleforce', 'ifc4x3_add2.ifcstructuralloadsingledisplacement'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_add2.ifcstructuralloadsingleforce', 'ifc4x3_add2.ifcstructuralloadsingledisplacement'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralResultGroup_HasObjectType: SCOPE = 'entity' @@ -11865,8 +11875,8 @@ class IfcStructuralResultGroup_HasObjectType: @staticmethod def __call__(self): - theorytype = getattr(self, 'TheoryType', INDETERMINATE) - assert (theorytype != getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + theorytype = express_getattr(self, 'TheoryType', INDETERMINATE) + assert (theorytype != express_getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceAction_HasObjectType: SCOPE = 'entity' @@ -11875,8 +11885,8 @@ class IfcStructuralSurfaceAction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceAction_ProjectedIsGlobal: SCOPE = 'entity' @@ -11885,8 +11895,8 @@ class IfcStructuralSurfaceAction_ProjectedIsGlobal: @staticmethod def __call__(self): - projectedortrue = getattr(self, 'ProjectedOrTrue', INDETERMINATE) - assert (not exists(projectedortrue) or (projectedortrue != projected_length or getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False + projectedortrue = express_getattr(self, 'ProjectedOrTrue', INDETERMINATE) + assert (not exists(projectedortrue) or (projectedortrue != projected_length or express_getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False class IfcStructuralSurfaceMember_HasObjectType: SCOPE = 'entity' @@ -11895,8 +11905,8 @@ class IfcStructuralSurfaceMember_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceReaction_HasPredefinedType: SCOPE = 'entity' @@ -11905,8 +11915,8 @@ class IfcStructuralSurfaceReaction_HasPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStyledItem_ApplicableItem: SCOPE = 'entity' @@ -11915,7 +11925,7 @@ class IfcStyledItem_ApplicableItem: @staticmethod def __call__(self): - item = getattr(self, 'Item', INDETERMINATE) + item = express_getattr(self, 'Item', INDETERMINATE) assert (not 'ifc4x3_add2.ifcstyleditem' in typeof(item)) is not False class IfcStyledRepresentation_OnlyStyledItems: @@ -11925,7 +11935,7 @@ class IfcStyledRepresentation_OnlyStyledItems: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3_add2.ifcstyleditem' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3_add2.ifcstyleditem' in typeof(temp)]) == 0) is not False class IfcSubContractResource_CorrectPredefinedType: SCOPE = 'entity' @@ -11934,8 +11944,8 @@ class IfcSubContractResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSubContractResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11944,8 +11954,8 @@ class IfcSubContractResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False def calc_IfcSurface_Dim(self): return 3 @@ -11957,8 +11967,8 @@ class IfcSurfaceCurve_CurveIs3D: @staticmethod def __call__(self): - curve3d = getattr(self, 'Curve3D', INDETERMINATE) - assert (getattr(curve3d, 'Dim', INDETERMINATE) == 3) is not False + curve3d = express_getattr(self, 'Curve3D', INDETERMINATE) + assert (express_getattr(curve3d, 'Dim', INDETERMINATE) == 3) is not False class IfcSurfaceCurve_CurveIsNotPcurve: SCOPE = 'entity' @@ -11967,7 +11977,7 @@ class IfcSurfaceCurve_CurveIsNotPcurve: @staticmethod def __call__(self): - curve3d = getattr(self, 'Curve3D', INDETERMINATE) + curve3d = express_getattr(self, 'Curve3D', INDETERMINATE) assert (not 'ifc4x3_add2.ifcpcurve' in typeof(curve3d)) is not False def calc_IfcSurfaceCurve_BasisSurface(self): @@ -11980,8 +11990,8 @@ class IfcSurfaceFeature_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSurfaceOfLinearExtrusion_DepthGreaterZero: SCOPE = 'entity' @@ -11990,17 +12000,17 @@ class IfcSurfaceOfLinearExtrusion_DepthGreaterZero: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) assert (depth > 0.0) is not False def calc_IfcSurfaceOfLinearExtrusion_ExtrusionAxis(self): - extrudeddirection = getattr(self, 'ExtrudedDirection', INDETERMINATE) - depth = getattr(self, 'Depth', INDETERMINATE) + extrudeddirection = express_getattr(self, 'ExtrudedDirection', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) return IfcVector(Orientation=extrudeddirection, Magnitude=depth) def calc_IfcSurfaceOfRevolution_AxisLine(self): - axisposition = getattr(self, 'AxisPosition', INDETERMINATE) - return IfcLine(Pnt=getattr(axisposition, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=getattr(axisposition, 'Z', INDETERMINATE), Magnitude=1.0)) + axisposition = express_getattr(self, 'AxisPosition', INDETERMINATE) + return IfcLine(Pnt=express_getattr(axisposition, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=express_getattr(axisposition, 'Z', INDETERMINATE), Magnitude=1.0)) class IfcSurfaceReinforcementArea_NonnegativeArea1: SCOPE = 'entity' @@ -12009,7 +12019,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea1: @staticmethod def __call__(self): - surfacereinforcement1 = getattr(self, 'SurfaceReinforcement1', INDETERMINATE) + surfacereinforcement1 = express_getattr(self, 'SurfaceReinforcement1', INDETERMINATE) assert (not exists(surfacereinforcement1) or (express_getitem(surfacereinforcement1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and express_getitem(surfacereinforcement1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and (sizeof(surfacereinforcement1) == 1 or express_getitem(surfacereinforcement1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0))) is not False class IfcSurfaceReinforcementArea_NonnegativeArea2: @@ -12019,7 +12029,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea2: @staticmethod def __call__(self): - surfacereinforcement2 = getattr(self, 'SurfaceReinforcement2', INDETERMINATE) + surfacereinforcement2 = express_getattr(self, 'SurfaceReinforcement2', INDETERMINATE) assert (not exists(surfacereinforcement2) or (express_getitem(surfacereinforcement2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and express_getitem(surfacereinforcement2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and (sizeof(surfacereinforcement2) == 1 or express_getitem(surfacereinforcement2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0))) is not False class IfcSurfaceReinforcementArea_NonnegativeArea3: @@ -12029,7 +12039,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea3: @staticmethod def __call__(self): - shearreinforcement = getattr(self, 'ShearReinforcement', INDETERMINATE) + shearreinforcement = express_getattr(self, 'ShearReinforcement', INDETERMINATE) assert (not exists(shearreinforcement) or shearreinforcement >= 0.0) is not False class IfcSurfaceReinforcementArea_SurfaceAndOrShearAreaSpecified: @@ -12039,9 +12049,9 @@ class IfcSurfaceReinforcementArea_SurfaceAndOrShearAreaSpecified: @staticmethod def __call__(self): - surfacereinforcement1 = getattr(self, 'SurfaceReinforcement1', INDETERMINATE) - surfacereinforcement2 = getattr(self, 'SurfaceReinforcement2', INDETERMINATE) - shearreinforcement = getattr(self, 'ShearReinforcement', INDETERMINATE) + surfacereinforcement1 = express_getattr(self, 'SurfaceReinforcement1', INDETERMINATE) + surfacereinforcement2 = express_getattr(self, 'SurfaceReinforcement2', INDETERMINATE) + shearreinforcement = express_getattr(self, 'ShearReinforcement', INDETERMINATE) assert (exists(surfacereinforcement1) or exists(surfacereinforcement2) or exists(shearreinforcement)) is not False class IfcSurfaceStyle_MaxOneExtDefined: @@ -12051,7 +12061,7 @@ class IfcSurfaceStyle_MaxOneExtDefined: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_add2.ifcexternallydefinedsurfacestyle' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_add2.ifcexternallydefinedsurfacestyle' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneLighting: SCOPE = 'entity' @@ -12060,7 +12070,7 @@ class IfcSurfaceStyle_MaxOneLighting: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_add2.ifcsurfacestylelighting' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_add2.ifcsurfacestylelighting' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneRefraction: SCOPE = 'entity' @@ -12069,7 +12079,7 @@ class IfcSurfaceStyle_MaxOneRefraction: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_add2.ifcsurfacestylerefraction' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_add2.ifcsurfacestylerefraction' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneShading: SCOPE = 'entity' @@ -12078,7 +12088,7 @@ class IfcSurfaceStyle_MaxOneShading: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_add2.ifcsurfacestyleshading' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_add2.ifcsurfacestyleshading' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneTextures: SCOPE = 'entity' @@ -12087,7 +12097,7 @@ class IfcSurfaceStyle_MaxOneTextures: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_add2.ifcsurfacestylewithtextures' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_add2.ifcsurfacestylewithtextures' in typeof(style)]) <= 1) is not False class IfcSweptAreaSolid_SweptAreaType: SCOPE = 'entity' @@ -12096,8 +12106,8 @@ class IfcSweptAreaSolid_SweptAreaType: @staticmethod def __call__(self): - sweptarea = getattr(self, 'SweptArea', INDETERMINATE) - assert (getattr(sweptarea, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'Area', INDETERMINATE)) is not False + sweptarea = express_getattr(self, 'SweptArea', INDETERMINATE) + assert (express_getattr(sweptarea, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'Area', INDETERMINATE)) is not False class IfcSweptDiskSolid_DirectrixBounded: SCOPE = 'entity' @@ -12106,9 +12116,9 @@ class IfcSweptDiskSolid_DirectrixBounded: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - startparam = getattr(self, 'StartParam', INDETERMINATE) - endparam = getattr(self, 'EndParam', INDETERMINATE) + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + startparam = express_getattr(self, 'StartParam', INDETERMINATE) + endparam = express_getattr(self, 'EndParam', INDETERMINATE) assert (exists(startparam) and exists(endparam) or sizeof(['ifc4x3_add2.ifcconic', 'ifc4x3_add2.ifcboundedcurve'] * typeof(directrix)) == 1) is not False class IfcSweptDiskSolid_DirectrixDim: @@ -12118,8 +12128,8 @@ class IfcSweptDiskSolid_DirectrixDim: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - assert (getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + assert (express_getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False class IfcSweptDiskSolid_InnerRadiusSize: SCOPE = 'entity' @@ -12128,8 +12138,8 @@ class IfcSweptDiskSolid_InnerRadiusSize: @staticmethod def __call__(self): - radius = getattr(self, 'Radius', INDETERMINATE) - innerradius = getattr(self, 'InnerRadius', INDETERMINATE) + radius = express_getattr(self, 'Radius', INDETERMINATE) + innerradius = express_getattr(self, 'InnerRadius', INDETERMINATE) assert (not exists(innerradius) or radius > innerradius) is not False class IfcSweptDiskSolidPolygonal_CorrectRadii: @@ -12139,8 +12149,8 @@ class IfcSweptDiskSolidPolygonal_CorrectRadii: @staticmethod def __call__(self): - filletradius = getattr(self, 'FilletRadius', INDETERMINATE) - assert (not exists(filletradius) or filletradius >= getattr(self, 'Radius', INDETERMINATE)) is not False + filletradius = express_getattr(self, 'FilletRadius', INDETERMINATE) + assert (not exists(filletradius) or filletradius >= express_getattr(self, 'Radius', INDETERMINATE)) is not False class IfcSweptDiskSolidPolygonal_DirectrixIsPolyline: SCOPE = 'entity' @@ -12149,7 +12159,7 @@ class IfcSweptDiskSolidPolygonal_DirectrixIsPolyline: @staticmethod def __call__(self): - assert ('ifc4x3_add2.ifcpolyline' in typeof(getattr(self, 'Directrix', INDETERMINATE)) or ('ifc4x3_add2.ifcindexedpolycurve' in typeof(getattr(self, 'Directrix', INDETERMINATE)) and (not exists(getattr(getattr(self, 'Directrix', INDETERMINATE), 'Segments', INDETERMINATE))))) is not False + assert ('ifc4x3_add2.ifcpolyline' in typeof(express_getattr(self, 'Directrix', INDETERMINATE)) or ('ifc4x3_add2.ifcindexedpolycurve' in typeof(express_getattr(self, 'Directrix', INDETERMINATE)) and (not exists(express_getattr(express_getattr(self, 'Directrix', INDETERMINATE), 'Segments', INDETERMINATE))))) is not False class IfcSweptSurface_SweptCurveType: SCOPE = 'entity' @@ -12158,8 +12168,8 @@ class IfcSweptSurface_SweptCurveType: @staticmethod def __call__(self): - sweptcurve = getattr(self, 'SweptCurve', INDETERMINATE) - assert (getattr(sweptcurve, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'Curve', INDETERMINATE)) is not False + sweptcurve = express_getattr(self, 'SweptCurve', INDETERMINATE) + assert (express_getattr(sweptcurve, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'Curve', INDETERMINATE)) is not False class IfcSwitchingDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -12168,8 +12178,8 @@ class IfcSwitchingDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSwitchingDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -12178,8 +12188,8 @@ class IfcSwitchingDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcswitchingdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcswitchingdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSwitchingDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -12188,8 +12198,8 @@ class IfcSwitchingDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSystemFurnitureElement_CorrectPredefinedType: SCOPE = 'entity' @@ -12198,8 +12208,8 @@ class IfcSystemFurnitureElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSystemFurnitureElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12208,8 +12218,8 @@ class IfcSystemFurnitureElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcsystemfurnitureelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcsystemfurnitureelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSystemFurnitureElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12218,8 +12228,8 @@ class IfcSystemFurnitureElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -12228,8 +12238,8 @@ class IfcTShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth) is not False class IfcTShapeProfileDef_ValidWebThickness: @@ -12239,8 +12249,8 @@ class IfcTShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - flangewidth = getattr(self, 'FlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + flangewidth = express_getattr(self, 'FlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < flangewidth) is not False class IfcTable_WR1: @@ -12250,8 +12260,8 @@ class IfcTable_WR1: @staticmethod def __call__(self): - rows = getattr(self, 'Rows', INDETERMINATE) - assert (sizeof([temp for temp in rows if hiindex(getattr(temp, 'RowCells', INDETERMINATE)) != hiindex(getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE))]) == 0) is not False + rows = express_getattr(self, 'Rows', INDETERMINATE) + assert (sizeof([temp for temp in rows if hiindex(express_getattr(temp, 'RowCells', INDETERMINATE)) != hiindex(express_getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE))]) == 0) is not False class IfcTable_WR2: SCOPE = 'entity' @@ -12260,20 +12270,20 @@ class IfcTable_WR2: @staticmethod def __call__(self): - numberofheadings = getattr(self, 'NumberOfHeadings', INDETERMINATE) + numberofheadings = express_getattr(self, 'NumberOfHeadings', INDETERMINATE) assert (0 <= numberofheadings <= 1) is not False def calc_IfcTable_NumberOfCellsInRow(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return hiindex(getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE)) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return hiindex(express_getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE)) def calc_IfcTable_NumberOfHeadings(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return sizeof([temp for temp in rows if getattr(temp, 'IsHeading', INDETERMINATE)]) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return sizeof([temp for temp in rows if express_getattr(temp, 'IsHeading', INDETERMINATE)]) def calc_IfcTable_NumberOfDataRows(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return sizeof([temp for temp in rows if not getattr(temp, 'IsHeading', INDETERMINATE)]) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return sizeof([temp for temp in rows if not express_getattr(temp, 'IsHeading', INDETERMINATE)]) class IfcTank_CorrectPredefinedType: SCOPE = 'entity' @@ -12282,8 +12292,8 @@ class IfcTank_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTank_CorrectTypeAssigned: SCOPE = 'entity' @@ -12292,8 +12302,8 @@ class IfcTank_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifctanktype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifctanktype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTankType_CorrectPredefinedType: SCOPE = 'entity' @@ -12302,8 +12312,8 @@ class IfcTankType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTask_CorrectPredefinedType: SCOPE = 'entity' @@ -12312,8 +12322,8 @@ class IfcTask_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTask_HasName: SCOPE = 'entity' @@ -12322,7 +12332,7 @@ class IfcTask_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcTaskType_CorrectPredefinedType: SCOPE = 'entity' @@ -12331,8 +12341,8 @@ class IfcTaskType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcTelecomAddress_MinimumDataProvided: SCOPE = 'entity' @@ -12341,12 +12351,12 @@ class IfcTelecomAddress_MinimumDataProvided: @staticmethod def __call__(self): - telephonenumbers = getattr(self, 'TelephoneNumbers', INDETERMINATE) - facsimilenumbers = getattr(self, 'FacsimileNumbers', INDETERMINATE) - pagernumber = getattr(self, 'PagerNumber', INDETERMINATE) - electronicmailaddresses = getattr(self, 'ElectronicMailAddresses', INDETERMINATE) - wwwhomepageurl = getattr(self, 'WWWHomePageURL', INDETERMINATE) - messagingids = getattr(self, 'MessagingIDs', INDETERMINATE) + telephonenumbers = express_getattr(self, 'TelephoneNumbers', INDETERMINATE) + facsimilenumbers = express_getattr(self, 'FacsimileNumbers', INDETERMINATE) + pagernumber = express_getattr(self, 'PagerNumber', INDETERMINATE) + electronicmailaddresses = express_getattr(self, 'ElectronicMailAddresses', INDETERMINATE) + wwwhomepageurl = express_getattr(self, 'WWWHomePageURL', INDETERMINATE) + messagingids = express_getattr(self, 'MessagingIDs', INDETERMINATE) assert (exists(telephonenumbers) or exists(facsimilenumbers) or exists(pagernumber) or exists(electronicmailaddresses) or exists(wwwhomepageurl) or exists(messagingids)) is not False class IfcTendon_CorrectPredefinedType: @@ -12356,8 +12366,8 @@ class IfcTendon_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendon_CorrectTypeAssigned: SCOPE = 'entity' @@ -12366,8 +12376,8 @@ class IfcTendon_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifctendontype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifctendontype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonAnchor_CorrectPredefinedType: SCOPE = 'entity' @@ -12376,8 +12386,8 @@ class IfcTendonAnchor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendonAnchor_CorrectTypeAssigned: SCOPE = 'entity' @@ -12386,8 +12396,8 @@ class IfcTendonAnchor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifctendonanchortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifctendonanchortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonAnchorType_CorrectPredefinedType: SCOPE = 'entity' @@ -12396,8 +12406,8 @@ class IfcTendonAnchorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTendonConduit_CorrectPredefinedType: SCOPE = 'entity' @@ -12406,8 +12416,8 @@ class IfcTendonConduit_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendonConduit_CorrectTypeAssigned: SCOPE = 'entity' @@ -12416,8 +12426,8 @@ class IfcTendonConduit_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifctendonconduittype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifctendonconduittype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonConduitType_CorrectPredefinedType: SCOPE = 'entity' @@ -12426,8 +12436,8 @@ class IfcTendonConduitType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTendonType_CorrectPredefinedType: SCOPE = 'entity' @@ -12436,8 +12446,8 @@ class IfcTendonType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcTessellatedFaceSet_Dim(self): return 3 @@ -12449,7 +12459,7 @@ class IfcTextLiteralWithExtent_WR31: @staticmethod def __call__(self): - extent = getattr(self, 'Extent', INDETERMINATE) + extent = express_getattr(self, 'Extent', INDETERMINATE) assert (not 'ifc4x3_add2.ifcplanarbox' in typeof(extent)) is not False class IfcTextStyleFontModel_MeasureOfFontSize: @@ -12459,7 +12469,7 @@ class IfcTextStyleFontModel_MeasureOfFontSize: @staticmethod def __call__(self): - assert ('ifc4x3_add2.ifclengthmeasure' in typeof(getattr(self, 'FontSize', INDETERMINATE)) and getattr(self, 'FontSize', INDETERMINATE) > 0.0) is not False + assert ('ifc4x3_add2.ifclengthmeasure' in typeof(express_getattr(self, 'FontSize', INDETERMINATE)) and express_getattr(self, 'FontSize', INDETERMINATE) > 0.0) is not False class IfcTopologyRepresentation_WR21: SCOPE = 'entity' @@ -12468,7 +12478,7 @@ class IfcTopologyRepresentation_WR21: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3_add2.ifctopologicalrepresentationitem' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3_add2.ifctopologicalrepresentationitem' in typeof(temp)]) == 0) is not False class IfcTopologyRepresentation_WR22: SCOPE = 'entity' @@ -12477,7 +12487,7 @@ class IfcTopologyRepresentation_WR22: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationType', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationType', INDETERMINATE)) is not False class IfcTopologyRepresentation_WR23: SCOPE = 'entity' @@ -12486,7 +12496,7 @@ class IfcTopologyRepresentation_WR23: @staticmethod def __call__(self): - assert IfcTopologyRepresentationTypes(getattr(self, 'RepresentationType', INDETERMINATE), getattr(self, 'Items', INDETERMINATE)) is not False + assert IfcTopologyRepresentationTypes(express_getattr(self, 'RepresentationType', INDETERMINATE), express_getattr(self, 'Items', INDETERMINATE)) is not False class IfcToroidalSurface_MajorLargerMinor: SCOPE = 'entity' @@ -12495,8 +12505,8 @@ class IfcToroidalSurface_MajorLargerMinor: @staticmethod def __call__(self): - majorradius = getattr(self, 'MajorRadius', INDETERMINATE) - minorradius = getattr(self, 'MinorRadius', INDETERMINATE) + majorradius = express_getattr(self, 'MajorRadius', INDETERMINATE) + minorradius = express_getattr(self, 'MinorRadius', INDETERMINATE) assert (minorradius < majorradius) is not False class IfcTrackElement_CorrectPredefinedType: @@ -12506,8 +12516,8 @@ class IfcTrackElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTrackElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12516,8 +12526,8 @@ class IfcTrackElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifctrackelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifctrackelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTrackElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12526,8 +12536,8 @@ class IfcTrackElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTransformer_CorrectPredefinedType: SCOPE = 'entity' @@ -12536,8 +12546,8 @@ class IfcTransformer_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTransformer_CorrectTypeAssigned: SCOPE = 'entity' @@ -12546,8 +12556,8 @@ class IfcTransformer_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifctransformertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifctransformertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTransformerType_CorrectPredefinedType: SCOPE = 'entity' @@ -12556,8 +12566,8 @@ class IfcTransformerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTransportElement_CorrectPredefinedType: SCOPE = 'entity' @@ -12566,8 +12576,8 @@ class IfcTransportElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTransportElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12576,8 +12586,8 @@ class IfcTransportElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifctransportelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifctransportelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTransportElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12586,11 +12596,11 @@ class IfcTransportElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcTriangulatedFaceSet_NumberOfTriangles(self): - coordindex = getattr(self, 'CoordIndex', INDETERMINATE) + coordindex = express_getattr(self, 'CoordIndex', INDETERMINATE) return sizeof(coordindex) class IfcTriangulatedIrregularNetwork_NotClosed: @@ -12600,7 +12610,7 @@ class IfcTriangulatedIrregularNetwork_NotClosed: @staticmethod def __call__(self): - assert (getattr(self, 'Closed', INDETERMINATE) == False) is not False + assert (express_getattr(self, 'Closed', INDETERMINATE) == False) is not False class IfcTrimmedCurve_NoTrimOfBoundedCurves: SCOPE = 'entity' @@ -12609,7 +12619,7 @@ class IfcTrimmedCurve_NoTrimOfBoundedCurves: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) assert (not 'ifc4x3_add2.ifcboundedcurve' in typeof(basiscurve)) is not False class IfcTrimmedCurve_Trim1ValuesConsistent: @@ -12619,7 +12629,7 @@ class IfcTrimmedCurve_Trim1ValuesConsistent: @staticmethod def __call__(self): - trim1 = getattr(self, 'Trim1', INDETERMINATE) + trim1 = express_getattr(self, 'Trim1', INDETERMINATE) assert (hiindex(trim1) == 1 or typeof(express_getitem(trim1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(express_getitem(trim1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcTrimmedCurve_Trim2ValuesConsistent: @@ -12629,7 +12639,7 @@ class IfcTrimmedCurve_Trim2ValuesConsistent: @staticmethod def __call__(self): - trim2 = getattr(self, 'Trim2', INDETERMINATE) + trim2 = express_getattr(self, 'Trim2', INDETERMINATE) assert (hiindex(trim2) == 1 or typeof(express_getitem(trim2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(express_getitem(trim2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcTubeBundle_CorrectPredefinedType: @@ -12639,8 +12649,8 @@ class IfcTubeBundle_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTubeBundle_CorrectTypeAssigned: SCOPE = 'entity' @@ -12649,8 +12659,8 @@ class IfcTubeBundle_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifctubebundletype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifctubebundletype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTubeBundleType_CorrectPredefinedType: SCOPE = 'entity' @@ -12659,8 +12669,8 @@ class IfcTubeBundleType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTypeObject_NameRequired: SCOPE = 'entity' @@ -12669,7 +12679,7 @@ class IfcTypeObject_NameRequired: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcTypeObject_UniquePropertySetNames: SCOPE = 'entity' @@ -12678,7 +12688,7 @@ class IfcTypeObject_UniquePropertySetNames: @staticmethod def __call__(self): - haspropertysets = getattr(self, 'HasPropertySets', INDETERMINATE) + haspropertysets = express_getattr(self, 'HasPropertySets', INDETERMINATE) assert (not exists(haspropertysets) or IfcUniquePropertySetNames(haspropertysets)) is not False class IfcTypeProduct_ApplicableOccurrence: @@ -12688,7 +12698,7 @@ class IfcTypeProduct_ApplicableOccurrence: @staticmethod def __call__(self): - assert (not exists(lambda : express_getitem(getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or sizeof([temp for temp in getattr(express_getitem(getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not 'ifc4x3_add2.ifcproduct' in typeof(temp)]) == 0) is not False + assert (not exists(lambda : express_getitem(express_getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or sizeof([temp for temp in express_getattr(express_getitem(express_getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not 'ifc4x3_add2.ifcproduct' in typeof(temp)]) == 0) is not False class IfcUShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -12697,8 +12707,8 @@ class IfcUShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth / 2.0) is not False class IfcUShapeProfileDef_ValidWebThickness: @@ -12708,8 +12718,8 @@ class IfcUShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - flangewidth = getattr(self, 'FlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + flangewidth = express_getattr(self, 'FlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < flangewidth) is not False class IfcUnitAssignment_WR01: @@ -12719,7 +12729,7 @@ class IfcUnitAssignment_WR01: @staticmethod def __call__(self): - units = getattr(self, 'Units', INDETERMINATE) + units = express_getattr(self, 'Units', INDETERMINATE) assert IfcCorrectUnitAssignment(units) is not False class IfcUnitaryControlElement_CorrectPredefinedType: @@ -12729,8 +12739,8 @@ class IfcUnitaryControlElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcUnitaryControlElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12739,8 +12749,8 @@ class IfcUnitaryControlElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcunitarycontrolelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcunitarycontrolelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcUnitaryControlElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12749,8 +12759,8 @@ class IfcUnitaryControlElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcUnitaryEquipment_CorrectPredefinedType: SCOPE = 'entity' @@ -12759,8 +12769,8 @@ class IfcUnitaryEquipment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcUnitaryEquipment_CorrectTypeAssigned: SCOPE = 'entity' @@ -12769,8 +12779,8 @@ class IfcUnitaryEquipment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcunitaryequipmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcunitaryequipmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcUnitaryEquipmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -12779,8 +12789,8 @@ class IfcUnitaryEquipmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcValve_CorrectPredefinedType: SCOPE = 'entity' @@ -12789,8 +12799,8 @@ class IfcValve_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcValve_CorrectTypeAssigned: SCOPE = 'entity' @@ -12799,8 +12809,8 @@ class IfcValve_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcvalvetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcvalvetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcValveType_CorrectPredefinedType: SCOPE = 'entity' @@ -12809,8 +12819,8 @@ class IfcValveType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVector_MagGreaterOrEqualZero: SCOPE = 'entity' @@ -12819,12 +12829,12 @@ class IfcVector_MagGreaterOrEqualZero: @staticmethod def __call__(self): - magnitude = getattr(self, 'Magnitude', INDETERMINATE) + magnitude = express_getattr(self, 'Magnitude', INDETERMINATE) assert (magnitude >= 0.0) is not False def calc_IfcVector_Dim(self): - orientation = getattr(self, 'Orientation', INDETERMINATE) - return getattr(orientation, 'Dim', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return express_getattr(orientation, 'Dim', INDETERMINATE) class IfcVehicle_CorrectPredefinedType: SCOPE = 'entity' @@ -12833,8 +12843,8 @@ class IfcVehicle_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcVehicle_CorrectTypeAssigned: SCOPE = 'entity' @@ -12843,8 +12853,8 @@ class IfcVehicle_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcvehicletype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcvehicletype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcVehicleType_CorrectPredefinedType: SCOPE = 'entity' @@ -12853,8 +12863,8 @@ class IfcVehicleType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVibrationDamper_CorrectPredefinedType: SCOPE = 'entity' @@ -12863,8 +12873,8 @@ class IfcVibrationDamper_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcVibrationDamper_CorrectTypeAssigned: SCOPE = 'entity' @@ -12873,8 +12883,8 @@ class IfcVibrationDamper_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcvibrationdampertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcvibrationdampertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcVibrationDamperType_CorrectPredefinedType: SCOPE = 'entity' @@ -12883,8 +12893,8 @@ class IfcVibrationDamperType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVibrationIsolator_CorrectPredefinedType: SCOPE = 'entity' @@ -12893,8 +12903,8 @@ class IfcVibrationIsolator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcVibrationIsolator_CorrectTypeAssigned: SCOPE = 'entity' @@ -12903,8 +12913,8 @@ class IfcVibrationIsolator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcvibrationisolatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcvibrationisolatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcVibrationIsolatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -12913,8 +12923,8 @@ class IfcVibrationIsolatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVirtualElement_CorrectPredefinedType: SCOPE = 'entity' @@ -12923,8 +12933,8 @@ class IfcVirtualElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVirtualElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVirtualElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVirtualElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVirtualElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcVoidingFeature_CorrectPredefinedType: SCOPE = 'entity' @@ -12933,8 +12943,8 @@ class IfcVoidingFeature_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWall_CorrectPredefinedType: SCOPE = 'entity' @@ -12943,8 +12953,8 @@ class IfcWall_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWall_CorrectTypeAssigned: SCOPE = 'entity' @@ -12953,8 +12963,8 @@ class IfcWall_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcwalltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcwalltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWallStandardCase_HasMaterialLayerSetUsage: SCOPE = 'entity' @@ -12963,7 +12973,7 @@ class IfcWallStandardCase_HasMaterialLayerSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x3_add2.ifcrelassociates.relatedobjects') if 'ifc4x3_add2.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_add2.ifcmateriallayersetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x3_add2.ifcrelassociates.relatedobjects') if 'ifc4x3_add2.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_add2.ifcmateriallayersetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcWallType_CorrectPredefinedType: SCOPE = 'entity' @@ -12972,8 +12982,8 @@ class IfcWallType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWasteTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -12982,8 +12992,8 @@ class IfcWasteTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWasteTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -12992,8 +13002,8 @@ class IfcWasteTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcwasteterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcwasteterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWasteTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -13002,8 +13012,8 @@ class IfcWasteTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWindow_CorrectPredefinedType: SCOPE = 'entity' @@ -13012,8 +13022,8 @@ class IfcWindow_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWindow_CorrectTypeAssigned: SCOPE = 'entity' @@ -13022,8 +13032,8 @@ class IfcWindow_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcwindowtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_add2.ifcwindowtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWindowLiningProperties_WR31: SCOPE = 'entity' @@ -13032,8 +13042,8 @@ class IfcWindowLiningProperties_WR31: @staticmethod def __call__(self): - liningdepth = getattr(self, 'LiningDepth', INDETERMINATE) - liningthickness = getattr(self, 'LiningThickness', INDETERMINATE) + liningdepth = express_getattr(self, 'LiningDepth', INDETERMINATE) + liningthickness = express_getattr(self, 'LiningThickness', INDETERMINATE) assert (not (exists(liningdepth) and (not exists(liningthickness)))) is not False class IfcWindowLiningProperties_WR32: @@ -13043,8 +13053,8 @@ class IfcWindowLiningProperties_WR32: @staticmethod def __call__(self): - firsttransomoffset = getattr(self, 'FirstTransomOffset', INDETERMINATE) - secondtransomoffset = getattr(self, 'SecondTransomOffset', INDETERMINATE) + firsttransomoffset = express_getattr(self, 'FirstTransomOffset', INDETERMINATE) + secondtransomoffset = express_getattr(self, 'SecondTransomOffset', INDETERMINATE) assert (not (not exists(firsttransomoffset) and exists(secondtransomoffset))) is not False class IfcWindowLiningProperties_WR33: @@ -13054,8 +13064,8 @@ class IfcWindowLiningProperties_WR33: @staticmethod def __call__(self): - firstmullionoffset = getattr(self, 'FirstMullionOffset', INDETERMINATE) - secondmullionoffset = getattr(self, 'SecondMullionOffset', INDETERMINATE) + firstmullionoffset = express_getattr(self, 'FirstMullionOffset', INDETERMINATE) + secondmullionoffset = express_getattr(self, 'SecondMullionOffset', INDETERMINATE) assert (not (not exists(firstmullionoffset) and exists(secondmullionoffset))) is not False class IfcWindowLiningProperties_WR34: @@ -13065,7 +13075,7 @@ class IfcWindowLiningProperties_WR34: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc4x3_add2.ifcwindowtype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc4x3_add2.ifcwindowtype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcWindowPanelProperties_ApplicableToType: SCOPE = 'entity' @@ -13074,7 +13084,7 @@ class IfcWindowPanelProperties_ApplicableToType: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc4x3_add2.ifcwindowtype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc4x3_add2.ifcwindowtype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcWindowType_CorrectPredefinedType: SCOPE = 'entity' @@ -13083,8 +13093,8 @@ class IfcWindowType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWorkCalendar_CorrectPredefinedType: SCOPE = 'entity' @@ -13093,8 +13103,8 @@ class IfcWorkCalendar_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWorkPlan_CorrectPredefinedType: SCOPE = 'entity' @@ -13103,8 +13113,8 @@ class IfcWorkPlan_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWorkSchedule_CorrectPredefinedType: SCOPE = 'entity' @@ -13113,8 +13123,8 @@ class IfcWorkSchedule_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcZShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -13123,8 +13133,8 @@ class IfcZShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth / 2.0) is not False class IfcZone_WR1: @@ -13134,19 +13144,19 @@ class IfcZone_WR1: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'IsGroupedBy', INDETERMINATE)) == 0 or sizeof([temp for temp in getattr(express_getitem(getattr(self, 'IsGroupedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not ('ifc4x3_add2.ifczone' in typeof(temp) or 'ifc4x3_add2.ifcspace' in typeof(temp) or 'ifc4x3_add2.ifcspatialzone' in typeof(temp))]) == 0) is not False + assert (sizeof(express_getattr(self, 'IsGroupedBy', INDETERMINATE)) == 0 or sizeof([temp for temp in express_getattr(express_getitem(express_getattr(self, 'IsGroupedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not ('ifc4x3_add2.ifczone' in typeof(temp) or 'ifc4x3_add2.ifcspace' in typeof(temp) or 'ifc4x3_add2.ifcspatialzone' in typeof(temp))]) == 0) is not False class IfcRepresentationContextSameWCS: SCOPE = 'file' @staticmethod def __call__(file): - IfcGeometricRepresentationContext = getattr(file, 'by_type', INDETERMINATE)('IfcGeometricRepresentationContext') + IfcGeometricRepresentationContext = express_getattr(file, 'by_type', INDETERMINATE)('IfcGeometricRepresentationContext') isdifferent = False if sizeof(IfcGeometricRepresentationContext) > 1: for i in range(2, hiindex(IfcGeometricRepresentationContext) + 1): - if getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE) != getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE): - isdifferent = not IfcSameValidPrecision(getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) or not IfcSameAxis2Placement(getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) + if express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE) != express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE): + isdifferent = not IfcSameValidPrecision(express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) or not IfcSameAxis2Placement(express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) if isdifferent == True: break assert (isdifferent == False) is not False @@ -13156,11 +13166,11 @@ class IfcSingleProjectInstance: @staticmethod def __call__(file): - IfcProject = getattr(file, 'by_type', INDETERMINATE)('IfcProject') + IfcProject = express_getattr(file, 'by_type', INDETERMINATE)('IfcProject') assert (sizeof(IfcProject) <= 1) is not False def IfcAssociatedSurface(arg): - surf = getattr(arg, 'BasisSurface', INDETERMINATE) + surf = express_getattr(arg, 'BasisSurface', INDETERMINATE) return surf def IfcBaseAxis(dim, axis1, axis2, axis3): @@ -13174,13 +13184,13 @@ def IfcBaseAxis(dim, axis1, axis2, axis3): if exists(axis2): factor = IfcDotProduct(axis2, express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) if factor < 0.0: - u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) elif exists(axis2): d1 = IfcNormalise(axis2) u = [IfcOrthogonalComplement(d1), d1] - u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) else: u = [IfcDirection(DirectionRatios=[1.0, 0.0]), IfcDirection(DirectionRatios=[0.0, 1.0])] return u @@ -13198,7 +13208,7 @@ def IfcBuild2Axes(refdirection): def IfcBuildAxes(axis, refdirection): d1 = nvl(IfcNormalise(axis), IfcDirection(DirectionRatios=[0.0, 0.0, 1.0])) d2 = IfcFirstProjAxis(d1, refdirection) - return [d2, getattr(IfcNormalise(IfcCrossProduct(d1, d2)), 'Orientation', INDETERMINATE), d1] + return [d2, express_getattr(IfcNormalise(IfcCrossProduct(d1, d2)), 'Orientation', INDETERMINATE), d1] def IfcConsecutiveSegments(segments): result = True @@ -13235,11 +13245,11 @@ def IfcConstraintsParamBSpline(degree, upknots, upcp, knotmult, knots): def IfcConvertDirectionInto2D(direction): direction2d = IfcDirection(DirectionRatios=[0.0, 1.0]) - temp = list(getattr(direction2d, 'DirectionRatios', INDETERMINATE)) - temp[1 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(direction, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(direction2d, 'DirectionRatios', INDETERMINATE)) + temp[1 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(direction, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) direction2d.DirectionRatios = temp - temp = list(getattr(direction2d, 'DirectionRatios', INDETERMINATE)) - temp[2 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(direction, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(direction2d, 'DirectionRatios', INDETERMINATE)) + temp[2 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(direction, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) direction2d.DirectionRatios = temp return direction2d @@ -13419,7 +13429,7 @@ def IfcCorrectLocalPlacement(axisplacement, relplacement): if 'ifc4x3_add2.ifcaxis2placement2d' in typeof(axisplacement): return True if 'ifc4x3_add2.ifcaxis2placement3d' in typeof(axisplacement): - if getattr(getattr(relplacement, 'RelativePlacement', INDETERMINATE), 'Dim', INDETERMINATE) == 3: + if express_getattr(express_getattr(relplacement, 'RelativePlacement', INDETERMINATE), 'Dim', INDETERMINATE) == 3: return True else: return False @@ -13432,26 +13442,26 @@ def IfcCorrectUnitAssignment(units): monetaryunitnumber = 0 namedunitnames = express_set([]) derivedunitnames = express_set([]) - namedunitnumber = sizeof([temp for temp in units if 'ifc4x3_add2.ifcnamedunit' in typeof(temp) and (not getattr(temp, 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE))]) - derivedunitnumber = sizeof([temp for temp in units if 'ifc4x3_add2.ifcderivedunit' in typeof(temp) and (not getattr(temp, 'UnitType', INDETERMINATE) == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE))]) + namedunitnumber = sizeof([temp for temp in units if 'ifc4x3_add2.ifcnamedunit' in typeof(temp) and (not express_getattr(temp, 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE))]) + derivedunitnumber = sizeof([temp for temp in units if 'ifc4x3_add2.ifcderivedunit' in typeof(temp) and (not express_getattr(temp, 'UnitType', INDETERMINATE) == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE))]) monetaryunitnumber = sizeof([temp for temp in units if 'ifc4x3_add2.ifcmonetaryunit' in typeof(temp)]) for i in range(1, sizeof(units) + 1): - if 'ifc4x3_add2.ifcnamedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE)): - namedunitnames = namedunitnames + getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) - if 'ifc4x3_add2.ifcderivedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE)): - derivedunitnames = derivedunitnames + getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) + if 'ifc4x3_add2.ifcnamedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE)): + namedunitnames = namedunitnames + express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) + if 'ifc4x3_add2.ifcderivedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE)): + derivedunitnames = derivedunitnames + express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) return sizeof(namedunitnames) == namedunitnumber and sizeof(derivedunitnames) == derivedunitnumber and (monetaryunitnumber <= 1) def IfcCrossProduct(arg1, arg2): - if (not exists(arg1) or getattr(arg1, 'Dim', INDETERMINATE) == 2) or (not exists(arg2) or getattr(arg2, 'Dim', INDETERMINATE) == 2): + if (not exists(arg1) or express_getattr(arg1, 'Dim', INDETERMINATE) == 2) or (not exists(arg2) or express_getattr(arg2, 'Dim', INDETERMINATE) == 2): return None else: - v1 = getattr(IfcNormalise(arg1), 'DirectionRatios', INDETERMINATE) - v2 = getattr(IfcNormalise(arg2), 'DirectionRatios', INDETERMINATE) + v1 = express_getattr(IfcNormalise(arg1), 'DirectionRatios', INDETERMINATE) + v2 = express_getattr(IfcNormalise(arg2), 'DirectionRatios', INDETERMINATE) res = IfcDirection(DirectionRatios=[express_getitem(v1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(v1, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(v1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) mag = 0.0 for i in range(1, 3 + 1): - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: @@ -13460,21 +13470,21 @@ def IfcCrossProduct(arg1, arg2): def IfcCurveDim(curve): if 'ifc4x3_add2.ifcline' in typeof(curve): - return getattr(getattr(curve, 'Pnt', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Pnt', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_add2.ifcconic' in typeof(curve): - return getattr(getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_add2.ifcpolyline' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'Points', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'Points', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_add2.ifctrimmedcurve' in typeof(curve): - return IfcCurveDim(getattr(curve, 'BasisCurve', INDETERMINATE)) + return IfcCurveDim(express_getattr(curve, 'BasisCurve', INDETERMINATE)) if 'ifc4x3_add2.ifcgradientcurve' in typeof(curve): return 3 if 'ifc4x3_add2.ifcsegmentedreferencecurve' in typeof(curve): return 3 if 'ifc4x3_add2.ifccompositecurve' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_add2.ifcbsplinecurve' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_add2.ifcoffsetcurve2d' in typeof(curve): return 2 if 'ifc4x3_add2.ifcoffsetcurve3d' in typeof(curve): @@ -13484,21 +13494,21 @@ def IfcCurveDim(curve): if 'ifc4x3_add2.ifccurvesegment2d' in typeof(curve): return 2 if 'ifc4x3_add2.ifcpolynomialcurve' in typeof(curve): - if not exists(getattr(curve, 'CoefficientsZ', INDETERMINATE)) and getattr(getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) == 2: + if not exists(express_getattr(curve, 'CoefficientsZ', INDETERMINATE)) and express_getattr(express_getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) == 2: return 2 return 3 if 'ifc4x3_add2.ifcpcurve' in typeof(curve): return 3 if 'ifc4x3_add2.ifcindexedpolycurve' in typeof(curve): - return getattr(getattr(curve, 'Points', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Points', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_add2.ifcspiral' in typeof(curve): - return getattr(getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) return None def IfcCurveWeightsPositive(b): result = True - for i in range(0, getattr(b, 'UpperIndexOnControlPoints', INDETERMINATE) + 1): - if express_getitem(getattr(b, 'Weights', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: + for i in range(0, express_getattr(b, 'UpperIndexOnControlPoints', INDETERMINATE) + 1): + if express_getitem(express_getattr(b, 'Weights', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: result = False return result return result @@ -13506,13 +13516,13 @@ def IfcCurveWeightsPositive(b): def IfcDeriveDimensionalExponents(unitelements): result = IfcDimensionalExponents(0, 0, 0, 0, 0, 0, 0) for i in range(loindex(unitelements), hiindex(unitelements) + 1): - result.LengthExponent = getattr(result, 'LengthExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LengthExponent', INDETERMINATE) - result.MassExponent = getattr(result, 'MassExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'MassExponent', INDETERMINATE) - result.TimeExponent = getattr(result, 'TimeExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'TimeExponent', INDETERMINATE) - result.ElectricCurrentExponent = getattr(result, 'ElectricCurrentExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ElectricCurrentExponent', INDETERMINATE) - result.ThermodynamicTemperatureExponent = getattr(result, 'ThermodynamicTemperatureExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ThermodynamicTemperatureExponent', INDETERMINATE) - result.AmountOfSubstanceExponent = getattr(result, 'AmountOfSubstanceExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'AmountOfSubstanceExponent', INDETERMINATE) - result.LuminousIntensityExponent = getattr(result, 'LuminousIntensityExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LuminousIntensityExponent', INDETERMINATE) + result.LengthExponent = express_getattr(result, 'LengthExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LengthExponent', INDETERMINATE) + result.MassExponent = express_getattr(result, 'MassExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'MassExponent', INDETERMINATE) + result.TimeExponent = express_getattr(result, 'TimeExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'TimeExponent', INDETERMINATE) + result.ElectricCurrentExponent = express_getattr(result, 'ElectricCurrentExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ElectricCurrentExponent', INDETERMINATE) + result.ThermodynamicTemperatureExponent = express_getattr(result, 'ThermodynamicTemperatureExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ThermodynamicTemperatureExponent', INDETERMINATE) + result.AmountOfSubstanceExponent = express_getattr(result, 'AmountOfSubstanceExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'AmountOfSubstanceExponent', INDETERMINATE) + result.LuminousIntensityExponent = express_getattr(result, 'LuminousIntensityExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LuminousIntensityExponent', INDETERMINATE) return result def IfcDimensionsForSIUnit(n): @@ -13582,15 +13592,15 @@ def IfcDimensionsForSIUnit(n): def IfcDotProduct(arg1, arg2): if not exists(arg1) or not exists(arg2): scalar = None - elif getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + elif express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): scalar = None else: vec1 = IfcNormalise(arg1) vec2 = IfcNormalise(arg2) - ndim = getattr(arg1, 'Dim', INDETERMINATE) + ndim = express_getattr(arg1, 'Dim', INDETERMINATE) scalar = 0.0 for i in range(1, ndim + 1): - scalar = scalar + express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + scalar = scalar + express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return scalar def IfcFirstProjAxis(zaxis, arg): @@ -13599,42 +13609,42 @@ def IfcFirstProjAxis(zaxis, arg): else: z = IfcNormalise(zaxis) if not exists(arg): - if getattr(z, 'DirectionRatios', INDETERMINATE) != [1.0, 0.0, 0.0]: + if express_getattr(z, 'DirectionRatios', INDETERMINATE) != [1.0, 0.0, 0.0]: v = IfcDirection(DirectionRatios=[1.0, 0.0, 0.0]) else: v = IfcDirection(DirectionRatios=[0.0, 1.0, 0.0]) else: - if getattr(arg, 'Dim', INDETERMINATE) != 3: + if express_getattr(arg, 'Dim', INDETERMINATE) != 3: return None - if getattr(IfcCrossProduct(arg, z), 'Magnitude', INDETERMINATE) == 0.0: + if express_getattr(IfcCrossProduct(arg, z), 'Magnitude', INDETERMINATE) == 0.0: return None else: v = IfcNormalise(arg) xvec = IfcScalarTimesVector(IfcDotProduct(v, z), z) - xaxis = getattr(IfcVectorDifference(v, xvec), 'Orientation', INDETERMINATE) + xaxis = express_getattr(IfcVectorDifference(v, xvec), 'Orientation', INDETERMINATE) xaxis = IfcNormalise(xaxis) return xaxis def IfcGetBasisSurface(c): surfs = [] if 'ifc4x3_add2.ifcpcurve' in typeof(c): - surfs = [getattr(c, 'BasisSurface', INDETERMINATE)] + surfs = [express_getattr(c, 'BasisSurface', INDETERMINATE)] elif 'ifc4x3_add2.ifcsurfacecurve' in typeof(c): - n = sizeof(getattr(c, 'AssociatedGeometry', INDETERMINATE)) + n = sizeof(express_getattr(c, 'AssociatedGeometry', INDETERMINATE)) for i in range(1, n + 1): - surfs = surfs + IfcAssociatedSurface(express_getitem(getattr(c, 'AssociatedGeometry', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) + surfs = surfs + IfcAssociatedSurface(express_getitem(express_getattr(c, 'AssociatedGeometry', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) if 'ifc4x3_add2.ifccompositecurveonsurface' in typeof(c): - n = sizeof(getattr(c, 'Segments', INDETERMINATE)) - if 'ifc4x3_add2.ifccurvesegment' in typeof(express_getitem(getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - surfs = IfcGetBasisSurface(getattr(express_getitem(getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) - if 'ifc4x3_add2.ifccompositecurvesegment' in typeof(express_getitem(getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - surfs = IfcGetBasisSurface(getattr(express_getitem(getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) + n = sizeof(express_getattr(c, 'Segments', INDETERMINATE)) + if 'ifc4x3_add2.ifccurvesegment' in typeof(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): + surfs = IfcGetBasisSurface(express_getattr(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) + if 'ifc4x3_add2.ifccompositecurvesegment' in typeof(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): + surfs = IfcGetBasisSurface(express_getattr(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) if n > 1: for i in range(2, n + 1): - if 'ifc4x3_add2.ifccurvesegment' in typeof(express_getitem(getattr(c, 'Segments', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - surfs = surfs * IfcGetBasisSurface(getattr(express_getitem(getattr(c, 'Segments', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) - if 'ifc4x3_add2.ifccompositecurvesegment' in typeof(express_getitem(getattr(c, 'Segments', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - surfs = surfs * IfcGetBasisSurface(getattr(express_getitem(getattr(c, 'Segments', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) + if 'ifc4x3_add2.ifccurvesegment' in typeof(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): + surfs = surfs * IfcGetBasisSurface(express_getattr(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) + if 'ifc4x3_add2.ifccompositecurvesegment' in typeof(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): + surfs = surfs * IfcGetBasisSurface(express_getattr(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) return surfs def IfcListToArray(lis, low, u): @@ -13651,9 +13661,9 @@ def IfcListToArray(lis, low, u): def IfcLoopHeadToTail(aloop): p = True - n = sizeof(getattr(aloop, 'EdgeList', INDETERMINATE)) + n = sizeof(express_getattr(aloop, 'EdgeList', INDETERMINATE)) for i in range(2, n + 1): - p = p and getattr(express_getitem(getattr(aloop, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == getattr(express_getitem(getattr(aloop, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) + p = p and express_getattr(express_getitem(express_getattr(aloop, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == express_getattr(express_getitem(express_getattr(aloop, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) return p def IfcMakeArrayOfArray(lis, low1, u1, low2, u2): @@ -13671,10 +13681,10 @@ def IfcMakeArrayOfArray(lis, low1, u1, low2, u2): return res def IfcMlsTotalThickness(layerset): - max = getattr(express_getitem(getattr(layerset, 'MaterialLayers', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) - if sizeof(getattr(layerset, 'MaterialLayers', INDETERMINATE)) > 1: - for i in range(2, hiindex(getattr(layerset, 'MaterialLayers', INDETERMINATE)) + 1): - max = max + getattr(express_getitem(getattr(layerset, 'MaterialLayers', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) + max = express_getattr(express_getitem(express_getattr(layerset, 'MaterialLayers', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) + if sizeof(express_getattr(layerset, 'MaterialLayers', INDETERMINATE)) > 1: + for i in range(2, hiindex(express_getattr(layerset, 'MaterialLayers', INDETERMINATE)) + 1): + max = max + express_getattr(express_getitem(express_getattr(layerset, 'MaterialLayers', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) return max def IfcNormalise(arg): @@ -13685,25 +13695,25 @@ def IfcNormalise(arg): return None else: if 'ifc4x3_add2.ifcvector' in typeof(arg): - ndim = getattr(arg, 'Dim', INDETERMINATE) - v.DirectionRatios = getattr(getattr(arg, 'Orientation', INDETERMINATE), 'DirectionRatios', INDETERMINATE) - vec.Magnitude = getattr(arg, 'Magnitude', INDETERMINATE) + ndim = express_getattr(arg, 'Dim', INDETERMINATE) + v.DirectionRatios = express_getattr(express_getattr(arg, 'Orientation', INDETERMINATE), 'DirectionRatios', INDETERMINATE) + vec.Magnitude = express_getattr(arg, 'Magnitude', INDETERMINATE) vec.Orientation = v - if getattr(arg, 'Magnitude', INDETERMINATE) == 0.0: + if express_getattr(arg, 'Magnitude', INDETERMINATE) == 0.0: return None else: vec.Magnitude = 1.0 else: - ndim = getattr(arg, 'Dim', INDETERMINATE) - v.DirectionRatios = getattr(arg, 'DirectionRatios', INDETERMINATE) + ndim = express_getattr(arg, 'Dim', INDETERMINATE) + v.DirectionRatios = express_getattr(arg, 'DirectionRatios', INDETERMINATE) mag = 0.0 for i in range(1, ndim + 1): - mag = mag + express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: mag = sqrt(mag) for i in range(1, ndim + 1): - temp = list(getattr(v, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) / mag + temp = list(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) / mag v.DirectionRatios = temp if 'ifc4x3_add2.ifcvector' in typeof(arg): vec.Orientation = v @@ -13715,29 +13725,29 @@ def IfcNormalise(arg): return result def IfcOrthogonalComplement(vec): - if not exists(vec) or getattr(vec, 'Dim', INDETERMINATE) != 2: + if not exists(vec) or express_getattr(vec, 'Dim', INDETERMINATE) != 2: return None else: - result = IfcDirection(DirectionRatios=[-express_getitem(getattr(vec, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(vec, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) + result = IfcDirection(DirectionRatios=[-express_getitem(express_getattr(vec, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(vec, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) return result def IfcPathHeadToTail(apath): n = 0 p = unknown - n = sizeof(getattr(apath, 'EdgeList', INDETERMINATE)) + n = sizeof(express_getattr(apath, 'EdgeList', INDETERMINATE)) for i in range(2, n + 1): - p = p and getattr(express_getitem(getattr(apath, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == getattr(express_getitem(getattr(apath, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) + p = p and express_getattr(express_getitem(express_getattr(apath, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == express_getattr(express_getitem(express_getattr(apath, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) return p def IfcPointDim(point): if 'ifc4x3_add2.ifccartesianpoint' in typeof(point): - return hiindex(getattr(point, 'Coordinates', INDETERMINATE)) + return hiindex(express_getattr(point, 'Coordinates', INDETERMINATE)) if 'ifc4x3_add2.ifcpointbydistanceexpression' in typeof(point): - return getattr(getattr(point, 'BasisCurve', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(point, 'BasisCurve', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_add2.ifcpointoncurve' in typeof(point): - return getattr(getattr(point, 'BasisCurve', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(point, 'BasisCurve', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_add2.ifcpointonsurface' in typeof(point): - return getattr(getattr(point, 'BasisSurface', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(point, 'BasisSurface', INDETERMINATE), 'Dim', INDETERMINATE) return None def IfcPointListDim(pointlist): @@ -13748,32 +13758,32 @@ def IfcPointListDim(pointlist): return None def IfcSameAxis2Placement(ap1, ap2, epsilon): - return IfcSameDirection(express_getitem(getattr(ap1, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(ap2, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameDirection(express_getitem(getattr(ap1, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(ap2, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameCartesianPoint(getattr(ap1, 'Location', INDETERMINATE), getattr(ap2, 'Location', INDETERMINATE), epsilon) + return IfcSameDirection(express_getitem(express_getattr(ap1, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(ap2, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameDirection(express_getitem(express_getattr(ap1, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(ap2, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameCartesianPoint(express_getattr(ap1, 'Location', INDETERMINATE), express_getattr(ap2, 'Location', INDETERMINATE), epsilon) def IfcSameCartesianPoint(cp1, cp2, epsilon): - cp1x = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - cp1y = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp1x = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp1y = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) cp1z = 0 - cp2x = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - cp2y = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp2x = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp2y = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) cp2z = 0 - if sizeof(getattr(cp1, 'Coordinates', INDETERMINATE)) > 2: - cp1z = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - if sizeof(getattr(cp2, 'Coordinates', INDETERMINATE)) > 2: - cp2z = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(cp1, 'Coordinates', INDETERMINATE)) > 2: + cp1z = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(cp2, 'Coordinates', INDETERMINATE)) > 2: + cp2z = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return IfcSameValue(cp1x, cp2x, epsilon) and IfcSameValue(cp1y, cp2y, epsilon) and IfcSameValue(cp1z, cp2z, epsilon) def IfcSameDirection(dir1, dir2, epsilon): - dir1x = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - dir1y = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir1x = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir1y = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) dir1z = 0 - dir2x = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - dir2y = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir2x = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir2y = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) dir2z = 0 - if sizeof(getattr(dir1, 'DirectionRatios', INDETERMINATE)) > 2: - dir1z = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - if sizeof(getattr(dir2, 'DirectionRatios', INDETERMINATE)) > 2: - dir2z = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(dir1, 'DirectionRatios', INDETERMINATE)) > 2: + dir1z = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(dir2, 'DirectionRatios', INDETERMINATE)) > 2: + dir2z = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return IfcSameValue(dir1x, dir2x, epsilon) and IfcSameValue(dir1y, dir2y, epsilon) and IfcSameValue(dir1z, dir2z, epsilon) def IfcSameValidPrecision(epsilon1, epsilon2): @@ -13794,15 +13804,15 @@ def IfcScalarTimesVector(scalar, vec): return None else: if 'ifc4x3_add2.ifcvector' in typeof(vec): - v = getattr(vec, 'Orientation', INDETERMINATE) - mag = scalar * getattr(vec, 'Magnitude', INDETERMINATE) + v = express_getattr(vec, 'Orientation', INDETERMINATE) + mag = scalar * express_getattr(vec, 'Magnitude', INDETERMINATE) else: v = vec mag = scalar if mag < 0.0: - for i in range(1, sizeof(getattr(v, 'DirectionRatios', INDETERMINATE)) + 1): - temp = list(getattr(v, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + for i in range(1, sizeof(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + 1): + temp = list(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) v.DirectionRatios = temp mag = -mag result = IfcVector(Orientation=IfcNormalise(v), Magnitude=mag) @@ -13818,82 +13828,82 @@ def IfcSecondProjAxis(zaxis, xaxis, arg): temp = IfcScalarTimesVector(IfcDotProduct(v, xaxis), xaxis) yaxis = IfcVectorDifference(yaxis, temp) yaxis = IfcNormalise(yaxis) - return getattr(yaxis, 'Orientation', INDETERMINATE) + return express_getattr(yaxis, 'Orientation', INDETERMINATE) def IfcSegmentDim(segment): if 'ifc4x3_add2.ifccurvesegment' in typeof(segment): - return getattr(getattr(segment, 'ParentCurve', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(segment, 'ParentCurve', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_add2.ifccompositecurvesegment' in typeof(segment): - return getattr(getattr(segment, 'ParentCurve', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(segment, 'ParentCurve', INDETERMINATE), 'Dim', INDETERMINATE) return None def IfcShapeRepresentationTypes(reptype, items): count = 0 - if getattr(reptype, 'lower', INDETERMINATE)() == 'point': + if express_getattr(reptype, 'lower', INDETERMINATE)() == 'point': count = sizeof([temp for temp in items if 'ifc4x3_add2.ifcpoint' in typeof(temp) or 'ifc4x3_add2.ifccartesianpointlist' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'pointcloud': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'pointcloud': count = sizeof([temp for temp in items if 'ifc4x3_add2.ifccartesianpointlist3d' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve': count = sizeof([temp for temp in items if 'ifc4x3_add2.ifccurve' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve2d': - count = sizeof([temp for temp in items if 'ifc4x3_add2.ifccurve' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 2]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve3d': - count = sizeof([temp for temp in items if 'ifc4x3_add2.ifccurve' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 3]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'segment': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve2d': + count = sizeof([temp for temp in items if 'ifc4x3_add2.ifccurve' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 2]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve3d': + count = sizeof([temp for temp in items if 'ifc4x3_add2.ifccurve' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 3]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'segment': count = sizeof([temp for temp in items if 'ifc4x3_add2.ifcsegment' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface': count = sizeof([temp for temp in items if 'ifc4x3_add2.ifcsurface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface2d': - count = sizeof([temp for temp in items if 'ifc4x3_add2.ifcsurface' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 2]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface3d': - count = sizeof([temp for temp in items if 'ifc4x3_add2.ifcsurface' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 3]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedsurface': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface2d': + count = sizeof([temp for temp in items if 'ifc4x3_add2.ifcsurface' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 2]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface3d': + count = sizeof([temp for temp in items if 'ifc4x3_add2.ifcsurface' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 3]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedsurface': count = sizeof([temp for temp in items if 'ifc4x3_add2.ifcsectionedsurface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'fillarea': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'fillarea': count = sizeof([temp for temp in items if 'ifc4x3_add2.ifcannotationfillarea' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'text': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'text': count = sizeof([temp for temp in items if 'ifc4x3_add2.ifctextliteral' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsurface': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsurface': count = sizeof([temp for temp in items if 'ifc4x3_add2.ifcbsplinesurface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'annotation2d': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'annotation2d': count = sizeof([temp for temp in items if sizeof(typeof(temp) * ['ifc4x3_add2.ifcpoint', 'ifc4x3_add2.ifccurve', 'ifc4x3_add2.ifcgeometriccurveset', 'ifc4x3_add2.ifcannotationfillarea', 'ifc4x3_add2.ifctextliteral']) == 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'geometricset': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'geometricset': count = sizeof([temp for temp in items if 'ifc4x3_add2.ifcgeometricset' in typeof(temp) or 'ifc4x3_add2.ifcpoint' in typeof(temp) or 'ifc4x3_add2.ifccurve' in typeof(temp) or ('ifc4x3_add2.ifcsurface' in typeof(temp))]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'geometriccurveset': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'geometriccurveset': count = sizeof([temp for temp in items if 'ifc4x3_add2.ifcgeometriccurveset' in typeof(temp) or 'ifc4x3_add2.ifcgeometricset' in typeof(temp) or 'ifc4x3_add2.ifcpoint' in typeof(temp) or ('ifc4x3_add2.ifccurve' in typeof(temp))]) for i in range(1, hiindex(items) + 1): if 'ifc4x3_add2.ifcgeometricset' in typeof(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - if sizeof([temp for temp in getattr(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Elements', INDETERMINATE) if 'ifc4x3_add2.ifcsurface' in typeof(temp)]) > 0: + if sizeof([temp for temp in express_getattr(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Elements', INDETERMINATE) if 'ifc4x3_add2.ifcsurface' in typeof(temp)]) > 0: count = count - 1 - elif getattr(reptype, 'lower', INDETERMINATE)() == 'tessellation': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'tessellation': count = sizeof([temp for temp in items if 'ifc4x3_add2.ifctessellateditem' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surfaceorsolidmodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surfaceorsolidmodel': count = sizeof([temp for temp in items if sizeof(['ifc4x3_add2.ifctessellateditem', 'ifc4x3_add2.ifcshellbasedsurfacemodel', 'ifc4x3_add2.ifcfacebasedsurfacemodel', 'ifc4x3_add2.ifcsolidmodel'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surfacemodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surfacemodel': count = sizeof([temp for temp in items if sizeof(['ifc4x3_add2.ifctessellateditem', 'ifc4x3_add2.ifcshellbasedsurfacemodel', 'ifc4x3_add2.ifcfacebasedsurfacemodel'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'solidmodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'solidmodel': count = sizeof([temp for temp in items if 'ifc4x3_add2.ifcsolidmodel' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'sweptsolid': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'sweptsolid': count = sizeof([temp for temp in items if sizeof(['ifc4x3_add2.ifcextrudedareasolid', 'ifc4x3_add2.ifcrevolvedareasolid'] * typeof(temp)) >= 1 and sizeof(['ifc4x3_add2.ifcextrudedareasolidtapered', 'ifc4x3_add2.ifcrevolvedareasolidtapered'] * typeof(temp)) == 0]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsweptsolid': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsweptsolid': count = sizeof([temp for temp in items if sizeof(['ifc4x3_add2.ifcsweptareasolid', 'ifc4x3_add2.ifcsweptdisksolid', 'ifc4x3_add2.ifcsectionedsolidhorizontal'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'csg': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'csg': count = sizeof([temp for temp in items if sizeof(['ifc4x3_add2.ifcbooleanresult', 'ifc4x3_add2.ifccsgprimitive3d', 'ifc4x3_add2.ifccsgsolid'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'clipping': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'clipping': count = sizeof([temp for temp in items if sizeof(['ifc4x3_add2.ifccsgsolid', 'ifc4x3_add2.ifcbooleanclippingresult'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'brep': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'brep': count = sizeof([temp for temp in items if 'ifc4x3_add2.ifcfacetedbrep' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedbrep': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedbrep': count = sizeof([temp for temp in items if 'ifc4x3_add2.ifcmanifoldsolidbrep' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'boundingbox': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'boundingbox': count = sizeof([temp for temp in items if 'ifc4x3_add2.ifcboundingbox' in typeof(temp)]) if sizeof(items) > 1: count = 0 - elif getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedspine': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedspine': count = sizeof([temp for temp in items if 'ifc4x3_add2.ifcsectionedspine' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'lightsource': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'lightsource': count = sizeof([temp for temp in items if 'ifc4x3_add2.ifclightsource' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'mappedrepresentation': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'mappedrepresentation': count = sizeof([temp for temp in items if 'ifc4x3_add2.ifcmappeditem' in typeof(temp)]) else: return None @@ -13901,9 +13911,9 @@ def IfcShapeRepresentationTypes(reptype, items): def IfcSurfaceWeightsPositive(b): result = True - weights = getattr(b, 'Weights', INDETERMINATE) - for i in range(0, getattr(b, 'UUpper', INDETERMINATE) + 1): - for j in range(0, getattr(b, 'VUpper', INDETERMINATE) + 1): + weights = express_getattr(b, 'Weights', INDETERMINATE) + for i in range(0, express_getattr(b, 'UUpper', INDETERMINATE) + 1): + for j in range(0, express_getattr(b, 'VUpper', INDETERMINATE) + 1): if express_getitem(express_getitem(weights, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), j - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: result = False return result @@ -13913,28 +13923,28 @@ def IfcTaperedSweptAreaProfiles(startarea, endarea): result = False if 'ifc4x3_add2.ifcparameterizedprofiledef' in typeof(startarea): if 'ifc4x3_add2.ifcderivedprofiledef' in typeof(endarea): - result = startarea == getattr(endarea, 'ParentProfile', INDETERMINATE) + result = startarea == express_getattr(endarea, 'ParentProfile', INDETERMINATE) else: result = typeof(startarea) == typeof(endarea) elif 'ifc4x3_add2.ifcderivedprofiledef' in typeof(endarea): - result = startarea == getattr(endarea, 'ParentProfile', INDETERMINATE) + result = startarea == express_getattr(endarea, 'ParentProfile', INDETERMINATE) else: result = False return result def IfcTopologyRepresentationTypes(reptype, items): count = 0 - if getattr(reptype, 'lower', INDETERMINATE)() == 'vertex': + if express_getattr(reptype, 'lower', INDETERMINATE)() == 'vertex': count = sizeof([temp for temp in items if 'ifc4x3_add2.ifcvertex' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'edge': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'edge': count = sizeof([temp for temp in items if 'ifc4x3_add2.ifcedge' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'path': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'path': count = sizeof([temp for temp in items if 'ifc4x3_add2.ifcpath' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'face': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'face': count = sizeof([temp for temp in items if 'ifc4x3_add2.ifcface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'shell': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'shell': count = sizeof([temp for temp in items if 'ifc4x3_add2.ifcopenshell' in typeof(temp) or 'ifc4x3_add2.ifcclosedshell' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'undefined': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'undefined': return True else: return None @@ -13945,7 +13955,7 @@ def IfcUniqueDefinitionNames(relations): if sizeof(relations) == 0: return True for i in range(1, hiindex(relations) + 1): - definition = getattr(express_getitem(relations, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingPropertyDefinition', INDETERMINATE) + definition = express_getattr(express_getitem(relations, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingPropertyDefinition', INDETERMINATE) if 'ifc4x3_add2.ifcpropertysetdefinition' in typeof(definition): properties = properties + definition elif 'ifc4x3_add2.ifcpropertysetdefinitionset' in typeof(definition): @@ -13958,7 +13968,7 @@ def IfcUniqueDefinitionNames(relations): def IfcUniquePropertyName(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcUniquePropertySetNames(properties): @@ -13966,7 +13976,7 @@ def IfcUniquePropertySetNames(properties): unnamed = 0 for i in range(1, hiindex(properties) + 1): if 'ifc4x3_add2.ifcpropertyset' in typeof(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) else: unnamed = unnamed + 1 return sizeof(names) + unnamed == sizeof(properties) @@ -13974,41 +13984,41 @@ def IfcUniquePropertySetNames(properties): def IfcUniquePropertyTemplateNames(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcUniqueQuantityNames(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcVectorDifference(arg1, arg2): - if (not exists(arg1) or not exists(arg2)) or getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + if (not exists(arg1) or not exists(arg2)) or express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): return None else: if 'ifc4x3_add2.ifcvector' in typeof(arg1): - mag1 = getattr(arg1, 'Magnitude', INDETERMINATE) - vec1 = getattr(arg1, 'Orientation', INDETERMINATE) + mag1 = express_getattr(arg1, 'Magnitude', INDETERMINATE) + vec1 = express_getattr(arg1, 'Orientation', INDETERMINATE) else: mag1 = 1.0 vec1 = arg1 if 'ifc4x3_add2.ifcvector' in typeof(arg2): - mag2 = getattr(arg2, 'Magnitude', INDETERMINATE) - vec2 = getattr(arg2, 'Orientation', INDETERMINATE) + mag2 = express_getattr(arg2, 'Magnitude', INDETERMINATE) + vec2 = express_getattr(arg2, 'Orientation', INDETERMINATE) else: mag2 = 1.0 vec2 = arg2 vec1 = IfcNormalise(vec1) vec2 = IfcNormalise(vec2) - ndim = sizeof(getattr(vec1, 'DirectionRatios', INDETERMINATE)) + ndim = sizeof(express_getattr(vec1, 'DirectionRatios', INDETERMINATE)) mag = 0.0 res = IfcDirection(DirectionRatios=[0.0] * ndim) for i in range(1, ndim + 1): - temp = list(getattr(res, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - mag2 * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(res, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - mag2 * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) res.DirectionRatios = temp - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: @@ -14016,31 +14026,31 @@ def IfcVectorDifference(arg1, arg2): return result def IfcVectorSum(arg1, arg2): - if (not exists(arg1) or not exists(arg2)) or getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + if (not exists(arg1) or not exists(arg2)) or express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): return None else: if 'ifc4x3_add2.ifcvector' in typeof(arg1): - mag1 = getattr(arg1, 'Magnitude', INDETERMINATE) - vec1 = getattr(arg1, 'Orientation', INDETERMINATE) + mag1 = express_getattr(arg1, 'Magnitude', INDETERMINATE) + vec1 = express_getattr(arg1, 'Orientation', INDETERMINATE) else: mag1 = 1.0 vec1 = arg1 if 'ifc4x3_add2.ifcvector' in typeof(arg2): - mag2 = getattr(arg2, 'Magnitude', INDETERMINATE) - vec2 = getattr(arg2, 'Orientation', INDETERMINATE) + mag2 = express_getattr(arg2, 'Magnitude', INDETERMINATE) + vec2 = express_getattr(arg2, 'Orientation', INDETERMINATE) else: mag2 = 1.0 vec2 = arg2 vec1 = IfcNormalise(vec1) vec2 = IfcNormalise(vec2) - ndim = sizeof(getattr(vec1, 'DirectionRatios', INDETERMINATE)) + ndim = sizeof(express_getattr(vec1, 'DirectionRatios', INDETERMINATE)) mag = 0.0 res = IfcDirection(DirectionRatios=[0.0] * ndim) for i in range(1, ndim + 1): - temp = list(getattr(res, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag2 * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(res, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag2 * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) res.DirectionRatios = temp - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC1.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC1.py index e4488d8c2e..ee645919aa 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC1.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC1.py @@ -1,5 +1,8 @@ import ifcopenshell +def is_indeterminate(v): + return v is None or type(v).__name__ == 'indeterminate_type' + def exists(v): if callable(v): try: @@ -7,10 +10,10 @@ def exists(v): except IndexError as e: return False else: - return v is not None + return not is_indeterminate(v) def nvl(v, default): - return v if v is not None else default + return v if not is_indeterminate(v) else default def is_entity(inst): if isinstance(inst, ifcopenshell.entity_instance): @@ -22,13 +25,13 @@ def is_entity(inst): def express_len(v): if isinstance(v, ifcopenshell.entity_instance) and (not is_entity(v)): v = v[0] - elif v is None or v is INDETERMINATE: + elif is_indeterminate(v): return INDETERMINATE return len(v) old_range = range def range(*args): - if INDETERMINATE in args: + if any(map(is_indeterminate, args)): return yield from old_range(*args) sizeof = express_len @@ -80,6 +83,13 @@ def express_getitem(aggr, idx, default): return aggr[idx] except IndexError as e: return None + +def express_getattr(aggr, name, default): + v = getattr(aggr, name, default) + if v is None: + return default + else: + return v EXPRESS_ONE_BASED_INDEXING = 1 def typeof(inst): @@ -140,2339 +150,2339 @@ INDETERMINATE = indeterminate_type() class enum_namespace: def __getattr__(self, k): - return getattr(k, 'upper', INDETERMINATE)() + return express_getattr(k, 'upper', INDETERMINATE)() IfcActionRequestTypeEnum = enum_namespace() -email = getattr(IfcActionRequestTypeEnum, 'EMAIL', INDETERMINATE) -fax = getattr(IfcActionRequestTypeEnum, 'FAX', INDETERMINATE) -phone = getattr(IfcActionRequestTypeEnum, 'PHONE', INDETERMINATE) -post = getattr(IfcActionRequestTypeEnum, 'POST', INDETERMINATE) -verbal = getattr(IfcActionRequestTypeEnum, 'VERBAL', INDETERMINATE) -userdefined = getattr(IfcActionRequestTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionRequestTypeEnum, 'NOTDEFINED', INDETERMINATE) +email = IfcActionRequestTypeEnum.EMAIL +fax = IfcActionRequestTypeEnum.FAX +phone = IfcActionRequestTypeEnum.PHONE +post = IfcActionRequestTypeEnum.POST +verbal = IfcActionRequestTypeEnum.VERBAL +userdefined = IfcActionRequestTypeEnum.USERDEFINED +notdefined = IfcActionRequestTypeEnum.NOTDEFINED IfcActionSourceTypeEnum = enum_namespace() -dead_load_g = getattr(IfcActionSourceTypeEnum, 'DEAD_LOAD_G', INDETERMINATE) -completion_g1 = getattr(IfcActionSourceTypeEnum, 'COMPLETION_G1', INDETERMINATE) -live_load_q = getattr(IfcActionSourceTypeEnum, 'LIVE_LOAD_Q', INDETERMINATE) -snow_s = getattr(IfcActionSourceTypeEnum, 'SNOW_S', INDETERMINATE) -wind_w = getattr(IfcActionSourceTypeEnum, 'WIND_W', INDETERMINATE) -prestressing_p = getattr(IfcActionSourceTypeEnum, 'PRESTRESSING_P', INDETERMINATE) -settlement_u = getattr(IfcActionSourceTypeEnum, 'SETTLEMENT_U', INDETERMINATE) -temperature_t = getattr(IfcActionSourceTypeEnum, 'TEMPERATURE_T', INDETERMINATE) -earthquake_e = getattr(IfcActionSourceTypeEnum, 'EARTHQUAKE_E', INDETERMINATE) -fire = getattr(IfcActionSourceTypeEnum, 'FIRE', INDETERMINATE) -impulse = getattr(IfcActionSourceTypeEnum, 'IMPULSE', INDETERMINATE) -impact = getattr(IfcActionSourceTypeEnum, 'IMPACT', INDETERMINATE) -transport = getattr(IfcActionSourceTypeEnum, 'TRANSPORT', INDETERMINATE) -erection = getattr(IfcActionSourceTypeEnum, 'ERECTION', INDETERMINATE) -propping = getattr(IfcActionSourceTypeEnum, 'PROPPING', INDETERMINATE) -system_imperfection = getattr(IfcActionSourceTypeEnum, 'SYSTEM_IMPERFECTION', INDETERMINATE) -shrinkage = getattr(IfcActionSourceTypeEnum, 'SHRINKAGE', INDETERMINATE) -creep = getattr(IfcActionSourceTypeEnum, 'CREEP', INDETERMINATE) -lack_of_fit = getattr(IfcActionSourceTypeEnum, 'LACK_OF_FIT', INDETERMINATE) -buoyancy = getattr(IfcActionSourceTypeEnum, 'BUOYANCY', INDETERMINATE) -ice = getattr(IfcActionSourceTypeEnum, 'ICE', INDETERMINATE) -current = getattr(IfcActionSourceTypeEnum, 'CURRENT', INDETERMINATE) -wave = getattr(IfcActionSourceTypeEnum, 'WAVE', INDETERMINATE) -rain = getattr(IfcActionSourceTypeEnum, 'RAIN', INDETERMINATE) -brakes = getattr(IfcActionSourceTypeEnum, 'BRAKES', INDETERMINATE) -userdefined = getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionSourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dead_load_g = IfcActionSourceTypeEnum.DEAD_LOAD_G +completion_g1 = IfcActionSourceTypeEnum.COMPLETION_G1 +live_load_q = IfcActionSourceTypeEnum.LIVE_LOAD_Q +snow_s = IfcActionSourceTypeEnum.SNOW_S +wind_w = IfcActionSourceTypeEnum.WIND_W +prestressing_p = IfcActionSourceTypeEnum.PRESTRESSING_P +settlement_u = IfcActionSourceTypeEnum.SETTLEMENT_U +temperature_t = IfcActionSourceTypeEnum.TEMPERATURE_T +earthquake_e = IfcActionSourceTypeEnum.EARTHQUAKE_E +fire = IfcActionSourceTypeEnum.FIRE +impulse = IfcActionSourceTypeEnum.IMPULSE +impact = IfcActionSourceTypeEnum.IMPACT +transport = IfcActionSourceTypeEnum.TRANSPORT +erection = IfcActionSourceTypeEnum.ERECTION +propping = IfcActionSourceTypeEnum.PROPPING +system_imperfection = IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION +shrinkage = IfcActionSourceTypeEnum.SHRINKAGE +creep = IfcActionSourceTypeEnum.CREEP +lack_of_fit = IfcActionSourceTypeEnum.LACK_OF_FIT +buoyancy = IfcActionSourceTypeEnum.BUOYANCY +ice = IfcActionSourceTypeEnum.ICE +current = IfcActionSourceTypeEnum.CURRENT +wave = IfcActionSourceTypeEnum.WAVE +rain = IfcActionSourceTypeEnum.RAIN +brakes = IfcActionSourceTypeEnum.BRAKES +userdefined = IfcActionSourceTypeEnum.USERDEFINED +notdefined = IfcActionSourceTypeEnum.NOTDEFINED IfcActionTypeEnum = enum_namespace() -permanent_g = getattr(IfcActionTypeEnum, 'PERMANENT_G', INDETERMINATE) -variable_q = getattr(IfcActionTypeEnum, 'VARIABLE_Q', INDETERMINATE) -extraordinary_a = getattr(IfcActionTypeEnum, 'EXTRAORDINARY_A', INDETERMINATE) -userdefined = getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionTypeEnum, 'NOTDEFINED', INDETERMINATE) +permanent_g = IfcActionTypeEnum.PERMANENT_G +variable_q = IfcActionTypeEnum.VARIABLE_Q +extraordinary_a = IfcActionTypeEnum.EXTRAORDINARY_A +userdefined = IfcActionTypeEnum.USERDEFINED +notdefined = IfcActionTypeEnum.NOTDEFINED IfcActuatorTypeEnum = enum_namespace() -electricactuator = getattr(IfcActuatorTypeEnum, 'ELECTRICACTUATOR', INDETERMINATE) -handoperatedactuator = getattr(IfcActuatorTypeEnum, 'HANDOPERATEDACTUATOR', INDETERMINATE) -hydraulicactuator = getattr(IfcActuatorTypeEnum, 'HYDRAULICACTUATOR', INDETERMINATE) -pneumaticactuator = getattr(IfcActuatorTypeEnum, 'PNEUMATICACTUATOR', INDETERMINATE) -thermostaticactuator = getattr(IfcActuatorTypeEnum, 'THERMOSTATICACTUATOR', INDETERMINATE) -userdefined = getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActuatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +electricactuator = IfcActuatorTypeEnum.ELECTRICACTUATOR +handoperatedactuator = IfcActuatorTypeEnum.HANDOPERATEDACTUATOR +hydraulicactuator = IfcActuatorTypeEnum.HYDRAULICACTUATOR +pneumaticactuator = IfcActuatorTypeEnum.PNEUMATICACTUATOR +thermostaticactuator = IfcActuatorTypeEnum.THERMOSTATICACTUATOR +userdefined = IfcActuatorTypeEnum.USERDEFINED +notdefined = IfcActuatorTypeEnum.NOTDEFINED IfcAddressTypeEnum = enum_namespace() -office = getattr(IfcAddressTypeEnum, 'OFFICE', INDETERMINATE) -site = getattr(IfcAddressTypeEnum, 'SITE', INDETERMINATE) -home = getattr(IfcAddressTypeEnum, 'HOME', INDETERMINATE) -distributionpoint = getattr(IfcAddressTypeEnum, 'DISTRIBUTIONPOINT', INDETERMINATE) -userdefined = getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) +office = IfcAddressTypeEnum.OFFICE +site = IfcAddressTypeEnum.SITE +home = IfcAddressTypeEnum.HOME +distributionpoint = IfcAddressTypeEnum.DISTRIBUTIONPOINT +userdefined = IfcAddressTypeEnum.USERDEFINED IfcAirTerminalBoxTypeEnum = enum_namespace() -constantflow = getattr(IfcAirTerminalBoxTypeEnum, 'CONSTANTFLOW', INDETERMINATE) -variableflowpressuredependant = getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREDEPENDANT', INDETERMINATE) -variableflowpressureindependant = getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREINDEPENDANT', INDETERMINATE) -userdefined = getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirTerminalBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +constantflow = IfcAirTerminalBoxTypeEnum.CONSTANTFLOW +variableflowpressuredependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT +variableflowpressureindependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT +userdefined = IfcAirTerminalBoxTypeEnum.USERDEFINED +notdefined = IfcAirTerminalBoxTypeEnum.NOTDEFINED IfcAirTerminalTypeEnum = enum_namespace() -diffuser = getattr(IfcAirTerminalTypeEnum, 'DIFFUSER', INDETERMINATE) -grille = getattr(IfcAirTerminalTypeEnum, 'GRILLE', INDETERMINATE) -louvre = getattr(IfcAirTerminalTypeEnum, 'LOUVRE', INDETERMINATE) -register = getattr(IfcAirTerminalTypeEnum, 'REGISTER', INDETERMINATE) -userdefined = getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +diffuser = IfcAirTerminalTypeEnum.DIFFUSER +grille = IfcAirTerminalTypeEnum.GRILLE +louvre = IfcAirTerminalTypeEnum.LOUVRE +register = IfcAirTerminalTypeEnum.REGISTER +userdefined = IfcAirTerminalTypeEnum.USERDEFINED +notdefined = IfcAirTerminalTypeEnum.NOTDEFINED IfcAirToAirHeatRecoveryTypeEnum = enum_namespace() -fixedplatecounterflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECOUNTERFLOWEXCHANGER', INDETERMINATE) -fixedplatecrossflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECROSSFLOWEXCHANGER', INDETERMINATE) -fixedplateparallelflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATEPARALLELFLOWEXCHANGER', INDETERMINATE) -rotarywheel = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'ROTARYWHEEL', INDETERMINATE) -runaroundcoilloop = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'RUNAROUNDCOILLOOP', INDETERMINATE) -heatpipe = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'HEATPIPE', INDETERMINATE) -twintowerenthalpyrecoveryloops = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'TWINTOWERENTHALPYRECOVERYLOOPS', INDETERMINATE) -thermosiphonsealedtubeheatexchangers = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONSEALEDTUBEHEATEXCHANGERS', INDETERMINATE) -thermosiphoncoiltypeheatexchangers = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONCOILTYPEHEATEXCHANGERS', INDETERMINATE) -userdefined = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'NOTDEFINED', INDETERMINATE) +fixedplatecounterflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER +fixedplatecrossflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER +fixedplateparallelflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER +rotarywheel = IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL +runaroundcoilloop = IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP +heatpipe = IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE +twintowerenthalpyrecoveryloops = IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS +thermosiphonsealedtubeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS +thermosiphoncoiltypeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS +userdefined = IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED +notdefined = IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED IfcAlarmTypeEnum = enum_namespace() -bell = getattr(IfcAlarmTypeEnum, 'BELL', INDETERMINATE) -breakglassbutton = getattr(IfcAlarmTypeEnum, 'BREAKGLASSBUTTON', INDETERMINATE) -light = getattr(IfcAlarmTypeEnum, 'LIGHT', INDETERMINATE) -manualpullbox = getattr(IfcAlarmTypeEnum, 'MANUALPULLBOX', INDETERMINATE) -siren = getattr(IfcAlarmTypeEnum, 'SIREN', INDETERMINATE) -whistle = getattr(IfcAlarmTypeEnum, 'WHISTLE', INDETERMINATE) -railwaycrocodile = getattr(IfcAlarmTypeEnum, 'RAILWAYCROCODILE', INDETERMINATE) -railwaydetonator = getattr(IfcAlarmTypeEnum, 'RAILWAYDETONATOR', INDETERMINATE) -userdefined = getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAlarmTypeEnum, 'NOTDEFINED', INDETERMINATE) +bell = IfcAlarmTypeEnum.BELL +breakglassbutton = IfcAlarmTypeEnum.BREAKGLASSBUTTON +light = IfcAlarmTypeEnum.LIGHT +manualpullbox = IfcAlarmTypeEnum.MANUALPULLBOX +siren = IfcAlarmTypeEnum.SIREN +whistle = IfcAlarmTypeEnum.WHISTLE +railwaycrocodile = IfcAlarmTypeEnum.RAILWAYCROCODILE +railwaydetonator = IfcAlarmTypeEnum.RAILWAYDETONATOR +userdefined = IfcAlarmTypeEnum.USERDEFINED +notdefined = IfcAlarmTypeEnum.NOTDEFINED IfcAlignmentTypeEnum = enum_namespace() -userdefined = getattr(IfcAlignmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAlignmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcAlignmentTypeEnum.USERDEFINED +notdefined = IfcAlignmentTypeEnum.NOTDEFINED IfcAnalysisModelTypeEnum = enum_namespace() -in_plane_loading_2d = getattr(IfcAnalysisModelTypeEnum, 'IN_PLANE_LOADING_2D', INDETERMINATE) -out_plane_loading_2d = getattr(IfcAnalysisModelTypeEnum, 'OUT_PLANE_LOADING_2D', INDETERMINATE) -loading_3d = getattr(IfcAnalysisModelTypeEnum, 'LOADING_3D', INDETERMINATE) -userdefined = getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnalysisModelTypeEnum, 'NOTDEFINED', INDETERMINATE) +in_plane_loading_2d = IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D +out_plane_loading_2d = IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D +loading_3d = IfcAnalysisModelTypeEnum.LOADING_3D +userdefined = IfcAnalysisModelTypeEnum.USERDEFINED +notdefined = IfcAnalysisModelTypeEnum.NOTDEFINED IfcAnalysisTheoryTypeEnum = enum_namespace() -first_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'FIRST_ORDER_THEORY', INDETERMINATE) -second_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'SECOND_ORDER_THEORY', INDETERMINATE) -third_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'THIRD_ORDER_THEORY', INDETERMINATE) -full_nonlinear_theory = getattr(IfcAnalysisTheoryTypeEnum, 'FULL_NONLINEAR_THEORY', INDETERMINATE) -userdefined = getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnalysisTheoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +first_order_theory = IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY +second_order_theory = IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY +third_order_theory = IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY +full_nonlinear_theory = IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY +userdefined = IfcAnalysisTheoryTypeEnum.USERDEFINED +notdefined = IfcAnalysisTheoryTypeEnum.NOTDEFINED IfcAnnotationTypeEnum = enum_namespace() -assumedpoint = getattr(IfcAnnotationTypeEnum, 'ASSUMEDPOINT', INDETERMINATE) -asbuiltarea = getattr(IfcAnnotationTypeEnum, 'ASBUILTAREA', INDETERMINATE) -asbuiltline = getattr(IfcAnnotationTypeEnum, 'ASBUILTLINE', INDETERMINATE) -non_physical_signal = getattr(IfcAnnotationTypeEnum, 'NON_PHYSICAL_SIGNAL', INDETERMINATE) -assumedline = getattr(IfcAnnotationTypeEnum, 'ASSUMEDLINE', INDETERMINATE) -widthevent = getattr(IfcAnnotationTypeEnum, 'WIDTHEVENT', INDETERMINATE) -assumedarea = getattr(IfcAnnotationTypeEnum, 'ASSUMEDAREA', INDETERMINATE) -superelevationevent = getattr(IfcAnnotationTypeEnum, 'SUPERELEVATIONEVENT', INDETERMINATE) -asbuiltpoint = getattr(IfcAnnotationTypeEnum, 'ASBUILTPOINT', INDETERMINATE) -userdefined = getattr(IfcAnnotationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnnotationTypeEnum, 'NOTDEFINED', INDETERMINATE) +assumedpoint = IfcAnnotationTypeEnum.ASSUMEDPOINT +asbuiltarea = IfcAnnotationTypeEnum.ASBUILTAREA +asbuiltline = IfcAnnotationTypeEnum.ASBUILTLINE +non_physical_signal = IfcAnnotationTypeEnum.NON_PHYSICAL_SIGNAL +assumedline = IfcAnnotationTypeEnum.ASSUMEDLINE +widthevent = IfcAnnotationTypeEnum.WIDTHEVENT +assumedarea = IfcAnnotationTypeEnum.ASSUMEDAREA +superelevationevent = IfcAnnotationTypeEnum.SUPERELEVATIONEVENT +asbuiltpoint = IfcAnnotationTypeEnum.ASBUILTPOINT +userdefined = IfcAnnotationTypeEnum.USERDEFINED +notdefined = IfcAnnotationTypeEnum.NOTDEFINED IfcArithmeticOperatorEnum = enum_namespace() -add = getattr(IfcArithmeticOperatorEnum, 'ADD', INDETERMINATE) -divide = getattr(IfcArithmeticOperatorEnum, 'DIVIDE', INDETERMINATE) -multiply = getattr(IfcArithmeticOperatorEnum, 'MULTIPLY', INDETERMINATE) -subtract = getattr(IfcArithmeticOperatorEnum, 'SUBTRACT', INDETERMINATE) +add = IfcArithmeticOperatorEnum.ADD +divide = IfcArithmeticOperatorEnum.DIVIDE +multiply = IfcArithmeticOperatorEnum.MULTIPLY +subtract = IfcArithmeticOperatorEnum.SUBTRACT IfcAssemblyPlaceEnum = enum_namespace() -site = getattr(IfcAssemblyPlaceEnum, 'SITE', INDETERMINATE) -factory = getattr(IfcAssemblyPlaceEnum, 'FACTORY', INDETERMINATE) -notdefined = getattr(IfcAssemblyPlaceEnum, 'NOTDEFINED', INDETERMINATE) +site = IfcAssemblyPlaceEnum.SITE +factory = IfcAssemblyPlaceEnum.FACTORY +notdefined = IfcAssemblyPlaceEnum.NOTDEFINED IfcAudioVisualApplianceTypeEnum = enum_namespace() -amplifier = getattr(IfcAudioVisualApplianceTypeEnum, 'AMPLIFIER', INDETERMINATE) -camera = getattr(IfcAudioVisualApplianceTypeEnum, 'CAMERA', INDETERMINATE) -display = getattr(IfcAudioVisualApplianceTypeEnum, 'DISPLAY', INDETERMINATE) -microphone = getattr(IfcAudioVisualApplianceTypeEnum, 'MICROPHONE', INDETERMINATE) -player = getattr(IfcAudioVisualApplianceTypeEnum, 'PLAYER', INDETERMINATE) -projector = getattr(IfcAudioVisualApplianceTypeEnum, 'PROJECTOR', INDETERMINATE) -receiver = getattr(IfcAudioVisualApplianceTypeEnum, 'RECEIVER', INDETERMINATE) -speaker = getattr(IfcAudioVisualApplianceTypeEnum, 'SPEAKER', INDETERMINATE) -switcher = getattr(IfcAudioVisualApplianceTypeEnum, 'SWITCHER', INDETERMINATE) -telephone = getattr(IfcAudioVisualApplianceTypeEnum, 'TELEPHONE', INDETERMINATE) -tuner = getattr(IfcAudioVisualApplianceTypeEnum, 'TUNER', INDETERMINATE) -railway_communication_terminal = getattr(IfcAudioVisualApplianceTypeEnum, 'RAILWAY_COMMUNICATION_TERMINAL', INDETERMINATE) -userdefined = getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAudioVisualApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +amplifier = IfcAudioVisualApplianceTypeEnum.AMPLIFIER +camera = IfcAudioVisualApplianceTypeEnum.CAMERA +display = IfcAudioVisualApplianceTypeEnum.DISPLAY +microphone = IfcAudioVisualApplianceTypeEnum.MICROPHONE +player = IfcAudioVisualApplianceTypeEnum.PLAYER +projector = IfcAudioVisualApplianceTypeEnum.PROJECTOR +receiver = IfcAudioVisualApplianceTypeEnum.RECEIVER +speaker = IfcAudioVisualApplianceTypeEnum.SPEAKER +switcher = IfcAudioVisualApplianceTypeEnum.SWITCHER +telephone = IfcAudioVisualApplianceTypeEnum.TELEPHONE +tuner = IfcAudioVisualApplianceTypeEnum.TUNER +railway_communication_terminal = IfcAudioVisualApplianceTypeEnum.RAILWAY_COMMUNICATION_TERMINAL +userdefined = IfcAudioVisualApplianceTypeEnum.USERDEFINED +notdefined = IfcAudioVisualApplianceTypeEnum.NOTDEFINED IfcBSplineCurveForm = enum_namespace() -polyline_form = getattr(IfcBSplineCurveForm, 'POLYLINE_FORM', INDETERMINATE) -circular_arc = getattr(IfcBSplineCurveForm, 'CIRCULAR_ARC', INDETERMINATE) -elliptic_arc = getattr(IfcBSplineCurveForm, 'ELLIPTIC_ARC', INDETERMINATE) -parabolic_arc = getattr(IfcBSplineCurveForm, 'PARABOLIC_ARC', INDETERMINATE) -hyperbolic_arc = getattr(IfcBSplineCurveForm, 'HYPERBOLIC_ARC', INDETERMINATE) -unspecified = getattr(IfcBSplineCurveForm, 'UNSPECIFIED', INDETERMINATE) +polyline_form = IfcBSplineCurveForm.POLYLINE_FORM +circular_arc = IfcBSplineCurveForm.CIRCULAR_ARC +elliptic_arc = IfcBSplineCurveForm.ELLIPTIC_ARC +parabolic_arc = IfcBSplineCurveForm.PARABOLIC_ARC +hyperbolic_arc = IfcBSplineCurveForm.HYPERBOLIC_ARC +unspecified = IfcBSplineCurveForm.UNSPECIFIED IfcBSplineSurfaceForm = enum_namespace() -plane_surf = getattr(IfcBSplineSurfaceForm, 'PLANE_SURF', INDETERMINATE) -cylindrical_surf = getattr(IfcBSplineSurfaceForm, 'CYLINDRICAL_SURF', INDETERMINATE) -conical_surf = getattr(IfcBSplineSurfaceForm, 'CONICAL_SURF', INDETERMINATE) -spherical_surf = getattr(IfcBSplineSurfaceForm, 'SPHERICAL_SURF', INDETERMINATE) -toroidal_surf = getattr(IfcBSplineSurfaceForm, 'TOROIDAL_SURF', INDETERMINATE) -surf_of_revolution = getattr(IfcBSplineSurfaceForm, 'SURF_OF_REVOLUTION', INDETERMINATE) -ruled_surf = getattr(IfcBSplineSurfaceForm, 'RULED_SURF', INDETERMINATE) -generalised_cone = getattr(IfcBSplineSurfaceForm, 'GENERALISED_CONE', INDETERMINATE) -quadric_surf = getattr(IfcBSplineSurfaceForm, 'QUADRIC_SURF', INDETERMINATE) -surf_of_linear_extrusion = getattr(IfcBSplineSurfaceForm, 'SURF_OF_LINEAR_EXTRUSION', INDETERMINATE) -unspecified = getattr(IfcBSplineSurfaceForm, 'UNSPECIFIED', INDETERMINATE) +plane_surf = IfcBSplineSurfaceForm.PLANE_SURF +cylindrical_surf = IfcBSplineSurfaceForm.CYLINDRICAL_SURF +conical_surf = IfcBSplineSurfaceForm.CONICAL_SURF +spherical_surf = IfcBSplineSurfaceForm.SPHERICAL_SURF +toroidal_surf = IfcBSplineSurfaceForm.TOROIDAL_SURF +surf_of_revolution = IfcBSplineSurfaceForm.SURF_OF_REVOLUTION +ruled_surf = IfcBSplineSurfaceForm.RULED_SURF +generalised_cone = IfcBSplineSurfaceForm.GENERALISED_CONE +quadric_surf = IfcBSplineSurfaceForm.QUADRIC_SURF +surf_of_linear_extrusion = IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION +unspecified = IfcBSplineSurfaceForm.UNSPECIFIED IfcBeamTypeEnum = enum_namespace() -beam = getattr(IfcBeamTypeEnum, 'BEAM', INDETERMINATE) -joist = getattr(IfcBeamTypeEnum, 'JOIST', INDETERMINATE) -hollowcore = getattr(IfcBeamTypeEnum, 'HOLLOWCORE', INDETERMINATE) -lintel = getattr(IfcBeamTypeEnum, 'LINTEL', INDETERMINATE) -spandrel = getattr(IfcBeamTypeEnum, 'SPANDREL', INDETERMINATE) -t_beam = getattr(IfcBeamTypeEnum, 'T_BEAM', INDETERMINATE) -girder_segment = getattr(IfcBeamTypeEnum, 'GIRDER_SEGMENT', INDETERMINATE) -diaphragm = getattr(IfcBeamTypeEnum, 'DIAPHRAGM', INDETERMINATE) -piercap = getattr(IfcBeamTypeEnum, 'PIERCAP', INDETERMINATE) -hatstone = getattr(IfcBeamTypeEnum, 'HATSTONE', INDETERMINATE) -cornice = getattr(IfcBeamTypeEnum, 'CORNICE', INDETERMINATE) -edgebeam = getattr(IfcBeamTypeEnum, 'EDGEBEAM', INDETERMINATE) -userdefined = getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +beam = IfcBeamTypeEnum.BEAM +joist = IfcBeamTypeEnum.JOIST +hollowcore = IfcBeamTypeEnum.HOLLOWCORE +lintel = IfcBeamTypeEnum.LINTEL +spandrel = IfcBeamTypeEnum.SPANDREL +t_beam = IfcBeamTypeEnum.T_BEAM +girder_segment = IfcBeamTypeEnum.GIRDER_SEGMENT +diaphragm = IfcBeamTypeEnum.DIAPHRAGM +piercap = IfcBeamTypeEnum.PIERCAP +hatstone = IfcBeamTypeEnum.HATSTONE +cornice = IfcBeamTypeEnum.CORNICE +edgebeam = IfcBeamTypeEnum.EDGEBEAM +userdefined = IfcBeamTypeEnum.USERDEFINED +notdefined = IfcBeamTypeEnum.NOTDEFINED IfcBearingTypeDisplacementEnum = enum_namespace() -fixed_movement = getattr(IfcBearingTypeDisplacementEnum, 'FIXED_MOVEMENT', INDETERMINATE) -guided_longitudinal = getattr(IfcBearingTypeDisplacementEnum, 'GUIDED_LONGITUDINAL', INDETERMINATE) -guided_transversal = getattr(IfcBearingTypeDisplacementEnum, 'GUIDED_TRANSVERSAL', INDETERMINATE) -free_movement = getattr(IfcBearingTypeDisplacementEnum, 'FREE_MOVEMENT', INDETERMINATE) -notdefined = getattr(IfcBearingTypeDisplacementEnum, 'NOTDEFINED', INDETERMINATE) +fixed_movement = IfcBearingTypeDisplacementEnum.FIXED_MOVEMENT +guided_longitudinal = IfcBearingTypeDisplacementEnum.GUIDED_LONGITUDINAL +guided_transversal = IfcBearingTypeDisplacementEnum.GUIDED_TRANSVERSAL +free_movement = IfcBearingTypeDisplacementEnum.FREE_MOVEMENT +notdefined = IfcBearingTypeDisplacementEnum.NOTDEFINED IfcBearingTypeEnum = enum_namespace() -cylindrical = getattr(IfcBearingTypeEnum, 'CYLINDRICAL', INDETERMINATE) -spherical = getattr(IfcBearingTypeEnum, 'SPHERICAL', INDETERMINATE) -elastomeric = getattr(IfcBearingTypeEnum, 'ELASTOMERIC', INDETERMINATE) -pot = getattr(IfcBearingTypeEnum, 'POT', INDETERMINATE) -guide = getattr(IfcBearingTypeEnum, 'GUIDE', INDETERMINATE) -rocker = getattr(IfcBearingTypeEnum, 'ROCKER', INDETERMINATE) -roller = getattr(IfcBearingTypeEnum, 'ROLLER', INDETERMINATE) -disk = getattr(IfcBearingTypeEnum, 'DISK', INDETERMINATE) -userdefined = getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBearingTypeEnum, 'NOTDEFINED', INDETERMINATE) +cylindrical = IfcBearingTypeEnum.CYLINDRICAL +spherical = IfcBearingTypeEnum.SPHERICAL +elastomeric = IfcBearingTypeEnum.ELASTOMERIC +pot = IfcBearingTypeEnum.POT +guide = IfcBearingTypeEnum.GUIDE +rocker = IfcBearingTypeEnum.ROCKER +roller = IfcBearingTypeEnum.ROLLER +disk = IfcBearingTypeEnum.DISK +userdefined = IfcBearingTypeEnum.USERDEFINED +notdefined = IfcBearingTypeEnum.NOTDEFINED IfcBenchmarkEnum = enum_namespace() -greaterthan = getattr(IfcBenchmarkEnum, 'GREATERTHAN', INDETERMINATE) -greaterthanorequalto = getattr(IfcBenchmarkEnum, 'GREATERTHANOREQUALTO', INDETERMINATE) -lessthan = getattr(IfcBenchmarkEnum, 'LESSTHAN', INDETERMINATE) -lessthanorequalto = getattr(IfcBenchmarkEnum, 'LESSTHANOREQUALTO', INDETERMINATE) -equalto = getattr(IfcBenchmarkEnum, 'EQUALTO', INDETERMINATE) -notequalto = getattr(IfcBenchmarkEnum, 'NOTEQUALTO', INDETERMINATE) -includes = getattr(IfcBenchmarkEnum, 'INCLUDES', INDETERMINATE) -notincludes = getattr(IfcBenchmarkEnum, 'NOTINCLUDES', INDETERMINATE) -includedin = getattr(IfcBenchmarkEnum, 'INCLUDEDIN', INDETERMINATE) -notincludedin = getattr(IfcBenchmarkEnum, 'NOTINCLUDEDIN', INDETERMINATE) +greaterthan = IfcBenchmarkEnum.GREATERTHAN +greaterthanorequalto = IfcBenchmarkEnum.GREATERTHANOREQUALTO +lessthan = IfcBenchmarkEnum.LESSTHAN +lessthanorequalto = IfcBenchmarkEnum.LESSTHANOREQUALTO +equalto = IfcBenchmarkEnum.EQUALTO +notequalto = IfcBenchmarkEnum.NOTEQUALTO +includes = IfcBenchmarkEnum.INCLUDES +notincludes = IfcBenchmarkEnum.NOTINCLUDES +includedin = IfcBenchmarkEnum.INCLUDEDIN +notincludedin = IfcBenchmarkEnum.NOTINCLUDEDIN IfcBoilerTypeEnum = enum_namespace() -water = getattr(IfcBoilerTypeEnum, 'WATER', INDETERMINATE) -steam = getattr(IfcBoilerTypeEnum, 'STEAM', INDETERMINATE) -userdefined = getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBoilerTypeEnum, 'NOTDEFINED', INDETERMINATE) +water = IfcBoilerTypeEnum.WATER +steam = IfcBoilerTypeEnum.STEAM +userdefined = IfcBoilerTypeEnum.USERDEFINED +notdefined = IfcBoilerTypeEnum.NOTDEFINED IfcBooleanOperator = enum_namespace() -union = getattr(IfcBooleanOperator, 'UNION', INDETERMINATE) -intersection = getattr(IfcBooleanOperator, 'INTERSECTION', INDETERMINATE) -difference = getattr(IfcBooleanOperator, 'DIFFERENCE', INDETERMINATE) +union = IfcBooleanOperator.UNION +intersection = IfcBooleanOperator.INTERSECTION +difference = IfcBooleanOperator.DIFFERENCE IfcBridgePartTypeEnum = enum_namespace() -abutment = getattr(IfcBridgePartTypeEnum, 'ABUTMENT', INDETERMINATE) -deck = getattr(IfcBridgePartTypeEnum, 'DECK', INDETERMINATE) -deck_segment = getattr(IfcBridgePartTypeEnum, 'DECK_SEGMENT', INDETERMINATE) -foundation = getattr(IfcBridgePartTypeEnum, 'FOUNDATION', INDETERMINATE) -pier = getattr(IfcBridgePartTypeEnum, 'PIER', INDETERMINATE) -pier_segment = getattr(IfcBridgePartTypeEnum, 'PIER_SEGMENT', INDETERMINATE) -pylon = getattr(IfcBridgePartTypeEnum, 'PYLON', INDETERMINATE) -substructure = getattr(IfcBridgePartTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -superstructure = getattr(IfcBridgePartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -surfacestructure = getattr(IfcBridgePartTypeEnum, 'SURFACESTRUCTURE', INDETERMINATE) -userdefined = getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBridgePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +abutment = IfcBridgePartTypeEnum.ABUTMENT +deck = IfcBridgePartTypeEnum.DECK +deck_segment = IfcBridgePartTypeEnum.DECK_SEGMENT +foundation = IfcBridgePartTypeEnum.FOUNDATION +pier = IfcBridgePartTypeEnum.PIER +pier_segment = IfcBridgePartTypeEnum.PIER_SEGMENT +pylon = IfcBridgePartTypeEnum.PYLON +substructure = IfcBridgePartTypeEnum.SUBSTRUCTURE +superstructure = IfcBridgePartTypeEnum.SUPERSTRUCTURE +surfacestructure = IfcBridgePartTypeEnum.SURFACESTRUCTURE +userdefined = IfcBridgePartTypeEnum.USERDEFINED +notdefined = IfcBridgePartTypeEnum.NOTDEFINED IfcBridgeTypeEnum = enum_namespace() -arched = getattr(IfcBridgeTypeEnum, 'ARCHED', INDETERMINATE) -cable_stayed = getattr(IfcBridgeTypeEnum, 'CABLE_STAYED', INDETERMINATE) -cantilever = getattr(IfcBridgeTypeEnum, 'CANTILEVER', INDETERMINATE) -culvert = getattr(IfcBridgeTypeEnum, 'CULVERT', INDETERMINATE) -framework = getattr(IfcBridgeTypeEnum, 'FRAMEWORK', INDETERMINATE) -girder = getattr(IfcBridgeTypeEnum, 'GIRDER', INDETERMINATE) -suspension = getattr(IfcBridgeTypeEnum, 'SUSPENSION', INDETERMINATE) -truss = getattr(IfcBridgeTypeEnum, 'TRUSS', INDETERMINATE) -userdefined = getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBridgeTypeEnum, 'NOTDEFINED', INDETERMINATE) +arched = IfcBridgeTypeEnum.ARCHED +cable_stayed = IfcBridgeTypeEnum.CABLE_STAYED +cantilever = IfcBridgeTypeEnum.CANTILEVER +culvert = IfcBridgeTypeEnum.CULVERT +framework = IfcBridgeTypeEnum.FRAMEWORK +girder = IfcBridgeTypeEnum.GIRDER +suspension = IfcBridgeTypeEnum.SUSPENSION +truss = IfcBridgeTypeEnum.TRUSS +userdefined = IfcBridgeTypeEnum.USERDEFINED +notdefined = IfcBridgeTypeEnum.NOTDEFINED IfcBuildingElementPartTypeEnum = enum_namespace() -insulation = getattr(IfcBuildingElementPartTypeEnum, 'INSULATION', INDETERMINATE) -precastpanel = getattr(IfcBuildingElementPartTypeEnum, 'PRECASTPANEL', INDETERMINATE) -apron = getattr(IfcBuildingElementPartTypeEnum, 'APRON', INDETERMINATE) -armourunit = getattr(IfcBuildingElementPartTypeEnum, 'ARMOURUNIT', INDETERMINATE) -safetycage = getattr(IfcBuildingElementPartTypeEnum, 'SAFETYCAGE', INDETERMINATE) -userdefined = getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingElementPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +insulation = IfcBuildingElementPartTypeEnum.INSULATION +precastpanel = IfcBuildingElementPartTypeEnum.PRECASTPANEL +apron = IfcBuildingElementPartTypeEnum.APRON +armourunit = IfcBuildingElementPartTypeEnum.ARMOURUNIT +safetycage = IfcBuildingElementPartTypeEnum.SAFETYCAGE +userdefined = IfcBuildingElementPartTypeEnum.USERDEFINED +notdefined = IfcBuildingElementPartTypeEnum.NOTDEFINED IfcBuildingElementProxyTypeEnum = enum_namespace() -complex = getattr(IfcBuildingElementProxyTypeEnum, 'COMPLEX', INDETERMINATE) -element = getattr(IfcBuildingElementProxyTypeEnum, 'ELEMENT', INDETERMINATE) -partial = getattr(IfcBuildingElementProxyTypeEnum, 'PARTIAL', INDETERMINATE) -provisionforvoid = getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORVOID', INDETERMINATE) -provisionforspace = getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORSPACE', INDETERMINATE) -userdefined = getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingElementProxyTypeEnum, 'NOTDEFINED', INDETERMINATE) +complex = IfcBuildingElementProxyTypeEnum.COMPLEX +element = IfcBuildingElementProxyTypeEnum.ELEMENT +partial = IfcBuildingElementProxyTypeEnum.PARTIAL +provisionforvoid = IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID +provisionforspace = IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE +userdefined = IfcBuildingElementProxyTypeEnum.USERDEFINED +notdefined = IfcBuildingElementProxyTypeEnum.NOTDEFINED IfcBuildingSystemTypeEnum = enum_namespace() -fenestration = getattr(IfcBuildingSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = getattr(IfcBuildingSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = getattr(IfcBuildingSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -outershell = getattr(IfcBuildingSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -shading = getattr(IfcBuildingSystemTypeEnum, 'SHADING', INDETERMINATE) -transport = getattr(IfcBuildingSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -reinforcing = getattr(IfcBuildingSystemTypeEnum, 'REINFORCING', INDETERMINATE) -prestressing = getattr(IfcBuildingSystemTypeEnum, 'PRESTRESSING', INDETERMINATE) -erosionprevention = getattr(IfcBuildingSystemTypeEnum, 'EROSIONPREVENTION', INDETERMINATE) -userdefined = getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +fenestration = IfcBuildingSystemTypeEnum.FENESTRATION +foundation = IfcBuildingSystemTypeEnum.FOUNDATION +loadbearing = IfcBuildingSystemTypeEnum.LOADBEARING +outershell = IfcBuildingSystemTypeEnum.OUTERSHELL +shading = IfcBuildingSystemTypeEnum.SHADING +transport = IfcBuildingSystemTypeEnum.TRANSPORT +reinforcing = IfcBuildingSystemTypeEnum.REINFORCING +prestressing = IfcBuildingSystemTypeEnum.PRESTRESSING +erosionprevention = IfcBuildingSystemTypeEnum.EROSIONPREVENTION +userdefined = IfcBuildingSystemTypeEnum.USERDEFINED +notdefined = IfcBuildingSystemTypeEnum.NOTDEFINED IfcBuiltSystemTypeEnum = enum_namespace() -reinforcing = getattr(IfcBuiltSystemTypeEnum, 'REINFORCING', INDETERMINATE) -mooring = getattr(IfcBuiltSystemTypeEnum, 'MOORING', INDETERMINATE) -outershell = getattr(IfcBuiltSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -trackcircuit = getattr(IfcBuiltSystemTypeEnum, 'TRACKCIRCUIT', INDETERMINATE) -erosionprevention = getattr(IfcBuiltSystemTypeEnum, 'EROSIONPREVENTION', INDETERMINATE) -foundation = getattr(IfcBuiltSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = getattr(IfcBuiltSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -shading = getattr(IfcBuiltSystemTypeEnum, 'SHADING', INDETERMINATE) -fenestration = getattr(IfcBuiltSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -mooringsystem = getattr(IfcBuiltSystemTypeEnum, 'MOORINGSYSTEM', INDETERMINATE) -transport = getattr(IfcBuiltSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -prestressing = getattr(IfcBuiltSystemTypeEnum, 'PRESTRESSING', INDETERMINATE) -userdefined = getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuiltSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +reinforcing = IfcBuiltSystemTypeEnum.REINFORCING +mooring = IfcBuiltSystemTypeEnum.MOORING +outershell = IfcBuiltSystemTypeEnum.OUTERSHELL +trackcircuit = IfcBuiltSystemTypeEnum.TRACKCIRCUIT +erosionprevention = IfcBuiltSystemTypeEnum.EROSIONPREVENTION +foundation = IfcBuiltSystemTypeEnum.FOUNDATION +loadbearing = IfcBuiltSystemTypeEnum.LOADBEARING +shading = IfcBuiltSystemTypeEnum.SHADING +fenestration = IfcBuiltSystemTypeEnum.FENESTRATION +mooringsystem = IfcBuiltSystemTypeEnum.MOORINGSYSTEM +transport = IfcBuiltSystemTypeEnum.TRANSPORT +prestressing = IfcBuiltSystemTypeEnum.PRESTRESSING +userdefined = IfcBuiltSystemTypeEnum.USERDEFINED +notdefined = IfcBuiltSystemTypeEnum.NOTDEFINED IfcBurnerTypeEnum = enum_namespace() -userdefined = getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBurnerTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcBurnerTypeEnum.USERDEFINED +notdefined = IfcBurnerTypeEnum.NOTDEFINED IfcCableCarrierFittingTypeEnum = enum_namespace() -bend = getattr(IfcCableCarrierFittingTypeEnum, 'BEND', INDETERMINATE) -cross = getattr(IfcCableCarrierFittingTypeEnum, 'CROSS', INDETERMINATE) -reducer = getattr(IfcCableCarrierFittingTypeEnum, 'REDUCER', INDETERMINATE) -tee = getattr(IfcCableCarrierFittingTypeEnum, 'TEE', INDETERMINATE) -userdefined = getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableCarrierFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcCableCarrierFittingTypeEnum.BEND +cross = IfcCableCarrierFittingTypeEnum.CROSS +reducer = IfcCableCarrierFittingTypeEnum.REDUCER +tee = IfcCableCarrierFittingTypeEnum.TEE +userdefined = IfcCableCarrierFittingTypeEnum.USERDEFINED +notdefined = IfcCableCarrierFittingTypeEnum.NOTDEFINED IfcCableCarrierSegmentTypeEnum = enum_namespace() -cableladdersegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLELADDERSEGMENT', INDETERMINATE) -cabletraysegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRAYSEGMENT', INDETERMINATE) -cabletrunkingsegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRUNKINGSEGMENT', INDETERMINATE) -conduitsegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CONDUITSEGMENT', INDETERMINATE) -cablebracket = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLEBRACKET', INDETERMINATE) -catenarywire = getattr(IfcCableCarrierSegmentTypeEnum, 'CATENARYWIRE', INDETERMINATE) -dropper = getattr(IfcCableCarrierSegmentTypeEnum, 'DROPPER', INDETERMINATE) -userdefined = getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableCarrierSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +cableladdersegment = IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT +cabletraysegment = IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT +cabletrunkingsegment = IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT +conduitsegment = IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT +cablebracket = IfcCableCarrierSegmentTypeEnum.CABLEBRACKET +catenarywire = IfcCableCarrierSegmentTypeEnum.CATENARYWIRE +dropper = IfcCableCarrierSegmentTypeEnum.DROPPER +userdefined = IfcCableCarrierSegmentTypeEnum.USERDEFINED +notdefined = IfcCableCarrierSegmentTypeEnum.NOTDEFINED IfcCableFittingTypeEnum = enum_namespace() -connector = getattr(IfcCableFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcCableFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcCableFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcCableFittingTypeEnum, 'JUNCTION', INDETERMINATE) -transition = getattr(IfcCableFittingTypeEnum, 'TRANSITION', INDETERMINATE) -fanout = getattr(IfcCableFittingTypeEnum, 'FANOUT', INDETERMINATE) -userdefined = getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +connector = IfcCableFittingTypeEnum.CONNECTOR +entry = IfcCableFittingTypeEnum.ENTRY +exit = IfcCableFittingTypeEnum.EXIT +junction = IfcCableFittingTypeEnum.JUNCTION +transition = IfcCableFittingTypeEnum.TRANSITION +fanout = IfcCableFittingTypeEnum.FANOUT +userdefined = IfcCableFittingTypeEnum.USERDEFINED +notdefined = IfcCableFittingTypeEnum.NOTDEFINED IfcCableSegmentTypeEnum = enum_namespace() -busbarsegment = getattr(IfcCableSegmentTypeEnum, 'BUSBARSEGMENT', INDETERMINATE) -cablesegment = getattr(IfcCableSegmentTypeEnum, 'CABLESEGMENT', INDETERMINATE) -conductorsegment = getattr(IfcCableSegmentTypeEnum, 'CONDUCTORSEGMENT', INDETERMINATE) -coresegment = getattr(IfcCableSegmentTypeEnum, 'CORESEGMENT', INDETERMINATE) -contactwiresegment = getattr(IfcCableSegmentTypeEnum, 'CONTACTWIRESEGMENT', INDETERMINATE) -fibersegment = getattr(IfcCableSegmentTypeEnum, 'FIBERSEGMENT', INDETERMINATE) -fibertube = getattr(IfcCableSegmentTypeEnum, 'FIBERTUBE', INDETERMINATE) -opticalcablesegment = getattr(IfcCableSegmentTypeEnum, 'OPTICALCABLESEGMENT', INDETERMINATE) -stitchwire = getattr(IfcCableSegmentTypeEnum, 'STITCHWIRE', INDETERMINATE) -wirepairsegment = getattr(IfcCableSegmentTypeEnum, 'WIREPAIRSEGMENT', INDETERMINATE) -userdefined = getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +busbarsegment = IfcCableSegmentTypeEnum.BUSBARSEGMENT +cablesegment = IfcCableSegmentTypeEnum.CABLESEGMENT +conductorsegment = IfcCableSegmentTypeEnum.CONDUCTORSEGMENT +coresegment = IfcCableSegmentTypeEnum.CORESEGMENT +contactwiresegment = IfcCableSegmentTypeEnum.CONTACTWIRESEGMENT +fibersegment = IfcCableSegmentTypeEnum.FIBERSEGMENT +fibertube = IfcCableSegmentTypeEnum.FIBERTUBE +opticalcablesegment = IfcCableSegmentTypeEnum.OPTICALCABLESEGMENT +stitchwire = IfcCableSegmentTypeEnum.STITCHWIRE +wirepairsegment = IfcCableSegmentTypeEnum.WIREPAIRSEGMENT +userdefined = IfcCableSegmentTypeEnum.USERDEFINED +notdefined = IfcCableSegmentTypeEnum.NOTDEFINED IfcCaissonFoundationTypeEnum = enum_namespace() -well = getattr(IfcCaissonFoundationTypeEnum, 'WELL', INDETERMINATE) -caisson = getattr(IfcCaissonFoundationTypeEnum, 'CAISSON', INDETERMINATE) -userdefined = getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCaissonFoundationTypeEnum, 'NOTDEFINED', INDETERMINATE) +well = IfcCaissonFoundationTypeEnum.WELL +caisson = IfcCaissonFoundationTypeEnum.CAISSON +userdefined = IfcCaissonFoundationTypeEnum.USERDEFINED +notdefined = IfcCaissonFoundationTypeEnum.NOTDEFINED IfcChangeActionEnum = enum_namespace() -nochange = getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE) -modified = getattr(IfcChangeActionEnum, 'MODIFIED', INDETERMINATE) -added = getattr(IfcChangeActionEnum, 'ADDED', INDETERMINATE) -deleted = getattr(IfcChangeActionEnum, 'DELETED', INDETERMINATE) -notdefined = getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) +nochange = IfcChangeActionEnum.NOCHANGE +modified = IfcChangeActionEnum.MODIFIED +added = IfcChangeActionEnum.ADDED +deleted = IfcChangeActionEnum.DELETED +notdefined = IfcChangeActionEnum.NOTDEFINED IfcChillerTypeEnum = enum_namespace() -aircooled = getattr(IfcChillerTypeEnum, 'AIRCOOLED', INDETERMINATE) -watercooled = getattr(IfcChillerTypeEnum, 'WATERCOOLED', INDETERMINATE) -heatrecovery = getattr(IfcChillerTypeEnum, 'HEATRECOVERY', INDETERMINATE) -userdefined = getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcChillerTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcChillerTypeEnum.AIRCOOLED +watercooled = IfcChillerTypeEnum.WATERCOOLED +heatrecovery = IfcChillerTypeEnum.HEATRECOVERY +userdefined = IfcChillerTypeEnum.USERDEFINED +notdefined = IfcChillerTypeEnum.NOTDEFINED IfcChimneyTypeEnum = enum_namespace() -userdefined = getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcChimneyTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcChimneyTypeEnum.USERDEFINED +notdefined = IfcChimneyTypeEnum.NOTDEFINED IfcCoilTypeEnum = enum_namespace() -dxcoolingcoil = getattr(IfcCoilTypeEnum, 'DXCOOLINGCOIL', INDETERMINATE) -electricheatingcoil = getattr(IfcCoilTypeEnum, 'ELECTRICHEATINGCOIL', INDETERMINATE) -gasheatingcoil = getattr(IfcCoilTypeEnum, 'GASHEATINGCOIL', INDETERMINATE) -hydroniccoil = getattr(IfcCoilTypeEnum, 'HYDRONICCOIL', INDETERMINATE) -steamheatingcoil = getattr(IfcCoilTypeEnum, 'STEAMHEATINGCOIL', INDETERMINATE) -watercoolingcoil = getattr(IfcCoilTypeEnum, 'WATERCOOLINGCOIL', INDETERMINATE) -waterheatingcoil = getattr(IfcCoilTypeEnum, 'WATERHEATINGCOIL', INDETERMINATE) -userdefined = getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dxcoolingcoil = IfcCoilTypeEnum.DXCOOLINGCOIL +electricheatingcoil = IfcCoilTypeEnum.ELECTRICHEATINGCOIL +gasheatingcoil = IfcCoilTypeEnum.GASHEATINGCOIL +hydroniccoil = IfcCoilTypeEnum.HYDRONICCOIL +steamheatingcoil = IfcCoilTypeEnum.STEAMHEATINGCOIL +watercoolingcoil = IfcCoilTypeEnum.WATERCOOLINGCOIL +waterheatingcoil = IfcCoilTypeEnum.WATERHEATINGCOIL +userdefined = IfcCoilTypeEnum.USERDEFINED +notdefined = IfcCoilTypeEnum.NOTDEFINED IfcColumnTypeEnum = enum_namespace() -column = getattr(IfcColumnTypeEnum, 'COLUMN', INDETERMINATE) -pilaster = getattr(IfcColumnTypeEnum, 'PILASTER', INDETERMINATE) -pierstem = getattr(IfcColumnTypeEnum, 'PIERSTEM', INDETERMINATE) -pierstem_segment = getattr(IfcColumnTypeEnum, 'PIERSTEM_SEGMENT', INDETERMINATE) -standcolumn = getattr(IfcColumnTypeEnum, 'STANDCOLUMN', INDETERMINATE) -userdefined = getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcColumnTypeEnum, 'NOTDEFINED', INDETERMINATE) +column = IfcColumnTypeEnum.COLUMN +pilaster = IfcColumnTypeEnum.PILASTER +pierstem = IfcColumnTypeEnum.PIERSTEM +pierstem_segment = IfcColumnTypeEnum.PIERSTEM_SEGMENT +standcolumn = IfcColumnTypeEnum.STANDCOLUMN +userdefined = IfcColumnTypeEnum.USERDEFINED +notdefined = IfcColumnTypeEnum.NOTDEFINED IfcCommunicationsApplianceTypeEnum = enum_namespace() -antenna = getattr(IfcCommunicationsApplianceTypeEnum, 'ANTENNA', INDETERMINATE) -computer = getattr(IfcCommunicationsApplianceTypeEnum, 'COMPUTER', INDETERMINATE) -fax = getattr(IfcCommunicationsApplianceTypeEnum, 'FAX', INDETERMINATE) -gateway = getattr(IfcCommunicationsApplianceTypeEnum, 'GATEWAY', INDETERMINATE) -modem = getattr(IfcCommunicationsApplianceTypeEnum, 'MODEM', INDETERMINATE) -networkappliance = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKAPPLIANCE', INDETERMINATE) -networkbridge = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKBRIDGE', INDETERMINATE) -networkhub = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKHUB', INDETERMINATE) -printer = getattr(IfcCommunicationsApplianceTypeEnum, 'PRINTER', INDETERMINATE) -repeater = getattr(IfcCommunicationsApplianceTypeEnum, 'REPEATER', INDETERMINATE) -router = getattr(IfcCommunicationsApplianceTypeEnum, 'ROUTER', INDETERMINATE) -scanner = getattr(IfcCommunicationsApplianceTypeEnum, 'SCANNER', INDETERMINATE) -automaton = getattr(IfcCommunicationsApplianceTypeEnum, 'AUTOMATON', INDETERMINATE) -intelligent_peripheral = getattr(IfcCommunicationsApplianceTypeEnum, 'INTELLIGENT_PERIPHERAL', INDETERMINATE) -ip_network_equipment = getattr(IfcCommunicationsApplianceTypeEnum, 'IP_NETWORK_EQUIPMENT', INDETERMINATE) -optical_network_unit = getattr(IfcCommunicationsApplianceTypeEnum, 'OPTICAL_NETWORK_UNIT', INDETERMINATE) -telecommand = getattr(IfcCommunicationsApplianceTypeEnum, 'TELECOMMAND', INDETERMINATE) -telephonyexchange = getattr(IfcCommunicationsApplianceTypeEnum, 'TELEPHONYEXCHANGE', INDETERMINATE) -transitioncomponent = getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSITIONCOMPONENT', INDETERMINATE) -transponder = getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPONDER', INDETERMINATE) -transportequipment = getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPORTEQUIPMENT', INDETERMINATE) -userdefined = getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +antenna = IfcCommunicationsApplianceTypeEnum.ANTENNA +computer = IfcCommunicationsApplianceTypeEnum.COMPUTER +fax = IfcCommunicationsApplianceTypeEnum.FAX +gateway = IfcCommunicationsApplianceTypeEnum.GATEWAY +modem = IfcCommunicationsApplianceTypeEnum.MODEM +networkappliance = IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE +networkbridge = IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE +networkhub = IfcCommunicationsApplianceTypeEnum.NETWORKHUB +printer = IfcCommunicationsApplianceTypeEnum.PRINTER +repeater = IfcCommunicationsApplianceTypeEnum.REPEATER +router = IfcCommunicationsApplianceTypeEnum.ROUTER +scanner = IfcCommunicationsApplianceTypeEnum.SCANNER +automaton = IfcCommunicationsApplianceTypeEnum.AUTOMATON +intelligent_peripheral = IfcCommunicationsApplianceTypeEnum.INTELLIGENT_PERIPHERAL +ip_network_equipment = IfcCommunicationsApplianceTypeEnum.IP_NETWORK_EQUIPMENT +optical_network_unit = IfcCommunicationsApplianceTypeEnum.OPTICAL_NETWORK_UNIT +telecommand = IfcCommunicationsApplianceTypeEnum.TELECOMMAND +telephonyexchange = IfcCommunicationsApplianceTypeEnum.TELEPHONYEXCHANGE +transitioncomponent = IfcCommunicationsApplianceTypeEnum.TRANSITIONCOMPONENT +transponder = IfcCommunicationsApplianceTypeEnum.TRANSPONDER +transportequipment = IfcCommunicationsApplianceTypeEnum.TRANSPORTEQUIPMENT +userdefined = IfcCommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcCommunicationsApplianceTypeEnum.NOTDEFINED IfcComplexPropertyTemplateTypeEnum = enum_namespace() -p_complex = getattr(IfcComplexPropertyTemplateTypeEnum, 'P_COMPLEX', INDETERMINATE) -q_complex = getattr(IfcComplexPropertyTemplateTypeEnum, 'Q_COMPLEX', INDETERMINATE) +p_complex = IfcComplexPropertyTemplateTypeEnum.P_COMPLEX +q_complex = IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX IfcCompressorTypeEnum = enum_namespace() -dynamic = getattr(IfcCompressorTypeEnum, 'DYNAMIC', INDETERMINATE) -reciprocating = getattr(IfcCompressorTypeEnum, 'RECIPROCATING', INDETERMINATE) -rotary = getattr(IfcCompressorTypeEnum, 'ROTARY', INDETERMINATE) -scroll = getattr(IfcCompressorTypeEnum, 'SCROLL', INDETERMINATE) -trochoidal = getattr(IfcCompressorTypeEnum, 'TROCHOIDAL', INDETERMINATE) -singlestage = getattr(IfcCompressorTypeEnum, 'SINGLESTAGE', INDETERMINATE) -booster = getattr(IfcCompressorTypeEnum, 'BOOSTER', INDETERMINATE) -opentype = getattr(IfcCompressorTypeEnum, 'OPENTYPE', INDETERMINATE) -hermetic = getattr(IfcCompressorTypeEnum, 'HERMETIC', INDETERMINATE) -semihermetic = getattr(IfcCompressorTypeEnum, 'SEMIHERMETIC', INDETERMINATE) -weldedshellhermetic = getattr(IfcCompressorTypeEnum, 'WELDEDSHELLHERMETIC', INDETERMINATE) -rollingpiston = getattr(IfcCompressorTypeEnum, 'ROLLINGPISTON', INDETERMINATE) -rotaryvane = getattr(IfcCompressorTypeEnum, 'ROTARYVANE', INDETERMINATE) -singlescrew = getattr(IfcCompressorTypeEnum, 'SINGLESCREW', INDETERMINATE) -twinscrew = getattr(IfcCompressorTypeEnum, 'TWINSCREW', INDETERMINATE) -userdefined = getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCompressorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dynamic = IfcCompressorTypeEnum.DYNAMIC +reciprocating = IfcCompressorTypeEnum.RECIPROCATING +rotary = IfcCompressorTypeEnum.ROTARY +scroll = IfcCompressorTypeEnum.SCROLL +trochoidal = IfcCompressorTypeEnum.TROCHOIDAL +singlestage = IfcCompressorTypeEnum.SINGLESTAGE +booster = IfcCompressorTypeEnum.BOOSTER +opentype = IfcCompressorTypeEnum.OPENTYPE +hermetic = IfcCompressorTypeEnum.HERMETIC +semihermetic = IfcCompressorTypeEnum.SEMIHERMETIC +weldedshellhermetic = IfcCompressorTypeEnum.WELDEDSHELLHERMETIC +rollingpiston = IfcCompressorTypeEnum.ROLLINGPISTON +rotaryvane = IfcCompressorTypeEnum.ROTARYVANE +singlescrew = IfcCompressorTypeEnum.SINGLESCREW +twinscrew = IfcCompressorTypeEnum.TWINSCREW +userdefined = IfcCompressorTypeEnum.USERDEFINED +notdefined = IfcCompressorTypeEnum.NOTDEFINED IfcCondenserTypeEnum = enum_namespace() -aircooled = getattr(IfcCondenserTypeEnum, 'AIRCOOLED', INDETERMINATE) -evaporativecooled = getattr(IfcCondenserTypeEnum, 'EVAPORATIVECOOLED', INDETERMINATE) -watercooled = getattr(IfcCondenserTypeEnum, 'WATERCOOLED', INDETERMINATE) -watercooledbrazedplate = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDBRAZEDPLATE', INDETERMINATE) -watercooledshellcoil = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLCOIL', INDETERMINATE) -watercooledshelltube = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLTUBE', INDETERMINATE) -watercooledtubeintube = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDTUBEINTUBE', INDETERMINATE) -userdefined = getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCondenserTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcCondenserTypeEnum.AIRCOOLED +evaporativecooled = IfcCondenserTypeEnum.EVAPORATIVECOOLED +watercooled = IfcCondenserTypeEnum.WATERCOOLED +watercooledbrazedplate = IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE +watercooledshellcoil = IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL +watercooledshelltube = IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE +watercooledtubeintube = IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE +userdefined = IfcCondenserTypeEnum.USERDEFINED +notdefined = IfcCondenserTypeEnum.NOTDEFINED IfcConnectionTypeEnum = enum_namespace() -atpath = getattr(IfcConnectionTypeEnum, 'ATPATH', INDETERMINATE) -atstart = getattr(IfcConnectionTypeEnum, 'ATSTART', INDETERMINATE) -atend = getattr(IfcConnectionTypeEnum, 'ATEND', INDETERMINATE) -notdefined = getattr(IfcConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +atpath = IfcConnectionTypeEnum.ATPATH +atstart = IfcConnectionTypeEnum.ATSTART +atend = IfcConnectionTypeEnum.ATEND +notdefined = IfcConnectionTypeEnum.NOTDEFINED IfcConstraintEnum = enum_namespace() -hard = getattr(IfcConstraintEnum, 'HARD', INDETERMINATE) -soft = getattr(IfcConstraintEnum, 'SOFT', INDETERMINATE) -advisory = getattr(IfcConstraintEnum, 'ADVISORY', INDETERMINATE) -userdefined = getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstraintEnum, 'NOTDEFINED', INDETERMINATE) +hard = IfcConstraintEnum.HARD +soft = IfcConstraintEnum.SOFT +advisory = IfcConstraintEnum.ADVISORY +userdefined = IfcConstraintEnum.USERDEFINED +notdefined = IfcConstraintEnum.NOTDEFINED IfcConstructionEquipmentResourceTypeEnum = enum_namespace() -demolishing = getattr(IfcConstructionEquipmentResourceTypeEnum, 'DEMOLISHING', INDETERMINATE) -earthmoving = getattr(IfcConstructionEquipmentResourceTypeEnum, 'EARTHMOVING', INDETERMINATE) -erecting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'ERECTING', INDETERMINATE) -heating = getattr(IfcConstructionEquipmentResourceTypeEnum, 'HEATING', INDETERMINATE) -lighting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'LIGHTING', INDETERMINATE) -paving = getattr(IfcConstructionEquipmentResourceTypeEnum, 'PAVING', INDETERMINATE) -pumping = getattr(IfcConstructionEquipmentResourceTypeEnum, 'PUMPING', INDETERMINATE) -transporting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'TRANSPORTING', INDETERMINATE) -userdefined = getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstructionEquipmentResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +demolishing = IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING +earthmoving = IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING +erecting = IfcConstructionEquipmentResourceTypeEnum.ERECTING +heating = IfcConstructionEquipmentResourceTypeEnum.HEATING +lighting = IfcConstructionEquipmentResourceTypeEnum.LIGHTING +paving = IfcConstructionEquipmentResourceTypeEnum.PAVING +pumping = IfcConstructionEquipmentResourceTypeEnum.PUMPING +transporting = IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING +userdefined = IfcConstructionEquipmentResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED IfcConstructionMaterialResourceTypeEnum = enum_namespace() -aggregates = getattr(IfcConstructionMaterialResourceTypeEnum, 'AGGREGATES', INDETERMINATE) -concrete = getattr(IfcConstructionMaterialResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = getattr(IfcConstructionMaterialResourceTypeEnum, 'DRYWALL', INDETERMINATE) -fuel = getattr(IfcConstructionMaterialResourceTypeEnum, 'FUEL', INDETERMINATE) -gypsum = getattr(IfcConstructionMaterialResourceTypeEnum, 'GYPSUM', INDETERMINATE) -masonry = getattr(IfcConstructionMaterialResourceTypeEnum, 'MASONRY', INDETERMINATE) -metal = getattr(IfcConstructionMaterialResourceTypeEnum, 'METAL', INDETERMINATE) -plastic = getattr(IfcConstructionMaterialResourceTypeEnum, 'PLASTIC', INDETERMINATE) -wood = getattr(IfcConstructionMaterialResourceTypeEnum, 'WOOD', INDETERMINATE) -notdefined = getattr(IfcConstructionMaterialResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) -userdefined = getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) +aggregates = IfcConstructionMaterialResourceTypeEnum.AGGREGATES +concrete = IfcConstructionMaterialResourceTypeEnum.CONCRETE +drywall = IfcConstructionMaterialResourceTypeEnum.DRYWALL +fuel = IfcConstructionMaterialResourceTypeEnum.FUEL +gypsum = IfcConstructionMaterialResourceTypeEnum.GYPSUM +masonry = IfcConstructionMaterialResourceTypeEnum.MASONRY +metal = IfcConstructionMaterialResourceTypeEnum.METAL +plastic = IfcConstructionMaterialResourceTypeEnum.PLASTIC +wood = IfcConstructionMaterialResourceTypeEnum.WOOD +notdefined = IfcConstructionMaterialResourceTypeEnum.NOTDEFINED +userdefined = IfcConstructionMaterialResourceTypeEnum.USERDEFINED IfcConstructionProductResourceTypeEnum = enum_namespace() -assembly = getattr(IfcConstructionProductResourceTypeEnum, 'ASSEMBLY', INDETERMINATE) -formwork = getattr(IfcConstructionProductResourceTypeEnum, 'FORMWORK', INDETERMINATE) -userdefined = getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstructionProductResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +assembly = IfcConstructionProductResourceTypeEnum.ASSEMBLY +formwork = IfcConstructionProductResourceTypeEnum.FORMWORK +userdefined = IfcConstructionProductResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionProductResourceTypeEnum.NOTDEFINED IfcControllerTypeEnum = enum_namespace() -floating = getattr(IfcControllerTypeEnum, 'FLOATING', INDETERMINATE) -programmable = getattr(IfcControllerTypeEnum, 'PROGRAMMABLE', INDETERMINATE) -proportional = getattr(IfcControllerTypeEnum, 'PROPORTIONAL', INDETERMINATE) -multiposition = getattr(IfcControllerTypeEnum, 'MULTIPOSITION', INDETERMINATE) -twoposition = getattr(IfcControllerTypeEnum, 'TWOPOSITION', INDETERMINATE) -userdefined = getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcControllerTypeEnum, 'NOTDEFINED', INDETERMINATE) +floating = IfcControllerTypeEnum.FLOATING +programmable = IfcControllerTypeEnum.PROGRAMMABLE +proportional = IfcControllerTypeEnum.PROPORTIONAL +multiposition = IfcControllerTypeEnum.MULTIPOSITION +twoposition = IfcControllerTypeEnum.TWOPOSITION +userdefined = IfcControllerTypeEnum.USERDEFINED +notdefined = IfcControllerTypeEnum.NOTDEFINED IfcConveyorSegmentTypeEnum = enum_namespace() -chuteconveyor = getattr(IfcConveyorSegmentTypeEnum, 'CHUTECONVEYOR', INDETERMINATE) -beltconveyor = getattr(IfcConveyorSegmentTypeEnum, 'BELTCONVEYOR', INDETERMINATE) -screwconveyor = getattr(IfcConveyorSegmentTypeEnum, 'SCREWCONVEYOR', INDETERMINATE) -bucketconveyor = getattr(IfcConveyorSegmentTypeEnum, 'BUCKETCONVEYOR', INDETERMINATE) -userdefined = getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConveyorSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +chuteconveyor = IfcConveyorSegmentTypeEnum.CHUTECONVEYOR +beltconveyor = IfcConveyorSegmentTypeEnum.BELTCONVEYOR +screwconveyor = IfcConveyorSegmentTypeEnum.SCREWCONVEYOR +bucketconveyor = IfcConveyorSegmentTypeEnum.BUCKETCONVEYOR +userdefined = IfcConveyorSegmentTypeEnum.USERDEFINED +notdefined = IfcConveyorSegmentTypeEnum.NOTDEFINED IfcCooledBeamTypeEnum = enum_namespace() -active = getattr(IfcCooledBeamTypeEnum, 'ACTIVE', INDETERMINATE) -passive = getattr(IfcCooledBeamTypeEnum, 'PASSIVE', INDETERMINATE) -userdefined = getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCooledBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +active = IfcCooledBeamTypeEnum.ACTIVE +passive = IfcCooledBeamTypeEnum.PASSIVE +userdefined = IfcCooledBeamTypeEnum.USERDEFINED +notdefined = IfcCooledBeamTypeEnum.NOTDEFINED IfcCoolingTowerTypeEnum = enum_namespace() -naturaldraft = getattr(IfcCoolingTowerTypeEnum, 'NATURALDRAFT', INDETERMINATE) -mechanicalinduceddraft = getattr(IfcCoolingTowerTypeEnum, 'MECHANICALINDUCEDDRAFT', INDETERMINATE) -mechanicalforceddraft = getattr(IfcCoolingTowerTypeEnum, 'MECHANICALFORCEDDRAFT', INDETERMINATE) -userdefined = getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoolingTowerTypeEnum, 'NOTDEFINED', INDETERMINATE) +naturaldraft = IfcCoolingTowerTypeEnum.NATURALDRAFT +mechanicalinduceddraft = IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT +mechanicalforceddraft = IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT +userdefined = IfcCoolingTowerTypeEnum.USERDEFINED +notdefined = IfcCoolingTowerTypeEnum.NOTDEFINED IfcCostItemTypeEnum = enum_namespace() -userdefined = getattr(IfcCostItemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCostItemTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCostItemTypeEnum.USERDEFINED +notdefined = IfcCostItemTypeEnum.NOTDEFINED IfcCostScheduleTypeEnum = enum_namespace() -budget = getattr(IfcCostScheduleTypeEnum, 'BUDGET', INDETERMINATE) -costplan = getattr(IfcCostScheduleTypeEnum, 'COSTPLAN', INDETERMINATE) -estimate = getattr(IfcCostScheduleTypeEnum, 'ESTIMATE', INDETERMINATE) -tender = getattr(IfcCostScheduleTypeEnum, 'TENDER', INDETERMINATE) -pricedbillofquantities = getattr(IfcCostScheduleTypeEnum, 'PRICEDBILLOFQUANTITIES', INDETERMINATE) -unpricedbillofquantities = getattr(IfcCostScheduleTypeEnum, 'UNPRICEDBILLOFQUANTITIES', INDETERMINATE) -scheduleofrates = getattr(IfcCostScheduleTypeEnum, 'SCHEDULEOFRATES', INDETERMINATE) -userdefined = getattr(IfcCostScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCostScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +budget = IfcCostScheduleTypeEnum.BUDGET +costplan = IfcCostScheduleTypeEnum.COSTPLAN +estimate = IfcCostScheduleTypeEnum.ESTIMATE +tender = IfcCostScheduleTypeEnum.TENDER +pricedbillofquantities = IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES +unpricedbillofquantities = IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES +scheduleofrates = IfcCostScheduleTypeEnum.SCHEDULEOFRATES +userdefined = IfcCostScheduleTypeEnum.USERDEFINED +notdefined = IfcCostScheduleTypeEnum.NOTDEFINED IfcCourseTypeEnum = enum_namespace() -armour = getattr(IfcCourseTypeEnum, 'ARMOUR', INDETERMINATE) -filter = getattr(IfcCourseTypeEnum, 'FILTER', INDETERMINATE) -ballastbed = getattr(IfcCourseTypeEnum, 'BALLASTBED', INDETERMINATE) -core = getattr(IfcCourseTypeEnum, 'CORE', INDETERMINATE) -pavement = getattr(IfcCourseTypeEnum, 'PAVEMENT', INDETERMINATE) -protection = getattr(IfcCourseTypeEnum, 'PROTECTION', INDETERMINATE) -userdefined = getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCourseTypeEnum, 'NOTDEFINED', INDETERMINATE) +armour = IfcCourseTypeEnum.ARMOUR +filter = IfcCourseTypeEnum.FILTER +ballastbed = IfcCourseTypeEnum.BALLASTBED +core = IfcCourseTypeEnum.CORE +pavement = IfcCourseTypeEnum.PAVEMENT +protection = IfcCourseTypeEnum.PROTECTION +userdefined = IfcCourseTypeEnum.USERDEFINED +notdefined = IfcCourseTypeEnum.NOTDEFINED IfcCoveringTypeEnum = enum_namespace() -ceiling = getattr(IfcCoveringTypeEnum, 'CEILING', INDETERMINATE) -flooring = getattr(IfcCoveringTypeEnum, 'FLOORING', INDETERMINATE) -cladding = getattr(IfcCoveringTypeEnum, 'CLADDING', INDETERMINATE) -roofing = getattr(IfcCoveringTypeEnum, 'ROOFING', INDETERMINATE) -molding = getattr(IfcCoveringTypeEnum, 'MOLDING', INDETERMINATE) -skirtingboard = getattr(IfcCoveringTypeEnum, 'SKIRTINGBOARD', INDETERMINATE) -insulation = getattr(IfcCoveringTypeEnum, 'INSULATION', INDETERMINATE) -membrane = getattr(IfcCoveringTypeEnum, 'MEMBRANE', INDETERMINATE) -sleeving = getattr(IfcCoveringTypeEnum, 'SLEEVING', INDETERMINATE) -wrapping = getattr(IfcCoveringTypeEnum, 'WRAPPING', INDETERMINATE) -coping = getattr(IfcCoveringTypeEnum, 'COPING', INDETERMINATE) -userdefined = getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoveringTypeEnum, 'NOTDEFINED', INDETERMINATE) +ceiling = IfcCoveringTypeEnum.CEILING +flooring = IfcCoveringTypeEnum.FLOORING +cladding = IfcCoveringTypeEnum.CLADDING +roofing = IfcCoveringTypeEnum.ROOFING +molding = IfcCoveringTypeEnum.MOLDING +skirtingboard = IfcCoveringTypeEnum.SKIRTINGBOARD +insulation = IfcCoveringTypeEnum.INSULATION +membrane = IfcCoveringTypeEnum.MEMBRANE +sleeving = IfcCoveringTypeEnum.SLEEVING +wrapping = IfcCoveringTypeEnum.WRAPPING +coping = IfcCoveringTypeEnum.COPING +userdefined = IfcCoveringTypeEnum.USERDEFINED +notdefined = IfcCoveringTypeEnum.NOTDEFINED IfcCrewResourceTypeEnum = enum_namespace() -office = getattr(IfcCrewResourceTypeEnum, 'OFFICE', INDETERMINATE) -site = getattr(IfcCrewResourceTypeEnum, 'SITE', INDETERMINATE) -userdefined = getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCrewResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +office = IfcCrewResourceTypeEnum.OFFICE +site = IfcCrewResourceTypeEnum.SITE +userdefined = IfcCrewResourceTypeEnum.USERDEFINED +notdefined = IfcCrewResourceTypeEnum.NOTDEFINED IfcCurtainWallTypeEnum = enum_namespace() -userdefined = getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCurtainWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCurtainWallTypeEnum.USERDEFINED +notdefined = IfcCurtainWallTypeEnum.NOTDEFINED IfcCurveInterpolationEnum = enum_namespace() -linear = getattr(IfcCurveInterpolationEnum, 'LINEAR', INDETERMINATE) -log_linear = getattr(IfcCurveInterpolationEnum, 'LOG_LINEAR', INDETERMINATE) -log_log = getattr(IfcCurveInterpolationEnum, 'LOG_LOG', INDETERMINATE) -notdefined = getattr(IfcCurveInterpolationEnum, 'NOTDEFINED', INDETERMINATE) +linear = IfcCurveInterpolationEnum.LINEAR +log_linear = IfcCurveInterpolationEnum.LOG_LINEAR +log_log = IfcCurveInterpolationEnum.LOG_LOG +notdefined = IfcCurveInterpolationEnum.NOTDEFINED IfcDamperTypeEnum = enum_namespace() -backdraftdamper = getattr(IfcDamperTypeEnum, 'BACKDRAFTDAMPER', INDETERMINATE) -balancingdamper = getattr(IfcDamperTypeEnum, 'BALANCINGDAMPER', INDETERMINATE) -blastdamper = getattr(IfcDamperTypeEnum, 'BLASTDAMPER', INDETERMINATE) -controldamper = getattr(IfcDamperTypeEnum, 'CONTROLDAMPER', INDETERMINATE) -firedamper = getattr(IfcDamperTypeEnum, 'FIREDAMPER', INDETERMINATE) -firesmokedamper = getattr(IfcDamperTypeEnum, 'FIRESMOKEDAMPER', INDETERMINATE) -fumehoodexhaust = getattr(IfcDamperTypeEnum, 'FUMEHOODEXHAUST', INDETERMINATE) -gravitydamper = getattr(IfcDamperTypeEnum, 'GRAVITYDAMPER', INDETERMINATE) -gravityreliefdamper = getattr(IfcDamperTypeEnum, 'GRAVITYRELIEFDAMPER', INDETERMINATE) -reliefdamper = getattr(IfcDamperTypeEnum, 'RELIEFDAMPER', INDETERMINATE) -smokedamper = getattr(IfcDamperTypeEnum, 'SMOKEDAMPER', INDETERMINATE) -userdefined = getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +backdraftdamper = IfcDamperTypeEnum.BACKDRAFTDAMPER +balancingdamper = IfcDamperTypeEnum.BALANCINGDAMPER +blastdamper = IfcDamperTypeEnum.BLASTDAMPER +controldamper = IfcDamperTypeEnum.CONTROLDAMPER +firedamper = IfcDamperTypeEnum.FIREDAMPER +firesmokedamper = IfcDamperTypeEnum.FIRESMOKEDAMPER +fumehoodexhaust = IfcDamperTypeEnum.FUMEHOODEXHAUST +gravitydamper = IfcDamperTypeEnum.GRAVITYDAMPER +gravityreliefdamper = IfcDamperTypeEnum.GRAVITYRELIEFDAMPER +reliefdamper = IfcDamperTypeEnum.RELIEFDAMPER +smokedamper = IfcDamperTypeEnum.SMOKEDAMPER +userdefined = IfcDamperTypeEnum.USERDEFINED +notdefined = IfcDamperTypeEnum.NOTDEFINED IfcDataOriginEnum = enum_namespace() -measured = getattr(IfcDataOriginEnum, 'MEASURED', INDETERMINATE) -predicted = getattr(IfcDataOriginEnum, 'PREDICTED', INDETERMINATE) -simulated = getattr(IfcDataOriginEnum, 'SIMULATED', INDETERMINATE) -userdefined = getattr(IfcDataOriginEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDataOriginEnum, 'NOTDEFINED', INDETERMINATE) +measured = IfcDataOriginEnum.MEASURED +predicted = IfcDataOriginEnum.PREDICTED +simulated = IfcDataOriginEnum.SIMULATED +userdefined = IfcDataOriginEnum.USERDEFINED +notdefined = IfcDataOriginEnum.NOTDEFINED IfcDerivedUnitEnum = enum_namespace() -angularvelocityunit = getattr(IfcDerivedUnitEnum, 'ANGULARVELOCITYUNIT', INDETERMINATE) -areadensityunit = getattr(IfcDerivedUnitEnum, 'AREADENSITYUNIT', INDETERMINATE) -compoundplaneangleunit = getattr(IfcDerivedUnitEnum, 'COMPOUNDPLANEANGLEUNIT', INDETERMINATE) -dynamicviscosityunit = getattr(IfcDerivedUnitEnum, 'DYNAMICVISCOSITYUNIT', INDETERMINATE) -heatfluxdensityunit = getattr(IfcDerivedUnitEnum, 'HEATFLUXDENSITYUNIT', INDETERMINATE) -integercountrateunit = getattr(IfcDerivedUnitEnum, 'INTEGERCOUNTRATEUNIT', INDETERMINATE) -isothermalmoisturecapacityunit = getattr(IfcDerivedUnitEnum, 'ISOTHERMALMOISTURECAPACITYUNIT', INDETERMINATE) -kinematicviscosityunit = getattr(IfcDerivedUnitEnum, 'KINEMATICVISCOSITYUNIT', INDETERMINATE) -linearvelocityunit = getattr(IfcDerivedUnitEnum, 'LINEARVELOCITYUNIT', INDETERMINATE) -massdensityunit = getattr(IfcDerivedUnitEnum, 'MASSDENSITYUNIT', INDETERMINATE) -massflowrateunit = getattr(IfcDerivedUnitEnum, 'MASSFLOWRATEUNIT', INDETERMINATE) -moisturediffusivityunit = getattr(IfcDerivedUnitEnum, 'MOISTUREDIFFUSIVITYUNIT', INDETERMINATE) -molecularweightunit = getattr(IfcDerivedUnitEnum, 'MOLECULARWEIGHTUNIT', INDETERMINATE) -specificheatcapacityunit = getattr(IfcDerivedUnitEnum, 'SPECIFICHEATCAPACITYUNIT', INDETERMINATE) -thermaladmittanceunit = getattr(IfcDerivedUnitEnum, 'THERMALADMITTANCEUNIT', INDETERMINATE) -thermalconductanceunit = getattr(IfcDerivedUnitEnum, 'THERMALCONDUCTANCEUNIT', INDETERMINATE) -thermalresistanceunit = getattr(IfcDerivedUnitEnum, 'THERMALRESISTANCEUNIT', INDETERMINATE) -thermaltransmittanceunit = getattr(IfcDerivedUnitEnum, 'THERMALTRANSMITTANCEUNIT', INDETERMINATE) -vaporpermeabilityunit = getattr(IfcDerivedUnitEnum, 'VAPORPERMEABILITYUNIT', INDETERMINATE) -volumetricflowrateunit = getattr(IfcDerivedUnitEnum, 'VOLUMETRICFLOWRATEUNIT', INDETERMINATE) -rotationalfrequencyunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALFREQUENCYUNIT', INDETERMINATE) -torqueunit = getattr(IfcDerivedUnitEnum, 'TORQUEUNIT', INDETERMINATE) -momentofinertiaunit = getattr(IfcDerivedUnitEnum, 'MOMENTOFINERTIAUNIT', INDETERMINATE) -linearmomentunit = getattr(IfcDerivedUnitEnum, 'LINEARMOMENTUNIT', INDETERMINATE) -linearforceunit = getattr(IfcDerivedUnitEnum, 'LINEARFORCEUNIT', INDETERMINATE) -planarforceunit = getattr(IfcDerivedUnitEnum, 'PLANARFORCEUNIT', INDETERMINATE) -modulusofelasticityunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFELASTICITYUNIT', INDETERMINATE) -shearmodulusunit = getattr(IfcDerivedUnitEnum, 'SHEARMODULUSUNIT', INDETERMINATE) -linearstiffnessunit = getattr(IfcDerivedUnitEnum, 'LINEARSTIFFNESSUNIT', INDETERMINATE) -rotationalstiffnessunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALSTIFFNESSUNIT', INDETERMINATE) -modulusofsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFSUBGRADEREACTIONUNIT', INDETERMINATE) -accelerationunit = getattr(IfcDerivedUnitEnum, 'ACCELERATIONUNIT', INDETERMINATE) -curvatureunit = getattr(IfcDerivedUnitEnum, 'CURVATUREUNIT', INDETERMINATE) -heatingvalueunit = getattr(IfcDerivedUnitEnum, 'HEATINGVALUEUNIT', INDETERMINATE) -ionconcentrationunit = getattr(IfcDerivedUnitEnum, 'IONCONCENTRATIONUNIT', INDETERMINATE) -luminousintensitydistributionunit = getattr(IfcDerivedUnitEnum, 'LUMINOUSINTENSITYDISTRIBUTIONUNIT', INDETERMINATE) -massperlengthunit = getattr(IfcDerivedUnitEnum, 'MASSPERLENGTHUNIT', INDETERMINATE) -modulusoflinearsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFLINEARSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofrotationalsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFROTATIONALSUBGRADEREACTIONUNIT', INDETERMINATE) -phunit = getattr(IfcDerivedUnitEnum, 'PHUNIT', INDETERMINATE) -rotationalmassunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALMASSUNIT', INDETERMINATE) -sectionareaintegralunit = getattr(IfcDerivedUnitEnum, 'SECTIONAREAINTEGRALUNIT', INDETERMINATE) -sectionmodulusunit = getattr(IfcDerivedUnitEnum, 'SECTIONMODULUSUNIT', INDETERMINATE) -soundpowerlevelunit = getattr(IfcDerivedUnitEnum, 'SOUNDPOWERLEVELUNIT', INDETERMINATE) -soundpowerunit = getattr(IfcDerivedUnitEnum, 'SOUNDPOWERUNIT', INDETERMINATE) -soundpressurelevelunit = getattr(IfcDerivedUnitEnum, 'SOUNDPRESSURELEVELUNIT', INDETERMINATE) -soundpressureunit = getattr(IfcDerivedUnitEnum, 'SOUNDPRESSUREUNIT', INDETERMINATE) -temperaturegradientunit = getattr(IfcDerivedUnitEnum, 'TEMPERATUREGRADIENTUNIT', INDETERMINATE) -temperaturerateofchangeunit = getattr(IfcDerivedUnitEnum, 'TEMPERATURERATEOFCHANGEUNIT', INDETERMINATE) -thermalexpansioncoefficientunit = getattr(IfcDerivedUnitEnum, 'THERMALEXPANSIONCOEFFICIENTUNIT', INDETERMINATE) -warpingconstantunit = getattr(IfcDerivedUnitEnum, 'WARPINGCONSTANTUNIT', INDETERMINATE) -warpingmomentunit = getattr(IfcDerivedUnitEnum, 'WARPINGMOMENTUNIT', INDETERMINATE) -userdefined = getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) +angularvelocityunit = IfcDerivedUnitEnum.ANGULARVELOCITYUNIT +areadensityunit = IfcDerivedUnitEnum.AREADENSITYUNIT +compoundplaneangleunit = IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT +dynamicviscosityunit = IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT +heatfluxdensityunit = IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT +integercountrateunit = IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT +isothermalmoisturecapacityunit = IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT +kinematicviscosityunit = IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT +linearvelocityunit = IfcDerivedUnitEnum.LINEARVELOCITYUNIT +massdensityunit = IfcDerivedUnitEnum.MASSDENSITYUNIT +massflowrateunit = IfcDerivedUnitEnum.MASSFLOWRATEUNIT +moisturediffusivityunit = IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT +molecularweightunit = IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT +specificheatcapacityunit = IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT +thermaladmittanceunit = IfcDerivedUnitEnum.THERMALADMITTANCEUNIT +thermalconductanceunit = IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT +thermalresistanceunit = IfcDerivedUnitEnum.THERMALRESISTANCEUNIT +thermaltransmittanceunit = IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT +vaporpermeabilityunit = IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT +volumetricflowrateunit = IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT +rotationalfrequencyunit = IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT +torqueunit = IfcDerivedUnitEnum.TORQUEUNIT +momentofinertiaunit = IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT +linearmomentunit = IfcDerivedUnitEnum.LINEARMOMENTUNIT +linearforceunit = IfcDerivedUnitEnum.LINEARFORCEUNIT +planarforceunit = IfcDerivedUnitEnum.PLANARFORCEUNIT +modulusofelasticityunit = IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT +shearmodulusunit = IfcDerivedUnitEnum.SHEARMODULUSUNIT +linearstiffnessunit = IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT +rotationalstiffnessunit = IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT +modulusofsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT +accelerationunit = IfcDerivedUnitEnum.ACCELERATIONUNIT +curvatureunit = IfcDerivedUnitEnum.CURVATUREUNIT +heatingvalueunit = IfcDerivedUnitEnum.HEATINGVALUEUNIT +ionconcentrationunit = IfcDerivedUnitEnum.IONCONCENTRATIONUNIT +luminousintensitydistributionunit = IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT +massperlengthunit = IfcDerivedUnitEnum.MASSPERLENGTHUNIT +modulusoflinearsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT +modulusofrotationalsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT +phunit = IfcDerivedUnitEnum.PHUNIT +rotationalmassunit = IfcDerivedUnitEnum.ROTATIONALMASSUNIT +sectionareaintegralunit = IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT +sectionmodulusunit = IfcDerivedUnitEnum.SECTIONMODULUSUNIT +soundpowerlevelunit = IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT +soundpowerunit = IfcDerivedUnitEnum.SOUNDPOWERUNIT +soundpressurelevelunit = IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT +soundpressureunit = IfcDerivedUnitEnum.SOUNDPRESSUREUNIT +temperaturegradientunit = IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT +temperaturerateofchangeunit = IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT +thermalexpansioncoefficientunit = IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT +warpingconstantunit = IfcDerivedUnitEnum.WARPINGCONSTANTUNIT +warpingmomentunit = IfcDerivedUnitEnum.WARPINGMOMENTUNIT +userdefined = IfcDerivedUnitEnum.USERDEFINED IfcDirectionSenseEnum = enum_namespace() -positive = getattr(IfcDirectionSenseEnum, 'POSITIVE', INDETERMINATE) -negative = getattr(IfcDirectionSenseEnum, 'NEGATIVE', INDETERMINATE) +positive = IfcDirectionSenseEnum.POSITIVE +negative = IfcDirectionSenseEnum.NEGATIVE IfcDiscreteAccessoryTypeEnum = enum_namespace() -anchorplate = getattr(IfcDiscreteAccessoryTypeEnum, 'ANCHORPLATE', INDETERMINATE) -bracket = getattr(IfcDiscreteAccessoryTypeEnum, 'BRACKET', INDETERMINATE) -shoe = getattr(IfcDiscreteAccessoryTypeEnum, 'SHOE', INDETERMINATE) -expansion_joint_device = getattr(IfcDiscreteAccessoryTypeEnum, 'EXPANSION_JOINT_DEVICE', INDETERMINATE) -birdprotection = getattr(IfcDiscreteAccessoryTypeEnum, 'BIRDPROTECTION', INDETERMINATE) -cablearranger = getattr(IfcDiscreteAccessoryTypeEnum, 'CABLEARRANGER', INDETERMINATE) -insulator = getattr(IfcDiscreteAccessoryTypeEnum, 'INSULATOR', INDETERMINATE) -lock = getattr(IfcDiscreteAccessoryTypeEnum, 'LOCK', INDETERMINATE) -tensioningequipment = getattr(IfcDiscreteAccessoryTypeEnum, 'TENSIONINGEQUIPMENT', INDETERMINATE) -railpad = getattr(IfcDiscreteAccessoryTypeEnum, 'RAILPAD', INDETERMINATE) -slidingchair = getattr(IfcDiscreteAccessoryTypeEnum, 'SLIDINGCHAIR', INDETERMINATE) -panel_strengthening = getattr(IfcDiscreteAccessoryTypeEnum, 'PANEL_STRENGTHENING', INDETERMINATE) -railbrace = getattr(IfcDiscreteAccessoryTypeEnum, 'RAILBRACE', INDETERMINATE) -elastic_cushion = getattr(IfcDiscreteAccessoryTypeEnum, 'ELASTIC_CUSHION', INDETERMINATE) -soundabsorption = getattr(IfcDiscreteAccessoryTypeEnum, 'SOUNDABSORPTION', INDETERMINATE) -rail_lubrication = getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_LUBRICATION', INDETERMINATE) -rail_mechanical_equipment = getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT', INDETERMINATE) -userdefined = getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDiscreteAccessoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorplate = IfcDiscreteAccessoryTypeEnum.ANCHORPLATE +bracket = IfcDiscreteAccessoryTypeEnum.BRACKET +shoe = IfcDiscreteAccessoryTypeEnum.SHOE +expansion_joint_device = IfcDiscreteAccessoryTypeEnum.EXPANSION_JOINT_DEVICE +birdprotection = IfcDiscreteAccessoryTypeEnum.BIRDPROTECTION +cablearranger = IfcDiscreteAccessoryTypeEnum.CABLEARRANGER +insulator = IfcDiscreteAccessoryTypeEnum.INSULATOR +lock = IfcDiscreteAccessoryTypeEnum.LOCK +tensioningequipment = IfcDiscreteAccessoryTypeEnum.TENSIONINGEQUIPMENT +railpad = IfcDiscreteAccessoryTypeEnum.RAILPAD +slidingchair = IfcDiscreteAccessoryTypeEnum.SLIDINGCHAIR +panel_strengthening = IfcDiscreteAccessoryTypeEnum.PANEL_STRENGTHENING +railbrace = IfcDiscreteAccessoryTypeEnum.RAILBRACE +elastic_cushion = IfcDiscreteAccessoryTypeEnum.ELASTIC_CUSHION +soundabsorption = IfcDiscreteAccessoryTypeEnum.SOUNDABSORPTION +rail_lubrication = IfcDiscreteAccessoryTypeEnum.RAIL_LUBRICATION +rail_mechanical_equipment = IfcDiscreteAccessoryTypeEnum.RAIL_MECHANICAL_EQUIPMENT +userdefined = IfcDiscreteAccessoryTypeEnum.USERDEFINED +notdefined = IfcDiscreteAccessoryTypeEnum.NOTDEFINED IfcDistributionBoardTypeEnum = enum_namespace() -switchboard = getattr(IfcDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -consumerunit = getattr(IfcDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -motorcontrolcentre = getattr(IfcDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -distributionframe = getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONFRAME', INDETERMINATE) -distributionboard = getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -userdefined = getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +switchboard = IfcDistributionBoardTypeEnum.SWITCHBOARD +consumerunit = IfcDistributionBoardTypeEnum.CONSUMERUNIT +motorcontrolcentre = IfcDistributionBoardTypeEnum.MOTORCONTROLCENTRE +distributionframe = IfcDistributionBoardTypeEnum.DISTRIBUTIONFRAME +distributionboard = IfcDistributionBoardTypeEnum.DISTRIBUTIONBOARD +userdefined = IfcDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcDistributionBoardTypeEnum.NOTDEFINED IfcDistributionChamberElementTypeEnum = enum_namespace() -formedduct = getattr(IfcDistributionChamberElementTypeEnum, 'FORMEDDUCT', INDETERMINATE) -inspectionchamber = getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONCHAMBER', INDETERMINATE) -inspectionpit = getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONPIT', INDETERMINATE) -manhole = getattr(IfcDistributionChamberElementTypeEnum, 'MANHOLE', INDETERMINATE) -meterchamber = getattr(IfcDistributionChamberElementTypeEnum, 'METERCHAMBER', INDETERMINATE) -sump = getattr(IfcDistributionChamberElementTypeEnum, 'SUMP', INDETERMINATE) -trench = getattr(IfcDistributionChamberElementTypeEnum, 'TRENCH', INDETERMINATE) -valvechamber = getattr(IfcDistributionChamberElementTypeEnum, 'VALVECHAMBER', INDETERMINATE) -userdefined = getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionChamberElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +formedduct = IfcDistributionChamberElementTypeEnum.FORMEDDUCT +inspectionchamber = IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER +inspectionpit = IfcDistributionChamberElementTypeEnum.INSPECTIONPIT +manhole = IfcDistributionChamberElementTypeEnum.MANHOLE +meterchamber = IfcDistributionChamberElementTypeEnum.METERCHAMBER +sump = IfcDistributionChamberElementTypeEnum.SUMP +trench = IfcDistributionChamberElementTypeEnum.TRENCH +valvechamber = IfcDistributionChamberElementTypeEnum.VALVECHAMBER +userdefined = IfcDistributionChamberElementTypeEnum.USERDEFINED +notdefined = IfcDistributionChamberElementTypeEnum.NOTDEFINED IfcDistributionPortTypeEnum = enum_namespace() -cable = getattr(IfcDistributionPortTypeEnum, 'CABLE', INDETERMINATE) -cablecarrier = getattr(IfcDistributionPortTypeEnum, 'CABLECARRIER', INDETERMINATE) -duct = getattr(IfcDistributionPortTypeEnum, 'DUCT', INDETERMINATE) -pipe = getattr(IfcDistributionPortTypeEnum, 'PIPE', INDETERMINATE) -wireless = getattr(IfcDistributionPortTypeEnum, 'WIRELESS', INDETERMINATE) -userdefined = getattr(IfcDistributionPortTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionPortTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcDistributionPortTypeEnum.CABLE +cablecarrier = IfcDistributionPortTypeEnum.CABLECARRIER +duct = IfcDistributionPortTypeEnum.DUCT +pipe = IfcDistributionPortTypeEnum.PIPE +wireless = IfcDistributionPortTypeEnum.WIRELESS +userdefined = IfcDistributionPortTypeEnum.USERDEFINED +notdefined = IfcDistributionPortTypeEnum.NOTDEFINED IfcDistributionSystemEnum = enum_namespace() -airconditioning = getattr(IfcDistributionSystemEnum, 'AIRCONDITIONING', INDETERMINATE) -audiovisual = getattr(IfcDistributionSystemEnum, 'AUDIOVISUAL', INDETERMINATE) -chemical = getattr(IfcDistributionSystemEnum, 'CHEMICAL', INDETERMINATE) -chilledwater = getattr(IfcDistributionSystemEnum, 'CHILLEDWATER', INDETERMINATE) -communication = getattr(IfcDistributionSystemEnum, 'COMMUNICATION', INDETERMINATE) -compressedair = getattr(IfcDistributionSystemEnum, 'COMPRESSEDAIR', INDETERMINATE) -condenserwater = getattr(IfcDistributionSystemEnum, 'CONDENSERWATER', INDETERMINATE) -control = getattr(IfcDistributionSystemEnum, 'CONTROL', INDETERMINATE) -conveying = getattr(IfcDistributionSystemEnum, 'CONVEYING', INDETERMINATE) -data = getattr(IfcDistributionSystemEnum, 'DATA', INDETERMINATE) -disposal = getattr(IfcDistributionSystemEnum, 'DISPOSAL', INDETERMINATE) -domesticcoldwater = getattr(IfcDistributionSystemEnum, 'DOMESTICCOLDWATER', INDETERMINATE) -domestichotwater = getattr(IfcDistributionSystemEnum, 'DOMESTICHOTWATER', INDETERMINATE) -drainage = getattr(IfcDistributionSystemEnum, 'DRAINAGE', INDETERMINATE) -earthing = getattr(IfcDistributionSystemEnum, 'EARTHING', INDETERMINATE) -electrical = getattr(IfcDistributionSystemEnum, 'ELECTRICAL', INDETERMINATE) -electroacoustic = getattr(IfcDistributionSystemEnum, 'ELECTROACOUSTIC', INDETERMINATE) -exhaust = getattr(IfcDistributionSystemEnum, 'EXHAUST', INDETERMINATE) -fireprotection = getattr(IfcDistributionSystemEnum, 'FIREPROTECTION', INDETERMINATE) -fuel = getattr(IfcDistributionSystemEnum, 'FUEL', INDETERMINATE) -gas = getattr(IfcDistributionSystemEnum, 'GAS', INDETERMINATE) -hazardous = getattr(IfcDistributionSystemEnum, 'HAZARDOUS', INDETERMINATE) -heating = getattr(IfcDistributionSystemEnum, 'HEATING', INDETERMINATE) -lighting = getattr(IfcDistributionSystemEnum, 'LIGHTING', INDETERMINATE) -lightningprotection = getattr(IfcDistributionSystemEnum, 'LIGHTNINGPROTECTION', INDETERMINATE) -municipalsolidwaste = getattr(IfcDistributionSystemEnum, 'MUNICIPALSOLIDWASTE', INDETERMINATE) -oil = getattr(IfcDistributionSystemEnum, 'OIL', INDETERMINATE) -operational = getattr(IfcDistributionSystemEnum, 'OPERATIONAL', INDETERMINATE) -powergeneration = getattr(IfcDistributionSystemEnum, 'POWERGENERATION', INDETERMINATE) -rainwater = getattr(IfcDistributionSystemEnum, 'RAINWATER', INDETERMINATE) -refrigeration = getattr(IfcDistributionSystemEnum, 'REFRIGERATION', INDETERMINATE) -security = getattr(IfcDistributionSystemEnum, 'SECURITY', INDETERMINATE) -sewage = getattr(IfcDistributionSystemEnum, 'SEWAGE', INDETERMINATE) -signal = getattr(IfcDistributionSystemEnum, 'SIGNAL', INDETERMINATE) -stormwater = getattr(IfcDistributionSystemEnum, 'STORMWATER', INDETERMINATE) -telephone = getattr(IfcDistributionSystemEnum, 'TELEPHONE', INDETERMINATE) -tv = getattr(IfcDistributionSystemEnum, 'TV', INDETERMINATE) -vacuum = getattr(IfcDistributionSystemEnum, 'VACUUM', INDETERMINATE) -vent = getattr(IfcDistributionSystemEnum, 'VENT', INDETERMINATE) -ventilation = getattr(IfcDistributionSystemEnum, 'VENTILATION', INDETERMINATE) -wastewater = getattr(IfcDistributionSystemEnum, 'WASTEWATER', INDETERMINATE) -watersupply = getattr(IfcDistributionSystemEnum, 'WATERSUPPLY', INDETERMINATE) -catenary_system = getattr(IfcDistributionSystemEnum, 'CATENARY_SYSTEM', INDETERMINATE) -overhead_contactline_system = getattr(IfcDistributionSystemEnum, 'OVERHEAD_CONTACTLINE_SYSTEM', INDETERMINATE) -return_circuit = getattr(IfcDistributionSystemEnum, 'RETURN_CIRCUIT', INDETERMINATE) -userdefined = getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionSystemEnum, 'NOTDEFINED', INDETERMINATE) +airconditioning = IfcDistributionSystemEnum.AIRCONDITIONING +audiovisual = IfcDistributionSystemEnum.AUDIOVISUAL +chemical = IfcDistributionSystemEnum.CHEMICAL +chilledwater = IfcDistributionSystemEnum.CHILLEDWATER +communication = IfcDistributionSystemEnum.COMMUNICATION +compressedair = IfcDistributionSystemEnum.COMPRESSEDAIR +condenserwater = IfcDistributionSystemEnum.CONDENSERWATER +control = IfcDistributionSystemEnum.CONTROL +conveying = IfcDistributionSystemEnum.CONVEYING +data = IfcDistributionSystemEnum.DATA +disposal = IfcDistributionSystemEnum.DISPOSAL +domesticcoldwater = IfcDistributionSystemEnum.DOMESTICCOLDWATER +domestichotwater = IfcDistributionSystemEnum.DOMESTICHOTWATER +drainage = IfcDistributionSystemEnum.DRAINAGE +earthing = IfcDistributionSystemEnum.EARTHING +electrical = IfcDistributionSystemEnum.ELECTRICAL +electroacoustic = IfcDistributionSystemEnum.ELECTROACOUSTIC +exhaust = IfcDistributionSystemEnum.EXHAUST +fireprotection = IfcDistributionSystemEnum.FIREPROTECTION +fuel = IfcDistributionSystemEnum.FUEL +gas = IfcDistributionSystemEnum.GAS +hazardous = IfcDistributionSystemEnum.HAZARDOUS +heating = IfcDistributionSystemEnum.HEATING +lighting = IfcDistributionSystemEnum.LIGHTING +lightningprotection = IfcDistributionSystemEnum.LIGHTNINGPROTECTION +municipalsolidwaste = IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE +oil = IfcDistributionSystemEnum.OIL +operational = IfcDistributionSystemEnum.OPERATIONAL +powergeneration = IfcDistributionSystemEnum.POWERGENERATION +rainwater = IfcDistributionSystemEnum.RAINWATER +refrigeration = IfcDistributionSystemEnum.REFRIGERATION +security = IfcDistributionSystemEnum.SECURITY +sewage = IfcDistributionSystemEnum.SEWAGE +signal = IfcDistributionSystemEnum.SIGNAL +stormwater = IfcDistributionSystemEnum.STORMWATER +telephone = IfcDistributionSystemEnum.TELEPHONE +tv = IfcDistributionSystemEnum.TV +vacuum = IfcDistributionSystemEnum.VACUUM +vent = IfcDistributionSystemEnum.VENT +ventilation = IfcDistributionSystemEnum.VENTILATION +wastewater = IfcDistributionSystemEnum.WASTEWATER +watersupply = IfcDistributionSystemEnum.WATERSUPPLY +catenary_system = IfcDistributionSystemEnum.CATENARY_SYSTEM +overhead_contactline_system = IfcDistributionSystemEnum.OVERHEAD_CONTACTLINE_SYSTEM +return_circuit = IfcDistributionSystemEnum.RETURN_CIRCUIT +userdefined = IfcDistributionSystemEnum.USERDEFINED +notdefined = IfcDistributionSystemEnum.NOTDEFINED IfcDocumentConfidentialityEnum = enum_namespace() -public = getattr(IfcDocumentConfidentialityEnum, 'PUBLIC', INDETERMINATE) -restricted = getattr(IfcDocumentConfidentialityEnum, 'RESTRICTED', INDETERMINATE) -confidential = getattr(IfcDocumentConfidentialityEnum, 'CONFIDENTIAL', INDETERMINATE) -personal = getattr(IfcDocumentConfidentialityEnum, 'PERSONAL', INDETERMINATE) -userdefined = getattr(IfcDocumentConfidentialityEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDocumentConfidentialityEnum, 'NOTDEFINED', INDETERMINATE) +public = IfcDocumentConfidentialityEnum.PUBLIC +restricted = IfcDocumentConfidentialityEnum.RESTRICTED +confidential = IfcDocumentConfidentialityEnum.CONFIDENTIAL +personal = IfcDocumentConfidentialityEnum.PERSONAL +userdefined = IfcDocumentConfidentialityEnum.USERDEFINED +notdefined = IfcDocumentConfidentialityEnum.NOTDEFINED IfcDocumentStatusEnum = enum_namespace() -draft = getattr(IfcDocumentStatusEnum, 'DRAFT', INDETERMINATE) -finaldraft = getattr(IfcDocumentStatusEnum, 'FINALDRAFT', INDETERMINATE) -final = getattr(IfcDocumentStatusEnum, 'FINAL', INDETERMINATE) -revision = getattr(IfcDocumentStatusEnum, 'REVISION', INDETERMINATE) -notdefined = getattr(IfcDocumentStatusEnum, 'NOTDEFINED', INDETERMINATE) +draft = IfcDocumentStatusEnum.DRAFT +finaldraft = IfcDocumentStatusEnum.FINALDRAFT +final = IfcDocumentStatusEnum.FINAL +revision = IfcDocumentStatusEnum.REVISION +notdefined = IfcDocumentStatusEnum.NOTDEFINED IfcDoorPanelOperationEnum = enum_namespace() -swinging = getattr(IfcDoorPanelOperationEnum, 'SWINGING', INDETERMINATE) -double_acting = getattr(IfcDoorPanelOperationEnum, 'DOUBLE_ACTING', INDETERMINATE) -sliding = getattr(IfcDoorPanelOperationEnum, 'SLIDING', INDETERMINATE) -folding = getattr(IfcDoorPanelOperationEnum, 'FOLDING', INDETERMINATE) -revolving = getattr(IfcDoorPanelOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = getattr(IfcDoorPanelOperationEnum, 'ROLLINGUP', INDETERMINATE) -fixedpanel = getattr(IfcDoorPanelOperationEnum, 'FIXEDPANEL', INDETERMINATE) -userdefined = getattr(IfcDoorPanelOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +swinging = IfcDoorPanelOperationEnum.SWINGING +double_acting = IfcDoorPanelOperationEnum.DOUBLE_ACTING +sliding = IfcDoorPanelOperationEnum.SLIDING +folding = IfcDoorPanelOperationEnum.FOLDING +revolving = IfcDoorPanelOperationEnum.REVOLVING +rollingup = IfcDoorPanelOperationEnum.ROLLINGUP +fixedpanel = IfcDoorPanelOperationEnum.FIXEDPANEL +userdefined = IfcDoorPanelOperationEnum.USERDEFINED +notdefined = IfcDoorPanelOperationEnum.NOTDEFINED IfcDoorPanelPositionEnum = enum_namespace() -left = getattr(IfcDoorPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = getattr(IfcDoorPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = getattr(IfcDoorPanelPositionEnum, 'RIGHT', INDETERMINATE) -notdefined = getattr(IfcDoorPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcDoorPanelPositionEnum.LEFT +middle = IfcDoorPanelPositionEnum.MIDDLE +right = IfcDoorPanelPositionEnum.RIGHT +notdefined = IfcDoorPanelPositionEnum.NOTDEFINED IfcDoorStyleConstructionEnum = enum_namespace() -aluminium = getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = getattr(IfcDoorStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = getattr(IfcDoorStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = getattr(IfcDoorStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -aluminium_plastic = getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_PLASTIC', INDETERMINATE) -plastic = getattr(IfcDoorStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -userdefined = getattr(IfcDoorStyleConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcDoorStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcDoorStyleConstructionEnum.STEEL +wood = IfcDoorStyleConstructionEnum.WOOD +aluminium_wood = IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD +aluminium_plastic = IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC +plastic = IfcDoorStyleConstructionEnum.PLASTIC +userdefined = IfcDoorStyleConstructionEnum.USERDEFINED +notdefined = IfcDoorStyleConstructionEnum.NOTDEFINED IfcDoorStyleOperationEnum = enum_namespace() -single_swing_left = getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_door_single_swing = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_door_double_swing = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_door_sliding = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -folding_to_left = getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_door_folding = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -revolving = getattr(IfcDoorStyleOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = getattr(IfcDoorStyleOperationEnum, 'ROLLINGUP', INDETERMINATE) -userdefined = getattr(IfcDoorStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT +double_door_single_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT +double_door_double_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +sliding_to_left = IfcDoorStyleOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT +double_door_sliding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING +folding_to_left = IfcDoorStyleOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT +double_door_folding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING +revolving = IfcDoorStyleOperationEnum.REVOLVING +rollingup = IfcDoorStyleOperationEnum.ROLLINGUP +userdefined = IfcDoorStyleOperationEnum.USERDEFINED +notdefined = IfcDoorStyleOperationEnum.NOTDEFINED IfcDoorTypeEnum = enum_namespace() -door = getattr(IfcDoorTypeEnum, 'DOOR', INDETERMINATE) -gate = getattr(IfcDoorTypeEnum, 'GATE', INDETERMINATE) -trapdoor = getattr(IfcDoorTypeEnum, 'TRAPDOOR', INDETERMINATE) -boom_barrier = getattr(IfcDoorTypeEnum, 'BOOM_BARRIER', INDETERMINATE) -turnstile = getattr(IfcDoorTypeEnum, 'TURNSTILE', INDETERMINATE) -userdefined = getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorTypeEnum, 'NOTDEFINED', INDETERMINATE) +door = IfcDoorTypeEnum.DOOR +gate = IfcDoorTypeEnum.GATE +trapdoor = IfcDoorTypeEnum.TRAPDOOR +boom_barrier = IfcDoorTypeEnum.BOOM_BARRIER +turnstile = IfcDoorTypeEnum.TURNSTILE +userdefined = IfcDoorTypeEnum.USERDEFINED +notdefined = IfcDoorTypeEnum.NOTDEFINED IfcDoorTypeOperationEnum = enum_namespace() -single_swing_left = getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_door_single_swing = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_door_double_swing = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_door_sliding = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -folding_to_left = getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_door_folding = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -revolving = getattr(IfcDoorTypeOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = getattr(IfcDoorTypeOperationEnum, 'ROLLINGUP', INDETERMINATE) -swing_fixed_left = getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_LEFT', INDETERMINATE) -swing_fixed_right = getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_RIGHT', INDETERMINATE) -userdefined = getattr(IfcDoorTypeOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorTypeOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT +double_door_single_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT +double_door_double_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +sliding_to_left = IfcDoorTypeOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT +double_door_sliding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SLIDING +folding_to_left = IfcDoorTypeOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT +double_door_folding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_FOLDING +revolving = IfcDoorTypeOperationEnum.REVOLVING +rollingup = IfcDoorTypeOperationEnum.ROLLINGUP +swing_fixed_left = IfcDoorTypeOperationEnum.SWING_FIXED_LEFT +swing_fixed_right = IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT +userdefined = IfcDoorTypeOperationEnum.USERDEFINED +notdefined = IfcDoorTypeOperationEnum.NOTDEFINED IfcDuctFittingTypeEnum = enum_namespace() -bend = getattr(IfcDuctFittingTypeEnum, 'BEND', INDETERMINATE) -connector = getattr(IfcDuctFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcDuctFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcDuctFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcDuctFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = getattr(IfcDuctFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = getattr(IfcDuctFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcDuctFittingTypeEnum.BEND +connector = IfcDuctFittingTypeEnum.CONNECTOR +entry = IfcDuctFittingTypeEnum.ENTRY +exit = IfcDuctFittingTypeEnum.EXIT +junction = IfcDuctFittingTypeEnum.JUNCTION +obstruction = IfcDuctFittingTypeEnum.OBSTRUCTION +transition = IfcDuctFittingTypeEnum.TRANSITION +userdefined = IfcDuctFittingTypeEnum.USERDEFINED +notdefined = IfcDuctFittingTypeEnum.NOTDEFINED IfcDuctSegmentTypeEnum = enum_namespace() -rigidsegment = getattr(IfcDuctSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -flexiblesegment = getattr(IfcDuctSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -userdefined = getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigidsegment = IfcDuctSegmentTypeEnum.RIGIDSEGMENT +flexiblesegment = IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT +userdefined = IfcDuctSegmentTypeEnum.USERDEFINED +notdefined = IfcDuctSegmentTypeEnum.NOTDEFINED IfcDuctSilencerTypeEnum = enum_namespace() -flatoval = getattr(IfcDuctSilencerTypeEnum, 'FLATOVAL', INDETERMINATE) -rectangular = getattr(IfcDuctSilencerTypeEnum, 'RECTANGULAR', INDETERMINATE) -round = getattr(IfcDuctSilencerTypeEnum, 'ROUND', INDETERMINATE) -userdefined = getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctSilencerTypeEnum, 'NOTDEFINED', INDETERMINATE) +flatoval = IfcDuctSilencerTypeEnum.FLATOVAL +rectangular = IfcDuctSilencerTypeEnum.RECTANGULAR +round = IfcDuctSilencerTypeEnum.ROUND +userdefined = IfcDuctSilencerTypeEnum.USERDEFINED +notdefined = IfcDuctSilencerTypeEnum.NOTDEFINED IfcEarthworksCutTypeEnum = enum_namespace() -trench = getattr(IfcEarthworksCutTypeEnum, 'TRENCH', INDETERMINATE) -dredging = getattr(IfcEarthworksCutTypeEnum, 'DREDGING', INDETERMINATE) -excavation = getattr(IfcEarthworksCutTypeEnum, 'EXCAVATION', INDETERMINATE) -overexcavation = getattr(IfcEarthworksCutTypeEnum, 'OVEREXCAVATION', INDETERMINATE) -topsoilremoval = getattr(IfcEarthworksCutTypeEnum, 'TOPSOILREMOVAL', INDETERMINATE) -stepexcavation = getattr(IfcEarthworksCutTypeEnum, 'STEPEXCAVATION', INDETERMINATE) -pavementmilling = getattr(IfcEarthworksCutTypeEnum, 'PAVEMENTMILLING', INDETERMINATE) -cut = getattr(IfcEarthworksCutTypeEnum, 'CUT', INDETERMINATE) -base_excavation = getattr(IfcEarthworksCutTypeEnum, 'BASE_EXCAVATION', INDETERMINATE) -userdefined = getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEarthworksCutTypeEnum, 'NOTDEFINED', INDETERMINATE) +trench = IfcEarthworksCutTypeEnum.TRENCH +dredging = IfcEarthworksCutTypeEnum.DREDGING +excavation = IfcEarthworksCutTypeEnum.EXCAVATION +overexcavation = IfcEarthworksCutTypeEnum.OVEREXCAVATION +topsoilremoval = IfcEarthworksCutTypeEnum.TOPSOILREMOVAL +stepexcavation = IfcEarthworksCutTypeEnum.STEPEXCAVATION +pavementmilling = IfcEarthworksCutTypeEnum.PAVEMENTMILLING +cut = IfcEarthworksCutTypeEnum.CUT +base_excavation = IfcEarthworksCutTypeEnum.BASE_EXCAVATION +userdefined = IfcEarthworksCutTypeEnum.USERDEFINED +notdefined = IfcEarthworksCutTypeEnum.NOTDEFINED IfcEarthworksFillTypeEnum = enum_namespace() -backfill = getattr(IfcEarthworksFillTypeEnum, 'BACKFILL', INDETERMINATE) -counterweight = getattr(IfcEarthworksFillTypeEnum, 'COUNTERWEIGHT', INDETERMINATE) -subgrade = getattr(IfcEarthworksFillTypeEnum, 'SUBGRADE', INDETERMINATE) -embankment = getattr(IfcEarthworksFillTypeEnum, 'EMBANKMENT', INDETERMINATE) -transitionsection = getattr(IfcEarthworksFillTypeEnum, 'TRANSITIONSECTION', INDETERMINATE) -subgradebed = getattr(IfcEarthworksFillTypeEnum, 'SUBGRADEBED', INDETERMINATE) -slopefill = getattr(IfcEarthworksFillTypeEnum, 'SLOPEFILL', INDETERMINATE) -userdefined = getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEarthworksFillTypeEnum, 'NOTDEFINED', INDETERMINATE) +backfill = IfcEarthworksFillTypeEnum.BACKFILL +counterweight = IfcEarthworksFillTypeEnum.COUNTERWEIGHT +subgrade = IfcEarthworksFillTypeEnum.SUBGRADE +embankment = IfcEarthworksFillTypeEnum.EMBANKMENT +transitionsection = IfcEarthworksFillTypeEnum.TRANSITIONSECTION +subgradebed = IfcEarthworksFillTypeEnum.SUBGRADEBED +slopefill = IfcEarthworksFillTypeEnum.SLOPEFILL +userdefined = IfcEarthworksFillTypeEnum.USERDEFINED +notdefined = IfcEarthworksFillTypeEnum.NOTDEFINED IfcElectricApplianceTypeEnum = enum_namespace() -dishwasher = getattr(IfcElectricApplianceTypeEnum, 'DISHWASHER', INDETERMINATE) -electriccooker = getattr(IfcElectricApplianceTypeEnum, 'ELECTRICCOOKER', INDETERMINATE) -freestandingelectricheater = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGELECTRICHEATER', INDETERMINATE) -freestandingfan = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGFAN', INDETERMINATE) -freestandingwaterheater = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERHEATER', INDETERMINATE) -freestandingwatercooler = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERCOOLER', INDETERMINATE) -freezer = getattr(IfcElectricApplianceTypeEnum, 'FREEZER', INDETERMINATE) -fridge_freezer = getattr(IfcElectricApplianceTypeEnum, 'FRIDGE_FREEZER', INDETERMINATE) -handdryer = getattr(IfcElectricApplianceTypeEnum, 'HANDDRYER', INDETERMINATE) -kitchenmachine = getattr(IfcElectricApplianceTypeEnum, 'KITCHENMACHINE', INDETERMINATE) -microwave = getattr(IfcElectricApplianceTypeEnum, 'MICROWAVE', INDETERMINATE) -photocopier = getattr(IfcElectricApplianceTypeEnum, 'PHOTOCOPIER', INDETERMINATE) -refrigerator = getattr(IfcElectricApplianceTypeEnum, 'REFRIGERATOR', INDETERMINATE) -tumbledryer = getattr(IfcElectricApplianceTypeEnum, 'TUMBLEDRYER', INDETERMINATE) -vendingmachine = getattr(IfcElectricApplianceTypeEnum, 'VENDINGMACHINE', INDETERMINATE) -washingmachine = getattr(IfcElectricApplianceTypeEnum, 'WASHINGMACHINE', INDETERMINATE) -userdefined = getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dishwasher = IfcElectricApplianceTypeEnum.DISHWASHER +electriccooker = IfcElectricApplianceTypeEnum.ELECTRICCOOKER +freestandingelectricheater = IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER +freestandingfan = IfcElectricApplianceTypeEnum.FREESTANDINGFAN +freestandingwaterheater = IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER +freestandingwatercooler = IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER +freezer = IfcElectricApplianceTypeEnum.FREEZER +fridge_freezer = IfcElectricApplianceTypeEnum.FRIDGE_FREEZER +handdryer = IfcElectricApplianceTypeEnum.HANDDRYER +kitchenmachine = IfcElectricApplianceTypeEnum.KITCHENMACHINE +microwave = IfcElectricApplianceTypeEnum.MICROWAVE +photocopier = IfcElectricApplianceTypeEnum.PHOTOCOPIER +refrigerator = IfcElectricApplianceTypeEnum.REFRIGERATOR +tumbledryer = IfcElectricApplianceTypeEnum.TUMBLEDRYER +vendingmachine = IfcElectricApplianceTypeEnum.VENDINGMACHINE +washingmachine = IfcElectricApplianceTypeEnum.WASHINGMACHINE +userdefined = IfcElectricApplianceTypeEnum.USERDEFINED +notdefined = IfcElectricApplianceTypeEnum.NOTDEFINED IfcElectricDistributionBoardTypeEnum = enum_namespace() -consumerunit = getattr(IfcElectricDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -distributionboard = getattr(IfcElectricDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -motorcontrolcentre = getattr(IfcElectricDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = getattr(IfcElectricDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT +distributionboard = IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD +motorcontrolcentre = IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcElectricDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcElectricDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcElectricDistributionBoardTypeEnum.NOTDEFINED IfcElectricFlowStorageDeviceTypeEnum = enum_namespace() -battery = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'BATTERY', INDETERMINATE) -capacitorbank = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITORBANK', INDETERMINATE) -harmonicfilter = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'HARMONICFILTER', INDETERMINATE) -inductorbank = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTORBANK', INDETERMINATE) -ups = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'UPS', INDETERMINATE) -capacitor = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITOR', INDETERMINATE) -compensator = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'COMPENSATOR', INDETERMINATE) -inductor = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTOR', INDETERMINATE) -recharger = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'RECHARGER', INDETERMINATE) -userdefined = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +battery = IfcElectricFlowStorageDeviceTypeEnum.BATTERY +capacitorbank = IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK +harmonicfilter = IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER +inductorbank = IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK +ups = IfcElectricFlowStorageDeviceTypeEnum.UPS +capacitor = IfcElectricFlowStorageDeviceTypeEnum.CAPACITOR +compensator = IfcElectricFlowStorageDeviceTypeEnum.COMPENSATOR +inductor = IfcElectricFlowStorageDeviceTypeEnum.INDUCTOR +recharger = IfcElectricFlowStorageDeviceTypeEnum.RECHARGER +userdefined = IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED IfcElectricFlowTreatmentDeviceTypeEnum = enum_namespace() -electronicfilter = getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'ELECTRONICFILTER', INDETERMINATE) -userdefined = getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronicfilter = IfcElectricFlowTreatmentDeviceTypeEnum.ELECTRONICFILTER +userdefined = IfcElectricFlowTreatmentDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowTreatmentDeviceTypeEnum.NOTDEFINED IfcElectricGeneratorTypeEnum = enum_namespace() -chp = getattr(IfcElectricGeneratorTypeEnum, 'CHP', INDETERMINATE) -enginegenerator = getattr(IfcElectricGeneratorTypeEnum, 'ENGINEGENERATOR', INDETERMINATE) -standalone = getattr(IfcElectricGeneratorTypeEnum, 'STANDALONE', INDETERMINATE) -userdefined = getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricGeneratorTypeEnum, 'NOTDEFINED', INDETERMINATE) +chp = IfcElectricGeneratorTypeEnum.CHP +enginegenerator = IfcElectricGeneratorTypeEnum.ENGINEGENERATOR +standalone = IfcElectricGeneratorTypeEnum.STANDALONE +userdefined = IfcElectricGeneratorTypeEnum.USERDEFINED +notdefined = IfcElectricGeneratorTypeEnum.NOTDEFINED IfcElectricMotorTypeEnum = enum_namespace() -dc = getattr(IfcElectricMotorTypeEnum, 'DC', INDETERMINATE) -induction = getattr(IfcElectricMotorTypeEnum, 'INDUCTION', INDETERMINATE) -polyphase = getattr(IfcElectricMotorTypeEnum, 'POLYPHASE', INDETERMINATE) -reluctancesynchronous = getattr(IfcElectricMotorTypeEnum, 'RELUCTANCESYNCHRONOUS', INDETERMINATE) -synchronous = getattr(IfcElectricMotorTypeEnum, 'SYNCHRONOUS', INDETERMINATE) -userdefined = getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricMotorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dc = IfcElectricMotorTypeEnum.DC +induction = IfcElectricMotorTypeEnum.INDUCTION +polyphase = IfcElectricMotorTypeEnum.POLYPHASE +reluctancesynchronous = IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS +synchronous = IfcElectricMotorTypeEnum.SYNCHRONOUS +userdefined = IfcElectricMotorTypeEnum.USERDEFINED +notdefined = IfcElectricMotorTypeEnum.NOTDEFINED IfcElectricTimeControlTypeEnum = enum_namespace() -timeclock = getattr(IfcElectricTimeControlTypeEnum, 'TIMECLOCK', INDETERMINATE) -timedelay = getattr(IfcElectricTimeControlTypeEnum, 'TIMEDELAY', INDETERMINATE) -relay = getattr(IfcElectricTimeControlTypeEnum, 'RELAY', INDETERMINATE) -userdefined = getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricTimeControlTypeEnum, 'NOTDEFINED', INDETERMINATE) +timeclock = IfcElectricTimeControlTypeEnum.TIMECLOCK +timedelay = IfcElectricTimeControlTypeEnum.TIMEDELAY +relay = IfcElectricTimeControlTypeEnum.RELAY +userdefined = IfcElectricTimeControlTypeEnum.USERDEFINED +notdefined = IfcElectricTimeControlTypeEnum.NOTDEFINED IfcElementAssemblyTypeEnum = enum_namespace() -accessory_assembly = getattr(IfcElementAssemblyTypeEnum, 'ACCESSORY_ASSEMBLY', INDETERMINATE) -arch = getattr(IfcElementAssemblyTypeEnum, 'ARCH', INDETERMINATE) -beam_grid = getattr(IfcElementAssemblyTypeEnum, 'BEAM_GRID', INDETERMINATE) -braced_frame = getattr(IfcElementAssemblyTypeEnum, 'BRACED_FRAME', INDETERMINATE) -girder = getattr(IfcElementAssemblyTypeEnum, 'GIRDER', INDETERMINATE) -reinforcement_unit = getattr(IfcElementAssemblyTypeEnum, 'REINFORCEMENT_UNIT', INDETERMINATE) -rigid_frame = getattr(IfcElementAssemblyTypeEnum, 'RIGID_FRAME', INDETERMINATE) -slab_field = getattr(IfcElementAssemblyTypeEnum, 'SLAB_FIELD', INDETERMINATE) -truss = getattr(IfcElementAssemblyTypeEnum, 'TRUSS', INDETERMINATE) -abutment = getattr(IfcElementAssemblyTypeEnum, 'ABUTMENT', INDETERMINATE) -pier = getattr(IfcElementAssemblyTypeEnum, 'PIER', INDETERMINATE) -pylon = getattr(IfcElementAssemblyTypeEnum, 'PYLON', INDETERMINATE) -cross_bracing = getattr(IfcElementAssemblyTypeEnum, 'CROSS_BRACING', INDETERMINATE) -deck = getattr(IfcElementAssemblyTypeEnum, 'DECK', INDETERMINATE) -mast = getattr(IfcElementAssemblyTypeEnum, 'MAST', INDETERMINATE) -signalassembly = getattr(IfcElementAssemblyTypeEnum, 'SIGNALASSEMBLY', INDETERMINATE) -grid = getattr(IfcElementAssemblyTypeEnum, 'GRID', INDETERMINATE) -shelter = getattr(IfcElementAssemblyTypeEnum, 'SHELTER', INDETERMINATE) -supportingassembly = getattr(IfcElementAssemblyTypeEnum, 'SUPPORTINGASSEMBLY', INDETERMINATE) -suspensionassembly = getattr(IfcElementAssemblyTypeEnum, 'SUSPENSIONASSEMBLY', INDETERMINATE) -traction_switching_assembly = getattr(IfcElementAssemblyTypeEnum, 'TRACTION_SWITCHING_ASSEMBLY', INDETERMINATE) -trackpanel = getattr(IfcElementAssemblyTypeEnum, 'TRACKPANEL', INDETERMINATE) -turnoutpanel = getattr(IfcElementAssemblyTypeEnum, 'TURNOUTPANEL', INDETERMINATE) -dilatationpanel = getattr(IfcElementAssemblyTypeEnum, 'DILATATIONPANEL', INDETERMINATE) -rail_mechanical_equipment_assembly = getattr(IfcElementAssemblyTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY', INDETERMINATE) -entranceworks = getattr(IfcElementAssemblyTypeEnum, 'ENTRANCEWORKS', INDETERMINATE) -sumpbuster = getattr(IfcElementAssemblyTypeEnum, 'SUMPBUSTER', INDETERMINATE) -traffic_calming_device = getattr(IfcElementAssemblyTypeEnum, 'TRAFFIC_CALMING_DEVICE', INDETERMINATE) -userdefined = getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElementAssemblyTypeEnum, 'NOTDEFINED', INDETERMINATE) +accessory_assembly = IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY +arch = IfcElementAssemblyTypeEnum.ARCH +beam_grid = IfcElementAssemblyTypeEnum.BEAM_GRID +braced_frame = IfcElementAssemblyTypeEnum.BRACED_FRAME +girder = IfcElementAssemblyTypeEnum.GIRDER +reinforcement_unit = IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT +rigid_frame = IfcElementAssemblyTypeEnum.RIGID_FRAME +slab_field = IfcElementAssemblyTypeEnum.SLAB_FIELD +truss = IfcElementAssemblyTypeEnum.TRUSS +abutment = IfcElementAssemblyTypeEnum.ABUTMENT +pier = IfcElementAssemblyTypeEnum.PIER +pylon = IfcElementAssemblyTypeEnum.PYLON +cross_bracing = IfcElementAssemblyTypeEnum.CROSS_BRACING +deck = IfcElementAssemblyTypeEnum.DECK +mast = IfcElementAssemblyTypeEnum.MAST +signalassembly = IfcElementAssemblyTypeEnum.SIGNALASSEMBLY +grid = IfcElementAssemblyTypeEnum.GRID +shelter = IfcElementAssemblyTypeEnum.SHELTER +supportingassembly = IfcElementAssemblyTypeEnum.SUPPORTINGASSEMBLY +suspensionassembly = IfcElementAssemblyTypeEnum.SUSPENSIONASSEMBLY +traction_switching_assembly = IfcElementAssemblyTypeEnum.TRACTION_SWITCHING_ASSEMBLY +trackpanel = IfcElementAssemblyTypeEnum.TRACKPANEL +turnoutpanel = IfcElementAssemblyTypeEnum.TURNOUTPANEL +dilatationpanel = IfcElementAssemblyTypeEnum.DILATATIONPANEL +rail_mechanical_equipment_assembly = IfcElementAssemblyTypeEnum.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY +entranceworks = IfcElementAssemblyTypeEnum.ENTRANCEWORKS +sumpbuster = IfcElementAssemblyTypeEnum.SUMPBUSTER +traffic_calming_device = IfcElementAssemblyTypeEnum.TRAFFIC_CALMING_DEVICE +userdefined = IfcElementAssemblyTypeEnum.USERDEFINED +notdefined = IfcElementAssemblyTypeEnum.NOTDEFINED IfcElementCompositionEnum = enum_namespace() -complex = getattr(IfcElementCompositionEnum, 'COMPLEX', INDETERMINATE) -element = getattr(IfcElementCompositionEnum, 'ELEMENT', INDETERMINATE) -partial = getattr(IfcElementCompositionEnum, 'PARTIAL', INDETERMINATE) +complex = IfcElementCompositionEnum.COMPLEX +element = IfcElementCompositionEnum.ELEMENT +partial = IfcElementCompositionEnum.PARTIAL IfcEngineTypeEnum = enum_namespace() -externalcombustion = getattr(IfcEngineTypeEnum, 'EXTERNALCOMBUSTION', INDETERMINATE) -internalcombustion = getattr(IfcEngineTypeEnum, 'INTERNALCOMBUSTION', INDETERMINATE) -userdefined = getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEngineTypeEnum, 'NOTDEFINED', INDETERMINATE) +externalcombustion = IfcEngineTypeEnum.EXTERNALCOMBUSTION +internalcombustion = IfcEngineTypeEnum.INTERNALCOMBUSTION +userdefined = IfcEngineTypeEnum.USERDEFINED +notdefined = IfcEngineTypeEnum.NOTDEFINED IfcEvaporativeCoolerTypeEnum = enum_namespace() -directevaporativerandommediaaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER', INDETERMINATE) -directevaporativerigidmediaaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER', INDETERMINATE) -directevaporativeslingerspackagedaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER', INDETERMINATE) -directevaporativepackagedrotaryaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER', INDETERMINATE) -directevaporativeairwasher = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEAIRWASHER', INDETERMINATE) -indirectevaporativepackageaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEPACKAGEAIRCOOLER', INDETERMINATE) -indirectevaporativewetcoil = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEWETCOIL', INDETERMINATE) -indirectevaporativecoolingtowerorcoilcooler = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER', INDETERMINATE) -indirectdirectcombination = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTDIRECTCOMBINATION', INDETERMINATE) -userdefined = getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEvaporativeCoolerTypeEnum, 'NOTDEFINED', INDETERMINATE) +directevaporativerandommediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER +directevaporativerigidmediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER +directevaporativeslingerspackagedaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER +directevaporativepackagedrotaryaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER +directevaporativeairwasher = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER +indirectevaporativepackageaircooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER +indirectevaporativewetcoil = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL +indirectevaporativecoolingtowerorcoilcooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER +indirectdirectcombination = IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION +userdefined = IfcEvaporativeCoolerTypeEnum.USERDEFINED +notdefined = IfcEvaporativeCoolerTypeEnum.NOTDEFINED IfcEvaporatorTypeEnum = enum_namespace() -directexpansion = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSION', INDETERMINATE) -directexpansionshellandtube = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONSHELLANDTUBE', INDETERMINATE) -directexpansiontubeintube = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONTUBEINTUBE', INDETERMINATE) -directexpansionbrazedplate = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONBRAZEDPLATE', INDETERMINATE) -floodedshellandtube = getattr(IfcEvaporatorTypeEnum, 'FLOODEDSHELLANDTUBE', INDETERMINATE) -shellandcoil = getattr(IfcEvaporatorTypeEnum, 'SHELLANDCOIL', INDETERMINATE) -userdefined = getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEvaporatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +directexpansion = IfcEvaporatorTypeEnum.DIRECTEXPANSION +directexpansionshellandtube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE +directexpansiontubeintube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE +directexpansionbrazedplate = IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE +floodedshellandtube = IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE +shellandcoil = IfcEvaporatorTypeEnum.SHELLANDCOIL +userdefined = IfcEvaporatorTypeEnum.USERDEFINED +notdefined = IfcEvaporatorTypeEnum.NOTDEFINED IfcEventTriggerTypeEnum = enum_namespace() -eventrule = getattr(IfcEventTriggerTypeEnum, 'EVENTRULE', INDETERMINATE) -eventmessage = getattr(IfcEventTriggerTypeEnum, 'EVENTMESSAGE', INDETERMINATE) -eventtime = getattr(IfcEventTriggerTypeEnum, 'EVENTTIME', INDETERMINATE) -eventcomplex = getattr(IfcEventTriggerTypeEnum, 'EVENTCOMPLEX', INDETERMINATE) -userdefined = getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEventTriggerTypeEnum, 'NOTDEFINED', INDETERMINATE) +eventrule = IfcEventTriggerTypeEnum.EVENTRULE +eventmessage = IfcEventTriggerTypeEnum.EVENTMESSAGE +eventtime = IfcEventTriggerTypeEnum.EVENTTIME +eventcomplex = IfcEventTriggerTypeEnum.EVENTCOMPLEX +userdefined = IfcEventTriggerTypeEnum.USERDEFINED +notdefined = IfcEventTriggerTypeEnum.NOTDEFINED IfcEventTypeEnum = enum_namespace() -startevent = getattr(IfcEventTypeEnum, 'STARTEVENT', INDETERMINATE) -endevent = getattr(IfcEventTypeEnum, 'ENDEVENT', INDETERMINATE) -intermediateevent = getattr(IfcEventTypeEnum, 'INTERMEDIATEEVENT', INDETERMINATE) -userdefined = getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEventTypeEnum, 'NOTDEFINED', INDETERMINATE) +startevent = IfcEventTypeEnum.STARTEVENT +endevent = IfcEventTypeEnum.ENDEVENT +intermediateevent = IfcEventTypeEnum.INTERMEDIATEEVENT +userdefined = IfcEventTypeEnum.USERDEFINED +notdefined = IfcEventTypeEnum.NOTDEFINED IfcExternalSpatialElementTypeEnum = enum_namespace() -external = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL', INDETERMINATE) -external_earth = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_water = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_WATER', INDETERMINATE) -external_fire = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_FIRE', INDETERMINATE) -userdefined = getattr(IfcExternalSpatialElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcExternalSpatialElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcExternalSpatialElementTypeEnum.EXTERNAL +external_earth = IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH +external_water = IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER +external_fire = IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE +userdefined = IfcExternalSpatialElementTypeEnum.USERDEFINED +notdefined = IfcExternalSpatialElementTypeEnum.NOTDEFINED IfcFacilityPartCommonTypeEnum = enum_namespace() -segment = getattr(IfcFacilityPartCommonTypeEnum, 'SEGMENT', INDETERMINATE) -aboveground = getattr(IfcFacilityPartCommonTypeEnum, 'ABOVEGROUND', INDETERMINATE) -junction = getattr(IfcFacilityPartCommonTypeEnum, 'JUNCTION', INDETERMINATE) -levelcrossing = getattr(IfcFacilityPartCommonTypeEnum, 'LEVELCROSSING', INDETERMINATE) -belowground = getattr(IfcFacilityPartCommonTypeEnum, 'BELOWGROUND', INDETERMINATE) -substructure = getattr(IfcFacilityPartCommonTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -terminal = getattr(IfcFacilityPartCommonTypeEnum, 'TERMINAL', INDETERMINATE) -superstructure = getattr(IfcFacilityPartCommonTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -userdefined = getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFacilityPartCommonTypeEnum, 'NOTDEFINED', INDETERMINATE) +segment = IfcFacilityPartCommonTypeEnum.SEGMENT +aboveground = IfcFacilityPartCommonTypeEnum.ABOVEGROUND +junction = IfcFacilityPartCommonTypeEnum.JUNCTION +levelcrossing = IfcFacilityPartCommonTypeEnum.LEVELCROSSING +belowground = IfcFacilityPartCommonTypeEnum.BELOWGROUND +substructure = IfcFacilityPartCommonTypeEnum.SUBSTRUCTURE +terminal = IfcFacilityPartCommonTypeEnum.TERMINAL +superstructure = IfcFacilityPartCommonTypeEnum.SUPERSTRUCTURE +userdefined = IfcFacilityPartCommonTypeEnum.USERDEFINED +notdefined = IfcFacilityPartCommonTypeEnum.NOTDEFINED IfcFacilityUsageEnum = enum_namespace() -lateral = getattr(IfcFacilityUsageEnum, 'LATERAL', INDETERMINATE) -region = getattr(IfcFacilityUsageEnum, 'REGION', INDETERMINATE) -vertical = getattr(IfcFacilityUsageEnum, 'VERTICAL', INDETERMINATE) -longitudinal = getattr(IfcFacilityUsageEnum, 'LONGITUDINAL', INDETERMINATE) -userdefined = getattr(IfcFacilityUsageEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFacilityUsageEnum, 'NOTDEFINED', INDETERMINATE) +lateral = IfcFacilityUsageEnum.LATERAL +region = IfcFacilityUsageEnum.REGION +vertical = IfcFacilityUsageEnum.VERTICAL +longitudinal = IfcFacilityUsageEnum.LONGITUDINAL +userdefined = IfcFacilityUsageEnum.USERDEFINED +notdefined = IfcFacilityUsageEnum.NOTDEFINED IfcFanTypeEnum = enum_namespace() -centrifugalforwardcurved = getattr(IfcFanTypeEnum, 'CENTRIFUGALFORWARDCURVED', INDETERMINATE) -centrifugalradial = getattr(IfcFanTypeEnum, 'CENTRIFUGALRADIAL', INDETERMINATE) -centrifugalbackwardinclinedcurved = getattr(IfcFanTypeEnum, 'CENTRIFUGALBACKWARDINCLINEDCURVED', INDETERMINATE) -centrifugalairfoil = getattr(IfcFanTypeEnum, 'CENTRIFUGALAIRFOIL', INDETERMINATE) -tubeaxial = getattr(IfcFanTypeEnum, 'TUBEAXIAL', INDETERMINATE) -vaneaxial = getattr(IfcFanTypeEnum, 'VANEAXIAL', INDETERMINATE) -propelloraxial = getattr(IfcFanTypeEnum, 'PROPELLORAXIAL', INDETERMINATE) -userdefined = getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFanTypeEnum, 'NOTDEFINED', INDETERMINATE) +centrifugalforwardcurved = IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED +centrifugalradial = IfcFanTypeEnum.CENTRIFUGALRADIAL +centrifugalbackwardinclinedcurved = IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED +centrifugalairfoil = IfcFanTypeEnum.CENTRIFUGALAIRFOIL +tubeaxial = IfcFanTypeEnum.TUBEAXIAL +vaneaxial = IfcFanTypeEnum.VANEAXIAL +propelloraxial = IfcFanTypeEnum.PROPELLORAXIAL +userdefined = IfcFanTypeEnum.USERDEFINED +notdefined = IfcFanTypeEnum.NOTDEFINED IfcFastenerTypeEnum = enum_namespace() -glue = getattr(IfcFastenerTypeEnum, 'GLUE', INDETERMINATE) -mortar = getattr(IfcFastenerTypeEnum, 'MORTAR', INDETERMINATE) -weld = getattr(IfcFastenerTypeEnum, 'WELD', INDETERMINATE) -userdefined = getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +glue = IfcFastenerTypeEnum.GLUE +mortar = IfcFastenerTypeEnum.MORTAR +weld = IfcFastenerTypeEnum.WELD +userdefined = IfcFastenerTypeEnum.USERDEFINED +notdefined = IfcFastenerTypeEnum.NOTDEFINED IfcFilterTypeEnum = enum_namespace() -airparticlefilter = getattr(IfcFilterTypeEnum, 'AIRPARTICLEFILTER', INDETERMINATE) -compressedairfilter = getattr(IfcFilterTypeEnum, 'COMPRESSEDAIRFILTER', INDETERMINATE) -odorfilter = getattr(IfcFilterTypeEnum, 'ODORFILTER', INDETERMINATE) -oilfilter = getattr(IfcFilterTypeEnum, 'OILFILTER', INDETERMINATE) -strainer = getattr(IfcFilterTypeEnum, 'STRAINER', INDETERMINATE) -waterfilter = getattr(IfcFilterTypeEnum, 'WATERFILTER', INDETERMINATE) -userdefined = getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFilterTypeEnum, 'NOTDEFINED', INDETERMINATE) +airparticlefilter = IfcFilterTypeEnum.AIRPARTICLEFILTER +compressedairfilter = IfcFilterTypeEnum.COMPRESSEDAIRFILTER +odorfilter = IfcFilterTypeEnum.ODORFILTER +oilfilter = IfcFilterTypeEnum.OILFILTER +strainer = IfcFilterTypeEnum.STRAINER +waterfilter = IfcFilterTypeEnum.WATERFILTER +userdefined = IfcFilterTypeEnum.USERDEFINED +notdefined = IfcFilterTypeEnum.NOTDEFINED IfcFireSuppressionTerminalTypeEnum = enum_namespace() -breechinginlet = getattr(IfcFireSuppressionTerminalTypeEnum, 'BREECHINGINLET', INDETERMINATE) -firehydrant = getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREHYDRANT', INDETERMINATE) -hosereel = getattr(IfcFireSuppressionTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -sprinkler = getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLER', INDETERMINATE) -sprinklerdeflector = getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLERDEFLECTOR', INDETERMINATE) -userdefined = getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFireSuppressionTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +breechinginlet = IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET +firehydrant = IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT +hosereel = IfcFireSuppressionTerminalTypeEnum.HOSEREEL +sprinkler = IfcFireSuppressionTerminalTypeEnum.SPRINKLER +sprinklerdeflector = IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR +userdefined = IfcFireSuppressionTerminalTypeEnum.USERDEFINED +notdefined = IfcFireSuppressionTerminalTypeEnum.NOTDEFINED IfcFlowDirectionEnum = enum_namespace() -source = getattr(IfcFlowDirectionEnum, 'SOURCE', INDETERMINATE) -sink = getattr(IfcFlowDirectionEnum, 'SINK', INDETERMINATE) -sourceandsink = getattr(IfcFlowDirectionEnum, 'SOURCEANDSINK', INDETERMINATE) -notdefined = getattr(IfcFlowDirectionEnum, 'NOTDEFINED', INDETERMINATE) +source = IfcFlowDirectionEnum.SOURCE +sink = IfcFlowDirectionEnum.SINK +sourceandsink = IfcFlowDirectionEnum.SOURCEANDSINK +notdefined = IfcFlowDirectionEnum.NOTDEFINED IfcFlowInstrumentTypeEnum = enum_namespace() -pressuregauge = getattr(IfcFlowInstrumentTypeEnum, 'PRESSUREGAUGE', INDETERMINATE) -thermometer = getattr(IfcFlowInstrumentTypeEnum, 'THERMOMETER', INDETERMINATE) -ammeter = getattr(IfcFlowInstrumentTypeEnum, 'AMMETER', INDETERMINATE) -frequencymeter = getattr(IfcFlowInstrumentTypeEnum, 'FREQUENCYMETER', INDETERMINATE) -powerfactormeter = getattr(IfcFlowInstrumentTypeEnum, 'POWERFACTORMETER', INDETERMINATE) -phaseanglemeter = getattr(IfcFlowInstrumentTypeEnum, 'PHASEANGLEMETER', INDETERMINATE) -voltmeter_peak = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_PEAK', INDETERMINATE) -voltmeter_rms = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_RMS', INDETERMINATE) -combined = getattr(IfcFlowInstrumentTypeEnum, 'COMBINED', INDETERMINATE) -voltmeter = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER', INDETERMINATE) -userdefined = getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFlowInstrumentTypeEnum, 'NOTDEFINED', INDETERMINATE) +pressuregauge = IfcFlowInstrumentTypeEnum.PRESSUREGAUGE +thermometer = IfcFlowInstrumentTypeEnum.THERMOMETER +ammeter = IfcFlowInstrumentTypeEnum.AMMETER +frequencymeter = IfcFlowInstrumentTypeEnum.FREQUENCYMETER +powerfactormeter = IfcFlowInstrumentTypeEnum.POWERFACTORMETER +phaseanglemeter = IfcFlowInstrumentTypeEnum.PHASEANGLEMETER +voltmeter_peak = IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK +voltmeter_rms = IfcFlowInstrumentTypeEnum.VOLTMETER_RMS +combined = IfcFlowInstrumentTypeEnum.COMBINED +voltmeter = IfcFlowInstrumentTypeEnum.VOLTMETER +userdefined = IfcFlowInstrumentTypeEnum.USERDEFINED +notdefined = IfcFlowInstrumentTypeEnum.NOTDEFINED IfcFlowMeterTypeEnum = enum_namespace() -energymeter = getattr(IfcFlowMeterTypeEnum, 'ENERGYMETER', INDETERMINATE) -gasmeter = getattr(IfcFlowMeterTypeEnum, 'GASMETER', INDETERMINATE) -oilmeter = getattr(IfcFlowMeterTypeEnum, 'OILMETER', INDETERMINATE) -watermeter = getattr(IfcFlowMeterTypeEnum, 'WATERMETER', INDETERMINATE) -userdefined = getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFlowMeterTypeEnum, 'NOTDEFINED', INDETERMINATE) +energymeter = IfcFlowMeterTypeEnum.ENERGYMETER +gasmeter = IfcFlowMeterTypeEnum.GASMETER +oilmeter = IfcFlowMeterTypeEnum.OILMETER +watermeter = IfcFlowMeterTypeEnum.WATERMETER +userdefined = IfcFlowMeterTypeEnum.USERDEFINED +notdefined = IfcFlowMeterTypeEnum.NOTDEFINED IfcFootingTypeEnum = enum_namespace() -caisson_foundation = getattr(IfcFootingTypeEnum, 'CAISSON_FOUNDATION', INDETERMINATE) -footing_beam = getattr(IfcFootingTypeEnum, 'FOOTING_BEAM', INDETERMINATE) -pad_footing = getattr(IfcFootingTypeEnum, 'PAD_FOOTING', INDETERMINATE) -pile_cap = getattr(IfcFootingTypeEnum, 'PILE_CAP', INDETERMINATE) -strip_footing = getattr(IfcFootingTypeEnum, 'STRIP_FOOTING', INDETERMINATE) -userdefined = getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFootingTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson_foundation = IfcFootingTypeEnum.CAISSON_FOUNDATION +footing_beam = IfcFootingTypeEnum.FOOTING_BEAM +pad_footing = IfcFootingTypeEnum.PAD_FOOTING +pile_cap = IfcFootingTypeEnum.PILE_CAP +strip_footing = IfcFootingTypeEnum.STRIP_FOOTING +userdefined = IfcFootingTypeEnum.USERDEFINED +notdefined = IfcFootingTypeEnum.NOTDEFINED IfcFurnitureTypeEnum = enum_namespace() -chair = getattr(IfcFurnitureTypeEnum, 'CHAIR', INDETERMINATE) -table = getattr(IfcFurnitureTypeEnum, 'TABLE', INDETERMINATE) -desk = getattr(IfcFurnitureTypeEnum, 'DESK', INDETERMINATE) -bed = getattr(IfcFurnitureTypeEnum, 'BED', INDETERMINATE) -filecabinet = getattr(IfcFurnitureTypeEnum, 'FILECABINET', INDETERMINATE) -shelf = getattr(IfcFurnitureTypeEnum, 'SHELF', INDETERMINATE) -sofa = getattr(IfcFurnitureTypeEnum, 'SOFA', INDETERMINATE) -technicalcabinet = getattr(IfcFurnitureTypeEnum, 'TECHNICALCABINET', INDETERMINATE) -userdefined = getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFurnitureTypeEnum, 'NOTDEFINED', INDETERMINATE) +chair = IfcFurnitureTypeEnum.CHAIR +table = IfcFurnitureTypeEnum.TABLE +desk = IfcFurnitureTypeEnum.DESK +bed = IfcFurnitureTypeEnum.BED +filecabinet = IfcFurnitureTypeEnum.FILECABINET +shelf = IfcFurnitureTypeEnum.SHELF +sofa = IfcFurnitureTypeEnum.SOFA +technicalcabinet = IfcFurnitureTypeEnum.TECHNICALCABINET +userdefined = IfcFurnitureTypeEnum.USERDEFINED +notdefined = IfcFurnitureTypeEnum.NOTDEFINED IfcGeographicElementTypeEnum = enum_namespace() -terrain = getattr(IfcGeographicElementTypeEnum, 'TERRAIN', INDETERMINATE) -soil_boring_point = getattr(IfcGeographicElementTypeEnum, 'SOIL_BORING_POINT', INDETERMINATE) -userdefined = getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGeographicElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +terrain = IfcGeographicElementTypeEnum.TERRAIN +soil_boring_point = IfcGeographicElementTypeEnum.SOIL_BORING_POINT +userdefined = IfcGeographicElementTypeEnum.USERDEFINED +notdefined = IfcGeographicElementTypeEnum.NOTDEFINED IfcGeometricProjectionEnum = enum_namespace() -graph_view = getattr(IfcGeometricProjectionEnum, 'GRAPH_VIEW', INDETERMINATE) -sketch_view = getattr(IfcGeometricProjectionEnum, 'SKETCH_VIEW', INDETERMINATE) -model_view = getattr(IfcGeometricProjectionEnum, 'MODEL_VIEW', INDETERMINATE) -plan_view = getattr(IfcGeometricProjectionEnum, 'PLAN_VIEW', INDETERMINATE) -reflected_plan_view = getattr(IfcGeometricProjectionEnum, 'REFLECTED_PLAN_VIEW', INDETERMINATE) -section_view = getattr(IfcGeometricProjectionEnum, 'SECTION_VIEW', INDETERMINATE) -elevation_view = getattr(IfcGeometricProjectionEnum, 'ELEVATION_VIEW', INDETERMINATE) -userdefined = getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGeometricProjectionEnum, 'NOTDEFINED', INDETERMINATE) +graph_view = IfcGeometricProjectionEnum.GRAPH_VIEW +sketch_view = IfcGeometricProjectionEnum.SKETCH_VIEW +model_view = IfcGeometricProjectionEnum.MODEL_VIEW +plan_view = IfcGeometricProjectionEnum.PLAN_VIEW +reflected_plan_view = IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW +section_view = IfcGeometricProjectionEnum.SECTION_VIEW +elevation_view = IfcGeometricProjectionEnum.ELEVATION_VIEW +userdefined = IfcGeometricProjectionEnum.USERDEFINED +notdefined = IfcGeometricProjectionEnum.NOTDEFINED IfcGlobalOrLocalEnum = enum_namespace() -global_coords = getattr(IfcGlobalOrLocalEnum, 'GLOBAL_COORDS', INDETERMINATE) -local_coords = getattr(IfcGlobalOrLocalEnum, 'LOCAL_COORDS', INDETERMINATE) +global_coords = IfcGlobalOrLocalEnum.GLOBAL_COORDS +local_coords = IfcGlobalOrLocalEnum.LOCAL_COORDS IfcGridTypeEnum = enum_namespace() -rectangular = getattr(IfcGridTypeEnum, 'RECTANGULAR', INDETERMINATE) -radial = getattr(IfcGridTypeEnum, 'RADIAL', INDETERMINATE) -triangular = getattr(IfcGridTypeEnum, 'TRIANGULAR', INDETERMINATE) -irregular = getattr(IfcGridTypeEnum, 'IRREGULAR', INDETERMINATE) -userdefined = getattr(IfcGridTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGridTypeEnum, 'NOTDEFINED', INDETERMINATE) +rectangular = IfcGridTypeEnum.RECTANGULAR +radial = IfcGridTypeEnum.RADIAL +triangular = IfcGridTypeEnum.TRIANGULAR +irregular = IfcGridTypeEnum.IRREGULAR +userdefined = IfcGridTypeEnum.USERDEFINED +notdefined = IfcGridTypeEnum.NOTDEFINED IfcHeatExchangerTypeEnum = enum_namespace() -plate = getattr(IfcHeatExchangerTypeEnum, 'PLATE', INDETERMINATE) -shellandtube = getattr(IfcHeatExchangerTypeEnum, 'SHELLANDTUBE', INDETERMINATE) -turnoutheating = getattr(IfcHeatExchangerTypeEnum, 'TURNOUTHEATING', INDETERMINATE) -userdefined = getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcHeatExchangerTypeEnum, 'NOTDEFINED', INDETERMINATE) +plate = IfcHeatExchangerTypeEnum.PLATE +shellandtube = IfcHeatExchangerTypeEnum.SHELLANDTUBE +turnoutheating = IfcHeatExchangerTypeEnum.TURNOUTHEATING +userdefined = IfcHeatExchangerTypeEnum.USERDEFINED +notdefined = IfcHeatExchangerTypeEnum.NOTDEFINED IfcHumidifierTypeEnum = enum_namespace() -steaminjection = getattr(IfcHumidifierTypeEnum, 'STEAMINJECTION', INDETERMINATE) -adiabaticairwasher = getattr(IfcHumidifierTypeEnum, 'ADIABATICAIRWASHER', INDETERMINATE) -adiabaticpan = getattr(IfcHumidifierTypeEnum, 'ADIABATICPAN', INDETERMINATE) -adiabaticwettedelement = getattr(IfcHumidifierTypeEnum, 'ADIABATICWETTEDELEMENT', INDETERMINATE) -adiabaticatomizing = getattr(IfcHumidifierTypeEnum, 'ADIABATICATOMIZING', INDETERMINATE) -adiabaticultrasonic = getattr(IfcHumidifierTypeEnum, 'ADIABATICULTRASONIC', INDETERMINATE) -adiabaticrigidmedia = getattr(IfcHumidifierTypeEnum, 'ADIABATICRIGIDMEDIA', INDETERMINATE) -adiabaticcompressedairnozzle = getattr(IfcHumidifierTypeEnum, 'ADIABATICCOMPRESSEDAIRNOZZLE', INDETERMINATE) -assistedelectric = getattr(IfcHumidifierTypeEnum, 'ASSISTEDELECTRIC', INDETERMINATE) -assistednaturalgas = getattr(IfcHumidifierTypeEnum, 'ASSISTEDNATURALGAS', INDETERMINATE) -assistedpropane = getattr(IfcHumidifierTypeEnum, 'ASSISTEDPROPANE', INDETERMINATE) -assistedbutane = getattr(IfcHumidifierTypeEnum, 'ASSISTEDBUTANE', INDETERMINATE) -assistedsteam = getattr(IfcHumidifierTypeEnum, 'ASSISTEDSTEAM', INDETERMINATE) -userdefined = getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcHumidifierTypeEnum, 'NOTDEFINED', INDETERMINATE) +steaminjection = IfcHumidifierTypeEnum.STEAMINJECTION +adiabaticairwasher = IfcHumidifierTypeEnum.ADIABATICAIRWASHER +adiabaticpan = IfcHumidifierTypeEnum.ADIABATICPAN +adiabaticwettedelement = IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT +adiabaticatomizing = IfcHumidifierTypeEnum.ADIABATICATOMIZING +adiabaticultrasonic = IfcHumidifierTypeEnum.ADIABATICULTRASONIC +adiabaticrigidmedia = IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA +adiabaticcompressedairnozzle = IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE +assistedelectric = IfcHumidifierTypeEnum.ASSISTEDELECTRIC +assistednaturalgas = IfcHumidifierTypeEnum.ASSISTEDNATURALGAS +assistedpropane = IfcHumidifierTypeEnum.ASSISTEDPROPANE +assistedbutane = IfcHumidifierTypeEnum.ASSISTEDBUTANE +assistedsteam = IfcHumidifierTypeEnum.ASSISTEDSTEAM +userdefined = IfcHumidifierTypeEnum.USERDEFINED +notdefined = IfcHumidifierTypeEnum.NOTDEFINED IfcImpactProtectionDeviceTypeEnum = enum_namespace() -crashcushion = getattr(IfcImpactProtectionDeviceTypeEnum, 'CRASHCUSHION', INDETERMINATE) -dampingsystem = getattr(IfcImpactProtectionDeviceTypeEnum, 'DAMPINGSYSTEM', INDETERMINATE) -fender = getattr(IfcImpactProtectionDeviceTypeEnum, 'FENDER', INDETERMINATE) -bumper = getattr(IfcImpactProtectionDeviceTypeEnum, 'BUMPER', INDETERMINATE) -userdefined = getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcImpactProtectionDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +crashcushion = IfcImpactProtectionDeviceTypeEnum.CRASHCUSHION +dampingsystem = IfcImpactProtectionDeviceTypeEnum.DAMPINGSYSTEM +fender = IfcImpactProtectionDeviceTypeEnum.FENDER +bumper = IfcImpactProtectionDeviceTypeEnum.BUMPER +userdefined = IfcImpactProtectionDeviceTypeEnum.USERDEFINED +notdefined = IfcImpactProtectionDeviceTypeEnum.NOTDEFINED IfcInterceptorTypeEnum = enum_namespace() -cyclonic = getattr(IfcInterceptorTypeEnum, 'CYCLONIC', INDETERMINATE) -grease = getattr(IfcInterceptorTypeEnum, 'GREASE', INDETERMINATE) -oil = getattr(IfcInterceptorTypeEnum, 'OIL', INDETERMINATE) -petrol = getattr(IfcInterceptorTypeEnum, 'PETROL', INDETERMINATE) -userdefined = getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcInterceptorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cyclonic = IfcInterceptorTypeEnum.CYCLONIC +grease = IfcInterceptorTypeEnum.GREASE +oil = IfcInterceptorTypeEnum.OIL +petrol = IfcInterceptorTypeEnum.PETROL +userdefined = IfcInterceptorTypeEnum.USERDEFINED +notdefined = IfcInterceptorTypeEnum.NOTDEFINED IfcInternalOrExternalEnum = enum_namespace() -internal = getattr(IfcInternalOrExternalEnum, 'INTERNAL', INDETERMINATE) -external = getattr(IfcInternalOrExternalEnum, 'EXTERNAL', INDETERMINATE) -external_earth = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_water = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_WATER', INDETERMINATE) -external_fire = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_FIRE', INDETERMINATE) -notdefined = getattr(IfcInternalOrExternalEnum, 'NOTDEFINED', INDETERMINATE) +internal = IfcInternalOrExternalEnum.INTERNAL +external = IfcInternalOrExternalEnum.EXTERNAL +external_earth = IfcInternalOrExternalEnum.EXTERNAL_EARTH +external_water = IfcInternalOrExternalEnum.EXTERNAL_WATER +external_fire = IfcInternalOrExternalEnum.EXTERNAL_FIRE +notdefined = IfcInternalOrExternalEnum.NOTDEFINED IfcInventoryTypeEnum = enum_namespace() -assetinventory = getattr(IfcInventoryTypeEnum, 'ASSETINVENTORY', INDETERMINATE) -spaceinventory = getattr(IfcInventoryTypeEnum, 'SPACEINVENTORY', INDETERMINATE) -furnitureinventory = getattr(IfcInventoryTypeEnum, 'FURNITUREINVENTORY', INDETERMINATE) -userdefined = getattr(IfcInventoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcInventoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +assetinventory = IfcInventoryTypeEnum.ASSETINVENTORY +spaceinventory = IfcInventoryTypeEnum.SPACEINVENTORY +furnitureinventory = IfcInventoryTypeEnum.FURNITUREINVENTORY +userdefined = IfcInventoryTypeEnum.USERDEFINED +notdefined = IfcInventoryTypeEnum.NOTDEFINED IfcJunctionBoxTypeEnum = enum_namespace() -data = getattr(IfcJunctionBoxTypeEnum, 'DATA', INDETERMINATE) -power = getattr(IfcJunctionBoxTypeEnum, 'POWER', INDETERMINATE) -userdefined = getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcJunctionBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +data = IfcJunctionBoxTypeEnum.DATA +power = IfcJunctionBoxTypeEnum.POWER +userdefined = IfcJunctionBoxTypeEnum.USERDEFINED +notdefined = IfcJunctionBoxTypeEnum.NOTDEFINED IfcKnotType = enum_namespace() -uniform_knots = getattr(IfcKnotType, 'UNIFORM_KNOTS', INDETERMINATE) -quasi_uniform_knots = getattr(IfcKnotType, 'QUASI_UNIFORM_KNOTS', INDETERMINATE) -piecewise_bezier_knots = getattr(IfcKnotType, 'PIECEWISE_BEZIER_KNOTS', INDETERMINATE) -unspecified = getattr(IfcKnotType, 'UNSPECIFIED', INDETERMINATE) +uniform_knots = IfcKnotType.UNIFORM_KNOTS +quasi_uniform_knots = IfcKnotType.QUASI_UNIFORM_KNOTS +piecewise_bezier_knots = IfcKnotType.PIECEWISE_BEZIER_KNOTS +unspecified = IfcKnotType.UNSPECIFIED IfcLaborResourceTypeEnum = enum_namespace() -administration = getattr(IfcLaborResourceTypeEnum, 'ADMINISTRATION', INDETERMINATE) -carpentry = getattr(IfcLaborResourceTypeEnum, 'CARPENTRY', INDETERMINATE) -cleaning = getattr(IfcLaborResourceTypeEnum, 'CLEANING', INDETERMINATE) -concrete = getattr(IfcLaborResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = getattr(IfcLaborResourceTypeEnum, 'DRYWALL', INDETERMINATE) -electric = getattr(IfcLaborResourceTypeEnum, 'ELECTRIC', INDETERMINATE) -finishing = getattr(IfcLaborResourceTypeEnum, 'FINISHING', INDETERMINATE) -flooring = getattr(IfcLaborResourceTypeEnum, 'FLOORING', INDETERMINATE) -general = getattr(IfcLaborResourceTypeEnum, 'GENERAL', INDETERMINATE) -hvac = getattr(IfcLaborResourceTypeEnum, 'HVAC', INDETERMINATE) -landscaping = getattr(IfcLaborResourceTypeEnum, 'LANDSCAPING', INDETERMINATE) -masonry = getattr(IfcLaborResourceTypeEnum, 'MASONRY', INDETERMINATE) -painting = getattr(IfcLaborResourceTypeEnum, 'PAINTING', INDETERMINATE) -paving = getattr(IfcLaborResourceTypeEnum, 'PAVING', INDETERMINATE) -plumbing = getattr(IfcLaborResourceTypeEnum, 'PLUMBING', INDETERMINATE) -roofing = getattr(IfcLaborResourceTypeEnum, 'ROOFING', INDETERMINATE) -sitegrading = getattr(IfcLaborResourceTypeEnum, 'SITEGRADING', INDETERMINATE) -steelwork = getattr(IfcLaborResourceTypeEnum, 'STEELWORK', INDETERMINATE) -surveying = getattr(IfcLaborResourceTypeEnum, 'SURVEYING', INDETERMINATE) -userdefined = getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLaborResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +administration = IfcLaborResourceTypeEnum.ADMINISTRATION +carpentry = IfcLaborResourceTypeEnum.CARPENTRY +cleaning = IfcLaborResourceTypeEnum.CLEANING +concrete = IfcLaborResourceTypeEnum.CONCRETE +drywall = IfcLaborResourceTypeEnum.DRYWALL +electric = IfcLaborResourceTypeEnum.ELECTRIC +finishing = IfcLaborResourceTypeEnum.FINISHING +flooring = IfcLaborResourceTypeEnum.FLOORING +general = IfcLaborResourceTypeEnum.GENERAL +hvac = IfcLaborResourceTypeEnum.HVAC +landscaping = IfcLaborResourceTypeEnum.LANDSCAPING +masonry = IfcLaborResourceTypeEnum.MASONRY +painting = IfcLaborResourceTypeEnum.PAINTING +paving = IfcLaborResourceTypeEnum.PAVING +plumbing = IfcLaborResourceTypeEnum.PLUMBING +roofing = IfcLaborResourceTypeEnum.ROOFING +sitegrading = IfcLaborResourceTypeEnum.SITEGRADING +steelwork = IfcLaborResourceTypeEnum.STEELWORK +surveying = IfcLaborResourceTypeEnum.SURVEYING +userdefined = IfcLaborResourceTypeEnum.USERDEFINED +notdefined = IfcLaborResourceTypeEnum.NOTDEFINED IfcLampTypeEnum = enum_namespace() -compactfluorescent = getattr(IfcLampTypeEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = getattr(IfcLampTypeEnum, 'FLUORESCENT', INDETERMINATE) -halogen = getattr(IfcLampTypeEnum, 'HALOGEN', INDETERMINATE) -highpressuremercury = getattr(IfcLampTypeEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = getattr(IfcLampTypeEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -led = getattr(IfcLampTypeEnum, 'LED', INDETERMINATE) -metalhalide = getattr(IfcLampTypeEnum, 'METALHALIDE', INDETERMINATE) -oled = getattr(IfcLampTypeEnum, 'OLED', INDETERMINATE) -tungstenfilament = getattr(IfcLampTypeEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -userdefined = getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLampTypeEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLampTypeEnum.COMPACTFLUORESCENT +fluorescent = IfcLampTypeEnum.FLUORESCENT +halogen = IfcLampTypeEnum.HALOGEN +highpressuremercury = IfcLampTypeEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLampTypeEnum.HIGHPRESSURESODIUM +led = IfcLampTypeEnum.LED +metalhalide = IfcLampTypeEnum.METALHALIDE +oled = IfcLampTypeEnum.OLED +tungstenfilament = IfcLampTypeEnum.TUNGSTENFILAMENT +userdefined = IfcLampTypeEnum.USERDEFINED +notdefined = IfcLampTypeEnum.NOTDEFINED IfcLayerSetDirectionEnum = enum_namespace() -axis1 = getattr(IfcLayerSetDirectionEnum, 'AXIS1', INDETERMINATE) -axis2 = getattr(IfcLayerSetDirectionEnum, 'AXIS2', INDETERMINATE) -axis3 = getattr(IfcLayerSetDirectionEnum, 'AXIS3', INDETERMINATE) +axis1 = IfcLayerSetDirectionEnum.AXIS1 +axis2 = IfcLayerSetDirectionEnum.AXIS2 +axis3 = IfcLayerSetDirectionEnum.AXIS3 IfcLightDistributionCurveEnum = enum_namespace() -type_a = getattr(IfcLightDistributionCurveEnum, 'TYPE_A', INDETERMINATE) -type_b = getattr(IfcLightDistributionCurveEnum, 'TYPE_B', INDETERMINATE) -type_c = getattr(IfcLightDistributionCurveEnum, 'TYPE_C', INDETERMINATE) -notdefined = getattr(IfcLightDistributionCurveEnum, 'NOTDEFINED', INDETERMINATE) +type_a = IfcLightDistributionCurveEnum.TYPE_A +type_b = IfcLightDistributionCurveEnum.TYPE_B +type_c = IfcLightDistributionCurveEnum.TYPE_C +notdefined = IfcLightDistributionCurveEnum.NOTDEFINED IfcLightEmissionSourceEnum = enum_namespace() -compactfluorescent = getattr(IfcLightEmissionSourceEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = getattr(IfcLightEmissionSourceEnum, 'FLUORESCENT', INDETERMINATE) -highpressuremercury = getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -lightemittingdiode = getattr(IfcLightEmissionSourceEnum, 'LIGHTEMITTINGDIODE', INDETERMINATE) -lowpressuresodium = getattr(IfcLightEmissionSourceEnum, 'LOWPRESSURESODIUM', INDETERMINATE) -lowvoltagehalogen = getattr(IfcLightEmissionSourceEnum, 'LOWVOLTAGEHALOGEN', INDETERMINATE) -mainvoltagehalogen = getattr(IfcLightEmissionSourceEnum, 'MAINVOLTAGEHALOGEN', INDETERMINATE) -metalhalide = getattr(IfcLightEmissionSourceEnum, 'METALHALIDE', INDETERMINATE) -tungstenfilament = getattr(IfcLightEmissionSourceEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -notdefined = getattr(IfcLightEmissionSourceEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLightEmissionSourceEnum.COMPACTFLUORESCENT +fluorescent = IfcLightEmissionSourceEnum.FLUORESCENT +highpressuremercury = IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM +lightemittingdiode = IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE +lowpressuresodium = IfcLightEmissionSourceEnum.LOWPRESSURESODIUM +lowvoltagehalogen = IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN +mainvoltagehalogen = IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN +metalhalide = IfcLightEmissionSourceEnum.METALHALIDE +tungstenfilament = IfcLightEmissionSourceEnum.TUNGSTENFILAMENT +notdefined = IfcLightEmissionSourceEnum.NOTDEFINED IfcLightFixtureTypeEnum = enum_namespace() -pointsource = getattr(IfcLightFixtureTypeEnum, 'POINTSOURCE', INDETERMINATE) -directionsource = getattr(IfcLightFixtureTypeEnum, 'DIRECTIONSOURCE', INDETERMINATE) -securitylighting = getattr(IfcLightFixtureTypeEnum, 'SECURITYLIGHTING', INDETERMINATE) -userdefined = getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLightFixtureTypeEnum, 'NOTDEFINED', INDETERMINATE) +pointsource = IfcLightFixtureTypeEnum.POINTSOURCE +directionsource = IfcLightFixtureTypeEnum.DIRECTIONSOURCE +securitylighting = IfcLightFixtureTypeEnum.SECURITYLIGHTING +userdefined = IfcLightFixtureTypeEnum.USERDEFINED +notdefined = IfcLightFixtureTypeEnum.NOTDEFINED IfcLiquidTerminalTypeEnum = enum_namespace() -loadingarm = getattr(IfcLiquidTerminalTypeEnum, 'LOADINGARM', INDETERMINATE) -hosereel = getattr(IfcLiquidTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -userdefined = getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLiquidTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +loadingarm = IfcLiquidTerminalTypeEnum.LOADINGARM +hosereel = IfcLiquidTerminalTypeEnum.HOSEREEL +userdefined = IfcLiquidTerminalTypeEnum.USERDEFINED +notdefined = IfcLiquidTerminalTypeEnum.NOTDEFINED IfcLoadGroupTypeEnum = enum_namespace() -load_group = getattr(IfcLoadGroupTypeEnum, 'LOAD_GROUP', INDETERMINATE) -load_case = getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE) -load_combination = getattr(IfcLoadGroupTypeEnum, 'LOAD_COMBINATION', INDETERMINATE) -userdefined = getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLoadGroupTypeEnum, 'NOTDEFINED', INDETERMINATE) +load_group = IfcLoadGroupTypeEnum.LOAD_GROUP +load_case = IfcLoadGroupTypeEnum.LOAD_CASE +load_combination = IfcLoadGroupTypeEnum.LOAD_COMBINATION +userdefined = IfcLoadGroupTypeEnum.USERDEFINED +notdefined = IfcLoadGroupTypeEnum.NOTDEFINED IfcLogicalOperatorEnum = enum_namespace() -logicaland = getattr(IfcLogicalOperatorEnum, 'LOGICALAND', INDETERMINATE) -logicalor = getattr(IfcLogicalOperatorEnum, 'LOGICALOR', INDETERMINATE) -logicalxor = getattr(IfcLogicalOperatorEnum, 'LOGICALXOR', INDETERMINATE) -logicalnotand = getattr(IfcLogicalOperatorEnum, 'LOGICALNOTAND', INDETERMINATE) -logicalnotor = getattr(IfcLogicalOperatorEnum, 'LOGICALNOTOR', INDETERMINATE) +logicaland = IfcLogicalOperatorEnum.LOGICALAND +logicalor = IfcLogicalOperatorEnum.LOGICALOR +logicalxor = IfcLogicalOperatorEnum.LOGICALXOR +logicalnotand = IfcLogicalOperatorEnum.LOGICALNOTAND +logicalnotor = IfcLogicalOperatorEnum.LOGICALNOTOR IfcMarineFacilityTypeEnum = enum_namespace() -canal = getattr(IfcMarineFacilityTypeEnum, 'CANAL', INDETERMINATE) -waterwayshiplift = getattr(IfcMarineFacilityTypeEnum, 'WATERWAYSHIPLIFT', INDETERMINATE) -embankment = getattr(IfcMarineFacilityTypeEnum, 'EMBANKMENT', INDETERMINATE) -launchrecovery = getattr(IfcMarineFacilityTypeEnum, 'LAUNCHRECOVERY', INDETERMINATE) -marinedefence = getattr(IfcMarineFacilityTypeEnum, 'MARINEDEFENCE', INDETERMINATE) -hydrolift = getattr(IfcMarineFacilityTypeEnum, 'HYDROLIFT', INDETERMINATE) -shipyard = getattr(IfcMarineFacilityTypeEnum, 'SHIPYARD', INDETERMINATE) -shiplift = getattr(IfcMarineFacilityTypeEnum, 'SHIPLIFT', INDETERMINATE) -port = getattr(IfcMarineFacilityTypeEnum, 'PORT', INDETERMINATE) -quay = getattr(IfcMarineFacilityTypeEnum, 'QUAY', INDETERMINATE) -floatingdock = getattr(IfcMarineFacilityTypeEnum, 'FLOATINGDOCK', INDETERMINATE) -navigationalchannel = getattr(IfcMarineFacilityTypeEnum, 'NAVIGATIONALCHANNEL', INDETERMINATE) -breakwater = getattr(IfcMarineFacilityTypeEnum, 'BREAKWATER', INDETERMINATE) -drydock = getattr(IfcMarineFacilityTypeEnum, 'DRYDOCK', INDETERMINATE) -jetty = getattr(IfcMarineFacilityTypeEnum, 'JETTY', INDETERMINATE) -shiplock = getattr(IfcMarineFacilityTypeEnum, 'SHIPLOCK', INDETERMINATE) -barrierbeach = getattr(IfcMarineFacilityTypeEnum, 'BARRIERBEACH', INDETERMINATE) -slipway = getattr(IfcMarineFacilityTypeEnum, 'SLIPWAY', INDETERMINATE) -waterway = getattr(IfcMarineFacilityTypeEnum, 'WATERWAY', INDETERMINATE) -userdefined = getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMarineFacilityTypeEnum, 'NOTDEFINED', INDETERMINATE) +canal = IfcMarineFacilityTypeEnum.CANAL +waterwayshiplift = IfcMarineFacilityTypeEnum.WATERWAYSHIPLIFT +embankment = IfcMarineFacilityTypeEnum.EMBANKMENT +launchrecovery = IfcMarineFacilityTypeEnum.LAUNCHRECOVERY +marinedefence = IfcMarineFacilityTypeEnum.MARINEDEFENCE +hydrolift = IfcMarineFacilityTypeEnum.HYDROLIFT +shipyard = IfcMarineFacilityTypeEnum.SHIPYARD +shiplift = IfcMarineFacilityTypeEnum.SHIPLIFT +port = IfcMarineFacilityTypeEnum.PORT +quay = IfcMarineFacilityTypeEnum.QUAY +floatingdock = IfcMarineFacilityTypeEnum.FLOATINGDOCK +navigationalchannel = IfcMarineFacilityTypeEnum.NAVIGATIONALCHANNEL +breakwater = IfcMarineFacilityTypeEnum.BREAKWATER +drydock = IfcMarineFacilityTypeEnum.DRYDOCK +jetty = IfcMarineFacilityTypeEnum.JETTY +shiplock = IfcMarineFacilityTypeEnum.SHIPLOCK +barrierbeach = IfcMarineFacilityTypeEnum.BARRIERBEACH +slipway = IfcMarineFacilityTypeEnum.SLIPWAY +waterway = IfcMarineFacilityTypeEnum.WATERWAY +userdefined = IfcMarineFacilityTypeEnum.USERDEFINED +notdefined = IfcMarineFacilityTypeEnum.NOTDEFINED IfcMarinePartTypeEnum = enum_namespace() -crest = getattr(IfcMarinePartTypeEnum, 'CREST', INDETERMINATE) -manufacturing = getattr(IfcMarinePartTypeEnum, 'MANUFACTURING', INDETERMINATE) -lowwaterline = getattr(IfcMarinePartTypeEnum, 'LOWWATERLINE', INDETERMINATE) -core = getattr(IfcMarinePartTypeEnum, 'CORE', INDETERMINATE) -waterfield = getattr(IfcMarinePartTypeEnum, 'WATERFIELD', INDETERMINATE) -cill_level = getattr(IfcMarinePartTypeEnum, 'CILL_LEVEL', INDETERMINATE) -berthingstructure = getattr(IfcMarinePartTypeEnum, 'BERTHINGSTRUCTURE', INDETERMINATE) -copelevel = getattr(IfcMarinePartTypeEnum, 'COPELEVEL', INDETERMINATE) -chamber = getattr(IfcMarinePartTypeEnum, 'CHAMBER', INDETERMINATE) -storage = getattr(IfcMarinePartTypeEnum, 'STORAGE', INDETERMINATE) -approachchannel = getattr(IfcMarinePartTypeEnum, 'APPROACHCHANNEL', INDETERMINATE) -vehicleservicing = getattr(IfcMarinePartTypeEnum, 'VEHICLESERVICING', INDETERMINATE) -shiptransfer = getattr(IfcMarinePartTypeEnum, 'SHIPTRANSFER', INDETERMINATE) -gatehead = getattr(IfcMarinePartTypeEnum, 'GATEHEAD', INDETERMINATE) -gudingstructure = getattr(IfcMarinePartTypeEnum, 'GUDINGSTRUCTURE', INDETERMINATE) -belowwaterline = getattr(IfcMarinePartTypeEnum, 'BELOWWATERLINE', INDETERMINATE) -weatherside = getattr(IfcMarinePartTypeEnum, 'WEATHERSIDE', INDETERMINATE) -landfield = getattr(IfcMarinePartTypeEnum, 'LANDFIELD', INDETERMINATE) -protection = getattr(IfcMarinePartTypeEnum, 'PROTECTION', INDETERMINATE) -leewardside = getattr(IfcMarinePartTypeEnum, 'LEEWARDSIDE', INDETERMINATE) -abovewaterline = getattr(IfcMarinePartTypeEnum, 'ABOVEWATERLINE', INDETERMINATE) -anchorage = getattr(IfcMarinePartTypeEnum, 'ANCHORAGE', INDETERMINATE) -navigationalarea = getattr(IfcMarinePartTypeEnum, 'NAVIGATIONALAREA', INDETERMINATE) -highwaterline = getattr(IfcMarinePartTypeEnum, 'HIGHWATERLINE', INDETERMINATE) -userdefined = getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMarinePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +crest = IfcMarinePartTypeEnum.CREST +manufacturing = IfcMarinePartTypeEnum.MANUFACTURING +lowwaterline = IfcMarinePartTypeEnum.LOWWATERLINE +core = IfcMarinePartTypeEnum.CORE +waterfield = IfcMarinePartTypeEnum.WATERFIELD +cill_level = IfcMarinePartTypeEnum.CILL_LEVEL +berthingstructure = IfcMarinePartTypeEnum.BERTHINGSTRUCTURE +copelevel = IfcMarinePartTypeEnum.COPELEVEL +chamber = IfcMarinePartTypeEnum.CHAMBER +storage = IfcMarinePartTypeEnum.STORAGE +approachchannel = IfcMarinePartTypeEnum.APPROACHCHANNEL +vehicleservicing = IfcMarinePartTypeEnum.VEHICLESERVICING +shiptransfer = IfcMarinePartTypeEnum.SHIPTRANSFER +gatehead = IfcMarinePartTypeEnum.GATEHEAD +gudingstructure = IfcMarinePartTypeEnum.GUDINGSTRUCTURE +belowwaterline = IfcMarinePartTypeEnum.BELOWWATERLINE +weatherside = IfcMarinePartTypeEnum.WEATHERSIDE +landfield = IfcMarinePartTypeEnum.LANDFIELD +protection = IfcMarinePartTypeEnum.PROTECTION +leewardside = IfcMarinePartTypeEnum.LEEWARDSIDE +abovewaterline = IfcMarinePartTypeEnum.ABOVEWATERLINE +anchorage = IfcMarinePartTypeEnum.ANCHORAGE +navigationalarea = IfcMarinePartTypeEnum.NAVIGATIONALAREA +highwaterline = IfcMarinePartTypeEnum.HIGHWATERLINE +userdefined = IfcMarinePartTypeEnum.USERDEFINED +notdefined = IfcMarinePartTypeEnum.NOTDEFINED IfcMechanicalFastenerTypeEnum = enum_namespace() -anchorbolt = getattr(IfcMechanicalFastenerTypeEnum, 'ANCHORBOLT', INDETERMINATE) -bolt = getattr(IfcMechanicalFastenerTypeEnum, 'BOLT', INDETERMINATE) -dowel = getattr(IfcMechanicalFastenerTypeEnum, 'DOWEL', INDETERMINATE) -nail = getattr(IfcMechanicalFastenerTypeEnum, 'NAIL', INDETERMINATE) -nailplate = getattr(IfcMechanicalFastenerTypeEnum, 'NAILPLATE', INDETERMINATE) -rivet = getattr(IfcMechanicalFastenerTypeEnum, 'RIVET', INDETERMINATE) -screw = getattr(IfcMechanicalFastenerTypeEnum, 'SCREW', INDETERMINATE) -shearconnector = getattr(IfcMechanicalFastenerTypeEnum, 'SHEARCONNECTOR', INDETERMINATE) -staple = getattr(IfcMechanicalFastenerTypeEnum, 'STAPLE', INDETERMINATE) -studshearconnector = getattr(IfcMechanicalFastenerTypeEnum, 'STUDSHEARCONNECTOR', INDETERMINATE) -coupler = getattr(IfcMechanicalFastenerTypeEnum, 'COUPLER', INDETERMINATE) -railjoint = getattr(IfcMechanicalFastenerTypeEnum, 'RAILJOINT', INDETERMINATE) -railfastening = getattr(IfcMechanicalFastenerTypeEnum, 'RAILFASTENING', INDETERMINATE) -chain = getattr(IfcMechanicalFastenerTypeEnum, 'CHAIN', INDETERMINATE) -rope = getattr(IfcMechanicalFastenerTypeEnum, 'ROPE', INDETERMINATE) -userdefined = getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMechanicalFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorbolt = IfcMechanicalFastenerTypeEnum.ANCHORBOLT +bolt = IfcMechanicalFastenerTypeEnum.BOLT +dowel = IfcMechanicalFastenerTypeEnum.DOWEL +nail = IfcMechanicalFastenerTypeEnum.NAIL +nailplate = IfcMechanicalFastenerTypeEnum.NAILPLATE +rivet = IfcMechanicalFastenerTypeEnum.RIVET +screw = IfcMechanicalFastenerTypeEnum.SCREW +shearconnector = IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR +staple = IfcMechanicalFastenerTypeEnum.STAPLE +studshearconnector = IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR +coupler = IfcMechanicalFastenerTypeEnum.COUPLER +railjoint = IfcMechanicalFastenerTypeEnum.RAILJOINT +railfastening = IfcMechanicalFastenerTypeEnum.RAILFASTENING +chain = IfcMechanicalFastenerTypeEnum.CHAIN +rope = IfcMechanicalFastenerTypeEnum.ROPE +userdefined = IfcMechanicalFastenerTypeEnum.USERDEFINED +notdefined = IfcMechanicalFastenerTypeEnum.NOTDEFINED IfcMedicalDeviceTypeEnum = enum_namespace() -airstation = getattr(IfcMedicalDeviceTypeEnum, 'AIRSTATION', INDETERMINATE) -feedairunit = getattr(IfcMedicalDeviceTypeEnum, 'FEEDAIRUNIT', INDETERMINATE) -oxygengenerator = getattr(IfcMedicalDeviceTypeEnum, 'OXYGENGENERATOR', INDETERMINATE) -oxygenplant = getattr(IfcMedicalDeviceTypeEnum, 'OXYGENPLANT', INDETERMINATE) -vacuumstation = getattr(IfcMedicalDeviceTypeEnum, 'VACUUMSTATION', INDETERMINATE) -userdefined = getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMedicalDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +airstation = IfcMedicalDeviceTypeEnum.AIRSTATION +feedairunit = IfcMedicalDeviceTypeEnum.FEEDAIRUNIT +oxygengenerator = IfcMedicalDeviceTypeEnum.OXYGENGENERATOR +oxygenplant = IfcMedicalDeviceTypeEnum.OXYGENPLANT +vacuumstation = IfcMedicalDeviceTypeEnum.VACUUMSTATION +userdefined = IfcMedicalDeviceTypeEnum.USERDEFINED +notdefined = IfcMedicalDeviceTypeEnum.NOTDEFINED IfcMemberTypeEnum = enum_namespace() -brace = getattr(IfcMemberTypeEnum, 'BRACE', INDETERMINATE) -chord = getattr(IfcMemberTypeEnum, 'CHORD', INDETERMINATE) -collar = getattr(IfcMemberTypeEnum, 'COLLAR', INDETERMINATE) -member = getattr(IfcMemberTypeEnum, 'MEMBER', INDETERMINATE) -mullion = getattr(IfcMemberTypeEnum, 'MULLION', INDETERMINATE) -plate = getattr(IfcMemberTypeEnum, 'PLATE', INDETERMINATE) -post = getattr(IfcMemberTypeEnum, 'POST', INDETERMINATE) -purlin = getattr(IfcMemberTypeEnum, 'PURLIN', INDETERMINATE) -rafter = getattr(IfcMemberTypeEnum, 'RAFTER', INDETERMINATE) -stringer = getattr(IfcMemberTypeEnum, 'STRINGER', INDETERMINATE) -strut = getattr(IfcMemberTypeEnum, 'STRUT', INDETERMINATE) -stud = getattr(IfcMemberTypeEnum, 'STUD', INDETERMINATE) -stiffening_rib = getattr(IfcMemberTypeEnum, 'STIFFENING_RIB', INDETERMINATE) -arch_segment = getattr(IfcMemberTypeEnum, 'ARCH_SEGMENT', INDETERMINATE) -suspension_cable = getattr(IfcMemberTypeEnum, 'SUSPENSION_CABLE', INDETERMINATE) -suspender = getattr(IfcMemberTypeEnum, 'SUSPENDER', INDETERMINATE) -stay_cable = getattr(IfcMemberTypeEnum, 'STAY_CABLE', INDETERMINATE) -structuralcable = getattr(IfcMemberTypeEnum, 'STRUCTURALCABLE', INDETERMINATE) -tiebar = getattr(IfcMemberTypeEnum, 'TIEBAR', INDETERMINATE) -userdefined = getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +brace = IfcMemberTypeEnum.BRACE +chord = IfcMemberTypeEnum.CHORD +collar = IfcMemberTypeEnum.COLLAR +member = IfcMemberTypeEnum.MEMBER +mullion = IfcMemberTypeEnum.MULLION +plate = IfcMemberTypeEnum.PLATE +post = IfcMemberTypeEnum.POST +purlin = IfcMemberTypeEnum.PURLIN +rafter = IfcMemberTypeEnum.RAFTER +stringer = IfcMemberTypeEnum.STRINGER +strut = IfcMemberTypeEnum.STRUT +stud = IfcMemberTypeEnum.STUD +stiffening_rib = IfcMemberTypeEnum.STIFFENING_RIB +arch_segment = IfcMemberTypeEnum.ARCH_SEGMENT +suspension_cable = IfcMemberTypeEnum.SUSPENSION_CABLE +suspender = IfcMemberTypeEnum.SUSPENDER +stay_cable = IfcMemberTypeEnum.STAY_CABLE +structuralcable = IfcMemberTypeEnum.STRUCTURALCABLE +tiebar = IfcMemberTypeEnum.TIEBAR +userdefined = IfcMemberTypeEnum.USERDEFINED +notdefined = IfcMemberTypeEnum.NOTDEFINED IfcMobileTelecommunicationsApplianceTypeEnum = enum_namespace() -e_utran_node_b = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'E_UTRAN_NODE_B', INDETERMINATE) -remote_radio_unit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTE_RADIO_UNIT', INDETERMINATE) -accesspoint = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'ACCESSPOINT', INDETERMINATE) -basetransceiverstation = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASETRANSCEIVERSTATION', INDETERMINATE) -remoteunit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTEUNIT', INDETERMINATE) -basebandunit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASEBANDUNIT', INDETERMINATE) -masterunit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MASTERUNIT', INDETERMINATE) -userdefined = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +e_utran_node_b = IfcMobileTelecommunicationsApplianceTypeEnum.E_UTRAN_NODE_B +remote_radio_unit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTE_RADIO_UNIT +accesspoint = IfcMobileTelecommunicationsApplianceTypeEnum.ACCESSPOINT +basetransceiverstation = IfcMobileTelecommunicationsApplianceTypeEnum.BASETRANSCEIVERSTATION +remoteunit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTEUNIT +basebandunit = IfcMobileTelecommunicationsApplianceTypeEnum.BASEBANDUNIT +masterunit = IfcMobileTelecommunicationsApplianceTypeEnum.MASTERUNIT +userdefined = IfcMobileTelecommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcMobileTelecommunicationsApplianceTypeEnum.NOTDEFINED IfcMooringDeviceTypeEnum = enum_namespace() -linetensioner = getattr(IfcMooringDeviceTypeEnum, 'LINETENSIONER', INDETERMINATE) -magneticdevice = getattr(IfcMooringDeviceTypeEnum, 'MAGNETICDEVICE', INDETERMINATE) -mooringhooks = getattr(IfcMooringDeviceTypeEnum, 'MOORINGHOOKS', INDETERMINATE) -vacuumdevice = getattr(IfcMooringDeviceTypeEnum, 'VACUUMDEVICE', INDETERMINATE) -bollard = getattr(IfcMooringDeviceTypeEnum, 'BOLLARD', INDETERMINATE) -userdefined = getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMooringDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +linetensioner = IfcMooringDeviceTypeEnum.LINETENSIONER +magneticdevice = IfcMooringDeviceTypeEnum.MAGNETICDEVICE +mooringhooks = IfcMooringDeviceTypeEnum.MOORINGHOOKS +vacuumdevice = IfcMooringDeviceTypeEnum.VACUUMDEVICE +bollard = IfcMooringDeviceTypeEnum.BOLLARD +userdefined = IfcMooringDeviceTypeEnum.USERDEFINED +notdefined = IfcMooringDeviceTypeEnum.NOTDEFINED IfcMotorConnectionTypeEnum = enum_namespace() -beltdrive = getattr(IfcMotorConnectionTypeEnum, 'BELTDRIVE', INDETERMINATE) -coupling = getattr(IfcMotorConnectionTypeEnum, 'COUPLING', INDETERMINATE) -directdrive = getattr(IfcMotorConnectionTypeEnum, 'DIRECTDRIVE', INDETERMINATE) -userdefined = getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMotorConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltdrive = IfcMotorConnectionTypeEnum.BELTDRIVE +coupling = IfcMotorConnectionTypeEnum.COUPLING +directdrive = IfcMotorConnectionTypeEnum.DIRECTDRIVE +userdefined = IfcMotorConnectionTypeEnum.USERDEFINED +notdefined = IfcMotorConnectionTypeEnum.NOTDEFINED IfcNavigationElementTypeEnum = enum_namespace() -beacon = getattr(IfcNavigationElementTypeEnum, 'BEACON', INDETERMINATE) -buoy = getattr(IfcNavigationElementTypeEnum, 'BUOY', INDETERMINATE) -userdefined = getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcNavigationElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +beacon = IfcNavigationElementTypeEnum.BEACON +buoy = IfcNavigationElementTypeEnum.BUOY +userdefined = IfcNavigationElementTypeEnum.USERDEFINED +notdefined = IfcNavigationElementTypeEnum.NOTDEFINED IfcNullStyle = enum_namespace() -null = getattr(IfcNullStyle, 'NULL', INDETERMINATE) +null = IfcNullStyle.NULL IfcObjectTypeEnum = enum_namespace() -product = getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE) -process = getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE) -control = getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE) -resource = getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE) -actor = getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE) -group = getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE) -project = getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE) -notdefined = getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE) +product = IfcObjectTypeEnum.PRODUCT +process = IfcObjectTypeEnum.PROCESS +control = IfcObjectTypeEnum.CONTROL +resource = IfcObjectTypeEnum.RESOURCE +actor = IfcObjectTypeEnum.ACTOR +group = IfcObjectTypeEnum.GROUP +project = IfcObjectTypeEnum.PROJECT +notdefined = IfcObjectTypeEnum.NOTDEFINED IfcObjectiveEnum = enum_namespace() -codecompliance = getattr(IfcObjectiveEnum, 'CODECOMPLIANCE', INDETERMINATE) -codewaiver = getattr(IfcObjectiveEnum, 'CODEWAIVER', INDETERMINATE) -designintent = getattr(IfcObjectiveEnum, 'DESIGNINTENT', INDETERMINATE) -external = getattr(IfcObjectiveEnum, 'EXTERNAL', INDETERMINATE) -healthandsafety = getattr(IfcObjectiveEnum, 'HEALTHANDSAFETY', INDETERMINATE) -mergeconflict = getattr(IfcObjectiveEnum, 'MERGECONFLICT', INDETERMINATE) -modelview = getattr(IfcObjectiveEnum, 'MODELVIEW', INDETERMINATE) -parameter = getattr(IfcObjectiveEnum, 'PARAMETER', INDETERMINATE) -requirement = getattr(IfcObjectiveEnum, 'REQUIREMENT', INDETERMINATE) -specification = getattr(IfcObjectiveEnum, 'SPECIFICATION', INDETERMINATE) -triggercondition = getattr(IfcObjectiveEnum, 'TRIGGERCONDITION', INDETERMINATE) -userdefined = getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcObjectiveEnum, 'NOTDEFINED', INDETERMINATE) +codecompliance = IfcObjectiveEnum.CODECOMPLIANCE +codewaiver = IfcObjectiveEnum.CODEWAIVER +designintent = IfcObjectiveEnum.DESIGNINTENT +external = IfcObjectiveEnum.EXTERNAL +healthandsafety = IfcObjectiveEnum.HEALTHANDSAFETY +mergeconflict = IfcObjectiveEnum.MERGECONFLICT +modelview = IfcObjectiveEnum.MODELVIEW +parameter = IfcObjectiveEnum.PARAMETER +requirement = IfcObjectiveEnum.REQUIREMENT +specification = IfcObjectiveEnum.SPECIFICATION +triggercondition = IfcObjectiveEnum.TRIGGERCONDITION +userdefined = IfcObjectiveEnum.USERDEFINED +notdefined = IfcObjectiveEnum.NOTDEFINED IfcOccupantTypeEnum = enum_namespace() -assignee = getattr(IfcOccupantTypeEnum, 'ASSIGNEE', INDETERMINATE) -assignor = getattr(IfcOccupantTypeEnum, 'ASSIGNOR', INDETERMINATE) -lessee = getattr(IfcOccupantTypeEnum, 'LESSEE', INDETERMINATE) -lessor = getattr(IfcOccupantTypeEnum, 'LESSOR', INDETERMINATE) -lettingagent = getattr(IfcOccupantTypeEnum, 'LETTINGAGENT', INDETERMINATE) -owner = getattr(IfcOccupantTypeEnum, 'OWNER', INDETERMINATE) -tenant = getattr(IfcOccupantTypeEnum, 'TENANT', INDETERMINATE) -userdefined = getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOccupantTypeEnum, 'NOTDEFINED', INDETERMINATE) +assignee = IfcOccupantTypeEnum.ASSIGNEE +assignor = IfcOccupantTypeEnum.ASSIGNOR +lessee = IfcOccupantTypeEnum.LESSEE +lessor = IfcOccupantTypeEnum.LESSOR +lettingagent = IfcOccupantTypeEnum.LETTINGAGENT +owner = IfcOccupantTypeEnum.OWNER +tenant = IfcOccupantTypeEnum.TENANT +userdefined = IfcOccupantTypeEnum.USERDEFINED +notdefined = IfcOccupantTypeEnum.NOTDEFINED IfcOpeningElementTypeEnum = enum_namespace() -opening = getattr(IfcOpeningElementTypeEnum, 'OPENING', INDETERMINATE) -recess = getattr(IfcOpeningElementTypeEnum, 'RECESS', INDETERMINATE) -userdefined = getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOpeningElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +opening = IfcOpeningElementTypeEnum.OPENING +recess = IfcOpeningElementTypeEnum.RECESS +userdefined = IfcOpeningElementTypeEnum.USERDEFINED +notdefined = IfcOpeningElementTypeEnum.NOTDEFINED IfcOutletTypeEnum = enum_namespace() -audiovisualoutlet = getattr(IfcOutletTypeEnum, 'AUDIOVISUALOUTLET', INDETERMINATE) -communicationsoutlet = getattr(IfcOutletTypeEnum, 'COMMUNICATIONSOUTLET', INDETERMINATE) -poweroutlet = getattr(IfcOutletTypeEnum, 'POWEROUTLET', INDETERMINATE) -dataoutlet = getattr(IfcOutletTypeEnum, 'DATAOUTLET', INDETERMINATE) -telephoneoutlet = getattr(IfcOutletTypeEnum, 'TELEPHONEOUTLET', INDETERMINATE) -userdefined = getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOutletTypeEnum, 'NOTDEFINED', INDETERMINATE) +audiovisualoutlet = IfcOutletTypeEnum.AUDIOVISUALOUTLET +communicationsoutlet = IfcOutletTypeEnum.COMMUNICATIONSOUTLET +poweroutlet = IfcOutletTypeEnum.POWEROUTLET +dataoutlet = IfcOutletTypeEnum.DATAOUTLET +telephoneoutlet = IfcOutletTypeEnum.TELEPHONEOUTLET +userdefined = IfcOutletTypeEnum.USERDEFINED +notdefined = IfcOutletTypeEnum.NOTDEFINED IfcPerformanceHistoryTypeEnum = enum_namespace() -userdefined = getattr(IfcPerformanceHistoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPerformanceHistoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcPerformanceHistoryTypeEnum.USERDEFINED +notdefined = IfcPerformanceHistoryTypeEnum.NOTDEFINED IfcPermeableCoveringOperationEnum = enum_namespace() -grill = getattr(IfcPermeableCoveringOperationEnum, 'GRILL', INDETERMINATE) -louver = getattr(IfcPermeableCoveringOperationEnum, 'LOUVER', INDETERMINATE) -screen = getattr(IfcPermeableCoveringOperationEnum, 'SCREEN', INDETERMINATE) -userdefined = getattr(IfcPermeableCoveringOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPermeableCoveringOperationEnum, 'NOTDEFINED', INDETERMINATE) +grill = IfcPermeableCoveringOperationEnum.GRILL +louver = IfcPermeableCoveringOperationEnum.LOUVER +screen = IfcPermeableCoveringOperationEnum.SCREEN +userdefined = IfcPermeableCoveringOperationEnum.USERDEFINED +notdefined = IfcPermeableCoveringOperationEnum.NOTDEFINED IfcPermitTypeEnum = enum_namespace() -access = getattr(IfcPermitTypeEnum, 'ACCESS', INDETERMINATE) -building = getattr(IfcPermitTypeEnum, 'BUILDING', INDETERMINATE) -work = getattr(IfcPermitTypeEnum, 'WORK', INDETERMINATE) -userdefined = getattr(IfcPermitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPermitTypeEnum, 'NOTDEFINED', INDETERMINATE) +access = IfcPermitTypeEnum.ACCESS +building = IfcPermitTypeEnum.BUILDING +work = IfcPermitTypeEnum.WORK +userdefined = IfcPermitTypeEnum.USERDEFINED +notdefined = IfcPermitTypeEnum.NOTDEFINED IfcPhysicalOrVirtualEnum = enum_namespace() -physical = getattr(IfcPhysicalOrVirtualEnum, 'PHYSICAL', INDETERMINATE) -virtual = getattr(IfcPhysicalOrVirtualEnum, 'VIRTUAL', INDETERMINATE) -notdefined = getattr(IfcPhysicalOrVirtualEnum, 'NOTDEFINED', INDETERMINATE) +physical = IfcPhysicalOrVirtualEnum.PHYSICAL +virtual = IfcPhysicalOrVirtualEnum.VIRTUAL +notdefined = IfcPhysicalOrVirtualEnum.NOTDEFINED IfcPileConstructionEnum = enum_namespace() -cast_in_place = getattr(IfcPileConstructionEnum, 'CAST_IN_PLACE', INDETERMINATE) -composite = getattr(IfcPileConstructionEnum, 'COMPOSITE', INDETERMINATE) -precast_concrete = getattr(IfcPileConstructionEnum, 'PRECAST_CONCRETE', INDETERMINATE) -prefab_steel = getattr(IfcPileConstructionEnum, 'PREFAB_STEEL', INDETERMINATE) -userdefined = getattr(IfcPileConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPileConstructionEnum, 'NOTDEFINED', INDETERMINATE) +cast_in_place = IfcPileConstructionEnum.CAST_IN_PLACE +composite = IfcPileConstructionEnum.COMPOSITE +precast_concrete = IfcPileConstructionEnum.PRECAST_CONCRETE +prefab_steel = IfcPileConstructionEnum.PREFAB_STEEL +userdefined = IfcPileConstructionEnum.USERDEFINED +notdefined = IfcPileConstructionEnum.NOTDEFINED IfcPileTypeEnum = enum_namespace() -bored = getattr(IfcPileTypeEnum, 'BORED', INDETERMINATE) -driven = getattr(IfcPileTypeEnum, 'DRIVEN', INDETERMINATE) -jetgrouting = getattr(IfcPileTypeEnum, 'JETGROUTING', INDETERMINATE) -cohesion = getattr(IfcPileTypeEnum, 'COHESION', INDETERMINATE) -friction = getattr(IfcPileTypeEnum, 'FRICTION', INDETERMINATE) -support = getattr(IfcPileTypeEnum, 'SUPPORT', INDETERMINATE) -userdefined = getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPileTypeEnum, 'NOTDEFINED', INDETERMINATE) +bored = IfcPileTypeEnum.BORED +driven = IfcPileTypeEnum.DRIVEN +jetgrouting = IfcPileTypeEnum.JETGROUTING +cohesion = IfcPileTypeEnum.COHESION +friction = IfcPileTypeEnum.FRICTION +support = IfcPileTypeEnum.SUPPORT +userdefined = IfcPileTypeEnum.USERDEFINED +notdefined = IfcPileTypeEnum.NOTDEFINED IfcPipeFittingTypeEnum = enum_namespace() -bend = getattr(IfcPipeFittingTypeEnum, 'BEND', INDETERMINATE) -connector = getattr(IfcPipeFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcPipeFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcPipeFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcPipeFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = getattr(IfcPipeFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = getattr(IfcPipeFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPipeFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcPipeFittingTypeEnum.BEND +connector = IfcPipeFittingTypeEnum.CONNECTOR +entry = IfcPipeFittingTypeEnum.ENTRY +exit = IfcPipeFittingTypeEnum.EXIT +junction = IfcPipeFittingTypeEnum.JUNCTION +obstruction = IfcPipeFittingTypeEnum.OBSTRUCTION +transition = IfcPipeFittingTypeEnum.TRANSITION +userdefined = IfcPipeFittingTypeEnum.USERDEFINED +notdefined = IfcPipeFittingTypeEnum.NOTDEFINED IfcPipeSegmentTypeEnum = enum_namespace() -culvert = getattr(IfcPipeSegmentTypeEnum, 'CULVERT', INDETERMINATE) -flexiblesegment = getattr(IfcPipeSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -rigidsegment = getattr(IfcPipeSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -gutter = getattr(IfcPipeSegmentTypeEnum, 'GUTTER', INDETERMINATE) -spool = getattr(IfcPipeSegmentTypeEnum, 'SPOOL', INDETERMINATE) -userdefined = getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPipeSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +culvert = IfcPipeSegmentTypeEnum.CULVERT +flexiblesegment = IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT +rigidsegment = IfcPipeSegmentTypeEnum.RIGIDSEGMENT +gutter = IfcPipeSegmentTypeEnum.GUTTER +spool = IfcPipeSegmentTypeEnum.SPOOL +userdefined = IfcPipeSegmentTypeEnum.USERDEFINED +notdefined = IfcPipeSegmentTypeEnum.NOTDEFINED IfcPlateTypeEnum = enum_namespace() -curtain_panel = getattr(IfcPlateTypeEnum, 'CURTAIN_PANEL', INDETERMINATE) -sheet = getattr(IfcPlateTypeEnum, 'SHEET', INDETERMINATE) -flange_plate = getattr(IfcPlateTypeEnum, 'FLANGE_PLATE', INDETERMINATE) -web_plate = getattr(IfcPlateTypeEnum, 'WEB_PLATE', INDETERMINATE) -stiffener_plate = getattr(IfcPlateTypeEnum, 'STIFFENER_PLATE', INDETERMINATE) -gusset_plate = getattr(IfcPlateTypeEnum, 'GUSSET_PLATE', INDETERMINATE) -cover_plate = getattr(IfcPlateTypeEnum, 'COVER_PLATE', INDETERMINATE) -splice_plate = getattr(IfcPlateTypeEnum, 'SPLICE_PLATE', INDETERMINATE) -base_plate = getattr(IfcPlateTypeEnum, 'BASE_PLATE', INDETERMINATE) -userdefined = getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPlateTypeEnum, 'NOTDEFINED', INDETERMINATE) +curtain_panel = IfcPlateTypeEnum.CURTAIN_PANEL +sheet = IfcPlateTypeEnum.SHEET +flange_plate = IfcPlateTypeEnum.FLANGE_PLATE +web_plate = IfcPlateTypeEnum.WEB_PLATE +stiffener_plate = IfcPlateTypeEnum.STIFFENER_PLATE +gusset_plate = IfcPlateTypeEnum.GUSSET_PLATE +cover_plate = IfcPlateTypeEnum.COVER_PLATE +splice_plate = IfcPlateTypeEnum.SPLICE_PLATE +base_plate = IfcPlateTypeEnum.BASE_PLATE +userdefined = IfcPlateTypeEnum.USERDEFINED +notdefined = IfcPlateTypeEnum.NOTDEFINED IfcPreferredSurfaceCurveRepresentation = enum_namespace() -curve3d = getattr(IfcPreferredSurfaceCurveRepresentation, 'CURVE3D', INDETERMINATE) -pcurve_s1 = getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S1', INDETERMINATE) -pcurve_s2 = getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S2', INDETERMINATE) +curve3d = IfcPreferredSurfaceCurveRepresentation.CURVE3D +pcurve_s1 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 +pcurve_s2 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 IfcProcedureTypeEnum = enum_namespace() -advice_caution = getattr(IfcProcedureTypeEnum, 'ADVICE_CAUTION', INDETERMINATE) -advice_note = getattr(IfcProcedureTypeEnum, 'ADVICE_NOTE', INDETERMINATE) -advice_warning = getattr(IfcProcedureTypeEnum, 'ADVICE_WARNING', INDETERMINATE) -calibration = getattr(IfcProcedureTypeEnum, 'CALIBRATION', INDETERMINATE) -diagnostic = getattr(IfcProcedureTypeEnum, 'DIAGNOSTIC', INDETERMINATE) -shutdown = getattr(IfcProcedureTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = getattr(IfcProcedureTypeEnum, 'STARTUP', INDETERMINATE) -userdefined = getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProcedureTypeEnum, 'NOTDEFINED', INDETERMINATE) +advice_caution = IfcProcedureTypeEnum.ADVICE_CAUTION +advice_note = IfcProcedureTypeEnum.ADVICE_NOTE +advice_warning = IfcProcedureTypeEnum.ADVICE_WARNING +calibration = IfcProcedureTypeEnum.CALIBRATION +diagnostic = IfcProcedureTypeEnum.DIAGNOSTIC +shutdown = IfcProcedureTypeEnum.SHUTDOWN +startup = IfcProcedureTypeEnum.STARTUP +userdefined = IfcProcedureTypeEnum.USERDEFINED +notdefined = IfcProcedureTypeEnum.NOTDEFINED IfcProfileTypeEnum = enum_namespace() -curve = getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE) -area = getattr(IfcProfileTypeEnum, 'AREA', INDETERMINATE) +curve = IfcProfileTypeEnum.CURVE +area = IfcProfileTypeEnum.AREA IfcProjectOrderTypeEnum = enum_namespace() -changeorder = getattr(IfcProjectOrderTypeEnum, 'CHANGEORDER', INDETERMINATE) -maintenanceworkorder = getattr(IfcProjectOrderTypeEnum, 'MAINTENANCEWORKORDER', INDETERMINATE) -moveorder = getattr(IfcProjectOrderTypeEnum, 'MOVEORDER', INDETERMINATE) -purchaseorder = getattr(IfcProjectOrderTypeEnum, 'PURCHASEORDER', INDETERMINATE) -workorder = getattr(IfcProjectOrderTypeEnum, 'WORKORDER', INDETERMINATE) -userdefined = getattr(IfcProjectOrderTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProjectOrderTypeEnum, 'NOTDEFINED', INDETERMINATE) +changeorder = IfcProjectOrderTypeEnum.CHANGEORDER +maintenanceworkorder = IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER +moveorder = IfcProjectOrderTypeEnum.MOVEORDER +purchaseorder = IfcProjectOrderTypeEnum.PURCHASEORDER +workorder = IfcProjectOrderTypeEnum.WORKORDER +userdefined = IfcProjectOrderTypeEnum.USERDEFINED +notdefined = IfcProjectOrderTypeEnum.NOTDEFINED IfcProjectedOrTrueLengthEnum = enum_namespace() -projected_length = getattr(IfcProjectedOrTrueLengthEnum, 'PROJECTED_LENGTH', INDETERMINATE) -true_length = getattr(IfcProjectedOrTrueLengthEnum, 'TRUE_LENGTH', INDETERMINATE) +projected_length = IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH +true_length = IfcProjectedOrTrueLengthEnum.TRUE_LENGTH IfcProjectionElementTypeEnum = enum_namespace() -blister = getattr(IfcProjectionElementTypeEnum, 'BLISTER', INDETERMINATE) -deviator = getattr(IfcProjectionElementTypeEnum, 'DEVIATOR', INDETERMINATE) -userdefined = getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProjectionElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +blister = IfcProjectionElementTypeEnum.BLISTER +deviator = IfcProjectionElementTypeEnum.DEVIATOR +userdefined = IfcProjectionElementTypeEnum.USERDEFINED +notdefined = IfcProjectionElementTypeEnum.NOTDEFINED IfcPropertySetTemplateTypeEnum = enum_namespace() -pset_typedrivenonly = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENONLY', INDETERMINATE) -pset_typedrivenoverride = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENOVERRIDE', INDETERMINATE) -pset_occurrencedriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_OCCURRENCEDRIVEN', INDETERMINATE) -pset_performancedriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PERFORMANCEDRIVEN', INDETERMINATE) -qto_typedrivenonly = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENONLY', INDETERMINATE) -qto_typedrivenoverride = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENOVERRIDE', INDETERMINATE) -qto_occurrencedriven = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_OCCURRENCEDRIVEN', INDETERMINATE) -notdefined = getattr(IfcPropertySetTemplateTypeEnum, 'NOTDEFINED', INDETERMINATE) +pset_typedrivenonly = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY +pset_typedrivenoverride = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE +pset_occurrencedriven = IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN +pset_performancedriven = IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN +qto_typedrivenonly = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY +qto_typedrivenoverride = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE +qto_occurrencedriven = IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN +notdefined = IfcPropertySetTemplateTypeEnum.NOTDEFINED IfcProtectiveDeviceTrippingUnitTypeEnum = enum_namespace() -electronic = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTRONIC', INDETERMINATE) -electromagnetic = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTROMAGNETIC', INDETERMINATE) -residualcurrent = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'RESIDUALCURRENT', INDETERMINATE) -thermal = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'THERMAL', INDETERMINATE) -userdefined = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC +electromagnetic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC +residualcurrent = IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT +thermal = IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL +userdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED IfcProtectiveDeviceTypeEnum = enum_namespace() -circuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'CIRCUITBREAKER', INDETERMINATE) -earthleakagecircuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'EARTHLEAKAGECIRCUITBREAKER', INDETERMINATE) -earthingswitch = getattr(IfcProtectiveDeviceTypeEnum, 'EARTHINGSWITCH', INDETERMINATE) -fusedisconnector = getattr(IfcProtectiveDeviceTypeEnum, 'FUSEDISCONNECTOR', INDETERMINATE) -residualcurrentcircuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTCIRCUITBREAKER', INDETERMINATE) -residualcurrentswitch = getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTSWITCH', INDETERMINATE) -varistor = getattr(IfcProtectiveDeviceTypeEnum, 'VARISTOR', INDETERMINATE) -anti_arcing_device = getattr(IfcProtectiveDeviceTypeEnum, 'ANTI_ARCING_DEVICE', INDETERMINATE) -sparkgap = getattr(IfcProtectiveDeviceTypeEnum, 'SPARKGAP', INDETERMINATE) -voltagelimiter = getattr(IfcProtectiveDeviceTypeEnum, 'VOLTAGELIMITER', INDETERMINATE) -userdefined = getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProtectiveDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +circuitbreaker = IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER +earthleakagecircuitbreaker = IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER +earthingswitch = IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH +fusedisconnector = IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR +residualcurrentcircuitbreaker = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER +residualcurrentswitch = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH +varistor = IfcProtectiveDeviceTypeEnum.VARISTOR +anti_arcing_device = IfcProtectiveDeviceTypeEnum.ANTI_ARCING_DEVICE +sparkgap = IfcProtectiveDeviceTypeEnum.SPARKGAP +voltagelimiter = IfcProtectiveDeviceTypeEnum.VOLTAGELIMITER +userdefined = IfcProtectiveDeviceTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTypeEnum.NOTDEFINED IfcPumpTypeEnum = enum_namespace() -circulator = getattr(IfcPumpTypeEnum, 'CIRCULATOR', INDETERMINATE) -endsuction = getattr(IfcPumpTypeEnum, 'ENDSUCTION', INDETERMINATE) -splitcase = getattr(IfcPumpTypeEnum, 'SPLITCASE', INDETERMINATE) -submersiblepump = getattr(IfcPumpTypeEnum, 'SUBMERSIBLEPUMP', INDETERMINATE) -sumppump = getattr(IfcPumpTypeEnum, 'SUMPPUMP', INDETERMINATE) -verticalinline = getattr(IfcPumpTypeEnum, 'VERTICALINLINE', INDETERMINATE) -verticalturbine = getattr(IfcPumpTypeEnum, 'VERTICALTURBINE', INDETERMINATE) -userdefined = getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPumpTypeEnum, 'NOTDEFINED', INDETERMINATE) +circulator = IfcPumpTypeEnum.CIRCULATOR +endsuction = IfcPumpTypeEnum.ENDSUCTION +splitcase = IfcPumpTypeEnum.SPLITCASE +submersiblepump = IfcPumpTypeEnum.SUBMERSIBLEPUMP +sumppump = IfcPumpTypeEnum.SUMPPUMP +verticalinline = IfcPumpTypeEnum.VERTICALINLINE +verticalturbine = IfcPumpTypeEnum.VERTICALTURBINE +userdefined = IfcPumpTypeEnum.USERDEFINED +notdefined = IfcPumpTypeEnum.NOTDEFINED IfcRailTypeEnum = enum_namespace() -rackrail = getattr(IfcRailTypeEnum, 'RACKRAIL', INDETERMINATE) -blade = getattr(IfcRailTypeEnum, 'BLADE', INDETERMINATE) -guardrail = getattr(IfcRailTypeEnum, 'GUARDRAIL', INDETERMINATE) -stockrail = getattr(IfcRailTypeEnum, 'STOCKRAIL', INDETERMINATE) -checkrail = getattr(IfcRailTypeEnum, 'CHECKRAIL', INDETERMINATE) -rail = getattr(IfcRailTypeEnum, 'RAIL', INDETERMINATE) -userdefined = getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailTypeEnum, 'NOTDEFINED', INDETERMINATE) +rackrail = IfcRailTypeEnum.RACKRAIL +blade = IfcRailTypeEnum.BLADE +guardrail = IfcRailTypeEnum.GUARDRAIL +stockrail = IfcRailTypeEnum.STOCKRAIL +checkrail = IfcRailTypeEnum.CHECKRAIL +rail = IfcRailTypeEnum.RAIL +userdefined = IfcRailTypeEnum.USERDEFINED +notdefined = IfcRailTypeEnum.NOTDEFINED IfcRailingTypeEnum = enum_namespace() -handrail = getattr(IfcRailingTypeEnum, 'HANDRAIL', INDETERMINATE) -guardrail = getattr(IfcRailingTypeEnum, 'GUARDRAIL', INDETERMINATE) -balustrade = getattr(IfcRailingTypeEnum, 'BALUSTRADE', INDETERMINATE) -fence = getattr(IfcRailingTypeEnum, 'FENCE', INDETERMINATE) -userdefined = getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailingTypeEnum, 'NOTDEFINED', INDETERMINATE) +handrail = IfcRailingTypeEnum.HANDRAIL +guardrail = IfcRailingTypeEnum.GUARDRAIL +balustrade = IfcRailingTypeEnum.BALUSTRADE +fence = IfcRailingTypeEnum.FENCE +userdefined = IfcRailingTypeEnum.USERDEFINED +notdefined = IfcRailingTypeEnum.NOTDEFINED IfcRailwayPartTypeEnum = enum_namespace() -trackstructure = getattr(IfcRailwayPartTypeEnum, 'TRACKSTRUCTURE', INDETERMINATE) -trackstructurepart = getattr(IfcRailwayPartTypeEnum, 'TRACKSTRUCTUREPART', INDETERMINATE) -linesidestructurepart = getattr(IfcRailwayPartTypeEnum, 'LINESIDESTRUCTUREPART', INDETERMINATE) -dilatationsuperstructure = getattr(IfcRailwayPartTypeEnum, 'DILATATIONSUPERSTRUCTURE', INDETERMINATE) -plaintracksupestructure = getattr(IfcRailwayPartTypeEnum, 'PLAINTRACKSUPESTRUCTURE', INDETERMINATE) -linesidestructure = getattr(IfcRailwayPartTypeEnum, 'LINESIDESTRUCTURE', INDETERMINATE) -superstructure = getattr(IfcRailwayPartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -turnoutsuperstructure = getattr(IfcRailwayPartTypeEnum, 'TURNOUTSUPERSTRUCTURE', INDETERMINATE) -userdefined = getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailwayPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +trackstructure = IfcRailwayPartTypeEnum.TRACKSTRUCTURE +trackstructurepart = IfcRailwayPartTypeEnum.TRACKSTRUCTUREPART +linesidestructurepart = IfcRailwayPartTypeEnum.LINESIDESTRUCTUREPART +dilatationsuperstructure = IfcRailwayPartTypeEnum.DILATATIONSUPERSTRUCTURE +plaintracksupestructure = IfcRailwayPartTypeEnum.PLAINTRACKSUPESTRUCTURE +linesidestructure = IfcRailwayPartTypeEnum.LINESIDESTRUCTURE +superstructure = IfcRailwayPartTypeEnum.SUPERSTRUCTURE +turnoutsuperstructure = IfcRailwayPartTypeEnum.TURNOUTSUPERSTRUCTURE +userdefined = IfcRailwayPartTypeEnum.USERDEFINED +notdefined = IfcRailwayPartTypeEnum.NOTDEFINED IfcRampFlightTypeEnum = enum_namespace() -straight = getattr(IfcRampFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -spiral = getattr(IfcRampFlightTypeEnum, 'SPIRAL', INDETERMINATE) -userdefined = getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRampFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcRampFlightTypeEnum.STRAIGHT +spiral = IfcRampFlightTypeEnum.SPIRAL +userdefined = IfcRampFlightTypeEnum.USERDEFINED +notdefined = IfcRampFlightTypeEnum.NOTDEFINED IfcRampTypeEnum = enum_namespace() -straight_run_ramp = getattr(IfcRampTypeEnum, 'STRAIGHT_RUN_RAMP', INDETERMINATE) -two_straight_run_ramp = getattr(IfcRampTypeEnum, 'TWO_STRAIGHT_RUN_RAMP', INDETERMINATE) -quarter_turn_ramp = getattr(IfcRampTypeEnum, 'QUARTER_TURN_RAMP', INDETERMINATE) -two_quarter_turn_ramp = getattr(IfcRampTypeEnum, 'TWO_QUARTER_TURN_RAMP', INDETERMINATE) -half_turn_ramp = getattr(IfcRampTypeEnum, 'HALF_TURN_RAMP', INDETERMINATE) -spiral_ramp = getattr(IfcRampTypeEnum, 'SPIRAL_RAMP', INDETERMINATE) -userdefined = getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRampTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_ramp = IfcRampTypeEnum.STRAIGHT_RUN_RAMP +two_straight_run_ramp = IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP +quarter_turn_ramp = IfcRampTypeEnum.QUARTER_TURN_RAMP +two_quarter_turn_ramp = IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP +half_turn_ramp = IfcRampTypeEnum.HALF_TURN_RAMP +spiral_ramp = IfcRampTypeEnum.SPIRAL_RAMP +userdefined = IfcRampTypeEnum.USERDEFINED +notdefined = IfcRampTypeEnum.NOTDEFINED IfcRecurrenceTypeEnum = enum_namespace() -daily = getattr(IfcRecurrenceTypeEnum, 'DAILY', INDETERMINATE) -weekly = getattr(IfcRecurrenceTypeEnum, 'WEEKLY', INDETERMINATE) -monthly_by_day_of_month = getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_DAY_OF_MONTH', INDETERMINATE) -monthly_by_position = getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_POSITION', INDETERMINATE) -by_day_count = getattr(IfcRecurrenceTypeEnum, 'BY_DAY_COUNT', INDETERMINATE) -by_weekday_count = getattr(IfcRecurrenceTypeEnum, 'BY_WEEKDAY_COUNT', INDETERMINATE) -yearly_by_day_of_month = getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_DAY_OF_MONTH', INDETERMINATE) -yearly_by_position = getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_POSITION', INDETERMINATE) +daily = IfcRecurrenceTypeEnum.DAILY +weekly = IfcRecurrenceTypeEnum.WEEKLY +monthly_by_day_of_month = IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH +monthly_by_position = IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION +by_day_count = IfcRecurrenceTypeEnum.BY_DAY_COUNT +by_weekday_count = IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT +yearly_by_day_of_month = IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH +yearly_by_position = IfcRecurrenceTypeEnum.YEARLY_BY_POSITION IfcReferentTypeEnum = enum_namespace() -kilopoint = getattr(IfcReferentTypeEnum, 'KILOPOINT', INDETERMINATE) -milepoint = getattr(IfcReferentTypeEnum, 'MILEPOINT', INDETERMINATE) -station = getattr(IfcReferentTypeEnum, 'STATION', INDETERMINATE) -referencemarker = getattr(IfcReferentTypeEnum, 'REFERENCEMARKER', INDETERMINATE) -userdefined = getattr(IfcReferentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReferentTypeEnum, 'NOTDEFINED', INDETERMINATE) +kilopoint = IfcReferentTypeEnum.KILOPOINT +milepoint = IfcReferentTypeEnum.MILEPOINT +station = IfcReferentTypeEnum.STATION +referencemarker = IfcReferentTypeEnum.REFERENCEMARKER +userdefined = IfcReferentTypeEnum.USERDEFINED +notdefined = IfcReferentTypeEnum.NOTDEFINED IfcReflectanceMethodEnum = enum_namespace() -blinn = getattr(IfcReflectanceMethodEnum, 'BLINN', INDETERMINATE) -flat = getattr(IfcReflectanceMethodEnum, 'FLAT', INDETERMINATE) -glass = getattr(IfcReflectanceMethodEnum, 'GLASS', INDETERMINATE) -matt = getattr(IfcReflectanceMethodEnum, 'MATT', INDETERMINATE) -metal = getattr(IfcReflectanceMethodEnum, 'METAL', INDETERMINATE) -mirror = getattr(IfcReflectanceMethodEnum, 'MIRROR', INDETERMINATE) -phong = getattr(IfcReflectanceMethodEnum, 'PHONG', INDETERMINATE) -plastic = getattr(IfcReflectanceMethodEnum, 'PLASTIC', INDETERMINATE) -strauss = getattr(IfcReflectanceMethodEnum, 'STRAUSS', INDETERMINATE) -notdefined = getattr(IfcReflectanceMethodEnum, 'NOTDEFINED', INDETERMINATE) +blinn = IfcReflectanceMethodEnum.BLINN +flat = IfcReflectanceMethodEnum.FLAT +glass = IfcReflectanceMethodEnum.GLASS +matt = IfcReflectanceMethodEnum.MATT +metal = IfcReflectanceMethodEnum.METAL +mirror = IfcReflectanceMethodEnum.MIRROR +phong = IfcReflectanceMethodEnum.PHONG +plastic = IfcReflectanceMethodEnum.PLASTIC +strauss = IfcReflectanceMethodEnum.STRAUSS +notdefined = IfcReflectanceMethodEnum.NOTDEFINED IfcReinforcedSoilTypeEnum = enum_namespace() -surchargepreloaded = getattr(IfcReinforcedSoilTypeEnum, 'SURCHARGEPRELOADED', INDETERMINATE) -verticallydrained = getattr(IfcReinforcedSoilTypeEnum, 'VERTICALLYDRAINED', INDETERMINATE) -dynamicallycompacted = getattr(IfcReinforcedSoilTypeEnum, 'DYNAMICALLYCOMPACTED', INDETERMINATE) -replaced = getattr(IfcReinforcedSoilTypeEnum, 'REPLACED', INDETERMINATE) -rollercompacted = getattr(IfcReinforcedSoilTypeEnum, 'ROLLERCOMPACTED', INDETERMINATE) -grouted = getattr(IfcReinforcedSoilTypeEnum, 'GROUTED', INDETERMINATE) -userdefined = getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcedSoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +surchargepreloaded = IfcReinforcedSoilTypeEnum.SURCHARGEPRELOADED +verticallydrained = IfcReinforcedSoilTypeEnum.VERTICALLYDRAINED +dynamicallycompacted = IfcReinforcedSoilTypeEnum.DYNAMICALLYCOMPACTED +replaced = IfcReinforcedSoilTypeEnum.REPLACED +rollercompacted = IfcReinforcedSoilTypeEnum.ROLLERCOMPACTED +grouted = IfcReinforcedSoilTypeEnum.GROUTED +userdefined = IfcReinforcedSoilTypeEnum.USERDEFINED +notdefined = IfcReinforcedSoilTypeEnum.NOTDEFINED IfcReinforcingBarRoleEnum = enum_namespace() -main = getattr(IfcReinforcingBarRoleEnum, 'MAIN', INDETERMINATE) -shear = getattr(IfcReinforcingBarRoleEnum, 'SHEAR', INDETERMINATE) -ligature = getattr(IfcReinforcingBarRoleEnum, 'LIGATURE', INDETERMINATE) -stud = getattr(IfcReinforcingBarRoleEnum, 'STUD', INDETERMINATE) -punching = getattr(IfcReinforcingBarRoleEnum, 'PUNCHING', INDETERMINATE) -edge = getattr(IfcReinforcingBarRoleEnum, 'EDGE', INDETERMINATE) -ring = getattr(IfcReinforcingBarRoleEnum, 'RING', INDETERMINATE) -anchoring = getattr(IfcReinforcingBarRoleEnum, 'ANCHORING', INDETERMINATE) -userdefined = getattr(IfcReinforcingBarRoleEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingBarRoleEnum, 'NOTDEFINED', INDETERMINATE) +main = IfcReinforcingBarRoleEnum.MAIN +shear = IfcReinforcingBarRoleEnum.SHEAR +ligature = IfcReinforcingBarRoleEnum.LIGATURE +stud = IfcReinforcingBarRoleEnum.STUD +punching = IfcReinforcingBarRoleEnum.PUNCHING +edge = IfcReinforcingBarRoleEnum.EDGE +ring = IfcReinforcingBarRoleEnum.RING +anchoring = IfcReinforcingBarRoleEnum.ANCHORING +userdefined = IfcReinforcingBarRoleEnum.USERDEFINED +notdefined = IfcReinforcingBarRoleEnum.NOTDEFINED IfcReinforcingBarSurfaceEnum = enum_namespace() -plain = getattr(IfcReinforcingBarSurfaceEnum, 'PLAIN', INDETERMINATE) -textured = getattr(IfcReinforcingBarSurfaceEnum, 'TEXTURED', INDETERMINATE) +plain = IfcReinforcingBarSurfaceEnum.PLAIN +textured = IfcReinforcingBarSurfaceEnum.TEXTURED IfcReinforcingBarTypeEnum = enum_namespace() -anchoring = getattr(IfcReinforcingBarTypeEnum, 'ANCHORING', INDETERMINATE) -edge = getattr(IfcReinforcingBarTypeEnum, 'EDGE', INDETERMINATE) -ligature = getattr(IfcReinforcingBarTypeEnum, 'LIGATURE', INDETERMINATE) -main = getattr(IfcReinforcingBarTypeEnum, 'MAIN', INDETERMINATE) -punching = getattr(IfcReinforcingBarTypeEnum, 'PUNCHING', INDETERMINATE) -ring = getattr(IfcReinforcingBarTypeEnum, 'RING', INDETERMINATE) -shear = getattr(IfcReinforcingBarTypeEnum, 'SHEAR', INDETERMINATE) -stud = getattr(IfcReinforcingBarTypeEnum, 'STUD', INDETERMINATE) -spacebar = getattr(IfcReinforcingBarTypeEnum, 'SPACEBAR', INDETERMINATE) -userdefined = getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingBarTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarTypeEnum.ANCHORING +edge = IfcReinforcingBarTypeEnum.EDGE +ligature = IfcReinforcingBarTypeEnum.LIGATURE +main = IfcReinforcingBarTypeEnum.MAIN +punching = IfcReinforcingBarTypeEnum.PUNCHING +ring = IfcReinforcingBarTypeEnum.RING +shear = IfcReinforcingBarTypeEnum.SHEAR +stud = IfcReinforcingBarTypeEnum.STUD +spacebar = IfcReinforcingBarTypeEnum.SPACEBAR +userdefined = IfcReinforcingBarTypeEnum.USERDEFINED +notdefined = IfcReinforcingBarTypeEnum.NOTDEFINED IfcReinforcingMeshTypeEnum = enum_namespace() -userdefined = getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingMeshTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcReinforcingMeshTypeEnum.USERDEFINED +notdefined = IfcReinforcingMeshTypeEnum.NOTDEFINED IfcRoadPartTypeEnum = enum_namespace() -roadsidepart = getattr(IfcRoadPartTypeEnum, 'ROADSIDEPART', INDETERMINATE) -bus_stop = getattr(IfcRoadPartTypeEnum, 'BUS_STOP', INDETERMINATE) -hardshoulder = getattr(IfcRoadPartTypeEnum, 'HARDSHOULDER', INDETERMINATE) -intersection = getattr(IfcRoadPartTypeEnum, 'INTERSECTION', INDETERMINATE) -passingbay = getattr(IfcRoadPartTypeEnum, 'PASSINGBAY', INDETERMINATE) -roadwayplateau = getattr(IfcRoadPartTypeEnum, 'ROADWAYPLATEAU', INDETERMINATE) -roadside = getattr(IfcRoadPartTypeEnum, 'ROADSIDE', INDETERMINATE) -refugeisland = getattr(IfcRoadPartTypeEnum, 'REFUGEISLAND', INDETERMINATE) -tollplaza = getattr(IfcRoadPartTypeEnum, 'TOLLPLAZA', INDETERMINATE) -centralreserve = getattr(IfcRoadPartTypeEnum, 'CENTRALRESERVE', INDETERMINATE) -sidewalk = getattr(IfcRoadPartTypeEnum, 'SIDEWALK', INDETERMINATE) -parkingbay = getattr(IfcRoadPartTypeEnum, 'PARKINGBAY', INDETERMINATE) -railwaycrossing = getattr(IfcRoadPartTypeEnum, 'RAILWAYCROSSING', INDETERMINATE) -pedestrian_crossing = getattr(IfcRoadPartTypeEnum, 'PEDESTRIAN_CROSSING', INDETERMINATE) -softshoulder = getattr(IfcRoadPartTypeEnum, 'SOFTSHOULDER', INDETERMINATE) -bicyclecrossing = getattr(IfcRoadPartTypeEnum, 'BICYCLECROSSING', INDETERMINATE) -centralisland = getattr(IfcRoadPartTypeEnum, 'CENTRALISLAND', INDETERMINATE) -shoulder = getattr(IfcRoadPartTypeEnum, 'SHOULDER', INDETERMINATE) -trafficlane = getattr(IfcRoadPartTypeEnum, 'TRAFFICLANE', INDETERMINATE) -roadsegment = getattr(IfcRoadPartTypeEnum, 'ROADSEGMENT', INDETERMINATE) -roundabout = getattr(IfcRoadPartTypeEnum, 'ROUNDABOUT', INDETERMINATE) -layby = getattr(IfcRoadPartTypeEnum, 'LAYBY', INDETERMINATE) -carriageway = getattr(IfcRoadPartTypeEnum, 'CARRIAGEWAY', INDETERMINATE) -trafficisland = getattr(IfcRoadPartTypeEnum, 'TRAFFICISLAND', INDETERMINATE) -userdefined = getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRoadPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +roadsidepart = IfcRoadPartTypeEnum.ROADSIDEPART +bus_stop = IfcRoadPartTypeEnum.BUS_STOP +hardshoulder = IfcRoadPartTypeEnum.HARDSHOULDER +intersection = IfcRoadPartTypeEnum.INTERSECTION +passingbay = IfcRoadPartTypeEnum.PASSINGBAY +roadwayplateau = IfcRoadPartTypeEnum.ROADWAYPLATEAU +roadside = IfcRoadPartTypeEnum.ROADSIDE +refugeisland = IfcRoadPartTypeEnum.REFUGEISLAND +tollplaza = IfcRoadPartTypeEnum.TOLLPLAZA +centralreserve = IfcRoadPartTypeEnum.CENTRALRESERVE +sidewalk = IfcRoadPartTypeEnum.SIDEWALK +parkingbay = IfcRoadPartTypeEnum.PARKINGBAY +railwaycrossing = IfcRoadPartTypeEnum.RAILWAYCROSSING +pedestrian_crossing = IfcRoadPartTypeEnum.PEDESTRIAN_CROSSING +softshoulder = IfcRoadPartTypeEnum.SOFTSHOULDER +bicyclecrossing = IfcRoadPartTypeEnum.BICYCLECROSSING +centralisland = IfcRoadPartTypeEnum.CENTRALISLAND +shoulder = IfcRoadPartTypeEnum.SHOULDER +trafficlane = IfcRoadPartTypeEnum.TRAFFICLANE +roadsegment = IfcRoadPartTypeEnum.ROADSEGMENT +roundabout = IfcRoadPartTypeEnum.ROUNDABOUT +layby = IfcRoadPartTypeEnum.LAYBY +carriageway = IfcRoadPartTypeEnum.CARRIAGEWAY +trafficisland = IfcRoadPartTypeEnum.TRAFFICISLAND +userdefined = IfcRoadPartTypeEnum.USERDEFINED +notdefined = IfcRoadPartTypeEnum.NOTDEFINED IfcRoleEnum = enum_namespace() -supplier = getattr(IfcRoleEnum, 'SUPPLIER', INDETERMINATE) -manufacturer = getattr(IfcRoleEnum, 'MANUFACTURER', INDETERMINATE) -contractor = getattr(IfcRoleEnum, 'CONTRACTOR', INDETERMINATE) -subcontractor = getattr(IfcRoleEnum, 'SUBCONTRACTOR', INDETERMINATE) -architect = getattr(IfcRoleEnum, 'ARCHITECT', INDETERMINATE) -structuralengineer = getattr(IfcRoleEnum, 'STRUCTURALENGINEER', INDETERMINATE) -costengineer = getattr(IfcRoleEnum, 'COSTENGINEER', INDETERMINATE) -client = getattr(IfcRoleEnum, 'CLIENT', INDETERMINATE) -buildingowner = getattr(IfcRoleEnum, 'BUILDINGOWNER', INDETERMINATE) -buildingoperator = getattr(IfcRoleEnum, 'BUILDINGOPERATOR', INDETERMINATE) -mechanicalengineer = getattr(IfcRoleEnum, 'MECHANICALENGINEER', INDETERMINATE) -electricalengineer = getattr(IfcRoleEnum, 'ELECTRICALENGINEER', INDETERMINATE) -projectmanager = getattr(IfcRoleEnum, 'PROJECTMANAGER', INDETERMINATE) -facilitiesmanager = getattr(IfcRoleEnum, 'FACILITIESMANAGER', INDETERMINATE) -civilengineer = getattr(IfcRoleEnum, 'CIVILENGINEER', INDETERMINATE) -commissioningengineer = getattr(IfcRoleEnum, 'COMMISSIONINGENGINEER', INDETERMINATE) -engineer = getattr(IfcRoleEnum, 'ENGINEER', INDETERMINATE) -owner = getattr(IfcRoleEnum, 'OWNER', INDETERMINATE) -consultant = getattr(IfcRoleEnum, 'CONSULTANT', INDETERMINATE) -constructionmanager = getattr(IfcRoleEnum, 'CONSTRUCTIONMANAGER', INDETERMINATE) -fieldconstructionmanager = getattr(IfcRoleEnum, 'FIELDCONSTRUCTIONMANAGER', INDETERMINATE) -reseller = getattr(IfcRoleEnum, 'RESELLER', INDETERMINATE) -userdefined = getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) +supplier = IfcRoleEnum.SUPPLIER +manufacturer = IfcRoleEnum.MANUFACTURER +contractor = IfcRoleEnum.CONTRACTOR +subcontractor = IfcRoleEnum.SUBCONTRACTOR +architect = IfcRoleEnum.ARCHITECT +structuralengineer = IfcRoleEnum.STRUCTURALENGINEER +costengineer = IfcRoleEnum.COSTENGINEER +client = IfcRoleEnum.CLIENT +buildingowner = IfcRoleEnum.BUILDINGOWNER +buildingoperator = IfcRoleEnum.BUILDINGOPERATOR +mechanicalengineer = IfcRoleEnum.MECHANICALENGINEER +electricalengineer = IfcRoleEnum.ELECTRICALENGINEER +projectmanager = IfcRoleEnum.PROJECTMANAGER +facilitiesmanager = IfcRoleEnum.FACILITIESMANAGER +civilengineer = IfcRoleEnum.CIVILENGINEER +commissioningengineer = IfcRoleEnum.COMMISSIONINGENGINEER +engineer = IfcRoleEnum.ENGINEER +owner = IfcRoleEnum.OWNER +consultant = IfcRoleEnum.CONSULTANT +constructionmanager = IfcRoleEnum.CONSTRUCTIONMANAGER +fieldconstructionmanager = IfcRoleEnum.FIELDCONSTRUCTIONMANAGER +reseller = IfcRoleEnum.RESELLER +userdefined = IfcRoleEnum.USERDEFINED IfcRoofTypeEnum = enum_namespace() -flat_roof = getattr(IfcRoofTypeEnum, 'FLAT_ROOF', INDETERMINATE) -shed_roof = getattr(IfcRoofTypeEnum, 'SHED_ROOF', INDETERMINATE) -gable_roof = getattr(IfcRoofTypeEnum, 'GABLE_ROOF', INDETERMINATE) -hip_roof = getattr(IfcRoofTypeEnum, 'HIP_ROOF', INDETERMINATE) -hipped_gable_roof = getattr(IfcRoofTypeEnum, 'HIPPED_GABLE_ROOF', INDETERMINATE) -gambrel_roof = getattr(IfcRoofTypeEnum, 'GAMBREL_ROOF', INDETERMINATE) -mansard_roof = getattr(IfcRoofTypeEnum, 'MANSARD_ROOF', INDETERMINATE) -barrel_roof = getattr(IfcRoofTypeEnum, 'BARREL_ROOF', INDETERMINATE) -rainbow_roof = getattr(IfcRoofTypeEnum, 'RAINBOW_ROOF', INDETERMINATE) -butterfly_roof = getattr(IfcRoofTypeEnum, 'BUTTERFLY_ROOF', INDETERMINATE) -pavilion_roof = getattr(IfcRoofTypeEnum, 'PAVILION_ROOF', INDETERMINATE) -dome_roof = getattr(IfcRoofTypeEnum, 'DOME_ROOF', INDETERMINATE) -freeform = getattr(IfcRoofTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRoofTypeEnum, 'NOTDEFINED', INDETERMINATE) +flat_roof = IfcRoofTypeEnum.FLAT_ROOF +shed_roof = IfcRoofTypeEnum.SHED_ROOF +gable_roof = IfcRoofTypeEnum.GABLE_ROOF +hip_roof = IfcRoofTypeEnum.HIP_ROOF +hipped_gable_roof = IfcRoofTypeEnum.HIPPED_GABLE_ROOF +gambrel_roof = IfcRoofTypeEnum.GAMBREL_ROOF +mansard_roof = IfcRoofTypeEnum.MANSARD_ROOF +barrel_roof = IfcRoofTypeEnum.BARREL_ROOF +rainbow_roof = IfcRoofTypeEnum.RAINBOW_ROOF +butterfly_roof = IfcRoofTypeEnum.BUTTERFLY_ROOF +pavilion_roof = IfcRoofTypeEnum.PAVILION_ROOF +dome_roof = IfcRoofTypeEnum.DOME_ROOF +freeform = IfcRoofTypeEnum.FREEFORM +userdefined = IfcRoofTypeEnum.USERDEFINED +notdefined = IfcRoofTypeEnum.NOTDEFINED IfcSIPrefix = enum_namespace() -exa = getattr(IfcSIPrefix, 'EXA', INDETERMINATE) -peta = getattr(IfcSIPrefix, 'PETA', INDETERMINATE) -tera = getattr(IfcSIPrefix, 'TERA', INDETERMINATE) -giga = getattr(IfcSIPrefix, 'GIGA', INDETERMINATE) -mega = getattr(IfcSIPrefix, 'MEGA', INDETERMINATE) -kilo = getattr(IfcSIPrefix, 'KILO', INDETERMINATE) -hecto = getattr(IfcSIPrefix, 'HECTO', INDETERMINATE) -deca = getattr(IfcSIPrefix, 'DECA', INDETERMINATE) -deci = getattr(IfcSIPrefix, 'DECI', INDETERMINATE) -centi = getattr(IfcSIPrefix, 'CENTI', INDETERMINATE) -milli = getattr(IfcSIPrefix, 'MILLI', INDETERMINATE) -micro = getattr(IfcSIPrefix, 'MICRO', INDETERMINATE) -nano = getattr(IfcSIPrefix, 'NANO', INDETERMINATE) -pico = getattr(IfcSIPrefix, 'PICO', INDETERMINATE) -femto = getattr(IfcSIPrefix, 'FEMTO', INDETERMINATE) -atto = getattr(IfcSIPrefix, 'ATTO', INDETERMINATE) +exa = IfcSIPrefix.EXA +peta = IfcSIPrefix.PETA +tera = IfcSIPrefix.TERA +giga = IfcSIPrefix.GIGA +mega = IfcSIPrefix.MEGA +kilo = IfcSIPrefix.KILO +hecto = IfcSIPrefix.HECTO +deca = IfcSIPrefix.DECA +deci = IfcSIPrefix.DECI +centi = IfcSIPrefix.CENTI +milli = IfcSIPrefix.MILLI +micro = IfcSIPrefix.MICRO +nano = IfcSIPrefix.NANO +pico = IfcSIPrefix.PICO +femto = IfcSIPrefix.FEMTO +atto = IfcSIPrefix.ATTO IfcSIUnitName = enum_namespace() -ampere = getattr(IfcSIUnitName, 'AMPERE', INDETERMINATE) -becquerel = getattr(IfcSIUnitName, 'BECQUEREL', INDETERMINATE) -candela = getattr(IfcSIUnitName, 'CANDELA', INDETERMINATE) -coulomb = getattr(IfcSIUnitName, 'COULOMB', INDETERMINATE) -cubic_metre = getattr(IfcSIUnitName, 'CUBIC_METRE', INDETERMINATE) -degree_celsius = getattr(IfcSIUnitName, 'DEGREE_CELSIUS', INDETERMINATE) -farad = getattr(IfcSIUnitName, 'FARAD', INDETERMINATE) -gram = getattr(IfcSIUnitName, 'GRAM', INDETERMINATE) -gray = getattr(IfcSIUnitName, 'GRAY', INDETERMINATE) -henry = getattr(IfcSIUnitName, 'HENRY', INDETERMINATE) -hertz = getattr(IfcSIUnitName, 'HERTZ', INDETERMINATE) -joule = getattr(IfcSIUnitName, 'JOULE', INDETERMINATE) -kelvin = getattr(IfcSIUnitName, 'KELVIN', INDETERMINATE) -lumen = getattr(IfcSIUnitName, 'LUMEN', INDETERMINATE) -lux = getattr(IfcSIUnitName, 'LUX', INDETERMINATE) -metre = getattr(IfcSIUnitName, 'METRE', INDETERMINATE) -mole = getattr(IfcSIUnitName, 'MOLE', INDETERMINATE) -newton = getattr(IfcSIUnitName, 'NEWTON', INDETERMINATE) -ohm = getattr(IfcSIUnitName, 'OHM', INDETERMINATE) -pascal = getattr(IfcSIUnitName, 'PASCAL', INDETERMINATE) -radian = getattr(IfcSIUnitName, 'RADIAN', INDETERMINATE) -second = getattr(IfcSIUnitName, 'SECOND', INDETERMINATE) -siemens = getattr(IfcSIUnitName, 'SIEMENS', INDETERMINATE) -sievert = getattr(IfcSIUnitName, 'SIEVERT', INDETERMINATE) -square_metre = getattr(IfcSIUnitName, 'SQUARE_METRE', INDETERMINATE) -steradian = getattr(IfcSIUnitName, 'STERADIAN', INDETERMINATE) -tesla = getattr(IfcSIUnitName, 'TESLA', INDETERMINATE) -volt = getattr(IfcSIUnitName, 'VOLT', INDETERMINATE) -watt = getattr(IfcSIUnitName, 'WATT', INDETERMINATE) -weber = getattr(IfcSIUnitName, 'WEBER', INDETERMINATE) +ampere = IfcSIUnitName.AMPERE +becquerel = IfcSIUnitName.BECQUEREL +candela = IfcSIUnitName.CANDELA +coulomb = IfcSIUnitName.COULOMB +cubic_metre = IfcSIUnitName.CUBIC_METRE +degree_celsius = IfcSIUnitName.DEGREE_CELSIUS +farad = IfcSIUnitName.FARAD +gram = IfcSIUnitName.GRAM +gray = IfcSIUnitName.GRAY +henry = IfcSIUnitName.HENRY +hertz = IfcSIUnitName.HERTZ +joule = IfcSIUnitName.JOULE +kelvin = IfcSIUnitName.KELVIN +lumen = IfcSIUnitName.LUMEN +lux = IfcSIUnitName.LUX +metre = IfcSIUnitName.METRE +mole = IfcSIUnitName.MOLE +newton = IfcSIUnitName.NEWTON +ohm = IfcSIUnitName.OHM +pascal = IfcSIUnitName.PASCAL +radian = IfcSIUnitName.RADIAN +second = IfcSIUnitName.SECOND +siemens = IfcSIUnitName.SIEMENS +sievert = IfcSIUnitName.SIEVERT +square_metre = IfcSIUnitName.SQUARE_METRE +steradian = IfcSIUnitName.STERADIAN +tesla = IfcSIUnitName.TESLA +volt = IfcSIUnitName.VOLT +watt = IfcSIUnitName.WATT +weber = IfcSIUnitName.WEBER IfcSanitaryTerminalTypeEnum = enum_namespace() -bath = getattr(IfcSanitaryTerminalTypeEnum, 'BATH', INDETERMINATE) -bidet = getattr(IfcSanitaryTerminalTypeEnum, 'BIDET', INDETERMINATE) -cistern = getattr(IfcSanitaryTerminalTypeEnum, 'CISTERN', INDETERMINATE) -shower = getattr(IfcSanitaryTerminalTypeEnum, 'SHOWER', INDETERMINATE) -sink = getattr(IfcSanitaryTerminalTypeEnum, 'SINK', INDETERMINATE) -sanitaryfountain = getattr(IfcSanitaryTerminalTypeEnum, 'SANITARYFOUNTAIN', INDETERMINATE) -toiletpan = getattr(IfcSanitaryTerminalTypeEnum, 'TOILETPAN', INDETERMINATE) -urinal = getattr(IfcSanitaryTerminalTypeEnum, 'URINAL', INDETERMINATE) -washhandbasin = getattr(IfcSanitaryTerminalTypeEnum, 'WASHHANDBASIN', INDETERMINATE) -wcseat = getattr(IfcSanitaryTerminalTypeEnum, 'WCSEAT', INDETERMINATE) -userdefined = getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSanitaryTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +bath = IfcSanitaryTerminalTypeEnum.BATH +bidet = IfcSanitaryTerminalTypeEnum.BIDET +cistern = IfcSanitaryTerminalTypeEnum.CISTERN +shower = IfcSanitaryTerminalTypeEnum.SHOWER +sink = IfcSanitaryTerminalTypeEnum.SINK +sanitaryfountain = IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN +toiletpan = IfcSanitaryTerminalTypeEnum.TOILETPAN +urinal = IfcSanitaryTerminalTypeEnum.URINAL +washhandbasin = IfcSanitaryTerminalTypeEnum.WASHHANDBASIN +wcseat = IfcSanitaryTerminalTypeEnum.WCSEAT +userdefined = IfcSanitaryTerminalTypeEnum.USERDEFINED +notdefined = IfcSanitaryTerminalTypeEnum.NOTDEFINED IfcSectionTypeEnum = enum_namespace() -uniform = getattr(IfcSectionTypeEnum, 'UNIFORM', INDETERMINATE) -tapered = getattr(IfcSectionTypeEnum, 'TAPERED', INDETERMINATE) +uniform = IfcSectionTypeEnum.UNIFORM +tapered = IfcSectionTypeEnum.TAPERED IfcSensorTypeEnum = enum_namespace() -cosensor = getattr(IfcSensorTypeEnum, 'COSENSOR', INDETERMINATE) -co2sensor = getattr(IfcSensorTypeEnum, 'CO2SENSOR', INDETERMINATE) -conductancesensor = getattr(IfcSensorTypeEnum, 'CONDUCTANCESENSOR', INDETERMINATE) -contactsensor = getattr(IfcSensorTypeEnum, 'CONTACTSENSOR', INDETERMINATE) -firesensor = getattr(IfcSensorTypeEnum, 'FIRESENSOR', INDETERMINATE) -flowsensor = getattr(IfcSensorTypeEnum, 'FLOWSENSOR', INDETERMINATE) -frostsensor = getattr(IfcSensorTypeEnum, 'FROSTSENSOR', INDETERMINATE) -gassensor = getattr(IfcSensorTypeEnum, 'GASSENSOR', INDETERMINATE) -heatsensor = getattr(IfcSensorTypeEnum, 'HEATSENSOR', INDETERMINATE) -humiditysensor = getattr(IfcSensorTypeEnum, 'HUMIDITYSENSOR', INDETERMINATE) -identifiersensor = getattr(IfcSensorTypeEnum, 'IDENTIFIERSENSOR', INDETERMINATE) -ionconcentrationsensor = getattr(IfcSensorTypeEnum, 'IONCONCENTRATIONSENSOR', INDETERMINATE) -levelsensor = getattr(IfcSensorTypeEnum, 'LEVELSENSOR', INDETERMINATE) -lightsensor = getattr(IfcSensorTypeEnum, 'LIGHTSENSOR', INDETERMINATE) -moisturesensor = getattr(IfcSensorTypeEnum, 'MOISTURESENSOR', INDETERMINATE) -movementsensor = getattr(IfcSensorTypeEnum, 'MOVEMENTSENSOR', INDETERMINATE) -phsensor = getattr(IfcSensorTypeEnum, 'PHSENSOR', INDETERMINATE) -pressuresensor = getattr(IfcSensorTypeEnum, 'PRESSURESENSOR', INDETERMINATE) -radiationsensor = getattr(IfcSensorTypeEnum, 'RADIATIONSENSOR', INDETERMINATE) -radioactivitysensor = getattr(IfcSensorTypeEnum, 'RADIOACTIVITYSENSOR', INDETERMINATE) -smokesensor = getattr(IfcSensorTypeEnum, 'SMOKESENSOR', INDETERMINATE) -soundsensor = getattr(IfcSensorTypeEnum, 'SOUNDSENSOR', INDETERMINATE) -temperaturesensor = getattr(IfcSensorTypeEnum, 'TEMPERATURESENSOR', INDETERMINATE) -windsensor = getattr(IfcSensorTypeEnum, 'WINDSENSOR', INDETERMINATE) -earthquakesensor = getattr(IfcSensorTypeEnum, 'EARTHQUAKESENSOR', INDETERMINATE) -foreignobjectdetectionsensor = getattr(IfcSensorTypeEnum, 'FOREIGNOBJECTDETECTIONSENSOR', INDETERMINATE) -obstaclesensor = getattr(IfcSensorTypeEnum, 'OBSTACLESENSOR', INDETERMINATE) -rainsensor = getattr(IfcSensorTypeEnum, 'RAINSENSOR', INDETERMINATE) -snowdepthsensor = getattr(IfcSensorTypeEnum, 'SNOWDEPTHSENSOR', INDETERMINATE) -trainsensor = getattr(IfcSensorTypeEnum, 'TRAINSENSOR', INDETERMINATE) -turnoutclosuresensor = getattr(IfcSensorTypeEnum, 'TURNOUTCLOSURESENSOR', INDETERMINATE) -wheelsensor = getattr(IfcSensorTypeEnum, 'WHEELSENSOR', INDETERMINATE) -userdefined = getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSensorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cosensor = IfcSensorTypeEnum.COSENSOR +co2sensor = IfcSensorTypeEnum.CO2SENSOR +conductancesensor = IfcSensorTypeEnum.CONDUCTANCESENSOR +contactsensor = IfcSensorTypeEnum.CONTACTSENSOR +firesensor = IfcSensorTypeEnum.FIRESENSOR +flowsensor = IfcSensorTypeEnum.FLOWSENSOR +frostsensor = IfcSensorTypeEnum.FROSTSENSOR +gassensor = IfcSensorTypeEnum.GASSENSOR +heatsensor = IfcSensorTypeEnum.HEATSENSOR +humiditysensor = IfcSensorTypeEnum.HUMIDITYSENSOR +identifiersensor = IfcSensorTypeEnum.IDENTIFIERSENSOR +ionconcentrationsensor = IfcSensorTypeEnum.IONCONCENTRATIONSENSOR +levelsensor = IfcSensorTypeEnum.LEVELSENSOR +lightsensor = IfcSensorTypeEnum.LIGHTSENSOR +moisturesensor = IfcSensorTypeEnum.MOISTURESENSOR +movementsensor = IfcSensorTypeEnum.MOVEMENTSENSOR +phsensor = IfcSensorTypeEnum.PHSENSOR +pressuresensor = IfcSensorTypeEnum.PRESSURESENSOR +radiationsensor = IfcSensorTypeEnum.RADIATIONSENSOR +radioactivitysensor = IfcSensorTypeEnum.RADIOACTIVITYSENSOR +smokesensor = IfcSensorTypeEnum.SMOKESENSOR +soundsensor = IfcSensorTypeEnum.SOUNDSENSOR +temperaturesensor = IfcSensorTypeEnum.TEMPERATURESENSOR +windsensor = IfcSensorTypeEnum.WINDSENSOR +earthquakesensor = IfcSensorTypeEnum.EARTHQUAKESENSOR +foreignobjectdetectionsensor = IfcSensorTypeEnum.FOREIGNOBJECTDETECTIONSENSOR +obstaclesensor = IfcSensorTypeEnum.OBSTACLESENSOR +rainsensor = IfcSensorTypeEnum.RAINSENSOR +snowdepthsensor = IfcSensorTypeEnum.SNOWDEPTHSENSOR +trainsensor = IfcSensorTypeEnum.TRAINSENSOR +turnoutclosuresensor = IfcSensorTypeEnum.TURNOUTCLOSURESENSOR +wheelsensor = IfcSensorTypeEnum.WHEELSENSOR +userdefined = IfcSensorTypeEnum.USERDEFINED +notdefined = IfcSensorTypeEnum.NOTDEFINED IfcSequenceEnum = enum_namespace() -start_start = getattr(IfcSequenceEnum, 'START_START', INDETERMINATE) -start_finish = getattr(IfcSequenceEnum, 'START_FINISH', INDETERMINATE) -finish_start = getattr(IfcSequenceEnum, 'FINISH_START', INDETERMINATE) -finish_finish = getattr(IfcSequenceEnum, 'FINISH_FINISH', INDETERMINATE) -userdefined = getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSequenceEnum, 'NOTDEFINED', INDETERMINATE) +start_start = IfcSequenceEnum.START_START +start_finish = IfcSequenceEnum.START_FINISH +finish_start = IfcSequenceEnum.FINISH_START +finish_finish = IfcSequenceEnum.FINISH_FINISH +userdefined = IfcSequenceEnum.USERDEFINED +notdefined = IfcSequenceEnum.NOTDEFINED IfcShadingDeviceTypeEnum = enum_namespace() -jalousie = getattr(IfcShadingDeviceTypeEnum, 'JALOUSIE', INDETERMINATE) -shutter = getattr(IfcShadingDeviceTypeEnum, 'SHUTTER', INDETERMINATE) -awning = getattr(IfcShadingDeviceTypeEnum, 'AWNING', INDETERMINATE) -userdefined = getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcShadingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +jalousie = IfcShadingDeviceTypeEnum.JALOUSIE +shutter = IfcShadingDeviceTypeEnum.SHUTTER +awning = IfcShadingDeviceTypeEnum.AWNING +userdefined = IfcShadingDeviceTypeEnum.USERDEFINED +notdefined = IfcShadingDeviceTypeEnum.NOTDEFINED IfcSignTypeEnum = enum_namespace() -marker = getattr(IfcSignTypeEnum, 'MARKER', INDETERMINATE) -pictoral = getattr(IfcSignTypeEnum, 'PICTORAL', INDETERMINATE) -mirror = getattr(IfcSignTypeEnum, 'MIRROR', INDETERMINATE) -userdefined = getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSignTypeEnum, 'NOTDEFINED', INDETERMINATE) +marker = IfcSignTypeEnum.MARKER +pictoral = IfcSignTypeEnum.PICTORAL +mirror = IfcSignTypeEnum.MIRROR +userdefined = IfcSignTypeEnum.USERDEFINED +notdefined = IfcSignTypeEnum.NOTDEFINED IfcSignalTypeEnum = enum_namespace() -visual = getattr(IfcSignalTypeEnum, 'VISUAL', INDETERMINATE) -audio = getattr(IfcSignalTypeEnum, 'AUDIO', INDETERMINATE) -mixed = getattr(IfcSignalTypeEnum, 'MIXED', INDETERMINATE) -userdefined = getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSignalTypeEnum, 'NOTDEFINED', INDETERMINATE) +visual = IfcSignalTypeEnum.VISUAL +audio = IfcSignalTypeEnum.AUDIO +mixed = IfcSignalTypeEnum.MIXED +userdefined = IfcSignalTypeEnum.USERDEFINED +notdefined = IfcSignalTypeEnum.NOTDEFINED IfcSimplePropertyTemplateTypeEnum = enum_namespace() -p_singlevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_SINGLEVALUE', INDETERMINATE) -p_enumeratedvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_ENUMERATEDVALUE', INDETERMINATE) -p_boundedvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_BOUNDEDVALUE', INDETERMINATE) -p_listvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_LISTVALUE', INDETERMINATE) -p_tablevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_TABLEVALUE', INDETERMINATE) -p_referencevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_REFERENCEVALUE', INDETERMINATE) -q_length = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_LENGTH', INDETERMINATE) -q_area = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_AREA', INDETERMINATE) -q_volume = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_VOLUME', INDETERMINATE) -q_count = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_COUNT', INDETERMINATE) -q_weight = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_WEIGHT', INDETERMINATE) -q_time = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_TIME', INDETERMINATE) +p_singlevalue = IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE +p_enumeratedvalue = IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE +p_boundedvalue = IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE +p_listvalue = IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE +p_tablevalue = IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE +p_referencevalue = IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE +q_length = IfcSimplePropertyTemplateTypeEnum.Q_LENGTH +q_area = IfcSimplePropertyTemplateTypeEnum.Q_AREA +q_volume = IfcSimplePropertyTemplateTypeEnum.Q_VOLUME +q_count = IfcSimplePropertyTemplateTypeEnum.Q_COUNT +q_weight = IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT +q_time = IfcSimplePropertyTemplateTypeEnum.Q_TIME IfcSlabTypeEnum = enum_namespace() -floor = getattr(IfcSlabTypeEnum, 'FLOOR', INDETERMINATE) -roof = getattr(IfcSlabTypeEnum, 'ROOF', INDETERMINATE) -landing = getattr(IfcSlabTypeEnum, 'LANDING', INDETERMINATE) -baseslab = getattr(IfcSlabTypeEnum, 'BASESLAB', INDETERMINATE) -approach_slab = getattr(IfcSlabTypeEnum, 'APPROACH_SLAB', INDETERMINATE) -paving = getattr(IfcSlabTypeEnum, 'PAVING', INDETERMINATE) -wearing = getattr(IfcSlabTypeEnum, 'WEARING', INDETERMINATE) -sidewalk = getattr(IfcSlabTypeEnum, 'SIDEWALK', INDETERMINATE) -trackslab = getattr(IfcSlabTypeEnum, 'TRACKSLAB', INDETERMINATE) -userdefined = getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSlabTypeEnum, 'NOTDEFINED', INDETERMINATE) +floor = IfcSlabTypeEnum.FLOOR +roof = IfcSlabTypeEnum.ROOF +landing = IfcSlabTypeEnum.LANDING +baseslab = IfcSlabTypeEnum.BASESLAB +approach_slab = IfcSlabTypeEnum.APPROACH_SLAB +paving = IfcSlabTypeEnum.PAVING +wearing = IfcSlabTypeEnum.WEARING +sidewalk = IfcSlabTypeEnum.SIDEWALK +trackslab = IfcSlabTypeEnum.TRACKSLAB +userdefined = IfcSlabTypeEnum.USERDEFINED +notdefined = IfcSlabTypeEnum.NOTDEFINED IfcSolarDeviceTypeEnum = enum_namespace() -solarcollector = getattr(IfcSolarDeviceTypeEnum, 'SOLARCOLLECTOR', INDETERMINATE) -solarpanel = getattr(IfcSolarDeviceTypeEnum, 'SOLARPANEL', INDETERMINATE) -userdefined = getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSolarDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +solarcollector = IfcSolarDeviceTypeEnum.SOLARCOLLECTOR +solarpanel = IfcSolarDeviceTypeEnum.SOLARPANEL +userdefined = IfcSolarDeviceTypeEnum.USERDEFINED +notdefined = IfcSolarDeviceTypeEnum.NOTDEFINED IfcSpaceHeaterTypeEnum = enum_namespace() -convector = getattr(IfcSpaceHeaterTypeEnum, 'CONVECTOR', INDETERMINATE) -radiator = getattr(IfcSpaceHeaterTypeEnum, 'RADIATOR', INDETERMINATE) -userdefined = getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpaceHeaterTypeEnum, 'NOTDEFINED', INDETERMINATE) +convector = IfcSpaceHeaterTypeEnum.CONVECTOR +radiator = IfcSpaceHeaterTypeEnum.RADIATOR +userdefined = IfcSpaceHeaterTypeEnum.USERDEFINED +notdefined = IfcSpaceHeaterTypeEnum.NOTDEFINED IfcSpaceTypeEnum = enum_namespace() -space = getattr(IfcSpaceTypeEnum, 'SPACE', INDETERMINATE) -parking = getattr(IfcSpaceTypeEnum, 'PARKING', INDETERMINATE) -gfa = getattr(IfcSpaceTypeEnum, 'GFA', INDETERMINATE) -internal = getattr(IfcSpaceTypeEnum, 'INTERNAL', INDETERMINATE) -external = getattr(IfcSpaceTypeEnum, 'EXTERNAL', INDETERMINATE) -userdefined = getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpaceTypeEnum, 'NOTDEFINED', INDETERMINATE) +space = IfcSpaceTypeEnum.SPACE +parking = IfcSpaceTypeEnum.PARKING +gfa = IfcSpaceTypeEnum.GFA +internal = IfcSpaceTypeEnum.INTERNAL +external = IfcSpaceTypeEnum.EXTERNAL +userdefined = IfcSpaceTypeEnum.USERDEFINED +notdefined = IfcSpaceTypeEnum.NOTDEFINED IfcSpatialZoneTypeEnum = enum_namespace() -construction = getattr(IfcSpatialZoneTypeEnum, 'CONSTRUCTION', INDETERMINATE) -firesafety = getattr(IfcSpatialZoneTypeEnum, 'FIRESAFETY', INDETERMINATE) -lighting = getattr(IfcSpatialZoneTypeEnum, 'LIGHTING', INDETERMINATE) -occupancy = getattr(IfcSpatialZoneTypeEnum, 'OCCUPANCY', INDETERMINATE) -security = getattr(IfcSpatialZoneTypeEnum, 'SECURITY', INDETERMINATE) -thermal = getattr(IfcSpatialZoneTypeEnum, 'THERMAL', INDETERMINATE) -transport = getattr(IfcSpatialZoneTypeEnum, 'TRANSPORT', INDETERMINATE) -ventilation = getattr(IfcSpatialZoneTypeEnum, 'VENTILATION', INDETERMINATE) -reservation = getattr(IfcSpatialZoneTypeEnum, 'RESERVATION', INDETERMINATE) -userdefined = getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpatialZoneTypeEnum, 'NOTDEFINED', INDETERMINATE) +construction = IfcSpatialZoneTypeEnum.CONSTRUCTION +firesafety = IfcSpatialZoneTypeEnum.FIRESAFETY +lighting = IfcSpatialZoneTypeEnum.LIGHTING +occupancy = IfcSpatialZoneTypeEnum.OCCUPANCY +security = IfcSpatialZoneTypeEnum.SECURITY +thermal = IfcSpatialZoneTypeEnum.THERMAL +transport = IfcSpatialZoneTypeEnum.TRANSPORT +ventilation = IfcSpatialZoneTypeEnum.VENTILATION +reservation = IfcSpatialZoneTypeEnum.RESERVATION +userdefined = IfcSpatialZoneTypeEnum.USERDEFINED +notdefined = IfcSpatialZoneTypeEnum.NOTDEFINED IfcStackTerminalTypeEnum = enum_namespace() -birdcage = getattr(IfcStackTerminalTypeEnum, 'BIRDCAGE', INDETERMINATE) -cowl = getattr(IfcStackTerminalTypeEnum, 'COWL', INDETERMINATE) -rainwaterhopper = getattr(IfcStackTerminalTypeEnum, 'RAINWATERHOPPER', INDETERMINATE) -userdefined = getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStackTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +birdcage = IfcStackTerminalTypeEnum.BIRDCAGE +cowl = IfcStackTerminalTypeEnum.COWL +rainwaterhopper = IfcStackTerminalTypeEnum.RAINWATERHOPPER +userdefined = IfcStackTerminalTypeEnum.USERDEFINED +notdefined = IfcStackTerminalTypeEnum.NOTDEFINED IfcStairFlightTypeEnum = enum_namespace() -straight = getattr(IfcStairFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -winder = getattr(IfcStairFlightTypeEnum, 'WINDER', INDETERMINATE) -spiral = getattr(IfcStairFlightTypeEnum, 'SPIRAL', INDETERMINATE) -curved = getattr(IfcStairFlightTypeEnum, 'CURVED', INDETERMINATE) -freeform = getattr(IfcStairFlightTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStairFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcStairFlightTypeEnum.STRAIGHT +winder = IfcStairFlightTypeEnum.WINDER +spiral = IfcStairFlightTypeEnum.SPIRAL +curved = IfcStairFlightTypeEnum.CURVED +freeform = IfcStairFlightTypeEnum.FREEFORM +userdefined = IfcStairFlightTypeEnum.USERDEFINED +notdefined = IfcStairFlightTypeEnum.NOTDEFINED IfcStairTypeEnum = enum_namespace() -straight_run_stair = getattr(IfcStairTypeEnum, 'STRAIGHT_RUN_STAIR', INDETERMINATE) -two_straight_run_stair = getattr(IfcStairTypeEnum, 'TWO_STRAIGHT_RUN_STAIR', INDETERMINATE) -quarter_winding_stair = getattr(IfcStairTypeEnum, 'QUARTER_WINDING_STAIR', INDETERMINATE) -quarter_turn_stair = getattr(IfcStairTypeEnum, 'QUARTER_TURN_STAIR', INDETERMINATE) -half_winding_stair = getattr(IfcStairTypeEnum, 'HALF_WINDING_STAIR', INDETERMINATE) -half_turn_stair = getattr(IfcStairTypeEnum, 'HALF_TURN_STAIR', INDETERMINATE) -two_quarter_winding_stair = getattr(IfcStairTypeEnum, 'TWO_QUARTER_WINDING_STAIR', INDETERMINATE) -two_quarter_turn_stair = getattr(IfcStairTypeEnum, 'TWO_QUARTER_TURN_STAIR', INDETERMINATE) -three_quarter_winding_stair = getattr(IfcStairTypeEnum, 'THREE_QUARTER_WINDING_STAIR', INDETERMINATE) -three_quarter_turn_stair = getattr(IfcStairTypeEnum, 'THREE_QUARTER_TURN_STAIR', INDETERMINATE) -spiral_stair = getattr(IfcStairTypeEnum, 'SPIRAL_STAIR', INDETERMINATE) -double_return_stair = getattr(IfcStairTypeEnum, 'DOUBLE_RETURN_STAIR', INDETERMINATE) -curved_run_stair = getattr(IfcStairTypeEnum, 'CURVED_RUN_STAIR', INDETERMINATE) -two_curved_run_stair = getattr(IfcStairTypeEnum, 'TWO_CURVED_RUN_STAIR', INDETERMINATE) -ladder = getattr(IfcStairTypeEnum, 'LADDER', INDETERMINATE) -userdefined = getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStairTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_stair = IfcStairTypeEnum.STRAIGHT_RUN_STAIR +two_straight_run_stair = IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR +quarter_winding_stair = IfcStairTypeEnum.QUARTER_WINDING_STAIR +quarter_turn_stair = IfcStairTypeEnum.QUARTER_TURN_STAIR +half_winding_stair = IfcStairTypeEnum.HALF_WINDING_STAIR +half_turn_stair = IfcStairTypeEnum.HALF_TURN_STAIR +two_quarter_winding_stair = IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR +two_quarter_turn_stair = IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR +three_quarter_winding_stair = IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR +three_quarter_turn_stair = IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR +spiral_stair = IfcStairTypeEnum.SPIRAL_STAIR +double_return_stair = IfcStairTypeEnum.DOUBLE_RETURN_STAIR +curved_run_stair = IfcStairTypeEnum.CURVED_RUN_STAIR +two_curved_run_stair = IfcStairTypeEnum.TWO_CURVED_RUN_STAIR +ladder = IfcStairTypeEnum.LADDER +userdefined = IfcStairTypeEnum.USERDEFINED +notdefined = IfcStairTypeEnum.NOTDEFINED IfcStateEnum = enum_namespace() -readwrite = getattr(IfcStateEnum, 'READWRITE', INDETERMINATE) -readonly = getattr(IfcStateEnum, 'READONLY', INDETERMINATE) -locked = getattr(IfcStateEnum, 'LOCKED', INDETERMINATE) -readwritelocked = getattr(IfcStateEnum, 'READWRITELOCKED', INDETERMINATE) -readonlylocked = getattr(IfcStateEnum, 'READONLYLOCKED', INDETERMINATE) +readwrite = IfcStateEnum.READWRITE +readonly = IfcStateEnum.READONLY +locked = IfcStateEnum.LOCKED +readwritelocked = IfcStateEnum.READWRITELOCKED +readonlylocked = IfcStateEnum.READONLYLOCKED IfcStructuralCurveActivityTypeEnum = enum_namespace() -const = getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE) -linear = getattr(IfcStructuralCurveActivityTypeEnum, 'LINEAR', INDETERMINATE) -polygonal = getattr(IfcStructuralCurveActivityTypeEnum, 'POLYGONAL', INDETERMINATE) -equidistant = getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE) -sinus = getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) -parabola = getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE) -discrete = getattr(IfcStructuralCurveActivityTypeEnum, 'DISCRETE', INDETERMINATE) -userdefined = getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralCurveActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralCurveActivityTypeEnum.CONST +linear = IfcStructuralCurveActivityTypeEnum.LINEAR +polygonal = IfcStructuralCurveActivityTypeEnum.POLYGONAL +equidistant = IfcStructuralCurveActivityTypeEnum.EQUIDISTANT +sinus = IfcStructuralCurveActivityTypeEnum.SINUS +parabola = IfcStructuralCurveActivityTypeEnum.PARABOLA +discrete = IfcStructuralCurveActivityTypeEnum.DISCRETE +userdefined = IfcStructuralCurveActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveActivityTypeEnum.NOTDEFINED IfcStructuralCurveMemberTypeEnum = enum_namespace() -rigid_joined_member = getattr(IfcStructuralCurveMemberTypeEnum, 'RIGID_JOINED_MEMBER', INDETERMINATE) -pin_joined_member = getattr(IfcStructuralCurveMemberTypeEnum, 'PIN_JOINED_MEMBER', INDETERMINATE) -cable = getattr(IfcStructuralCurveMemberTypeEnum, 'CABLE', INDETERMINATE) -tension_member = getattr(IfcStructuralCurveMemberTypeEnum, 'TENSION_MEMBER', INDETERMINATE) -compression_member = getattr(IfcStructuralCurveMemberTypeEnum, 'COMPRESSION_MEMBER', INDETERMINATE) -userdefined = getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralCurveMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigid_joined_member = IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER +pin_joined_member = IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER +cable = IfcStructuralCurveMemberTypeEnum.CABLE +tension_member = IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER +compression_member = IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER +userdefined = IfcStructuralCurveMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveMemberTypeEnum.NOTDEFINED IfcStructuralSurfaceActivityTypeEnum = enum_namespace() -const = getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE) -bilinear = getattr(IfcStructuralSurfaceActivityTypeEnum, 'BILINEAR', INDETERMINATE) -discrete = getattr(IfcStructuralSurfaceActivityTypeEnum, 'DISCRETE', INDETERMINATE) -isocontour = getattr(IfcStructuralSurfaceActivityTypeEnum, 'ISOCONTOUR', INDETERMINATE) -userdefined = getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralSurfaceActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralSurfaceActivityTypeEnum.CONST +bilinear = IfcStructuralSurfaceActivityTypeEnum.BILINEAR +discrete = IfcStructuralSurfaceActivityTypeEnum.DISCRETE +isocontour = IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR +userdefined = IfcStructuralSurfaceActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED IfcStructuralSurfaceMemberTypeEnum = enum_namespace() -bending_element = getattr(IfcStructuralSurfaceMemberTypeEnum, 'BENDING_ELEMENT', INDETERMINATE) -membrane_element = getattr(IfcStructuralSurfaceMemberTypeEnum, 'MEMBRANE_ELEMENT', INDETERMINATE) -shell = getattr(IfcStructuralSurfaceMemberTypeEnum, 'SHELL', INDETERMINATE) -userdefined = getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralSurfaceMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_element = IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT +membrane_element = IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT +shell = IfcStructuralSurfaceMemberTypeEnum.SHELL +userdefined = IfcStructuralSurfaceMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED IfcSubContractResourceTypeEnum = enum_namespace() -purchase = getattr(IfcSubContractResourceTypeEnum, 'PURCHASE', INDETERMINATE) -work = getattr(IfcSubContractResourceTypeEnum, 'WORK', INDETERMINATE) -userdefined = getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSubContractResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +purchase = IfcSubContractResourceTypeEnum.PURCHASE +work = IfcSubContractResourceTypeEnum.WORK +userdefined = IfcSubContractResourceTypeEnum.USERDEFINED +notdefined = IfcSubContractResourceTypeEnum.NOTDEFINED IfcSurfaceFeatureTypeEnum = enum_namespace() -mark = getattr(IfcSurfaceFeatureTypeEnum, 'MARK', INDETERMINATE) -tag = getattr(IfcSurfaceFeatureTypeEnum, 'TAG', INDETERMINATE) -treatment = getattr(IfcSurfaceFeatureTypeEnum, 'TREATMENT', INDETERMINATE) -defect = getattr(IfcSurfaceFeatureTypeEnum, 'DEFECT', INDETERMINATE) -hatchmarking = getattr(IfcSurfaceFeatureTypeEnum, 'HATCHMARKING', INDETERMINATE) -linemarking = getattr(IfcSurfaceFeatureTypeEnum, 'LINEMARKING', INDETERMINATE) -pavementsurfacemarking = getattr(IfcSurfaceFeatureTypeEnum, 'PAVEMENTSURFACEMARKING', INDETERMINATE) -symbolmarking = getattr(IfcSurfaceFeatureTypeEnum, 'SYMBOLMARKING', INDETERMINATE) -nonskidsurfacing = getattr(IfcSurfaceFeatureTypeEnum, 'NONSKIDSURFACING', INDETERMINATE) -rumblestrip = getattr(IfcSurfaceFeatureTypeEnum, 'RUMBLESTRIP', INDETERMINATE) -transverserumblestrip = getattr(IfcSurfaceFeatureTypeEnum, 'TRANSVERSERUMBLESTRIP', INDETERMINATE) -userdefined = getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSurfaceFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +mark = IfcSurfaceFeatureTypeEnum.MARK +tag = IfcSurfaceFeatureTypeEnum.TAG +treatment = IfcSurfaceFeatureTypeEnum.TREATMENT +defect = IfcSurfaceFeatureTypeEnum.DEFECT +hatchmarking = IfcSurfaceFeatureTypeEnum.HATCHMARKING +linemarking = IfcSurfaceFeatureTypeEnum.LINEMARKING +pavementsurfacemarking = IfcSurfaceFeatureTypeEnum.PAVEMENTSURFACEMARKING +symbolmarking = IfcSurfaceFeatureTypeEnum.SYMBOLMARKING +nonskidsurfacing = IfcSurfaceFeatureTypeEnum.NONSKIDSURFACING +rumblestrip = IfcSurfaceFeatureTypeEnum.RUMBLESTRIP +transverserumblestrip = IfcSurfaceFeatureTypeEnum.TRANSVERSERUMBLESTRIP +userdefined = IfcSurfaceFeatureTypeEnum.USERDEFINED +notdefined = IfcSurfaceFeatureTypeEnum.NOTDEFINED IfcSurfaceSide = enum_namespace() -positive = getattr(IfcSurfaceSide, 'POSITIVE', INDETERMINATE) -negative = getattr(IfcSurfaceSide, 'NEGATIVE', INDETERMINATE) -both = getattr(IfcSurfaceSide, 'BOTH', INDETERMINATE) +positive = IfcSurfaceSide.POSITIVE +negative = IfcSurfaceSide.NEGATIVE +both = IfcSurfaceSide.BOTH IfcSwitchingDeviceTypeEnum = enum_namespace() -contactor = getattr(IfcSwitchingDeviceTypeEnum, 'CONTACTOR', INDETERMINATE) -dimmerswitch = getattr(IfcSwitchingDeviceTypeEnum, 'DIMMERSWITCH', INDETERMINATE) -emergencystop = getattr(IfcSwitchingDeviceTypeEnum, 'EMERGENCYSTOP', INDETERMINATE) -keypad = getattr(IfcSwitchingDeviceTypeEnum, 'KEYPAD', INDETERMINATE) -momentaryswitch = getattr(IfcSwitchingDeviceTypeEnum, 'MOMENTARYSWITCH', INDETERMINATE) -selectorswitch = getattr(IfcSwitchingDeviceTypeEnum, 'SELECTORSWITCH', INDETERMINATE) -starter = getattr(IfcSwitchingDeviceTypeEnum, 'STARTER', INDETERMINATE) -switchdisconnector = getattr(IfcSwitchingDeviceTypeEnum, 'SWITCHDISCONNECTOR', INDETERMINATE) -toggleswitch = getattr(IfcSwitchingDeviceTypeEnum, 'TOGGLESWITCH', INDETERMINATE) -relay = getattr(IfcSwitchingDeviceTypeEnum, 'RELAY', INDETERMINATE) -start_and_stop_equipment = getattr(IfcSwitchingDeviceTypeEnum, 'START_AND_STOP_EQUIPMENT', INDETERMINATE) -userdefined = getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSwitchingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +contactor = IfcSwitchingDeviceTypeEnum.CONTACTOR +dimmerswitch = IfcSwitchingDeviceTypeEnum.DIMMERSWITCH +emergencystop = IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP +keypad = IfcSwitchingDeviceTypeEnum.KEYPAD +momentaryswitch = IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH +selectorswitch = IfcSwitchingDeviceTypeEnum.SELECTORSWITCH +starter = IfcSwitchingDeviceTypeEnum.STARTER +switchdisconnector = IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR +toggleswitch = IfcSwitchingDeviceTypeEnum.TOGGLESWITCH +relay = IfcSwitchingDeviceTypeEnum.RELAY +start_and_stop_equipment = IfcSwitchingDeviceTypeEnum.START_AND_STOP_EQUIPMENT +userdefined = IfcSwitchingDeviceTypeEnum.USERDEFINED +notdefined = IfcSwitchingDeviceTypeEnum.NOTDEFINED IfcSystemFurnitureElementTypeEnum = enum_namespace() -panel = getattr(IfcSystemFurnitureElementTypeEnum, 'PANEL', INDETERMINATE) -worksurface = getattr(IfcSystemFurnitureElementTypeEnum, 'WORKSURFACE', INDETERMINATE) -subrack = getattr(IfcSystemFurnitureElementTypeEnum, 'SUBRACK', INDETERMINATE) -userdefined = getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSystemFurnitureElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +panel = IfcSystemFurnitureElementTypeEnum.PANEL +worksurface = IfcSystemFurnitureElementTypeEnum.WORKSURFACE +subrack = IfcSystemFurnitureElementTypeEnum.SUBRACK +userdefined = IfcSystemFurnitureElementTypeEnum.USERDEFINED +notdefined = IfcSystemFurnitureElementTypeEnum.NOTDEFINED IfcTankTypeEnum = enum_namespace() -basin = getattr(IfcTankTypeEnum, 'BASIN', INDETERMINATE) -breakpressure = getattr(IfcTankTypeEnum, 'BREAKPRESSURE', INDETERMINATE) -expansion = getattr(IfcTankTypeEnum, 'EXPANSION', INDETERMINATE) -feedandexpansion = getattr(IfcTankTypeEnum, 'FEEDANDEXPANSION', INDETERMINATE) -pressurevessel = getattr(IfcTankTypeEnum, 'PRESSUREVESSEL', INDETERMINATE) -storage = getattr(IfcTankTypeEnum, 'STORAGE', INDETERMINATE) -vessel = getattr(IfcTankTypeEnum, 'VESSEL', INDETERMINATE) -oilretentiontray = getattr(IfcTankTypeEnum, 'OILRETENTIONTRAY', INDETERMINATE) -userdefined = getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTankTypeEnum, 'NOTDEFINED', INDETERMINATE) +basin = IfcTankTypeEnum.BASIN +breakpressure = IfcTankTypeEnum.BREAKPRESSURE +expansion = IfcTankTypeEnum.EXPANSION +feedandexpansion = IfcTankTypeEnum.FEEDANDEXPANSION +pressurevessel = IfcTankTypeEnum.PRESSUREVESSEL +storage = IfcTankTypeEnum.STORAGE +vessel = IfcTankTypeEnum.VESSEL +oilretentiontray = IfcTankTypeEnum.OILRETENTIONTRAY +userdefined = IfcTankTypeEnum.USERDEFINED +notdefined = IfcTankTypeEnum.NOTDEFINED IfcTaskDurationEnum = enum_namespace() -elapsedtime = getattr(IfcTaskDurationEnum, 'ELAPSEDTIME', INDETERMINATE) -worktime = getattr(IfcTaskDurationEnum, 'WORKTIME', INDETERMINATE) -notdefined = getattr(IfcTaskDurationEnum, 'NOTDEFINED', INDETERMINATE) +elapsedtime = IfcTaskDurationEnum.ELAPSEDTIME +worktime = IfcTaskDurationEnum.WORKTIME +notdefined = IfcTaskDurationEnum.NOTDEFINED IfcTaskTypeEnum = enum_namespace() -attendance = getattr(IfcTaskTypeEnum, 'ATTENDANCE', INDETERMINATE) -construction = getattr(IfcTaskTypeEnum, 'CONSTRUCTION', INDETERMINATE) -demolition = getattr(IfcTaskTypeEnum, 'DEMOLITION', INDETERMINATE) -dismantle = getattr(IfcTaskTypeEnum, 'DISMANTLE', INDETERMINATE) -disposal = getattr(IfcTaskTypeEnum, 'DISPOSAL', INDETERMINATE) -installation = getattr(IfcTaskTypeEnum, 'INSTALLATION', INDETERMINATE) -logistic = getattr(IfcTaskTypeEnum, 'LOGISTIC', INDETERMINATE) -maintenance = getattr(IfcTaskTypeEnum, 'MAINTENANCE', INDETERMINATE) -move = getattr(IfcTaskTypeEnum, 'MOVE', INDETERMINATE) -operation = getattr(IfcTaskTypeEnum, 'OPERATION', INDETERMINATE) -removal = getattr(IfcTaskTypeEnum, 'REMOVAL', INDETERMINATE) -renovation = getattr(IfcTaskTypeEnum, 'RENOVATION', INDETERMINATE) -userdefined = getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTaskTypeEnum, 'NOTDEFINED', INDETERMINATE) +attendance = IfcTaskTypeEnum.ATTENDANCE +construction = IfcTaskTypeEnum.CONSTRUCTION +demolition = IfcTaskTypeEnum.DEMOLITION +dismantle = IfcTaskTypeEnum.DISMANTLE +disposal = IfcTaskTypeEnum.DISPOSAL +installation = IfcTaskTypeEnum.INSTALLATION +logistic = IfcTaskTypeEnum.LOGISTIC +maintenance = IfcTaskTypeEnum.MAINTENANCE +move = IfcTaskTypeEnum.MOVE +operation = IfcTaskTypeEnum.OPERATION +removal = IfcTaskTypeEnum.REMOVAL +renovation = IfcTaskTypeEnum.RENOVATION +userdefined = IfcTaskTypeEnum.USERDEFINED +notdefined = IfcTaskTypeEnum.NOTDEFINED IfcTendonAnchorTypeEnum = enum_namespace() -coupler = getattr(IfcTendonAnchorTypeEnum, 'COUPLER', INDETERMINATE) -fixed_end = getattr(IfcTendonAnchorTypeEnum, 'FIXED_END', INDETERMINATE) -tensioning_end = getattr(IfcTendonAnchorTypeEnum, 'TENSIONING_END', INDETERMINATE) -userdefined = getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonAnchorTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonAnchorTypeEnum.COUPLER +fixed_end = IfcTendonAnchorTypeEnum.FIXED_END +tensioning_end = IfcTendonAnchorTypeEnum.TENSIONING_END +userdefined = IfcTendonAnchorTypeEnum.USERDEFINED +notdefined = IfcTendonAnchorTypeEnum.NOTDEFINED IfcTendonConduitTypeEnum = enum_namespace() -duct = getattr(IfcTendonConduitTypeEnum, 'DUCT', INDETERMINATE) -coupler = getattr(IfcTendonConduitTypeEnum, 'COUPLER', INDETERMINATE) -grouting_duct = getattr(IfcTendonConduitTypeEnum, 'GROUTING_DUCT', INDETERMINATE) -trumpet = getattr(IfcTendonConduitTypeEnum, 'TRUMPET', INDETERMINATE) -diabolo = getattr(IfcTendonConduitTypeEnum, 'DIABOLO', INDETERMINATE) -userdefined = getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonConduitTypeEnum, 'NOTDEFINED', INDETERMINATE) +duct = IfcTendonConduitTypeEnum.DUCT +coupler = IfcTendonConduitTypeEnum.COUPLER +grouting_duct = IfcTendonConduitTypeEnum.GROUTING_DUCT +trumpet = IfcTendonConduitTypeEnum.TRUMPET +diabolo = IfcTendonConduitTypeEnum.DIABOLO +userdefined = IfcTendonConduitTypeEnum.USERDEFINED +notdefined = IfcTendonConduitTypeEnum.NOTDEFINED IfcTendonTypeEnum = enum_namespace() -bar = getattr(IfcTendonTypeEnum, 'BAR', INDETERMINATE) -coated = getattr(IfcTendonTypeEnum, 'COATED', INDETERMINATE) -strand = getattr(IfcTendonTypeEnum, 'STRAND', INDETERMINATE) -wire = getattr(IfcTendonTypeEnum, 'WIRE', INDETERMINATE) -userdefined = getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonTypeEnum, 'NOTDEFINED', INDETERMINATE) +bar = IfcTendonTypeEnum.BAR +coated = IfcTendonTypeEnum.COATED +strand = IfcTendonTypeEnum.STRAND +wire = IfcTendonTypeEnum.WIRE +userdefined = IfcTendonTypeEnum.USERDEFINED +notdefined = IfcTendonTypeEnum.NOTDEFINED IfcTextPath = enum_namespace() -left = getattr(IfcTextPath, 'LEFT', INDETERMINATE) -right = getattr(IfcTextPath, 'RIGHT', INDETERMINATE) -up = getattr(IfcTextPath, 'UP', INDETERMINATE) -down = getattr(IfcTextPath, 'DOWN', INDETERMINATE) +left = IfcTextPath.LEFT +right = IfcTextPath.RIGHT +up = IfcTextPath.UP +down = IfcTextPath.DOWN IfcTimeSeriesDataTypeEnum = enum_namespace() -continuous = getattr(IfcTimeSeriesDataTypeEnum, 'CONTINUOUS', INDETERMINATE) -discrete = getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETE', INDETERMINATE) -discretebinary = getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETEBINARY', INDETERMINATE) -piecewisebinary = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISEBINARY', INDETERMINATE) -piecewiseconstant = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONSTANT', INDETERMINATE) -piecewisecontinuous = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONTINUOUS', INDETERMINATE) -notdefined = getattr(IfcTimeSeriesDataTypeEnum, 'NOTDEFINED', INDETERMINATE) +continuous = IfcTimeSeriesDataTypeEnum.CONTINUOUS +discrete = IfcTimeSeriesDataTypeEnum.DISCRETE +discretebinary = IfcTimeSeriesDataTypeEnum.DISCRETEBINARY +piecewisebinary = IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY +piecewiseconstant = IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT +piecewisecontinuous = IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS +notdefined = IfcTimeSeriesDataTypeEnum.NOTDEFINED IfcTrackElementTypeEnum = enum_namespace() -trackendofalignment = getattr(IfcTrackElementTypeEnum, 'TRACKENDOFALIGNMENT', INDETERMINATE) -blockingdevice = getattr(IfcTrackElementTypeEnum, 'BLOCKINGDEVICE', INDETERMINATE) -vehiclestop = getattr(IfcTrackElementTypeEnum, 'VEHICLESTOP', INDETERMINATE) -sleeper = getattr(IfcTrackElementTypeEnum, 'SLEEPER', INDETERMINATE) -half_set_of_blades = getattr(IfcTrackElementTypeEnum, 'HALF_SET_OF_BLADES', INDETERMINATE) -speedregulator = getattr(IfcTrackElementTypeEnum, 'SPEEDREGULATOR', INDETERMINATE) -derailer = getattr(IfcTrackElementTypeEnum, 'DERAILER', INDETERMINATE) -frog = getattr(IfcTrackElementTypeEnum, 'FROG', INDETERMINATE) -userdefined = getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTrackElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +trackendofalignment = IfcTrackElementTypeEnum.TRACKENDOFALIGNMENT +blockingdevice = IfcTrackElementTypeEnum.BLOCKINGDEVICE +vehiclestop = IfcTrackElementTypeEnum.VEHICLESTOP +sleeper = IfcTrackElementTypeEnum.SLEEPER +half_set_of_blades = IfcTrackElementTypeEnum.HALF_SET_OF_BLADES +speedregulator = IfcTrackElementTypeEnum.SPEEDREGULATOR +derailer = IfcTrackElementTypeEnum.DERAILER +frog = IfcTrackElementTypeEnum.FROG +userdefined = IfcTrackElementTypeEnum.USERDEFINED +notdefined = IfcTrackElementTypeEnum.NOTDEFINED IfcTransformerTypeEnum = enum_namespace() -current = getattr(IfcTransformerTypeEnum, 'CURRENT', INDETERMINATE) -frequency = getattr(IfcTransformerTypeEnum, 'FREQUENCY', INDETERMINATE) -inverter = getattr(IfcTransformerTypeEnum, 'INVERTER', INDETERMINATE) -rectifier = getattr(IfcTransformerTypeEnum, 'RECTIFIER', INDETERMINATE) -voltage = getattr(IfcTransformerTypeEnum, 'VOLTAGE', INDETERMINATE) -chopper = getattr(IfcTransformerTypeEnum, 'CHOPPER', INDETERMINATE) -combined = getattr(IfcTransformerTypeEnum, 'COMBINED', INDETERMINATE) -userdefined = getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTransformerTypeEnum, 'NOTDEFINED', INDETERMINATE) +current = IfcTransformerTypeEnum.CURRENT +frequency = IfcTransformerTypeEnum.FREQUENCY +inverter = IfcTransformerTypeEnum.INVERTER +rectifier = IfcTransformerTypeEnum.RECTIFIER +voltage = IfcTransformerTypeEnum.VOLTAGE +chopper = IfcTransformerTypeEnum.CHOPPER +combined = IfcTransformerTypeEnum.COMBINED +userdefined = IfcTransformerTypeEnum.USERDEFINED +notdefined = IfcTransformerTypeEnum.NOTDEFINED IfcTransitionCode = enum_namespace() -discontinuous = getattr(IfcTransitionCode, 'DISCONTINUOUS', INDETERMINATE) -continuous = getattr(IfcTransitionCode, 'CONTINUOUS', INDETERMINATE) -contsamegradient = getattr(IfcTransitionCode, 'CONTSAMEGRADIENT', INDETERMINATE) -contsamegradientsamecurvature = getattr(IfcTransitionCode, 'CONTSAMEGRADIENTSAMECURVATURE', INDETERMINATE) +discontinuous = IfcTransitionCode.DISCONTINUOUS +continuous = IfcTransitionCode.CONTINUOUS +contsamegradient = IfcTransitionCode.CONTSAMEGRADIENT +contsamegradientsamecurvature = IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE IfcTransitionCurveType = enum_namespace() -biquadraticparabola = getattr(IfcTransitionCurveType, 'BIQUADRATICPARABOLA', INDETERMINATE) -blosscurve = getattr(IfcTransitionCurveType, 'BLOSSCURVE', INDETERMINATE) -clothoidcurve = getattr(IfcTransitionCurveType, 'CLOTHOIDCURVE', INDETERMINATE) -cosinecurve = getattr(IfcTransitionCurveType, 'COSINECURVE', INDETERMINATE) -cubicparabola = getattr(IfcTransitionCurveType, 'CUBICPARABOLA', INDETERMINATE) -sinecurve = getattr(IfcTransitionCurveType, 'SINECURVE', INDETERMINATE) +biquadraticparabola = IfcTransitionCurveType.BIQUADRATICPARABOLA +blosscurve = IfcTransitionCurveType.BLOSSCURVE +clothoidcurve = IfcTransitionCurveType.CLOTHOIDCURVE +cosinecurve = IfcTransitionCurveType.COSINECURVE +cubicparabola = IfcTransitionCurveType.CUBICPARABOLA +sinecurve = IfcTransitionCurveType.SINECURVE IfcTransportElementFixedTypeEnum = enum_namespace() -elevator = getattr(IfcTransportElementFixedTypeEnum, 'ELEVATOR', INDETERMINATE) -escalator = getattr(IfcTransportElementFixedTypeEnum, 'ESCALATOR', INDETERMINATE) -movingwalkway = getattr(IfcTransportElementFixedTypeEnum, 'MOVINGWALKWAY', INDETERMINATE) -craneway = getattr(IfcTransportElementFixedTypeEnum, 'CRANEWAY', INDETERMINATE) -liftinggear = getattr(IfcTransportElementFixedTypeEnum, 'LIFTINGGEAR', INDETERMINATE) -userdefined = getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTransportElementFixedTypeEnum, 'NOTDEFINED', INDETERMINATE) +elevator = IfcTransportElementFixedTypeEnum.ELEVATOR +escalator = IfcTransportElementFixedTypeEnum.ESCALATOR +movingwalkway = IfcTransportElementFixedTypeEnum.MOVINGWALKWAY +craneway = IfcTransportElementFixedTypeEnum.CRANEWAY +liftinggear = IfcTransportElementFixedTypeEnum.LIFTINGGEAR +userdefined = IfcTransportElementFixedTypeEnum.USERDEFINED +notdefined = IfcTransportElementFixedTypeEnum.NOTDEFINED IfcTransportElementNonFixedTypeEnum = enum_namespace() -vehicle = getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLE', INDETERMINATE) -vehicletracked = getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLETRACKED', INDETERMINATE) -rollingstock = getattr(IfcTransportElementNonFixedTypeEnum, 'ROLLINGSTOCK', INDETERMINATE) -vehiclewheeled = getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLEWHEELED', INDETERMINATE) -vehicleair = getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLEAIR', INDETERMINATE) -cargo = getattr(IfcTransportElementNonFixedTypeEnum, 'CARGO', INDETERMINATE) -vehiclemarine = getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLEMARINE', INDETERMINATE) -userdefined = getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTransportElementNonFixedTypeEnum, 'NOTDEFINED', INDETERMINATE) +vehicle = IfcTransportElementNonFixedTypeEnum.VEHICLE +vehicletracked = IfcTransportElementNonFixedTypeEnum.VEHICLETRACKED +rollingstock = IfcTransportElementNonFixedTypeEnum.ROLLINGSTOCK +vehiclewheeled = IfcTransportElementNonFixedTypeEnum.VEHICLEWHEELED +vehicleair = IfcTransportElementNonFixedTypeEnum.VEHICLEAIR +cargo = IfcTransportElementNonFixedTypeEnum.CARGO +vehiclemarine = IfcTransportElementNonFixedTypeEnum.VEHICLEMARINE +userdefined = IfcTransportElementNonFixedTypeEnum.USERDEFINED +notdefined = IfcTransportElementNonFixedTypeEnum.NOTDEFINED IfcTrimmingPreference = enum_namespace() -cartesian = getattr(IfcTrimmingPreference, 'CARTESIAN', INDETERMINATE) -parameter = getattr(IfcTrimmingPreference, 'PARAMETER', INDETERMINATE) -unspecified = getattr(IfcTrimmingPreference, 'UNSPECIFIED', INDETERMINATE) +cartesian = IfcTrimmingPreference.CARTESIAN +parameter = IfcTrimmingPreference.PARAMETER +unspecified = IfcTrimmingPreference.UNSPECIFIED IfcTubeBundleTypeEnum = enum_namespace() -finned = getattr(IfcTubeBundleTypeEnum, 'FINNED', INDETERMINATE) -userdefined = getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTubeBundleTypeEnum, 'NOTDEFINED', INDETERMINATE) +finned = IfcTubeBundleTypeEnum.FINNED +userdefined = IfcTubeBundleTypeEnum.USERDEFINED +notdefined = IfcTubeBundleTypeEnum.NOTDEFINED IfcUnitEnum = enum_namespace() -absorbeddoseunit = getattr(IfcUnitEnum, 'ABSORBEDDOSEUNIT', INDETERMINATE) -amountofsubstanceunit = getattr(IfcUnitEnum, 'AMOUNTOFSUBSTANCEUNIT', INDETERMINATE) -areaunit = getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE) -doseequivalentunit = getattr(IfcUnitEnum, 'DOSEEQUIVALENTUNIT', INDETERMINATE) -electriccapacitanceunit = getattr(IfcUnitEnum, 'ELECTRICCAPACITANCEUNIT', INDETERMINATE) -electricchargeunit = getattr(IfcUnitEnum, 'ELECTRICCHARGEUNIT', INDETERMINATE) -electricconductanceunit = getattr(IfcUnitEnum, 'ELECTRICCONDUCTANCEUNIT', INDETERMINATE) -electriccurrentunit = getattr(IfcUnitEnum, 'ELECTRICCURRENTUNIT', INDETERMINATE) -electricresistanceunit = getattr(IfcUnitEnum, 'ELECTRICRESISTANCEUNIT', INDETERMINATE) -electricvoltageunit = getattr(IfcUnitEnum, 'ELECTRICVOLTAGEUNIT', INDETERMINATE) -energyunit = getattr(IfcUnitEnum, 'ENERGYUNIT', INDETERMINATE) -forceunit = getattr(IfcUnitEnum, 'FORCEUNIT', INDETERMINATE) -frequencyunit = getattr(IfcUnitEnum, 'FREQUENCYUNIT', INDETERMINATE) -illuminanceunit = getattr(IfcUnitEnum, 'ILLUMINANCEUNIT', INDETERMINATE) -inductanceunit = getattr(IfcUnitEnum, 'INDUCTANCEUNIT', INDETERMINATE) -lengthunit = getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE) -luminousfluxunit = getattr(IfcUnitEnum, 'LUMINOUSFLUXUNIT', INDETERMINATE) -luminousintensityunit = getattr(IfcUnitEnum, 'LUMINOUSINTENSITYUNIT', INDETERMINATE) -magneticfluxdensityunit = getattr(IfcUnitEnum, 'MAGNETICFLUXDENSITYUNIT', INDETERMINATE) -magneticfluxunit = getattr(IfcUnitEnum, 'MAGNETICFLUXUNIT', INDETERMINATE) -massunit = getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE) -planeangleunit = getattr(IfcUnitEnum, 'PLANEANGLEUNIT', INDETERMINATE) -powerunit = getattr(IfcUnitEnum, 'POWERUNIT', INDETERMINATE) -pressureunit = getattr(IfcUnitEnum, 'PRESSUREUNIT', INDETERMINATE) -radioactivityunit = getattr(IfcUnitEnum, 'RADIOACTIVITYUNIT', INDETERMINATE) -solidangleunit = getattr(IfcUnitEnum, 'SOLIDANGLEUNIT', INDETERMINATE) -thermodynamictemperatureunit = getattr(IfcUnitEnum, 'THERMODYNAMICTEMPERATUREUNIT', INDETERMINATE) -timeunit = getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE) -volumeunit = getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE) -userdefined = getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE) +absorbeddoseunit = IfcUnitEnum.ABSORBEDDOSEUNIT +amountofsubstanceunit = IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT +areaunit = IfcUnitEnum.AREAUNIT +doseequivalentunit = IfcUnitEnum.DOSEEQUIVALENTUNIT +electriccapacitanceunit = IfcUnitEnum.ELECTRICCAPACITANCEUNIT +electricchargeunit = IfcUnitEnum.ELECTRICCHARGEUNIT +electricconductanceunit = IfcUnitEnum.ELECTRICCONDUCTANCEUNIT +electriccurrentunit = IfcUnitEnum.ELECTRICCURRENTUNIT +electricresistanceunit = IfcUnitEnum.ELECTRICRESISTANCEUNIT +electricvoltageunit = IfcUnitEnum.ELECTRICVOLTAGEUNIT +energyunit = IfcUnitEnum.ENERGYUNIT +forceunit = IfcUnitEnum.FORCEUNIT +frequencyunit = IfcUnitEnum.FREQUENCYUNIT +illuminanceunit = IfcUnitEnum.ILLUMINANCEUNIT +inductanceunit = IfcUnitEnum.INDUCTANCEUNIT +lengthunit = IfcUnitEnum.LENGTHUNIT +luminousfluxunit = IfcUnitEnum.LUMINOUSFLUXUNIT +luminousintensityunit = IfcUnitEnum.LUMINOUSINTENSITYUNIT +magneticfluxdensityunit = IfcUnitEnum.MAGNETICFLUXDENSITYUNIT +magneticfluxunit = IfcUnitEnum.MAGNETICFLUXUNIT +massunit = IfcUnitEnum.MASSUNIT +planeangleunit = IfcUnitEnum.PLANEANGLEUNIT +powerunit = IfcUnitEnum.POWERUNIT +pressureunit = IfcUnitEnum.PRESSUREUNIT +radioactivityunit = IfcUnitEnum.RADIOACTIVITYUNIT +solidangleunit = IfcUnitEnum.SOLIDANGLEUNIT +thermodynamictemperatureunit = IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT +timeunit = IfcUnitEnum.TIMEUNIT +volumeunit = IfcUnitEnum.VOLUMEUNIT +userdefined = IfcUnitEnum.USERDEFINED IfcUnitaryControlElementTypeEnum = enum_namespace() -alarmpanel = getattr(IfcUnitaryControlElementTypeEnum, 'ALARMPANEL', INDETERMINATE) -controlpanel = getattr(IfcUnitaryControlElementTypeEnum, 'CONTROLPANEL', INDETERMINATE) -gasdetectionpanel = getattr(IfcUnitaryControlElementTypeEnum, 'GASDETECTIONPANEL', INDETERMINATE) -indicatorpanel = getattr(IfcUnitaryControlElementTypeEnum, 'INDICATORPANEL', INDETERMINATE) -mimicpanel = getattr(IfcUnitaryControlElementTypeEnum, 'MIMICPANEL', INDETERMINATE) -humidistat = getattr(IfcUnitaryControlElementTypeEnum, 'HUMIDISTAT', INDETERMINATE) -thermostat = getattr(IfcUnitaryControlElementTypeEnum, 'THERMOSTAT', INDETERMINATE) -weatherstation = getattr(IfcUnitaryControlElementTypeEnum, 'WEATHERSTATION', INDETERMINATE) -combined = getattr(IfcUnitaryControlElementTypeEnum, 'COMBINED', INDETERMINATE) -userdefined = getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcUnitaryControlElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +alarmpanel = IfcUnitaryControlElementTypeEnum.ALARMPANEL +controlpanel = IfcUnitaryControlElementTypeEnum.CONTROLPANEL +gasdetectionpanel = IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL +indicatorpanel = IfcUnitaryControlElementTypeEnum.INDICATORPANEL +mimicpanel = IfcUnitaryControlElementTypeEnum.MIMICPANEL +humidistat = IfcUnitaryControlElementTypeEnum.HUMIDISTAT +thermostat = IfcUnitaryControlElementTypeEnum.THERMOSTAT +weatherstation = IfcUnitaryControlElementTypeEnum.WEATHERSTATION +combined = IfcUnitaryControlElementTypeEnum.COMBINED +userdefined = IfcUnitaryControlElementTypeEnum.USERDEFINED +notdefined = IfcUnitaryControlElementTypeEnum.NOTDEFINED IfcUnitaryEquipmentTypeEnum = enum_namespace() -airhandler = getattr(IfcUnitaryEquipmentTypeEnum, 'AIRHANDLER', INDETERMINATE) -airconditioningunit = getattr(IfcUnitaryEquipmentTypeEnum, 'AIRCONDITIONINGUNIT', INDETERMINATE) -dehumidifier = getattr(IfcUnitaryEquipmentTypeEnum, 'DEHUMIDIFIER', INDETERMINATE) -splitsystem = getattr(IfcUnitaryEquipmentTypeEnum, 'SPLITSYSTEM', INDETERMINATE) -rooftopunit = getattr(IfcUnitaryEquipmentTypeEnum, 'ROOFTOPUNIT', INDETERMINATE) -userdefined = getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcUnitaryEquipmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +airhandler = IfcUnitaryEquipmentTypeEnum.AIRHANDLER +airconditioningunit = IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT +dehumidifier = IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER +splitsystem = IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM +rooftopunit = IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT +userdefined = IfcUnitaryEquipmentTypeEnum.USERDEFINED +notdefined = IfcUnitaryEquipmentTypeEnum.NOTDEFINED IfcValveTypeEnum = enum_namespace() -airrelease = getattr(IfcValveTypeEnum, 'AIRRELEASE', INDETERMINATE) -antivacuum = getattr(IfcValveTypeEnum, 'ANTIVACUUM', INDETERMINATE) -changeover = getattr(IfcValveTypeEnum, 'CHANGEOVER', INDETERMINATE) -check = getattr(IfcValveTypeEnum, 'CHECK', INDETERMINATE) -commissioning = getattr(IfcValveTypeEnum, 'COMMISSIONING', INDETERMINATE) -diverting = getattr(IfcValveTypeEnum, 'DIVERTING', INDETERMINATE) -drawoffcock = getattr(IfcValveTypeEnum, 'DRAWOFFCOCK', INDETERMINATE) -doublecheck = getattr(IfcValveTypeEnum, 'DOUBLECHECK', INDETERMINATE) -doubleregulating = getattr(IfcValveTypeEnum, 'DOUBLEREGULATING', INDETERMINATE) -faucet = getattr(IfcValveTypeEnum, 'FAUCET', INDETERMINATE) -flushing = getattr(IfcValveTypeEnum, 'FLUSHING', INDETERMINATE) -gascock = getattr(IfcValveTypeEnum, 'GASCOCK', INDETERMINATE) -gastap = getattr(IfcValveTypeEnum, 'GASTAP', INDETERMINATE) -isolating = getattr(IfcValveTypeEnum, 'ISOLATING', INDETERMINATE) -mixing = getattr(IfcValveTypeEnum, 'MIXING', INDETERMINATE) -pressurereducing = getattr(IfcValveTypeEnum, 'PRESSUREREDUCING', INDETERMINATE) -pressurerelief = getattr(IfcValveTypeEnum, 'PRESSURERELIEF', INDETERMINATE) -regulating = getattr(IfcValveTypeEnum, 'REGULATING', INDETERMINATE) -safetycutoff = getattr(IfcValveTypeEnum, 'SAFETYCUTOFF', INDETERMINATE) -steamtrap = getattr(IfcValveTypeEnum, 'STEAMTRAP', INDETERMINATE) -stopcock = getattr(IfcValveTypeEnum, 'STOPCOCK', INDETERMINATE) -userdefined = getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcValveTypeEnum, 'NOTDEFINED', INDETERMINATE) +airrelease = IfcValveTypeEnum.AIRRELEASE +antivacuum = IfcValveTypeEnum.ANTIVACUUM +changeover = IfcValveTypeEnum.CHANGEOVER +check = IfcValveTypeEnum.CHECK +commissioning = IfcValveTypeEnum.COMMISSIONING +diverting = IfcValveTypeEnum.DIVERTING +drawoffcock = IfcValveTypeEnum.DRAWOFFCOCK +doublecheck = IfcValveTypeEnum.DOUBLECHECK +doubleregulating = IfcValveTypeEnum.DOUBLEREGULATING +faucet = IfcValveTypeEnum.FAUCET +flushing = IfcValveTypeEnum.FLUSHING +gascock = IfcValveTypeEnum.GASCOCK +gastap = IfcValveTypeEnum.GASTAP +isolating = IfcValveTypeEnum.ISOLATING +mixing = IfcValveTypeEnum.MIXING +pressurereducing = IfcValveTypeEnum.PRESSUREREDUCING +pressurerelief = IfcValveTypeEnum.PRESSURERELIEF +regulating = IfcValveTypeEnum.REGULATING +safetycutoff = IfcValveTypeEnum.SAFETYCUTOFF +steamtrap = IfcValveTypeEnum.STEAMTRAP +stopcock = IfcValveTypeEnum.STOPCOCK +userdefined = IfcValveTypeEnum.USERDEFINED +notdefined = IfcValveTypeEnum.NOTDEFINED IfcVibrationDamperTypeEnum = enum_namespace() -bending_yield = getattr(IfcVibrationDamperTypeEnum, 'BENDING_YIELD', INDETERMINATE) -shear_yield = getattr(IfcVibrationDamperTypeEnum, 'SHEAR_YIELD', INDETERMINATE) -axial_yield = getattr(IfcVibrationDamperTypeEnum, 'AXIAL_YIELD', INDETERMINATE) -friction = getattr(IfcVibrationDamperTypeEnum, 'FRICTION', INDETERMINATE) -viscous = getattr(IfcVibrationDamperTypeEnum, 'VISCOUS', INDETERMINATE) -rubber = getattr(IfcVibrationDamperTypeEnum, 'RUBBER', INDETERMINATE) -userdefined = getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVibrationDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_yield = IfcVibrationDamperTypeEnum.BENDING_YIELD +shear_yield = IfcVibrationDamperTypeEnum.SHEAR_YIELD +axial_yield = IfcVibrationDamperTypeEnum.AXIAL_YIELD +friction = IfcVibrationDamperTypeEnum.FRICTION +viscous = IfcVibrationDamperTypeEnum.VISCOUS +rubber = IfcVibrationDamperTypeEnum.RUBBER +userdefined = IfcVibrationDamperTypeEnum.USERDEFINED +notdefined = IfcVibrationDamperTypeEnum.NOTDEFINED IfcVibrationIsolatorTypeEnum = enum_namespace() -compression = getattr(IfcVibrationIsolatorTypeEnum, 'COMPRESSION', INDETERMINATE) -spring = getattr(IfcVibrationIsolatorTypeEnum, 'SPRING', INDETERMINATE) -base = getattr(IfcVibrationIsolatorTypeEnum, 'BASE', INDETERMINATE) -userdefined = getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVibrationIsolatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +compression = IfcVibrationIsolatorTypeEnum.COMPRESSION +spring = IfcVibrationIsolatorTypeEnum.SPRING +base = IfcVibrationIsolatorTypeEnum.BASE +userdefined = IfcVibrationIsolatorTypeEnum.USERDEFINED +notdefined = IfcVibrationIsolatorTypeEnum.NOTDEFINED IfcVoidingFeatureTypeEnum = enum_namespace() -cutout = getattr(IfcVoidingFeatureTypeEnum, 'CUTOUT', INDETERMINATE) -notch = getattr(IfcVoidingFeatureTypeEnum, 'NOTCH', INDETERMINATE) -hole = getattr(IfcVoidingFeatureTypeEnum, 'HOLE', INDETERMINATE) -miter = getattr(IfcVoidingFeatureTypeEnum, 'MITER', INDETERMINATE) -chamfer = getattr(IfcVoidingFeatureTypeEnum, 'CHAMFER', INDETERMINATE) -edge = getattr(IfcVoidingFeatureTypeEnum, 'EDGE', INDETERMINATE) -userdefined = getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVoidingFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +cutout = IfcVoidingFeatureTypeEnum.CUTOUT +notch = IfcVoidingFeatureTypeEnum.NOTCH +hole = IfcVoidingFeatureTypeEnum.HOLE +miter = IfcVoidingFeatureTypeEnum.MITER +chamfer = IfcVoidingFeatureTypeEnum.CHAMFER +edge = IfcVoidingFeatureTypeEnum.EDGE +userdefined = IfcVoidingFeatureTypeEnum.USERDEFINED +notdefined = IfcVoidingFeatureTypeEnum.NOTDEFINED IfcWallTypeEnum = enum_namespace() -movable = getattr(IfcWallTypeEnum, 'MOVABLE', INDETERMINATE) -parapet = getattr(IfcWallTypeEnum, 'PARAPET', INDETERMINATE) -partitioning = getattr(IfcWallTypeEnum, 'PARTITIONING', INDETERMINATE) -plumbingwall = getattr(IfcWallTypeEnum, 'PLUMBINGWALL', INDETERMINATE) -shear = getattr(IfcWallTypeEnum, 'SHEAR', INDETERMINATE) -solidwall = getattr(IfcWallTypeEnum, 'SOLIDWALL', INDETERMINATE) -standard = getattr(IfcWallTypeEnum, 'STANDARD', INDETERMINATE) -polygonal = getattr(IfcWallTypeEnum, 'POLYGONAL', INDETERMINATE) -elementedwall = getattr(IfcWallTypeEnum, 'ELEMENTEDWALL', INDETERMINATE) -retainingwall = getattr(IfcWallTypeEnum, 'RETAININGWALL', INDETERMINATE) -wavewall = getattr(IfcWallTypeEnum, 'WAVEWALL', INDETERMINATE) -userdefined = getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +movable = IfcWallTypeEnum.MOVABLE +parapet = IfcWallTypeEnum.PARAPET +partitioning = IfcWallTypeEnum.PARTITIONING +plumbingwall = IfcWallTypeEnum.PLUMBINGWALL +shear = IfcWallTypeEnum.SHEAR +solidwall = IfcWallTypeEnum.SOLIDWALL +standard = IfcWallTypeEnum.STANDARD +polygonal = IfcWallTypeEnum.POLYGONAL +elementedwall = IfcWallTypeEnum.ELEMENTEDWALL +retainingwall = IfcWallTypeEnum.RETAININGWALL +wavewall = IfcWallTypeEnum.WAVEWALL +userdefined = IfcWallTypeEnum.USERDEFINED +notdefined = IfcWallTypeEnum.NOTDEFINED IfcWasteTerminalTypeEnum = enum_namespace() -floortrap = getattr(IfcWasteTerminalTypeEnum, 'FLOORTRAP', INDETERMINATE) -floorwaste = getattr(IfcWasteTerminalTypeEnum, 'FLOORWASTE', INDETERMINATE) -gullysump = getattr(IfcWasteTerminalTypeEnum, 'GULLYSUMP', INDETERMINATE) -gullytrap = getattr(IfcWasteTerminalTypeEnum, 'GULLYTRAP', INDETERMINATE) -roofdrain = getattr(IfcWasteTerminalTypeEnum, 'ROOFDRAIN', INDETERMINATE) -wastedisposalunit = getattr(IfcWasteTerminalTypeEnum, 'WASTEDISPOSALUNIT', INDETERMINATE) -wastetrap = getattr(IfcWasteTerminalTypeEnum, 'WASTETRAP', INDETERMINATE) -userdefined = getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWasteTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +floortrap = IfcWasteTerminalTypeEnum.FLOORTRAP +floorwaste = IfcWasteTerminalTypeEnum.FLOORWASTE +gullysump = IfcWasteTerminalTypeEnum.GULLYSUMP +gullytrap = IfcWasteTerminalTypeEnum.GULLYTRAP +roofdrain = IfcWasteTerminalTypeEnum.ROOFDRAIN +wastedisposalunit = IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT +wastetrap = IfcWasteTerminalTypeEnum.WASTETRAP +userdefined = IfcWasteTerminalTypeEnum.USERDEFINED +notdefined = IfcWasteTerminalTypeEnum.NOTDEFINED IfcWindowPanelOperationEnum = enum_namespace() -sidehungrighthand = getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGRIGHTHAND', INDETERMINATE) -sidehunglefthand = getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGLEFTHAND', INDETERMINATE) -tiltandturnrighthand = getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNRIGHTHAND', INDETERMINATE) -tiltandturnlefthand = getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNLEFTHAND', INDETERMINATE) -tophung = getattr(IfcWindowPanelOperationEnum, 'TOPHUNG', INDETERMINATE) -bottomhung = getattr(IfcWindowPanelOperationEnum, 'BOTTOMHUNG', INDETERMINATE) -pivothorizontal = getattr(IfcWindowPanelOperationEnum, 'PIVOTHORIZONTAL', INDETERMINATE) -pivotvertical = getattr(IfcWindowPanelOperationEnum, 'PIVOTVERTICAL', INDETERMINATE) -slidinghorizontal = getattr(IfcWindowPanelOperationEnum, 'SLIDINGHORIZONTAL', INDETERMINATE) -slidingvertical = getattr(IfcWindowPanelOperationEnum, 'SLIDINGVERTICAL', INDETERMINATE) -removablecasement = getattr(IfcWindowPanelOperationEnum, 'REMOVABLECASEMENT', INDETERMINATE) -fixedcasement = getattr(IfcWindowPanelOperationEnum, 'FIXEDCASEMENT', INDETERMINATE) -otheroperation = getattr(IfcWindowPanelOperationEnum, 'OTHEROPERATION', INDETERMINATE) -notdefined = getattr(IfcWindowPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +sidehungrighthand = IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND +sidehunglefthand = IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND +tiltandturnrighthand = IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND +tiltandturnlefthand = IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND +tophung = IfcWindowPanelOperationEnum.TOPHUNG +bottomhung = IfcWindowPanelOperationEnum.BOTTOMHUNG +pivothorizontal = IfcWindowPanelOperationEnum.PIVOTHORIZONTAL +pivotvertical = IfcWindowPanelOperationEnum.PIVOTVERTICAL +slidinghorizontal = IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL +slidingvertical = IfcWindowPanelOperationEnum.SLIDINGVERTICAL +removablecasement = IfcWindowPanelOperationEnum.REMOVABLECASEMENT +fixedcasement = IfcWindowPanelOperationEnum.FIXEDCASEMENT +otheroperation = IfcWindowPanelOperationEnum.OTHEROPERATION +notdefined = IfcWindowPanelOperationEnum.NOTDEFINED IfcWindowPanelPositionEnum = enum_namespace() -left = getattr(IfcWindowPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = getattr(IfcWindowPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = getattr(IfcWindowPanelPositionEnum, 'RIGHT', INDETERMINATE) -bottom = getattr(IfcWindowPanelPositionEnum, 'BOTTOM', INDETERMINATE) -top = getattr(IfcWindowPanelPositionEnum, 'TOP', INDETERMINATE) -notdefined = getattr(IfcWindowPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcWindowPanelPositionEnum.LEFT +middle = IfcWindowPanelPositionEnum.MIDDLE +right = IfcWindowPanelPositionEnum.RIGHT +bottom = IfcWindowPanelPositionEnum.BOTTOM +top = IfcWindowPanelPositionEnum.TOP +notdefined = IfcWindowPanelPositionEnum.NOTDEFINED IfcWindowStyleConstructionEnum = enum_namespace() -aluminium = getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = getattr(IfcWindowStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = getattr(IfcWindowStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = getattr(IfcWindowStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -plastic = getattr(IfcWindowStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -other_construction = getattr(IfcWindowStyleConstructionEnum, 'OTHER_CONSTRUCTION', INDETERMINATE) -notdefined = getattr(IfcWindowStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcWindowStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcWindowStyleConstructionEnum.STEEL +wood = IfcWindowStyleConstructionEnum.WOOD +aluminium_wood = IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD +plastic = IfcWindowStyleConstructionEnum.PLASTIC +other_construction = IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION +notdefined = IfcWindowStyleConstructionEnum.NOTDEFINED IfcWindowStyleOperationEnum = enum_namespace() -single_panel = getattr(IfcWindowStyleOperationEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = getattr(IfcWindowStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowStyleOperationEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowStyleOperationEnum.USERDEFINED +notdefined = IfcWindowStyleOperationEnum.NOTDEFINED IfcWindowTypeEnum = enum_namespace() -window = getattr(IfcWindowTypeEnum, 'WINDOW', INDETERMINATE) -skylight = getattr(IfcWindowTypeEnum, 'SKYLIGHT', INDETERMINATE) -lightdome = getattr(IfcWindowTypeEnum, 'LIGHTDOME', INDETERMINATE) -userdefined = getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowTypeEnum, 'NOTDEFINED', INDETERMINATE) +window = IfcWindowTypeEnum.WINDOW +skylight = IfcWindowTypeEnum.SKYLIGHT +lightdome = IfcWindowTypeEnum.LIGHTDOME +userdefined = IfcWindowTypeEnum.USERDEFINED +notdefined = IfcWindowTypeEnum.NOTDEFINED IfcWindowTypePartitioningEnum = enum_namespace() -single_panel = getattr(IfcWindowTypePartitioningEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = getattr(IfcWindowTypePartitioningEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowTypePartitioningEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowTypePartitioningEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowTypePartitioningEnum.USERDEFINED +notdefined = IfcWindowTypePartitioningEnum.NOTDEFINED IfcWorkCalendarTypeEnum = enum_namespace() -firstshift = getattr(IfcWorkCalendarTypeEnum, 'FIRSTSHIFT', INDETERMINATE) -secondshift = getattr(IfcWorkCalendarTypeEnum, 'SECONDSHIFT', INDETERMINATE) -thirdshift = getattr(IfcWorkCalendarTypeEnum, 'THIRDSHIFT', INDETERMINATE) -userdefined = getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkCalendarTypeEnum, 'NOTDEFINED', INDETERMINATE) +firstshift = IfcWorkCalendarTypeEnum.FIRSTSHIFT +secondshift = IfcWorkCalendarTypeEnum.SECONDSHIFT +thirdshift = IfcWorkCalendarTypeEnum.THIRDSHIFT +userdefined = IfcWorkCalendarTypeEnum.USERDEFINED +notdefined = IfcWorkCalendarTypeEnum.NOTDEFINED IfcWorkPlanTypeEnum = enum_namespace() -actual = getattr(IfcWorkPlanTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = getattr(IfcWorkPlanTypeEnum, 'BASELINE', INDETERMINATE) -planned = getattr(IfcWorkPlanTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkPlanTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkPlanTypeEnum.ACTUAL +baseline = IfcWorkPlanTypeEnum.BASELINE +planned = IfcWorkPlanTypeEnum.PLANNED +userdefined = IfcWorkPlanTypeEnum.USERDEFINED +notdefined = IfcWorkPlanTypeEnum.NOTDEFINED IfcWorkScheduleTypeEnum = enum_namespace() -actual = getattr(IfcWorkScheduleTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = getattr(IfcWorkScheduleTypeEnum, 'BASELINE', INDETERMINATE) -planned = getattr(IfcWorkScheduleTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkScheduleTypeEnum.ACTUAL +baseline = IfcWorkScheduleTypeEnum.BASELINE +planned = IfcWorkScheduleTypeEnum.PLANNED +userdefined = IfcWorkScheduleTypeEnum.USERDEFINED +notdefined = IfcWorkScheduleTypeEnum.NOTDEFINED def IfcActionRequest(*args, **kwargs): return ifcopenshell.create_entity('IfcActionRequest', 'IFC4X3_RC1', *args, **kwargs) @@ -5118,7 +5128,7 @@ class IfcBoxAlignment_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False class IfcCardinalPointReference_GreaterThanZero: SCOPE = 'type' @@ -5199,7 +5209,7 @@ class IfcFontStyle_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False class IfcFontVariant_WR1: SCOPE = 'type' @@ -5208,7 +5218,7 @@ class IfcFontVariant_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False class IfcFontWeight_WR1: SCOPE = 'type' @@ -5217,7 +5227,7 @@ class IfcFontWeight_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False class IfcHeatingValueMeasure_WR1: SCOPE = 'type' @@ -5316,7 +5326,7 @@ class IfcTextAlignment_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False class IfcTextDecoration_WR1: SCOPE = 'type' @@ -5325,7 +5335,7 @@ class IfcTextDecoration_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False class IfcTextTransformation_WR1: SCOPE = 'type' @@ -5334,7 +5344,7 @@ class IfcTextTransformation_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False class IfcActorRole_WR1: SCOPE = 'entity' @@ -5343,8 +5353,8 @@ class IfcActorRole_WR1: @staticmethod def __call__(self): - role = getattr(self, 'Role', INDETERMINATE) - assert (role != getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) or (role == getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedRole', INDETERMINATE)))) is not False + role = express_getattr(self, 'Role', INDETERMINATE) + assert (role != express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) or (role == express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedRole', INDETERMINATE)))) is not False class IfcActuator_CorrectPredefinedType: SCOPE = 'entity' @@ -5353,8 +5363,8 @@ class IfcActuator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcActuator_CorrectTypeAssigned: SCOPE = 'entity' @@ -5363,8 +5373,8 @@ class IfcActuator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcactuatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcactuatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcActuatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -5373,8 +5383,8 @@ class IfcActuatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAddress_WR1: SCOPE = 'entity' @@ -5383,8 +5393,8 @@ class IfcAddress_WR1: @staticmethod def __call__(self): - purpose = getattr(self, 'Purpose', INDETERMINATE) - assert (not exists(purpose) or (purpose != getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) or (purpose == getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedPurpose', INDETERMINATE))))) is not False + purpose = express_getattr(self, 'Purpose', INDETERMINATE) + assert (not exists(purpose) or (purpose != express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) or (purpose == express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedPurpose', INDETERMINATE))))) is not False class IfcAdvancedBrep_HasAdvancedFaces: SCOPE = 'entity' @@ -5393,7 +5403,7 @@ class IfcAdvancedBrep_HasAdvancedFaces: @staticmethod def __call__(self): - assert (sizeof([afs for afs in getattr(getattr(self, 'Outer', INDETERMINATE), 'CfsFaces', INDETERMINATE) if not 'ifc4x3_rc1.ifcadvancedface' in typeof(afs)]) == 0) is not False + assert (sizeof([afs for afs in express_getattr(express_getattr(self, 'Outer', INDETERMINATE), 'CfsFaces', INDETERMINATE) if not 'ifc4x3_rc1.ifcadvancedface' in typeof(afs)]) == 0) is not False class IfcAdvancedBrepWithVoids_VoidsHaveAdvancedFaces: SCOPE = 'entity' @@ -5402,8 +5412,8 @@ class IfcAdvancedBrepWithVoids_VoidsHaveAdvancedFaces: @staticmethod def __call__(self): - voids = getattr(self, 'Voids', INDETERMINATE) - assert (sizeof([vsh for vsh in voids if sizeof([afs for afs in getattr(vsh, 'CfsFaces', INDETERMINATE) if not 'ifc4x3_rc1.ifcadvancedface' in typeof(afs)]) == 0]) == 0) is not False + voids = express_getattr(self, 'Voids', INDETERMINATE) + assert (sizeof([vsh for vsh in voids if sizeof([afs for afs in express_getattr(vsh, 'CfsFaces', INDETERMINATE) if not 'ifc4x3_rc1.ifcadvancedface' in typeof(afs)]) == 0]) == 0) is not False class IfcAdvancedFace_ApplicableSurface: SCOPE = 'entity' @@ -5412,7 +5422,7 @@ class IfcAdvancedFace_ApplicableSurface: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_rc1.ifcelementarysurface', 'ifc4x3_rc1.ifcsweptsurface', 'ifc4x3_rc1.ifcbsplinesurface'] * typeof(getattr(self, 'FaceSurface', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_rc1.ifcelementarysurface', 'ifc4x3_rc1.ifcsweptsurface', 'ifc4x3_rc1.ifcbsplinesurface'] * typeof(express_getattr(self, 'FaceSurface', INDETERMINATE))) == 1) is not False class IfcAdvancedFace_RequiresEdgeCurve: SCOPE = 'entity' @@ -5421,7 +5431,7 @@ class IfcAdvancedFace_RequiresEdgeCurve: @staticmethod def __call__(self): - assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3_rc1.ifcedgeloop' in typeof(getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in getattr(getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not 'ifc4x3_rc1.ifcedgecurve' in typeof(getattr(oe, 'EdgeElement', INDETERMINATE))]) == 0]) == 0) is not False + assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in express_getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3_rc1.ifcedgeloop' in typeof(express_getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in express_getattr(express_getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not 'ifc4x3_rc1.ifcedgecurve' in typeof(express_getattr(oe, 'EdgeElement', INDETERMINATE))]) == 0]) == 0) is not False class IfcAdvancedFace_ApplicableEdgeCurves: SCOPE = 'entity' @@ -5430,7 +5440,7 @@ class IfcAdvancedFace_ApplicableEdgeCurves: @staticmethod def __call__(self): - assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3_rc1.ifcedgeloop' in typeof(getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in getattr(getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not sizeof(['ifc4x3_rc1.ifcline', 'ifc4x3_rc1.ifcconic', 'ifc4x3_rc1.ifcpolyline', 'ifc4x3_rc1.ifcbsplinecurve'] * typeof(getattr(getattr(oe, 'EdgeElement', INDETERMINATE), 'EdgeGeometry', INDETERMINATE))) == 1]) == 0]) == 0) is not False + assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in express_getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3_rc1.ifcedgeloop' in typeof(express_getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in express_getattr(express_getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not sizeof(['ifc4x3_rc1.ifcline', 'ifc4x3_rc1.ifcconic', 'ifc4x3_rc1.ifcpolyline', 'ifc4x3_rc1.ifcbsplinecurve'] * typeof(express_getattr(express_getattr(oe, 'EdgeElement', INDETERMINATE), 'EdgeGeometry', INDETERMINATE))) == 1]) == 0]) == 0) is not False class IfcAirTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -5439,8 +5449,8 @@ class IfcAirTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -5449,8 +5459,8 @@ class IfcAirTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcairterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcairterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirTerminalBox_CorrectPredefinedType: SCOPE = 'entity' @@ -5459,8 +5469,8 @@ class IfcAirTerminalBox_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirTerminalBox_CorrectTypeAssigned: SCOPE = 'entity' @@ -5469,8 +5479,8 @@ class IfcAirTerminalBox_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcairterminalboxtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcairterminalboxtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirTerminalBoxType_CorrectPredefinedType: SCOPE = 'entity' @@ -5479,8 +5489,8 @@ class IfcAirTerminalBoxType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAirTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -5489,8 +5499,8 @@ class IfcAirTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAirToAirHeatRecovery_CorrectPredefinedType: SCOPE = 'entity' @@ -5499,8 +5509,8 @@ class IfcAirToAirHeatRecovery_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirToAirHeatRecovery_CorrectTypeAssigned: SCOPE = 'entity' @@ -5509,8 +5519,8 @@ class IfcAirToAirHeatRecovery_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcairtoairheatrecoverytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcairtoairheatrecoverytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirToAirHeatRecoveryType_CorrectPredefinedType: SCOPE = 'entity' @@ -5519,8 +5529,8 @@ class IfcAirToAirHeatRecoveryType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAlarm_CorrectPredefinedType: SCOPE = 'entity' @@ -5529,8 +5539,8 @@ class IfcAlarm_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAlarm_CorrectTypeAssigned: SCOPE = 'entity' @@ -5539,8 +5549,8 @@ class IfcAlarm_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcalarmtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcalarmtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAlarmType_CorrectPredefinedType: SCOPE = 'entity' @@ -5549,8 +5559,8 @@ class IfcAlarmType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcApproval_HasIdentifierOrName: SCOPE = 'entity' @@ -5559,8 +5569,8 @@ class IfcApproval_HasIdentifierOrName: @staticmethod def __call__(self): - identifier = getattr(self, 'Identifier', INDETERMINATE) - name = getattr(self, 'Name', INDETERMINATE) + identifier = express_getattr(self, 'Identifier', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) assert (exists(identifier) or exists(name)) is not False class IfcArbitraryClosedProfileDef_WR1: @@ -5570,8 +5580,8 @@ class IfcArbitraryClosedProfileDef_WR1: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) - assert (getattr(outercurve, 'Dim', INDETERMINATE) == 2) is not False + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) + assert (express_getattr(outercurve, 'Dim', INDETERMINATE) == 2) is not False class IfcArbitraryClosedProfileDef_WR2: SCOPE = 'entity' @@ -5580,7 +5590,7 @@ class IfcArbitraryClosedProfileDef_WR2: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) assert (not 'ifc4x3_rc1.ifcline' in typeof(outercurve)) is not False class IfcArbitraryClosedProfileDef_WR3: @@ -5590,7 +5600,7 @@ class IfcArbitraryClosedProfileDef_WR3: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) assert (not 'ifc4x3_rc1.ifcoffsetcurve2d' in typeof(outercurve)) is not False class IfcArbitraryOpenProfileDef_WR11: @@ -5600,7 +5610,7 @@ class IfcArbitraryOpenProfileDef_WR11: @staticmethod def __call__(self): - assert ('ifc4x3_rc1.ifccenterlineprofiledef' in typeof(self) or getattr(self, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False + assert ('ifc4x3_rc1.ifccenterlineprofiledef' in typeof(self) or express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False class IfcArbitraryOpenProfileDef_WR12: SCOPE = 'entity' @@ -5609,8 +5619,8 @@ class IfcArbitraryOpenProfileDef_WR12: @staticmethod def __call__(self): - curve = getattr(self, 'Curve', INDETERMINATE) - assert (getattr(curve, 'Dim', INDETERMINATE) == 2) is not False + curve = express_getattr(self, 'Curve', INDETERMINATE) + assert (express_getattr(curve, 'Dim', INDETERMINATE) == 2) is not False class IfcArbitraryProfileDefWithVoids_WR1: SCOPE = 'entity' @@ -5619,7 +5629,7 @@ class IfcArbitraryProfileDefWithVoids_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'ProfileType', INDETERMINATE) == area) is not False + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == area) is not False class IfcArbitraryProfileDefWithVoids_WR2: SCOPE = 'entity' @@ -5628,8 +5638,8 @@ class IfcArbitraryProfileDefWithVoids_WR2: @staticmethod def __call__(self): - innercurves = getattr(self, 'InnerCurves', INDETERMINATE) - assert (sizeof([temp for temp in innercurves if getattr(temp, 'Dim', INDETERMINATE) != 2]) == 0) is not False + innercurves = express_getattr(self, 'InnerCurves', INDETERMINATE) + assert (sizeof([temp for temp in innercurves if express_getattr(temp, 'Dim', INDETERMINATE) != 2]) == 0) is not False class IfcArbitraryProfileDefWithVoids_WR3: SCOPE = 'entity' @@ -5638,7 +5648,7 @@ class IfcArbitraryProfileDefWithVoids_WR3: @staticmethod def __call__(self): - innercurves = getattr(self, 'InnerCurves', INDETERMINATE) + innercurves = express_getattr(self, 'InnerCurves', INDETERMINATE) assert (sizeof([temp for temp in innercurves if 'ifc4x3_rc1.ifcline' in typeof(temp)]) == 0) is not False class IfcAsymmetricIShapeProfileDef_ValidFlangeThickness: @@ -5648,9 +5658,9 @@ class IfcAsymmetricIShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - bottomflangethickness = getattr(self, 'BottomFlangeThickness', INDETERMINATE) - topflangethickness = getattr(self, 'TopFlangeThickness', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + bottomflangethickness = express_getattr(self, 'BottomFlangeThickness', INDETERMINATE) + topflangethickness = express_getattr(self, 'TopFlangeThickness', INDETERMINATE) assert (not exists(topflangethickness) or bottomflangethickness + topflangethickness < overalldepth) is not False class IfcAsymmetricIShapeProfileDef_ValidWebThickness: @@ -5660,9 +5670,9 @@ class IfcAsymmetricIShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - bottomflangewidth = getattr(self, 'BottomFlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - topflangewidth = getattr(self, 'TopFlangeWidth', INDETERMINATE) + bottomflangewidth = express_getattr(self, 'BottomFlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + topflangewidth = express_getattr(self, 'TopFlangeWidth', INDETERMINATE) assert (webthickness < bottomflangewidth and webthickness < topflangewidth) is not False class IfcAsymmetricIShapeProfileDef_ValidBottomFilletRadius: @@ -5672,9 +5682,9 @@ class IfcAsymmetricIShapeProfileDef_ValidBottomFilletRadius: @staticmethod def __call__(self): - bottomflangewidth = getattr(self, 'BottomFlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - bottomflangefilletradius = getattr(self, 'BottomFlangeFilletRadius', INDETERMINATE) + bottomflangewidth = express_getattr(self, 'BottomFlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + bottomflangefilletradius = express_getattr(self, 'BottomFlangeFilletRadius', INDETERMINATE) assert (not exists(bottomflangefilletradius) or bottomflangefilletradius <= (bottomflangewidth - webthickness) / 2.0) is not False class IfcAsymmetricIShapeProfileDef_ValidTopFilletRadius: @@ -5684,9 +5694,9 @@ class IfcAsymmetricIShapeProfileDef_ValidTopFilletRadius: @staticmethod def __call__(self): - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - topflangewidth = getattr(self, 'TopFlangeWidth', INDETERMINATE) - topflangefilletradius = getattr(self, 'TopFlangeFilletRadius', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + topflangewidth = express_getattr(self, 'TopFlangeWidth', INDETERMINATE) + topflangefilletradius = express_getattr(self, 'TopFlangeFilletRadius', INDETERMINATE) assert (not exists(topflangefilletradius) or topflangefilletradius <= (topflangewidth - webthickness) / 2.0) is not False class IfcAudioVisualAppliance_CorrectPredefinedType: @@ -5696,8 +5706,8 @@ class IfcAudioVisualAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAudioVisualAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -5706,8 +5716,8 @@ class IfcAudioVisualAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcaudiovisualappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcaudiovisualappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAudioVisualApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -5716,8 +5726,8 @@ class IfcAudioVisualApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAxis1Placement_AxisIs3D: SCOPE = 'entity' @@ -5726,8 +5736,8 @@ class IfcAxis1Placement_AxisIs3D: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (not exists(axis) or getattr(axis, 'Dim', INDETERMINATE) == 3) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (not exists(axis) or express_getattr(axis, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis1Placement_LocationIs3D: SCOPE = 'entity' @@ -5736,10 +5746,10 @@ class IfcAxis1Placement_LocationIs3D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False def calc_IfcAxis1Placement_Z(self): - axis = getattr(self, 'Axis', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) return nvl(IfcNormalise(axis), IfcDirection(DirectionRatios=[0.0, 0.0, 1.0])) class IfcAxis2Placement2D_RefDirIs2D: @@ -5749,8 +5759,8 @@ class IfcAxis2Placement2D_RefDirIs2D: @staticmethod def __call__(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(refdirection) or getattr(refdirection, 'Dim', INDETERMINATE) == 2) is not False + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(refdirection) or express_getattr(refdirection, 'Dim', INDETERMINATE) == 2) is not False class IfcAxis2Placement2D_LocationIs2D: SCOPE = 'entity' @@ -5759,10 +5769,10 @@ class IfcAxis2Placement2D_LocationIs2D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False def calc_IfcAxis2Placement2D_P(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) return IfcBuild2Axes(refdirection) class IfcAxis2Placement3D_LocationIs3D: @@ -5772,7 +5782,7 @@ class IfcAxis2Placement3D_LocationIs3D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_AxisIs3D: SCOPE = 'entity' @@ -5781,8 +5791,8 @@ class IfcAxis2Placement3D_AxisIs3D: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (not exists(axis) or getattr(axis, 'Dim', INDETERMINATE) == 3) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (not exists(axis) or express_getattr(axis, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_RefDirIs3D: SCOPE = 'entity' @@ -5791,8 +5801,8 @@ class IfcAxis2Placement3D_RefDirIs3D: @staticmethod def __call__(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(refdirection) or getattr(refdirection, 'Dim', INDETERMINATE) == 3) is not False + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(refdirection) or express_getattr(refdirection, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_AxisToRefDirPosition: SCOPE = 'entity' @@ -5801,9 +5811,9 @@ class IfcAxis2Placement3D_AxisToRefDirPosition: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(axis) or not exists(refdirection) or getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(axis) or not exists(refdirection) or express_getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False class IfcAxis2Placement3D_AxisAndRefDirProvision: SCOPE = 'entity' @@ -5812,13 +5822,13 @@ class IfcAxis2Placement3D_AxisAndRefDirProvision: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) assert (not exists(axis) ^ exists(refdirection)) is not False def calc_IfcAxis2Placement3D_P(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) return IfcBuildAxes(axis, refdirection) class IfcBSplineCurve_SameDim: @@ -5828,16 +5838,16 @@ class IfcBSplineCurve_SameDim: @staticmethod def __call__(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - assert (sizeof([temp for temp in controlpointslist if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + assert (sizeof([temp for temp in controlpointslist if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcBSplineCurve_UpperIndexOnControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(controlpointslist) - 1 def calc_IfcBSplineCurve_ControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - upperindexoncontrolpoints = getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + upperindexoncontrolpoints = express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) return IfcListToArray(controlpointslist, 0, upperindexoncontrolpoints) class IfcBSplineCurveWithKnots_ConsistentBSpline: @@ -5847,11 +5857,11 @@ class IfcBSplineCurveWithKnots_ConsistentBSpline: @staticmethod def __call__(self): - degree = getattr(self, 'Degree', INDETERMINATE) - upperindexoncontrolpoints = getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) - knotmultiplicities = getattr(self, 'KnotMultiplicities', INDETERMINATE) - knots = getattr(self, 'Knots', INDETERMINATE) - upperindexonknots = getattr(self, 'UpperIndexOnKnots', INDETERMINATE) + degree = express_getattr(self, 'Degree', INDETERMINATE) + upperindexoncontrolpoints = express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) + knotmultiplicities = express_getattr(self, 'KnotMultiplicities', INDETERMINATE) + knots = express_getattr(self, 'Knots', INDETERMINATE) + upperindexonknots = express_getattr(self, 'UpperIndexOnKnots', INDETERMINATE) assert IfcConstraintsParamBSpline(degree, upperindexonknots, upperindexoncontrolpoints, knotmultiplicities, knots) is not False class IfcBSplineCurveWithKnots_CorrespondingKnotLists: @@ -5861,26 +5871,26 @@ class IfcBSplineCurveWithKnots_CorrespondingKnotLists: @staticmethod def __call__(self): - knotmultiplicities = getattr(self, 'KnotMultiplicities', INDETERMINATE) - upperindexonknots = getattr(self, 'UpperIndexOnKnots', INDETERMINATE) + knotmultiplicities = express_getattr(self, 'KnotMultiplicities', INDETERMINATE) + upperindexonknots = express_getattr(self, 'UpperIndexOnKnots', INDETERMINATE) assert (sizeof(knotmultiplicities) == upperindexonknots) is not False def calc_IfcBSplineCurveWithKnots_UpperIndexOnKnots(self): - knots = getattr(self, 'Knots', INDETERMINATE) + knots = express_getattr(self, 'Knots', INDETERMINATE) return sizeof(knots) def calc_IfcBSplineSurface_UUpper(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(controlpointslist) - 1 def calc_IfcBSplineSurface_VUpper(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) - 1 def calc_IfcBSplineSurface_ControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - uupper = getattr(self, 'UUpper', INDETERMINATE) - vupper = getattr(self, 'VUpper', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + uupper = express_getattr(self, 'UUpper', INDETERMINATE) + vupper = express_getattr(self, 'VUpper', INDETERMINATE) return IfcMakeArrayOfArray(controlpointslist, 0, uupper, 0, vupper) class IfcBSplineSurfaceWithKnots_UDirectionConstraints: @@ -5890,10 +5900,10 @@ class IfcBSplineSurfaceWithKnots_UDirectionConstraints: @staticmethod def __call__(self): - umultiplicities = getattr(self, 'UMultiplicities', INDETERMINATE) - uknots = getattr(self, 'UKnots', INDETERMINATE) - knotuupper = getattr(self, 'KnotUUpper', INDETERMINATE) - assert IfcConstraintsParamBSpline(getattr(self, 'UDegree', INDETERMINATE), knotuupper, getattr(self, 'UUpper', INDETERMINATE), umultiplicities, uknots) is not False + umultiplicities = express_getattr(self, 'UMultiplicities', INDETERMINATE) + uknots = express_getattr(self, 'UKnots', INDETERMINATE) + knotuupper = express_getattr(self, 'KnotUUpper', INDETERMINATE) + assert IfcConstraintsParamBSpline(express_getattr(self, 'UDegree', INDETERMINATE), knotuupper, express_getattr(self, 'UUpper', INDETERMINATE), umultiplicities, uknots) is not False class IfcBSplineSurfaceWithKnots_VDirectionConstraints: SCOPE = 'entity' @@ -5902,10 +5912,10 @@ class IfcBSplineSurfaceWithKnots_VDirectionConstraints: @staticmethod def __call__(self): - vmultiplicities = getattr(self, 'VMultiplicities', INDETERMINATE) - vknots = getattr(self, 'VKnots', INDETERMINATE) - knotvupper = getattr(self, 'KnotVUpper', INDETERMINATE) - assert IfcConstraintsParamBSpline(getattr(self, 'VDegree', INDETERMINATE), knotvupper, getattr(self, 'VUpper', INDETERMINATE), vmultiplicities, vknots) is not False + vmultiplicities = express_getattr(self, 'VMultiplicities', INDETERMINATE) + vknots = express_getattr(self, 'VKnots', INDETERMINATE) + knotvupper = express_getattr(self, 'KnotVUpper', INDETERMINATE) + assert IfcConstraintsParamBSpline(express_getattr(self, 'VDegree', INDETERMINATE), knotvupper, express_getattr(self, 'VUpper', INDETERMINATE), vmultiplicities, vknots) is not False class IfcBSplineSurfaceWithKnots_CorrespondingULists: SCOPE = 'entity' @@ -5914,8 +5924,8 @@ class IfcBSplineSurfaceWithKnots_CorrespondingULists: @staticmethod def __call__(self): - umultiplicities = getattr(self, 'UMultiplicities', INDETERMINATE) - knotuupper = getattr(self, 'KnotUUpper', INDETERMINATE) + umultiplicities = express_getattr(self, 'UMultiplicities', INDETERMINATE) + knotuupper = express_getattr(self, 'KnotUUpper', INDETERMINATE) assert (sizeof(umultiplicities) == knotuupper) is not False class IfcBSplineSurfaceWithKnots_CorrespondingVLists: @@ -5925,16 +5935,16 @@ class IfcBSplineSurfaceWithKnots_CorrespondingVLists: @staticmethod def __call__(self): - vmultiplicities = getattr(self, 'VMultiplicities', INDETERMINATE) - knotvupper = getattr(self, 'KnotVUpper', INDETERMINATE) + vmultiplicities = express_getattr(self, 'VMultiplicities', INDETERMINATE) + knotvupper = express_getattr(self, 'KnotVUpper', INDETERMINATE) assert (sizeof(vmultiplicities) == knotvupper) is not False def calc_IfcBSplineSurfaceWithKnots_KnotVUpper(self): - vknots = getattr(self, 'VKnots', INDETERMINATE) + vknots = express_getattr(self, 'VKnots', INDETERMINATE) return sizeof(vknots) def calc_IfcBSplineSurfaceWithKnots_KnotUUpper(self): - uknots = getattr(self, 'UKnots', INDETERMINATE) + uknots = express_getattr(self, 'UKnots', INDETERMINATE) return sizeof(uknots) class IfcBeam_CorrectPredefinedType: @@ -5944,8 +5954,8 @@ class IfcBeam_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBeam_CorrectTypeAssigned: SCOPE = 'entity' @@ -5954,8 +5964,8 @@ class IfcBeam_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcbeamtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcbeamtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBeamStandardCase_HasMaterialProfileSetUsage: SCOPE = 'entity' @@ -5964,7 +5974,7 @@ class IfcBeamStandardCase_HasMaterialProfileSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc1.ifcrelassociates.relatedobjects') if 'ifc4x3_rc1.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc1.ifcmaterialprofilesetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc1.ifcrelassociates.relatedobjects') if 'ifc4x3_rc1.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc1.ifcmaterialprofilesetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcBeamType_CorrectPredefinedType: SCOPE = 'entity' @@ -5973,8 +5983,8 @@ class IfcBeamType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBearing_CorrectPredefinedType: SCOPE = 'entity' @@ -5983,8 +5993,8 @@ class IfcBearing_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBearing_CorrectTypeAssigned: SCOPE = 'entity' @@ -5993,8 +6003,8 @@ class IfcBearing_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcbearingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcbearingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBearingType_CorrectPredefinedType: SCOPE = 'entity' @@ -6003,8 +6013,8 @@ class IfcBearingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBlobTexture_SupportedRasterFormat: SCOPE = 'entity' @@ -6013,7 +6023,7 @@ class IfcBlobTexture_SupportedRasterFormat: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['bmp', 'jpg', 'gif', 'png']) is not False + assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['bmp', 'jpg', 'gif', 'png']) is not False class IfcBlobTexture_RasterCodeByteStream: SCOPE = 'entity' @@ -6022,7 +6032,7 @@ class IfcBlobTexture_RasterCodeByteStream: @staticmethod def __call__(self): - rastercode = getattr(self, 'RasterCode', INDETERMINATE) + rastercode = express_getattr(self, 'RasterCode', INDETERMINATE) assert (blength(rastercode) % 8 == 0) is not False class IfcBoiler_CorrectPredefinedType: @@ -6032,8 +6042,8 @@ class IfcBoiler_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBoiler_CorrectTypeAssigned: SCOPE = 'entity' @@ -6042,8 +6052,8 @@ class IfcBoiler_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcboilertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcboilertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBoilerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6052,8 +6062,8 @@ class IfcBoilerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBooleanClippingResult_FirstOperandType: SCOPE = 'entity' @@ -6062,7 +6072,7 @@ class IfcBooleanClippingResult_FirstOperandType: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) assert ('ifc4x3_rc1.ifcsweptareasolid' in typeof(firstoperand) or 'ifc4x3_rc1.ifcsweptdiscsolid' in typeof(firstoperand) or 'ifc4x3_rc1.ifcbooleanclippingresult' in typeof(firstoperand)) is not False class IfcBooleanClippingResult_SecondOperandType: @@ -6072,7 +6082,7 @@ class IfcBooleanClippingResult_SecondOperandType: @staticmethod def __call__(self): - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) assert ('ifc4x3_rc1.ifchalfspacesolid' in typeof(secondoperand)) is not False class IfcBooleanClippingResult_OperatorType: @@ -6082,7 +6092,7 @@ class IfcBooleanClippingResult_OperatorType: @staticmethod def __call__(self): - operator = getattr(self, 'Operator', INDETERMINATE) + operator = express_getattr(self, 'Operator', INDETERMINATE) assert (operator == difference) is not False class IfcBooleanResult_SameDim: @@ -6092,9 +6102,9 @@ class IfcBooleanResult_SameDim: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) - assert (getattr(firstoperand, 'Dim', INDETERMINATE) == getattr(secondoperand, 'Dim', INDETERMINATE)) is not False + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) + assert (express_getattr(firstoperand, 'Dim', INDETERMINATE) == express_getattr(secondoperand, 'Dim', INDETERMINATE)) is not False class IfcBooleanResult_FirstOperandClosed: SCOPE = 'entity' @@ -6103,8 +6113,8 @@ class IfcBooleanResult_FirstOperandClosed: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - assert (not 'ifc4x3_rc1.ifctessellatedfaceset' in typeof(firstoperand) or (exists(getattr(firstoperand, 'Closed', INDETERMINATE)) and getattr(firstoperand, 'Closed', INDETERMINATE))) is not False + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + assert (not 'ifc4x3_rc1.ifctessellatedfaceset' in typeof(firstoperand) or (exists(express_getattr(firstoperand, 'Closed', INDETERMINATE)) and express_getattr(firstoperand, 'Closed', INDETERMINATE))) is not False class IfcBooleanResult_SecondOperandClosed: SCOPE = 'entity' @@ -6113,12 +6123,12 @@ class IfcBooleanResult_SecondOperandClosed: @staticmethod def __call__(self): - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) - assert (not 'ifc4x3_rc1.ifctessellatedfaceset' in typeof(secondoperand) or (exists(getattr(secondoperand, 'Closed', INDETERMINATE)) and getattr(secondoperand, 'Closed', INDETERMINATE))) is not False + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) + assert (not 'ifc4x3_rc1.ifctessellatedfaceset' in typeof(secondoperand) or (exists(express_getattr(secondoperand, 'Closed', INDETERMINATE)) and express_getattr(secondoperand, 'Closed', INDETERMINATE))) is not False def calc_IfcBooleanResult_Dim(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - return getattr(firstoperand, 'Dim', INDETERMINATE) + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + return express_getattr(firstoperand, 'Dim', INDETERMINATE) class IfcBoundaryCurve_IsClosed: SCOPE = 'entity' @@ -6127,7 +6137,7 @@ class IfcBoundaryCurve_IsClosed: @staticmethod def __call__(self): - assert getattr(self, 'ClosedCurve', INDETERMINATE) is not False + assert express_getattr(self, 'ClosedCurve', INDETERMINATE) is not False def calc_IfcBoundingBox_Dim(self): return 3 @@ -6139,7 +6149,7 @@ class IfcBoxedHalfSpace_UnboundedSurface: @staticmethod def __call__(self): - assert (not 'ifc4x3_rc1.ifccurveboundedplane' in typeof(getattr(self, 'BaseSurface', INDETERMINATE))) is not False + assert (not 'ifc4x3_rc1.ifccurveboundedplane' in typeof(express_getattr(self, 'BaseSurface', INDETERMINATE))) is not False class IfcBuildingElementPart_CorrectPredefinedType: SCOPE = 'entity' @@ -6148,8 +6158,8 @@ class IfcBuildingElementPart_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuildingElementPart_CorrectTypeAssigned: SCOPE = 'entity' @@ -6158,8 +6168,8 @@ class IfcBuildingElementPart_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcbuildingelementparttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcbuildingelementparttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBuildingElementPartType_CorrectPredefinedType: SCOPE = 'entity' @@ -6168,8 +6178,8 @@ class IfcBuildingElementPartType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBuildingElementProxy_HasObjectName: SCOPE = 'entity' @@ -6178,7 +6188,7 @@ class IfcBuildingElementProxy_HasObjectName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcBuildingElementProxy_CorrectPredefinedType: SCOPE = 'entity' @@ -6187,8 +6197,8 @@ class IfcBuildingElementProxy_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuildingElementProxy_CorrectTypeAssigned: SCOPE = 'entity' @@ -6197,8 +6207,8 @@ class IfcBuildingElementProxy_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcbuildingelementproxytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcbuildingelementproxytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBuildingElementProxyType_CorrectPredefinedType: SCOPE = 'entity' @@ -6207,8 +6217,8 @@ class IfcBuildingElementProxyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBuiltElement_MaxOneMaterialAssociation: SCOPE = 'entity' @@ -6217,7 +6227,7 @@ class IfcBuiltElement_MaxOneMaterialAssociation: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'HasAssociations', INDETERMINATE) if 'ifc4x3_rc1.ifcrelassociatesmaterial' in typeof(temp)]) <= 1) is not False + assert (sizeof([temp for temp in express_getattr(self, 'HasAssociations', INDETERMINATE) if 'ifc4x3_rc1.ifcrelassociatesmaterial' in typeof(temp)]) <= 1) is not False class IfcBuiltSystem_CorrectPredefinedType: SCOPE = 'entity' @@ -6226,8 +6236,8 @@ class IfcBuiltSystem_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBurner_CorrectPredefinedType: SCOPE = 'entity' @@ -6236,8 +6246,8 @@ class IfcBurner_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBurner_CorrectTypeAssigned: SCOPE = 'entity' @@ -6246,8 +6256,8 @@ class IfcBurner_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcburnertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcburnertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBurnerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6256,8 +6266,8 @@ class IfcBurnerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCShapeProfileDef_ValidGirth: SCOPE = 'entity' @@ -6266,8 +6276,8 @@ class IfcCShapeProfileDef_ValidGirth: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - girth = getattr(self, 'Girth', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + girth = express_getattr(self, 'Girth', INDETERMINATE) assert (girth < depth / 2.0) is not False class IfcCShapeProfileDef_ValidInternalFilletRadius: @@ -6277,10 +6287,10 @@ class IfcCShapeProfileDef_ValidInternalFilletRadius: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - internalfilletradius = getattr(self, 'InternalFilletRadius', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + internalfilletradius = express_getattr(self, 'InternalFilletRadius', INDETERMINATE) assert (not exists(internalfilletradius) or (internalfilletradius <= width / 2.0 - wallthickness and internalfilletradius <= depth / 2.0 - wallthickness)) is not False class IfcCShapeProfileDef_ValidWallThickness: @@ -6290,9 +6300,9 @@ class IfcCShapeProfileDef_ValidWallThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) assert (wallthickness < width / 2.0 and wallthickness < depth / 2.0) is not False class IfcCableCarrierFitting_CorrectPredefinedType: @@ -6302,8 +6312,8 @@ class IfcCableCarrierFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableCarrierFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -6312,8 +6322,8 @@ class IfcCableCarrierFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccablecarrierfittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccablecarrierfittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableCarrierFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -6322,8 +6332,8 @@ class IfcCableCarrierFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableCarrierSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -6332,8 +6342,8 @@ class IfcCableCarrierSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableCarrierSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -6342,8 +6352,8 @@ class IfcCableCarrierSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccablecarriersegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccablecarriersegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableCarrierSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -6352,8 +6362,8 @@ class IfcCableCarrierSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -6362,8 +6372,8 @@ class IfcCableFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -6372,8 +6382,8 @@ class IfcCableFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccablefittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccablefittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -6382,8 +6392,8 @@ class IfcCableFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -6392,8 +6402,8 @@ class IfcCableSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -6402,8 +6412,8 @@ class IfcCableSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccablesegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccablesegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -6412,8 +6422,8 @@ class IfcCableSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCaissonFoundation_CorrectPredefinedType: SCOPE = 'entity' @@ -6422,8 +6432,8 @@ class IfcCaissonFoundation_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCaissonFoundation_CorrectTypeAssigned: SCOPE = 'entity' @@ -6432,8 +6442,8 @@ class IfcCaissonFoundation_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccaissonfoundationtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccaissonfoundationtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCaissonFoundationType_CorrectPredefinedType: SCOPE = 'entity' @@ -6442,8 +6452,8 @@ class IfcCaissonFoundationType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCartesianPoint_CP2Dor3D: SCOPE = 'entity' @@ -6452,11 +6462,11 @@ class IfcCartesianPoint_CP2Dor3D: @staticmethod def __call__(self): - coordinates = getattr(self, 'Coordinates', INDETERMINATE) + coordinates = express_getattr(self, 'Coordinates', INDETERMINATE) assert (hiindex(coordinates) >= 2) is not False def calc_IfcCartesianPoint_Dim(self): - coordinates = getattr(self, 'Coordinates', INDETERMINATE) + coordinates = express_getattr(self, 'Coordinates', INDETERMINATE) return hiindex(coordinates) def calc_IfcCartesianPointList_Dim(self): @@ -6469,16 +6479,16 @@ class IfcCartesianTransformationOperator_ScaleGreaterZero: @staticmethod def __call__(self): - scl = getattr(self, 'Scl', INDETERMINATE) + scl = express_getattr(self, 'Scl', INDETERMINATE) assert (scl > 0.0) is not False def calc_IfcCartesianTransformationOperator_Scl(self): - scale = getattr(self, 'Scale', INDETERMINATE) + scale = express_getattr(self, 'Scale', INDETERMINATE) return nvl(scale, 1.0) def calc_IfcCartesianTransformationOperator_Dim(self): - localorigin = getattr(self, 'LocalOrigin', INDETERMINATE) - return getattr(localorigin, 'Dim', INDETERMINATE) + localorigin = express_getattr(self, 'LocalOrigin', INDETERMINATE) + return express_getattr(localorigin, 'Dim', INDETERMINATE) class IfcCartesianTransformationOperator2D_DimEqual2: SCOPE = 'entity' @@ -6487,7 +6497,7 @@ class IfcCartesianTransformationOperator2D_DimEqual2: @staticmethod def __call__(self): - assert (getattr(self, 'Dim', INDETERMINATE) == 2) is not False + assert (express_getattr(self, 'Dim', INDETERMINATE) == 2) is not False class IfcCartesianTransformationOperator2D_Axis1Is2D: SCOPE = 'entity' @@ -6496,7 +6506,7 @@ class IfcCartesianTransformationOperator2D_Axis1Is2D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis1', INDETERMINATE)) or getattr(getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (not exists(express_getattr(self, 'Axis1', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False class IfcCartesianTransformationOperator2D_Axis2Is2D: SCOPE = 'entity' @@ -6505,10 +6515,10 @@ class IfcCartesianTransformationOperator2D_Axis2Is2D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis2', INDETERMINATE)) or getattr(getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (not exists(express_getattr(self, 'Axis2', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False def calc_IfcCartesianTransformationOperator2D_U(self): - return IfcBaseAxis(2, getattr(self, 'Axis1', INDETERMINATE), getattr(self, 'Axis2', INDETERMINATE), None) + return IfcBaseAxis(2, express_getattr(self, 'Axis1', INDETERMINATE), express_getattr(self, 'Axis2', INDETERMINATE), None) class IfcCartesianTransformationOperator2DnonUniform_Scale2GreaterZero: SCOPE = 'entity' @@ -6517,12 +6527,12 @@ class IfcCartesianTransformationOperator2DnonUniform_Scale2GreaterZero: @staticmethod def __call__(self): - scl2 = getattr(self, 'Scl2', INDETERMINATE) + scl2 = express_getattr(self, 'Scl2', INDETERMINATE) assert (scl2 > 0.0) is not False def calc_IfcCartesianTransformationOperator2DnonUniform_Scl2(self): - scale2 = getattr(self, 'Scale2', INDETERMINATE) - return nvl(scale2, getattr(self, 'Scl', INDETERMINATE)) + scale2 = express_getattr(self, 'Scale2', INDETERMINATE) + return nvl(scale2, express_getattr(self, 'Scl', INDETERMINATE)) class IfcCartesianTransformationOperator3D_DimIs3D: SCOPE = 'entity' @@ -6531,7 +6541,7 @@ class IfcCartesianTransformationOperator3D_DimIs3D: @staticmethod def __call__(self): - assert (getattr(self, 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(self, 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_Axis1Is3D: SCOPE = 'entity' @@ -6540,7 +6550,7 @@ class IfcCartesianTransformationOperator3D_Axis1Is3D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis1', INDETERMINATE)) or getattr(getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (not exists(express_getattr(self, 'Axis1', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_Axis2Is3D: SCOPE = 'entity' @@ -6549,7 +6559,7 @@ class IfcCartesianTransformationOperator3D_Axis2Is3D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis2', INDETERMINATE)) or getattr(getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (not exists(express_getattr(self, 'Axis2', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_Axis3Is3D: SCOPE = 'entity' @@ -6558,12 +6568,12 @@ class IfcCartesianTransformationOperator3D_Axis3Is3D: @staticmethod def __call__(self): - axis3 = getattr(self, 'Axis3', INDETERMINATE) - assert (not exists(axis3) or getattr(axis3, 'Dim', INDETERMINATE) == 3) is not False + axis3 = express_getattr(self, 'Axis3', INDETERMINATE) + assert (not exists(axis3) or express_getattr(axis3, 'Dim', INDETERMINATE) == 3) is not False def calc_IfcCartesianTransformationOperator3D_U(self): - axis3 = getattr(self, 'Axis3', INDETERMINATE) - return IfcBaseAxis(3, getattr(self, 'Axis1', INDETERMINATE), getattr(self, 'Axis2', INDETERMINATE), axis3) + axis3 = express_getattr(self, 'Axis3', INDETERMINATE) + return IfcBaseAxis(3, express_getattr(self, 'Axis1', INDETERMINATE), express_getattr(self, 'Axis2', INDETERMINATE), axis3) class IfcCartesianTransformationOperator3DnonUniform_Scale2GreaterZero: SCOPE = 'entity' @@ -6572,7 +6582,7 @@ class IfcCartesianTransformationOperator3DnonUniform_Scale2GreaterZero: @staticmethod def __call__(self): - scl2 = getattr(self, 'Scl2', INDETERMINATE) + scl2 = express_getattr(self, 'Scl2', INDETERMINATE) assert (scl2 > 0.0) is not False class IfcCartesianTransformationOperator3DnonUniform_Scale3GreaterZero: @@ -6582,16 +6592,16 @@ class IfcCartesianTransformationOperator3DnonUniform_Scale3GreaterZero: @staticmethod def __call__(self): - scl3 = getattr(self, 'Scl3', INDETERMINATE) + scl3 = express_getattr(self, 'Scl3', INDETERMINATE) assert (scl3 > 0.0) is not False def calc_IfcCartesianTransformationOperator3DnonUniform_Scl2(self): - scale2 = getattr(self, 'Scale2', INDETERMINATE) - return nvl(scale2, getattr(self, 'Scl', INDETERMINATE)) + scale2 = express_getattr(self, 'Scale2', INDETERMINATE) + return nvl(scale2, express_getattr(self, 'Scl', INDETERMINATE)) def calc_IfcCartesianTransformationOperator3DnonUniform_Scl3(self): - scale3 = getattr(self, 'Scale3', INDETERMINATE) - return nvl(scale3, getattr(self, 'Scl', INDETERMINATE)) + scale3 = express_getattr(self, 'Scale3', INDETERMINATE) + return nvl(scale3, express_getattr(self, 'Scl', INDETERMINATE)) class IfcChiller_CorrectPredefinedType: SCOPE = 'entity' @@ -6600,8 +6610,8 @@ class IfcChiller_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcChiller_CorrectTypeAssigned: SCOPE = 'entity' @@ -6610,8 +6620,8 @@ class IfcChiller_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcchillertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcchillertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcChillerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6620,8 +6630,8 @@ class IfcChillerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcChimney_CorrectPredefinedType: SCOPE = 'entity' @@ -6630,8 +6640,8 @@ class IfcChimney_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcChimney_CorrectTypeAssigned: SCOPE = 'entity' @@ -6640,8 +6650,8 @@ class IfcChimney_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcchimneytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcchimneytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcChimneyType_CorrectPredefinedType: SCOPE = 'entity' @@ -6650,8 +6660,8 @@ class IfcChimneyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCircleHollowProfileDef_WR1: SCOPE = 'entity' @@ -6660,8 +6670,8 @@ class IfcCircleHollowProfileDef_WR1: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - assert (wallthickness < getattr(self, 'Radius', INDETERMINATE)) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + assert (wallthickness < express_getattr(self, 'Radius', INDETERMINATE)) is not False class IfcCoil_CorrectPredefinedType: SCOPE = 'entity' @@ -6670,8 +6680,8 @@ class IfcCoil_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCoil_CorrectTypeAssigned: SCOPE = 'entity' @@ -6680,8 +6690,8 @@ class IfcCoil_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccoiltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccoiltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoilType_CorrectPredefinedType: SCOPE = 'entity' @@ -6690,8 +6700,8 @@ class IfcCoilType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcColumn_CorrectPredefinedType: SCOPE = 'entity' @@ -6700,8 +6710,8 @@ class IfcColumn_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcColumn_CorrectTypeAssigned: SCOPE = 'entity' @@ -6710,8 +6720,8 @@ class IfcColumn_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccolumntype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccolumntype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcColumnStandardCase_HasMaterialProfileSetUsage: SCOPE = 'entity' @@ -6720,7 +6730,7 @@ class IfcColumnStandardCase_HasMaterialProfileSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc1.ifcrelassociates.relatedobjects') if 'ifc4x3_rc1.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc1.ifcmaterialprofilesetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc1.ifcrelassociates.relatedobjects') if 'ifc4x3_rc1.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc1.ifcmaterialprofilesetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcColumnType_CorrectPredefinedType: SCOPE = 'entity' @@ -6729,8 +6739,8 @@ class IfcColumnType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCommunicationsAppliance_CorrectPredefinedType: SCOPE = 'entity' @@ -6739,8 +6749,8 @@ class IfcCommunicationsAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCommunicationsAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -6749,8 +6759,8 @@ class IfcCommunicationsAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccommunicationsappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccommunicationsappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCommunicationsApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -6759,8 +6769,8 @@ class IfcCommunicationsApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcComplexProperty_WR21: SCOPE = 'entity' @@ -6769,7 +6779,7 @@ class IfcComplexProperty_WR21: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert (sizeof([temp for temp in hasproperties if self == temp]) == 0) is not False class IfcComplexProperty_WR22: @@ -6779,7 +6789,7 @@ class IfcComplexProperty_WR22: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert IfcUniquePropertyName(hasproperties) is not False class IfcComplexPropertyTemplate_UniquePropertyNames: @@ -6789,7 +6799,7 @@ class IfcComplexPropertyTemplate_UniquePropertyNames: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert IfcUniquePropertyTemplateNames(haspropertytemplates) is not False class IfcComplexPropertyTemplate_NoSelfReference: @@ -6799,7 +6809,7 @@ class IfcComplexPropertyTemplate_NoSelfReference: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert (sizeof([temp for temp in haspropertytemplates if self == temp]) == 0) is not False class IfcCompositeCurve_CurveContinuous: @@ -6809,9 +6819,9 @@ class IfcCompositeCurve_CurveContinuous: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) - closedcurve = getattr(self, 'ClosedCurve', INDETERMINATE) - assert (not closedcurve and sizeof([temp for temp in segments if getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 1 or (closedcurve and sizeof([temp for temp in segments if getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 0)) is not False + segments = express_getattr(self, 'Segments', INDETERMINATE) + closedcurve = express_getattr(self, 'ClosedCurve', INDETERMINATE) + assert (not closedcurve and sizeof([temp for temp in segments if express_getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 1 or (closedcurve and sizeof([temp for temp in segments if express_getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 0)) is not False class IfcCompositeCurve_SameDim: SCOPE = 'entity' @@ -6820,17 +6830,17 @@ class IfcCompositeCurve_SameDim: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) - assert (sizeof([temp for temp in segments if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(segments, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + segments = express_getattr(self, 'Segments', INDETERMINATE) + assert (sizeof([temp for temp in segments if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(segments, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcCompositeCurve_NSegments(self): - segments = getattr(self, 'Segments', INDETERMINATE) + segments = express_getattr(self, 'Segments', INDETERMINATE) return sizeof(segments) def calc_IfcCompositeCurve_ClosedCurve(self): - segments = getattr(self, 'Segments', INDETERMINATE) - nsegments = getattr(self, 'NSegments', INDETERMINATE) - return getattr(express_getitem(segments, nsegments - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Transition', INDETERMINATE) != discontinuous + segments = express_getattr(self, 'Segments', INDETERMINATE) + nsegments = express_getattr(self, 'NSegments', INDETERMINATE) + return express_getattr(express_getitem(segments, nsegments - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Transition', INDETERMINATE) != discontinuous class IfcCompositeCurveOnSurface_SameSurface: SCOPE = 'entity' @@ -6839,7 +6849,7 @@ class IfcCompositeCurveOnSurface_SameSurface: @staticmethod def __call__(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) assert (sizeof(basissurface) > 0) is not False def calc_IfcCompositeCurveOnSurface_BasisSurface(self): @@ -6852,12 +6862,12 @@ class IfcCompositeCurveSegment_ParentIsBoundedCurve: @staticmethod def __call__(self): - parentcurve = getattr(self, 'ParentCurve', INDETERMINATE) + parentcurve = express_getattr(self, 'ParentCurve', INDETERMINATE) assert ('ifc4x3_rc1.ifcboundedcurve' in typeof(parentcurve)) is not False def calc_IfcCompositeCurveSegment_Dim(self): - parentcurve = getattr(self, 'ParentCurve', INDETERMINATE) - return getattr(parentcurve, 'Dim', INDETERMINATE) + parentcurve = express_getattr(self, 'ParentCurve', INDETERMINATE) + return express_getattr(parentcurve, 'Dim', INDETERMINATE) class IfcCompositeProfileDef_InvariantProfileType: SCOPE = 'entity' @@ -6866,8 +6876,8 @@ class IfcCompositeProfileDef_InvariantProfileType: @staticmethod def __call__(self): - profiles = getattr(self, 'Profiles', INDETERMINATE) - assert (sizeof([temp for temp in profiles if getattr(temp, 'ProfileType', INDETERMINATE) != getattr(express_getitem(profiles, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE)]) == 0) is not False + profiles = express_getattr(self, 'Profiles', INDETERMINATE) + assert (sizeof([temp for temp in profiles if express_getattr(temp, 'ProfileType', INDETERMINATE) != express_getattr(express_getitem(profiles, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcCompositeProfileDef_NoRecursion: SCOPE = 'entity' @@ -6876,7 +6886,7 @@ class IfcCompositeProfileDef_NoRecursion: @staticmethod def __call__(self): - profiles = getattr(self, 'Profiles', INDETERMINATE) + profiles = express_getattr(self, 'Profiles', INDETERMINATE) assert (sizeof([temp for temp in profiles if 'ifc4x3_rc1.ifccompositeprofiledef' in typeof(temp)]) == 0) is not False class IfcCompressor_CorrectPredefinedType: @@ -6886,8 +6896,8 @@ class IfcCompressor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCompressor_CorrectTypeAssigned: SCOPE = 'entity' @@ -6896,8 +6906,8 @@ class IfcCompressor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccompressortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccompressortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCompressorType_CorrectPredefinedType: SCOPE = 'entity' @@ -6906,8 +6916,8 @@ class IfcCompressorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCondenser_CorrectPredefinedType: SCOPE = 'entity' @@ -6916,8 +6926,8 @@ class IfcCondenser_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCondenser_CorrectTypeAssigned: SCOPE = 'entity' @@ -6926,8 +6936,8 @@ class IfcCondenser_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccondensertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccondensertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCondenserType_CorrectPredefinedType: SCOPE = 'entity' @@ -6936,8 +6946,8 @@ class IfcCondenserType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcConstraint_WR11: SCOPE = 'entity' @@ -6946,8 +6956,8 @@ class IfcConstraint_WR11: @staticmethod def __call__(self): - constraintgrade = getattr(self, 'ConstraintGrade', INDETERMINATE) - assert (constraintgrade != getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) or (constraintgrade == getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedGrade', INDETERMINATE)))) is not False + constraintgrade = express_getattr(self, 'ConstraintGrade', INDETERMINATE) + assert (constraintgrade != express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) or (constraintgrade == express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedGrade', INDETERMINATE)))) is not False class IfcConstructionEquipmentResource_CorrectPredefinedType: SCOPE = 'entity' @@ -6956,8 +6966,8 @@ class IfcConstructionEquipmentResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionEquipmentResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -6966,8 +6976,8 @@ class IfcConstructionEquipmentResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcConstructionMaterialResource_CorrectPredefinedType: SCOPE = 'entity' @@ -6976,8 +6986,8 @@ class IfcConstructionMaterialResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionMaterialResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -6986,8 +6996,8 @@ class IfcConstructionMaterialResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcConstructionProductResource_CorrectPredefinedType: SCOPE = 'entity' @@ -6996,8 +7006,8 @@ class IfcConstructionProductResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionProductResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7006,8 +7016,8 @@ class IfcConstructionProductResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcController_CorrectPredefinedType: SCOPE = 'entity' @@ -7016,8 +7026,8 @@ class IfcController_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcController_CorrectTypeAssigned: SCOPE = 'entity' @@ -7026,8 +7036,8 @@ class IfcController_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccontrollertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccontrollertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcControllerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7036,8 +7046,8 @@ class IfcControllerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcConveyorSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -7046,8 +7056,8 @@ class IfcConveyorSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConveyorSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -7056,8 +7066,8 @@ class IfcConveyorSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcconveyorsegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcconveyorsegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcConveyorSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -7066,8 +7076,8 @@ class IfcConveyorSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCooledBeam_CorrectPredefinedType: SCOPE = 'entity' @@ -7076,8 +7086,8 @@ class IfcCooledBeam_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCooledBeam_CorrectTypeAssigned: SCOPE = 'entity' @@ -7086,8 +7096,8 @@ class IfcCooledBeam_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccooledbeamtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccooledbeamtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCooledBeamType_CorrectPredefinedType: SCOPE = 'entity' @@ -7096,8 +7106,8 @@ class IfcCooledBeamType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCoolingTower_CorrectPredefinedType: SCOPE = 'entity' @@ -7106,8 +7116,8 @@ class IfcCoolingTower_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCoolingTower_CorrectTypeAssigned: SCOPE = 'entity' @@ -7116,8 +7126,8 @@ class IfcCoolingTower_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccoolingtowertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccoolingtowertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoolingTowerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7126,8 +7136,8 @@ class IfcCoolingTowerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCourse_CorrectPredefinedType: SCOPE = 'entity' @@ -7136,8 +7146,8 @@ class IfcCourse_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCourse_CorrectTypeAssigned: SCOPE = 'entity' @@ -7146,8 +7156,8 @@ class IfcCourse_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccoursetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccoursetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCourseType_CorrectPredefinedType: SCOPE = 'entity' @@ -7156,8 +7166,8 @@ class IfcCourseType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCovering_CorrectPredefinedType: SCOPE = 'entity' @@ -7166,8 +7176,8 @@ class IfcCovering_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCovering_CorrectTypeAssigned: SCOPE = 'entity' @@ -7176,8 +7186,8 @@ class IfcCovering_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccoveringtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccoveringtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoveringType_CorrectPredefinedType: SCOPE = 'entity' @@ -7186,8 +7196,8 @@ class IfcCoveringType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCrewResource_CorrectPredefinedType: SCOPE = 'entity' @@ -7196,8 +7206,8 @@ class IfcCrewResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCrewResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7206,8 +7216,8 @@ class IfcCrewResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False def calc_IfcCsgPrimitive3D_Dim(self): return 3 @@ -7219,8 +7229,8 @@ class IfcCurtainWall_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCurtainWall_CorrectTypeAssigned: SCOPE = 'entity' @@ -7229,8 +7239,8 @@ class IfcCurtainWall_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccurtainwalltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifccurtainwalltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCurtainWallType_CorrectPredefinedType: SCOPE = 'entity' @@ -7239,8 +7249,8 @@ class IfcCurtainWallType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcCurve_Dim(self): return IfcCurveDim(self) @@ -7252,7 +7262,7 @@ class IfcCurveStyle_MeasureOfWidth: @staticmethod def __call__(self): - curvewidth = getattr(self, 'CurveWidth', INDETERMINATE) + curvewidth = express_getattr(self, 'CurveWidth', INDETERMINATE) assert (not exists(curvewidth) or 'ifc4x3_rc1.ifcpositivelengthmeasure' in typeof(curvewidth) or ('ifc4x3_rc1.ifcdescriptivemeasure' in typeof(curvewidth) and curvewidth == 'bylayer')) is not False class IfcCurveStyle_IdentifiableCurveStyle: @@ -7262,9 +7272,9 @@ class IfcCurveStyle_IdentifiableCurveStyle: @staticmethod def __call__(self): - curvefont = getattr(self, 'CurveFont', INDETERMINATE) - curvewidth = getattr(self, 'CurveWidth', INDETERMINATE) - curvecolour = getattr(self, 'CurveColour', INDETERMINATE) + curvefont = express_getattr(self, 'CurveFont', INDETERMINATE) + curvewidth = express_getattr(self, 'CurveWidth', INDETERMINATE) + curvecolour = express_getattr(self, 'CurveColour', INDETERMINATE) assert (exists(curvefont) or exists(curvewidth) or exists(curvecolour)) is not False class IfcCurveStyleFontPattern_VisibleLengthGreaterEqualZero: @@ -7274,7 +7284,7 @@ class IfcCurveStyleFontPattern_VisibleLengthGreaterEqualZero: @staticmethod def __call__(self): - visiblesegmentlength = getattr(self, 'VisibleSegmentLength', INDETERMINATE) + visiblesegmentlength = express_getattr(self, 'VisibleSegmentLength', INDETERMINATE) assert (visiblesegmentlength >= 0.0) is not False class IfcDamper_CorrectPredefinedType: @@ -7284,8 +7294,8 @@ class IfcDamper_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDamper_CorrectTypeAssigned: SCOPE = 'entity' @@ -7294,8 +7304,8 @@ class IfcDamper_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcdampertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcdampertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDamperType_CorrectPredefinedType: SCOPE = 'entity' @@ -7304,8 +7314,8 @@ class IfcDamperType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDeepFoundation_CorrectTypeAssigned: SCOPE = 'entity' @@ -7314,8 +7324,8 @@ class IfcDeepFoundation_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcdeepfoundationtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcdeepfoundationtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDerivedProfileDef_InvariantProfileType: SCOPE = 'entity' @@ -7324,8 +7334,8 @@ class IfcDerivedProfileDef_InvariantProfileType: @staticmethod def __call__(self): - parentprofile = getattr(self, 'ParentProfile', INDETERMINATE) - assert (getattr(self, 'ProfileType', INDETERMINATE) == getattr(parentprofile, 'ProfileType', INDETERMINATE)) is not False + parentprofile = express_getattr(self, 'ParentProfile', INDETERMINATE) + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(parentprofile, 'ProfileType', INDETERMINATE)) is not False class IfcDerivedUnit_WR1: SCOPE = 'entity' @@ -7334,8 +7344,8 @@ class IfcDerivedUnit_WR1: @staticmethod def __call__(self): - elements = getattr(self, 'Elements', INDETERMINATE) - assert (sizeof(elements) > 1 or (sizeof(elements) == 1 and getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) != 1)) is not False + elements = express_getattr(self, 'Elements', INDETERMINATE) + assert (sizeof(elements) > 1 or (sizeof(elements) == 1 and express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) != 1)) is not False class IfcDerivedUnit_WR2: SCOPE = 'entity' @@ -7344,11 +7354,11 @@ class IfcDerivedUnit_WR2: @staticmethod def __call__(self): - unittype = getattr(self, 'UnitType', INDETERMINATE) - assert (unittype != getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) or (unittype == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedType', INDETERMINATE)))) is not False + unittype = express_getattr(self, 'UnitType', INDETERMINATE) + assert (unittype != express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) or (unittype == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedType', INDETERMINATE)))) is not False def calc_IfcDerivedUnit_Dimensions(self): - elements = getattr(self, 'Elements', INDETERMINATE) + elements = express_getattr(self, 'Elements', INDETERMINATE) return IfcDeriveDimensionalExponents(elements) class IfcDirection_MagnitudeGreaterZero: @@ -7358,11 +7368,11 @@ class IfcDirection_MagnitudeGreaterZero: @staticmethod def __call__(self): - directionratios = getattr(self, 'DirectionRatios', INDETERMINATE) + directionratios = express_getattr(self, 'DirectionRatios', INDETERMINATE) assert (sizeof([tmp for tmp in directionratios if tmp != 0.0]) > 0) is not False def calc_IfcDirection_Dim(self): - directionratios = getattr(self, 'DirectionRatios', INDETERMINATE) + directionratios = express_getattr(self, 'DirectionRatios', INDETERMINATE) return hiindex(directionratios) class IfcDirectrixCurveSweptAreaSolid_DirectrixBounded: @@ -7372,9 +7382,9 @@ class IfcDirectrixCurveSweptAreaSolid_DirectrixBounded: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - startparam = getattr(self, 'StartParam', INDETERMINATE) - endparam = getattr(self, 'EndParam', INDETERMINATE) + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + startparam = express_getattr(self, 'StartParam', INDETERMINATE) + endparam = express_getattr(self, 'EndParam', INDETERMINATE) assert (exists(startparam) and exists(endparam) or sizeof(['ifc4x3_rc1.ifcconic', 'ifc4x3_rc1.ifcboundedcurve'] * typeof(directrix)) == 1) is not False class IfcDiscreteAccessory_CorrectPredefinedType: @@ -7384,8 +7394,8 @@ class IfcDiscreteAccessory_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDiscreteAccessory_CorrectTypeAssigned: SCOPE = 'entity' @@ -7394,8 +7404,8 @@ class IfcDiscreteAccessory_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcdiscreteaccessorytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcdiscreteaccessorytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDiscreteAccessoryType_CorrectPredefinedType: SCOPE = 'entity' @@ -7404,8 +7414,8 @@ class IfcDiscreteAccessoryType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDistributionBoard_CorrectPredefinedType: SCOPE = 'entity' @@ -7414,8 +7424,8 @@ class IfcDistributionBoard_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDistributionBoard_CorrectTypeAssigned: SCOPE = 'entity' @@ -7424,8 +7434,8 @@ class IfcDistributionBoard_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcdistributionboardtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcdistributionboardtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDistributionBoardType_CorrectPredefinedType: SCOPE = 'entity' @@ -7434,8 +7444,8 @@ class IfcDistributionBoardType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDistributionChamberElement_CorrectPredefinedType: SCOPE = 'entity' @@ -7444,8 +7454,8 @@ class IfcDistributionChamberElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDistributionChamberElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -7454,8 +7464,8 @@ class IfcDistributionChamberElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcdistributionchamberelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcdistributionchamberelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDistributionChamberElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -7464,8 +7474,8 @@ class IfcDistributionChamberElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDocumentReference_WR1: SCOPE = 'entity' @@ -7474,8 +7484,8 @@ class IfcDocumentReference_WR1: @staticmethod def __call__(self): - name = getattr(self, 'Name', INDETERMINATE) - referenceddocument = getattr(self, 'ReferencedDocument', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) + referenceddocument = express_getattr(self, 'ReferencedDocument', INDETERMINATE) assert exists(name) ^ exists(referenceddocument) is not False class IfcDoor_CorrectStyleAssigned: @@ -7485,8 +7495,8 @@ class IfcDoor_CorrectStyleAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcdoortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcdoortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDoorLiningProperties_WR31: SCOPE = 'entity' @@ -7495,8 +7505,8 @@ class IfcDoorLiningProperties_WR31: @staticmethod def __call__(self): - liningdepth = getattr(self, 'LiningDepth', INDETERMINATE) - liningthickness = getattr(self, 'LiningThickness', INDETERMINATE) + liningdepth = express_getattr(self, 'LiningDepth', INDETERMINATE) + liningthickness = express_getattr(self, 'LiningThickness', INDETERMINATE) assert (not (exists(liningdepth) and (not exists(liningthickness)))) is not False class IfcDoorLiningProperties_WR32: @@ -7506,8 +7516,8 @@ class IfcDoorLiningProperties_WR32: @staticmethod def __call__(self): - thresholddepth = getattr(self, 'ThresholdDepth', INDETERMINATE) - thresholdthickness = getattr(self, 'ThresholdThickness', INDETERMINATE) + thresholddepth = express_getattr(self, 'ThresholdDepth', INDETERMINATE) + thresholdthickness = express_getattr(self, 'ThresholdThickness', INDETERMINATE) assert (not (exists(thresholddepth) and (not exists(thresholdthickness)))) is not False class IfcDoorLiningProperties_WR33: @@ -7517,8 +7527,8 @@ class IfcDoorLiningProperties_WR33: @staticmethod def __call__(self): - transomthickness = getattr(self, 'TransomThickness', INDETERMINATE) - transomoffset = getattr(self, 'TransomOffset', INDETERMINATE) + transomthickness = express_getattr(self, 'TransomThickness', INDETERMINATE) + transomoffset = express_getattr(self, 'TransomOffset', INDETERMINATE) assert (exists(transomoffset) and exists(transomthickness)) ^ (not exists(transomoffset) and (not exists(transomthickness))) is not False class IfcDoorLiningProperties_WR34: @@ -7528,8 +7538,8 @@ class IfcDoorLiningProperties_WR34: @staticmethod def __call__(self): - casingthickness = getattr(self, 'CasingThickness', INDETERMINATE) - casingdepth = getattr(self, 'CasingDepth', INDETERMINATE) + casingthickness = express_getattr(self, 'CasingThickness', INDETERMINATE) + casingdepth = express_getattr(self, 'CasingDepth', INDETERMINATE) assert (exists(casingdepth) and exists(casingthickness)) ^ (not exists(casingdepth) and (not exists(casingthickness))) is not False class IfcDoorLiningProperties_WR35: @@ -7539,7 +7549,7 @@ class IfcDoorLiningProperties_WR35: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc1.ifcdoortype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc1.ifcdoorstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc1.ifcdoortype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc1.ifcdoorstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcDoorPanelProperties_ApplicableToType: SCOPE = 'entity' @@ -7548,7 +7558,7 @@ class IfcDoorPanelProperties_ApplicableToType: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc1.ifcdoortype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc1.ifcdoorstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc1.ifcdoortype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc1.ifcdoorstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcDoorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7557,8 +7567,8 @@ class IfcDoorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDraughtingPreDefinedColour_PreDefinedColourNames: SCOPE = 'entity' @@ -7567,7 +7577,7 @@ class IfcDraughtingPreDefinedColour_PreDefinedColourNames: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'bylayer']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'bylayer']) is not False class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: SCOPE = 'entity' @@ -7576,7 +7586,7 @@ class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chaindoubledash', 'dashed', 'dotted', 'bylayer']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chaindoubledash', 'dashed', 'dotted', 'bylayer']) is not False class IfcDuctFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -7585,8 +7595,8 @@ class IfcDuctFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -7595,8 +7605,8 @@ class IfcDuctFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcductfittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcductfittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -7605,8 +7615,8 @@ class IfcDuctFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDuctSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -7615,8 +7625,8 @@ class IfcDuctSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -7625,8 +7635,8 @@ class IfcDuctSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcductsegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcductsegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -7635,8 +7645,8 @@ class IfcDuctSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDuctSilencer_CorrectPredefinedType: SCOPE = 'entity' @@ -7645,8 +7655,8 @@ class IfcDuctSilencer_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctSilencer_CorrectTypeAssigned: SCOPE = 'entity' @@ -7655,8 +7665,8 @@ class IfcDuctSilencer_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcductsilencertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcductsilencertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctSilencerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7665,8 +7675,8 @@ class IfcDuctSilencerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEarthworksCut_CorrectPredefinedType: SCOPE = 'entity' @@ -7675,8 +7685,8 @@ class IfcEarthworksCut_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEarthworksFill_CorrectPredefinedType: SCOPE = 'entity' @@ -7685,8 +7695,8 @@ class IfcEarthworksFill_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEdgeLoop_IsClosed: SCOPE = 'entity' @@ -7695,9 +7705,9 @@ class IfcEdgeLoop_IsClosed: @staticmethod def __call__(self): - edgelist = getattr(self, 'EdgeList', INDETERMINATE) - ne = getattr(self, 'Ne', INDETERMINATE) - assert (getattr(express_getitem(edgelist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) == getattr(express_getitem(edgelist, ne - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE)) is not False + edgelist = express_getattr(self, 'EdgeList', INDETERMINATE) + ne = express_getattr(self, 'Ne', INDETERMINATE) + assert (express_getattr(express_getitem(edgelist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) == express_getattr(express_getitem(edgelist, ne - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE)) is not False class IfcEdgeLoop_IsContinuous: SCOPE = 'entity' @@ -7709,7 +7719,7 @@ class IfcEdgeLoop_IsContinuous: assert IfcLoopHeadToTail(self) is not False def calc_IfcEdgeLoop_Ne(self): - edgelist = getattr(self, 'EdgeList', INDETERMINATE) + edgelist = express_getattr(self, 'EdgeList', INDETERMINATE) return sizeof(edgelist) class IfcElectricAppliance_CorrectPredefinedType: @@ -7719,8 +7729,8 @@ class IfcElectricAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -7729,8 +7739,8 @@ class IfcElectricAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcelectricappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcelectricappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7739,8 +7749,8 @@ class IfcElectricApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricDistributionBoard_CorrectPredefinedType: SCOPE = 'entity' @@ -7749,8 +7759,8 @@ class IfcElectricDistributionBoard_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricDistributionBoard_CorrectTypeAssigned: SCOPE = 'entity' @@ -7759,8 +7769,8 @@ class IfcElectricDistributionBoard_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcelectricdistributionboardtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcelectricdistributionboardtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricDistributionBoardType_CorrectPredefinedType: SCOPE = 'entity' @@ -7769,8 +7779,8 @@ class IfcElectricDistributionBoardType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricFlowStorageDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -7779,8 +7789,8 @@ class IfcElectricFlowStorageDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricFlowStorageDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -7789,8 +7799,8 @@ class IfcElectricFlowStorageDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcelectricflowstoragedevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcelectricflowstoragedevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricFlowStorageDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7799,8 +7809,8 @@ class IfcElectricFlowStorageDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricFlowTreatmentDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -7809,8 +7819,8 @@ class IfcElectricFlowTreatmentDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricFlowTreatmentDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -7819,8 +7829,8 @@ class IfcElectricFlowTreatmentDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcelectricflowtreatmentdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcelectricflowtreatmentdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricFlowTreatmentDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7829,8 +7839,8 @@ class IfcElectricFlowTreatmentDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricGenerator_CorrectPredefinedType: SCOPE = 'entity' @@ -7839,8 +7849,8 @@ class IfcElectricGenerator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricGenerator_CorrectTypeAssigned: SCOPE = 'entity' @@ -7849,8 +7859,8 @@ class IfcElectricGenerator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcelectricgeneratortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcelectricgeneratortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricGeneratorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7859,8 +7869,8 @@ class IfcElectricGeneratorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricMotor_CorrectPredefinedType: SCOPE = 'entity' @@ -7869,8 +7879,8 @@ class IfcElectricMotor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricMotor_CorrectTypeAssigned: SCOPE = 'entity' @@ -7879,8 +7889,8 @@ class IfcElectricMotor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcelectricmotortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcelectricmotortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricMotorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7889,8 +7899,8 @@ class IfcElectricMotorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricTimeControl_CorrectPredefinedType: SCOPE = 'entity' @@ -7899,8 +7909,8 @@ class IfcElectricTimeControl_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricTimeControl_CorrectTypeAssigned: SCOPE = 'entity' @@ -7909,8 +7919,8 @@ class IfcElectricTimeControl_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcelectrictimecontroltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcelectrictimecontroltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricTimeControlType_CorrectPredefinedType: SCOPE = 'entity' @@ -7919,8 +7929,8 @@ class IfcElectricTimeControlType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElementAssembly_CorrectPredefinedType: SCOPE = 'entity' @@ -7929,8 +7939,8 @@ class IfcElementAssembly_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElementAssembly_CorrectTypeAssigned: SCOPE = 'entity' @@ -7939,8 +7949,8 @@ class IfcElementAssembly_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcelementassemblytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcelementassemblytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElementAssemblyType_CorrectPredefinedType: SCOPE = 'entity' @@ -7949,8 +7959,8 @@ class IfcElementAssemblyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElementQuantity_UniqueQuantityNames: SCOPE = 'entity' @@ -7959,7 +7969,7 @@ class IfcElementQuantity_UniqueQuantityNames: @staticmethod def __call__(self): - quantities = getattr(self, 'Quantities', INDETERMINATE) + quantities = express_getattr(self, 'Quantities', INDETERMINATE) assert IfcUniqueQuantityNames(quantities) is not False class IfcEngine_CorrectPredefinedType: @@ -7969,8 +7979,8 @@ class IfcEngine_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEngine_CorrectTypeAssigned: SCOPE = 'entity' @@ -7979,8 +7989,8 @@ class IfcEngine_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcenginetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcenginetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEngineType_CorrectPredefinedType: SCOPE = 'entity' @@ -7989,8 +7999,8 @@ class IfcEngineType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvaporativeCooler_CorrectPredefinedType: SCOPE = 'entity' @@ -7999,8 +8009,8 @@ class IfcEvaporativeCooler_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvaporativeCooler_CorrectTypeAssigned: SCOPE = 'entity' @@ -8009,8 +8019,8 @@ class IfcEvaporativeCooler_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcevaporativecoolertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcevaporativecoolertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEvaporativeCoolerType_CorrectPredefinedType: SCOPE = 'entity' @@ -8019,8 +8029,8 @@ class IfcEvaporativeCoolerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvaporator_CorrectPredefinedType: SCOPE = 'entity' @@ -8029,8 +8039,8 @@ class IfcEvaporator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvaporator_CorrectTypeAssigned: SCOPE = 'entity' @@ -8039,8 +8049,8 @@ class IfcEvaporator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcevaporatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcevaporatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEvaporatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -8049,8 +8059,8 @@ class IfcEvaporatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvent_CorrectPredefinedType: SCOPE = 'entity' @@ -8059,8 +8069,8 @@ class IfcEvent_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvent_CorrectTypeAssigned: SCOPE = 'entity' @@ -8069,9 +8079,9 @@ class IfcEvent_CorrectTypeAssigned: @staticmethod def __call__(self): - eventtriggertype = getattr(self, 'EventTriggerType', INDETERMINATE) - userdefinedeventtriggertype = getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) - assert (not exists(eventtriggertype) or eventtriggertype != getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False + eventtriggertype = express_getattr(self, 'EventTriggerType', INDETERMINATE) + userdefinedeventtriggertype = express_getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) + assert (not exists(eventtriggertype) or eventtriggertype != express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False class IfcEventType_CorrectPredefinedType: SCOPE = 'entity' @@ -8080,8 +8090,8 @@ class IfcEventType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcEventType_CorrectEventTriggerType: SCOPE = 'entity' @@ -8090,9 +8100,9 @@ class IfcEventType_CorrectEventTriggerType: @staticmethod def __call__(self): - eventtriggertype = getattr(self, 'EventTriggerType', INDETERMINATE) - userdefinedeventtriggertype = getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) - assert (eventtriggertype != getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False + eventtriggertype = express_getattr(self, 'EventTriggerType', INDETERMINATE) + userdefinedeventtriggertype = express_getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) + assert (eventtriggertype != express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False class IfcExternalReference_WR1: SCOPE = 'entity' @@ -8101,9 +8111,9 @@ class IfcExternalReference_WR1: @staticmethod def __call__(self): - location = getattr(self, 'Location', INDETERMINATE) - identification = getattr(self, 'Identification', INDETERMINATE) - name = getattr(self, 'Name', INDETERMINATE) + location = express_getattr(self, 'Location', INDETERMINATE) + identification = express_getattr(self, 'Identification', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) assert (exists(identification) or exists(location) or exists(name)) is not False class IfcExtrudedAreaSolid_ValidExtrusionDirection: @@ -8113,7 +8123,7 @@ class IfcExtrudedAreaSolid_ValidExtrusionDirection: @staticmethod def __call__(self): - assert (IfcDotProduct(IfcDirection(DirectionRatios=[0.0, 0.0, 1.0]), getattr(self, 'ExtrudedDirection', INDETERMINATE)) != 0.0) is not False + assert (IfcDotProduct(IfcDirection(DirectionRatios=[0.0, 0.0, 1.0]), express_getattr(self, 'ExtrudedDirection', INDETERMINATE)) != 0.0) is not False class IfcExtrudedAreaSolidTapered_CorrectProfileAssignment: SCOPE = 'entity' @@ -8122,7 +8132,7 @@ class IfcExtrudedAreaSolidTapered_CorrectProfileAssignment: @staticmethod def __call__(self): - assert IfcTaperedSweptAreaProfiles(getattr(self, 'SweptArea', INDETERMINATE), getattr(self, 'EndSweptArea', INDETERMINATE)) is not False + assert IfcTaperedSweptAreaProfiles(express_getattr(self, 'SweptArea', INDETERMINATE), express_getattr(self, 'EndSweptArea', INDETERMINATE)) is not False class IfcFace_HasOuterBound: SCOPE = 'entity' @@ -8131,7 +8141,7 @@ class IfcFace_HasOuterBound: @staticmethod def __call__(self): - bounds = getattr(self, 'Bounds', INDETERMINATE) + bounds = express_getattr(self, 'Bounds', INDETERMINATE) assert (sizeof([temp for temp in bounds if 'ifc4x3_rc1.ifcfaceouterbound' in typeof(temp)]) <= 1) is not False def calc_IfcFaceBasedSurfaceModel_Dim(self): @@ -8144,8 +8154,8 @@ class IfcFan_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFan_CorrectTypeAssigned: SCOPE = 'entity' @@ -8154,8 +8164,8 @@ class IfcFan_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcfantype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcfantype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFanType_CorrectPredefinedType: SCOPE = 'entity' @@ -8164,8 +8174,8 @@ class IfcFanType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFastener_CorrectPredefinedType: SCOPE = 'entity' @@ -8174,8 +8184,8 @@ class IfcFastener_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFastener_CorrectTypeAssigned: SCOPE = 'entity' @@ -8184,8 +8194,8 @@ class IfcFastener_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcfastenertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcfastenertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFastenerType_CorrectPredefinedType: SCOPE = 'entity' @@ -8194,8 +8204,8 @@ class IfcFastenerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFeatureElementSubtraction_HasNoSubtraction: SCOPE = 'entity' @@ -8204,7 +8214,7 @@ class IfcFeatureElementSubtraction_HasNoSubtraction: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'HasOpenings', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'HasOpenings', INDETERMINATE)) == 0) is not False class IfcFeatureElementSubtraction_IsNotFilling: SCOPE = 'entity' @@ -8213,7 +8223,7 @@ class IfcFeatureElementSubtraction_IsNotFilling: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'FillsVoids', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'FillsVoids', INDETERMINATE)) == 0) is not False class IfcFillAreaStyle_MaxOneColour: SCOPE = 'entity' @@ -8222,7 +8232,7 @@ class IfcFillAreaStyle_MaxOneColour: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3_rc1.ifccolour' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3_rc1.ifccolour' in typeof(style)]) <= 1) is not False class IfcFillAreaStyle_MaxOneExtHatchStyle: SCOPE = 'entity' @@ -8231,7 +8241,7 @@ class IfcFillAreaStyle_MaxOneExtHatchStyle: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3_rc1.ifcexternallydefinedhatchstyle' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3_rc1.ifcexternallydefinedhatchstyle' in typeof(style)]) <= 1) is not False class IfcFillAreaStyle_ConsistentHatchStyleDef: SCOPE = 'entity' @@ -8240,7 +8250,7 @@ class IfcFillAreaStyle_ConsistentHatchStyleDef: @staticmethod def __call__(self): - assert IfcCorrectFillAreaStyle(getattr(self, 'FillStyles', INDETERMINATE)) is not False + assert IfcCorrectFillAreaStyle(express_getattr(self, 'FillStyles', INDETERMINATE)) is not False class IfcFillAreaStyleHatching_PatternStart2D: SCOPE = 'entity' @@ -8249,8 +8259,8 @@ class IfcFillAreaStyleHatching_PatternStart2D: @staticmethod def __call__(self): - patternstart = getattr(self, 'PatternStart', INDETERMINATE) - assert (not exists(patternstart) or getattr(patternstart, 'Dim', INDETERMINATE) == 2) is not False + patternstart = express_getattr(self, 'PatternStart', INDETERMINATE) + assert (not exists(patternstart) or express_getattr(patternstart, 'Dim', INDETERMINATE) == 2) is not False class IfcFillAreaStyleHatching_RefHatchLine2D: SCOPE = 'entity' @@ -8259,8 +8269,8 @@ class IfcFillAreaStyleHatching_RefHatchLine2D: @staticmethod def __call__(self): - pointofreferencehatchline = getattr(self, 'PointOfReferenceHatchLine', INDETERMINATE) - assert (not exists(pointofreferencehatchline) or getattr(pointofreferencehatchline, 'Dim', INDETERMINATE) == 2) is not False + pointofreferencehatchline = express_getattr(self, 'PointOfReferenceHatchLine', INDETERMINATE) + assert (not exists(pointofreferencehatchline) or express_getattr(pointofreferencehatchline, 'Dim', INDETERMINATE) == 2) is not False class IfcFilter_CorrectPredefinedType: SCOPE = 'entity' @@ -8269,8 +8279,8 @@ class IfcFilter_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFilter_CorrectTypeAssigned: SCOPE = 'entity' @@ -8279,8 +8289,8 @@ class IfcFilter_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcfiltertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcfiltertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFilterType_CorrectPredefinedType: SCOPE = 'entity' @@ -8289,8 +8299,8 @@ class IfcFilterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFireSuppressionTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -8299,8 +8309,8 @@ class IfcFireSuppressionTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFireSuppressionTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -8309,8 +8319,8 @@ class IfcFireSuppressionTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcfiresuppressionterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcfiresuppressionterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFireSuppressionTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -8319,8 +8329,8 @@ class IfcFireSuppressionTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFlowInstrument_CorrectPredefinedType: SCOPE = 'entity' @@ -8329,8 +8339,8 @@ class IfcFlowInstrument_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFlowInstrument_CorrectTypeAssigned: SCOPE = 'entity' @@ -8339,8 +8349,8 @@ class IfcFlowInstrument_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcflowinstrumenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcflowinstrumenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFlowInstrumentType_CorrectPredefinedType: SCOPE = 'entity' @@ -8349,8 +8359,8 @@ class IfcFlowInstrumentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFlowMeter_CorrectPredefinedType: SCOPE = 'entity' @@ -8359,8 +8369,8 @@ class IfcFlowMeter_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFlowMeter_CorrectTypeAssigned: SCOPE = 'entity' @@ -8369,8 +8379,8 @@ class IfcFlowMeter_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcflowmetertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcflowmetertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFlowMeterType_CorrectPredefinedType: SCOPE = 'entity' @@ -8379,8 +8389,8 @@ class IfcFlowMeterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFooting_CorrectPredefinedType: SCOPE = 'entity' @@ -8389,8 +8399,8 @@ class IfcFooting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFooting_CorrectTypeAssigned: SCOPE = 'entity' @@ -8399,8 +8409,8 @@ class IfcFooting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcfootingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcfootingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFootingType_CorrectPredefinedType: SCOPE = 'entity' @@ -8409,8 +8419,8 @@ class IfcFootingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFurniture_CorrectPredefinedType: SCOPE = 'entity' @@ -8419,8 +8429,8 @@ class IfcFurniture_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFurniture_CorrectTypeAssigned: SCOPE = 'entity' @@ -8429,8 +8439,8 @@ class IfcFurniture_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcfurnituretype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcfurnituretype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFurnitureType_CorrectPredefinedType: SCOPE = 'entity' @@ -8439,8 +8449,8 @@ class IfcFurnitureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcGeographicElement_CorrectPredefinedType: SCOPE = 'entity' @@ -8449,8 +8459,8 @@ class IfcGeographicElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcGeographicElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -8459,8 +8469,8 @@ class IfcGeographicElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcgeographicelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcgeographicelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcGeographicElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -8469,8 +8479,8 @@ class IfcGeographicElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcGeometricCurveSet_NoSurfaces: SCOPE = 'entity' @@ -8479,7 +8489,7 @@ class IfcGeometricCurveSet_NoSurfaces: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Elements', INDETERMINATE) if 'ifc4x3_rc1.ifcsurface' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Elements', INDETERMINATE) if 'ifc4x3_rc1.ifcsurface' in typeof(temp)]) == 0) is not False class IfcGeometricRepresentationContext_North2D: SCOPE = 'entity' @@ -8488,8 +8498,8 @@ class IfcGeometricRepresentationContext_North2D: @staticmethod def __call__(self): - truenorth = getattr(self, 'TrueNorth', INDETERMINATE) - assert (not exists(truenorth) or hiindex(getattr(truenorth, 'DirectionRatios', INDETERMINATE)) == 2) is not False + truenorth = express_getattr(self, 'TrueNorth', INDETERMINATE) + assert (not exists(truenorth) or hiindex(express_getattr(truenorth, 'DirectionRatios', INDETERMINATE)) == 2) is not False class IfcGeometricRepresentationSubContext_ParentNoSub: SCOPE = 'entity' @@ -8498,7 +8508,7 @@ class IfcGeometricRepresentationSubContext_ParentNoSub: @staticmethod def __call__(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) assert (not 'ifc4x3_rc1.ifcgeometricrepresentationsubcontext' in typeof(parentcontext)) is not False class IfcGeometricRepresentationSubContext_UserTargetProvided: @@ -8508,9 +8518,9 @@ class IfcGeometricRepresentationSubContext_UserTargetProvided: @staticmethod def __call__(self): - targetview = getattr(self, 'TargetView', INDETERMINATE) - userdefinedtargetview = getattr(self, 'UserDefinedTargetView', INDETERMINATE) - assert (targetview != getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) or (targetview == getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedtargetview))) is not False + targetview = express_getattr(self, 'TargetView', INDETERMINATE) + userdefinedtargetview = express_getattr(self, 'UserDefinedTargetView', INDETERMINATE) + assert (targetview != express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) or (targetview == express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedtargetview))) is not False class IfcGeometricRepresentationSubContext_NoCoordOperation: SCOPE = 'entity' @@ -8519,23 +8529,23 @@ class IfcGeometricRepresentationSubContext_NoCoordOperation: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'HasCoordinateOperation', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'HasCoordinateOperation', INDETERMINATE)) == 0) is not False def calc_IfcGeometricRepresentationSubContext_WorldCoordinateSystem(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return getattr(parentcontext, 'WorldCoordinateSystem', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return express_getattr(parentcontext, 'WorldCoordinateSystem', INDETERMINATE) def calc_IfcGeometricRepresentationSubContext_CoordinateSpaceDimension(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return getattr(parentcontext, 'CoordinateSpaceDimension', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return express_getattr(parentcontext, 'CoordinateSpaceDimension', INDETERMINATE) def calc_IfcGeometricRepresentationSubContext_TrueNorth(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return nvl(getattr(parentcontext, 'TrueNorth', INDETERMINATE), IfcConvertDirectionInto2D(express_getitem(getattr(getattr(self, 'WorldCoordinateSystem', INDETERMINATE), 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return nvl(express_getattr(parentcontext, 'TrueNorth', INDETERMINATE), IfcConvertDirectionInto2D(express_getitem(express_getattr(express_getattr(self, 'WorldCoordinateSystem', INDETERMINATE), 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) def calc_IfcGeometricRepresentationSubContext_Precision(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return nvl(getattr(parentcontext, 'Precision', INDETERMINATE), 1) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return nvl(express_getattr(parentcontext, 'Precision', INDETERMINATE), 1) class IfcGeometricSet_ConsistentDim: SCOPE = 'entity' @@ -8544,12 +8554,12 @@ class IfcGeometricSet_ConsistentDim: @staticmethod def __call__(self): - elements = getattr(self, 'Elements', INDETERMINATE) - assert (sizeof([temp for temp in elements if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + elements = express_getattr(self, 'Elements', INDETERMINATE) + assert (sizeof([temp for temp in elements if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcGeometricSet_Dim(self): - elements = getattr(self, 'Elements', INDETERMINATE) - return getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + elements = express_getattr(self, 'Elements', INDETERMINATE) + return express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) class IfcGridAxis_WR1: SCOPE = 'entity' @@ -8558,8 +8568,8 @@ class IfcGridAxis_WR1: @staticmethod def __call__(self): - axiscurve = getattr(self, 'AxisCurve', INDETERMINATE) - assert (getattr(axiscurve, 'Dim', INDETERMINATE) == 2) is not False + axiscurve = express_getattr(self, 'AxisCurve', INDETERMINATE) + assert (express_getattr(axiscurve, 'Dim', INDETERMINATE) == 2) is not False class IfcGridAxis_WR2: SCOPE = 'entity' @@ -8568,9 +8578,9 @@ class IfcGridAxis_WR2: @staticmethod def __call__(self): - partofw = getattr(self, 'PartOfW', INDETERMINATE) - partofv = getattr(self, 'PartOfV', INDETERMINATE) - partofu = getattr(self, 'PartOfU', INDETERMINATE) + partofw = express_getattr(self, 'PartOfW', INDETERMINATE) + partofv = express_getattr(self, 'PartOfV', INDETERMINATE) + partofu = express_getattr(self, 'PartOfU', INDETERMINATE) assert (sizeof(partofu) == 1) ^ (sizeof(partofv) == 1) ^ (sizeof(partofw) == 1) is not False def calc_IfcHalfSpaceSolid_Dim(self): @@ -8583,8 +8593,8 @@ class IfcHeatExchanger_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcHeatExchanger_CorrectTypeAssigned: SCOPE = 'entity' @@ -8593,8 +8603,8 @@ class IfcHeatExchanger_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcheatexchangertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcheatexchangertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcHeatExchangerType_CorrectPredefinedType: SCOPE = 'entity' @@ -8603,8 +8613,8 @@ class IfcHeatExchangerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcHumidifier_CorrectPredefinedType: SCOPE = 'entity' @@ -8613,8 +8623,8 @@ class IfcHumidifier_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcHumidifier_CorrectTypeAssigned: SCOPE = 'entity' @@ -8623,8 +8633,8 @@ class IfcHumidifier_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifchumidifiertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifchumidifiertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcHumidifierType_CorrectPredefinedType: SCOPE = 'entity' @@ -8633,8 +8643,8 @@ class IfcHumidifierType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcIShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -8643,8 +8653,8 @@ class IfcIShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (2.0 * flangethickness < overalldepth) is not False class IfcIShapeProfileDef_ValidWebThickness: @@ -8654,8 +8664,8 @@ class IfcIShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - overallwidth = getattr(self, 'OverallWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + overallwidth = express_getattr(self, 'OverallWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < overallwidth) is not False class IfcIShapeProfileDef_ValidFilletRadius: @@ -8665,11 +8675,11 @@ class IfcIShapeProfileDef_ValidFilletRadius: @staticmethod def __call__(self): - overallwidth = getattr(self, 'OverallWidth', INDETERMINATE) - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) - filletradius = getattr(self, 'FilletRadius', INDETERMINATE) + overallwidth = express_getattr(self, 'OverallWidth', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) + filletradius = express_getattr(self, 'FilletRadius', INDETERMINATE) assert (not exists(filletradius) or (filletradius <= (overallwidth - webthickness) / 2.0 and filletradius <= (overalldepth - 2.0 * flangethickness) / 2.0)) is not False class IfcImpactProtectionDevice_CorrectPredefinedType: @@ -8679,8 +8689,8 @@ class IfcImpactProtectionDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcImpactProtectionDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -8689,8 +8699,8 @@ class IfcImpactProtectionDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcimpactprotectiondevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcimpactprotectiondevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcImpactProtectionDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -8699,8 +8709,8 @@ class IfcImpactProtectionDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcIndexedPolyCurve_Consecutive: SCOPE = 'entity' @@ -8709,7 +8719,7 @@ class IfcIndexedPolyCurve_Consecutive: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) + segments = express_getattr(self, 'Segments', INDETERMINATE) assert (not exists(segments) or IfcConsecutiveSegments(segments)) is not False class IfcInterceptor_CorrectPredefinedType: @@ -8719,8 +8729,8 @@ class IfcInterceptor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcInterceptor_CorrectTypeAssigned: SCOPE = 'entity' @@ -8729,8 +8739,8 @@ class IfcInterceptor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcinterceptortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcinterceptortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcInterceptorType_CorrectPredefinedType: SCOPE = 'entity' @@ -8739,8 +8749,8 @@ class IfcInterceptorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcIntersectionCurve_TwoPCurves: SCOPE = 'entity' @@ -8749,7 +8759,7 @@ class IfcIntersectionCurve_TwoPCurves: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False + assert (sizeof(express_getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False class IfcIntersectionCurve_DistinctSurfaces: SCOPE = 'entity' @@ -8758,7 +8768,7 @@ class IfcIntersectionCurve_DistinctSurfaces: @staticmethod def __call__(self): - assert (IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcJunctionBox_CorrectPredefinedType: SCOPE = 'entity' @@ -8767,8 +8777,8 @@ class IfcJunctionBox_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcJunctionBox_CorrectTypeAssigned: SCOPE = 'entity' @@ -8777,8 +8787,8 @@ class IfcJunctionBox_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcjunctionboxtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcjunctionboxtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcJunctionBoxType_CorrectPredefinedType: SCOPE = 'entity' @@ -8787,8 +8797,8 @@ class IfcJunctionBoxType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLShapeProfileDef_ValidThickness: SCOPE = 'entity' @@ -8797,9 +8807,9 @@ class IfcLShapeProfileDef_ValidThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - thickness = getattr(self, 'Thickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + thickness = express_getattr(self, 'Thickness', INDETERMINATE) assert (thickness < depth and (not exists(width) or thickness < width)) is not False class IfcLaborResource_CorrectPredefinedType: @@ -8809,8 +8819,8 @@ class IfcLaborResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLaborResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -8819,8 +8829,8 @@ class IfcLaborResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcLamp_CorrectPredefinedType: SCOPE = 'entity' @@ -8829,8 +8839,8 @@ class IfcLamp_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLamp_CorrectTypeAssigned: SCOPE = 'entity' @@ -8839,8 +8849,8 @@ class IfcLamp_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifclamptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifclamptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLampType_CorrectPredefinedType: SCOPE = 'entity' @@ -8849,8 +8859,8 @@ class IfcLampType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLightFixture_CorrectPredefinedType: SCOPE = 'entity' @@ -8859,8 +8869,8 @@ class IfcLightFixture_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLightFixture_CorrectTypeAssigned: SCOPE = 'entity' @@ -8869,8 +8879,8 @@ class IfcLightFixture_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifclightfixturetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifclightfixturetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLightFixtureType_CorrectPredefinedType: SCOPE = 'entity' @@ -8879,8 +8889,8 @@ class IfcLightFixtureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLine_SameDim: SCOPE = 'entity' @@ -8889,9 +8899,9 @@ class IfcLine_SameDim: @staticmethod def __call__(self): - pnt = getattr(self, 'Pnt', INDETERMINATE) - dir = getattr(self, 'Dir', INDETERMINATE) - assert (getattr(dir, 'Dim', INDETERMINATE) == getattr(pnt, 'Dim', INDETERMINATE)) is not False + pnt = express_getattr(self, 'Pnt', INDETERMINATE) + dir = express_getattr(self, 'Dir', INDETERMINATE) + assert (express_getattr(dir, 'Dim', INDETERMINATE) == express_getattr(pnt, 'Dim', INDETERMINATE)) is not False class IfcLiquidTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -8900,8 +8910,8 @@ class IfcLiquidTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLiquidTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -8910,8 +8920,8 @@ class IfcLiquidTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcliquidterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcliquidterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLiquidTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -8920,8 +8930,8 @@ class IfcLiquidTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLocalPlacement_WR21: SCOPE = 'entity' @@ -8930,8 +8940,8 @@ class IfcLocalPlacement_WR21: @staticmethod def __call__(self): - placementrelto = getattr(self, 'PlacementRelTo', INDETERMINATE) - relativeplacement = getattr(self, 'RelativePlacement', INDETERMINATE) + placementrelto = express_getattr(self, 'PlacementRelTo', INDETERMINATE) + relativeplacement = express_getattr(self, 'RelativePlacement', INDETERMINATE) assert IfcCorrectLocalPlacement(relativeplacement, placementrelto) is not False class IfcMarineFacility_CorrectPredefinedType: @@ -8941,8 +8951,8 @@ class IfcMarineFacility_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMaterialDefinitionRepresentation_OnlyStyledRepresentations: SCOPE = 'entity' @@ -8951,7 +8961,7 @@ class IfcMaterialDefinitionRepresentation_OnlyStyledRepresentations: @staticmethod def __call__(self): - representations = getattr(self, 'Representations', INDETERMINATE) + representations = express_getattr(self, 'Representations', INDETERMINATE) assert (sizeof([temp for temp in representations if not 'ifc4x3_rc1.ifcstyledrepresentation' in typeof(temp)]) == 0) is not False class IfcMaterialLayer_NormalizedPriority: @@ -8961,7 +8971,7 @@ class IfcMaterialLayer_NormalizedPriority: @staticmethod def __call__(self): - priority = getattr(self, 'Priority', INDETERMINATE) + priority = express_getattr(self, 'Priority', INDETERMINATE) assert (not exists(priority) or 0 <= priority <= 100) is not False def calc_IfcMaterialLayerSet_TotalThickness(self): @@ -8974,7 +8984,7 @@ class IfcMaterialProfile_NormalizedPriority: @staticmethod def __call__(self): - priority = getattr(self, 'Priority', INDETERMINATE) + priority = express_getattr(self, 'Priority', INDETERMINATE) assert (not exists(priority) or 0 <= priority <= 100) is not False class IfcMechanicalFastener_CorrectPredefinedType: @@ -8984,8 +8994,8 @@ class IfcMechanicalFastener_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMechanicalFastener_CorrectTypeAssigned: SCOPE = 'entity' @@ -8994,8 +9004,8 @@ class IfcMechanicalFastener_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcmechanicalfastenertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcmechanicalfastenertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMechanicalFastenerType_CorrectPredefinedType: SCOPE = 'entity' @@ -9004,8 +9014,8 @@ class IfcMechanicalFastenerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMedicalDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -9014,8 +9024,8 @@ class IfcMedicalDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMedicalDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -9024,8 +9034,8 @@ class IfcMedicalDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcmedicaldevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcmedicaldevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMedicalDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9034,8 +9044,8 @@ class IfcMedicalDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMember_CorrectPredefinedType: SCOPE = 'entity' @@ -9044,8 +9054,8 @@ class IfcMember_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMember_CorrectTypeAssigned: SCOPE = 'entity' @@ -9054,8 +9064,8 @@ class IfcMember_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcmembertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcmembertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMemberStandardCase_HasMaterialProfileSetUsage: SCOPE = 'entity' @@ -9064,7 +9074,7 @@ class IfcMemberStandardCase_HasMaterialProfileSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc1.ifcrelassociates.relatedobjects') if 'ifc4x3_rc1.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc1.ifcmaterialprofilesetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc1.ifcrelassociates.relatedobjects') if 'ifc4x3_rc1.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc1.ifcmaterialprofilesetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcMemberType_CorrectPredefinedType: SCOPE = 'entity' @@ -9073,8 +9083,8 @@ class IfcMemberType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcMirroredProfileDef_Operator(self): return IfcCartesianTransformationOperator2D(Axis1=IfcDirection(DirectionRatios=[-1.0, 0.0]), Axis2=IfcDirection(DirectionRatios=[0.0, 1.0]), LocalOrigin=IfcCartesianPoint(Coordinates=[0.0, 0.0]), Scale=1.0) @@ -9086,8 +9096,8 @@ class IfcMobileTelecommunicationsAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMobileTelecommunicationsAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -9096,8 +9106,8 @@ class IfcMobileTelecommunicationsAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcmobiletelecommunicationsappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcmobiletelecommunicationsappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMobileTelecommunicationsApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9106,8 +9116,8 @@ class IfcMobileTelecommunicationsApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMooringDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -9116,8 +9126,8 @@ class IfcMooringDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMooringDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -9126,8 +9136,8 @@ class IfcMooringDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcmooringdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcmooringdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMooringDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9136,8 +9146,8 @@ class IfcMooringDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMotorConnection_CorrectPredefinedType: SCOPE = 'entity' @@ -9146,8 +9156,8 @@ class IfcMotorConnection_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMotorConnection_CorrectTypeAssigned: SCOPE = 'entity' @@ -9156,8 +9166,8 @@ class IfcMotorConnection_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcmotorconnectiontype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcmotorconnectiontype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMotorConnectionType_CorrectPredefinedType: SCOPE = 'entity' @@ -9166,8 +9176,8 @@ class IfcMotorConnectionType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcNamedUnit_WR1: SCOPE = 'entity' @@ -9176,7 +9186,7 @@ class IfcNamedUnit_WR1: @staticmethod def __call__(self): - assert IfcCorrectDimensions(getattr(self, 'UnitType', INDETERMINATE), getattr(self, 'Dimensions', INDETERMINATE)) is not False + assert IfcCorrectDimensions(express_getattr(self, 'UnitType', INDETERMINATE), express_getattr(self, 'Dimensions', INDETERMINATE)) is not False class IfcNavigationElement_CorrectPredefinedType: SCOPE = 'entity' @@ -9185,8 +9195,8 @@ class IfcNavigationElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcNavigationElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -9195,8 +9205,8 @@ class IfcNavigationElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcnavigationelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcnavigationelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcNavigationElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -9205,8 +9215,8 @@ class IfcNavigationElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcObject_UniquePropertySetNames: SCOPE = 'entity' @@ -9215,7 +9225,7 @@ class IfcObject_UniquePropertySetNames: @staticmethod def __call__(self): - isdefinedby = getattr(self, 'IsDefinedBy', INDETERMINATE) + isdefinedby = express_getattr(self, 'IsDefinedBy', INDETERMINATE) assert (sizeof(isdefinedby) == 0 or IfcUniqueDefinitionNames(isdefinedby)) is not False class IfcObjective_WR21: @@ -9225,8 +9235,8 @@ class IfcObjective_WR21: @staticmethod def __call__(self): - objectivequalifier = getattr(self, 'ObjectiveQualifier', INDETERMINATE) - assert (objectivequalifier != getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) or (objectivequalifier == getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedQualifier', INDETERMINATE)))) is not False + objectivequalifier = express_getattr(self, 'ObjectiveQualifier', INDETERMINATE) + assert (objectivequalifier != express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) or (objectivequalifier == express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedQualifier', INDETERMINATE)))) is not False class IfcOccupant_WR31: SCOPE = 'entity' @@ -9235,8 +9245,8 @@ class IfcOccupant_WR31: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not predefinedtype == getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not predefinedtype == express_getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcOffsetCurve2D_DimIs2D: SCOPE = 'entity' @@ -9245,8 +9255,8 @@ class IfcOffsetCurve2D_DimIs2D: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - assert (getattr(basiscurve, 'Dim', INDETERMINATE) == 2) is not False + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + assert (express_getattr(basiscurve, 'Dim', INDETERMINATE) == 2) is not False class IfcOffsetCurve3D_DimIs2D: SCOPE = 'entity' @@ -9255,8 +9265,8 @@ class IfcOffsetCurve3D_DimIs2D: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - assert (getattr(basiscurve, 'Dim', INDETERMINATE) == 3) is not False + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + assert (express_getattr(basiscurve, 'Dim', INDETERMINATE) == 3) is not False class IfcOpenCrossProfileDef_CorrectProfileType: SCOPE = 'entity' @@ -9265,7 +9275,7 @@ class IfcOpenCrossProfileDef_CorrectProfileType: @staticmethod def __call__(self): - assert (getattr(self, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False class IfcOpenCrossProfileDef_CorrespondingSlopeWidths: SCOPE = 'entity' @@ -9274,8 +9284,8 @@ class IfcOpenCrossProfileDef_CorrespondingSlopeWidths: @staticmethod def __call__(self): - widths = getattr(self, 'Widths', INDETERMINATE) - slopes = getattr(self, 'Slopes', INDETERMINATE) + widths = express_getattr(self, 'Widths', INDETERMINATE) + slopes = express_getattr(self, 'Slopes', INDETERMINATE) assert (sizeof(slopes) == sizeof(widths)) is not False class IfcOpenCrossProfileDef_CorrespondingTags: @@ -9285,8 +9295,8 @@ class IfcOpenCrossProfileDef_CorrespondingTags: @staticmethod def __call__(self): - slopes = getattr(self, 'Slopes', INDETERMINATE) - tags = getattr(self, 'Tags', INDETERMINATE) + slopes = express_getattr(self, 'Slopes', INDETERMINATE) + tags = express_getattr(self, 'Tags', INDETERMINATE) assert (not exists(tags) or sizeof(tags) == sizeof(slopes) + 1) is not False class IfcOrientedEdge_EdgeElementNotOriented: @@ -9296,18 +9306,18 @@ class IfcOrientedEdge_EdgeElementNotOriented: @staticmethod def __call__(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) assert (not 'ifc4x3_rc1.ifcorientededge' in typeof(edgeelement)) is not False def calc_IfcOrientedEdge_EdgeStart(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) - orientation = getattr(self, 'Orientation', INDETERMINATE) - return IfcBooleanChoose(orientation, getattr(edgeelement, 'EdgeStart', INDETERMINATE), getattr(edgeelement, 'EdgeEnd', INDETERMINATE)) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return IfcBooleanChoose(orientation, express_getattr(edgeelement, 'EdgeStart', INDETERMINATE), express_getattr(edgeelement, 'EdgeEnd', INDETERMINATE)) def calc_IfcOrientedEdge_EdgeEnd(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) - orientation = getattr(self, 'Orientation', INDETERMINATE) - return IfcBooleanChoose(orientation, getattr(edgeelement, 'EdgeEnd', INDETERMINATE), getattr(edgeelement, 'EdgeStart', INDETERMINATE)) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return IfcBooleanChoose(orientation, express_getattr(edgeelement, 'EdgeEnd', INDETERMINATE), express_getattr(edgeelement, 'EdgeStart', INDETERMINATE)) class IfcOutlet_CorrectPredefinedType: SCOPE = 'entity' @@ -9316,8 +9326,8 @@ class IfcOutlet_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcOutlet_CorrectTypeAssigned: SCOPE = 'entity' @@ -9326,8 +9336,8 @@ class IfcOutlet_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcoutlettype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcoutlettype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcOutletType_CorrectPredefinedType: SCOPE = 'entity' @@ -9336,8 +9346,8 @@ class IfcOutletType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcOwnerHistory_CorrectChangeAction: SCOPE = 'entity' @@ -9346,9 +9356,9 @@ class IfcOwnerHistory_CorrectChangeAction: @staticmethod def __call__(self): - changeaction = getattr(self, 'ChangeAction', INDETERMINATE) - lastmodifieddate = getattr(self, 'LastModifiedDate', INDETERMINATE) - assert (exists(lastmodifieddate) or (not exists(lastmodifieddate) and (not exists(changeaction))) or (not exists(lastmodifieddate) and exists(changeaction) and (changeaction == getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) or changeaction == getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE)))) is not False + changeaction = express_getattr(self, 'ChangeAction', INDETERMINATE) + lastmodifieddate = express_getattr(self, 'LastModifiedDate', INDETERMINATE) + assert (exists(lastmodifieddate) or (not exists(lastmodifieddate) and (not exists(changeaction))) or (not exists(lastmodifieddate) and exists(changeaction) and (changeaction == express_getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) or changeaction == express_getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE)))) is not False class IfcPath_IsContinuous: SCOPE = 'entity' @@ -9366,8 +9376,8 @@ class IfcPcurve_DimIs2D: @staticmethod def __call__(self): - referencecurve = getattr(self, 'ReferenceCurve', INDETERMINATE) - assert (getattr(referencecurve, 'Dim', INDETERMINATE) == 2) is not False + referencecurve = express_getattr(self, 'ReferenceCurve', INDETERMINATE) + assert (express_getattr(referencecurve, 'Dim', INDETERMINATE) == 2) is not False class IfcPerson_IdentifiablePerson: SCOPE = 'entity' @@ -9376,9 +9386,9 @@ class IfcPerson_IdentifiablePerson: @staticmethod def __call__(self): - identification = getattr(self, 'Identification', INDETERMINATE) - familyname = getattr(self, 'FamilyName', INDETERMINATE) - givenname = getattr(self, 'GivenName', INDETERMINATE) + identification = express_getattr(self, 'Identification', INDETERMINATE) + familyname = express_getattr(self, 'FamilyName', INDETERMINATE) + givenname = express_getattr(self, 'GivenName', INDETERMINATE) assert (exists(identification) or exists(familyname) or exists(givenname)) is not False class IfcPerson_ValidSetOfNames: @@ -9388,9 +9398,9 @@ class IfcPerson_ValidSetOfNames: @staticmethod def __call__(self): - familyname = getattr(self, 'FamilyName', INDETERMINATE) - givenname = getattr(self, 'GivenName', INDETERMINATE) - middlenames = getattr(self, 'MiddleNames', INDETERMINATE) + familyname = express_getattr(self, 'FamilyName', INDETERMINATE) + givenname = express_getattr(self, 'GivenName', INDETERMINATE) + middlenames = express_getattr(self, 'MiddleNames', INDETERMINATE) assert (not exists(middlenames) or exists(familyname) or exists(givenname)) is not False class IfcPhysicalComplexQuantity_NoSelfReference: @@ -9400,7 +9410,7 @@ class IfcPhysicalComplexQuantity_NoSelfReference: @staticmethod def __call__(self): - hasquantities = getattr(self, 'HasQuantities', INDETERMINATE) + hasquantities = express_getattr(self, 'HasQuantities', INDETERMINATE) assert (sizeof([temp for temp in hasquantities if self == temp]) == 0) is not False class IfcPhysicalComplexQuantity_UniqueQuantityNames: @@ -9410,7 +9420,7 @@ class IfcPhysicalComplexQuantity_UniqueQuantityNames: @staticmethod def __call__(self): - hasquantities = getattr(self, 'HasQuantities', INDETERMINATE) + hasquantities = express_getattr(self, 'HasQuantities', INDETERMINATE) assert IfcUniqueQuantityNames(hasquantities) is not False class IfcPile_CorrectPredefinedType: @@ -9420,8 +9430,8 @@ class IfcPile_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPile_CorrectTypeAssigned: SCOPE = 'entity' @@ -9430,8 +9440,8 @@ class IfcPile_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcpiletype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcpiletype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPileType_CorrectPredefinedType: SCOPE = 'entity' @@ -9440,8 +9450,8 @@ class IfcPileType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPipeFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -9450,8 +9460,8 @@ class IfcPipeFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPipeFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -9460,8 +9470,8 @@ class IfcPipeFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcpipefittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcpipefittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPipeFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -9470,8 +9480,8 @@ class IfcPipeFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPipeSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -9480,8 +9490,8 @@ class IfcPipeSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPipeSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -9490,8 +9500,8 @@ class IfcPipeSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcpipesegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcpipesegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPipeSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -9500,8 +9510,8 @@ class IfcPipeSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPixelTexture_MinPixelInS: SCOPE = 'entity' @@ -9510,7 +9520,7 @@ class IfcPixelTexture_MinPixelInS: @staticmethod def __call__(self): - width = getattr(self, 'Width', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) assert (width >= 1) is not False class IfcPixelTexture_MinPixelInT: @@ -9520,7 +9530,7 @@ class IfcPixelTexture_MinPixelInT: @staticmethod def __call__(self): - height = getattr(self, 'Height', INDETERMINATE) + height = express_getattr(self, 'Height', INDETERMINATE) assert (height >= 1) is not False class IfcPixelTexture_NumberOfColours: @@ -9530,7 +9540,7 @@ class IfcPixelTexture_NumberOfColours: @staticmethod def __call__(self): - colourcomponents = getattr(self, 'ColourComponents', INDETERMINATE) + colourcomponents = express_getattr(self, 'ColourComponents', INDETERMINATE) assert (1 <= colourcomponents <= 4) is not False class IfcPixelTexture_SizeOfPixelList: @@ -9540,9 +9550,9 @@ class IfcPixelTexture_SizeOfPixelList: @staticmethod def __call__(self): - width = getattr(self, 'Width', INDETERMINATE) - height = getattr(self, 'Height', INDETERMINATE) - pixel = getattr(self, 'Pixel', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + height = express_getattr(self, 'Height', INDETERMINATE) + pixel = express_getattr(self, 'Pixel', INDETERMINATE) assert (sizeof(pixel) == width * height) is not False class IfcPixelTexture_PixelAsByteAndSameLength: @@ -9552,12 +9562,12 @@ class IfcPixelTexture_PixelAsByteAndSameLength: @staticmethod def __call__(self): - pixel = getattr(self, 'Pixel', INDETERMINATE) + pixel = express_getattr(self, 'Pixel', INDETERMINATE) assert (sizeof([temp for temp in pixel if blength(temp) % 8 == 0 and blength(temp) == blength(express_getitem(pixel, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == sizeof(pixel)) is not False def calc_IfcPlacement_Dim(self): - location = getattr(self, 'Location', INDETERMINATE) - return getattr(location, 'Dim', INDETERMINATE) + location = express_getattr(self, 'Location', INDETERMINATE) + return express_getattr(location, 'Dim', INDETERMINATE) class IfcPlate_CorrectPredefinedType: SCOPE = 'entity' @@ -9566,8 +9576,8 @@ class IfcPlate_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPlate_CorrectTypeAssigned: SCOPE = 'entity' @@ -9576,8 +9586,8 @@ class IfcPlate_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcplatetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcplatetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPlateStandardCase_HasMaterialLayerSetUsage: SCOPE = 'entity' @@ -9586,7 +9596,7 @@ class IfcPlateStandardCase_HasMaterialLayerSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc1.ifcrelassociates.relatedobjects') if 'ifc4x3_rc1.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc1.ifcmateriallayersetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc1.ifcrelassociates.relatedobjects') if 'ifc4x3_rc1.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc1.ifcmateriallayersetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcPlateType_CorrectPredefinedType: SCOPE = 'entity' @@ -9595,16 +9605,16 @@ class IfcPlateType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcPointOnCurve_Dim(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - return getattr(basiscurve, 'Dim', INDETERMINATE) + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + return express_getattr(basiscurve, 'Dim', INDETERMINATE) def calc_IfcPointOnSurface_Dim(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) - return getattr(basissurface, 'Dim', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) + return express_getattr(basissurface, 'Dim', INDETERMINATE) class IfcPolyLoop_AllPointsSameDim: SCOPE = 'entity' @@ -9613,8 +9623,8 @@ class IfcPolyLoop_AllPointsSameDim: @staticmethod def __call__(self): - polygon = getattr(self, 'Polygon', INDETERMINATE) - assert (sizeof([temp for temp in polygon if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(polygon, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + polygon = express_getattr(self, 'Polygon', INDETERMINATE) + assert (sizeof([temp for temp in polygon if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(polygon, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False class IfcPolygonalBoundedHalfSpace_BoundaryDim: SCOPE = 'entity' @@ -9623,8 +9633,8 @@ class IfcPolygonalBoundedHalfSpace_BoundaryDim: @staticmethod def __call__(self): - polygonalboundary = getattr(self, 'PolygonalBoundary', INDETERMINATE) - assert (getattr(polygonalboundary, 'Dim', INDETERMINATE) == 2) is not False + polygonalboundary = express_getattr(self, 'PolygonalBoundary', INDETERMINATE) + assert (express_getattr(polygonalboundary, 'Dim', INDETERMINATE) == 2) is not False class IfcPolygonalBoundedHalfSpace_BoundaryType: SCOPE = 'entity' @@ -9633,7 +9643,7 @@ class IfcPolygonalBoundedHalfSpace_BoundaryType: @staticmethod def __call__(self): - polygonalboundary = getattr(self, 'PolygonalBoundary', INDETERMINATE) + polygonalboundary = express_getattr(self, 'PolygonalBoundary', INDETERMINATE) assert (sizeof(typeof(polygonalboundary) * ['ifc4x3_rc1.ifcpolyline', 'ifc4x3_rc1.ifccompositecurve']) == 1) is not False class IfcPolyline_SameDim: @@ -9643,8 +9653,8 @@ class IfcPolyline_SameDim: @staticmethod def __call__(self): - points = getattr(self, 'Points', INDETERMINATE) - assert (sizeof([temp for temp in points if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(points, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + points = express_getattr(self, 'Points', INDETERMINATE) + assert (sizeof([temp for temp in points if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(points, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False class IfcPositioningElement_HasPlacement: SCOPE = 'entity' @@ -9653,7 +9663,7 @@ class IfcPositioningElement_HasPlacement: @staticmethod def __call__(self): - assert exists(getattr(self, 'ObjectPlacement', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'ObjectPlacement', INDETERMINATE)) is not False class IfcPostalAddress_WR1: SCOPE = 'entity' @@ -9662,13 +9672,13 @@ class IfcPostalAddress_WR1: @staticmethod def __call__(self): - internallocation = getattr(self, 'InternalLocation', INDETERMINATE) - addresslines = getattr(self, 'AddressLines', INDETERMINATE) - postalbox = getattr(self, 'PostalBox', INDETERMINATE) - town = getattr(self, 'Town', INDETERMINATE) - region = getattr(self, 'Region', INDETERMINATE) - postalcode = getattr(self, 'PostalCode', INDETERMINATE) - country = getattr(self, 'Country', INDETERMINATE) + internallocation = express_getattr(self, 'InternalLocation', INDETERMINATE) + addresslines = express_getattr(self, 'AddressLines', INDETERMINATE) + postalbox = express_getattr(self, 'PostalBox', INDETERMINATE) + town = express_getattr(self, 'Town', INDETERMINATE) + region = express_getattr(self, 'Region', INDETERMINATE) + postalcode = express_getattr(self, 'PostalCode', INDETERMINATE) + country = express_getattr(self, 'Country', INDETERMINATE) assert (exists(internallocation) or exists(addresslines) or exists(postalbox) or exists(postalcode) or exists(town) or exists(region) or exists(country)) is not False class IfcPresentationLayerAssignment_ApplicableItems: @@ -9678,7 +9688,7 @@ class IfcPresentationLayerAssignment_ApplicableItems: @staticmethod def __call__(self): - assigneditems = getattr(self, 'AssignedItems', INDETERMINATE) + assigneditems = express_getattr(self, 'AssignedItems', INDETERMINATE) assert (sizeof([temp for temp in assigneditems if sizeof(typeof(temp) * ['ifc4x3_rc1.ifcshaperepresentation', 'ifc4x3_rc1.ifcgeometricrepresentationitem', 'ifc4x3_rc1.ifcmappeditem']) == 1]) == sizeof(assigneditems)) is not False class IfcPresentationLayerWithStyle_ApplicableOnlyToItems: @@ -9688,7 +9698,7 @@ class IfcPresentationLayerWithStyle_ApplicableOnlyToItems: @staticmethod def __call__(self): - assigneditems = getattr(self, 'AssignedItems', INDETERMINATE) + assigneditems = express_getattr(self, 'AssignedItems', INDETERMINATE) assert (sizeof([temp for temp in assigneditems if sizeof(typeof(temp) * ['ifc4x3_rc1.ifcgeometricrepresentationitem', 'ifc4x3_rc1.ifcmappeditem']) >= 1]) == sizeof(assigneditems)) is not False class IfcProcedure_HasName: @@ -9698,7 +9708,7 @@ class IfcProcedure_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcProcedure_CorrectPredefinedType: SCOPE = 'entity' @@ -9707,8 +9717,8 @@ class IfcProcedure_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProcedureType_CorrectPredefinedType: SCOPE = 'entity' @@ -9717,8 +9727,8 @@ class IfcProcedureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcProduct_PlacementForShapeRepresentation: SCOPE = 'entity' @@ -9727,9 +9737,9 @@ class IfcProduct_PlacementForShapeRepresentation: @staticmethod def __call__(self): - objectplacement = getattr(self, 'ObjectPlacement', INDETERMINATE) - representation = getattr(self, 'Representation', INDETERMINATE) - assert (exists(representation) and exists(objectplacement) or (exists(representation) and sizeof([temp for temp in getattr(representation, 'Representations', INDETERMINATE) if 'ifc4x3_rc1.ifcshaperepresentation' in typeof(temp)]) == 0) or (not exists(representation))) is not False + objectplacement = express_getattr(self, 'ObjectPlacement', INDETERMINATE) + representation = express_getattr(self, 'Representation', INDETERMINATE) + assert (exists(representation) and exists(objectplacement) or (exists(representation) and sizeof([temp for temp in express_getattr(representation, 'Representations', INDETERMINATE) if 'ifc4x3_rc1.ifcshaperepresentation' in typeof(temp)]) == 0) or (not exists(representation))) is not False class IfcProductDefinitionShape_OnlyShapeModel: SCOPE = 'entity' @@ -9738,7 +9748,7 @@ class IfcProductDefinitionShape_OnlyShapeModel: @staticmethod def __call__(self): - representations = getattr(self, 'Representations', INDETERMINATE) + representations = express_getattr(self, 'Representations', INDETERMINATE) assert (sizeof([temp for temp in representations if not 'ifc4x3_rc1.ifcshapemodel' in typeof(temp)]) == 0) is not False class IfcProject_HasName: @@ -9748,7 +9758,7 @@ class IfcProject_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcProject_CorrectContext: SCOPE = 'entity' @@ -9757,7 +9767,7 @@ class IfcProject_CorrectContext: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'RepresentationContexts', INDETERMINATE)) or sizeof([temp for temp in getattr(self, 'RepresentationContexts', INDETERMINATE) if 'ifc4x3_rc1.ifcgeometricrepresentationsubcontext' in typeof(temp)]) == 0) is not False + assert (not exists(express_getattr(self, 'RepresentationContexts', INDETERMINATE)) or sizeof([temp for temp in express_getattr(self, 'RepresentationContexts', INDETERMINATE) if 'ifc4x3_rc1.ifcgeometricrepresentationsubcontext' in typeof(temp)]) == 0) is not False class IfcProject_NoDecomposition: SCOPE = 'entity' @@ -9766,7 +9776,7 @@ class IfcProject_NoDecomposition: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'Decomposes', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'Decomposes', INDETERMINATE)) == 0) is not False class IfcProjectedCRS_IsLengthUnit: SCOPE = 'entity' @@ -9775,8 +9785,8 @@ class IfcProjectedCRS_IsLengthUnit: @staticmethod def __call__(self): - mapunit = getattr(self, 'MapUnit', INDETERMINATE) - assert (not exists(mapunit) or getattr(mapunit, 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False + mapunit = express_getattr(self, 'MapUnit', INDETERMINATE) + assert (not exists(mapunit) or express_getattr(mapunit, 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False class IfcPropertyBoundedValue_SameUnitUpperLower: SCOPE = 'entity' @@ -9785,8 +9795,8 @@ class IfcPropertyBoundedValue_SameUnitUpperLower: @staticmethod def __call__(self): - upperboundvalue = getattr(self, 'UpperBoundValue', INDETERMINATE) - lowerboundvalue = getattr(self, 'LowerBoundValue', INDETERMINATE) + upperboundvalue = express_getattr(self, 'UpperBoundValue', INDETERMINATE) + lowerboundvalue = express_getattr(self, 'LowerBoundValue', INDETERMINATE) assert (not exists(upperboundvalue) or not exists(lowerboundvalue) or typeof(upperboundvalue) == typeof(lowerboundvalue)) is not False class IfcPropertyBoundedValue_SameUnitUpperSet: @@ -9796,8 +9806,8 @@ class IfcPropertyBoundedValue_SameUnitUpperSet: @staticmethod def __call__(self): - upperboundvalue = getattr(self, 'UpperBoundValue', INDETERMINATE) - setpointvalue = getattr(self, 'SetPointValue', INDETERMINATE) + upperboundvalue = express_getattr(self, 'UpperBoundValue', INDETERMINATE) + setpointvalue = express_getattr(self, 'SetPointValue', INDETERMINATE) assert (not exists(upperboundvalue) or not exists(setpointvalue) or typeof(upperboundvalue) == typeof(setpointvalue)) is not False class IfcPropertyBoundedValue_SameUnitLowerSet: @@ -9807,8 +9817,8 @@ class IfcPropertyBoundedValue_SameUnitLowerSet: @staticmethod def __call__(self): - lowerboundvalue = getattr(self, 'LowerBoundValue', INDETERMINATE) - setpointvalue = getattr(self, 'SetPointValue', INDETERMINATE) + lowerboundvalue = express_getattr(self, 'LowerBoundValue', INDETERMINATE) + setpointvalue = express_getattr(self, 'SetPointValue', INDETERMINATE) assert (not exists(lowerboundvalue) or not exists(setpointvalue) or typeof(lowerboundvalue) == typeof(setpointvalue)) is not False class IfcPropertyDependencyRelationship_NoSelfReference: @@ -9818,8 +9828,8 @@ class IfcPropertyDependencyRelationship_NoSelfReference: @staticmethod def __call__(self): - dependingproperty = getattr(self, 'DependingProperty', INDETERMINATE) - dependantproperty = getattr(self, 'DependantProperty', INDETERMINATE) + dependingproperty = express_getattr(self, 'DependingProperty', INDETERMINATE) + dependantproperty = express_getattr(self, 'DependantProperty', INDETERMINATE) assert (dependingproperty != dependantproperty) is not False class IfcPropertyEnumeratedValue_WR21: @@ -9829,9 +9839,9 @@ class IfcPropertyEnumeratedValue_WR21: @staticmethod def __call__(self): - enumerationvalues = getattr(self, 'EnumerationValues', INDETERMINATE) - enumerationreference = getattr(self, 'EnumerationReference', INDETERMINATE) - assert (not exists(enumerationreference) or not exists(enumerationvalues) or sizeof([temp for temp in enumerationvalues if temp in getattr(enumerationreference, 'EnumerationValues', INDETERMINATE)]) == sizeof(enumerationvalues)) is not False + enumerationvalues = express_getattr(self, 'EnumerationValues', INDETERMINATE) + enumerationreference = express_getattr(self, 'EnumerationReference', INDETERMINATE) + assert (not exists(enumerationreference) or not exists(enumerationvalues) or sizeof([temp for temp in enumerationvalues if temp in express_getattr(enumerationreference, 'EnumerationValues', INDETERMINATE)]) == sizeof(enumerationvalues)) is not False class IfcPropertyEnumeration_WR01: SCOPE = 'entity' @@ -9840,7 +9850,7 @@ class IfcPropertyEnumeration_WR01: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'EnumerationValues', INDETERMINATE) if not typeof(express_getitem(getattr(self, 'EnumerationValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'EnumerationValues', INDETERMINATE) if not typeof(express_getitem(express_getattr(self, 'EnumerationValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False class IfcPropertyListValue_WR31: SCOPE = 'entity' @@ -9849,7 +9859,7 @@ class IfcPropertyListValue_WR31: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'ListValues', INDETERMINATE) if not typeof(express_getitem(getattr(self, 'ListValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'ListValues', INDETERMINATE) if not typeof(express_getitem(express_getattr(self, 'ListValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False class IfcPropertySet_ExistsName: SCOPE = 'entity' @@ -9858,7 +9868,7 @@ class IfcPropertySet_ExistsName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPropertySet_UniquePropertyNames: SCOPE = 'entity' @@ -9867,7 +9877,7 @@ class IfcPropertySet_UniquePropertyNames: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert IfcUniquePropertyName(hasproperties) is not False class IfcPropertySetTemplate_ExistsName: @@ -9877,7 +9887,7 @@ class IfcPropertySetTemplate_ExistsName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPropertySetTemplate_UniquePropertyNames: SCOPE = 'entity' @@ -9886,7 +9896,7 @@ class IfcPropertySetTemplate_UniquePropertyNames: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert IfcUniquePropertyTemplateNames(haspropertytemplates) is not False class IfcPropertyTableValue_WR21: @@ -9896,8 +9906,8 @@ class IfcPropertyTableValue_WR21: @staticmethod def __call__(self): - definingvalues = getattr(self, 'DefiningValues', INDETERMINATE) - definedvalues = getattr(self, 'DefinedValues', INDETERMINATE) + definingvalues = express_getattr(self, 'DefiningValues', INDETERMINATE) + definedvalues = express_getattr(self, 'DefinedValues', INDETERMINATE) assert (not exists(definingvalues) and (not exists(definedvalues)) or sizeof(definingvalues) == sizeof(definedvalues)) is not False class IfcPropertyTableValue_WR22: @@ -9907,8 +9917,8 @@ class IfcPropertyTableValue_WR22: @staticmethod def __call__(self): - definingvalues = getattr(self, 'DefiningValues', INDETERMINATE) - assert (not exists(definingvalues) or sizeof([temp for temp in getattr(self, 'DefiningValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(getattr(self, 'DefiningValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False + definingvalues = express_getattr(self, 'DefiningValues', INDETERMINATE) + assert (not exists(definingvalues) or sizeof([temp for temp in express_getattr(self, 'DefiningValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(express_getattr(self, 'DefiningValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False class IfcPropertyTableValue_WR23: SCOPE = 'entity' @@ -9917,8 +9927,8 @@ class IfcPropertyTableValue_WR23: @staticmethod def __call__(self): - definedvalues = getattr(self, 'DefinedValues', INDETERMINATE) - assert (not exists(definedvalues) or sizeof([temp for temp in getattr(self, 'DefinedValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(getattr(self, 'DefinedValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False + definedvalues = express_getattr(self, 'DefinedValues', INDETERMINATE) + assert (not exists(definedvalues) or sizeof([temp for temp in express_getattr(self, 'DefinedValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(express_getattr(self, 'DefinedValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False class IfcProtectiveDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -9927,8 +9937,8 @@ class IfcProtectiveDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProtectiveDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -9937,8 +9947,8 @@ class IfcProtectiveDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcprotectivedevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcprotectivedevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcProtectiveDeviceTrippingUnit_CorrectPredefinedType: SCOPE = 'entity' @@ -9947,8 +9957,8 @@ class IfcProtectiveDeviceTrippingUnit_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProtectiveDeviceTrippingUnit_CorrectTypeAssigned: SCOPE = 'entity' @@ -9957,8 +9967,8 @@ class IfcProtectiveDeviceTrippingUnit_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcprotectivedevicetrippingunittype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcprotectivedevicetrippingunittype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcProtectiveDeviceTrippingUnitType_CorrectPredefinedType: SCOPE = 'entity' @@ -9967,8 +9977,8 @@ class IfcProtectiveDeviceTrippingUnitType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcProtectiveDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9977,8 +9987,8 @@ class IfcProtectiveDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcProxy_WR1: SCOPE = 'entity' @@ -9987,7 +9997,7 @@ class IfcProxy_WR1: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPump_CorrectPredefinedType: SCOPE = 'entity' @@ -9996,8 +10006,8 @@ class IfcPump_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPump_CorrectTypeAssigned: SCOPE = 'entity' @@ -10006,8 +10016,8 @@ class IfcPump_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcpumptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcpumptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPumpType_CorrectPredefinedType: SCOPE = 'entity' @@ -10016,8 +10026,8 @@ class IfcPumpType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcQuantityArea_WR21: SCOPE = 'entity' @@ -10026,7 +10036,7 @@ class IfcQuantityArea_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE)) is not False class IfcQuantityArea_WR22: SCOPE = 'entity' @@ -10035,7 +10045,7 @@ class IfcQuantityArea_WR22: @staticmethod def __call__(self): - areavalue = getattr(self, 'AreaValue', INDETERMINATE) + areavalue = express_getattr(self, 'AreaValue', INDETERMINATE) assert (areavalue >= 0.0) is not False class IfcQuantityCount_WR21: @@ -10045,7 +10055,7 @@ class IfcQuantityCount_WR21: @staticmethod def __call__(self): - countvalue = getattr(self, 'CountValue', INDETERMINATE) + countvalue = express_getattr(self, 'CountValue', INDETERMINATE) assert (countvalue >= 0.0) is not False class IfcQuantityLength_WR21: @@ -10055,7 +10065,7 @@ class IfcQuantityLength_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False class IfcQuantityLength_WR22: SCOPE = 'entity' @@ -10064,7 +10074,7 @@ class IfcQuantityLength_WR22: @staticmethod def __call__(self): - lengthvalue = getattr(self, 'LengthValue', INDETERMINATE) + lengthvalue = express_getattr(self, 'LengthValue', INDETERMINATE) assert (lengthvalue >= 0.0) is not False class IfcQuantityTime_WR21: @@ -10074,7 +10084,7 @@ class IfcQuantityTime_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE)) is not False class IfcQuantityTime_WR22: SCOPE = 'entity' @@ -10083,7 +10093,7 @@ class IfcQuantityTime_WR22: @staticmethod def __call__(self): - timevalue = getattr(self, 'TimeValue', INDETERMINATE) + timevalue = express_getattr(self, 'TimeValue', INDETERMINATE) assert (timevalue >= 0.0) is not False class IfcQuantityVolume_WR21: @@ -10093,7 +10103,7 @@ class IfcQuantityVolume_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE)) is not False class IfcQuantityVolume_WR22: SCOPE = 'entity' @@ -10102,7 +10112,7 @@ class IfcQuantityVolume_WR22: @staticmethod def __call__(self): - volumevalue = getattr(self, 'VolumeValue', INDETERMINATE) + volumevalue = express_getattr(self, 'VolumeValue', INDETERMINATE) assert (volumevalue >= 0.0) is not False class IfcQuantityWeight_WR21: @@ -10112,7 +10122,7 @@ class IfcQuantityWeight_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE)) is not False class IfcQuantityWeight_WR22: SCOPE = 'entity' @@ -10121,7 +10131,7 @@ class IfcQuantityWeight_WR22: @staticmethod def __call__(self): - weightvalue = getattr(self, 'WeightValue', INDETERMINATE) + weightvalue = express_getattr(self, 'WeightValue', INDETERMINATE) assert (weightvalue >= 0.0) is not False class IfcRail_CorrectPredefinedType: @@ -10131,8 +10141,8 @@ class IfcRail_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRail_CorrectTypeAssigned: SCOPE = 'entity' @@ -10141,8 +10151,8 @@ class IfcRail_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcrailtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcrailtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRailType_CorrectPredefinedType: SCOPE = 'entity' @@ -10151,8 +10161,8 @@ class IfcRailType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRailing_CorrectPredefinedType: SCOPE = 'entity' @@ -10161,8 +10171,8 @@ class IfcRailing_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRailing_CorrectTypeAssigned: SCOPE = 'entity' @@ -10171,8 +10181,8 @@ class IfcRailing_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcrailingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcrailingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRailingType_CorrectPredefinedType: SCOPE = 'entity' @@ -10181,8 +10191,8 @@ class IfcRailingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRamp_CorrectPredefinedType: SCOPE = 'entity' @@ -10191,8 +10201,8 @@ class IfcRamp_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRamp_CorrectTypeAssigned: SCOPE = 'entity' @@ -10201,8 +10211,8 @@ class IfcRamp_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcramptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcramptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRampFlight_CorrectPredefinedType: SCOPE = 'entity' @@ -10211,8 +10221,8 @@ class IfcRampFlight_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRampFlight_CorrectTypeAssigned: SCOPE = 'entity' @@ -10221,8 +10231,8 @@ class IfcRampFlight_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcrampflighttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcrampflighttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRampFlightType_CorrectPredefinedType: SCOPE = 'entity' @@ -10231,8 +10241,8 @@ class IfcRampFlightType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRampType_CorrectPredefinedType: SCOPE = 'entity' @@ -10241,8 +10251,8 @@ class IfcRampType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRationalBSplineCurveWithKnots_SameNumOfWeightsAndPoints: SCOPE = 'entity' @@ -10251,8 +10261,8 @@ class IfcRationalBSplineCurveWithKnots_SameNumOfWeightsAndPoints: @staticmethod def __call__(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - assert (sizeof(weightsdata) == sizeof(getattr(self, 'ControlPointsList', INDETERMINATE))) is not False + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + assert (sizeof(weightsdata) == sizeof(express_getattr(self, 'ControlPointsList', INDETERMINATE))) is not False class IfcRationalBSplineCurveWithKnots_WeightsGreaterZero: SCOPE = 'entity' @@ -10264,8 +10274,8 @@ class IfcRationalBSplineCurveWithKnots_WeightsGreaterZero: assert IfcCurveWeightsPositive(self) is not False def calc_IfcRationalBSplineCurveWithKnots_Weights(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - return IfcListToArray(weightsdata, 0, getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE)) + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + return IfcListToArray(weightsdata, 0, express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE)) class IfcRationalBSplineSurfaceWithKnots_CorrespondingWeightsDataLists: SCOPE = 'entity' @@ -10274,8 +10284,8 @@ class IfcRationalBSplineSurfaceWithKnots_CorrespondingWeightsDataLists: @staticmethod def __call__(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - assert (sizeof(weightsdata) == sizeof(getattr(self, 'ControlPointsList', INDETERMINATE)) and sizeof(express_getitem(weightsdata, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == sizeof(express_getitem(getattr(self, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + assert (sizeof(weightsdata) == sizeof(express_getattr(self, 'ControlPointsList', INDETERMINATE)) and sizeof(express_getitem(weightsdata, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == sizeof(express_getitem(express_getattr(self, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcRationalBSplineSurfaceWithKnots_WeightValuesGreaterZero: SCOPE = 'entity' @@ -10287,9 +10297,9 @@ class IfcRationalBSplineSurfaceWithKnots_WeightValuesGreaterZero: assert IfcSurfaceWeightsPositive(self) is not False def calc_IfcRationalBSplineSurfaceWithKnots_Weights(self): - uupper = getattr(self, 'UUpper', INDETERMINATE) - vupper = getattr(self, 'VUpper', INDETERMINATE) - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) + uupper = express_getattr(self, 'UUpper', INDETERMINATE) + vupper = express_getattr(self, 'VUpper', INDETERMINATE) + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) return IfcMakeArrayOfArray(weightsdata, 0, uupper, 0, vupper) class IfcRectangleHollowProfileDef_ValidWallThickness: @@ -10299,8 +10309,8 @@ class IfcRectangleHollowProfileDef_ValidWallThickness: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - assert (wallthickness < getattr(self, 'XDim', INDETERMINATE) / 2.0 and wallthickness < getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + assert (wallthickness < express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and wallthickness < express_getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False class IfcRectangleHollowProfileDef_ValidInnerRadius: SCOPE = 'entity' @@ -10309,9 +10319,9 @@ class IfcRectangleHollowProfileDef_ValidInnerRadius: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - innerfilletradius = getattr(self, 'InnerFilletRadius', INDETERMINATE) - assert (not exists(innerfilletradius) or (innerfilletradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 - wallthickness and innerfilletradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0 - wallthickness)) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + innerfilletradius = express_getattr(self, 'InnerFilletRadius', INDETERMINATE) + assert (not exists(innerfilletradius) or (innerfilletradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 - wallthickness and innerfilletradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0 - wallthickness)) is not False class IfcRectangleHollowProfileDef_ValidOuterRadius: SCOPE = 'entity' @@ -10320,8 +10330,8 @@ class IfcRectangleHollowProfileDef_ValidOuterRadius: @staticmethod def __call__(self): - outerfilletradius = getattr(self, 'OuterFilletRadius', INDETERMINATE) - assert (not exists(outerfilletradius) or (outerfilletradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 and outerfilletradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0)) is not False + outerfilletradius = express_getattr(self, 'OuterFilletRadius', INDETERMINATE) + assert (not exists(outerfilletradius) or (outerfilletradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and outerfilletradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0)) is not False class IfcRectangularTrimmedSurface_U1AndU2Different: SCOPE = 'entity' @@ -10330,8 +10340,8 @@ class IfcRectangularTrimmedSurface_U1AndU2Different: @staticmethod def __call__(self): - u1 = getattr(self, 'U1', INDETERMINATE) - u2 = getattr(self, 'U2', INDETERMINATE) + u1 = express_getattr(self, 'U1', INDETERMINATE) + u2 = express_getattr(self, 'U2', INDETERMINATE) assert (u1 != u2) is not False class IfcRectangularTrimmedSurface_V1AndV2Different: @@ -10341,8 +10351,8 @@ class IfcRectangularTrimmedSurface_V1AndV2Different: @staticmethod def __call__(self): - v1 = getattr(self, 'V1', INDETERMINATE) - v2 = getattr(self, 'V2', INDETERMINATE) + v1 = express_getattr(self, 'V1', INDETERMINATE) + v2 = express_getattr(self, 'V2', INDETERMINATE) assert (v1 != v2) is not False class IfcRectangularTrimmedSurface_UsenseCompatible: @@ -10352,10 +10362,10 @@ class IfcRectangularTrimmedSurface_UsenseCompatible: @staticmethod def __call__(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) - u1 = getattr(self, 'U1', INDETERMINATE) - u2 = getattr(self, 'U2', INDETERMINATE) - usense = getattr(self, 'Usense', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) + u1 = express_getattr(self, 'U1', INDETERMINATE) + u2 = express_getattr(self, 'U2', INDETERMINATE) + usense = express_getattr(self, 'Usense', INDETERMINATE) assert ('ifc4x3_rc1.ifcelementarysurface' in typeof(basissurface) and (not 'ifc4x3_rc1.ifcplane' in typeof(basissurface)) or 'ifc4x3_rc1.ifcsurfaceofrevolution' in typeof(basissurface) or usense == (u2 > u1)) is not False class IfcRectangularTrimmedSurface_VsenseCompatible: @@ -10365,9 +10375,9 @@ class IfcRectangularTrimmedSurface_VsenseCompatible: @staticmethod def __call__(self): - v1 = getattr(self, 'V1', INDETERMINATE) - v2 = getattr(self, 'V2', INDETERMINATE) - vsense = getattr(self, 'Vsense', INDETERMINATE) + v1 = express_getattr(self, 'V1', INDETERMINATE) + v2 = express_getattr(self, 'V2', INDETERMINATE) + vsense = express_getattr(self, 'Vsense', INDETERMINATE) assert (vsense == (v2 > v1)) is not False class IfcReinforcedSoil_CorrectPredefinedType: @@ -10377,8 +10387,8 @@ class IfcReinforcedSoil_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingBar_CorrectPredefinedType: SCOPE = 'entity' @@ -10387,8 +10397,8 @@ class IfcReinforcingBar_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingBar_CorrectTypeAssigned: SCOPE = 'entity' @@ -10397,8 +10407,8 @@ class IfcReinforcingBar_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcreinforcingbartype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcreinforcingbartype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcReinforcingBarType_CorrectPredefinedType: SCOPE = 'entity' @@ -10407,8 +10417,8 @@ class IfcReinforcingBarType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcReinforcingBarType_BendingShapeCodeProvided: SCOPE = 'entity' @@ -10417,8 +10427,8 @@ class IfcReinforcingBarType_BendingShapeCodeProvided: @staticmethod def __call__(self): - bendingshapecode = getattr(self, 'BendingShapeCode', INDETERMINATE) - bendingparameters = getattr(self, 'BendingParameters', INDETERMINATE) + bendingshapecode = express_getattr(self, 'BendingShapeCode', INDETERMINATE) + bendingparameters = express_getattr(self, 'BendingParameters', INDETERMINATE) assert (not exists(bendingparameters) or exists(bendingshapecode)) is not False class IfcReinforcingMesh_CorrectPredefinedType: @@ -10428,8 +10438,8 @@ class IfcReinforcingMesh_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingMesh_CorrectTypeAssigned: SCOPE = 'entity' @@ -10438,8 +10448,8 @@ class IfcReinforcingMesh_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcreinforcingmeshtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcreinforcingmeshtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcReinforcingMeshType_CorrectPredefinedType: SCOPE = 'entity' @@ -10448,8 +10458,8 @@ class IfcReinforcingMeshType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcReinforcingMeshType_BendingShapeCodeProvided: SCOPE = 'entity' @@ -10458,8 +10468,8 @@ class IfcReinforcingMeshType_BendingShapeCodeProvided: @staticmethod def __call__(self): - bendingshapecode = getattr(self, 'BendingShapeCode', INDETERMINATE) - bendingparameters = getattr(self, 'BendingParameters', INDETERMINATE) + bendingshapecode = express_getattr(self, 'BendingShapeCode', INDETERMINATE) + bendingparameters = express_getattr(self, 'BendingParameters', INDETERMINATE) assert (not exists(bendingparameters) or exists(bendingshapecode)) is not False class IfcRelAggregates_NoSelfReference: @@ -10469,8 +10479,8 @@ class IfcRelAggregates_NoSelfReference: @staticmethod def __call__(self): - relatingobject = getattr(self, 'RelatingObject', INDETERMINATE) - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) + relatingobject = express_getattr(self, 'RelatingObject', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) assert (sizeof([temp for temp in relatedobjects if relatingobject == temp]) == 0) is not False class IfcRelAssigns_WR1: @@ -10480,8 +10490,8 @@ class IfcRelAssigns_WR1: @staticmethod def __call__(self): - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) - relatedobjectstype = getattr(self, 'RelatedObjectsType', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) + relatedobjectstype = express_getattr(self, 'RelatedObjectsType', INDETERMINATE) assert IfcCorrectObjectAssignment(relatedobjectstype, relatedobjects) is not False class IfcRelAssignsToActor_NoSelfReference: @@ -10491,8 +10501,8 @@ class IfcRelAssignsToActor_NoSelfReference: @staticmethod def __call__(self): - relatingactor = getattr(self, 'RelatingActor', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingactor == temp]) == 0) is not False + relatingactor = express_getattr(self, 'RelatingActor', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingactor == temp]) == 0) is not False class IfcRelAssignsToControl_NoSelfReference: SCOPE = 'entity' @@ -10501,8 +10511,8 @@ class IfcRelAssignsToControl_NoSelfReference: @staticmethod def __call__(self): - relatingcontrol = getattr(self, 'RelatingControl', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingcontrol == temp]) == 0) is not False + relatingcontrol = express_getattr(self, 'RelatingControl', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingcontrol == temp]) == 0) is not False class IfcRelAssignsToGroup_NoSelfReference: SCOPE = 'entity' @@ -10511,8 +10521,8 @@ class IfcRelAssignsToGroup_NoSelfReference: @staticmethod def __call__(self): - relatinggroup = getattr(self, 'RelatingGroup', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatinggroup == temp]) == 0) is not False + relatinggroup = express_getattr(self, 'RelatingGroup', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatinggroup == temp]) == 0) is not False class IfcRelAssignsToProcess_NoSelfReference: SCOPE = 'entity' @@ -10521,8 +10531,8 @@ class IfcRelAssignsToProcess_NoSelfReference: @staticmethod def __call__(self): - relatingprocess = getattr(self, 'RelatingProcess', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingprocess == temp]) == 0) is not False + relatingprocess = express_getattr(self, 'RelatingProcess', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingprocess == temp]) == 0) is not False class IfcRelAssignsToProduct_NoSelfReference: SCOPE = 'entity' @@ -10531,8 +10541,8 @@ class IfcRelAssignsToProduct_NoSelfReference: @staticmethod def __call__(self): - relatingproduct = getattr(self, 'RelatingProduct', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingproduct == temp]) == 0) is not False + relatingproduct = express_getattr(self, 'RelatingProduct', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingproduct == temp]) == 0) is not False class IfcRelAssignsToResource_NoSelfReference: SCOPE = 'entity' @@ -10541,8 +10551,8 @@ class IfcRelAssignsToResource_NoSelfReference: @staticmethod def __call__(self): - relatingresource = getattr(self, 'RelatingResource', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingresource == temp]) == 0) is not False + relatingresource = express_getattr(self, 'RelatingResource', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingresource == temp]) == 0) is not False class IfcRelAssociatesMaterial_NoVoidElement: SCOPE = 'entity' @@ -10551,7 +10561,7 @@ class IfcRelAssociatesMaterial_NoVoidElement: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3_rc1.ifcfeatureelementsubtraction' in typeof(temp) or 'ifc4x3_rc1.ifcvirtualelement' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3_rc1.ifcfeatureelementsubtraction' in typeof(temp) or 'ifc4x3_rc1.ifcvirtualelement' in typeof(temp)]) == 0) is not False class IfcRelAssociatesMaterial_AllowedElements: SCOPE = 'entity' @@ -10560,7 +10570,7 @@ class IfcRelAssociatesMaterial_AllowedElements: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if sizeof(typeof(temp) * ['ifc4x3_rc1.ifcelement', 'ifc4x3_rc1.ifcelementtype', 'ifc4x3_rc1.ifcwindowstyle', 'ifc4x3_rc1.ifcdoorstyle', 'ifc4x3_rc1.ifcstructuralmember', 'ifc4x3_rc1.ifcport']) == 0]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if sizeof(typeof(temp) * ['ifc4x3_rc1.ifcelement', 'ifc4x3_rc1.ifcelementtype', 'ifc4x3_rc1.ifcwindowstyle', 'ifc4x3_rc1.ifcdoorstyle', 'ifc4x3_rc1.ifcstructuralmember', 'ifc4x3_rc1.ifcport']) == 0]) == 0) is not False class IfcRelConnectsElements_NoSelfReference: SCOPE = 'entity' @@ -10569,8 +10579,8 @@ class IfcRelConnectsElements_NoSelfReference: @staticmethod def __call__(self): - relatingelement = getattr(self, 'RelatingElement', INDETERMINATE) - relatedelement = getattr(self, 'RelatedElement', INDETERMINATE) + relatingelement = express_getattr(self, 'RelatingElement', INDETERMINATE) + relatedelement = express_getattr(self, 'RelatedElement', INDETERMINATE) assert (relatingelement != relatedelement) is not False class IfcRelConnectsPathElements_NormalizedRelatingPriorities: @@ -10580,7 +10590,7 @@ class IfcRelConnectsPathElements_NormalizedRelatingPriorities: @staticmethod def __call__(self): - relatingpriorities = getattr(self, 'RelatingPriorities', INDETERMINATE) + relatingpriorities = express_getattr(self, 'RelatingPriorities', INDETERMINATE) assert (sizeof(relatingpriorities) == 0 or sizeof([temp for temp in relatingpriorities if 0 <= temp <= 100]) == sizeof(relatingpriorities)) is not False class IfcRelConnectsPathElements_NormalizedRelatedPriorities: @@ -10590,7 +10600,7 @@ class IfcRelConnectsPathElements_NormalizedRelatedPriorities: @staticmethod def __call__(self): - relatedpriorities = getattr(self, 'RelatedPriorities', INDETERMINATE) + relatedpriorities = express_getattr(self, 'RelatedPriorities', INDETERMINATE) assert (sizeof(relatedpriorities) == 0 or sizeof([temp for temp in relatedpriorities if 0 <= temp <= 100]) == sizeof(relatedpriorities)) is not False class IfcRelConnectsPorts_NoSelfReference: @@ -10600,8 +10610,8 @@ class IfcRelConnectsPorts_NoSelfReference: @staticmethod def __call__(self): - relatingport = getattr(self, 'RelatingPort', INDETERMINATE) - relatedport = getattr(self, 'RelatedPort', INDETERMINATE) + relatingport = express_getattr(self, 'RelatingPort', INDETERMINATE) + relatedport = express_getattr(self, 'RelatedPort', INDETERMINATE) assert (relatingport != relatedport) is not False class IfcRelContainedInSpatialStructure_WR31: @@ -10611,7 +10621,7 @@ class IfcRelContainedInSpatialStructure_WR31: @staticmethod def __call__(self): - relatedelements = getattr(self, 'RelatedElements', INDETERMINATE) + relatedelements = express_getattr(self, 'RelatedElements', INDETERMINATE) assert (sizeof([temp for temp in relatedelements if 'ifc4x3_rc1.ifcspatialstructureelement' in typeof(temp)]) == 0) is not False class IfcRelDeclares_NoSelfReference: @@ -10621,8 +10631,8 @@ class IfcRelDeclares_NoSelfReference: @staticmethod def __call__(self): - relatingcontext = getattr(self, 'RelatingContext', INDETERMINATE) - relateddefinitions = getattr(self, 'RelatedDefinitions', INDETERMINATE) + relatingcontext = express_getattr(self, 'RelatingContext', INDETERMINATE) + relateddefinitions = express_getattr(self, 'RelatedDefinitions', INDETERMINATE) assert (sizeof([temp for temp in relateddefinitions if relatingcontext == temp]) == 0) is not False class IfcRelDefinesByProperties_NoRelatedTypeObject: @@ -10632,7 +10642,7 @@ class IfcRelDefinesByProperties_NoRelatedTypeObject: @staticmethod def __call__(self): - assert (sizeof([types for types in getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3_rc1.ifctypeobject' in typeof(types)]) == 0) is not False + assert (sizeof([types for types in express_getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3_rc1.ifctypeobject' in typeof(types)]) == 0) is not False class IfcRelInterferesElements_NoSelfReference: SCOPE = 'entity' @@ -10641,8 +10651,8 @@ class IfcRelInterferesElements_NoSelfReference: @staticmethod def __call__(self): - relatingelement = getattr(self, 'RelatingElement', INDETERMINATE) - relatedelement = getattr(self, 'RelatedElement', INDETERMINATE) + relatingelement = express_getattr(self, 'RelatingElement', INDETERMINATE) + relatedelement = express_getattr(self, 'RelatedElement', INDETERMINATE) assert (relatingelement != relatedelement) is not False class IfcRelNests_NoSelfReference: @@ -10652,8 +10662,8 @@ class IfcRelNests_NoSelfReference: @staticmethod def __call__(self): - relatingobject = getattr(self, 'RelatingObject', INDETERMINATE) - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) + relatingobject = express_getattr(self, 'RelatingObject', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) assert (sizeof([temp for temp in relatedobjects if relatingobject == temp]) == 0) is not False class IfcRelPositions_NoSelfReference: @@ -10663,8 +10673,8 @@ class IfcRelPositions_NoSelfReference: @staticmethod def __call__(self): - relatingpositioningelement = getattr(self, 'RelatingPositioningElement', INDETERMINATE) - relatedproducts = getattr(self, 'RelatedProducts', INDETERMINATE) + relatingpositioningelement = express_getattr(self, 'RelatingPositioningElement', INDETERMINATE) + relatedproducts = express_getattr(self, 'RelatedProducts', INDETERMINATE) assert (sizeof([temp for temp in relatedproducts if relatingpositioningelement == temp]) == 0) is not False class IfcRelReferencedInSpatialStructure_AllowedRelatedElements: @@ -10674,7 +10684,7 @@ class IfcRelReferencedInSpatialStructure_AllowedRelatedElements: @staticmethod def __call__(self): - relatedelements = getattr(self, 'RelatedElements', INDETERMINATE) + relatedelements = express_getattr(self, 'RelatedElements', INDETERMINATE) assert (sizeof([temp for temp in relatedelements if 'ifc4x3_rc1.ifcspatialstructureelement' in typeof(temp) and (not 'ifc4x3_rc1.ifcspace' in typeof(temp))]) == 0) is not False class IfcRelSequence_AvoidInconsistentSequence: @@ -10684,8 +10694,8 @@ class IfcRelSequence_AvoidInconsistentSequence: @staticmethod def __call__(self): - relatingprocess = getattr(self, 'RelatingProcess', INDETERMINATE) - relatedprocess = getattr(self, 'RelatedProcess', INDETERMINATE) + relatingprocess = express_getattr(self, 'RelatingProcess', INDETERMINATE) + relatedprocess = express_getattr(self, 'RelatedProcess', INDETERMINATE) assert (relatingprocess != relatedprocess) is not False class IfcRelSequence_CorrectSequenceType: @@ -10695,9 +10705,9 @@ class IfcRelSequence_CorrectSequenceType: @staticmethod def __call__(self): - sequencetype = getattr(self, 'SequenceType', INDETERMINATE) - userdefinedsequencetype = getattr(self, 'UserDefinedSequenceType', INDETERMINATE) - assert (sequencetype != getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) or (sequencetype == getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedsequencetype))) is not False + sequencetype = express_getattr(self, 'SequenceType', INDETERMINATE) + userdefinedsequencetype = express_getattr(self, 'UserDefinedSequenceType', INDETERMINATE) + assert (sequencetype != express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) or (sequencetype == express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedsequencetype))) is not False class IfcRelSpaceBoundary_CorrectPhysOrVirt: SCOPE = 'entity' @@ -10706,9 +10716,9 @@ class IfcRelSpaceBoundary_CorrectPhysOrVirt: @staticmethod def __call__(self): - relatedbuildingelement = getattr(self, 'RelatedBuildingElement', INDETERMINATE) - physicalorvirtualboundary = getattr(self, 'PhysicalOrVirtualBoundary', INDETERMINATE) - assert (physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'Physical', INDETERMINATE) and (not 'ifc4x3_rc1.ifcvirtualelement' in typeof(relatedbuildingelement)) or (physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'Virtual', INDETERMINATE) and ('ifc4x3_rc1.ifcvirtualelement' in typeof(relatedbuildingelement) or 'ifc4x3_rc1.ifcopeningelement' in typeof(relatedbuildingelement))) or physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'NotDefined', INDETERMINATE)) is not False + relatedbuildingelement = express_getattr(self, 'RelatedBuildingElement', INDETERMINATE) + physicalorvirtualboundary = express_getattr(self, 'PhysicalOrVirtualBoundary', INDETERMINATE) + assert (physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'Physical', INDETERMINATE) and (not 'ifc4x3_rc1.ifcvirtualelement' in typeof(relatedbuildingelement)) or (physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'Virtual', INDETERMINATE) and ('ifc4x3_rc1.ifcvirtualelement' in typeof(relatedbuildingelement) or 'ifc4x3_rc1.ifcopeningelement' in typeof(relatedbuildingelement))) or physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'NotDefined', INDETERMINATE)) is not False class IfcReparametrisedCompositeCurveSegment_PositiveLengthParameter: SCOPE = 'entity' @@ -10717,7 +10727,7 @@ class IfcReparametrisedCompositeCurveSegment_PositiveLengthParameter: @staticmethod def __call__(self): - paramlength = getattr(self, 'ParamLength', INDETERMINATE) + paramlength = express_getattr(self, 'ParamLength', INDETERMINATE) assert (paramlength > 0.0) is not False class IfcRepresentationMap_ApplicableMappedRepr: @@ -10727,7 +10737,7 @@ class IfcRepresentationMap_ApplicableMappedRepr: @staticmethod def __call__(self): - mappedrepresentation = getattr(self, 'MappedRepresentation', INDETERMINATE) + mappedrepresentation = express_getattr(self, 'MappedRepresentation', INDETERMINATE) assert ('ifc4x3_rc1.ifcshapemodel' in typeof(mappedrepresentation)) is not False class IfcRevolvedAreaSolid_AxisStartInXY: @@ -10737,8 +10747,8 @@ class IfcRevolvedAreaSolid_AxisStartInXY: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (express_getitem(getattr(getattr(axis, 'Location', INDETERMINATE), 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (express_getitem(express_getattr(express_getattr(axis, 'Location', INDETERMINATE), 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False class IfcRevolvedAreaSolid_AxisDirectionInXY: SCOPE = 'entity' @@ -10747,12 +10757,12 @@ class IfcRevolvedAreaSolid_AxisDirectionInXY: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (express_getitem(getattr(getattr(axis, 'Z', INDETERMINATE), 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (express_getitem(express_getattr(express_getattr(axis, 'Z', INDETERMINATE), 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False def calc_IfcRevolvedAreaSolid_AxisLine(self): - axis = getattr(self, 'Axis', INDETERMINATE) - return IfcLine(Pnt=getattr(axis, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=getattr(axis, 'Z', INDETERMINATE), Magnitude=1.0)) + axis = express_getattr(self, 'Axis', INDETERMINATE) + return IfcLine(Pnt=express_getattr(axis, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=express_getattr(axis, 'Z', INDETERMINATE), Magnitude=1.0)) class IfcRevolvedAreaSolidTapered_CorrectProfileAssignment: SCOPE = 'entity' @@ -10761,7 +10771,7 @@ class IfcRevolvedAreaSolidTapered_CorrectProfileAssignment: @staticmethod def __call__(self): - assert IfcTaperedSweptAreaProfiles(getattr(self, 'SweptArea', INDETERMINATE), getattr(self, 'EndSweptArea', INDETERMINATE)) is not False + assert IfcTaperedSweptAreaProfiles(express_getattr(self, 'SweptArea', INDETERMINATE), express_getattr(self, 'EndSweptArea', INDETERMINATE)) is not False class IfcRoof_CorrectPredefinedType: SCOPE = 'entity' @@ -10770,8 +10780,8 @@ class IfcRoof_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRoof_CorrectTypeAssigned: SCOPE = 'entity' @@ -10780,8 +10790,8 @@ class IfcRoof_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcrooftype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcrooftype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRoofType_CorrectPredefinedType: SCOPE = 'entity' @@ -10790,8 +10800,8 @@ class IfcRoofType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRoundedRectangleProfileDef_ValidRadius: SCOPE = 'entity' @@ -10800,11 +10810,11 @@ class IfcRoundedRectangleProfileDef_ValidRadius: @staticmethod def __call__(self): - roundingradius = getattr(self, 'RoundingRadius', INDETERMINATE) - assert (roundingradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 and roundingradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False + roundingradius = express_getattr(self, 'RoundingRadius', INDETERMINATE) + assert (roundingradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and roundingradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False def calc_IfcSIUnit_Dimensions(self): - return IfcDimensionsForSiUnit(getattr(self, 'Name', INDETERMINATE)) + return IfcDimensionsForSiUnit(express_getattr(self, 'Name', INDETERMINATE)) class IfcSanitaryTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -10813,8 +10823,8 @@ class IfcSanitaryTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSanitaryTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -10823,8 +10833,8 @@ class IfcSanitaryTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcsanitaryterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcsanitaryterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSanitaryTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -10833,8 +10843,8 @@ class IfcSanitaryTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSeamCurve_TwoPCurves: SCOPE = 'entity' @@ -10843,7 +10853,7 @@ class IfcSeamCurve_TwoPCurves: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False + assert (sizeof(express_getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False class IfcSeamCurve_SameSurface: SCOPE = 'entity' @@ -10852,7 +10862,7 @@ class IfcSeamCurve_SameSurface: @staticmethod def __call__(self): - assert (IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcSectionedSolid_DirectrixIs3D: SCOPE = 'entity' @@ -10861,8 +10871,8 @@ class IfcSectionedSolid_DirectrixIs3D: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - assert (getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + assert (express_getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False class IfcSectionedSolid_ConsistentProfileTypes: SCOPE = 'entity' @@ -10871,8 +10881,8 @@ class IfcSectionedSolid_ConsistentProfileTypes: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - assert (sizeof([temp for temp in crosssections if getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + assert (sizeof([temp for temp in crosssections if express_getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != express_getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcSectionedSolid_SectionsSameType: SCOPE = 'entity' @@ -10881,7 +10891,7 @@ class IfcSectionedSolid_SectionsSameType: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) assert (sizeof([temp for temp in crosssections if typeof(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(temp)]) == 0) is not False class IfcSectionedSolidHorizontal_CorrespondingSectionPositions: @@ -10891,8 +10901,8 @@ class IfcSectionedSolidHorizontal_CorrespondingSectionPositions: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) assert (sizeof(crosssections) == sizeof(crosssectionpositions)) is not False class IfcSectionedSolidHorizontal_NoLongitudinalOffsets: @@ -10902,8 +10912,8 @@ class IfcSectionedSolidHorizontal_NoLongitudinalOffsets: @staticmethod def __call__(self): - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) - assert (sizeof([temp for temp in crosssectionpositions if exists(getattr(temp, 'OffsetLongitudinal', INDETERMINATE))]) == 0) is not False + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) + assert (sizeof([temp for temp in crosssectionpositions if exists(express_getattr(temp, 'OffsetLongitudinal', INDETERMINATE))]) == 0) is not False class IfcSectionedSpine_CorrespondingSectionPositions: SCOPE = 'entity' @@ -10912,8 +10922,8 @@ class IfcSectionedSpine_CorrespondingSectionPositions: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) assert (sizeof(crosssections) == sizeof(crosssectionpositions)) is not False class IfcSectionedSpine_ConsistentProfileTypes: @@ -10923,8 +10933,8 @@ class IfcSectionedSpine_ConsistentProfileTypes: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - assert (sizeof([temp for temp in crosssections if getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + assert (sizeof([temp for temp in crosssections if express_getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != express_getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcSectionedSpine_SpineCurveDim: SCOPE = 'entity' @@ -10933,8 +10943,8 @@ class IfcSectionedSpine_SpineCurveDim: @staticmethod def __call__(self): - spinecurve = getattr(self, 'SpineCurve', INDETERMINATE) - assert (getattr(spinecurve, 'Dim', INDETERMINATE) == 3) is not False + spinecurve = express_getattr(self, 'SpineCurve', INDETERMINATE) + assert (express_getattr(spinecurve, 'Dim', INDETERMINATE) == 3) is not False def calc_IfcSectionedSpine_Dim(self): return 3 @@ -10946,8 +10956,8 @@ class IfcSensor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSensor_CorrectTypeAssigned: SCOPE = 'entity' @@ -10956,8 +10966,8 @@ class IfcSensor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcsensortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcsensortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSensorType_CorrectPredefinedType: SCOPE = 'entity' @@ -10966,8 +10976,8 @@ class IfcSensorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcShadingDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -10976,8 +10986,8 @@ class IfcShadingDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcShadingDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -10986,8 +10996,8 @@ class IfcShadingDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcshadingdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcshadingdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcShadingDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -10996,8 +11006,8 @@ class IfcShadingDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcShapeModel_WR11: SCOPE = 'entity' @@ -11006,8 +11016,8 @@ class IfcShapeModel_WR11: @staticmethod def __call__(self): - ofshapeaspect = getattr(self, 'OfShapeAspect', INDETERMINATE) - assert (sizeof(getattr(self, 'OfProductRepresentation', INDETERMINATE)) == 1) ^ (sizeof(getattr(self, 'RepresentationMap', INDETERMINATE)) == 1) ^ (sizeof(ofshapeaspect) == 1) is not False + ofshapeaspect = express_getattr(self, 'OfShapeAspect', INDETERMINATE) + assert (sizeof(express_getattr(self, 'OfProductRepresentation', INDETERMINATE)) == 1) ^ (sizeof(express_getattr(self, 'RepresentationMap', INDETERMINATE)) == 1) ^ (sizeof(ofshapeaspect) == 1) is not False class IfcShapeRepresentation_CorrectContext: SCOPE = 'entity' @@ -11016,7 +11026,7 @@ class IfcShapeRepresentation_CorrectContext: @staticmethod def __call__(self): - assert ('ifc4x3_rc1.ifcgeometricrepresentationcontext' in typeof(getattr(self, 'ContextOfItems', INDETERMINATE))) is not False + assert ('ifc4x3_rc1.ifcgeometricrepresentationcontext' in typeof(express_getattr(self, 'ContextOfItems', INDETERMINATE))) is not False class IfcShapeRepresentation_NoTopologicalItem: SCOPE = 'entity' @@ -11025,7 +11035,7 @@ class IfcShapeRepresentation_NoTopologicalItem: @staticmethod def __call__(self): - items = getattr(self, 'Items', INDETERMINATE) + items = express_getattr(self, 'Items', INDETERMINATE) assert (sizeof([temp for temp in items if 'ifc4x3_rc1.ifctopologicalrepresentationitem' in typeof(temp) and (not sizeof(['ifc4x3_rc1.ifcvertexpoint', 'ifc4x3_rc1.ifcedgecurve', 'ifc4x3_rc1.ifcfacesurface'] * typeof(temp)) == 1)]) == 0) is not False class IfcShapeRepresentation_HasRepresentationType: @@ -11035,7 +11045,7 @@ class IfcShapeRepresentation_HasRepresentationType: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationType', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationType', INDETERMINATE)) is not False class IfcShapeRepresentation_HasRepresentationIdentifier: SCOPE = 'entity' @@ -11044,7 +11054,7 @@ class IfcShapeRepresentation_HasRepresentationIdentifier: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationIdentifier', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationIdentifier', INDETERMINATE)) is not False class IfcShapeRepresentation_CorrectItemsForType: SCOPE = 'entity' @@ -11053,7 +11063,7 @@ class IfcShapeRepresentation_CorrectItemsForType: @staticmethod def __call__(self): - assert IfcShapeRepresentationTypes(getattr(self, 'RepresentationType', INDETERMINATE), getattr(self, 'Items', INDETERMINATE)) is not False + assert IfcShapeRepresentationTypes(express_getattr(self, 'RepresentationType', INDETERMINATE), express_getattr(self, 'Items', INDETERMINATE)) is not False def calc_IfcShellBasedSurfaceModel_Dim(self): return 3 @@ -11065,8 +11075,8 @@ class IfcSign_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSign_CorrectTypeAssigned: SCOPE = 'entity' @@ -11075,8 +11085,8 @@ class IfcSign_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcsigntype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcsigntype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSignType_CorrectPredefinedType: SCOPE = 'entity' @@ -11085,8 +11095,8 @@ class IfcSignType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSignal_CorrectPredefinedType: SCOPE = 'entity' @@ -11095,8 +11105,8 @@ class IfcSignal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSignal_CorrectTypeAssigned: SCOPE = 'entity' @@ -11105,8 +11115,8 @@ class IfcSignal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcsignaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcsignaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSignalType_CorrectPredefinedType: SCOPE = 'entity' @@ -11115,8 +11125,8 @@ class IfcSignalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSlab_CorrectPredefinedType: SCOPE = 'entity' @@ -11125,8 +11135,8 @@ class IfcSlab_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSlab_CorrectTypeAssigned: SCOPE = 'entity' @@ -11135,8 +11145,8 @@ class IfcSlab_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcslabtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcslabtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSlabElementedCase_HasDecomposition: SCOPE = 'entity' @@ -11145,7 +11155,7 @@ class IfcSlabElementedCase_HasDecomposition: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'IsDecomposedBy', INDETERMINATE)) > 0) is not False + assert (hiindex(express_getattr(self, 'IsDecomposedBy', INDETERMINATE)) > 0) is not False class IfcSlabStandardCase_HasMaterialLayerSetusage: SCOPE = 'entity' @@ -11154,7 +11164,7 @@ class IfcSlabStandardCase_HasMaterialLayerSetusage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc1.ifcrelassociates.relatedobjects') if 'ifc4x3_rc1.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc1.ifcmateriallayersetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc1.ifcrelassociates.relatedobjects') if 'ifc4x3_rc1.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc1.ifcmateriallayersetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcSlabType_CorrectPredefinedType: SCOPE = 'entity' @@ -11163,8 +11173,8 @@ class IfcSlabType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSolarDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -11173,8 +11183,8 @@ class IfcSolarDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSolarDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -11183,8 +11193,8 @@ class IfcSolarDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcsolardevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcsolardevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSolarDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11193,8 +11203,8 @@ class IfcSolarDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcSolidModel_Dim(self): return 3 @@ -11206,8 +11216,8 @@ class IfcSpace_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpace_CorrectTypeAssigned: SCOPE = 'entity' @@ -11216,8 +11226,8 @@ class IfcSpace_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcspacetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcspacetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpaceHeater_CorrectPredefinedType: SCOPE = 'entity' @@ -11226,8 +11236,8 @@ class IfcSpaceHeater_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpaceHeater_CorrectTypeAssigned: SCOPE = 'entity' @@ -11236,8 +11246,8 @@ class IfcSpaceHeater_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcspaceheatertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcspaceheatertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpaceHeaterType_CorrectPredefinedType: SCOPE = 'entity' @@ -11246,8 +11256,8 @@ class IfcSpaceHeaterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSpaceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11256,8 +11266,8 @@ class IfcSpaceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSpatialStructureElement_WR41: SCOPE = 'entity' @@ -11266,7 +11276,7 @@ class IfcSpatialStructureElement_WR41: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'Decomposes', INDETERMINATE)) == 1 and 'ifc4x3_rc1.ifcrelaggregates' in typeof(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc1.ifcproject' in typeof(getattr(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)) or 'ifc4x3_rc1.ifcspatialstructureelement' in typeof(getattr(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)))) is not False + assert (hiindex(express_getattr(self, 'Decomposes', INDETERMINATE)) == 1 and 'ifc4x3_rc1.ifcrelaggregates' in typeof(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc1.ifcproject' in typeof(express_getattr(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)) or 'ifc4x3_rc1.ifcspatialstructureelement' in typeof(express_getattr(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)))) is not False class IfcSpatialZone_CorrectPredefinedType: SCOPE = 'entity' @@ -11275,8 +11285,8 @@ class IfcSpatialZone_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpatialZone_CorrectTypeAssigned: SCOPE = 'entity' @@ -11285,8 +11295,8 @@ class IfcSpatialZone_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcspatialzonetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcspatialzonetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpatialZoneType_CorrectPredefinedType: SCOPE = 'entity' @@ -11295,8 +11305,8 @@ class IfcSpatialZoneType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStackTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -11305,8 +11315,8 @@ class IfcStackTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStackTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -11315,8 +11325,8 @@ class IfcStackTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcstackterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcstackterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStackTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -11325,8 +11335,8 @@ class IfcStackTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStair_CorrectPredefinedType: SCOPE = 'entity' @@ -11335,8 +11345,8 @@ class IfcStair_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStair_CorrectTypeAssigned: SCOPE = 'entity' @@ -11345,8 +11355,8 @@ class IfcStair_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcstairtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcstairtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStairFlight_CorrectPredefinedType: SCOPE = 'entity' @@ -11355,8 +11365,8 @@ class IfcStairFlight_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStairFlight_CorrectTypeAssigned: SCOPE = 'entity' @@ -11365,8 +11375,8 @@ class IfcStairFlight_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcstairflighttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcstairflighttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStairFlightType_CorrectPredefinedType: SCOPE = 'entity' @@ -11375,8 +11385,8 @@ class IfcStairFlightType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStairType_CorrectPredefinedType: SCOPE = 'entity' @@ -11385,8 +11395,8 @@ class IfcStairType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStructuralAnalysisModel_HasObjectType: SCOPE = 'entity' @@ -11395,8 +11405,8 @@ class IfcStructuralAnalysisModel_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveAction_ProjectedIsGlobal: SCOPE = 'entity' @@ -11405,8 +11415,8 @@ class IfcStructuralCurveAction_ProjectedIsGlobal: @staticmethod def __call__(self): - projectedortrue = getattr(self, 'ProjectedOrTrue', INDETERMINATE) - assert (not exists(projectedortrue) or (projectedortrue != projected_length or getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False + projectedortrue = express_getattr(self, 'ProjectedOrTrue', INDETERMINATE) + assert (not exists(projectedortrue) or (projectedortrue != projected_length or express_getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False class IfcStructuralCurveAction_HasObjectType: SCOPE = 'entity' @@ -11415,8 +11425,8 @@ class IfcStructuralCurveAction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveAction_SuitablePredefinedType: SCOPE = 'entity' @@ -11425,8 +11435,8 @@ class IfcStructuralCurveAction_SuitablePredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE)) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE)) is not False class IfcStructuralCurveMember_HasObjectType: SCOPE = 'entity' @@ -11435,8 +11445,8 @@ class IfcStructuralCurveMember_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveReaction_HasObjectType: SCOPE = 'entity' @@ -11445,8 +11455,8 @@ class IfcStructuralCurveReaction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveReaction_SuitablePredefinedType: SCOPE = 'entity' @@ -11455,8 +11465,8 @@ class IfcStructuralCurveReaction_SuitablePredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) and predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE)) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) and predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE)) is not False class IfcStructuralLinearAction_SuitableLoadType: SCOPE = 'entity' @@ -11465,7 +11475,7 @@ class IfcStructuralLinearAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_rc1.ifcstructuralloadlinearforce', 'ifc4x3_rc1.ifcstructuralloadtemperature'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_rc1.ifcstructuralloadlinearforce', 'ifc4x3_rc1.ifcstructuralloadtemperature'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralLinearAction_ConstPredefinedType: SCOPE = 'entity' @@ -11474,7 +11484,7 @@ class IfcStructuralLinearAction_ConstPredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE)) is not False class IfcStructuralLoadCase_IsLoadCasePredefinedType: SCOPE = 'entity' @@ -11483,7 +11493,7 @@ class IfcStructuralLoadCase_IsLoadCasePredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE)) is not False class IfcStructuralLoadConfiguration_ValidListSize: SCOPE = 'entity' @@ -11492,8 +11502,8 @@ class IfcStructuralLoadConfiguration_ValidListSize: @staticmethod def __call__(self): - values = getattr(self, 'Values', INDETERMINATE) - locations = getattr(self, 'Locations', INDETERMINATE) + values = express_getattr(self, 'Values', INDETERMINATE) + locations = express_getattr(self, 'Locations', INDETERMINATE) assert (not exists(locations) or sizeof(locations) == sizeof(values)) is not False class IfcStructuralLoadGroup_HasObjectType: @@ -11503,10 +11513,10 @@ class IfcStructuralLoadGroup_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - actiontype = getattr(self, 'ActionType', INDETERMINATE) - actionsource = getattr(self, 'ActionSource', INDETERMINATE) - assert (predefinedtype != getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) and actiontype != getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) and (actionsource != getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE)) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + actiontype = express_getattr(self, 'ActionType', INDETERMINATE) + actionsource = express_getattr(self, 'ActionSource', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) and actiontype != express_getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) and (actionsource != express_getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE)) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralPlanarAction_SuitableLoadType: SCOPE = 'entity' @@ -11515,7 +11525,7 @@ class IfcStructuralPlanarAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_rc1.ifcstructuralloadplanarforce', 'ifc4x3_rc1.ifcstructuralloadtemperature'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_rc1.ifcstructuralloadplanarforce', 'ifc4x3_rc1.ifcstructuralloadtemperature'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralPlanarAction_ConstPredefinedType: SCOPE = 'entity' @@ -11524,7 +11534,7 @@ class IfcStructuralPlanarAction_ConstPredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE)) is not False class IfcStructuralPointAction_SuitableLoadType: SCOPE = 'entity' @@ -11533,7 +11543,7 @@ class IfcStructuralPointAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_rc1.ifcstructuralloadsingleforce', 'ifc4x3_rc1.ifcstructuralloadsingledisplacement'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_rc1.ifcstructuralloadsingleforce', 'ifc4x3_rc1.ifcstructuralloadsingledisplacement'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralPointReaction_SuitableLoadType: SCOPE = 'entity' @@ -11542,7 +11552,7 @@ class IfcStructuralPointReaction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_rc1.ifcstructuralloadsingleforce', 'ifc4x3_rc1.ifcstructuralloadsingledisplacement'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_rc1.ifcstructuralloadsingleforce', 'ifc4x3_rc1.ifcstructuralloadsingledisplacement'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralResultGroup_HasObjectType: SCOPE = 'entity' @@ -11551,8 +11561,8 @@ class IfcStructuralResultGroup_HasObjectType: @staticmethod def __call__(self): - theorytype = getattr(self, 'TheoryType', INDETERMINATE) - assert (theorytype != getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + theorytype = express_getattr(self, 'TheoryType', INDETERMINATE) + assert (theorytype != express_getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceAction_ProjectedIsGlobal: SCOPE = 'entity' @@ -11561,8 +11571,8 @@ class IfcStructuralSurfaceAction_ProjectedIsGlobal: @staticmethod def __call__(self): - projectedortrue = getattr(self, 'ProjectedOrTrue', INDETERMINATE) - assert (not exists(projectedortrue) or (projectedortrue != projected_length or getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False + projectedortrue = express_getattr(self, 'ProjectedOrTrue', INDETERMINATE) + assert (not exists(projectedortrue) or (projectedortrue != projected_length or express_getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False class IfcStructuralSurfaceAction_HasObjectType: SCOPE = 'entity' @@ -11571,8 +11581,8 @@ class IfcStructuralSurfaceAction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceMember_HasObjectType: SCOPE = 'entity' @@ -11581,8 +11591,8 @@ class IfcStructuralSurfaceMember_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceReaction_HasPredefinedType: SCOPE = 'entity' @@ -11591,8 +11601,8 @@ class IfcStructuralSurfaceReaction_HasPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStyledItem_ApplicableItem: SCOPE = 'entity' @@ -11601,7 +11611,7 @@ class IfcStyledItem_ApplicableItem: @staticmethod def __call__(self): - item = getattr(self, 'Item', INDETERMINATE) + item = express_getattr(self, 'Item', INDETERMINATE) assert (not 'ifc4x3_rc1.ifcstyleditem' in typeof(item)) is not False class IfcStyledRepresentation_OnlyStyledItems: @@ -11611,7 +11621,7 @@ class IfcStyledRepresentation_OnlyStyledItems: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3_rc1.ifcstyleditem' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3_rc1.ifcstyleditem' in typeof(temp)]) == 0) is not False class IfcSubContractResource_CorrectPredefinedType: SCOPE = 'entity' @@ -11620,8 +11630,8 @@ class IfcSubContractResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSubContractResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11630,8 +11640,8 @@ class IfcSubContractResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False def calc_IfcSurface_Dim(self): return 3 @@ -11643,8 +11653,8 @@ class IfcSurfaceCurve_CurveIs3D: @staticmethod def __call__(self): - curve3d = getattr(self, 'Curve3D', INDETERMINATE) - assert (getattr(curve3d, 'Dim', INDETERMINATE) == 3) is not False + curve3d = express_getattr(self, 'Curve3D', INDETERMINATE) + assert (express_getattr(curve3d, 'Dim', INDETERMINATE) == 3) is not False class IfcSurfaceCurve_CurveIsNotPcurve: SCOPE = 'entity' @@ -11653,7 +11663,7 @@ class IfcSurfaceCurve_CurveIsNotPcurve: @staticmethod def __call__(self): - curve3d = getattr(self, 'Curve3D', INDETERMINATE) + curve3d = express_getattr(self, 'Curve3D', INDETERMINATE) assert (not 'ifc4x3_rc1.ifcpcurve' in typeof(curve3d)) is not False def calc_IfcSurfaceCurve_BasisSurface(self): @@ -11666,8 +11676,8 @@ class IfcSurfaceFeature_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcSurfaceOfLinearExtrusion_DepthGreaterZero: SCOPE = 'entity' @@ -11676,17 +11686,17 @@ class IfcSurfaceOfLinearExtrusion_DepthGreaterZero: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) assert (depth > 0.0) is not False def calc_IfcSurfaceOfLinearExtrusion_ExtrusionAxis(self): - extrudeddirection = getattr(self, 'ExtrudedDirection', INDETERMINATE) - depth = getattr(self, 'Depth', INDETERMINATE) + extrudeddirection = express_getattr(self, 'ExtrudedDirection', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) return IfcVector(Orientation=extrudeddirection, Magnitude=depth) def calc_IfcSurfaceOfRevolution_AxisLine(self): - axisposition = getattr(self, 'AxisPosition', INDETERMINATE) - return IfcLine(Pnt=getattr(axisposition, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=getattr(axisposition, 'Z', INDETERMINATE), Magnitude=1.0)) + axisposition = express_getattr(self, 'AxisPosition', INDETERMINATE) + return IfcLine(Pnt=express_getattr(axisposition, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=express_getattr(axisposition, 'Z', INDETERMINATE), Magnitude=1.0)) class IfcSurfaceReinforcementArea_SurfaceAndOrShearAreaSpecified: SCOPE = 'entity' @@ -11695,9 +11705,9 @@ class IfcSurfaceReinforcementArea_SurfaceAndOrShearAreaSpecified: @staticmethod def __call__(self): - surfacereinforcement1 = getattr(self, 'SurfaceReinforcement1', INDETERMINATE) - surfacereinforcement2 = getattr(self, 'SurfaceReinforcement2', INDETERMINATE) - shearreinforcement = getattr(self, 'ShearReinforcement', INDETERMINATE) + surfacereinforcement1 = express_getattr(self, 'SurfaceReinforcement1', INDETERMINATE) + surfacereinforcement2 = express_getattr(self, 'SurfaceReinforcement2', INDETERMINATE) + shearreinforcement = express_getattr(self, 'ShearReinforcement', INDETERMINATE) assert (exists(surfacereinforcement1) or exists(surfacereinforcement2) or exists(shearreinforcement)) is not False class IfcSurfaceReinforcementArea_NonnegativeArea1: @@ -11707,7 +11717,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea1: @staticmethod def __call__(self): - surfacereinforcement1 = getattr(self, 'SurfaceReinforcement1', INDETERMINATE) + surfacereinforcement1 = express_getattr(self, 'SurfaceReinforcement1', INDETERMINATE) assert (not exists(surfacereinforcement1) or (express_getitem(surfacereinforcement1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and express_getitem(surfacereinforcement1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and (sizeof(surfacereinforcement1) == 1 or express_getitem(surfacereinforcement1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0))) is not False class IfcSurfaceReinforcementArea_NonnegativeArea2: @@ -11717,7 +11727,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea2: @staticmethod def __call__(self): - surfacereinforcement2 = getattr(self, 'SurfaceReinforcement2', INDETERMINATE) + surfacereinforcement2 = express_getattr(self, 'SurfaceReinforcement2', INDETERMINATE) assert (not exists(surfacereinforcement2) or (express_getitem(surfacereinforcement2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and express_getitem(surfacereinforcement2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and (sizeof(surfacereinforcement2) == 1 or express_getitem(surfacereinforcement2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0))) is not False class IfcSurfaceReinforcementArea_NonnegativeArea3: @@ -11727,7 +11737,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea3: @staticmethod def __call__(self): - shearreinforcement = getattr(self, 'ShearReinforcement', INDETERMINATE) + shearreinforcement = express_getattr(self, 'ShearReinforcement', INDETERMINATE) assert (not exists(shearreinforcement) or shearreinforcement >= 0.0) is not False class IfcSurfaceStyle_MaxOneShading: @@ -11737,7 +11747,7 @@ class IfcSurfaceStyle_MaxOneShading: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc1.ifcsurfacestyleshading' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc1.ifcsurfacestyleshading' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneLighting: SCOPE = 'entity' @@ -11746,7 +11756,7 @@ class IfcSurfaceStyle_MaxOneLighting: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc1.ifcsurfacestylelighting' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc1.ifcsurfacestylelighting' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneRefraction: SCOPE = 'entity' @@ -11755,7 +11765,7 @@ class IfcSurfaceStyle_MaxOneRefraction: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc1.ifcsurfacestylerefraction' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc1.ifcsurfacestylerefraction' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneTextures: SCOPE = 'entity' @@ -11764,7 +11774,7 @@ class IfcSurfaceStyle_MaxOneTextures: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc1.ifcsurfacestylewithtextures' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc1.ifcsurfacestylewithtextures' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneExtDefined: SCOPE = 'entity' @@ -11773,7 +11783,7 @@ class IfcSurfaceStyle_MaxOneExtDefined: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc1.ifcexternallydefinedsurfacestyle' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc1.ifcexternallydefinedsurfacestyle' in typeof(style)]) <= 1) is not False class IfcSweptAreaSolid_SweptAreaType: SCOPE = 'entity' @@ -11782,8 +11792,8 @@ class IfcSweptAreaSolid_SweptAreaType: @staticmethod def __call__(self): - sweptarea = getattr(self, 'SweptArea', INDETERMINATE) - assert (getattr(sweptarea, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'Area', INDETERMINATE)) is not False + sweptarea = express_getattr(self, 'SweptArea', INDETERMINATE) + assert (express_getattr(sweptarea, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'Area', INDETERMINATE)) is not False class IfcSweptDiskSolid_DirectrixDim: SCOPE = 'entity' @@ -11792,8 +11802,8 @@ class IfcSweptDiskSolid_DirectrixDim: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - assert (getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + assert (express_getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False class IfcSweptDiskSolid_InnerRadiusSize: SCOPE = 'entity' @@ -11802,8 +11812,8 @@ class IfcSweptDiskSolid_InnerRadiusSize: @staticmethod def __call__(self): - radius = getattr(self, 'Radius', INDETERMINATE) - innerradius = getattr(self, 'InnerRadius', INDETERMINATE) + radius = express_getattr(self, 'Radius', INDETERMINATE) + innerradius = express_getattr(self, 'InnerRadius', INDETERMINATE) assert (not exists(innerradius) or radius > innerradius) is not False class IfcSweptDiskSolid_DirectrixBounded: @@ -11813,9 +11823,9 @@ class IfcSweptDiskSolid_DirectrixBounded: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - startparam = getattr(self, 'StartParam', INDETERMINATE) - endparam = getattr(self, 'EndParam', INDETERMINATE) + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + startparam = express_getattr(self, 'StartParam', INDETERMINATE) + endparam = express_getattr(self, 'EndParam', INDETERMINATE) assert (exists(startparam) and exists(endparam) or sizeof(['ifc4x3_rc1.ifcconic', 'ifc4x3_rc1.ifcboundedcurve'] * typeof(directrix)) == 1) is not False class IfcSweptDiskSolidPolygonal_CorrectRadii: @@ -11825,8 +11835,8 @@ class IfcSweptDiskSolidPolygonal_CorrectRadii: @staticmethod def __call__(self): - filletradius = getattr(self, 'FilletRadius', INDETERMINATE) - assert (not exists(filletradius) or filletradius >= getattr(self, 'Radius', INDETERMINATE)) is not False + filletradius = express_getattr(self, 'FilletRadius', INDETERMINATE) + assert (not exists(filletradius) or filletradius >= express_getattr(self, 'Radius', INDETERMINATE)) is not False class IfcSweptDiskSolidPolygonal_DirectrixIsPolyline: SCOPE = 'entity' @@ -11835,7 +11845,7 @@ class IfcSweptDiskSolidPolygonal_DirectrixIsPolyline: @staticmethod def __call__(self): - assert ('ifc4x3_rc1.ifcpolyline' in typeof(getattr(self, 'Directrix', INDETERMINATE)) or ('ifc4x3_rc1.ifcindexedpolycurve' in typeof(getattr(self, 'Directrix', INDETERMINATE)) and (not exists(getattr(getattr(self, 'Directrix', INDETERMINATE), 'Segments', INDETERMINATE))))) is not False + assert ('ifc4x3_rc1.ifcpolyline' in typeof(express_getattr(self, 'Directrix', INDETERMINATE)) or ('ifc4x3_rc1.ifcindexedpolycurve' in typeof(express_getattr(self, 'Directrix', INDETERMINATE)) and (not exists(express_getattr(express_getattr(self, 'Directrix', INDETERMINATE), 'Segments', INDETERMINATE))))) is not False class IfcSweptSurface_SweptCurveType: SCOPE = 'entity' @@ -11844,8 +11854,8 @@ class IfcSweptSurface_SweptCurveType: @staticmethod def __call__(self): - sweptcurve = getattr(self, 'SweptCurve', INDETERMINATE) - assert (getattr(sweptcurve, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'Curve', INDETERMINATE)) is not False + sweptcurve = express_getattr(self, 'SweptCurve', INDETERMINATE) + assert (express_getattr(sweptcurve, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'Curve', INDETERMINATE)) is not False class IfcSwitchingDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -11854,8 +11864,8 @@ class IfcSwitchingDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSwitchingDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -11864,8 +11874,8 @@ class IfcSwitchingDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcswitchingdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcswitchingdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSwitchingDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11874,8 +11884,8 @@ class IfcSwitchingDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSystemFurnitureElement_CorrectPredefinedType: SCOPE = 'entity' @@ -11884,8 +11894,8 @@ class IfcSystemFurnitureElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSystemFurnitureElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -11894,8 +11904,8 @@ class IfcSystemFurnitureElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcsystemfurnitureelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcsystemfurnitureelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSystemFurnitureElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -11904,8 +11914,8 @@ class IfcSystemFurnitureElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -11914,8 +11924,8 @@ class IfcTShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth) is not False class IfcTShapeProfileDef_ValidWebThickness: @@ -11925,8 +11935,8 @@ class IfcTShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - flangewidth = getattr(self, 'FlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + flangewidth = express_getattr(self, 'FlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < flangewidth) is not False class IfcTable_WR1: @@ -11936,8 +11946,8 @@ class IfcTable_WR1: @staticmethod def __call__(self): - rows = getattr(self, 'Rows', INDETERMINATE) - assert (sizeof([temp for temp in rows if hiindex(getattr(temp, 'RowCells', INDETERMINATE)) != hiindex(getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE))]) == 0) is not False + rows = express_getattr(self, 'Rows', INDETERMINATE) + assert (sizeof([temp for temp in rows if hiindex(express_getattr(temp, 'RowCells', INDETERMINATE)) != hiindex(express_getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE))]) == 0) is not False class IfcTable_WR2: SCOPE = 'entity' @@ -11946,20 +11956,20 @@ class IfcTable_WR2: @staticmethod def __call__(self): - numberofheadings = getattr(self, 'NumberOfHeadings', INDETERMINATE) + numberofheadings = express_getattr(self, 'NumberOfHeadings', INDETERMINATE) assert (0 <= numberofheadings <= 1) is not False def calc_IfcTable_NumberOfCellsInRow(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return hiindex(getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE)) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return hiindex(express_getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE)) def calc_IfcTable_NumberOfHeadings(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return sizeof([temp for temp in rows if getattr(temp, 'IsHeading', INDETERMINATE)]) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return sizeof([temp for temp in rows if express_getattr(temp, 'IsHeading', INDETERMINATE)]) def calc_IfcTable_NumberOfDataRows(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return sizeof([temp for temp in rows if not getattr(temp, 'IsHeading', INDETERMINATE)]) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return sizeof([temp for temp in rows if not express_getattr(temp, 'IsHeading', INDETERMINATE)]) class IfcTank_CorrectPredefinedType: SCOPE = 'entity' @@ -11968,8 +11978,8 @@ class IfcTank_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTank_CorrectTypeAssigned: SCOPE = 'entity' @@ -11978,8 +11988,8 @@ class IfcTank_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifctanktype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifctanktype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTankType_CorrectPredefinedType: SCOPE = 'entity' @@ -11988,8 +11998,8 @@ class IfcTankType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTask_HasName: SCOPE = 'entity' @@ -11998,7 +12008,7 @@ class IfcTask_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcTask_CorrectPredefinedType: SCOPE = 'entity' @@ -12007,8 +12017,8 @@ class IfcTask_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTaskType_CorrectPredefinedType: SCOPE = 'entity' @@ -12017,8 +12027,8 @@ class IfcTaskType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcTelecomAddress_MinimumDataProvided: SCOPE = 'entity' @@ -12027,12 +12037,12 @@ class IfcTelecomAddress_MinimumDataProvided: @staticmethod def __call__(self): - telephonenumbers = getattr(self, 'TelephoneNumbers', INDETERMINATE) - facsimilenumbers = getattr(self, 'FacsimileNumbers', INDETERMINATE) - pagernumber = getattr(self, 'PagerNumber', INDETERMINATE) - electronicmailaddresses = getattr(self, 'ElectronicMailAddresses', INDETERMINATE) - wwwhomepageurl = getattr(self, 'WWWHomePageURL', INDETERMINATE) - messagingids = getattr(self, 'MessagingIDs', INDETERMINATE) + telephonenumbers = express_getattr(self, 'TelephoneNumbers', INDETERMINATE) + facsimilenumbers = express_getattr(self, 'FacsimileNumbers', INDETERMINATE) + pagernumber = express_getattr(self, 'PagerNumber', INDETERMINATE) + electronicmailaddresses = express_getattr(self, 'ElectronicMailAddresses', INDETERMINATE) + wwwhomepageurl = express_getattr(self, 'WWWHomePageURL', INDETERMINATE) + messagingids = express_getattr(self, 'MessagingIDs', INDETERMINATE) assert (exists(telephonenumbers) or exists(facsimilenumbers) or exists(pagernumber) or exists(electronicmailaddresses) or exists(wwwhomepageurl) or exists(messagingids)) is not False class IfcTendon_CorrectPredefinedType: @@ -12042,8 +12052,8 @@ class IfcTendon_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendon_CorrectTypeAssigned: SCOPE = 'entity' @@ -12052,8 +12062,8 @@ class IfcTendon_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifctendontype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifctendontype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonAnchor_CorrectPredefinedType: SCOPE = 'entity' @@ -12062,8 +12072,8 @@ class IfcTendonAnchor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendonAnchor_CorrectTypeAssigned: SCOPE = 'entity' @@ -12072,8 +12082,8 @@ class IfcTendonAnchor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifctendonanchortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifctendonanchortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonAnchorType_CorrectPredefinedType: SCOPE = 'entity' @@ -12082,8 +12092,8 @@ class IfcTendonAnchorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTendonConduit_CorrectPredefinedType: SCOPE = 'entity' @@ -12092,8 +12102,8 @@ class IfcTendonConduit_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendonConduit_CorrectTypeAssigned: SCOPE = 'entity' @@ -12102,8 +12112,8 @@ class IfcTendonConduit_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifctendonconduittype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifctendonconduittype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonConduitType_CorrectPredefinedType: SCOPE = 'entity' @@ -12112,8 +12122,8 @@ class IfcTendonConduitType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTendonType_CorrectPredefinedType: SCOPE = 'entity' @@ -12122,8 +12132,8 @@ class IfcTendonType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcTessellatedFaceSet_Dim(self): return 3 @@ -12135,7 +12145,7 @@ class IfcTextLiteralWithExtent_WR31: @staticmethod def __call__(self): - extent = getattr(self, 'Extent', INDETERMINATE) + extent = express_getattr(self, 'Extent', INDETERMINATE) assert (not 'ifc4x3_rc1.ifcplanarbox' in typeof(extent)) is not False class IfcTextStyleFontModel_MeasureOfFontSize: @@ -12145,7 +12155,7 @@ class IfcTextStyleFontModel_MeasureOfFontSize: @staticmethod def __call__(self): - assert ('ifc4x3_rc1.ifclengthmeasure' in typeof(getattr(self, 'FontSize', INDETERMINATE)) and getattr(self, 'FontSize', INDETERMINATE) > 0.0) is not False + assert ('ifc4x3_rc1.ifclengthmeasure' in typeof(express_getattr(self, 'FontSize', INDETERMINATE)) and express_getattr(self, 'FontSize', INDETERMINATE) > 0.0) is not False class IfcTopologyRepresentation_WR21: SCOPE = 'entity' @@ -12154,7 +12164,7 @@ class IfcTopologyRepresentation_WR21: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3_rc1.ifctopologicalrepresentationitem' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3_rc1.ifctopologicalrepresentationitem' in typeof(temp)]) == 0) is not False class IfcTopologyRepresentation_WR22: SCOPE = 'entity' @@ -12163,7 +12173,7 @@ class IfcTopologyRepresentation_WR22: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationType', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationType', INDETERMINATE)) is not False class IfcTopologyRepresentation_WR23: SCOPE = 'entity' @@ -12172,7 +12182,7 @@ class IfcTopologyRepresentation_WR23: @staticmethod def __call__(self): - assert IfcTopologyRepresentationTypes(getattr(self, 'RepresentationType', INDETERMINATE), getattr(self, 'Items', INDETERMINATE)) is not False + assert IfcTopologyRepresentationTypes(express_getattr(self, 'RepresentationType', INDETERMINATE), express_getattr(self, 'Items', INDETERMINATE)) is not False class IfcToroidalSurface_MajorLargerMinor: SCOPE = 'entity' @@ -12181,8 +12191,8 @@ class IfcToroidalSurface_MajorLargerMinor: @staticmethod def __call__(self): - majorradius = getattr(self, 'MajorRadius', INDETERMINATE) - minorradius = getattr(self, 'MinorRadius', INDETERMINATE) + majorradius = express_getattr(self, 'MajorRadius', INDETERMINATE) + minorradius = express_getattr(self, 'MinorRadius', INDETERMINATE) assert (minorradius < majorradius) is not False class IfcTrackElement_CorrectPredefinedType: @@ -12192,8 +12202,8 @@ class IfcTrackElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTrackElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12202,8 +12212,8 @@ class IfcTrackElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifctrackelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifctrackelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTrackElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12212,8 +12222,8 @@ class IfcTrackElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTransformer_CorrectPredefinedType: SCOPE = 'entity' @@ -12222,8 +12232,8 @@ class IfcTransformer_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTransformer_CorrectTypeAssigned: SCOPE = 'entity' @@ -12232,8 +12242,8 @@ class IfcTransformer_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifctranformertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifctranformertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTransformerType_CorrectPredefinedType: SCOPE = 'entity' @@ -12242,8 +12252,8 @@ class IfcTransformerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTransportElement_CorrectPredefinedType: SCOPE = 'entity' @@ -12252,8 +12262,8 @@ class IfcTransportElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or (predefinedtype != getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) and predefinedtype != getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE)) or ((predefinedtype == getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE)) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or (predefinedtype != express_getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) and predefinedtype != express_getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE)) or ((predefinedtype == express_getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == express_getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE)) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTransportElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12262,8 +12272,8 @@ class IfcTransportElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifctransportelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifctransportelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTransportElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12272,11 +12282,11 @@ class IfcTransportElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) and predefinedtype != getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE) or ((predefinedtype == getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE)) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) and predefinedtype != express_getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE) or ((predefinedtype == express_getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == express_getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE)) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcTriangulatedFaceSet_NumberOfTriangles(self): - coordindex = getattr(self, 'CoordIndex', INDETERMINATE) + coordindex = express_getattr(self, 'CoordIndex', INDETERMINATE) return sizeof(coordindex) class IfcTriangulatedIrregularNetwork_NotClosed: @@ -12286,7 +12296,7 @@ class IfcTriangulatedIrregularNetwork_NotClosed: @staticmethod def __call__(self): - assert (getattr(self, 'Closed', INDETERMINATE) == False) is not False + assert (express_getattr(self, 'Closed', INDETERMINATE) == False) is not False class IfcTrimmedCurve_Trim1ValuesConsistent: SCOPE = 'entity' @@ -12295,7 +12305,7 @@ class IfcTrimmedCurve_Trim1ValuesConsistent: @staticmethod def __call__(self): - trim1 = getattr(self, 'Trim1', INDETERMINATE) + trim1 = express_getattr(self, 'Trim1', INDETERMINATE) assert (hiindex(trim1) == 1 or typeof(express_getitem(trim1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(express_getitem(trim1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcTrimmedCurve_Trim2ValuesConsistent: @@ -12305,7 +12315,7 @@ class IfcTrimmedCurve_Trim2ValuesConsistent: @staticmethod def __call__(self): - trim2 = getattr(self, 'Trim2', INDETERMINATE) + trim2 = express_getattr(self, 'Trim2', INDETERMINATE) assert (hiindex(trim2) == 1 or typeof(express_getitem(trim2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(express_getitem(trim2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcTrimmedCurve_NoTrimOfBoundedCurves: @@ -12315,7 +12325,7 @@ class IfcTrimmedCurve_NoTrimOfBoundedCurves: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) assert (not 'ifc4x3_rc1.ifcboundedcurve' in typeof(basiscurve)) is not False class IfcTubeBundle_CorrectPredefinedType: @@ -12325,8 +12335,8 @@ class IfcTubeBundle_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTubeBundle_CorrectTypeAssigned: SCOPE = 'entity' @@ -12335,8 +12345,8 @@ class IfcTubeBundle_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifctubebundletype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifctubebundletype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTubeBundleType_CorrectPredefinedType: SCOPE = 'entity' @@ -12345,8 +12355,8 @@ class IfcTubeBundleType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTypeObject_NameRequired: SCOPE = 'entity' @@ -12355,7 +12365,7 @@ class IfcTypeObject_NameRequired: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcTypeObject_UniquePropertySetNames: SCOPE = 'entity' @@ -12364,7 +12374,7 @@ class IfcTypeObject_UniquePropertySetNames: @staticmethod def __call__(self): - haspropertysets = getattr(self, 'HasPropertySets', INDETERMINATE) + haspropertysets = express_getattr(self, 'HasPropertySets', INDETERMINATE) assert (not exists(haspropertysets) or IfcUniquePropertySetNames(haspropertysets)) is not False class IfcTypeProduct_ApplicableOccurrence: @@ -12374,7 +12384,7 @@ class IfcTypeProduct_ApplicableOccurrence: @staticmethod def __call__(self): - assert (not exists(lambda : express_getitem(getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or sizeof([temp for temp in getattr(express_getitem(getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not 'ifc4x3_rc1.ifcproduct' in typeof(temp)]) == 0) is not False + assert (not exists(lambda : express_getitem(express_getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or sizeof([temp for temp in express_getattr(express_getitem(express_getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not 'ifc4x3_rc1.ifcproduct' in typeof(temp)]) == 0) is not False class IfcUShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -12383,8 +12393,8 @@ class IfcUShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth / 2.0) is not False class IfcUShapeProfileDef_ValidWebThickness: @@ -12394,8 +12404,8 @@ class IfcUShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - flangewidth = getattr(self, 'FlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + flangewidth = express_getattr(self, 'FlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < flangewidth) is not False class IfcUnitAssignment_WR01: @@ -12405,7 +12415,7 @@ class IfcUnitAssignment_WR01: @staticmethod def __call__(self): - units = getattr(self, 'Units', INDETERMINATE) + units = express_getattr(self, 'Units', INDETERMINATE) assert IfcCorrectUnitAssignment(units) is not False class IfcUnitaryControlElement_CorrectPredefinedType: @@ -12415,8 +12425,8 @@ class IfcUnitaryControlElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcUnitaryControlElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12425,8 +12435,8 @@ class IfcUnitaryControlElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcunitarycontrolelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcunitarycontrolelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcUnitaryControlElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12435,8 +12445,8 @@ class IfcUnitaryControlElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcUnitaryEquipment_CorrectPredefinedType: SCOPE = 'entity' @@ -12445,8 +12455,8 @@ class IfcUnitaryEquipment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcUnitaryEquipment_CorrectTypeAssigned: SCOPE = 'entity' @@ -12455,8 +12465,8 @@ class IfcUnitaryEquipment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcunitaryequipmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcunitaryequipmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcUnitaryEquipmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -12465,8 +12475,8 @@ class IfcUnitaryEquipmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcValve_CorrectPredefinedType: SCOPE = 'entity' @@ -12475,8 +12485,8 @@ class IfcValve_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcValve_CorrectTypeAssigned: SCOPE = 'entity' @@ -12485,8 +12495,8 @@ class IfcValve_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcvalvetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcvalvetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcValveType_CorrectPredefinedType: SCOPE = 'entity' @@ -12495,8 +12505,8 @@ class IfcValveType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVector_MagGreaterOrEqualZero: SCOPE = 'entity' @@ -12505,12 +12515,12 @@ class IfcVector_MagGreaterOrEqualZero: @staticmethod def __call__(self): - magnitude = getattr(self, 'Magnitude', INDETERMINATE) + magnitude = express_getattr(self, 'Magnitude', INDETERMINATE) assert (magnitude >= 0.0) is not False def calc_IfcVector_Dim(self): - orientation = getattr(self, 'Orientation', INDETERMINATE) - return getattr(orientation, 'Dim', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return express_getattr(orientation, 'Dim', INDETERMINATE) class IfcVibrationDamper_CorrectPredefinedType: SCOPE = 'entity' @@ -12519,8 +12529,8 @@ class IfcVibrationDamper_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcVibrationDamper_CorrectTypeAssigned: SCOPE = 'entity' @@ -12529,8 +12539,8 @@ class IfcVibrationDamper_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcvibrationdampertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcvibrationdampertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcVibrationDamperType_CorrectPredefinedType: SCOPE = 'entity' @@ -12539,8 +12549,8 @@ class IfcVibrationDamperType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVibrationIsolator_CorrectPredefinedType: SCOPE = 'entity' @@ -12549,8 +12559,8 @@ class IfcVibrationIsolator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcVibrationIsolator_CorrectTypeAssigned: SCOPE = 'entity' @@ -12559,8 +12569,8 @@ class IfcVibrationIsolator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcvibrationisolatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcvibrationisolatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcVibrationIsolatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -12569,8 +12579,8 @@ class IfcVibrationIsolatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVoidingFeature_HasObjectType: SCOPE = 'entity' @@ -12579,8 +12589,8 @@ class IfcVoidingFeature_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcWall_CorrectPredefinedType: SCOPE = 'entity' @@ -12589,8 +12599,8 @@ class IfcWall_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWall_CorrectTypeAssigned: SCOPE = 'entity' @@ -12599,8 +12609,8 @@ class IfcWall_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcwalltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcwalltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWallElementedCase_HasDecomposition: SCOPE = 'entity' @@ -12609,7 +12619,7 @@ class IfcWallElementedCase_HasDecomposition: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'IsDecomposedBy', INDETERMINATE)) > 0) is not False + assert (hiindex(express_getattr(self, 'IsDecomposedBy', INDETERMINATE)) > 0) is not False class IfcWallStandardCase_HasMaterialLayerSetUsage: SCOPE = 'entity' @@ -12618,7 +12628,7 @@ class IfcWallStandardCase_HasMaterialLayerSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc1.ifcrelassociates.relatedobjects') if 'ifc4x3_rc1.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc1.ifcmateriallayersetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc1.ifcrelassociates.relatedobjects') if 'ifc4x3_rc1.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc1.ifcmateriallayersetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcWallType_CorrectPredefinedType: SCOPE = 'entity' @@ -12627,8 +12637,8 @@ class IfcWallType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWasteTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -12637,8 +12647,8 @@ class IfcWasteTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWasteTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -12647,8 +12657,8 @@ class IfcWasteTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcwasteterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcwasteterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWasteTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -12657,8 +12667,8 @@ class IfcWasteTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWindow_CorrectStyleAssigned: SCOPE = 'entity' @@ -12667,8 +12677,8 @@ class IfcWindow_CorrectStyleAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcwindowtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc1.ifcwindowtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWindowLiningProperties_WR31: SCOPE = 'entity' @@ -12677,8 +12687,8 @@ class IfcWindowLiningProperties_WR31: @staticmethod def __call__(self): - liningdepth = getattr(self, 'LiningDepth', INDETERMINATE) - liningthickness = getattr(self, 'LiningThickness', INDETERMINATE) + liningdepth = express_getattr(self, 'LiningDepth', INDETERMINATE) + liningthickness = express_getattr(self, 'LiningThickness', INDETERMINATE) assert (not (exists(liningdepth) and (not exists(liningthickness)))) is not False class IfcWindowLiningProperties_WR32: @@ -12688,8 +12698,8 @@ class IfcWindowLiningProperties_WR32: @staticmethod def __call__(self): - firsttransomoffset = getattr(self, 'FirstTransomOffset', INDETERMINATE) - secondtransomoffset = getattr(self, 'SecondTransomOffset', INDETERMINATE) + firsttransomoffset = express_getattr(self, 'FirstTransomOffset', INDETERMINATE) + secondtransomoffset = express_getattr(self, 'SecondTransomOffset', INDETERMINATE) assert (not (not exists(firsttransomoffset) and exists(secondtransomoffset))) is not False class IfcWindowLiningProperties_WR33: @@ -12699,8 +12709,8 @@ class IfcWindowLiningProperties_WR33: @staticmethod def __call__(self): - firstmullionoffset = getattr(self, 'FirstMullionOffset', INDETERMINATE) - secondmullionoffset = getattr(self, 'SecondMullionOffset', INDETERMINATE) + firstmullionoffset = express_getattr(self, 'FirstMullionOffset', INDETERMINATE) + secondmullionoffset = express_getattr(self, 'SecondMullionOffset', INDETERMINATE) assert (not (not exists(firstmullionoffset) and exists(secondmullionoffset))) is not False class IfcWindowLiningProperties_WR34: @@ -12710,7 +12720,7 @@ class IfcWindowLiningProperties_WR34: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc1.ifcwindowtype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc1.ifcwindowstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc1.ifcwindowtype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc1.ifcwindowstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcWindowPanelProperties_ApplicableToType: SCOPE = 'entity' @@ -12719,7 +12729,7 @@ class IfcWindowPanelProperties_ApplicableToType: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc1.ifcwindowtype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc1.ifcwindowstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc1.ifcwindowtype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc1.ifcwindowstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcWindowType_CorrectPredefinedType: SCOPE = 'entity' @@ -12728,8 +12738,8 @@ class IfcWindowType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWorkCalendar_CorrectPredefinedType: SCOPE = 'entity' @@ -12738,8 +12748,8 @@ class IfcWorkCalendar_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWorkPlan_CorrectPredefinedType: SCOPE = 'entity' @@ -12748,8 +12758,8 @@ class IfcWorkPlan_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWorkSchedule_CorrectPredefinedType: SCOPE = 'entity' @@ -12758,8 +12768,8 @@ class IfcWorkSchedule_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcZShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -12768,8 +12778,8 @@ class IfcZShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth / 2.0) is not False class IfcZone_WR1: @@ -12779,19 +12789,19 @@ class IfcZone_WR1: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'IsGroupedBy', INDETERMINATE)) == 0 or sizeof([temp for temp in getattr(express_getitem(getattr(self, 'IsGroupedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not ('ifc4x3_rc1.ifczone' in typeof(temp) or 'ifc4x3_rc1.ifcspace' in typeof(temp) or 'ifc4x3_rc1.ifcspatialzone' in typeof(temp))]) == 0) is not False + assert (sizeof(express_getattr(self, 'IsGroupedBy', INDETERMINATE)) == 0 or sizeof([temp for temp in express_getattr(express_getitem(express_getattr(self, 'IsGroupedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not ('ifc4x3_rc1.ifczone' in typeof(temp) or 'ifc4x3_rc1.ifcspace' in typeof(temp) or 'ifc4x3_rc1.ifcspatialzone' in typeof(temp))]) == 0) is not False class IfcRepresentationContextSameWCS: SCOPE = 'file' @staticmethod def __call__(file): - IfcGeometricRepresentationContext = getattr(file, 'by_type', INDETERMINATE)('IfcGeometricRepresentationContext') + IfcGeometricRepresentationContext = express_getattr(file, 'by_type', INDETERMINATE)('IfcGeometricRepresentationContext') isdifferent = False if sizeof(IfcGeometricRepresentationContext) > 1: for i in range(2, hiindex(IfcGeometricRepresentationContext) + 1): - if getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE) != getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE): - isdifferent = not IfcSameValidPrecision(getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) or not IfcSameAxis2Placement(getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) + if express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE) != express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE): + isdifferent = not IfcSameValidPrecision(express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) or not IfcSameAxis2Placement(express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) if isdifferent == True: break assert (isdifferent == False) is not False @@ -12801,11 +12811,11 @@ class IfcSingleProjectInstance: @staticmethod def __call__(file): - IfcProject = getattr(file, 'by_type', INDETERMINATE)('IfcProject') + IfcProject = express_getattr(file, 'by_type', INDETERMINATE)('IfcProject') assert (sizeof(IfcProject) <= 1) is not False def IfcAssociatedSurface(arg): - surf = getattr(arg, 'BasisSurface', INDETERMINATE) + surf = express_getattr(arg, 'BasisSurface', INDETERMINATE) return surf def IfcBaseAxis(dim, axis1, axis2, axis3): @@ -12819,13 +12829,13 @@ def IfcBaseAxis(dim, axis1, axis2, axis3): if exists(axis2): factor = IfcDotProduct(axis2, express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) if factor < 0.0: - u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) elif exists(axis2): d1 = IfcNormalise(axis2) u = [IfcOrthogonalComplement(d1), d1] - u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) else: u = [IfcDirection(DirectionRatios=[1.0, 0.0]), IfcDirection(DirectionRatios=[0.0, 1.0])] return u @@ -12843,7 +12853,7 @@ def IfcBuild2Axes(refdirection): def IfcBuildAxes(axis, refdirection): d1 = nvl(IfcNormalise(axis), IfcDirection(DirectionRatios=[0.0, 0.0, 1.0])) d2 = IfcFirstProjAxis(d1, refdirection) - return [d2, getattr(IfcNormalise(IfcCrossProduct(d1, d2)), 'Orientation', INDETERMINATE), d1] + return [d2, express_getattr(IfcNormalise(IfcCrossProduct(d1, d2)), 'Orientation', INDETERMINATE), d1] def IfcConsecutiveSegments(segments): result = True @@ -12880,11 +12890,11 @@ def IfcConstraintsParamBSpline(degree, upknots, upcp, knotmult, knots): def IfcConvertDirectionInto2D(direction): direction2d = IfcDirection(DirectionRatios=[0.0, 1.0]) - temp = list(getattr(direction2d, 'DirectionRatios', INDETERMINATE)) - temp[1 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(direction, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(direction2d, 'DirectionRatios', INDETERMINATE)) + temp[1 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(direction, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) direction2d.DirectionRatios = temp - temp = list(getattr(direction2d, 'DirectionRatios', INDETERMINATE)) - temp[2 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(direction, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(direction2d, 'DirectionRatios', INDETERMINATE)) + temp[2 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(direction, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) direction2d.DirectionRatios = temp return direction2d @@ -13064,7 +13074,7 @@ def IfcCorrectLocalPlacement(axisplacement, relplacement): if 'ifc4x3_rc1.ifcaxis2placement2d' in typeof(axisplacement): return True if 'ifc4x3_rc1.ifcaxis2placement3d' in typeof(axisplacement): - if getattr(getattr(relplacement, 'RelativePlacement', INDETERMINATE), 'Dim', INDETERMINATE) == 3: + if express_getattr(express_getattr(relplacement, 'RelativePlacement', INDETERMINATE), 'Dim', INDETERMINATE) == 3: return True else: return False @@ -13075,27 +13085,27 @@ def IfcCorrectObjectAssignment(constraint, objects): count = 0 if not exists(constraint): return True - if constraint == getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE): + if constraint == express_getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE): return True - elif constraint == getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3_rc1.ifcproduct' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3_rc1.ifcprocess' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3_rc1.ifccontrol' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3_rc1.ifcresource' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3_rc1.ifcactor' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3_rc1.ifcgroup' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3_rc1.ifcproject' in typeof(temp)]) return count == 0 else: @@ -13107,26 +13117,26 @@ def IfcCorrectUnitAssignment(units): monetaryunitnumber = 0 namedunitnames = express_set([]) derivedunitnames = express_set([]) - namedunitnumber = sizeof([temp for temp in units if 'ifc4x3_rc1.ifcnamedunit' in typeof(temp) and (not getattr(temp, 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE))]) - derivedunitnumber = sizeof([temp for temp in units if 'ifc4x3_rc1.ifcderivedunit' in typeof(temp) and (not getattr(temp, 'UnitType', INDETERMINATE) == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE))]) + namedunitnumber = sizeof([temp for temp in units if 'ifc4x3_rc1.ifcnamedunit' in typeof(temp) and (not express_getattr(temp, 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE))]) + derivedunitnumber = sizeof([temp for temp in units if 'ifc4x3_rc1.ifcderivedunit' in typeof(temp) and (not express_getattr(temp, 'UnitType', INDETERMINATE) == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE))]) monetaryunitnumber = sizeof([temp for temp in units if 'ifc4x3_rc1.ifcmonetaryunit' in typeof(temp)]) for i in range(1, sizeof(units) + 1): - if 'ifc4x3_rc1.ifcnamedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE)): - namedunitnames = namedunitnames + getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) - if 'ifc4x3_rc1.ifcderivedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE)): - derivedunitnames = derivedunitnames + getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) + if 'ifc4x3_rc1.ifcnamedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE)): + namedunitnames = namedunitnames + express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) + if 'ifc4x3_rc1.ifcderivedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE)): + derivedunitnames = derivedunitnames + express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) return sizeof(namedunitnames) == namedunitnumber and sizeof(derivedunitnames) == derivedunitnumber and (monetaryunitnumber <= 1) def IfcCrossProduct(arg1, arg2): - if (not exists(arg1) or getattr(arg1, 'Dim', INDETERMINATE) == 2) or (not exists(arg2) or getattr(arg2, 'Dim', INDETERMINATE) == 2): + if (not exists(arg1) or express_getattr(arg1, 'Dim', INDETERMINATE) == 2) or (not exists(arg2) or express_getattr(arg2, 'Dim', INDETERMINATE) == 2): return None else: - v1 = getattr(IfcNormalise(arg1), 'DirectionRatios', INDETERMINATE) - v2 = getattr(IfcNormalise(arg2), 'DirectionRatios', INDETERMINATE) + v1 = express_getattr(IfcNormalise(arg1), 'DirectionRatios', INDETERMINATE) + v2 = express_getattr(IfcNormalise(arg2), 'DirectionRatios', INDETERMINATE) res = IfcDirection(DirectionRatios=[express_getitem(v1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(v1, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(v1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) mag = 0.0 for i in range(1, 3 + 1): - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: @@ -13135,17 +13145,17 @@ def IfcCrossProduct(arg1, arg2): def IfcCurveDim(curve): if 'ifc4x3_rc1.ifcline' in typeof(curve): - return getattr(getattr(curve, 'Pnt', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Pnt', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_rc1.ifcconic' in typeof(curve): - return getattr(getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_rc1.ifcpolyline' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'Points', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'Points', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_rc1.ifctrimmedcurve' in typeof(curve): - return IfcCurveDim(getattr(curve, 'BasisCurve', INDETERMINATE)) + return IfcCurveDim(express_getattr(curve, 'BasisCurve', INDETERMINATE)) if 'ifc4x3_rc1.ifccompositecurve' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_rc1.ifcbsplinecurve' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_rc1.ifcoffsetcurve2d' in typeof(curve): return 2 if 'ifc4x3_rc1.ifcoffsetcurve3d' in typeof(curve): @@ -13159,13 +13169,13 @@ def IfcCurveDim(curve): if 'ifc4x3_rc1.ifcpcurve' in typeof(curve): return 3 if 'ifc4x3_rc1.ifcindexedpolycurve' in typeof(curve): - return getattr(getattr(curve, 'Points', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Points', INDETERMINATE), 'Dim', INDETERMINATE) return None def IfcCurveWeightsPositive(b): result = True - for i in range(0, getattr(b, 'UpperIndexOnControlPoints', INDETERMINATE) + 1): - if express_getitem(getattr(b, 'Weights', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: + for i in range(0, express_getattr(b, 'UpperIndexOnControlPoints', INDETERMINATE) + 1): + if express_getitem(express_getattr(b, 'Weights', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: result = False return result return result @@ -13173,13 +13183,13 @@ def IfcCurveWeightsPositive(b): def IfcDeriveDimensionalExponents(unitelements): result = IfcDimensionalExponents(0, 0, 0, 0, 0, 0, 0) for i in range(loindex(unitelements), hiindex(unitelements) + 1): - result.LengthExponent = getattr(result, 'LengthExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LengthExponent', INDETERMINATE) - result.MassExponent = getattr(result, 'MassExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'MassExponent', INDETERMINATE) - result.TimeExponent = getattr(result, 'TimeExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'TimeExponent', INDETERMINATE) - result.ElectricCurrentExponent = getattr(result, 'ElectricCurrentExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ElectricCurrentExponent', INDETERMINATE) - result.ThermodynamicTemperatureExponent = getattr(result, 'ThermodynamicTemperatureExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ThermodynamicTemperatureExponent', INDETERMINATE) - result.AmountOfSubstanceExponent = getattr(result, 'AmountOfSubstanceExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'AmountOfSubstanceExponent', INDETERMINATE) - result.LuminousIntensityExponent = getattr(result, 'LuminousIntensityExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LuminousIntensityExponent', INDETERMINATE) + result.LengthExponent = express_getattr(result, 'LengthExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LengthExponent', INDETERMINATE) + result.MassExponent = express_getattr(result, 'MassExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'MassExponent', INDETERMINATE) + result.TimeExponent = express_getattr(result, 'TimeExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'TimeExponent', INDETERMINATE) + result.ElectricCurrentExponent = express_getattr(result, 'ElectricCurrentExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ElectricCurrentExponent', INDETERMINATE) + result.ThermodynamicTemperatureExponent = express_getattr(result, 'ThermodynamicTemperatureExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ThermodynamicTemperatureExponent', INDETERMINATE) + result.AmountOfSubstanceExponent = express_getattr(result, 'AmountOfSubstanceExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'AmountOfSubstanceExponent', INDETERMINATE) + result.LuminousIntensityExponent = express_getattr(result, 'LuminousIntensityExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LuminousIntensityExponent', INDETERMINATE) return result def IfcDimensionsForSiUnit(n): @@ -13249,15 +13259,15 @@ def IfcDimensionsForSiUnit(n): def IfcDotProduct(arg1, arg2): if not exists(arg1) or not exists(arg2): scalar = None - elif getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + elif express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): scalar = None else: vec1 = IfcNormalise(arg1) vec2 = IfcNormalise(arg2) - ndim = getattr(arg1, 'Dim', INDETERMINATE) + ndim = express_getattr(arg1, 'Dim', INDETERMINATE) scalar = 0.0 for i in range(1, ndim + 1): - scalar = scalar + express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + scalar = scalar + express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return scalar def IfcFirstProjAxis(zaxis, arg): @@ -13266,36 +13276,36 @@ def IfcFirstProjAxis(zaxis, arg): else: z = IfcNormalise(zaxis) if not exists(arg): - if getattr(z, 'DirectionRatios', INDETERMINATE) != [1.0, 0.0, 0.0]: + if express_getattr(z, 'DirectionRatios', INDETERMINATE) != [1.0, 0.0, 0.0]: v = IfcDirection(DirectionRatios=[1.0, 0.0, 0.0]) else: v = IfcDirection(DirectionRatios=[0.0, 1.0, 0.0]) else: - if getattr(arg, 'Dim', INDETERMINATE) != 3: + if express_getattr(arg, 'Dim', INDETERMINATE) != 3: return None - if getattr(IfcCrossProduct(arg, z), 'Magnitude', INDETERMINATE) == 0.0: + if express_getattr(IfcCrossProduct(arg, z), 'Magnitude', INDETERMINATE) == 0.0: return None else: v = IfcNormalise(arg) xvec = IfcScalarTimesVector(IfcDotProduct(v, z), z) - xaxis = getattr(IfcVectorDifference(v, xvec), 'Orientation', INDETERMINATE) + xaxis = express_getattr(IfcVectorDifference(v, xvec), 'Orientation', INDETERMINATE) xaxis = IfcNormalise(xaxis) return xaxis def IfcGetBasisSurface(c): surfs = [] if 'ifc4x3_rc1.ifcpcurve' in typeof(c): - surfs = [getattr(c, 'BasisSurface', INDETERMINATE)] + surfs = [express_getattr(c, 'BasisSurface', INDETERMINATE)] elif 'ifc4x3_rc1.ifcsurfacecurve' in typeof(c): - n = sizeof(getattr(c, 'AssociatedGeometry', INDETERMINATE)) + n = sizeof(express_getattr(c, 'AssociatedGeometry', INDETERMINATE)) for i in range(1, n + 1): - surfs = surfs + IfcAssociatedSurface(express_getitem(getattr(c, 'AssociatedGeometry', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) + surfs = surfs + IfcAssociatedSurface(express_getitem(express_getattr(c, 'AssociatedGeometry', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) if 'ifc4x3_rc1.ifccompositecurveonsurface' in typeof(c): - n = sizeof(getattr(c, 'Segments', INDETERMINATE)) - surfs = IfcGetBasisSurface(getattr(express_getitem(getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) + n = sizeof(express_getattr(c, 'Segments', INDETERMINATE)) + surfs = IfcGetBasisSurface(express_getattr(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) if n > 1: for i in range(2, n + 1): - surfs = surfs * IfcGetBasisSurface(getattr(express_getitem(getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) + surfs = surfs * IfcGetBasisSurface(express_getattr(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) return surfs def IfcListToArray(lis, low, u): @@ -13312,9 +13322,9 @@ def IfcListToArray(lis, low, u): def IfcLoopHeadToTail(aloop): p = True - n = sizeof(getattr(aloop, 'EdgeList', INDETERMINATE)) + n = sizeof(express_getattr(aloop, 'EdgeList', INDETERMINATE)) for i in range(2, n + 1): - p = p and getattr(express_getitem(getattr(aloop, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == getattr(express_getitem(getattr(aloop, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) + p = p and express_getattr(express_getitem(express_getattr(aloop, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == express_getattr(express_getitem(express_getattr(aloop, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) return p def IfcMakeArrayOfArray(lis, low1, u1, low2, u2): @@ -13332,10 +13342,10 @@ def IfcMakeArrayOfArray(lis, low1, u1, low2, u2): return res def IfcMlsTotalThickness(layerset): - max = getattr(express_getitem(getattr(layerset, 'MaterialLayers', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) - if sizeof(getattr(layerset, 'MaterialLayers', INDETERMINATE)) > 1: - for i in range(2, hiindex(getattr(layerset, 'MaterialLayers', INDETERMINATE)) + 1): - max = max + getattr(express_getitem(getattr(layerset, 'MaterialLayers', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) + max = express_getattr(express_getitem(express_getattr(layerset, 'MaterialLayers', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) + if sizeof(express_getattr(layerset, 'MaterialLayers', INDETERMINATE)) > 1: + for i in range(2, hiindex(express_getattr(layerset, 'MaterialLayers', INDETERMINATE)) + 1): + max = max + express_getattr(express_getitem(express_getattr(layerset, 'MaterialLayers', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) return max def IfcNormalise(arg): @@ -13346,25 +13356,25 @@ def IfcNormalise(arg): return None else: if 'ifc4x3_rc1.ifcvector' in typeof(arg): - ndim = getattr(arg, 'Dim', INDETERMINATE) - v.DirectionRatios = getattr(getattr(arg, 'Orientation', INDETERMINATE), 'DirectionRatios', INDETERMINATE) - vec.Magnitude = getattr(arg, 'Magnitude', INDETERMINATE) + ndim = express_getattr(arg, 'Dim', INDETERMINATE) + v.DirectionRatios = express_getattr(express_getattr(arg, 'Orientation', INDETERMINATE), 'DirectionRatios', INDETERMINATE) + vec.Magnitude = express_getattr(arg, 'Magnitude', INDETERMINATE) vec.Orientation = v - if getattr(arg, 'Magnitude', INDETERMINATE) == 0.0: + if express_getattr(arg, 'Magnitude', INDETERMINATE) == 0.0: return None else: vec.Magnitude = 1.0 else: - ndim = getattr(arg, 'Dim', INDETERMINATE) - v.DirectionRatios = getattr(arg, 'DirectionRatios', INDETERMINATE) + ndim = express_getattr(arg, 'Dim', INDETERMINATE) + v.DirectionRatios = express_getattr(arg, 'DirectionRatios', INDETERMINATE) mag = 0.0 for i in range(1, ndim + 1): - mag = mag + express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: mag = sqrt(mag) for i in range(1, ndim + 1): - temp = list(getattr(v, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) / mag + temp = list(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) / mag v.DirectionRatios = temp if 'ifc4x3_rc1.ifcvector' in typeof(arg): vec.Orientation = v @@ -13376,18 +13386,18 @@ def IfcNormalise(arg): return result def IfcOrthogonalComplement(vec): - if not exists(vec) or getattr(vec, 'Dim', INDETERMINATE) != 2: + if not exists(vec) or express_getattr(vec, 'Dim', INDETERMINATE) != 2: return None else: - result = IfcDirection(DirectionRatios=[-express_getitem(getattr(vec, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(vec, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) + result = IfcDirection(DirectionRatios=[-express_getitem(express_getattr(vec, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(vec, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) return result def IfcPathHeadToTail(apath): n = 0 p = unknown - n = sizeof(getattr(apath, 'EdgeList', INDETERMINATE)) + n = sizeof(express_getattr(apath, 'EdgeList', INDETERMINATE)) for i in range(2, n + 1): - p = p and getattr(express_getitem(getattr(apath, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == getattr(express_getitem(getattr(apath, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) + p = p and express_getattr(express_getitem(express_getattr(apath, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == express_getattr(express_getitem(express_getattr(apath, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) return p def IfcPointListDim(pointlist): @@ -13398,32 +13408,32 @@ def IfcPointListDim(pointlist): return None def IfcSameAxis2Placement(ap1, ap2, epsilon): - return IfcSameDirection(express_getitem(getattr(ap1, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(ap2, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameDirection(express_getitem(getattr(ap1, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(ap2, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameCartesianPoint(getattr(ap1, 'Location', INDETERMINATE), getattr(ap1, 'Location', INDETERMINATE), epsilon) + return IfcSameDirection(express_getitem(express_getattr(ap1, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(ap2, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameDirection(express_getitem(express_getattr(ap1, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(ap2, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameCartesianPoint(express_getattr(ap1, 'Location', INDETERMINATE), express_getattr(ap1, 'Location', INDETERMINATE), epsilon) def IfcSameCartesianPoint(cp1, cp2, epsilon): - cp1x = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - cp1y = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp1x = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp1y = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) cp1z = 0 - cp2x = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - cp2y = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp2x = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp2y = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) cp2z = 0 - if sizeof(getattr(cp1, 'Coordinates', INDETERMINATE)) > 2: - cp1z = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - if sizeof(getattr(cp2, 'Coordinates', INDETERMINATE)) > 2: - cp2z = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(cp1, 'Coordinates', INDETERMINATE)) > 2: + cp1z = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(cp2, 'Coordinates', INDETERMINATE)) > 2: + cp2z = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return IfcSameValue(cp1x, cp2x, epsilon) and IfcSameValue(cp1y, cp2y, epsilon) and IfcSameValue(cp1z, cp2z, epsilon) def IfcSameDirection(dir1, dir2, epsilon): - dir1x = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - dir1y = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir1x = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir1y = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) dir1z = 0 - dir2x = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - dir2y = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir2x = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir2y = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) dir2z = 0 - if sizeof(getattr(dir1, 'DirectionRatios', INDETERMINATE)) > 2: - dir1z = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - if sizeof(getattr(dir2, 'DirectionRatios', INDETERMINATE)) > 2: - dir2z = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(dir1, 'DirectionRatios', INDETERMINATE)) > 2: + dir1z = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(dir2, 'DirectionRatios', INDETERMINATE)) > 2: + dir2z = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return IfcSameValue(dir1x, dir2x, epsilon) and IfcSameValue(dir1y, dir2y, epsilon) and IfcSameValue(dir1z, dir2z, epsilon) def IfcSameValidPrecision(epsilon1, epsilon2): @@ -13444,15 +13454,15 @@ def IfcScalarTimesVector(scalar, vec): return None else: if 'ifc4x3_rc1.ifcvector' in typeof(vec): - v = getattr(vec, 'Orientation', INDETERMINATE) - mag = scalar * getattr(vec, 'Magnitude', INDETERMINATE) + v = express_getattr(vec, 'Orientation', INDETERMINATE) + mag = scalar * express_getattr(vec, 'Magnitude', INDETERMINATE) else: v = vec mag = scalar if mag < 0.0: - for i in range(1, sizeof(getattr(v, 'DirectionRatios', INDETERMINATE)) + 1): - temp = list(getattr(v, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + for i in range(1, sizeof(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + 1): + temp = list(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) v.DirectionRatios = temp mag = -mag result = IfcVector(Orientation=IfcNormalise(v), Magnitude=mag) @@ -13468,71 +13478,71 @@ def IfcSecondProjAxis(zaxis, xaxis, arg): temp = IfcScalarTimesVector(IfcDotProduct(v, xaxis), xaxis) yaxis = IfcVectorDifference(yaxis, temp) yaxis = IfcNormalise(yaxis) - return getattr(yaxis, 'Orientation', INDETERMINATE) + return express_getattr(yaxis, 'Orientation', INDETERMINATE) def IfcShapeRepresentationTypes(reptype, items): count = 0 - if getattr(reptype, 'lower', INDETERMINATE)() == 'point': + if express_getattr(reptype, 'lower', INDETERMINATE)() == 'point': count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifcpoint' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'pointcloud': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'pointcloud': count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifccartesianpointlist3d' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve': count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifccurve' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve2d': - count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifccurve' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 2]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve3d': - count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifccurve' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 3]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve2d': + count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifccurve' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 2]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve3d': + count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifccurve' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 3]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface': count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifcsurface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface2d': - count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifcsurface' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 2]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface3d': - count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifcsurface' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 3]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'fillarea': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface2d': + count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifcsurface' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 2]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface3d': + count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifcsurface' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 3]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'fillarea': count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifcannotationfillarea' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'text': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'text': count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifctextliteral' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsurface': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsurface': count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifcbsplinesurface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'annotation2d': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'annotation2d': count = sizeof([temp for temp in items if sizeof(typeof(temp) * ['ifc4x3_rc1.ifcpoint', 'ifc4x3_rc1.ifccurve', 'ifc4x3_rc1.ifcgeometriccurveset', 'ifc4x3_rc1.ifcannotationfillarea', 'ifc4x3_rc1.ifctextliteral']) == 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'geometricset': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'geometricset': count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifcgeometricset' in typeof(temp) or 'ifc4x3_rc1.ifcpoint' in typeof(temp) or 'ifc4x3_rc1.ifccurve' in typeof(temp) or ('ifc4x3_rc1.ifcsurface' in typeof(temp))]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'geometriccurveset': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'geometriccurveset': count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifcgeometriccurveset' in typeof(temp) or 'ifc4x3_rc1.ifcgeometricset' in typeof(temp) or 'ifc4x3_rc1.ifcpoint' in typeof(temp) or ('ifc4x3_rc1.ifccurve' in typeof(temp))]) for i in range(1, hiindex(items) + 1): if 'ifc4x3_rc1.ifcgeometricset' in typeof(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - if sizeof([temp for temp in getattr(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Elements', INDETERMINATE) if 'ifc4x3_rc1.ifcsurface' in typeof(temp)]) > 0: + if sizeof([temp for temp in express_getattr(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Elements', INDETERMINATE) if 'ifc4x3_rc1.ifcsurface' in typeof(temp)]) > 0: count = count - 1 - elif getattr(reptype, 'lower', INDETERMINATE)() == 'tessellation': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'tessellation': count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifctessellateditem' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surfaceorsolidmodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surfaceorsolidmodel': count = sizeof([temp for temp in items if sizeof(['ifc4x3_rc1.ifctessellateditem', 'ifc4x3_rc1.ifcshellbasedsurfacemodel', 'ifc4x3_rc1.ifcfacebasedsurfacemodel', 'ifc4x3_rc1.ifcsolidmodel'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surfacemodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surfacemodel': count = sizeof([temp for temp in items if sizeof(['ifc4x3_rc1.ifctessellateditem', 'ifc4x3_rc1.ifcshellbasedsurfacemodel', 'ifc4x3_rc1.ifcfacebasedsurfacemodel'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'solidmodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'solidmodel': count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifcsolidmodel' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'sweptsolid': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'sweptsolid': count = sizeof([temp for temp in items if sizeof(['ifc4x3_rc1.ifcextrudedareasolid', 'ifc4x3_rc1.ifcrevolvedareasolid'] * typeof(temp)) >= 1 and sizeof(['ifc4x3_rc1.ifcextrudedareasolidtapered', 'ifc4x3_rc1.ifcrevolvedareasolidtapered'] * typeof(temp)) == 0]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsweptsolid': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsweptsolid': count = sizeof([temp for temp in items if sizeof(['ifc4x3_rc1.ifcsweptareasolid', 'ifc4x3_rc1.ifcsweptdisksolid'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'csg': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'csg': count = sizeof([temp for temp in items if sizeof(['ifc4x3_rc1.ifcbooleanresult', 'ifc4x3_rc1.ifccsgprimitive3d', 'ifc4x3_rc1.ifccsgsolid'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'clipping': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'clipping': count = sizeof([temp for temp in items if sizeof(['ifc4x3_rc1.ifccsgsolid', 'ifc4x3_rc1.ifcbooleanclippingresult'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'brep': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'brep': count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifcfacetedbrep' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedbrep': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedbrep': count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifcmanifoldsolidbrep' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'boundingbox': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'boundingbox': count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifcboundingbox' in typeof(temp)]) if sizeof(items) > 1: count = 0 - elif getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedspine': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedspine': count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifcsectionedspine' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'lightsource': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'lightsource': count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifclightsource' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'mappedrepresentation': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'mappedrepresentation': count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifcmappeditem' in typeof(temp)]) else: return None @@ -13540,9 +13550,9 @@ def IfcShapeRepresentationTypes(reptype, items): def IfcSurfaceWeightsPositive(b): result = True - weights = getattr(b, 'Weights', INDETERMINATE) - for i in range(0, getattr(b, 'UUpper', INDETERMINATE) + 1): - for j in range(0, getattr(b, 'VUpper', INDETERMINATE) + 1): + weights = express_getattr(b, 'Weights', INDETERMINATE) + for i in range(0, express_getattr(b, 'UUpper', INDETERMINATE) + 1): + for j in range(0, express_getattr(b, 'VUpper', INDETERMINATE) + 1): if express_getitem(express_getitem(weights, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), j - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: result = False return result @@ -13552,28 +13562,28 @@ def IfcTaperedSweptAreaProfiles(startarea, endarea): result = False if 'ifc4x3_rc1.ifcparameterizedprofiledef' in typeof(startarea): if 'ifc4x3_rc1.ifcderivedprofiledef' in typeof(endarea): - result = startarea == getattr(endarea, 'ParentProfile', INDETERMINATE) + result = startarea == express_getattr(endarea, 'ParentProfile', INDETERMINATE) else: result = typeof(startarea) == typeof(endarea) elif 'ifc4x3_rc1.ifcderivedprofiledef' in typeof(endarea): - result = startarea == getattr(endarea, 'ParentProfile', INDETERMINATE) + result = startarea == express_getattr(endarea, 'ParentProfile', INDETERMINATE) else: result = False return result def IfcTopologyRepresentationTypes(reptype, items): count = 0 - if getattr(reptype, 'lower', INDETERMINATE)() == 'vertex': + if express_getattr(reptype, 'lower', INDETERMINATE)() == 'vertex': count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifcvertex' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'edge': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'edge': count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifcedge' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'path': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'path': count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifcpath' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'face': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'face': count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifcface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'shell': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'shell': count = sizeof([temp for temp in items if 'ifc4x3_rc1.ifcopenshell' in typeof(temp) or 'ifc4x3_rc1.ifcclosedshell' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'undefined': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'undefined': return True else: return None @@ -13584,7 +13594,7 @@ def IfcUniqueDefinitionNames(relations): if sizeof(relations) == 0: return True for i in range(1, hiindex(relations) + 1): - definition = getattr(express_getitem(relations, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingPropertyDefinition', INDETERMINATE) + definition = express_getattr(express_getitem(relations, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingPropertyDefinition', INDETERMINATE) if 'ifc4x3_rc1.ifcpropertysetdefinition' in typeof(definition): properties = properties + definition elif 'ifc4x3_rc1.ifcpropertysetdefinitionset' in typeof(definition): @@ -13597,7 +13607,7 @@ def IfcUniqueDefinitionNames(relations): def IfcUniquePropertyName(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcUniquePropertySetNames(properties): @@ -13605,7 +13615,7 @@ def IfcUniquePropertySetNames(properties): unnamed = 0 for i in range(1, hiindex(properties) + 1): if 'ifc4x3_rc1.ifcpropertyset' in typeof(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) else: unnamed = unnamed + 1 return sizeof(names) + unnamed == sizeof(properties) @@ -13613,41 +13623,41 @@ def IfcUniquePropertySetNames(properties): def IfcUniquePropertyTemplateNames(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcUniqueQuantityNames(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcVectorDifference(arg1, arg2): - if (not exists(arg1) or not exists(arg2)) or getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + if (not exists(arg1) or not exists(arg2)) or express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): return None else: if 'ifc4x3_rc1.ifcvector' in typeof(arg1): - mag1 = getattr(arg1, 'Magnitude', INDETERMINATE) - vec1 = getattr(arg1, 'Orientation', INDETERMINATE) + mag1 = express_getattr(arg1, 'Magnitude', INDETERMINATE) + vec1 = express_getattr(arg1, 'Orientation', INDETERMINATE) else: mag1 = 1.0 vec1 = arg1 if 'ifc4x3_rc1.ifcvector' in typeof(arg2): - mag2 = getattr(arg2, 'Magnitude', INDETERMINATE) - vec2 = getattr(arg2, 'Orientation', INDETERMINATE) + mag2 = express_getattr(arg2, 'Magnitude', INDETERMINATE) + vec2 = express_getattr(arg2, 'Orientation', INDETERMINATE) else: mag2 = 1.0 vec2 = arg2 vec1 = IfcNormalise(vec1) vec2 = IfcNormalise(vec2) - ndim = sizeof(getattr(vec1, 'DirectionRatios', INDETERMINATE)) + ndim = sizeof(express_getattr(vec1, 'DirectionRatios', INDETERMINATE)) mag = 0.0 res = IfcDirection(DirectionRatios=[0.0] * ndim) for i in range(1, ndim + 1): - temp = list(getattr(res, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - mag2 * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(res, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - mag2 * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) res.DirectionRatios = temp - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: @@ -13655,31 +13665,31 @@ def IfcVectorDifference(arg1, arg2): return result def IfcVectorSum(arg1, arg2): - if (not exists(arg1) or not exists(arg2)) or getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + if (not exists(arg1) or not exists(arg2)) or express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): return None else: if 'ifc4x3_rc1.ifcvector' in typeof(arg1): - mag1 = getattr(arg1, 'Magnitude', INDETERMINATE) - vec1 = getattr(arg1, 'Orientation', INDETERMINATE) + mag1 = express_getattr(arg1, 'Magnitude', INDETERMINATE) + vec1 = express_getattr(arg1, 'Orientation', INDETERMINATE) else: mag1 = 1.0 vec1 = arg1 if 'ifc4x3_rc1.ifcvector' in typeof(arg2): - mag2 = getattr(arg2, 'Magnitude', INDETERMINATE) - vec2 = getattr(arg2, 'Orientation', INDETERMINATE) + mag2 = express_getattr(arg2, 'Magnitude', INDETERMINATE) + vec2 = express_getattr(arg2, 'Orientation', INDETERMINATE) else: mag2 = 1.0 vec2 = arg2 vec1 = IfcNormalise(vec1) vec2 = IfcNormalise(vec2) - ndim = sizeof(getattr(vec1, 'DirectionRatios', INDETERMINATE)) + ndim = sizeof(express_getattr(vec1, 'DirectionRatios', INDETERMINATE)) mag = 0.0 res = IfcDirection(DirectionRatios=[0.0] * ndim) for i in range(1, ndim + 1): - temp = list(getattr(res, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag2 * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(res, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag2 * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) res.DirectionRatios = temp - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC2.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC2.py index 7b8fa6f30b..0303689be5 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC2.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC2.py @@ -1,5 +1,8 @@ import ifcopenshell +def is_indeterminate(v): + return v is None or type(v).__name__ == 'indeterminate_type' + def exists(v): if callable(v): try: @@ -7,10 +10,10 @@ def exists(v): except IndexError as e: return False else: - return v is not None + return not is_indeterminate(v) def nvl(v, default): - return v if v is not None else default + return v if not is_indeterminate(v) else default def is_entity(inst): if isinstance(inst, ifcopenshell.entity_instance): @@ -22,13 +25,13 @@ def is_entity(inst): def express_len(v): if isinstance(v, ifcopenshell.entity_instance) and (not is_entity(v)): v = v[0] - elif v is None or v is INDETERMINATE: + elif is_indeterminate(v): return INDETERMINATE return len(v) old_range = range def range(*args): - if INDETERMINATE in args: + if any(map(is_indeterminate, args)): return yield from old_range(*args) sizeof = express_len @@ -80,6 +83,13 @@ def express_getitem(aggr, idx, default): return aggr[idx] except IndexError as e: return None + +def express_getattr(aggr, name, default): + v = getattr(aggr, name, default) + if v is None: + return default + else: + return v EXPRESS_ONE_BASED_INDEXING = 1 def typeof(inst): @@ -140,2362 +150,2362 @@ INDETERMINATE = indeterminate_type() class enum_namespace: def __getattr__(self, k): - return getattr(k, 'upper', INDETERMINATE)() + return express_getattr(k, 'upper', INDETERMINATE)() IfcActionRequestTypeEnum = enum_namespace() -email = getattr(IfcActionRequestTypeEnum, 'EMAIL', INDETERMINATE) -fax = getattr(IfcActionRequestTypeEnum, 'FAX', INDETERMINATE) -phone = getattr(IfcActionRequestTypeEnum, 'PHONE', INDETERMINATE) -post = getattr(IfcActionRequestTypeEnum, 'POST', INDETERMINATE) -verbal = getattr(IfcActionRequestTypeEnum, 'VERBAL', INDETERMINATE) -userdefined = getattr(IfcActionRequestTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionRequestTypeEnum, 'NOTDEFINED', INDETERMINATE) +email = IfcActionRequestTypeEnum.EMAIL +fax = IfcActionRequestTypeEnum.FAX +phone = IfcActionRequestTypeEnum.PHONE +post = IfcActionRequestTypeEnum.POST +verbal = IfcActionRequestTypeEnum.VERBAL +userdefined = IfcActionRequestTypeEnum.USERDEFINED +notdefined = IfcActionRequestTypeEnum.NOTDEFINED IfcActionSourceTypeEnum = enum_namespace() -dead_load_g = getattr(IfcActionSourceTypeEnum, 'DEAD_LOAD_G', INDETERMINATE) -completion_g1 = getattr(IfcActionSourceTypeEnum, 'COMPLETION_G1', INDETERMINATE) -live_load_q = getattr(IfcActionSourceTypeEnum, 'LIVE_LOAD_Q', INDETERMINATE) -snow_s = getattr(IfcActionSourceTypeEnum, 'SNOW_S', INDETERMINATE) -wind_w = getattr(IfcActionSourceTypeEnum, 'WIND_W', INDETERMINATE) -prestressing_p = getattr(IfcActionSourceTypeEnum, 'PRESTRESSING_P', INDETERMINATE) -settlement_u = getattr(IfcActionSourceTypeEnum, 'SETTLEMENT_U', INDETERMINATE) -temperature_t = getattr(IfcActionSourceTypeEnum, 'TEMPERATURE_T', INDETERMINATE) -earthquake_e = getattr(IfcActionSourceTypeEnum, 'EARTHQUAKE_E', INDETERMINATE) -fire = getattr(IfcActionSourceTypeEnum, 'FIRE', INDETERMINATE) -impulse = getattr(IfcActionSourceTypeEnum, 'IMPULSE', INDETERMINATE) -impact = getattr(IfcActionSourceTypeEnum, 'IMPACT', INDETERMINATE) -transport = getattr(IfcActionSourceTypeEnum, 'TRANSPORT', INDETERMINATE) -erection = getattr(IfcActionSourceTypeEnum, 'ERECTION', INDETERMINATE) -propping = getattr(IfcActionSourceTypeEnum, 'PROPPING', INDETERMINATE) -system_imperfection = getattr(IfcActionSourceTypeEnum, 'SYSTEM_IMPERFECTION', INDETERMINATE) -shrinkage = getattr(IfcActionSourceTypeEnum, 'SHRINKAGE', INDETERMINATE) -creep = getattr(IfcActionSourceTypeEnum, 'CREEP', INDETERMINATE) -lack_of_fit = getattr(IfcActionSourceTypeEnum, 'LACK_OF_FIT', INDETERMINATE) -buoyancy = getattr(IfcActionSourceTypeEnum, 'BUOYANCY', INDETERMINATE) -ice = getattr(IfcActionSourceTypeEnum, 'ICE', INDETERMINATE) -current = getattr(IfcActionSourceTypeEnum, 'CURRENT', INDETERMINATE) -wave = getattr(IfcActionSourceTypeEnum, 'WAVE', INDETERMINATE) -rain = getattr(IfcActionSourceTypeEnum, 'RAIN', INDETERMINATE) -brakes = getattr(IfcActionSourceTypeEnum, 'BRAKES', INDETERMINATE) -userdefined = getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionSourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dead_load_g = IfcActionSourceTypeEnum.DEAD_LOAD_G +completion_g1 = IfcActionSourceTypeEnum.COMPLETION_G1 +live_load_q = IfcActionSourceTypeEnum.LIVE_LOAD_Q +snow_s = IfcActionSourceTypeEnum.SNOW_S +wind_w = IfcActionSourceTypeEnum.WIND_W +prestressing_p = IfcActionSourceTypeEnum.PRESTRESSING_P +settlement_u = IfcActionSourceTypeEnum.SETTLEMENT_U +temperature_t = IfcActionSourceTypeEnum.TEMPERATURE_T +earthquake_e = IfcActionSourceTypeEnum.EARTHQUAKE_E +fire = IfcActionSourceTypeEnum.FIRE +impulse = IfcActionSourceTypeEnum.IMPULSE +impact = IfcActionSourceTypeEnum.IMPACT +transport = IfcActionSourceTypeEnum.TRANSPORT +erection = IfcActionSourceTypeEnum.ERECTION +propping = IfcActionSourceTypeEnum.PROPPING +system_imperfection = IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION +shrinkage = IfcActionSourceTypeEnum.SHRINKAGE +creep = IfcActionSourceTypeEnum.CREEP +lack_of_fit = IfcActionSourceTypeEnum.LACK_OF_FIT +buoyancy = IfcActionSourceTypeEnum.BUOYANCY +ice = IfcActionSourceTypeEnum.ICE +current = IfcActionSourceTypeEnum.CURRENT +wave = IfcActionSourceTypeEnum.WAVE +rain = IfcActionSourceTypeEnum.RAIN +brakes = IfcActionSourceTypeEnum.BRAKES +userdefined = IfcActionSourceTypeEnum.USERDEFINED +notdefined = IfcActionSourceTypeEnum.NOTDEFINED IfcActionTypeEnum = enum_namespace() -permanent_g = getattr(IfcActionTypeEnum, 'PERMANENT_G', INDETERMINATE) -variable_q = getattr(IfcActionTypeEnum, 'VARIABLE_Q', INDETERMINATE) -extraordinary_a = getattr(IfcActionTypeEnum, 'EXTRAORDINARY_A', INDETERMINATE) -userdefined = getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionTypeEnum, 'NOTDEFINED', INDETERMINATE) +permanent_g = IfcActionTypeEnum.PERMANENT_G +variable_q = IfcActionTypeEnum.VARIABLE_Q +extraordinary_a = IfcActionTypeEnum.EXTRAORDINARY_A +userdefined = IfcActionTypeEnum.USERDEFINED +notdefined = IfcActionTypeEnum.NOTDEFINED IfcActuatorTypeEnum = enum_namespace() -electricactuator = getattr(IfcActuatorTypeEnum, 'ELECTRICACTUATOR', INDETERMINATE) -handoperatedactuator = getattr(IfcActuatorTypeEnum, 'HANDOPERATEDACTUATOR', INDETERMINATE) -hydraulicactuator = getattr(IfcActuatorTypeEnum, 'HYDRAULICACTUATOR', INDETERMINATE) -pneumaticactuator = getattr(IfcActuatorTypeEnum, 'PNEUMATICACTUATOR', INDETERMINATE) -thermostaticactuator = getattr(IfcActuatorTypeEnum, 'THERMOSTATICACTUATOR', INDETERMINATE) -userdefined = getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActuatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +electricactuator = IfcActuatorTypeEnum.ELECTRICACTUATOR +handoperatedactuator = IfcActuatorTypeEnum.HANDOPERATEDACTUATOR +hydraulicactuator = IfcActuatorTypeEnum.HYDRAULICACTUATOR +pneumaticactuator = IfcActuatorTypeEnum.PNEUMATICACTUATOR +thermostaticactuator = IfcActuatorTypeEnum.THERMOSTATICACTUATOR +userdefined = IfcActuatorTypeEnum.USERDEFINED +notdefined = IfcActuatorTypeEnum.NOTDEFINED IfcAddressTypeEnum = enum_namespace() -office = getattr(IfcAddressTypeEnum, 'OFFICE', INDETERMINATE) -site = getattr(IfcAddressTypeEnum, 'SITE', INDETERMINATE) -home = getattr(IfcAddressTypeEnum, 'HOME', INDETERMINATE) -distributionpoint = getattr(IfcAddressTypeEnum, 'DISTRIBUTIONPOINT', INDETERMINATE) -userdefined = getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) +office = IfcAddressTypeEnum.OFFICE +site = IfcAddressTypeEnum.SITE +home = IfcAddressTypeEnum.HOME +distributionpoint = IfcAddressTypeEnum.DISTRIBUTIONPOINT +userdefined = IfcAddressTypeEnum.USERDEFINED IfcAirTerminalBoxTypeEnum = enum_namespace() -constantflow = getattr(IfcAirTerminalBoxTypeEnum, 'CONSTANTFLOW', INDETERMINATE) -variableflowpressuredependant = getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREDEPENDANT', INDETERMINATE) -variableflowpressureindependant = getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREINDEPENDANT', INDETERMINATE) -userdefined = getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirTerminalBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +constantflow = IfcAirTerminalBoxTypeEnum.CONSTANTFLOW +variableflowpressuredependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT +variableflowpressureindependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT +userdefined = IfcAirTerminalBoxTypeEnum.USERDEFINED +notdefined = IfcAirTerminalBoxTypeEnum.NOTDEFINED IfcAirTerminalTypeEnum = enum_namespace() -diffuser = getattr(IfcAirTerminalTypeEnum, 'DIFFUSER', INDETERMINATE) -grille = getattr(IfcAirTerminalTypeEnum, 'GRILLE', INDETERMINATE) -louvre = getattr(IfcAirTerminalTypeEnum, 'LOUVRE', INDETERMINATE) -register = getattr(IfcAirTerminalTypeEnum, 'REGISTER', INDETERMINATE) -userdefined = getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +diffuser = IfcAirTerminalTypeEnum.DIFFUSER +grille = IfcAirTerminalTypeEnum.GRILLE +louvre = IfcAirTerminalTypeEnum.LOUVRE +register = IfcAirTerminalTypeEnum.REGISTER +userdefined = IfcAirTerminalTypeEnum.USERDEFINED +notdefined = IfcAirTerminalTypeEnum.NOTDEFINED IfcAirToAirHeatRecoveryTypeEnum = enum_namespace() -fixedplatecounterflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECOUNTERFLOWEXCHANGER', INDETERMINATE) -fixedplatecrossflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECROSSFLOWEXCHANGER', INDETERMINATE) -fixedplateparallelflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATEPARALLELFLOWEXCHANGER', INDETERMINATE) -rotarywheel = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'ROTARYWHEEL', INDETERMINATE) -runaroundcoilloop = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'RUNAROUNDCOILLOOP', INDETERMINATE) -heatpipe = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'HEATPIPE', INDETERMINATE) -twintowerenthalpyrecoveryloops = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'TWINTOWERENTHALPYRECOVERYLOOPS', INDETERMINATE) -thermosiphonsealedtubeheatexchangers = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONSEALEDTUBEHEATEXCHANGERS', INDETERMINATE) -thermosiphoncoiltypeheatexchangers = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONCOILTYPEHEATEXCHANGERS', INDETERMINATE) -userdefined = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'NOTDEFINED', INDETERMINATE) +fixedplatecounterflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER +fixedplatecrossflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER +fixedplateparallelflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER +rotarywheel = IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL +runaroundcoilloop = IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP +heatpipe = IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE +twintowerenthalpyrecoveryloops = IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS +thermosiphonsealedtubeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS +thermosiphoncoiltypeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS +userdefined = IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED +notdefined = IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED IfcAlarmTypeEnum = enum_namespace() -bell = getattr(IfcAlarmTypeEnum, 'BELL', INDETERMINATE) -breakglassbutton = getattr(IfcAlarmTypeEnum, 'BREAKGLASSBUTTON', INDETERMINATE) -light = getattr(IfcAlarmTypeEnum, 'LIGHT', INDETERMINATE) -manualpullbox = getattr(IfcAlarmTypeEnum, 'MANUALPULLBOX', INDETERMINATE) -siren = getattr(IfcAlarmTypeEnum, 'SIREN', INDETERMINATE) -whistle = getattr(IfcAlarmTypeEnum, 'WHISTLE', INDETERMINATE) -railwaycrocodile = getattr(IfcAlarmTypeEnum, 'RAILWAYCROCODILE', INDETERMINATE) -railwaydetonator = getattr(IfcAlarmTypeEnum, 'RAILWAYDETONATOR', INDETERMINATE) -userdefined = getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAlarmTypeEnum, 'NOTDEFINED', INDETERMINATE) +bell = IfcAlarmTypeEnum.BELL +breakglassbutton = IfcAlarmTypeEnum.BREAKGLASSBUTTON +light = IfcAlarmTypeEnum.LIGHT +manualpullbox = IfcAlarmTypeEnum.MANUALPULLBOX +siren = IfcAlarmTypeEnum.SIREN +whistle = IfcAlarmTypeEnum.WHISTLE +railwaycrocodile = IfcAlarmTypeEnum.RAILWAYCROCODILE +railwaydetonator = IfcAlarmTypeEnum.RAILWAYDETONATOR +userdefined = IfcAlarmTypeEnum.USERDEFINED +notdefined = IfcAlarmTypeEnum.NOTDEFINED IfcAlignmentCantSegmentTypeEnum = enum_namespace() -constantcant = getattr(IfcAlignmentCantSegmentTypeEnum, 'CONSTANTCANT', INDETERMINATE) -lineartransition = getattr(IfcAlignmentCantSegmentTypeEnum, 'LINEARTRANSITION', INDETERMINATE) -biquadraticparabola = getattr(IfcAlignmentCantSegmentTypeEnum, 'BIQUADRATICPARABOLA', INDETERMINATE) -blosscurve = getattr(IfcAlignmentCantSegmentTypeEnum, 'BLOSSCURVE', INDETERMINATE) -cosinecurve = getattr(IfcAlignmentCantSegmentTypeEnum, 'COSINECURVE', INDETERMINATE) -sinecurve = getattr(IfcAlignmentCantSegmentTypeEnum, 'SINECURVE', INDETERMINATE) -viennesebend = getattr(IfcAlignmentCantSegmentTypeEnum, 'VIENNESEBEND', INDETERMINATE) +constantcant = IfcAlignmentCantSegmentTypeEnum.CONSTANTCANT +lineartransition = IfcAlignmentCantSegmentTypeEnum.LINEARTRANSITION +biquadraticparabola = IfcAlignmentCantSegmentTypeEnum.BIQUADRATICPARABOLA +blosscurve = IfcAlignmentCantSegmentTypeEnum.BLOSSCURVE +cosinecurve = IfcAlignmentCantSegmentTypeEnum.COSINECURVE +sinecurve = IfcAlignmentCantSegmentTypeEnum.SINECURVE +viennesebend = IfcAlignmentCantSegmentTypeEnum.VIENNESEBEND IfcAlignmentHorizontalSegmentTypeEnum = enum_namespace() -line = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'LINE', INDETERMINATE) -circulararc = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CIRCULARARC', INDETERMINATE) -clothoid = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CLOTHOID', INDETERMINATE) -cubicspiral = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CUBICSPIRAL', INDETERMINATE) -biquadraticparabola = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'BIQUADRATICPARABOLA', INDETERMINATE) -blosscurve = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'BLOSSCURVE', INDETERMINATE) -cosinecurve = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'COSINECURVE', INDETERMINATE) -sinecurve = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'SINECURVE', INDETERMINATE) -viennesebend = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'VIENNESEBEND', INDETERMINATE) +line = IfcAlignmentHorizontalSegmentTypeEnum.LINE +circulararc = IfcAlignmentHorizontalSegmentTypeEnum.CIRCULARARC +clothoid = IfcAlignmentHorizontalSegmentTypeEnum.CLOTHOID +cubicspiral = IfcAlignmentHorizontalSegmentTypeEnum.CUBICSPIRAL +biquadraticparabola = IfcAlignmentHorizontalSegmentTypeEnum.BIQUADRATICPARABOLA +blosscurve = IfcAlignmentHorizontalSegmentTypeEnum.BLOSSCURVE +cosinecurve = IfcAlignmentHorizontalSegmentTypeEnum.COSINECURVE +sinecurve = IfcAlignmentHorizontalSegmentTypeEnum.SINECURVE +viennesebend = IfcAlignmentHorizontalSegmentTypeEnum.VIENNESEBEND IfcAlignmentTypeEnum = enum_namespace() -userdefined = getattr(IfcAlignmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAlignmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcAlignmentTypeEnum.USERDEFINED +notdefined = IfcAlignmentTypeEnum.NOTDEFINED IfcAlignmentVerticalSegmentTypeEnum = enum_namespace() -constantgradient = getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CONSTANTGRADIENT', INDETERMINATE) -circulararc = getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CIRCULARARC', INDETERMINATE) -parabolicarc = getattr(IfcAlignmentVerticalSegmentTypeEnum, 'PARABOLICARC', INDETERMINATE) -clothoid = getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CLOTHOID', INDETERMINATE) +constantgradient = IfcAlignmentVerticalSegmentTypeEnum.CONSTANTGRADIENT +circulararc = IfcAlignmentVerticalSegmentTypeEnum.CIRCULARARC +parabolicarc = IfcAlignmentVerticalSegmentTypeEnum.PARABOLICARC +clothoid = IfcAlignmentVerticalSegmentTypeEnum.CLOTHOID IfcAnalysisModelTypeEnum = enum_namespace() -in_plane_loading_2d = getattr(IfcAnalysisModelTypeEnum, 'IN_PLANE_LOADING_2D', INDETERMINATE) -out_plane_loading_2d = getattr(IfcAnalysisModelTypeEnum, 'OUT_PLANE_LOADING_2D', INDETERMINATE) -loading_3d = getattr(IfcAnalysisModelTypeEnum, 'LOADING_3D', INDETERMINATE) -userdefined = getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnalysisModelTypeEnum, 'NOTDEFINED', INDETERMINATE) +in_plane_loading_2d = IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D +out_plane_loading_2d = IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D +loading_3d = IfcAnalysisModelTypeEnum.LOADING_3D +userdefined = IfcAnalysisModelTypeEnum.USERDEFINED +notdefined = IfcAnalysisModelTypeEnum.NOTDEFINED IfcAnalysisTheoryTypeEnum = enum_namespace() -first_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'FIRST_ORDER_THEORY', INDETERMINATE) -second_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'SECOND_ORDER_THEORY', INDETERMINATE) -third_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'THIRD_ORDER_THEORY', INDETERMINATE) -full_nonlinear_theory = getattr(IfcAnalysisTheoryTypeEnum, 'FULL_NONLINEAR_THEORY', INDETERMINATE) -userdefined = getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnalysisTheoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +first_order_theory = IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY +second_order_theory = IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY +third_order_theory = IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY +full_nonlinear_theory = IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY +userdefined = IfcAnalysisTheoryTypeEnum.USERDEFINED +notdefined = IfcAnalysisTheoryTypeEnum.NOTDEFINED IfcAnnotationTypeEnum = enum_namespace() -assumedpoint = getattr(IfcAnnotationTypeEnum, 'ASSUMEDPOINT', INDETERMINATE) -asbuiltarea = getattr(IfcAnnotationTypeEnum, 'ASBUILTAREA', INDETERMINATE) -asbuiltline = getattr(IfcAnnotationTypeEnum, 'ASBUILTLINE', INDETERMINATE) -non_physical_signal = getattr(IfcAnnotationTypeEnum, 'NON_PHYSICAL_SIGNAL', INDETERMINATE) -assumedline = getattr(IfcAnnotationTypeEnum, 'ASSUMEDLINE', INDETERMINATE) -widthevent = getattr(IfcAnnotationTypeEnum, 'WIDTHEVENT', INDETERMINATE) -assumedarea = getattr(IfcAnnotationTypeEnum, 'ASSUMEDAREA', INDETERMINATE) -superelevationevent = getattr(IfcAnnotationTypeEnum, 'SUPERELEVATIONEVENT', INDETERMINATE) -asbuiltpoint = getattr(IfcAnnotationTypeEnum, 'ASBUILTPOINT', INDETERMINATE) -userdefined = getattr(IfcAnnotationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnnotationTypeEnum, 'NOTDEFINED', INDETERMINATE) +assumedpoint = IfcAnnotationTypeEnum.ASSUMEDPOINT +asbuiltarea = IfcAnnotationTypeEnum.ASBUILTAREA +asbuiltline = IfcAnnotationTypeEnum.ASBUILTLINE +non_physical_signal = IfcAnnotationTypeEnum.NON_PHYSICAL_SIGNAL +assumedline = IfcAnnotationTypeEnum.ASSUMEDLINE +widthevent = IfcAnnotationTypeEnum.WIDTHEVENT +assumedarea = IfcAnnotationTypeEnum.ASSUMEDAREA +superelevationevent = IfcAnnotationTypeEnum.SUPERELEVATIONEVENT +asbuiltpoint = IfcAnnotationTypeEnum.ASBUILTPOINT +userdefined = IfcAnnotationTypeEnum.USERDEFINED +notdefined = IfcAnnotationTypeEnum.NOTDEFINED IfcArithmeticOperatorEnum = enum_namespace() -add = getattr(IfcArithmeticOperatorEnum, 'ADD', INDETERMINATE) -divide = getattr(IfcArithmeticOperatorEnum, 'DIVIDE', INDETERMINATE) -multiply = getattr(IfcArithmeticOperatorEnum, 'MULTIPLY', INDETERMINATE) -subtract = getattr(IfcArithmeticOperatorEnum, 'SUBTRACT', INDETERMINATE) +add = IfcArithmeticOperatorEnum.ADD +divide = IfcArithmeticOperatorEnum.DIVIDE +multiply = IfcArithmeticOperatorEnum.MULTIPLY +subtract = IfcArithmeticOperatorEnum.SUBTRACT IfcAssemblyPlaceEnum = enum_namespace() -site = getattr(IfcAssemblyPlaceEnum, 'SITE', INDETERMINATE) -factory = getattr(IfcAssemblyPlaceEnum, 'FACTORY', INDETERMINATE) -notdefined = getattr(IfcAssemblyPlaceEnum, 'NOTDEFINED', INDETERMINATE) +site = IfcAssemblyPlaceEnum.SITE +factory = IfcAssemblyPlaceEnum.FACTORY +notdefined = IfcAssemblyPlaceEnum.NOTDEFINED IfcAudioVisualApplianceTypeEnum = enum_namespace() -amplifier = getattr(IfcAudioVisualApplianceTypeEnum, 'AMPLIFIER', INDETERMINATE) -camera = getattr(IfcAudioVisualApplianceTypeEnum, 'CAMERA', INDETERMINATE) -display = getattr(IfcAudioVisualApplianceTypeEnum, 'DISPLAY', INDETERMINATE) -microphone = getattr(IfcAudioVisualApplianceTypeEnum, 'MICROPHONE', INDETERMINATE) -player = getattr(IfcAudioVisualApplianceTypeEnum, 'PLAYER', INDETERMINATE) -projector = getattr(IfcAudioVisualApplianceTypeEnum, 'PROJECTOR', INDETERMINATE) -receiver = getattr(IfcAudioVisualApplianceTypeEnum, 'RECEIVER', INDETERMINATE) -speaker = getattr(IfcAudioVisualApplianceTypeEnum, 'SPEAKER', INDETERMINATE) -switcher = getattr(IfcAudioVisualApplianceTypeEnum, 'SWITCHER', INDETERMINATE) -telephone = getattr(IfcAudioVisualApplianceTypeEnum, 'TELEPHONE', INDETERMINATE) -tuner = getattr(IfcAudioVisualApplianceTypeEnum, 'TUNER', INDETERMINATE) -railway_communication_terminal = getattr(IfcAudioVisualApplianceTypeEnum, 'RAILWAY_COMMUNICATION_TERMINAL', INDETERMINATE) -userdefined = getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAudioVisualApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +amplifier = IfcAudioVisualApplianceTypeEnum.AMPLIFIER +camera = IfcAudioVisualApplianceTypeEnum.CAMERA +display = IfcAudioVisualApplianceTypeEnum.DISPLAY +microphone = IfcAudioVisualApplianceTypeEnum.MICROPHONE +player = IfcAudioVisualApplianceTypeEnum.PLAYER +projector = IfcAudioVisualApplianceTypeEnum.PROJECTOR +receiver = IfcAudioVisualApplianceTypeEnum.RECEIVER +speaker = IfcAudioVisualApplianceTypeEnum.SPEAKER +switcher = IfcAudioVisualApplianceTypeEnum.SWITCHER +telephone = IfcAudioVisualApplianceTypeEnum.TELEPHONE +tuner = IfcAudioVisualApplianceTypeEnum.TUNER +railway_communication_terminal = IfcAudioVisualApplianceTypeEnum.RAILWAY_COMMUNICATION_TERMINAL +userdefined = IfcAudioVisualApplianceTypeEnum.USERDEFINED +notdefined = IfcAudioVisualApplianceTypeEnum.NOTDEFINED IfcBSplineCurveForm = enum_namespace() -polyline_form = getattr(IfcBSplineCurveForm, 'POLYLINE_FORM', INDETERMINATE) -circular_arc = getattr(IfcBSplineCurveForm, 'CIRCULAR_ARC', INDETERMINATE) -elliptic_arc = getattr(IfcBSplineCurveForm, 'ELLIPTIC_ARC', INDETERMINATE) -parabolic_arc = getattr(IfcBSplineCurveForm, 'PARABOLIC_ARC', INDETERMINATE) -hyperbolic_arc = getattr(IfcBSplineCurveForm, 'HYPERBOLIC_ARC', INDETERMINATE) -unspecified = getattr(IfcBSplineCurveForm, 'UNSPECIFIED', INDETERMINATE) +polyline_form = IfcBSplineCurveForm.POLYLINE_FORM +circular_arc = IfcBSplineCurveForm.CIRCULAR_ARC +elliptic_arc = IfcBSplineCurveForm.ELLIPTIC_ARC +parabolic_arc = IfcBSplineCurveForm.PARABOLIC_ARC +hyperbolic_arc = IfcBSplineCurveForm.HYPERBOLIC_ARC +unspecified = IfcBSplineCurveForm.UNSPECIFIED IfcBSplineSurfaceForm = enum_namespace() -plane_surf = getattr(IfcBSplineSurfaceForm, 'PLANE_SURF', INDETERMINATE) -cylindrical_surf = getattr(IfcBSplineSurfaceForm, 'CYLINDRICAL_SURF', INDETERMINATE) -conical_surf = getattr(IfcBSplineSurfaceForm, 'CONICAL_SURF', INDETERMINATE) -spherical_surf = getattr(IfcBSplineSurfaceForm, 'SPHERICAL_SURF', INDETERMINATE) -toroidal_surf = getattr(IfcBSplineSurfaceForm, 'TOROIDAL_SURF', INDETERMINATE) -surf_of_revolution = getattr(IfcBSplineSurfaceForm, 'SURF_OF_REVOLUTION', INDETERMINATE) -ruled_surf = getattr(IfcBSplineSurfaceForm, 'RULED_SURF', INDETERMINATE) -generalised_cone = getattr(IfcBSplineSurfaceForm, 'GENERALISED_CONE', INDETERMINATE) -quadric_surf = getattr(IfcBSplineSurfaceForm, 'QUADRIC_SURF', INDETERMINATE) -surf_of_linear_extrusion = getattr(IfcBSplineSurfaceForm, 'SURF_OF_LINEAR_EXTRUSION', INDETERMINATE) -unspecified = getattr(IfcBSplineSurfaceForm, 'UNSPECIFIED', INDETERMINATE) +plane_surf = IfcBSplineSurfaceForm.PLANE_SURF +cylindrical_surf = IfcBSplineSurfaceForm.CYLINDRICAL_SURF +conical_surf = IfcBSplineSurfaceForm.CONICAL_SURF +spherical_surf = IfcBSplineSurfaceForm.SPHERICAL_SURF +toroidal_surf = IfcBSplineSurfaceForm.TOROIDAL_SURF +surf_of_revolution = IfcBSplineSurfaceForm.SURF_OF_REVOLUTION +ruled_surf = IfcBSplineSurfaceForm.RULED_SURF +generalised_cone = IfcBSplineSurfaceForm.GENERALISED_CONE +quadric_surf = IfcBSplineSurfaceForm.QUADRIC_SURF +surf_of_linear_extrusion = IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION +unspecified = IfcBSplineSurfaceForm.UNSPECIFIED IfcBeamTypeEnum = enum_namespace() -beam = getattr(IfcBeamTypeEnum, 'BEAM', INDETERMINATE) -joist = getattr(IfcBeamTypeEnum, 'JOIST', INDETERMINATE) -hollowcore = getattr(IfcBeamTypeEnum, 'HOLLOWCORE', INDETERMINATE) -lintel = getattr(IfcBeamTypeEnum, 'LINTEL', INDETERMINATE) -spandrel = getattr(IfcBeamTypeEnum, 'SPANDREL', INDETERMINATE) -t_beam = getattr(IfcBeamTypeEnum, 'T_BEAM', INDETERMINATE) -girder_segment = getattr(IfcBeamTypeEnum, 'GIRDER_SEGMENT', INDETERMINATE) -diaphragm = getattr(IfcBeamTypeEnum, 'DIAPHRAGM', INDETERMINATE) -piercap = getattr(IfcBeamTypeEnum, 'PIERCAP', INDETERMINATE) -hatstone = getattr(IfcBeamTypeEnum, 'HATSTONE', INDETERMINATE) -cornice = getattr(IfcBeamTypeEnum, 'CORNICE', INDETERMINATE) -edgebeam = getattr(IfcBeamTypeEnum, 'EDGEBEAM', INDETERMINATE) -userdefined = getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +beam = IfcBeamTypeEnum.BEAM +joist = IfcBeamTypeEnum.JOIST +hollowcore = IfcBeamTypeEnum.HOLLOWCORE +lintel = IfcBeamTypeEnum.LINTEL +spandrel = IfcBeamTypeEnum.SPANDREL +t_beam = IfcBeamTypeEnum.T_BEAM +girder_segment = IfcBeamTypeEnum.GIRDER_SEGMENT +diaphragm = IfcBeamTypeEnum.DIAPHRAGM +piercap = IfcBeamTypeEnum.PIERCAP +hatstone = IfcBeamTypeEnum.HATSTONE +cornice = IfcBeamTypeEnum.CORNICE +edgebeam = IfcBeamTypeEnum.EDGEBEAM +userdefined = IfcBeamTypeEnum.USERDEFINED +notdefined = IfcBeamTypeEnum.NOTDEFINED IfcBearingTypeDisplacementEnum = enum_namespace() -fixed_movement = getattr(IfcBearingTypeDisplacementEnum, 'FIXED_MOVEMENT', INDETERMINATE) -guided_longitudinal = getattr(IfcBearingTypeDisplacementEnum, 'GUIDED_LONGITUDINAL', INDETERMINATE) -guided_transversal = getattr(IfcBearingTypeDisplacementEnum, 'GUIDED_TRANSVERSAL', INDETERMINATE) -free_movement = getattr(IfcBearingTypeDisplacementEnum, 'FREE_MOVEMENT', INDETERMINATE) -notdefined = getattr(IfcBearingTypeDisplacementEnum, 'NOTDEFINED', INDETERMINATE) +fixed_movement = IfcBearingTypeDisplacementEnum.FIXED_MOVEMENT +guided_longitudinal = IfcBearingTypeDisplacementEnum.GUIDED_LONGITUDINAL +guided_transversal = IfcBearingTypeDisplacementEnum.GUIDED_TRANSVERSAL +free_movement = IfcBearingTypeDisplacementEnum.FREE_MOVEMENT +notdefined = IfcBearingTypeDisplacementEnum.NOTDEFINED IfcBearingTypeEnum = enum_namespace() -cylindrical = getattr(IfcBearingTypeEnum, 'CYLINDRICAL', INDETERMINATE) -spherical = getattr(IfcBearingTypeEnum, 'SPHERICAL', INDETERMINATE) -elastomeric = getattr(IfcBearingTypeEnum, 'ELASTOMERIC', INDETERMINATE) -pot = getattr(IfcBearingTypeEnum, 'POT', INDETERMINATE) -guide = getattr(IfcBearingTypeEnum, 'GUIDE', INDETERMINATE) -rocker = getattr(IfcBearingTypeEnum, 'ROCKER', INDETERMINATE) -roller = getattr(IfcBearingTypeEnum, 'ROLLER', INDETERMINATE) -disk = getattr(IfcBearingTypeEnum, 'DISK', INDETERMINATE) -userdefined = getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBearingTypeEnum, 'NOTDEFINED', INDETERMINATE) +cylindrical = IfcBearingTypeEnum.CYLINDRICAL +spherical = IfcBearingTypeEnum.SPHERICAL +elastomeric = IfcBearingTypeEnum.ELASTOMERIC +pot = IfcBearingTypeEnum.POT +guide = IfcBearingTypeEnum.GUIDE +rocker = IfcBearingTypeEnum.ROCKER +roller = IfcBearingTypeEnum.ROLLER +disk = IfcBearingTypeEnum.DISK +userdefined = IfcBearingTypeEnum.USERDEFINED +notdefined = IfcBearingTypeEnum.NOTDEFINED IfcBenchmarkEnum = enum_namespace() -greaterthan = getattr(IfcBenchmarkEnum, 'GREATERTHAN', INDETERMINATE) -greaterthanorequalto = getattr(IfcBenchmarkEnum, 'GREATERTHANOREQUALTO', INDETERMINATE) -lessthan = getattr(IfcBenchmarkEnum, 'LESSTHAN', INDETERMINATE) -lessthanorequalto = getattr(IfcBenchmarkEnum, 'LESSTHANOREQUALTO', INDETERMINATE) -equalto = getattr(IfcBenchmarkEnum, 'EQUALTO', INDETERMINATE) -notequalto = getattr(IfcBenchmarkEnum, 'NOTEQUALTO', INDETERMINATE) -includes = getattr(IfcBenchmarkEnum, 'INCLUDES', INDETERMINATE) -notincludes = getattr(IfcBenchmarkEnum, 'NOTINCLUDES', INDETERMINATE) -includedin = getattr(IfcBenchmarkEnum, 'INCLUDEDIN', INDETERMINATE) -notincludedin = getattr(IfcBenchmarkEnum, 'NOTINCLUDEDIN', INDETERMINATE) +greaterthan = IfcBenchmarkEnum.GREATERTHAN +greaterthanorequalto = IfcBenchmarkEnum.GREATERTHANOREQUALTO +lessthan = IfcBenchmarkEnum.LESSTHAN +lessthanorequalto = IfcBenchmarkEnum.LESSTHANOREQUALTO +equalto = IfcBenchmarkEnum.EQUALTO +notequalto = IfcBenchmarkEnum.NOTEQUALTO +includes = IfcBenchmarkEnum.INCLUDES +notincludes = IfcBenchmarkEnum.NOTINCLUDES +includedin = IfcBenchmarkEnum.INCLUDEDIN +notincludedin = IfcBenchmarkEnum.NOTINCLUDEDIN IfcBoilerTypeEnum = enum_namespace() -water = getattr(IfcBoilerTypeEnum, 'WATER', INDETERMINATE) -steam = getattr(IfcBoilerTypeEnum, 'STEAM', INDETERMINATE) -userdefined = getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBoilerTypeEnum, 'NOTDEFINED', INDETERMINATE) +water = IfcBoilerTypeEnum.WATER +steam = IfcBoilerTypeEnum.STEAM +userdefined = IfcBoilerTypeEnum.USERDEFINED +notdefined = IfcBoilerTypeEnum.NOTDEFINED IfcBooleanOperator = enum_namespace() -union = getattr(IfcBooleanOperator, 'UNION', INDETERMINATE) -intersection = getattr(IfcBooleanOperator, 'INTERSECTION', INDETERMINATE) -difference = getattr(IfcBooleanOperator, 'DIFFERENCE', INDETERMINATE) +union = IfcBooleanOperator.UNION +intersection = IfcBooleanOperator.INTERSECTION +difference = IfcBooleanOperator.DIFFERENCE IfcBridgePartTypeEnum = enum_namespace() -abutment = getattr(IfcBridgePartTypeEnum, 'ABUTMENT', INDETERMINATE) -deck = getattr(IfcBridgePartTypeEnum, 'DECK', INDETERMINATE) -deck_segment = getattr(IfcBridgePartTypeEnum, 'DECK_SEGMENT', INDETERMINATE) -foundation = getattr(IfcBridgePartTypeEnum, 'FOUNDATION', INDETERMINATE) -pier = getattr(IfcBridgePartTypeEnum, 'PIER', INDETERMINATE) -pier_segment = getattr(IfcBridgePartTypeEnum, 'PIER_SEGMENT', INDETERMINATE) -pylon = getattr(IfcBridgePartTypeEnum, 'PYLON', INDETERMINATE) -substructure = getattr(IfcBridgePartTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -superstructure = getattr(IfcBridgePartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -surfacestructure = getattr(IfcBridgePartTypeEnum, 'SURFACESTRUCTURE', INDETERMINATE) -userdefined = getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBridgePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +abutment = IfcBridgePartTypeEnum.ABUTMENT +deck = IfcBridgePartTypeEnum.DECK +deck_segment = IfcBridgePartTypeEnum.DECK_SEGMENT +foundation = IfcBridgePartTypeEnum.FOUNDATION +pier = IfcBridgePartTypeEnum.PIER +pier_segment = IfcBridgePartTypeEnum.PIER_SEGMENT +pylon = IfcBridgePartTypeEnum.PYLON +substructure = IfcBridgePartTypeEnum.SUBSTRUCTURE +superstructure = IfcBridgePartTypeEnum.SUPERSTRUCTURE +surfacestructure = IfcBridgePartTypeEnum.SURFACESTRUCTURE +userdefined = IfcBridgePartTypeEnum.USERDEFINED +notdefined = IfcBridgePartTypeEnum.NOTDEFINED IfcBridgeTypeEnum = enum_namespace() -arched = getattr(IfcBridgeTypeEnum, 'ARCHED', INDETERMINATE) -cable_stayed = getattr(IfcBridgeTypeEnum, 'CABLE_STAYED', INDETERMINATE) -cantilever = getattr(IfcBridgeTypeEnum, 'CANTILEVER', INDETERMINATE) -culvert = getattr(IfcBridgeTypeEnum, 'CULVERT', INDETERMINATE) -framework = getattr(IfcBridgeTypeEnum, 'FRAMEWORK', INDETERMINATE) -girder = getattr(IfcBridgeTypeEnum, 'GIRDER', INDETERMINATE) -suspension = getattr(IfcBridgeTypeEnum, 'SUSPENSION', INDETERMINATE) -truss = getattr(IfcBridgeTypeEnum, 'TRUSS', INDETERMINATE) -userdefined = getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBridgeTypeEnum, 'NOTDEFINED', INDETERMINATE) +arched = IfcBridgeTypeEnum.ARCHED +cable_stayed = IfcBridgeTypeEnum.CABLE_STAYED +cantilever = IfcBridgeTypeEnum.CANTILEVER +culvert = IfcBridgeTypeEnum.CULVERT +framework = IfcBridgeTypeEnum.FRAMEWORK +girder = IfcBridgeTypeEnum.GIRDER +suspension = IfcBridgeTypeEnum.SUSPENSION +truss = IfcBridgeTypeEnum.TRUSS +userdefined = IfcBridgeTypeEnum.USERDEFINED +notdefined = IfcBridgeTypeEnum.NOTDEFINED IfcBuildingElementPartTypeEnum = enum_namespace() -insulation = getattr(IfcBuildingElementPartTypeEnum, 'INSULATION', INDETERMINATE) -precastpanel = getattr(IfcBuildingElementPartTypeEnum, 'PRECASTPANEL', INDETERMINATE) -apron = getattr(IfcBuildingElementPartTypeEnum, 'APRON', INDETERMINATE) -armourunit = getattr(IfcBuildingElementPartTypeEnum, 'ARMOURUNIT', INDETERMINATE) -safetycage = getattr(IfcBuildingElementPartTypeEnum, 'SAFETYCAGE', INDETERMINATE) -userdefined = getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingElementPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +insulation = IfcBuildingElementPartTypeEnum.INSULATION +precastpanel = IfcBuildingElementPartTypeEnum.PRECASTPANEL +apron = IfcBuildingElementPartTypeEnum.APRON +armourunit = IfcBuildingElementPartTypeEnum.ARMOURUNIT +safetycage = IfcBuildingElementPartTypeEnum.SAFETYCAGE +userdefined = IfcBuildingElementPartTypeEnum.USERDEFINED +notdefined = IfcBuildingElementPartTypeEnum.NOTDEFINED IfcBuildingElementProxyTypeEnum = enum_namespace() -complex = getattr(IfcBuildingElementProxyTypeEnum, 'COMPLEX', INDETERMINATE) -element = getattr(IfcBuildingElementProxyTypeEnum, 'ELEMENT', INDETERMINATE) -partial = getattr(IfcBuildingElementProxyTypeEnum, 'PARTIAL', INDETERMINATE) -provisionforvoid = getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORVOID', INDETERMINATE) -provisionforspace = getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORSPACE', INDETERMINATE) -userdefined = getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingElementProxyTypeEnum, 'NOTDEFINED', INDETERMINATE) +complex = IfcBuildingElementProxyTypeEnum.COMPLEX +element = IfcBuildingElementProxyTypeEnum.ELEMENT +partial = IfcBuildingElementProxyTypeEnum.PARTIAL +provisionforvoid = IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID +provisionforspace = IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE +userdefined = IfcBuildingElementProxyTypeEnum.USERDEFINED +notdefined = IfcBuildingElementProxyTypeEnum.NOTDEFINED IfcBuildingSystemTypeEnum = enum_namespace() -fenestration = getattr(IfcBuildingSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = getattr(IfcBuildingSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = getattr(IfcBuildingSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -outershell = getattr(IfcBuildingSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -shading = getattr(IfcBuildingSystemTypeEnum, 'SHADING', INDETERMINATE) -transport = getattr(IfcBuildingSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -reinforcing = getattr(IfcBuildingSystemTypeEnum, 'REINFORCING', INDETERMINATE) -prestressing = getattr(IfcBuildingSystemTypeEnum, 'PRESTRESSING', INDETERMINATE) -erosionprevention = getattr(IfcBuildingSystemTypeEnum, 'EROSIONPREVENTION', INDETERMINATE) -userdefined = getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +fenestration = IfcBuildingSystemTypeEnum.FENESTRATION +foundation = IfcBuildingSystemTypeEnum.FOUNDATION +loadbearing = IfcBuildingSystemTypeEnum.LOADBEARING +outershell = IfcBuildingSystemTypeEnum.OUTERSHELL +shading = IfcBuildingSystemTypeEnum.SHADING +transport = IfcBuildingSystemTypeEnum.TRANSPORT +reinforcing = IfcBuildingSystemTypeEnum.REINFORCING +prestressing = IfcBuildingSystemTypeEnum.PRESTRESSING +erosionprevention = IfcBuildingSystemTypeEnum.EROSIONPREVENTION +userdefined = IfcBuildingSystemTypeEnum.USERDEFINED +notdefined = IfcBuildingSystemTypeEnum.NOTDEFINED IfcBuiltSystemTypeEnum = enum_namespace() -reinforcing = getattr(IfcBuiltSystemTypeEnum, 'REINFORCING', INDETERMINATE) -mooring = getattr(IfcBuiltSystemTypeEnum, 'MOORING', INDETERMINATE) -outershell = getattr(IfcBuiltSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -trackcircuit = getattr(IfcBuiltSystemTypeEnum, 'TRACKCIRCUIT', INDETERMINATE) -erosionprevention = getattr(IfcBuiltSystemTypeEnum, 'EROSIONPREVENTION', INDETERMINATE) -foundation = getattr(IfcBuiltSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = getattr(IfcBuiltSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -shading = getattr(IfcBuiltSystemTypeEnum, 'SHADING', INDETERMINATE) -fenestration = getattr(IfcBuiltSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -mooringsystem = getattr(IfcBuiltSystemTypeEnum, 'MOORINGSYSTEM', INDETERMINATE) -transport = getattr(IfcBuiltSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -prestressing = getattr(IfcBuiltSystemTypeEnum, 'PRESTRESSING', INDETERMINATE) -userdefined = getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuiltSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +reinforcing = IfcBuiltSystemTypeEnum.REINFORCING +mooring = IfcBuiltSystemTypeEnum.MOORING +outershell = IfcBuiltSystemTypeEnum.OUTERSHELL +trackcircuit = IfcBuiltSystemTypeEnum.TRACKCIRCUIT +erosionprevention = IfcBuiltSystemTypeEnum.EROSIONPREVENTION +foundation = IfcBuiltSystemTypeEnum.FOUNDATION +loadbearing = IfcBuiltSystemTypeEnum.LOADBEARING +shading = IfcBuiltSystemTypeEnum.SHADING +fenestration = IfcBuiltSystemTypeEnum.FENESTRATION +mooringsystem = IfcBuiltSystemTypeEnum.MOORINGSYSTEM +transport = IfcBuiltSystemTypeEnum.TRANSPORT +prestressing = IfcBuiltSystemTypeEnum.PRESTRESSING +userdefined = IfcBuiltSystemTypeEnum.USERDEFINED +notdefined = IfcBuiltSystemTypeEnum.NOTDEFINED IfcBurnerTypeEnum = enum_namespace() -userdefined = getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBurnerTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcBurnerTypeEnum.USERDEFINED +notdefined = IfcBurnerTypeEnum.NOTDEFINED IfcCableCarrierFittingTypeEnum = enum_namespace() -bend = getattr(IfcCableCarrierFittingTypeEnum, 'BEND', INDETERMINATE) -cross = getattr(IfcCableCarrierFittingTypeEnum, 'CROSS', INDETERMINATE) -reducer = getattr(IfcCableCarrierFittingTypeEnum, 'REDUCER', INDETERMINATE) -tee = getattr(IfcCableCarrierFittingTypeEnum, 'TEE', INDETERMINATE) -userdefined = getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableCarrierFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcCableCarrierFittingTypeEnum.BEND +cross = IfcCableCarrierFittingTypeEnum.CROSS +reducer = IfcCableCarrierFittingTypeEnum.REDUCER +tee = IfcCableCarrierFittingTypeEnum.TEE +userdefined = IfcCableCarrierFittingTypeEnum.USERDEFINED +notdefined = IfcCableCarrierFittingTypeEnum.NOTDEFINED IfcCableCarrierSegmentTypeEnum = enum_namespace() -cableladdersegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLELADDERSEGMENT', INDETERMINATE) -cabletraysegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRAYSEGMENT', INDETERMINATE) -cabletrunkingsegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRUNKINGSEGMENT', INDETERMINATE) -conduitsegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CONDUITSEGMENT', INDETERMINATE) -cablebracket = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLEBRACKET', INDETERMINATE) -catenarywire = getattr(IfcCableCarrierSegmentTypeEnum, 'CATENARYWIRE', INDETERMINATE) -dropper = getattr(IfcCableCarrierSegmentTypeEnum, 'DROPPER', INDETERMINATE) -userdefined = getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableCarrierSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +cableladdersegment = IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT +cabletraysegment = IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT +cabletrunkingsegment = IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT +conduitsegment = IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT +cablebracket = IfcCableCarrierSegmentTypeEnum.CABLEBRACKET +catenarywire = IfcCableCarrierSegmentTypeEnum.CATENARYWIRE +dropper = IfcCableCarrierSegmentTypeEnum.DROPPER +userdefined = IfcCableCarrierSegmentTypeEnum.USERDEFINED +notdefined = IfcCableCarrierSegmentTypeEnum.NOTDEFINED IfcCableFittingTypeEnum = enum_namespace() -connector = getattr(IfcCableFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcCableFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcCableFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcCableFittingTypeEnum, 'JUNCTION', INDETERMINATE) -transition = getattr(IfcCableFittingTypeEnum, 'TRANSITION', INDETERMINATE) -fanout = getattr(IfcCableFittingTypeEnum, 'FANOUT', INDETERMINATE) -userdefined = getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +connector = IfcCableFittingTypeEnum.CONNECTOR +entry = IfcCableFittingTypeEnum.ENTRY +exit = IfcCableFittingTypeEnum.EXIT +junction = IfcCableFittingTypeEnum.JUNCTION +transition = IfcCableFittingTypeEnum.TRANSITION +fanout = IfcCableFittingTypeEnum.FANOUT +userdefined = IfcCableFittingTypeEnum.USERDEFINED +notdefined = IfcCableFittingTypeEnum.NOTDEFINED IfcCableSegmentTypeEnum = enum_namespace() -busbarsegment = getattr(IfcCableSegmentTypeEnum, 'BUSBARSEGMENT', INDETERMINATE) -cablesegment = getattr(IfcCableSegmentTypeEnum, 'CABLESEGMENT', INDETERMINATE) -conductorsegment = getattr(IfcCableSegmentTypeEnum, 'CONDUCTORSEGMENT', INDETERMINATE) -coresegment = getattr(IfcCableSegmentTypeEnum, 'CORESEGMENT', INDETERMINATE) -contactwiresegment = getattr(IfcCableSegmentTypeEnum, 'CONTACTWIRESEGMENT', INDETERMINATE) -fibersegment = getattr(IfcCableSegmentTypeEnum, 'FIBERSEGMENT', INDETERMINATE) -fibertube = getattr(IfcCableSegmentTypeEnum, 'FIBERTUBE', INDETERMINATE) -opticalcablesegment = getattr(IfcCableSegmentTypeEnum, 'OPTICALCABLESEGMENT', INDETERMINATE) -stitchwire = getattr(IfcCableSegmentTypeEnum, 'STITCHWIRE', INDETERMINATE) -wirepairsegment = getattr(IfcCableSegmentTypeEnum, 'WIREPAIRSEGMENT', INDETERMINATE) -userdefined = getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +busbarsegment = IfcCableSegmentTypeEnum.BUSBARSEGMENT +cablesegment = IfcCableSegmentTypeEnum.CABLESEGMENT +conductorsegment = IfcCableSegmentTypeEnum.CONDUCTORSEGMENT +coresegment = IfcCableSegmentTypeEnum.CORESEGMENT +contactwiresegment = IfcCableSegmentTypeEnum.CONTACTWIRESEGMENT +fibersegment = IfcCableSegmentTypeEnum.FIBERSEGMENT +fibertube = IfcCableSegmentTypeEnum.FIBERTUBE +opticalcablesegment = IfcCableSegmentTypeEnum.OPTICALCABLESEGMENT +stitchwire = IfcCableSegmentTypeEnum.STITCHWIRE +wirepairsegment = IfcCableSegmentTypeEnum.WIREPAIRSEGMENT +userdefined = IfcCableSegmentTypeEnum.USERDEFINED +notdefined = IfcCableSegmentTypeEnum.NOTDEFINED IfcCaissonFoundationTypeEnum = enum_namespace() -well = getattr(IfcCaissonFoundationTypeEnum, 'WELL', INDETERMINATE) -caisson = getattr(IfcCaissonFoundationTypeEnum, 'CAISSON', INDETERMINATE) -userdefined = getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCaissonFoundationTypeEnum, 'NOTDEFINED', INDETERMINATE) +well = IfcCaissonFoundationTypeEnum.WELL +caisson = IfcCaissonFoundationTypeEnum.CAISSON +userdefined = IfcCaissonFoundationTypeEnum.USERDEFINED +notdefined = IfcCaissonFoundationTypeEnum.NOTDEFINED IfcChangeActionEnum = enum_namespace() -nochange = getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE) -modified = getattr(IfcChangeActionEnum, 'MODIFIED', INDETERMINATE) -added = getattr(IfcChangeActionEnum, 'ADDED', INDETERMINATE) -deleted = getattr(IfcChangeActionEnum, 'DELETED', INDETERMINATE) -notdefined = getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) +nochange = IfcChangeActionEnum.NOCHANGE +modified = IfcChangeActionEnum.MODIFIED +added = IfcChangeActionEnum.ADDED +deleted = IfcChangeActionEnum.DELETED +notdefined = IfcChangeActionEnum.NOTDEFINED IfcChillerTypeEnum = enum_namespace() -aircooled = getattr(IfcChillerTypeEnum, 'AIRCOOLED', INDETERMINATE) -watercooled = getattr(IfcChillerTypeEnum, 'WATERCOOLED', INDETERMINATE) -heatrecovery = getattr(IfcChillerTypeEnum, 'HEATRECOVERY', INDETERMINATE) -userdefined = getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcChillerTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcChillerTypeEnum.AIRCOOLED +watercooled = IfcChillerTypeEnum.WATERCOOLED +heatrecovery = IfcChillerTypeEnum.HEATRECOVERY +userdefined = IfcChillerTypeEnum.USERDEFINED +notdefined = IfcChillerTypeEnum.NOTDEFINED IfcChimneyTypeEnum = enum_namespace() -userdefined = getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcChimneyTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcChimneyTypeEnum.USERDEFINED +notdefined = IfcChimneyTypeEnum.NOTDEFINED IfcCoilTypeEnum = enum_namespace() -dxcoolingcoil = getattr(IfcCoilTypeEnum, 'DXCOOLINGCOIL', INDETERMINATE) -electricheatingcoil = getattr(IfcCoilTypeEnum, 'ELECTRICHEATINGCOIL', INDETERMINATE) -gasheatingcoil = getattr(IfcCoilTypeEnum, 'GASHEATINGCOIL', INDETERMINATE) -hydroniccoil = getattr(IfcCoilTypeEnum, 'HYDRONICCOIL', INDETERMINATE) -steamheatingcoil = getattr(IfcCoilTypeEnum, 'STEAMHEATINGCOIL', INDETERMINATE) -watercoolingcoil = getattr(IfcCoilTypeEnum, 'WATERCOOLINGCOIL', INDETERMINATE) -waterheatingcoil = getattr(IfcCoilTypeEnum, 'WATERHEATINGCOIL', INDETERMINATE) -userdefined = getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dxcoolingcoil = IfcCoilTypeEnum.DXCOOLINGCOIL +electricheatingcoil = IfcCoilTypeEnum.ELECTRICHEATINGCOIL +gasheatingcoil = IfcCoilTypeEnum.GASHEATINGCOIL +hydroniccoil = IfcCoilTypeEnum.HYDRONICCOIL +steamheatingcoil = IfcCoilTypeEnum.STEAMHEATINGCOIL +watercoolingcoil = IfcCoilTypeEnum.WATERCOOLINGCOIL +waterheatingcoil = IfcCoilTypeEnum.WATERHEATINGCOIL +userdefined = IfcCoilTypeEnum.USERDEFINED +notdefined = IfcCoilTypeEnum.NOTDEFINED IfcColumnTypeEnum = enum_namespace() -column = getattr(IfcColumnTypeEnum, 'COLUMN', INDETERMINATE) -pilaster = getattr(IfcColumnTypeEnum, 'PILASTER', INDETERMINATE) -pierstem = getattr(IfcColumnTypeEnum, 'PIERSTEM', INDETERMINATE) -pierstem_segment = getattr(IfcColumnTypeEnum, 'PIERSTEM_SEGMENT', INDETERMINATE) -standcolumn = getattr(IfcColumnTypeEnum, 'STANDCOLUMN', INDETERMINATE) -userdefined = getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcColumnTypeEnum, 'NOTDEFINED', INDETERMINATE) +column = IfcColumnTypeEnum.COLUMN +pilaster = IfcColumnTypeEnum.PILASTER +pierstem = IfcColumnTypeEnum.PIERSTEM +pierstem_segment = IfcColumnTypeEnum.PIERSTEM_SEGMENT +standcolumn = IfcColumnTypeEnum.STANDCOLUMN +userdefined = IfcColumnTypeEnum.USERDEFINED +notdefined = IfcColumnTypeEnum.NOTDEFINED IfcCommunicationsApplianceTypeEnum = enum_namespace() -antenna = getattr(IfcCommunicationsApplianceTypeEnum, 'ANTENNA', INDETERMINATE) -computer = getattr(IfcCommunicationsApplianceTypeEnum, 'COMPUTER', INDETERMINATE) -fax = getattr(IfcCommunicationsApplianceTypeEnum, 'FAX', INDETERMINATE) -gateway = getattr(IfcCommunicationsApplianceTypeEnum, 'GATEWAY', INDETERMINATE) -modem = getattr(IfcCommunicationsApplianceTypeEnum, 'MODEM', INDETERMINATE) -networkappliance = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKAPPLIANCE', INDETERMINATE) -networkbridge = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKBRIDGE', INDETERMINATE) -networkhub = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKHUB', INDETERMINATE) -printer = getattr(IfcCommunicationsApplianceTypeEnum, 'PRINTER', INDETERMINATE) -repeater = getattr(IfcCommunicationsApplianceTypeEnum, 'REPEATER', INDETERMINATE) -router = getattr(IfcCommunicationsApplianceTypeEnum, 'ROUTER', INDETERMINATE) -scanner = getattr(IfcCommunicationsApplianceTypeEnum, 'SCANNER', INDETERMINATE) -automaton = getattr(IfcCommunicationsApplianceTypeEnum, 'AUTOMATON', INDETERMINATE) -intelligent_peripheral = getattr(IfcCommunicationsApplianceTypeEnum, 'INTELLIGENT_PERIPHERAL', INDETERMINATE) -ip_network_equipment = getattr(IfcCommunicationsApplianceTypeEnum, 'IP_NETWORK_EQUIPMENT', INDETERMINATE) -optical_network_unit = getattr(IfcCommunicationsApplianceTypeEnum, 'OPTICAL_NETWORK_UNIT', INDETERMINATE) -telecommand = getattr(IfcCommunicationsApplianceTypeEnum, 'TELECOMMAND', INDETERMINATE) -telephonyexchange = getattr(IfcCommunicationsApplianceTypeEnum, 'TELEPHONYEXCHANGE', INDETERMINATE) -transitioncomponent = getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSITIONCOMPONENT', INDETERMINATE) -transponder = getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPONDER', INDETERMINATE) -transportequipment = getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPORTEQUIPMENT', INDETERMINATE) -userdefined = getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +antenna = IfcCommunicationsApplianceTypeEnum.ANTENNA +computer = IfcCommunicationsApplianceTypeEnum.COMPUTER +fax = IfcCommunicationsApplianceTypeEnum.FAX +gateway = IfcCommunicationsApplianceTypeEnum.GATEWAY +modem = IfcCommunicationsApplianceTypeEnum.MODEM +networkappliance = IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE +networkbridge = IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE +networkhub = IfcCommunicationsApplianceTypeEnum.NETWORKHUB +printer = IfcCommunicationsApplianceTypeEnum.PRINTER +repeater = IfcCommunicationsApplianceTypeEnum.REPEATER +router = IfcCommunicationsApplianceTypeEnum.ROUTER +scanner = IfcCommunicationsApplianceTypeEnum.SCANNER +automaton = IfcCommunicationsApplianceTypeEnum.AUTOMATON +intelligent_peripheral = IfcCommunicationsApplianceTypeEnum.INTELLIGENT_PERIPHERAL +ip_network_equipment = IfcCommunicationsApplianceTypeEnum.IP_NETWORK_EQUIPMENT +optical_network_unit = IfcCommunicationsApplianceTypeEnum.OPTICAL_NETWORK_UNIT +telecommand = IfcCommunicationsApplianceTypeEnum.TELECOMMAND +telephonyexchange = IfcCommunicationsApplianceTypeEnum.TELEPHONYEXCHANGE +transitioncomponent = IfcCommunicationsApplianceTypeEnum.TRANSITIONCOMPONENT +transponder = IfcCommunicationsApplianceTypeEnum.TRANSPONDER +transportequipment = IfcCommunicationsApplianceTypeEnum.TRANSPORTEQUIPMENT +userdefined = IfcCommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcCommunicationsApplianceTypeEnum.NOTDEFINED IfcComplexPropertyTemplateTypeEnum = enum_namespace() -p_complex = getattr(IfcComplexPropertyTemplateTypeEnum, 'P_COMPLEX', INDETERMINATE) -q_complex = getattr(IfcComplexPropertyTemplateTypeEnum, 'Q_COMPLEX', INDETERMINATE) +p_complex = IfcComplexPropertyTemplateTypeEnum.P_COMPLEX +q_complex = IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX IfcCompressorTypeEnum = enum_namespace() -dynamic = getattr(IfcCompressorTypeEnum, 'DYNAMIC', INDETERMINATE) -reciprocating = getattr(IfcCompressorTypeEnum, 'RECIPROCATING', INDETERMINATE) -rotary = getattr(IfcCompressorTypeEnum, 'ROTARY', INDETERMINATE) -scroll = getattr(IfcCompressorTypeEnum, 'SCROLL', INDETERMINATE) -trochoidal = getattr(IfcCompressorTypeEnum, 'TROCHOIDAL', INDETERMINATE) -singlestage = getattr(IfcCompressorTypeEnum, 'SINGLESTAGE', INDETERMINATE) -booster = getattr(IfcCompressorTypeEnum, 'BOOSTER', INDETERMINATE) -opentype = getattr(IfcCompressorTypeEnum, 'OPENTYPE', INDETERMINATE) -hermetic = getattr(IfcCompressorTypeEnum, 'HERMETIC', INDETERMINATE) -semihermetic = getattr(IfcCompressorTypeEnum, 'SEMIHERMETIC', INDETERMINATE) -weldedshellhermetic = getattr(IfcCompressorTypeEnum, 'WELDEDSHELLHERMETIC', INDETERMINATE) -rollingpiston = getattr(IfcCompressorTypeEnum, 'ROLLINGPISTON', INDETERMINATE) -rotaryvane = getattr(IfcCompressorTypeEnum, 'ROTARYVANE', INDETERMINATE) -singlescrew = getattr(IfcCompressorTypeEnum, 'SINGLESCREW', INDETERMINATE) -twinscrew = getattr(IfcCompressorTypeEnum, 'TWINSCREW', INDETERMINATE) -userdefined = getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCompressorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dynamic = IfcCompressorTypeEnum.DYNAMIC +reciprocating = IfcCompressorTypeEnum.RECIPROCATING +rotary = IfcCompressorTypeEnum.ROTARY +scroll = IfcCompressorTypeEnum.SCROLL +trochoidal = IfcCompressorTypeEnum.TROCHOIDAL +singlestage = IfcCompressorTypeEnum.SINGLESTAGE +booster = IfcCompressorTypeEnum.BOOSTER +opentype = IfcCompressorTypeEnum.OPENTYPE +hermetic = IfcCompressorTypeEnum.HERMETIC +semihermetic = IfcCompressorTypeEnum.SEMIHERMETIC +weldedshellhermetic = IfcCompressorTypeEnum.WELDEDSHELLHERMETIC +rollingpiston = IfcCompressorTypeEnum.ROLLINGPISTON +rotaryvane = IfcCompressorTypeEnum.ROTARYVANE +singlescrew = IfcCompressorTypeEnum.SINGLESCREW +twinscrew = IfcCompressorTypeEnum.TWINSCREW +userdefined = IfcCompressorTypeEnum.USERDEFINED +notdefined = IfcCompressorTypeEnum.NOTDEFINED IfcCondenserTypeEnum = enum_namespace() -aircooled = getattr(IfcCondenserTypeEnum, 'AIRCOOLED', INDETERMINATE) -evaporativecooled = getattr(IfcCondenserTypeEnum, 'EVAPORATIVECOOLED', INDETERMINATE) -watercooled = getattr(IfcCondenserTypeEnum, 'WATERCOOLED', INDETERMINATE) -watercooledbrazedplate = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDBRAZEDPLATE', INDETERMINATE) -watercooledshellcoil = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLCOIL', INDETERMINATE) -watercooledshelltube = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLTUBE', INDETERMINATE) -watercooledtubeintube = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDTUBEINTUBE', INDETERMINATE) -userdefined = getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCondenserTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcCondenserTypeEnum.AIRCOOLED +evaporativecooled = IfcCondenserTypeEnum.EVAPORATIVECOOLED +watercooled = IfcCondenserTypeEnum.WATERCOOLED +watercooledbrazedplate = IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE +watercooledshellcoil = IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL +watercooledshelltube = IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE +watercooledtubeintube = IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE +userdefined = IfcCondenserTypeEnum.USERDEFINED +notdefined = IfcCondenserTypeEnum.NOTDEFINED IfcConnectionTypeEnum = enum_namespace() -atpath = getattr(IfcConnectionTypeEnum, 'ATPATH', INDETERMINATE) -atstart = getattr(IfcConnectionTypeEnum, 'ATSTART', INDETERMINATE) -atend = getattr(IfcConnectionTypeEnum, 'ATEND', INDETERMINATE) -notdefined = getattr(IfcConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +atpath = IfcConnectionTypeEnum.ATPATH +atstart = IfcConnectionTypeEnum.ATSTART +atend = IfcConnectionTypeEnum.ATEND +notdefined = IfcConnectionTypeEnum.NOTDEFINED IfcConstraintEnum = enum_namespace() -hard = getattr(IfcConstraintEnum, 'HARD', INDETERMINATE) -soft = getattr(IfcConstraintEnum, 'SOFT', INDETERMINATE) -advisory = getattr(IfcConstraintEnum, 'ADVISORY', INDETERMINATE) -userdefined = getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstraintEnum, 'NOTDEFINED', INDETERMINATE) +hard = IfcConstraintEnum.HARD +soft = IfcConstraintEnum.SOFT +advisory = IfcConstraintEnum.ADVISORY +userdefined = IfcConstraintEnum.USERDEFINED +notdefined = IfcConstraintEnum.NOTDEFINED IfcConstructionEquipmentResourceTypeEnum = enum_namespace() -demolishing = getattr(IfcConstructionEquipmentResourceTypeEnum, 'DEMOLISHING', INDETERMINATE) -earthmoving = getattr(IfcConstructionEquipmentResourceTypeEnum, 'EARTHMOVING', INDETERMINATE) -erecting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'ERECTING', INDETERMINATE) -heating = getattr(IfcConstructionEquipmentResourceTypeEnum, 'HEATING', INDETERMINATE) -lighting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'LIGHTING', INDETERMINATE) -paving = getattr(IfcConstructionEquipmentResourceTypeEnum, 'PAVING', INDETERMINATE) -pumping = getattr(IfcConstructionEquipmentResourceTypeEnum, 'PUMPING', INDETERMINATE) -transporting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'TRANSPORTING', INDETERMINATE) -userdefined = getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstructionEquipmentResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +demolishing = IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING +earthmoving = IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING +erecting = IfcConstructionEquipmentResourceTypeEnum.ERECTING +heating = IfcConstructionEquipmentResourceTypeEnum.HEATING +lighting = IfcConstructionEquipmentResourceTypeEnum.LIGHTING +paving = IfcConstructionEquipmentResourceTypeEnum.PAVING +pumping = IfcConstructionEquipmentResourceTypeEnum.PUMPING +transporting = IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING +userdefined = IfcConstructionEquipmentResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED IfcConstructionMaterialResourceTypeEnum = enum_namespace() -aggregates = getattr(IfcConstructionMaterialResourceTypeEnum, 'AGGREGATES', INDETERMINATE) -concrete = getattr(IfcConstructionMaterialResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = getattr(IfcConstructionMaterialResourceTypeEnum, 'DRYWALL', INDETERMINATE) -fuel = getattr(IfcConstructionMaterialResourceTypeEnum, 'FUEL', INDETERMINATE) -gypsum = getattr(IfcConstructionMaterialResourceTypeEnum, 'GYPSUM', INDETERMINATE) -masonry = getattr(IfcConstructionMaterialResourceTypeEnum, 'MASONRY', INDETERMINATE) -metal = getattr(IfcConstructionMaterialResourceTypeEnum, 'METAL', INDETERMINATE) -plastic = getattr(IfcConstructionMaterialResourceTypeEnum, 'PLASTIC', INDETERMINATE) -wood = getattr(IfcConstructionMaterialResourceTypeEnum, 'WOOD', INDETERMINATE) -notdefined = getattr(IfcConstructionMaterialResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) -userdefined = getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) +aggregates = IfcConstructionMaterialResourceTypeEnum.AGGREGATES +concrete = IfcConstructionMaterialResourceTypeEnum.CONCRETE +drywall = IfcConstructionMaterialResourceTypeEnum.DRYWALL +fuel = IfcConstructionMaterialResourceTypeEnum.FUEL +gypsum = IfcConstructionMaterialResourceTypeEnum.GYPSUM +masonry = IfcConstructionMaterialResourceTypeEnum.MASONRY +metal = IfcConstructionMaterialResourceTypeEnum.METAL +plastic = IfcConstructionMaterialResourceTypeEnum.PLASTIC +wood = IfcConstructionMaterialResourceTypeEnum.WOOD +notdefined = IfcConstructionMaterialResourceTypeEnum.NOTDEFINED +userdefined = IfcConstructionMaterialResourceTypeEnum.USERDEFINED IfcConstructionProductResourceTypeEnum = enum_namespace() -assembly = getattr(IfcConstructionProductResourceTypeEnum, 'ASSEMBLY', INDETERMINATE) -formwork = getattr(IfcConstructionProductResourceTypeEnum, 'FORMWORK', INDETERMINATE) -userdefined = getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstructionProductResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +assembly = IfcConstructionProductResourceTypeEnum.ASSEMBLY +formwork = IfcConstructionProductResourceTypeEnum.FORMWORK +userdefined = IfcConstructionProductResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionProductResourceTypeEnum.NOTDEFINED IfcControllerTypeEnum = enum_namespace() -floating = getattr(IfcControllerTypeEnum, 'FLOATING', INDETERMINATE) -programmable = getattr(IfcControllerTypeEnum, 'PROGRAMMABLE', INDETERMINATE) -proportional = getattr(IfcControllerTypeEnum, 'PROPORTIONAL', INDETERMINATE) -multiposition = getattr(IfcControllerTypeEnum, 'MULTIPOSITION', INDETERMINATE) -twoposition = getattr(IfcControllerTypeEnum, 'TWOPOSITION', INDETERMINATE) -userdefined = getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcControllerTypeEnum, 'NOTDEFINED', INDETERMINATE) +floating = IfcControllerTypeEnum.FLOATING +programmable = IfcControllerTypeEnum.PROGRAMMABLE +proportional = IfcControllerTypeEnum.PROPORTIONAL +multiposition = IfcControllerTypeEnum.MULTIPOSITION +twoposition = IfcControllerTypeEnum.TWOPOSITION +userdefined = IfcControllerTypeEnum.USERDEFINED +notdefined = IfcControllerTypeEnum.NOTDEFINED IfcConveyorSegmentTypeEnum = enum_namespace() -chuteconveyor = getattr(IfcConveyorSegmentTypeEnum, 'CHUTECONVEYOR', INDETERMINATE) -beltconveyor = getattr(IfcConveyorSegmentTypeEnum, 'BELTCONVEYOR', INDETERMINATE) -screwconveyor = getattr(IfcConveyorSegmentTypeEnum, 'SCREWCONVEYOR', INDETERMINATE) -bucketconveyor = getattr(IfcConveyorSegmentTypeEnum, 'BUCKETCONVEYOR', INDETERMINATE) -userdefined = getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConveyorSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +chuteconveyor = IfcConveyorSegmentTypeEnum.CHUTECONVEYOR +beltconveyor = IfcConveyorSegmentTypeEnum.BELTCONVEYOR +screwconveyor = IfcConveyorSegmentTypeEnum.SCREWCONVEYOR +bucketconveyor = IfcConveyorSegmentTypeEnum.BUCKETCONVEYOR +userdefined = IfcConveyorSegmentTypeEnum.USERDEFINED +notdefined = IfcConveyorSegmentTypeEnum.NOTDEFINED IfcCooledBeamTypeEnum = enum_namespace() -active = getattr(IfcCooledBeamTypeEnum, 'ACTIVE', INDETERMINATE) -passive = getattr(IfcCooledBeamTypeEnum, 'PASSIVE', INDETERMINATE) -userdefined = getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCooledBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +active = IfcCooledBeamTypeEnum.ACTIVE +passive = IfcCooledBeamTypeEnum.PASSIVE +userdefined = IfcCooledBeamTypeEnum.USERDEFINED +notdefined = IfcCooledBeamTypeEnum.NOTDEFINED IfcCoolingTowerTypeEnum = enum_namespace() -naturaldraft = getattr(IfcCoolingTowerTypeEnum, 'NATURALDRAFT', INDETERMINATE) -mechanicalinduceddraft = getattr(IfcCoolingTowerTypeEnum, 'MECHANICALINDUCEDDRAFT', INDETERMINATE) -mechanicalforceddraft = getattr(IfcCoolingTowerTypeEnum, 'MECHANICALFORCEDDRAFT', INDETERMINATE) -userdefined = getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoolingTowerTypeEnum, 'NOTDEFINED', INDETERMINATE) +naturaldraft = IfcCoolingTowerTypeEnum.NATURALDRAFT +mechanicalinduceddraft = IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT +mechanicalforceddraft = IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT +userdefined = IfcCoolingTowerTypeEnum.USERDEFINED +notdefined = IfcCoolingTowerTypeEnum.NOTDEFINED IfcCostItemTypeEnum = enum_namespace() -userdefined = getattr(IfcCostItemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCostItemTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCostItemTypeEnum.USERDEFINED +notdefined = IfcCostItemTypeEnum.NOTDEFINED IfcCostScheduleTypeEnum = enum_namespace() -budget = getattr(IfcCostScheduleTypeEnum, 'BUDGET', INDETERMINATE) -costplan = getattr(IfcCostScheduleTypeEnum, 'COSTPLAN', INDETERMINATE) -estimate = getattr(IfcCostScheduleTypeEnum, 'ESTIMATE', INDETERMINATE) -tender = getattr(IfcCostScheduleTypeEnum, 'TENDER', INDETERMINATE) -pricedbillofquantities = getattr(IfcCostScheduleTypeEnum, 'PRICEDBILLOFQUANTITIES', INDETERMINATE) -unpricedbillofquantities = getattr(IfcCostScheduleTypeEnum, 'UNPRICEDBILLOFQUANTITIES', INDETERMINATE) -scheduleofrates = getattr(IfcCostScheduleTypeEnum, 'SCHEDULEOFRATES', INDETERMINATE) -userdefined = getattr(IfcCostScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCostScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +budget = IfcCostScheduleTypeEnum.BUDGET +costplan = IfcCostScheduleTypeEnum.COSTPLAN +estimate = IfcCostScheduleTypeEnum.ESTIMATE +tender = IfcCostScheduleTypeEnum.TENDER +pricedbillofquantities = IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES +unpricedbillofquantities = IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES +scheduleofrates = IfcCostScheduleTypeEnum.SCHEDULEOFRATES +userdefined = IfcCostScheduleTypeEnum.USERDEFINED +notdefined = IfcCostScheduleTypeEnum.NOTDEFINED IfcCourseTypeEnum = enum_namespace() -armour = getattr(IfcCourseTypeEnum, 'ARMOUR', INDETERMINATE) -filter = getattr(IfcCourseTypeEnum, 'FILTER', INDETERMINATE) -ballastbed = getattr(IfcCourseTypeEnum, 'BALLASTBED', INDETERMINATE) -core = getattr(IfcCourseTypeEnum, 'CORE', INDETERMINATE) -pavement = getattr(IfcCourseTypeEnum, 'PAVEMENT', INDETERMINATE) -protection = getattr(IfcCourseTypeEnum, 'PROTECTION', INDETERMINATE) -userdefined = getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCourseTypeEnum, 'NOTDEFINED', INDETERMINATE) +armour = IfcCourseTypeEnum.ARMOUR +filter = IfcCourseTypeEnum.FILTER +ballastbed = IfcCourseTypeEnum.BALLASTBED +core = IfcCourseTypeEnum.CORE +pavement = IfcCourseTypeEnum.PAVEMENT +protection = IfcCourseTypeEnum.PROTECTION +userdefined = IfcCourseTypeEnum.USERDEFINED +notdefined = IfcCourseTypeEnum.NOTDEFINED IfcCoveringTypeEnum = enum_namespace() -ceiling = getattr(IfcCoveringTypeEnum, 'CEILING', INDETERMINATE) -flooring = getattr(IfcCoveringTypeEnum, 'FLOORING', INDETERMINATE) -cladding = getattr(IfcCoveringTypeEnum, 'CLADDING', INDETERMINATE) -roofing = getattr(IfcCoveringTypeEnum, 'ROOFING', INDETERMINATE) -molding = getattr(IfcCoveringTypeEnum, 'MOLDING', INDETERMINATE) -skirtingboard = getattr(IfcCoveringTypeEnum, 'SKIRTINGBOARD', INDETERMINATE) -insulation = getattr(IfcCoveringTypeEnum, 'INSULATION', INDETERMINATE) -membrane = getattr(IfcCoveringTypeEnum, 'MEMBRANE', INDETERMINATE) -sleeving = getattr(IfcCoveringTypeEnum, 'SLEEVING', INDETERMINATE) -wrapping = getattr(IfcCoveringTypeEnum, 'WRAPPING', INDETERMINATE) -coping = getattr(IfcCoveringTypeEnum, 'COPING', INDETERMINATE) -userdefined = getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoveringTypeEnum, 'NOTDEFINED', INDETERMINATE) +ceiling = IfcCoveringTypeEnum.CEILING +flooring = IfcCoveringTypeEnum.FLOORING +cladding = IfcCoveringTypeEnum.CLADDING +roofing = IfcCoveringTypeEnum.ROOFING +molding = IfcCoveringTypeEnum.MOLDING +skirtingboard = IfcCoveringTypeEnum.SKIRTINGBOARD +insulation = IfcCoveringTypeEnum.INSULATION +membrane = IfcCoveringTypeEnum.MEMBRANE +sleeving = IfcCoveringTypeEnum.SLEEVING +wrapping = IfcCoveringTypeEnum.WRAPPING +coping = IfcCoveringTypeEnum.COPING +userdefined = IfcCoveringTypeEnum.USERDEFINED +notdefined = IfcCoveringTypeEnum.NOTDEFINED IfcCrewResourceTypeEnum = enum_namespace() -office = getattr(IfcCrewResourceTypeEnum, 'OFFICE', INDETERMINATE) -site = getattr(IfcCrewResourceTypeEnum, 'SITE', INDETERMINATE) -userdefined = getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCrewResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +office = IfcCrewResourceTypeEnum.OFFICE +site = IfcCrewResourceTypeEnum.SITE +userdefined = IfcCrewResourceTypeEnum.USERDEFINED +notdefined = IfcCrewResourceTypeEnum.NOTDEFINED IfcCurtainWallTypeEnum = enum_namespace() -userdefined = getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCurtainWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCurtainWallTypeEnum.USERDEFINED +notdefined = IfcCurtainWallTypeEnum.NOTDEFINED IfcCurveInterpolationEnum = enum_namespace() -linear = getattr(IfcCurveInterpolationEnum, 'LINEAR', INDETERMINATE) -log_linear = getattr(IfcCurveInterpolationEnum, 'LOG_LINEAR', INDETERMINATE) -log_log = getattr(IfcCurveInterpolationEnum, 'LOG_LOG', INDETERMINATE) -notdefined = getattr(IfcCurveInterpolationEnum, 'NOTDEFINED', INDETERMINATE) +linear = IfcCurveInterpolationEnum.LINEAR +log_linear = IfcCurveInterpolationEnum.LOG_LINEAR +log_log = IfcCurveInterpolationEnum.LOG_LOG +notdefined = IfcCurveInterpolationEnum.NOTDEFINED IfcDamperTypeEnum = enum_namespace() -backdraftdamper = getattr(IfcDamperTypeEnum, 'BACKDRAFTDAMPER', INDETERMINATE) -balancingdamper = getattr(IfcDamperTypeEnum, 'BALANCINGDAMPER', INDETERMINATE) -blastdamper = getattr(IfcDamperTypeEnum, 'BLASTDAMPER', INDETERMINATE) -controldamper = getattr(IfcDamperTypeEnum, 'CONTROLDAMPER', INDETERMINATE) -firedamper = getattr(IfcDamperTypeEnum, 'FIREDAMPER', INDETERMINATE) -firesmokedamper = getattr(IfcDamperTypeEnum, 'FIRESMOKEDAMPER', INDETERMINATE) -fumehoodexhaust = getattr(IfcDamperTypeEnum, 'FUMEHOODEXHAUST', INDETERMINATE) -gravitydamper = getattr(IfcDamperTypeEnum, 'GRAVITYDAMPER', INDETERMINATE) -gravityreliefdamper = getattr(IfcDamperTypeEnum, 'GRAVITYRELIEFDAMPER', INDETERMINATE) -reliefdamper = getattr(IfcDamperTypeEnum, 'RELIEFDAMPER', INDETERMINATE) -smokedamper = getattr(IfcDamperTypeEnum, 'SMOKEDAMPER', INDETERMINATE) -userdefined = getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +backdraftdamper = IfcDamperTypeEnum.BACKDRAFTDAMPER +balancingdamper = IfcDamperTypeEnum.BALANCINGDAMPER +blastdamper = IfcDamperTypeEnum.BLASTDAMPER +controldamper = IfcDamperTypeEnum.CONTROLDAMPER +firedamper = IfcDamperTypeEnum.FIREDAMPER +firesmokedamper = IfcDamperTypeEnum.FIRESMOKEDAMPER +fumehoodexhaust = IfcDamperTypeEnum.FUMEHOODEXHAUST +gravitydamper = IfcDamperTypeEnum.GRAVITYDAMPER +gravityreliefdamper = IfcDamperTypeEnum.GRAVITYRELIEFDAMPER +reliefdamper = IfcDamperTypeEnum.RELIEFDAMPER +smokedamper = IfcDamperTypeEnum.SMOKEDAMPER +userdefined = IfcDamperTypeEnum.USERDEFINED +notdefined = IfcDamperTypeEnum.NOTDEFINED IfcDataOriginEnum = enum_namespace() -measured = getattr(IfcDataOriginEnum, 'MEASURED', INDETERMINATE) -predicted = getattr(IfcDataOriginEnum, 'PREDICTED', INDETERMINATE) -simulated = getattr(IfcDataOriginEnum, 'SIMULATED', INDETERMINATE) -userdefined = getattr(IfcDataOriginEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDataOriginEnum, 'NOTDEFINED', INDETERMINATE) +measured = IfcDataOriginEnum.MEASURED +predicted = IfcDataOriginEnum.PREDICTED +simulated = IfcDataOriginEnum.SIMULATED +userdefined = IfcDataOriginEnum.USERDEFINED +notdefined = IfcDataOriginEnum.NOTDEFINED IfcDerivedUnitEnum = enum_namespace() -angularvelocityunit = getattr(IfcDerivedUnitEnum, 'ANGULARVELOCITYUNIT', INDETERMINATE) -areadensityunit = getattr(IfcDerivedUnitEnum, 'AREADENSITYUNIT', INDETERMINATE) -compoundplaneangleunit = getattr(IfcDerivedUnitEnum, 'COMPOUNDPLANEANGLEUNIT', INDETERMINATE) -dynamicviscosityunit = getattr(IfcDerivedUnitEnum, 'DYNAMICVISCOSITYUNIT', INDETERMINATE) -heatfluxdensityunit = getattr(IfcDerivedUnitEnum, 'HEATFLUXDENSITYUNIT', INDETERMINATE) -integercountrateunit = getattr(IfcDerivedUnitEnum, 'INTEGERCOUNTRATEUNIT', INDETERMINATE) -isothermalmoisturecapacityunit = getattr(IfcDerivedUnitEnum, 'ISOTHERMALMOISTURECAPACITYUNIT', INDETERMINATE) -kinematicviscosityunit = getattr(IfcDerivedUnitEnum, 'KINEMATICVISCOSITYUNIT', INDETERMINATE) -linearvelocityunit = getattr(IfcDerivedUnitEnum, 'LINEARVELOCITYUNIT', INDETERMINATE) -massdensityunit = getattr(IfcDerivedUnitEnum, 'MASSDENSITYUNIT', INDETERMINATE) -massflowrateunit = getattr(IfcDerivedUnitEnum, 'MASSFLOWRATEUNIT', INDETERMINATE) -moisturediffusivityunit = getattr(IfcDerivedUnitEnum, 'MOISTUREDIFFUSIVITYUNIT', INDETERMINATE) -molecularweightunit = getattr(IfcDerivedUnitEnum, 'MOLECULARWEIGHTUNIT', INDETERMINATE) -specificheatcapacityunit = getattr(IfcDerivedUnitEnum, 'SPECIFICHEATCAPACITYUNIT', INDETERMINATE) -thermaladmittanceunit = getattr(IfcDerivedUnitEnum, 'THERMALADMITTANCEUNIT', INDETERMINATE) -thermalconductanceunit = getattr(IfcDerivedUnitEnum, 'THERMALCONDUCTANCEUNIT', INDETERMINATE) -thermalresistanceunit = getattr(IfcDerivedUnitEnum, 'THERMALRESISTANCEUNIT', INDETERMINATE) -thermaltransmittanceunit = getattr(IfcDerivedUnitEnum, 'THERMALTRANSMITTANCEUNIT', INDETERMINATE) -vaporpermeabilityunit = getattr(IfcDerivedUnitEnum, 'VAPORPERMEABILITYUNIT', INDETERMINATE) -volumetricflowrateunit = getattr(IfcDerivedUnitEnum, 'VOLUMETRICFLOWRATEUNIT', INDETERMINATE) -rotationalfrequencyunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALFREQUENCYUNIT', INDETERMINATE) -torqueunit = getattr(IfcDerivedUnitEnum, 'TORQUEUNIT', INDETERMINATE) -momentofinertiaunit = getattr(IfcDerivedUnitEnum, 'MOMENTOFINERTIAUNIT', INDETERMINATE) -linearmomentunit = getattr(IfcDerivedUnitEnum, 'LINEARMOMENTUNIT', INDETERMINATE) -linearforceunit = getattr(IfcDerivedUnitEnum, 'LINEARFORCEUNIT', INDETERMINATE) -planarforceunit = getattr(IfcDerivedUnitEnum, 'PLANARFORCEUNIT', INDETERMINATE) -modulusofelasticityunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFELASTICITYUNIT', INDETERMINATE) -shearmodulusunit = getattr(IfcDerivedUnitEnum, 'SHEARMODULUSUNIT', INDETERMINATE) -linearstiffnessunit = getattr(IfcDerivedUnitEnum, 'LINEARSTIFFNESSUNIT', INDETERMINATE) -rotationalstiffnessunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALSTIFFNESSUNIT', INDETERMINATE) -modulusofsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFSUBGRADEREACTIONUNIT', INDETERMINATE) -accelerationunit = getattr(IfcDerivedUnitEnum, 'ACCELERATIONUNIT', INDETERMINATE) -curvatureunit = getattr(IfcDerivedUnitEnum, 'CURVATUREUNIT', INDETERMINATE) -heatingvalueunit = getattr(IfcDerivedUnitEnum, 'HEATINGVALUEUNIT', INDETERMINATE) -ionconcentrationunit = getattr(IfcDerivedUnitEnum, 'IONCONCENTRATIONUNIT', INDETERMINATE) -luminousintensitydistributionunit = getattr(IfcDerivedUnitEnum, 'LUMINOUSINTENSITYDISTRIBUTIONUNIT', INDETERMINATE) -massperlengthunit = getattr(IfcDerivedUnitEnum, 'MASSPERLENGTHUNIT', INDETERMINATE) -modulusoflinearsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFLINEARSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofrotationalsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFROTATIONALSUBGRADEREACTIONUNIT', INDETERMINATE) -phunit = getattr(IfcDerivedUnitEnum, 'PHUNIT', INDETERMINATE) -rotationalmassunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALMASSUNIT', INDETERMINATE) -sectionareaintegralunit = getattr(IfcDerivedUnitEnum, 'SECTIONAREAINTEGRALUNIT', INDETERMINATE) -sectionmodulusunit = getattr(IfcDerivedUnitEnum, 'SECTIONMODULUSUNIT', INDETERMINATE) -soundpowerlevelunit = getattr(IfcDerivedUnitEnum, 'SOUNDPOWERLEVELUNIT', INDETERMINATE) -soundpowerunit = getattr(IfcDerivedUnitEnum, 'SOUNDPOWERUNIT', INDETERMINATE) -soundpressurelevelunit = getattr(IfcDerivedUnitEnum, 'SOUNDPRESSURELEVELUNIT', INDETERMINATE) -soundpressureunit = getattr(IfcDerivedUnitEnum, 'SOUNDPRESSUREUNIT', INDETERMINATE) -temperaturegradientunit = getattr(IfcDerivedUnitEnum, 'TEMPERATUREGRADIENTUNIT', INDETERMINATE) -temperaturerateofchangeunit = getattr(IfcDerivedUnitEnum, 'TEMPERATURERATEOFCHANGEUNIT', INDETERMINATE) -thermalexpansioncoefficientunit = getattr(IfcDerivedUnitEnum, 'THERMALEXPANSIONCOEFFICIENTUNIT', INDETERMINATE) -warpingconstantunit = getattr(IfcDerivedUnitEnum, 'WARPINGCONSTANTUNIT', INDETERMINATE) -warpingmomentunit = getattr(IfcDerivedUnitEnum, 'WARPINGMOMENTUNIT', INDETERMINATE) -userdefined = getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) +angularvelocityunit = IfcDerivedUnitEnum.ANGULARVELOCITYUNIT +areadensityunit = IfcDerivedUnitEnum.AREADENSITYUNIT +compoundplaneangleunit = IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT +dynamicviscosityunit = IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT +heatfluxdensityunit = IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT +integercountrateunit = IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT +isothermalmoisturecapacityunit = IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT +kinematicviscosityunit = IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT +linearvelocityunit = IfcDerivedUnitEnum.LINEARVELOCITYUNIT +massdensityunit = IfcDerivedUnitEnum.MASSDENSITYUNIT +massflowrateunit = IfcDerivedUnitEnum.MASSFLOWRATEUNIT +moisturediffusivityunit = IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT +molecularweightunit = IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT +specificheatcapacityunit = IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT +thermaladmittanceunit = IfcDerivedUnitEnum.THERMALADMITTANCEUNIT +thermalconductanceunit = IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT +thermalresistanceunit = IfcDerivedUnitEnum.THERMALRESISTANCEUNIT +thermaltransmittanceunit = IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT +vaporpermeabilityunit = IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT +volumetricflowrateunit = IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT +rotationalfrequencyunit = IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT +torqueunit = IfcDerivedUnitEnum.TORQUEUNIT +momentofinertiaunit = IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT +linearmomentunit = IfcDerivedUnitEnum.LINEARMOMENTUNIT +linearforceunit = IfcDerivedUnitEnum.LINEARFORCEUNIT +planarforceunit = IfcDerivedUnitEnum.PLANARFORCEUNIT +modulusofelasticityunit = IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT +shearmodulusunit = IfcDerivedUnitEnum.SHEARMODULUSUNIT +linearstiffnessunit = IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT +rotationalstiffnessunit = IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT +modulusofsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT +accelerationunit = IfcDerivedUnitEnum.ACCELERATIONUNIT +curvatureunit = IfcDerivedUnitEnum.CURVATUREUNIT +heatingvalueunit = IfcDerivedUnitEnum.HEATINGVALUEUNIT +ionconcentrationunit = IfcDerivedUnitEnum.IONCONCENTRATIONUNIT +luminousintensitydistributionunit = IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT +massperlengthunit = IfcDerivedUnitEnum.MASSPERLENGTHUNIT +modulusoflinearsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT +modulusofrotationalsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT +phunit = IfcDerivedUnitEnum.PHUNIT +rotationalmassunit = IfcDerivedUnitEnum.ROTATIONALMASSUNIT +sectionareaintegralunit = IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT +sectionmodulusunit = IfcDerivedUnitEnum.SECTIONMODULUSUNIT +soundpowerlevelunit = IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT +soundpowerunit = IfcDerivedUnitEnum.SOUNDPOWERUNIT +soundpressurelevelunit = IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT +soundpressureunit = IfcDerivedUnitEnum.SOUNDPRESSUREUNIT +temperaturegradientunit = IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT +temperaturerateofchangeunit = IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT +thermalexpansioncoefficientunit = IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT +warpingconstantunit = IfcDerivedUnitEnum.WARPINGCONSTANTUNIT +warpingmomentunit = IfcDerivedUnitEnum.WARPINGMOMENTUNIT +userdefined = IfcDerivedUnitEnum.USERDEFINED IfcDirectionSenseEnum = enum_namespace() -positive = getattr(IfcDirectionSenseEnum, 'POSITIVE', INDETERMINATE) -negative = getattr(IfcDirectionSenseEnum, 'NEGATIVE', INDETERMINATE) +positive = IfcDirectionSenseEnum.POSITIVE +negative = IfcDirectionSenseEnum.NEGATIVE IfcDiscreteAccessoryTypeEnum = enum_namespace() -anchorplate = getattr(IfcDiscreteAccessoryTypeEnum, 'ANCHORPLATE', INDETERMINATE) -bracket = getattr(IfcDiscreteAccessoryTypeEnum, 'BRACKET', INDETERMINATE) -shoe = getattr(IfcDiscreteAccessoryTypeEnum, 'SHOE', INDETERMINATE) -expansion_joint_device = getattr(IfcDiscreteAccessoryTypeEnum, 'EXPANSION_JOINT_DEVICE', INDETERMINATE) -birdprotection = getattr(IfcDiscreteAccessoryTypeEnum, 'BIRDPROTECTION', INDETERMINATE) -cablearranger = getattr(IfcDiscreteAccessoryTypeEnum, 'CABLEARRANGER', INDETERMINATE) -insulator = getattr(IfcDiscreteAccessoryTypeEnum, 'INSULATOR', INDETERMINATE) -lock = getattr(IfcDiscreteAccessoryTypeEnum, 'LOCK', INDETERMINATE) -tensioningequipment = getattr(IfcDiscreteAccessoryTypeEnum, 'TENSIONINGEQUIPMENT', INDETERMINATE) -railpad = getattr(IfcDiscreteAccessoryTypeEnum, 'RAILPAD', INDETERMINATE) -slidingchair = getattr(IfcDiscreteAccessoryTypeEnum, 'SLIDINGCHAIR', INDETERMINATE) -panel_strengthening = getattr(IfcDiscreteAccessoryTypeEnum, 'PANEL_STRENGTHENING', INDETERMINATE) -railbrace = getattr(IfcDiscreteAccessoryTypeEnum, 'RAILBRACE', INDETERMINATE) -elastic_cushion = getattr(IfcDiscreteAccessoryTypeEnum, 'ELASTIC_CUSHION', INDETERMINATE) -soundabsorption = getattr(IfcDiscreteAccessoryTypeEnum, 'SOUNDABSORPTION', INDETERMINATE) -rail_lubrication = getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_LUBRICATION', INDETERMINATE) -rail_mechanical_equipment = getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT', INDETERMINATE) -userdefined = getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDiscreteAccessoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorplate = IfcDiscreteAccessoryTypeEnum.ANCHORPLATE +bracket = IfcDiscreteAccessoryTypeEnum.BRACKET +shoe = IfcDiscreteAccessoryTypeEnum.SHOE +expansion_joint_device = IfcDiscreteAccessoryTypeEnum.EXPANSION_JOINT_DEVICE +birdprotection = IfcDiscreteAccessoryTypeEnum.BIRDPROTECTION +cablearranger = IfcDiscreteAccessoryTypeEnum.CABLEARRANGER +insulator = IfcDiscreteAccessoryTypeEnum.INSULATOR +lock = IfcDiscreteAccessoryTypeEnum.LOCK +tensioningequipment = IfcDiscreteAccessoryTypeEnum.TENSIONINGEQUIPMENT +railpad = IfcDiscreteAccessoryTypeEnum.RAILPAD +slidingchair = IfcDiscreteAccessoryTypeEnum.SLIDINGCHAIR +panel_strengthening = IfcDiscreteAccessoryTypeEnum.PANEL_STRENGTHENING +railbrace = IfcDiscreteAccessoryTypeEnum.RAILBRACE +elastic_cushion = IfcDiscreteAccessoryTypeEnum.ELASTIC_CUSHION +soundabsorption = IfcDiscreteAccessoryTypeEnum.SOUNDABSORPTION +rail_lubrication = IfcDiscreteAccessoryTypeEnum.RAIL_LUBRICATION +rail_mechanical_equipment = IfcDiscreteAccessoryTypeEnum.RAIL_MECHANICAL_EQUIPMENT +userdefined = IfcDiscreteAccessoryTypeEnum.USERDEFINED +notdefined = IfcDiscreteAccessoryTypeEnum.NOTDEFINED IfcDistributionBoardTypeEnum = enum_namespace() -switchboard = getattr(IfcDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -consumerunit = getattr(IfcDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -motorcontrolcentre = getattr(IfcDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -distributionframe = getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONFRAME', INDETERMINATE) -distributionboard = getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -userdefined = getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +switchboard = IfcDistributionBoardTypeEnum.SWITCHBOARD +consumerunit = IfcDistributionBoardTypeEnum.CONSUMERUNIT +motorcontrolcentre = IfcDistributionBoardTypeEnum.MOTORCONTROLCENTRE +distributionframe = IfcDistributionBoardTypeEnum.DISTRIBUTIONFRAME +distributionboard = IfcDistributionBoardTypeEnum.DISTRIBUTIONBOARD +userdefined = IfcDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcDistributionBoardTypeEnum.NOTDEFINED IfcDistributionChamberElementTypeEnum = enum_namespace() -formedduct = getattr(IfcDistributionChamberElementTypeEnum, 'FORMEDDUCT', INDETERMINATE) -inspectionchamber = getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONCHAMBER', INDETERMINATE) -inspectionpit = getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONPIT', INDETERMINATE) -manhole = getattr(IfcDistributionChamberElementTypeEnum, 'MANHOLE', INDETERMINATE) -meterchamber = getattr(IfcDistributionChamberElementTypeEnum, 'METERCHAMBER', INDETERMINATE) -sump = getattr(IfcDistributionChamberElementTypeEnum, 'SUMP', INDETERMINATE) -trench = getattr(IfcDistributionChamberElementTypeEnum, 'TRENCH', INDETERMINATE) -valvechamber = getattr(IfcDistributionChamberElementTypeEnum, 'VALVECHAMBER', INDETERMINATE) -userdefined = getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionChamberElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +formedduct = IfcDistributionChamberElementTypeEnum.FORMEDDUCT +inspectionchamber = IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER +inspectionpit = IfcDistributionChamberElementTypeEnum.INSPECTIONPIT +manhole = IfcDistributionChamberElementTypeEnum.MANHOLE +meterchamber = IfcDistributionChamberElementTypeEnum.METERCHAMBER +sump = IfcDistributionChamberElementTypeEnum.SUMP +trench = IfcDistributionChamberElementTypeEnum.TRENCH +valvechamber = IfcDistributionChamberElementTypeEnum.VALVECHAMBER +userdefined = IfcDistributionChamberElementTypeEnum.USERDEFINED +notdefined = IfcDistributionChamberElementTypeEnum.NOTDEFINED IfcDistributionPortTypeEnum = enum_namespace() -cable = getattr(IfcDistributionPortTypeEnum, 'CABLE', INDETERMINATE) -cablecarrier = getattr(IfcDistributionPortTypeEnum, 'CABLECARRIER', INDETERMINATE) -duct = getattr(IfcDistributionPortTypeEnum, 'DUCT', INDETERMINATE) -pipe = getattr(IfcDistributionPortTypeEnum, 'PIPE', INDETERMINATE) -wireless = getattr(IfcDistributionPortTypeEnum, 'WIRELESS', INDETERMINATE) -userdefined = getattr(IfcDistributionPortTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionPortTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcDistributionPortTypeEnum.CABLE +cablecarrier = IfcDistributionPortTypeEnum.CABLECARRIER +duct = IfcDistributionPortTypeEnum.DUCT +pipe = IfcDistributionPortTypeEnum.PIPE +wireless = IfcDistributionPortTypeEnum.WIRELESS +userdefined = IfcDistributionPortTypeEnum.USERDEFINED +notdefined = IfcDistributionPortTypeEnum.NOTDEFINED IfcDistributionSystemEnum = enum_namespace() -airconditioning = getattr(IfcDistributionSystemEnum, 'AIRCONDITIONING', INDETERMINATE) -audiovisual = getattr(IfcDistributionSystemEnum, 'AUDIOVISUAL', INDETERMINATE) -chemical = getattr(IfcDistributionSystemEnum, 'CHEMICAL', INDETERMINATE) -chilledwater = getattr(IfcDistributionSystemEnum, 'CHILLEDWATER', INDETERMINATE) -communication = getattr(IfcDistributionSystemEnum, 'COMMUNICATION', INDETERMINATE) -compressedair = getattr(IfcDistributionSystemEnum, 'COMPRESSEDAIR', INDETERMINATE) -condenserwater = getattr(IfcDistributionSystemEnum, 'CONDENSERWATER', INDETERMINATE) -control = getattr(IfcDistributionSystemEnum, 'CONTROL', INDETERMINATE) -conveying = getattr(IfcDistributionSystemEnum, 'CONVEYING', INDETERMINATE) -data = getattr(IfcDistributionSystemEnum, 'DATA', INDETERMINATE) -disposal = getattr(IfcDistributionSystemEnum, 'DISPOSAL', INDETERMINATE) -domesticcoldwater = getattr(IfcDistributionSystemEnum, 'DOMESTICCOLDWATER', INDETERMINATE) -domestichotwater = getattr(IfcDistributionSystemEnum, 'DOMESTICHOTWATER', INDETERMINATE) -drainage = getattr(IfcDistributionSystemEnum, 'DRAINAGE', INDETERMINATE) -earthing = getattr(IfcDistributionSystemEnum, 'EARTHING', INDETERMINATE) -electrical = getattr(IfcDistributionSystemEnum, 'ELECTRICAL', INDETERMINATE) -electroacoustic = getattr(IfcDistributionSystemEnum, 'ELECTROACOUSTIC', INDETERMINATE) -exhaust = getattr(IfcDistributionSystemEnum, 'EXHAUST', INDETERMINATE) -fireprotection = getattr(IfcDistributionSystemEnum, 'FIREPROTECTION', INDETERMINATE) -fuel = getattr(IfcDistributionSystemEnum, 'FUEL', INDETERMINATE) -gas = getattr(IfcDistributionSystemEnum, 'GAS', INDETERMINATE) -hazardous = getattr(IfcDistributionSystemEnum, 'HAZARDOUS', INDETERMINATE) -heating = getattr(IfcDistributionSystemEnum, 'HEATING', INDETERMINATE) -lighting = getattr(IfcDistributionSystemEnum, 'LIGHTING', INDETERMINATE) -lightningprotection = getattr(IfcDistributionSystemEnum, 'LIGHTNINGPROTECTION', INDETERMINATE) -municipalsolidwaste = getattr(IfcDistributionSystemEnum, 'MUNICIPALSOLIDWASTE', INDETERMINATE) -oil = getattr(IfcDistributionSystemEnum, 'OIL', INDETERMINATE) -operational = getattr(IfcDistributionSystemEnum, 'OPERATIONAL', INDETERMINATE) -powergeneration = getattr(IfcDistributionSystemEnum, 'POWERGENERATION', INDETERMINATE) -rainwater = getattr(IfcDistributionSystemEnum, 'RAINWATER', INDETERMINATE) -refrigeration = getattr(IfcDistributionSystemEnum, 'REFRIGERATION', INDETERMINATE) -security = getattr(IfcDistributionSystemEnum, 'SECURITY', INDETERMINATE) -sewage = getattr(IfcDistributionSystemEnum, 'SEWAGE', INDETERMINATE) -signal = getattr(IfcDistributionSystemEnum, 'SIGNAL', INDETERMINATE) -stormwater = getattr(IfcDistributionSystemEnum, 'STORMWATER', INDETERMINATE) -telephone = getattr(IfcDistributionSystemEnum, 'TELEPHONE', INDETERMINATE) -tv = getattr(IfcDistributionSystemEnum, 'TV', INDETERMINATE) -vacuum = getattr(IfcDistributionSystemEnum, 'VACUUM', INDETERMINATE) -vent = getattr(IfcDistributionSystemEnum, 'VENT', INDETERMINATE) -ventilation = getattr(IfcDistributionSystemEnum, 'VENTILATION', INDETERMINATE) -wastewater = getattr(IfcDistributionSystemEnum, 'WASTEWATER', INDETERMINATE) -watersupply = getattr(IfcDistributionSystemEnum, 'WATERSUPPLY', INDETERMINATE) -catenary_system = getattr(IfcDistributionSystemEnum, 'CATENARY_SYSTEM', INDETERMINATE) -overhead_contactline_system = getattr(IfcDistributionSystemEnum, 'OVERHEAD_CONTACTLINE_SYSTEM', INDETERMINATE) -return_circuit = getattr(IfcDistributionSystemEnum, 'RETURN_CIRCUIT', INDETERMINATE) -userdefined = getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionSystemEnum, 'NOTDEFINED', INDETERMINATE) +airconditioning = IfcDistributionSystemEnum.AIRCONDITIONING +audiovisual = IfcDistributionSystemEnum.AUDIOVISUAL +chemical = IfcDistributionSystemEnum.CHEMICAL +chilledwater = IfcDistributionSystemEnum.CHILLEDWATER +communication = IfcDistributionSystemEnum.COMMUNICATION +compressedair = IfcDistributionSystemEnum.COMPRESSEDAIR +condenserwater = IfcDistributionSystemEnum.CONDENSERWATER +control = IfcDistributionSystemEnum.CONTROL +conveying = IfcDistributionSystemEnum.CONVEYING +data = IfcDistributionSystemEnum.DATA +disposal = IfcDistributionSystemEnum.DISPOSAL +domesticcoldwater = IfcDistributionSystemEnum.DOMESTICCOLDWATER +domestichotwater = IfcDistributionSystemEnum.DOMESTICHOTWATER +drainage = IfcDistributionSystemEnum.DRAINAGE +earthing = IfcDistributionSystemEnum.EARTHING +electrical = IfcDistributionSystemEnum.ELECTRICAL +electroacoustic = IfcDistributionSystemEnum.ELECTROACOUSTIC +exhaust = IfcDistributionSystemEnum.EXHAUST +fireprotection = IfcDistributionSystemEnum.FIREPROTECTION +fuel = IfcDistributionSystemEnum.FUEL +gas = IfcDistributionSystemEnum.GAS +hazardous = IfcDistributionSystemEnum.HAZARDOUS +heating = IfcDistributionSystemEnum.HEATING +lighting = IfcDistributionSystemEnum.LIGHTING +lightningprotection = IfcDistributionSystemEnum.LIGHTNINGPROTECTION +municipalsolidwaste = IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE +oil = IfcDistributionSystemEnum.OIL +operational = IfcDistributionSystemEnum.OPERATIONAL +powergeneration = IfcDistributionSystemEnum.POWERGENERATION +rainwater = IfcDistributionSystemEnum.RAINWATER +refrigeration = IfcDistributionSystemEnum.REFRIGERATION +security = IfcDistributionSystemEnum.SECURITY +sewage = IfcDistributionSystemEnum.SEWAGE +signal = IfcDistributionSystemEnum.SIGNAL +stormwater = IfcDistributionSystemEnum.STORMWATER +telephone = IfcDistributionSystemEnum.TELEPHONE +tv = IfcDistributionSystemEnum.TV +vacuum = IfcDistributionSystemEnum.VACUUM +vent = IfcDistributionSystemEnum.VENT +ventilation = IfcDistributionSystemEnum.VENTILATION +wastewater = IfcDistributionSystemEnum.WASTEWATER +watersupply = IfcDistributionSystemEnum.WATERSUPPLY +catenary_system = IfcDistributionSystemEnum.CATENARY_SYSTEM +overhead_contactline_system = IfcDistributionSystemEnum.OVERHEAD_CONTACTLINE_SYSTEM +return_circuit = IfcDistributionSystemEnum.RETURN_CIRCUIT +userdefined = IfcDistributionSystemEnum.USERDEFINED +notdefined = IfcDistributionSystemEnum.NOTDEFINED IfcDocumentConfidentialityEnum = enum_namespace() -public = getattr(IfcDocumentConfidentialityEnum, 'PUBLIC', INDETERMINATE) -restricted = getattr(IfcDocumentConfidentialityEnum, 'RESTRICTED', INDETERMINATE) -confidential = getattr(IfcDocumentConfidentialityEnum, 'CONFIDENTIAL', INDETERMINATE) -personal = getattr(IfcDocumentConfidentialityEnum, 'PERSONAL', INDETERMINATE) -userdefined = getattr(IfcDocumentConfidentialityEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDocumentConfidentialityEnum, 'NOTDEFINED', INDETERMINATE) +public = IfcDocumentConfidentialityEnum.PUBLIC +restricted = IfcDocumentConfidentialityEnum.RESTRICTED +confidential = IfcDocumentConfidentialityEnum.CONFIDENTIAL +personal = IfcDocumentConfidentialityEnum.PERSONAL +userdefined = IfcDocumentConfidentialityEnum.USERDEFINED +notdefined = IfcDocumentConfidentialityEnum.NOTDEFINED IfcDocumentStatusEnum = enum_namespace() -draft = getattr(IfcDocumentStatusEnum, 'DRAFT', INDETERMINATE) -finaldraft = getattr(IfcDocumentStatusEnum, 'FINALDRAFT', INDETERMINATE) -final = getattr(IfcDocumentStatusEnum, 'FINAL', INDETERMINATE) -revision = getattr(IfcDocumentStatusEnum, 'REVISION', INDETERMINATE) -notdefined = getattr(IfcDocumentStatusEnum, 'NOTDEFINED', INDETERMINATE) +draft = IfcDocumentStatusEnum.DRAFT +finaldraft = IfcDocumentStatusEnum.FINALDRAFT +final = IfcDocumentStatusEnum.FINAL +revision = IfcDocumentStatusEnum.REVISION +notdefined = IfcDocumentStatusEnum.NOTDEFINED IfcDoorPanelOperationEnum = enum_namespace() -swinging = getattr(IfcDoorPanelOperationEnum, 'SWINGING', INDETERMINATE) -double_acting = getattr(IfcDoorPanelOperationEnum, 'DOUBLE_ACTING', INDETERMINATE) -sliding = getattr(IfcDoorPanelOperationEnum, 'SLIDING', INDETERMINATE) -folding = getattr(IfcDoorPanelOperationEnum, 'FOLDING', INDETERMINATE) -revolving = getattr(IfcDoorPanelOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = getattr(IfcDoorPanelOperationEnum, 'ROLLINGUP', INDETERMINATE) -fixedpanel = getattr(IfcDoorPanelOperationEnum, 'FIXEDPANEL', INDETERMINATE) -userdefined = getattr(IfcDoorPanelOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +swinging = IfcDoorPanelOperationEnum.SWINGING +double_acting = IfcDoorPanelOperationEnum.DOUBLE_ACTING +sliding = IfcDoorPanelOperationEnum.SLIDING +folding = IfcDoorPanelOperationEnum.FOLDING +revolving = IfcDoorPanelOperationEnum.REVOLVING +rollingup = IfcDoorPanelOperationEnum.ROLLINGUP +fixedpanel = IfcDoorPanelOperationEnum.FIXEDPANEL +userdefined = IfcDoorPanelOperationEnum.USERDEFINED +notdefined = IfcDoorPanelOperationEnum.NOTDEFINED IfcDoorPanelPositionEnum = enum_namespace() -left = getattr(IfcDoorPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = getattr(IfcDoorPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = getattr(IfcDoorPanelPositionEnum, 'RIGHT', INDETERMINATE) -notdefined = getattr(IfcDoorPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcDoorPanelPositionEnum.LEFT +middle = IfcDoorPanelPositionEnum.MIDDLE +right = IfcDoorPanelPositionEnum.RIGHT +notdefined = IfcDoorPanelPositionEnum.NOTDEFINED IfcDoorStyleConstructionEnum = enum_namespace() -aluminium = getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = getattr(IfcDoorStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = getattr(IfcDoorStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = getattr(IfcDoorStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -aluminium_plastic = getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_PLASTIC', INDETERMINATE) -plastic = getattr(IfcDoorStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -userdefined = getattr(IfcDoorStyleConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcDoorStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcDoorStyleConstructionEnum.STEEL +wood = IfcDoorStyleConstructionEnum.WOOD +aluminium_wood = IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD +aluminium_plastic = IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC +plastic = IfcDoorStyleConstructionEnum.PLASTIC +userdefined = IfcDoorStyleConstructionEnum.USERDEFINED +notdefined = IfcDoorStyleConstructionEnum.NOTDEFINED IfcDoorStyleOperationEnum = enum_namespace() -single_swing_left = getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_door_single_swing = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_door_double_swing = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_door_sliding = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -folding_to_left = getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_door_folding = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -revolving = getattr(IfcDoorStyleOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = getattr(IfcDoorStyleOperationEnum, 'ROLLINGUP', INDETERMINATE) -userdefined = getattr(IfcDoorStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT +double_door_single_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT +double_door_double_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +sliding_to_left = IfcDoorStyleOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT +double_door_sliding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING +folding_to_left = IfcDoorStyleOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT +double_door_folding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING +revolving = IfcDoorStyleOperationEnum.REVOLVING +rollingup = IfcDoorStyleOperationEnum.ROLLINGUP +userdefined = IfcDoorStyleOperationEnum.USERDEFINED +notdefined = IfcDoorStyleOperationEnum.NOTDEFINED IfcDoorTypeEnum = enum_namespace() -door = getattr(IfcDoorTypeEnum, 'DOOR', INDETERMINATE) -gate = getattr(IfcDoorTypeEnum, 'GATE', INDETERMINATE) -trapdoor = getattr(IfcDoorTypeEnum, 'TRAPDOOR', INDETERMINATE) -boom_barrier = getattr(IfcDoorTypeEnum, 'BOOM_BARRIER', INDETERMINATE) -turnstile = getattr(IfcDoorTypeEnum, 'TURNSTILE', INDETERMINATE) -userdefined = getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorTypeEnum, 'NOTDEFINED', INDETERMINATE) +door = IfcDoorTypeEnum.DOOR +gate = IfcDoorTypeEnum.GATE +trapdoor = IfcDoorTypeEnum.TRAPDOOR +boom_barrier = IfcDoorTypeEnum.BOOM_BARRIER +turnstile = IfcDoorTypeEnum.TURNSTILE +userdefined = IfcDoorTypeEnum.USERDEFINED +notdefined = IfcDoorTypeEnum.NOTDEFINED IfcDoorTypeOperationEnum = enum_namespace() -single_swing_left = getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_door_single_swing = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_door_double_swing = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_door_sliding = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -folding_to_left = getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_door_folding = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -revolving = getattr(IfcDoorTypeOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = getattr(IfcDoorTypeOperationEnum, 'ROLLINGUP', INDETERMINATE) -swing_fixed_left = getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_LEFT', INDETERMINATE) -swing_fixed_right = getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_RIGHT', INDETERMINATE) -userdefined = getattr(IfcDoorTypeOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorTypeOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT +double_door_single_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT +double_door_double_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +sliding_to_left = IfcDoorTypeOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT +double_door_sliding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SLIDING +folding_to_left = IfcDoorTypeOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT +double_door_folding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_FOLDING +revolving = IfcDoorTypeOperationEnum.REVOLVING +rollingup = IfcDoorTypeOperationEnum.ROLLINGUP +swing_fixed_left = IfcDoorTypeOperationEnum.SWING_FIXED_LEFT +swing_fixed_right = IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT +userdefined = IfcDoorTypeOperationEnum.USERDEFINED +notdefined = IfcDoorTypeOperationEnum.NOTDEFINED IfcDuctFittingTypeEnum = enum_namespace() -bend = getattr(IfcDuctFittingTypeEnum, 'BEND', INDETERMINATE) -connector = getattr(IfcDuctFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcDuctFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcDuctFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcDuctFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = getattr(IfcDuctFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = getattr(IfcDuctFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcDuctFittingTypeEnum.BEND +connector = IfcDuctFittingTypeEnum.CONNECTOR +entry = IfcDuctFittingTypeEnum.ENTRY +exit = IfcDuctFittingTypeEnum.EXIT +junction = IfcDuctFittingTypeEnum.JUNCTION +obstruction = IfcDuctFittingTypeEnum.OBSTRUCTION +transition = IfcDuctFittingTypeEnum.TRANSITION +userdefined = IfcDuctFittingTypeEnum.USERDEFINED +notdefined = IfcDuctFittingTypeEnum.NOTDEFINED IfcDuctSegmentTypeEnum = enum_namespace() -rigidsegment = getattr(IfcDuctSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -flexiblesegment = getattr(IfcDuctSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -userdefined = getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigidsegment = IfcDuctSegmentTypeEnum.RIGIDSEGMENT +flexiblesegment = IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT +userdefined = IfcDuctSegmentTypeEnum.USERDEFINED +notdefined = IfcDuctSegmentTypeEnum.NOTDEFINED IfcDuctSilencerTypeEnum = enum_namespace() -flatoval = getattr(IfcDuctSilencerTypeEnum, 'FLATOVAL', INDETERMINATE) -rectangular = getattr(IfcDuctSilencerTypeEnum, 'RECTANGULAR', INDETERMINATE) -round = getattr(IfcDuctSilencerTypeEnum, 'ROUND', INDETERMINATE) -userdefined = getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctSilencerTypeEnum, 'NOTDEFINED', INDETERMINATE) +flatoval = IfcDuctSilencerTypeEnum.FLATOVAL +rectangular = IfcDuctSilencerTypeEnum.RECTANGULAR +round = IfcDuctSilencerTypeEnum.ROUND +userdefined = IfcDuctSilencerTypeEnum.USERDEFINED +notdefined = IfcDuctSilencerTypeEnum.NOTDEFINED IfcEarthworksCutTypeEnum = enum_namespace() -trench = getattr(IfcEarthworksCutTypeEnum, 'TRENCH', INDETERMINATE) -dredging = getattr(IfcEarthworksCutTypeEnum, 'DREDGING', INDETERMINATE) -excavation = getattr(IfcEarthworksCutTypeEnum, 'EXCAVATION', INDETERMINATE) -overexcavation = getattr(IfcEarthworksCutTypeEnum, 'OVEREXCAVATION', INDETERMINATE) -topsoilremoval = getattr(IfcEarthworksCutTypeEnum, 'TOPSOILREMOVAL', INDETERMINATE) -stepexcavation = getattr(IfcEarthworksCutTypeEnum, 'STEPEXCAVATION', INDETERMINATE) -pavementmilling = getattr(IfcEarthworksCutTypeEnum, 'PAVEMENTMILLING', INDETERMINATE) -cut = getattr(IfcEarthworksCutTypeEnum, 'CUT', INDETERMINATE) -base_excavation = getattr(IfcEarthworksCutTypeEnum, 'BASE_EXCAVATION', INDETERMINATE) -userdefined = getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEarthworksCutTypeEnum, 'NOTDEFINED', INDETERMINATE) +trench = IfcEarthworksCutTypeEnum.TRENCH +dredging = IfcEarthworksCutTypeEnum.DREDGING +excavation = IfcEarthworksCutTypeEnum.EXCAVATION +overexcavation = IfcEarthworksCutTypeEnum.OVEREXCAVATION +topsoilremoval = IfcEarthworksCutTypeEnum.TOPSOILREMOVAL +stepexcavation = IfcEarthworksCutTypeEnum.STEPEXCAVATION +pavementmilling = IfcEarthworksCutTypeEnum.PAVEMENTMILLING +cut = IfcEarthworksCutTypeEnum.CUT +base_excavation = IfcEarthworksCutTypeEnum.BASE_EXCAVATION +userdefined = IfcEarthworksCutTypeEnum.USERDEFINED +notdefined = IfcEarthworksCutTypeEnum.NOTDEFINED IfcEarthworksFillTypeEnum = enum_namespace() -backfill = getattr(IfcEarthworksFillTypeEnum, 'BACKFILL', INDETERMINATE) -counterweight = getattr(IfcEarthworksFillTypeEnum, 'COUNTERWEIGHT', INDETERMINATE) -subgrade = getattr(IfcEarthworksFillTypeEnum, 'SUBGRADE', INDETERMINATE) -embankment = getattr(IfcEarthworksFillTypeEnum, 'EMBANKMENT', INDETERMINATE) -transitionsection = getattr(IfcEarthworksFillTypeEnum, 'TRANSITIONSECTION', INDETERMINATE) -subgradebed = getattr(IfcEarthworksFillTypeEnum, 'SUBGRADEBED', INDETERMINATE) -slopefill = getattr(IfcEarthworksFillTypeEnum, 'SLOPEFILL', INDETERMINATE) -userdefined = getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEarthworksFillTypeEnum, 'NOTDEFINED', INDETERMINATE) +backfill = IfcEarthworksFillTypeEnum.BACKFILL +counterweight = IfcEarthworksFillTypeEnum.COUNTERWEIGHT +subgrade = IfcEarthworksFillTypeEnum.SUBGRADE +embankment = IfcEarthworksFillTypeEnum.EMBANKMENT +transitionsection = IfcEarthworksFillTypeEnum.TRANSITIONSECTION +subgradebed = IfcEarthworksFillTypeEnum.SUBGRADEBED +slopefill = IfcEarthworksFillTypeEnum.SLOPEFILL +userdefined = IfcEarthworksFillTypeEnum.USERDEFINED +notdefined = IfcEarthworksFillTypeEnum.NOTDEFINED IfcElectricApplianceTypeEnum = enum_namespace() -dishwasher = getattr(IfcElectricApplianceTypeEnum, 'DISHWASHER', INDETERMINATE) -electriccooker = getattr(IfcElectricApplianceTypeEnum, 'ELECTRICCOOKER', INDETERMINATE) -freestandingelectricheater = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGELECTRICHEATER', INDETERMINATE) -freestandingfan = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGFAN', INDETERMINATE) -freestandingwaterheater = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERHEATER', INDETERMINATE) -freestandingwatercooler = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERCOOLER', INDETERMINATE) -freezer = getattr(IfcElectricApplianceTypeEnum, 'FREEZER', INDETERMINATE) -fridge_freezer = getattr(IfcElectricApplianceTypeEnum, 'FRIDGE_FREEZER', INDETERMINATE) -handdryer = getattr(IfcElectricApplianceTypeEnum, 'HANDDRYER', INDETERMINATE) -kitchenmachine = getattr(IfcElectricApplianceTypeEnum, 'KITCHENMACHINE', INDETERMINATE) -microwave = getattr(IfcElectricApplianceTypeEnum, 'MICROWAVE', INDETERMINATE) -photocopier = getattr(IfcElectricApplianceTypeEnum, 'PHOTOCOPIER', INDETERMINATE) -refrigerator = getattr(IfcElectricApplianceTypeEnum, 'REFRIGERATOR', INDETERMINATE) -tumbledryer = getattr(IfcElectricApplianceTypeEnum, 'TUMBLEDRYER', INDETERMINATE) -vendingmachine = getattr(IfcElectricApplianceTypeEnum, 'VENDINGMACHINE', INDETERMINATE) -washingmachine = getattr(IfcElectricApplianceTypeEnum, 'WASHINGMACHINE', INDETERMINATE) -userdefined = getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dishwasher = IfcElectricApplianceTypeEnum.DISHWASHER +electriccooker = IfcElectricApplianceTypeEnum.ELECTRICCOOKER +freestandingelectricheater = IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER +freestandingfan = IfcElectricApplianceTypeEnum.FREESTANDINGFAN +freestandingwaterheater = IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER +freestandingwatercooler = IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER +freezer = IfcElectricApplianceTypeEnum.FREEZER +fridge_freezer = IfcElectricApplianceTypeEnum.FRIDGE_FREEZER +handdryer = IfcElectricApplianceTypeEnum.HANDDRYER +kitchenmachine = IfcElectricApplianceTypeEnum.KITCHENMACHINE +microwave = IfcElectricApplianceTypeEnum.MICROWAVE +photocopier = IfcElectricApplianceTypeEnum.PHOTOCOPIER +refrigerator = IfcElectricApplianceTypeEnum.REFRIGERATOR +tumbledryer = IfcElectricApplianceTypeEnum.TUMBLEDRYER +vendingmachine = IfcElectricApplianceTypeEnum.VENDINGMACHINE +washingmachine = IfcElectricApplianceTypeEnum.WASHINGMACHINE +userdefined = IfcElectricApplianceTypeEnum.USERDEFINED +notdefined = IfcElectricApplianceTypeEnum.NOTDEFINED IfcElectricDistributionBoardTypeEnum = enum_namespace() -consumerunit = getattr(IfcElectricDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -distributionboard = getattr(IfcElectricDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -motorcontrolcentre = getattr(IfcElectricDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = getattr(IfcElectricDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT +distributionboard = IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD +motorcontrolcentre = IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcElectricDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcElectricDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcElectricDistributionBoardTypeEnum.NOTDEFINED IfcElectricFlowStorageDeviceTypeEnum = enum_namespace() -battery = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'BATTERY', INDETERMINATE) -capacitorbank = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITORBANK', INDETERMINATE) -harmonicfilter = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'HARMONICFILTER', INDETERMINATE) -inductorbank = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTORBANK', INDETERMINATE) -ups = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'UPS', INDETERMINATE) -capacitor = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITOR', INDETERMINATE) -compensator = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'COMPENSATOR', INDETERMINATE) -inductor = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTOR', INDETERMINATE) -recharger = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'RECHARGER', INDETERMINATE) -userdefined = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +battery = IfcElectricFlowStorageDeviceTypeEnum.BATTERY +capacitorbank = IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK +harmonicfilter = IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER +inductorbank = IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK +ups = IfcElectricFlowStorageDeviceTypeEnum.UPS +capacitor = IfcElectricFlowStorageDeviceTypeEnum.CAPACITOR +compensator = IfcElectricFlowStorageDeviceTypeEnum.COMPENSATOR +inductor = IfcElectricFlowStorageDeviceTypeEnum.INDUCTOR +recharger = IfcElectricFlowStorageDeviceTypeEnum.RECHARGER +userdefined = IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED IfcElectricFlowTreatmentDeviceTypeEnum = enum_namespace() -electronicfilter = getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'ELECTRONICFILTER', INDETERMINATE) -userdefined = getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronicfilter = IfcElectricFlowTreatmentDeviceTypeEnum.ELECTRONICFILTER +userdefined = IfcElectricFlowTreatmentDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowTreatmentDeviceTypeEnum.NOTDEFINED IfcElectricGeneratorTypeEnum = enum_namespace() -chp = getattr(IfcElectricGeneratorTypeEnum, 'CHP', INDETERMINATE) -enginegenerator = getattr(IfcElectricGeneratorTypeEnum, 'ENGINEGENERATOR', INDETERMINATE) -standalone = getattr(IfcElectricGeneratorTypeEnum, 'STANDALONE', INDETERMINATE) -userdefined = getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricGeneratorTypeEnum, 'NOTDEFINED', INDETERMINATE) +chp = IfcElectricGeneratorTypeEnum.CHP +enginegenerator = IfcElectricGeneratorTypeEnum.ENGINEGENERATOR +standalone = IfcElectricGeneratorTypeEnum.STANDALONE +userdefined = IfcElectricGeneratorTypeEnum.USERDEFINED +notdefined = IfcElectricGeneratorTypeEnum.NOTDEFINED IfcElectricMotorTypeEnum = enum_namespace() -dc = getattr(IfcElectricMotorTypeEnum, 'DC', INDETERMINATE) -induction = getattr(IfcElectricMotorTypeEnum, 'INDUCTION', INDETERMINATE) -polyphase = getattr(IfcElectricMotorTypeEnum, 'POLYPHASE', INDETERMINATE) -reluctancesynchronous = getattr(IfcElectricMotorTypeEnum, 'RELUCTANCESYNCHRONOUS', INDETERMINATE) -synchronous = getattr(IfcElectricMotorTypeEnum, 'SYNCHRONOUS', INDETERMINATE) -userdefined = getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricMotorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dc = IfcElectricMotorTypeEnum.DC +induction = IfcElectricMotorTypeEnum.INDUCTION +polyphase = IfcElectricMotorTypeEnum.POLYPHASE +reluctancesynchronous = IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS +synchronous = IfcElectricMotorTypeEnum.SYNCHRONOUS +userdefined = IfcElectricMotorTypeEnum.USERDEFINED +notdefined = IfcElectricMotorTypeEnum.NOTDEFINED IfcElectricTimeControlTypeEnum = enum_namespace() -timeclock = getattr(IfcElectricTimeControlTypeEnum, 'TIMECLOCK', INDETERMINATE) -timedelay = getattr(IfcElectricTimeControlTypeEnum, 'TIMEDELAY', INDETERMINATE) -relay = getattr(IfcElectricTimeControlTypeEnum, 'RELAY', INDETERMINATE) -userdefined = getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricTimeControlTypeEnum, 'NOTDEFINED', INDETERMINATE) +timeclock = IfcElectricTimeControlTypeEnum.TIMECLOCK +timedelay = IfcElectricTimeControlTypeEnum.TIMEDELAY +relay = IfcElectricTimeControlTypeEnum.RELAY +userdefined = IfcElectricTimeControlTypeEnum.USERDEFINED +notdefined = IfcElectricTimeControlTypeEnum.NOTDEFINED IfcElementAssemblyTypeEnum = enum_namespace() -accessory_assembly = getattr(IfcElementAssemblyTypeEnum, 'ACCESSORY_ASSEMBLY', INDETERMINATE) -arch = getattr(IfcElementAssemblyTypeEnum, 'ARCH', INDETERMINATE) -beam_grid = getattr(IfcElementAssemblyTypeEnum, 'BEAM_GRID', INDETERMINATE) -braced_frame = getattr(IfcElementAssemblyTypeEnum, 'BRACED_FRAME', INDETERMINATE) -girder = getattr(IfcElementAssemblyTypeEnum, 'GIRDER', INDETERMINATE) -reinforcement_unit = getattr(IfcElementAssemblyTypeEnum, 'REINFORCEMENT_UNIT', INDETERMINATE) -rigid_frame = getattr(IfcElementAssemblyTypeEnum, 'RIGID_FRAME', INDETERMINATE) -slab_field = getattr(IfcElementAssemblyTypeEnum, 'SLAB_FIELD', INDETERMINATE) -truss = getattr(IfcElementAssemblyTypeEnum, 'TRUSS', INDETERMINATE) -abutment = getattr(IfcElementAssemblyTypeEnum, 'ABUTMENT', INDETERMINATE) -pier = getattr(IfcElementAssemblyTypeEnum, 'PIER', INDETERMINATE) -pylon = getattr(IfcElementAssemblyTypeEnum, 'PYLON', INDETERMINATE) -cross_bracing = getattr(IfcElementAssemblyTypeEnum, 'CROSS_BRACING', INDETERMINATE) -deck = getattr(IfcElementAssemblyTypeEnum, 'DECK', INDETERMINATE) -mast = getattr(IfcElementAssemblyTypeEnum, 'MAST', INDETERMINATE) -signalassembly = getattr(IfcElementAssemblyTypeEnum, 'SIGNALASSEMBLY', INDETERMINATE) -grid = getattr(IfcElementAssemblyTypeEnum, 'GRID', INDETERMINATE) -shelter = getattr(IfcElementAssemblyTypeEnum, 'SHELTER', INDETERMINATE) -supportingassembly = getattr(IfcElementAssemblyTypeEnum, 'SUPPORTINGASSEMBLY', INDETERMINATE) -suspensionassembly = getattr(IfcElementAssemblyTypeEnum, 'SUSPENSIONASSEMBLY', INDETERMINATE) -traction_switching_assembly = getattr(IfcElementAssemblyTypeEnum, 'TRACTION_SWITCHING_ASSEMBLY', INDETERMINATE) -trackpanel = getattr(IfcElementAssemblyTypeEnum, 'TRACKPANEL', INDETERMINATE) -turnoutpanel = getattr(IfcElementAssemblyTypeEnum, 'TURNOUTPANEL', INDETERMINATE) -dilatationpanel = getattr(IfcElementAssemblyTypeEnum, 'DILATATIONPANEL', INDETERMINATE) -rail_mechanical_equipment_assembly = getattr(IfcElementAssemblyTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY', INDETERMINATE) -entranceworks = getattr(IfcElementAssemblyTypeEnum, 'ENTRANCEWORKS', INDETERMINATE) -sumpbuster = getattr(IfcElementAssemblyTypeEnum, 'SUMPBUSTER', INDETERMINATE) -traffic_calming_device = getattr(IfcElementAssemblyTypeEnum, 'TRAFFIC_CALMING_DEVICE', INDETERMINATE) -userdefined = getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElementAssemblyTypeEnum, 'NOTDEFINED', INDETERMINATE) +accessory_assembly = IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY +arch = IfcElementAssemblyTypeEnum.ARCH +beam_grid = IfcElementAssemblyTypeEnum.BEAM_GRID +braced_frame = IfcElementAssemblyTypeEnum.BRACED_FRAME +girder = IfcElementAssemblyTypeEnum.GIRDER +reinforcement_unit = IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT +rigid_frame = IfcElementAssemblyTypeEnum.RIGID_FRAME +slab_field = IfcElementAssemblyTypeEnum.SLAB_FIELD +truss = IfcElementAssemblyTypeEnum.TRUSS +abutment = IfcElementAssemblyTypeEnum.ABUTMENT +pier = IfcElementAssemblyTypeEnum.PIER +pylon = IfcElementAssemblyTypeEnum.PYLON +cross_bracing = IfcElementAssemblyTypeEnum.CROSS_BRACING +deck = IfcElementAssemblyTypeEnum.DECK +mast = IfcElementAssemblyTypeEnum.MAST +signalassembly = IfcElementAssemblyTypeEnum.SIGNALASSEMBLY +grid = IfcElementAssemblyTypeEnum.GRID +shelter = IfcElementAssemblyTypeEnum.SHELTER +supportingassembly = IfcElementAssemblyTypeEnum.SUPPORTINGASSEMBLY +suspensionassembly = IfcElementAssemblyTypeEnum.SUSPENSIONASSEMBLY +traction_switching_assembly = IfcElementAssemblyTypeEnum.TRACTION_SWITCHING_ASSEMBLY +trackpanel = IfcElementAssemblyTypeEnum.TRACKPANEL +turnoutpanel = IfcElementAssemblyTypeEnum.TURNOUTPANEL +dilatationpanel = IfcElementAssemblyTypeEnum.DILATATIONPANEL +rail_mechanical_equipment_assembly = IfcElementAssemblyTypeEnum.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY +entranceworks = IfcElementAssemblyTypeEnum.ENTRANCEWORKS +sumpbuster = IfcElementAssemblyTypeEnum.SUMPBUSTER +traffic_calming_device = IfcElementAssemblyTypeEnum.TRAFFIC_CALMING_DEVICE +userdefined = IfcElementAssemblyTypeEnum.USERDEFINED +notdefined = IfcElementAssemblyTypeEnum.NOTDEFINED IfcElementCompositionEnum = enum_namespace() -complex = getattr(IfcElementCompositionEnum, 'COMPLEX', INDETERMINATE) -element = getattr(IfcElementCompositionEnum, 'ELEMENT', INDETERMINATE) -partial = getattr(IfcElementCompositionEnum, 'PARTIAL', INDETERMINATE) +complex = IfcElementCompositionEnum.COMPLEX +element = IfcElementCompositionEnum.ELEMENT +partial = IfcElementCompositionEnum.PARTIAL IfcEngineTypeEnum = enum_namespace() -externalcombustion = getattr(IfcEngineTypeEnum, 'EXTERNALCOMBUSTION', INDETERMINATE) -internalcombustion = getattr(IfcEngineTypeEnum, 'INTERNALCOMBUSTION', INDETERMINATE) -userdefined = getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEngineTypeEnum, 'NOTDEFINED', INDETERMINATE) +externalcombustion = IfcEngineTypeEnum.EXTERNALCOMBUSTION +internalcombustion = IfcEngineTypeEnum.INTERNALCOMBUSTION +userdefined = IfcEngineTypeEnum.USERDEFINED +notdefined = IfcEngineTypeEnum.NOTDEFINED IfcEvaporativeCoolerTypeEnum = enum_namespace() -directevaporativerandommediaaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER', INDETERMINATE) -directevaporativerigidmediaaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER', INDETERMINATE) -directevaporativeslingerspackagedaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER', INDETERMINATE) -directevaporativepackagedrotaryaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER', INDETERMINATE) -directevaporativeairwasher = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEAIRWASHER', INDETERMINATE) -indirectevaporativepackageaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEPACKAGEAIRCOOLER', INDETERMINATE) -indirectevaporativewetcoil = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEWETCOIL', INDETERMINATE) -indirectevaporativecoolingtowerorcoilcooler = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER', INDETERMINATE) -indirectdirectcombination = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTDIRECTCOMBINATION', INDETERMINATE) -userdefined = getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEvaporativeCoolerTypeEnum, 'NOTDEFINED', INDETERMINATE) +directevaporativerandommediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER +directevaporativerigidmediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER +directevaporativeslingerspackagedaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER +directevaporativepackagedrotaryaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER +directevaporativeairwasher = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER +indirectevaporativepackageaircooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER +indirectevaporativewetcoil = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL +indirectevaporativecoolingtowerorcoilcooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER +indirectdirectcombination = IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION +userdefined = IfcEvaporativeCoolerTypeEnum.USERDEFINED +notdefined = IfcEvaporativeCoolerTypeEnum.NOTDEFINED IfcEvaporatorTypeEnum = enum_namespace() -directexpansion = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSION', INDETERMINATE) -directexpansionshellandtube = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONSHELLANDTUBE', INDETERMINATE) -directexpansiontubeintube = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONTUBEINTUBE', INDETERMINATE) -directexpansionbrazedplate = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONBRAZEDPLATE', INDETERMINATE) -floodedshellandtube = getattr(IfcEvaporatorTypeEnum, 'FLOODEDSHELLANDTUBE', INDETERMINATE) -shellandcoil = getattr(IfcEvaporatorTypeEnum, 'SHELLANDCOIL', INDETERMINATE) -userdefined = getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEvaporatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +directexpansion = IfcEvaporatorTypeEnum.DIRECTEXPANSION +directexpansionshellandtube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE +directexpansiontubeintube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE +directexpansionbrazedplate = IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE +floodedshellandtube = IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE +shellandcoil = IfcEvaporatorTypeEnum.SHELLANDCOIL +userdefined = IfcEvaporatorTypeEnum.USERDEFINED +notdefined = IfcEvaporatorTypeEnum.NOTDEFINED IfcEventTriggerTypeEnum = enum_namespace() -eventrule = getattr(IfcEventTriggerTypeEnum, 'EVENTRULE', INDETERMINATE) -eventmessage = getattr(IfcEventTriggerTypeEnum, 'EVENTMESSAGE', INDETERMINATE) -eventtime = getattr(IfcEventTriggerTypeEnum, 'EVENTTIME', INDETERMINATE) -eventcomplex = getattr(IfcEventTriggerTypeEnum, 'EVENTCOMPLEX', INDETERMINATE) -userdefined = getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEventTriggerTypeEnum, 'NOTDEFINED', INDETERMINATE) +eventrule = IfcEventTriggerTypeEnum.EVENTRULE +eventmessage = IfcEventTriggerTypeEnum.EVENTMESSAGE +eventtime = IfcEventTriggerTypeEnum.EVENTTIME +eventcomplex = IfcEventTriggerTypeEnum.EVENTCOMPLEX +userdefined = IfcEventTriggerTypeEnum.USERDEFINED +notdefined = IfcEventTriggerTypeEnum.NOTDEFINED IfcEventTypeEnum = enum_namespace() -startevent = getattr(IfcEventTypeEnum, 'STARTEVENT', INDETERMINATE) -endevent = getattr(IfcEventTypeEnum, 'ENDEVENT', INDETERMINATE) -intermediateevent = getattr(IfcEventTypeEnum, 'INTERMEDIATEEVENT', INDETERMINATE) -userdefined = getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEventTypeEnum, 'NOTDEFINED', INDETERMINATE) +startevent = IfcEventTypeEnum.STARTEVENT +endevent = IfcEventTypeEnum.ENDEVENT +intermediateevent = IfcEventTypeEnum.INTERMEDIATEEVENT +userdefined = IfcEventTypeEnum.USERDEFINED +notdefined = IfcEventTypeEnum.NOTDEFINED IfcExternalSpatialElementTypeEnum = enum_namespace() -external = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL', INDETERMINATE) -external_earth = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_water = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_WATER', INDETERMINATE) -external_fire = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_FIRE', INDETERMINATE) -userdefined = getattr(IfcExternalSpatialElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcExternalSpatialElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcExternalSpatialElementTypeEnum.EXTERNAL +external_earth = IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH +external_water = IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER +external_fire = IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE +userdefined = IfcExternalSpatialElementTypeEnum.USERDEFINED +notdefined = IfcExternalSpatialElementTypeEnum.NOTDEFINED IfcFacilityPartCommonTypeEnum = enum_namespace() -segment = getattr(IfcFacilityPartCommonTypeEnum, 'SEGMENT', INDETERMINATE) -aboveground = getattr(IfcFacilityPartCommonTypeEnum, 'ABOVEGROUND', INDETERMINATE) -junction = getattr(IfcFacilityPartCommonTypeEnum, 'JUNCTION', INDETERMINATE) -levelcrossing = getattr(IfcFacilityPartCommonTypeEnum, 'LEVELCROSSING', INDETERMINATE) -belowground = getattr(IfcFacilityPartCommonTypeEnum, 'BELOWGROUND', INDETERMINATE) -substructure = getattr(IfcFacilityPartCommonTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -terminal = getattr(IfcFacilityPartCommonTypeEnum, 'TERMINAL', INDETERMINATE) -superstructure = getattr(IfcFacilityPartCommonTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -userdefined = getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFacilityPartCommonTypeEnum, 'NOTDEFINED', INDETERMINATE) +segment = IfcFacilityPartCommonTypeEnum.SEGMENT +aboveground = IfcFacilityPartCommonTypeEnum.ABOVEGROUND +junction = IfcFacilityPartCommonTypeEnum.JUNCTION +levelcrossing = IfcFacilityPartCommonTypeEnum.LEVELCROSSING +belowground = IfcFacilityPartCommonTypeEnum.BELOWGROUND +substructure = IfcFacilityPartCommonTypeEnum.SUBSTRUCTURE +terminal = IfcFacilityPartCommonTypeEnum.TERMINAL +superstructure = IfcFacilityPartCommonTypeEnum.SUPERSTRUCTURE +userdefined = IfcFacilityPartCommonTypeEnum.USERDEFINED +notdefined = IfcFacilityPartCommonTypeEnum.NOTDEFINED IfcFacilityUsageEnum = enum_namespace() -lateral = getattr(IfcFacilityUsageEnum, 'LATERAL', INDETERMINATE) -region = getattr(IfcFacilityUsageEnum, 'REGION', INDETERMINATE) -vertical = getattr(IfcFacilityUsageEnum, 'VERTICAL', INDETERMINATE) -longitudinal = getattr(IfcFacilityUsageEnum, 'LONGITUDINAL', INDETERMINATE) -userdefined = getattr(IfcFacilityUsageEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFacilityUsageEnum, 'NOTDEFINED', INDETERMINATE) +lateral = IfcFacilityUsageEnum.LATERAL +region = IfcFacilityUsageEnum.REGION +vertical = IfcFacilityUsageEnum.VERTICAL +longitudinal = IfcFacilityUsageEnum.LONGITUDINAL +userdefined = IfcFacilityUsageEnum.USERDEFINED +notdefined = IfcFacilityUsageEnum.NOTDEFINED IfcFanTypeEnum = enum_namespace() -centrifugalforwardcurved = getattr(IfcFanTypeEnum, 'CENTRIFUGALFORWARDCURVED', INDETERMINATE) -centrifugalradial = getattr(IfcFanTypeEnum, 'CENTRIFUGALRADIAL', INDETERMINATE) -centrifugalbackwardinclinedcurved = getattr(IfcFanTypeEnum, 'CENTRIFUGALBACKWARDINCLINEDCURVED', INDETERMINATE) -centrifugalairfoil = getattr(IfcFanTypeEnum, 'CENTRIFUGALAIRFOIL', INDETERMINATE) -tubeaxial = getattr(IfcFanTypeEnum, 'TUBEAXIAL', INDETERMINATE) -vaneaxial = getattr(IfcFanTypeEnum, 'VANEAXIAL', INDETERMINATE) -propelloraxial = getattr(IfcFanTypeEnum, 'PROPELLORAXIAL', INDETERMINATE) -userdefined = getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFanTypeEnum, 'NOTDEFINED', INDETERMINATE) +centrifugalforwardcurved = IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED +centrifugalradial = IfcFanTypeEnum.CENTRIFUGALRADIAL +centrifugalbackwardinclinedcurved = IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED +centrifugalairfoil = IfcFanTypeEnum.CENTRIFUGALAIRFOIL +tubeaxial = IfcFanTypeEnum.TUBEAXIAL +vaneaxial = IfcFanTypeEnum.VANEAXIAL +propelloraxial = IfcFanTypeEnum.PROPELLORAXIAL +userdefined = IfcFanTypeEnum.USERDEFINED +notdefined = IfcFanTypeEnum.NOTDEFINED IfcFastenerTypeEnum = enum_namespace() -glue = getattr(IfcFastenerTypeEnum, 'GLUE', INDETERMINATE) -mortar = getattr(IfcFastenerTypeEnum, 'MORTAR', INDETERMINATE) -weld = getattr(IfcFastenerTypeEnum, 'WELD', INDETERMINATE) -userdefined = getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +glue = IfcFastenerTypeEnum.GLUE +mortar = IfcFastenerTypeEnum.MORTAR +weld = IfcFastenerTypeEnum.WELD +userdefined = IfcFastenerTypeEnum.USERDEFINED +notdefined = IfcFastenerTypeEnum.NOTDEFINED IfcFilterTypeEnum = enum_namespace() -airparticlefilter = getattr(IfcFilterTypeEnum, 'AIRPARTICLEFILTER', INDETERMINATE) -compressedairfilter = getattr(IfcFilterTypeEnum, 'COMPRESSEDAIRFILTER', INDETERMINATE) -odorfilter = getattr(IfcFilterTypeEnum, 'ODORFILTER', INDETERMINATE) -oilfilter = getattr(IfcFilterTypeEnum, 'OILFILTER', INDETERMINATE) -strainer = getattr(IfcFilterTypeEnum, 'STRAINER', INDETERMINATE) -waterfilter = getattr(IfcFilterTypeEnum, 'WATERFILTER', INDETERMINATE) -userdefined = getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFilterTypeEnum, 'NOTDEFINED', INDETERMINATE) +airparticlefilter = IfcFilterTypeEnum.AIRPARTICLEFILTER +compressedairfilter = IfcFilterTypeEnum.COMPRESSEDAIRFILTER +odorfilter = IfcFilterTypeEnum.ODORFILTER +oilfilter = IfcFilterTypeEnum.OILFILTER +strainer = IfcFilterTypeEnum.STRAINER +waterfilter = IfcFilterTypeEnum.WATERFILTER +userdefined = IfcFilterTypeEnum.USERDEFINED +notdefined = IfcFilterTypeEnum.NOTDEFINED IfcFireSuppressionTerminalTypeEnum = enum_namespace() -breechinginlet = getattr(IfcFireSuppressionTerminalTypeEnum, 'BREECHINGINLET', INDETERMINATE) -firehydrant = getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREHYDRANT', INDETERMINATE) -hosereel = getattr(IfcFireSuppressionTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -sprinkler = getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLER', INDETERMINATE) -sprinklerdeflector = getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLERDEFLECTOR', INDETERMINATE) -userdefined = getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFireSuppressionTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +breechinginlet = IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET +firehydrant = IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT +hosereel = IfcFireSuppressionTerminalTypeEnum.HOSEREEL +sprinkler = IfcFireSuppressionTerminalTypeEnum.SPRINKLER +sprinklerdeflector = IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR +userdefined = IfcFireSuppressionTerminalTypeEnum.USERDEFINED +notdefined = IfcFireSuppressionTerminalTypeEnum.NOTDEFINED IfcFlowDirectionEnum = enum_namespace() -source = getattr(IfcFlowDirectionEnum, 'SOURCE', INDETERMINATE) -sink = getattr(IfcFlowDirectionEnum, 'SINK', INDETERMINATE) -sourceandsink = getattr(IfcFlowDirectionEnum, 'SOURCEANDSINK', INDETERMINATE) -notdefined = getattr(IfcFlowDirectionEnum, 'NOTDEFINED', INDETERMINATE) +source = IfcFlowDirectionEnum.SOURCE +sink = IfcFlowDirectionEnum.SINK +sourceandsink = IfcFlowDirectionEnum.SOURCEANDSINK +notdefined = IfcFlowDirectionEnum.NOTDEFINED IfcFlowInstrumentTypeEnum = enum_namespace() -pressuregauge = getattr(IfcFlowInstrumentTypeEnum, 'PRESSUREGAUGE', INDETERMINATE) -thermometer = getattr(IfcFlowInstrumentTypeEnum, 'THERMOMETER', INDETERMINATE) -ammeter = getattr(IfcFlowInstrumentTypeEnum, 'AMMETER', INDETERMINATE) -frequencymeter = getattr(IfcFlowInstrumentTypeEnum, 'FREQUENCYMETER', INDETERMINATE) -powerfactormeter = getattr(IfcFlowInstrumentTypeEnum, 'POWERFACTORMETER', INDETERMINATE) -phaseanglemeter = getattr(IfcFlowInstrumentTypeEnum, 'PHASEANGLEMETER', INDETERMINATE) -voltmeter_peak = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_PEAK', INDETERMINATE) -voltmeter_rms = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_RMS', INDETERMINATE) -combined = getattr(IfcFlowInstrumentTypeEnum, 'COMBINED', INDETERMINATE) -voltmeter = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER', INDETERMINATE) -userdefined = getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFlowInstrumentTypeEnum, 'NOTDEFINED', INDETERMINATE) +pressuregauge = IfcFlowInstrumentTypeEnum.PRESSUREGAUGE +thermometer = IfcFlowInstrumentTypeEnum.THERMOMETER +ammeter = IfcFlowInstrumentTypeEnum.AMMETER +frequencymeter = IfcFlowInstrumentTypeEnum.FREQUENCYMETER +powerfactormeter = IfcFlowInstrumentTypeEnum.POWERFACTORMETER +phaseanglemeter = IfcFlowInstrumentTypeEnum.PHASEANGLEMETER +voltmeter_peak = IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK +voltmeter_rms = IfcFlowInstrumentTypeEnum.VOLTMETER_RMS +combined = IfcFlowInstrumentTypeEnum.COMBINED +voltmeter = IfcFlowInstrumentTypeEnum.VOLTMETER +userdefined = IfcFlowInstrumentTypeEnum.USERDEFINED +notdefined = IfcFlowInstrumentTypeEnum.NOTDEFINED IfcFlowMeterTypeEnum = enum_namespace() -energymeter = getattr(IfcFlowMeterTypeEnum, 'ENERGYMETER', INDETERMINATE) -gasmeter = getattr(IfcFlowMeterTypeEnum, 'GASMETER', INDETERMINATE) -oilmeter = getattr(IfcFlowMeterTypeEnum, 'OILMETER', INDETERMINATE) -watermeter = getattr(IfcFlowMeterTypeEnum, 'WATERMETER', INDETERMINATE) -userdefined = getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFlowMeterTypeEnum, 'NOTDEFINED', INDETERMINATE) +energymeter = IfcFlowMeterTypeEnum.ENERGYMETER +gasmeter = IfcFlowMeterTypeEnum.GASMETER +oilmeter = IfcFlowMeterTypeEnum.OILMETER +watermeter = IfcFlowMeterTypeEnum.WATERMETER +userdefined = IfcFlowMeterTypeEnum.USERDEFINED +notdefined = IfcFlowMeterTypeEnum.NOTDEFINED IfcFootingTypeEnum = enum_namespace() -caisson_foundation = getattr(IfcFootingTypeEnum, 'CAISSON_FOUNDATION', INDETERMINATE) -footing_beam = getattr(IfcFootingTypeEnum, 'FOOTING_BEAM', INDETERMINATE) -pad_footing = getattr(IfcFootingTypeEnum, 'PAD_FOOTING', INDETERMINATE) -pile_cap = getattr(IfcFootingTypeEnum, 'PILE_CAP', INDETERMINATE) -strip_footing = getattr(IfcFootingTypeEnum, 'STRIP_FOOTING', INDETERMINATE) -userdefined = getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFootingTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson_foundation = IfcFootingTypeEnum.CAISSON_FOUNDATION +footing_beam = IfcFootingTypeEnum.FOOTING_BEAM +pad_footing = IfcFootingTypeEnum.PAD_FOOTING +pile_cap = IfcFootingTypeEnum.PILE_CAP +strip_footing = IfcFootingTypeEnum.STRIP_FOOTING +userdefined = IfcFootingTypeEnum.USERDEFINED +notdefined = IfcFootingTypeEnum.NOTDEFINED IfcFurnitureTypeEnum = enum_namespace() -chair = getattr(IfcFurnitureTypeEnum, 'CHAIR', INDETERMINATE) -table = getattr(IfcFurnitureTypeEnum, 'TABLE', INDETERMINATE) -desk = getattr(IfcFurnitureTypeEnum, 'DESK', INDETERMINATE) -bed = getattr(IfcFurnitureTypeEnum, 'BED', INDETERMINATE) -filecabinet = getattr(IfcFurnitureTypeEnum, 'FILECABINET', INDETERMINATE) -shelf = getattr(IfcFurnitureTypeEnum, 'SHELF', INDETERMINATE) -sofa = getattr(IfcFurnitureTypeEnum, 'SOFA', INDETERMINATE) -technicalcabinet = getattr(IfcFurnitureTypeEnum, 'TECHNICALCABINET', INDETERMINATE) -userdefined = getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFurnitureTypeEnum, 'NOTDEFINED', INDETERMINATE) +chair = IfcFurnitureTypeEnum.CHAIR +table = IfcFurnitureTypeEnum.TABLE +desk = IfcFurnitureTypeEnum.DESK +bed = IfcFurnitureTypeEnum.BED +filecabinet = IfcFurnitureTypeEnum.FILECABINET +shelf = IfcFurnitureTypeEnum.SHELF +sofa = IfcFurnitureTypeEnum.SOFA +technicalcabinet = IfcFurnitureTypeEnum.TECHNICALCABINET +userdefined = IfcFurnitureTypeEnum.USERDEFINED +notdefined = IfcFurnitureTypeEnum.NOTDEFINED IfcGeographicElementTypeEnum = enum_namespace() -terrain = getattr(IfcGeographicElementTypeEnum, 'TERRAIN', INDETERMINATE) -soil_boring_point = getattr(IfcGeographicElementTypeEnum, 'SOIL_BORING_POINT', INDETERMINATE) -userdefined = getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGeographicElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +terrain = IfcGeographicElementTypeEnum.TERRAIN +soil_boring_point = IfcGeographicElementTypeEnum.SOIL_BORING_POINT +userdefined = IfcGeographicElementTypeEnum.USERDEFINED +notdefined = IfcGeographicElementTypeEnum.NOTDEFINED IfcGeometricProjectionEnum = enum_namespace() -graph_view = getattr(IfcGeometricProjectionEnum, 'GRAPH_VIEW', INDETERMINATE) -sketch_view = getattr(IfcGeometricProjectionEnum, 'SKETCH_VIEW', INDETERMINATE) -model_view = getattr(IfcGeometricProjectionEnum, 'MODEL_VIEW', INDETERMINATE) -plan_view = getattr(IfcGeometricProjectionEnum, 'PLAN_VIEW', INDETERMINATE) -reflected_plan_view = getattr(IfcGeometricProjectionEnum, 'REFLECTED_PLAN_VIEW', INDETERMINATE) -section_view = getattr(IfcGeometricProjectionEnum, 'SECTION_VIEW', INDETERMINATE) -elevation_view = getattr(IfcGeometricProjectionEnum, 'ELEVATION_VIEW', INDETERMINATE) -userdefined = getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGeometricProjectionEnum, 'NOTDEFINED', INDETERMINATE) +graph_view = IfcGeometricProjectionEnum.GRAPH_VIEW +sketch_view = IfcGeometricProjectionEnum.SKETCH_VIEW +model_view = IfcGeometricProjectionEnum.MODEL_VIEW +plan_view = IfcGeometricProjectionEnum.PLAN_VIEW +reflected_plan_view = IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW +section_view = IfcGeometricProjectionEnum.SECTION_VIEW +elevation_view = IfcGeometricProjectionEnum.ELEVATION_VIEW +userdefined = IfcGeometricProjectionEnum.USERDEFINED +notdefined = IfcGeometricProjectionEnum.NOTDEFINED IfcGlobalOrLocalEnum = enum_namespace() -global_coords = getattr(IfcGlobalOrLocalEnum, 'GLOBAL_COORDS', INDETERMINATE) -local_coords = getattr(IfcGlobalOrLocalEnum, 'LOCAL_COORDS', INDETERMINATE) +global_coords = IfcGlobalOrLocalEnum.GLOBAL_COORDS +local_coords = IfcGlobalOrLocalEnum.LOCAL_COORDS IfcGridTypeEnum = enum_namespace() -rectangular = getattr(IfcGridTypeEnum, 'RECTANGULAR', INDETERMINATE) -radial = getattr(IfcGridTypeEnum, 'RADIAL', INDETERMINATE) -triangular = getattr(IfcGridTypeEnum, 'TRIANGULAR', INDETERMINATE) -irregular = getattr(IfcGridTypeEnum, 'IRREGULAR', INDETERMINATE) -userdefined = getattr(IfcGridTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGridTypeEnum, 'NOTDEFINED', INDETERMINATE) +rectangular = IfcGridTypeEnum.RECTANGULAR +radial = IfcGridTypeEnum.RADIAL +triangular = IfcGridTypeEnum.TRIANGULAR +irregular = IfcGridTypeEnum.IRREGULAR +userdefined = IfcGridTypeEnum.USERDEFINED +notdefined = IfcGridTypeEnum.NOTDEFINED IfcHeatExchangerTypeEnum = enum_namespace() -plate = getattr(IfcHeatExchangerTypeEnum, 'PLATE', INDETERMINATE) -shellandtube = getattr(IfcHeatExchangerTypeEnum, 'SHELLANDTUBE', INDETERMINATE) -turnoutheating = getattr(IfcHeatExchangerTypeEnum, 'TURNOUTHEATING', INDETERMINATE) -userdefined = getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcHeatExchangerTypeEnum, 'NOTDEFINED', INDETERMINATE) +plate = IfcHeatExchangerTypeEnum.PLATE +shellandtube = IfcHeatExchangerTypeEnum.SHELLANDTUBE +turnoutheating = IfcHeatExchangerTypeEnum.TURNOUTHEATING +userdefined = IfcHeatExchangerTypeEnum.USERDEFINED +notdefined = IfcHeatExchangerTypeEnum.NOTDEFINED IfcHumidifierTypeEnum = enum_namespace() -steaminjection = getattr(IfcHumidifierTypeEnum, 'STEAMINJECTION', INDETERMINATE) -adiabaticairwasher = getattr(IfcHumidifierTypeEnum, 'ADIABATICAIRWASHER', INDETERMINATE) -adiabaticpan = getattr(IfcHumidifierTypeEnum, 'ADIABATICPAN', INDETERMINATE) -adiabaticwettedelement = getattr(IfcHumidifierTypeEnum, 'ADIABATICWETTEDELEMENT', INDETERMINATE) -adiabaticatomizing = getattr(IfcHumidifierTypeEnum, 'ADIABATICATOMIZING', INDETERMINATE) -adiabaticultrasonic = getattr(IfcHumidifierTypeEnum, 'ADIABATICULTRASONIC', INDETERMINATE) -adiabaticrigidmedia = getattr(IfcHumidifierTypeEnum, 'ADIABATICRIGIDMEDIA', INDETERMINATE) -adiabaticcompressedairnozzle = getattr(IfcHumidifierTypeEnum, 'ADIABATICCOMPRESSEDAIRNOZZLE', INDETERMINATE) -assistedelectric = getattr(IfcHumidifierTypeEnum, 'ASSISTEDELECTRIC', INDETERMINATE) -assistednaturalgas = getattr(IfcHumidifierTypeEnum, 'ASSISTEDNATURALGAS', INDETERMINATE) -assistedpropane = getattr(IfcHumidifierTypeEnum, 'ASSISTEDPROPANE', INDETERMINATE) -assistedbutane = getattr(IfcHumidifierTypeEnum, 'ASSISTEDBUTANE', INDETERMINATE) -assistedsteam = getattr(IfcHumidifierTypeEnum, 'ASSISTEDSTEAM', INDETERMINATE) -userdefined = getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcHumidifierTypeEnum, 'NOTDEFINED', INDETERMINATE) +steaminjection = IfcHumidifierTypeEnum.STEAMINJECTION +adiabaticairwasher = IfcHumidifierTypeEnum.ADIABATICAIRWASHER +adiabaticpan = IfcHumidifierTypeEnum.ADIABATICPAN +adiabaticwettedelement = IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT +adiabaticatomizing = IfcHumidifierTypeEnum.ADIABATICATOMIZING +adiabaticultrasonic = IfcHumidifierTypeEnum.ADIABATICULTRASONIC +adiabaticrigidmedia = IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA +adiabaticcompressedairnozzle = IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE +assistedelectric = IfcHumidifierTypeEnum.ASSISTEDELECTRIC +assistednaturalgas = IfcHumidifierTypeEnum.ASSISTEDNATURALGAS +assistedpropane = IfcHumidifierTypeEnum.ASSISTEDPROPANE +assistedbutane = IfcHumidifierTypeEnum.ASSISTEDBUTANE +assistedsteam = IfcHumidifierTypeEnum.ASSISTEDSTEAM +userdefined = IfcHumidifierTypeEnum.USERDEFINED +notdefined = IfcHumidifierTypeEnum.NOTDEFINED IfcImpactProtectionDeviceTypeEnum = enum_namespace() -crashcushion = getattr(IfcImpactProtectionDeviceTypeEnum, 'CRASHCUSHION', INDETERMINATE) -dampingsystem = getattr(IfcImpactProtectionDeviceTypeEnum, 'DAMPINGSYSTEM', INDETERMINATE) -fender = getattr(IfcImpactProtectionDeviceTypeEnum, 'FENDER', INDETERMINATE) -bumper = getattr(IfcImpactProtectionDeviceTypeEnum, 'BUMPER', INDETERMINATE) -userdefined = getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcImpactProtectionDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +crashcushion = IfcImpactProtectionDeviceTypeEnum.CRASHCUSHION +dampingsystem = IfcImpactProtectionDeviceTypeEnum.DAMPINGSYSTEM +fender = IfcImpactProtectionDeviceTypeEnum.FENDER +bumper = IfcImpactProtectionDeviceTypeEnum.BUMPER +userdefined = IfcImpactProtectionDeviceTypeEnum.USERDEFINED +notdefined = IfcImpactProtectionDeviceTypeEnum.NOTDEFINED IfcInterceptorTypeEnum = enum_namespace() -cyclonic = getattr(IfcInterceptorTypeEnum, 'CYCLONIC', INDETERMINATE) -grease = getattr(IfcInterceptorTypeEnum, 'GREASE', INDETERMINATE) -oil = getattr(IfcInterceptorTypeEnum, 'OIL', INDETERMINATE) -petrol = getattr(IfcInterceptorTypeEnum, 'PETROL', INDETERMINATE) -userdefined = getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcInterceptorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cyclonic = IfcInterceptorTypeEnum.CYCLONIC +grease = IfcInterceptorTypeEnum.GREASE +oil = IfcInterceptorTypeEnum.OIL +petrol = IfcInterceptorTypeEnum.PETROL +userdefined = IfcInterceptorTypeEnum.USERDEFINED +notdefined = IfcInterceptorTypeEnum.NOTDEFINED IfcInternalOrExternalEnum = enum_namespace() -internal = getattr(IfcInternalOrExternalEnum, 'INTERNAL', INDETERMINATE) -external = getattr(IfcInternalOrExternalEnum, 'EXTERNAL', INDETERMINATE) -external_earth = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_water = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_WATER', INDETERMINATE) -external_fire = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_FIRE', INDETERMINATE) -notdefined = getattr(IfcInternalOrExternalEnum, 'NOTDEFINED', INDETERMINATE) +internal = IfcInternalOrExternalEnum.INTERNAL +external = IfcInternalOrExternalEnum.EXTERNAL +external_earth = IfcInternalOrExternalEnum.EXTERNAL_EARTH +external_water = IfcInternalOrExternalEnum.EXTERNAL_WATER +external_fire = IfcInternalOrExternalEnum.EXTERNAL_FIRE +notdefined = IfcInternalOrExternalEnum.NOTDEFINED IfcInventoryTypeEnum = enum_namespace() -assetinventory = getattr(IfcInventoryTypeEnum, 'ASSETINVENTORY', INDETERMINATE) -spaceinventory = getattr(IfcInventoryTypeEnum, 'SPACEINVENTORY', INDETERMINATE) -furnitureinventory = getattr(IfcInventoryTypeEnum, 'FURNITUREINVENTORY', INDETERMINATE) -userdefined = getattr(IfcInventoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcInventoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +assetinventory = IfcInventoryTypeEnum.ASSETINVENTORY +spaceinventory = IfcInventoryTypeEnum.SPACEINVENTORY +furnitureinventory = IfcInventoryTypeEnum.FURNITUREINVENTORY +userdefined = IfcInventoryTypeEnum.USERDEFINED +notdefined = IfcInventoryTypeEnum.NOTDEFINED IfcJunctionBoxTypeEnum = enum_namespace() -data = getattr(IfcJunctionBoxTypeEnum, 'DATA', INDETERMINATE) -power = getattr(IfcJunctionBoxTypeEnum, 'POWER', INDETERMINATE) -userdefined = getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcJunctionBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +data = IfcJunctionBoxTypeEnum.DATA +power = IfcJunctionBoxTypeEnum.POWER +userdefined = IfcJunctionBoxTypeEnum.USERDEFINED +notdefined = IfcJunctionBoxTypeEnum.NOTDEFINED IfcKnotType = enum_namespace() -uniform_knots = getattr(IfcKnotType, 'UNIFORM_KNOTS', INDETERMINATE) -quasi_uniform_knots = getattr(IfcKnotType, 'QUASI_UNIFORM_KNOTS', INDETERMINATE) -piecewise_bezier_knots = getattr(IfcKnotType, 'PIECEWISE_BEZIER_KNOTS', INDETERMINATE) -unspecified = getattr(IfcKnotType, 'UNSPECIFIED', INDETERMINATE) +uniform_knots = IfcKnotType.UNIFORM_KNOTS +quasi_uniform_knots = IfcKnotType.QUASI_UNIFORM_KNOTS +piecewise_bezier_knots = IfcKnotType.PIECEWISE_BEZIER_KNOTS +unspecified = IfcKnotType.UNSPECIFIED IfcLaborResourceTypeEnum = enum_namespace() -administration = getattr(IfcLaborResourceTypeEnum, 'ADMINISTRATION', INDETERMINATE) -carpentry = getattr(IfcLaborResourceTypeEnum, 'CARPENTRY', INDETERMINATE) -cleaning = getattr(IfcLaborResourceTypeEnum, 'CLEANING', INDETERMINATE) -concrete = getattr(IfcLaborResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = getattr(IfcLaborResourceTypeEnum, 'DRYWALL', INDETERMINATE) -electric = getattr(IfcLaborResourceTypeEnum, 'ELECTRIC', INDETERMINATE) -finishing = getattr(IfcLaborResourceTypeEnum, 'FINISHING', INDETERMINATE) -flooring = getattr(IfcLaborResourceTypeEnum, 'FLOORING', INDETERMINATE) -general = getattr(IfcLaborResourceTypeEnum, 'GENERAL', INDETERMINATE) -hvac = getattr(IfcLaborResourceTypeEnum, 'HVAC', INDETERMINATE) -landscaping = getattr(IfcLaborResourceTypeEnum, 'LANDSCAPING', INDETERMINATE) -masonry = getattr(IfcLaborResourceTypeEnum, 'MASONRY', INDETERMINATE) -painting = getattr(IfcLaborResourceTypeEnum, 'PAINTING', INDETERMINATE) -paving = getattr(IfcLaborResourceTypeEnum, 'PAVING', INDETERMINATE) -plumbing = getattr(IfcLaborResourceTypeEnum, 'PLUMBING', INDETERMINATE) -roofing = getattr(IfcLaborResourceTypeEnum, 'ROOFING', INDETERMINATE) -sitegrading = getattr(IfcLaborResourceTypeEnum, 'SITEGRADING', INDETERMINATE) -steelwork = getattr(IfcLaborResourceTypeEnum, 'STEELWORK', INDETERMINATE) -surveying = getattr(IfcLaborResourceTypeEnum, 'SURVEYING', INDETERMINATE) -userdefined = getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLaborResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +administration = IfcLaborResourceTypeEnum.ADMINISTRATION +carpentry = IfcLaborResourceTypeEnum.CARPENTRY +cleaning = IfcLaborResourceTypeEnum.CLEANING +concrete = IfcLaborResourceTypeEnum.CONCRETE +drywall = IfcLaborResourceTypeEnum.DRYWALL +electric = IfcLaborResourceTypeEnum.ELECTRIC +finishing = IfcLaborResourceTypeEnum.FINISHING +flooring = IfcLaborResourceTypeEnum.FLOORING +general = IfcLaborResourceTypeEnum.GENERAL +hvac = IfcLaborResourceTypeEnum.HVAC +landscaping = IfcLaborResourceTypeEnum.LANDSCAPING +masonry = IfcLaborResourceTypeEnum.MASONRY +painting = IfcLaborResourceTypeEnum.PAINTING +paving = IfcLaborResourceTypeEnum.PAVING +plumbing = IfcLaborResourceTypeEnum.PLUMBING +roofing = IfcLaborResourceTypeEnum.ROOFING +sitegrading = IfcLaborResourceTypeEnum.SITEGRADING +steelwork = IfcLaborResourceTypeEnum.STEELWORK +surveying = IfcLaborResourceTypeEnum.SURVEYING +userdefined = IfcLaborResourceTypeEnum.USERDEFINED +notdefined = IfcLaborResourceTypeEnum.NOTDEFINED IfcLampTypeEnum = enum_namespace() -compactfluorescent = getattr(IfcLampTypeEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = getattr(IfcLampTypeEnum, 'FLUORESCENT', INDETERMINATE) -halogen = getattr(IfcLampTypeEnum, 'HALOGEN', INDETERMINATE) -highpressuremercury = getattr(IfcLampTypeEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = getattr(IfcLampTypeEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -led = getattr(IfcLampTypeEnum, 'LED', INDETERMINATE) -metalhalide = getattr(IfcLampTypeEnum, 'METALHALIDE', INDETERMINATE) -oled = getattr(IfcLampTypeEnum, 'OLED', INDETERMINATE) -tungstenfilament = getattr(IfcLampTypeEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -userdefined = getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLampTypeEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLampTypeEnum.COMPACTFLUORESCENT +fluorescent = IfcLampTypeEnum.FLUORESCENT +halogen = IfcLampTypeEnum.HALOGEN +highpressuremercury = IfcLampTypeEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLampTypeEnum.HIGHPRESSURESODIUM +led = IfcLampTypeEnum.LED +metalhalide = IfcLampTypeEnum.METALHALIDE +oled = IfcLampTypeEnum.OLED +tungstenfilament = IfcLampTypeEnum.TUNGSTENFILAMENT +userdefined = IfcLampTypeEnum.USERDEFINED +notdefined = IfcLampTypeEnum.NOTDEFINED IfcLayerSetDirectionEnum = enum_namespace() -axis1 = getattr(IfcLayerSetDirectionEnum, 'AXIS1', INDETERMINATE) -axis2 = getattr(IfcLayerSetDirectionEnum, 'AXIS2', INDETERMINATE) -axis3 = getattr(IfcLayerSetDirectionEnum, 'AXIS3', INDETERMINATE) +axis1 = IfcLayerSetDirectionEnum.AXIS1 +axis2 = IfcLayerSetDirectionEnum.AXIS2 +axis3 = IfcLayerSetDirectionEnum.AXIS3 IfcLightDistributionCurveEnum = enum_namespace() -type_a = getattr(IfcLightDistributionCurveEnum, 'TYPE_A', INDETERMINATE) -type_b = getattr(IfcLightDistributionCurveEnum, 'TYPE_B', INDETERMINATE) -type_c = getattr(IfcLightDistributionCurveEnum, 'TYPE_C', INDETERMINATE) -notdefined = getattr(IfcLightDistributionCurveEnum, 'NOTDEFINED', INDETERMINATE) +type_a = IfcLightDistributionCurveEnum.TYPE_A +type_b = IfcLightDistributionCurveEnum.TYPE_B +type_c = IfcLightDistributionCurveEnum.TYPE_C +notdefined = IfcLightDistributionCurveEnum.NOTDEFINED IfcLightEmissionSourceEnum = enum_namespace() -compactfluorescent = getattr(IfcLightEmissionSourceEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = getattr(IfcLightEmissionSourceEnum, 'FLUORESCENT', INDETERMINATE) -highpressuremercury = getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -lightemittingdiode = getattr(IfcLightEmissionSourceEnum, 'LIGHTEMITTINGDIODE', INDETERMINATE) -lowpressuresodium = getattr(IfcLightEmissionSourceEnum, 'LOWPRESSURESODIUM', INDETERMINATE) -lowvoltagehalogen = getattr(IfcLightEmissionSourceEnum, 'LOWVOLTAGEHALOGEN', INDETERMINATE) -mainvoltagehalogen = getattr(IfcLightEmissionSourceEnum, 'MAINVOLTAGEHALOGEN', INDETERMINATE) -metalhalide = getattr(IfcLightEmissionSourceEnum, 'METALHALIDE', INDETERMINATE) -tungstenfilament = getattr(IfcLightEmissionSourceEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -notdefined = getattr(IfcLightEmissionSourceEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLightEmissionSourceEnum.COMPACTFLUORESCENT +fluorescent = IfcLightEmissionSourceEnum.FLUORESCENT +highpressuremercury = IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM +lightemittingdiode = IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE +lowpressuresodium = IfcLightEmissionSourceEnum.LOWPRESSURESODIUM +lowvoltagehalogen = IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN +mainvoltagehalogen = IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN +metalhalide = IfcLightEmissionSourceEnum.METALHALIDE +tungstenfilament = IfcLightEmissionSourceEnum.TUNGSTENFILAMENT +notdefined = IfcLightEmissionSourceEnum.NOTDEFINED IfcLightFixtureTypeEnum = enum_namespace() -pointsource = getattr(IfcLightFixtureTypeEnum, 'POINTSOURCE', INDETERMINATE) -directionsource = getattr(IfcLightFixtureTypeEnum, 'DIRECTIONSOURCE', INDETERMINATE) -securitylighting = getattr(IfcLightFixtureTypeEnum, 'SECURITYLIGHTING', INDETERMINATE) -userdefined = getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLightFixtureTypeEnum, 'NOTDEFINED', INDETERMINATE) +pointsource = IfcLightFixtureTypeEnum.POINTSOURCE +directionsource = IfcLightFixtureTypeEnum.DIRECTIONSOURCE +securitylighting = IfcLightFixtureTypeEnum.SECURITYLIGHTING +userdefined = IfcLightFixtureTypeEnum.USERDEFINED +notdefined = IfcLightFixtureTypeEnum.NOTDEFINED IfcLiquidTerminalTypeEnum = enum_namespace() -loadingarm = getattr(IfcLiquidTerminalTypeEnum, 'LOADINGARM', INDETERMINATE) -hosereel = getattr(IfcLiquidTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -userdefined = getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLiquidTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +loadingarm = IfcLiquidTerminalTypeEnum.LOADINGARM +hosereel = IfcLiquidTerminalTypeEnum.HOSEREEL +userdefined = IfcLiquidTerminalTypeEnum.USERDEFINED +notdefined = IfcLiquidTerminalTypeEnum.NOTDEFINED IfcLoadGroupTypeEnum = enum_namespace() -load_group = getattr(IfcLoadGroupTypeEnum, 'LOAD_GROUP', INDETERMINATE) -load_case = getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE) -load_combination = getattr(IfcLoadGroupTypeEnum, 'LOAD_COMBINATION', INDETERMINATE) -userdefined = getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLoadGroupTypeEnum, 'NOTDEFINED', INDETERMINATE) +load_group = IfcLoadGroupTypeEnum.LOAD_GROUP +load_case = IfcLoadGroupTypeEnum.LOAD_CASE +load_combination = IfcLoadGroupTypeEnum.LOAD_COMBINATION +userdefined = IfcLoadGroupTypeEnum.USERDEFINED +notdefined = IfcLoadGroupTypeEnum.NOTDEFINED IfcLogicalOperatorEnum = enum_namespace() -logicaland = getattr(IfcLogicalOperatorEnum, 'LOGICALAND', INDETERMINATE) -logicalor = getattr(IfcLogicalOperatorEnum, 'LOGICALOR', INDETERMINATE) -logicalxor = getattr(IfcLogicalOperatorEnum, 'LOGICALXOR', INDETERMINATE) -logicalnotand = getattr(IfcLogicalOperatorEnum, 'LOGICALNOTAND', INDETERMINATE) -logicalnotor = getattr(IfcLogicalOperatorEnum, 'LOGICALNOTOR', INDETERMINATE) +logicaland = IfcLogicalOperatorEnum.LOGICALAND +logicalor = IfcLogicalOperatorEnum.LOGICALOR +logicalxor = IfcLogicalOperatorEnum.LOGICALXOR +logicalnotand = IfcLogicalOperatorEnum.LOGICALNOTAND +logicalnotor = IfcLogicalOperatorEnum.LOGICALNOTOR IfcMarineFacilityTypeEnum = enum_namespace() -canal = getattr(IfcMarineFacilityTypeEnum, 'CANAL', INDETERMINATE) -waterwayshiplift = getattr(IfcMarineFacilityTypeEnum, 'WATERWAYSHIPLIFT', INDETERMINATE) -embankment = getattr(IfcMarineFacilityTypeEnum, 'EMBANKMENT', INDETERMINATE) -launchrecovery = getattr(IfcMarineFacilityTypeEnum, 'LAUNCHRECOVERY', INDETERMINATE) -marinedefence = getattr(IfcMarineFacilityTypeEnum, 'MARINEDEFENCE', INDETERMINATE) -hydrolift = getattr(IfcMarineFacilityTypeEnum, 'HYDROLIFT', INDETERMINATE) -shipyard = getattr(IfcMarineFacilityTypeEnum, 'SHIPYARD', INDETERMINATE) -shiplift = getattr(IfcMarineFacilityTypeEnum, 'SHIPLIFT', INDETERMINATE) -port = getattr(IfcMarineFacilityTypeEnum, 'PORT', INDETERMINATE) -quay = getattr(IfcMarineFacilityTypeEnum, 'QUAY', INDETERMINATE) -floatingdock = getattr(IfcMarineFacilityTypeEnum, 'FLOATINGDOCK', INDETERMINATE) -navigationalchannel = getattr(IfcMarineFacilityTypeEnum, 'NAVIGATIONALCHANNEL', INDETERMINATE) -breakwater = getattr(IfcMarineFacilityTypeEnum, 'BREAKWATER', INDETERMINATE) -drydock = getattr(IfcMarineFacilityTypeEnum, 'DRYDOCK', INDETERMINATE) -jetty = getattr(IfcMarineFacilityTypeEnum, 'JETTY', INDETERMINATE) -shiplock = getattr(IfcMarineFacilityTypeEnum, 'SHIPLOCK', INDETERMINATE) -barrierbeach = getattr(IfcMarineFacilityTypeEnum, 'BARRIERBEACH', INDETERMINATE) -slipway = getattr(IfcMarineFacilityTypeEnum, 'SLIPWAY', INDETERMINATE) -waterway = getattr(IfcMarineFacilityTypeEnum, 'WATERWAY', INDETERMINATE) -userdefined = getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMarineFacilityTypeEnum, 'NOTDEFINED', INDETERMINATE) +canal = IfcMarineFacilityTypeEnum.CANAL +waterwayshiplift = IfcMarineFacilityTypeEnum.WATERWAYSHIPLIFT +embankment = IfcMarineFacilityTypeEnum.EMBANKMENT +launchrecovery = IfcMarineFacilityTypeEnum.LAUNCHRECOVERY +marinedefence = IfcMarineFacilityTypeEnum.MARINEDEFENCE +hydrolift = IfcMarineFacilityTypeEnum.HYDROLIFT +shipyard = IfcMarineFacilityTypeEnum.SHIPYARD +shiplift = IfcMarineFacilityTypeEnum.SHIPLIFT +port = IfcMarineFacilityTypeEnum.PORT +quay = IfcMarineFacilityTypeEnum.QUAY +floatingdock = IfcMarineFacilityTypeEnum.FLOATINGDOCK +navigationalchannel = IfcMarineFacilityTypeEnum.NAVIGATIONALCHANNEL +breakwater = IfcMarineFacilityTypeEnum.BREAKWATER +drydock = IfcMarineFacilityTypeEnum.DRYDOCK +jetty = IfcMarineFacilityTypeEnum.JETTY +shiplock = IfcMarineFacilityTypeEnum.SHIPLOCK +barrierbeach = IfcMarineFacilityTypeEnum.BARRIERBEACH +slipway = IfcMarineFacilityTypeEnum.SLIPWAY +waterway = IfcMarineFacilityTypeEnum.WATERWAY +userdefined = IfcMarineFacilityTypeEnum.USERDEFINED +notdefined = IfcMarineFacilityTypeEnum.NOTDEFINED IfcMarinePartTypeEnum = enum_namespace() -crest = getattr(IfcMarinePartTypeEnum, 'CREST', INDETERMINATE) -manufacturing = getattr(IfcMarinePartTypeEnum, 'MANUFACTURING', INDETERMINATE) -lowwaterline = getattr(IfcMarinePartTypeEnum, 'LOWWATERLINE', INDETERMINATE) -core = getattr(IfcMarinePartTypeEnum, 'CORE', INDETERMINATE) -waterfield = getattr(IfcMarinePartTypeEnum, 'WATERFIELD', INDETERMINATE) -cill_level = getattr(IfcMarinePartTypeEnum, 'CILL_LEVEL', INDETERMINATE) -berthingstructure = getattr(IfcMarinePartTypeEnum, 'BERTHINGSTRUCTURE', INDETERMINATE) -copelevel = getattr(IfcMarinePartTypeEnum, 'COPELEVEL', INDETERMINATE) -chamber = getattr(IfcMarinePartTypeEnum, 'CHAMBER', INDETERMINATE) -storage = getattr(IfcMarinePartTypeEnum, 'STORAGE', INDETERMINATE) -approachchannel = getattr(IfcMarinePartTypeEnum, 'APPROACHCHANNEL', INDETERMINATE) -vehicleservicing = getattr(IfcMarinePartTypeEnum, 'VEHICLESERVICING', INDETERMINATE) -shiptransfer = getattr(IfcMarinePartTypeEnum, 'SHIPTRANSFER', INDETERMINATE) -gatehead = getattr(IfcMarinePartTypeEnum, 'GATEHEAD', INDETERMINATE) -gudingstructure = getattr(IfcMarinePartTypeEnum, 'GUDINGSTRUCTURE', INDETERMINATE) -belowwaterline = getattr(IfcMarinePartTypeEnum, 'BELOWWATERLINE', INDETERMINATE) -weatherside = getattr(IfcMarinePartTypeEnum, 'WEATHERSIDE', INDETERMINATE) -landfield = getattr(IfcMarinePartTypeEnum, 'LANDFIELD', INDETERMINATE) -protection = getattr(IfcMarinePartTypeEnum, 'PROTECTION', INDETERMINATE) -leewardside = getattr(IfcMarinePartTypeEnum, 'LEEWARDSIDE', INDETERMINATE) -abovewaterline = getattr(IfcMarinePartTypeEnum, 'ABOVEWATERLINE', INDETERMINATE) -anchorage = getattr(IfcMarinePartTypeEnum, 'ANCHORAGE', INDETERMINATE) -navigationalarea = getattr(IfcMarinePartTypeEnum, 'NAVIGATIONALAREA', INDETERMINATE) -highwaterline = getattr(IfcMarinePartTypeEnum, 'HIGHWATERLINE', INDETERMINATE) -userdefined = getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMarinePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +crest = IfcMarinePartTypeEnum.CREST +manufacturing = IfcMarinePartTypeEnum.MANUFACTURING +lowwaterline = IfcMarinePartTypeEnum.LOWWATERLINE +core = IfcMarinePartTypeEnum.CORE +waterfield = IfcMarinePartTypeEnum.WATERFIELD +cill_level = IfcMarinePartTypeEnum.CILL_LEVEL +berthingstructure = IfcMarinePartTypeEnum.BERTHINGSTRUCTURE +copelevel = IfcMarinePartTypeEnum.COPELEVEL +chamber = IfcMarinePartTypeEnum.CHAMBER +storage = IfcMarinePartTypeEnum.STORAGE +approachchannel = IfcMarinePartTypeEnum.APPROACHCHANNEL +vehicleservicing = IfcMarinePartTypeEnum.VEHICLESERVICING +shiptransfer = IfcMarinePartTypeEnum.SHIPTRANSFER +gatehead = IfcMarinePartTypeEnum.GATEHEAD +gudingstructure = IfcMarinePartTypeEnum.GUDINGSTRUCTURE +belowwaterline = IfcMarinePartTypeEnum.BELOWWATERLINE +weatherside = IfcMarinePartTypeEnum.WEATHERSIDE +landfield = IfcMarinePartTypeEnum.LANDFIELD +protection = IfcMarinePartTypeEnum.PROTECTION +leewardside = IfcMarinePartTypeEnum.LEEWARDSIDE +abovewaterline = IfcMarinePartTypeEnum.ABOVEWATERLINE +anchorage = IfcMarinePartTypeEnum.ANCHORAGE +navigationalarea = IfcMarinePartTypeEnum.NAVIGATIONALAREA +highwaterline = IfcMarinePartTypeEnum.HIGHWATERLINE +userdefined = IfcMarinePartTypeEnum.USERDEFINED +notdefined = IfcMarinePartTypeEnum.NOTDEFINED IfcMechanicalFastenerTypeEnum = enum_namespace() -anchorbolt = getattr(IfcMechanicalFastenerTypeEnum, 'ANCHORBOLT', INDETERMINATE) -bolt = getattr(IfcMechanicalFastenerTypeEnum, 'BOLT', INDETERMINATE) -dowel = getattr(IfcMechanicalFastenerTypeEnum, 'DOWEL', INDETERMINATE) -nail = getattr(IfcMechanicalFastenerTypeEnum, 'NAIL', INDETERMINATE) -nailplate = getattr(IfcMechanicalFastenerTypeEnum, 'NAILPLATE', INDETERMINATE) -rivet = getattr(IfcMechanicalFastenerTypeEnum, 'RIVET', INDETERMINATE) -screw = getattr(IfcMechanicalFastenerTypeEnum, 'SCREW', INDETERMINATE) -shearconnector = getattr(IfcMechanicalFastenerTypeEnum, 'SHEARCONNECTOR', INDETERMINATE) -staple = getattr(IfcMechanicalFastenerTypeEnum, 'STAPLE', INDETERMINATE) -studshearconnector = getattr(IfcMechanicalFastenerTypeEnum, 'STUDSHEARCONNECTOR', INDETERMINATE) -coupler = getattr(IfcMechanicalFastenerTypeEnum, 'COUPLER', INDETERMINATE) -railjoint = getattr(IfcMechanicalFastenerTypeEnum, 'RAILJOINT', INDETERMINATE) -railfastening = getattr(IfcMechanicalFastenerTypeEnum, 'RAILFASTENING', INDETERMINATE) -chain = getattr(IfcMechanicalFastenerTypeEnum, 'CHAIN', INDETERMINATE) -rope = getattr(IfcMechanicalFastenerTypeEnum, 'ROPE', INDETERMINATE) -userdefined = getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMechanicalFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorbolt = IfcMechanicalFastenerTypeEnum.ANCHORBOLT +bolt = IfcMechanicalFastenerTypeEnum.BOLT +dowel = IfcMechanicalFastenerTypeEnum.DOWEL +nail = IfcMechanicalFastenerTypeEnum.NAIL +nailplate = IfcMechanicalFastenerTypeEnum.NAILPLATE +rivet = IfcMechanicalFastenerTypeEnum.RIVET +screw = IfcMechanicalFastenerTypeEnum.SCREW +shearconnector = IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR +staple = IfcMechanicalFastenerTypeEnum.STAPLE +studshearconnector = IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR +coupler = IfcMechanicalFastenerTypeEnum.COUPLER +railjoint = IfcMechanicalFastenerTypeEnum.RAILJOINT +railfastening = IfcMechanicalFastenerTypeEnum.RAILFASTENING +chain = IfcMechanicalFastenerTypeEnum.CHAIN +rope = IfcMechanicalFastenerTypeEnum.ROPE +userdefined = IfcMechanicalFastenerTypeEnum.USERDEFINED +notdefined = IfcMechanicalFastenerTypeEnum.NOTDEFINED IfcMedicalDeviceTypeEnum = enum_namespace() -airstation = getattr(IfcMedicalDeviceTypeEnum, 'AIRSTATION', INDETERMINATE) -feedairunit = getattr(IfcMedicalDeviceTypeEnum, 'FEEDAIRUNIT', INDETERMINATE) -oxygengenerator = getattr(IfcMedicalDeviceTypeEnum, 'OXYGENGENERATOR', INDETERMINATE) -oxygenplant = getattr(IfcMedicalDeviceTypeEnum, 'OXYGENPLANT', INDETERMINATE) -vacuumstation = getattr(IfcMedicalDeviceTypeEnum, 'VACUUMSTATION', INDETERMINATE) -userdefined = getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMedicalDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +airstation = IfcMedicalDeviceTypeEnum.AIRSTATION +feedairunit = IfcMedicalDeviceTypeEnum.FEEDAIRUNIT +oxygengenerator = IfcMedicalDeviceTypeEnum.OXYGENGENERATOR +oxygenplant = IfcMedicalDeviceTypeEnum.OXYGENPLANT +vacuumstation = IfcMedicalDeviceTypeEnum.VACUUMSTATION +userdefined = IfcMedicalDeviceTypeEnum.USERDEFINED +notdefined = IfcMedicalDeviceTypeEnum.NOTDEFINED IfcMemberTypeEnum = enum_namespace() -brace = getattr(IfcMemberTypeEnum, 'BRACE', INDETERMINATE) -chord = getattr(IfcMemberTypeEnum, 'CHORD', INDETERMINATE) -collar = getattr(IfcMemberTypeEnum, 'COLLAR', INDETERMINATE) -member = getattr(IfcMemberTypeEnum, 'MEMBER', INDETERMINATE) -mullion = getattr(IfcMemberTypeEnum, 'MULLION', INDETERMINATE) -plate = getattr(IfcMemberTypeEnum, 'PLATE', INDETERMINATE) -post = getattr(IfcMemberTypeEnum, 'POST', INDETERMINATE) -purlin = getattr(IfcMemberTypeEnum, 'PURLIN', INDETERMINATE) -rafter = getattr(IfcMemberTypeEnum, 'RAFTER', INDETERMINATE) -stringer = getattr(IfcMemberTypeEnum, 'STRINGER', INDETERMINATE) -strut = getattr(IfcMemberTypeEnum, 'STRUT', INDETERMINATE) -stud = getattr(IfcMemberTypeEnum, 'STUD', INDETERMINATE) -stiffening_rib = getattr(IfcMemberTypeEnum, 'STIFFENING_RIB', INDETERMINATE) -arch_segment = getattr(IfcMemberTypeEnum, 'ARCH_SEGMENT', INDETERMINATE) -suspension_cable = getattr(IfcMemberTypeEnum, 'SUSPENSION_CABLE', INDETERMINATE) -suspender = getattr(IfcMemberTypeEnum, 'SUSPENDER', INDETERMINATE) -stay_cable = getattr(IfcMemberTypeEnum, 'STAY_CABLE', INDETERMINATE) -structuralcable = getattr(IfcMemberTypeEnum, 'STRUCTURALCABLE', INDETERMINATE) -tiebar = getattr(IfcMemberTypeEnum, 'TIEBAR', INDETERMINATE) -userdefined = getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +brace = IfcMemberTypeEnum.BRACE +chord = IfcMemberTypeEnum.CHORD +collar = IfcMemberTypeEnum.COLLAR +member = IfcMemberTypeEnum.MEMBER +mullion = IfcMemberTypeEnum.MULLION +plate = IfcMemberTypeEnum.PLATE +post = IfcMemberTypeEnum.POST +purlin = IfcMemberTypeEnum.PURLIN +rafter = IfcMemberTypeEnum.RAFTER +stringer = IfcMemberTypeEnum.STRINGER +strut = IfcMemberTypeEnum.STRUT +stud = IfcMemberTypeEnum.STUD +stiffening_rib = IfcMemberTypeEnum.STIFFENING_RIB +arch_segment = IfcMemberTypeEnum.ARCH_SEGMENT +suspension_cable = IfcMemberTypeEnum.SUSPENSION_CABLE +suspender = IfcMemberTypeEnum.SUSPENDER +stay_cable = IfcMemberTypeEnum.STAY_CABLE +structuralcable = IfcMemberTypeEnum.STRUCTURALCABLE +tiebar = IfcMemberTypeEnum.TIEBAR +userdefined = IfcMemberTypeEnum.USERDEFINED +notdefined = IfcMemberTypeEnum.NOTDEFINED IfcMobileTelecommunicationsApplianceTypeEnum = enum_namespace() -e_utran_node_b = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'E_UTRAN_NODE_B', INDETERMINATE) -remote_radio_unit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTE_RADIO_UNIT', INDETERMINATE) -accesspoint = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'ACCESSPOINT', INDETERMINATE) -basetransceiverstation = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASETRANSCEIVERSTATION', INDETERMINATE) -remoteunit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTEUNIT', INDETERMINATE) -basebandunit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASEBANDUNIT', INDETERMINATE) -masterunit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MASTERUNIT', INDETERMINATE) -userdefined = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +e_utran_node_b = IfcMobileTelecommunicationsApplianceTypeEnum.E_UTRAN_NODE_B +remote_radio_unit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTE_RADIO_UNIT +accesspoint = IfcMobileTelecommunicationsApplianceTypeEnum.ACCESSPOINT +basetransceiverstation = IfcMobileTelecommunicationsApplianceTypeEnum.BASETRANSCEIVERSTATION +remoteunit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTEUNIT +basebandunit = IfcMobileTelecommunicationsApplianceTypeEnum.BASEBANDUNIT +masterunit = IfcMobileTelecommunicationsApplianceTypeEnum.MASTERUNIT +userdefined = IfcMobileTelecommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcMobileTelecommunicationsApplianceTypeEnum.NOTDEFINED IfcMooringDeviceTypeEnum = enum_namespace() -linetensioner = getattr(IfcMooringDeviceTypeEnum, 'LINETENSIONER', INDETERMINATE) -magneticdevice = getattr(IfcMooringDeviceTypeEnum, 'MAGNETICDEVICE', INDETERMINATE) -mooringhooks = getattr(IfcMooringDeviceTypeEnum, 'MOORINGHOOKS', INDETERMINATE) -vacuumdevice = getattr(IfcMooringDeviceTypeEnum, 'VACUUMDEVICE', INDETERMINATE) -bollard = getattr(IfcMooringDeviceTypeEnum, 'BOLLARD', INDETERMINATE) -userdefined = getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMooringDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +linetensioner = IfcMooringDeviceTypeEnum.LINETENSIONER +magneticdevice = IfcMooringDeviceTypeEnum.MAGNETICDEVICE +mooringhooks = IfcMooringDeviceTypeEnum.MOORINGHOOKS +vacuumdevice = IfcMooringDeviceTypeEnum.VACUUMDEVICE +bollard = IfcMooringDeviceTypeEnum.BOLLARD +userdefined = IfcMooringDeviceTypeEnum.USERDEFINED +notdefined = IfcMooringDeviceTypeEnum.NOTDEFINED IfcMotorConnectionTypeEnum = enum_namespace() -beltdrive = getattr(IfcMotorConnectionTypeEnum, 'BELTDRIVE', INDETERMINATE) -coupling = getattr(IfcMotorConnectionTypeEnum, 'COUPLING', INDETERMINATE) -directdrive = getattr(IfcMotorConnectionTypeEnum, 'DIRECTDRIVE', INDETERMINATE) -userdefined = getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMotorConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltdrive = IfcMotorConnectionTypeEnum.BELTDRIVE +coupling = IfcMotorConnectionTypeEnum.COUPLING +directdrive = IfcMotorConnectionTypeEnum.DIRECTDRIVE +userdefined = IfcMotorConnectionTypeEnum.USERDEFINED +notdefined = IfcMotorConnectionTypeEnum.NOTDEFINED IfcNavigationElementTypeEnum = enum_namespace() -beacon = getattr(IfcNavigationElementTypeEnum, 'BEACON', INDETERMINATE) -buoy = getattr(IfcNavigationElementTypeEnum, 'BUOY', INDETERMINATE) -userdefined = getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcNavigationElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +beacon = IfcNavigationElementTypeEnum.BEACON +buoy = IfcNavigationElementTypeEnum.BUOY +userdefined = IfcNavigationElementTypeEnum.USERDEFINED +notdefined = IfcNavigationElementTypeEnum.NOTDEFINED IfcNullStyle = enum_namespace() -null = getattr(IfcNullStyle, 'NULL', INDETERMINATE) +null = IfcNullStyle.NULL IfcObjectTypeEnum = enum_namespace() -product = getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE) -process = getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE) -control = getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE) -resource = getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE) -actor = getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE) -group = getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE) -project = getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE) -notdefined = getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE) +product = IfcObjectTypeEnum.PRODUCT +process = IfcObjectTypeEnum.PROCESS +control = IfcObjectTypeEnum.CONTROL +resource = IfcObjectTypeEnum.RESOURCE +actor = IfcObjectTypeEnum.ACTOR +group = IfcObjectTypeEnum.GROUP +project = IfcObjectTypeEnum.PROJECT +notdefined = IfcObjectTypeEnum.NOTDEFINED IfcObjectiveEnum = enum_namespace() -codecompliance = getattr(IfcObjectiveEnum, 'CODECOMPLIANCE', INDETERMINATE) -codewaiver = getattr(IfcObjectiveEnum, 'CODEWAIVER', INDETERMINATE) -designintent = getattr(IfcObjectiveEnum, 'DESIGNINTENT', INDETERMINATE) -external = getattr(IfcObjectiveEnum, 'EXTERNAL', INDETERMINATE) -healthandsafety = getattr(IfcObjectiveEnum, 'HEALTHANDSAFETY', INDETERMINATE) -mergeconflict = getattr(IfcObjectiveEnum, 'MERGECONFLICT', INDETERMINATE) -modelview = getattr(IfcObjectiveEnum, 'MODELVIEW', INDETERMINATE) -parameter = getattr(IfcObjectiveEnum, 'PARAMETER', INDETERMINATE) -requirement = getattr(IfcObjectiveEnum, 'REQUIREMENT', INDETERMINATE) -specification = getattr(IfcObjectiveEnum, 'SPECIFICATION', INDETERMINATE) -triggercondition = getattr(IfcObjectiveEnum, 'TRIGGERCONDITION', INDETERMINATE) -userdefined = getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcObjectiveEnum, 'NOTDEFINED', INDETERMINATE) +codecompliance = IfcObjectiveEnum.CODECOMPLIANCE +codewaiver = IfcObjectiveEnum.CODEWAIVER +designintent = IfcObjectiveEnum.DESIGNINTENT +external = IfcObjectiveEnum.EXTERNAL +healthandsafety = IfcObjectiveEnum.HEALTHANDSAFETY +mergeconflict = IfcObjectiveEnum.MERGECONFLICT +modelview = IfcObjectiveEnum.MODELVIEW +parameter = IfcObjectiveEnum.PARAMETER +requirement = IfcObjectiveEnum.REQUIREMENT +specification = IfcObjectiveEnum.SPECIFICATION +triggercondition = IfcObjectiveEnum.TRIGGERCONDITION +userdefined = IfcObjectiveEnum.USERDEFINED +notdefined = IfcObjectiveEnum.NOTDEFINED IfcOccupantTypeEnum = enum_namespace() -assignee = getattr(IfcOccupantTypeEnum, 'ASSIGNEE', INDETERMINATE) -assignor = getattr(IfcOccupantTypeEnum, 'ASSIGNOR', INDETERMINATE) -lessee = getattr(IfcOccupantTypeEnum, 'LESSEE', INDETERMINATE) -lessor = getattr(IfcOccupantTypeEnum, 'LESSOR', INDETERMINATE) -lettingagent = getattr(IfcOccupantTypeEnum, 'LETTINGAGENT', INDETERMINATE) -owner = getattr(IfcOccupantTypeEnum, 'OWNER', INDETERMINATE) -tenant = getattr(IfcOccupantTypeEnum, 'TENANT', INDETERMINATE) -userdefined = getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOccupantTypeEnum, 'NOTDEFINED', INDETERMINATE) +assignee = IfcOccupantTypeEnum.ASSIGNEE +assignor = IfcOccupantTypeEnum.ASSIGNOR +lessee = IfcOccupantTypeEnum.LESSEE +lessor = IfcOccupantTypeEnum.LESSOR +lettingagent = IfcOccupantTypeEnum.LETTINGAGENT +owner = IfcOccupantTypeEnum.OWNER +tenant = IfcOccupantTypeEnum.TENANT +userdefined = IfcOccupantTypeEnum.USERDEFINED +notdefined = IfcOccupantTypeEnum.NOTDEFINED IfcOpeningElementTypeEnum = enum_namespace() -opening = getattr(IfcOpeningElementTypeEnum, 'OPENING', INDETERMINATE) -recess = getattr(IfcOpeningElementTypeEnum, 'RECESS', INDETERMINATE) -userdefined = getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOpeningElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +opening = IfcOpeningElementTypeEnum.OPENING +recess = IfcOpeningElementTypeEnum.RECESS +userdefined = IfcOpeningElementTypeEnum.USERDEFINED +notdefined = IfcOpeningElementTypeEnum.NOTDEFINED IfcOutletTypeEnum = enum_namespace() -audiovisualoutlet = getattr(IfcOutletTypeEnum, 'AUDIOVISUALOUTLET', INDETERMINATE) -communicationsoutlet = getattr(IfcOutletTypeEnum, 'COMMUNICATIONSOUTLET', INDETERMINATE) -poweroutlet = getattr(IfcOutletTypeEnum, 'POWEROUTLET', INDETERMINATE) -dataoutlet = getattr(IfcOutletTypeEnum, 'DATAOUTLET', INDETERMINATE) -telephoneoutlet = getattr(IfcOutletTypeEnum, 'TELEPHONEOUTLET', INDETERMINATE) -userdefined = getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOutletTypeEnum, 'NOTDEFINED', INDETERMINATE) +audiovisualoutlet = IfcOutletTypeEnum.AUDIOVISUALOUTLET +communicationsoutlet = IfcOutletTypeEnum.COMMUNICATIONSOUTLET +poweroutlet = IfcOutletTypeEnum.POWEROUTLET +dataoutlet = IfcOutletTypeEnum.DATAOUTLET +telephoneoutlet = IfcOutletTypeEnum.TELEPHONEOUTLET +userdefined = IfcOutletTypeEnum.USERDEFINED +notdefined = IfcOutletTypeEnum.NOTDEFINED IfcPerformanceHistoryTypeEnum = enum_namespace() -userdefined = getattr(IfcPerformanceHistoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPerformanceHistoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcPerformanceHistoryTypeEnum.USERDEFINED +notdefined = IfcPerformanceHistoryTypeEnum.NOTDEFINED IfcPermeableCoveringOperationEnum = enum_namespace() -grill = getattr(IfcPermeableCoveringOperationEnum, 'GRILL', INDETERMINATE) -louver = getattr(IfcPermeableCoveringOperationEnum, 'LOUVER', INDETERMINATE) -screen = getattr(IfcPermeableCoveringOperationEnum, 'SCREEN', INDETERMINATE) -userdefined = getattr(IfcPermeableCoveringOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPermeableCoveringOperationEnum, 'NOTDEFINED', INDETERMINATE) +grill = IfcPermeableCoveringOperationEnum.GRILL +louver = IfcPermeableCoveringOperationEnum.LOUVER +screen = IfcPermeableCoveringOperationEnum.SCREEN +userdefined = IfcPermeableCoveringOperationEnum.USERDEFINED +notdefined = IfcPermeableCoveringOperationEnum.NOTDEFINED IfcPermitTypeEnum = enum_namespace() -access = getattr(IfcPermitTypeEnum, 'ACCESS', INDETERMINATE) -building = getattr(IfcPermitTypeEnum, 'BUILDING', INDETERMINATE) -work = getattr(IfcPermitTypeEnum, 'WORK', INDETERMINATE) -userdefined = getattr(IfcPermitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPermitTypeEnum, 'NOTDEFINED', INDETERMINATE) +access = IfcPermitTypeEnum.ACCESS +building = IfcPermitTypeEnum.BUILDING +work = IfcPermitTypeEnum.WORK +userdefined = IfcPermitTypeEnum.USERDEFINED +notdefined = IfcPermitTypeEnum.NOTDEFINED IfcPhysicalOrVirtualEnum = enum_namespace() -physical = getattr(IfcPhysicalOrVirtualEnum, 'PHYSICAL', INDETERMINATE) -virtual = getattr(IfcPhysicalOrVirtualEnum, 'VIRTUAL', INDETERMINATE) -notdefined = getattr(IfcPhysicalOrVirtualEnum, 'NOTDEFINED', INDETERMINATE) +physical = IfcPhysicalOrVirtualEnum.PHYSICAL +virtual = IfcPhysicalOrVirtualEnum.VIRTUAL +notdefined = IfcPhysicalOrVirtualEnum.NOTDEFINED IfcPileConstructionEnum = enum_namespace() -cast_in_place = getattr(IfcPileConstructionEnum, 'CAST_IN_PLACE', INDETERMINATE) -composite = getattr(IfcPileConstructionEnum, 'COMPOSITE', INDETERMINATE) -precast_concrete = getattr(IfcPileConstructionEnum, 'PRECAST_CONCRETE', INDETERMINATE) -prefab_steel = getattr(IfcPileConstructionEnum, 'PREFAB_STEEL', INDETERMINATE) -userdefined = getattr(IfcPileConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPileConstructionEnum, 'NOTDEFINED', INDETERMINATE) +cast_in_place = IfcPileConstructionEnum.CAST_IN_PLACE +composite = IfcPileConstructionEnum.COMPOSITE +precast_concrete = IfcPileConstructionEnum.PRECAST_CONCRETE +prefab_steel = IfcPileConstructionEnum.PREFAB_STEEL +userdefined = IfcPileConstructionEnum.USERDEFINED +notdefined = IfcPileConstructionEnum.NOTDEFINED IfcPileTypeEnum = enum_namespace() -bored = getattr(IfcPileTypeEnum, 'BORED', INDETERMINATE) -driven = getattr(IfcPileTypeEnum, 'DRIVEN', INDETERMINATE) -jetgrouting = getattr(IfcPileTypeEnum, 'JETGROUTING', INDETERMINATE) -cohesion = getattr(IfcPileTypeEnum, 'COHESION', INDETERMINATE) -friction = getattr(IfcPileTypeEnum, 'FRICTION', INDETERMINATE) -support = getattr(IfcPileTypeEnum, 'SUPPORT', INDETERMINATE) -userdefined = getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPileTypeEnum, 'NOTDEFINED', INDETERMINATE) +bored = IfcPileTypeEnum.BORED +driven = IfcPileTypeEnum.DRIVEN +jetgrouting = IfcPileTypeEnum.JETGROUTING +cohesion = IfcPileTypeEnum.COHESION +friction = IfcPileTypeEnum.FRICTION +support = IfcPileTypeEnum.SUPPORT +userdefined = IfcPileTypeEnum.USERDEFINED +notdefined = IfcPileTypeEnum.NOTDEFINED IfcPipeFittingTypeEnum = enum_namespace() -bend = getattr(IfcPipeFittingTypeEnum, 'BEND', INDETERMINATE) -connector = getattr(IfcPipeFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcPipeFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcPipeFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcPipeFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = getattr(IfcPipeFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = getattr(IfcPipeFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPipeFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcPipeFittingTypeEnum.BEND +connector = IfcPipeFittingTypeEnum.CONNECTOR +entry = IfcPipeFittingTypeEnum.ENTRY +exit = IfcPipeFittingTypeEnum.EXIT +junction = IfcPipeFittingTypeEnum.JUNCTION +obstruction = IfcPipeFittingTypeEnum.OBSTRUCTION +transition = IfcPipeFittingTypeEnum.TRANSITION +userdefined = IfcPipeFittingTypeEnum.USERDEFINED +notdefined = IfcPipeFittingTypeEnum.NOTDEFINED IfcPipeSegmentTypeEnum = enum_namespace() -culvert = getattr(IfcPipeSegmentTypeEnum, 'CULVERT', INDETERMINATE) -flexiblesegment = getattr(IfcPipeSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -rigidsegment = getattr(IfcPipeSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -gutter = getattr(IfcPipeSegmentTypeEnum, 'GUTTER', INDETERMINATE) -spool = getattr(IfcPipeSegmentTypeEnum, 'SPOOL', INDETERMINATE) -userdefined = getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPipeSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +culvert = IfcPipeSegmentTypeEnum.CULVERT +flexiblesegment = IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT +rigidsegment = IfcPipeSegmentTypeEnum.RIGIDSEGMENT +gutter = IfcPipeSegmentTypeEnum.GUTTER +spool = IfcPipeSegmentTypeEnum.SPOOL +userdefined = IfcPipeSegmentTypeEnum.USERDEFINED +notdefined = IfcPipeSegmentTypeEnum.NOTDEFINED IfcPlateTypeEnum = enum_namespace() -curtain_panel = getattr(IfcPlateTypeEnum, 'CURTAIN_PANEL', INDETERMINATE) -sheet = getattr(IfcPlateTypeEnum, 'SHEET', INDETERMINATE) -flange_plate = getattr(IfcPlateTypeEnum, 'FLANGE_PLATE', INDETERMINATE) -web_plate = getattr(IfcPlateTypeEnum, 'WEB_PLATE', INDETERMINATE) -stiffener_plate = getattr(IfcPlateTypeEnum, 'STIFFENER_PLATE', INDETERMINATE) -gusset_plate = getattr(IfcPlateTypeEnum, 'GUSSET_PLATE', INDETERMINATE) -cover_plate = getattr(IfcPlateTypeEnum, 'COVER_PLATE', INDETERMINATE) -splice_plate = getattr(IfcPlateTypeEnum, 'SPLICE_PLATE', INDETERMINATE) -base_plate = getattr(IfcPlateTypeEnum, 'BASE_PLATE', INDETERMINATE) -userdefined = getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPlateTypeEnum, 'NOTDEFINED', INDETERMINATE) +curtain_panel = IfcPlateTypeEnum.CURTAIN_PANEL +sheet = IfcPlateTypeEnum.SHEET +flange_plate = IfcPlateTypeEnum.FLANGE_PLATE +web_plate = IfcPlateTypeEnum.WEB_PLATE +stiffener_plate = IfcPlateTypeEnum.STIFFENER_PLATE +gusset_plate = IfcPlateTypeEnum.GUSSET_PLATE +cover_plate = IfcPlateTypeEnum.COVER_PLATE +splice_plate = IfcPlateTypeEnum.SPLICE_PLATE +base_plate = IfcPlateTypeEnum.BASE_PLATE +userdefined = IfcPlateTypeEnum.USERDEFINED +notdefined = IfcPlateTypeEnum.NOTDEFINED IfcPreferredSurfaceCurveRepresentation = enum_namespace() -curve3d = getattr(IfcPreferredSurfaceCurveRepresentation, 'CURVE3D', INDETERMINATE) -pcurve_s1 = getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S1', INDETERMINATE) -pcurve_s2 = getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S2', INDETERMINATE) +curve3d = IfcPreferredSurfaceCurveRepresentation.CURVE3D +pcurve_s1 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 +pcurve_s2 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 IfcProcedureTypeEnum = enum_namespace() -advice_caution = getattr(IfcProcedureTypeEnum, 'ADVICE_CAUTION', INDETERMINATE) -advice_note = getattr(IfcProcedureTypeEnum, 'ADVICE_NOTE', INDETERMINATE) -advice_warning = getattr(IfcProcedureTypeEnum, 'ADVICE_WARNING', INDETERMINATE) -calibration = getattr(IfcProcedureTypeEnum, 'CALIBRATION', INDETERMINATE) -diagnostic = getattr(IfcProcedureTypeEnum, 'DIAGNOSTIC', INDETERMINATE) -shutdown = getattr(IfcProcedureTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = getattr(IfcProcedureTypeEnum, 'STARTUP', INDETERMINATE) -userdefined = getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProcedureTypeEnum, 'NOTDEFINED', INDETERMINATE) +advice_caution = IfcProcedureTypeEnum.ADVICE_CAUTION +advice_note = IfcProcedureTypeEnum.ADVICE_NOTE +advice_warning = IfcProcedureTypeEnum.ADVICE_WARNING +calibration = IfcProcedureTypeEnum.CALIBRATION +diagnostic = IfcProcedureTypeEnum.DIAGNOSTIC +shutdown = IfcProcedureTypeEnum.SHUTDOWN +startup = IfcProcedureTypeEnum.STARTUP +userdefined = IfcProcedureTypeEnum.USERDEFINED +notdefined = IfcProcedureTypeEnum.NOTDEFINED IfcProfileTypeEnum = enum_namespace() -curve = getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE) -area = getattr(IfcProfileTypeEnum, 'AREA', INDETERMINATE) +curve = IfcProfileTypeEnum.CURVE +area = IfcProfileTypeEnum.AREA IfcProjectOrderTypeEnum = enum_namespace() -changeorder = getattr(IfcProjectOrderTypeEnum, 'CHANGEORDER', INDETERMINATE) -maintenanceworkorder = getattr(IfcProjectOrderTypeEnum, 'MAINTENANCEWORKORDER', INDETERMINATE) -moveorder = getattr(IfcProjectOrderTypeEnum, 'MOVEORDER', INDETERMINATE) -purchaseorder = getattr(IfcProjectOrderTypeEnum, 'PURCHASEORDER', INDETERMINATE) -workorder = getattr(IfcProjectOrderTypeEnum, 'WORKORDER', INDETERMINATE) -userdefined = getattr(IfcProjectOrderTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProjectOrderTypeEnum, 'NOTDEFINED', INDETERMINATE) +changeorder = IfcProjectOrderTypeEnum.CHANGEORDER +maintenanceworkorder = IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER +moveorder = IfcProjectOrderTypeEnum.MOVEORDER +purchaseorder = IfcProjectOrderTypeEnum.PURCHASEORDER +workorder = IfcProjectOrderTypeEnum.WORKORDER +userdefined = IfcProjectOrderTypeEnum.USERDEFINED +notdefined = IfcProjectOrderTypeEnum.NOTDEFINED IfcProjectedOrTrueLengthEnum = enum_namespace() -projected_length = getattr(IfcProjectedOrTrueLengthEnum, 'PROJECTED_LENGTH', INDETERMINATE) -true_length = getattr(IfcProjectedOrTrueLengthEnum, 'TRUE_LENGTH', INDETERMINATE) +projected_length = IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH +true_length = IfcProjectedOrTrueLengthEnum.TRUE_LENGTH IfcProjectionElementTypeEnum = enum_namespace() -blister = getattr(IfcProjectionElementTypeEnum, 'BLISTER', INDETERMINATE) -deviator = getattr(IfcProjectionElementTypeEnum, 'DEVIATOR', INDETERMINATE) -userdefined = getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProjectionElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +blister = IfcProjectionElementTypeEnum.BLISTER +deviator = IfcProjectionElementTypeEnum.DEVIATOR +userdefined = IfcProjectionElementTypeEnum.USERDEFINED +notdefined = IfcProjectionElementTypeEnum.NOTDEFINED IfcPropertySetTemplateTypeEnum = enum_namespace() -pset_typedrivenonly = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENONLY', INDETERMINATE) -pset_typedrivenoverride = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENOVERRIDE', INDETERMINATE) -pset_occurrencedriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_OCCURRENCEDRIVEN', INDETERMINATE) -pset_performancedriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PERFORMANCEDRIVEN', INDETERMINATE) -qto_typedrivenonly = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENONLY', INDETERMINATE) -qto_typedrivenoverride = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENOVERRIDE', INDETERMINATE) -qto_occurrencedriven = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_OCCURRENCEDRIVEN', INDETERMINATE) -notdefined = getattr(IfcPropertySetTemplateTypeEnum, 'NOTDEFINED', INDETERMINATE) +pset_typedrivenonly = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY +pset_typedrivenoverride = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE +pset_occurrencedriven = IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN +pset_performancedriven = IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN +qto_typedrivenonly = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY +qto_typedrivenoverride = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE +qto_occurrencedriven = IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN +notdefined = IfcPropertySetTemplateTypeEnum.NOTDEFINED IfcProtectiveDeviceTrippingUnitTypeEnum = enum_namespace() -electronic = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTRONIC', INDETERMINATE) -electromagnetic = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTROMAGNETIC', INDETERMINATE) -residualcurrent = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'RESIDUALCURRENT', INDETERMINATE) -thermal = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'THERMAL', INDETERMINATE) -userdefined = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC +electromagnetic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC +residualcurrent = IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT +thermal = IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL +userdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED IfcProtectiveDeviceTypeEnum = enum_namespace() -circuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'CIRCUITBREAKER', INDETERMINATE) -earthleakagecircuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'EARTHLEAKAGECIRCUITBREAKER', INDETERMINATE) -earthingswitch = getattr(IfcProtectiveDeviceTypeEnum, 'EARTHINGSWITCH', INDETERMINATE) -fusedisconnector = getattr(IfcProtectiveDeviceTypeEnum, 'FUSEDISCONNECTOR', INDETERMINATE) -residualcurrentcircuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTCIRCUITBREAKER', INDETERMINATE) -residualcurrentswitch = getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTSWITCH', INDETERMINATE) -varistor = getattr(IfcProtectiveDeviceTypeEnum, 'VARISTOR', INDETERMINATE) -anti_arcing_device = getattr(IfcProtectiveDeviceTypeEnum, 'ANTI_ARCING_DEVICE', INDETERMINATE) -sparkgap = getattr(IfcProtectiveDeviceTypeEnum, 'SPARKGAP', INDETERMINATE) -voltagelimiter = getattr(IfcProtectiveDeviceTypeEnum, 'VOLTAGELIMITER', INDETERMINATE) -userdefined = getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProtectiveDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +circuitbreaker = IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER +earthleakagecircuitbreaker = IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER +earthingswitch = IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH +fusedisconnector = IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR +residualcurrentcircuitbreaker = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER +residualcurrentswitch = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH +varistor = IfcProtectiveDeviceTypeEnum.VARISTOR +anti_arcing_device = IfcProtectiveDeviceTypeEnum.ANTI_ARCING_DEVICE +sparkgap = IfcProtectiveDeviceTypeEnum.SPARKGAP +voltagelimiter = IfcProtectiveDeviceTypeEnum.VOLTAGELIMITER +userdefined = IfcProtectiveDeviceTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTypeEnum.NOTDEFINED IfcPumpTypeEnum = enum_namespace() -circulator = getattr(IfcPumpTypeEnum, 'CIRCULATOR', INDETERMINATE) -endsuction = getattr(IfcPumpTypeEnum, 'ENDSUCTION', INDETERMINATE) -splitcase = getattr(IfcPumpTypeEnum, 'SPLITCASE', INDETERMINATE) -submersiblepump = getattr(IfcPumpTypeEnum, 'SUBMERSIBLEPUMP', INDETERMINATE) -sumppump = getattr(IfcPumpTypeEnum, 'SUMPPUMP', INDETERMINATE) -verticalinline = getattr(IfcPumpTypeEnum, 'VERTICALINLINE', INDETERMINATE) -verticalturbine = getattr(IfcPumpTypeEnum, 'VERTICALTURBINE', INDETERMINATE) -userdefined = getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPumpTypeEnum, 'NOTDEFINED', INDETERMINATE) +circulator = IfcPumpTypeEnum.CIRCULATOR +endsuction = IfcPumpTypeEnum.ENDSUCTION +splitcase = IfcPumpTypeEnum.SPLITCASE +submersiblepump = IfcPumpTypeEnum.SUBMERSIBLEPUMP +sumppump = IfcPumpTypeEnum.SUMPPUMP +verticalinline = IfcPumpTypeEnum.VERTICALINLINE +verticalturbine = IfcPumpTypeEnum.VERTICALTURBINE +userdefined = IfcPumpTypeEnum.USERDEFINED +notdefined = IfcPumpTypeEnum.NOTDEFINED IfcRailTypeEnum = enum_namespace() -rackrail = getattr(IfcRailTypeEnum, 'RACKRAIL', INDETERMINATE) -blade = getattr(IfcRailTypeEnum, 'BLADE', INDETERMINATE) -guardrail = getattr(IfcRailTypeEnum, 'GUARDRAIL', INDETERMINATE) -stockrail = getattr(IfcRailTypeEnum, 'STOCKRAIL', INDETERMINATE) -checkrail = getattr(IfcRailTypeEnum, 'CHECKRAIL', INDETERMINATE) -rail = getattr(IfcRailTypeEnum, 'RAIL', INDETERMINATE) -userdefined = getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailTypeEnum, 'NOTDEFINED', INDETERMINATE) +rackrail = IfcRailTypeEnum.RACKRAIL +blade = IfcRailTypeEnum.BLADE +guardrail = IfcRailTypeEnum.GUARDRAIL +stockrail = IfcRailTypeEnum.STOCKRAIL +checkrail = IfcRailTypeEnum.CHECKRAIL +rail = IfcRailTypeEnum.RAIL +userdefined = IfcRailTypeEnum.USERDEFINED +notdefined = IfcRailTypeEnum.NOTDEFINED IfcRailingTypeEnum = enum_namespace() -handrail = getattr(IfcRailingTypeEnum, 'HANDRAIL', INDETERMINATE) -guardrail = getattr(IfcRailingTypeEnum, 'GUARDRAIL', INDETERMINATE) -balustrade = getattr(IfcRailingTypeEnum, 'BALUSTRADE', INDETERMINATE) -fence = getattr(IfcRailingTypeEnum, 'FENCE', INDETERMINATE) -userdefined = getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailingTypeEnum, 'NOTDEFINED', INDETERMINATE) +handrail = IfcRailingTypeEnum.HANDRAIL +guardrail = IfcRailingTypeEnum.GUARDRAIL +balustrade = IfcRailingTypeEnum.BALUSTRADE +fence = IfcRailingTypeEnum.FENCE +userdefined = IfcRailingTypeEnum.USERDEFINED +notdefined = IfcRailingTypeEnum.NOTDEFINED IfcRailwayPartTypeEnum = enum_namespace() -trackstructure = getattr(IfcRailwayPartTypeEnum, 'TRACKSTRUCTURE', INDETERMINATE) -trackstructurepart = getattr(IfcRailwayPartTypeEnum, 'TRACKSTRUCTUREPART', INDETERMINATE) -linesidestructurepart = getattr(IfcRailwayPartTypeEnum, 'LINESIDESTRUCTUREPART', INDETERMINATE) -dilatationsuperstructure = getattr(IfcRailwayPartTypeEnum, 'DILATATIONSUPERSTRUCTURE', INDETERMINATE) -plaintracksupestructure = getattr(IfcRailwayPartTypeEnum, 'PLAINTRACKSUPESTRUCTURE', INDETERMINATE) -linesidestructure = getattr(IfcRailwayPartTypeEnum, 'LINESIDESTRUCTURE', INDETERMINATE) -superstructure = getattr(IfcRailwayPartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -turnoutsuperstructure = getattr(IfcRailwayPartTypeEnum, 'TURNOUTSUPERSTRUCTURE', INDETERMINATE) -userdefined = getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailwayPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +trackstructure = IfcRailwayPartTypeEnum.TRACKSTRUCTURE +trackstructurepart = IfcRailwayPartTypeEnum.TRACKSTRUCTUREPART +linesidestructurepart = IfcRailwayPartTypeEnum.LINESIDESTRUCTUREPART +dilatationsuperstructure = IfcRailwayPartTypeEnum.DILATATIONSUPERSTRUCTURE +plaintracksupestructure = IfcRailwayPartTypeEnum.PLAINTRACKSUPESTRUCTURE +linesidestructure = IfcRailwayPartTypeEnum.LINESIDESTRUCTURE +superstructure = IfcRailwayPartTypeEnum.SUPERSTRUCTURE +turnoutsuperstructure = IfcRailwayPartTypeEnum.TURNOUTSUPERSTRUCTURE +userdefined = IfcRailwayPartTypeEnum.USERDEFINED +notdefined = IfcRailwayPartTypeEnum.NOTDEFINED IfcRampFlightTypeEnum = enum_namespace() -straight = getattr(IfcRampFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -spiral = getattr(IfcRampFlightTypeEnum, 'SPIRAL', INDETERMINATE) -userdefined = getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRampFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcRampFlightTypeEnum.STRAIGHT +spiral = IfcRampFlightTypeEnum.SPIRAL +userdefined = IfcRampFlightTypeEnum.USERDEFINED +notdefined = IfcRampFlightTypeEnum.NOTDEFINED IfcRampTypeEnum = enum_namespace() -straight_run_ramp = getattr(IfcRampTypeEnum, 'STRAIGHT_RUN_RAMP', INDETERMINATE) -two_straight_run_ramp = getattr(IfcRampTypeEnum, 'TWO_STRAIGHT_RUN_RAMP', INDETERMINATE) -quarter_turn_ramp = getattr(IfcRampTypeEnum, 'QUARTER_TURN_RAMP', INDETERMINATE) -two_quarter_turn_ramp = getattr(IfcRampTypeEnum, 'TWO_QUARTER_TURN_RAMP', INDETERMINATE) -half_turn_ramp = getattr(IfcRampTypeEnum, 'HALF_TURN_RAMP', INDETERMINATE) -spiral_ramp = getattr(IfcRampTypeEnum, 'SPIRAL_RAMP', INDETERMINATE) -userdefined = getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRampTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_ramp = IfcRampTypeEnum.STRAIGHT_RUN_RAMP +two_straight_run_ramp = IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP +quarter_turn_ramp = IfcRampTypeEnum.QUARTER_TURN_RAMP +two_quarter_turn_ramp = IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP +half_turn_ramp = IfcRampTypeEnum.HALF_TURN_RAMP +spiral_ramp = IfcRampTypeEnum.SPIRAL_RAMP +userdefined = IfcRampTypeEnum.USERDEFINED +notdefined = IfcRampTypeEnum.NOTDEFINED IfcRecurrenceTypeEnum = enum_namespace() -daily = getattr(IfcRecurrenceTypeEnum, 'DAILY', INDETERMINATE) -weekly = getattr(IfcRecurrenceTypeEnum, 'WEEKLY', INDETERMINATE) -monthly_by_day_of_month = getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_DAY_OF_MONTH', INDETERMINATE) -monthly_by_position = getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_POSITION', INDETERMINATE) -by_day_count = getattr(IfcRecurrenceTypeEnum, 'BY_DAY_COUNT', INDETERMINATE) -by_weekday_count = getattr(IfcRecurrenceTypeEnum, 'BY_WEEKDAY_COUNT', INDETERMINATE) -yearly_by_day_of_month = getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_DAY_OF_MONTH', INDETERMINATE) -yearly_by_position = getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_POSITION', INDETERMINATE) +daily = IfcRecurrenceTypeEnum.DAILY +weekly = IfcRecurrenceTypeEnum.WEEKLY +monthly_by_day_of_month = IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH +monthly_by_position = IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION +by_day_count = IfcRecurrenceTypeEnum.BY_DAY_COUNT +by_weekday_count = IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT +yearly_by_day_of_month = IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH +yearly_by_position = IfcRecurrenceTypeEnum.YEARLY_BY_POSITION IfcReferentTypeEnum = enum_namespace() -kilopoint = getattr(IfcReferentTypeEnum, 'KILOPOINT', INDETERMINATE) -milepoint = getattr(IfcReferentTypeEnum, 'MILEPOINT', INDETERMINATE) -station = getattr(IfcReferentTypeEnum, 'STATION', INDETERMINATE) -referencemarker = getattr(IfcReferentTypeEnum, 'REFERENCEMARKER', INDETERMINATE) -userdefined = getattr(IfcReferentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReferentTypeEnum, 'NOTDEFINED', INDETERMINATE) +kilopoint = IfcReferentTypeEnum.KILOPOINT +milepoint = IfcReferentTypeEnum.MILEPOINT +station = IfcReferentTypeEnum.STATION +referencemarker = IfcReferentTypeEnum.REFERENCEMARKER +userdefined = IfcReferentTypeEnum.USERDEFINED +notdefined = IfcReferentTypeEnum.NOTDEFINED IfcReflectanceMethodEnum = enum_namespace() -blinn = getattr(IfcReflectanceMethodEnum, 'BLINN', INDETERMINATE) -flat = getattr(IfcReflectanceMethodEnum, 'FLAT', INDETERMINATE) -glass = getattr(IfcReflectanceMethodEnum, 'GLASS', INDETERMINATE) -matt = getattr(IfcReflectanceMethodEnum, 'MATT', INDETERMINATE) -metal = getattr(IfcReflectanceMethodEnum, 'METAL', INDETERMINATE) -mirror = getattr(IfcReflectanceMethodEnum, 'MIRROR', INDETERMINATE) -phong = getattr(IfcReflectanceMethodEnum, 'PHONG', INDETERMINATE) -plastic = getattr(IfcReflectanceMethodEnum, 'PLASTIC', INDETERMINATE) -strauss = getattr(IfcReflectanceMethodEnum, 'STRAUSS', INDETERMINATE) -notdefined = getattr(IfcReflectanceMethodEnum, 'NOTDEFINED', INDETERMINATE) +blinn = IfcReflectanceMethodEnum.BLINN +flat = IfcReflectanceMethodEnum.FLAT +glass = IfcReflectanceMethodEnum.GLASS +matt = IfcReflectanceMethodEnum.MATT +metal = IfcReflectanceMethodEnum.METAL +mirror = IfcReflectanceMethodEnum.MIRROR +phong = IfcReflectanceMethodEnum.PHONG +plastic = IfcReflectanceMethodEnum.PLASTIC +strauss = IfcReflectanceMethodEnum.STRAUSS +notdefined = IfcReflectanceMethodEnum.NOTDEFINED IfcReinforcedSoilTypeEnum = enum_namespace() -surchargepreloaded = getattr(IfcReinforcedSoilTypeEnum, 'SURCHARGEPRELOADED', INDETERMINATE) -verticallydrained = getattr(IfcReinforcedSoilTypeEnum, 'VERTICALLYDRAINED', INDETERMINATE) -dynamicallycompacted = getattr(IfcReinforcedSoilTypeEnum, 'DYNAMICALLYCOMPACTED', INDETERMINATE) -replaced = getattr(IfcReinforcedSoilTypeEnum, 'REPLACED', INDETERMINATE) -rollercompacted = getattr(IfcReinforcedSoilTypeEnum, 'ROLLERCOMPACTED', INDETERMINATE) -grouted = getattr(IfcReinforcedSoilTypeEnum, 'GROUTED', INDETERMINATE) -userdefined = getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcedSoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +surchargepreloaded = IfcReinforcedSoilTypeEnum.SURCHARGEPRELOADED +verticallydrained = IfcReinforcedSoilTypeEnum.VERTICALLYDRAINED +dynamicallycompacted = IfcReinforcedSoilTypeEnum.DYNAMICALLYCOMPACTED +replaced = IfcReinforcedSoilTypeEnum.REPLACED +rollercompacted = IfcReinforcedSoilTypeEnum.ROLLERCOMPACTED +grouted = IfcReinforcedSoilTypeEnum.GROUTED +userdefined = IfcReinforcedSoilTypeEnum.USERDEFINED +notdefined = IfcReinforcedSoilTypeEnum.NOTDEFINED IfcReinforcingBarRoleEnum = enum_namespace() -main = getattr(IfcReinforcingBarRoleEnum, 'MAIN', INDETERMINATE) -shear = getattr(IfcReinforcingBarRoleEnum, 'SHEAR', INDETERMINATE) -ligature = getattr(IfcReinforcingBarRoleEnum, 'LIGATURE', INDETERMINATE) -stud = getattr(IfcReinforcingBarRoleEnum, 'STUD', INDETERMINATE) -punching = getattr(IfcReinforcingBarRoleEnum, 'PUNCHING', INDETERMINATE) -edge = getattr(IfcReinforcingBarRoleEnum, 'EDGE', INDETERMINATE) -ring = getattr(IfcReinforcingBarRoleEnum, 'RING', INDETERMINATE) -anchoring = getattr(IfcReinforcingBarRoleEnum, 'ANCHORING', INDETERMINATE) -userdefined = getattr(IfcReinforcingBarRoleEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingBarRoleEnum, 'NOTDEFINED', INDETERMINATE) +main = IfcReinforcingBarRoleEnum.MAIN +shear = IfcReinforcingBarRoleEnum.SHEAR +ligature = IfcReinforcingBarRoleEnum.LIGATURE +stud = IfcReinforcingBarRoleEnum.STUD +punching = IfcReinforcingBarRoleEnum.PUNCHING +edge = IfcReinforcingBarRoleEnum.EDGE +ring = IfcReinforcingBarRoleEnum.RING +anchoring = IfcReinforcingBarRoleEnum.ANCHORING +userdefined = IfcReinforcingBarRoleEnum.USERDEFINED +notdefined = IfcReinforcingBarRoleEnum.NOTDEFINED IfcReinforcingBarSurfaceEnum = enum_namespace() -plain = getattr(IfcReinforcingBarSurfaceEnum, 'PLAIN', INDETERMINATE) -textured = getattr(IfcReinforcingBarSurfaceEnum, 'TEXTURED', INDETERMINATE) +plain = IfcReinforcingBarSurfaceEnum.PLAIN +textured = IfcReinforcingBarSurfaceEnum.TEXTURED IfcReinforcingBarTypeEnum = enum_namespace() -anchoring = getattr(IfcReinforcingBarTypeEnum, 'ANCHORING', INDETERMINATE) -edge = getattr(IfcReinforcingBarTypeEnum, 'EDGE', INDETERMINATE) -ligature = getattr(IfcReinforcingBarTypeEnum, 'LIGATURE', INDETERMINATE) -main = getattr(IfcReinforcingBarTypeEnum, 'MAIN', INDETERMINATE) -punching = getattr(IfcReinforcingBarTypeEnum, 'PUNCHING', INDETERMINATE) -ring = getattr(IfcReinforcingBarTypeEnum, 'RING', INDETERMINATE) -shear = getattr(IfcReinforcingBarTypeEnum, 'SHEAR', INDETERMINATE) -stud = getattr(IfcReinforcingBarTypeEnum, 'STUD', INDETERMINATE) -spacebar = getattr(IfcReinforcingBarTypeEnum, 'SPACEBAR', INDETERMINATE) -userdefined = getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingBarTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarTypeEnum.ANCHORING +edge = IfcReinforcingBarTypeEnum.EDGE +ligature = IfcReinforcingBarTypeEnum.LIGATURE +main = IfcReinforcingBarTypeEnum.MAIN +punching = IfcReinforcingBarTypeEnum.PUNCHING +ring = IfcReinforcingBarTypeEnum.RING +shear = IfcReinforcingBarTypeEnum.SHEAR +stud = IfcReinforcingBarTypeEnum.STUD +spacebar = IfcReinforcingBarTypeEnum.SPACEBAR +userdefined = IfcReinforcingBarTypeEnum.USERDEFINED +notdefined = IfcReinforcingBarTypeEnum.NOTDEFINED IfcReinforcingMeshTypeEnum = enum_namespace() -userdefined = getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingMeshTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcReinforcingMeshTypeEnum.USERDEFINED +notdefined = IfcReinforcingMeshTypeEnum.NOTDEFINED IfcRoadPartTypeEnum = enum_namespace() -roadsidepart = getattr(IfcRoadPartTypeEnum, 'ROADSIDEPART', INDETERMINATE) -bus_stop = getattr(IfcRoadPartTypeEnum, 'BUS_STOP', INDETERMINATE) -hardshoulder = getattr(IfcRoadPartTypeEnum, 'HARDSHOULDER', INDETERMINATE) -intersection = getattr(IfcRoadPartTypeEnum, 'INTERSECTION', INDETERMINATE) -passingbay = getattr(IfcRoadPartTypeEnum, 'PASSINGBAY', INDETERMINATE) -roadwayplateau = getattr(IfcRoadPartTypeEnum, 'ROADWAYPLATEAU', INDETERMINATE) -roadside = getattr(IfcRoadPartTypeEnum, 'ROADSIDE', INDETERMINATE) -refugeisland = getattr(IfcRoadPartTypeEnum, 'REFUGEISLAND', INDETERMINATE) -tollplaza = getattr(IfcRoadPartTypeEnum, 'TOLLPLAZA', INDETERMINATE) -centralreserve = getattr(IfcRoadPartTypeEnum, 'CENTRALRESERVE', INDETERMINATE) -sidewalk = getattr(IfcRoadPartTypeEnum, 'SIDEWALK', INDETERMINATE) -parkingbay = getattr(IfcRoadPartTypeEnum, 'PARKINGBAY', INDETERMINATE) -railwaycrossing = getattr(IfcRoadPartTypeEnum, 'RAILWAYCROSSING', INDETERMINATE) -pedestrian_crossing = getattr(IfcRoadPartTypeEnum, 'PEDESTRIAN_CROSSING', INDETERMINATE) -softshoulder = getattr(IfcRoadPartTypeEnum, 'SOFTSHOULDER', INDETERMINATE) -bicyclecrossing = getattr(IfcRoadPartTypeEnum, 'BICYCLECROSSING', INDETERMINATE) -centralisland = getattr(IfcRoadPartTypeEnum, 'CENTRALISLAND', INDETERMINATE) -shoulder = getattr(IfcRoadPartTypeEnum, 'SHOULDER', INDETERMINATE) -trafficlane = getattr(IfcRoadPartTypeEnum, 'TRAFFICLANE', INDETERMINATE) -roadsegment = getattr(IfcRoadPartTypeEnum, 'ROADSEGMENT', INDETERMINATE) -roundabout = getattr(IfcRoadPartTypeEnum, 'ROUNDABOUT', INDETERMINATE) -layby = getattr(IfcRoadPartTypeEnum, 'LAYBY', INDETERMINATE) -carriageway = getattr(IfcRoadPartTypeEnum, 'CARRIAGEWAY', INDETERMINATE) -trafficisland = getattr(IfcRoadPartTypeEnum, 'TRAFFICISLAND', INDETERMINATE) -userdefined = getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRoadPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +roadsidepart = IfcRoadPartTypeEnum.ROADSIDEPART +bus_stop = IfcRoadPartTypeEnum.BUS_STOP +hardshoulder = IfcRoadPartTypeEnum.HARDSHOULDER +intersection = IfcRoadPartTypeEnum.INTERSECTION +passingbay = IfcRoadPartTypeEnum.PASSINGBAY +roadwayplateau = IfcRoadPartTypeEnum.ROADWAYPLATEAU +roadside = IfcRoadPartTypeEnum.ROADSIDE +refugeisland = IfcRoadPartTypeEnum.REFUGEISLAND +tollplaza = IfcRoadPartTypeEnum.TOLLPLAZA +centralreserve = IfcRoadPartTypeEnum.CENTRALRESERVE +sidewalk = IfcRoadPartTypeEnum.SIDEWALK +parkingbay = IfcRoadPartTypeEnum.PARKINGBAY +railwaycrossing = IfcRoadPartTypeEnum.RAILWAYCROSSING +pedestrian_crossing = IfcRoadPartTypeEnum.PEDESTRIAN_CROSSING +softshoulder = IfcRoadPartTypeEnum.SOFTSHOULDER +bicyclecrossing = IfcRoadPartTypeEnum.BICYCLECROSSING +centralisland = IfcRoadPartTypeEnum.CENTRALISLAND +shoulder = IfcRoadPartTypeEnum.SHOULDER +trafficlane = IfcRoadPartTypeEnum.TRAFFICLANE +roadsegment = IfcRoadPartTypeEnum.ROADSEGMENT +roundabout = IfcRoadPartTypeEnum.ROUNDABOUT +layby = IfcRoadPartTypeEnum.LAYBY +carriageway = IfcRoadPartTypeEnum.CARRIAGEWAY +trafficisland = IfcRoadPartTypeEnum.TRAFFICISLAND +userdefined = IfcRoadPartTypeEnum.USERDEFINED +notdefined = IfcRoadPartTypeEnum.NOTDEFINED IfcRoleEnum = enum_namespace() -supplier = getattr(IfcRoleEnum, 'SUPPLIER', INDETERMINATE) -manufacturer = getattr(IfcRoleEnum, 'MANUFACTURER', INDETERMINATE) -contractor = getattr(IfcRoleEnum, 'CONTRACTOR', INDETERMINATE) -subcontractor = getattr(IfcRoleEnum, 'SUBCONTRACTOR', INDETERMINATE) -architect = getattr(IfcRoleEnum, 'ARCHITECT', INDETERMINATE) -structuralengineer = getattr(IfcRoleEnum, 'STRUCTURALENGINEER', INDETERMINATE) -costengineer = getattr(IfcRoleEnum, 'COSTENGINEER', INDETERMINATE) -client = getattr(IfcRoleEnum, 'CLIENT', INDETERMINATE) -buildingowner = getattr(IfcRoleEnum, 'BUILDINGOWNER', INDETERMINATE) -buildingoperator = getattr(IfcRoleEnum, 'BUILDINGOPERATOR', INDETERMINATE) -mechanicalengineer = getattr(IfcRoleEnum, 'MECHANICALENGINEER', INDETERMINATE) -electricalengineer = getattr(IfcRoleEnum, 'ELECTRICALENGINEER', INDETERMINATE) -projectmanager = getattr(IfcRoleEnum, 'PROJECTMANAGER', INDETERMINATE) -facilitiesmanager = getattr(IfcRoleEnum, 'FACILITIESMANAGER', INDETERMINATE) -civilengineer = getattr(IfcRoleEnum, 'CIVILENGINEER', INDETERMINATE) -commissioningengineer = getattr(IfcRoleEnum, 'COMMISSIONINGENGINEER', INDETERMINATE) -engineer = getattr(IfcRoleEnum, 'ENGINEER', INDETERMINATE) -owner = getattr(IfcRoleEnum, 'OWNER', INDETERMINATE) -consultant = getattr(IfcRoleEnum, 'CONSULTANT', INDETERMINATE) -constructionmanager = getattr(IfcRoleEnum, 'CONSTRUCTIONMANAGER', INDETERMINATE) -fieldconstructionmanager = getattr(IfcRoleEnum, 'FIELDCONSTRUCTIONMANAGER', INDETERMINATE) -reseller = getattr(IfcRoleEnum, 'RESELLER', INDETERMINATE) -userdefined = getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) +supplier = IfcRoleEnum.SUPPLIER +manufacturer = IfcRoleEnum.MANUFACTURER +contractor = IfcRoleEnum.CONTRACTOR +subcontractor = IfcRoleEnum.SUBCONTRACTOR +architect = IfcRoleEnum.ARCHITECT +structuralengineer = IfcRoleEnum.STRUCTURALENGINEER +costengineer = IfcRoleEnum.COSTENGINEER +client = IfcRoleEnum.CLIENT +buildingowner = IfcRoleEnum.BUILDINGOWNER +buildingoperator = IfcRoleEnum.BUILDINGOPERATOR +mechanicalengineer = IfcRoleEnum.MECHANICALENGINEER +electricalengineer = IfcRoleEnum.ELECTRICALENGINEER +projectmanager = IfcRoleEnum.PROJECTMANAGER +facilitiesmanager = IfcRoleEnum.FACILITIESMANAGER +civilengineer = IfcRoleEnum.CIVILENGINEER +commissioningengineer = IfcRoleEnum.COMMISSIONINGENGINEER +engineer = IfcRoleEnum.ENGINEER +owner = IfcRoleEnum.OWNER +consultant = IfcRoleEnum.CONSULTANT +constructionmanager = IfcRoleEnum.CONSTRUCTIONMANAGER +fieldconstructionmanager = IfcRoleEnum.FIELDCONSTRUCTIONMANAGER +reseller = IfcRoleEnum.RESELLER +userdefined = IfcRoleEnum.USERDEFINED IfcRoofTypeEnum = enum_namespace() -flat_roof = getattr(IfcRoofTypeEnum, 'FLAT_ROOF', INDETERMINATE) -shed_roof = getattr(IfcRoofTypeEnum, 'SHED_ROOF', INDETERMINATE) -gable_roof = getattr(IfcRoofTypeEnum, 'GABLE_ROOF', INDETERMINATE) -hip_roof = getattr(IfcRoofTypeEnum, 'HIP_ROOF', INDETERMINATE) -hipped_gable_roof = getattr(IfcRoofTypeEnum, 'HIPPED_GABLE_ROOF', INDETERMINATE) -gambrel_roof = getattr(IfcRoofTypeEnum, 'GAMBREL_ROOF', INDETERMINATE) -mansard_roof = getattr(IfcRoofTypeEnum, 'MANSARD_ROOF', INDETERMINATE) -barrel_roof = getattr(IfcRoofTypeEnum, 'BARREL_ROOF', INDETERMINATE) -rainbow_roof = getattr(IfcRoofTypeEnum, 'RAINBOW_ROOF', INDETERMINATE) -butterfly_roof = getattr(IfcRoofTypeEnum, 'BUTTERFLY_ROOF', INDETERMINATE) -pavilion_roof = getattr(IfcRoofTypeEnum, 'PAVILION_ROOF', INDETERMINATE) -dome_roof = getattr(IfcRoofTypeEnum, 'DOME_ROOF', INDETERMINATE) -freeform = getattr(IfcRoofTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRoofTypeEnum, 'NOTDEFINED', INDETERMINATE) +flat_roof = IfcRoofTypeEnum.FLAT_ROOF +shed_roof = IfcRoofTypeEnum.SHED_ROOF +gable_roof = IfcRoofTypeEnum.GABLE_ROOF +hip_roof = IfcRoofTypeEnum.HIP_ROOF +hipped_gable_roof = IfcRoofTypeEnum.HIPPED_GABLE_ROOF +gambrel_roof = IfcRoofTypeEnum.GAMBREL_ROOF +mansard_roof = IfcRoofTypeEnum.MANSARD_ROOF +barrel_roof = IfcRoofTypeEnum.BARREL_ROOF +rainbow_roof = IfcRoofTypeEnum.RAINBOW_ROOF +butterfly_roof = IfcRoofTypeEnum.BUTTERFLY_ROOF +pavilion_roof = IfcRoofTypeEnum.PAVILION_ROOF +dome_roof = IfcRoofTypeEnum.DOME_ROOF +freeform = IfcRoofTypeEnum.FREEFORM +userdefined = IfcRoofTypeEnum.USERDEFINED +notdefined = IfcRoofTypeEnum.NOTDEFINED IfcSIPrefix = enum_namespace() -exa = getattr(IfcSIPrefix, 'EXA', INDETERMINATE) -peta = getattr(IfcSIPrefix, 'PETA', INDETERMINATE) -tera = getattr(IfcSIPrefix, 'TERA', INDETERMINATE) -giga = getattr(IfcSIPrefix, 'GIGA', INDETERMINATE) -mega = getattr(IfcSIPrefix, 'MEGA', INDETERMINATE) -kilo = getattr(IfcSIPrefix, 'KILO', INDETERMINATE) -hecto = getattr(IfcSIPrefix, 'HECTO', INDETERMINATE) -deca = getattr(IfcSIPrefix, 'DECA', INDETERMINATE) -deci = getattr(IfcSIPrefix, 'DECI', INDETERMINATE) -centi = getattr(IfcSIPrefix, 'CENTI', INDETERMINATE) -milli = getattr(IfcSIPrefix, 'MILLI', INDETERMINATE) -micro = getattr(IfcSIPrefix, 'MICRO', INDETERMINATE) -nano = getattr(IfcSIPrefix, 'NANO', INDETERMINATE) -pico = getattr(IfcSIPrefix, 'PICO', INDETERMINATE) -femto = getattr(IfcSIPrefix, 'FEMTO', INDETERMINATE) -atto = getattr(IfcSIPrefix, 'ATTO', INDETERMINATE) +exa = IfcSIPrefix.EXA +peta = IfcSIPrefix.PETA +tera = IfcSIPrefix.TERA +giga = IfcSIPrefix.GIGA +mega = IfcSIPrefix.MEGA +kilo = IfcSIPrefix.KILO +hecto = IfcSIPrefix.HECTO +deca = IfcSIPrefix.DECA +deci = IfcSIPrefix.DECI +centi = IfcSIPrefix.CENTI +milli = IfcSIPrefix.MILLI +micro = IfcSIPrefix.MICRO +nano = IfcSIPrefix.NANO +pico = IfcSIPrefix.PICO +femto = IfcSIPrefix.FEMTO +atto = IfcSIPrefix.ATTO IfcSIUnitName = enum_namespace() -ampere = getattr(IfcSIUnitName, 'AMPERE', INDETERMINATE) -becquerel = getattr(IfcSIUnitName, 'BECQUEREL', INDETERMINATE) -candela = getattr(IfcSIUnitName, 'CANDELA', INDETERMINATE) -coulomb = getattr(IfcSIUnitName, 'COULOMB', INDETERMINATE) -cubic_metre = getattr(IfcSIUnitName, 'CUBIC_METRE', INDETERMINATE) -degree_celsius = getattr(IfcSIUnitName, 'DEGREE_CELSIUS', INDETERMINATE) -farad = getattr(IfcSIUnitName, 'FARAD', INDETERMINATE) -gram = getattr(IfcSIUnitName, 'GRAM', INDETERMINATE) -gray = getattr(IfcSIUnitName, 'GRAY', INDETERMINATE) -henry = getattr(IfcSIUnitName, 'HENRY', INDETERMINATE) -hertz = getattr(IfcSIUnitName, 'HERTZ', INDETERMINATE) -joule = getattr(IfcSIUnitName, 'JOULE', INDETERMINATE) -kelvin = getattr(IfcSIUnitName, 'KELVIN', INDETERMINATE) -lumen = getattr(IfcSIUnitName, 'LUMEN', INDETERMINATE) -lux = getattr(IfcSIUnitName, 'LUX', INDETERMINATE) -metre = getattr(IfcSIUnitName, 'METRE', INDETERMINATE) -mole = getattr(IfcSIUnitName, 'MOLE', INDETERMINATE) -newton = getattr(IfcSIUnitName, 'NEWTON', INDETERMINATE) -ohm = getattr(IfcSIUnitName, 'OHM', INDETERMINATE) -pascal = getattr(IfcSIUnitName, 'PASCAL', INDETERMINATE) -radian = getattr(IfcSIUnitName, 'RADIAN', INDETERMINATE) -second = getattr(IfcSIUnitName, 'SECOND', INDETERMINATE) -siemens = getattr(IfcSIUnitName, 'SIEMENS', INDETERMINATE) -sievert = getattr(IfcSIUnitName, 'SIEVERT', INDETERMINATE) -square_metre = getattr(IfcSIUnitName, 'SQUARE_METRE', INDETERMINATE) -steradian = getattr(IfcSIUnitName, 'STERADIAN', INDETERMINATE) -tesla = getattr(IfcSIUnitName, 'TESLA', INDETERMINATE) -volt = getattr(IfcSIUnitName, 'VOLT', INDETERMINATE) -watt = getattr(IfcSIUnitName, 'WATT', INDETERMINATE) -weber = getattr(IfcSIUnitName, 'WEBER', INDETERMINATE) +ampere = IfcSIUnitName.AMPERE +becquerel = IfcSIUnitName.BECQUEREL +candela = IfcSIUnitName.CANDELA +coulomb = IfcSIUnitName.COULOMB +cubic_metre = IfcSIUnitName.CUBIC_METRE +degree_celsius = IfcSIUnitName.DEGREE_CELSIUS +farad = IfcSIUnitName.FARAD +gram = IfcSIUnitName.GRAM +gray = IfcSIUnitName.GRAY +henry = IfcSIUnitName.HENRY +hertz = IfcSIUnitName.HERTZ +joule = IfcSIUnitName.JOULE +kelvin = IfcSIUnitName.KELVIN +lumen = IfcSIUnitName.LUMEN +lux = IfcSIUnitName.LUX +metre = IfcSIUnitName.METRE +mole = IfcSIUnitName.MOLE +newton = IfcSIUnitName.NEWTON +ohm = IfcSIUnitName.OHM +pascal = IfcSIUnitName.PASCAL +radian = IfcSIUnitName.RADIAN +second = IfcSIUnitName.SECOND +siemens = IfcSIUnitName.SIEMENS +sievert = IfcSIUnitName.SIEVERT +square_metre = IfcSIUnitName.SQUARE_METRE +steradian = IfcSIUnitName.STERADIAN +tesla = IfcSIUnitName.TESLA +volt = IfcSIUnitName.VOLT +watt = IfcSIUnitName.WATT +weber = IfcSIUnitName.WEBER IfcSanitaryTerminalTypeEnum = enum_namespace() -bath = getattr(IfcSanitaryTerminalTypeEnum, 'BATH', INDETERMINATE) -bidet = getattr(IfcSanitaryTerminalTypeEnum, 'BIDET', INDETERMINATE) -cistern = getattr(IfcSanitaryTerminalTypeEnum, 'CISTERN', INDETERMINATE) -shower = getattr(IfcSanitaryTerminalTypeEnum, 'SHOWER', INDETERMINATE) -sink = getattr(IfcSanitaryTerminalTypeEnum, 'SINK', INDETERMINATE) -sanitaryfountain = getattr(IfcSanitaryTerminalTypeEnum, 'SANITARYFOUNTAIN', INDETERMINATE) -toiletpan = getattr(IfcSanitaryTerminalTypeEnum, 'TOILETPAN', INDETERMINATE) -urinal = getattr(IfcSanitaryTerminalTypeEnum, 'URINAL', INDETERMINATE) -washhandbasin = getattr(IfcSanitaryTerminalTypeEnum, 'WASHHANDBASIN', INDETERMINATE) -wcseat = getattr(IfcSanitaryTerminalTypeEnum, 'WCSEAT', INDETERMINATE) -userdefined = getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSanitaryTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +bath = IfcSanitaryTerminalTypeEnum.BATH +bidet = IfcSanitaryTerminalTypeEnum.BIDET +cistern = IfcSanitaryTerminalTypeEnum.CISTERN +shower = IfcSanitaryTerminalTypeEnum.SHOWER +sink = IfcSanitaryTerminalTypeEnum.SINK +sanitaryfountain = IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN +toiletpan = IfcSanitaryTerminalTypeEnum.TOILETPAN +urinal = IfcSanitaryTerminalTypeEnum.URINAL +washhandbasin = IfcSanitaryTerminalTypeEnum.WASHHANDBASIN +wcseat = IfcSanitaryTerminalTypeEnum.WCSEAT +userdefined = IfcSanitaryTerminalTypeEnum.USERDEFINED +notdefined = IfcSanitaryTerminalTypeEnum.NOTDEFINED IfcSectionTypeEnum = enum_namespace() -uniform = getattr(IfcSectionTypeEnum, 'UNIFORM', INDETERMINATE) -tapered = getattr(IfcSectionTypeEnum, 'TAPERED', INDETERMINATE) +uniform = IfcSectionTypeEnum.UNIFORM +tapered = IfcSectionTypeEnum.TAPERED IfcSensorTypeEnum = enum_namespace() -cosensor = getattr(IfcSensorTypeEnum, 'COSENSOR', INDETERMINATE) -co2sensor = getattr(IfcSensorTypeEnum, 'CO2SENSOR', INDETERMINATE) -conductancesensor = getattr(IfcSensorTypeEnum, 'CONDUCTANCESENSOR', INDETERMINATE) -contactsensor = getattr(IfcSensorTypeEnum, 'CONTACTSENSOR', INDETERMINATE) -firesensor = getattr(IfcSensorTypeEnum, 'FIRESENSOR', INDETERMINATE) -flowsensor = getattr(IfcSensorTypeEnum, 'FLOWSENSOR', INDETERMINATE) -frostsensor = getattr(IfcSensorTypeEnum, 'FROSTSENSOR', INDETERMINATE) -gassensor = getattr(IfcSensorTypeEnum, 'GASSENSOR', INDETERMINATE) -heatsensor = getattr(IfcSensorTypeEnum, 'HEATSENSOR', INDETERMINATE) -humiditysensor = getattr(IfcSensorTypeEnum, 'HUMIDITYSENSOR', INDETERMINATE) -identifiersensor = getattr(IfcSensorTypeEnum, 'IDENTIFIERSENSOR', INDETERMINATE) -ionconcentrationsensor = getattr(IfcSensorTypeEnum, 'IONCONCENTRATIONSENSOR', INDETERMINATE) -levelsensor = getattr(IfcSensorTypeEnum, 'LEVELSENSOR', INDETERMINATE) -lightsensor = getattr(IfcSensorTypeEnum, 'LIGHTSENSOR', INDETERMINATE) -moisturesensor = getattr(IfcSensorTypeEnum, 'MOISTURESENSOR', INDETERMINATE) -movementsensor = getattr(IfcSensorTypeEnum, 'MOVEMENTSENSOR', INDETERMINATE) -phsensor = getattr(IfcSensorTypeEnum, 'PHSENSOR', INDETERMINATE) -pressuresensor = getattr(IfcSensorTypeEnum, 'PRESSURESENSOR', INDETERMINATE) -radiationsensor = getattr(IfcSensorTypeEnum, 'RADIATIONSENSOR', INDETERMINATE) -radioactivitysensor = getattr(IfcSensorTypeEnum, 'RADIOACTIVITYSENSOR', INDETERMINATE) -smokesensor = getattr(IfcSensorTypeEnum, 'SMOKESENSOR', INDETERMINATE) -soundsensor = getattr(IfcSensorTypeEnum, 'SOUNDSENSOR', INDETERMINATE) -temperaturesensor = getattr(IfcSensorTypeEnum, 'TEMPERATURESENSOR', INDETERMINATE) -windsensor = getattr(IfcSensorTypeEnum, 'WINDSENSOR', INDETERMINATE) -earthquakesensor = getattr(IfcSensorTypeEnum, 'EARTHQUAKESENSOR', INDETERMINATE) -foreignobjectdetectionsensor = getattr(IfcSensorTypeEnum, 'FOREIGNOBJECTDETECTIONSENSOR', INDETERMINATE) -obstaclesensor = getattr(IfcSensorTypeEnum, 'OBSTACLESENSOR', INDETERMINATE) -rainsensor = getattr(IfcSensorTypeEnum, 'RAINSENSOR', INDETERMINATE) -snowdepthsensor = getattr(IfcSensorTypeEnum, 'SNOWDEPTHSENSOR', INDETERMINATE) -trainsensor = getattr(IfcSensorTypeEnum, 'TRAINSENSOR', INDETERMINATE) -turnoutclosuresensor = getattr(IfcSensorTypeEnum, 'TURNOUTCLOSURESENSOR', INDETERMINATE) -wheelsensor = getattr(IfcSensorTypeEnum, 'WHEELSENSOR', INDETERMINATE) -userdefined = getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSensorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cosensor = IfcSensorTypeEnum.COSENSOR +co2sensor = IfcSensorTypeEnum.CO2SENSOR +conductancesensor = IfcSensorTypeEnum.CONDUCTANCESENSOR +contactsensor = IfcSensorTypeEnum.CONTACTSENSOR +firesensor = IfcSensorTypeEnum.FIRESENSOR +flowsensor = IfcSensorTypeEnum.FLOWSENSOR +frostsensor = IfcSensorTypeEnum.FROSTSENSOR +gassensor = IfcSensorTypeEnum.GASSENSOR +heatsensor = IfcSensorTypeEnum.HEATSENSOR +humiditysensor = IfcSensorTypeEnum.HUMIDITYSENSOR +identifiersensor = IfcSensorTypeEnum.IDENTIFIERSENSOR +ionconcentrationsensor = IfcSensorTypeEnum.IONCONCENTRATIONSENSOR +levelsensor = IfcSensorTypeEnum.LEVELSENSOR +lightsensor = IfcSensorTypeEnum.LIGHTSENSOR +moisturesensor = IfcSensorTypeEnum.MOISTURESENSOR +movementsensor = IfcSensorTypeEnum.MOVEMENTSENSOR +phsensor = IfcSensorTypeEnum.PHSENSOR +pressuresensor = IfcSensorTypeEnum.PRESSURESENSOR +radiationsensor = IfcSensorTypeEnum.RADIATIONSENSOR +radioactivitysensor = IfcSensorTypeEnum.RADIOACTIVITYSENSOR +smokesensor = IfcSensorTypeEnum.SMOKESENSOR +soundsensor = IfcSensorTypeEnum.SOUNDSENSOR +temperaturesensor = IfcSensorTypeEnum.TEMPERATURESENSOR +windsensor = IfcSensorTypeEnum.WINDSENSOR +earthquakesensor = IfcSensorTypeEnum.EARTHQUAKESENSOR +foreignobjectdetectionsensor = IfcSensorTypeEnum.FOREIGNOBJECTDETECTIONSENSOR +obstaclesensor = IfcSensorTypeEnum.OBSTACLESENSOR +rainsensor = IfcSensorTypeEnum.RAINSENSOR +snowdepthsensor = IfcSensorTypeEnum.SNOWDEPTHSENSOR +trainsensor = IfcSensorTypeEnum.TRAINSENSOR +turnoutclosuresensor = IfcSensorTypeEnum.TURNOUTCLOSURESENSOR +wheelsensor = IfcSensorTypeEnum.WHEELSENSOR +userdefined = IfcSensorTypeEnum.USERDEFINED +notdefined = IfcSensorTypeEnum.NOTDEFINED IfcSequenceEnum = enum_namespace() -start_start = getattr(IfcSequenceEnum, 'START_START', INDETERMINATE) -start_finish = getattr(IfcSequenceEnum, 'START_FINISH', INDETERMINATE) -finish_start = getattr(IfcSequenceEnum, 'FINISH_START', INDETERMINATE) -finish_finish = getattr(IfcSequenceEnum, 'FINISH_FINISH', INDETERMINATE) -userdefined = getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSequenceEnum, 'NOTDEFINED', INDETERMINATE) +start_start = IfcSequenceEnum.START_START +start_finish = IfcSequenceEnum.START_FINISH +finish_start = IfcSequenceEnum.FINISH_START +finish_finish = IfcSequenceEnum.FINISH_FINISH +userdefined = IfcSequenceEnum.USERDEFINED +notdefined = IfcSequenceEnum.NOTDEFINED IfcShadingDeviceTypeEnum = enum_namespace() -jalousie = getattr(IfcShadingDeviceTypeEnum, 'JALOUSIE', INDETERMINATE) -shutter = getattr(IfcShadingDeviceTypeEnum, 'SHUTTER', INDETERMINATE) -awning = getattr(IfcShadingDeviceTypeEnum, 'AWNING', INDETERMINATE) -userdefined = getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcShadingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +jalousie = IfcShadingDeviceTypeEnum.JALOUSIE +shutter = IfcShadingDeviceTypeEnum.SHUTTER +awning = IfcShadingDeviceTypeEnum.AWNING +userdefined = IfcShadingDeviceTypeEnum.USERDEFINED +notdefined = IfcShadingDeviceTypeEnum.NOTDEFINED IfcSignTypeEnum = enum_namespace() -marker = getattr(IfcSignTypeEnum, 'MARKER', INDETERMINATE) -pictoral = getattr(IfcSignTypeEnum, 'PICTORAL', INDETERMINATE) -mirror = getattr(IfcSignTypeEnum, 'MIRROR', INDETERMINATE) -userdefined = getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSignTypeEnum, 'NOTDEFINED', INDETERMINATE) +marker = IfcSignTypeEnum.MARKER +pictoral = IfcSignTypeEnum.PICTORAL +mirror = IfcSignTypeEnum.MIRROR +userdefined = IfcSignTypeEnum.USERDEFINED +notdefined = IfcSignTypeEnum.NOTDEFINED IfcSignalTypeEnum = enum_namespace() -visual = getattr(IfcSignalTypeEnum, 'VISUAL', INDETERMINATE) -audio = getattr(IfcSignalTypeEnum, 'AUDIO', INDETERMINATE) -mixed = getattr(IfcSignalTypeEnum, 'MIXED', INDETERMINATE) -userdefined = getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSignalTypeEnum, 'NOTDEFINED', INDETERMINATE) +visual = IfcSignalTypeEnum.VISUAL +audio = IfcSignalTypeEnum.AUDIO +mixed = IfcSignalTypeEnum.MIXED +userdefined = IfcSignalTypeEnum.USERDEFINED +notdefined = IfcSignalTypeEnum.NOTDEFINED IfcSimplePropertyTemplateTypeEnum = enum_namespace() -p_singlevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_SINGLEVALUE', INDETERMINATE) -p_enumeratedvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_ENUMERATEDVALUE', INDETERMINATE) -p_boundedvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_BOUNDEDVALUE', INDETERMINATE) -p_listvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_LISTVALUE', INDETERMINATE) -p_tablevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_TABLEVALUE', INDETERMINATE) -p_referencevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_REFERENCEVALUE', INDETERMINATE) -q_length = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_LENGTH', INDETERMINATE) -q_area = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_AREA', INDETERMINATE) -q_volume = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_VOLUME', INDETERMINATE) -q_count = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_COUNT', INDETERMINATE) -q_weight = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_WEIGHT', INDETERMINATE) -q_time = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_TIME', INDETERMINATE) +p_singlevalue = IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE +p_enumeratedvalue = IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE +p_boundedvalue = IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE +p_listvalue = IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE +p_tablevalue = IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE +p_referencevalue = IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE +q_length = IfcSimplePropertyTemplateTypeEnum.Q_LENGTH +q_area = IfcSimplePropertyTemplateTypeEnum.Q_AREA +q_volume = IfcSimplePropertyTemplateTypeEnum.Q_VOLUME +q_count = IfcSimplePropertyTemplateTypeEnum.Q_COUNT +q_weight = IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT +q_time = IfcSimplePropertyTemplateTypeEnum.Q_TIME IfcSlabTypeEnum = enum_namespace() -floor = getattr(IfcSlabTypeEnum, 'FLOOR', INDETERMINATE) -roof = getattr(IfcSlabTypeEnum, 'ROOF', INDETERMINATE) -landing = getattr(IfcSlabTypeEnum, 'LANDING', INDETERMINATE) -baseslab = getattr(IfcSlabTypeEnum, 'BASESLAB', INDETERMINATE) -approach_slab = getattr(IfcSlabTypeEnum, 'APPROACH_SLAB', INDETERMINATE) -paving = getattr(IfcSlabTypeEnum, 'PAVING', INDETERMINATE) -wearing = getattr(IfcSlabTypeEnum, 'WEARING', INDETERMINATE) -sidewalk = getattr(IfcSlabTypeEnum, 'SIDEWALK', INDETERMINATE) -trackslab = getattr(IfcSlabTypeEnum, 'TRACKSLAB', INDETERMINATE) -userdefined = getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSlabTypeEnum, 'NOTDEFINED', INDETERMINATE) +floor = IfcSlabTypeEnum.FLOOR +roof = IfcSlabTypeEnum.ROOF +landing = IfcSlabTypeEnum.LANDING +baseslab = IfcSlabTypeEnum.BASESLAB +approach_slab = IfcSlabTypeEnum.APPROACH_SLAB +paving = IfcSlabTypeEnum.PAVING +wearing = IfcSlabTypeEnum.WEARING +sidewalk = IfcSlabTypeEnum.SIDEWALK +trackslab = IfcSlabTypeEnum.TRACKSLAB +userdefined = IfcSlabTypeEnum.USERDEFINED +notdefined = IfcSlabTypeEnum.NOTDEFINED IfcSolarDeviceTypeEnum = enum_namespace() -solarcollector = getattr(IfcSolarDeviceTypeEnum, 'SOLARCOLLECTOR', INDETERMINATE) -solarpanel = getattr(IfcSolarDeviceTypeEnum, 'SOLARPANEL', INDETERMINATE) -userdefined = getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSolarDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +solarcollector = IfcSolarDeviceTypeEnum.SOLARCOLLECTOR +solarpanel = IfcSolarDeviceTypeEnum.SOLARPANEL +userdefined = IfcSolarDeviceTypeEnum.USERDEFINED +notdefined = IfcSolarDeviceTypeEnum.NOTDEFINED IfcSpaceHeaterTypeEnum = enum_namespace() -convector = getattr(IfcSpaceHeaterTypeEnum, 'CONVECTOR', INDETERMINATE) -radiator = getattr(IfcSpaceHeaterTypeEnum, 'RADIATOR', INDETERMINATE) -userdefined = getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpaceHeaterTypeEnum, 'NOTDEFINED', INDETERMINATE) +convector = IfcSpaceHeaterTypeEnum.CONVECTOR +radiator = IfcSpaceHeaterTypeEnum.RADIATOR +userdefined = IfcSpaceHeaterTypeEnum.USERDEFINED +notdefined = IfcSpaceHeaterTypeEnum.NOTDEFINED IfcSpaceTypeEnum = enum_namespace() -space = getattr(IfcSpaceTypeEnum, 'SPACE', INDETERMINATE) -parking = getattr(IfcSpaceTypeEnum, 'PARKING', INDETERMINATE) -gfa = getattr(IfcSpaceTypeEnum, 'GFA', INDETERMINATE) -internal = getattr(IfcSpaceTypeEnum, 'INTERNAL', INDETERMINATE) -external = getattr(IfcSpaceTypeEnum, 'EXTERNAL', INDETERMINATE) -userdefined = getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpaceTypeEnum, 'NOTDEFINED', INDETERMINATE) +space = IfcSpaceTypeEnum.SPACE +parking = IfcSpaceTypeEnum.PARKING +gfa = IfcSpaceTypeEnum.GFA +internal = IfcSpaceTypeEnum.INTERNAL +external = IfcSpaceTypeEnum.EXTERNAL +userdefined = IfcSpaceTypeEnum.USERDEFINED +notdefined = IfcSpaceTypeEnum.NOTDEFINED IfcSpatialZoneTypeEnum = enum_namespace() -construction = getattr(IfcSpatialZoneTypeEnum, 'CONSTRUCTION', INDETERMINATE) -firesafety = getattr(IfcSpatialZoneTypeEnum, 'FIRESAFETY', INDETERMINATE) -lighting = getattr(IfcSpatialZoneTypeEnum, 'LIGHTING', INDETERMINATE) -occupancy = getattr(IfcSpatialZoneTypeEnum, 'OCCUPANCY', INDETERMINATE) -security = getattr(IfcSpatialZoneTypeEnum, 'SECURITY', INDETERMINATE) -thermal = getattr(IfcSpatialZoneTypeEnum, 'THERMAL', INDETERMINATE) -transport = getattr(IfcSpatialZoneTypeEnum, 'TRANSPORT', INDETERMINATE) -ventilation = getattr(IfcSpatialZoneTypeEnum, 'VENTILATION', INDETERMINATE) -reservation = getattr(IfcSpatialZoneTypeEnum, 'RESERVATION', INDETERMINATE) -userdefined = getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpatialZoneTypeEnum, 'NOTDEFINED', INDETERMINATE) +construction = IfcSpatialZoneTypeEnum.CONSTRUCTION +firesafety = IfcSpatialZoneTypeEnum.FIRESAFETY +lighting = IfcSpatialZoneTypeEnum.LIGHTING +occupancy = IfcSpatialZoneTypeEnum.OCCUPANCY +security = IfcSpatialZoneTypeEnum.SECURITY +thermal = IfcSpatialZoneTypeEnum.THERMAL +transport = IfcSpatialZoneTypeEnum.TRANSPORT +ventilation = IfcSpatialZoneTypeEnum.VENTILATION +reservation = IfcSpatialZoneTypeEnum.RESERVATION +userdefined = IfcSpatialZoneTypeEnum.USERDEFINED +notdefined = IfcSpatialZoneTypeEnum.NOTDEFINED IfcStackTerminalTypeEnum = enum_namespace() -birdcage = getattr(IfcStackTerminalTypeEnum, 'BIRDCAGE', INDETERMINATE) -cowl = getattr(IfcStackTerminalTypeEnum, 'COWL', INDETERMINATE) -rainwaterhopper = getattr(IfcStackTerminalTypeEnum, 'RAINWATERHOPPER', INDETERMINATE) -userdefined = getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStackTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +birdcage = IfcStackTerminalTypeEnum.BIRDCAGE +cowl = IfcStackTerminalTypeEnum.COWL +rainwaterhopper = IfcStackTerminalTypeEnum.RAINWATERHOPPER +userdefined = IfcStackTerminalTypeEnum.USERDEFINED +notdefined = IfcStackTerminalTypeEnum.NOTDEFINED IfcStairFlightTypeEnum = enum_namespace() -straight = getattr(IfcStairFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -winder = getattr(IfcStairFlightTypeEnum, 'WINDER', INDETERMINATE) -spiral = getattr(IfcStairFlightTypeEnum, 'SPIRAL', INDETERMINATE) -curved = getattr(IfcStairFlightTypeEnum, 'CURVED', INDETERMINATE) -freeform = getattr(IfcStairFlightTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStairFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcStairFlightTypeEnum.STRAIGHT +winder = IfcStairFlightTypeEnum.WINDER +spiral = IfcStairFlightTypeEnum.SPIRAL +curved = IfcStairFlightTypeEnum.CURVED +freeform = IfcStairFlightTypeEnum.FREEFORM +userdefined = IfcStairFlightTypeEnum.USERDEFINED +notdefined = IfcStairFlightTypeEnum.NOTDEFINED IfcStairTypeEnum = enum_namespace() -straight_run_stair = getattr(IfcStairTypeEnum, 'STRAIGHT_RUN_STAIR', INDETERMINATE) -two_straight_run_stair = getattr(IfcStairTypeEnum, 'TWO_STRAIGHT_RUN_STAIR', INDETERMINATE) -quarter_winding_stair = getattr(IfcStairTypeEnum, 'QUARTER_WINDING_STAIR', INDETERMINATE) -quarter_turn_stair = getattr(IfcStairTypeEnum, 'QUARTER_TURN_STAIR', INDETERMINATE) -half_winding_stair = getattr(IfcStairTypeEnum, 'HALF_WINDING_STAIR', INDETERMINATE) -half_turn_stair = getattr(IfcStairTypeEnum, 'HALF_TURN_STAIR', INDETERMINATE) -two_quarter_winding_stair = getattr(IfcStairTypeEnum, 'TWO_QUARTER_WINDING_STAIR', INDETERMINATE) -two_quarter_turn_stair = getattr(IfcStairTypeEnum, 'TWO_QUARTER_TURN_STAIR', INDETERMINATE) -three_quarter_winding_stair = getattr(IfcStairTypeEnum, 'THREE_QUARTER_WINDING_STAIR', INDETERMINATE) -three_quarter_turn_stair = getattr(IfcStairTypeEnum, 'THREE_QUARTER_TURN_STAIR', INDETERMINATE) -spiral_stair = getattr(IfcStairTypeEnum, 'SPIRAL_STAIR', INDETERMINATE) -double_return_stair = getattr(IfcStairTypeEnum, 'DOUBLE_RETURN_STAIR', INDETERMINATE) -curved_run_stair = getattr(IfcStairTypeEnum, 'CURVED_RUN_STAIR', INDETERMINATE) -two_curved_run_stair = getattr(IfcStairTypeEnum, 'TWO_CURVED_RUN_STAIR', INDETERMINATE) -ladder = getattr(IfcStairTypeEnum, 'LADDER', INDETERMINATE) -userdefined = getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStairTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_stair = IfcStairTypeEnum.STRAIGHT_RUN_STAIR +two_straight_run_stair = IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR +quarter_winding_stair = IfcStairTypeEnum.QUARTER_WINDING_STAIR +quarter_turn_stair = IfcStairTypeEnum.QUARTER_TURN_STAIR +half_winding_stair = IfcStairTypeEnum.HALF_WINDING_STAIR +half_turn_stair = IfcStairTypeEnum.HALF_TURN_STAIR +two_quarter_winding_stair = IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR +two_quarter_turn_stair = IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR +three_quarter_winding_stair = IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR +three_quarter_turn_stair = IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR +spiral_stair = IfcStairTypeEnum.SPIRAL_STAIR +double_return_stair = IfcStairTypeEnum.DOUBLE_RETURN_STAIR +curved_run_stair = IfcStairTypeEnum.CURVED_RUN_STAIR +two_curved_run_stair = IfcStairTypeEnum.TWO_CURVED_RUN_STAIR +ladder = IfcStairTypeEnum.LADDER +userdefined = IfcStairTypeEnum.USERDEFINED +notdefined = IfcStairTypeEnum.NOTDEFINED IfcStateEnum = enum_namespace() -readwrite = getattr(IfcStateEnum, 'READWRITE', INDETERMINATE) -readonly = getattr(IfcStateEnum, 'READONLY', INDETERMINATE) -locked = getattr(IfcStateEnum, 'LOCKED', INDETERMINATE) -readwritelocked = getattr(IfcStateEnum, 'READWRITELOCKED', INDETERMINATE) -readonlylocked = getattr(IfcStateEnum, 'READONLYLOCKED', INDETERMINATE) +readwrite = IfcStateEnum.READWRITE +readonly = IfcStateEnum.READONLY +locked = IfcStateEnum.LOCKED +readwritelocked = IfcStateEnum.READWRITELOCKED +readonlylocked = IfcStateEnum.READONLYLOCKED IfcStructuralCurveActivityTypeEnum = enum_namespace() -const = getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE) -linear = getattr(IfcStructuralCurveActivityTypeEnum, 'LINEAR', INDETERMINATE) -polygonal = getattr(IfcStructuralCurveActivityTypeEnum, 'POLYGONAL', INDETERMINATE) -equidistant = getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE) -sinus = getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) -parabola = getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE) -discrete = getattr(IfcStructuralCurveActivityTypeEnum, 'DISCRETE', INDETERMINATE) -userdefined = getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralCurveActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralCurveActivityTypeEnum.CONST +linear = IfcStructuralCurveActivityTypeEnum.LINEAR +polygonal = IfcStructuralCurveActivityTypeEnum.POLYGONAL +equidistant = IfcStructuralCurveActivityTypeEnum.EQUIDISTANT +sinus = IfcStructuralCurveActivityTypeEnum.SINUS +parabola = IfcStructuralCurveActivityTypeEnum.PARABOLA +discrete = IfcStructuralCurveActivityTypeEnum.DISCRETE +userdefined = IfcStructuralCurveActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveActivityTypeEnum.NOTDEFINED IfcStructuralCurveMemberTypeEnum = enum_namespace() -rigid_joined_member = getattr(IfcStructuralCurveMemberTypeEnum, 'RIGID_JOINED_MEMBER', INDETERMINATE) -pin_joined_member = getattr(IfcStructuralCurveMemberTypeEnum, 'PIN_JOINED_MEMBER', INDETERMINATE) -cable = getattr(IfcStructuralCurveMemberTypeEnum, 'CABLE', INDETERMINATE) -tension_member = getattr(IfcStructuralCurveMemberTypeEnum, 'TENSION_MEMBER', INDETERMINATE) -compression_member = getattr(IfcStructuralCurveMemberTypeEnum, 'COMPRESSION_MEMBER', INDETERMINATE) -userdefined = getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralCurveMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigid_joined_member = IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER +pin_joined_member = IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER +cable = IfcStructuralCurveMemberTypeEnum.CABLE +tension_member = IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER +compression_member = IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER +userdefined = IfcStructuralCurveMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveMemberTypeEnum.NOTDEFINED IfcStructuralSurfaceActivityTypeEnum = enum_namespace() -const = getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE) -bilinear = getattr(IfcStructuralSurfaceActivityTypeEnum, 'BILINEAR', INDETERMINATE) -discrete = getattr(IfcStructuralSurfaceActivityTypeEnum, 'DISCRETE', INDETERMINATE) -isocontour = getattr(IfcStructuralSurfaceActivityTypeEnum, 'ISOCONTOUR', INDETERMINATE) -userdefined = getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralSurfaceActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralSurfaceActivityTypeEnum.CONST +bilinear = IfcStructuralSurfaceActivityTypeEnum.BILINEAR +discrete = IfcStructuralSurfaceActivityTypeEnum.DISCRETE +isocontour = IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR +userdefined = IfcStructuralSurfaceActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED IfcStructuralSurfaceMemberTypeEnum = enum_namespace() -bending_element = getattr(IfcStructuralSurfaceMemberTypeEnum, 'BENDING_ELEMENT', INDETERMINATE) -membrane_element = getattr(IfcStructuralSurfaceMemberTypeEnum, 'MEMBRANE_ELEMENT', INDETERMINATE) -shell = getattr(IfcStructuralSurfaceMemberTypeEnum, 'SHELL', INDETERMINATE) -userdefined = getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralSurfaceMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_element = IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT +membrane_element = IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT +shell = IfcStructuralSurfaceMemberTypeEnum.SHELL +userdefined = IfcStructuralSurfaceMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED IfcSubContractResourceTypeEnum = enum_namespace() -purchase = getattr(IfcSubContractResourceTypeEnum, 'PURCHASE', INDETERMINATE) -work = getattr(IfcSubContractResourceTypeEnum, 'WORK', INDETERMINATE) -userdefined = getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSubContractResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +purchase = IfcSubContractResourceTypeEnum.PURCHASE +work = IfcSubContractResourceTypeEnum.WORK +userdefined = IfcSubContractResourceTypeEnum.USERDEFINED +notdefined = IfcSubContractResourceTypeEnum.NOTDEFINED IfcSurfaceFeatureTypeEnum = enum_namespace() -mark = getattr(IfcSurfaceFeatureTypeEnum, 'MARK', INDETERMINATE) -tag = getattr(IfcSurfaceFeatureTypeEnum, 'TAG', INDETERMINATE) -treatment = getattr(IfcSurfaceFeatureTypeEnum, 'TREATMENT', INDETERMINATE) -defect = getattr(IfcSurfaceFeatureTypeEnum, 'DEFECT', INDETERMINATE) -hatchmarking = getattr(IfcSurfaceFeatureTypeEnum, 'HATCHMARKING', INDETERMINATE) -linemarking = getattr(IfcSurfaceFeatureTypeEnum, 'LINEMARKING', INDETERMINATE) -pavementsurfacemarking = getattr(IfcSurfaceFeatureTypeEnum, 'PAVEMENTSURFACEMARKING', INDETERMINATE) -symbolmarking = getattr(IfcSurfaceFeatureTypeEnum, 'SYMBOLMARKING', INDETERMINATE) -nonskidsurfacing = getattr(IfcSurfaceFeatureTypeEnum, 'NONSKIDSURFACING', INDETERMINATE) -rumblestrip = getattr(IfcSurfaceFeatureTypeEnum, 'RUMBLESTRIP', INDETERMINATE) -transverserumblestrip = getattr(IfcSurfaceFeatureTypeEnum, 'TRANSVERSERUMBLESTRIP', INDETERMINATE) -userdefined = getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSurfaceFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +mark = IfcSurfaceFeatureTypeEnum.MARK +tag = IfcSurfaceFeatureTypeEnum.TAG +treatment = IfcSurfaceFeatureTypeEnum.TREATMENT +defect = IfcSurfaceFeatureTypeEnum.DEFECT +hatchmarking = IfcSurfaceFeatureTypeEnum.HATCHMARKING +linemarking = IfcSurfaceFeatureTypeEnum.LINEMARKING +pavementsurfacemarking = IfcSurfaceFeatureTypeEnum.PAVEMENTSURFACEMARKING +symbolmarking = IfcSurfaceFeatureTypeEnum.SYMBOLMARKING +nonskidsurfacing = IfcSurfaceFeatureTypeEnum.NONSKIDSURFACING +rumblestrip = IfcSurfaceFeatureTypeEnum.RUMBLESTRIP +transverserumblestrip = IfcSurfaceFeatureTypeEnum.TRANSVERSERUMBLESTRIP +userdefined = IfcSurfaceFeatureTypeEnum.USERDEFINED +notdefined = IfcSurfaceFeatureTypeEnum.NOTDEFINED IfcSurfaceSide = enum_namespace() -positive = getattr(IfcSurfaceSide, 'POSITIVE', INDETERMINATE) -negative = getattr(IfcSurfaceSide, 'NEGATIVE', INDETERMINATE) -both = getattr(IfcSurfaceSide, 'BOTH', INDETERMINATE) +positive = IfcSurfaceSide.POSITIVE +negative = IfcSurfaceSide.NEGATIVE +both = IfcSurfaceSide.BOTH IfcSwitchingDeviceTypeEnum = enum_namespace() -contactor = getattr(IfcSwitchingDeviceTypeEnum, 'CONTACTOR', INDETERMINATE) -dimmerswitch = getattr(IfcSwitchingDeviceTypeEnum, 'DIMMERSWITCH', INDETERMINATE) -emergencystop = getattr(IfcSwitchingDeviceTypeEnum, 'EMERGENCYSTOP', INDETERMINATE) -keypad = getattr(IfcSwitchingDeviceTypeEnum, 'KEYPAD', INDETERMINATE) -momentaryswitch = getattr(IfcSwitchingDeviceTypeEnum, 'MOMENTARYSWITCH', INDETERMINATE) -selectorswitch = getattr(IfcSwitchingDeviceTypeEnum, 'SELECTORSWITCH', INDETERMINATE) -starter = getattr(IfcSwitchingDeviceTypeEnum, 'STARTER', INDETERMINATE) -switchdisconnector = getattr(IfcSwitchingDeviceTypeEnum, 'SWITCHDISCONNECTOR', INDETERMINATE) -toggleswitch = getattr(IfcSwitchingDeviceTypeEnum, 'TOGGLESWITCH', INDETERMINATE) -relay = getattr(IfcSwitchingDeviceTypeEnum, 'RELAY', INDETERMINATE) -start_and_stop_equipment = getattr(IfcSwitchingDeviceTypeEnum, 'START_AND_STOP_EQUIPMENT', INDETERMINATE) -userdefined = getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSwitchingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +contactor = IfcSwitchingDeviceTypeEnum.CONTACTOR +dimmerswitch = IfcSwitchingDeviceTypeEnum.DIMMERSWITCH +emergencystop = IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP +keypad = IfcSwitchingDeviceTypeEnum.KEYPAD +momentaryswitch = IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH +selectorswitch = IfcSwitchingDeviceTypeEnum.SELECTORSWITCH +starter = IfcSwitchingDeviceTypeEnum.STARTER +switchdisconnector = IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR +toggleswitch = IfcSwitchingDeviceTypeEnum.TOGGLESWITCH +relay = IfcSwitchingDeviceTypeEnum.RELAY +start_and_stop_equipment = IfcSwitchingDeviceTypeEnum.START_AND_STOP_EQUIPMENT +userdefined = IfcSwitchingDeviceTypeEnum.USERDEFINED +notdefined = IfcSwitchingDeviceTypeEnum.NOTDEFINED IfcSystemFurnitureElementTypeEnum = enum_namespace() -panel = getattr(IfcSystemFurnitureElementTypeEnum, 'PANEL', INDETERMINATE) -worksurface = getattr(IfcSystemFurnitureElementTypeEnum, 'WORKSURFACE', INDETERMINATE) -subrack = getattr(IfcSystemFurnitureElementTypeEnum, 'SUBRACK', INDETERMINATE) -userdefined = getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSystemFurnitureElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +panel = IfcSystemFurnitureElementTypeEnum.PANEL +worksurface = IfcSystemFurnitureElementTypeEnum.WORKSURFACE +subrack = IfcSystemFurnitureElementTypeEnum.SUBRACK +userdefined = IfcSystemFurnitureElementTypeEnum.USERDEFINED +notdefined = IfcSystemFurnitureElementTypeEnum.NOTDEFINED IfcTankTypeEnum = enum_namespace() -basin = getattr(IfcTankTypeEnum, 'BASIN', INDETERMINATE) -breakpressure = getattr(IfcTankTypeEnum, 'BREAKPRESSURE', INDETERMINATE) -expansion = getattr(IfcTankTypeEnum, 'EXPANSION', INDETERMINATE) -feedandexpansion = getattr(IfcTankTypeEnum, 'FEEDANDEXPANSION', INDETERMINATE) -pressurevessel = getattr(IfcTankTypeEnum, 'PRESSUREVESSEL', INDETERMINATE) -storage = getattr(IfcTankTypeEnum, 'STORAGE', INDETERMINATE) -vessel = getattr(IfcTankTypeEnum, 'VESSEL', INDETERMINATE) -oilretentiontray = getattr(IfcTankTypeEnum, 'OILRETENTIONTRAY', INDETERMINATE) -userdefined = getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTankTypeEnum, 'NOTDEFINED', INDETERMINATE) +basin = IfcTankTypeEnum.BASIN +breakpressure = IfcTankTypeEnum.BREAKPRESSURE +expansion = IfcTankTypeEnum.EXPANSION +feedandexpansion = IfcTankTypeEnum.FEEDANDEXPANSION +pressurevessel = IfcTankTypeEnum.PRESSUREVESSEL +storage = IfcTankTypeEnum.STORAGE +vessel = IfcTankTypeEnum.VESSEL +oilretentiontray = IfcTankTypeEnum.OILRETENTIONTRAY +userdefined = IfcTankTypeEnum.USERDEFINED +notdefined = IfcTankTypeEnum.NOTDEFINED IfcTaskDurationEnum = enum_namespace() -elapsedtime = getattr(IfcTaskDurationEnum, 'ELAPSEDTIME', INDETERMINATE) -worktime = getattr(IfcTaskDurationEnum, 'WORKTIME', INDETERMINATE) -notdefined = getattr(IfcTaskDurationEnum, 'NOTDEFINED', INDETERMINATE) +elapsedtime = IfcTaskDurationEnum.ELAPSEDTIME +worktime = IfcTaskDurationEnum.WORKTIME +notdefined = IfcTaskDurationEnum.NOTDEFINED IfcTaskTypeEnum = enum_namespace() -attendance = getattr(IfcTaskTypeEnum, 'ATTENDANCE', INDETERMINATE) -construction = getattr(IfcTaskTypeEnum, 'CONSTRUCTION', INDETERMINATE) -demolition = getattr(IfcTaskTypeEnum, 'DEMOLITION', INDETERMINATE) -dismantle = getattr(IfcTaskTypeEnum, 'DISMANTLE', INDETERMINATE) -disposal = getattr(IfcTaskTypeEnum, 'DISPOSAL', INDETERMINATE) -installation = getattr(IfcTaskTypeEnum, 'INSTALLATION', INDETERMINATE) -logistic = getattr(IfcTaskTypeEnum, 'LOGISTIC', INDETERMINATE) -maintenance = getattr(IfcTaskTypeEnum, 'MAINTENANCE', INDETERMINATE) -move = getattr(IfcTaskTypeEnum, 'MOVE', INDETERMINATE) -operation = getattr(IfcTaskTypeEnum, 'OPERATION', INDETERMINATE) -removal = getattr(IfcTaskTypeEnum, 'REMOVAL', INDETERMINATE) -renovation = getattr(IfcTaskTypeEnum, 'RENOVATION', INDETERMINATE) -userdefined = getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTaskTypeEnum, 'NOTDEFINED', INDETERMINATE) +attendance = IfcTaskTypeEnum.ATTENDANCE +construction = IfcTaskTypeEnum.CONSTRUCTION +demolition = IfcTaskTypeEnum.DEMOLITION +dismantle = IfcTaskTypeEnum.DISMANTLE +disposal = IfcTaskTypeEnum.DISPOSAL +installation = IfcTaskTypeEnum.INSTALLATION +logistic = IfcTaskTypeEnum.LOGISTIC +maintenance = IfcTaskTypeEnum.MAINTENANCE +move = IfcTaskTypeEnum.MOVE +operation = IfcTaskTypeEnum.OPERATION +removal = IfcTaskTypeEnum.REMOVAL +renovation = IfcTaskTypeEnum.RENOVATION +userdefined = IfcTaskTypeEnum.USERDEFINED +notdefined = IfcTaskTypeEnum.NOTDEFINED IfcTendonAnchorTypeEnum = enum_namespace() -coupler = getattr(IfcTendonAnchorTypeEnum, 'COUPLER', INDETERMINATE) -fixed_end = getattr(IfcTendonAnchorTypeEnum, 'FIXED_END', INDETERMINATE) -tensioning_end = getattr(IfcTendonAnchorTypeEnum, 'TENSIONING_END', INDETERMINATE) -userdefined = getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonAnchorTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonAnchorTypeEnum.COUPLER +fixed_end = IfcTendonAnchorTypeEnum.FIXED_END +tensioning_end = IfcTendonAnchorTypeEnum.TENSIONING_END +userdefined = IfcTendonAnchorTypeEnum.USERDEFINED +notdefined = IfcTendonAnchorTypeEnum.NOTDEFINED IfcTendonConduitTypeEnum = enum_namespace() -duct = getattr(IfcTendonConduitTypeEnum, 'DUCT', INDETERMINATE) -coupler = getattr(IfcTendonConduitTypeEnum, 'COUPLER', INDETERMINATE) -grouting_duct = getattr(IfcTendonConduitTypeEnum, 'GROUTING_DUCT', INDETERMINATE) -trumpet = getattr(IfcTendonConduitTypeEnum, 'TRUMPET', INDETERMINATE) -diabolo = getattr(IfcTendonConduitTypeEnum, 'DIABOLO', INDETERMINATE) -userdefined = getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonConduitTypeEnum, 'NOTDEFINED', INDETERMINATE) +duct = IfcTendonConduitTypeEnum.DUCT +coupler = IfcTendonConduitTypeEnum.COUPLER +grouting_duct = IfcTendonConduitTypeEnum.GROUTING_DUCT +trumpet = IfcTendonConduitTypeEnum.TRUMPET +diabolo = IfcTendonConduitTypeEnum.DIABOLO +userdefined = IfcTendonConduitTypeEnum.USERDEFINED +notdefined = IfcTendonConduitTypeEnum.NOTDEFINED IfcTendonTypeEnum = enum_namespace() -bar = getattr(IfcTendonTypeEnum, 'BAR', INDETERMINATE) -coated = getattr(IfcTendonTypeEnum, 'COATED', INDETERMINATE) -strand = getattr(IfcTendonTypeEnum, 'STRAND', INDETERMINATE) -wire = getattr(IfcTendonTypeEnum, 'WIRE', INDETERMINATE) -userdefined = getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonTypeEnum, 'NOTDEFINED', INDETERMINATE) +bar = IfcTendonTypeEnum.BAR +coated = IfcTendonTypeEnum.COATED +strand = IfcTendonTypeEnum.STRAND +wire = IfcTendonTypeEnum.WIRE +userdefined = IfcTendonTypeEnum.USERDEFINED +notdefined = IfcTendonTypeEnum.NOTDEFINED IfcTextPath = enum_namespace() -left = getattr(IfcTextPath, 'LEFT', INDETERMINATE) -right = getattr(IfcTextPath, 'RIGHT', INDETERMINATE) -up = getattr(IfcTextPath, 'UP', INDETERMINATE) -down = getattr(IfcTextPath, 'DOWN', INDETERMINATE) +left = IfcTextPath.LEFT +right = IfcTextPath.RIGHT +up = IfcTextPath.UP +down = IfcTextPath.DOWN IfcTimeSeriesDataTypeEnum = enum_namespace() -continuous = getattr(IfcTimeSeriesDataTypeEnum, 'CONTINUOUS', INDETERMINATE) -discrete = getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETE', INDETERMINATE) -discretebinary = getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETEBINARY', INDETERMINATE) -piecewisebinary = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISEBINARY', INDETERMINATE) -piecewiseconstant = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONSTANT', INDETERMINATE) -piecewisecontinuous = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONTINUOUS', INDETERMINATE) -notdefined = getattr(IfcTimeSeriesDataTypeEnum, 'NOTDEFINED', INDETERMINATE) +continuous = IfcTimeSeriesDataTypeEnum.CONTINUOUS +discrete = IfcTimeSeriesDataTypeEnum.DISCRETE +discretebinary = IfcTimeSeriesDataTypeEnum.DISCRETEBINARY +piecewisebinary = IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY +piecewiseconstant = IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT +piecewisecontinuous = IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS +notdefined = IfcTimeSeriesDataTypeEnum.NOTDEFINED IfcTrackElementTypeEnum = enum_namespace() -trackendofalignment = getattr(IfcTrackElementTypeEnum, 'TRACKENDOFALIGNMENT', INDETERMINATE) -blockingdevice = getattr(IfcTrackElementTypeEnum, 'BLOCKINGDEVICE', INDETERMINATE) -vehiclestop = getattr(IfcTrackElementTypeEnum, 'VEHICLESTOP', INDETERMINATE) -sleeper = getattr(IfcTrackElementTypeEnum, 'SLEEPER', INDETERMINATE) -half_set_of_blades = getattr(IfcTrackElementTypeEnum, 'HALF_SET_OF_BLADES', INDETERMINATE) -speedregulator = getattr(IfcTrackElementTypeEnum, 'SPEEDREGULATOR', INDETERMINATE) -derailer = getattr(IfcTrackElementTypeEnum, 'DERAILER', INDETERMINATE) -frog = getattr(IfcTrackElementTypeEnum, 'FROG', INDETERMINATE) -userdefined = getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTrackElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +trackendofalignment = IfcTrackElementTypeEnum.TRACKENDOFALIGNMENT +blockingdevice = IfcTrackElementTypeEnum.BLOCKINGDEVICE +vehiclestop = IfcTrackElementTypeEnum.VEHICLESTOP +sleeper = IfcTrackElementTypeEnum.SLEEPER +half_set_of_blades = IfcTrackElementTypeEnum.HALF_SET_OF_BLADES +speedregulator = IfcTrackElementTypeEnum.SPEEDREGULATOR +derailer = IfcTrackElementTypeEnum.DERAILER +frog = IfcTrackElementTypeEnum.FROG +userdefined = IfcTrackElementTypeEnum.USERDEFINED +notdefined = IfcTrackElementTypeEnum.NOTDEFINED IfcTransformerTypeEnum = enum_namespace() -current = getattr(IfcTransformerTypeEnum, 'CURRENT', INDETERMINATE) -frequency = getattr(IfcTransformerTypeEnum, 'FREQUENCY', INDETERMINATE) -inverter = getattr(IfcTransformerTypeEnum, 'INVERTER', INDETERMINATE) -rectifier = getattr(IfcTransformerTypeEnum, 'RECTIFIER', INDETERMINATE) -voltage = getattr(IfcTransformerTypeEnum, 'VOLTAGE', INDETERMINATE) -chopper = getattr(IfcTransformerTypeEnum, 'CHOPPER', INDETERMINATE) -combined = getattr(IfcTransformerTypeEnum, 'COMBINED', INDETERMINATE) -userdefined = getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTransformerTypeEnum, 'NOTDEFINED', INDETERMINATE) +current = IfcTransformerTypeEnum.CURRENT +frequency = IfcTransformerTypeEnum.FREQUENCY +inverter = IfcTransformerTypeEnum.INVERTER +rectifier = IfcTransformerTypeEnum.RECTIFIER +voltage = IfcTransformerTypeEnum.VOLTAGE +chopper = IfcTransformerTypeEnum.CHOPPER +combined = IfcTransformerTypeEnum.COMBINED +userdefined = IfcTransformerTypeEnum.USERDEFINED +notdefined = IfcTransformerTypeEnum.NOTDEFINED IfcTransitionCode = enum_namespace() -discontinuous = getattr(IfcTransitionCode, 'DISCONTINUOUS', INDETERMINATE) -continuous = getattr(IfcTransitionCode, 'CONTINUOUS', INDETERMINATE) -contsamegradient = getattr(IfcTransitionCode, 'CONTSAMEGRADIENT', INDETERMINATE) -contsamegradientsamecurvature = getattr(IfcTransitionCode, 'CONTSAMEGRADIENTSAMECURVATURE', INDETERMINATE) +discontinuous = IfcTransitionCode.DISCONTINUOUS +continuous = IfcTransitionCode.CONTINUOUS +contsamegradient = IfcTransitionCode.CONTSAMEGRADIENT +contsamegradientsamecurvature = IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE IfcTransitionCurveType = enum_namespace() -biquadraticparabola = getattr(IfcTransitionCurveType, 'BIQUADRATICPARABOLA', INDETERMINATE) -blosscurve = getattr(IfcTransitionCurveType, 'BLOSSCURVE', INDETERMINATE) -clothoidcurve = getattr(IfcTransitionCurveType, 'CLOTHOIDCURVE', INDETERMINATE) -cosinecurve = getattr(IfcTransitionCurveType, 'COSINECURVE', INDETERMINATE) -cubicparabola = getattr(IfcTransitionCurveType, 'CUBICPARABOLA', INDETERMINATE) -sinecurve = getattr(IfcTransitionCurveType, 'SINECURVE', INDETERMINATE) +biquadraticparabola = IfcTransitionCurveType.BIQUADRATICPARABOLA +blosscurve = IfcTransitionCurveType.BLOSSCURVE +clothoidcurve = IfcTransitionCurveType.CLOTHOIDCURVE +cosinecurve = IfcTransitionCurveType.COSINECURVE +cubicparabola = IfcTransitionCurveType.CUBICPARABOLA +sinecurve = IfcTransitionCurveType.SINECURVE IfcTransportElementFixedTypeEnum = enum_namespace() -elevator = getattr(IfcTransportElementFixedTypeEnum, 'ELEVATOR', INDETERMINATE) -escalator = getattr(IfcTransportElementFixedTypeEnum, 'ESCALATOR', INDETERMINATE) -movingwalkway = getattr(IfcTransportElementFixedTypeEnum, 'MOVINGWALKWAY', INDETERMINATE) -craneway = getattr(IfcTransportElementFixedTypeEnum, 'CRANEWAY', INDETERMINATE) -liftinggear = getattr(IfcTransportElementFixedTypeEnum, 'LIFTINGGEAR', INDETERMINATE) -userdefined = getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTransportElementFixedTypeEnum, 'NOTDEFINED', INDETERMINATE) +elevator = IfcTransportElementFixedTypeEnum.ELEVATOR +escalator = IfcTransportElementFixedTypeEnum.ESCALATOR +movingwalkway = IfcTransportElementFixedTypeEnum.MOVINGWALKWAY +craneway = IfcTransportElementFixedTypeEnum.CRANEWAY +liftinggear = IfcTransportElementFixedTypeEnum.LIFTINGGEAR +userdefined = IfcTransportElementFixedTypeEnum.USERDEFINED +notdefined = IfcTransportElementFixedTypeEnum.NOTDEFINED IfcTransportElementNonFixedTypeEnum = enum_namespace() -vehicle = getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLE', INDETERMINATE) -vehicletracked = getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLETRACKED', INDETERMINATE) -rollingstock = getattr(IfcTransportElementNonFixedTypeEnum, 'ROLLINGSTOCK', INDETERMINATE) -vehiclewheeled = getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLEWHEELED', INDETERMINATE) -vehicleair = getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLEAIR', INDETERMINATE) -cargo = getattr(IfcTransportElementNonFixedTypeEnum, 'CARGO', INDETERMINATE) -vehiclemarine = getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLEMARINE', INDETERMINATE) -userdefined = getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTransportElementNonFixedTypeEnum, 'NOTDEFINED', INDETERMINATE) +vehicle = IfcTransportElementNonFixedTypeEnum.VEHICLE +vehicletracked = IfcTransportElementNonFixedTypeEnum.VEHICLETRACKED +rollingstock = IfcTransportElementNonFixedTypeEnum.ROLLINGSTOCK +vehiclewheeled = IfcTransportElementNonFixedTypeEnum.VEHICLEWHEELED +vehicleair = IfcTransportElementNonFixedTypeEnum.VEHICLEAIR +cargo = IfcTransportElementNonFixedTypeEnum.CARGO +vehiclemarine = IfcTransportElementNonFixedTypeEnum.VEHICLEMARINE +userdefined = IfcTransportElementNonFixedTypeEnum.USERDEFINED +notdefined = IfcTransportElementNonFixedTypeEnum.NOTDEFINED IfcTrimmingPreference = enum_namespace() -cartesian = getattr(IfcTrimmingPreference, 'CARTESIAN', INDETERMINATE) -parameter = getattr(IfcTrimmingPreference, 'PARAMETER', INDETERMINATE) -unspecified = getattr(IfcTrimmingPreference, 'UNSPECIFIED', INDETERMINATE) +cartesian = IfcTrimmingPreference.CARTESIAN +parameter = IfcTrimmingPreference.PARAMETER +unspecified = IfcTrimmingPreference.UNSPECIFIED IfcTubeBundleTypeEnum = enum_namespace() -finned = getattr(IfcTubeBundleTypeEnum, 'FINNED', INDETERMINATE) -userdefined = getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTubeBundleTypeEnum, 'NOTDEFINED', INDETERMINATE) +finned = IfcTubeBundleTypeEnum.FINNED +userdefined = IfcTubeBundleTypeEnum.USERDEFINED +notdefined = IfcTubeBundleTypeEnum.NOTDEFINED IfcUnitEnum = enum_namespace() -absorbeddoseunit = getattr(IfcUnitEnum, 'ABSORBEDDOSEUNIT', INDETERMINATE) -amountofsubstanceunit = getattr(IfcUnitEnum, 'AMOUNTOFSUBSTANCEUNIT', INDETERMINATE) -areaunit = getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE) -doseequivalentunit = getattr(IfcUnitEnum, 'DOSEEQUIVALENTUNIT', INDETERMINATE) -electriccapacitanceunit = getattr(IfcUnitEnum, 'ELECTRICCAPACITANCEUNIT', INDETERMINATE) -electricchargeunit = getattr(IfcUnitEnum, 'ELECTRICCHARGEUNIT', INDETERMINATE) -electricconductanceunit = getattr(IfcUnitEnum, 'ELECTRICCONDUCTANCEUNIT', INDETERMINATE) -electriccurrentunit = getattr(IfcUnitEnum, 'ELECTRICCURRENTUNIT', INDETERMINATE) -electricresistanceunit = getattr(IfcUnitEnum, 'ELECTRICRESISTANCEUNIT', INDETERMINATE) -electricvoltageunit = getattr(IfcUnitEnum, 'ELECTRICVOLTAGEUNIT', INDETERMINATE) -energyunit = getattr(IfcUnitEnum, 'ENERGYUNIT', INDETERMINATE) -forceunit = getattr(IfcUnitEnum, 'FORCEUNIT', INDETERMINATE) -frequencyunit = getattr(IfcUnitEnum, 'FREQUENCYUNIT', INDETERMINATE) -illuminanceunit = getattr(IfcUnitEnum, 'ILLUMINANCEUNIT', INDETERMINATE) -inductanceunit = getattr(IfcUnitEnum, 'INDUCTANCEUNIT', INDETERMINATE) -lengthunit = getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE) -luminousfluxunit = getattr(IfcUnitEnum, 'LUMINOUSFLUXUNIT', INDETERMINATE) -luminousintensityunit = getattr(IfcUnitEnum, 'LUMINOUSINTENSITYUNIT', INDETERMINATE) -magneticfluxdensityunit = getattr(IfcUnitEnum, 'MAGNETICFLUXDENSITYUNIT', INDETERMINATE) -magneticfluxunit = getattr(IfcUnitEnum, 'MAGNETICFLUXUNIT', INDETERMINATE) -massunit = getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE) -planeangleunit = getattr(IfcUnitEnum, 'PLANEANGLEUNIT', INDETERMINATE) -powerunit = getattr(IfcUnitEnum, 'POWERUNIT', INDETERMINATE) -pressureunit = getattr(IfcUnitEnum, 'PRESSUREUNIT', INDETERMINATE) -radioactivityunit = getattr(IfcUnitEnum, 'RADIOACTIVITYUNIT', INDETERMINATE) -solidangleunit = getattr(IfcUnitEnum, 'SOLIDANGLEUNIT', INDETERMINATE) -thermodynamictemperatureunit = getattr(IfcUnitEnum, 'THERMODYNAMICTEMPERATUREUNIT', INDETERMINATE) -timeunit = getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE) -volumeunit = getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE) -userdefined = getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE) +absorbeddoseunit = IfcUnitEnum.ABSORBEDDOSEUNIT +amountofsubstanceunit = IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT +areaunit = IfcUnitEnum.AREAUNIT +doseequivalentunit = IfcUnitEnum.DOSEEQUIVALENTUNIT +electriccapacitanceunit = IfcUnitEnum.ELECTRICCAPACITANCEUNIT +electricchargeunit = IfcUnitEnum.ELECTRICCHARGEUNIT +electricconductanceunit = IfcUnitEnum.ELECTRICCONDUCTANCEUNIT +electriccurrentunit = IfcUnitEnum.ELECTRICCURRENTUNIT +electricresistanceunit = IfcUnitEnum.ELECTRICRESISTANCEUNIT +electricvoltageunit = IfcUnitEnum.ELECTRICVOLTAGEUNIT +energyunit = IfcUnitEnum.ENERGYUNIT +forceunit = IfcUnitEnum.FORCEUNIT +frequencyunit = IfcUnitEnum.FREQUENCYUNIT +illuminanceunit = IfcUnitEnum.ILLUMINANCEUNIT +inductanceunit = IfcUnitEnum.INDUCTANCEUNIT +lengthunit = IfcUnitEnum.LENGTHUNIT +luminousfluxunit = IfcUnitEnum.LUMINOUSFLUXUNIT +luminousintensityunit = IfcUnitEnum.LUMINOUSINTENSITYUNIT +magneticfluxdensityunit = IfcUnitEnum.MAGNETICFLUXDENSITYUNIT +magneticfluxunit = IfcUnitEnum.MAGNETICFLUXUNIT +massunit = IfcUnitEnum.MASSUNIT +planeangleunit = IfcUnitEnum.PLANEANGLEUNIT +powerunit = IfcUnitEnum.POWERUNIT +pressureunit = IfcUnitEnum.PRESSUREUNIT +radioactivityunit = IfcUnitEnum.RADIOACTIVITYUNIT +solidangleunit = IfcUnitEnum.SOLIDANGLEUNIT +thermodynamictemperatureunit = IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT +timeunit = IfcUnitEnum.TIMEUNIT +volumeunit = IfcUnitEnum.VOLUMEUNIT +userdefined = IfcUnitEnum.USERDEFINED IfcUnitaryControlElementTypeEnum = enum_namespace() -alarmpanel = getattr(IfcUnitaryControlElementTypeEnum, 'ALARMPANEL', INDETERMINATE) -controlpanel = getattr(IfcUnitaryControlElementTypeEnum, 'CONTROLPANEL', INDETERMINATE) -gasdetectionpanel = getattr(IfcUnitaryControlElementTypeEnum, 'GASDETECTIONPANEL', INDETERMINATE) -indicatorpanel = getattr(IfcUnitaryControlElementTypeEnum, 'INDICATORPANEL', INDETERMINATE) -mimicpanel = getattr(IfcUnitaryControlElementTypeEnum, 'MIMICPANEL', INDETERMINATE) -humidistat = getattr(IfcUnitaryControlElementTypeEnum, 'HUMIDISTAT', INDETERMINATE) -thermostat = getattr(IfcUnitaryControlElementTypeEnum, 'THERMOSTAT', INDETERMINATE) -weatherstation = getattr(IfcUnitaryControlElementTypeEnum, 'WEATHERSTATION', INDETERMINATE) -combined = getattr(IfcUnitaryControlElementTypeEnum, 'COMBINED', INDETERMINATE) -userdefined = getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcUnitaryControlElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +alarmpanel = IfcUnitaryControlElementTypeEnum.ALARMPANEL +controlpanel = IfcUnitaryControlElementTypeEnum.CONTROLPANEL +gasdetectionpanel = IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL +indicatorpanel = IfcUnitaryControlElementTypeEnum.INDICATORPANEL +mimicpanel = IfcUnitaryControlElementTypeEnum.MIMICPANEL +humidistat = IfcUnitaryControlElementTypeEnum.HUMIDISTAT +thermostat = IfcUnitaryControlElementTypeEnum.THERMOSTAT +weatherstation = IfcUnitaryControlElementTypeEnum.WEATHERSTATION +combined = IfcUnitaryControlElementTypeEnum.COMBINED +userdefined = IfcUnitaryControlElementTypeEnum.USERDEFINED +notdefined = IfcUnitaryControlElementTypeEnum.NOTDEFINED IfcUnitaryEquipmentTypeEnum = enum_namespace() -airhandler = getattr(IfcUnitaryEquipmentTypeEnum, 'AIRHANDLER', INDETERMINATE) -airconditioningunit = getattr(IfcUnitaryEquipmentTypeEnum, 'AIRCONDITIONINGUNIT', INDETERMINATE) -dehumidifier = getattr(IfcUnitaryEquipmentTypeEnum, 'DEHUMIDIFIER', INDETERMINATE) -splitsystem = getattr(IfcUnitaryEquipmentTypeEnum, 'SPLITSYSTEM', INDETERMINATE) -rooftopunit = getattr(IfcUnitaryEquipmentTypeEnum, 'ROOFTOPUNIT', INDETERMINATE) -userdefined = getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcUnitaryEquipmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +airhandler = IfcUnitaryEquipmentTypeEnum.AIRHANDLER +airconditioningunit = IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT +dehumidifier = IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER +splitsystem = IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM +rooftopunit = IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT +userdefined = IfcUnitaryEquipmentTypeEnum.USERDEFINED +notdefined = IfcUnitaryEquipmentTypeEnum.NOTDEFINED IfcValveTypeEnum = enum_namespace() -airrelease = getattr(IfcValveTypeEnum, 'AIRRELEASE', INDETERMINATE) -antivacuum = getattr(IfcValveTypeEnum, 'ANTIVACUUM', INDETERMINATE) -changeover = getattr(IfcValveTypeEnum, 'CHANGEOVER', INDETERMINATE) -check = getattr(IfcValveTypeEnum, 'CHECK', INDETERMINATE) -commissioning = getattr(IfcValveTypeEnum, 'COMMISSIONING', INDETERMINATE) -diverting = getattr(IfcValveTypeEnum, 'DIVERTING', INDETERMINATE) -drawoffcock = getattr(IfcValveTypeEnum, 'DRAWOFFCOCK', INDETERMINATE) -doublecheck = getattr(IfcValveTypeEnum, 'DOUBLECHECK', INDETERMINATE) -doubleregulating = getattr(IfcValveTypeEnum, 'DOUBLEREGULATING', INDETERMINATE) -faucet = getattr(IfcValveTypeEnum, 'FAUCET', INDETERMINATE) -flushing = getattr(IfcValveTypeEnum, 'FLUSHING', INDETERMINATE) -gascock = getattr(IfcValveTypeEnum, 'GASCOCK', INDETERMINATE) -gastap = getattr(IfcValveTypeEnum, 'GASTAP', INDETERMINATE) -isolating = getattr(IfcValveTypeEnum, 'ISOLATING', INDETERMINATE) -mixing = getattr(IfcValveTypeEnum, 'MIXING', INDETERMINATE) -pressurereducing = getattr(IfcValveTypeEnum, 'PRESSUREREDUCING', INDETERMINATE) -pressurerelief = getattr(IfcValveTypeEnum, 'PRESSURERELIEF', INDETERMINATE) -regulating = getattr(IfcValveTypeEnum, 'REGULATING', INDETERMINATE) -safetycutoff = getattr(IfcValveTypeEnum, 'SAFETYCUTOFF', INDETERMINATE) -steamtrap = getattr(IfcValveTypeEnum, 'STEAMTRAP', INDETERMINATE) -stopcock = getattr(IfcValveTypeEnum, 'STOPCOCK', INDETERMINATE) -userdefined = getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcValveTypeEnum, 'NOTDEFINED', INDETERMINATE) +airrelease = IfcValveTypeEnum.AIRRELEASE +antivacuum = IfcValveTypeEnum.ANTIVACUUM +changeover = IfcValveTypeEnum.CHANGEOVER +check = IfcValveTypeEnum.CHECK +commissioning = IfcValveTypeEnum.COMMISSIONING +diverting = IfcValveTypeEnum.DIVERTING +drawoffcock = IfcValveTypeEnum.DRAWOFFCOCK +doublecheck = IfcValveTypeEnum.DOUBLECHECK +doubleregulating = IfcValveTypeEnum.DOUBLEREGULATING +faucet = IfcValveTypeEnum.FAUCET +flushing = IfcValveTypeEnum.FLUSHING +gascock = IfcValveTypeEnum.GASCOCK +gastap = IfcValveTypeEnum.GASTAP +isolating = IfcValveTypeEnum.ISOLATING +mixing = IfcValveTypeEnum.MIXING +pressurereducing = IfcValveTypeEnum.PRESSUREREDUCING +pressurerelief = IfcValveTypeEnum.PRESSURERELIEF +regulating = IfcValveTypeEnum.REGULATING +safetycutoff = IfcValveTypeEnum.SAFETYCUTOFF +steamtrap = IfcValveTypeEnum.STEAMTRAP +stopcock = IfcValveTypeEnum.STOPCOCK +userdefined = IfcValveTypeEnum.USERDEFINED +notdefined = IfcValveTypeEnum.NOTDEFINED IfcVibrationDamperTypeEnum = enum_namespace() -bending_yield = getattr(IfcVibrationDamperTypeEnum, 'BENDING_YIELD', INDETERMINATE) -shear_yield = getattr(IfcVibrationDamperTypeEnum, 'SHEAR_YIELD', INDETERMINATE) -axial_yield = getattr(IfcVibrationDamperTypeEnum, 'AXIAL_YIELD', INDETERMINATE) -friction = getattr(IfcVibrationDamperTypeEnum, 'FRICTION', INDETERMINATE) -viscous = getattr(IfcVibrationDamperTypeEnum, 'VISCOUS', INDETERMINATE) -rubber = getattr(IfcVibrationDamperTypeEnum, 'RUBBER', INDETERMINATE) -userdefined = getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVibrationDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_yield = IfcVibrationDamperTypeEnum.BENDING_YIELD +shear_yield = IfcVibrationDamperTypeEnum.SHEAR_YIELD +axial_yield = IfcVibrationDamperTypeEnum.AXIAL_YIELD +friction = IfcVibrationDamperTypeEnum.FRICTION +viscous = IfcVibrationDamperTypeEnum.VISCOUS +rubber = IfcVibrationDamperTypeEnum.RUBBER +userdefined = IfcVibrationDamperTypeEnum.USERDEFINED +notdefined = IfcVibrationDamperTypeEnum.NOTDEFINED IfcVibrationIsolatorTypeEnum = enum_namespace() -compression = getattr(IfcVibrationIsolatorTypeEnum, 'COMPRESSION', INDETERMINATE) -spring = getattr(IfcVibrationIsolatorTypeEnum, 'SPRING', INDETERMINATE) -base = getattr(IfcVibrationIsolatorTypeEnum, 'BASE', INDETERMINATE) -userdefined = getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVibrationIsolatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +compression = IfcVibrationIsolatorTypeEnum.COMPRESSION +spring = IfcVibrationIsolatorTypeEnum.SPRING +base = IfcVibrationIsolatorTypeEnum.BASE +userdefined = IfcVibrationIsolatorTypeEnum.USERDEFINED +notdefined = IfcVibrationIsolatorTypeEnum.NOTDEFINED IfcVoidingFeatureTypeEnum = enum_namespace() -cutout = getattr(IfcVoidingFeatureTypeEnum, 'CUTOUT', INDETERMINATE) -notch = getattr(IfcVoidingFeatureTypeEnum, 'NOTCH', INDETERMINATE) -hole = getattr(IfcVoidingFeatureTypeEnum, 'HOLE', INDETERMINATE) -miter = getattr(IfcVoidingFeatureTypeEnum, 'MITER', INDETERMINATE) -chamfer = getattr(IfcVoidingFeatureTypeEnum, 'CHAMFER', INDETERMINATE) -edge = getattr(IfcVoidingFeatureTypeEnum, 'EDGE', INDETERMINATE) -userdefined = getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVoidingFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +cutout = IfcVoidingFeatureTypeEnum.CUTOUT +notch = IfcVoidingFeatureTypeEnum.NOTCH +hole = IfcVoidingFeatureTypeEnum.HOLE +miter = IfcVoidingFeatureTypeEnum.MITER +chamfer = IfcVoidingFeatureTypeEnum.CHAMFER +edge = IfcVoidingFeatureTypeEnum.EDGE +userdefined = IfcVoidingFeatureTypeEnum.USERDEFINED +notdefined = IfcVoidingFeatureTypeEnum.NOTDEFINED IfcWallTypeEnum = enum_namespace() -movable = getattr(IfcWallTypeEnum, 'MOVABLE', INDETERMINATE) -parapet = getattr(IfcWallTypeEnum, 'PARAPET', INDETERMINATE) -partitioning = getattr(IfcWallTypeEnum, 'PARTITIONING', INDETERMINATE) -plumbingwall = getattr(IfcWallTypeEnum, 'PLUMBINGWALL', INDETERMINATE) -shear = getattr(IfcWallTypeEnum, 'SHEAR', INDETERMINATE) -solidwall = getattr(IfcWallTypeEnum, 'SOLIDWALL', INDETERMINATE) -standard = getattr(IfcWallTypeEnum, 'STANDARD', INDETERMINATE) -polygonal = getattr(IfcWallTypeEnum, 'POLYGONAL', INDETERMINATE) -elementedwall = getattr(IfcWallTypeEnum, 'ELEMENTEDWALL', INDETERMINATE) -retainingwall = getattr(IfcWallTypeEnum, 'RETAININGWALL', INDETERMINATE) -wavewall = getattr(IfcWallTypeEnum, 'WAVEWALL', INDETERMINATE) -userdefined = getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +movable = IfcWallTypeEnum.MOVABLE +parapet = IfcWallTypeEnum.PARAPET +partitioning = IfcWallTypeEnum.PARTITIONING +plumbingwall = IfcWallTypeEnum.PLUMBINGWALL +shear = IfcWallTypeEnum.SHEAR +solidwall = IfcWallTypeEnum.SOLIDWALL +standard = IfcWallTypeEnum.STANDARD +polygonal = IfcWallTypeEnum.POLYGONAL +elementedwall = IfcWallTypeEnum.ELEMENTEDWALL +retainingwall = IfcWallTypeEnum.RETAININGWALL +wavewall = IfcWallTypeEnum.WAVEWALL +userdefined = IfcWallTypeEnum.USERDEFINED +notdefined = IfcWallTypeEnum.NOTDEFINED IfcWasteTerminalTypeEnum = enum_namespace() -floortrap = getattr(IfcWasteTerminalTypeEnum, 'FLOORTRAP', INDETERMINATE) -floorwaste = getattr(IfcWasteTerminalTypeEnum, 'FLOORWASTE', INDETERMINATE) -gullysump = getattr(IfcWasteTerminalTypeEnum, 'GULLYSUMP', INDETERMINATE) -gullytrap = getattr(IfcWasteTerminalTypeEnum, 'GULLYTRAP', INDETERMINATE) -roofdrain = getattr(IfcWasteTerminalTypeEnum, 'ROOFDRAIN', INDETERMINATE) -wastedisposalunit = getattr(IfcWasteTerminalTypeEnum, 'WASTEDISPOSALUNIT', INDETERMINATE) -wastetrap = getattr(IfcWasteTerminalTypeEnum, 'WASTETRAP', INDETERMINATE) -userdefined = getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWasteTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +floortrap = IfcWasteTerminalTypeEnum.FLOORTRAP +floorwaste = IfcWasteTerminalTypeEnum.FLOORWASTE +gullysump = IfcWasteTerminalTypeEnum.GULLYSUMP +gullytrap = IfcWasteTerminalTypeEnum.GULLYTRAP +roofdrain = IfcWasteTerminalTypeEnum.ROOFDRAIN +wastedisposalunit = IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT +wastetrap = IfcWasteTerminalTypeEnum.WASTETRAP +userdefined = IfcWasteTerminalTypeEnum.USERDEFINED +notdefined = IfcWasteTerminalTypeEnum.NOTDEFINED IfcWindowPanelOperationEnum = enum_namespace() -sidehungrighthand = getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGRIGHTHAND', INDETERMINATE) -sidehunglefthand = getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGLEFTHAND', INDETERMINATE) -tiltandturnrighthand = getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNRIGHTHAND', INDETERMINATE) -tiltandturnlefthand = getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNLEFTHAND', INDETERMINATE) -tophung = getattr(IfcWindowPanelOperationEnum, 'TOPHUNG', INDETERMINATE) -bottomhung = getattr(IfcWindowPanelOperationEnum, 'BOTTOMHUNG', INDETERMINATE) -pivothorizontal = getattr(IfcWindowPanelOperationEnum, 'PIVOTHORIZONTAL', INDETERMINATE) -pivotvertical = getattr(IfcWindowPanelOperationEnum, 'PIVOTVERTICAL', INDETERMINATE) -slidinghorizontal = getattr(IfcWindowPanelOperationEnum, 'SLIDINGHORIZONTAL', INDETERMINATE) -slidingvertical = getattr(IfcWindowPanelOperationEnum, 'SLIDINGVERTICAL', INDETERMINATE) -removablecasement = getattr(IfcWindowPanelOperationEnum, 'REMOVABLECASEMENT', INDETERMINATE) -fixedcasement = getattr(IfcWindowPanelOperationEnum, 'FIXEDCASEMENT', INDETERMINATE) -otheroperation = getattr(IfcWindowPanelOperationEnum, 'OTHEROPERATION', INDETERMINATE) -notdefined = getattr(IfcWindowPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +sidehungrighthand = IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND +sidehunglefthand = IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND +tiltandturnrighthand = IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND +tiltandturnlefthand = IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND +tophung = IfcWindowPanelOperationEnum.TOPHUNG +bottomhung = IfcWindowPanelOperationEnum.BOTTOMHUNG +pivothorizontal = IfcWindowPanelOperationEnum.PIVOTHORIZONTAL +pivotvertical = IfcWindowPanelOperationEnum.PIVOTVERTICAL +slidinghorizontal = IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL +slidingvertical = IfcWindowPanelOperationEnum.SLIDINGVERTICAL +removablecasement = IfcWindowPanelOperationEnum.REMOVABLECASEMENT +fixedcasement = IfcWindowPanelOperationEnum.FIXEDCASEMENT +otheroperation = IfcWindowPanelOperationEnum.OTHEROPERATION +notdefined = IfcWindowPanelOperationEnum.NOTDEFINED IfcWindowPanelPositionEnum = enum_namespace() -left = getattr(IfcWindowPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = getattr(IfcWindowPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = getattr(IfcWindowPanelPositionEnum, 'RIGHT', INDETERMINATE) -bottom = getattr(IfcWindowPanelPositionEnum, 'BOTTOM', INDETERMINATE) -top = getattr(IfcWindowPanelPositionEnum, 'TOP', INDETERMINATE) -notdefined = getattr(IfcWindowPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcWindowPanelPositionEnum.LEFT +middle = IfcWindowPanelPositionEnum.MIDDLE +right = IfcWindowPanelPositionEnum.RIGHT +bottom = IfcWindowPanelPositionEnum.BOTTOM +top = IfcWindowPanelPositionEnum.TOP +notdefined = IfcWindowPanelPositionEnum.NOTDEFINED IfcWindowStyleConstructionEnum = enum_namespace() -aluminium = getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = getattr(IfcWindowStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = getattr(IfcWindowStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = getattr(IfcWindowStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -plastic = getattr(IfcWindowStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -other_construction = getattr(IfcWindowStyleConstructionEnum, 'OTHER_CONSTRUCTION', INDETERMINATE) -notdefined = getattr(IfcWindowStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcWindowStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcWindowStyleConstructionEnum.STEEL +wood = IfcWindowStyleConstructionEnum.WOOD +aluminium_wood = IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD +plastic = IfcWindowStyleConstructionEnum.PLASTIC +other_construction = IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION +notdefined = IfcWindowStyleConstructionEnum.NOTDEFINED IfcWindowStyleOperationEnum = enum_namespace() -single_panel = getattr(IfcWindowStyleOperationEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = getattr(IfcWindowStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowStyleOperationEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowStyleOperationEnum.USERDEFINED +notdefined = IfcWindowStyleOperationEnum.NOTDEFINED IfcWindowTypeEnum = enum_namespace() -window = getattr(IfcWindowTypeEnum, 'WINDOW', INDETERMINATE) -skylight = getattr(IfcWindowTypeEnum, 'SKYLIGHT', INDETERMINATE) -lightdome = getattr(IfcWindowTypeEnum, 'LIGHTDOME', INDETERMINATE) -userdefined = getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowTypeEnum, 'NOTDEFINED', INDETERMINATE) +window = IfcWindowTypeEnum.WINDOW +skylight = IfcWindowTypeEnum.SKYLIGHT +lightdome = IfcWindowTypeEnum.LIGHTDOME +userdefined = IfcWindowTypeEnum.USERDEFINED +notdefined = IfcWindowTypeEnum.NOTDEFINED IfcWindowTypePartitioningEnum = enum_namespace() -single_panel = getattr(IfcWindowTypePartitioningEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = getattr(IfcWindowTypePartitioningEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowTypePartitioningEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowTypePartitioningEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowTypePartitioningEnum.USERDEFINED +notdefined = IfcWindowTypePartitioningEnum.NOTDEFINED IfcWorkCalendarTypeEnum = enum_namespace() -firstshift = getattr(IfcWorkCalendarTypeEnum, 'FIRSTSHIFT', INDETERMINATE) -secondshift = getattr(IfcWorkCalendarTypeEnum, 'SECONDSHIFT', INDETERMINATE) -thirdshift = getattr(IfcWorkCalendarTypeEnum, 'THIRDSHIFT', INDETERMINATE) -userdefined = getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkCalendarTypeEnum, 'NOTDEFINED', INDETERMINATE) +firstshift = IfcWorkCalendarTypeEnum.FIRSTSHIFT +secondshift = IfcWorkCalendarTypeEnum.SECONDSHIFT +thirdshift = IfcWorkCalendarTypeEnum.THIRDSHIFT +userdefined = IfcWorkCalendarTypeEnum.USERDEFINED +notdefined = IfcWorkCalendarTypeEnum.NOTDEFINED IfcWorkPlanTypeEnum = enum_namespace() -actual = getattr(IfcWorkPlanTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = getattr(IfcWorkPlanTypeEnum, 'BASELINE', INDETERMINATE) -planned = getattr(IfcWorkPlanTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkPlanTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkPlanTypeEnum.ACTUAL +baseline = IfcWorkPlanTypeEnum.BASELINE +planned = IfcWorkPlanTypeEnum.PLANNED +userdefined = IfcWorkPlanTypeEnum.USERDEFINED +notdefined = IfcWorkPlanTypeEnum.NOTDEFINED IfcWorkScheduleTypeEnum = enum_namespace() -actual = getattr(IfcWorkScheduleTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = getattr(IfcWorkScheduleTypeEnum, 'BASELINE', INDETERMINATE) -planned = getattr(IfcWorkScheduleTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkScheduleTypeEnum.ACTUAL +baseline = IfcWorkScheduleTypeEnum.BASELINE +planned = IfcWorkScheduleTypeEnum.PLANNED +userdefined = IfcWorkScheduleTypeEnum.USERDEFINED +notdefined = IfcWorkScheduleTypeEnum.NOTDEFINED def IfcActionRequest(*args, **kwargs): return ifcopenshell.create_entity('IfcActionRequest', 'IFC4X3_RC2', *args, **kwargs) @@ -5159,7 +5169,7 @@ class IfcBoxAlignment_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False class IfcCardinalPointReference_GreaterThanZero: SCOPE = 'type' @@ -5240,7 +5250,7 @@ class IfcFontStyle_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False class IfcFontVariant_WR1: SCOPE = 'type' @@ -5249,7 +5259,7 @@ class IfcFontVariant_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False class IfcFontWeight_WR1: SCOPE = 'type' @@ -5258,7 +5268,7 @@ class IfcFontWeight_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False class IfcHeatingValueMeasure_WR1: SCOPE = 'type' @@ -5357,7 +5367,7 @@ class IfcTextAlignment_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False class IfcTextDecoration_WR1: SCOPE = 'type' @@ -5366,7 +5376,7 @@ class IfcTextDecoration_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False class IfcTextTransformation_WR1: SCOPE = 'type' @@ -5375,7 +5385,7 @@ class IfcTextTransformation_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False class IfcActorRole_WR1: SCOPE = 'entity' @@ -5384,8 +5394,8 @@ class IfcActorRole_WR1: @staticmethod def __call__(self): - role = getattr(self, 'Role', INDETERMINATE) - assert (role != getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) or (role == getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedRole', INDETERMINATE)))) is not False + role = express_getattr(self, 'Role', INDETERMINATE) + assert (role != express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) or (role == express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedRole', INDETERMINATE)))) is not False class IfcActuator_CorrectPredefinedType: SCOPE = 'entity' @@ -5394,8 +5404,8 @@ class IfcActuator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcActuator_CorrectTypeAssigned: SCOPE = 'entity' @@ -5404,8 +5414,8 @@ class IfcActuator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcactuatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcactuatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcActuatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -5414,8 +5424,8 @@ class IfcActuatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAddress_WR1: SCOPE = 'entity' @@ -5424,8 +5434,8 @@ class IfcAddress_WR1: @staticmethod def __call__(self): - purpose = getattr(self, 'Purpose', INDETERMINATE) - assert (not exists(purpose) or (purpose != getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) or (purpose == getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedPurpose', INDETERMINATE))))) is not False + purpose = express_getattr(self, 'Purpose', INDETERMINATE) + assert (not exists(purpose) or (purpose != express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) or (purpose == express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedPurpose', INDETERMINATE))))) is not False class IfcAdvancedBrep_HasAdvancedFaces: SCOPE = 'entity' @@ -5434,7 +5444,7 @@ class IfcAdvancedBrep_HasAdvancedFaces: @staticmethod def __call__(self): - assert (sizeof([afs for afs in getattr(getattr(self, 'Outer', INDETERMINATE), 'CfsFaces', INDETERMINATE) if not 'ifc4x3_rc2.ifcadvancedface' in typeof(afs)]) == 0) is not False + assert (sizeof([afs for afs in express_getattr(express_getattr(self, 'Outer', INDETERMINATE), 'CfsFaces', INDETERMINATE) if not 'ifc4x3_rc2.ifcadvancedface' in typeof(afs)]) == 0) is not False class IfcAdvancedBrepWithVoids_VoidsHaveAdvancedFaces: SCOPE = 'entity' @@ -5443,8 +5453,8 @@ class IfcAdvancedBrepWithVoids_VoidsHaveAdvancedFaces: @staticmethod def __call__(self): - voids = getattr(self, 'Voids', INDETERMINATE) - assert (sizeof([vsh for vsh in voids if sizeof([afs for afs in getattr(vsh, 'CfsFaces', INDETERMINATE) if not 'ifc4x3_rc2.ifcadvancedface' in typeof(afs)]) == 0]) == 0) is not False + voids = express_getattr(self, 'Voids', INDETERMINATE) + assert (sizeof([vsh for vsh in voids if sizeof([afs for afs in express_getattr(vsh, 'CfsFaces', INDETERMINATE) if not 'ifc4x3_rc2.ifcadvancedface' in typeof(afs)]) == 0]) == 0) is not False class IfcAdvancedFace_ApplicableSurface: SCOPE = 'entity' @@ -5453,7 +5463,7 @@ class IfcAdvancedFace_ApplicableSurface: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_rc2.ifcelementarysurface', 'ifc4x3_rc2.ifcsweptsurface', 'ifc4x3_rc2.ifcbsplinesurface'] * typeof(getattr(self, 'FaceSurface', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_rc2.ifcelementarysurface', 'ifc4x3_rc2.ifcsweptsurface', 'ifc4x3_rc2.ifcbsplinesurface'] * typeof(express_getattr(self, 'FaceSurface', INDETERMINATE))) == 1) is not False class IfcAdvancedFace_RequiresEdgeCurve: SCOPE = 'entity' @@ -5462,7 +5472,7 @@ class IfcAdvancedFace_RequiresEdgeCurve: @staticmethod def __call__(self): - assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3_rc2.ifcedgeloop' in typeof(getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in getattr(getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not 'ifc4x3_rc2.ifcedgecurve' in typeof(getattr(oe, 'EdgeElement', INDETERMINATE))]) == 0]) == 0) is not False + assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in express_getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3_rc2.ifcedgeloop' in typeof(express_getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in express_getattr(express_getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not 'ifc4x3_rc2.ifcedgecurve' in typeof(express_getattr(oe, 'EdgeElement', INDETERMINATE))]) == 0]) == 0) is not False class IfcAdvancedFace_ApplicableEdgeCurves: SCOPE = 'entity' @@ -5471,7 +5481,7 @@ class IfcAdvancedFace_ApplicableEdgeCurves: @staticmethod def __call__(self): - assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3_rc2.ifcedgeloop' in typeof(getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in getattr(getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not sizeof(['ifc4x3_rc2.ifcline', 'ifc4x3_rc2.ifcconic', 'ifc4x3_rc2.ifcpolyline', 'ifc4x3_rc2.ifcbsplinecurve'] * typeof(getattr(getattr(oe, 'EdgeElement', INDETERMINATE), 'EdgeGeometry', INDETERMINATE))) == 1]) == 0]) == 0) is not False + assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in express_getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3_rc2.ifcedgeloop' in typeof(express_getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in express_getattr(express_getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not sizeof(['ifc4x3_rc2.ifcline', 'ifc4x3_rc2.ifcconic', 'ifc4x3_rc2.ifcpolyline', 'ifc4x3_rc2.ifcbsplinecurve'] * typeof(express_getattr(express_getattr(oe, 'EdgeElement', INDETERMINATE), 'EdgeGeometry', INDETERMINATE))) == 1]) == 0]) == 0) is not False class IfcAirTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -5480,8 +5490,8 @@ class IfcAirTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -5490,8 +5500,8 @@ class IfcAirTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcairterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcairterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirTerminalBox_CorrectPredefinedType: SCOPE = 'entity' @@ -5500,8 +5510,8 @@ class IfcAirTerminalBox_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirTerminalBox_CorrectTypeAssigned: SCOPE = 'entity' @@ -5510,8 +5520,8 @@ class IfcAirTerminalBox_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcairterminalboxtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcairterminalboxtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirTerminalBoxType_CorrectPredefinedType: SCOPE = 'entity' @@ -5520,8 +5530,8 @@ class IfcAirTerminalBoxType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAirTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -5530,8 +5540,8 @@ class IfcAirTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAirToAirHeatRecovery_CorrectPredefinedType: SCOPE = 'entity' @@ -5540,8 +5550,8 @@ class IfcAirToAirHeatRecovery_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirToAirHeatRecovery_CorrectTypeAssigned: SCOPE = 'entity' @@ -5550,8 +5560,8 @@ class IfcAirToAirHeatRecovery_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcairtoairheatrecoverytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcairtoairheatrecoverytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirToAirHeatRecoveryType_CorrectPredefinedType: SCOPE = 'entity' @@ -5560,8 +5570,8 @@ class IfcAirToAirHeatRecoveryType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAlarm_CorrectPredefinedType: SCOPE = 'entity' @@ -5570,8 +5580,8 @@ class IfcAlarm_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAlarm_CorrectTypeAssigned: SCOPE = 'entity' @@ -5580,8 +5590,8 @@ class IfcAlarm_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcalarmtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcalarmtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAlarmType_CorrectPredefinedType: SCOPE = 'entity' @@ -5590,8 +5600,8 @@ class IfcAlarmType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcApproval_HasIdentifierOrName: SCOPE = 'entity' @@ -5600,8 +5610,8 @@ class IfcApproval_HasIdentifierOrName: @staticmethod def __call__(self): - identifier = getattr(self, 'Identifier', INDETERMINATE) - name = getattr(self, 'Name', INDETERMINATE) + identifier = express_getattr(self, 'Identifier', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) assert (exists(identifier) or exists(name)) is not False class IfcArbitraryClosedProfileDef_WR1: @@ -5611,8 +5621,8 @@ class IfcArbitraryClosedProfileDef_WR1: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) - assert (getattr(outercurve, 'Dim', INDETERMINATE) == 2) is not False + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) + assert (express_getattr(outercurve, 'Dim', INDETERMINATE) == 2) is not False class IfcArbitraryClosedProfileDef_WR2: SCOPE = 'entity' @@ -5621,7 +5631,7 @@ class IfcArbitraryClosedProfileDef_WR2: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) assert (not 'ifc4x3_rc2.ifcline' in typeof(outercurve)) is not False class IfcArbitraryClosedProfileDef_WR3: @@ -5631,7 +5641,7 @@ class IfcArbitraryClosedProfileDef_WR3: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) assert (not 'ifc4x3_rc2.ifcoffsetcurve2d' in typeof(outercurve)) is not False class IfcArbitraryOpenProfileDef_WR11: @@ -5641,7 +5651,7 @@ class IfcArbitraryOpenProfileDef_WR11: @staticmethod def __call__(self): - assert ('ifc4x3_rc2.ifccenterlineprofiledef' in typeof(self) or getattr(self, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False + assert ('ifc4x3_rc2.ifccenterlineprofiledef' in typeof(self) or express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False class IfcArbitraryOpenProfileDef_WR12: SCOPE = 'entity' @@ -5650,8 +5660,8 @@ class IfcArbitraryOpenProfileDef_WR12: @staticmethod def __call__(self): - curve = getattr(self, 'Curve', INDETERMINATE) - assert (getattr(curve, 'Dim', INDETERMINATE) == 2) is not False + curve = express_getattr(self, 'Curve', INDETERMINATE) + assert (express_getattr(curve, 'Dim', INDETERMINATE) == 2) is not False class IfcArbitraryProfileDefWithVoids_WR1: SCOPE = 'entity' @@ -5660,7 +5670,7 @@ class IfcArbitraryProfileDefWithVoids_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'ProfileType', INDETERMINATE) == area) is not False + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == area) is not False class IfcArbitraryProfileDefWithVoids_WR2: SCOPE = 'entity' @@ -5669,8 +5679,8 @@ class IfcArbitraryProfileDefWithVoids_WR2: @staticmethod def __call__(self): - innercurves = getattr(self, 'InnerCurves', INDETERMINATE) - assert (sizeof([temp for temp in innercurves if getattr(temp, 'Dim', INDETERMINATE) != 2]) == 0) is not False + innercurves = express_getattr(self, 'InnerCurves', INDETERMINATE) + assert (sizeof([temp for temp in innercurves if express_getattr(temp, 'Dim', INDETERMINATE) != 2]) == 0) is not False class IfcArbitraryProfileDefWithVoids_WR3: SCOPE = 'entity' @@ -5679,7 +5689,7 @@ class IfcArbitraryProfileDefWithVoids_WR3: @staticmethod def __call__(self): - innercurves = getattr(self, 'InnerCurves', INDETERMINATE) + innercurves = express_getattr(self, 'InnerCurves', INDETERMINATE) assert (sizeof([temp for temp in innercurves if 'ifc4x3_rc2.ifcline' in typeof(temp)]) == 0) is not False class IfcAsymmetricIShapeProfileDef_ValidFlangeThickness: @@ -5689,9 +5699,9 @@ class IfcAsymmetricIShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - bottomflangethickness = getattr(self, 'BottomFlangeThickness', INDETERMINATE) - topflangethickness = getattr(self, 'TopFlangeThickness', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + bottomflangethickness = express_getattr(self, 'BottomFlangeThickness', INDETERMINATE) + topflangethickness = express_getattr(self, 'TopFlangeThickness', INDETERMINATE) assert (not exists(topflangethickness) or bottomflangethickness + topflangethickness < overalldepth) is not False class IfcAsymmetricIShapeProfileDef_ValidWebThickness: @@ -5701,9 +5711,9 @@ class IfcAsymmetricIShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - bottomflangewidth = getattr(self, 'BottomFlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - topflangewidth = getattr(self, 'TopFlangeWidth', INDETERMINATE) + bottomflangewidth = express_getattr(self, 'BottomFlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + topflangewidth = express_getattr(self, 'TopFlangeWidth', INDETERMINATE) assert (webthickness < bottomflangewidth and webthickness < topflangewidth) is not False class IfcAsymmetricIShapeProfileDef_ValidBottomFilletRadius: @@ -5713,9 +5723,9 @@ class IfcAsymmetricIShapeProfileDef_ValidBottomFilletRadius: @staticmethod def __call__(self): - bottomflangewidth = getattr(self, 'BottomFlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - bottomflangefilletradius = getattr(self, 'BottomFlangeFilletRadius', INDETERMINATE) + bottomflangewidth = express_getattr(self, 'BottomFlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + bottomflangefilletradius = express_getattr(self, 'BottomFlangeFilletRadius', INDETERMINATE) assert (not exists(bottomflangefilletradius) or bottomflangefilletradius <= (bottomflangewidth - webthickness) / 2.0) is not False class IfcAsymmetricIShapeProfileDef_ValidTopFilletRadius: @@ -5725,9 +5735,9 @@ class IfcAsymmetricIShapeProfileDef_ValidTopFilletRadius: @staticmethod def __call__(self): - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - topflangewidth = getattr(self, 'TopFlangeWidth', INDETERMINATE) - topflangefilletradius = getattr(self, 'TopFlangeFilletRadius', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + topflangewidth = express_getattr(self, 'TopFlangeWidth', INDETERMINATE) + topflangefilletradius = express_getattr(self, 'TopFlangeFilletRadius', INDETERMINATE) assert (not exists(topflangefilletradius) or topflangefilletradius <= (topflangewidth - webthickness) / 2.0) is not False class IfcAudioVisualAppliance_CorrectPredefinedType: @@ -5737,8 +5747,8 @@ class IfcAudioVisualAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAudioVisualAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -5747,8 +5757,8 @@ class IfcAudioVisualAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcaudiovisualappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcaudiovisualappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAudioVisualApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -5757,8 +5767,8 @@ class IfcAudioVisualApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAxis1Placement_AxisIs3D: SCOPE = 'entity' @@ -5767,8 +5777,8 @@ class IfcAxis1Placement_AxisIs3D: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (not exists(axis) or getattr(axis, 'Dim', INDETERMINATE) == 3) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (not exists(axis) or express_getattr(axis, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis1Placement_LocationIs3D: SCOPE = 'entity' @@ -5777,7 +5787,7 @@ class IfcAxis1Placement_LocationIs3D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcAxis1Placement_LocationIsCP: SCOPE = 'entity' @@ -5786,10 +5796,10 @@ class IfcAxis1Placement_LocationIsCP: @staticmethod def __call__(self): - assert ('ifc4x3_rc2.ifccartesianpoint' in typeof(getattr(self, 'Location', INDETERMINATE))) is not False + assert ('ifc4x3_rc2.ifccartesianpoint' in typeof(express_getattr(self, 'Location', INDETERMINATE))) is not False def calc_IfcAxis1Placement_Z(self): - axis = getattr(self, 'Axis', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) return nvl(IfcNormalise(axis), IfcDirection(DirectionRatios=[0.0, 0.0, 1.0])) class IfcAxis2Placement2D_RefDirIs2D: @@ -5799,8 +5809,8 @@ class IfcAxis2Placement2D_RefDirIs2D: @staticmethod def __call__(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(refdirection) or getattr(refdirection, 'Dim', INDETERMINATE) == 2) is not False + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(refdirection) or express_getattr(refdirection, 'Dim', INDETERMINATE) == 2) is not False class IfcAxis2Placement2D_LocationIs2D: SCOPE = 'entity' @@ -5809,7 +5819,7 @@ class IfcAxis2Placement2D_LocationIs2D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False class IfcAxis2Placement2D_LocationIsCP: SCOPE = 'entity' @@ -5818,10 +5828,10 @@ class IfcAxis2Placement2D_LocationIsCP: @staticmethod def __call__(self): - assert ('ifc4x3_rc2.ifccartesianpoint' in typeof(getattr(self, 'Location', INDETERMINATE))) is not False + assert ('ifc4x3_rc2.ifccartesianpoint' in typeof(express_getattr(self, 'Location', INDETERMINATE))) is not False def calc_IfcAxis2Placement2D_P(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) return IfcBuild2Axes(refdirection) class IfcAxis2Placement3D_LocationIs3D: @@ -5831,7 +5841,7 @@ class IfcAxis2Placement3D_LocationIs3D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_AxisIs3D: SCOPE = 'entity' @@ -5840,8 +5850,8 @@ class IfcAxis2Placement3D_AxisIs3D: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (not exists(axis) or getattr(axis, 'Dim', INDETERMINATE) == 3) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (not exists(axis) or express_getattr(axis, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_RefDirIs3D: SCOPE = 'entity' @@ -5850,8 +5860,8 @@ class IfcAxis2Placement3D_RefDirIs3D: @staticmethod def __call__(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(refdirection) or getattr(refdirection, 'Dim', INDETERMINATE) == 3) is not False + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(refdirection) or express_getattr(refdirection, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_AxisToRefDirPosition: SCOPE = 'entity' @@ -5860,9 +5870,9 @@ class IfcAxis2Placement3D_AxisToRefDirPosition: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(axis) or not exists(refdirection) or getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(axis) or not exists(refdirection) or express_getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False class IfcAxis2Placement3D_AxisAndRefDirProvision: SCOPE = 'entity' @@ -5871,8 +5881,8 @@ class IfcAxis2Placement3D_AxisAndRefDirProvision: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) assert (not exists(axis) ^ exists(refdirection)) is not False class IfcAxis2Placement3D_LocationIsCP: @@ -5882,11 +5892,11 @@ class IfcAxis2Placement3D_LocationIsCP: @staticmethod def __call__(self): - assert ('ifc4x3_rc2.ifccartesianpoint' in typeof(getattr(self, 'Location', INDETERMINATE))) is not False + assert ('ifc4x3_rc2.ifccartesianpoint' in typeof(express_getattr(self, 'Location', INDETERMINATE))) is not False def calc_IfcAxis2Placement3D_P(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) return IfcBuildAxes(axis, refdirection) class IfcAxis2PlacementLinear_WR1: @@ -5896,7 +5906,7 @@ class IfcAxis2PlacementLinear_WR1: @staticmethod def __call__(self): - assert ('ifc4x3_rc2.ifcpointbydistanceexpression' in typeof(getattr(self, 'Location', INDETERMINATE))) is not False + assert ('ifc4x3_rc2.ifcpointbydistanceexpression' in typeof(express_getattr(self, 'Location', INDETERMINATE))) is not False class IfcAxis2PlacementLinear_WR2: SCOPE = 'entity' @@ -5905,9 +5915,9 @@ class IfcAxis2PlacementLinear_WR2: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(axis) or not exists(refdirection) or getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(axis) or not exists(refdirection) or express_getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False class IfcBSplineCurve_SameDim: SCOPE = 'entity' @@ -5916,16 +5926,16 @@ class IfcBSplineCurve_SameDim: @staticmethod def __call__(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - assert (sizeof([temp for temp in controlpointslist if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + assert (sizeof([temp for temp in controlpointslist if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcBSplineCurve_UpperIndexOnControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(controlpointslist) - 1 def calc_IfcBSplineCurve_ControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - upperindexoncontrolpoints = getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + upperindexoncontrolpoints = express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) return IfcListToArray(controlpointslist, 0, upperindexoncontrolpoints) class IfcBSplineCurveWithKnots_ConsistentBSpline: @@ -5935,11 +5945,11 @@ class IfcBSplineCurveWithKnots_ConsistentBSpline: @staticmethod def __call__(self): - degree = getattr(self, 'Degree', INDETERMINATE) - upperindexoncontrolpoints = getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) - knotmultiplicities = getattr(self, 'KnotMultiplicities', INDETERMINATE) - knots = getattr(self, 'Knots', INDETERMINATE) - upperindexonknots = getattr(self, 'UpperIndexOnKnots', INDETERMINATE) + degree = express_getattr(self, 'Degree', INDETERMINATE) + upperindexoncontrolpoints = express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) + knotmultiplicities = express_getattr(self, 'KnotMultiplicities', INDETERMINATE) + knots = express_getattr(self, 'Knots', INDETERMINATE) + upperindexonknots = express_getattr(self, 'UpperIndexOnKnots', INDETERMINATE) assert IfcConstraintsParamBSpline(degree, upperindexonknots, upperindexoncontrolpoints, knotmultiplicities, knots) is not False class IfcBSplineCurveWithKnots_CorrespondingKnotLists: @@ -5949,26 +5959,26 @@ class IfcBSplineCurveWithKnots_CorrespondingKnotLists: @staticmethod def __call__(self): - knotmultiplicities = getattr(self, 'KnotMultiplicities', INDETERMINATE) - upperindexonknots = getattr(self, 'UpperIndexOnKnots', INDETERMINATE) + knotmultiplicities = express_getattr(self, 'KnotMultiplicities', INDETERMINATE) + upperindexonknots = express_getattr(self, 'UpperIndexOnKnots', INDETERMINATE) assert (sizeof(knotmultiplicities) == upperindexonknots) is not False def calc_IfcBSplineCurveWithKnots_UpperIndexOnKnots(self): - knots = getattr(self, 'Knots', INDETERMINATE) + knots = express_getattr(self, 'Knots', INDETERMINATE) return sizeof(knots) def calc_IfcBSplineSurface_UUpper(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(controlpointslist) - 1 def calc_IfcBSplineSurface_VUpper(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) - 1 def calc_IfcBSplineSurface_ControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - uupper = getattr(self, 'UUpper', INDETERMINATE) - vupper = getattr(self, 'VUpper', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + uupper = express_getattr(self, 'UUpper', INDETERMINATE) + vupper = express_getattr(self, 'VUpper', INDETERMINATE) return IfcMakeArrayOfArray(controlpointslist, 0, uupper, 0, vupper) class IfcBSplineSurfaceWithKnots_UDirectionConstraints: @@ -5978,10 +5988,10 @@ class IfcBSplineSurfaceWithKnots_UDirectionConstraints: @staticmethod def __call__(self): - umultiplicities = getattr(self, 'UMultiplicities', INDETERMINATE) - uknots = getattr(self, 'UKnots', INDETERMINATE) - knotuupper = getattr(self, 'KnotUUpper', INDETERMINATE) - assert IfcConstraintsParamBSpline(getattr(self, 'UDegree', INDETERMINATE), knotuupper, getattr(self, 'UUpper', INDETERMINATE), umultiplicities, uknots) is not False + umultiplicities = express_getattr(self, 'UMultiplicities', INDETERMINATE) + uknots = express_getattr(self, 'UKnots', INDETERMINATE) + knotuupper = express_getattr(self, 'KnotUUpper', INDETERMINATE) + assert IfcConstraintsParamBSpline(express_getattr(self, 'UDegree', INDETERMINATE), knotuupper, express_getattr(self, 'UUpper', INDETERMINATE), umultiplicities, uknots) is not False class IfcBSplineSurfaceWithKnots_VDirectionConstraints: SCOPE = 'entity' @@ -5990,10 +6000,10 @@ class IfcBSplineSurfaceWithKnots_VDirectionConstraints: @staticmethod def __call__(self): - vmultiplicities = getattr(self, 'VMultiplicities', INDETERMINATE) - vknots = getattr(self, 'VKnots', INDETERMINATE) - knotvupper = getattr(self, 'KnotVUpper', INDETERMINATE) - assert IfcConstraintsParamBSpline(getattr(self, 'VDegree', INDETERMINATE), knotvupper, getattr(self, 'VUpper', INDETERMINATE), vmultiplicities, vknots) is not False + vmultiplicities = express_getattr(self, 'VMultiplicities', INDETERMINATE) + vknots = express_getattr(self, 'VKnots', INDETERMINATE) + knotvupper = express_getattr(self, 'KnotVUpper', INDETERMINATE) + assert IfcConstraintsParamBSpline(express_getattr(self, 'VDegree', INDETERMINATE), knotvupper, express_getattr(self, 'VUpper', INDETERMINATE), vmultiplicities, vknots) is not False class IfcBSplineSurfaceWithKnots_CorrespondingULists: SCOPE = 'entity' @@ -6002,8 +6012,8 @@ class IfcBSplineSurfaceWithKnots_CorrespondingULists: @staticmethod def __call__(self): - umultiplicities = getattr(self, 'UMultiplicities', INDETERMINATE) - knotuupper = getattr(self, 'KnotUUpper', INDETERMINATE) + umultiplicities = express_getattr(self, 'UMultiplicities', INDETERMINATE) + knotuupper = express_getattr(self, 'KnotUUpper', INDETERMINATE) assert (sizeof(umultiplicities) == knotuupper) is not False class IfcBSplineSurfaceWithKnots_CorrespondingVLists: @@ -6013,16 +6023,16 @@ class IfcBSplineSurfaceWithKnots_CorrespondingVLists: @staticmethod def __call__(self): - vmultiplicities = getattr(self, 'VMultiplicities', INDETERMINATE) - knotvupper = getattr(self, 'KnotVUpper', INDETERMINATE) + vmultiplicities = express_getattr(self, 'VMultiplicities', INDETERMINATE) + knotvupper = express_getattr(self, 'KnotVUpper', INDETERMINATE) assert (sizeof(vmultiplicities) == knotvupper) is not False def calc_IfcBSplineSurfaceWithKnots_KnotVUpper(self): - vknots = getattr(self, 'VKnots', INDETERMINATE) + vknots = express_getattr(self, 'VKnots', INDETERMINATE) return sizeof(vknots) def calc_IfcBSplineSurfaceWithKnots_KnotUUpper(self): - uknots = getattr(self, 'UKnots', INDETERMINATE) + uknots = express_getattr(self, 'UKnots', INDETERMINATE) return sizeof(uknots) class IfcBeam_CorrectPredefinedType: @@ -6032,8 +6042,8 @@ class IfcBeam_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBeam_CorrectTypeAssigned: SCOPE = 'entity' @@ -6042,8 +6052,8 @@ class IfcBeam_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcbeamtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcbeamtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBeamStandardCase_HasMaterialProfileSetUsage: SCOPE = 'entity' @@ -6052,7 +6062,7 @@ class IfcBeamStandardCase_HasMaterialProfileSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc2.ifcrelassociates.relatedobjects') if 'ifc4x3_rc2.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc2.ifcmaterialprofilesetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc2.ifcrelassociates.relatedobjects') if 'ifc4x3_rc2.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc2.ifcmaterialprofilesetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcBeamType_CorrectPredefinedType: SCOPE = 'entity' @@ -6061,8 +6071,8 @@ class IfcBeamType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBearing_CorrectPredefinedType: SCOPE = 'entity' @@ -6071,8 +6081,8 @@ class IfcBearing_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBearing_CorrectTypeAssigned: SCOPE = 'entity' @@ -6081,8 +6091,8 @@ class IfcBearing_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcbearingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcbearingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBearingType_CorrectPredefinedType: SCOPE = 'entity' @@ -6091,8 +6101,8 @@ class IfcBearingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBlobTexture_SupportedRasterFormat: SCOPE = 'entity' @@ -6101,7 +6111,7 @@ class IfcBlobTexture_SupportedRasterFormat: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['bmp', 'jpg', 'gif', 'png']) is not False + assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['bmp', 'jpg', 'gif', 'png']) is not False class IfcBlobTexture_RasterCodeByteStream: SCOPE = 'entity' @@ -6110,7 +6120,7 @@ class IfcBlobTexture_RasterCodeByteStream: @staticmethod def __call__(self): - rastercode = getattr(self, 'RasterCode', INDETERMINATE) + rastercode = express_getattr(self, 'RasterCode', INDETERMINATE) assert (blength(rastercode) % 8 == 0) is not False class IfcBoiler_CorrectPredefinedType: @@ -6120,8 +6130,8 @@ class IfcBoiler_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBoiler_CorrectTypeAssigned: SCOPE = 'entity' @@ -6130,8 +6140,8 @@ class IfcBoiler_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcboilertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcboilertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBoilerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6140,8 +6150,8 @@ class IfcBoilerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBooleanClippingResult_FirstOperandType: SCOPE = 'entity' @@ -6150,7 +6160,7 @@ class IfcBooleanClippingResult_FirstOperandType: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) assert ('ifc4x3_rc2.ifcsweptareasolid' in typeof(firstoperand) or 'ifc4x3_rc2.ifcsweptdiscsolid' in typeof(firstoperand) or 'ifc4x3_rc2.ifcbooleanclippingresult' in typeof(firstoperand)) is not False class IfcBooleanClippingResult_SecondOperandType: @@ -6160,7 +6170,7 @@ class IfcBooleanClippingResult_SecondOperandType: @staticmethod def __call__(self): - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) assert ('ifc4x3_rc2.ifchalfspacesolid' in typeof(secondoperand)) is not False class IfcBooleanClippingResult_OperatorType: @@ -6170,7 +6180,7 @@ class IfcBooleanClippingResult_OperatorType: @staticmethod def __call__(self): - operator = getattr(self, 'Operator', INDETERMINATE) + operator = express_getattr(self, 'Operator', INDETERMINATE) assert (operator == difference) is not False class IfcBooleanResult_SameDim: @@ -6180,9 +6190,9 @@ class IfcBooleanResult_SameDim: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) - assert (getattr(firstoperand, 'Dim', INDETERMINATE) == getattr(secondoperand, 'Dim', INDETERMINATE)) is not False + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) + assert (express_getattr(firstoperand, 'Dim', INDETERMINATE) == express_getattr(secondoperand, 'Dim', INDETERMINATE)) is not False class IfcBooleanResult_FirstOperandClosed: SCOPE = 'entity' @@ -6191,8 +6201,8 @@ class IfcBooleanResult_FirstOperandClosed: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - assert (not 'ifc4x3_rc2.ifctessellatedfaceset' in typeof(firstoperand) or (exists(getattr(firstoperand, 'Closed', INDETERMINATE)) and getattr(firstoperand, 'Closed', INDETERMINATE))) is not False + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + assert (not 'ifc4x3_rc2.ifctessellatedfaceset' in typeof(firstoperand) or (exists(express_getattr(firstoperand, 'Closed', INDETERMINATE)) and express_getattr(firstoperand, 'Closed', INDETERMINATE))) is not False class IfcBooleanResult_SecondOperandClosed: SCOPE = 'entity' @@ -6201,12 +6211,12 @@ class IfcBooleanResult_SecondOperandClosed: @staticmethod def __call__(self): - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) - assert (not 'ifc4x3_rc2.ifctessellatedfaceset' in typeof(secondoperand) or (exists(getattr(secondoperand, 'Closed', INDETERMINATE)) and getattr(secondoperand, 'Closed', INDETERMINATE))) is not False + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) + assert (not 'ifc4x3_rc2.ifctessellatedfaceset' in typeof(secondoperand) or (exists(express_getattr(secondoperand, 'Closed', INDETERMINATE)) and express_getattr(secondoperand, 'Closed', INDETERMINATE))) is not False def calc_IfcBooleanResult_Dim(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - return getattr(firstoperand, 'Dim', INDETERMINATE) + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + return express_getattr(firstoperand, 'Dim', INDETERMINATE) class IfcBoundaryCurve_IsClosed: SCOPE = 'entity' @@ -6215,7 +6225,7 @@ class IfcBoundaryCurve_IsClosed: @staticmethod def __call__(self): - assert getattr(self, 'ClosedCurve', INDETERMINATE) is not False + assert express_getattr(self, 'ClosedCurve', INDETERMINATE) is not False def calc_IfcBoundingBox_Dim(self): return 3 @@ -6227,7 +6237,7 @@ class IfcBoxedHalfSpace_UnboundedSurface: @staticmethod def __call__(self): - assert (not 'ifc4x3_rc2.ifccurveboundedplane' in typeof(getattr(self, 'BaseSurface', INDETERMINATE))) is not False + assert (not 'ifc4x3_rc2.ifccurveboundedplane' in typeof(express_getattr(self, 'BaseSurface', INDETERMINATE))) is not False class IfcBuildingElementPart_CorrectPredefinedType: SCOPE = 'entity' @@ -6236,8 +6246,8 @@ class IfcBuildingElementPart_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuildingElementPart_CorrectTypeAssigned: SCOPE = 'entity' @@ -6246,8 +6256,8 @@ class IfcBuildingElementPart_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcbuildingelementparttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcbuildingelementparttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBuildingElementPartType_CorrectPredefinedType: SCOPE = 'entity' @@ -6256,8 +6266,8 @@ class IfcBuildingElementPartType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBuildingElementProxy_HasObjectName: SCOPE = 'entity' @@ -6266,7 +6276,7 @@ class IfcBuildingElementProxy_HasObjectName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcBuildingElementProxy_CorrectPredefinedType: SCOPE = 'entity' @@ -6275,8 +6285,8 @@ class IfcBuildingElementProxy_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuildingElementProxy_CorrectTypeAssigned: SCOPE = 'entity' @@ -6285,8 +6295,8 @@ class IfcBuildingElementProxy_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcbuildingelementproxytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcbuildingelementproxytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBuildingElementProxyType_CorrectPredefinedType: SCOPE = 'entity' @@ -6295,8 +6305,8 @@ class IfcBuildingElementProxyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBuiltElement_MaxOneMaterialAssociation: SCOPE = 'entity' @@ -6305,7 +6315,7 @@ class IfcBuiltElement_MaxOneMaterialAssociation: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'HasAssociations', INDETERMINATE) if 'ifc4x3_rc2.ifcrelassociatesmaterial' in typeof(temp)]) <= 1) is not False + assert (sizeof([temp for temp in express_getattr(self, 'HasAssociations', INDETERMINATE) if 'ifc4x3_rc2.ifcrelassociatesmaterial' in typeof(temp)]) <= 1) is not False class IfcBuiltSystem_CorrectPredefinedType: SCOPE = 'entity' @@ -6314,8 +6324,8 @@ class IfcBuiltSystem_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBurner_CorrectPredefinedType: SCOPE = 'entity' @@ -6324,8 +6334,8 @@ class IfcBurner_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBurner_CorrectTypeAssigned: SCOPE = 'entity' @@ -6334,8 +6344,8 @@ class IfcBurner_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcburnertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcburnertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBurnerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6344,8 +6354,8 @@ class IfcBurnerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCShapeProfileDef_ValidGirth: SCOPE = 'entity' @@ -6354,8 +6364,8 @@ class IfcCShapeProfileDef_ValidGirth: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - girth = getattr(self, 'Girth', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + girth = express_getattr(self, 'Girth', INDETERMINATE) assert (girth < depth / 2.0) is not False class IfcCShapeProfileDef_ValidInternalFilletRadius: @@ -6365,10 +6375,10 @@ class IfcCShapeProfileDef_ValidInternalFilletRadius: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - internalfilletradius = getattr(self, 'InternalFilletRadius', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + internalfilletradius = express_getattr(self, 'InternalFilletRadius', INDETERMINATE) assert (not exists(internalfilletradius) or (internalfilletradius <= width / 2.0 - wallthickness and internalfilletradius <= depth / 2.0 - wallthickness)) is not False class IfcCShapeProfileDef_ValidWallThickness: @@ -6378,9 +6388,9 @@ class IfcCShapeProfileDef_ValidWallThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) assert (wallthickness < width / 2.0 and wallthickness < depth / 2.0) is not False class IfcCableCarrierFitting_CorrectPredefinedType: @@ -6390,8 +6400,8 @@ class IfcCableCarrierFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableCarrierFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -6400,8 +6410,8 @@ class IfcCableCarrierFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccablecarrierfittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccablecarrierfittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableCarrierFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -6410,8 +6420,8 @@ class IfcCableCarrierFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableCarrierSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -6420,8 +6430,8 @@ class IfcCableCarrierSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableCarrierSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -6430,8 +6440,8 @@ class IfcCableCarrierSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccablecarriersegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccablecarriersegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableCarrierSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -6440,8 +6450,8 @@ class IfcCableCarrierSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -6450,8 +6460,8 @@ class IfcCableFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -6460,8 +6470,8 @@ class IfcCableFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccablefittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccablefittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -6470,8 +6480,8 @@ class IfcCableFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -6480,8 +6490,8 @@ class IfcCableSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -6490,8 +6500,8 @@ class IfcCableSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccablesegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccablesegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -6500,8 +6510,8 @@ class IfcCableSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCaissonFoundation_CorrectPredefinedType: SCOPE = 'entity' @@ -6510,8 +6520,8 @@ class IfcCaissonFoundation_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCaissonFoundation_CorrectTypeAssigned: SCOPE = 'entity' @@ -6520,8 +6530,8 @@ class IfcCaissonFoundation_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccaissonfoundationtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccaissonfoundationtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCaissonFoundationType_CorrectPredefinedType: SCOPE = 'entity' @@ -6530,8 +6540,8 @@ class IfcCaissonFoundationType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCartesianPoint_CP2Dor3D: SCOPE = 'entity' @@ -6540,11 +6550,11 @@ class IfcCartesianPoint_CP2Dor3D: @staticmethod def __call__(self): - coordinates = getattr(self, 'Coordinates', INDETERMINATE) + coordinates = express_getattr(self, 'Coordinates', INDETERMINATE) assert (hiindex(coordinates) >= 2) is not False def calc_IfcCartesianPoint_Dim(self): - coordinates = getattr(self, 'Coordinates', INDETERMINATE) + coordinates = express_getattr(self, 'Coordinates', INDETERMINATE) return hiindex(coordinates) def calc_IfcCartesianPointList_Dim(self): @@ -6557,16 +6567,16 @@ class IfcCartesianTransformationOperator_ScaleGreaterZero: @staticmethod def __call__(self): - scl = getattr(self, 'Scl', INDETERMINATE) + scl = express_getattr(self, 'Scl', INDETERMINATE) assert (scl > 0.0) is not False def calc_IfcCartesianTransformationOperator_Scl(self): - scale = getattr(self, 'Scale', INDETERMINATE) + scale = express_getattr(self, 'Scale', INDETERMINATE) return nvl(scale, 1.0) def calc_IfcCartesianTransformationOperator_Dim(self): - localorigin = getattr(self, 'LocalOrigin', INDETERMINATE) - return getattr(localorigin, 'Dim', INDETERMINATE) + localorigin = express_getattr(self, 'LocalOrigin', INDETERMINATE) + return express_getattr(localorigin, 'Dim', INDETERMINATE) class IfcCartesianTransformationOperator2D_DimEqual2: SCOPE = 'entity' @@ -6575,7 +6585,7 @@ class IfcCartesianTransformationOperator2D_DimEqual2: @staticmethod def __call__(self): - assert (getattr(self, 'Dim', INDETERMINATE) == 2) is not False + assert (express_getattr(self, 'Dim', INDETERMINATE) == 2) is not False class IfcCartesianTransformationOperator2D_Axis1Is2D: SCOPE = 'entity' @@ -6584,7 +6594,7 @@ class IfcCartesianTransformationOperator2D_Axis1Is2D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis1', INDETERMINATE)) or getattr(getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (not exists(express_getattr(self, 'Axis1', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False class IfcCartesianTransformationOperator2D_Axis2Is2D: SCOPE = 'entity' @@ -6593,10 +6603,10 @@ class IfcCartesianTransformationOperator2D_Axis2Is2D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis2', INDETERMINATE)) or getattr(getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (not exists(express_getattr(self, 'Axis2', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False def calc_IfcCartesianTransformationOperator2D_U(self): - return IfcBaseAxis(2, getattr(self, 'Axis1', INDETERMINATE), getattr(self, 'Axis2', INDETERMINATE), None) + return IfcBaseAxis(2, express_getattr(self, 'Axis1', INDETERMINATE), express_getattr(self, 'Axis2', INDETERMINATE), None) class IfcCartesianTransformationOperator2DnonUniform_Scale2GreaterZero: SCOPE = 'entity' @@ -6605,12 +6615,12 @@ class IfcCartesianTransformationOperator2DnonUniform_Scale2GreaterZero: @staticmethod def __call__(self): - scl2 = getattr(self, 'Scl2', INDETERMINATE) + scl2 = express_getattr(self, 'Scl2', INDETERMINATE) assert (scl2 > 0.0) is not False def calc_IfcCartesianTransformationOperator2DnonUniform_Scl2(self): - scale2 = getattr(self, 'Scale2', INDETERMINATE) - return nvl(scale2, getattr(self, 'Scl', INDETERMINATE)) + scale2 = express_getattr(self, 'Scale2', INDETERMINATE) + return nvl(scale2, express_getattr(self, 'Scl', INDETERMINATE)) class IfcCartesianTransformationOperator3D_DimIs3D: SCOPE = 'entity' @@ -6619,7 +6629,7 @@ class IfcCartesianTransformationOperator3D_DimIs3D: @staticmethod def __call__(self): - assert (getattr(self, 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(self, 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_Axis1Is3D: SCOPE = 'entity' @@ -6628,7 +6638,7 @@ class IfcCartesianTransformationOperator3D_Axis1Is3D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis1', INDETERMINATE)) or getattr(getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (not exists(express_getattr(self, 'Axis1', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_Axis2Is3D: SCOPE = 'entity' @@ -6637,7 +6647,7 @@ class IfcCartesianTransformationOperator3D_Axis2Is3D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis2', INDETERMINATE)) or getattr(getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (not exists(express_getattr(self, 'Axis2', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_Axis3Is3D: SCOPE = 'entity' @@ -6646,12 +6656,12 @@ class IfcCartesianTransformationOperator3D_Axis3Is3D: @staticmethod def __call__(self): - axis3 = getattr(self, 'Axis3', INDETERMINATE) - assert (not exists(axis3) or getattr(axis3, 'Dim', INDETERMINATE) == 3) is not False + axis3 = express_getattr(self, 'Axis3', INDETERMINATE) + assert (not exists(axis3) or express_getattr(axis3, 'Dim', INDETERMINATE) == 3) is not False def calc_IfcCartesianTransformationOperator3D_U(self): - axis3 = getattr(self, 'Axis3', INDETERMINATE) - return IfcBaseAxis(3, getattr(self, 'Axis1', INDETERMINATE), getattr(self, 'Axis2', INDETERMINATE), axis3) + axis3 = express_getattr(self, 'Axis3', INDETERMINATE) + return IfcBaseAxis(3, express_getattr(self, 'Axis1', INDETERMINATE), express_getattr(self, 'Axis2', INDETERMINATE), axis3) class IfcCartesianTransformationOperator3DnonUniform_Scale2GreaterZero: SCOPE = 'entity' @@ -6660,7 +6670,7 @@ class IfcCartesianTransformationOperator3DnonUniform_Scale2GreaterZero: @staticmethod def __call__(self): - scl2 = getattr(self, 'Scl2', INDETERMINATE) + scl2 = express_getattr(self, 'Scl2', INDETERMINATE) assert (scl2 > 0.0) is not False class IfcCartesianTransformationOperator3DnonUniform_Scale3GreaterZero: @@ -6670,16 +6680,16 @@ class IfcCartesianTransformationOperator3DnonUniform_Scale3GreaterZero: @staticmethod def __call__(self): - scl3 = getattr(self, 'Scl3', INDETERMINATE) + scl3 = express_getattr(self, 'Scl3', INDETERMINATE) assert (scl3 > 0.0) is not False def calc_IfcCartesianTransformationOperator3DnonUniform_Scl2(self): - scale2 = getattr(self, 'Scale2', INDETERMINATE) - return nvl(scale2, getattr(self, 'Scl', INDETERMINATE)) + scale2 = express_getattr(self, 'Scale2', INDETERMINATE) + return nvl(scale2, express_getattr(self, 'Scl', INDETERMINATE)) def calc_IfcCartesianTransformationOperator3DnonUniform_Scl3(self): - scale3 = getattr(self, 'Scale3', INDETERMINATE) - return nvl(scale3, getattr(self, 'Scl', INDETERMINATE)) + scale3 = express_getattr(self, 'Scale3', INDETERMINATE) + return nvl(scale3, express_getattr(self, 'Scl', INDETERMINATE)) class IfcChiller_CorrectPredefinedType: SCOPE = 'entity' @@ -6688,8 +6698,8 @@ class IfcChiller_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcChiller_CorrectTypeAssigned: SCOPE = 'entity' @@ -6698,8 +6708,8 @@ class IfcChiller_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcchillertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcchillertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcChillerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6708,8 +6718,8 @@ class IfcChillerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcChimney_CorrectPredefinedType: SCOPE = 'entity' @@ -6718,8 +6728,8 @@ class IfcChimney_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcChimney_CorrectTypeAssigned: SCOPE = 'entity' @@ -6728,8 +6738,8 @@ class IfcChimney_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcchimneytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcchimneytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcChimneyType_CorrectPredefinedType: SCOPE = 'entity' @@ -6738,8 +6748,8 @@ class IfcChimneyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCircleHollowProfileDef_WR1: SCOPE = 'entity' @@ -6748,8 +6758,8 @@ class IfcCircleHollowProfileDef_WR1: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - assert (wallthickness < getattr(self, 'Radius', INDETERMINATE)) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + assert (wallthickness < express_getattr(self, 'Radius', INDETERMINATE)) is not False class IfcCoil_CorrectPredefinedType: SCOPE = 'entity' @@ -6758,8 +6768,8 @@ class IfcCoil_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCoil_CorrectTypeAssigned: SCOPE = 'entity' @@ -6768,8 +6778,8 @@ class IfcCoil_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccoiltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccoiltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoilType_CorrectPredefinedType: SCOPE = 'entity' @@ -6778,8 +6788,8 @@ class IfcCoilType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcColumn_CorrectPredefinedType: SCOPE = 'entity' @@ -6788,8 +6798,8 @@ class IfcColumn_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcColumn_CorrectTypeAssigned: SCOPE = 'entity' @@ -6798,8 +6808,8 @@ class IfcColumn_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccolumntype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccolumntype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcColumnStandardCase_HasMaterialProfileSetUsage: SCOPE = 'entity' @@ -6808,7 +6818,7 @@ class IfcColumnStandardCase_HasMaterialProfileSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc2.ifcrelassociates.relatedobjects') if 'ifc4x3_rc2.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc2.ifcmaterialprofilesetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc2.ifcrelassociates.relatedobjects') if 'ifc4x3_rc2.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc2.ifcmaterialprofilesetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcColumnType_CorrectPredefinedType: SCOPE = 'entity' @@ -6817,8 +6827,8 @@ class IfcColumnType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCommunicationsAppliance_CorrectPredefinedType: SCOPE = 'entity' @@ -6827,8 +6837,8 @@ class IfcCommunicationsAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCommunicationsAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -6837,8 +6847,8 @@ class IfcCommunicationsAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccommunicationsappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccommunicationsappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCommunicationsApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -6847,8 +6857,8 @@ class IfcCommunicationsApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcComplexProperty_WR21: SCOPE = 'entity' @@ -6857,7 +6867,7 @@ class IfcComplexProperty_WR21: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert (sizeof([temp for temp in hasproperties if self == temp]) == 0) is not False class IfcComplexProperty_WR22: @@ -6867,7 +6877,7 @@ class IfcComplexProperty_WR22: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert IfcUniquePropertyName(hasproperties) is not False class IfcComplexPropertyTemplate_UniquePropertyNames: @@ -6877,7 +6887,7 @@ class IfcComplexPropertyTemplate_UniquePropertyNames: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert IfcUniquePropertyTemplateNames(haspropertytemplates) is not False class IfcComplexPropertyTemplate_NoSelfReference: @@ -6887,7 +6897,7 @@ class IfcComplexPropertyTemplate_NoSelfReference: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert (sizeof([temp for temp in haspropertytemplates if self == temp]) == 0) is not False class IfcCompositeCurve_CurveContinuous: @@ -6897,9 +6907,9 @@ class IfcCompositeCurve_CurveContinuous: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) - closedcurve = getattr(self, 'ClosedCurve', INDETERMINATE) - assert (not closedcurve and sizeof([temp for temp in segments if getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 1 or (closedcurve and sizeof([temp for temp in segments if getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 0)) is not False + segments = express_getattr(self, 'Segments', INDETERMINATE) + closedcurve = express_getattr(self, 'ClosedCurve', INDETERMINATE) + assert (not closedcurve and sizeof([temp for temp in segments if express_getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 1 or (closedcurve and sizeof([temp for temp in segments if express_getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 0)) is not False class IfcCompositeCurve_SameDim: SCOPE = 'entity' @@ -6908,17 +6918,17 @@ class IfcCompositeCurve_SameDim: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) - assert (sizeof([temp for temp in segments if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(segments, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + segments = express_getattr(self, 'Segments', INDETERMINATE) + assert (sizeof([temp for temp in segments if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(segments, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcCompositeCurve_NSegments(self): - segments = getattr(self, 'Segments', INDETERMINATE) + segments = express_getattr(self, 'Segments', INDETERMINATE) return sizeof(segments) def calc_IfcCompositeCurve_ClosedCurve(self): - segments = getattr(self, 'Segments', INDETERMINATE) - nsegments = getattr(self, 'NSegments', INDETERMINATE) - return getattr(express_getitem(segments, nsegments - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Transition', INDETERMINATE) != discontinuous + segments = express_getattr(self, 'Segments', INDETERMINATE) + nsegments = express_getattr(self, 'NSegments', INDETERMINATE) + return express_getattr(express_getitem(segments, nsegments - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Transition', INDETERMINATE) != discontinuous class IfcCompositeCurveOnSurface_SameSurface: SCOPE = 'entity' @@ -6927,7 +6937,7 @@ class IfcCompositeCurveOnSurface_SameSurface: @staticmethod def __call__(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) assert (sizeof(basissurface) > 0) is not False def calc_IfcCompositeCurveOnSurface_BasisSurface(self): @@ -6940,12 +6950,12 @@ class IfcCompositeCurveSegment_ParentIsBoundedCurve: @staticmethod def __call__(self): - parentcurve = getattr(self, 'ParentCurve', INDETERMINATE) + parentcurve = express_getattr(self, 'ParentCurve', INDETERMINATE) assert ('ifc4x3_rc2.ifcboundedcurve' in typeof(parentcurve)) is not False def calc_IfcCompositeCurveSegment_Dim(self): - parentcurve = getattr(self, 'ParentCurve', INDETERMINATE) - return getattr(parentcurve, 'Dim', INDETERMINATE) + parentcurve = express_getattr(self, 'ParentCurve', INDETERMINATE) + return express_getattr(parentcurve, 'Dim', INDETERMINATE) class IfcCompositeProfileDef_InvariantProfileType: SCOPE = 'entity' @@ -6954,8 +6964,8 @@ class IfcCompositeProfileDef_InvariantProfileType: @staticmethod def __call__(self): - profiles = getattr(self, 'Profiles', INDETERMINATE) - assert (sizeof([temp for temp in profiles if getattr(temp, 'ProfileType', INDETERMINATE) != getattr(express_getitem(profiles, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE)]) == 0) is not False + profiles = express_getattr(self, 'Profiles', INDETERMINATE) + assert (sizeof([temp for temp in profiles if express_getattr(temp, 'ProfileType', INDETERMINATE) != express_getattr(express_getitem(profiles, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcCompositeProfileDef_NoRecursion: SCOPE = 'entity' @@ -6964,7 +6974,7 @@ class IfcCompositeProfileDef_NoRecursion: @staticmethod def __call__(self): - profiles = getattr(self, 'Profiles', INDETERMINATE) + profiles = express_getattr(self, 'Profiles', INDETERMINATE) assert (sizeof([temp for temp in profiles if 'ifc4x3_rc2.ifccompositeprofiledef' in typeof(temp)]) == 0) is not False class IfcCompressor_CorrectPredefinedType: @@ -6974,8 +6984,8 @@ class IfcCompressor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCompressor_CorrectTypeAssigned: SCOPE = 'entity' @@ -6984,8 +6994,8 @@ class IfcCompressor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccompressortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccompressortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCompressorType_CorrectPredefinedType: SCOPE = 'entity' @@ -6994,8 +7004,8 @@ class IfcCompressorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCondenser_CorrectPredefinedType: SCOPE = 'entity' @@ -7004,8 +7014,8 @@ class IfcCondenser_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCondenser_CorrectTypeAssigned: SCOPE = 'entity' @@ -7014,8 +7024,8 @@ class IfcCondenser_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccondensertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccondensertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCondenserType_CorrectPredefinedType: SCOPE = 'entity' @@ -7024,8 +7034,8 @@ class IfcCondenserType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcConstraint_WR11: SCOPE = 'entity' @@ -7034,8 +7044,8 @@ class IfcConstraint_WR11: @staticmethod def __call__(self): - constraintgrade = getattr(self, 'ConstraintGrade', INDETERMINATE) - assert (constraintgrade != getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) or (constraintgrade == getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedGrade', INDETERMINATE)))) is not False + constraintgrade = express_getattr(self, 'ConstraintGrade', INDETERMINATE) + assert (constraintgrade != express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) or (constraintgrade == express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedGrade', INDETERMINATE)))) is not False class IfcConstructionEquipmentResource_CorrectPredefinedType: SCOPE = 'entity' @@ -7044,8 +7054,8 @@ class IfcConstructionEquipmentResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionEquipmentResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7054,8 +7064,8 @@ class IfcConstructionEquipmentResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcConstructionMaterialResource_CorrectPredefinedType: SCOPE = 'entity' @@ -7064,8 +7074,8 @@ class IfcConstructionMaterialResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionMaterialResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7074,8 +7084,8 @@ class IfcConstructionMaterialResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcConstructionProductResource_CorrectPredefinedType: SCOPE = 'entity' @@ -7084,8 +7094,8 @@ class IfcConstructionProductResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionProductResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7094,8 +7104,8 @@ class IfcConstructionProductResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcController_CorrectPredefinedType: SCOPE = 'entity' @@ -7104,8 +7114,8 @@ class IfcController_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcController_CorrectTypeAssigned: SCOPE = 'entity' @@ -7114,8 +7124,8 @@ class IfcController_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccontrollertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccontrollertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcControllerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7124,8 +7134,8 @@ class IfcControllerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcConveyorSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -7134,8 +7144,8 @@ class IfcConveyorSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConveyorSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -7144,8 +7154,8 @@ class IfcConveyorSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcconveyorsegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcconveyorsegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcConveyorSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -7154,8 +7164,8 @@ class IfcConveyorSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCooledBeam_CorrectPredefinedType: SCOPE = 'entity' @@ -7164,8 +7174,8 @@ class IfcCooledBeam_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCooledBeam_CorrectTypeAssigned: SCOPE = 'entity' @@ -7174,8 +7184,8 @@ class IfcCooledBeam_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccooledbeamtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccooledbeamtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCooledBeamType_CorrectPredefinedType: SCOPE = 'entity' @@ -7184,8 +7194,8 @@ class IfcCooledBeamType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCoolingTower_CorrectPredefinedType: SCOPE = 'entity' @@ -7194,8 +7204,8 @@ class IfcCoolingTower_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCoolingTower_CorrectTypeAssigned: SCOPE = 'entity' @@ -7204,8 +7214,8 @@ class IfcCoolingTower_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccoolingtowertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccoolingtowertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoolingTowerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7214,8 +7224,8 @@ class IfcCoolingTowerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCourse_CorrectPredefinedType: SCOPE = 'entity' @@ -7224,8 +7234,8 @@ class IfcCourse_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCourse_CorrectTypeAssigned: SCOPE = 'entity' @@ -7234,8 +7244,8 @@ class IfcCourse_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccoursetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccoursetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCourseType_CorrectPredefinedType: SCOPE = 'entity' @@ -7244,8 +7254,8 @@ class IfcCourseType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCovering_CorrectPredefinedType: SCOPE = 'entity' @@ -7254,8 +7264,8 @@ class IfcCovering_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCovering_CorrectTypeAssigned: SCOPE = 'entity' @@ -7264,8 +7274,8 @@ class IfcCovering_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccoveringtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccoveringtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoveringType_CorrectPredefinedType: SCOPE = 'entity' @@ -7274,8 +7284,8 @@ class IfcCoveringType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCrewResource_CorrectPredefinedType: SCOPE = 'entity' @@ -7284,8 +7294,8 @@ class IfcCrewResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCrewResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7294,8 +7304,8 @@ class IfcCrewResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False def calc_IfcCsgPrimitive3D_Dim(self): return 3 @@ -7307,8 +7317,8 @@ class IfcCurtainWall_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCurtainWall_CorrectTypeAssigned: SCOPE = 'entity' @@ -7317,8 +7327,8 @@ class IfcCurtainWall_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccurtainwalltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifccurtainwalltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCurtainWallType_CorrectPredefinedType: SCOPE = 'entity' @@ -7327,8 +7337,8 @@ class IfcCurtainWallType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcCurve_Dim(self): return IfcCurveDim(self) @@ -7340,7 +7350,7 @@ class IfcCurveStyle_MeasureOfWidth: @staticmethod def __call__(self): - curvewidth = getattr(self, 'CurveWidth', INDETERMINATE) + curvewidth = express_getattr(self, 'CurveWidth', INDETERMINATE) assert (not exists(curvewidth) or 'ifc4x3_rc2.ifcpositivelengthmeasure' in typeof(curvewidth) or ('ifc4x3_rc2.ifcdescriptivemeasure' in typeof(curvewidth) and curvewidth == 'bylayer')) is not False class IfcCurveStyle_IdentifiableCurveStyle: @@ -7350,9 +7360,9 @@ class IfcCurveStyle_IdentifiableCurveStyle: @staticmethod def __call__(self): - curvefont = getattr(self, 'CurveFont', INDETERMINATE) - curvewidth = getattr(self, 'CurveWidth', INDETERMINATE) - curvecolour = getattr(self, 'CurveColour', INDETERMINATE) + curvefont = express_getattr(self, 'CurveFont', INDETERMINATE) + curvewidth = express_getattr(self, 'CurveWidth', INDETERMINATE) + curvecolour = express_getattr(self, 'CurveColour', INDETERMINATE) assert (exists(curvefont) or exists(curvewidth) or exists(curvecolour)) is not False class IfcCurveStyleFontPattern_VisibleLengthGreaterEqualZero: @@ -7362,7 +7372,7 @@ class IfcCurveStyleFontPattern_VisibleLengthGreaterEqualZero: @staticmethod def __call__(self): - visiblesegmentlength = getattr(self, 'VisibleSegmentLength', INDETERMINATE) + visiblesegmentlength = express_getattr(self, 'VisibleSegmentLength', INDETERMINATE) assert (visiblesegmentlength >= 0.0) is not False class IfcDamper_CorrectPredefinedType: @@ -7372,8 +7382,8 @@ class IfcDamper_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDamper_CorrectTypeAssigned: SCOPE = 'entity' @@ -7382,8 +7392,8 @@ class IfcDamper_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcdampertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcdampertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDamperType_CorrectPredefinedType: SCOPE = 'entity' @@ -7392,8 +7402,8 @@ class IfcDamperType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDeepFoundation_CorrectTypeAssigned: SCOPE = 'entity' @@ -7402,8 +7412,8 @@ class IfcDeepFoundation_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcdeepfoundationtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcdeepfoundationtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDerivedProfileDef_InvariantProfileType: SCOPE = 'entity' @@ -7412,8 +7422,8 @@ class IfcDerivedProfileDef_InvariantProfileType: @staticmethod def __call__(self): - parentprofile = getattr(self, 'ParentProfile', INDETERMINATE) - assert (getattr(self, 'ProfileType', INDETERMINATE) == getattr(parentprofile, 'ProfileType', INDETERMINATE)) is not False + parentprofile = express_getattr(self, 'ParentProfile', INDETERMINATE) + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(parentprofile, 'ProfileType', INDETERMINATE)) is not False class IfcDerivedUnit_WR1: SCOPE = 'entity' @@ -7422,8 +7432,8 @@ class IfcDerivedUnit_WR1: @staticmethod def __call__(self): - elements = getattr(self, 'Elements', INDETERMINATE) - assert (sizeof(elements) > 1 or (sizeof(elements) == 1 and getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) != 1)) is not False + elements = express_getattr(self, 'Elements', INDETERMINATE) + assert (sizeof(elements) > 1 or (sizeof(elements) == 1 and express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) != 1)) is not False class IfcDerivedUnit_WR2: SCOPE = 'entity' @@ -7432,11 +7442,11 @@ class IfcDerivedUnit_WR2: @staticmethod def __call__(self): - unittype = getattr(self, 'UnitType', INDETERMINATE) - assert (unittype != getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) or (unittype == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedType', INDETERMINATE)))) is not False + unittype = express_getattr(self, 'UnitType', INDETERMINATE) + assert (unittype != express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) or (unittype == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedType', INDETERMINATE)))) is not False def calc_IfcDerivedUnit_Dimensions(self): - elements = getattr(self, 'Elements', INDETERMINATE) + elements = express_getattr(self, 'Elements', INDETERMINATE) return IfcDeriveDimensionalExponents(elements) class IfcDirection_MagnitudeGreaterZero: @@ -7446,11 +7456,11 @@ class IfcDirection_MagnitudeGreaterZero: @staticmethod def __call__(self): - directionratios = getattr(self, 'DirectionRatios', INDETERMINATE) + directionratios = express_getattr(self, 'DirectionRatios', INDETERMINATE) assert (sizeof([tmp for tmp in directionratios if tmp != 0.0]) > 0) is not False def calc_IfcDirection_Dim(self): - directionratios = getattr(self, 'DirectionRatios', INDETERMINATE) + directionratios = express_getattr(self, 'DirectionRatios', INDETERMINATE) return hiindex(directionratios) class IfcDirectrixCurveSweptAreaSolid_DirectrixBounded: @@ -7460,9 +7470,9 @@ class IfcDirectrixCurveSweptAreaSolid_DirectrixBounded: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - startparam = getattr(self, 'StartParam', INDETERMINATE) - endparam = getattr(self, 'EndParam', INDETERMINATE) + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + startparam = express_getattr(self, 'StartParam', INDETERMINATE) + endparam = express_getattr(self, 'EndParam', INDETERMINATE) assert (exists(startparam) and exists(endparam) or sizeof(['ifc4x3_rc2.ifcconic', 'ifc4x3_rc2.ifcboundedcurve'] * typeof(directrix)) == 1) is not False class IfcDiscreteAccessory_CorrectPredefinedType: @@ -7472,8 +7482,8 @@ class IfcDiscreteAccessory_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDiscreteAccessory_CorrectTypeAssigned: SCOPE = 'entity' @@ -7482,8 +7492,8 @@ class IfcDiscreteAccessory_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcdiscreteaccessorytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcdiscreteaccessorytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDiscreteAccessoryType_CorrectPredefinedType: SCOPE = 'entity' @@ -7492,8 +7502,8 @@ class IfcDiscreteAccessoryType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDistributionBoard_CorrectPredefinedType: SCOPE = 'entity' @@ -7502,8 +7512,8 @@ class IfcDistributionBoard_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDistributionBoard_CorrectTypeAssigned: SCOPE = 'entity' @@ -7512,8 +7522,8 @@ class IfcDistributionBoard_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcdistributionboardtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcdistributionboardtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDistributionBoardType_CorrectPredefinedType: SCOPE = 'entity' @@ -7522,8 +7532,8 @@ class IfcDistributionBoardType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDistributionChamberElement_CorrectPredefinedType: SCOPE = 'entity' @@ -7532,8 +7542,8 @@ class IfcDistributionChamberElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDistributionChamberElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -7542,8 +7552,8 @@ class IfcDistributionChamberElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcdistributionchamberelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcdistributionchamberelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDistributionChamberElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -7552,8 +7562,8 @@ class IfcDistributionChamberElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDocumentReference_WR1: SCOPE = 'entity' @@ -7562,8 +7572,8 @@ class IfcDocumentReference_WR1: @staticmethod def __call__(self): - name = getattr(self, 'Name', INDETERMINATE) - referenceddocument = getattr(self, 'ReferencedDocument', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) + referenceddocument = express_getattr(self, 'ReferencedDocument', INDETERMINATE) assert exists(name) ^ exists(referenceddocument) is not False class IfcDoor_CorrectStyleAssigned: @@ -7573,8 +7583,8 @@ class IfcDoor_CorrectStyleAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcdoortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcdoortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDoorLiningProperties_WR31: SCOPE = 'entity' @@ -7583,8 +7593,8 @@ class IfcDoorLiningProperties_WR31: @staticmethod def __call__(self): - liningdepth = getattr(self, 'LiningDepth', INDETERMINATE) - liningthickness = getattr(self, 'LiningThickness', INDETERMINATE) + liningdepth = express_getattr(self, 'LiningDepth', INDETERMINATE) + liningthickness = express_getattr(self, 'LiningThickness', INDETERMINATE) assert (not (exists(liningdepth) and (not exists(liningthickness)))) is not False class IfcDoorLiningProperties_WR32: @@ -7594,8 +7604,8 @@ class IfcDoorLiningProperties_WR32: @staticmethod def __call__(self): - thresholddepth = getattr(self, 'ThresholdDepth', INDETERMINATE) - thresholdthickness = getattr(self, 'ThresholdThickness', INDETERMINATE) + thresholddepth = express_getattr(self, 'ThresholdDepth', INDETERMINATE) + thresholdthickness = express_getattr(self, 'ThresholdThickness', INDETERMINATE) assert (not (exists(thresholddepth) and (not exists(thresholdthickness)))) is not False class IfcDoorLiningProperties_WR33: @@ -7605,8 +7615,8 @@ class IfcDoorLiningProperties_WR33: @staticmethod def __call__(self): - transomthickness = getattr(self, 'TransomThickness', INDETERMINATE) - transomoffset = getattr(self, 'TransomOffset', INDETERMINATE) + transomthickness = express_getattr(self, 'TransomThickness', INDETERMINATE) + transomoffset = express_getattr(self, 'TransomOffset', INDETERMINATE) assert (exists(transomoffset) and exists(transomthickness)) ^ (not exists(transomoffset) and (not exists(transomthickness))) is not False class IfcDoorLiningProperties_WR34: @@ -7616,8 +7626,8 @@ class IfcDoorLiningProperties_WR34: @staticmethod def __call__(self): - casingthickness = getattr(self, 'CasingThickness', INDETERMINATE) - casingdepth = getattr(self, 'CasingDepth', INDETERMINATE) + casingthickness = express_getattr(self, 'CasingThickness', INDETERMINATE) + casingdepth = express_getattr(self, 'CasingDepth', INDETERMINATE) assert (exists(casingdepth) and exists(casingthickness)) ^ (not exists(casingdepth) and (not exists(casingthickness))) is not False class IfcDoorLiningProperties_WR35: @@ -7627,7 +7637,7 @@ class IfcDoorLiningProperties_WR35: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc2.ifcdoortype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc2.ifcdoorstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc2.ifcdoortype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc2.ifcdoorstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcDoorPanelProperties_ApplicableToType: SCOPE = 'entity' @@ -7636,7 +7646,7 @@ class IfcDoorPanelProperties_ApplicableToType: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc2.ifcdoortype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc2.ifcdoorstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc2.ifcdoortype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc2.ifcdoorstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcDoorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7645,8 +7655,8 @@ class IfcDoorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDraughtingPreDefinedColour_PreDefinedColourNames: SCOPE = 'entity' @@ -7655,7 +7665,7 @@ class IfcDraughtingPreDefinedColour_PreDefinedColourNames: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'bylayer']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'bylayer']) is not False class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: SCOPE = 'entity' @@ -7664,7 +7674,7 @@ class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chaindoubledash', 'dashed', 'dotted', 'bylayer']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chaindoubledash', 'dashed', 'dotted', 'bylayer']) is not False class IfcDuctFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -7673,8 +7683,8 @@ class IfcDuctFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -7683,8 +7693,8 @@ class IfcDuctFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcductfittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcductfittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -7693,8 +7703,8 @@ class IfcDuctFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDuctSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -7703,8 +7713,8 @@ class IfcDuctSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -7713,8 +7723,8 @@ class IfcDuctSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcductsegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcductsegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -7723,8 +7733,8 @@ class IfcDuctSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDuctSilencer_CorrectPredefinedType: SCOPE = 'entity' @@ -7733,8 +7743,8 @@ class IfcDuctSilencer_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctSilencer_CorrectTypeAssigned: SCOPE = 'entity' @@ -7743,8 +7753,8 @@ class IfcDuctSilencer_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcductsilencertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcductsilencertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctSilencerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7753,8 +7763,8 @@ class IfcDuctSilencerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEarthworksCut_CorrectPredefinedType: SCOPE = 'entity' @@ -7763,8 +7773,8 @@ class IfcEarthworksCut_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEarthworksFill_CorrectPredefinedType: SCOPE = 'entity' @@ -7773,8 +7783,8 @@ class IfcEarthworksFill_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEdgeLoop_IsClosed: SCOPE = 'entity' @@ -7783,9 +7793,9 @@ class IfcEdgeLoop_IsClosed: @staticmethod def __call__(self): - edgelist = getattr(self, 'EdgeList', INDETERMINATE) - ne = getattr(self, 'Ne', INDETERMINATE) - assert (getattr(express_getitem(edgelist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) == getattr(express_getitem(edgelist, ne - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE)) is not False + edgelist = express_getattr(self, 'EdgeList', INDETERMINATE) + ne = express_getattr(self, 'Ne', INDETERMINATE) + assert (express_getattr(express_getitem(edgelist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) == express_getattr(express_getitem(edgelist, ne - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE)) is not False class IfcEdgeLoop_IsContinuous: SCOPE = 'entity' @@ -7797,7 +7807,7 @@ class IfcEdgeLoop_IsContinuous: assert IfcLoopHeadToTail(self) is not False def calc_IfcEdgeLoop_Ne(self): - edgelist = getattr(self, 'EdgeList', INDETERMINATE) + edgelist = express_getattr(self, 'EdgeList', INDETERMINATE) return sizeof(edgelist) class IfcElectricAppliance_CorrectPredefinedType: @@ -7807,8 +7817,8 @@ class IfcElectricAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -7817,8 +7827,8 @@ class IfcElectricAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcelectricappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcelectricappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7827,8 +7837,8 @@ class IfcElectricApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricDistributionBoard_CorrectPredefinedType: SCOPE = 'entity' @@ -7837,8 +7847,8 @@ class IfcElectricDistributionBoard_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricDistributionBoard_CorrectTypeAssigned: SCOPE = 'entity' @@ -7847,8 +7857,8 @@ class IfcElectricDistributionBoard_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcelectricdistributionboardtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcelectricdistributionboardtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricDistributionBoardType_CorrectPredefinedType: SCOPE = 'entity' @@ -7857,8 +7867,8 @@ class IfcElectricDistributionBoardType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricFlowStorageDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -7867,8 +7877,8 @@ class IfcElectricFlowStorageDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricFlowStorageDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -7877,8 +7887,8 @@ class IfcElectricFlowStorageDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcelectricflowstoragedevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcelectricflowstoragedevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricFlowStorageDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7887,8 +7897,8 @@ class IfcElectricFlowStorageDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricFlowTreatmentDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -7897,8 +7907,8 @@ class IfcElectricFlowTreatmentDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricFlowTreatmentDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -7907,8 +7917,8 @@ class IfcElectricFlowTreatmentDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcelectricflowtreatmentdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcelectricflowtreatmentdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricFlowTreatmentDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7917,8 +7927,8 @@ class IfcElectricFlowTreatmentDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricGenerator_CorrectPredefinedType: SCOPE = 'entity' @@ -7927,8 +7937,8 @@ class IfcElectricGenerator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricGenerator_CorrectTypeAssigned: SCOPE = 'entity' @@ -7937,8 +7947,8 @@ class IfcElectricGenerator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcelectricgeneratortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcelectricgeneratortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricGeneratorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7947,8 +7957,8 @@ class IfcElectricGeneratorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricMotor_CorrectPredefinedType: SCOPE = 'entity' @@ -7957,8 +7967,8 @@ class IfcElectricMotor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricMotor_CorrectTypeAssigned: SCOPE = 'entity' @@ -7967,8 +7977,8 @@ class IfcElectricMotor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcelectricmotortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcelectricmotortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricMotorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7977,8 +7987,8 @@ class IfcElectricMotorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricTimeControl_CorrectPredefinedType: SCOPE = 'entity' @@ -7987,8 +7997,8 @@ class IfcElectricTimeControl_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricTimeControl_CorrectTypeAssigned: SCOPE = 'entity' @@ -7997,8 +8007,8 @@ class IfcElectricTimeControl_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcelectrictimecontroltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcelectrictimecontroltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricTimeControlType_CorrectPredefinedType: SCOPE = 'entity' @@ -8007,8 +8017,8 @@ class IfcElectricTimeControlType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElementAssembly_CorrectPredefinedType: SCOPE = 'entity' @@ -8017,8 +8027,8 @@ class IfcElementAssembly_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElementAssembly_CorrectTypeAssigned: SCOPE = 'entity' @@ -8027,8 +8037,8 @@ class IfcElementAssembly_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcelementassemblytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcelementassemblytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElementAssemblyType_CorrectPredefinedType: SCOPE = 'entity' @@ -8037,8 +8047,8 @@ class IfcElementAssemblyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElementQuantity_UniqueQuantityNames: SCOPE = 'entity' @@ -8047,7 +8057,7 @@ class IfcElementQuantity_UniqueQuantityNames: @staticmethod def __call__(self): - quantities = getattr(self, 'Quantities', INDETERMINATE) + quantities = express_getattr(self, 'Quantities', INDETERMINATE) assert IfcUniqueQuantityNames(quantities) is not False class IfcEngine_CorrectPredefinedType: @@ -8057,8 +8067,8 @@ class IfcEngine_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEngine_CorrectTypeAssigned: SCOPE = 'entity' @@ -8067,8 +8077,8 @@ class IfcEngine_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcenginetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcenginetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEngineType_CorrectPredefinedType: SCOPE = 'entity' @@ -8077,8 +8087,8 @@ class IfcEngineType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvaporativeCooler_CorrectPredefinedType: SCOPE = 'entity' @@ -8087,8 +8097,8 @@ class IfcEvaporativeCooler_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvaporativeCooler_CorrectTypeAssigned: SCOPE = 'entity' @@ -8097,8 +8107,8 @@ class IfcEvaporativeCooler_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcevaporativecoolertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcevaporativecoolertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEvaporativeCoolerType_CorrectPredefinedType: SCOPE = 'entity' @@ -8107,8 +8117,8 @@ class IfcEvaporativeCoolerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvaporator_CorrectPredefinedType: SCOPE = 'entity' @@ -8117,8 +8127,8 @@ class IfcEvaporator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvaporator_CorrectTypeAssigned: SCOPE = 'entity' @@ -8127,8 +8137,8 @@ class IfcEvaporator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcevaporatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcevaporatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEvaporatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -8137,8 +8147,8 @@ class IfcEvaporatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvent_CorrectPredefinedType: SCOPE = 'entity' @@ -8147,8 +8157,8 @@ class IfcEvent_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvent_CorrectTypeAssigned: SCOPE = 'entity' @@ -8157,9 +8167,9 @@ class IfcEvent_CorrectTypeAssigned: @staticmethod def __call__(self): - eventtriggertype = getattr(self, 'EventTriggerType', INDETERMINATE) - userdefinedeventtriggertype = getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) - assert (not exists(eventtriggertype) or eventtriggertype != getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False + eventtriggertype = express_getattr(self, 'EventTriggerType', INDETERMINATE) + userdefinedeventtriggertype = express_getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) + assert (not exists(eventtriggertype) or eventtriggertype != express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False class IfcEventType_CorrectPredefinedType: SCOPE = 'entity' @@ -8168,8 +8178,8 @@ class IfcEventType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcEventType_CorrectEventTriggerType: SCOPE = 'entity' @@ -8178,9 +8188,9 @@ class IfcEventType_CorrectEventTriggerType: @staticmethod def __call__(self): - eventtriggertype = getattr(self, 'EventTriggerType', INDETERMINATE) - userdefinedeventtriggertype = getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) - assert (eventtriggertype != getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False + eventtriggertype = express_getattr(self, 'EventTriggerType', INDETERMINATE) + userdefinedeventtriggertype = express_getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) + assert (eventtriggertype != express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False class IfcExternalReference_WR1: SCOPE = 'entity' @@ -8189,9 +8199,9 @@ class IfcExternalReference_WR1: @staticmethod def __call__(self): - location = getattr(self, 'Location', INDETERMINATE) - identification = getattr(self, 'Identification', INDETERMINATE) - name = getattr(self, 'Name', INDETERMINATE) + location = express_getattr(self, 'Location', INDETERMINATE) + identification = express_getattr(self, 'Identification', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) assert (exists(identification) or exists(location) or exists(name)) is not False class IfcExtrudedAreaSolid_ValidExtrusionDirection: @@ -8201,7 +8211,7 @@ class IfcExtrudedAreaSolid_ValidExtrusionDirection: @staticmethod def __call__(self): - assert (IfcDotProduct(IfcDirection(DirectionRatios=[0.0, 0.0, 1.0]), getattr(self, 'ExtrudedDirection', INDETERMINATE)) != 0.0) is not False + assert (IfcDotProduct(IfcDirection(DirectionRatios=[0.0, 0.0, 1.0]), express_getattr(self, 'ExtrudedDirection', INDETERMINATE)) != 0.0) is not False class IfcExtrudedAreaSolidTapered_CorrectProfileAssignment: SCOPE = 'entity' @@ -8210,7 +8220,7 @@ class IfcExtrudedAreaSolidTapered_CorrectProfileAssignment: @staticmethod def __call__(self): - assert IfcTaperedSweptAreaProfiles(getattr(self, 'SweptArea', INDETERMINATE), getattr(self, 'EndSweptArea', INDETERMINATE)) is not False + assert IfcTaperedSweptAreaProfiles(express_getattr(self, 'SweptArea', INDETERMINATE), express_getattr(self, 'EndSweptArea', INDETERMINATE)) is not False class IfcFace_HasOuterBound: SCOPE = 'entity' @@ -8219,7 +8229,7 @@ class IfcFace_HasOuterBound: @staticmethod def __call__(self): - bounds = getattr(self, 'Bounds', INDETERMINATE) + bounds = express_getattr(self, 'Bounds', INDETERMINATE) assert (sizeof([temp for temp in bounds if 'ifc4x3_rc2.ifcfaceouterbound' in typeof(temp)]) <= 1) is not False def calc_IfcFaceBasedSurfaceModel_Dim(self): @@ -8232,8 +8242,8 @@ class IfcFan_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFan_CorrectTypeAssigned: SCOPE = 'entity' @@ -8242,8 +8252,8 @@ class IfcFan_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcfantype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcfantype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFanType_CorrectPredefinedType: SCOPE = 'entity' @@ -8252,8 +8262,8 @@ class IfcFanType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFastener_CorrectPredefinedType: SCOPE = 'entity' @@ -8262,8 +8272,8 @@ class IfcFastener_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFastener_CorrectTypeAssigned: SCOPE = 'entity' @@ -8272,8 +8282,8 @@ class IfcFastener_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcfastenertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcfastenertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFastenerType_CorrectPredefinedType: SCOPE = 'entity' @@ -8282,8 +8292,8 @@ class IfcFastenerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFeatureElementSubtraction_HasNoSubtraction: SCOPE = 'entity' @@ -8292,7 +8302,7 @@ class IfcFeatureElementSubtraction_HasNoSubtraction: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'HasOpenings', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'HasOpenings', INDETERMINATE)) == 0) is not False class IfcFeatureElementSubtraction_IsNotFilling: SCOPE = 'entity' @@ -8301,7 +8311,7 @@ class IfcFeatureElementSubtraction_IsNotFilling: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'FillsVoids', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'FillsVoids', INDETERMINATE)) == 0) is not False class IfcFillAreaStyle_MaxOneColour: SCOPE = 'entity' @@ -8310,7 +8320,7 @@ class IfcFillAreaStyle_MaxOneColour: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3_rc2.ifccolour' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3_rc2.ifccolour' in typeof(style)]) <= 1) is not False class IfcFillAreaStyle_MaxOneExtHatchStyle: SCOPE = 'entity' @@ -8319,7 +8329,7 @@ class IfcFillAreaStyle_MaxOneExtHatchStyle: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3_rc2.ifcexternallydefinedhatchstyle' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3_rc2.ifcexternallydefinedhatchstyle' in typeof(style)]) <= 1) is not False class IfcFillAreaStyle_ConsistentHatchStyleDef: SCOPE = 'entity' @@ -8328,7 +8338,7 @@ class IfcFillAreaStyle_ConsistentHatchStyleDef: @staticmethod def __call__(self): - assert IfcCorrectFillAreaStyle(getattr(self, 'FillStyles', INDETERMINATE)) is not False + assert IfcCorrectFillAreaStyle(express_getattr(self, 'FillStyles', INDETERMINATE)) is not False class IfcFillAreaStyleHatching_PatternStart2D: SCOPE = 'entity' @@ -8337,8 +8347,8 @@ class IfcFillAreaStyleHatching_PatternStart2D: @staticmethod def __call__(self): - patternstart = getattr(self, 'PatternStart', INDETERMINATE) - assert (not exists(patternstart) or getattr(patternstart, 'Dim', INDETERMINATE) == 2) is not False + patternstart = express_getattr(self, 'PatternStart', INDETERMINATE) + assert (not exists(patternstart) or express_getattr(patternstart, 'Dim', INDETERMINATE) == 2) is not False class IfcFillAreaStyleHatching_RefHatchLine2D: SCOPE = 'entity' @@ -8347,8 +8357,8 @@ class IfcFillAreaStyleHatching_RefHatchLine2D: @staticmethod def __call__(self): - pointofreferencehatchline = getattr(self, 'PointOfReferenceHatchLine', INDETERMINATE) - assert (not exists(pointofreferencehatchline) or getattr(pointofreferencehatchline, 'Dim', INDETERMINATE) == 2) is not False + pointofreferencehatchline = express_getattr(self, 'PointOfReferenceHatchLine', INDETERMINATE) + assert (not exists(pointofreferencehatchline) or express_getattr(pointofreferencehatchline, 'Dim', INDETERMINATE) == 2) is not False class IfcFilter_CorrectPredefinedType: SCOPE = 'entity' @@ -8357,8 +8367,8 @@ class IfcFilter_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFilter_CorrectTypeAssigned: SCOPE = 'entity' @@ -8367,8 +8377,8 @@ class IfcFilter_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcfiltertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcfiltertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFilterType_CorrectPredefinedType: SCOPE = 'entity' @@ -8377,8 +8387,8 @@ class IfcFilterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFireSuppressionTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -8387,8 +8397,8 @@ class IfcFireSuppressionTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFireSuppressionTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -8397,8 +8407,8 @@ class IfcFireSuppressionTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcfiresuppressionterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcfiresuppressionterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFireSuppressionTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -8407,8 +8417,8 @@ class IfcFireSuppressionTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFlowInstrument_CorrectPredefinedType: SCOPE = 'entity' @@ -8417,8 +8427,8 @@ class IfcFlowInstrument_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFlowInstrument_CorrectTypeAssigned: SCOPE = 'entity' @@ -8427,8 +8437,8 @@ class IfcFlowInstrument_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcflowinstrumenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcflowinstrumenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFlowInstrumentType_CorrectPredefinedType: SCOPE = 'entity' @@ -8437,8 +8447,8 @@ class IfcFlowInstrumentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFlowMeter_CorrectPredefinedType: SCOPE = 'entity' @@ -8447,8 +8457,8 @@ class IfcFlowMeter_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFlowMeter_CorrectTypeAssigned: SCOPE = 'entity' @@ -8457,8 +8467,8 @@ class IfcFlowMeter_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcflowmetertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcflowmetertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFlowMeterType_CorrectPredefinedType: SCOPE = 'entity' @@ -8467,8 +8477,8 @@ class IfcFlowMeterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFooting_CorrectPredefinedType: SCOPE = 'entity' @@ -8477,8 +8487,8 @@ class IfcFooting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFooting_CorrectTypeAssigned: SCOPE = 'entity' @@ -8487,8 +8497,8 @@ class IfcFooting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcfootingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcfootingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFootingType_CorrectPredefinedType: SCOPE = 'entity' @@ -8497,8 +8507,8 @@ class IfcFootingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFurniture_CorrectPredefinedType: SCOPE = 'entity' @@ -8507,8 +8517,8 @@ class IfcFurniture_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFurniture_CorrectTypeAssigned: SCOPE = 'entity' @@ -8517,8 +8527,8 @@ class IfcFurniture_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcfurnituretype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcfurnituretype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFurnitureType_CorrectPredefinedType: SCOPE = 'entity' @@ -8527,8 +8537,8 @@ class IfcFurnitureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcGeographicElement_CorrectPredefinedType: SCOPE = 'entity' @@ -8537,8 +8547,8 @@ class IfcGeographicElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcGeographicElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -8547,8 +8557,8 @@ class IfcGeographicElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcgeographicelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcgeographicelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcGeographicElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -8557,8 +8567,8 @@ class IfcGeographicElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcGeometricCurveSet_NoSurfaces: SCOPE = 'entity' @@ -8567,7 +8577,7 @@ class IfcGeometricCurveSet_NoSurfaces: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Elements', INDETERMINATE) if 'ifc4x3_rc2.ifcsurface' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Elements', INDETERMINATE) if 'ifc4x3_rc2.ifcsurface' in typeof(temp)]) == 0) is not False class IfcGeometricRepresentationContext_North2D: SCOPE = 'entity' @@ -8576,8 +8586,8 @@ class IfcGeometricRepresentationContext_North2D: @staticmethod def __call__(self): - truenorth = getattr(self, 'TrueNorth', INDETERMINATE) - assert (not exists(truenorth) or hiindex(getattr(truenorth, 'DirectionRatios', INDETERMINATE)) == 2) is not False + truenorth = express_getattr(self, 'TrueNorth', INDETERMINATE) + assert (not exists(truenorth) or hiindex(express_getattr(truenorth, 'DirectionRatios', INDETERMINATE)) == 2) is not False class IfcGeometricRepresentationSubContext_ParentNoSub: SCOPE = 'entity' @@ -8586,7 +8596,7 @@ class IfcGeometricRepresentationSubContext_ParentNoSub: @staticmethod def __call__(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) assert (not 'ifc4x3_rc2.ifcgeometricrepresentationsubcontext' in typeof(parentcontext)) is not False class IfcGeometricRepresentationSubContext_UserTargetProvided: @@ -8596,9 +8606,9 @@ class IfcGeometricRepresentationSubContext_UserTargetProvided: @staticmethod def __call__(self): - targetview = getattr(self, 'TargetView', INDETERMINATE) - userdefinedtargetview = getattr(self, 'UserDefinedTargetView', INDETERMINATE) - assert (targetview != getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) or (targetview == getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedtargetview))) is not False + targetview = express_getattr(self, 'TargetView', INDETERMINATE) + userdefinedtargetview = express_getattr(self, 'UserDefinedTargetView', INDETERMINATE) + assert (targetview != express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) or (targetview == express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedtargetview))) is not False class IfcGeometricRepresentationSubContext_NoCoordOperation: SCOPE = 'entity' @@ -8607,23 +8617,23 @@ class IfcGeometricRepresentationSubContext_NoCoordOperation: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'HasCoordinateOperation', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'HasCoordinateOperation', INDETERMINATE)) == 0) is not False def calc_IfcGeometricRepresentationSubContext_WorldCoordinateSystem(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return getattr(parentcontext, 'WorldCoordinateSystem', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return express_getattr(parentcontext, 'WorldCoordinateSystem', INDETERMINATE) def calc_IfcGeometricRepresentationSubContext_CoordinateSpaceDimension(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return getattr(parentcontext, 'CoordinateSpaceDimension', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return express_getattr(parentcontext, 'CoordinateSpaceDimension', INDETERMINATE) def calc_IfcGeometricRepresentationSubContext_TrueNorth(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return nvl(getattr(parentcontext, 'TrueNorth', INDETERMINATE), IfcConvertDirectionInto2D(express_getitem(getattr(getattr(self, 'WorldCoordinateSystem', INDETERMINATE), 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return nvl(express_getattr(parentcontext, 'TrueNorth', INDETERMINATE), IfcConvertDirectionInto2D(express_getitem(express_getattr(express_getattr(self, 'WorldCoordinateSystem', INDETERMINATE), 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) def calc_IfcGeometricRepresentationSubContext_Precision(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return nvl(getattr(parentcontext, 'Precision', INDETERMINATE), 1) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return nvl(express_getattr(parentcontext, 'Precision', INDETERMINATE), 1) class IfcGeometricSet_ConsistentDim: SCOPE = 'entity' @@ -8632,12 +8642,12 @@ class IfcGeometricSet_ConsistentDim: @staticmethod def __call__(self): - elements = getattr(self, 'Elements', INDETERMINATE) - assert (sizeof([temp for temp in elements if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + elements = express_getattr(self, 'Elements', INDETERMINATE) + assert (sizeof([temp for temp in elements if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcGeometricSet_Dim(self): - elements = getattr(self, 'Elements', INDETERMINATE) - return getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + elements = express_getattr(self, 'Elements', INDETERMINATE) + return express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) def calc_IfcGradientCurve_Height(self): return IfcGradient(self) @@ -8649,8 +8659,8 @@ class IfcGridAxis_WR1: @staticmethod def __call__(self): - axiscurve = getattr(self, 'AxisCurve', INDETERMINATE) - assert (getattr(axiscurve, 'Dim', INDETERMINATE) == 2) is not False + axiscurve = express_getattr(self, 'AxisCurve', INDETERMINATE) + assert (express_getattr(axiscurve, 'Dim', INDETERMINATE) == 2) is not False class IfcGridAxis_WR2: SCOPE = 'entity' @@ -8659,9 +8669,9 @@ class IfcGridAxis_WR2: @staticmethod def __call__(self): - partofw = getattr(self, 'PartOfW', INDETERMINATE) - partofv = getattr(self, 'PartOfV', INDETERMINATE) - partofu = getattr(self, 'PartOfU', INDETERMINATE) + partofw = express_getattr(self, 'PartOfW', INDETERMINATE) + partofv = express_getattr(self, 'PartOfV', INDETERMINATE) + partofu = express_getattr(self, 'PartOfU', INDETERMINATE) assert (sizeof(partofu) == 1) ^ (sizeof(partofv) == 1) ^ (sizeof(partofw) == 1) is not False def calc_IfcHalfSpaceSolid_Dim(self): @@ -8674,8 +8684,8 @@ class IfcHeatExchanger_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcHeatExchanger_CorrectTypeAssigned: SCOPE = 'entity' @@ -8684,8 +8694,8 @@ class IfcHeatExchanger_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcheatexchangertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcheatexchangertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcHeatExchangerType_CorrectPredefinedType: SCOPE = 'entity' @@ -8694,8 +8704,8 @@ class IfcHeatExchangerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcHumidifier_CorrectPredefinedType: SCOPE = 'entity' @@ -8704,8 +8714,8 @@ class IfcHumidifier_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcHumidifier_CorrectTypeAssigned: SCOPE = 'entity' @@ -8714,8 +8724,8 @@ class IfcHumidifier_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifchumidifiertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifchumidifiertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcHumidifierType_CorrectPredefinedType: SCOPE = 'entity' @@ -8724,8 +8734,8 @@ class IfcHumidifierType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcIShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -8734,8 +8744,8 @@ class IfcIShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (2.0 * flangethickness < overalldepth) is not False class IfcIShapeProfileDef_ValidWebThickness: @@ -8745,8 +8755,8 @@ class IfcIShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - overallwidth = getattr(self, 'OverallWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + overallwidth = express_getattr(self, 'OverallWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < overallwidth) is not False class IfcIShapeProfileDef_ValidFilletRadius: @@ -8756,11 +8766,11 @@ class IfcIShapeProfileDef_ValidFilletRadius: @staticmethod def __call__(self): - overallwidth = getattr(self, 'OverallWidth', INDETERMINATE) - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) - filletradius = getattr(self, 'FilletRadius', INDETERMINATE) + overallwidth = express_getattr(self, 'OverallWidth', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) + filletradius = express_getattr(self, 'FilletRadius', INDETERMINATE) assert (not exists(filletradius) or (filletradius <= (overallwidth - webthickness) / 2.0 and filletradius <= (overalldepth - 2.0 * flangethickness) / 2.0)) is not False class IfcImpactProtectionDevice_CorrectPredefinedType: @@ -8770,8 +8780,8 @@ class IfcImpactProtectionDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcImpactProtectionDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -8780,8 +8790,8 @@ class IfcImpactProtectionDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcimpactprotectiondevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcimpactprotectiondevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcImpactProtectionDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -8790,8 +8800,8 @@ class IfcImpactProtectionDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcIndexedPolyCurve_Consecutive: SCOPE = 'entity' @@ -8800,7 +8810,7 @@ class IfcIndexedPolyCurve_Consecutive: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) + segments = express_getattr(self, 'Segments', INDETERMINATE) assert (not exists(segments) or IfcConsecutiveSegments(segments)) is not False class IfcInterceptor_CorrectPredefinedType: @@ -8810,8 +8820,8 @@ class IfcInterceptor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcInterceptor_CorrectTypeAssigned: SCOPE = 'entity' @@ -8820,8 +8830,8 @@ class IfcInterceptor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcinterceptortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcinterceptortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcInterceptorType_CorrectPredefinedType: SCOPE = 'entity' @@ -8830,8 +8840,8 @@ class IfcInterceptorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcIntersectionCurve_TwoPCurves: SCOPE = 'entity' @@ -8840,7 +8850,7 @@ class IfcIntersectionCurve_TwoPCurves: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False + assert (sizeof(express_getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False class IfcIntersectionCurve_DistinctSurfaces: SCOPE = 'entity' @@ -8849,7 +8859,7 @@ class IfcIntersectionCurve_DistinctSurfaces: @staticmethod def __call__(self): - assert (IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcJunctionBox_CorrectPredefinedType: SCOPE = 'entity' @@ -8858,8 +8868,8 @@ class IfcJunctionBox_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcJunctionBox_CorrectTypeAssigned: SCOPE = 'entity' @@ -8868,8 +8878,8 @@ class IfcJunctionBox_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcjunctionboxtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcjunctionboxtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcJunctionBoxType_CorrectPredefinedType: SCOPE = 'entity' @@ -8878,8 +8888,8 @@ class IfcJunctionBoxType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLShapeProfileDef_ValidThickness: SCOPE = 'entity' @@ -8888,9 +8898,9 @@ class IfcLShapeProfileDef_ValidThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - thickness = getattr(self, 'Thickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + thickness = express_getattr(self, 'Thickness', INDETERMINATE) assert (thickness < depth and (not exists(width) or thickness < width)) is not False class IfcLaborResource_CorrectPredefinedType: @@ -8900,8 +8910,8 @@ class IfcLaborResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLaborResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -8910,8 +8920,8 @@ class IfcLaborResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcLamp_CorrectPredefinedType: SCOPE = 'entity' @@ -8920,8 +8930,8 @@ class IfcLamp_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLamp_CorrectTypeAssigned: SCOPE = 'entity' @@ -8930,8 +8940,8 @@ class IfcLamp_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifclamptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifclamptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLampType_CorrectPredefinedType: SCOPE = 'entity' @@ -8940,8 +8950,8 @@ class IfcLampType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLightFixture_CorrectPredefinedType: SCOPE = 'entity' @@ -8950,8 +8960,8 @@ class IfcLightFixture_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLightFixture_CorrectTypeAssigned: SCOPE = 'entity' @@ -8960,8 +8970,8 @@ class IfcLightFixture_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifclightfixturetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifclightfixturetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLightFixtureType_CorrectPredefinedType: SCOPE = 'entity' @@ -8970,8 +8980,8 @@ class IfcLightFixtureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLine_SameDim: SCOPE = 'entity' @@ -8980,9 +8990,9 @@ class IfcLine_SameDim: @staticmethod def __call__(self): - pnt = getattr(self, 'Pnt', INDETERMINATE) - dir = getattr(self, 'Dir', INDETERMINATE) - assert (getattr(dir, 'Dim', INDETERMINATE) == getattr(pnt, 'Dim', INDETERMINATE)) is not False + pnt = express_getattr(self, 'Pnt', INDETERMINATE) + dir = express_getattr(self, 'Dir', INDETERMINATE) + assert (express_getattr(dir, 'Dim', INDETERMINATE) == express_getattr(pnt, 'Dim', INDETERMINATE)) is not False class IfcLiquidTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -8991,8 +9001,8 @@ class IfcLiquidTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLiquidTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -9001,8 +9011,8 @@ class IfcLiquidTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcliquidterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcliquidterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLiquidTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -9011,8 +9021,8 @@ class IfcLiquidTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLocalPlacement_WR21: SCOPE = 'entity' @@ -9021,8 +9031,8 @@ class IfcLocalPlacement_WR21: @staticmethod def __call__(self): - placementrelto = getattr(self, 'PlacementRelTo', INDETERMINATE) - relativeplacement = getattr(self, 'RelativePlacement', INDETERMINATE) + placementrelto = express_getattr(self, 'PlacementRelTo', INDETERMINATE) + relativeplacement = express_getattr(self, 'RelativePlacement', INDETERMINATE) assert IfcCorrectLocalPlacement(relativeplacement, placementrelto) is not False class IfcMarineFacility_CorrectPredefinedType: @@ -9032,8 +9042,8 @@ class IfcMarineFacility_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMaterialDefinitionRepresentation_OnlyStyledRepresentations: SCOPE = 'entity' @@ -9042,7 +9052,7 @@ class IfcMaterialDefinitionRepresentation_OnlyStyledRepresentations: @staticmethod def __call__(self): - representations = getattr(self, 'Representations', INDETERMINATE) + representations = express_getattr(self, 'Representations', INDETERMINATE) assert (sizeof([temp for temp in representations if not 'ifc4x3_rc2.ifcstyledrepresentation' in typeof(temp)]) == 0) is not False class IfcMaterialLayer_NormalizedPriority: @@ -9052,7 +9062,7 @@ class IfcMaterialLayer_NormalizedPriority: @staticmethod def __call__(self): - priority = getattr(self, 'Priority', INDETERMINATE) + priority = express_getattr(self, 'Priority', INDETERMINATE) assert (not exists(priority) or 0 <= priority <= 100) is not False def calc_IfcMaterialLayerSet_TotalThickness(self): @@ -9065,7 +9075,7 @@ class IfcMaterialProfile_NormalizedPriority: @staticmethod def __call__(self): - priority = getattr(self, 'Priority', INDETERMINATE) + priority = express_getattr(self, 'Priority', INDETERMINATE) assert (not exists(priority) or 0 <= priority <= 100) is not False class IfcMechanicalFastener_CorrectPredefinedType: @@ -9075,8 +9085,8 @@ class IfcMechanicalFastener_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMechanicalFastener_CorrectTypeAssigned: SCOPE = 'entity' @@ -9085,8 +9095,8 @@ class IfcMechanicalFastener_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcmechanicalfastenertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcmechanicalfastenertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMechanicalFastenerType_CorrectPredefinedType: SCOPE = 'entity' @@ -9095,8 +9105,8 @@ class IfcMechanicalFastenerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMedicalDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -9105,8 +9115,8 @@ class IfcMedicalDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMedicalDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -9115,8 +9125,8 @@ class IfcMedicalDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcmedicaldevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcmedicaldevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMedicalDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9125,8 +9135,8 @@ class IfcMedicalDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMember_CorrectPredefinedType: SCOPE = 'entity' @@ -9135,8 +9145,8 @@ class IfcMember_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMember_CorrectTypeAssigned: SCOPE = 'entity' @@ -9145,8 +9155,8 @@ class IfcMember_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcmembertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcmembertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMemberStandardCase_HasMaterialProfileSetUsage: SCOPE = 'entity' @@ -9155,7 +9165,7 @@ class IfcMemberStandardCase_HasMaterialProfileSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc2.ifcrelassociates.relatedobjects') if 'ifc4x3_rc2.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc2.ifcmaterialprofilesetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc2.ifcrelassociates.relatedobjects') if 'ifc4x3_rc2.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc2.ifcmaterialprofilesetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcMemberType_CorrectPredefinedType: SCOPE = 'entity' @@ -9164,8 +9174,8 @@ class IfcMemberType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcMirroredProfileDef_Operator(self): return IfcCartesianTransformationOperator2D(Axis1=IfcDirection(DirectionRatios=[-1.0, 0.0]), Axis2=IfcDirection(DirectionRatios=[0.0, 1.0]), LocalOrigin=IfcCartesianPoint(Coordinates=[0.0, 0.0]), Scale=1.0) @@ -9177,8 +9187,8 @@ class IfcMobileTelecommunicationsAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMobileTelecommunicationsAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -9187,8 +9197,8 @@ class IfcMobileTelecommunicationsAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcmobiletelecommunicationsappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcmobiletelecommunicationsappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMobileTelecommunicationsApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9197,8 +9207,8 @@ class IfcMobileTelecommunicationsApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMooringDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -9207,8 +9217,8 @@ class IfcMooringDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMooringDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -9217,8 +9227,8 @@ class IfcMooringDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcmooringdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcmooringdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMooringDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9227,8 +9237,8 @@ class IfcMooringDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMotorConnection_CorrectPredefinedType: SCOPE = 'entity' @@ -9237,8 +9247,8 @@ class IfcMotorConnection_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMotorConnection_CorrectTypeAssigned: SCOPE = 'entity' @@ -9247,8 +9257,8 @@ class IfcMotorConnection_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcmotorconnectiontype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcmotorconnectiontype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMotorConnectionType_CorrectPredefinedType: SCOPE = 'entity' @@ -9257,8 +9267,8 @@ class IfcMotorConnectionType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcNamedUnit_WR1: SCOPE = 'entity' @@ -9267,7 +9277,7 @@ class IfcNamedUnit_WR1: @staticmethod def __call__(self): - assert IfcCorrectDimensions(getattr(self, 'UnitType', INDETERMINATE), getattr(self, 'Dimensions', INDETERMINATE)) is not False + assert IfcCorrectDimensions(express_getattr(self, 'UnitType', INDETERMINATE), express_getattr(self, 'Dimensions', INDETERMINATE)) is not False class IfcNavigationElement_CorrectPredefinedType: SCOPE = 'entity' @@ -9276,8 +9286,8 @@ class IfcNavigationElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcNavigationElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -9286,8 +9296,8 @@ class IfcNavigationElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcnavigationelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcnavigationelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcNavigationElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -9296,8 +9306,8 @@ class IfcNavigationElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcObject_UniquePropertySetNames: SCOPE = 'entity' @@ -9306,7 +9316,7 @@ class IfcObject_UniquePropertySetNames: @staticmethod def __call__(self): - isdefinedby = getattr(self, 'IsDefinedBy', INDETERMINATE) + isdefinedby = express_getattr(self, 'IsDefinedBy', INDETERMINATE) assert (sizeof(isdefinedby) == 0 or IfcUniqueDefinitionNames(isdefinedby)) is not False class IfcObjective_WR21: @@ -9316,8 +9326,8 @@ class IfcObjective_WR21: @staticmethod def __call__(self): - objectivequalifier = getattr(self, 'ObjectiveQualifier', INDETERMINATE) - assert (objectivequalifier != getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) or (objectivequalifier == getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedQualifier', INDETERMINATE)))) is not False + objectivequalifier = express_getattr(self, 'ObjectiveQualifier', INDETERMINATE) + assert (objectivequalifier != express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) or (objectivequalifier == express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedQualifier', INDETERMINATE)))) is not False class IfcOccupant_WR31: SCOPE = 'entity' @@ -9326,8 +9336,8 @@ class IfcOccupant_WR31: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not predefinedtype == getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not predefinedtype == express_getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcOffsetCurve2D_DimIs2D: SCOPE = 'entity' @@ -9336,8 +9346,8 @@ class IfcOffsetCurve2D_DimIs2D: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - assert (getattr(basiscurve, 'Dim', INDETERMINATE) == 2) is not False + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + assert (express_getattr(basiscurve, 'Dim', INDETERMINATE) == 2) is not False class IfcOffsetCurve3D_DimIs2D: SCOPE = 'entity' @@ -9346,8 +9356,8 @@ class IfcOffsetCurve3D_DimIs2D: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - assert (getattr(basiscurve, 'Dim', INDETERMINATE) == 3) is not False + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + assert (express_getattr(basiscurve, 'Dim', INDETERMINATE) == 3) is not False class IfcOpenCrossProfileDef_CorrectProfileType: SCOPE = 'entity' @@ -9356,7 +9366,7 @@ class IfcOpenCrossProfileDef_CorrectProfileType: @staticmethod def __call__(self): - assert (getattr(self, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False class IfcOpenCrossProfileDef_CorrespondingSlopeWidths: SCOPE = 'entity' @@ -9365,8 +9375,8 @@ class IfcOpenCrossProfileDef_CorrespondingSlopeWidths: @staticmethod def __call__(self): - widths = getattr(self, 'Widths', INDETERMINATE) - slopes = getattr(self, 'Slopes', INDETERMINATE) + widths = express_getattr(self, 'Widths', INDETERMINATE) + slopes = express_getattr(self, 'Slopes', INDETERMINATE) assert (sizeof(slopes) == sizeof(widths)) is not False class IfcOpenCrossProfileDef_CorrespondingTags: @@ -9376,8 +9386,8 @@ class IfcOpenCrossProfileDef_CorrespondingTags: @staticmethod def __call__(self): - slopes = getattr(self, 'Slopes', INDETERMINATE) - tags = getattr(self, 'Tags', INDETERMINATE) + slopes = express_getattr(self, 'Slopes', INDETERMINATE) + tags = express_getattr(self, 'Tags', INDETERMINATE) assert (not exists(tags) or sizeof(tags) == sizeof(slopes) + 1) is not False class IfcOrientedEdge_EdgeElementNotOriented: @@ -9387,18 +9397,18 @@ class IfcOrientedEdge_EdgeElementNotOriented: @staticmethod def __call__(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) assert (not 'ifc4x3_rc2.ifcorientededge' in typeof(edgeelement)) is not False def calc_IfcOrientedEdge_EdgeStart(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) - orientation = getattr(self, 'Orientation', INDETERMINATE) - return IfcBooleanChoose(orientation, getattr(edgeelement, 'EdgeStart', INDETERMINATE), getattr(edgeelement, 'EdgeEnd', INDETERMINATE)) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return IfcBooleanChoose(orientation, express_getattr(edgeelement, 'EdgeStart', INDETERMINATE), express_getattr(edgeelement, 'EdgeEnd', INDETERMINATE)) def calc_IfcOrientedEdge_EdgeEnd(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) - orientation = getattr(self, 'Orientation', INDETERMINATE) - return IfcBooleanChoose(orientation, getattr(edgeelement, 'EdgeEnd', INDETERMINATE), getattr(edgeelement, 'EdgeStart', INDETERMINATE)) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return IfcBooleanChoose(orientation, express_getattr(edgeelement, 'EdgeEnd', INDETERMINATE), express_getattr(edgeelement, 'EdgeStart', INDETERMINATE)) class IfcOutlet_CorrectPredefinedType: SCOPE = 'entity' @@ -9407,8 +9417,8 @@ class IfcOutlet_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcOutlet_CorrectTypeAssigned: SCOPE = 'entity' @@ -9417,8 +9427,8 @@ class IfcOutlet_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcoutlettype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcoutlettype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcOutletType_CorrectPredefinedType: SCOPE = 'entity' @@ -9427,8 +9437,8 @@ class IfcOutletType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcOwnerHistory_CorrectChangeAction: SCOPE = 'entity' @@ -9437,9 +9447,9 @@ class IfcOwnerHistory_CorrectChangeAction: @staticmethod def __call__(self): - changeaction = getattr(self, 'ChangeAction', INDETERMINATE) - lastmodifieddate = getattr(self, 'LastModifiedDate', INDETERMINATE) - assert (exists(lastmodifieddate) or (not exists(lastmodifieddate) and (not exists(changeaction))) or (not exists(lastmodifieddate) and exists(changeaction) and (changeaction == getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) or changeaction == getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE)))) is not False + changeaction = express_getattr(self, 'ChangeAction', INDETERMINATE) + lastmodifieddate = express_getattr(self, 'LastModifiedDate', INDETERMINATE) + assert (exists(lastmodifieddate) or (not exists(lastmodifieddate) and (not exists(changeaction))) or (not exists(lastmodifieddate) and exists(changeaction) and (changeaction == express_getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) or changeaction == express_getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE)))) is not False class IfcPath_IsContinuous: SCOPE = 'entity' @@ -9457,8 +9467,8 @@ class IfcPcurve_DimIs2D: @staticmethod def __call__(self): - referencecurve = getattr(self, 'ReferenceCurve', INDETERMINATE) - assert (getattr(referencecurve, 'Dim', INDETERMINATE) == 2) is not False + referencecurve = express_getattr(self, 'ReferenceCurve', INDETERMINATE) + assert (express_getattr(referencecurve, 'Dim', INDETERMINATE) == 2) is not False class IfcPerson_IdentifiablePerson: SCOPE = 'entity' @@ -9467,9 +9477,9 @@ class IfcPerson_IdentifiablePerson: @staticmethod def __call__(self): - identification = getattr(self, 'Identification', INDETERMINATE) - familyname = getattr(self, 'FamilyName', INDETERMINATE) - givenname = getattr(self, 'GivenName', INDETERMINATE) + identification = express_getattr(self, 'Identification', INDETERMINATE) + familyname = express_getattr(self, 'FamilyName', INDETERMINATE) + givenname = express_getattr(self, 'GivenName', INDETERMINATE) assert (exists(identification) or exists(familyname) or exists(givenname)) is not False class IfcPerson_ValidSetOfNames: @@ -9479,9 +9489,9 @@ class IfcPerson_ValidSetOfNames: @staticmethod def __call__(self): - familyname = getattr(self, 'FamilyName', INDETERMINATE) - givenname = getattr(self, 'GivenName', INDETERMINATE) - middlenames = getattr(self, 'MiddleNames', INDETERMINATE) + familyname = express_getattr(self, 'FamilyName', INDETERMINATE) + givenname = express_getattr(self, 'GivenName', INDETERMINATE) + middlenames = express_getattr(self, 'MiddleNames', INDETERMINATE) assert (not exists(middlenames) or exists(familyname) or exists(givenname)) is not False class IfcPhysicalComplexQuantity_NoSelfReference: @@ -9491,7 +9501,7 @@ class IfcPhysicalComplexQuantity_NoSelfReference: @staticmethod def __call__(self): - hasquantities = getattr(self, 'HasQuantities', INDETERMINATE) + hasquantities = express_getattr(self, 'HasQuantities', INDETERMINATE) assert (sizeof([temp for temp in hasquantities if self == temp]) == 0) is not False class IfcPhysicalComplexQuantity_UniqueQuantityNames: @@ -9501,7 +9511,7 @@ class IfcPhysicalComplexQuantity_UniqueQuantityNames: @staticmethod def __call__(self): - hasquantities = getattr(self, 'HasQuantities', INDETERMINATE) + hasquantities = express_getattr(self, 'HasQuantities', INDETERMINATE) assert IfcUniqueQuantityNames(hasquantities) is not False class IfcPile_CorrectPredefinedType: @@ -9511,8 +9521,8 @@ class IfcPile_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPile_CorrectTypeAssigned: SCOPE = 'entity' @@ -9521,8 +9531,8 @@ class IfcPile_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcpiletype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcpiletype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPileType_CorrectPredefinedType: SCOPE = 'entity' @@ -9531,8 +9541,8 @@ class IfcPileType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPipeFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -9541,8 +9551,8 @@ class IfcPipeFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPipeFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -9551,8 +9561,8 @@ class IfcPipeFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcpipefittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcpipefittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPipeFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -9561,8 +9571,8 @@ class IfcPipeFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPipeSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -9571,8 +9581,8 @@ class IfcPipeSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPipeSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -9581,8 +9591,8 @@ class IfcPipeSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcpipesegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcpipesegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPipeSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -9591,8 +9601,8 @@ class IfcPipeSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPixelTexture_MinPixelInS: SCOPE = 'entity' @@ -9601,7 +9611,7 @@ class IfcPixelTexture_MinPixelInS: @staticmethod def __call__(self): - width = getattr(self, 'Width', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) assert (width >= 1) is not False class IfcPixelTexture_MinPixelInT: @@ -9611,7 +9621,7 @@ class IfcPixelTexture_MinPixelInT: @staticmethod def __call__(self): - height = getattr(self, 'Height', INDETERMINATE) + height = express_getattr(self, 'Height', INDETERMINATE) assert (height >= 1) is not False class IfcPixelTexture_NumberOfColours: @@ -9621,7 +9631,7 @@ class IfcPixelTexture_NumberOfColours: @staticmethod def __call__(self): - colourcomponents = getattr(self, 'ColourComponents', INDETERMINATE) + colourcomponents = express_getattr(self, 'ColourComponents', INDETERMINATE) assert (1 <= colourcomponents <= 4) is not False class IfcPixelTexture_SizeOfPixelList: @@ -9631,9 +9641,9 @@ class IfcPixelTexture_SizeOfPixelList: @staticmethod def __call__(self): - width = getattr(self, 'Width', INDETERMINATE) - height = getattr(self, 'Height', INDETERMINATE) - pixel = getattr(self, 'Pixel', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + height = express_getattr(self, 'Height', INDETERMINATE) + pixel = express_getattr(self, 'Pixel', INDETERMINATE) assert (sizeof(pixel) == width * height) is not False class IfcPixelTexture_PixelAsByteAndSameLength: @@ -9643,12 +9653,12 @@ class IfcPixelTexture_PixelAsByteAndSameLength: @staticmethod def __call__(self): - pixel = getattr(self, 'Pixel', INDETERMINATE) + pixel = express_getattr(self, 'Pixel', INDETERMINATE) assert (sizeof([temp for temp in pixel if blength(temp) % 8 == 0 and blength(temp) == blength(express_getitem(pixel, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == sizeof(pixel)) is not False def calc_IfcPlacement_Dim(self): - location = getattr(self, 'Location', INDETERMINATE) - return getattr(location, 'Dim', INDETERMINATE) + location = express_getattr(self, 'Location', INDETERMINATE) + return express_getattr(location, 'Dim', INDETERMINATE) class IfcPlate_CorrectPredefinedType: SCOPE = 'entity' @@ -9657,8 +9667,8 @@ class IfcPlate_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPlate_CorrectTypeAssigned: SCOPE = 'entity' @@ -9667,8 +9677,8 @@ class IfcPlate_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcplatetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcplatetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPlateStandardCase_HasMaterialLayerSetUsage: SCOPE = 'entity' @@ -9677,7 +9687,7 @@ class IfcPlateStandardCase_HasMaterialLayerSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc2.ifcrelassociates.relatedobjects') if 'ifc4x3_rc2.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc2.ifcmateriallayersetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc2.ifcrelassociates.relatedobjects') if 'ifc4x3_rc2.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc2.ifcmateriallayersetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcPlateType_CorrectPredefinedType: SCOPE = 'entity' @@ -9686,20 +9696,20 @@ class IfcPlateType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcPointByDistanceExpression_Dim(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - return getattr(basiscurve, 'Dim', INDETERMINATE) + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + return express_getattr(basiscurve, 'Dim', INDETERMINATE) def calc_IfcPointOnCurve_Dim(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - return getattr(basiscurve, 'Dim', INDETERMINATE) + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + return express_getattr(basiscurve, 'Dim', INDETERMINATE) def calc_IfcPointOnSurface_Dim(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) - return getattr(basissurface, 'Dim', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) + return express_getattr(basissurface, 'Dim', INDETERMINATE) class IfcPolyLoop_AllPointsSameDim: SCOPE = 'entity' @@ -9708,8 +9718,8 @@ class IfcPolyLoop_AllPointsSameDim: @staticmethod def __call__(self): - polygon = getattr(self, 'Polygon', INDETERMINATE) - assert (sizeof([temp for temp in polygon if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(polygon, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + polygon = express_getattr(self, 'Polygon', INDETERMINATE) + assert (sizeof([temp for temp in polygon if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(polygon, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False class IfcPolygonalBoundedHalfSpace_BoundaryDim: SCOPE = 'entity' @@ -9718,8 +9728,8 @@ class IfcPolygonalBoundedHalfSpace_BoundaryDim: @staticmethod def __call__(self): - polygonalboundary = getattr(self, 'PolygonalBoundary', INDETERMINATE) - assert (getattr(polygonalboundary, 'Dim', INDETERMINATE) == 2) is not False + polygonalboundary = express_getattr(self, 'PolygonalBoundary', INDETERMINATE) + assert (express_getattr(polygonalboundary, 'Dim', INDETERMINATE) == 2) is not False class IfcPolygonalBoundedHalfSpace_BoundaryType: SCOPE = 'entity' @@ -9728,7 +9738,7 @@ class IfcPolygonalBoundedHalfSpace_BoundaryType: @staticmethod def __call__(self): - polygonalboundary = getattr(self, 'PolygonalBoundary', INDETERMINATE) + polygonalboundary = express_getattr(self, 'PolygonalBoundary', INDETERMINATE) assert (sizeof(typeof(polygonalboundary) * ['ifc4x3_rc2.ifcpolyline', 'ifc4x3_rc2.ifccompositecurve']) == 1) is not False class IfcPolyline_SameDim: @@ -9738,8 +9748,8 @@ class IfcPolyline_SameDim: @staticmethod def __call__(self): - points = getattr(self, 'Points', INDETERMINATE) - assert (sizeof([temp for temp in points if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(points, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + points = express_getattr(self, 'Points', INDETERMINATE) + assert (sizeof([temp for temp in points if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(points, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False class IfcPositioningElement_HasPlacement: SCOPE = 'entity' @@ -9748,7 +9758,7 @@ class IfcPositioningElement_HasPlacement: @staticmethod def __call__(self): - assert exists(getattr(self, 'ObjectPlacement', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'ObjectPlacement', INDETERMINATE)) is not False class IfcPostalAddress_WR1: SCOPE = 'entity' @@ -9757,13 +9767,13 @@ class IfcPostalAddress_WR1: @staticmethod def __call__(self): - internallocation = getattr(self, 'InternalLocation', INDETERMINATE) - addresslines = getattr(self, 'AddressLines', INDETERMINATE) - postalbox = getattr(self, 'PostalBox', INDETERMINATE) - town = getattr(self, 'Town', INDETERMINATE) - region = getattr(self, 'Region', INDETERMINATE) - postalcode = getattr(self, 'PostalCode', INDETERMINATE) - country = getattr(self, 'Country', INDETERMINATE) + internallocation = express_getattr(self, 'InternalLocation', INDETERMINATE) + addresslines = express_getattr(self, 'AddressLines', INDETERMINATE) + postalbox = express_getattr(self, 'PostalBox', INDETERMINATE) + town = express_getattr(self, 'Town', INDETERMINATE) + region = express_getattr(self, 'Region', INDETERMINATE) + postalcode = express_getattr(self, 'PostalCode', INDETERMINATE) + country = express_getattr(self, 'Country', INDETERMINATE) assert (exists(internallocation) or exists(addresslines) or exists(postalbox) or exists(postalcode) or exists(town) or exists(region) or exists(country)) is not False class IfcPresentationLayerAssignment_ApplicableItems: @@ -9773,7 +9783,7 @@ class IfcPresentationLayerAssignment_ApplicableItems: @staticmethod def __call__(self): - assigneditems = getattr(self, 'AssignedItems', INDETERMINATE) + assigneditems = express_getattr(self, 'AssignedItems', INDETERMINATE) assert (sizeof([temp for temp in assigneditems if sizeof(typeof(temp) * ['ifc4x3_rc2.ifcshaperepresentation', 'ifc4x3_rc2.ifcgeometricrepresentationitem', 'ifc4x3_rc2.ifcmappeditem']) == 1]) == sizeof(assigneditems)) is not False class IfcPresentationLayerWithStyle_ApplicableOnlyToItems: @@ -9783,7 +9793,7 @@ class IfcPresentationLayerWithStyle_ApplicableOnlyToItems: @staticmethod def __call__(self): - assigneditems = getattr(self, 'AssignedItems', INDETERMINATE) + assigneditems = express_getattr(self, 'AssignedItems', INDETERMINATE) assert (sizeof([temp for temp in assigneditems if sizeof(typeof(temp) * ['ifc4x3_rc2.ifcgeometricrepresentationitem', 'ifc4x3_rc2.ifcmappeditem']) >= 1]) == sizeof(assigneditems)) is not False class IfcProcedure_HasName: @@ -9793,7 +9803,7 @@ class IfcProcedure_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcProcedure_CorrectPredefinedType: SCOPE = 'entity' @@ -9802,8 +9812,8 @@ class IfcProcedure_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProcedureType_CorrectPredefinedType: SCOPE = 'entity' @@ -9812,8 +9822,8 @@ class IfcProcedureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcProduct_PlacementForShapeRepresentation: SCOPE = 'entity' @@ -9822,9 +9832,9 @@ class IfcProduct_PlacementForShapeRepresentation: @staticmethod def __call__(self): - objectplacement = getattr(self, 'ObjectPlacement', INDETERMINATE) - representation = getattr(self, 'Representation', INDETERMINATE) - assert (exists(representation) and exists(objectplacement) or (exists(representation) and sizeof([temp for temp in getattr(representation, 'Representations', INDETERMINATE) if 'ifc4x3_rc2.ifcshaperepresentation' in typeof(temp)]) == 0) or (not exists(representation))) is not False + objectplacement = express_getattr(self, 'ObjectPlacement', INDETERMINATE) + representation = express_getattr(self, 'Representation', INDETERMINATE) + assert (exists(representation) and exists(objectplacement) or (exists(representation) and sizeof([temp for temp in express_getattr(representation, 'Representations', INDETERMINATE) if 'ifc4x3_rc2.ifcshaperepresentation' in typeof(temp)]) == 0) or (not exists(representation))) is not False class IfcProductDefinitionShape_OnlyShapeModel: SCOPE = 'entity' @@ -9833,7 +9843,7 @@ class IfcProductDefinitionShape_OnlyShapeModel: @staticmethod def __call__(self): - representations = getattr(self, 'Representations', INDETERMINATE) + representations = express_getattr(self, 'Representations', INDETERMINATE) assert (sizeof([temp for temp in representations if not 'ifc4x3_rc2.ifcshapemodel' in typeof(temp)]) == 0) is not False class IfcProject_HasName: @@ -9843,7 +9853,7 @@ class IfcProject_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcProject_CorrectContext: SCOPE = 'entity' @@ -9852,7 +9862,7 @@ class IfcProject_CorrectContext: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'RepresentationContexts', INDETERMINATE)) or sizeof([temp for temp in getattr(self, 'RepresentationContexts', INDETERMINATE) if 'ifc4x3_rc2.ifcgeometricrepresentationsubcontext' in typeof(temp)]) == 0) is not False + assert (not exists(express_getattr(self, 'RepresentationContexts', INDETERMINATE)) or sizeof([temp for temp in express_getattr(self, 'RepresentationContexts', INDETERMINATE) if 'ifc4x3_rc2.ifcgeometricrepresentationsubcontext' in typeof(temp)]) == 0) is not False class IfcProject_NoDecomposition: SCOPE = 'entity' @@ -9861,7 +9871,7 @@ class IfcProject_NoDecomposition: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'Decomposes', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'Decomposes', INDETERMINATE)) == 0) is not False class IfcProjectedCRS_IsLengthUnit: SCOPE = 'entity' @@ -9870,8 +9880,8 @@ class IfcProjectedCRS_IsLengthUnit: @staticmethod def __call__(self): - mapunit = getattr(self, 'MapUnit', INDETERMINATE) - assert (not exists(mapunit) or getattr(mapunit, 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False + mapunit = express_getattr(self, 'MapUnit', INDETERMINATE) + assert (not exists(mapunit) or express_getattr(mapunit, 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False class IfcPropertyBoundedValue_SameUnitUpperLower: SCOPE = 'entity' @@ -9880,8 +9890,8 @@ class IfcPropertyBoundedValue_SameUnitUpperLower: @staticmethod def __call__(self): - upperboundvalue = getattr(self, 'UpperBoundValue', INDETERMINATE) - lowerboundvalue = getattr(self, 'LowerBoundValue', INDETERMINATE) + upperboundvalue = express_getattr(self, 'UpperBoundValue', INDETERMINATE) + lowerboundvalue = express_getattr(self, 'LowerBoundValue', INDETERMINATE) assert (not exists(upperboundvalue) or not exists(lowerboundvalue) or typeof(upperboundvalue) == typeof(lowerboundvalue)) is not False class IfcPropertyBoundedValue_SameUnitUpperSet: @@ -9891,8 +9901,8 @@ class IfcPropertyBoundedValue_SameUnitUpperSet: @staticmethod def __call__(self): - upperboundvalue = getattr(self, 'UpperBoundValue', INDETERMINATE) - setpointvalue = getattr(self, 'SetPointValue', INDETERMINATE) + upperboundvalue = express_getattr(self, 'UpperBoundValue', INDETERMINATE) + setpointvalue = express_getattr(self, 'SetPointValue', INDETERMINATE) assert (not exists(upperboundvalue) or not exists(setpointvalue) or typeof(upperboundvalue) == typeof(setpointvalue)) is not False class IfcPropertyBoundedValue_SameUnitLowerSet: @@ -9902,8 +9912,8 @@ class IfcPropertyBoundedValue_SameUnitLowerSet: @staticmethod def __call__(self): - lowerboundvalue = getattr(self, 'LowerBoundValue', INDETERMINATE) - setpointvalue = getattr(self, 'SetPointValue', INDETERMINATE) + lowerboundvalue = express_getattr(self, 'LowerBoundValue', INDETERMINATE) + setpointvalue = express_getattr(self, 'SetPointValue', INDETERMINATE) assert (not exists(lowerboundvalue) or not exists(setpointvalue) or typeof(lowerboundvalue) == typeof(setpointvalue)) is not False class IfcPropertyDependencyRelationship_NoSelfReference: @@ -9913,8 +9923,8 @@ class IfcPropertyDependencyRelationship_NoSelfReference: @staticmethod def __call__(self): - dependingproperty = getattr(self, 'DependingProperty', INDETERMINATE) - dependantproperty = getattr(self, 'DependantProperty', INDETERMINATE) + dependingproperty = express_getattr(self, 'DependingProperty', INDETERMINATE) + dependantproperty = express_getattr(self, 'DependantProperty', INDETERMINATE) assert (dependingproperty != dependantproperty) is not False class IfcPropertyEnumeratedValue_WR21: @@ -9924,9 +9934,9 @@ class IfcPropertyEnumeratedValue_WR21: @staticmethod def __call__(self): - enumerationvalues = getattr(self, 'EnumerationValues', INDETERMINATE) - enumerationreference = getattr(self, 'EnumerationReference', INDETERMINATE) - assert (not exists(enumerationreference) or not exists(enumerationvalues) or sizeof([temp for temp in enumerationvalues if temp in getattr(enumerationreference, 'EnumerationValues', INDETERMINATE)]) == sizeof(enumerationvalues)) is not False + enumerationvalues = express_getattr(self, 'EnumerationValues', INDETERMINATE) + enumerationreference = express_getattr(self, 'EnumerationReference', INDETERMINATE) + assert (not exists(enumerationreference) or not exists(enumerationvalues) or sizeof([temp for temp in enumerationvalues if temp in express_getattr(enumerationreference, 'EnumerationValues', INDETERMINATE)]) == sizeof(enumerationvalues)) is not False class IfcPropertyEnumeration_WR01: SCOPE = 'entity' @@ -9935,7 +9945,7 @@ class IfcPropertyEnumeration_WR01: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'EnumerationValues', INDETERMINATE) if not typeof(express_getitem(getattr(self, 'EnumerationValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'EnumerationValues', INDETERMINATE) if not typeof(express_getitem(express_getattr(self, 'EnumerationValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False class IfcPropertyListValue_WR31: SCOPE = 'entity' @@ -9944,7 +9954,7 @@ class IfcPropertyListValue_WR31: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'ListValues', INDETERMINATE) if not typeof(express_getitem(getattr(self, 'ListValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'ListValues', INDETERMINATE) if not typeof(express_getitem(express_getattr(self, 'ListValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False class IfcPropertySet_ExistsName: SCOPE = 'entity' @@ -9953,7 +9963,7 @@ class IfcPropertySet_ExistsName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPropertySet_UniquePropertyNames: SCOPE = 'entity' @@ -9962,7 +9972,7 @@ class IfcPropertySet_UniquePropertyNames: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert IfcUniquePropertyName(hasproperties) is not False class IfcPropertySetTemplate_ExistsName: @@ -9972,7 +9982,7 @@ class IfcPropertySetTemplate_ExistsName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPropertySetTemplate_UniquePropertyNames: SCOPE = 'entity' @@ -9981,7 +9991,7 @@ class IfcPropertySetTemplate_UniquePropertyNames: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert IfcUniquePropertyTemplateNames(haspropertytemplates) is not False class IfcPropertyTableValue_WR21: @@ -9991,8 +10001,8 @@ class IfcPropertyTableValue_WR21: @staticmethod def __call__(self): - definingvalues = getattr(self, 'DefiningValues', INDETERMINATE) - definedvalues = getattr(self, 'DefinedValues', INDETERMINATE) + definingvalues = express_getattr(self, 'DefiningValues', INDETERMINATE) + definedvalues = express_getattr(self, 'DefinedValues', INDETERMINATE) assert (not exists(definingvalues) and (not exists(definedvalues)) or sizeof(definingvalues) == sizeof(definedvalues)) is not False class IfcPropertyTableValue_WR22: @@ -10002,8 +10012,8 @@ class IfcPropertyTableValue_WR22: @staticmethod def __call__(self): - definingvalues = getattr(self, 'DefiningValues', INDETERMINATE) - assert (not exists(definingvalues) or sizeof([temp for temp in getattr(self, 'DefiningValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(getattr(self, 'DefiningValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False + definingvalues = express_getattr(self, 'DefiningValues', INDETERMINATE) + assert (not exists(definingvalues) or sizeof([temp for temp in express_getattr(self, 'DefiningValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(express_getattr(self, 'DefiningValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False class IfcPropertyTableValue_WR23: SCOPE = 'entity' @@ -10012,8 +10022,8 @@ class IfcPropertyTableValue_WR23: @staticmethod def __call__(self): - definedvalues = getattr(self, 'DefinedValues', INDETERMINATE) - assert (not exists(definedvalues) or sizeof([temp for temp in getattr(self, 'DefinedValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(getattr(self, 'DefinedValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False + definedvalues = express_getattr(self, 'DefinedValues', INDETERMINATE) + assert (not exists(definedvalues) or sizeof([temp for temp in express_getattr(self, 'DefinedValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(express_getattr(self, 'DefinedValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False class IfcProtectiveDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -10022,8 +10032,8 @@ class IfcProtectiveDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProtectiveDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -10032,8 +10042,8 @@ class IfcProtectiveDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcprotectivedevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcprotectivedevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcProtectiveDeviceTrippingUnit_CorrectPredefinedType: SCOPE = 'entity' @@ -10042,8 +10052,8 @@ class IfcProtectiveDeviceTrippingUnit_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProtectiveDeviceTrippingUnit_CorrectTypeAssigned: SCOPE = 'entity' @@ -10052,8 +10062,8 @@ class IfcProtectiveDeviceTrippingUnit_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcprotectivedevicetrippingunittype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcprotectivedevicetrippingunittype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcProtectiveDeviceTrippingUnitType_CorrectPredefinedType: SCOPE = 'entity' @@ -10062,8 +10072,8 @@ class IfcProtectiveDeviceTrippingUnitType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcProtectiveDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -10072,8 +10082,8 @@ class IfcProtectiveDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcProxy_WR1: SCOPE = 'entity' @@ -10082,7 +10092,7 @@ class IfcProxy_WR1: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPump_CorrectPredefinedType: SCOPE = 'entity' @@ -10091,8 +10101,8 @@ class IfcPump_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPump_CorrectTypeAssigned: SCOPE = 'entity' @@ -10101,8 +10111,8 @@ class IfcPump_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcpumptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcpumptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPumpType_CorrectPredefinedType: SCOPE = 'entity' @@ -10111,8 +10121,8 @@ class IfcPumpType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcQuantityArea_WR21: SCOPE = 'entity' @@ -10121,7 +10131,7 @@ class IfcQuantityArea_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE)) is not False class IfcQuantityArea_WR22: SCOPE = 'entity' @@ -10130,7 +10140,7 @@ class IfcQuantityArea_WR22: @staticmethod def __call__(self): - areavalue = getattr(self, 'AreaValue', INDETERMINATE) + areavalue = express_getattr(self, 'AreaValue', INDETERMINATE) assert (areavalue >= 0.0) is not False class IfcQuantityCount_WR21: @@ -10140,7 +10150,7 @@ class IfcQuantityCount_WR21: @staticmethod def __call__(self): - countvalue = getattr(self, 'CountValue', INDETERMINATE) + countvalue = express_getattr(self, 'CountValue', INDETERMINATE) assert (countvalue >= 0.0) is not False class IfcQuantityLength_WR21: @@ -10150,7 +10160,7 @@ class IfcQuantityLength_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False class IfcQuantityLength_WR22: SCOPE = 'entity' @@ -10159,7 +10169,7 @@ class IfcQuantityLength_WR22: @staticmethod def __call__(self): - lengthvalue = getattr(self, 'LengthValue', INDETERMINATE) + lengthvalue = express_getattr(self, 'LengthValue', INDETERMINATE) assert (lengthvalue >= 0.0) is not False class IfcQuantityTime_WR21: @@ -10169,7 +10179,7 @@ class IfcQuantityTime_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE)) is not False class IfcQuantityTime_WR22: SCOPE = 'entity' @@ -10178,7 +10188,7 @@ class IfcQuantityTime_WR22: @staticmethod def __call__(self): - timevalue = getattr(self, 'TimeValue', INDETERMINATE) + timevalue = express_getattr(self, 'TimeValue', INDETERMINATE) assert (timevalue >= 0.0) is not False class IfcQuantityVolume_WR21: @@ -10188,7 +10198,7 @@ class IfcQuantityVolume_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE)) is not False class IfcQuantityVolume_WR22: SCOPE = 'entity' @@ -10197,7 +10207,7 @@ class IfcQuantityVolume_WR22: @staticmethod def __call__(self): - volumevalue = getattr(self, 'VolumeValue', INDETERMINATE) + volumevalue = express_getattr(self, 'VolumeValue', INDETERMINATE) assert (volumevalue >= 0.0) is not False class IfcQuantityWeight_WR21: @@ -10207,7 +10217,7 @@ class IfcQuantityWeight_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE)) is not False class IfcQuantityWeight_WR22: SCOPE = 'entity' @@ -10216,7 +10226,7 @@ class IfcQuantityWeight_WR22: @staticmethod def __call__(self): - weightvalue = getattr(self, 'WeightValue', INDETERMINATE) + weightvalue = express_getattr(self, 'WeightValue', INDETERMINATE) assert (weightvalue >= 0.0) is not False class IfcRail_CorrectPredefinedType: @@ -10226,8 +10236,8 @@ class IfcRail_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRail_CorrectTypeAssigned: SCOPE = 'entity' @@ -10236,8 +10246,8 @@ class IfcRail_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcrailtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcrailtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRailType_CorrectPredefinedType: SCOPE = 'entity' @@ -10246,8 +10256,8 @@ class IfcRailType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRailing_CorrectPredefinedType: SCOPE = 'entity' @@ -10256,8 +10266,8 @@ class IfcRailing_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRailing_CorrectTypeAssigned: SCOPE = 'entity' @@ -10266,8 +10276,8 @@ class IfcRailing_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcrailingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcrailingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRailingType_CorrectPredefinedType: SCOPE = 'entity' @@ -10276,8 +10286,8 @@ class IfcRailingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRamp_CorrectPredefinedType: SCOPE = 'entity' @@ -10286,8 +10296,8 @@ class IfcRamp_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRamp_CorrectTypeAssigned: SCOPE = 'entity' @@ -10296,8 +10306,8 @@ class IfcRamp_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcramptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcramptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRampFlight_CorrectPredefinedType: SCOPE = 'entity' @@ -10306,8 +10316,8 @@ class IfcRampFlight_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRampFlight_CorrectTypeAssigned: SCOPE = 'entity' @@ -10316,8 +10326,8 @@ class IfcRampFlight_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcrampflighttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcrampflighttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRampFlightType_CorrectPredefinedType: SCOPE = 'entity' @@ -10326,8 +10336,8 @@ class IfcRampFlightType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRampType_CorrectPredefinedType: SCOPE = 'entity' @@ -10336,8 +10346,8 @@ class IfcRampType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRationalBSplineCurveWithKnots_SameNumOfWeightsAndPoints: SCOPE = 'entity' @@ -10346,8 +10356,8 @@ class IfcRationalBSplineCurveWithKnots_SameNumOfWeightsAndPoints: @staticmethod def __call__(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - assert (sizeof(weightsdata) == sizeof(getattr(self, 'ControlPointsList', INDETERMINATE))) is not False + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + assert (sizeof(weightsdata) == sizeof(express_getattr(self, 'ControlPointsList', INDETERMINATE))) is not False class IfcRationalBSplineCurveWithKnots_WeightsGreaterZero: SCOPE = 'entity' @@ -10359,8 +10369,8 @@ class IfcRationalBSplineCurveWithKnots_WeightsGreaterZero: assert IfcCurveWeightsPositive(self) is not False def calc_IfcRationalBSplineCurveWithKnots_Weights(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - return IfcListToArray(weightsdata, 0, getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE)) + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + return IfcListToArray(weightsdata, 0, express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE)) class IfcRationalBSplineSurfaceWithKnots_CorrespondingWeightsDataLists: SCOPE = 'entity' @@ -10369,8 +10379,8 @@ class IfcRationalBSplineSurfaceWithKnots_CorrespondingWeightsDataLists: @staticmethod def __call__(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - assert (sizeof(weightsdata) == sizeof(getattr(self, 'ControlPointsList', INDETERMINATE)) and sizeof(express_getitem(weightsdata, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == sizeof(express_getitem(getattr(self, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + assert (sizeof(weightsdata) == sizeof(express_getattr(self, 'ControlPointsList', INDETERMINATE)) and sizeof(express_getitem(weightsdata, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == sizeof(express_getitem(express_getattr(self, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcRationalBSplineSurfaceWithKnots_WeightValuesGreaterZero: SCOPE = 'entity' @@ -10382,9 +10392,9 @@ class IfcRationalBSplineSurfaceWithKnots_WeightValuesGreaterZero: assert IfcSurfaceWeightsPositive(self) is not False def calc_IfcRationalBSplineSurfaceWithKnots_Weights(self): - uupper = getattr(self, 'UUpper', INDETERMINATE) - vupper = getattr(self, 'VUpper', INDETERMINATE) - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) + uupper = express_getattr(self, 'UUpper', INDETERMINATE) + vupper = express_getattr(self, 'VUpper', INDETERMINATE) + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) return IfcMakeArrayOfArray(weightsdata, 0, uupper, 0, vupper) class IfcRectangleHollowProfileDef_ValidWallThickness: @@ -10394,8 +10404,8 @@ class IfcRectangleHollowProfileDef_ValidWallThickness: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - assert (wallthickness < getattr(self, 'XDim', INDETERMINATE) / 2.0 and wallthickness < getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + assert (wallthickness < express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and wallthickness < express_getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False class IfcRectangleHollowProfileDef_ValidInnerRadius: SCOPE = 'entity' @@ -10404,9 +10414,9 @@ class IfcRectangleHollowProfileDef_ValidInnerRadius: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - innerfilletradius = getattr(self, 'InnerFilletRadius', INDETERMINATE) - assert (not exists(innerfilletradius) or (innerfilletradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 - wallthickness and innerfilletradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0 - wallthickness)) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + innerfilletradius = express_getattr(self, 'InnerFilletRadius', INDETERMINATE) + assert (not exists(innerfilletradius) or (innerfilletradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 - wallthickness and innerfilletradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0 - wallthickness)) is not False class IfcRectangleHollowProfileDef_ValidOuterRadius: SCOPE = 'entity' @@ -10415,8 +10425,8 @@ class IfcRectangleHollowProfileDef_ValidOuterRadius: @staticmethod def __call__(self): - outerfilletradius = getattr(self, 'OuterFilletRadius', INDETERMINATE) - assert (not exists(outerfilletradius) or (outerfilletradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 and outerfilletradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0)) is not False + outerfilletradius = express_getattr(self, 'OuterFilletRadius', INDETERMINATE) + assert (not exists(outerfilletradius) or (outerfilletradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and outerfilletradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0)) is not False class IfcRectangularTrimmedSurface_U1AndU2Different: SCOPE = 'entity' @@ -10425,8 +10435,8 @@ class IfcRectangularTrimmedSurface_U1AndU2Different: @staticmethod def __call__(self): - u1 = getattr(self, 'U1', INDETERMINATE) - u2 = getattr(self, 'U2', INDETERMINATE) + u1 = express_getattr(self, 'U1', INDETERMINATE) + u2 = express_getattr(self, 'U2', INDETERMINATE) assert (u1 != u2) is not False class IfcRectangularTrimmedSurface_V1AndV2Different: @@ -10436,8 +10446,8 @@ class IfcRectangularTrimmedSurface_V1AndV2Different: @staticmethod def __call__(self): - v1 = getattr(self, 'V1', INDETERMINATE) - v2 = getattr(self, 'V2', INDETERMINATE) + v1 = express_getattr(self, 'V1', INDETERMINATE) + v2 = express_getattr(self, 'V2', INDETERMINATE) assert (v1 != v2) is not False class IfcRectangularTrimmedSurface_UsenseCompatible: @@ -10447,10 +10457,10 @@ class IfcRectangularTrimmedSurface_UsenseCompatible: @staticmethod def __call__(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) - u1 = getattr(self, 'U1', INDETERMINATE) - u2 = getattr(self, 'U2', INDETERMINATE) - usense = getattr(self, 'Usense', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) + u1 = express_getattr(self, 'U1', INDETERMINATE) + u2 = express_getattr(self, 'U2', INDETERMINATE) + usense = express_getattr(self, 'Usense', INDETERMINATE) assert ('ifc4x3_rc2.ifcelementarysurface' in typeof(basissurface) and (not 'ifc4x3_rc2.ifcplane' in typeof(basissurface)) or 'ifc4x3_rc2.ifcsurfaceofrevolution' in typeof(basissurface) or usense == (u2 > u1)) is not False class IfcRectangularTrimmedSurface_VsenseCompatible: @@ -10460,9 +10470,9 @@ class IfcRectangularTrimmedSurface_VsenseCompatible: @staticmethod def __call__(self): - v1 = getattr(self, 'V1', INDETERMINATE) - v2 = getattr(self, 'V2', INDETERMINATE) - vsense = getattr(self, 'Vsense', INDETERMINATE) + v1 = express_getattr(self, 'V1', INDETERMINATE) + v2 = express_getattr(self, 'V2', INDETERMINATE) + vsense = express_getattr(self, 'Vsense', INDETERMINATE) assert (vsense == (v2 > v1)) is not False class IfcReinforcedSoil_CorrectPredefinedType: @@ -10472,8 +10482,8 @@ class IfcReinforcedSoil_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingBar_CorrectPredefinedType: SCOPE = 'entity' @@ -10482,8 +10492,8 @@ class IfcReinforcingBar_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingBar_CorrectTypeAssigned: SCOPE = 'entity' @@ -10492,8 +10502,8 @@ class IfcReinforcingBar_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcreinforcingbartype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcreinforcingbartype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcReinforcingBarType_CorrectPredefinedType: SCOPE = 'entity' @@ -10502,8 +10512,8 @@ class IfcReinforcingBarType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcReinforcingBarType_BendingShapeCodeProvided: SCOPE = 'entity' @@ -10512,8 +10522,8 @@ class IfcReinforcingBarType_BendingShapeCodeProvided: @staticmethod def __call__(self): - bendingshapecode = getattr(self, 'BendingShapeCode', INDETERMINATE) - bendingparameters = getattr(self, 'BendingParameters', INDETERMINATE) + bendingshapecode = express_getattr(self, 'BendingShapeCode', INDETERMINATE) + bendingparameters = express_getattr(self, 'BendingParameters', INDETERMINATE) assert (not exists(bendingparameters) or exists(bendingshapecode)) is not False class IfcReinforcingMesh_CorrectPredefinedType: @@ -10523,8 +10533,8 @@ class IfcReinforcingMesh_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingMesh_CorrectTypeAssigned: SCOPE = 'entity' @@ -10533,8 +10543,8 @@ class IfcReinforcingMesh_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcreinforcingmeshtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcreinforcingmeshtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcReinforcingMeshType_CorrectPredefinedType: SCOPE = 'entity' @@ -10543,8 +10553,8 @@ class IfcReinforcingMeshType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcReinforcingMeshType_BendingShapeCodeProvided: SCOPE = 'entity' @@ -10553,8 +10563,8 @@ class IfcReinforcingMeshType_BendingShapeCodeProvided: @staticmethod def __call__(self): - bendingshapecode = getattr(self, 'BendingShapeCode', INDETERMINATE) - bendingparameters = getattr(self, 'BendingParameters', INDETERMINATE) + bendingshapecode = express_getattr(self, 'BendingShapeCode', INDETERMINATE) + bendingparameters = express_getattr(self, 'BendingParameters', INDETERMINATE) assert (not exists(bendingparameters) or exists(bendingshapecode)) is not False class IfcRelAggregates_NoSelfReference: @@ -10564,8 +10574,8 @@ class IfcRelAggregates_NoSelfReference: @staticmethod def __call__(self): - relatingobject = getattr(self, 'RelatingObject', INDETERMINATE) - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) + relatingobject = express_getattr(self, 'RelatingObject', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) assert (sizeof([temp for temp in relatedobjects if relatingobject == temp]) == 0) is not False class IfcRelAssigns_WR1: @@ -10575,8 +10585,8 @@ class IfcRelAssigns_WR1: @staticmethod def __call__(self): - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) - relatedobjectstype = getattr(self, 'RelatedObjectsType', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) + relatedobjectstype = express_getattr(self, 'RelatedObjectsType', INDETERMINATE) assert IfcCorrectObjectAssignment(relatedobjectstype, relatedobjects) is not False class IfcRelAssignsToActor_NoSelfReference: @@ -10586,8 +10596,8 @@ class IfcRelAssignsToActor_NoSelfReference: @staticmethod def __call__(self): - relatingactor = getattr(self, 'RelatingActor', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingactor == temp]) == 0) is not False + relatingactor = express_getattr(self, 'RelatingActor', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingactor == temp]) == 0) is not False class IfcRelAssignsToControl_NoSelfReference: SCOPE = 'entity' @@ -10596,8 +10606,8 @@ class IfcRelAssignsToControl_NoSelfReference: @staticmethod def __call__(self): - relatingcontrol = getattr(self, 'RelatingControl', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingcontrol == temp]) == 0) is not False + relatingcontrol = express_getattr(self, 'RelatingControl', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingcontrol == temp]) == 0) is not False class IfcRelAssignsToGroup_NoSelfReference: SCOPE = 'entity' @@ -10606,8 +10616,8 @@ class IfcRelAssignsToGroup_NoSelfReference: @staticmethod def __call__(self): - relatinggroup = getattr(self, 'RelatingGroup', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatinggroup == temp]) == 0) is not False + relatinggroup = express_getattr(self, 'RelatingGroup', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatinggroup == temp]) == 0) is not False class IfcRelAssignsToProcess_NoSelfReference: SCOPE = 'entity' @@ -10616,8 +10626,8 @@ class IfcRelAssignsToProcess_NoSelfReference: @staticmethod def __call__(self): - relatingprocess = getattr(self, 'RelatingProcess', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingprocess == temp]) == 0) is not False + relatingprocess = express_getattr(self, 'RelatingProcess', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingprocess == temp]) == 0) is not False class IfcRelAssignsToProduct_NoSelfReference: SCOPE = 'entity' @@ -10626,8 +10636,8 @@ class IfcRelAssignsToProduct_NoSelfReference: @staticmethod def __call__(self): - relatingproduct = getattr(self, 'RelatingProduct', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingproduct == temp]) == 0) is not False + relatingproduct = express_getattr(self, 'RelatingProduct', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingproduct == temp]) == 0) is not False class IfcRelAssignsToResource_NoSelfReference: SCOPE = 'entity' @@ -10636,8 +10646,8 @@ class IfcRelAssignsToResource_NoSelfReference: @staticmethod def __call__(self): - relatingresource = getattr(self, 'RelatingResource', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingresource == temp]) == 0) is not False + relatingresource = express_getattr(self, 'RelatingResource', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingresource == temp]) == 0) is not False class IfcRelAssociatesMaterial_NoVoidElement: SCOPE = 'entity' @@ -10646,7 +10656,7 @@ class IfcRelAssociatesMaterial_NoVoidElement: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3_rc2.ifcfeatureelementsubtraction' in typeof(temp) or 'ifc4x3_rc2.ifcvirtualelement' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3_rc2.ifcfeatureelementsubtraction' in typeof(temp) or 'ifc4x3_rc2.ifcvirtualelement' in typeof(temp)]) == 0) is not False class IfcRelAssociatesMaterial_AllowedElements: SCOPE = 'entity' @@ -10655,7 +10665,7 @@ class IfcRelAssociatesMaterial_AllowedElements: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if sizeof(typeof(temp) * ['ifc4x3_rc2.ifcelement', 'ifc4x3_rc2.ifcelementtype', 'ifc4x3_rc2.ifcwindowstyle', 'ifc4x3_rc2.ifcdoorstyle', 'ifc4x3_rc2.ifcstructuralmember', 'ifc4x3_rc2.ifcport']) == 0]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if sizeof(typeof(temp) * ['ifc4x3_rc2.ifcelement', 'ifc4x3_rc2.ifcelementtype', 'ifc4x3_rc2.ifcwindowstyle', 'ifc4x3_rc2.ifcdoorstyle', 'ifc4x3_rc2.ifcstructuralmember', 'ifc4x3_rc2.ifcport']) == 0]) == 0) is not False class IfcRelConnectsElements_NoSelfReference: SCOPE = 'entity' @@ -10664,8 +10674,8 @@ class IfcRelConnectsElements_NoSelfReference: @staticmethod def __call__(self): - relatingelement = getattr(self, 'RelatingElement', INDETERMINATE) - relatedelement = getattr(self, 'RelatedElement', INDETERMINATE) + relatingelement = express_getattr(self, 'RelatingElement', INDETERMINATE) + relatedelement = express_getattr(self, 'RelatedElement', INDETERMINATE) assert (relatingelement != relatedelement) is not False class IfcRelConnectsPathElements_NormalizedRelatingPriorities: @@ -10675,7 +10685,7 @@ class IfcRelConnectsPathElements_NormalizedRelatingPriorities: @staticmethod def __call__(self): - relatingpriorities = getattr(self, 'RelatingPriorities', INDETERMINATE) + relatingpriorities = express_getattr(self, 'RelatingPriorities', INDETERMINATE) assert (sizeof(relatingpriorities) == 0 or sizeof([temp for temp in relatingpriorities if 0 <= temp <= 100]) == sizeof(relatingpriorities)) is not False class IfcRelConnectsPathElements_NormalizedRelatedPriorities: @@ -10685,7 +10695,7 @@ class IfcRelConnectsPathElements_NormalizedRelatedPriorities: @staticmethod def __call__(self): - relatedpriorities = getattr(self, 'RelatedPriorities', INDETERMINATE) + relatedpriorities = express_getattr(self, 'RelatedPriorities', INDETERMINATE) assert (sizeof(relatedpriorities) == 0 or sizeof([temp for temp in relatedpriorities if 0 <= temp <= 100]) == sizeof(relatedpriorities)) is not False class IfcRelConnectsPorts_NoSelfReference: @@ -10695,8 +10705,8 @@ class IfcRelConnectsPorts_NoSelfReference: @staticmethod def __call__(self): - relatingport = getattr(self, 'RelatingPort', INDETERMINATE) - relatedport = getattr(self, 'RelatedPort', INDETERMINATE) + relatingport = express_getattr(self, 'RelatingPort', INDETERMINATE) + relatedport = express_getattr(self, 'RelatedPort', INDETERMINATE) assert (relatingport != relatedport) is not False class IfcRelContainedInSpatialStructure_WR31: @@ -10706,7 +10716,7 @@ class IfcRelContainedInSpatialStructure_WR31: @staticmethod def __call__(self): - relatedelements = getattr(self, 'RelatedElements', INDETERMINATE) + relatedelements = express_getattr(self, 'RelatedElements', INDETERMINATE) assert (sizeof([temp for temp in relatedelements if 'ifc4x3_rc2.ifcspatialstructureelement' in typeof(temp)]) == 0) is not False class IfcRelDeclares_NoSelfReference: @@ -10716,8 +10726,8 @@ class IfcRelDeclares_NoSelfReference: @staticmethod def __call__(self): - relatingcontext = getattr(self, 'RelatingContext', INDETERMINATE) - relateddefinitions = getattr(self, 'RelatedDefinitions', INDETERMINATE) + relatingcontext = express_getattr(self, 'RelatingContext', INDETERMINATE) + relateddefinitions = express_getattr(self, 'RelatedDefinitions', INDETERMINATE) assert (sizeof([temp for temp in relateddefinitions if relatingcontext == temp]) == 0) is not False class IfcRelDefinesByProperties_NoRelatedTypeObject: @@ -10727,7 +10737,7 @@ class IfcRelDefinesByProperties_NoRelatedTypeObject: @staticmethod def __call__(self): - assert (sizeof([types for types in getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3_rc2.ifctypeobject' in typeof(types)]) == 0) is not False + assert (sizeof([types for types in express_getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3_rc2.ifctypeobject' in typeof(types)]) == 0) is not False class IfcRelInterferesElements_NoSelfReference: SCOPE = 'entity' @@ -10736,8 +10746,8 @@ class IfcRelInterferesElements_NoSelfReference: @staticmethod def __call__(self): - relatingelement = getattr(self, 'RelatingElement', INDETERMINATE) - relatedelement = getattr(self, 'RelatedElement', INDETERMINATE) + relatingelement = express_getattr(self, 'RelatingElement', INDETERMINATE) + relatedelement = express_getattr(self, 'RelatedElement', INDETERMINATE) assert (relatingelement != relatedelement) is not False class IfcRelNests_NoSelfReference: @@ -10747,8 +10757,8 @@ class IfcRelNests_NoSelfReference: @staticmethod def __call__(self): - relatingobject = getattr(self, 'RelatingObject', INDETERMINATE) - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) + relatingobject = express_getattr(self, 'RelatingObject', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) assert (sizeof([temp for temp in relatedobjects if relatingobject == temp]) == 0) is not False class IfcRelPositions_NoSelfReference: @@ -10758,8 +10768,8 @@ class IfcRelPositions_NoSelfReference: @staticmethod def __call__(self): - relatingpositioningelement = getattr(self, 'RelatingPositioningElement', INDETERMINATE) - relatedproducts = getattr(self, 'RelatedProducts', INDETERMINATE) + relatingpositioningelement = express_getattr(self, 'RelatingPositioningElement', INDETERMINATE) + relatedproducts = express_getattr(self, 'RelatedProducts', INDETERMINATE) assert (sizeof([temp for temp in relatedproducts if relatingpositioningelement == temp]) == 0) is not False class IfcRelReferencedInSpatialStructure_AllowedRelatedElements: @@ -10769,7 +10779,7 @@ class IfcRelReferencedInSpatialStructure_AllowedRelatedElements: @staticmethod def __call__(self): - relatedelements = getattr(self, 'RelatedElements', INDETERMINATE) + relatedelements = express_getattr(self, 'RelatedElements', INDETERMINATE) assert (sizeof([temp for temp in relatedelements if 'ifc4x3_rc2.ifcspatialstructureelement' in typeof(temp) and (not 'ifc4x3_rc2.ifcspace' in typeof(temp))]) == 0) is not False class IfcRelSequence_AvoidInconsistentSequence: @@ -10779,8 +10789,8 @@ class IfcRelSequence_AvoidInconsistentSequence: @staticmethod def __call__(self): - relatingprocess = getattr(self, 'RelatingProcess', INDETERMINATE) - relatedprocess = getattr(self, 'RelatedProcess', INDETERMINATE) + relatingprocess = express_getattr(self, 'RelatingProcess', INDETERMINATE) + relatedprocess = express_getattr(self, 'RelatedProcess', INDETERMINATE) assert (relatingprocess != relatedprocess) is not False class IfcRelSequence_CorrectSequenceType: @@ -10790,9 +10800,9 @@ class IfcRelSequence_CorrectSequenceType: @staticmethod def __call__(self): - sequencetype = getattr(self, 'SequenceType', INDETERMINATE) - userdefinedsequencetype = getattr(self, 'UserDefinedSequenceType', INDETERMINATE) - assert (sequencetype != getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) or (sequencetype == getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedsequencetype))) is not False + sequencetype = express_getattr(self, 'SequenceType', INDETERMINATE) + userdefinedsequencetype = express_getattr(self, 'UserDefinedSequenceType', INDETERMINATE) + assert (sequencetype != express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) or (sequencetype == express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedsequencetype))) is not False class IfcRelSpaceBoundary_CorrectPhysOrVirt: SCOPE = 'entity' @@ -10801,9 +10811,9 @@ class IfcRelSpaceBoundary_CorrectPhysOrVirt: @staticmethod def __call__(self): - relatedbuildingelement = getattr(self, 'RelatedBuildingElement', INDETERMINATE) - physicalorvirtualboundary = getattr(self, 'PhysicalOrVirtualBoundary', INDETERMINATE) - assert (physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'Physical', INDETERMINATE) and (not 'ifc4x3_rc2.ifcvirtualelement' in typeof(relatedbuildingelement)) or (physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'Virtual', INDETERMINATE) and ('ifc4x3_rc2.ifcvirtualelement' in typeof(relatedbuildingelement) or 'ifc4x3_rc2.ifcopeningelement' in typeof(relatedbuildingelement))) or physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'NotDefined', INDETERMINATE)) is not False + relatedbuildingelement = express_getattr(self, 'RelatedBuildingElement', INDETERMINATE) + physicalorvirtualboundary = express_getattr(self, 'PhysicalOrVirtualBoundary', INDETERMINATE) + assert (physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'Physical', INDETERMINATE) and (not 'ifc4x3_rc2.ifcvirtualelement' in typeof(relatedbuildingelement)) or (physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'Virtual', INDETERMINATE) and ('ifc4x3_rc2.ifcvirtualelement' in typeof(relatedbuildingelement) or 'ifc4x3_rc2.ifcopeningelement' in typeof(relatedbuildingelement))) or physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'NotDefined', INDETERMINATE)) is not False class IfcReparametrisedCompositeCurveSegment_PositiveLengthParameter: SCOPE = 'entity' @@ -10812,7 +10822,7 @@ class IfcReparametrisedCompositeCurveSegment_PositiveLengthParameter: @staticmethod def __call__(self): - paramlength = getattr(self, 'ParamLength', INDETERMINATE) + paramlength = express_getattr(self, 'ParamLength', INDETERMINATE) assert (paramlength > 0.0) is not False class IfcRepresentationMap_ApplicableMappedRepr: @@ -10822,7 +10832,7 @@ class IfcRepresentationMap_ApplicableMappedRepr: @staticmethod def __call__(self): - mappedrepresentation = getattr(self, 'MappedRepresentation', INDETERMINATE) + mappedrepresentation = express_getattr(self, 'MappedRepresentation', INDETERMINATE) assert ('ifc4x3_rc2.ifcshapemodel' in typeof(mappedrepresentation)) is not False class IfcRevolvedAreaSolid_AxisStartInXY: @@ -10832,8 +10842,8 @@ class IfcRevolvedAreaSolid_AxisStartInXY: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (express_getitem(getattr(getattr(axis, 'Location', INDETERMINATE), 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (express_getitem(express_getattr(express_getattr(axis, 'Location', INDETERMINATE), 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False class IfcRevolvedAreaSolid_AxisDirectionInXY: SCOPE = 'entity' @@ -10842,12 +10852,12 @@ class IfcRevolvedAreaSolid_AxisDirectionInXY: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (express_getitem(getattr(getattr(axis, 'Z', INDETERMINATE), 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (express_getitem(express_getattr(express_getattr(axis, 'Z', INDETERMINATE), 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False def calc_IfcRevolvedAreaSolid_AxisLine(self): - axis = getattr(self, 'Axis', INDETERMINATE) - return IfcLine(Pnt=getattr(axis, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=getattr(axis, 'Z', INDETERMINATE), Magnitude=1.0)) + axis = express_getattr(self, 'Axis', INDETERMINATE) + return IfcLine(Pnt=express_getattr(axis, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=express_getattr(axis, 'Z', INDETERMINATE), Magnitude=1.0)) class IfcRevolvedAreaSolidTapered_CorrectProfileAssignment: SCOPE = 'entity' @@ -10856,7 +10866,7 @@ class IfcRevolvedAreaSolidTapered_CorrectProfileAssignment: @staticmethod def __call__(self): - assert IfcTaperedSweptAreaProfiles(getattr(self, 'SweptArea', INDETERMINATE), getattr(self, 'EndSweptArea', INDETERMINATE)) is not False + assert IfcTaperedSweptAreaProfiles(express_getattr(self, 'SweptArea', INDETERMINATE), express_getattr(self, 'EndSweptArea', INDETERMINATE)) is not False class IfcRoof_CorrectPredefinedType: SCOPE = 'entity' @@ -10865,8 +10875,8 @@ class IfcRoof_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRoof_CorrectTypeAssigned: SCOPE = 'entity' @@ -10875,8 +10885,8 @@ class IfcRoof_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcrooftype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcrooftype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRoofType_CorrectPredefinedType: SCOPE = 'entity' @@ -10885,8 +10895,8 @@ class IfcRoofType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRoundedRectangleProfileDef_ValidRadius: SCOPE = 'entity' @@ -10895,11 +10905,11 @@ class IfcRoundedRectangleProfileDef_ValidRadius: @staticmethod def __call__(self): - roundingradius = getattr(self, 'RoundingRadius', INDETERMINATE) - assert (roundingradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 and roundingradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False + roundingradius = express_getattr(self, 'RoundingRadius', INDETERMINATE) + assert (roundingradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and roundingradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False def calc_IfcSIUnit_Dimensions(self): - return IfcDimensionsForSiUnit(getattr(self, 'Name', INDETERMINATE)) + return IfcDimensionsForSiUnit(express_getattr(self, 'Name', INDETERMINATE)) class IfcSanitaryTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -10908,8 +10918,8 @@ class IfcSanitaryTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSanitaryTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -10918,8 +10928,8 @@ class IfcSanitaryTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcsanitaryterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcsanitaryterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSanitaryTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -10928,8 +10938,8 @@ class IfcSanitaryTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSeamCurve_TwoPCurves: SCOPE = 'entity' @@ -10938,7 +10948,7 @@ class IfcSeamCurve_TwoPCurves: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False + assert (sizeof(express_getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False class IfcSeamCurve_SameSurface: SCOPE = 'entity' @@ -10947,7 +10957,7 @@ class IfcSeamCurve_SameSurface: @staticmethod def __call__(self): - assert (IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcSectionedSolid_DirectrixIs3D: SCOPE = 'entity' @@ -10956,8 +10966,8 @@ class IfcSectionedSolid_DirectrixIs3D: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - assert (getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + assert (express_getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False class IfcSectionedSolid_ConsistentProfileTypes: SCOPE = 'entity' @@ -10966,8 +10976,8 @@ class IfcSectionedSolid_ConsistentProfileTypes: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - assert (sizeof([temp for temp in crosssections if getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + assert (sizeof([temp for temp in crosssections if express_getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != express_getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcSectionedSolid_SectionsSameType: SCOPE = 'entity' @@ -10976,7 +10986,7 @@ class IfcSectionedSolid_SectionsSameType: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) assert (sizeof([temp for temp in crosssections if typeof(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(temp)]) == 0) is not False class IfcSectionedSolidHorizontal_CorrespondingSectionPositions: @@ -10986,8 +10996,8 @@ class IfcSectionedSolidHorizontal_CorrespondingSectionPositions: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) assert (sizeof(crosssections) == sizeof(crosssectionpositions)) is not False class IfcSectionedSolidHorizontal_NoLongitudinalOffsets: @@ -10997,8 +11007,8 @@ class IfcSectionedSolidHorizontal_NoLongitudinalOffsets: @staticmethod def __call__(self): - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) - assert (sizeof([temp for temp in crosssectionpositions if exists(getattr(temp, 'OffsetLongitudinal', INDETERMINATE))]) == 0) is not False + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) + assert (sizeof([temp for temp in crosssectionpositions if exists(express_getattr(temp, 'OffsetLongitudinal', INDETERMINATE))]) == 0) is not False class IfcSectionedSpine_CorrespondingSectionPositions: SCOPE = 'entity' @@ -11007,8 +11017,8 @@ class IfcSectionedSpine_CorrespondingSectionPositions: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) assert (sizeof(crosssections) == sizeof(crosssectionpositions)) is not False class IfcSectionedSpine_ConsistentProfileTypes: @@ -11018,8 +11028,8 @@ class IfcSectionedSpine_ConsistentProfileTypes: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - assert (sizeof([temp for temp in crosssections if getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + assert (sizeof([temp for temp in crosssections if express_getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != express_getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcSectionedSpine_SpineCurveDim: SCOPE = 'entity' @@ -11028,8 +11038,8 @@ class IfcSectionedSpine_SpineCurveDim: @staticmethod def __call__(self): - spinecurve = getattr(self, 'SpineCurve', INDETERMINATE) - assert (getattr(spinecurve, 'Dim', INDETERMINATE) == 3) is not False + spinecurve = express_getattr(self, 'SpineCurve', INDETERMINATE) + assert (express_getattr(spinecurve, 'Dim', INDETERMINATE) == 3) is not False def calc_IfcSectionedSpine_Dim(self): return 3 @@ -11041,8 +11051,8 @@ class IfcSensor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSensor_CorrectTypeAssigned: SCOPE = 'entity' @@ -11051,8 +11061,8 @@ class IfcSensor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcsensortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcsensortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSensorType_CorrectPredefinedType: SCOPE = 'entity' @@ -11061,8 +11071,8 @@ class IfcSensorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcShadingDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -11071,8 +11081,8 @@ class IfcShadingDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcShadingDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -11081,8 +11091,8 @@ class IfcShadingDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcshadingdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcshadingdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcShadingDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11091,8 +11101,8 @@ class IfcShadingDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcShapeModel_WR11: SCOPE = 'entity' @@ -11101,8 +11111,8 @@ class IfcShapeModel_WR11: @staticmethod def __call__(self): - ofshapeaspect = getattr(self, 'OfShapeAspect', INDETERMINATE) - assert (sizeof(getattr(self, 'OfProductRepresentation', INDETERMINATE)) == 1) ^ (sizeof(getattr(self, 'RepresentationMap', INDETERMINATE)) == 1) ^ (sizeof(ofshapeaspect) == 1) is not False + ofshapeaspect = express_getattr(self, 'OfShapeAspect', INDETERMINATE) + assert (sizeof(express_getattr(self, 'OfProductRepresentation', INDETERMINATE)) == 1) ^ (sizeof(express_getattr(self, 'RepresentationMap', INDETERMINATE)) == 1) ^ (sizeof(ofshapeaspect) == 1) is not False class IfcShapeRepresentation_CorrectContext: SCOPE = 'entity' @@ -11111,7 +11121,7 @@ class IfcShapeRepresentation_CorrectContext: @staticmethod def __call__(self): - assert ('ifc4x3_rc2.ifcgeometricrepresentationcontext' in typeof(getattr(self, 'ContextOfItems', INDETERMINATE))) is not False + assert ('ifc4x3_rc2.ifcgeometricrepresentationcontext' in typeof(express_getattr(self, 'ContextOfItems', INDETERMINATE))) is not False class IfcShapeRepresentation_NoTopologicalItem: SCOPE = 'entity' @@ -11120,7 +11130,7 @@ class IfcShapeRepresentation_NoTopologicalItem: @staticmethod def __call__(self): - items = getattr(self, 'Items', INDETERMINATE) + items = express_getattr(self, 'Items', INDETERMINATE) assert (sizeof([temp for temp in items if 'ifc4x3_rc2.ifctopologicalrepresentationitem' in typeof(temp) and (not sizeof(['ifc4x3_rc2.ifcvertexpoint', 'ifc4x3_rc2.ifcedgecurve', 'ifc4x3_rc2.ifcfacesurface'] * typeof(temp)) == 1)]) == 0) is not False class IfcShapeRepresentation_HasRepresentationType: @@ -11130,7 +11140,7 @@ class IfcShapeRepresentation_HasRepresentationType: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationType', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationType', INDETERMINATE)) is not False class IfcShapeRepresentation_HasRepresentationIdentifier: SCOPE = 'entity' @@ -11139,7 +11149,7 @@ class IfcShapeRepresentation_HasRepresentationIdentifier: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationIdentifier', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationIdentifier', INDETERMINATE)) is not False class IfcShapeRepresentation_CorrectItemsForType: SCOPE = 'entity' @@ -11148,7 +11158,7 @@ class IfcShapeRepresentation_CorrectItemsForType: @staticmethod def __call__(self): - assert IfcShapeRepresentationTypes(getattr(self, 'RepresentationType', INDETERMINATE), getattr(self, 'Items', INDETERMINATE)) is not False + assert IfcShapeRepresentationTypes(express_getattr(self, 'RepresentationType', INDETERMINATE), express_getattr(self, 'Items', INDETERMINATE)) is not False def calc_IfcShellBasedSurfaceModel_Dim(self): return 3 @@ -11160,8 +11170,8 @@ class IfcSign_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSign_CorrectTypeAssigned: SCOPE = 'entity' @@ -11170,8 +11180,8 @@ class IfcSign_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcsigntype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcsigntype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSignType_CorrectPredefinedType: SCOPE = 'entity' @@ -11180,8 +11190,8 @@ class IfcSignType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSignal_CorrectPredefinedType: SCOPE = 'entity' @@ -11190,8 +11200,8 @@ class IfcSignal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSignal_CorrectTypeAssigned: SCOPE = 'entity' @@ -11200,8 +11210,8 @@ class IfcSignal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcsignaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcsignaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSignalType_CorrectPredefinedType: SCOPE = 'entity' @@ -11210,8 +11220,8 @@ class IfcSignalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSlab_CorrectPredefinedType: SCOPE = 'entity' @@ -11220,8 +11230,8 @@ class IfcSlab_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSlab_CorrectTypeAssigned: SCOPE = 'entity' @@ -11230,8 +11240,8 @@ class IfcSlab_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcslabtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcslabtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSlabElementedCase_HasDecomposition: SCOPE = 'entity' @@ -11240,7 +11250,7 @@ class IfcSlabElementedCase_HasDecomposition: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'IsDecomposedBy', INDETERMINATE)) > 0) is not False + assert (hiindex(express_getattr(self, 'IsDecomposedBy', INDETERMINATE)) > 0) is not False class IfcSlabStandardCase_HasMaterialLayerSetusage: SCOPE = 'entity' @@ -11249,7 +11259,7 @@ class IfcSlabStandardCase_HasMaterialLayerSetusage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc2.ifcrelassociates.relatedobjects') if 'ifc4x3_rc2.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc2.ifcmateriallayersetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc2.ifcrelassociates.relatedobjects') if 'ifc4x3_rc2.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc2.ifcmateriallayersetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcSlabType_CorrectPredefinedType: SCOPE = 'entity' @@ -11258,8 +11268,8 @@ class IfcSlabType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSolarDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -11268,8 +11278,8 @@ class IfcSolarDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSolarDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -11278,8 +11288,8 @@ class IfcSolarDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcsolardevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcsolardevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSolarDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11288,8 +11298,8 @@ class IfcSolarDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcSolidModel_Dim(self): return 3 @@ -11301,8 +11311,8 @@ class IfcSpace_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpace_CorrectTypeAssigned: SCOPE = 'entity' @@ -11311,8 +11321,8 @@ class IfcSpace_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcspacetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcspacetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpaceHeater_CorrectPredefinedType: SCOPE = 'entity' @@ -11321,8 +11331,8 @@ class IfcSpaceHeater_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpaceHeater_CorrectTypeAssigned: SCOPE = 'entity' @@ -11331,8 +11341,8 @@ class IfcSpaceHeater_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcspaceheatertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcspaceheatertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpaceHeaterType_CorrectPredefinedType: SCOPE = 'entity' @@ -11341,8 +11351,8 @@ class IfcSpaceHeaterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSpaceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11351,8 +11361,8 @@ class IfcSpaceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSpatialStructureElement_WR41: SCOPE = 'entity' @@ -11361,7 +11371,7 @@ class IfcSpatialStructureElement_WR41: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'Decomposes', INDETERMINATE)) == 1 and 'ifc4x3_rc2.ifcrelaggregates' in typeof(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc2.ifcproject' in typeof(getattr(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)) or 'ifc4x3_rc2.ifcspatialstructureelement' in typeof(getattr(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)))) is not False + assert (hiindex(express_getattr(self, 'Decomposes', INDETERMINATE)) == 1 and 'ifc4x3_rc2.ifcrelaggregates' in typeof(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc2.ifcproject' in typeof(express_getattr(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)) or 'ifc4x3_rc2.ifcspatialstructureelement' in typeof(express_getattr(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)))) is not False class IfcSpatialZone_CorrectPredefinedType: SCOPE = 'entity' @@ -11370,8 +11380,8 @@ class IfcSpatialZone_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpatialZone_CorrectTypeAssigned: SCOPE = 'entity' @@ -11380,8 +11390,8 @@ class IfcSpatialZone_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcspatialzonetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcspatialzonetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpatialZoneType_CorrectPredefinedType: SCOPE = 'entity' @@ -11390,8 +11400,8 @@ class IfcSpatialZoneType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStackTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -11400,8 +11410,8 @@ class IfcStackTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStackTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -11410,8 +11420,8 @@ class IfcStackTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcstackterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcstackterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStackTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -11420,8 +11430,8 @@ class IfcStackTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStair_CorrectPredefinedType: SCOPE = 'entity' @@ -11430,8 +11440,8 @@ class IfcStair_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStair_CorrectTypeAssigned: SCOPE = 'entity' @@ -11440,8 +11450,8 @@ class IfcStair_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcstairtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcstairtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStairFlight_CorrectPredefinedType: SCOPE = 'entity' @@ -11450,8 +11460,8 @@ class IfcStairFlight_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStairFlight_CorrectTypeAssigned: SCOPE = 'entity' @@ -11460,8 +11470,8 @@ class IfcStairFlight_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcstairflighttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcstairflighttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStairFlightType_CorrectPredefinedType: SCOPE = 'entity' @@ -11470,8 +11480,8 @@ class IfcStairFlightType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStairType_CorrectPredefinedType: SCOPE = 'entity' @@ -11480,8 +11490,8 @@ class IfcStairType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStructuralAnalysisModel_HasObjectType: SCOPE = 'entity' @@ -11490,8 +11500,8 @@ class IfcStructuralAnalysisModel_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveAction_ProjectedIsGlobal: SCOPE = 'entity' @@ -11500,8 +11510,8 @@ class IfcStructuralCurveAction_ProjectedIsGlobal: @staticmethod def __call__(self): - projectedortrue = getattr(self, 'ProjectedOrTrue', INDETERMINATE) - assert (not exists(projectedortrue) or (projectedortrue != projected_length or getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False + projectedortrue = express_getattr(self, 'ProjectedOrTrue', INDETERMINATE) + assert (not exists(projectedortrue) or (projectedortrue != projected_length or express_getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False class IfcStructuralCurveAction_HasObjectType: SCOPE = 'entity' @@ -11510,8 +11520,8 @@ class IfcStructuralCurveAction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveAction_SuitablePredefinedType: SCOPE = 'entity' @@ -11520,8 +11530,8 @@ class IfcStructuralCurveAction_SuitablePredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE)) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE)) is not False class IfcStructuralCurveMember_HasObjectType: SCOPE = 'entity' @@ -11530,8 +11540,8 @@ class IfcStructuralCurveMember_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveReaction_HasObjectType: SCOPE = 'entity' @@ -11540,8 +11550,8 @@ class IfcStructuralCurveReaction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveReaction_SuitablePredefinedType: SCOPE = 'entity' @@ -11550,8 +11560,8 @@ class IfcStructuralCurveReaction_SuitablePredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) and predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE)) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) and predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE)) is not False class IfcStructuralLinearAction_SuitableLoadType: SCOPE = 'entity' @@ -11560,7 +11570,7 @@ class IfcStructuralLinearAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_rc2.ifcstructuralloadlinearforce', 'ifc4x3_rc2.ifcstructuralloadtemperature'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_rc2.ifcstructuralloadlinearforce', 'ifc4x3_rc2.ifcstructuralloadtemperature'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralLinearAction_ConstPredefinedType: SCOPE = 'entity' @@ -11569,7 +11579,7 @@ class IfcStructuralLinearAction_ConstPredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE)) is not False class IfcStructuralLoadCase_IsLoadCasePredefinedType: SCOPE = 'entity' @@ -11578,7 +11588,7 @@ class IfcStructuralLoadCase_IsLoadCasePredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE)) is not False class IfcStructuralLoadConfiguration_ValidListSize: SCOPE = 'entity' @@ -11587,8 +11597,8 @@ class IfcStructuralLoadConfiguration_ValidListSize: @staticmethod def __call__(self): - values = getattr(self, 'Values', INDETERMINATE) - locations = getattr(self, 'Locations', INDETERMINATE) + values = express_getattr(self, 'Values', INDETERMINATE) + locations = express_getattr(self, 'Locations', INDETERMINATE) assert (not exists(locations) or sizeof(locations) == sizeof(values)) is not False class IfcStructuralLoadGroup_HasObjectType: @@ -11598,10 +11608,10 @@ class IfcStructuralLoadGroup_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - actiontype = getattr(self, 'ActionType', INDETERMINATE) - actionsource = getattr(self, 'ActionSource', INDETERMINATE) - assert (predefinedtype != getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) and actiontype != getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) and (actionsource != getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE)) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + actiontype = express_getattr(self, 'ActionType', INDETERMINATE) + actionsource = express_getattr(self, 'ActionSource', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) and actiontype != express_getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) and (actionsource != express_getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE)) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralPlanarAction_SuitableLoadType: SCOPE = 'entity' @@ -11610,7 +11620,7 @@ class IfcStructuralPlanarAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_rc2.ifcstructuralloadplanarforce', 'ifc4x3_rc2.ifcstructuralloadtemperature'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_rc2.ifcstructuralloadplanarforce', 'ifc4x3_rc2.ifcstructuralloadtemperature'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralPlanarAction_ConstPredefinedType: SCOPE = 'entity' @@ -11619,7 +11629,7 @@ class IfcStructuralPlanarAction_ConstPredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE)) is not False class IfcStructuralPointAction_SuitableLoadType: SCOPE = 'entity' @@ -11628,7 +11638,7 @@ class IfcStructuralPointAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_rc2.ifcstructuralloadsingleforce', 'ifc4x3_rc2.ifcstructuralloadsingledisplacement'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_rc2.ifcstructuralloadsingleforce', 'ifc4x3_rc2.ifcstructuralloadsingledisplacement'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralPointReaction_SuitableLoadType: SCOPE = 'entity' @@ -11637,7 +11647,7 @@ class IfcStructuralPointReaction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_rc2.ifcstructuralloadsingleforce', 'ifc4x3_rc2.ifcstructuralloadsingledisplacement'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_rc2.ifcstructuralloadsingleforce', 'ifc4x3_rc2.ifcstructuralloadsingledisplacement'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralResultGroup_HasObjectType: SCOPE = 'entity' @@ -11646,8 +11656,8 @@ class IfcStructuralResultGroup_HasObjectType: @staticmethod def __call__(self): - theorytype = getattr(self, 'TheoryType', INDETERMINATE) - assert (theorytype != getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + theorytype = express_getattr(self, 'TheoryType', INDETERMINATE) + assert (theorytype != express_getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceAction_ProjectedIsGlobal: SCOPE = 'entity' @@ -11656,8 +11666,8 @@ class IfcStructuralSurfaceAction_ProjectedIsGlobal: @staticmethod def __call__(self): - projectedortrue = getattr(self, 'ProjectedOrTrue', INDETERMINATE) - assert (not exists(projectedortrue) or (projectedortrue != projected_length or getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False + projectedortrue = express_getattr(self, 'ProjectedOrTrue', INDETERMINATE) + assert (not exists(projectedortrue) or (projectedortrue != projected_length or express_getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False class IfcStructuralSurfaceAction_HasObjectType: SCOPE = 'entity' @@ -11666,8 +11676,8 @@ class IfcStructuralSurfaceAction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceMember_HasObjectType: SCOPE = 'entity' @@ -11676,8 +11686,8 @@ class IfcStructuralSurfaceMember_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceReaction_HasPredefinedType: SCOPE = 'entity' @@ -11686,8 +11696,8 @@ class IfcStructuralSurfaceReaction_HasPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStyledItem_ApplicableItem: SCOPE = 'entity' @@ -11696,7 +11706,7 @@ class IfcStyledItem_ApplicableItem: @staticmethod def __call__(self): - item = getattr(self, 'Item', INDETERMINATE) + item = express_getattr(self, 'Item', INDETERMINATE) assert (not 'ifc4x3_rc2.ifcstyleditem' in typeof(item)) is not False class IfcStyledRepresentation_OnlyStyledItems: @@ -11706,7 +11716,7 @@ class IfcStyledRepresentation_OnlyStyledItems: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3_rc2.ifcstyleditem' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3_rc2.ifcstyleditem' in typeof(temp)]) == 0) is not False class IfcSubContractResource_CorrectPredefinedType: SCOPE = 'entity' @@ -11715,8 +11725,8 @@ class IfcSubContractResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSubContractResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11725,8 +11735,8 @@ class IfcSubContractResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False def calc_IfcSurface_Dim(self): return 3 @@ -11738,8 +11748,8 @@ class IfcSurfaceCurve_CurveIs3D: @staticmethod def __call__(self): - curve3d = getattr(self, 'Curve3D', INDETERMINATE) - assert (getattr(curve3d, 'Dim', INDETERMINATE) == 3) is not False + curve3d = express_getattr(self, 'Curve3D', INDETERMINATE) + assert (express_getattr(curve3d, 'Dim', INDETERMINATE) == 3) is not False class IfcSurfaceCurve_CurveIsNotPcurve: SCOPE = 'entity' @@ -11748,7 +11758,7 @@ class IfcSurfaceCurve_CurveIsNotPcurve: @staticmethod def __call__(self): - curve3d = getattr(self, 'Curve3D', INDETERMINATE) + curve3d = express_getattr(self, 'Curve3D', INDETERMINATE) assert (not 'ifc4x3_rc2.ifcpcurve' in typeof(curve3d)) is not False def calc_IfcSurfaceCurve_BasisSurface(self): @@ -11761,8 +11771,8 @@ class IfcSurfaceFeature_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcSurfaceOfLinearExtrusion_DepthGreaterZero: SCOPE = 'entity' @@ -11771,17 +11781,17 @@ class IfcSurfaceOfLinearExtrusion_DepthGreaterZero: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) assert (depth > 0.0) is not False def calc_IfcSurfaceOfLinearExtrusion_ExtrusionAxis(self): - extrudeddirection = getattr(self, 'ExtrudedDirection', INDETERMINATE) - depth = getattr(self, 'Depth', INDETERMINATE) + extrudeddirection = express_getattr(self, 'ExtrudedDirection', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) return IfcVector(Orientation=extrudeddirection, Magnitude=depth) def calc_IfcSurfaceOfRevolution_AxisLine(self): - axisposition = getattr(self, 'AxisPosition', INDETERMINATE) - return IfcLine(Pnt=getattr(axisposition, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=getattr(axisposition, 'Z', INDETERMINATE), Magnitude=1.0)) + axisposition = express_getattr(self, 'AxisPosition', INDETERMINATE) + return IfcLine(Pnt=express_getattr(axisposition, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=express_getattr(axisposition, 'Z', INDETERMINATE), Magnitude=1.0)) class IfcSurfaceReinforcementArea_SurfaceAndOrShearAreaSpecified: SCOPE = 'entity' @@ -11790,9 +11800,9 @@ class IfcSurfaceReinforcementArea_SurfaceAndOrShearAreaSpecified: @staticmethod def __call__(self): - surfacereinforcement1 = getattr(self, 'SurfaceReinforcement1', INDETERMINATE) - surfacereinforcement2 = getattr(self, 'SurfaceReinforcement2', INDETERMINATE) - shearreinforcement = getattr(self, 'ShearReinforcement', INDETERMINATE) + surfacereinforcement1 = express_getattr(self, 'SurfaceReinforcement1', INDETERMINATE) + surfacereinforcement2 = express_getattr(self, 'SurfaceReinforcement2', INDETERMINATE) + shearreinforcement = express_getattr(self, 'ShearReinforcement', INDETERMINATE) assert (exists(surfacereinforcement1) or exists(surfacereinforcement2) or exists(shearreinforcement)) is not False class IfcSurfaceReinforcementArea_NonnegativeArea1: @@ -11802,7 +11812,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea1: @staticmethod def __call__(self): - surfacereinforcement1 = getattr(self, 'SurfaceReinforcement1', INDETERMINATE) + surfacereinforcement1 = express_getattr(self, 'SurfaceReinforcement1', INDETERMINATE) assert (not exists(surfacereinforcement1) or (express_getitem(surfacereinforcement1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and express_getitem(surfacereinforcement1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and (sizeof(surfacereinforcement1) == 1 or express_getitem(surfacereinforcement1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0))) is not False class IfcSurfaceReinforcementArea_NonnegativeArea2: @@ -11812,7 +11822,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea2: @staticmethod def __call__(self): - surfacereinforcement2 = getattr(self, 'SurfaceReinforcement2', INDETERMINATE) + surfacereinforcement2 = express_getattr(self, 'SurfaceReinforcement2', INDETERMINATE) assert (not exists(surfacereinforcement2) or (express_getitem(surfacereinforcement2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and express_getitem(surfacereinforcement2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and (sizeof(surfacereinforcement2) == 1 or express_getitem(surfacereinforcement2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0))) is not False class IfcSurfaceReinforcementArea_NonnegativeArea3: @@ -11822,7 +11832,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea3: @staticmethod def __call__(self): - shearreinforcement = getattr(self, 'ShearReinforcement', INDETERMINATE) + shearreinforcement = express_getattr(self, 'ShearReinforcement', INDETERMINATE) assert (not exists(shearreinforcement) or shearreinforcement >= 0.0) is not False class IfcSurfaceStyle_MaxOneShading: @@ -11832,7 +11842,7 @@ class IfcSurfaceStyle_MaxOneShading: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc2.ifcsurfacestyleshading' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc2.ifcsurfacestyleshading' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneLighting: SCOPE = 'entity' @@ -11841,7 +11851,7 @@ class IfcSurfaceStyle_MaxOneLighting: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc2.ifcsurfacestylelighting' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc2.ifcsurfacestylelighting' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneRefraction: SCOPE = 'entity' @@ -11850,7 +11860,7 @@ class IfcSurfaceStyle_MaxOneRefraction: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc2.ifcsurfacestylerefraction' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc2.ifcsurfacestylerefraction' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneTextures: SCOPE = 'entity' @@ -11859,7 +11869,7 @@ class IfcSurfaceStyle_MaxOneTextures: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc2.ifcsurfacestylewithtextures' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc2.ifcsurfacestylewithtextures' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneExtDefined: SCOPE = 'entity' @@ -11868,7 +11878,7 @@ class IfcSurfaceStyle_MaxOneExtDefined: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc2.ifcexternallydefinedsurfacestyle' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc2.ifcexternallydefinedsurfacestyle' in typeof(style)]) <= 1) is not False class IfcSweptAreaSolid_SweptAreaType: SCOPE = 'entity' @@ -11877,8 +11887,8 @@ class IfcSweptAreaSolid_SweptAreaType: @staticmethod def __call__(self): - sweptarea = getattr(self, 'SweptArea', INDETERMINATE) - assert (getattr(sweptarea, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'Area', INDETERMINATE)) is not False + sweptarea = express_getattr(self, 'SweptArea', INDETERMINATE) + assert (express_getattr(sweptarea, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'Area', INDETERMINATE)) is not False class IfcSweptDiskSolid_DirectrixDim: SCOPE = 'entity' @@ -11887,8 +11897,8 @@ class IfcSweptDiskSolid_DirectrixDim: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - assert (getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + assert (express_getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False class IfcSweptDiskSolid_InnerRadiusSize: SCOPE = 'entity' @@ -11897,8 +11907,8 @@ class IfcSweptDiskSolid_InnerRadiusSize: @staticmethod def __call__(self): - radius = getattr(self, 'Radius', INDETERMINATE) - innerradius = getattr(self, 'InnerRadius', INDETERMINATE) + radius = express_getattr(self, 'Radius', INDETERMINATE) + innerradius = express_getattr(self, 'InnerRadius', INDETERMINATE) assert (not exists(innerradius) or radius > innerradius) is not False class IfcSweptDiskSolid_DirectrixBounded: @@ -11908,9 +11918,9 @@ class IfcSweptDiskSolid_DirectrixBounded: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - startparam = getattr(self, 'StartParam', INDETERMINATE) - endparam = getattr(self, 'EndParam', INDETERMINATE) + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + startparam = express_getattr(self, 'StartParam', INDETERMINATE) + endparam = express_getattr(self, 'EndParam', INDETERMINATE) assert (exists(startparam) and exists(endparam) or sizeof(['ifc4x3_rc2.ifcconic', 'ifc4x3_rc2.ifcboundedcurve'] * typeof(directrix)) == 1) is not False class IfcSweptDiskSolidPolygonal_CorrectRadii: @@ -11920,8 +11930,8 @@ class IfcSweptDiskSolidPolygonal_CorrectRadii: @staticmethod def __call__(self): - filletradius = getattr(self, 'FilletRadius', INDETERMINATE) - assert (not exists(filletradius) or filletradius >= getattr(self, 'Radius', INDETERMINATE)) is not False + filletradius = express_getattr(self, 'FilletRadius', INDETERMINATE) + assert (not exists(filletradius) or filletradius >= express_getattr(self, 'Radius', INDETERMINATE)) is not False class IfcSweptDiskSolidPolygonal_DirectrixIsPolyline: SCOPE = 'entity' @@ -11930,7 +11940,7 @@ class IfcSweptDiskSolidPolygonal_DirectrixIsPolyline: @staticmethod def __call__(self): - assert ('ifc4x3_rc2.ifcpolyline' in typeof(getattr(self, 'Directrix', INDETERMINATE)) or ('ifc4x3_rc2.ifcindexedpolycurve' in typeof(getattr(self, 'Directrix', INDETERMINATE)) and (not exists(getattr(getattr(self, 'Directrix', INDETERMINATE), 'Segments', INDETERMINATE))))) is not False + assert ('ifc4x3_rc2.ifcpolyline' in typeof(express_getattr(self, 'Directrix', INDETERMINATE)) or ('ifc4x3_rc2.ifcindexedpolycurve' in typeof(express_getattr(self, 'Directrix', INDETERMINATE)) and (not exists(express_getattr(express_getattr(self, 'Directrix', INDETERMINATE), 'Segments', INDETERMINATE))))) is not False class IfcSweptSurface_SweptCurveType: SCOPE = 'entity' @@ -11939,8 +11949,8 @@ class IfcSweptSurface_SweptCurveType: @staticmethod def __call__(self): - sweptcurve = getattr(self, 'SweptCurve', INDETERMINATE) - assert (getattr(sweptcurve, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'Curve', INDETERMINATE)) is not False + sweptcurve = express_getattr(self, 'SweptCurve', INDETERMINATE) + assert (express_getattr(sweptcurve, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'Curve', INDETERMINATE)) is not False class IfcSwitchingDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -11949,8 +11959,8 @@ class IfcSwitchingDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSwitchingDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -11959,8 +11969,8 @@ class IfcSwitchingDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcswitchingdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcswitchingdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSwitchingDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11969,8 +11979,8 @@ class IfcSwitchingDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSystemFurnitureElement_CorrectPredefinedType: SCOPE = 'entity' @@ -11979,8 +11989,8 @@ class IfcSystemFurnitureElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSystemFurnitureElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -11989,8 +11999,8 @@ class IfcSystemFurnitureElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcsystemfurnitureelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcsystemfurnitureelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSystemFurnitureElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -11999,8 +12009,8 @@ class IfcSystemFurnitureElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -12009,8 +12019,8 @@ class IfcTShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth) is not False class IfcTShapeProfileDef_ValidWebThickness: @@ -12020,8 +12030,8 @@ class IfcTShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - flangewidth = getattr(self, 'FlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + flangewidth = express_getattr(self, 'FlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < flangewidth) is not False class IfcTable_WR1: @@ -12031,8 +12041,8 @@ class IfcTable_WR1: @staticmethod def __call__(self): - rows = getattr(self, 'Rows', INDETERMINATE) - assert (sizeof([temp for temp in rows if hiindex(getattr(temp, 'RowCells', INDETERMINATE)) != hiindex(getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE))]) == 0) is not False + rows = express_getattr(self, 'Rows', INDETERMINATE) + assert (sizeof([temp for temp in rows if hiindex(express_getattr(temp, 'RowCells', INDETERMINATE)) != hiindex(express_getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE))]) == 0) is not False class IfcTable_WR2: SCOPE = 'entity' @@ -12041,20 +12051,20 @@ class IfcTable_WR2: @staticmethod def __call__(self): - numberofheadings = getattr(self, 'NumberOfHeadings', INDETERMINATE) + numberofheadings = express_getattr(self, 'NumberOfHeadings', INDETERMINATE) assert (0 <= numberofheadings <= 1) is not False def calc_IfcTable_NumberOfCellsInRow(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return hiindex(getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE)) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return hiindex(express_getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE)) def calc_IfcTable_NumberOfHeadings(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return sizeof([temp for temp in rows if getattr(temp, 'IsHeading', INDETERMINATE)]) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return sizeof([temp for temp in rows if express_getattr(temp, 'IsHeading', INDETERMINATE)]) def calc_IfcTable_NumberOfDataRows(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return sizeof([temp for temp in rows if not getattr(temp, 'IsHeading', INDETERMINATE)]) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return sizeof([temp for temp in rows if not express_getattr(temp, 'IsHeading', INDETERMINATE)]) class IfcTank_CorrectPredefinedType: SCOPE = 'entity' @@ -12063,8 +12073,8 @@ class IfcTank_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTank_CorrectTypeAssigned: SCOPE = 'entity' @@ -12073,8 +12083,8 @@ class IfcTank_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifctanktype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifctanktype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTankType_CorrectPredefinedType: SCOPE = 'entity' @@ -12083,8 +12093,8 @@ class IfcTankType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTask_HasName: SCOPE = 'entity' @@ -12093,7 +12103,7 @@ class IfcTask_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcTask_CorrectPredefinedType: SCOPE = 'entity' @@ -12102,8 +12112,8 @@ class IfcTask_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTaskType_CorrectPredefinedType: SCOPE = 'entity' @@ -12112,8 +12122,8 @@ class IfcTaskType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcTelecomAddress_MinimumDataProvided: SCOPE = 'entity' @@ -12122,12 +12132,12 @@ class IfcTelecomAddress_MinimumDataProvided: @staticmethod def __call__(self): - telephonenumbers = getattr(self, 'TelephoneNumbers', INDETERMINATE) - facsimilenumbers = getattr(self, 'FacsimileNumbers', INDETERMINATE) - pagernumber = getattr(self, 'PagerNumber', INDETERMINATE) - electronicmailaddresses = getattr(self, 'ElectronicMailAddresses', INDETERMINATE) - wwwhomepageurl = getattr(self, 'WWWHomePageURL', INDETERMINATE) - messagingids = getattr(self, 'MessagingIDs', INDETERMINATE) + telephonenumbers = express_getattr(self, 'TelephoneNumbers', INDETERMINATE) + facsimilenumbers = express_getattr(self, 'FacsimileNumbers', INDETERMINATE) + pagernumber = express_getattr(self, 'PagerNumber', INDETERMINATE) + electronicmailaddresses = express_getattr(self, 'ElectronicMailAddresses', INDETERMINATE) + wwwhomepageurl = express_getattr(self, 'WWWHomePageURL', INDETERMINATE) + messagingids = express_getattr(self, 'MessagingIDs', INDETERMINATE) assert (exists(telephonenumbers) or exists(facsimilenumbers) or exists(pagernumber) or exists(electronicmailaddresses) or exists(wwwhomepageurl) or exists(messagingids)) is not False class IfcTendon_CorrectPredefinedType: @@ -12137,8 +12147,8 @@ class IfcTendon_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendon_CorrectTypeAssigned: SCOPE = 'entity' @@ -12147,8 +12157,8 @@ class IfcTendon_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifctendontype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifctendontype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonAnchor_CorrectPredefinedType: SCOPE = 'entity' @@ -12157,8 +12167,8 @@ class IfcTendonAnchor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendonAnchor_CorrectTypeAssigned: SCOPE = 'entity' @@ -12167,8 +12177,8 @@ class IfcTendonAnchor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifctendonanchortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifctendonanchortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonAnchorType_CorrectPredefinedType: SCOPE = 'entity' @@ -12177,8 +12187,8 @@ class IfcTendonAnchorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTendonConduit_CorrectPredefinedType: SCOPE = 'entity' @@ -12187,8 +12197,8 @@ class IfcTendonConduit_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendonConduit_CorrectTypeAssigned: SCOPE = 'entity' @@ -12197,8 +12207,8 @@ class IfcTendonConduit_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifctendonconduittype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifctendonconduittype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonConduitType_CorrectPredefinedType: SCOPE = 'entity' @@ -12207,8 +12217,8 @@ class IfcTendonConduitType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTendonType_CorrectPredefinedType: SCOPE = 'entity' @@ -12217,8 +12227,8 @@ class IfcTendonType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcTessellatedFaceSet_Dim(self): return 3 @@ -12230,7 +12240,7 @@ class IfcTextLiteralWithExtent_WR31: @staticmethod def __call__(self): - extent = getattr(self, 'Extent', INDETERMINATE) + extent = express_getattr(self, 'Extent', INDETERMINATE) assert (not 'ifc4x3_rc2.ifcplanarbox' in typeof(extent)) is not False class IfcTextStyleFontModel_MeasureOfFontSize: @@ -12240,7 +12250,7 @@ class IfcTextStyleFontModel_MeasureOfFontSize: @staticmethod def __call__(self): - assert ('ifc4x3_rc2.ifclengthmeasure' in typeof(getattr(self, 'FontSize', INDETERMINATE)) and getattr(self, 'FontSize', INDETERMINATE) > 0.0) is not False + assert ('ifc4x3_rc2.ifclengthmeasure' in typeof(express_getattr(self, 'FontSize', INDETERMINATE)) and express_getattr(self, 'FontSize', INDETERMINATE) > 0.0) is not False class IfcTopologyRepresentation_WR21: SCOPE = 'entity' @@ -12249,7 +12259,7 @@ class IfcTopologyRepresentation_WR21: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3_rc2.ifctopologicalrepresentationitem' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3_rc2.ifctopologicalrepresentationitem' in typeof(temp)]) == 0) is not False class IfcTopologyRepresentation_WR22: SCOPE = 'entity' @@ -12258,7 +12268,7 @@ class IfcTopologyRepresentation_WR22: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationType', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationType', INDETERMINATE)) is not False class IfcTopologyRepresentation_WR23: SCOPE = 'entity' @@ -12267,7 +12277,7 @@ class IfcTopologyRepresentation_WR23: @staticmethod def __call__(self): - assert IfcTopologyRepresentationTypes(getattr(self, 'RepresentationType', INDETERMINATE), getattr(self, 'Items', INDETERMINATE)) is not False + assert IfcTopologyRepresentationTypes(express_getattr(self, 'RepresentationType', INDETERMINATE), express_getattr(self, 'Items', INDETERMINATE)) is not False class IfcToroidalSurface_MajorLargerMinor: SCOPE = 'entity' @@ -12276,8 +12286,8 @@ class IfcToroidalSurface_MajorLargerMinor: @staticmethod def __call__(self): - majorradius = getattr(self, 'MajorRadius', INDETERMINATE) - minorradius = getattr(self, 'MinorRadius', INDETERMINATE) + majorradius = express_getattr(self, 'MajorRadius', INDETERMINATE) + minorradius = express_getattr(self, 'MinorRadius', INDETERMINATE) assert (minorradius < majorradius) is not False class IfcTrackElement_CorrectPredefinedType: @@ -12287,8 +12297,8 @@ class IfcTrackElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTrackElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12297,8 +12307,8 @@ class IfcTrackElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifctrackelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifctrackelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTrackElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12307,8 +12317,8 @@ class IfcTrackElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTransformer_CorrectPredefinedType: SCOPE = 'entity' @@ -12317,8 +12327,8 @@ class IfcTransformer_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTransformer_CorrectTypeAssigned: SCOPE = 'entity' @@ -12327,8 +12337,8 @@ class IfcTransformer_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifctranformertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifctranformertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTransformerType_CorrectPredefinedType: SCOPE = 'entity' @@ -12337,8 +12347,8 @@ class IfcTransformerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTransportElement_CorrectPredefinedType: SCOPE = 'entity' @@ -12347,8 +12357,8 @@ class IfcTransportElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or (predefinedtype != getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) and predefinedtype != getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE)) or ((predefinedtype == getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE)) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or (predefinedtype != express_getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) and predefinedtype != express_getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE)) or ((predefinedtype == express_getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == express_getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE)) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTransportElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12357,8 +12367,8 @@ class IfcTransportElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifctransportelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifctransportelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTransportElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12367,11 +12377,11 @@ class IfcTransportElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) and predefinedtype != getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE) or ((predefinedtype == getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE)) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) and predefinedtype != express_getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE) or ((predefinedtype == express_getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == express_getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE)) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcTriangulatedFaceSet_NumberOfTriangles(self): - coordindex = getattr(self, 'CoordIndex', INDETERMINATE) + coordindex = express_getattr(self, 'CoordIndex', INDETERMINATE) return sizeof(coordindex) class IfcTriangulatedIrregularNetwork_NotClosed: @@ -12381,7 +12391,7 @@ class IfcTriangulatedIrregularNetwork_NotClosed: @staticmethod def __call__(self): - assert (getattr(self, 'Closed', INDETERMINATE) == False) is not False + assert (express_getattr(self, 'Closed', INDETERMINATE) == False) is not False class IfcTrimmedCurve_Trim1ValuesConsistent: SCOPE = 'entity' @@ -12390,7 +12400,7 @@ class IfcTrimmedCurve_Trim1ValuesConsistent: @staticmethod def __call__(self): - trim1 = getattr(self, 'Trim1', INDETERMINATE) + trim1 = express_getattr(self, 'Trim1', INDETERMINATE) assert (hiindex(trim1) == 1 or typeof(express_getitem(trim1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(express_getitem(trim1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcTrimmedCurve_Trim2ValuesConsistent: @@ -12400,7 +12410,7 @@ class IfcTrimmedCurve_Trim2ValuesConsistent: @staticmethod def __call__(self): - trim2 = getattr(self, 'Trim2', INDETERMINATE) + trim2 = express_getattr(self, 'Trim2', INDETERMINATE) assert (hiindex(trim2) == 1 or typeof(express_getitem(trim2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(express_getitem(trim2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcTrimmedCurve_NoTrimOfBoundedCurves: @@ -12410,7 +12420,7 @@ class IfcTrimmedCurve_NoTrimOfBoundedCurves: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) assert (not 'ifc4x3_rc2.ifcboundedcurve' in typeof(basiscurve)) is not False class IfcTubeBundle_CorrectPredefinedType: @@ -12420,8 +12430,8 @@ class IfcTubeBundle_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTubeBundle_CorrectTypeAssigned: SCOPE = 'entity' @@ -12430,8 +12440,8 @@ class IfcTubeBundle_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifctubebundletype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifctubebundletype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTubeBundleType_CorrectPredefinedType: SCOPE = 'entity' @@ -12440,8 +12450,8 @@ class IfcTubeBundleType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTypeObject_NameRequired: SCOPE = 'entity' @@ -12450,7 +12460,7 @@ class IfcTypeObject_NameRequired: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcTypeObject_UniquePropertySetNames: SCOPE = 'entity' @@ -12459,7 +12469,7 @@ class IfcTypeObject_UniquePropertySetNames: @staticmethod def __call__(self): - haspropertysets = getattr(self, 'HasPropertySets', INDETERMINATE) + haspropertysets = express_getattr(self, 'HasPropertySets', INDETERMINATE) assert (not exists(haspropertysets) or IfcUniquePropertySetNames(haspropertysets)) is not False class IfcTypeProduct_ApplicableOccurrence: @@ -12469,7 +12479,7 @@ class IfcTypeProduct_ApplicableOccurrence: @staticmethod def __call__(self): - assert (not exists(lambda : express_getitem(getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or sizeof([temp for temp in getattr(express_getitem(getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not 'ifc4x3_rc2.ifcproduct' in typeof(temp)]) == 0) is not False + assert (not exists(lambda : express_getitem(express_getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or sizeof([temp for temp in express_getattr(express_getitem(express_getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not 'ifc4x3_rc2.ifcproduct' in typeof(temp)]) == 0) is not False class IfcUShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -12478,8 +12488,8 @@ class IfcUShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth / 2.0) is not False class IfcUShapeProfileDef_ValidWebThickness: @@ -12489,8 +12499,8 @@ class IfcUShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - flangewidth = getattr(self, 'FlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + flangewidth = express_getattr(self, 'FlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < flangewidth) is not False class IfcUnitAssignment_WR01: @@ -12500,7 +12510,7 @@ class IfcUnitAssignment_WR01: @staticmethod def __call__(self): - units = getattr(self, 'Units', INDETERMINATE) + units = express_getattr(self, 'Units', INDETERMINATE) assert IfcCorrectUnitAssignment(units) is not False class IfcUnitaryControlElement_CorrectPredefinedType: @@ -12510,8 +12520,8 @@ class IfcUnitaryControlElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcUnitaryControlElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12520,8 +12530,8 @@ class IfcUnitaryControlElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcunitarycontrolelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcunitarycontrolelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcUnitaryControlElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12530,8 +12540,8 @@ class IfcUnitaryControlElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcUnitaryEquipment_CorrectPredefinedType: SCOPE = 'entity' @@ -12540,8 +12550,8 @@ class IfcUnitaryEquipment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcUnitaryEquipment_CorrectTypeAssigned: SCOPE = 'entity' @@ -12550,8 +12560,8 @@ class IfcUnitaryEquipment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcunitaryequipmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcunitaryequipmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcUnitaryEquipmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -12560,8 +12570,8 @@ class IfcUnitaryEquipmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcValve_CorrectPredefinedType: SCOPE = 'entity' @@ -12570,8 +12580,8 @@ class IfcValve_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcValve_CorrectTypeAssigned: SCOPE = 'entity' @@ -12580,8 +12590,8 @@ class IfcValve_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcvalvetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcvalvetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcValveType_CorrectPredefinedType: SCOPE = 'entity' @@ -12590,8 +12600,8 @@ class IfcValveType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVector_MagGreaterOrEqualZero: SCOPE = 'entity' @@ -12600,12 +12610,12 @@ class IfcVector_MagGreaterOrEqualZero: @staticmethod def __call__(self): - magnitude = getattr(self, 'Magnitude', INDETERMINATE) + magnitude = express_getattr(self, 'Magnitude', INDETERMINATE) assert (magnitude >= 0.0) is not False def calc_IfcVector_Dim(self): - orientation = getattr(self, 'Orientation', INDETERMINATE) - return getattr(orientation, 'Dim', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return express_getattr(orientation, 'Dim', INDETERMINATE) class IfcVibrationDamper_CorrectPredefinedType: SCOPE = 'entity' @@ -12614,8 +12624,8 @@ class IfcVibrationDamper_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcVibrationDamper_CorrectTypeAssigned: SCOPE = 'entity' @@ -12624,8 +12634,8 @@ class IfcVibrationDamper_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcvibrationdampertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcvibrationdampertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcVibrationDamperType_CorrectPredefinedType: SCOPE = 'entity' @@ -12634,8 +12644,8 @@ class IfcVibrationDamperType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVibrationIsolator_CorrectPredefinedType: SCOPE = 'entity' @@ -12644,8 +12654,8 @@ class IfcVibrationIsolator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcVibrationIsolator_CorrectTypeAssigned: SCOPE = 'entity' @@ -12654,8 +12664,8 @@ class IfcVibrationIsolator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcvibrationisolatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcvibrationisolatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcVibrationIsolatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -12664,8 +12674,8 @@ class IfcVibrationIsolatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVoidingFeature_HasObjectType: SCOPE = 'entity' @@ -12674,8 +12684,8 @@ class IfcVoidingFeature_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcWall_CorrectPredefinedType: SCOPE = 'entity' @@ -12684,8 +12694,8 @@ class IfcWall_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWall_CorrectTypeAssigned: SCOPE = 'entity' @@ -12694,8 +12704,8 @@ class IfcWall_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcwalltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcwalltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWallElementedCase_HasDecomposition: SCOPE = 'entity' @@ -12704,7 +12714,7 @@ class IfcWallElementedCase_HasDecomposition: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'IsDecomposedBy', INDETERMINATE)) > 0) is not False + assert (hiindex(express_getattr(self, 'IsDecomposedBy', INDETERMINATE)) > 0) is not False class IfcWallStandardCase_HasMaterialLayerSetUsage: SCOPE = 'entity' @@ -12713,7 +12723,7 @@ class IfcWallStandardCase_HasMaterialLayerSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc2.ifcrelassociates.relatedobjects') if 'ifc4x3_rc2.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc2.ifcmateriallayersetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc2.ifcrelassociates.relatedobjects') if 'ifc4x3_rc2.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc2.ifcmateriallayersetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcWallType_CorrectPredefinedType: SCOPE = 'entity' @@ -12722,8 +12732,8 @@ class IfcWallType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWasteTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -12732,8 +12742,8 @@ class IfcWasteTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWasteTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -12742,8 +12752,8 @@ class IfcWasteTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcwasteterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcwasteterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWasteTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -12752,8 +12762,8 @@ class IfcWasteTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWindow_CorrectStyleAssigned: SCOPE = 'entity' @@ -12762,8 +12772,8 @@ class IfcWindow_CorrectStyleAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcwindowtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc2.ifcwindowtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWindowLiningProperties_WR31: SCOPE = 'entity' @@ -12772,8 +12782,8 @@ class IfcWindowLiningProperties_WR31: @staticmethod def __call__(self): - liningdepth = getattr(self, 'LiningDepth', INDETERMINATE) - liningthickness = getattr(self, 'LiningThickness', INDETERMINATE) + liningdepth = express_getattr(self, 'LiningDepth', INDETERMINATE) + liningthickness = express_getattr(self, 'LiningThickness', INDETERMINATE) assert (not (exists(liningdepth) and (not exists(liningthickness)))) is not False class IfcWindowLiningProperties_WR32: @@ -12783,8 +12793,8 @@ class IfcWindowLiningProperties_WR32: @staticmethod def __call__(self): - firsttransomoffset = getattr(self, 'FirstTransomOffset', INDETERMINATE) - secondtransomoffset = getattr(self, 'SecondTransomOffset', INDETERMINATE) + firsttransomoffset = express_getattr(self, 'FirstTransomOffset', INDETERMINATE) + secondtransomoffset = express_getattr(self, 'SecondTransomOffset', INDETERMINATE) assert (not (not exists(firsttransomoffset) and exists(secondtransomoffset))) is not False class IfcWindowLiningProperties_WR33: @@ -12794,8 +12804,8 @@ class IfcWindowLiningProperties_WR33: @staticmethod def __call__(self): - firstmullionoffset = getattr(self, 'FirstMullionOffset', INDETERMINATE) - secondmullionoffset = getattr(self, 'SecondMullionOffset', INDETERMINATE) + firstmullionoffset = express_getattr(self, 'FirstMullionOffset', INDETERMINATE) + secondmullionoffset = express_getattr(self, 'SecondMullionOffset', INDETERMINATE) assert (not (not exists(firstmullionoffset) and exists(secondmullionoffset))) is not False class IfcWindowLiningProperties_WR34: @@ -12805,7 +12815,7 @@ class IfcWindowLiningProperties_WR34: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc2.ifcwindowtype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc2.ifcwindowstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc2.ifcwindowtype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc2.ifcwindowstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcWindowPanelProperties_ApplicableToType: SCOPE = 'entity' @@ -12814,7 +12824,7 @@ class IfcWindowPanelProperties_ApplicableToType: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc2.ifcwindowtype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc2.ifcwindowstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc2.ifcwindowtype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc2.ifcwindowstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcWindowType_CorrectPredefinedType: SCOPE = 'entity' @@ -12823,8 +12833,8 @@ class IfcWindowType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWorkCalendar_CorrectPredefinedType: SCOPE = 'entity' @@ -12833,8 +12843,8 @@ class IfcWorkCalendar_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWorkPlan_CorrectPredefinedType: SCOPE = 'entity' @@ -12843,8 +12853,8 @@ class IfcWorkPlan_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWorkSchedule_CorrectPredefinedType: SCOPE = 'entity' @@ -12853,8 +12863,8 @@ class IfcWorkSchedule_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcZShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -12863,8 +12873,8 @@ class IfcZShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth / 2.0) is not False class IfcZone_WR1: @@ -12874,19 +12884,19 @@ class IfcZone_WR1: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'IsGroupedBy', INDETERMINATE)) == 0 or sizeof([temp for temp in getattr(express_getitem(getattr(self, 'IsGroupedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not ('ifc4x3_rc2.ifczone' in typeof(temp) or 'ifc4x3_rc2.ifcspace' in typeof(temp) or 'ifc4x3_rc2.ifcspatialzone' in typeof(temp))]) == 0) is not False + assert (sizeof(express_getattr(self, 'IsGroupedBy', INDETERMINATE)) == 0 or sizeof([temp for temp in express_getattr(express_getitem(express_getattr(self, 'IsGroupedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not ('ifc4x3_rc2.ifczone' in typeof(temp) or 'ifc4x3_rc2.ifcspace' in typeof(temp) or 'ifc4x3_rc2.ifcspatialzone' in typeof(temp))]) == 0) is not False class IfcRepresentationContextSameWCS: SCOPE = 'file' @staticmethod def __call__(file): - IfcGeometricRepresentationContext = getattr(file, 'by_type', INDETERMINATE)('IfcGeometricRepresentationContext') + IfcGeometricRepresentationContext = express_getattr(file, 'by_type', INDETERMINATE)('IfcGeometricRepresentationContext') isdifferent = False if sizeof(IfcGeometricRepresentationContext) > 1: for i in range(2, hiindex(IfcGeometricRepresentationContext) + 1): - if getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE) != getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE): - isdifferent = not IfcSameValidPrecision(getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) or not IfcSameAxis2Placement(getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) + if express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE) != express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE): + isdifferent = not IfcSameValidPrecision(express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) or not IfcSameAxis2Placement(express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) if isdifferent == True: break assert (isdifferent == False) is not False @@ -12896,11 +12906,11 @@ class IfcSingleProjectInstance: @staticmethod def __call__(file): - IfcProject = getattr(file, 'by_type', INDETERMINATE)('IfcProject') + IfcProject = express_getattr(file, 'by_type', INDETERMINATE)('IfcProject') assert (sizeof(IfcProject) <= 1) is not False def IfcAssociatedSurface(arg): - surf = getattr(arg, 'BasisSurface', INDETERMINATE) + surf = express_getattr(arg, 'BasisSurface', INDETERMINATE) return surf def IfcBaseAxis(dim, axis1, axis2, axis3): @@ -12914,13 +12924,13 @@ def IfcBaseAxis(dim, axis1, axis2, axis3): if exists(axis2): factor = IfcDotProduct(axis2, express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) if factor < 0.0: - u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) elif exists(axis2): d1 = IfcNormalise(axis2) u = [IfcOrthogonalComplement(d1), d1] - u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) else: u = [IfcDirection(DirectionRatios=[1.0, 0.0]), IfcDirection(DirectionRatios=[0.0, 1.0])] return u @@ -12938,7 +12948,7 @@ def IfcBuild2Axes(refdirection): def IfcBuildAxes(axis, refdirection): d1 = nvl(IfcNormalise(axis), IfcDirection(DirectionRatios=[0.0, 0.0, 1.0])) d2 = IfcFirstProjAxis(d1, refdirection) - return [d2, getattr(IfcNormalise(IfcCrossProduct(d1, d2)), 'Orientation', INDETERMINATE), d1] + return [d2, express_getattr(IfcNormalise(IfcCrossProduct(d1, d2)), 'Orientation', INDETERMINATE), d1] def IfcConsecutiveSegments(segments): result = True @@ -12975,11 +12985,11 @@ def IfcConstraintsParamBSpline(degree, upknots, upcp, knotmult, knots): def IfcConvertDirectionInto2D(direction): direction2d = IfcDirection(DirectionRatios=[0.0, 1.0]) - temp = list(getattr(direction2d, 'DirectionRatios', INDETERMINATE)) - temp[1 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(direction, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(direction2d, 'DirectionRatios', INDETERMINATE)) + temp[1 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(direction, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) direction2d.DirectionRatios = temp - temp = list(getattr(direction2d, 'DirectionRatios', INDETERMINATE)) - temp[2 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(direction, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(direction2d, 'DirectionRatios', INDETERMINATE)) + temp[2 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(direction, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) direction2d.DirectionRatios = temp return direction2d @@ -13159,7 +13169,7 @@ def IfcCorrectLocalPlacement(axisplacement, relplacement): if 'ifc4x3_rc2.ifcaxis2placement2d' in typeof(axisplacement): return True if 'ifc4x3_rc2.ifcaxis2placement3d' in typeof(axisplacement): - if getattr(getattr(relplacement, 'RelativePlacement', INDETERMINATE), 'Dim', INDETERMINATE) == 3: + if express_getattr(express_getattr(relplacement, 'RelativePlacement', INDETERMINATE), 'Dim', INDETERMINATE) == 3: return True else: return False @@ -13170,27 +13180,27 @@ def IfcCorrectObjectAssignment(constraint, objects): count = 0 if not exists(constraint): return True - if constraint == getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE): + if constraint == express_getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE): return True - elif constraint == getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3_rc2.ifcproduct' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3_rc2.ifcprocess' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3_rc2.ifccontrol' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3_rc2.ifcresource' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3_rc2.ifcactor' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3_rc2.ifcgroup' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3_rc2.ifcproject' in typeof(temp)]) return count == 0 else: @@ -13202,26 +13212,26 @@ def IfcCorrectUnitAssignment(units): monetaryunitnumber = 0 namedunitnames = express_set([]) derivedunitnames = express_set([]) - namedunitnumber = sizeof([temp for temp in units if 'ifc4x3_rc2.ifcnamedunit' in typeof(temp) and (not getattr(temp, 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE))]) - derivedunitnumber = sizeof([temp for temp in units if 'ifc4x3_rc2.ifcderivedunit' in typeof(temp) and (not getattr(temp, 'UnitType', INDETERMINATE) == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE))]) + namedunitnumber = sizeof([temp for temp in units if 'ifc4x3_rc2.ifcnamedunit' in typeof(temp) and (not express_getattr(temp, 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE))]) + derivedunitnumber = sizeof([temp for temp in units if 'ifc4x3_rc2.ifcderivedunit' in typeof(temp) and (not express_getattr(temp, 'UnitType', INDETERMINATE) == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE))]) monetaryunitnumber = sizeof([temp for temp in units if 'ifc4x3_rc2.ifcmonetaryunit' in typeof(temp)]) for i in range(1, sizeof(units) + 1): - if 'ifc4x3_rc2.ifcnamedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE)): - namedunitnames = namedunitnames + getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) - if 'ifc4x3_rc2.ifcderivedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE)): - derivedunitnames = derivedunitnames + getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) + if 'ifc4x3_rc2.ifcnamedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE)): + namedunitnames = namedunitnames + express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) + if 'ifc4x3_rc2.ifcderivedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE)): + derivedunitnames = derivedunitnames + express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) return sizeof(namedunitnames) == namedunitnumber and sizeof(derivedunitnames) == derivedunitnumber and (monetaryunitnumber <= 1) def IfcCrossProduct(arg1, arg2): - if (not exists(arg1) or getattr(arg1, 'Dim', INDETERMINATE) == 2) or (not exists(arg2) or getattr(arg2, 'Dim', INDETERMINATE) == 2): + if (not exists(arg1) or express_getattr(arg1, 'Dim', INDETERMINATE) == 2) or (not exists(arg2) or express_getattr(arg2, 'Dim', INDETERMINATE) == 2): return None else: - v1 = getattr(IfcNormalise(arg1), 'DirectionRatios', INDETERMINATE) - v2 = getattr(IfcNormalise(arg2), 'DirectionRatios', INDETERMINATE) + v1 = express_getattr(IfcNormalise(arg1), 'DirectionRatios', INDETERMINATE) + v2 = express_getattr(IfcNormalise(arg2), 'DirectionRatios', INDETERMINATE) res = IfcDirection(DirectionRatios=[express_getitem(v1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(v1, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(v1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) mag = 0.0 for i in range(1, 3 + 1): - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: @@ -13230,17 +13240,17 @@ def IfcCrossProduct(arg1, arg2): def IfcCurveDim(curve): if 'ifc4x3_rc2.ifcline' in typeof(curve): - return getattr(getattr(curve, 'Pnt', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Pnt', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_rc2.ifcconic' in typeof(curve): - return getattr(getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_rc2.ifcpolyline' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'Points', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'Points', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_rc2.ifctrimmedcurve' in typeof(curve): - return IfcCurveDim(getattr(curve, 'BasisCurve', INDETERMINATE)) + return IfcCurveDim(express_getattr(curve, 'BasisCurve', INDETERMINATE)) if 'ifc4x3_rc2.ifccompositecurve' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_rc2.ifcbsplinecurve' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_rc2.ifcoffsetcurve2d' in typeof(curve): return 2 if 'ifc4x3_rc2.ifcoffsetcurve3d' in typeof(curve): @@ -13258,13 +13268,13 @@ def IfcCurveDim(curve): if 'ifc4x3_rc2.ifcpcurve' in typeof(curve): return 3 if 'ifc4x3_rc2.ifcindexedpolycurve' in typeof(curve): - return getattr(getattr(curve, 'Points', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Points', INDETERMINATE), 'Dim', INDETERMINATE) return None def IfcCurveWeightsPositive(b): result = True - for i in range(0, getattr(b, 'UpperIndexOnControlPoints', INDETERMINATE) + 1): - if express_getitem(getattr(b, 'Weights', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: + for i in range(0, express_getattr(b, 'UpperIndexOnControlPoints', INDETERMINATE) + 1): + if express_getitem(express_getattr(b, 'Weights', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: result = False return result return result @@ -13272,13 +13282,13 @@ def IfcCurveWeightsPositive(b): def IfcDeriveDimensionalExponents(unitelements): result = IfcDimensionalExponents(0, 0, 0, 0, 0, 0, 0) for i in range(loindex(unitelements), hiindex(unitelements) + 1): - result.LengthExponent = getattr(result, 'LengthExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LengthExponent', INDETERMINATE) - result.MassExponent = getattr(result, 'MassExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'MassExponent', INDETERMINATE) - result.TimeExponent = getattr(result, 'TimeExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'TimeExponent', INDETERMINATE) - result.ElectricCurrentExponent = getattr(result, 'ElectricCurrentExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ElectricCurrentExponent', INDETERMINATE) - result.ThermodynamicTemperatureExponent = getattr(result, 'ThermodynamicTemperatureExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ThermodynamicTemperatureExponent', INDETERMINATE) - result.AmountOfSubstanceExponent = getattr(result, 'AmountOfSubstanceExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'AmountOfSubstanceExponent', INDETERMINATE) - result.LuminousIntensityExponent = getattr(result, 'LuminousIntensityExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LuminousIntensityExponent', INDETERMINATE) + result.LengthExponent = express_getattr(result, 'LengthExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LengthExponent', INDETERMINATE) + result.MassExponent = express_getattr(result, 'MassExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'MassExponent', INDETERMINATE) + result.TimeExponent = express_getattr(result, 'TimeExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'TimeExponent', INDETERMINATE) + result.ElectricCurrentExponent = express_getattr(result, 'ElectricCurrentExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ElectricCurrentExponent', INDETERMINATE) + result.ThermodynamicTemperatureExponent = express_getattr(result, 'ThermodynamicTemperatureExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ThermodynamicTemperatureExponent', INDETERMINATE) + result.AmountOfSubstanceExponent = express_getattr(result, 'AmountOfSubstanceExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'AmountOfSubstanceExponent', INDETERMINATE) + result.LuminousIntensityExponent = express_getattr(result, 'LuminousIntensityExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LuminousIntensityExponent', INDETERMINATE) return result def IfcDimensionsForSiUnit(n): @@ -13348,15 +13358,15 @@ def IfcDimensionsForSiUnit(n): def IfcDotProduct(arg1, arg2): if not exists(arg1) or not exists(arg2): scalar = None - elif getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + elif express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): scalar = None else: vec1 = IfcNormalise(arg1) vec2 = IfcNormalise(arg2) - ndim = getattr(arg1, 'Dim', INDETERMINATE) + ndim = express_getattr(arg1, 'Dim', INDETERMINATE) scalar = 0.0 for i in range(1, ndim + 1): - scalar = scalar + express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + scalar = scalar + express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return scalar def IfcFirstProjAxis(zaxis, arg): @@ -13365,36 +13375,36 @@ def IfcFirstProjAxis(zaxis, arg): else: z = IfcNormalise(zaxis) if not exists(arg): - if getattr(z, 'DirectionRatios', INDETERMINATE) != [1.0, 0.0, 0.0]: + if express_getattr(z, 'DirectionRatios', INDETERMINATE) != [1.0, 0.0, 0.0]: v = IfcDirection(DirectionRatios=[1.0, 0.0, 0.0]) else: v = IfcDirection(DirectionRatios=[0.0, 1.0, 0.0]) else: - if getattr(arg, 'Dim', INDETERMINATE) != 3: + if express_getattr(arg, 'Dim', INDETERMINATE) != 3: return None - if getattr(IfcCrossProduct(arg, z), 'Magnitude', INDETERMINATE) == 0.0: + if express_getattr(IfcCrossProduct(arg, z), 'Magnitude', INDETERMINATE) == 0.0: return None else: v = IfcNormalise(arg) xvec = IfcScalarTimesVector(IfcDotProduct(v, z), z) - xaxis = getattr(IfcVectorDifference(v, xvec), 'Orientation', INDETERMINATE) + xaxis = express_getattr(IfcVectorDifference(v, xvec), 'Orientation', INDETERMINATE) xaxis = IfcNormalise(xaxis) return xaxis def IfcGetBasisSurface(c): surfs = [] if 'ifc4x3_rc2.ifcpcurve' in typeof(c): - surfs = [getattr(c, 'BasisSurface', INDETERMINATE)] + surfs = [express_getattr(c, 'BasisSurface', INDETERMINATE)] elif 'ifc4x3_rc2.ifcsurfacecurve' in typeof(c): - n = sizeof(getattr(c, 'AssociatedGeometry', INDETERMINATE)) + n = sizeof(express_getattr(c, 'AssociatedGeometry', INDETERMINATE)) for i in range(1, n + 1): - surfs = surfs + IfcAssociatedSurface(express_getitem(getattr(c, 'AssociatedGeometry', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) + surfs = surfs + IfcAssociatedSurface(express_getitem(express_getattr(c, 'AssociatedGeometry', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) if 'ifc4x3_rc2.ifccompositecurveonsurface' in typeof(c): - n = sizeof(getattr(c, 'Segments', INDETERMINATE)) - surfs = IfcGetBasisSurface(getattr(express_getitem(getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) + n = sizeof(express_getattr(c, 'Segments', INDETERMINATE)) + surfs = IfcGetBasisSurface(express_getattr(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) if n > 1: for i in range(2, n + 1): - surfs = surfs * IfcGetBasisSurface(getattr(express_getitem(getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) + surfs = surfs * IfcGetBasisSurface(express_getattr(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) return surfs def IfcGradient(gradientcurve): @@ -13414,9 +13424,9 @@ def IfcListToArray(lis, low, u): def IfcLoopHeadToTail(aloop): p = True - n = sizeof(getattr(aloop, 'EdgeList', INDETERMINATE)) + n = sizeof(express_getattr(aloop, 'EdgeList', INDETERMINATE)) for i in range(2, n + 1): - p = p and getattr(express_getitem(getattr(aloop, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == getattr(express_getitem(getattr(aloop, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) + p = p and express_getattr(express_getitem(express_getattr(aloop, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == express_getattr(express_getitem(express_getattr(aloop, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) return p def IfcMakeArrayOfArray(lis, low1, u1, low2, u2): @@ -13434,10 +13444,10 @@ def IfcMakeArrayOfArray(lis, low1, u1, low2, u2): return res def IfcMlsTotalThickness(layerset): - max = getattr(express_getitem(getattr(layerset, 'MaterialLayers', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) - if sizeof(getattr(layerset, 'MaterialLayers', INDETERMINATE)) > 1: - for i in range(2, hiindex(getattr(layerset, 'MaterialLayers', INDETERMINATE)) + 1): - max = max + getattr(express_getitem(getattr(layerset, 'MaterialLayers', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) + max = express_getattr(express_getitem(express_getattr(layerset, 'MaterialLayers', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) + if sizeof(express_getattr(layerset, 'MaterialLayers', INDETERMINATE)) > 1: + for i in range(2, hiindex(express_getattr(layerset, 'MaterialLayers', INDETERMINATE)) + 1): + max = max + express_getattr(express_getitem(express_getattr(layerset, 'MaterialLayers', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) return max def IfcNormalise(arg): @@ -13448,25 +13458,25 @@ def IfcNormalise(arg): return None else: if 'ifc4x3_rc2.ifcvector' in typeof(arg): - ndim = getattr(arg, 'Dim', INDETERMINATE) - v.DirectionRatios = getattr(getattr(arg, 'Orientation', INDETERMINATE), 'DirectionRatios', INDETERMINATE) - vec.Magnitude = getattr(arg, 'Magnitude', INDETERMINATE) + ndim = express_getattr(arg, 'Dim', INDETERMINATE) + v.DirectionRatios = express_getattr(express_getattr(arg, 'Orientation', INDETERMINATE), 'DirectionRatios', INDETERMINATE) + vec.Magnitude = express_getattr(arg, 'Magnitude', INDETERMINATE) vec.Orientation = v - if getattr(arg, 'Magnitude', INDETERMINATE) == 0.0: + if express_getattr(arg, 'Magnitude', INDETERMINATE) == 0.0: return None else: vec.Magnitude = 1.0 else: - ndim = getattr(arg, 'Dim', INDETERMINATE) - v.DirectionRatios = getattr(arg, 'DirectionRatios', INDETERMINATE) + ndim = express_getattr(arg, 'Dim', INDETERMINATE) + v.DirectionRatios = express_getattr(arg, 'DirectionRatios', INDETERMINATE) mag = 0.0 for i in range(1, ndim + 1): - mag = mag + express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: mag = sqrt(mag) for i in range(1, ndim + 1): - temp = list(getattr(v, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) / mag + temp = list(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) / mag v.DirectionRatios = temp if 'ifc4x3_rc2.ifcvector' in typeof(arg): vec.Orientation = v @@ -13478,18 +13488,18 @@ def IfcNormalise(arg): return result def IfcOrthogonalComplement(vec): - if not exists(vec) or getattr(vec, 'Dim', INDETERMINATE) != 2: + if not exists(vec) or express_getattr(vec, 'Dim', INDETERMINATE) != 2: return None else: - result = IfcDirection(DirectionRatios=[-express_getitem(getattr(vec, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(vec, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) + result = IfcDirection(DirectionRatios=[-express_getitem(express_getattr(vec, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(vec, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) return result def IfcPathHeadToTail(apath): n = 0 p = unknown - n = sizeof(getattr(apath, 'EdgeList', INDETERMINATE)) + n = sizeof(express_getattr(apath, 'EdgeList', INDETERMINATE)) for i in range(2, n + 1): - p = p and getattr(express_getitem(getattr(apath, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == getattr(express_getitem(getattr(apath, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) + p = p and express_getattr(express_getitem(express_getattr(apath, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == express_getattr(express_getitem(express_getattr(apath, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) return p def IfcPointListDim(pointlist): @@ -13500,32 +13510,32 @@ def IfcPointListDim(pointlist): return None def IfcSameAxis2Placement(ap1, ap2, epsilon): - return IfcSameDirection(express_getitem(getattr(ap1, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(ap2, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameDirection(express_getitem(getattr(ap1, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(ap2, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameCartesianPoint(getattr(ap1, 'Location', INDETERMINATE), getattr(ap1, 'Location', INDETERMINATE), epsilon) + return IfcSameDirection(express_getitem(express_getattr(ap1, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(ap2, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameDirection(express_getitem(express_getattr(ap1, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(ap2, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameCartesianPoint(express_getattr(ap1, 'Location', INDETERMINATE), express_getattr(ap1, 'Location', INDETERMINATE), epsilon) def IfcSameCartesianPoint(cp1, cp2, epsilon): - cp1x = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - cp1y = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp1x = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp1y = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) cp1z = 0 - cp2x = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - cp2y = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp2x = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp2y = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) cp2z = 0 - if sizeof(getattr(cp1, 'Coordinates', INDETERMINATE)) > 2: - cp1z = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - if sizeof(getattr(cp2, 'Coordinates', INDETERMINATE)) > 2: - cp2z = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(cp1, 'Coordinates', INDETERMINATE)) > 2: + cp1z = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(cp2, 'Coordinates', INDETERMINATE)) > 2: + cp2z = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return IfcSameValue(cp1x, cp2x, epsilon) and IfcSameValue(cp1y, cp2y, epsilon) and IfcSameValue(cp1z, cp2z, epsilon) def IfcSameDirection(dir1, dir2, epsilon): - dir1x = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - dir1y = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir1x = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir1y = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) dir1z = 0 - dir2x = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - dir2y = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir2x = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir2y = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) dir2z = 0 - if sizeof(getattr(dir1, 'DirectionRatios', INDETERMINATE)) > 2: - dir1z = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - if sizeof(getattr(dir2, 'DirectionRatios', INDETERMINATE)) > 2: - dir2z = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(dir1, 'DirectionRatios', INDETERMINATE)) > 2: + dir1z = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(dir2, 'DirectionRatios', INDETERMINATE)) > 2: + dir2z = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return IfcSameValue(dir1x, dir2x, epsilon) and IfcSameValue(dir1y, dir2y, epsilon) and IfcSameValue(dir1z, dir2z, epsilon) def IfcSameValidPrecision(epsilon1, epsilon2): @@ -13546,15 +13556,15 @@ def IfcScalarTimesVector(scalar, vec): return None else: if 'ifc4x3_rc2.ifcvector' in typeof(vec): - v = getattr(vec, 'Orientation', INDETERMINATE) - mag = scalar * getattr(vec, 'Magnitude', INDETERMINATE) + v = express_getattr(vec, 'Orientation', INDETERMINATE) + mag = scalar * express_getattr(vec, 'Magnitude', INDETERMINATE) else: v = vec mag = scalar if mag < 0.0: - for i in range(1, sizeof(getattr(v, 'DirectionRatios', INDETERMINATE)) + 1): - temp = list(getattr(v, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + for i in range(1, sizeof(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + 1): + temp = list(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) v.DirectionRatios = temp mag = -mag result = IfcVector(Orientation=IfcNormalise(v), Magnitude=mag) @@ -13570,71 +13580,71 @@ def IfcSecondProjAxis(zaxis, xaxis, arg): temp = IfcScalarTimesVector(IfcDotProduct(v, xaxis), xaxis) yaxis = IfcVectorDifference(yaxis, temp) yaxis = IfcNormalise(yaxis) - return getattr(yaxis, 'Orientation', INDETERMINATE) + return express_getattr(yaxis, 'Orientation', INDETERMINATE) def IfcShapeRepresentationTypes(reptype, items): count = 0 - if getattr(reptype, 'lower', INDETERMINATE)() == 'point': + if express_getattr(reptype, 'lower', INDETERMINATE)() == 'point': count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifcpoint' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'pointcloud': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'pointcloud': count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifccartesianpointlist3d' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve': count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifccurve' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve2d': - count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifccurve' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 2]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve3d': - count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifccurve' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 3]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve2d': + count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifccurve' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 2]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve3d': + count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifccurve' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 3]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface': count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifcsurface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface2d': - count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifcsurface' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 2]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface3d': - count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifcsurface' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 3]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'fillarea': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface2d': + count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifcsurface' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 2]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface3d': + count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifcsurface' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 3]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'fillarea': count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifcannotationfillarea' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'text': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'text': count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifctextliteral' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsurface': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsurface': count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifcbsplinesurface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'annotation2d': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'annotation2d': count = sizeof([temp for temp in items if sizeof(typeof(temp) * ['ifc4x3_rc2.ifcpoint', 'ifc4x3_rc2.ifccurve', 'ifc4x3_rc2.ifcgeometriccurveset', 'ifc4x3_rc2.ifcannotationfillarea', 'ifc4x3_rc2.ifctextliteral']) == 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'geometricset': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'geometricset': count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifcgeometricset' in typeof(temp) or 'ifc4x3_rc2.ifcpoint' in typeof(temp) or 'ifc4x3_rc2.ifccurve' in typeof(temp) or ('ifc4x3_rc2.ifcsurface' in typeof(temp))]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'geometriccurveset': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'geometriccurveset': count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifcgeometriccurveset' in typeof(temp) or 'ifc4x3_rc2.ifcgeometricset' in typeof(temp) or 'ifc4x3_rc2.ifcpoint' in typeof(temp) or ('ifc4x3_rc2.ifccurve' in typeof(temp))]) for i in range(1, hiindex(items) + 1): if 'ifc4x3_rc2.ifcgeometricset' in typeof(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - if sizeof([temp for temp in getattr(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Elements', INDETERMINATE) if 'ifc4x3_rc2.ifcsurface' in typeof(temp)]) > 0: + if sizeof([temp for temp in express_getattr(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Elements', INDETERMINATE) if 'ifc4x3_rc2.ifcsurface' in typeof(temp)]) > 0: count = count - 1 - elif getattr(reptype, 'lower', INDETERMINATE)() == 'tessellation': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'tessellation': count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifctessellateditem' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surfaceorsolidmodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surfaceorsolidmodel': count = sizeof([temp for temp in items if sizeof(['ifc4x3_rc2.ifctessellateditem', 'ifc4x3_rc2.ifcshellbasedsurfacemodel', 'ifc4x3_rc2.ifcfacebasedsurfacemodel', 'ifc4x3_rc2.ifcsolidmodel'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surfacemodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surfacemodel': count = sizeof([temp for temp in items if sizeof(['ifc4x3_rc2.ifctessellateditem', 'ifc4x3_rc2.ifcshellbasedsurfacemodel', 'ifc4x3_rc2.ifcfacebasedsurfacemodel'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'solidmodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'solidmodel': count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifcsolidmodel' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'sweptsolid': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'sweptsolid': count = sizeof([temp for temp in items if sizeof(['ifc4x3_rc2.ifcextrudedareasolid', 'ifc4x3_rc2.ifcrevolvedareasolid'] * typeof(temp)) >= 1 and sizeof(['ifc4x3_rc2.ifcextrudedareasolidtapered', 'ifc4x3_rc2.ifcrevolvedareasolidtapered'] * typeof(temp)) == 0]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsweptsolid': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsweptsolid': count = sizeof([temp for temp in items if sizeof(['ifc4x3_rc2.ifcsweptareasolid', 'ifc4x3_rc2.ifcsweptdisksolid'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'csg': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'csg': count = sizeof([temp for temp in items if sizeof(['ifc4x3_rc2.ifcbooleanresult', 'ifc4x3_rc2.ifccsgprimitive3d', 'ifc4x3_rc2.ifccsgsolid'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'clipping': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'clipping': count = sizeof([temp for temp in items if sizeof(['ifc4x3_rc2.ifccsgsolid', 'ifc4x3_rc2.ifcbooleanclippingresult'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'brep': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'brep': count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifcfacetedbrep' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedbrep': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedbrep': count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifcmanifoldsolidbrep' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'boundingbox': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'boundingbox': count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifcboundingbox' in typeof(temp)]) if sizeof(items) > 1: count = 0 - elif getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedspine': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedspine': count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifcsectionedspine' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'lightsource': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'lightsource': count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifclightsource' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'mappedrepresentation': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'mappedrepresentation': count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifcmappeditem' in typeof(temp)]) else: return None @@ -13642,9 +13652,9 @@ def IfcShapeRepresentationTypes(reptype, items): def IfcSurfaceWeightsPositive(b): result = True - weights = getattr(b, 'Weights', INDETERMINATE) - for i in range(0, getattr(b, 'UUpper', INDETERMINATE) + 1): - for j in range(0, getattr(b, 'VUpper', INDETERMINATE) + 1): + weights = express_getattr(b, 'Weights', INDETERMINATE) + for i in range(0, express_getattr(b, 'UUpper', INDETERMINATE) + 1): + for j in range(0, express_getattr(b, 'VUpper', INDETERMINATE) + 1): if express_getitem(express_getitem(weights, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), j - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: result = False return result @@ -13654,28 +13664,28 @@ def IfcTaperedSweptAreaProfiles(startarea, endarea): result = False if 'ifc4x3_rc2.ifcparameterizedprofiledef' in typeof(startarea): if 'ifc4x3_rc2.ifcderivedprofiledef' in typeof(endarea): - result = startarea == getattr(endarea, 'ParentProfile', INDETERMINATE) + result = startarea == express_getattr(endarea, 'ParentProfile', INDETERMINATE) else: result = typeof(startarea) == typeof(endarea) elif 'ifc4x3_rc2.ifcderivedprofiledef' in typeof(endarea): - result = startarea == getattr(endarea, 'ParentProfile', INDETERMINATE) + result = startarea == express_getattr(endarea, 'ParentProfile', INDETERMINATE) else: result = False return result def IfcTopologyRepresentationTypes(reptype, items): count = 0 - if getattr(reptype, 'lower', INDETERMINATE)() == 'vertex': + if express_getattr(reptype, 'lower', INDETERMINATE)() == 'vertex': count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifcvertex' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'edge': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'edge': count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifcedge' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'path': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'path': count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifcpath' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'face': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'face': count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifcface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'shell': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'shell': count = sizeof([temp for temp in items if 'ifc4x3_rc2.ifcopenshell' in typeof(temp) or 'ifc4x3_rc2.ifcclosedshell' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'undefined': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'undefined': return True else: return None @@ -13686,7 +13696,7 @@ def IfcUniqueDefinitionNames(relations): if sizeof(relations) == 0: return True for i in range(1, hiindex(relations) + 1): - definition = getattr(express_getitem(relations, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingPropertyDefinition', INDETERMINATE) + definition = express_getattr(express_getitem(relations, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingPropertyDefinition', INDETERMINATE) if 'ifc4x3_rc2.ifcpropertysetdefinition' in typeof(definition): properties = properties + definition elif 'ifc4x3_rc2.ifcpropertysetdefinitionset' in typeof(definition): @@ -13699,7 +13709,7 @@ def IfcUniqueDefinitionNames(relations): def IfcUniquePropertyName(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcUniquePropertySetNames(properties): @@ -13707,7 +13717,7 @@ def IfcUniquePropertySetNames(properties): unnamed = 0 for i in range(1, hiindex(properties) + 1): if 'ifc4x3_rc2.ifcpropertyset' in typeof(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) else: unnamed = unnamed + 1 return sizeof(names) + unnamed == sizeof(properties) @@ -13715,41 +13725,41 @@ def IfcUniquePropertySetNames(properties): def IfcUniquePropertyTemplateNames(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcUniqueQuantityNames(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcVectorDifference(arg1, arg2): - if (not exists(arg1) or not exists(arg2)) or getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + if (not exists(arg1) or not exists(arg2)) or express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): return None else: if 'ifc4x3_rc2.ifcvector' in typeof(arg1): - mag1 = getattr(arg1, 'Magnitude', INDETERMINATE) - vec1 = getattr(arg1, 'Orientation', INDETERMINATE) + mag1 = express_getattr(arg1, 'Magnitude', INDETERMINATE) + vec1 = express_getattr(arg1, 'Orientation', INDETERMINATE) else: mag1 = 1.0 vec1 = arg1 if 'ifc4x3_rc2.ifcvector' in typeof(arg2): - mag2 = getattr(arg2, 'Magnitude', INDETERMINATE) - vec2 = getattr(arg2, 'Orientation', INDETERMINATE) + mag2 = express_getattr(arg2, 'Magnitude', INDETERMINATE) + vec2 = express_getattr(arg2, 'Orientation', INDETERMINATE) else: mag2 = 1.0 vec2 = arg2 vec1 = IfcNormalise(vec1) vec2 = IfcNormalise(vec2) - ndim = sizeof(getattr(vec1, 'DirectionRatios', INDETERMINATE)) + ndim = sizeof(express_getattr(vec1, 'DirectionRatios', INDETERMINATE)) mag = 0.0 res = IfcDirection(DirectionRatios=[0.0] * ndim) for i in range(1, ndim + 1): - temp = list(getattr(res, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - mag2 * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(res, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - mag2 * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) res.DirectionRatios = temp - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: @@ -13757,31 +13767,31 @@ def IfcVectorDifference(arg1, arg2): return result def IfcVectorSum(arg1, arg2): - if (not exists(arg1) or not exists(arg2)) or getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + if (not exists(arg1) or not exists(arg2)) or express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): return None else: if 'ifc4x3_rc2.ifcvector' in typeof(arg1): - mag1 = getattr(arg1, 'Magnitude', INDETERMINATE) - vec1 = getattr(arg1, 'Orientation', INDETERMINATE) + mag1 = express_getattr(arg1, 'Magnitude', INDETERMINATE) + vec1 = express_getattr(arg1, 'Orientation', INDETERMINATE) else: mag1 = 1.0 vec1 = arg1 if 'ifc4x3_rc2.ifcvector' in typeof(arg2): - mag2 = getattr(arg2, 'Magnitude', INDETERMINATE) - vec2 = getattr(arg2, 'Orientation', INDETERMINATE) + mag2 = express_getattr(arg2, 'Magnitude', INDETERMINATE) + vec2 = express_getattr(arg2, 'Orientation', INDETERMINATE) else: mag2 = 1.0 vec2 = arg2 vec1 = IfcNormalise(vec1) vec2 = IfcNormalise(vec2) - ndim = sizeof(getattr(vec1, 'DirectionRatios', INDETERMINATE)) + ndim = sizeof(express_getattr(vec1, 'DirectionRatios', INDETERMINATE)) mag = 0.0 res = IfcDirection(DirectionRatios=[0.0] * ndim) for i in range(1, ndim + 1): - temp = list(getattr(res, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag2 * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(res, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag2 * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) res.DirectionRatios = temp - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC3.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC3.py index 787b376787..38e4f8b448 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC3.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC3.py @@ -1,5 +1,8 @@ import ifcopenshell +def is_indeterminate(v): + return v is None or type(v).__name__ == 'indeterminate_type' + def exists(v): if callable(v): try: @@ -7,10 +10,10 @@ def exists(v): except IndexError as e: return False else: - return v is not None + return not is_indeterminate(v) def nvl(v, default): - return v if v is not None else default + return v if not is_indeterminate(v) else default def is_entity(inst): if isinstance(inst, ifcopenshell.entity_instance): @@ -22,13 +25,13 @@ def is_entity(inst): def express_len(v): if isinstance(v, ifcopenshell.entity_instance) and (not is_entity(v)): v = v[0] - elif v is None or v is INDETERMINATE: + elif is_indeterminate(v): return INDETERMINATE return len(v) old_range = range def range(*args): - if INDETERMINATE in args: + if any(map(is_indeterminate, args)): return yield from old_range(*args) sizeof = express_len @@ -80,6 +83,13 @@ def express_getitem(aggr, idx, default): return aggr[idx] except IndexError as e: return None + +def express_getattr(aggr, name, default): + v = getattr(aggr, name, default) + if v is None: + return default + else: + return v EXPRESS_ONE_BASED_INDEXING = 1 def typeof(inst): @@ -140,2375 +150,2375 @@ INDETERMINATE = indeterminate_type() class enum_namespace: def __getattr__(self, k): - return getattr(k, 'upper', INDETERMINATE)() + return express_getattr(k, 'upper', INDETERMINATE)() IfcActionRequestTypeEnum = enum_namespace() -email = getattr(IfcActionRequestTypeEnum, 'EMAIL', INDETERMINATE) -fax = getattr(IfcActionRequestTypeEnum, 'FAX', INDETERMINATE) -phone = getattr(IfcActionRequestTypeEnum, 'PHONE', INDETERMINATE) -post = getattr(IfcActionRequestTypeEnum, 'POST', INDETERMINATE) -verbal = getattr(IfcActionRequestTypeEnum, 'VERBAL', INDETERMINATE) -userdefined = getattr(IfcActionRequestTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionRequestTypeEnum, 'NOTDEFINED', INDETERMINATE) +email = IfcActionRequestTypeEnum.EMAIL +fax = IfcActionRequestTypeEnum.FAX +phone = IfcActionRequestTypeEnum.PHONE +post = IfcActionRequestTypeEnum.POST +verbal = IfcActionRequestTypeEnum.VERBAL +userdefined = IfcActionRequestTypeEnum.USERDEFINED +notdefined = IfcActionRequestTypeEnum.NOTDEFINED IfcActionSourceTypeEnum = enum_namespace() -dead_load_g = getattr(IfcActionSourceTypeEnum, 'DEAD_LOAD_G', INDETERMINATE) -completion_g1 = getattr(IfcActionSourceTypeEnum, 'COMPLETION_G1', INDETERMINATE) -live_load_q = getattr(IfcActionSourceTypeEnum, 'LIVE_LOAD_Q', INDETERMINATE) -snow_s = getattr(IfcActionSourceTypeEnum, 'SNOW_S', INDETERMINATE) -wind_w = getattr(IfcActionSourceTypeEnum, 'WIND_W', INDETERMINATE) -prestressing_p = getattr(IfcActionSourceTypeEnum, 'PRESTRESSING_P', INDETERMINATE) -settlement_u = getattr(IfcActionSourceTypeEnum, 'SETTLEMENT_U', INDETERMINATE) -temperature_t = getattr(IfcActionSourceTypeEnum, 'TEMPERATURE_T', INDETERMINATE) -earthquake_e = getattr(IfcActionSourceTypeEnum, 'EARTHQUAKE_E', INDETERMINATE) -fire = getattr(IfcActionSourceTypeEnum, 'FIRE', INDETERMINATE) -impulse = getattr(IfcActionSourceTypeEnum, 'IMPULSE', INDETERMINATE) -impact = getattr(IfcActionSourceTypeEnum, 'IMPACT', INDETERMINATE) -transport = getattr(IfcActionSourceTypeEnum, 'TRANSPORT', INDETERMINATE) -erection = getattr(IfcActionSourceTypeEnum, 'ERECTION', INDETERMINATE) -propping = getattr(IfcActionSourceTypeEnum, 'PROPPING', INDETERMINATE) -system_imperfection = getattr(IfcActionSourceTypeEnum, 'SYSTEM_IMPERFECTION', INDETERMINATE) -shrinkage = getattr(IfcActionSourceTypeEnum, 'SHRINKAGE', INDETERMINATE) -creep = getattr(IfcActionSourceTypeEnum, 'CREEP', INDETERMINATE) -lack_of_fit = getattr(IfcActionSourceTypeEnum, 'LACK_OF_FIT', INDETERMINATE) -buoyancy = getattr(IfcActionSourceTypeEnum, 'BUOYANCY', INDETERMINATE) -ice = getattr(IfcActionSourceTypeEnum, 'ICE', INDETERMINATE) -current = getattr(IfcActionSourceTypeEnum, 'CURRENT', INDETERMINATE) -wave = getattr(IfcActionSourceTypeEnum, 'WAVE', INDETERMINATE) -rain = getattr(IfcActionSourceTypeEnum, 'RAIN', INDETERMINATE) -brakes = getattr(IfcActionSourceTypeEnum, 'BRAKES', INDETERMINATE) -userdefined = getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionSourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dead_load_g = IfcActionSourceTypeEnum.DEAD_LOAD_G +completion_g1 = IfcActionSourceTypeEnum.COMPLETION_G1 +live_load_q = IfcActionSourceTypeEnum.LIVE_LOAD_Q +snow_s = IfcActionSourceTypeEnum.SNOW_S +wind_w = IfcActionSourceTypeEnum.WIND_W +prestressing_p = IfcActionSourceTypeEnum.PRESTRESSING_P +settlement_u = IfcActionSourceTypeEnum.SETTLEMENT_U +temperature_t = IfcActionSourceTypeEnum.TEMPERATURE_T +earthquake_e = IfcActionSourceTypeEnum.EARTHQUAKE_E +fire = IfcActionSourceTypeEnum.FIRE +impulse = IfcActionSourceTypeEnum.IMPULSE +impact = IfcActionSourceTypeEnum.IMPACT +transport = IfcActionSourceTypeEnum.TRANSPORT +erection = IfcActionSourceTypeEnum.ERECTION +propping = IfcActionSourceTypeEnum.PROPPING +system_imperfection = IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION +shrinkage = IfcActionSourceTypeEnum.SHRINKAGE +creep = IfcActionSourceTypeEnum.CREEP +lack_of_fit = IfcActionSourceTypeEnum.LACK_OF_FIT +buoyancy = IfcActionSourceTypeEnum.BUOYANCY +ice = IfcActionSourceTypeEnum.ICE +current = IfcActionSourceTypeEnum.CURRENT +wave = IfcActionSourceTypeEnum.WAVE +rain = IfcActionSourceTypeEnum.RAIN +brakes = IfcActionSourceTypeEnum.BRAKES +userdefined = IfcActionSourceTypeEnum.USERDEFINED +notdefined = IfcActionSourceTypeEnum.NOTDEFINED IfcActionTypeEnum = enum_namespace() -permanent_g = getattr(IfcActionTypeEnum, 'PERMANENT_G', INDETERMINATE) -variable_q = getattr(IfcActionTypeEnum, 'VARIABLE_Q', INDETERMINATE) -extraordinary_a = getattr(IfcActionTypeEnum, 'EXTRAORDINARY_A', INDETERMINATE) -userdefined = getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionTypeEnum, 'NOTDEFINED', INDETERMINATE) +permanent_g = IfcActionTypeEnum.PERMANENT_G +variable_q = IfcActionTypeEnum.VARIABLE_Q +extraordinary_a = IfcActionTypeEnum.EXTRAORDINARY_A +userdefined = IfcActionTypeEnum.USERDEFINED +notdefined = IfcActionTypeEnum.NOTDEFINED IfcActuatorTypeEnum = enum_namespace() -electricactuator = getattr(IfcActuatorTypeEnum, 'ELECTRICACTUATOR', INDETERMINATE) -handoperatedactuator = getattr(IfcActuatorTypeEnum, 'HANDOPERATEDACTUATOR', INDETERMINATE) -hydraulicactuator = getattr(IfcActuatorTypeEnum, 'HYDRAULICACTUATOR', INDETERMINATE) -pneumaticactuator = getattr(IfcActuatorTypeEnum, 'PNEUMATICACTUATOR', INDETERMINATE) -thermostaticactuator = getattr(IfcActuatorTypeEnum, 'THERMOSTATICACTUATOR', INDETERMINATE) -userdefined = getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActuatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +electricactuator = IfcActuatorTypeEnum.ELECTRICACTUATOR +handoperatedactuator = IfcActuatorTypeEnum.HANDOPERATEDACTUATOR +hydraulicactuator = IfcActuatorTypeEnum.HYDRAULICACTUATOR +pneumaticactuator = IfcActuatorTypeEnum.PNEUMATICACTUATOR +thermostaticactuator = IfcActuatorTypeEnum.THERMOSTATICACTUATOR +userdefined = IfcActuatorTypeEnum.USERDEFINED +notdefined = IfcActuatorTypeEnum.NOTDEFINED IfcAddressTypeEnum = enum_namespace() -office = getattr(IfcAddressTypeEnum, 'OFFICE', INDETERMINATE) -site = getattr(IfcAddressTypeEnum, 'SITE', INDETERMINATE) -home = getattr(IfcAddressTypeEnum, 'HOME', INDETERMINATE) -distributionpoint = getattr(IfcAddressTypeEnum, 'DISTRIBUTIONPOINT', INDETERMINATE) -userdefined = getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) +office = IfcAddressTypeEnum.OFFICE +site = IfcAddressTypeEnum.SITE +home = IfcAddressTypeEnum.HOME +distributionpoint = IfcAddressTypeEnum.DISTRIBUTIONPOINT +userdefined = IfcAddressTypeEnum.USERDEFINED IfcAirTerminalBoxTypeEnum = enum_namespace() -constantflow = getattr(IfcAirTerminalBoxTypeEnum, 'CONSTANTFLOW', INDETERMINATE) -variableflowpressuredependant = getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREDEPENDANT', INDETERMINATE) -variableflowpressureindependant = getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREINDEPENDANT', INDETERMINATE) -userdefined = getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirTerminalBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +constantflow = IfcAirTerminalBoxTypeEnum.CONSTANTFLOW +variableflowpressuredependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT +variableflowpressureindependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT +userdefined = IfcAirTerminalBoxTypeEnum.USERDEFINED +notdefined = IfcAirTerminalBoxTypeEnum.NOTDEFINED IfcAirTerminalTypeEnum = enum_namespace() -diffuser = getattr(IfcAirTerminalTypeEnum, 'DIFFUSER', INDETERMINATE) -grille = getattr(IfcAirTerminalTypeEnum, 'GRILLE', INDETERMINATE) -louvre = getattr(IfcAirTerminalTypeEnum, 'LOUVRE', INDETERMINATE) -register = getattr(IfcAirTerminalTypeEnum, 'REGISTER', INDETERMINATE) -userdefined = getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +diffuser = IfcAirTerminalTypeEnum.DIFFUSER +grille = IfcAirTerminalTypeEnum.GRILLE +louvre = IfcAirTerminalTypeEnum.LOUVRE +register = IfcAirTerminalTypeEnum.REGISTER +userdefined = IfcAirTerminalTypeEnum.USERDEFINED +notdefined = IfcAirTerminalTypeEnum.NOTDEFINED IfcAirToAirHeatRecoveryTypeEnum = enum_namespace() -fixedplatecounterflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECOUNTERFLOWEXCHANGER', INDETERMINATE) -fixedplatecrossflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECROSSFLOWEXCHANGER', INDETERMINATE) -fixedplateparallelflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATEPARALLELFLOWEXCHANGER', INDETERMINATE) -rotarywheel = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'ROTARYWHEEL', INDETERMINATE) -runaroundcoilloop = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'RUNAROUNDCOILLOOP', INDETERMINATE) -heatpipe = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'HEATPIPE', INDETERMINATE) -twintowerenthalpyrecoveryloops = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'TWINTOWERENTHALPYRECOVERYLOOPS', INDETERMINATE) -thermosiphonsealedtubeheatexchangers = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONSEALEDTUBEHEATEXCHANGERS', INDETERMINATE) -thermosiphoncoiltypeheatexchangers = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONCOILTYPEHEATEXCHANGERS', INDETERMINATE) -userdefined = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'NOTDEFINED', INDETERMINATE) +fixedplatecounterflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER +fixedplatecrossflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER +fixedplateparallelflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER +rotarywheel = IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL +runaroundcoilloop = IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP +heatpipe = IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE +twintowerenthalpyrecoveryloops = IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS +thermosiphonsealedtubeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS +thermosiphoncoiltypeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS +userdefined = IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED +notdefined = IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED IfcAlarmTypeEnum = enum_namespace() -bell = getattr(IfcAlarmTypeEnum, 'BELL', INDETERMINATE) -breakglassbutton = getattr(IfcAlarmTypeEnum, 'BREAKGLASSBUTTON', INDETERMINATE) -light = getattr(IfcAlarmTypeEnum, 'LIGHT', INDETERMINATE) -manualpullbox = getattr(IfcAlarmTypeEnum, 'MANUALPULLBOX', INDETERMINATE) -siren = getattr(IfcAlarmTypeEnum, 'SIREN', INDETERMINATE) -whistle = getattr(IfcAlarmTypeEnum, 'WHISTLE', INDETERMINATE) -railwaycrocodile = getattr(IfcAlarmTypeEnum, 'RAILWAYCROCODILE', INDETERMINATE) -railwaydetonator = getattr(IfcAlarmTypeEnum, 'RAILWAYDETONATOR', INDETERMINATE) -userdefined = getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAlarmTypeEnum, 'NOTDEFINED', INDETERMINATE) +bell = IfcAlarmTypeEnum.BELL +breakglassbutton = IfcAlarmTypeEnum.BREAKGLASSBUTTON +light = IfcAlarmTypeEnum.LIGHT +manualpullbox = IfcAlarmTypeEnum.MANUALPULLBOX +siren = IfcAlarmTypeEnum.SIREN +whistle = IfcAlarmTypeEnum.WHISTLE +railwaycrocodile = IfcAlarmTypeEnum.RAILWAYCROCODILE +railwaydetonator = IfcAlarmTypeEnum.RAILWAYDETONATOR +userdefined = IfcAlarmTypeEnum.USERDEFINED +notdefined = IfcAlarmTypeEnum.NOTDEFINED IfcAlignmentCantSegmentTypeEnum = enum_namespace() -constantcant = getattr(IfcAlignmentCantSegmentTypeEnum, 'CONSTANTCANT', INDETERMINATE) -lineartransition = getattr(IfcAlignmentCantSegmentTypeEnum, 'LINEARTRANSITION', INDETERMINATE) -helmertcurve = getattr(IfcAlignmentCantSegmentTypeEnum, 'HELMERTCURVE', INDETERMINATE) -blosscurve = getattr(IfcAlignmentCantSegmentTypeEnum, 'BLOSSCURVE', INDETERMINATE) -cosinecurve = getattr(IfcAlignmentCantSegmentTypeEnum, 'COSINECURVE', INDETERMINATE) -sinecurve = getattr(IfcAlignmentCantSegmentTypeEnum, 'SINECURVE', INDETERMINATE) -viennesebend = getattr(IfcAlignmentCantSegmentTypeEnum, 'VIENNESEBEND', INDETERMINATE) +constantcant = IfcAlignmentCantSegmentTypeEnum.CONSTANTCANT +lineartransition = IfcAlignmentCantSegmentTypeEnum.LINEARTRANSITION +helmertcurve = IfcAlignmentCantSegmentTypeEnum.HELMERTCURVE +blosscurve = IfcAlignmentCantSegmentTypeEnum.BLOSSCURVE +cosinecurve = IfcAlignmentCantSegmentTypeEnum.COSINECURVE +sinecurve = IfcAlignmentCantSegmentTypeEnum.SINECURVE +viennesebend = IfcAlignmentCantSegmentTypeEnum.VIENNESEBEND IfcAlignmentHorizontalSegmentTypeEnum = enum_namespace() -line = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'LINE', INDETERMINATE) -circulararc = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CIRCULARARC', INDETERMINATE) -clothoid = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CLOTHOID', INDETERMINATE) -cubic = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CUBIC', INDETERMINATE) -helmertcurve = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'HELMERTCURVE', INDETERMINATE) -blosscurve = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'BLOSSCURVE', INDETERMINATE) -cubicspiral = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CUBICSPIRAL', INDETERMINATE) -cosinecurve = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'COSINECURVE', INDETERMINATE) -sinecurve = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'SINECURVE', INDETERMINATE) -viennesebend = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'VIENNESEBEND', INDETERMINATE) +line = IfcAlignmentHorizontalSegmentTypeEnum.LINE +circulararc = IfcAlignmentHorizontalSegmentTypeEnum.CIRCULARARC +clothoid = IfcAlignmentHorizontalSegmentTypeEnum.CLOTHOID +cubic = IfcAlignmentHorizontalSegmentTypeEnum.CUBIC +helmertcurve = IfcAlignmentHorizontalSegmentTypeEnum.HELMERTCURVE +blosscurve = IfcAlignmentHorizontalSegmentTypeEnum.BLOSSCURVE +cubicspiral = IfcAlignmentHorizontalSegmentTypeEnum.CUBICSPIRAL +cosinecurve = IfcAlignmentHorizontalSegmentTypeEnum.COSINECURVE +sinecurve = IfcAlignmentHorizontalSegmentTypeEnum.SINECURVE +viennesebend = IfcAlignmentHorizontalSegmentTypeEnum.VIENNESEBEND IfcAlignmentTypeEnum = enum_namespace() -userdefined = getattr(IfcAlignmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAlignmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcAlignmentTypeEnum.USERDEFINED +notdefined = IfcAlignmentTypeEnum.NOTDEFINED IfcAlignmentVerticalSegmentTypeEnum = enum_namespace() -constantgradient = getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CONSTANTGRADIENT', INDETERMINATE) -circulararc = getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CIRCULARARC', INDETERMINATE) -parabolicarc = getattr(IfcAlignmentVerticalSegmentTypeEnum, 'PARABOLICARC', INDETERMINATE) -clothoid = getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CLOTHOID', INDETERMINATE) +constantgradient = IfcAlignmentVerticalSegmentTypeEnum.CONSTANTGRADIENT +circulararc = IfcAlignmentVerticalSegmentTypeEnum.CIRCULARARC +parabolicarc = IfcAlignmentVerticalSegmentTypeEnum.PARABOLICARC +clothoid = IfcAlignmentVerticalSegmentTypeEnum.CLOTHOID IfcAnalysisModelTypeEnum = enum_namespace() -in_plane_loading_2d = getattr(IfcAnalysisModelTypeEnum, 'IN_PLANE_LOADING_2D', INDETERMINATE) -out_plane_loading_2d = getattr(IfcAnalysisModelTypeEnum, 'OUT_PLANE_LOADING_2D', INDETERMINATE) -loading_3d = getattr(IfcAnalysisModelTypeEnum, 'LOADING_3D', INDETERMINATE) -userdefined = getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnalysisModelTypeEnum, 'NOTDEFINED', INDETERMINATE) +in_plane_loading_2d = IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D +out_plane_loading_2d = IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D +loading_3d = IfcAnalysisModelTypeEnum.LOADING_3D +userdefined = IfcAnalysisModelTypeEnum.USERDEFINED +notdefined = IfcAnalysisModelTypeEnum.NOTDEFINED IfcAnalysisTheoryTypeEnum = enum_namespace() -first_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'FIRST_ORDER_THEORY', INDETERMINATE) -second_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'SECOND_ORDER_THEORY', INDETERMINATE) -third_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'THIRD_ORDER_THEORY', INDETERMINATE) -full_nonlinear_theory = getattr(IfcAnalysisTheoryTypeEnum, 'FULL_NONLINEAR_THEORY', INDETERMINATE) -userdefined = getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnalysisTheoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +first_order_theory = IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY +second_order_theory = IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY +third_order_theory = IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY +full_nonlinear_theory = IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY +userdefined = IfcAnalysisTheoryTypeEnum.USERDEFINED +notdefined = IfcAnalysisTheoryTypeEnum.NOTDEFINED IfcAnnotationTypeEnum = enum_namespace() -assumedpoint = getattr(IfcAnnotationTypeEnum, 'ASSUMEDPOINT', INDETERMINATE) -asbuiltarea = getattr(IfcAnnotationTypeEnum, 'ASBUILTAREA', INDETERMINATE) -asbuiltline = getattr(IfcAnnotationTypeEnum, 'ASBUILTLINE', INDETERMINATE) -non_physical_signal = getattr(IfcAnnotationTypeEnum, 'NON_PHYSICAL_SIGNAL', INDETERMINATE) -assumedline = getattr(IfcAnnotationTypeEnum, 'ASSUMEDLINE', INDETERMINATE) -widthevent = getattr(IfcAnnotationTypeEnum, 'WIDTHEVENT', INDETERMINATE) -assumedarea = getattr(IfcAnnotationTypeEnum, 'ASSUMEDAREA', INDETERMINATE) -superelevationevent = getattr(IfcAnnotationTypeEnum, 'SUPERELEVATIONEVENT', INDETERMINATE) -asbuiltpoint = getattr(IfcAnnotationTypeEnum, 'ASBUILTPOINT', INDETERMINATE) -userdefined = getattr(IfcAnnotationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnnotationTypeEnum, 'NOTDEFINED', INDETERMINATE) +assumedpoint = IfcAnnotationTypeEnum.ASSUMEDPOINT +asbuiltarea = IfcAnnotationTypeEnum.ASBUILTAREA +asbuiltline = IfcAnnotationTypeEnum.ASBUILTLINE +non_physical_signal = IfcAnnotationTypeEnum.NON_PHYSICAL_SIGNAL +assumedline = IfcAnnotationTypeEnum.ASSUMEDLINE +widthevent = IfcAnnotationTypeEnum.WIDTHEVENT +assumedarea = IfcAnnotationTypeEnum.ASSUMEDAREA +superelevationevent = IfcAnnotationTypeEnum.SUPERELEVATIONEVENT +asbuiltpoint = IfcAnnotationTypeEnum.ASBUILTPOINT +userdefined = IfcAnnotationTypeEnum.USERDEFINED +notdefined = IfcAnnotationTypeEnum.NOTDEFINED IfcArithmeticOperatorEnum = enum_namespace() -add = getattr(IfcArithmeticOperatorEnum, 'ADD', INDETERMINATE) -divide = getattr(IfcArithmeticOperatorEnum, 'DIVIDE', INDETERMINATE) -multiply = getattr(IfcArithmeticOperatorEnum, 'MULTIPLY', INDETERMINATE) -subtract = getattr(IfcArithmeticOperatorEnum, 'SUBTRACT', INDETERMINATE) +add = IfcArithmeticOperatorEnum.ADD +divide = IfcArithmeticOperatorEnum.DIVIDE +multiply = IfcArithmeticOperatorEnum.MULTIPLY +subtract = IfcArithmeticOperatorEnum.SUBTRACT IfcAssemblyPlaceEnum = enum_namespace() -site = getattr(IfcAssemblyPlaceEnum, 'SITE', INDETERMINATE) -factory = getattr(IfcAssemblyPlaceEnum, 'FACTORY', INDETERMINATE) -notdefined = getattr(IfcAssemblyPlaceEnum, 'NOTDEFINED', INDETERMINATE) +site = IfcAssemblyPlaceEnum.SITE +factory = IfcAssemblyPlaceEnum.FACTORY +notdefined = IfcAssemblyPlaceEnum.NOTDEFINED IfcAudioVisualApplianceTypeEnum = enum_namespace() -amplifier = getattr(IfcAudioVisualApplianceTypeEnum, 'AMPLIFIER', INDETERMINATE) -camera = getattr(IfcAudioVisualApplianceTypeEnum, 'CAMERA', INDETERMINATE) -display = getattr(IfcAudioVisualApplianceTypeEnum, 'DISPLAY', INDETERMINATE) -microphone = getattr(IfcAudioVisualApplianceTypeEnum, 'MICROPHONE', INDETERMINATE) -player = getattr(IfcAudioVisualApplianceTypeEnum, 'PLAYER', INDETERMINATE) -projector = getattr(IfcAudioVisualApplianceTypeEnum, 'PROJECTOR', INDETERMINATE) -receiver = getattr(IfcAudioVisualApplianceTypeEnum, 'RECEIVER', INDETERMINATE) -speaker = getattr(IfcAudioVisualApplianceTypeEnum, 'SPEAKER', INDETERMINATE) -switcher = getattr(IfcAudioVisualApplianceTypeEnum, 'SWITCHER', INDETERMINATE) -telephone = getattr(IfcAudioVisualApplianceTypeEnum, 'TELEPHONE', INDETERMINATE) -tuner = getattr(IfcAudioVisualApplianceTypeEnum, 'TUNER', INDETERMINATE) -railway_communication_terminal = getattr(IfcAudioVisualApplianceTypeEnum, 'RAILWAY_COMMUNICATION_TERMINAL', INDETERMINATE) -userdefined = getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAudioVisualApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +amplifier = IfcAudioVisualApplianceTypeEnum.AMPLIFIER +camera = IfcAudioVisualApplianceTypeEnum.CAMERA +display = IfcAudioVisualApplianceTypeEnum.DISPLAY +microphone = IfcAudioVisualApplianceTypeEnum.MICROPHONE +player = IfcAudioVisualApplianceTypeEnum.PLAYER +projector = IfcAudioVisualApplianceTypeEnum.PROJECTOR +receiver = IfcAudioVisualApplianceTypeEnum.RECEIVER +speaker = IfcAudioVisualApplianceTypeEnum.SPEAKER +switcher = IfcAudioVisualApplianceTypeEnum.SWITCHER +telephone = IfcAudioVisualApplianceTypeEnum.TELEPHONE +tuner = IfcAudioVisualApplianceTypeEnum.TUNER +railway_communication_terminal = IfcAudioVisualApplianceTypeEnum.RAILWAY_COMMUNICATION_TERMINAL +userdefined = IfcAudioVisualApplianceTypeEnum.USERDEFINED +notdefined = IfcAudioVisualApplianceTypeEnum.NOTDEFINED IfcBSplineCurveForm = enum_namespace() -polyline_form = getattr(IfcBSplineCurveForm, 'POLYLINE_FORM', INDETERMINATE) -circular_arc = getattr(IfcBSplineCurveForm, 'CIRCULAR_ARC', INDETERMINATE) -elliptic_arc = getattr(IfcBSplineCurveForm, 'ELLIPTIC_ARC', INDETERMINATE) -parabolic_arc = getattr(IfcBSplineCurveForm, 'PARABOLIC_ARC', INDETERMINATE) -hyperbolic_arc = getattr(IfcBSplineCurveForm, 'HYPERBOLIC_ARC', INDETERMINATE) -unspecified = getattr(IfcBSplineCurveForm, 'UNSPECIFIED', INDETERMINATE) +polyline_form = IfcBSplineCurveForm.POLYLINE_FORM +circular_arc = IfcBSplineCurveForm.CIRCULAR_ARC +elliptic_arc = IfcBSplineCurveForm.ELLIPTIC_ARC +parabolic_arc = IfcBSplineCurveForm.PARABOLIC_ARC +hyperbolic_arc = IfcBSplineCurveForm.HYPERBOLIC_ARC +unspecified = IfcBSplineCurveForm.UNSPECIFIED IfcBSplineSurfaceForm = enum_namespace() -plane_surf = getattr(IfcBSplineSurfaceForm, 'PLANE_SURF', INDETERMINATE) -cylindrical_surf = getattr(IfcBSplineSurfaceForm, 'CYLINDRICAL_SURF', INDETERMINATE) -conical_surf = getattr(IfcBSplineSurfaceForm, 'CONICAL_SURF', INDETERMINATE) -spherical_surf = getattr(IfcBSplineSurfaceForm, 'SPHERICAL_SURF', INDETERMINATE) -toroidal_surf = getattr(IfcBSplineSurfaceForm, 'TOROIDAL_SURF', INDETERMINATE) -surf_of_revolution = getattr(IfcBSplineSurfaceForm, 'SURF_OF_REVOLUTION', INDETERMINATE) -ruled_surf = getattr(IfcBSplineSurfaceForm, 'RULED_SURF', INDETERMINATE) -generalised_cone = getattr(IfcBSplineSurfaceForm, 'GENERALISED_CONE', INDETERMINATE) -quadric_surf = getattr(IfcBSplineSurfaceForm, 'QUADRIC_SURF', INDETERMINATE) -surf_of_linear_extrusion = getattr(IfcBSplineSurfaceForm, 'SURF_OF_LINEAR_EXTRUSION', INDETERMINATE) -unspecified = getattr(IfcBSplineSurfaceForm, 'UNSPECIFIED', INDETERMINATE) +plane_surf = IfcBSplineSurfaceForm.PLANE_SURF +cylindrical_surf = IfcBSplineSurfaceForm.CYLINDRICAL_SURF +conical_surf = IfcBSplineSurfaceForm.CONICAL_SURF +spherical_surf = IfcBSplineSurfaceForm.SPHERICAL_SURF +toroidal_surf = IfcBSplineSurfaceForm.TOROIDAL_SURF +surf_of_revolution = IfcBSplineSurfaceForm.SURF_OF_REVOLUTION +ruled_surf = IfcBSplineSurfaceForm.RULED_SURF +generalised_cone = IfcBSplineSurfaceForm.GENERALISED_CONE +quadric_surf = IfcBSplineSurfaceForm.QUADRIC_SURF +surf_of_linear_extrusion = IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION +unspecified = IfcBSplineSurfaceForm.UNSPECIFIED IfcBeamTypeEnum = enum_namespace() -beam = getattr(IfcBeamTypeEnum, 'BEAM', INDETERMINATE) -joist = getattr(IfcBeamTypeEnum, 'JOIST', INDETERMINATE) -hollowcore = getattr(IfcBeamTypeEnum, 'HOLLOWCORE', INDETERMINATE) -lintel = getattr(IfcBeamTypeEnum, 'LINTEL', INDETERMINATE) -spandrel = getattr(IfcBeamTypeEnum, 'SPANDREL', INDETERMINATE) -t_beam = getattr(IfcBeamTypeEnum, 'T_BEAM', INDETERMINATE) -girder_segment = getattr(IfcBeamTypeEnum, 'GIRDER_SEGMENT', INDETERMINATE) -diaphragm = getattr(IfcBeamTypeEnum, 'DIAPHRAGM', INDETERMINATE) -piercap = getattr(IfcBeamTypeEnum, 'PIERCAP', INDETERMINATE) -hatstone = getattr(IfcBeamTypeEnum, 'HATSTONE', INDETERMINATE) -cornice = getattr(IfcBeamTypeEnum, 'CORNICE', INDETERMINATE) -edgebeam = getattr(IfcBeamTypeEnum, 'EDGEBEAM', INDETERMINATE) -userdefined = getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +beam = IfcBeamTypeEnum.BEAM +joist = IfcBeamTypeEnum.JOIST +hollowcore = IfcBeamTypeEnum.HOLLOWCORE +lintel = IfcBeamTypeEnum.LINTEL +spandrel = IfcBeamTypeEnum.SPANDREL +t_beam = IfcBeamTypeEnum.T_BEAM +girder_segment = IfcBeamTypeEnum.GIRDER_SEGMENT +diaphragm = IfcBeamTypeEnum.DIAPHRAGM +piercap = IfcBeamTypeEnum.PIERCAP +hatstone = IfcBeamTypeEnum.HATSTONE +cornice = IfcBeamTypeEnum.CORNICE +edgebeam = IfcBeamTypeEnum.EDGEBEAM +userdefined = IfcBeamTypeEnum.USERDEFINED +notdefined = IfcBeamTypeEnum.NOTDEFINED IfcBearingTypeDisplacementEnum = enum_namespace() -fixed_movement = getattr(IfcBearingTypeDisplacementEnum, 'FIXED_MOVEMENT', INDETERMINATE) -guided_longitudinal = getattr(IfcBearingTypeDisplacementEnum, 'GUIDED_LONGITUDINAL', INDETERMINATE) -guided_transversal = getattr(IfcBearingTypeDisplacementEnum, 'GUIDED_TRANSVERSAL', INDETERMINATE) -free_movement = getattr(IfcBearingTypeDisplacementEnum, 'FREE_MOVEMENT', INDETERMINATE) -notdefined = getattr(IfcBearingTypeDisplacementEnum, 'NOTDEFINED', INDETERMINATE) +fixed_movement = IfcBearingTypeDisplacementEnum.FIXED_MOVEMENT +guided_longitudinal = IfcBearingTypeDisplacementEnum.GUIDED_LONGITUDINAL +guided_transversal = IfcBearingTypeDisplacementEnum.GUIDED_TRANSVERSAL +free_movement = IfcBearingTypeDisplacementEnum.FREE_MOVEMENT +notdefined = IfcBearingTypeDisplacementEnum.NOTDEFINED IfcBearingTypeEnum = enum_namespace() -cylindrical = getattr(IfcBearingTypeEnum, 'CYLINDRICAL', INDETERMINATE) -spherical = getattr(IfcBearingTypeEnum, 'SPHERICAL', INDETERMINATE) -elastomeric = getattr(IfcBearingTypeEnum, 'ELASTOMERIC', INDETERMINATE) -pot = getattr(IfcBearingTypeEnum, 'POT', INDETERMINATE) -guide = getattr(IfcBearingTypeEnum, 'GUIDE', INDETERMINATE) -rocker = getattr(IfcBearingTypeEnum, 'ROCKER', INDETERMINATE) -roller = getattr(IfcBearingTypeEnum, 'ROLLER', INDETERMINATE) -disk = getattr(IfcBearingTypeEnum, 'DISK', INDETERMINATE) -userdefined = getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBearingTypeEnum, 'NOTDEFINED', INDETERMINATE) +cylindrical = IfcBearingTypeEnum.CYLINDRICAL +spherical = IfcBearingTypeEnum.SPHERICAL +elastomeric = IfcBearingTypeEnum.ELASTOMERIC +pot = IfcBearingTypeEnum.POT +guide = IfcBearingTypeEnum.GUIDE +rocker = IfcBearingTypeEnum.ROCKER +roller = IfcBearingTypeEnum.ROLLER +disk = IfcBearingTypeEnum.DISK +userdefined = IfcBearingTypeEnum.USERDEFINED +notdefined = IfcBearingTypeEnum.NOTDEFINED IfcBenchmarkEnum = enum_namespace() -greaterthan = getattr(IfcBenchmarkEnum, 'GREATERTHAN', INDETERMINATE) -greaterthanorequalto = getattr(IfcBenchmarkEnum, 'GREATERTHANOREQUALTO', INDETERMINATE) -lessthan = getattr(IfcBenchmarkEnum, 'LESSTHAN', INDETERMINATE) -lessthanorequalto = getattr(IfcBenchmarkEnum, 'LESSTHANOREQUALTO', INDETERMINATE) -equalto = getattr(IfcBenchmarkEnum, 'EQUALTO', INDETERMINATE) -notequalto = getattr(IfcBenchmarkEnum, 'NOTEQUALTO', INDETERMINATE) -includes = getattr(IfcBenchmarkEnum, 'INCLUDES', INDETERMINATE) -notincludes = getattr(IfcBenchmarkEnum, 'NOTINCLUDES', INDETERMINATE) -includedin = getattr(IfcBenchmarkEnum, 'INCLUDEDIN', INDETERMINATE) -notincludedin = getattr(IfcBenchmarkEnum, 'NOTINCLUDEDIN', INDETERMINATE) +greaterthan = IfcBenchmarkEnum.GREATERTHAN +greaterthanorequalto = IfcBenchmarkEnum.GREATERTHANOREQUALTO +lessthan = IfcBenchmarkEnum.LESSTHAN +lessthanorequalto = IfcBenchmarkEnum.LESSTHANOREQUALTO +equalto = IfcBenchmarkEnum.EQUALTO +notequalto = IfcBenchmarkEnum.NOTEQUALTO +includes = IfcBenchmarkEnum.INCLUDES +notincludes = IfcBenchmarkEnum.NOTINCLUDES +includedin = IfcBenchmarkEnum.INCLUDEDIN +notincludedin = IfcBenchmarkEnum.NOTINCLUDEDIN IfcBoilerTypeEnum = enum_namespace() -water = getattr(IfcBoilerTypeEnum, 'WATER', INDETERMINATE) -steam = getattr(IfcBoilerTypeEnum, 'STEAM', INDETERMINATE) -userdefined = getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBoilerTypeEnum, 'NOTDEFINED', INDETERMINATE) +water = IfcBoilerTypeEnum.WATER +steam = IfcBoilerTypeEnum.STEAM +userdefined = IfcBoilerTypeEnum.USERDEFINED +notdefined = IfcBoilerTypeEnum.NOTDEFINED IfcBooleanOperator = enum_namespace() -union = getattr(IfcBooleanOperator, 'UNION', INDETERMINATE) -intersection = getattr(IfcBooleanOperator, 'INTERSECTION', INDETERMINATE) -difference = getattr(IfcBooleanOperator, 'DIFFERENCE', INDETERMINATE) +union = IfcBooleanOperator.UNION +intersection = IfcBooleanOperator.INTERSECTION +difference = IfcBooleanOperator.DIFFERENCE IfcBridgePartTypeEnum = enum_namespace() -abutment = getattr(IfcBridgePartTypeEnum, 'ABUTMENT', INDETERMINATE) -deck = getattr(IfcBridgePartTypeEnum, 'DECK', INDETERMINATE) -deck_segment = getattr(IfcBridgePartTypeEnum, 'DECK_SEGMENT', INDETERMINATE) -foundation = getattr(IfcBridgePartTypeEnum, 'FOUNDATION', INDETERMINATE) -pier = getattr(IfcBridgePartTypeEnum, 'PIER', INDETERMINATE) -pier_segment = getattr(IfcBridgePartTypeEnum, 'PIER_SEGMENT', INDETERMINATE) -pylon = getattr(IfcBridgePartTypeEnum, 'PYLON', INDETERMINATE) -substructure = getattr(IfcBridgePartTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -superstructure = getattr(IfcBridgePartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -surfacestructure = getattr(IfcBridgePartTypeEnum, 'SURFACESTRUCTURE', INDETERMINATE) -userdefined = getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBridgePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +abutment = IfcBridgePartTypeEnum.ABUTMENT +deck = IfcBridgePartTypeEnum.DECK +deck_segment = IfcBridgePartTypeEnum.DECK_SEGMENT +foundation = IfcBridgePartTypeEnum.FOUNDATION +pier = IfcBridgePartTypeEnum.PIER +pier_segment = IfcBridgePartTypeEnum.PIER_SEGMENT +pylon = IfcBridgePartTypeEnum.PYLON +substructure = IfcBridgePartTypeEnum.SUBSTRUCTURE +superstructure = IfcBridgePartTypeEnum.SUPERSTRUCTURE +surfacestructure = IfcBridgePartTypeEnum.SURFACESTRUCTURE +userdefined = IfcBridgePartTypeEnum.USERDEFINED +notdefined = IfcBridgePartTypeEnum.NOTDEFINED IfcBridgeTypeEnum = enum_namespace() -arched = getattr(IfcBridgeTypeEnum, 'ARCHED', INDETERMINATE) -cable_stayed = getattr(IfcBridgeTypeEnum, 'CABLE_STAYED', INDETERMINATE) -cantilever = getattr(IfcBridgeTypeEnum, 'CANTILEVER', INDETERMINATE) -culvert = getattr(IfcBridgeTypeEnum, 'CULVERT', INDETERMINATE) -framework = getattr(IfcBridgeTypeEnum, 'FRAMEWORK', INDETERMINATE) -girder = getattr(IfcBridgeTypeEnum, 'GIRDER', INDETERMINATE) -suspension = getattr(IfcBridgeTypeEnum, 'SUSPENSION', INDETERMINATE) -truss = getattr(IfcBridgeTypeEnum, 'TRUSS', INDETERMINATE) -userdefined = getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBridgeTypeEnum, 'NOTDEFINED', INDETERMINATE) +arched = IfcBridgeTypeEnum.ARCHED +cable_stayed = IfcBridgeTypeEnum.CABLE_STAYED +cantilever = IfcBridgeTypeEnum.CANTILEVER +culvert = IfcBridgeTypeEnum.CULVERT +framework = IfcBridgeTypeEnum.FRAMEWORK +girder = IfcBridgeTypeEnum.GIRDER +suspension = IfcBridgeTypeEnum.SUSPENSION +truss = IfcBridgeTypeEnum.TRUSS +userdefined = IfcBridgeTypeEnum.USERDEFINED +notdefined = IfcBridgeTypeEnum.NOTDEFINED IfcBuildingElementPartTypeEnum = enum_namespace() -insulation = getattr(IfcBuildingElementPartTypeEnum, 'INSULATION', INDETERMINATE) -precastpanel = getattr(IfcBuildingElementPartTypeEnum, 'PRECASTPANEL', INDETERMINATE) -apron = getattr(IfcBuildingElementPartTypeEnum, 'APRON', INDETERMINATE) -armourunit = getattr(IfcBuildingElementPartTypeEnum, 'ARMOURUNIT', INDETERMINATE) -safetycage = getattr(IfcBuildingElementPartTypeEnum, 'SAFETYCAGE', INDETERMINATE) -userdefined = getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingElementPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +insulation = IfcBuildingElementPartTypeEnum.INSULATION +precastpanel = IfcBuildingElementPartTypeEnum.PRECASTPANEL +apron = IfcBuildingElementPartTypeEnum.APRON +armourunit = IfcBuildingElementPartTypeEnum.ARMOURUNIT +safetycage = IfcBuildingElementPartTypeEnum.SAFETYCAGE +userdefined = IfcBuildingElementPartTypeEnum.USERDEFINED +notdefined = IfcBuildingElementPartTypeEnum.NOTDEFINED IfcBuildingElementProxyTypeEnum = enum_namespace() -complex = getattr(IfcBuildingElementProxyTypeEnum, 'COMPLEX', INDETERMINATE) -element = getattr(IfcBuildingElementProxyTypeEnum, 'ELEMENT', INDETERMINATE) -partial = getattr(IfcBuildingElementProxyTypeEnum, 'PARTIAL', INDETERMINATE) -provisionforvoid = getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORVOID', INDETERMINATE) -provisionforspace = getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORSPACE', INDETERMINATE) -userdefined = getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingElementProxyTypeEnum, 'NOTDEFINED', INDETERMINATE) +complex = IfcBuildingElementProxyTypeEnum.COMPLEX +element = IfcBuildingElementProxyTypeEnum.ELEMENT +partial = IfcBuildingElementProxyTypeEnum.PARTIAL +provisionforvoid = IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID +provisionforspace = IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE +userdefined = IfcBuildingElementProxyTypeEnum.USERDEFINED +notdefined = IfcBuildingElementProxyTypeEnum.NOTDEFINED IfcBuildingSystemTypeEnum = enum_namespace() -fenestration = getattr(IfcBuildingSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = getattr(IfcBuildingSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = getattr(IfcBuildingSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -outershell = getattr(IfcBuildingSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -shading = getattr(IfcBuildingSystemTypeEnum, 'SHADING', INDETERMINATE) -transport = getattr(IfcBuildingSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -reinforcing = getattr(IfcBuildingSystemTypeEnum, 'REINFORCING', INDETERMINATE) -prestressing = getattr(IfcBuildingSystemTypeEnum, 'PRESTRESSING', INDETERMINATE) -erosionprevention = getattr(IfcBuildingSystemTypeEnum, 'EROSIONPREVENTION', INDETERMINATE) -userdefined = getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +fenestration = IfcBuildingSystemTypeEnum.FENESTRATION +foundation = IfcBuildingSystemTypeEnum.FOUNDATION +loadbearing = IfcBuildingSystemTypeEnum.LOADBEARING +outershell = IfcBuildingSystemTypeEnum.OUTERSHELL +shading = IfcBuildingSystemTypeEnum.SHADING +transport = IfcBuildingSystemTypeEnum.TRANSPORT +reinforcing = IfcBuildingSystemTypeEnum.REINFORCING +prestressing = IfcBuildingSystemTypeEnum.PRESTRESSING +erosionprevention = IfcBuildingSystemTypeEnum.EROSIONPREVENTION +userdefined = IfcBuildingSystemTypeEnum.USERDEFINED +notdefined = IfcBuildingSystemTypeEnum.NOTDEFINED IfcBuiltSystemTypeEnum = enum_namespace() -reinforcing = getattr(IfcBuiltSystemTypeEnum, 'REINFORCING', INDETERMINATE) -mooring = getattr(IfcBuiltSystemTypeEnum, 'MOORING', INDETERMINATE) -outershell = getattr(IfcBuiltSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -trackcircuit = getattr(IfcBuiltSystemTypeEnum, 'TRACKCIRCUIT', INDETERMINATE) -erosionprevention = getattr(IfcBuiltSystemTypeEnum, 'EROSIONPREVENTION', INDETERMINATE) -foundation = getattr(IfcBuiltSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = getattr(IfcBuiltSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -shading = getattr(IfcBuiltSystemTypeEnum, 'SHADING', INDETERMINATE) -fenestration = getattr(IfcBuiltSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -mooringsystem = getattr(IfcBuiltSystemTypeEnum, 'MOORINGSYSTEM', INDETERMINATE) -transport = getattr(IfcBuiltSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -prestressing = getattr(IfcBuiltSystemTypeEnum, 'PRESTRESSING', INDETERMINATE) -userdefined = getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuiltSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +reinforcing = IfcBuiltSystemTypeEnum.REINFORCING +mooring = IfcBuiltSystemTypeEnum.MOORING +outershell = IfcBuiltSystemTypeEnum.OUTERSHELL +trackcircuit = IfcBuiltSystemTypeEnum.TRACKCIRCUIT +erosionprevention = IfcBuiltSystemTypeEnum.EROSIONPREVENTION +foundation = IfcBuiltSystemTypeEnum.FOUNDATION +loadbearing = IfcBuiltSystemTypeEnum.LOADBEARING +shading = IfcBuiltSystemTypeEnum.SHADING +fenestration = IfcBuiltSystemTypeEnum.FENESTRATION +mooringsystem = IfcBuiltSystemTypeEnum.MOORINGSYSTEM +transport = IfcBuiltSystemTypeEnum.TRANSPORT +prestressing = IfcBuiltSystemTypeEnum.PRESTRESSING +userdefined = IfcBuiltSystemTypeEnum.USERDEFINED +notdefined = IfcBuiltSystemTypeEnum.NOTDEFINED IfcBurnerTypeEnum = enum_namespace() -userdefined = getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBurnerTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcBurnerTypeEnum.USERDEFINED +notdefined = IfcBurnerTypeEnum.NOTDEFINED IfcCableCarrierFittingTypeEnum = enum_namespace() -bend = getattr(IfcCableCarrierFittingTypeEnum, 'BEND', INDETERMINATE) -cross = getattr(IfcCableCarrierFittingTypeEnum, 'CROSS', INDETERMINATE) -reducer = getattr(IfcCableCarrierFittingTypeEnum, 'REDUCER', INDETERMINATE) -tee = getattr(IfcCableCarrierFittingTypeEnum, 'TEE', INDETERMINATE) -userdefined = getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableCarrierFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcCableCarrierFittingTypeEnum.BEND +cross = IfcCableCarrierFittingTypeEnum.CROSS +reducer = IfcCableCarrierFittingTypeEnum.REDUCER +tee = IfcCableCarrierFittingTypeEnum.TEE +userdefined = IfcCableCarrierFittingTypeEnum.USERDEFINED +notdefined = IfcCableCarrierFittingTypeEnum.NOTDEFINED IfcCableCarrierSegmentTypeEnum = enum_namespace() -cableladdersegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLELADDERSEGMENT', INDETERMINATE) -cabletraysegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRAYSEGMENT', INDETERMINATE) -cabletrunkingsegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRUNKINGSEGMENT', INDETERMINATE) -conduitsegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CONDUITSEGMENT', INDETERMINATE) -cablebracket = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLEBRACKET', INDETERMINATE) -catenarywire = getattr(IfcCableCarrierSegmentTypeEnum, 'CATENARYWIRE', INDETERMINATE) -dropper = getattr(IfcCableCarrierSegmentTypeEnum, 'DROPPER', INDETERMINATE) -userdefined = getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableCarrierSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +cableladdersegment = IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT +cabletraysegment = IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT +cabletrunkingsegment = IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT +conduitsegment = IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT +cablebracket = IfcCableCarrierSegmentTypeEnum.CABLEBRACKET +catenarywire = IfcCableCarrierSegmentTypeEnum.CATENARYWIRE +dropper = IfcCableCarrierSegmentTypeEnum.DROPPER +userdefined = IfcCableCarrierSegmentTypeEnum.USERDEFINED +notdefined = IfcCableCarrierSegmentTypeEnum.NOTDEFINED IfcCableFittingTypeEnum = enum_namespace() -connector = getattr(IfcCableFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcCableFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcCableFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcCableFittingTypeEnum, 'JUNCTION', INDETERMINATE) -transition = getattr(IfcCableFittingTypeEnum, 'TRANSITION', INDETERMINATE) -fanout = getattr(IfcCableFittingTypeEnum, 'FANOUT', INDETERMINATE) -userdefined = getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +connector = IfcCableFittingTypeEnum.CONNECTOR +entry = IfcCableFittingTypeEnum.ENTRY +exit = IfcCableFittingTypeEnum.EXIT +junction = IfcCableFittingTypeEnum.JUNCTION +transition = IfcCableFittingTypeEnum.TRANSITION +fanout = IfcCableFittingTypeEnum.FANOUT +userdefined = IfcCableFittingTypeEnum.USERDEFINED +notdefined = IfcCableFittingTypeEnum.NOTDEFINED IfcCableSegmentTypeEnum = enum_namespace() -busbarsegment = getattr(IfcCableSegmentTypeEnum, 'BUSBARSEGMENT', INDETERMINATE) -cablesegment = getattr(IfcCableSegmentTypeEnum, 'CABLESEGMENT', INDETERMINATE) -conductorsegment = getattr(IfcCableSegmentTypeEnum, 'CONDUCTORSEGMENT', INDETERMINATE) -coresegment = getattr(IfcCableSegmentTypeEnum, 'CORESEGMENT', INDETERMINATE) -contactwiresegment = getattr(IfcCableSegmentTypeEnum, 'CONTACTWIRESEGMENT', INDETERMINATE) -fibersegment = getattr(IfcCableSegmentTypeEnum, 'FIBERSEGMENT', INDETERMINATE) -fibertube = getattr(IfcCableSegmentTypeEnum, 'FIBERTUBE', INDETERMINATE) -opticalcablesegment = getattr(IfcCableSegmentTypeEnum, 'OPTICALCABLESEGMENT', INDETERMINATE) -stitchwire = getattr(IfcCableSegmentTypeEnum, 'STITCHWIRE', INDETERMINATE) -wirepairsegment = getattr(IfcCableSegmentTypeEnum, 'WIREPAIRSEGMENT', INDETERMINATE) -userdefined = getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +busbarsegment = IfcCableSegmentTypeEnum.BUSBARSEGMENT +cablesegment = IfcCableSegmentTypeEnum.CABLESEGMENT +conductorsegment = IfcCableSegmentTypeEnum.CONDUCTORSEGMENT +coresegment = IfcCableSegmentTypeEnum.CORESEGMENT +contactwiresegment = IfcCableSegmentTypeEnum.CONTACTWIRESEGMENT +fibersegment = IfcCableSegmentTypeEnum.FIBERSEGMENT +fibertube = IfcCableSegmentTypeEnum.FIBERTUBE +opticalcablesegment = IfcCableSegmentTypeEnum.OPTICALCABLESEGMENT +stitchwire = IfcCableSegmentTypeEnum.STITCHWIRE +wirepairsegment = IfcCableSegmentTypeEnum.WIREPAIRSEGMENT +userdefined = IfcCableSegmentTypeEnum.USERDEFINED +notdefined = IfcCableSegmentTypeEnum.NOTDEFINED IfcCaissonFoundationTypeEnum = enum_namespace() -well = getattr(IfcCaissonFoundationTypeEnum, 'WELL', INDETERMINATE) -caisson = getattr(IfcCaissonFoundationTypeEnum, 'CAISSON', INDETERMINATE) -userdefined = getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCaissonFoundationTypeEnum, 'NOTDEFINED', INDETERMINATE) +well = IfcCaissonFoundationTypeEnum.WELL +caisson = IfcCaissonFoundationTypeEnum.CAISSON +userdefined = IfcCaissonFoundationTypeEnum.USERDEFINED +notdefined = IfcCaissonFoundationTypeEnum.NOTDEFINED IfcChangeActionEnum = enum_namespace() -nochange = getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE) -modified = getattr(IfcChangeActionEnum, 'MODIFIED', INDETERMINATE) -added = getattr(IfcChangeActionEnum, 'ADDED', INDETERMINATE) -deleted = getattr(IfcChangeActionEnum, 'DELETED', INDETERMINATE) -notdefined = getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) +nochange = IfcChangeActionEnum.NOCHANGE +modified = IfcChangeActionEnum.MODIFIED +added = IfcChangeActionEnum.ADDED +deleted = IfcChangeActionEnum.DELETED +notdefined = IfcChangeActionEnum.NOTDEFINED IfcChillerTypeEnum = enum_namespace() -aircooled = getattr(IfcChillerTypeEnum, 'AIRCOOLED', INDETERMINATE) -watercooled = getattr(IfcChillerTypeEnum, 'WATERCOOLED', INDETERMINATE) -heatrecovery = getattr(IfcChillerTypeEnum, 'HEATRECOVERY', INDETERMINATE) -userdefined = getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcChillerTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcChillerTypeEnum.AIRCOOLED +watercooled = IfcChillerTypeEnum.WATERCOOLED +heatrecovery = IfcChillerTypeEnum.HEATRECOVERY +userdefined = IfcChillerTypeEnum.USERDEFINED +notdefined = IfcChillerTypeEnum.NOTDEFINED IfcChimneyTypeEnum = enum_namespace() -userdefined = getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcChimneyTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcChimneyTypeEnum.USERDEFINED +notdefined = IfcChimneyTypeEnum.NOTDEFINED IfcCoilTypeEnum = enum_namespace() -dxcoolingcoil = getattr(IfcCoilTypeEnum, 'DXCOOLINGCOIL', INDETERMINATE) -electricheatingcoil = getattr(IfcCoilTypeEnum, 'ELECTRICHEATINGCOIL', INDETERMINATE) -gasheatingcoil = getattr(IfcCoilTypeEnum, 'GASHEATINGCOIL', INDETERMINATE) -hydroniccoil = getattr(IfcCoilTypeEnum, 'HYDRONICCOIL', INDETERMINATE) -steamheatingcoil = getattr(IfcCoilTypeEnum, 'STEAMHEATINGCOIL', INDETERMINATE) -watercoolingcoil = getattr(IfcCoilTypeEnum, 'WATERCOOLINGCOIL', INDETERMINATE) -waterheatingcoil = getattr(IfcCoilTypeEnum, 'WATERHEATINGCOIL', INDETERMINATE) -userdefined = getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dxcoolingcoil = IfcCoilTypeEnum.DXCOOLINGCOIL +electricheatingcoil = IfcCoilTypeEnum.ELECTRICHEATINGCOIL +gasheatingcoil = IfcCoilTypeEnum.GASHEATINGCOIL +hydroniccoil = IfcCoilTypeEnum.HYDRONICCOIL +steamheatingcoil = IfcCoilTypeEnum.STEAMHEATINGCOIL +watercoolingcoil = IfcCoilTypeEnum.WATERCOOLINGCOIL +waterheatingcoil = IfcCoilTypeEnum.WATERHEATINGCOIL +userdefined = IfcCoilTypeEnum.USERDEFINED +notdefined = IfcCoilTypeEnum.NOTDEFINED IfcColumnTypeEnum = enum_namespace() -column = getattr(IfcColumnTypeEnum, 'COLUMN', INDETERMINATE) -pilaster = getattr(IfcColumnTypeEnum, 'PILASTER', INDETERMINATE) -pierstem = getattr(IfcColumnTypeEnum, 'PIERSTEM', INDETERMINATE) -pierstem_segment = getattr(IfcColumnTypeEnum, 'PIERSTEM_SEGMENT', INDETERMINATE) -standcolumn = getattr(IfcColumnTypeEnum, 'STANDCOLUMN', INDETERMINATE) -userdefined = getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcColumnTypeEnum, 'NOTDEFINED', INDETERMINATE) +column = IfcColumnTypeEnum.COLUMN +pilaster = IfcColumnTypeEnum.PILASTER +pierstem = IfcColumnTypeEnum.PIERSTEM +pierstem_segment = IfcColumnTypeEnum.PIERSTEM_SEGMENT +standcolumn = IfcColumnTypeEnum.STANDCOLUMN +userdefined = IfcColumnTypeEnum.USERDEFINED +notdefined = IfcColumnTypeEnum.NOTDEFINED IfcCommunicationsApplianceTypeEnum = enum_namespace() -antenna = getattr(IfcCommunicationsApplianceTypeEnum, 'ANTENNA', INDETERMINATE) -computer = getattr(IfcCommunicationsApplianceTypeEnum, 'COMPUTER', INDETERMINATE) -fax = getattr(IfcCommunicationsApplianceTypeEnum, 'FAX', INDETERMINATE) -gateway = getattr(IfcCommunicationsApplianceTypeEnum, 'GATEWAY', INDETERMINATE) -modem = getattr(IfcCommunicationsApplianceTypeEnum, 'MODEM', INDETERMINATE) -networkappliance = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKAPPLIANCE', INDETERMINATE) -networkbridge = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKBRIDGE', INDETERMINATE) -networkhub = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKHUB', INDETERMINATE) -printer = getattr(IfcCommunicationsApplianceTypeEnum, 'PRINTER', INDETERMINATE) -repeater = getattr(IfcCommunicationsApplianceTypeEnum, 'REPEATER', INDETERMINATE) -router = getattr(IfcCommunicationsApplianceTypeEnum, 'ROUTER', INDETERMINATE) -scanner = getattr(IfcCommunicationsApplianceTypeEnum, 'SCANNER', INDETERMINATE) -automaton = getattr(IfcCommunicationsApplianceTypeEnum, 'AUTOMATON', INDETERMINATE) -intelligent_peripheral = getattr(IfcCommunicationsApplianceTypeEnum, 'INTELLIGENT_PERIPHERAL', INDETERMINATE) -ip_network_equipment = getattr(IfcCommunicationsApplianceTypeEnum, 'IP_NETWORK_EQUIPMENT', INDETERMINATE) -optical_network_unit = getattr(IfcCommunicationsApplianceTypeEnum, 'OPTICAL_NETWORK_UNIT', INDETERMINATE) -telecommand = getattr(IfcCommunicationsApplianceTypeEnum, 'TELECOMMAND', INDETERMINATE) -telephonyexchange = getattr(IfcCommunicationsApplianceTypeEnum, 'TELEPHONYEXCHANGE', INDETERMINATE) -transitioncomponent = getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSITIONCOMPONENT', INDETERMINATE) -transponder = getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPONDER', INDETERMINATE) -transportequipment = getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPORTEQUIPMENT', INDETERMINATE) -userdefined = getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +antenna = IfcCommunicationsApplianceTypeEnum.ANTENNA +computer = IfcCommunicationsApplianceTypeEnum.COMPUTER +fax = IfcCommunicationsApplianceTypeEnum.FAX +gateway = IfcCommunicationsApplianceTypeEnum.GATEWAY +modem = IfcCommunicationsApplianceTypeEnum.MODEM +networkappliance = IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE +networkbridge = IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE +networkhub = IfcCommunicationsApplianceTypeEnum.NETWORKHUB +printer = IfcCommunicationsApplianceTypeEnum.PRINTER +repeater = IfcCommunicationsApplianceTypeEnum.REPEATER +router = IfcCommunicationsApplianceTypeEnum.ROUTER +scanner = IfcCommunicationsApplianceTypeEnum.SCANNER +automaton = IfcCommunicationsApplianceTypeEnum.AUTOMATON +intelligent_peripheral = IfcCommunicationsApplianceTypeEnum.INTELLIGENT_PERIPHERAL +ip_network_equipment = IfcCommunicationsApplianceTypeEnum.IP_NETWORK_EQUIPMENT +optical_network_unit = IfcCommunicationsApplianceTypeEnum.OPTICAL_NETWORK_UNIT +telecommand = IfcCommunicationsApplianceTypeEnum.TELECOMMAND +telephonyexchange = IfcCommunicationsApplianceTypeEnum.TELEPHONYEXCHANGE +transitioncomponent = IfcCommunicationsApplianceTypeEnum.TRANSITIONCOMPONENT +transponder = IfcCommunicationsApplianceTypeEnum.TRANSPONDER +transportequipment = IfcCommunicationsApplianceTypeEnum.TRANSPORTEQUIPMENT +userdefined = IfcCommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcCommunicationsApplianceTypeEnum.NOTDEFINED IfcComplexPropertyTemplateTypeEnum = enum_namespace() -p_complex = getattr(IfcComplexPropertyTemplateTypeEnum, 'P_COMPLEX', INDETERMINATE) -q_complex = getattr(IfcComplexPropertyTemplateTypeEnum, 'Q_COMPLEX', INDETERMINATE) +p_complex = IfcComplexPropertyTemplateTypeEnum.P_COMPLEX +q_complex = IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX IfcCompressorTypeEnum = enum_namespace() -dynamic = getattr(IfcCompressorTypeEnum, 'DYNAMIC', INDETERMINATE) -reciprocating = getattr(IfcCompressorTypeEnum, 'RECIPROCATING', INDETERMINATE) -rotary = getattr(IfcCompressorTypeEnum, 'ROTARY', INDETERMINATE) -scroll = getattr(IfcCompressorTypeEnum, 'SCROLL', INDETERMINATE) -trochoidal = getattr(IfcCompressorTypeEnum, 'TROCHOIDAL', INDETERMINATE) -singlestage = getattr(IfcCompressorTypeEnum, 'SINGLESTAGE', INDETERMINATE) -booster = getattr(IfcCompressorTypeEnum, 'BOOSTER', INDETERMINATE) -opentype = getattr(IfcCompressorTypeEnum, 'OPENTYPE', INDETERMINATE) -hermetic = getattr(IfcCompressorTypeEnum, 'HERMETIC', INDETERMINATE) -semihermetic = getattr(IfcCompressorTypeEnum, 'SEMIHERMETIC', INDETERMINATE) -weldedshellhermetic = getattr(IfcCompressorTypeEnum, 'WELDEDSHELLHERMETIC', INDETERMINATE) -rollingpiston = getattr(IfcCompressorTypeEnum, 'ROLLINGPISTON', INDETERMINATE) -rotaryvane = getattr(IfcCompressorTypeEnum, 'ROTARYVANE', INDETERMINATE) -singlescrew = getattr(IfcCompressorTypeEnum, 'SINGLESCREW', INDETERMINATE) -twinscrew = getattr(IfcCompressorTypeEnum, 'TWINSCREW', INDETERMINATE) -userdefined = getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCompressorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dynamic = IfcCompressorTypeEnum.DYNAMIC +reciprocating = IfcCompressorTypeEnum.RECIPROCATING +rotary = IfcCompressorTypeEnum.ROTARY +scroll = IfcCompressorTypeEnum.SCROLL +trochoidal = IfcCompressorTypeEnum.TROCHOIDAL +singlestage = IfcCompressorTypeEnum.SINGLESTAGE +booster = IfcCompressorTypeEnum.BOOSTER +opentype = IfcCompressorTypeEnum.OPENTYPE +hermetic = IfcCompressorTypeEnum.HERMETIC +semihermetic = IfcCompressorTypeEnum.SEMIHERMETIC +weldedshellhermetic = IfcCompressorTypeEnum.WELDEDSHELLHERMETIC +rollingpiston = IfcCompressorTypeEnum.ROLLINGPISTON +rotaryvane = IfcCompressorTypeEnum.ROTARYVANE +singlescrew = IfcCompressorTypeEnum.SINGLESCREW +twinscrew = IfcCompressorTypeEnum.TWINSCREW +userdefined = IfcCompressorTypeEnum.USERDEFINED +notdefined = IfcCompressorTypeEnum.NOTDEFINED IfcCondenserTypeEnum = enum_namespace() -aircooled = getattr(IfcCondenserTypeEnum, 'AIRCOOLED', INDETERMINATE) -evaporativecooled = getattr(IfcCondenserTypeEnum, 'EVAPORATIVECOOLED', INDETERMINATE) -watercooled = getattr(IfcCondenserTypeEnum, 'WATERCOOLED', INDETERMINATE) -watercooledbrazedplate = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDBRAZEDPLATE', INDETERMINATE) -watercooledshellcoil = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLCOIL', INDETERMINATE) -watercooledshelltube = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLTUBE', INDETERMINATE) -watercooledtubeintube = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDTUBEINTUBE', INDETERMINATE) -userdefined = getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCondenserTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcCondenserTypeEnum.AIRCOOLED +evaporativecooled = IfcCondenserTypeEnum.EVAPORATIVECOOLED +watercooled = IfcCondenserTypeEnum.WATERCOOLED +watercooledbrazedplate = IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE +watercooledshellcoil = IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL +watercooledshelltube = IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE +watercooledtubeintube = IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE +userdefined = IfcCondenserTypeEnum.USERDEFINED +notdefined = IfcCondenserTypeEnum.NOTDEFINED IfcConnectionTypeEnum = enum_namespace() -atpath = getattr(IfcConnectionTypeEnum, 'ATPATH', INDETERMINATE) -atstart = getattr(IfcConnectionTypeEnum, 'ATSTART', INDETERMINATE) -atend = getattr(IfcConnectionTypeEnum, 'ATEND', INDETERMINATE) -notdefined = getattr(IfcConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +atpath = IfcConnectionTypeEnum.ATPATH +atstart = IfcConnectionTypeEnum.ATSTART +atend = IfcConnectionTypeEnum.ATEND +notdefined = IfcConnectionTypeEnum.NOTDEFINED IfcConstraintEnum = enum_namespace() -hard = getattr(IfcConstraintEnum, 'HARD', INDETERMINATE) -soft = getattr(IfcConstraintEnum, 'SOFT', INDETERMINATE) -advisory = getattr(IfcConstraintEnum, 'ADVISORY', INDETERMINATE) -userdefined = getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstraintEnum, 'NOTDEFINED', INDETERMINATE) +hard = IfcConstraintEnum.HARD +soft = IfcConstraintEnum.SOFT +advisory = IfcConstraintEnum.ADVISORY +userdefined = IfcConstraintEnum.USERDEFINED +notdefined = IfcConstraintEnum.NOTDEFINED IfcConstructionEquipmentResourceTypeEnum = enum_namespace() -demolishing = getattr(IfcConstructionEquipmentResourceTypeEnum, 'DEMOLISHING', INDETERMINATE) -earthmoving = getattr(IfcConstructionEquipmentResourceTypeEnum, 'EARTHMOVING', INDETERMINATE) -erecting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'ERECTING', INDETERMINATE) -heating = getattr(IfcConstructionEquipmentResourceTypeEnum, 'HEATING', INDETERMINATE) -lighting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'LIGHTING', INDETERMINATE) -paving = getattr(IfcConstructionEquipmentResourceTypeEnum, 'PAVING', INDETERMINATE) -pumping = getattr(IfcConstructionEquipmentResourceTypeEnum, 'PUMPING', INDETERMINATE) -transporting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'TRANSPORTING', INDETERMINATE) -userdefined = getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstructionEquipmentResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +demolishing = IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING +earthmoving = IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING +erecting = IfcConstructionEquipmentResourceTypeEnum.ERECTING +heating = IfcConstructionEquipmentResourceTypeEnum.HEATING +lighting = IfcConstructionEquipmentResourceTypeEnum.LIGHTING +paving = IfcConstructionEquipmentResourceTypeEnum.PAVING +pumping = IfcConstructionEquipmentResourceTypeEnum.PUMPING +transporting = IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING +userdefined = IfcConstructionEquipmentResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED IfcConstructionMaterialResourceTypeEnum = enum_namespace() -aggregates = getattr(IfcConstructionMaterialResourceTypeEnum, 'AGGREGATES', INDETERMINATE) -concrete = getattr(IfcConstructionMaterialResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = getattr(IfcConstructionMaterialResourceTypeEnum, 'DRYWALL', INDETERMINATE) -fuel = getattr(IfcConstructionMaterialResourceTypeEnum, 'FUEL', INDETERMINATE) -gypsum = getattr(IfcConstructionMaterialResourceTypeEnum, 'GYPSUM', INDETERMINATE) -masonry = getattr(IfcConstructionMaterialResourceTypeEnum, 'MASONRY', INDETERMINATE) -metal = getattr(IfcConstructionMaterialResourceTypeEnum, 'METAL', INDETERMINATE) -plastic = getattr(IfcConstructionMaterialResourceTypeEnum, 'PLASTIC', INDETERMINATE) -wood = getattr(IfcConstructionMaterialResourceTypeEnum, 'WOOD', INDETERMINATE) -notdefined = getattr(IfcConstructionMaterialResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) -userdefined = getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) +aggregates = IfcConstructionMaterialResourceTypeEnum.AGGREGATES +concrete = IfcConstructionMaterialResourceTypeEnum.CONCRETE +drywall = IfcConstructionMaterialResourceTypeEnum.DRYWALL +fuel = IfcConstructionMaterialResourceTypeEnum.FUEL +gypsum = IfcConstructionMaterialResourceTypeEnum.GYPSUM +masonry = IfcConstructionMaterialResourceTypeEnum.MASONRY +metal = IfcConstructionMaterialResourceTypeEnum.METAL +plastic = IfcConstructionMaterialResourceTypeEnum.PLASTIC +wood = IfcConstructionMaterialResourceTypeEnum.WOOD +notdefined = IfcConstructionMaterialResourceTypeEnum.NOTDEFINED +userdefined = IfcConstructionMaterialResourceTypeEnum.USERDEFINED IfcConstructionProductResourceTypeEnum = enum_namespace() -assembly = getattr(IfcConstructionProductResourceTypeEnum, 'ASSEMBLY', INDETERMINATE) -formwork = getattr(IfcConstructionProductResourceTypeEnum, 'FORMWORK', INDETERMINATE) -userdefined = getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstructionProductResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +assembly = IfcConstructionProductResourceTypeEnum.ASSEMBLY +formwork = IfcConstructionProductResourceTypeEnum.FORMWORK +userdefined = IfcConstructionProductResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionProductResourceTypeEnum.NOTDEFINED IfcControllerTypeEnum = enum_namespace() -floating = getattr(IfcControllerTypeEnum, 'FLOATING', INDETERMINATE) -programmable = getattr(IfcControllerTypeEnum, 'PROGRAMMABLE', INDETERMINATE) -proportional = getattr(IfcControllerTypeEnum, 'PROPORTIONAL', INDETERMINATE) -multiposition = getattr(IfcControllerTypeEnum, 'MULTIPOSITION', INDETERMINATE) -twoposition = getattr(IfcControllerTypeEnum, 'TWOPOSITION', INDETERMINATE) -userdefined = getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcControllerTypeEnum, 'NOTDEFINED', INDETERMINATE) +floating = IfcControllerTypeEnum.FLOATING +programmable = IfcControllerTypeEnum.PROGRAMMABLE +proportional = IfcControllerTypeEnum.PROPORTIONAL +multiposition = IfcControllerTypeEnum.MULTIPOSITION +twoposition = IfcControllerTypeEnum.TWOPOSITION +userdefined = IfcControllerTypeEnum.USERDEFINED +notdefined = IfcControllerTypeEnum.NOTDEFINED IfcConveyorSegmentTypeEnum = enum_namespace() -chuteconveyor = getattr(IfcConveyorSegmentTypeEnum, 'CHUTECONVEYOR', INDETERMINATE) -beltconveyor = getattr(IfcConveyorSegmentTypeEnum, 'BELTCONVEYOR', INDETERMINATE) -screwconveyor = getattr(IfcConveyorSegmentTypeEnum, 'SCREWCONVEYOR', INDETERMINATE) -bucketconveyor = getattr(IfcConveyorSegmentTypeEnum, 'BUCKETCONVEYOR', INDETERMINATE) -userdefined = getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConveyorSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +chuteconveyor = IfcConveyorSegmentTypeEnum.CHUTECONVEYOR +beltconveyor = IfcConveyorSegmentTypeEnum.BELTCONVEYOR +screwconveyor = IfcConveyorSegmentTypeEnum.SCREWCONVEYOR +bucketconveyor = IfcConveyorSegmentTypeEnum.BUCKETCONVEYOR +userdefined = IfcConveyorSegmentTypeEnum.USERDEFINED +notdefined = IfcConveyorSegmentTypeEnum.NOTDEFINED IfcCooledBeamTypeEnum = enum_namespace() -active = getattr(IfcCooledBeamTypeEnum, 'ACTIVE', INDETERMINATE) -passive = getattr(IfcCooledBeamTypeEnum, 'PASSIVE', INDETERMINATE) -userdefined = getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCooledBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +active = IfcCooledBeamTypeEnum.ACTIVE +passive = IfcCooledBeamTypeEnum.PASSIVE +userdefined = IfcCooledBeamTypeEnum.USERDEFINED +notdefined = IfcCooledBeamTypeEnum.NOTDEFINED IfcCoolingTowerTypeEnum = enum_namespace() -naturaldraft = getattr(IfcCoolingTowerTypeEnum, 'NATURALDRAFT', INDETERMINATE) -mechanicalinduceddraft = getattr(IfcCoolingTowerTypeEnum, 'MECHANICALINDUCEDDRAFT', INDETERMINATE) -mechanicalforceddraft = getattr(IfcCoolingTowerTypeEnum, 'MECHANICALFORCEDDRAFT', INDETERMINATE) -userdefined = getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoolingTowerTypeEnum, 'NOTDEFINED', INDETERMINATE) +naturaldraft = IfcCoolingTowerTypeEnum.NATURALDRAFT +mechanicalinduceddraft = IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT +mechanicalforceddraft = IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT +userdefined = IfcCoolingTowerTypeEnum.USERDEFINED +notdefined = IfcCoolingTowerTypeEnum.NOTDEFINED IfcCostItemTypeEnum = enum_namespace() -userdefined = getattr(IfcCostItemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCostItemTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCostItemTypeEnum.USERDEFINED +notdefined = IfcCostItemTypeEnum.NOTDEFINED IfcCostScheduleTypeEnum = enum_namespace() -budget = getattr(IfcCostScheduleTypeEnum, 'BUDGET', INDETERMINATE) -costplan = getattr(IfcCostScheduleTypeEnum, 'COSTPLAN', INDETERMINATE) -estimate = getattr(IfcCostScheduleTypeEnum, 'ESTIMATE', INDETERMINATE) -tender = getattr(IfcCostScheduleTypeEnum, 'TENDER', INDETERMINATE) -pricedbillofquantities = getattr(IfcCostScheduleTypeEnum, 'PRICEDBILLOFQUANTITIES', INDETERMINATE) -unpricedbillofquantities = getattr(IfcCostScheduleTypeEnum, 'UNPRICEDBILLOFQUANTITIES', INDETERMINATE) -scheduleofrates = getattr(IfcCostScheduleTypeEnum, 'SCHEDULEOFRATES', INDETERMINATE) -userdefined = getattr(IfcCostScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCostScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +budget = IfcCostScheduleTypeEnum.BUDGET +costplan = IfcCostScheduleTypeEnum.COSTPLAN +estimate = IfcCostScheduleTypeEnum.ESTIMATE +tender = IfcCostScheduleTypeEnum.TENDER +pricedbillofquantities = IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES +unpricedbillofquantities = IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES +scheduleofrates = IfcCostScheduleTypeEnum.SCHEDULEOFRATES +userdefined = IfcCostScheduleTypeEnum.USERDEFINED +notdefined = IfcCostScheduleTypeEnum.NOTDEFINED IfcCourseTypeEnum = enum_namespace() -armour = getattr(IfcCourseTypeEnum, 'ARMOUR', INDETERMINATE) -filter = getattr(IfcCourseTypeEnum, 'FILTER', INDETERMINATE) -ballastbed = getattr(IfcCourseTypeEnum, 'BALLASTBED', INDETERMINATE) -core = getattr(IfcCourseTypeEnum, 'CORE', INDETERMINATE) -pavement = getattr(IfcCourseTypeEnum, 'PAVEMENT', INDETERMINATE) -protection = getattr(IfcCourseTypeEnum, 'PROTECTION', INDETERMINATE) -userdefined = getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCourseTypeEnum, 'NOTDEFINED', INDETERMINATE) +armour = IfcCourseTypeEnum.ARMOUR +filter = IfcCourseTypeEnum.FILTER +ballastbed = IfcCourseTypeEnum.BALLASTBED +core = IfcCourseTypeEnum.CORE +pavement = IfcCourseTypeEnum.PAVEMENT +protection = IfcCourseTypeEnum.PROTECTION +userdefined = IfcCourseTypeEnum.USERDEFINED +notdefined = IfcCourseTypeEnum.NOTDEFINED IfcCoveringTypeEnum = enum_namespace() -ceiling = getattr(IfcCoveringTypeEnum, 'CEILING', INDETERMINATE) -flooring = getattr(IfcCoveringTypeEnum, 'FLOORING', INDETERMINATE) -cladding = getattr(IfcCoveringTypeEnum, 'CLADDING', INDETERMINATE) -roofing = getattr(IfcCoveringTypeEnum, 'ROOFING', INDETERMINATE) -molding = getattr(IfcCoveringTypeEnum, 'MOLDING', INDETERMINATE) -skirtingboard = getattr(IfcCoveringTypeEnum, 'SKIRTINGBOARD', INDETERMINATE) -insulation = getattr(IfcCoveringTypeEnum, 'INSULATION', INDETERMINATE) -membrane = getattr(IfcCoveringTypeEnum, 'MEMBRANE', INDETERMINATE) -sleeving = getattr(IfcCoveringTypeEnum, 'SLEEVING', INDETERMINATE) -wrapping = getattr(IfcCoveringTypeEnum, 'WRAPPING', INDETERMINATE) -coping = getattr(IfcCoveringTypeEnum, 'COPING', INDETERMINATE) -userdefined = getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoveringTypeEnum, 'NOTDEFINED', INDETERMINATE) +ceiling = IfcCoveringTypeEnum.CEILING +flooring = IfcCoveringTypeEnum.FLOORING +cladding = IfcCoveringTypeEnum.CLADDING +roofing = IfcCoveringTypeEnum.ROOFING +molding = IfcCoveringTypeEnum.MOLDING +skirtingboard = IfcCoveringTypeEnum.SKIRTINGBOARD +insulation = IfcCoveringTypeEnum.INSULATION +membrane = IfcCoveringTypeEnum.MEMBRANE +sleeving = IfcCoveringTypeEnum.SLEEVING +wrapping = IfcCoveringTypeEnum.WRAPPING +coping = IfcCoveringTypeEnum.COPING +userdefined = IfcCoveringTypeEnum.USERDEFINED +notdefined = IfcCoveringTypeEnum.NOTDEFINED IfcCrewResourceTypeEnum = enum_namespace() -office = getattr(IfcCrewResourceTypeEnum, 'OFFICE', INDETERMINATE) -site = getattr(IfcCrewResourceTypeEnum, 'SITE', INDETERMINATE) -userdefined = getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCrewResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +office = IfcCrewResourceTypeEnum.OFFICE +site = IfcCrewResourceTypeEnum.SITE +userdefined = IfcCrewResourceTypeEnum.USERDEFINED +notdefined = IfcCrewResourceTypeEnum.NOTDEFINED IfcCurtainWallTypeEnum = enum_namespace() -userdefined = getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCurtainWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCurtainWallTypeEnum.USERDEFINED +notdefined = IfcCurtainWallTypeEnum.NOTDEFINED IfcCurveInterpolationEnum = enum_namespace() -linear = getattr(IfcCurveInterpolationEnum, 'LINEAR', INDETERMINATE) -log_linear = getattr(IfcCurveInterpolationEnum, 'LOG_LINEAR', INDETERMINATE) -log_log = getattr(IfcCurveInterpolationEnum, 'LOG_LOG', INDETERMINATE) -notdefined = getattr(IfcCurveInterpolationEnum, 'NOTDEFINED', INDETERMINATE) +linear = IfcCurveInterpolationEnum.LINEAR +log_linear = IfcCurveInterpolationEnum.LOG_LINEAR +log_log = IfcCurveInterpolationEnum.LOG_LOG +notdefined = IfcCurveInterpolationEnum.NOTDEFINED IfcDamperTypeEnum = enum_namespace() -backdraftdamper = getattr(IfcDamperTypeEnum, 'BACKDRAFTDAMPER', INDETERMINATE) -balancingdamper = getattr(IfcDamperTypeEnum, 'BALANCINGDAMPER', INDETERMINATE) -blastdamper = getattr(IfcDamperTypeEnum, 'BLASTDAMPER', INDETERMINATE) -controldamper = getattr(IfcDamperTypeEnum, 'CONTROLDAMPER', INDETERMINATE) -firedamper = getattr(IfcDamperTypeEnum, 'FIREDAMPER', INDETERMINATE) -firesmokedamper = getattr(IfcDamperTypeEnum, 'FIRESMOKEDAMPER', INDETERMINATE) -fumehoodexhaust = getattr(IfcDamperTypeEnum, 'FUMEHOODEXHAUST', INDETERMINATE) -gravitydamper = getattr(IfcDamperTypeEnum, 'GRAVITYDAMPER', INDETERMINATE) -gravityreliefdamper = getattr(IfcDamperTypeEnum, 'GRAVITYRELIEFDAMPER', INDETERMINATE) -reliefdamper = getattr(IfcDamperTypeEnum, 'RELIEFDAMPER', INDETERMINATE) -smokedamper = getattr(IfcDamperTypeEnum, 'SMOKEDAMPER', INDETERMINATE) -userdefined = getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +backdraftdamper = IfcDamperTypeEnum.BACKDRAFTDAMPER +balancingdamper = IfcDamperTypeEnum.BALANCINGDAMPER +blastdamper = IfcDamperTypeEnum.BLASTDAMPER +controldamper = IfcDamperTypeEnum.CONTROLDAMPER +firedamper = IfcDamperTypeEnum.FIREDAMPER +firesmokedamper = IfcDamperTypeEnum.FIRESMOKEDAMPER +fumehoodexhaust = IfcDamperTypeEnum.FUMEHOODEXHAUST +gravitydamper = IfcDamperTypeEnum.GRAVITYDAMPER +gravityreliefdamper = IfcDamperTypeEnum.GRAVITYRELIEFDAMPER +reliefdamper = IfcDamperTypeEnum.RELIEFDAMPER +smokedamper = IfcDamperTypeEnum.SMOKEDAMPER +userdefined = IfcDamperTypeEnum.USERDEFINED +notdefined = IfcDamperTypeEnum.NOTDEFINED IfcDataOriginEnum = enum_namespace() -measured = getattr(IfcDataOriginEnum, 'MEASURED', INDETERMINATE) -predicted = getattr(IfcDataOriginEnum, 'PREDICTED', INDETERMINATE) -simulated = getattr(IfcDataOriginEnum, 'SIMULATED', INDETERMINATE) -userdefined = getattr(IfcDataOriginEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDataOriginEnum, 'NOTDEFINED', INDETERMINATE) +measured = IfcDataOriginEnum.MEASURED +predicted = IfcDataOriginEnum.PREDICTED +simulated = IfcDataOriginEnum.SIMULATED +userdefined = IfcDataOriginEnum.USERDEFINED +notdefined = IfcDataOriginEnum.NOTDEFINED IfcDerivedUnitEnum = enum_namespace() -angularvelocityunit = getattr(IfcDerivedUnitEnum, 'ANGULARVELOCITYUNIT', INDETERMINATE) -areadensityunit = getattr(IfcDerivedUnitEnum, 'AREADENSITYUNIT', INDETERMINATE) -compoundplaneangleunit = getattr(IfcDerivedUnitEnum, 'COMPOUNDPLANEANGLEUNIT', INDETERMINATE) -dynamicviscosityunit = getattr(IfcDerivedUnitEnum, 'DYNAMICVISCOSITYUNIT', INDETERMINATE) -heatfluxdensityunit = getattr(IfcDerivedUnitEnum, 'HEATFLUXDENSITYUNIT', INDETERMINATE) -integercountrateunit = getattr(IfcDerivedUnitEnum, 'INTEGERCOUNTRATEUNIT', INDETERMINATE) -isothermalmoisturecapacityunit = getattr(IfcDerivedUnitEnum, 'ISOTHERMALMOISTURECAPACITYUNIT', INDETERMINATE) -kinematicviscosityunit = getattr(IfcDerivedUnitEnum, 'KINEMATICVISCOSITYUNIT', INDETERMINATE) -linearvelocityunit = getattr(IfcDerivedUnitEnum, 'LINEARVELOCITYUNIT', INDETERMINATE) -massdensityunit = getattr(IfcDerivedUnitEnum, 'MASSDENSITYUNIT', INDETERMINATE) -massflowrateunit = getattr(IfcDerivedUnitEnum, 'MASSFLOWRATEUNIT', INDETERMINATE) -moisturediffusivityunit = getattr(IfcDerivedUnitEnum, 'MOISTUREDIFFUSIVITYUNIT', INDETERMINATE) -molecularweightunit = getattr(IfcDerivedUnitEnum, 'MOLECULARWEIGHTUNIT', INDETERMINATE) -specificheatcapacityunit = getattr(IfcDerivedUnitEnum, 'SPECIFICHEATCAPACITYUNIT', INDETERMINATE) -thermaladmittanceunit = getattr(IfcDerivedUnitEnum, 'THERMALADMITTANCEUNIT', INDETERMINATE) -thermalconductanceunit = getattr(IfcDerivedUnitEnum, 'THERMALCONDUCTANCEUNIT', INDETERMINATE) -thermalresistanceunit = getattr(IfcDerivedUnitEnum, 'THERMALRESISTANCEUNIT', INDETERMINATE) -thermaltransmittanceunit = getattr(IfcDerivedUnitEnum, 'THERMALTRANSMITTANCEUNIT', INDETERMINATE) -vaporpermeabilityunit = getattr(IfcDerivedUnitEnum, 'VAPORPERMEABILITYUNIT', INDETERMINATE) -volumetricflowrateunit = getattr(IfcDerivedUnitEnum, 'VOLUMETRICFLOWRATEUNIT', INDETERMINATE) -rotationalfrequencyunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALFREQUENCYUNIT', INDETERMINATE) -torqueunit = getattr(IfcDerivedUnitEnum, 'TORQUEUNIT', INDETERMINATE) -momentofinertiaunit = getattr(IfcDerivedUnitEnum, 'MOMENTOFINERTIAUNIT', INDETERMINATE) -linearmomentunit = getattr(IfcDerivedUnitEnum, 'LINEARMOMENTUNIT', INDETERMINATE) -linearforceunit = getattr(IfcDerivedUnitEnum, 'LINEARFORCEUNIT', INDETERMINATE) -planarforceunit = getattr(IfcDerivedUnitEnum, 'PLANARFORCEUNIT', INDETERMINATE) -modulusofelasticityunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFELASTICITYUNIT', INDETERMINATE) -shearmodulusunit = getattr(IfcDerivedUnitEnum, 'SHEARMODULUSUNIT', INDETERMINATE) -linearstiffnessunit = getattr(IfcDerivedUnitEnum, 'LINEARSTIFFNESSUNIT', INDETERMINATE) -rotationalstiffnessunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALSTIFFNESSUNIT', INDETERMINATE) -modulusofsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFSUBGRADEREACTIONUNIT', INDETERMINATE) -accelerationunit = getattr(IfcDerivedUnitEnum, 'ACCELERATIONUNIT', INDETERMINATE) -curvatureunit = getattr(IfcDerivedUnitEnum, 'CURVATUREUNIT', INDETERMINATE) -heatingvalueunit = getattr(IfcDerivedUnitEnum, 'HEATINGVALUEUNIT', INDETERMINATE) -ionconcentrationunit = getattr(IfcDerivedUnitEnum, 'IONCONCENTRATIONUNIT', INDETERMINATE) -luminousintensitydistributionunit = getattr(IfcDerivedUnitEnum, 'LUMINOUSINTENSITYDISTRIBUTIONUNIT', INDETERMINATE) -massperlengthunit = getattr(IfcDerivedUnitEnum, 'MASSPERLENGTHUNIT', INDETERMINATE) -modulusoflinearsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFLINEARSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofrotationalsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFROTATIONALSUBGRADEREACTIONUNIT', INDETERMINATE) -phunit = getattr(IfcDerivedUnitEnum, 'PHUNIT', INDETERMINATE) -rotationalmassunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALMASSUNIT', INDETERMINATE) -sectionareaintegralunit = getattr(IfcDerivedUnitEnum, 'SECTIONAREAINTEGRALUNIT', INDETERMINATE) -sectionmodulusunit = getattr(IfcDerivedUnitEnum, 'SECTIONMODULUSUNIT', INDETERMINATE) -soundpowerlevelunit = getattr(IfcDerivedUnitEnum, 'SOUNDPOWERLEVELUNIT', INDETERMINATE) -soundpowerunit = getattr(IfcDerivedUnitEnum, 'SOUNDPOWERUNIT', INDETERMINATE) -soundpressurelevelunit = getattr(IfcDerivedUnitEnum, 'SOUNDPRESSURELEVELUNIT', INDETERMINATE) -soundpressureunit = getattr(IfcDerivedUnitEnum, 'SOUNDPRESSUREUNIT', INDETERMINATE) -temperaturegradientunit = getattr(IfcDerivedUnitEnum, 'TEMPERATUREGRADIENTUNIT', INDETERMINATE) -temperaturerateofchangeunit = getattr(IfcDerivedUnitEnum, 'TEMPERATURERATEOFCHANGEUNIT', INDETERMINATE) -thermalexpansioncoefficientunit = getattr(IfcDerivedUnitEnum, 'THERMALEXPANSIONCOEFFICIENTUNIT', INDETERMINATE) -warpingconstantunit = getattr(IfcDerivedUnitEnum, 'WARPINGCONSTANTUNIT', INDETERMINATE) -warpingmomentunit = getattr(IfcDerivedUnitEnum, 'WARPINGMOMENTUNIT', INDETERMINATE) -userdefined = getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) +angularvelocityunit = IfcDerivedUnitEnum.ANGULARVELOCITYUNIT +areadensityunit = IfcDerivedUnitEnum.AREADENSITYUNIT +compoundplaneangleunit = IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT +dynamicviscosityunit = IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT +heatfluxdensityunit = IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT +integercountrateunit = IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT +isothermalmoisturecapacityunit = IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT +kinematicviscosityunit = IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT +linearvelocityunit = IfcDerivedUnitEnum.LINEARVELOCITYUNIT +massdensityunit = IfcDerivedUnitEnum.MASSDENSITYUNIT +massflowrateunit = IfcDerivedUnitEnum.MASSFLOWRATEUNIT +moisturediffusivityunit = IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT +molecularweightunit = IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT +specificheatcapacityunit = IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT +thermaladmittanceunit = IfcDerivedUnitEnum.THERMALADMITTANCEUNIT +thermalconductanceunit = IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT +thermalresistanceunit = IfcDerivedUnitEnum.THERMALRESISTANCEUNIT +thermaltransmittanceunit = IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT +vaporpermeabilityunit = IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT +volumetricflowrateunit = IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT +rotationalfrequencyunit = IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT +torqueunit = IfcDerivedUnitEnum.TORQUEUNIT +momentofinertiaunit = IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT +linearmomentunit = IfcDerivedUnitEnum.LINEARMOMENTUNIT +linearforceunit = IfcDerivedUnitEnum.LINEARFORCEUNIT +planarforceunit = IfcDerivedUnitEnum.PLANARFORCEUNIT +modulusofelasticityunit = IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT +shearmodulusunit = IfcDerivedUnitEnum.SHEARMODULUSUNIT +linearstiffnessunit = IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT +rotationalstiffnessunit = IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT +modulusofsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT +accelerationunit = IfcDerivedUnitEnum.ACCELERATIONUNIT +curvatureunit = IfcDerivedUnitEnum.CURVATUREUNIT +heatingvalueunit = IfcDerivedUnitEnum.HEATINGVALUEUNIT +ionconcentrationunit = IfcDerivedUnitEnum.IONCONCENTRATIONUNIT +luminousintensitydistributionunit = IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT +massperlengthunit = IfcDerivedUnitEnum.MASSPERLENGTHUNIT +modulusoflinearsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT +modulusofrotationalsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT +phunit = IfcDerivedUnitEnum.PHUNIT +rotationalmassunit = IfcDerivedUnitEnum.ROTATIONALMASSUNIT +sectionareaintegralunit = IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT +sectionmodulusunit = IfcDerivedUnitEnum.SECTIONMODULUSUNIT +soundpowerlevelunit = IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT +soundpowerunit = IfcDerivedUnitEnum.SOUNDPOWERUNIT +soundpressurelevelunit = IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT +soundpressureunit = IfcDerivedUnitEnum.SOUNDPRESSUREUNIT +temperaturegradientunit = IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT +temperaturerateofchangeunit = IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT +thermalexpansioncoefficientunit = IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT +warpingconstantunit = IfcDerivedUnitEnum.WARPINGCONSTANTUNIT +warpingmomentunit = IfcDerivedUnitEnum.WARPINGMOMENTUNIT +userdefined = IfcDerivedUnitEnum.USERDEFINED IfcDirectionSenseEnum = enum_namespace() -positive = getattr(IfcDirectionSenseEnum, 'POSITIVE', INDETERMINATE) -negative = getattr(IfcDirectionSenseEnum, 'NEGATIVE', INDETERMINATE) +positive = IfcDirectionSenseEnum.POSITIVE +negative = IfcDirectionSenseEnum.NEGATIVE IfcDiscreteAccessoryTypeEnum = enum_namespace() -anchorplate = getattr(IfcDiscreteAccessoryTypeEnum, 'ANCHORPLATE', INDETERMINATE) -bracket = getattr(IfcDiscreteAccessoryTypeEnum, 'BRACKET', INDETERMINATE) -shoe = getattr(IfcDiscreteAccessoryTypeEnum, 'SHOE', INDETERMINATE) -expansion_joint_device = getattr(IfcDiscreteAccessoryTypeEnum, 'EXPANSION_JOINT_DEVICE', INDETERMINATE) -cablearranger = getattr(IfcDiscreteAccessoryTypeEnum, 'CABLEARRANGER', INDETERMINATE) -insulator = getattr(IfcDiscreteAccessoryTypeEnum, 'INSULATOR', INDETERMINATE) -lock = getattr(IfcDiscreteAccessoryTypeEnum, 'LOCK', INDETERMINATE) -tensioningequipment = getattr(IfcDiscreteAccessoryTypeEnum, 'TENSIONINGEQUIPMENT', INDETERMINATE) -railpad = getattr(IfcDiscreteAccessoryTypeEnum, 'RAILPAD', INDETERMINATE) -slidingchair = getattr(IfcDiscreteAccessoryTypeEnum, 'SLIDINGCHAIR', INDETERMINATE) -rail_lubrication = getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_LUBRICATION', INDETERMINATE) -panel_strengthening = getattr(IfcDiscreteAccessoryTypeEnum, 'PANEL_STRENGTHENING', INDETERMINATE) -railbrace = getattr(IfcDiscreteAccessoryTypeEnum, 'RAILBRACE', INDETERMINATE) -elastic_cushion = getattr(IfcDiscreteAccessoryTypeEnum, 'ELASTIC_CUSHION', INDETERMINATE) -soundabsorption = getattr(IfcDiscreteAccessoryTypeEnum, 'SOUNDABSORPTION', INDETERMINATE) -pointmachinemountingdevice = getattr(IfcDiscreteAccessoryTypeEnum, 'POINTMACHINEMOUNTINGDEVICE', INDETERMINATE) -point_machine_locking_device = getattr(IfcDiscreteAccessoryTypeEnum, 'POINT_MACHINE_LOCKING_DEVICE', INDETERMINATE) -rail_mechanical_equipment = getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT', INDETERMINATE) -birdprotection = getattr(IfcDiscreteAccessoryTypeEnum, 'BIRDPROTECTION', INDETERMINATE) -userdefined = getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDiscreteAccessoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorplate = IfcDiscreteAccessoryTypeEnum.ANCHORPLATE +bracket = IfcDiscreteAccessoryTypeEnum.BRACKET +shoe = IfcDiscreteAccessoryTypeEnum.SHOE +expansion_joint_device = IfcDiscreteAccessoryTypeEnum.EXPANSION_JOINT_DEVICE +cablearranger = IfcDiscreteAccessoryTypeEnum.CABLEARRANGER +insulator = IfcDiscreteAccessoryTypeEnum.INSULATOR +lock = IfcDiscreteAccessoryTypeEnum.LOCK +tensioningequipment = IfcDiscreteAccessoryTypeEnum.TENSIONINGEQUIPMENT +railpad = IfcDiscreteAccessoryTypeEnum.RAILPAD +slidingchair = IfcDiscreteAccessoryTypeEnum.SLIDINGCHAIR +rail_lubrication = IfcDiscreteAccessoryTypeEnum.RAIL_LUBRICATION +panel_strengthening = IfcDiscreteAccessoryTypeEnum.PANEL_STRENGTHENING +railbrace = IfcDiscreteAccessoryTypeEnum.RAILBRACE +elastic_cushion = IfcDiscreteAccessoryTypeEnum.ELASTIC_CUSHION +soundabsorption = IfcDiscreteAccessoryTypeEnum.SOUNDABSORPTION +pointmachinemountingdevice = IfcDiscreteAccessoryTypeEnum.POINTMACHINEMOUNTINGDEVICE +point_machine_locking_device = IfcDiscreteAccessoryTypeEnum.POINT_MACHINE_LOCKING_DEVICE +rail_mechanical_equipment = IfcDiscreteAccessoryTypeEnum.RAIL_MECHANICAL_EQUIPMENT +birdprotection = IfcDiscreteAccessoryTypeEnum.BIRDPROTECTION +userdefined = IfcDiscreteAccessoryTypeEnum.USERDEFINED +notdefined = IfcDiscreteAccessoryTypeEnum.NOTDEFINED IfcDistributionBoardTypeEnum = enum_namespace() -switchboard = getattr(IfcDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -consumerunit = getattr(IfcDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -motorcontrolcentre = getattr(IfcDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -distributionframe = getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONFRAME', INDETERMINATE) -distributionboard = getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -userdefined = getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +switchboard = IfcDistributionBoardTypeEnum.SWITCHBOARD +consumerunit = IfcDistributionBoardTypeEnum.CONSUMERUNIT +motorcontrolcentre = IfcDistributionBoardTypeEnum.MOTORCONTROLCENTRE +distributionframe = IfcDistributionBoardTypeEnum.DISTRIBUTIONFRAME +distributionboard = IfcDistributionBoardTypeEnum.DISTRIBUTIONBOARD +userdefined = IfcDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcDistributionBoardTypeEnum.NOTDEFINED IfcDistributionChamberElementTypeEnum = enum_namespace() -formedduct = getattr(IfcDistributionChamberElementTypeEnum, 'FORMEDDUCT', INDETERMINATE) -inspectionchamber = getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONCHAMBER', INDETERMINATE) -inspectionpit = getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONPIT', INDETERMINATE) -manhole = getattr(IfcDistributionChamberElementTypeEnum, 'MANHOLE', INDETERMINATE) -meterchamber = getattr(IfcDistributionChamberElementTypeEnum, 'METERCHAMBER', INDETERMINATE) -sump = getattr(IfcDistributionChamberElementTypeEnum, 'SUMP', INDETERMINATE) -trench = getattr(IfcDistributionChamberElementTypeEnum, 'TRENCH', INDETERMINATE) -valvechamber = getattr(IfcDistributionChamberElementTypeEnum, 'VALVECHAMBER', INDETERMINATE) -userdefined = getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionChamberElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +formedduct = IfcDistributionChamberElementTypeEnum.FORMEDDUCT +inspectionchamber = IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER +inspectionpit = IfcDistributionChamberElementTypeEnum.INSPECTIONPIT +manhole = IfcDistributionChamberElementTypeEnum.MANHOLE +meterchamber = IfcDistributionChamberElementTypeEnum.METERCHAMBER +sump = IfcDistributionChamberElementTypeEnum.SUMP +trench = IfcDistributionChamberElementTypeEnum.TRENCH +valvechamber = IfcDistributionChamberElementTypeEnum.VALVECHAMBER +userdefined = IfcDistributionChamberElementTypeEnum.USERDEFINED +notdefined = IfcDistributionChamberElementTypeEnum.NOTDEFINED IfcDistributionPortTypeEnum = enum_namespace() -cable = getattr(IfcDistributionPortTypeEnum, 'CABLE', INDETERMINATE) -cablecarrier = getattr(IfcDistributionPortTypeEnum, 'CABLECARRIER', INDETERMINATE) -duct = getattr(IfcDistributionPortTypeEnum, 'DUCT', INDETERMINATE) -pipe = getattr(IfcDistributionPortTypeEnum, 'PIPE', INDETERMINATE) -wireless = getattr(IfcDistributionPortTypeEnum, 'WIRELESS', INDETERMINATE) -userdefined = getattr(IfcDistributionPortTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionPortTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcDistributionPortTypeEnum.CABLE +cablecarrier = IfcDistributionPortTypeEnum.CABLECARRIER +duct = IfcDistributionPortTypeEnum.DUCT +pipe = IfcDistributionPortTypeEnum.PIPE +wireless = IfcDistributionPortTypeEnum.WIRELESS +userdefined = IfcDistributionPortTypeEnum.USERDEFINED +notdefined = IfcDistributionPortTypeEnum.NOTDEFINED IfcDistributionSystemEnum = enum_namespace() -airconditioning = getattr(IfcDistributionSystemEnum, 'AIRCONDITIONING', INDETERMINATE) -audiovisual = getattr(IfcDistributionSystemEnum, 'AUDIOVISUAL', INDETERMINATE) -chemical = getattr(IfcDistributionSystemEnum, 'CHEMICAL', INDETERMINATE) -chilledwater = getattr(IfcDistributionSystemEnum, 'CHILLEDWATER', INDETERMINATE) -communication = getattr(IfcDistributionSystemEnum, 'COMMUNICATION', INDETERMINATE) -compressedair = getattr(IfcDistributionSystemEnum, 'COMPRESSEDAIR', INDETERMINATE) -condenserwater = getattr(IfcDistributionSystemEnum, 'CONDENSERWATER', INDETERMINATE) -control = getattr(IfcDistributionSystemEnum, 'CONTROL', INDETERMINATE) -conveying = getattr(IfcDistributionSystemEnum, 'CONVEYING', INDETERMINATE) -data = getattr(IfcDistributionSystemEnum, 'DATA', INDETERMINATE) -disposal = getattr(IfcDistributionSystemEnum, 'DISPOSAL', INDETERMINATE) -domesticcoldwater = getattr(IfcDistributionSystemEnum, 'DOMESTICCOLDWATER', INDETERMINATE) -domestichotwater = getattr(IfcDistributionSystemEnum, 'DOMESTICHOTWATER', INDETERMINATE) -drainage = getattr(IfcDistributionSystemEnum, 'DRAINAGE', INDETERMINATE) -earthing = getattr(IfcDistributionSystemEnum, 'EARTHING', INDETERMINATE) -electrical = getattr(IfcDistributionSystemEnum, 'ELECTRICAL', INDETERMINATE) -electroacoustic = getattr(IfcDistributionSystemEnum, 'ELECTROACOUSTIC', INDETERMINATE) -exhaust = getattr(IfcDistributionSystemEnum, 'EXHAUST', INDETERMINATE) -fireprotection = getattr(IfcDistributionSystemEnum, 'FIREPROTECTION', INDETERMINATE) -fuel = getattr(IfcDistributionSystemEnum, 'FUEL', INDETERMINATE) -gas = getattr(IfcDistributionSystemEnum, 'GAS', INDETERMINATE) -hazardous = getattr(IfcDistributionSystemEnum, 'HAZARDOUS', INDETERMINATE) -heating = getattr(IfcDistributionSystemEnum, 'HEATING', INDETERMINATE) -lighting = getattr(IfcDistributionSystemEnum, 'LIGHTING', INDETERMINATE) -lightningprotection = getattr(IfcDistributionSystemEnum, 'LIGHTNINGPROTECTION', INDETERMINATE) -municipalsolidwaste = getattr(IfcDistributionSystemEnum, 'MUNICIPALSOLIDWASTE', INDETERMINATE) -oil = getattr(IfcDistributionSystemEnum, 'OIL', INDETERMINATE) -operational = getattr(IfcDistributionSystemEnum, 'OPERATIONAL', INDETERMINATE) -powergeneration = getattr(IfcDistributionSystemEnum, 'POWERGENERATION', INDETERMINATE) -rainwater = getattr(IfcDistributionSystemEnum, 'RAINWATER', INDETERMINATE) -refrigeration = getattr(IfcDistributionSystemEnum, 'REFRIGERATION', INDETERMINATE) -security = getattr(IfcDistributionSystemEnum, 'SECURITY', INDETERMINATE) -sewage = getattr(IfcDistributionSystemEnum, 'SEWAGE', INDETERMINATE) -signal = getattr(IfcDistributionSystemEnum, 'SIGNAL', INDETERMINATE) -stormwater = getattr(IfcDistributionSystemEnum, 'STORMWATER', INDETERMINATE) -telephone = getattr(IfcDistributionSystemEnum, 'TELEPHONE', INDETERMINATE) -tv = getattr(IfcDistributionSystemEnum, 'TV', INDETERMINATE) -vacuum = getattr(IfcDistributionSystemEnum, 'VACUUM', INDETERMINATE) -vent = getattr(IfcDistributionSystemEnum, 'VENT', INDETERMINATE) -ventilation = getattr(IfcDistributionSystemEnum, 'VENTILATION', INDETERMINATE) -wastewater = getattr(IfcDistributionSystemEnum, 'WASTEWATER', INDETERMINATE) -watersupply = getattr(IfcDistributionSystemEnum, 'WATERSUPPLY', INDETERMINATE) -catenary_system = getattr(IfcDistributionSystemEnum, 'CATENARY_SYSTEM', INDETERMINATE) -overhead_contactline_system = getattr(IfcDistributionSystemEnum, 'OVERHEAD_CONTACTLINE_SYSTEM', INDETERMINATE) -return_circuit = getattr(IfcDistributionSystemEnum, 'RETURN_CIRCUIT', INDETERMINATE) -userdefined = getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionSystemEnum, 'NOTDEFINED', INDETERMINATE) +airconditioning = IfcDistributionSystemEnum.AIRCONDITIONING +audiovisual = IfcDistributionSystemEnum.AUDIOVISUAL +chemical = IfcDistributionSystemEnum.CHEMICAL +chilledwater = IfcDistributionSystemEnum.CHILLEDWATER +communication = IfcDistributionSystemEnum.COMMUNICATION +compressedair = IfcDistributionSystemEnum.COMPRESSEDAIR +condenserwater = IfcDistributionSystemEnum.CONDENSERWATER +control = IfcDistributionSystemEnum.CONTROL +conveying = IfcDistributionSystemEnum.CONVEYING +data = IfcDistributionSystemEnum.DATA +disposal = IfcDistributionSystemEnum.DISPOSAL +domesticcoldwater = IfcDistributionSystemEnum.DOMESTICCOLDWATER +domestichotwater = IfcDistributionSystemEnum.DOMESTICHOTWATER +drainage = IfcDistributionSystemEnum.DRAINAGE +earthing = IfcDistributionSystemEnum.EARTHING +electrical = IfcDistributionSystemEnum.ELECTRICAL +electroacoustic = IfcDistributionSystemEnum.ELECTROACOUSTIC +exhaust = IfcDistributionSystemEnum.EXHAUST +fireprotection = IfcDistributionSystemEnum.FIREPROTECTION +fuel = IfcDistributionSystemEnum.FUEL +gas = IfcDistributionSystemEnum.GAS +hazardous = IfcDistributionSystemEnum.HAZARDOUS +heating = IfcDistributionSystemEnum.HEATING +lighting = IfcDistributionSystemEnum.LIGHTING +lightningprotection = IfcDistributionSystemEnum.LIGHTNINGPROTECTION +municipalsolidwaste = IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE +oil = IfcDistributionSystemEnum.OIL +operational = IfcDistributionSystemEnum.OPERATIONAL +powergeneration = IfcDistributionSystemEnum.POWERGENERATION +rainwater = IfcDistributionSystemEnum.RAINWATER +refrigeration = IfcDistributionSystemEnum.REFRIGERATION +security = IfcDistributionSystemEnum.SECURITY +sewage = IfcDistributionSystemEnum.SEWAGE +signal = IfcDistributionSystemEnum.SIGNAL +stormwater = IfcDistributionSystemEnum.STORMWATER +telephone = IfcDistributionSystemEnum.TELEPHONE +tv = IfcDistributionSystemEnum.TV +vacuum = IfcDistributionSystemEnum.VACUUM +vent = IfcDistributionSystemEnum.VENT +ventilation = IfcDistributionSystemEnum.VENTILATION +wastewater = IfcDistributionSystemEnum.WASTEWATER +watersupply = IfcDistributionSystemEnum.WATERSUPPLY +catenary_system = IfcDistributionSystemEnum.CATENARY_SYSTEM +overhead_contactline_system = IfcDistributionSystemEnum.OVERHEAD_CONTACTLINE_SYSTEM +return_circuit = IfcDistributionSystemEnum.RETURN_CIRCUIT +userdefined = IfcDistributionSystemEnum.USERDEFINED +notdefined = IfcDistributionSystemEnum.NOTDEFINED IfcDocumentConfidentialityEnum = enum_namespace() -public = getattr(IfcDocumentConfidentialityEnum, 'PUBLIC', INDETERMINATE) -restricted = getattr(IfcDocumentConfidentialityEnum, 'RESTRICTED', INDETERMINATE) -confidential = getattr(IfcDocumentConfidentialityEnum, 'CONFIDENTIAL', INDETERMINATE) -personal = getattr(IfcDocumentConfidentialityEnum, 'PERSONAL', INDETERMINATE) -userdefined = getattr(IfcDocumentConfidentialityEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDocumentConfidentialityEnum, 'NOTDEFINED', INDETERMINATE) +public = IfcDocumentConfidentialityEnum.PUBLIC +restricted = IfcDocumentConfidentialityEnum.RESTRICTED +confidential = IfcDocumentConfidentialityEnum.CONFIDENTIAL +personal = IfcDocumentConfidentialityEnum.PERSONAL +userdefined = IfcDocumentConfidentialityEnum.USERDEFINED +notdefined = IfcDocumentConfidentialityEnum.NOTDEFINED IfcDocumentStatusEnum = enum_namespace() -draft = getattr(IfcDocumentStatusEnum, 'DRAFT', INDETERMINATE) -finaldraft = getattr(IfcDocumentStatusEnum, 'FINALDRAFT', INDETERMINATE) -final = getattr(IfcDocumentStatusEnum, 'FINAL', INDETERMINATE) -revision = getattr(IfcDocumentStatusEnum, 'REVISION', INDETERMINATE) -notdefined = getattr(IfcDocumentStatusEnum, 'NOTDEFINED', INDETERMINATE) +draft = IfcDocumentStatusEnum.DRAFT +finaldraft = IfcDocumentStatusEnum.FINALDRAFT +final = IfcDocumentStatusEnum.FINAL +revision = IfcDocumentStatusEnum.REVISION +notdefined = IfcDocumentStatusEnum.NOTDEFINED IfcDoorPanelOperationEnum = enum_namespace() -swinging = getattr(IfcDoorPanelOperationEnum, 'SWINGING', INDETERMINATE) -double_acting = getattr(IfcDoorPanelOperationEnum, 'DOUBLE_ACTING', INDETERMINATE) -sliding = getattr(IfcDoorPanelOperationEnum, 'SLIDING', INDETERMINATE) -folding = getattr(IfcDoorPanelOperationEnum, 'FOLDING', INDETERMINATE) -revolving = getattr(IfcDoorPanelOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = getattr(IfcDoorPanelOperationEnum, 'ROLLINGUP', INDETERMINATE) -fixedpanel = getattr(IfcDoorPanelOperationEnum, 'FIXEDPANEL', INDETERMINATE) -userdefined = getattr(IfcDoorPanelOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +swinging = IfcDoorPanelOperationEnum.SWINGING +double_acting = IfcDoorPanelOperationEnum.DOUBLE_ACTING +sliding = IfcDoorPanelOperationEnum.SLIDING +folding = IfcDoorPanelOperationEnum.FOLDING +revolving = IfcDoorPanelOperationEnum.REVOLVING +rollingup = IfcDoorPanelOperationEnum.ROLLINGUP +fixedpanel = IfcDoorPanelOperationEnum.FIXEDPANEL +userdefined = IfcDoorPanelOperationEnum.USERDEFINED +notdefined = IfcDoorPanelOperationEnum.NOTDEFINED IfcDoorPanelPositionEnum = enum_namespace() -left = getattr(IfcDoorPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = getattr(IfcDoorPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = getattr(IfcDoorPanelPositionEnum, 'RIGHT', INDETERMINATE) -notdefined = getattr(IfcDoorPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcDoorPanelPositionEnum.LEFT +middle = IfcDoorPanelPositionEnum.MIDDLE +right = IfcDoorPanelPositionEnum.RIGHT +notdefined = IfcDoorPanelPositionEnum.NOTDEFINED IfcDoorStyleConstructionEnum = enum_namespace() -aluminium = getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = getattr(IfcDoorStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = getattr(IfcDoorStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = getattr(IfcDoorStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -aluminium_plastic = getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_PLASTIC', INDETERMINATE) -plastic = getattr(IfcDoorStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -userdefined = getattr(IfcDoorStyleConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcDoorStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcDoorStyleConstructionEnum.STEEL +wood = IfcDoorStyleConstructionEnum.WOOD +aluminium_wood = IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD +aluminium_plastic = IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC +plastic = IfcDoorStyleConstructionEnum.PLASTIC +userdefined = IfcDoorStyleConstructionEnum.USERDEFINED +notdefined = IfcDoorStyleConstructionEnum.NOTDEFINED IfcDoorStyleOperationEnum = enum_namespace() -single_swing_left = getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_door_single_swing = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_door_double_swing = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_door_sliding = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -folding_to_left = getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_door_folding = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -revolving = getattr(IfcDoorStyleOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = getattr(IfcDoorStyleOperationEnum, 'ROLLINGUP', INDETERMINATE) -userdefined = getattr(IfcDoorStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT +double_door_single_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT +double_door_double_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +sliding_to_left = IfcDoorStyleOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT +double_door_sliding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING +folding_to_left = IfcDoorStyleOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT +double_door_folding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING +revolving = IfcDoorStyleOperationEnum.REVOLVING +rollingup = IfcDoorStyleOperationEnum.ROLLINGUP +userdefined = IfcDoorStyleOperationEnum.USERDEFINED +notdefined = IfcDoorStyleOperationEnum.NOTDEFINED IfcDoorTypeEnum = enum_namespace() -door = getattr(IfcDoorTypeEnum, 'DOOR', INDETERMINATE) -gate = getattr(IfcDoorTypeEnum, 'GATE', INDETERMINATE) -trapdoor = getattr(IfcDoorTypeEnum, 'TRAPDOOR', INDETERMINATE) -boom_barrier = getattr(IfcDoorTypeEnum, 'BOOM_BARRIER', INDETERMINATE) -turnstile = getattr(IfcDoorTypeEnum, 'TURNSTILE', INDETERMINATE) -userdefined = getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorTypeEnum, 'NOTDEFINED', INDETERMINATE) +door = IfcDoorTypeEnum.DOOR +gate = IfcDoorTypeEnum.GATE +trapdoor = IfcDoorTypeEnum.TRAPDOOR +boom_barrier = IfcDoorTypeEnum.BOOM_BARRIER +turnstile = IfcDoorTypeEnum.TURNSTILE +userdefined = IfcDoorTypeEnum.USERDEFINED +notdefined = IfcDoorTypeEnum.NOTDEFINED IfcDoorTypeOperationEnum = enum_namespace() -single_swing_left = getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_panel_single_swing = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_SINGLE_SWING', INDETERMINATE) -double_panel_single_swing_opposite_left = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_panel_single_swing_opposite_right = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_panel_double_swing = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_panel_sliding = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_SLIDING', INDETERMINATE) -folding_to_left = getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_panel_folding = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_FOLDING', INDETERMINATE) -revolving_horizontal = getattr(IfcDoorTypeOperationEnum, 'REVOLVING_HORIZONTAL', INDETERMINATE) -rollingup = getattr(IfcDoorTypeOperationEnum, 'ROLLINGUP', INDETERMINATE) -swing_fixed_left = getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_LEFT', INDETERMINATE) -swing_fixed_right = getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_RIGHT', INDETERMINATE) -double_panel_lifting_vertical = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_LIFTING_VERTICAL', INDETERMINATE) -lifting_horizontal = getattr(IfcDoorTypeOperationEnum, 'LIFTING_HORIZONTAL', INDETERMINATE) -lifting_vertical_left = getattr(IfcDoorTypeOperationEnum, 'LIFTING_VERTICAL_LEFT', INDETERMINATE) -lifting_vertical_right = getattr(IfcDoorTypeOperationEnum, 'LIFTING_VERTICAL_RIGHT', INDETERMINATE) -revolving_vertical = getattr(IfcDoorTypeOperationEnum, 'REVOLVING_VERTICAL', INDETERMINATE) -userdefined = getattr(IfcDoorTypeOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorTypeOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT +double_panel_single_swing = IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING +double_panel_single_swing_opposite_left = IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT +double_panel_single_swing_opposite_right = IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT +double_panel_double_swing = IfcDoorTypeOperationEnum.DOUBLE_PANEL_DOUBLE_SWING +sliding_to_left = IfcDoorTypeOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT +double_panel_sliding = IfcDoorTypeOperationEnum.DOUBLE_PANEL_SLIDING +folding_to_left = IfcDoorTypeOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT +double_panel_folding = IfcDoorTypeOperationEnum.DOUBLE_PANEL_FOLDING +revolving_horizontal = IfcDoorTypeOperationEnum.REVOLVING_HORIZONTAL +rollingup = IfcDoorTypeOperationEnum.ROLLINGUP +swing_fixed_left = IfcDoorTypeOperationEnum.SWING_FIXED_LEFT +swing_fixed_right = IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT +double_panel_lifting_vertical = IfcDoorTypeOperationEnum.DOUBLE_PANEL_LIFTING_VERTICAL +lifting_horizontal = IfcDoorTypeOperationEnum.LIFTING_HORIZONTAL +lifting_vertical_left = IfcDoorTypeOperationEnum.LIFTING_VERTICAL_LEFT +lifting_vertical_right = IfcDoorTypeOperationEnum.LIFTING_VERTICAL_RIGHT +revolving_vertical = IfcDoorTypeOperationEnum.REVOLVING_VERTICAL +userdefined = IfcDoorTypeOperationEnum.USERDEFINED +notdefined = IfcDoorTypeOperationEnum.NOTDEFINED IfcDuctFittingTypeEnum = enum_namespace() -bend = getattr(IfcDuctFittingTypeEnum, 'BEND', INDETERMINATE) -connector = getattr(IfcDuctFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcDuctFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcDuctFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcDuctFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = getattr(IfcDuctFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = getattr(IfcDuctFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcDuctFittingTypeEnum.BEND +connector = IfcDuctFittingTypeEnum.CONNECTOR +entry = IfcDuctFittingTypeEnum.ENTRY +exit = IfcDuctFittingTypeEnum.EXIT +junction = IfcDuctFittingTypeEnum.JUNCTION +obstruction = IfcDuctFittingTypeEnum.OBSTRUCTION +transition = IfcDuctFittingTypeEnum.TRANSITION +userdefined = IfcDuctFittingTypeEnum.USERDEFINED +notdefined = IfcDuctFittingTypeEnum.NOTDEFINED IfcDuctSegmentTypeEnum = enum_namespace() -rigidsegment = getattr(IfcDuctSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -flexiblesegment = getattr(IfcDuctSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -userdefined = getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigidsegment = IfcDuctSegmentTypeEnum.RIGIDSEGMENT +flexiblesegment = IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT +userdefined = IfcDuctSegmentTypeEnum.USERDEFINED +notdefined = IfcDuctSegmentTypeEnum.NOTDEFINED IfcDuctSilencerTypeEnum = enum_namespace() -flatoval = getattr(IfcDuctSilencerTypeEnum, 'FLATOVAL', INDETERMINATE) -rectangular = getattr(IfcDuctSilencerTypeEnum, 'RECTANGULAR', INDETERMINATE) -round = getattr(IfcDuctSilencerTypeEnum, 'ROUND', INDETERMINATE) -userdefined = getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctSilencerTypeEnum, 'NOTDEFINED', INDETERMINATE) +flatoval = IfcDuctSilencerTypeEnum.FLATOVAL +rectangular = IfcDuctSilencerTypeEnum.RECTANGULAR +round = IfcDuctSilencerTypeEnum.ROUND +userdefined = IfcDuctSilencerTypeEnum.USERDEFINED +notdefined = IfcDuctSilencerTypeEnum.NOTDEFINED IfcEarthworksCutTypeEnum = enum_namespace() -trench = getattr(IfcEarthworksCutTypeEnum, 'TRENCH', INDETERMINATE) -dredging = getattr(IfcEarthworksCutTypeEnum, 'DREDGING', INDETERMINATE) -excavation = getattr(IfcEarthworksCutTypeEnum, 'EXCAVATION', INDETERMINATE) -overexcavation = getattr(IfcEarthworksCutTypeEnum, 'OVEREXCAVATION', INDETERMINATE) -topsoilremoval = getattr(IfcEarthworksCutTypeEnum, 'TOPSOILREMOVAL', INDETERMINATE) -stepexcavation = getattr(IfcEarthworksCutTypeEnum, 'STEPEXCAVATION', INDETERMINATE) -pavementmilling = getattr(IfcEarthworksCutTypeEnum, 'PAVEMENTMILLING', INDETERMINATE) -cut = getattr(IfcEarthworksCutTypeEnum, 'CUT', INDETERMINATE) -base_excavation = getattr(IfcEarthworksCutTypeEnum, 'BASE_EXCAVATION', INDETERMINATE) -userdefined = getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEarthworksCutTypeEnum, 'NOTDEFINED', INDETERMINATE) +trench = IfcEarthworksCutTypeEnum.TRENCH +dredging = IfcEarthworksCutTypeEnum.DREDGING +excavation = IfcEarthworksCutTypeEnum.EXCAVATION +overexcavation = IfcEarthworksCutTypeEnum.OVEREXCAVATION +topsoilremoval = IfcEarthworksCutTypeEnum.TOPSOILREMOVAL +stepexcavation = IfcEarthworksCutTypeEnum.STEPEXCAVATION +pavementmilling = IfcEarthworksCutTypeEnum.PAVEMENTMILLING +cut = IfcEarthworksCutTypeEnum.CUT +base_excavation = IfcEarthworksCutTypeEnum.BASE_EXCAVATION +userdefined = IfcEarthworksCutTypeEnum.USERDEFINED +notdefined = IfcEarthworksCutTypeEnum.NOTDEFINED IfcEarthworksFillTypeEnum = enum_namespace() -backfill = getattr(IfcEarthworksFillTypeEnum, 'BACKFILL', INDETERMINATE) -counterweight = getattr(IfcEarthworksFillTypeEnum, 'COUNTERWEIGHT', INDETERMINATE) -subgrade = getattr(IfcEarthworksFillTypeEnum, 'SUBGRADE', INDETERMINATE) -embankment = getattr(IfcEarthworksFillTypeEnum, 'EMBANKMENT', INDETERMINATE) -transitionsection = getattr(IfcEarthworksFillTypeEnum, 'TRANSITIONSECTION', INDETERMINATE) -subgradebed = getattr(IfcEarthworksFillTypeEnum, 'SUBGRADEBED', INDETERMINATE) -slopefill = getattr(IfcEarthworksFillTypeEnum, 'SLOPEFILL', INDETERMINATE) -userdefined = getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEarthworksFillTypeEnum, 'NOTDEFINED', INDETERMINATE) +backfill = IfcEarthworksFillTypeEnum.BACKFILL +counterweight = IfcEarthworksFillTypeEnum.COUNTERWEIGHT +subgrade = IfcEarthworksFillTypeEnum.SUBGRADE +embankment = IfcEarthworksFillTypeEnum.EMBANKMENT +transitionsection = IfcEarthworksFillTypeEnum.TRANSITIONSECTION +subgradebed = IfcEarthworksFillTypeEnum.SUBGRADEBED +slopefill = IfcEarthworksFillTypeEnum.SLOPEFILL +userdefined = IfcEarthworksFillTypeEnum.USERDEFINED +notdefined = IfcEarthworksFillTypeEnum.NOTDEFINED IfcElectricApplianceTypeEnum = enum_namespace() -dishwasher = getattr(IfcElectricApplianceTypeEnum, 'DISHWASHER', INDETERMINATE) -electriccooker = getattr(IfcElectricApplianceTypeEnum, 'ELECTRICCOOKER', INDETERMINATE) -freestandingelectricheater = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGELECTRICHEATER', INDETERMINATE) -freestandingfan = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGFAN', INDETERMINATE) -freestandingwaterheater = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERHEATER', INDETERMINATE) -freestandingwatercooler = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERCOOLER', INDETERMINATE) -freezer = getattr(IfcElectricApplianceTypeEnum, 'FREEZER', INDETERMINATE) -fridge_freezer = getattr(IfcElectricApplianceTypeEnum, 'FRIDGE_FREEZER', INDETERMINATE) -handdryer = getattr(IfcElectricApplianceTypeEnum, 'HANDDRYER', INDETERMINATE) -kitchenmachine = getattr(IfcElectricApplianceTypeEnum, 'KITCHENMACHINE', INDETERMINATE) -microwave = getattr(IfcElectricApplianceTypeEnum, 'MICROWAVE', INDETERMINATE) -photocopier = getattr(IfcElectricApplianceTypeEnum, 'PHOTOCOPIER', INDETERMINATE) -refrigerator = getattr(IfcElectricApplianceTypeEnum, 'REFRIGERATOR', INDETERMINATE) -tumbledryer = getattr(IfcElectricApplianceTypeEnum, 'TUMBLEDRYER', INDETERMINATE) -vendingmachine = getattr(IfcElectricApplianceTypeEnum, 'VENDINGMACHINE', INDETERMINATE) -washingmachine = getattr(IfcElectricApplianceTypeEnum, 'WASHINGMACHINE', INDETERMINATE) -userdefined = getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dishwasher = IfcElectricApplianceTypeEnum.DISHWASHER +electriccooker = IfcElectricApplianceTypeEnum.ELECTRICCOOKER +freestandingelectricheater = IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER +freestandingfan = IfcElectricApplianceTypeEnum.FREESTANDINGFAN +freestandingwaterheater = IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER +freestandingwatercooler = IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER +freezer = IfcElectricApplianceTypeEnum.FREEZER +fridge_freezer = IfcElectricApplianceTypeEnum.FRIDGE_FREEZER +handdryer = IfcElectricApplianceTypeEnum.HANDDRYER +kitchenmachine = IfcElectricApplianceTypeEnum.KITCHENMACHINE +microwave = IfcElectricApplianceTypeEnum.MICROWAVE +photocopier = IfcElectricApplianceTypeEnum.PHOTOCOPIER +refrigerator = IfcElectricApplianceTypeEnum.REFRIGERATOR +tumbledryer = IfcElectricApplianceTypeEnum.TUMBLEDRYER +vendingmachine = IfcElectricApplianceTypeEnum.VENDINGMACHINE +washingmachine = IfcElectricApplianceTypeEnum.WASHINGMACHINE +userdefined = IfcElectricApplianceTypeEnum.USERDEFINED +notdefined = IfcElectricApplianceTypeEnum.NOTDEFINED IfcElectricDistributionBoardTypeEnum = enum_namespace() -consumerunit = getattr(IfcElectricDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -distributionboard = getattr(IfcElectricDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -motorcontrolcentre = getattr(IfcElectricDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = getattr(IfcElectricDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT +distributionboard = IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD +motorcontrolcentre = IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcElectricDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcElectricDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcElectricDistributionBoardTypeEnum.NOTDEFINED IfcElectricFlowStorageDeviceTypeEnum = enum_namespace() -battery = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'BATTERY', INDETERMINATE) -capacitorbank = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITORBANK', INDETERMINATE) -harmonicfilter = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'HARMONICFILTER', INDETERMINATE) -inductorbank = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTORBANK', INDETERMINATE) -ups = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'UPS', INDETERMINATE) -capacitor = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITOR', INDETERMINATE) -compensator = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'COMPENSATOR', INDETERMINATE) -inductor = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTOR', INDETERMINATE) -recharger = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'RECHARGER', INDETERMINATE) -userdefined = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +battery = IfcElectricFlowStorageDeviceTypeEnum.BATTERY +capacitorbank = IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK +harmonicfilter = IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER +inductorbank = IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK +ups = IfcElectricFlowStorageDeviceTypeEnum.UPS +capacitor = IfcElectricFlowStorageDeviceTypeEnum.CAPACITOR +compensator = IfcElectricFlowStorageDeviceTypeEnum.COMPENSATOR +inductor = IfcElectricFlowStorageDeviceTypeEnum.INDUCTOR +recharger = IfcElectricFlowStorageDeviceTypeEnum.RECHARGER +userdefined = IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED IfcElectricFlowTreatmentDeviceTypeEnum = enum_namespace() -electronicfilter = getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'ELECTRONICFILTER', INDETERMINATE) -userdefined = getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronicfilter = IfcElectricFlowTreatmentDeviceTypeEnum.ELECTRONICFILTER +userdefined = IfcElectricFlowTreatmentDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowTreatmentDeviceTypeEnum.NOTDEFINED IfcElectricGeneratorTypeEnum = enum_namespace() -chp = getattr(IfcElectricGeneratorTypeEnum, 'CHP', INDETERMINATE) -enginegenerator = getattr(IfcElectricGeneratorTypeEnum, 'ENGINEGENERATOR', INDETERMINATE) -standalone = getattr(IfcElectricGeneratorTypeEnum, 'STANDALONE', INDETERMINATE) -userdefined = getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricGeneratorTypeEnum, 'NOTDEFINED', INDETERMINATE) +chp = IfcElectricGeneratorTypeEnum.CHP +enginegenerator = IfcElectricGeneratorTypeEnum.ENGINEGENERATOR +standalone = IfcElectricGeneratorTypeEnum.STANDALONE +userdefined = IfcElectricGeneratorTypeEnum.USERDEFINED +notdefined = IfcElectricGeneratorTypeEnum.NOTDEFINED IfcElectricMotorTypeEnum = enum_namespace() -dc = getattr(IfcElectricMotorTypeEnum, 'DC', INDETERMINATE) -induction = getattr(IfcElectricMotorTypeEnum, 'INDUCTION', INDETERMINATE) -polyphase = getattr(IfcElectricMotorTypeEnum, 'POLYPHASE', INDETERMINATE) -reluctancesynchronous = getattr(IfcElectricMotorTypeEnum, 'RELUCTANCESYNCHRONOUS', INDETERMINATE) -synchronous = getattr(IfcElectricMotorTypeEnum, 'SYNCHRONOUS', INDETERMINATE) -userdefined = getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricMotorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dc = IfcElectricMotorTypeEnum.DC +induction = IfcElectricMotorTypeEnum.INDUCTION +polyphase = IfcElectricMotorTypeEnum.POLYPHASE +reluctancesynchronous = IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS +synchronous = IfcElectricMotorTypeEnum.SYNCHRONOUS +userdefined = IfcElectricMotorTypeEnum.USERDEFINED +notdefined = IfcElectricMotorTypeEnum.NOTDEFINED IfcElectricTimeControlTypeEnum = enum_namespace() -timeclock = getattr(IfcElectricTimeControlTypeEnum, 'TIMECLOCK', INDETERMINATE) -timedelay = getattr(IfcElectricTimeControlTypeEnum, 'TIMEDELAY', INDETERMINATE) -relay = getattr(IfcElectricTimeControlTypeEnum, 'RELAY', INDETERMINATE) -userdefined = getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricTimeControlTypeEnum, 'NOTDEFINED', INDETERMINATE) +timeclock = IfcElectricTimeControlTypeEnum.TIMECLOCK +timedelay = IfcElectricTimeControlTypeEnum.TIMEDELAY +relay = IfcElectricTimeControlTypeEnum.RELAY +userdefined = IfcElectricTimeControlTypeEnum.USERDEFINED +notdefined = IfcElectricTimeControlTypeEnum.NOTDEFINED IfcElementAssemblyTypeEnum = enum_namespace() -accessory_assembly = getattr(IfcElementAssemblyTypeEnum, 'ACCESSORY_ASSEMBLY', INDETERMINATE) -arch = getattr(IfcElementAssemblyTypeEnum, 'ARCH', INDETERMINATE) -beam_grid = getattr(IfcElementAssemblyTypeEnum, 'BEAM_GRID', INDETERMINATE) -braced_frame = getattr(IfcElementAssemblyTypeEnum, 'BRACED_FRAME', INDETERMINATE) -girder = getattr(IfcElementAssemblyTypeEnum, 'GIRDER', INDETERMINATE) -reinforcement_unit = getattr(IfcElementAssemblyTypeEnum, 'REINFORCEMENT_UNIT', INDETERMINATE) -rigid_frame = getattr(IfcElementAssemblyTypeEnum, 'RIGID_FRAME', INDETERMINATE) -slab_field = getattr(IfcElementAssemblyTypeEnum, 'SLAB_FIELD', INDETERMINATE) -truss = getattr(IfcElementAssemblyTypeEnum, 'TRUSS', INDETERMINATE) -abutment = getattr(IfcElementAssemblyTypeEnum, 'ABUTMENT', INDETERMINATE) -pier = getattr(IfcElementAssemblyTypeEnum, 'PIER', INDETERMINATE) -pylon = getattr(IfcElementAssemblyTypeEnum, 'PYLON', INDETERMINATE) -cross_bracing = getattr(IfcElementAssemblyTypeEnum, 'CROSS_BRACING', INDETERMINATE) -deck = getattr(IfcElementAssemblyTypeEnum, 'DECK', INDETERMINATE) -mast = getattr(IfcElementAssemblyTypeEnum, 'MAST', INDETERMINATE) -signalassembly = getattr(IfcElementAssemblyTypeEnum, 'SIGNALASSEMBLY', INDETERMINATE) -grid = getattr(IfcElementAssemblyTypeEnum, 'GRID', INDETERMINATE) -shelter = getattr(IfcElementAssemblyTypeEnum, 'SHELTER', INDETERMINATE) -supportingassembly = getattr(IfcElementAssemblyTypeEnum, 'SUPPORTINGASSEMBLY', INDETERMINATE) -suspensionassembly = getattr(IfcElementAssemblyTypeEnum, 'SUSPENSIONASSEMBLY', INDETERMINATE) -traction_switching_assembly = getattr(IfcElementAssemblyTypeEnum, 'TRACTION_SWITCHING_ASSEMBLY', INDETERMINATE) -trackpanel = getattr(IfcElementAssemblyTypeEnum, 'TRACKPANEL', INDETERMINATE) -turnoutpanel = getattr(IfcElementAssemblyTypeEnum, 'TURNOUTPANEL', INDETERMINATE) -dilatationpanel = getattr(IfcElementAssemblyTypeEnum, 'DILATATIONPANEL', INDETERMINATE) -rail_mechanical_equipment_assembly = getattr(IfcElementAssemblyTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY', INDETERMINATE) -entranceworks = getattr(IfcElementAssemblyTypeEnum, 'ENTRANCEWORKS', INDETERMINATE) -sumpbuster = getattr(IfcElementAssemblyTypeEnum, 'SUMPBUSTER', INDETERMINATE) -traffic_calming_device = getattr(IfcElementAssemblyTypeEnum, 'TRAFFIC_CALMING_DEVICE', INDETERMINATE) -userdefined = getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElementAssemblyTypeEnum, 'NOTDEFINED', INDETERMINATE) +accessory_assembly = IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY +arch = IfcElementAssemblyTypeEnum.ARCH +beam_grid = IfcElementAssemblyTypeEnum.BEAM_GRID +braced_frame = IfcElementAssemblyTypeEnum.BRACED_FRAME +girder = IfcElementAssemblyTypeEnum.GIRDER +reinforcement_unit = IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT +rigid_frame = IfcElementAssemblyTypeEnum.RIGID_FRAME +slab_field = IfcElementAssemblyTypeEnum.SLAB_FIELD +truss = IfcElementAssemblyTypeEnum.TRUSS +abutment = IfcElementAssemblyTypeEnum.ABUTMENT +pier = IfcElementAssemblyTypeEnum.PIER +pylon = IfcElementAssemblyTypeEnum.PYLON +cross_bracing = IfcElementAssemblyTypeEnum.CROSS_BRACING +deck = IfcElementAssemblyTypeEnum.DECK +mast = IfcElementAssemblyTypeEnum.MAST +signalassembly = IfcElementAssemblyTypeEnum.SIGNALASSEMBLY +grid = IfcElementAssemblyTypeEnum.GRID +shelter = IfcElementAssemblyTypeEnum.SHELTER +supportingassembly = IfcElementAssemblyTypeEnum.SUPPORTINGASSEMBLY +suspensionassembly = IfcElementAssemblyTypeEnum.SUSPENSIONASSEMBLY +traction_switching_assembly = IfcElementAssemblyTypeEnum.TRACTION_SWITCHING_ASSEMBLY +trackpanel = IfcElementAssemblyTypeEnum.TRACKPANEL +turnoutpanel = IfcElementAssemblyTypeEnum.TURNOUTPANEL +dilatationpanel = IfcElementAssemblyTypeEnum.DILATATIONPANEL +rail_mechanical_equipment_assembly = IfcElementAssemblyTypeEnum.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY +entranceworks = IfcElementAssemblyTypeEnum.ENTRANCEWORKS +sumpbuster = IfcElementAssemblyTypeEnum.SUMPBUSTER +traffic_calming_device = IfcElementAssemblyTypeEnum.TRAFFIC_CALMING_DEVICE +userdefined = IfcElementAssemblyTypeEnum.USERDEFINED +notdefined = IfcElementAssemblyTypeEnum.NOTDEFINED IfcElementCompositionEnum = enum_namespace() -complex = getattr(IfcElementCompositionEnum, 'COMPLEX', INDETERMINATE) -element = getattr(IfcElementCompositionEnum, 'ELEMENT', INDETERMINATE) -partial = getattr(IfcElementCompositionEnum, 'PARTIAL', INDETERMINATE) +complex = IfcElementCompositionEnum.COMPLEX +element = IfcElementCompositionEnum.ELEMENT +partial = IfcElementCompositionEnum.PARTIAL IfcEngineTypeEnum = enum_namespace() -externalcombustion = getattr(IfcEngineTypeEnum, 'EXTERNALCOMBUSTION', INDETERMINATE) -internalcombustion = getattr(IfcEngineTypeEnum, 'INTERNALCOMBUSTION', INDETERMINATE) -userdefined = getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEngineTypeEnum, 'NOTDEFINED', INDETERMINATE) +externalcombustion = IfcEngineTypeEnum.EXTERNALCOMBUSTION +internalcombustion = IfcEngineTypeEnum.INTERNALCOMBUSTION +userdefined = IfcEngineTypeEnum.USERDEFINED +notdefined = IfcEngineTypeEnum.NOTDEFINED IfcEvaporativeCoolerTypeEnum = enum_namespace() -directevaporativerandommediaaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER', INDETERMINATE) -directevaporativerigidmediaaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER', INDETERMINATE) -directevaporativeslingerspackagedaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER', INDETERMINATE) -directevaporativepackagedrotaryaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER', INDETERMINATE) -directevaporativeairwasher = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEAIRWASHER', INDETERMINATE) -indirectevaporativepackageaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEPACKAGEAIRCOOLER', INDETERMINATE) -indirectevaporativewetcoil = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEWETCOIL', INDETERMINATE) -indirectevaporativecoolingtowerorcoilcooler = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER', INDETERMINATE) -indirectdirectcombination = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTDIRECTCOMBINATION', INDETERMINATE) -userdefined = getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEvaporativeCoolerTypeEnum, 'NOTDEFINED', INDETERMINATE) +directevaporativerandommediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER +directevaporativerigidmediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER +directevaporativeslingerspackagedaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER +directevaporativepackagedrotaryaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER +directevaporativeairwasher = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER +indirectevaporativepackageaircooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER +indirectevaporativewetcoil = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL +indirectevaporativecoolingtowerorcoilcooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER +indirectdirectcombination = IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION +userdefined = IfcEvaporativeCoolerTypeEnum.USERDEFINED +notdefined = IfcEvaporativeCoolerTypeEnum.NOTDEFINED IfcEvaporatorTypeEnum = enum_namespace() -directexpansion = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSION', INDETERMINATE) -directexpansionshellandtube = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONSHELLANDTUBE', INDETERMINATE) -directexpansiontubeintube = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONTUBEINTUBE', INDETERMINATE) -directexpansionbrazedplate = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONBRAZEDPLATE', INDETERMINATE) -floodedshellandtube = getattr(IfcEvaporatorTypeEnum, 'FLOODEDSHELLANDTUBE', INDETERMINATE) -shellandcoil = getattr(IfcEvaporatorTypeEnum, 'SHELLANDCOIL', INDETERMINATE) -userdefined = getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEvaporatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +directexpansion = IfcEvaporatorTypeEnum.DIRECTEXPANSION +directexpansionshellandtube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE +directexpansiontubeintube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE +directexpansionbrazedplate = IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE +floodedshellandtube = IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE +shellandcoil = IfcEvaporatorTypeEnum.SHELLANDCOIL +userdefined = IfcEvaporatorTypeEnum.USERDEFINED +notdefined = IfcEvaporatorTypeEnum.NOTDEFINED IfcEventTriggerTypeEnum = enum_namespace() -eventrule = getattr(IfcEventTriggerTypeEnum, 'EVENTRULE', INDETERMINATE) -eventmessage = getattr(IfcEventTriggerTypeEnum, 'EVENTMESSAGE', INDETERMINATE) -eventtime = getattr(IfcEventTriggerTypeEnum, 'EVENTTIME', INDETERMINATE) -eventcomplex = getattr(IfcEventTriggerTypeEnum, 'EVENTCOMPLEX', INDETERMINATE) -userdefined = getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEventTriggerTypeEnum, 'NOTDEFINED', INDETERMINATE) +eventrule = IfcEventTriggerTypeEnum.EVENTRULE +eventmessage = IfcEventTriggerTypeEnum.EVENTMESSAGE +eventtime = IfcEventTriggerTypeEnum.EVENTTIME +eventcomplex = IfcEventTriggerTypeEnum.EVENTCOMPLEX +userdefined = IfcEventTriggerTypeEnum.USERDEFINED +notdefined = IfcEventTriggerTypeEnum.NOTDEFINED IfcEventTypeEnum = enum_namespace() -startevent = getattr(IfcEventTypeEnum, 'STARTEVENT', INDETERMINATE) -endevent = getattr(IfcEventTypeEnum, 'ENDEVENT', INDETERMINATE) -intermediateevent = getattr(IfcEventTypeEnum, 'INTERMEDIATEEVENT', INDETERMINATE) -userdefined = getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEventTypeEnum, 'NOTDEFINED', INDETERMINATE) +startevent = IfcEventTypeEnum.STARTEVENT +endevent = IfcEventTypeEnum.ENDEVENT +intermediateevent = IfcEventTypeEnum.INTERMEDIATEEVENT +userdefined = IfcEventTypeEnum.USERDEFINED +notdefined = IfcEventTypeEnum.NOTDEFINED IfcExternalSpatialElementTypeEnum = enum_namespace() -external = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL', INDETERMINATE) -external_earth = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_water = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_WATER', INDETERMINATE) -external_fire = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_FIRE', INDETERMINATE) -userdefined = getattr(IfcExternalSpatialElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcExternalSpatialElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcExternalSpatialElementTypeEnum.EXTERNAL +external_earth = IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH +external_water = IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER +external_fire = IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE +userdefined = IfcExternalSpatialElementTypeEnum.USERDEFINED +notdefined = IfcExternalSpatialElementTypeEnum.NOTDEFINED IfcFacilityPartCommonTypeEnum = enum_namespace() -segment = getattr(IfcFacilityPartCommonTypeEnum, 'SEGMENT', INDETERMINATE) -aboveground = getattr(IfcFacilityPartCommonTypeEnum, 'ABOVEGROUND', INDETERMINATE) -junction = getattr(IfcFacilityPartCommonTypeEnum, 'JUNCTION', INDETERMINATE) -levelcrossing = getattr(IfcFacilityPartCommonTypeEnum, 'LEVELCROSSING', INDETERMINATE) -belowground = getattr(IfcFacilityPartCommonTypeEnum, 'BELOWGROUND', INDETERMINATE) -substructure = getattr(IfcFacilityPartCommonTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -terminal = getattr(IfcFacilityPartCommonTypeEnum, 'TERMINAL', INDETERMINATE) -superstructure = getattr(IfcFacilityPartCommonTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -userdefined = getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFacilityPartCommonTypeEnum, 'NOTDEFINED', INDETERMINATE) +segment = IfcFacilityPartCommonTypeEnum.SEGMENT +aboveground = IfcFacilityPartCommonTypeEnum.ABOVEGROUND +junction = IfcFacilityPartCommonTypeEnum.JUNCTION +levelcrossing = IfcFacilityPartCommonTypeEnum.LEVELCROSSING +belowground = IfcFacilityPartCommonTypeEnum.BELOWGROUND +substructure = IfcFacilityPartCommonTypeEnum.SUBSTRUCTURE +terminal = IfcFacilityPartCommonTypeEnum.TERMINAL +superstructure = IfcFacilityPartCommonTypeEnum.SUPERSTRUCTURE +userdefined = IfcFacilityPartCommonTypeEnum.USERDEFINED +notdefined = IfcFacilityPartCommonTypeEnum.NOTDEFINED IfcFacilityUsageEnum = enum_namespace() -lateral = getattr(IfcFacilityUsageEnum, 'LATERAL', INDETERMINATE) -region = getattr(IfcFacilityUsageEnum, 'REGION', INDETERMINATE) -vertical = getattr(IfcFacilityUsageEnum, 'VERTICAL', INDETERMINATE) -longitudinal = getattr(IfcFacilityUsageEnum, 'LONGITUDINAL', INDETERMINATE) -userdefined = getattr(IfcFacilityUsageEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFacilityUsageEnum, 'NOTDEFINED', INDETERMINATE) +lateral = IfcFacilityUsageEnum.LATERAL +region = IfcFacilityUsageEnum.REGION +vertical = IfcFacilityUsageEnum.VERTICAL +longitudinal = IfcFacilityUsageEnum.LONGITUDINAL +userdefined = IfcFacilityUsageEnum.USERDEFINED +notdefined = IfcFacilityUsageEnum.NOTDEFINED IfcFanTypeEnum = enum_namespace() -centrifugalforwardcurved = getattr(IfcFanTypeEnum, 'CENTRIFUGALFORWARDCURVED', INDETERMINATE) -centrifugalradial = getattr(IfcFanTypeEnum, 'CENTRIFUGALRADIAL', INDETERMINATE) -centrifugalbackwardinclinedcurved = getattr(IfcFanTypeEnum, 'CENTRIFUGALBACKWARDINCLINEDCURVED', INDETERMINATE) -centrifugalairfoil = getattr(IfcFanTypeEnum, 'CENTRIFUGALAIRFOIL', INDETERMINATE) -tubeaxial = getattr(IfcFanTypeEnum, 'TUBEAXIAL', INDETERMINATE) -vaneaxial = getattr(IfcFanTypeEnum, 'VANEAXIAL', INDETERMINATE) -propelloraxial = getattr(IfcFanTypeEnum, 'PROPELLORAXIAL', INDETERMINATE) -userdefined = getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFanTypeEnum, 'NOTDEFINED', INDETERMINATE) +centrifugalforwardcurved = IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED +centrifugalradial = IfcFanTypeEnum.CENTRIFUGALRADIAL +centrifugalbackwardinclinedcurved = IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED +centrifugalairfoil = IfcFanTypeEnum.CENTRIFUGALAIRFOIL +tubeaxial = IfcFanTypeEnum.TUBEAXIAL +vaneaxial = IfcFanTypeEnum.VANEAXIAL +propelloraxial = IfcFanTypeEnum.PROPELLORAXIAL +userdefined = IfcFanTypeEnum.USERDEFINED +notdefined = IfcFanTypeEnum.NOTDEFINED IfcFastenerTypeEnum = enum_namespace() -glue = getattr(IfcFastenerTypeEnum, 'GLUE', INDETERMINATE) -mortar = getattr(IfcFastenerTypeEnum, 'MORTAR', INDETERMINATE) -weld = getattr(IfcFastenerTypeEnum, 'WELD', INDETERMINATE) -userdefined = getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +glue = IfcFastenerTypeEnum.GLUE +mortar = IfcFastenerTypeEnum.MORTAR +weld = IfcFastenerTypeEnum.WELD +userdefined = IfcFastenerTypeEnum.USERDEFINED +notdefined = IfcFastenerTypeEnum.NOTDEFINED IfcFilterTypeEnum = enum_namespace() -airparticlefilter = getattr(IfcFilterTypeEnum, 'AIRPARTICLEFILTER', INDETERMINATE) -compressedairfilter = getattr(IfcFilterTypeEnum, 'COMPRESSEDAIRFILTER', INDETERMINATE) -odorfilter = getattr(IfcFilterTypeEnum, 'ODORFILTER', INDETERMINATE) -oilfilter = getattr(IfcFilterTypeEnum, 'OILFILTER', INDETERMINATE) -strainer = getattr(IfcFilterTypeEnum, 'STRAINER', INDETERMINATE) -waterfilter = getattr(IfcFilterTypeEnum, 'WATERFILTER', INDETERMINATE) -userdefined = getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFilterTypeEnum, 'NOTDEFINED', INDETERMINATE) +airparticlefilter = IfcFilterTypeEnum.AIRPARTICLEFILTER +compressedairfilter = IfcFilterTypeEnum.COMPRESSEDAIRFILTER +odorfilter = IfcFilterTypeEnum.ODORFILTER +oilfilter = IfcFilterTypeEnum.OILFILTER +strainer = IfcFilterTypeEnum.STRAINER +waterfilter = IfcFilterTypeEnum.WATERFILTER +userdefined = IfcFilterTypeEnum.USERDEFINED +notdefined = IfcFilterTypeEnum.NOTDEFINED IfcFireSuppressionTerminalTypeEnum = enum_namespace() -breechinginlet = getattr(IfcFireSuppressionTerminalTypeEnum, 'BREECHINGINLET', INDETERMINATE) -firehydrant = getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREHYDRANT', INDETERMINATE) -hosereel = getattr(IfcFireSuppressionTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -sprinkler = getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLER', INDETERMINATE) -sprinklerdeflector = getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLERDEFLECTOR', INDETERMINATE) -firemonitor = getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREMONITOR', INDETERMINATE) -userdefined = getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFireSuppressionTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +breechinginlet = IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET +firehydrant = IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT +hosereel = IfcFireSuppressionTerminalTypeEnum.HOSEREEL +sprinkler = IfcFireSuppressionTerminalTypeEnum.SPRINKLER +sprinklerdeflector = IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR +firemonitor = IfcFireSuppressionTerminalTypeEnum.FIREMONITOR +userdefined = IfcFireSuppressionTerminalTypeEnum.USERDEFINED +notdefined = IfcFireSuppressionTerminalTypeEnum.NOTDEFINED IfcFlowDirectionEnum = enum_namespace() -source = getattr(IfcFlowDirectionEnum, 'SOURCE', INDETERMINATE) -sink = getattr(IfcFlowDirectionEnum, 'SINK', INDETERMINATE) -sourceandsink = getattr(IfcFlowDirectionEnum, 'SOURCEANDSINK', INDETERMINATE) -notdefined = getattr(IfcFlowDirectionEnum, 'NOTDEFINED', INDETERMINATE) +source = IfcFlowDirectionEnum.SOURCE +sink = IfcFlowDirectionEnum.SINK +sourceandsink = IfcFlowDirectionEnum.SOURCEANDSINK +notdefined = IfcFlowDirectionEnum.NOTDEFINED IfcFlowInstrumentTypeEnum = enum_namespace() -pressuregauge = getattr(IfcFlowInstrumentTypeEnum, 'PRESSUREGAUGE', INDETERMINATE) -thermometer = getattr(IfcFlowInstrumentTypeEnum, 'THERMOMETER', INDETERMINATE) -ammeter = getattr(IfcFlowInstrumentTypeEnum, 'AMMETER', INDETERMINATE) -frequencymeter = getattr(IfcFlowInstrumentTypeEnum, 'FREQUENCYMETER', INDETERMINATE) -powerfactormeter = getattr(IfcFlowInstrumentTypeEnum, 'POWERFACTORMETER', INDETERMINATE) -phaseanglemeter = getattr(IfcFlowInstrumentTypeEnum, 'PHASEANGLEMETER', INDETERMINATE) -voltmeter_peak = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_PEAK', INDETERMINATE) -voltmeter_rms = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_RMS', INDETERMINATE) -combined = getattr(IfcFlowInstrumentTypeEnum, 'COMBINED', INDETERMINATE) -voltmeter = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER', INDETERMINATE) -userdefined = getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFlowInstrumentTypeEnum, 'NOTDEFINED', INDETERMINATE) +pressuregauge = IfcFlowInstrumentTypeEnum.PRESSUREGAUGE +thermometer = IfcFlowInstrumentTypeEnum.THERMOMETER +ammeter = IfcFlowInstrumentTypeEnum.AMMETER +frequencymeter = IfcFlowInstrumentTypeEnum.FREQUENCYMETER +powerfactormeter = IfcFlowInstrumentTypeEnum.POWERFACTORMETER +phaseanglemeter = IfcFlowInstrumentTypeEnum.PHASEANGLEMETER +voltmeter_peak = IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK +voltmeter_rms = IfcFlowInstrumentTypeEnum.VOLTMETER_RMS +combined = IfcFlowInstrumentTypeEnum.COMBINED +voltmeter = IfcFlowInstrumentTypeEnum.VOLTMETER +userdefined = IfcFlowInstrumentTypeEnum.USERDEFINED +notdefined = IfcFlowInstrumentTypeEnum.NOTDEFINED IfcFlowMeterTypeEnum = enum_namespace() -energymeter = getattr(IfcFlowMeterTypeEnum, 'ENERGYMETER', INDETERMINATE) -gasmeter = getattr(IfcFlowMeterTypeEnum, 'GASMETER', INDETERMINATE) -oilmeter = getattr(IfcFlowMeterTypeEnum, 'OILMETER', INDETERMINATE) -watermeter = getattr(IfcFlowMeterTypeEnum, 'WATERMETER', INDETERMINATE) -userdefined = getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFlowMeterTypeEnum, 'NOTDEFINED', INDETERMINATE) +energymeter = IfcFlowMeterTypeEnum.ENERGYMETER +gasmeter = IfcFlowMeterTypeEnum.GASMETER +oilmeter = IfcFlowMeterTypeEnum.OILMETER +watermeter = IfcFlowMeterTypeEnum.WATERMETER +userdefined = IfcFlowMeterTypeEnum.USERDEFINED +notdefined = IfcFlowMeterTypeEnum.NOTDEFINED IfcFootingTypeEnum = enum_namespace() -caisson_foundation = getattr(IfcFootingTypeEnum, 'CAISSON_FOUNDATION', INDETERMINATE) -footing_beam = getattr(IfcFootingTypeEnum, 'FOOTING_BEAM', INDETERMINATE) -pad_footing = getattr(IfcFootingTypeEnum, 'PAD_FOOTING', INDETERMINATE) -pile_cap = getattr(IfcFootingTypeEnum, 'PILE_CAP', INDETERMINATE) -strip_footing = getattr(IfcFootingTypeEnum, 'STRIP_FOOTING', INDETERMINATE) -userdefined = getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFootingTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson_foundation = IfcFootingTypeEnum.CAISSON_FOUNDATION +footing_beam = IfcFootingTypeEnum.FOOTING_BEAM +pad_footing = IfcFootingTypeEnum.PAD_FOOTING +pile_cap = IfcFootingTypeEnum.PILE_CAP +strip_footing = IfcFootingTypeEnum.STRIP_FOOTING +userdefined = IfcFootingTypeEnum.USERDEFINED +notdefined = IfcFootingTypeEnum.NOTDEFINED IfcFurnitureTypeEnum = enum_namespace() -chair = getattr(IfcFurnitureTypeEnum, 'CHAIR', INDETERMINATE) -table = getattr(IfcFurnitureTypeEnum, 'TABLE', INDETERMINATE) -desk = getattr(IfcFurnitureTypeEnum, 'DESK', INDETERMINATE) -bed = getattr(IfcFurnitureTypeEnum, 'BED', INDETERMINATE) -filecabinet = getattr(IfcFurnitureTypeEnum, 'FILECABINET', INDETERMINATE) -shelf = getattr(IfcFurnitureTypeEnum, 'SHELF', INDETERMINATE) -sofa = getattr(IfcFurnitureTypeEnum, 'SOFA', INDETERMINATE) -technicalcabinet = getattr(IfcFurnitureTypeEnum, 'TECHNICALCABINET', INDETERMINATE) -userdefined = getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFurnitureTypeEnum, 'NOTDEFINED', INDETERMINATE) +chair = IfcFurnitureTypeEnum.CHAIR +table = IfcFurnitureTypeEnum.TABLE +desk = IfcFurnitureTypeEnum.DESK +bed = IfcFurnitureTypeEnum.BED +filecabinet = IfcFurnitureTypeEnum.FILECABINET +shelf = IfcFurnitureTypeEnum.SHELF +sofa = IfcFurnitureTypeEnum.SOFA +technicalcabinet = IfcFurnitureTypeEnum.TECHNICALCABINET +userdefined = IfcFurnitureTypeEnum.USERDEFINED +notdefined = IfcFurnitureTypeEnum.NOTDEFINED IfcGeographicElementTypeEnum = enum_namespace() -terrain = getattr(IfcGeographicElementTypeEnum, 'TERRAIN', INDETERMINATE) -soil_boring_point = getattr(IfcGeographicElementTypeEnum, 'SOIL_BORING_POINT', INDETERMINATE) -userdefined = getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGeographicElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +terrain = IfcGeographicElementTypeEnum.TERRAIN +soil_boring_point = IfcGeographicElementTypeEnum.SOIL_BORING_POINT +userdefined = IfcGeographicElementTypeEnum.USERDEFINED +notdefined = IfcGeographicElementTypeEnum.NOTDEFINED IfcGeometricProjectionEnum = enum_namespace() -graph_view = getattr(IfcGeometricProjectionEnum, 'GRAPH_VIEW', INDETERMINATE) -sketch_view = getattr(IfcGeometricProjectionEnum, 'SKETCH_VIEW', INDETERMINATE) -model_view = getattr(IfcGeometricProjectionEnum, 'MODEL_VIEW', INDETERMINATE) -plan_view = getattr(IfcGeometricProjectionEnum, 'PLAN_VIEW', INDETERMINATE) -reflected_plan_view = getattr(IfcGeometricProjectionEnum, 'REFLECTED_PLAN_VIEW', INDETERMINATE) -section_view = getattr(IfcGeometricProjectionEnum, 'SECTION_VIEW', INDETERMINATE) -elevation_view = getattr(IfcGeometricProjectionEnum, 'ELEVATION_VIEW', INDETERMINATE) -userdefined = getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGeometricProjectionEnum, 'NOTDEFINED', INDETERMINATE) +graph_view = IfcGeometricProjectionEnum.GRAPH_VIEW +sketch_view = IfcGeometricProjectionEnum.SKETCH_VIEW +model_view = IfcGeometricProjectionEnum.MODEL_VIEW +plan_view = IfcGeometricProjectionEnum.PLAN_VIEW +reflected_plan_view = IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW +section_view = IfcGeometricProjectionEnum.SECTION_VIEW +elevation_view = IfcGeometricProjectionEnum.ELEVATION_VIEW +userdefined = IfcGeometricProjectionEnum.USERDEFINED +notdefined = IfcGeometricProjectionEnum.NOTDEFINED IfcGlobalOrLocalEnum = enum_namespace() -global_coords = getattr(IfcGlobalOrLocalEnum, 'GLOBAL_COORDS', INDETERMINATE) -local_coords = getattr(IfcGlobalOrLocalEnum, 'LOCAL_COORDS', INDETERMINATE) +global_coords = IfcGlobalOrLocalEnum.GLOBAL_COORDS +local_coords = IfcGlobalOrLocalEnum.LOCAL_COORDS IfcGridTypeEnum = enum_namespace() -rectangular = getattr(IfcGridTypeEnum, 'RECTANGULAR', INDETERMINATE) -radial = getattr(IfcGridTypeEnum, 'RADIAL', INDETERMINATE) -triangular = getattr(IfcGridTypeEnum, 'TRIANGULAR', INDETERMINATE) -irregular = getattr(IfcGridTypeEnum, 'IRREGULAR', INDETERMINATE) -userdefined = getattr(IfcGridTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGridTypeEnum, 'NOTDEFINED', INDETERMINATE) +rectangular = IfcGridTypeEnum.RECTANGULAR +radial = IfcGridTypeEnum.RADIAL +triangular = IfcGridTypeEnum.TRIANGULAR +irregular = IfcGridTypeEnum.IRREGULAR +userdefined = IfcGridTypeEnum.USERDEFINED +notdefined = IfcGridTypeEnum.NOTDEFINED IfcHeatExchangerTypeEnum = enum_namespace() -plate = getattr(IfcHeatExchangerTypeEnum, 'PLATE', INDETERMINATE) -shellandtube = getattr(IfcHeatExchangerTypeEnum, 'SHELLANDTUBE', INDETERMINATE) -turnoutheating = getattr(IfcHeatExchangerTypeEnum, 'TURNOUTHEATING', INDETERMINATE) -userdefined = getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcHeatExchangerTypeEnum, 'NOTDEFINED', INDETERMINATE) +plate = IfcHeatExchangerTypeEnum.PLATE +shellandtube = IfcHeatExchangerTypeEnum.SHELLANDTUBE +turnoutheating = IfcHeatExchangerTypeEnum.TURNOUTHEATING +userdefined = IfcHeatExchangerTypeEnum.USERDEFINED +notdefined = IfcHeatExchangerTypeEnum.NOTDEFINED IfcHumidifierTypeEnum = enum_namespace() -steaminjection = getattr(IfcHumidifierTypeEnum, 'STEAMINJECTION', INDETERMINATE) -adiabaticairwasher = getattr(IfcHumidifierTypeEnum, 'ADIABATICAIRWASHER', INDETERMINATE) -adiabaticpan = getattr(IfcHumidifierTypeEnum, 'ADIABATICPAN', INDETERMINATE) -adiabaticwettedelement = getattr(IfcHumidifierTypeEnum, 'ADIABATICWETTEDELEMENT', INDETERMINATE) -adiabaticatomizing = getattr(IfcHumidifierTypeEnum, 'ADIABATICATOMIZING', INDETERMINATE) -adiabaticultrasonic = getattr(IfcHumidifierTypeEnum, 'ADIABATICULTRASONIC', INDETERMINATE) -adiabaticrigidmedia = getattr(IfcHumidifierTypeEnum, 'ADIABATICRIGIDMEDIA', INDETERMINATE) -adiabaticcompressedairnozzle = getattr(IfcHumidifierTypeEnum, 'ADIABATICCOMPRESSEDAIRNOZZLE', INDETERMINATE) -assistedelectric = getattr(IfcHumidifierTypeEnum, 'ASSISTEDELECTRIC', INDETERMINATE) -assistednaturalgas = getattr(IfcHumidifierTypeEnum, 'ASSISTEDNATURALGAS', INDETERMINATE) -assistedpropane = getattr(IfcHumidifierTypeEnum, 'ASSISTEDPROPANE', INDETERMINATE) -assistedbutane = getattr(IfcHumidifierTypeEnum, 'ASSISTEDBUTANE', INDETERMINATE) -assistedsteam = getattr(IfcHumidifierTypeEnum, 'ASSISTEDSTEAM', INDETERMINATE) -userdefined = getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcHumidifierTypeEnum, 'NOTDEFINED', INDETERMINATE) +steaminjection = IfcHumidifierTypeEnum.STEAMINJECTION +adiabaticairwasher = IfcHumidifierTypeEnum.ADIABATICAIRWASHER +adiabaticpan = IfcHumidifierTypeEnum.ADIABATICPAN +adiabaticwettedelement = IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT +adiabaticatomizing = IfcHumidifierTypeEnum.ADIABATICATOMIZING +adiabaticultrasonic = IfcHumidifierTypeEnum.ADIABATICULTRASONIC +adiabaticrigidmedia = IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA +adiabaticcompressedairnozzle = IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE +assistedelectric = IfcHumidifierTypeEnum.ASSISTEDELECTRIC +assistednaturalgas = IfcHumidifierTypeEnum.ASSISTEDNATURALGAS +assistedpropane = IfcHumidifierTypeEnum.ASSISTEDPROPANE +assistedbutane = IfcHumidifierTypeEnum.ASSISTEDBUTANE +assistedsteam = IfcHumidifierTypeEnum.ASSISTEDSTEAM +userdefined = IfcHumidifierTypeEnum.USERDEFINED +notdefined = IfcHumidifierTypeEnum.NOTDEFINED IfcImpactProtectionDeviceTypeEnum = enum_namespace() -crashcushion = getattr(IfcImpactProtectionDeviceTypeEnum, 'CRASHCUSHION', INDETERMINATE) -dampingsystem = getattr(IfcImpactProtectionDeviceTypeEnum, 'DAMPINGSYSTEM', INDETERMINATE) -fender = getattr(IfcImpactProtectionDeviceTypeEnum, 'FENDER', INDETERMINATE) -bumper = getattr(IfcImpactProtectionDeviceTypeEnum, 'BUMPER', INDETERMINATE) -userdefined = getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcImpactProtectionDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +crashcushion = IfcImpactProtectionDeviceTypeEnum.CRASHCUSHION +dampingsystem = IfcImpactProtectionDeviceTypeEnum.DAMPINGSYSTEM +fender = IfcImpactProtectionDeviceTypeEnum.FENDER +bumper = IfcImpactProtectionDeviceTypeEnum.BUMPER +userdefined = IfcImpactProtectionDeviceTypeEnum.USERDEFINED +notdefined = IfcImpactProtectionDeviceTypeEnum.NOTDEFINED IfcInterceptorTypeEnum = enum_namespace() -cyclonic = getattr(IfcInterceptorTypeEnum, 'CYCLONIC', INDETERMINATE) -grease = getattr(IfcInterceptorTypeEnum, 'GREASE', INDETERMINATE) -oil = getattr(IfcInterceptorTypeEnum, 'OIL', INDETERMINATE) -petrol = getattr(IfcInterceptorTypeEnum, 'PETROL', INDETERMINATE) -userdefined = getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcInterceptorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cyclonic = IfcInterceptorTypeEnum.CYCLONIC +grease = IfcInterceptorTypeEnum.GREASE +oil = IfcInterceptorTypeEnum.OIL +petrol = IfcInterceptorTypeEnum.PETROL +userdefined = IfcInterceptorTypeEnum.USERDEFINED +notdefined = IfcInterceptorTypeEnum.NOTDEFINED IfcInternalOrExternalEnum = enum_namespace() -internal = getattr(IfcInternalOrExternalEnum, 'INTERNAL', INDETERMINATE) -external = getattr(IfcInternalOrExternalEnum, 'EXTERNAL', INDETERMINATE) -external_earth = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_water = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_WATER', INDETERMINATE) -external_fire = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_FIRE', INDETERMINATE) -notdefined = getattr(IfcInternalOrExternalEnum, 'NOTDEFINED', INDETERMINATE) +internal = IfcInternalOrExternalEnum.INTERNAL +external = IfcInternalOrExternalEnum.EXTERNAL +external_earth = IfcInternalOrExternalEnum.EXTERNAL_EARTH +external_water = IfcInternalOrExternalEnum.EXTERNAL_WATER +external_fire = IfcInternalOrExternalEnum.EXTERNAL_FIRE +notdefined = IfcInternalOrExternalEnum.NOTDEFINED IfcInventoryTypeEnum = enum_namespace() -assetinventory = getattr(IfcInventoryTypeEnum, 'ASSETINVENTORY', INDETERMINATE) -spaceinventory = getattr(IfcInventoryTypeEnum, 'SPACEINVENTORY', INDETERMINATE) -furnitureinventory = getattr(IfcInventoryTypeEnum, 'FURNITUREINVENTORY', INDETERMINATE) -userdefined = getattr(IfcInventoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcInventoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +assetinventory = IfcInventoryTypeEnum.ASSETINVENTORY +spaceinventory = IfcInventoryTypeEnum.SPACEINVENTORY +furnitureinventory = IfcInventoryTypeEnum.FURNITUREINVENTORY +userdefined = IfcInventoryTypeEnum.USERDEFINED +notdefined = IfcInventoryTypeEnum.NOTDEFINED IfcJunctionBoxTypeEnum = enum_namespace() -data = getattr(IfcJunctionBoxTypeEnum, 'DATA', INDETERMINATE) -power = getattr(IfcJunctionBoxTypeEnum, 'POWER', INDETERMINATE) -userdefined = getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcJunctionBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +data = IfcJunctionBoxTypeEnum.DATA +power = IfcJunctionBoxTypeEnum.POWER +userdefined = IfcJunctionBoxTypeEnum.USERDEFINED +notdefined = IfcJunctionBoxTypeEnum.NOTDEFINED IfcKnotType = enum_namespace() -uniform_knots = getattr(IfcKnotType, 'UNIFORM_KNOTS', INDETERMINATE) -quasi_uniform_knots = getattr(IfcKnotType, 'QUASI_UNIFORM_KNOTS', INDETERMINATE) -piecewise_bezier_knots = getattr(IfcKnotType, 'PIECEWISE_BEZIER_KNOTS', INDETERMINATE) -unspecified = getattr(IfcKnotType, 'UNSPECIFIED', INDETERMINATE) +uniform_knots = IfcKnotType.UNIFORM_KNOTS +quasi_uniform_knots = IfcKnotType.QUASI_UNIFORM_KNOTS +piecewise_bezier_knots = IfcKnotType.PIECEWISE_BEZIER_KNOTS +unspecified = IfcKnotType.UNSPECIFIED IfcLaborResourceTypeEnum = enum_namespace() -administration = getattr(IfcLaborResourceTypeEnum, 'ADMINISTRATION', INDETERMINATE) -carpentry = getattr(IfcLaborResourceTypeEnum, 'CARPENTRY', INDETERMINATE) -cleaning = getattr(IfcLaborResourceTypeEnum, 'CLEANING', INDETERMINATE) -concrete = getattr(IfcLaborResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = getattr(IfcLaborResourceTypeEnum, 'DRYWALL', INDETERMINATE) -electric = getattr(IfcLaborResourceTypeEnum, 'ELECTRIC', INDETERMINATE) -finishing = getattr(IfcLaborResourceTypeEnum, 'FINISHING', INDETERMINATE) -flooring = getattr(IfcLaborResourceTypeEnum, 'FLOORING', INDETERMINATE) -general = getattr(IfcLaborResourceTypeEnum, 'GENERAL', INDETERMINATE) -hvac = getattr(IfcLaborResourceTypeEnum, 'HVAC', INDETERMINATE) -landscaping = getattr(IfcLaborResourceTypeEnum, 'LANDSCAPING', INDETERMINATE) -masonry = getattr(IfcLaborResourceTypeEnum, 'MASONRY', INDETERMINATE) -painting = getattr(IfcLaborResourceTypeEnum, 'PAINTING', INDETERMINATE) -paving = getattr(IfcLaborResourceTypeEnum, 'PAVING', INDETERMINATE) -plumbing = getattr(IfcLaborResourceTypeEnum, 'PLUMBING', INDETERMINATE) -roofing = getattr(IfcLaborResourceTypeEnum, 'ROOFING', INDETERMINATE) -sitegrading = getattr(IfcLaborResourceTypeEnum, 'SITEGRADING', INDETERMINATE) -steelwork = getattr(IfcLaborResourceTypeEnum, 'STEELWORK', INDETERMINATE) -surveying = getattr(IfcLaborResourceTypeEnum, 'SURVEYING', INDETERMINATE) -userdefined = getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLaborResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +administration = IfcLaborResourceTypeEnum.ADMINISTRATION +carpentry = IfcLaborResourceTypeEnum.CARPENTRY +cleaning = IfcLaborResourceTypeEnum.CLEANING +concrete = IfcLaborResourceTypeEnum.CONCRETE +drywall = IfcLaborResourceTypeEnum.DRYWALL +electric = IfcLaborResourceTypeEnum.ELECTRIC +finishing = IfcLaborResourceTypeEnum.FINISHING +flooring = IfcLaborResourceTypeEnum.FLOORING +general = IfcLaborResourceTypeEnum.GENERAL +hvac = IfcLaborResourceTypeEnum.HVAC +landscaping = IfcLaborResourceTypeEnum.LANDSCAPING +masonry = IfcLaborResourceTypeEnum.MASONRY +painting = IfcLaborResourceTypeEnum.PAINTING +paving = IfcLaborResourceTypeEnum.PAVING +plumbing = IfcLaborResourceTypeEnum.PLUMBING +roofing = IfcLaborResourceTypeEnum.ROOFING +sitegrading = IfcLaborResourceTypeEnum.SITEGRADING +steelwork = IfcLaborResourceTypeEnum.STEELWORK +surveying = IfcLaborResourceTypeEnum.SURVEYING +userdefined = IfcLaborResourceTypeEnum.USERDEFINED +notdefined = IfcLaborResourceTypeEnum.NOTDEFINED IfcLampTypeEnum = enum_namespace() -compactfluorescent = getattr(IfcLampTypeEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = getattr(IfcLampTypeEnum, 'FLUORESCENT', INDETERMINATE) -halogen = getattr(IfcLampTypeEnum, 'HALOGEN', INDETERMINATE) -highpressuremercury = getattr(IfcLampTypeEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = getattr(IfcLampTypeEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -led = getattr(IfcLampTypeEnum, 'LED', INDETERMINATE) -metalhalide = getattr(IfcLampTypeEnum, 'METALHALIDE', INDETERMINATE) -oled = getattr(IfcLampTypeEnum, 'OLED', INDETERMINATE) -tungstenfilament = getattr(IfcLampTypeEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -userdefined = getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLampTypeEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLampTypeEnum.COMPACTFLUORESCENT +fluorescent = IfcLampTypeEnum.FLUORESCENT +halogen = IfcLampTypeEnum.HALOGEN +highpressuremercury = IfcLampTypeEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLampTypeEnum.HIGHPRESSURESODIUM +led = IfcLampTypeEnum.LED +metalhalide = IfcLampTypeEnum.METALHALIDE +oled = IfcLampTypeEnum.OLED +tungstenfilament = IfcLampTypeEnum.TUNGSTENFILAMENT +userdefined = IfcLampTypeEnum.USERDEFINED +notdefined = IfcLampTypeEnum.NOTDEFINED IfcLayerSetDirectionEnum = enum_namespace() -axis1 = getattr(IfcLayerSetDirectionEnum, 'AXIS1', INDETERMINATE) -axis2 = getattr(IfcLayerSetDirectionEnum, 'AXIS2', INDETERMINATE) -axis3 = getattr(IfcLayerSetDirectionEnum, 'AXIS3', INDETERMINATE) +axis1 = IfcLayerSetDirectionEnum.AXIS1 +axis2 = IfcLayerSetDirectionEnum.AXIS2 +axis3 = IfcLayerSetDirectionEnum.AXIS3 IfcLightDistributionCurveEnum = enum_namespace() -type_a = getattr(IfcLightDistributionCurveEnum, 'TYPE_A', INDETERMINATE) -type_b = getattr(IfcLightDistributionCurveEnum, 'TYPE_B', INDETERMINATE) -type_c = getattr(IfcLightDistributionCurveEnum, 'TYPE_C', INDETERMINATE) -notdefined = getattr(IfcLightDistributionCurveEnum, 'NOTDEFINED', INDETERMINATE) +type_a = IfcLightDistributionCurveEnum.TYPE_A +type_b = IfcLightDistributionCurveEnum.TYPE_B +type_c = IfcLightDistributionCurveEnum.TYPE_C +notdefined = IfcLightDistributionCurveEnum.NOTDEFINED IfcLightEmissionSourceEnum = enum_namespace() -compactfluorescent = getattr(IfcLightEmissionSourceEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = getattr(IfcLightEmissionSourceEnum, 'FLUORESCENT', INDETERMINATE) -highpressuremercury = getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -lightemittingdiode = getattr(IfcLightEmissionSourceEnum, 'LIGHTEMITTINGDIODE', INDETERMINATE) -lowpressuresodium = getattr(IfcLightEmissionSourceEnum, 'LOWPRESSURESODIUM', INDETERMINATE) -lowvoltagehalogen = getattr(IfcLightEmissionSourceEnum, 'LOWVOLTAGEHALOGEN', INDETERMINATE) -mainvoltagehalogen = getattr(IfcLightEmissionSourceEnum, 'MAINVOLTAGEHALOGEN', INDETERMINATE) -metalhalide = getattr(IfcLightEmissionSourceEnum, 'METALHALIDE', INDETERMINATE) -tungstenfilament = getattr(IfcLightEmissionSourceEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -notdefined = getattr(IfcLightEmissionSourceEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLightEmissionSourceEnum.COMPACTFLUORESCENT +fluorescent = IfcLightEmissionSourceEnum.FLUORESCENT +highpressuremercury = IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM +lightemittingdiode = IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE +lowpressuresodium = IfcLightEmissionSourceEnum.LOWPRESSURESODIUM +lowvoltagehalogen = IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN +mainvoltagehalogen = IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN +metalhalide = IfcLightEmissionSourceEnum.METALHALIDE +tungstenfilament = IfcLightEmissionSourceEnum.TUNGSTENFILAMENT +notdefined = IfcLightEmissionSourceEnum.NOTDEFINED IfcLightFixtureTypeEnum = enum_namespace() -pointsource = getattr(IfcLightFixtureTypeEnum, 'POINTSOURCE', INDETERMINATE) -directionsource = getattr(IfcLightFixtureTypeEnum, 'DIRECTIONSOURCE', INDETERMINATE) -securitylighting = getattr(IfcLightFixtureTypeEnum, 'SECURITYLIGHTING', INDETERMINATE) -userdefined = getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLightFixtureTypeEnum, 'NOTDEFINED', INDETERMINATE) +pointsource = IfcLightFixtureTypeEnum.POINTSOURCE +directionsource = IfcLightFixtureTypeEnum.DIRECTIONSOURCE +securitylighting = IfcLightFixtureTypeEnum.SECURITYLIGHTING +userdefined = IfcLightFixtureTypeEnum.USERDEFINED +notdefined = IfcLightFixtureTypeEnum.NOTDEFINED IfcLiquidTerminalTypeEnum = enum_namespace() -loadingarm = getattr(IfcLiquidTerminalTypeEnum, 'LOADINGARM', INDETERMINATE) -hosereel = getattr(IfcLiquidTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -userdefined = getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLiquidTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +loadingarm = IfcLiquidTerminalTypeEnum.LOADINGARM +hosereel = IfcLiquidTerminalTypeEnum.HOSEREEL +userdefined = IfcLiquidTerminalTypeEnum.USERDEFINED +notdefined = IfcLiquidTerminalTypeEnum.NOTDEFINED IfcLoadGroupTypeEnum = enum_namespace() -load_group = getattr(IfcLoadGroupTypeEnum, 'LOAD_GROUP', INDETERMINATE) -load_case = getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE) -load_combination = getattr(IfcLoadGroupTypeEnum, 'LOAD_COMBINATION', INDETERMINATE) -userdefined = getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLoadGroupTypeEnum, 'NOTDEFINED', INDETERMINATE) +load_group = IfcLoadGroupTypeEnum.LOAD_GROUP +load_case = IfcLoadGroupTypeEnum.LOAD_CASE +load_combination = IfcLoadGroupTypeEnum.LOAD_COMBINATION +userdefined = IfcLoadGroupTypeEnum.USERDEFINED +notdefined = IfcLoadGroupTypeEnum.NOTDEFINED IfcLogicalOperatorEnum = enum_namespace() -logicaland = getattr(IfcLogicalOperatorEnum, 'LOGICALAND', INDETERMINATE) -logicalor = getattr(IfcLogicalOperatorEnum, 'LOGICALOR', INDETERMINATE) -logicalxor = getattr(IfcLogicalOperatorEnum, 'LOGICALXOR', INDETERMINATE) -logicalnotand = getattr(IfcLogicalOperatorEnum, 'LOGICALNOTAND', INDETERMINATE) -logicalnotor = getattr(IfcLogicalOperatorEnum, 'LOGICALNOTOR', INDETERMINATE) +logicaland = IfcLogicalOperatorEnum.LOGICALAND +logicalor = IfcLogicalOperatorEnum.LOGICALOR +logicalxor = IfcLogicalOperatorEnum.LOGICALXOR +logicalnotand = IfcLogicalOperatorEnum.LOGICALNOTAND +logicalnotor = IfcLogicalOperatorEnum.LOGICALNOTOR IfcMarineFacilityTypeEnum = enum_namespace() -canal = getattr(IfcMarineFacilityTypeEnum, 'CANAL', INDETERMINATE) -waterwayshiplift = getattr(IfcMarineFacilityTypeEnum, 'WATERWAYSHIPLIFT', INDETERMINATE) -revetment = getattr(IfcMarineFacilityTypeEnum, 'REVETMENT', INDETERMINATE) -launchrecovery = getattr(IfcMarineFacilityTypeEnum, 'LAUNCHRECOVERY', INDETERMINATE) -marinedefence = getattr(IfcMarineFacilityTypeEnum, 'MARINEDEFENCE', INDETERMINATE) -hydrolift = getattr(IfcMarineFacilityTypeEnum, 'HYDROLIFT', INDETERMINATE) -shipyard = getattr(IfcMarineFacilityTypeEnum, 'SHIPYARD', INDETERMINATE) -shiplift = getattr(IfcMarineFacilityTypeEnum, 'SHIPLIFT', INDETERMINATE) -port = getattr(IfcMarineFacilityTypeEnum, 'PORT', INDETERMINATE) -quay = getattr(IfcMarineFacilityTypeEnum, 'QUAY', INDETERMINATE) -floatingdock = getattr(IfcMarineFacilityTypeEnum, 'FLOATINGDOCK', INDETERMINATE) -navigationalchannel = getattr(IfcMarineFacilityTypeEnum, 'NAVIGATIONALCHANNEL', INDETERMINATE) -breakwater = getattr(IfcMarineFacilityTypeEnum, 'BREAKWATER', INDETERMINATE) -drydock = getattr(IfcMarineFacilityTypeEnum, 'DRYDOCK', INDETERMINATE) -jetty = getattr(IfcMarineFacilityTypeEnum, 'JETTY', INDETERMINATE) -shiplock = getattr(IfcMarineFacilityTypeEnum, 'SHIPLOCK', INDETERMINATE) -barrierbeach = getattr(IfcMarineFacilityTypeEnum, 'BARRIERBEACH', INDETERMINATE) -slipway = getattr(IfcMarineFacilityTypeEnum, 'SLIPWAY', INDETERMINATE) -waterway = getattr(IfcMarineFacilityTypeEnum, 'WATERWAY', INDETERMINATE) -userdefined = getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMarineFacilityTypeEnum, 'NOTDEFINED', INDETERMINATE) +canal = IfcMarineFacilityTypeEnum.CANAL +waterwayshiplift = IfcMarineFacilityTypeEnum.WATERWAYSHIPLIFT +revetment = IfcMarineFacilityTypeEnum.REVETMENT +launchrecovery = IfcMarineFacilityTypeEnum.LAUNCHRECOVERY +marinedefence = IfcMarineFacilityTypeEnum.MARINEDEFENCE +hydrolift = IfcMarineFacilityTypeEnum.HYDROLIFT +shipyard = IfcMarineFacilityTypeEnum.SHIPYARD +shiplift = IfcMarineFacilityTypeEnum.SHIPLIFT +port = IfcMarineFacilityTypeEnum.PORT +quay = IfcMarineFacilityTypeEnum.QUAY +floatingdock = IfcMarineFacilityTypeEnum.FLOATINGDOCK +navigationalchannel = IfcMarineFacilityTypeEnum.NAVIGATIONALCHANNEL +breakwater = IfcMarineFacilityTypeEnum.BREAKWATER +drydock = IfcMarineFacilityTypeEnum.DRYDOCK +jetty = IfcMarineFacilityTypeEnum.JETTY +shiplock = IfcMarineFacilityTypeEnum.SHIPLOCK +barrierbeach = IfcMarineFacilityTypeEnum.BARRIERBEACH +slipway = IfcMarineFacilityTypeEnum.SLIPWAY +waterway = IfcMarineFacilityTypeEnum.WATERWAY +userdefined = IfcMarineFacilityTypeEnum.USERDEFINED +notdefined = IfcMarineFacilityTypeEnum.NOTDEFINED IfcMarinePartTypeEnum = enum_namespace() -crest = getattr(IfcMarinePartTypeEnum, 'CREST', INDETERMINATE) -manufacturing = getattr(IfcMarinePartTypeEnum, 'MANUFACTURING', INDETERMINATE) -lowwaterline = getattr(IfcMarinePartTypeEnum, 'LOWWATERLINE', INDETERMINATE) -core = getattr(IfcMarinePartTypeEnum, 'CORE', INDETERMINATE) -waterfield = getattr(IfcMarinePartTypeEnum, 'WATERFIELD', INDETERMINATE) -cill_level = getattr(IfcMarinePartTypeEnum, 'CILL_LEVEL', INDETERMINATE) -berthingstructure = getattr(IfcMarinePartTypeEnum, 'BERTHINGSTRUCTURE', INDETERMINATE) -copelevel = getattr(IfcMarinePartTypeEnum, 'COPELEVEL', INDETERMINATE) -chamber = getattr(IfcMarinePartTypeEnum, 'CHAMBER', INDETERMINATE) -storage = getattr(IfcMarinePartTypeEnum, 'STORAGE', INDETERMINATE) -approachchannel = getattr(IfcMarinePartTypeEnum, 'APPROACHCHANNEL', INDETERMINATE) -vehicleservicing = getattr(IfcMarinePartTypeEnum, 'VEHICLESERVICING', INDETERMINATE) -shiptransfer = getattr(IfcMarinePartTypeEnum, 'SHIPTRANSFER', INDETERMINATE) -gatehead = getattr(IfcMarinePartTypeEnum, 'GATEHEAD', INDETERMINATE) -gudingstructure = getattr(IfcMarinePartTypeEnum, 'GUDINGSTRUCTURE', INDETERMINATE) -belowwaterline = getattr(IfcMarinePartTypeEnum, 'BELOWWATERLINE', INDETERMINATE) -weatherside = getattr(IfcMarinePartTypeEnum, 'WEATHERSIDE', INDETERMINATE) -landfield = getattr(IfcMarinePartTypeEnum, 'LANDFIELD', INDETERMINATE) -protection = getattr(IfcMarinePartTypeEnum, 'PROTECTION', INDETERMINATE) -leewardside = getattr(IfcMarinePartTypeEnum, 'LEEWARDSIDE', INDETERMINATE) -abovewaterline = getattr(IfcMarinePartTypeEnum, 'ABOVEWATERLINE', INDETERMINATE) -anchorage = getattr(IfcMarinePartTypeEnum, 'ANCHORAGE', INDETERMINATE) -navigationalarea = getattr(IfcMarinePartTypeEnum, 'NAVIGATIONALAREA', INDETERMINATE) -highwaterline = getattr(IfcMarinePartTypeEnum, 'HIGHWATERLINE', INDETERMINATE) -userdefined = getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMarinePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +crest = IfcMarinePartTypeEnum.CREST +manufacturing = IfcMarinePartTypeEnum.MANUFACTURING +lowwaterline = IfcMarinePartTypeEnum.LOWWATERLINE +core = IfcMarinePartTypeEnum.CORE +waterfield = IfcMarinePartTypeEnum.WATERFIELD +cill_level = IfcMarinePartTypeEnum.CILL_LEVEL +berthingstructure = IfcMarinePartTypeEnum.BERTHINGSTRUCTURE +copelevel = IfcMarinePartTypeEnum.COPELEVEL +chamber = IfcMarinePartTypeEnum.CHAMBER +storage = IfcMarinePartTypeEnum.STORAGE +approachchannel = IfcMarinePartTypeEnum.APPROACHCHANNEL +vehicleservicing = IfcMarinePartTypeEnum.VEHICLESERVICING +shiptransfer = IfcMarinePartTypeEnum.SHIPTRANSFER +gatehead = IfcMarinePartTypeEnum.GATEHEAD +gudingstructure = IfcMarinePartTypeEnum.GUDINGSTRUCTURE +belowwaterline = IfcMarinePartTypeEnum.BELOWWATERLINE +weatherside = IfcMarinePartTypeEnum.WEATHERSIDE +landfield = IfcMarinePartTypeEnum.LANDFIELD +protection = IfcMarinePartTypeEnum.PROTECTION +leewardside = IfcMarinePartTypeEnum.LEEWARDSIDE +abovewaterline = IfcMarinePartTypeEnum.ABOVEWATERLINE +anchorage = IfcMarinePartTypeEnum.ANCHORAGE +navigationalarea = IfcMarinePartTypeEnum.NAVIGATIONALAREA +highwaterline = IfcMarinePartTypeEnum.HIGHWATERLINE +userdefined = IfcMarinePartTypeEnum.USERDEFINED +notdefined = IfcMarinePartTypeEnum.NOTDEFINED IfcMechanicalFastenerTypeEnum = enum_namespace() -anchorbolt = getattr(IfcMechanicalFastenerTypeEnum, 'ANCHORBOLT', INDETERMINATE) -bolt = getattr(IfcMechanicalFastenerTypeEnum, 'BOLT', INDETERMINATE) -dowel = getattr(IfcMechanicalFastenerTypeEnum, 'DOWEL', INDETERMINATE) -nail = getattr(IfcMechanicalFastenerTypeEnum, 'NAIL', INDETERMINATE) -nailplate = getattr(IfcMechanicalFastenerTypeEnum, 'NAILPLATE', INDETERMINATE) -rivet = getattr(IfcMechanicalFastenerTypeEnum, 'RIVET', INDETERMINATE) -screw = getattr(IfcMechanicalFastenerTypeEnum, 'SCREW', INDETERMINATE) -shearconnector = getattr(IfcMechanicalFastenerTypeEnum, 'SHEARCONNECTOR', INDETERMINATE) -staple = getattr(IfcMechanicalFastenerTypeEnum, 'STAPLE', INDETERMINATE) -studshearconnector = getattr(IfcMechanicalFastenerTypeEnum, 'STUDSHEARCONNECTOR', INDETERMINATE) -coupler = getattr(IfcMechanicalFastenerTypeEnum, 'COUPLER', INDETERMINATE) -railjoint = getattr(IfcMechanicalFastenerTypeEnum, 'RAILJOINT', INDETERMINATE) -railfastening = getattr(IfcMechanicalFastenerTypeEnum, 'RAILFASTENING', INDETERMINATE) -chain = getattr(IfcMechanicalFastenerTypeEnum, 'CHAIN', INDETERMINATE) -rope = getattr(IfcMechanicalFastenerTypeEnum, 'ROPE', INDETERMINATE) -userdefined = getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMechanicalFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorbolt = IfcMechanicalFastenerTypeEnum.ANCHORBOLT +bolt = IfcMechanicalFastenerTypeEnum.BOLT +dowel = IfcMechanicalFastenerTypeEnum.DOWEL +nail = IfcMechanicalFastenerTypeEnum.NAIL +nailplate = IfcMechanicalFastenerTypeEnum.NAILPLATE +rivet = IfcMechanicalFastenerTypeEnum.RIVET +screw = IfcMechanicalFastenerTypeEnum.SCREW +shearconnector = IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR +staple = IfcMechanicalFastenerTypeEnum.STAPLE +studshearconnector = IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR +coupler = IfcMechanicalFastenerTypeEnum.COUPLER +railjoint = IfcMechanicalFastenerTypeEnum.RAILJOINT +railfastening = IfcMechanicalFastenerTypeEnum.RAILFASTENING +chain = IfcMechanicalFastenerTypeEnum.CHAIN +rope = IfcMechanicalFastenerTypeEnum.ROPE +userdefined = IfcMechanicalFastenerTypeEnum.USERDEFINED +notdefined = IfcMechanicalFastenerTypeEnum.NOTDEFINED IfcMedicalDeviceTypeEnum = enum_namespace() -airstation = getattr(IfcMedicalDeviceTypeEnum, 'AIRSTATION', INDETERMINATE) -feedairunit = getattr(IfcMedicalDeviceTypeEnum, 'FEEDAIRUNIT', INDETERMINATE) -oxygengenerator = getattr(IfcMedicalDeviceTypeEnum, 'OXYGENGENERATOR', INDETERMINATE) -oxygenplant = getattr(IfcMedicalDeviceTypeEnum, 'OXYGENPLANT', INDETERMINATE) -vacuumstation = getattr(IfcMedicalDeviceTypeEnum, 'VACUUMSTATION', INDETERMINATE) -userdefined = getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMedicalDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +airstation = IfcMedicalDeviceTypeEnum.AIRSTATION +feedairunit = IfcMedicalDeviceTypeEnum.FEEDAIRUNIT +oxygengenerator = IfcMedicalDeviceTypeEnum.OXYGENGENERATOR +oxygenplant = IfcMedicalDeviceTypeEnum.OXYGENPLANT +vacuumstation = IfcMedicalDeviceTypeEnum.VACUUMSTATION +userdefined = IfcMedicalDeviceTypeEnum.USERDEFINED +notdefined = IfcMedicalDeviceTypeEnum.NOTDEFINED IfcMemberTypeEnum = enum_namespace() -brace = getattr(IfcMemberTypeEnum, 'BRACE', INDETERMINATE) -chord = getattr(IfcMemberTypeEnum, 'CHORD', INDETERMINATE) -collar = getattr(IfcMemberTypeEnum, 'COLLAR', INDETERMINATE) -member = getattr(IfcMemberTypeEnum, 'MEMBER', INDETERMINATE) -mullion = getattr(IfcMemberTypeEnum, 'MULLION', INDETERMINATE) -plate = getattr(IfcMemberTypeEnum, 'PLATE', INDETERMINATE) -post = getattr(IfcMemberTypeEnum, 'POST', INDETERMINATE) -purlin = getattr(IfcMemberTypeEnum, 'PURLIN', INDETERMINATE) -rafter = getattr(IfcMemberTypeEnum, 'RAFTER', INDETERMINATE) -stringer = getattr(IfcMemberTypeEnum, 'STRINGER', INDETERMINATE) -strut = getattr(IfcMemberTypeEnum, 'STRUT', INDETERMINATE) -stud = getattr(IfcMemberTypeEnum, 'STUD', INDETERMINATE) -stiffening_rib = getattr(IfcMemberTypeEnum, 'STIFFENING_RIB', INDETERMINATE) -arch_segment = getattr(IfcMemberTypeEnum, 'ARCH_SEGMENT', INDETERMINATE) -suspension_cable = getattr(IfcMemberTypeEnum, 'SUSPENSION_CABLE', INDETERMINATE) -suspender = getattr(IfcMemberTypeEnum, 'SUSPENDER', INDETERMINATE) -stay_cable = getattr(IfcMemberTypeEnum, 'STAY_CABLE', INDETERMINATE) -structuralcable = getattr(IfcMemberTypeEnum, 'STRUCTURALCABLE', INDETERMINATE) -tiebar = getattr(IfcMemberTypeEnum, 'TIEBAR', INDETERMINATE) -userdefined = getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +brace = IfcMemberTypeEnum.BRACE +chord = IfcMemberTypeEnum.CHORD +collar = IfcMemberTypeEnum.COLLAR +member = IfcMemberTypeEnum.MEMBER +mullion = IfcMemberTypeEnum.MULLION +plate = IfcMemberTypeEnum.PLATE +post = IfcMemberTypeEnum.POST +purlin = IfcMemberTypeEnum.PURLIN +rafter = IfcMemberTypeEnum.RAFTER +stringer = IfcMemberTypeEnum.STRINGER +strut = IfcMemberTypeEnum.STRUT +stud = IfcMemberTypeEnum.STUD +stiffening_rib = IfcMemberTypeEnum.STIFFENING_RIB +arch_segment = IfcMemberTypeEnum.ARCH_SEGMENT +suspension_cable = IfcMemberTypeEnum.SUSPENSION_CABLE +suspender = IfcMemberTypeEnum.SUSPENDER +stay_cable = IfcMemberTypeEnum.STAY_CABLE +structuralcable = IfcMemberTypeEnum.STRUCTURALCABLE +tiebar = IfcMemberTypeEnum.TIEBAR +userdefined = IfcMemberTypeEnum.USERDEFINED +notdefined = IfcMemberTypeEnum.NOTDEFINED IfcMobileTelecommunicationsApplianceTypeEnum = enum_namespace() -e_utran_node_b = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'E_UTRAN_NODE_B', INDETERMINATE) -remote_radio_unit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTE_RADIO_UNIT', INDETERMINATE) -accesspoint = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'ACCESSPOINT', INDETERMINATE) -basetransceiverstation = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASETRANSCEIVERSTATION', INDETERMINATE) -remoteunit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTEUNIT', INDETERMINATE) -basebandunit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASEBANDUNIT', INDETERMINATE) -masterunit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MASTERUNIT', INDETERMINATE) -userdefined = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +e_utran_node_b = IfcMobileTelecommunicationsApplianceTypeEnum.E_UTRAN_NODE_B +remote_radio_unit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTE_RADIO_UNIT +accesspoint = IfcMobileTelecommunicationsApplianceTypeEnum.ACCESSPOINT +basetransceiverstation = IfcMobileTelecommunicationsApplianceTypeEnum.BASETRANSCEIVERSTATION +remoteunit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTEUNIT +basebandunit = IfcMobileTelecommunicationsApplianceTypeEnum.BASEBANDUNIT +masterunit = IfcMobileTelecommunicationsApplianceTypeEnum.MASTERUNIT +userdefined = IfcMobileTelecommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcMobileTelecommunicationsApplianceTypeEnum.NOTDEFINED IfcMooringDeviceTypeEnum = enum_namespace() -linetensioner = getattr(IfcMooringDeviceTypeEnum, 'LINETENSIONER', INDETERMINATE) -magneticdevice = getattr(IfcMooringDeviceTypeEnum, 'MAGNETICDEVICE', INDETERMINATE) -mooringhooks = getattr(IfcMooringDeviceTypeEnum, 'MOORINGHOOKS', INDETERMINATE) -vacuumdevice = getattr(IfcMooringDeviceTypeEnum, 'VACUUMDEVICE', INDETERMINATE) -bollard = getattr(IfcMooringDeviceTypeEnum, 'BOLLARD', INDETERMINATE) -userdefined = getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMooringDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +linetensioner = IfcMooringDeviceTypeEnum.LINETENSIONER +magneticdevice = IfcMooringDeviceTypeEnum.MAGNETICDEVICE +mooringhooks = IfcMooringDeviceTypeEnum.MOORINGHOOKS +vacuumdevice = IfcMooringDeviceTypeEnum.VACUUMDEVICE +bollard = IfcMooringDeviceTypeEnum.BOLLARD +userdefined = IfcMooringDeviceTypeEnum.USERDEFINED +notdefined = IfcMooringDeviceTypeEnum.NOTDEFINED IfcMotorConnectionTypeEnum = enum_namespace() -beltdrive = getattr(IfcMotorConnectionTypeEnum, 'BELTDRIVE', INDETERMINATE) -coupling = getattr(IfcMotorConnectionTypeEnum, 'COUPLING', INDETERMINATE) -directdrive = getattr(IfcMotorConnectionTypeEnum, 'DIRECTDRIVE', INDETERMINATE) -userdefined = getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMotorConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltdrive = IfcMotorConnectionTypeEnum.BELTDRIVE +coupling = IfcMotorConnectionTypeEnum.COUPLING +directdrive = IfcMotorConnectionTypeEnum.DIRECTDRIVE +userdefined = IfcMotorConnectionTypeEnum.USERDEFINED +notdefined = IfcMotorConnectionTypeEnum.NOTDEFINED IfcNavigationElementTypeEnum = enum_namespace() -beacon = getattr(IfcNavigationElementTypeEnum, 'BEACON', INDETERMINATE) -buoy = getattr(IfcNavigationElementTypeEnum, 'BUOY', INDETERMINATE) -userdefined = getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcNavigationElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +beacon = IfcNavigationElementTypeEnum.BEACON +buoy = IfcNavigationElementTypeEnum.BUOY +userdefined = IfcNavigationElementTypeEnum.USERDEFINED +notdefined = IfcNavigationElementTypeEnum.NOTDEFINED IfcObjectTypeEnum = enum_namespace() -product = getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE) -process = getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE) -control = getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE) -resource = getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE) -actor = getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE) -group = getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE) -project = getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE) -notdefined = getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE) +product = IfcObjectTypeEnum.PRODUCT +process = IfcObjectTypeEnum.PROCESS +control = IfcObjectTypeEnum.CONTROL +resource = IfcObjectTypeEnum.RESOURCE +actor = IfcObjectTypeEnum.ACTOR +group = IfcObjectTypeEnum.GROUP +project = IfcObjectTypeEnum.PROJECT +notdefined = IfcObjectTypeEnum.NOTDEFINED IfcObjectiveEnum = enum_namespace() -codecompliance = getattr(IfcObjectiveEnum, 'CODECOMPLIANCE', INDETERMINATE) -codewaiver = getattr(IfcObjectiveEnum, 'CODEWAIVER', INDETERMINATE) -designintent = getattr(IfcObjectiveEnum, 'DESIGNINTENT', INDETERMINATE) -external = getattr(IfcObjectiveEnum, 'EXTERNAL', INDETERMINATE) -healthandsafety = getattr(IfcObjectiveEnum, 'HEALTHANDSAFETY', INDETERMINATE) -mergeconflict = getattr(IfcObjectiveEnum, 'MERGECONFLICT', INDETERMINATE) -modelview = getattr(IfcObjectiveEnum, 'MODELVIEW', INDETERMINATE) -parameter = getattr(IfcObjectiveEnum, 'PARAMETER', INDETERMINATE) -requirement = getattr(IfcObjectiveEnum, 'REQUIREMENT', INDETERMINATE) -specification = getattr(IfcObjectiveEnum, 'SPECIFICATION', INDETERMINATE) -triggercondition = getattr(IfcObjectiveEnum, 'TRIGGERCONDITION', INDETERMINATE) -userdefined = getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcObjectiveEnum, 'NOTDEFINED', INDETERMINATE) +codecompliance = IfcObjectiveEnum.CODECOMPLIANCE +codewaiver = IfcObjectiveEnum.CODEWAIVER +designintent = IfcObjectiveEnum.DESIGNINTENT +external = IfcObjectiveEnum.EXTERNAL +healthandsafety = IfcObjectiveEnum.HEALTHANDSAFETY +mergeconflict = IfcObjectiveEnum.MERGECONFLICT +modelview = IfcObjectiveEnum.MODELVIEW +parameter = IfcObjectiveEnum.PARAMETER +requirement = IfcObjectiveEnum.REQUIREMENT +specification = IfcObjectiveEnum.SPECIFICATION +triggercondition = IfcObjectiveEnum.TRIGGERCONDITION +userdefined = IfcObjectiveEnum.USERDEFINED +notdefined = IfcObjectiveEnum.NOTDEFINED IfcOccupantTypeEnum = enum_namespace() -assignee = getattr(IfcOccupantTypeEnum, 'ASSIGNEE', INDETERMINATE) -assignor = getattr(IfcOccupantTypeEnum, 'ASSIGNOR', INDETERMINATE) -lessee = getattr(IfcOccupantTypeEnum, 'LESSEE', INDETERMINATE) -lessor = getattr(IfcOccupantTypeEnum, 'LESSOR', INDETERMINATE) -lettingagent = getattr(IfcOccupantTypeEnum, 'LETTINGAGENT', INDETERMINATE) -owner = getattr(IfcOccupantTypeEnum, 'OWNER', INDETERMINATE) -tenant = getattr(IfcOccupantTypeEnum, 'TENANT', INDETERMINATE) -userdefined = getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOccupantTypeEnum, 'NOTDEFINED', INDETERMINATE) +assignee = IfcOccupantTypeEnum.ASSIGNEE +assignor = IfcOccupantTypeEnum.ASSIGNOR +lessee = IfcOccupantTypeEnum.LESSEE +lessor = IfcOccupantTypeEnum.LESSOR +lettingagent = IfcOccupantTypeEnum.LETTINGAGENT +owner = IfcOccupantTypeEnum.OWNER +tenant = IfcOccupantTypeEnum.TENANT +userdefined = IfcOccupantTypeEnum.USERDEFINED +notdefined = IfcOccupantTypeEnum.NOTDEFINED IfcOpeningElementTypeEnum = enum_namespace() -opening = getattr(IfcOpeningElementTypeEnum, 'OPENING', INDETERMINATE) -recess = getattr(IfcOpeningElementTypeEnum, 'RECESS', INDETERMINATE) -userdefined = getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOpeningElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +opening = IfcOpeningElementTypeEnum.OPENING +recess = IfcOpeningElementTypeEnum.RECESS +userdefined = IfcOpeningElementTypeEnum.USERDEFINED +notdefined = IfcOpeningElementTypeEnum.NOTDEFINED IfcOutletTypeEnum = enum_namespace() -audiovisualoutlet = getattr(IfcOutletTypeEnum, 'AUDIOVISUALOUTLET', INDETERMINATE) -communicationsoutlet = getattr(IfcOutletTypeEnum, 'COMMUNICATIONSOUTLET', INDETERMINATE) -poweroutlet = getattr(IfcOutletTypeEnum, 'POWEROUTLET', INDETERMINATE) -dataoutlet = getattr(IfcOutletTypeEnum, 'DATAOUTLET', INDETERMINATE) -telephoneoutlet = getattr(IfcOutletTypeEnum, 'TELEPHONEOUTLET', INDETERMINATE) -userdefined = getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOutletTypeEnum, 'NOTDEFINED', INDETERMINATE) +audiovisualoutlet = IfcOutletTypeEnum.AUDIOVISUALOUTLET +communicationsoutlet = IfcOutletTypeEnum.COMMUNICATIONSOUTLET +poweroutlet = IfcOutletTypeEnum.POWEROUTLET +dataoutlet = IfcOutletTypeEnum.DATAOUTLET +telephoneoutlet = IfcOutletTypeEnum.TELEPHONEOUTLET +userdefined = IfcOutletTypeEnum.USERDEFINED +notdefined = IfcOutletTypeEnum.NOTDEFINED IfcPavementTypeEnum = enum_namespace() -flexible = getattr(IfcPavementTypeEnum, 'FLEXIBLE', INDETERMINATE) -rigid = getattr(IfcPavementTypeEnum, 'RIGID', INDETERMINATE) -userdefined = getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPavementTypeEnum, 'NOTDEFINED', INDETERMINATE) +flexible = IfcPavementTypeEnum.FLEXIBLE +rigid = IfcPavementTypeEnum.RIGID +userdefined = IfcPavementTypeEnum.USERDEFINED +notdefined = IfcPavementTypeEnum.NOTDEFINED IfcPerformanceHistoryTypeEnum = enum_namespace() -userdefined = getattr(IfcPerformanceHistoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPerformanceHistoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcPerformanceHistoryTypeEnum.USERDEFINED +notdefined = IfcPerformanceHistoryTypeEnum.NOTDEFINED IfcPermeableCoveringOperationEnum = enum_namespace() -grill = getattr(IfcPermeableCoveringOperationEnum, 'GRILL', INDETERMINATE) -louver = getattr(IfcPermeableCoveringOperationEnum, 'LOUVER', INDETERMINATE) -screen = getattr(IfcPermeableCoveringOperationEnum, 'SCREEN', INDETERMINATE) -userdefined = getattr(IfcPermeableCoveringOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPermeableCoveringOperationEnum, 'NOTDEFINED', INDETERMINATE) +grill = IfcPermeableCoveringOperationEnum.GRILL +louver = IfcPermeableCoveringOperationEnum.LOUVER +screen = IfcPermeableCoveringOperationEnum.SCREEN +userdefined = IfcPermeableCoveringOperationEnum.USERDEFINED +notdefined = IfcPermeableCoveringOperationEnum.NOTDEFINED IfcPermitTypeEnum = enum_namespace() -access = getattr(IfcPermitTypeEnum, 'ACCESS', INDETERMINATE) -building = getattr(IfcPermitTypeEnum, 'BUILDING', INDETERMINATE) -work = getattr(IfcPermitTypeEnum, 'WORK', INDETERMINATE) -userdefined = getattr(IfcPermitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPermitTypeEnum, 'NOTDEFINED', INDETERMINATE) +access = IfcPermitTypeEnum.ACCESS +building = IfcPermitTypeEnum.BUILDING +work = IfcPermitTypeEnum.WORK +userdefined = IfcPermitTypeEnum.USERDEFINED +notdefined = IfcPermitTypeEnum.NOTDEFINED IfcPhysicalOrVirtualEnum = enum_namespace() -physical = getattr(IfcPhysicalOrVirtualEnum, 'PHYSICAL', INDETERMINATE) -virtual = getattr(IfcPhysicalOrVirtualEnum, 'VIRTUAL', INDETERMINATE) -notdefined = getattr(IfcPhysicalOrVirtualEnum, 'NOTDEFINED', INDETERMINATE) +physical = IfcPhysicalOrVirtualEnum.PHYSICAL +virtual = IfcPhysicalOrVirtualEnum.VIRTUAL +notdefined = IfcPhysicalOrVirtualEnum.NOTDEFINED IfcPileConstructionEnum = enum_namespace() -cast_in_place = getattr(IfcPileConstructionEnum, 'CAST_IN_PLACE', INDETERMINATE) -composite = getattr(IfcPileConstructionEnum, 'COMPOSITE', INDETERMINATE) -precast_concrete = getattr(IfcPileConstructionEnum, 'PRECAST_CONCRETE', INDETERMINATE) -prefab_steel = getattr(IfcPileConstructionEnum, 'PREFAB_STEEL', INDETERMINATE) -userdefined = getattr(IfcPileConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPileConstructionEnum, 'NOTDEFINED', INDETERMINATE) +cast_in_place = IfcPileConstructionEnum.CAST_IN_PLACE +composite = IfcPileConstructionEnum.COMPOSITE +precast_concrete = IfcPileConstructionEnum.PRECAST_CONCRETE +prefab_steel = IfcPileConstructionEnum.PREFAB_STEEL +userdefined = IfcPileConstructionEnum.USERDEFINED +notdefined = IfcPileConstructionEnum.NOTDEFINED IfcPileTypeEnum = enum_namespace() -bored = getattr(IfcPileTypeEnum, 'BORED', INDETERMINATE) -driven = getattr(IfcPileTypeEnum, 'DRIVEN', INDETERMINATE) -jetgrouting = getattr(IfcPileTypeEnum, 'JETGROUTING', INDETERMINATE) -cohesion = getattr(IfcPileTypeEnum, 'COHESION', INDETERMINATE) -friction = getattr(IfcPileTypeEnum, 'FRICTION', INDETERMINATE) -support = getattr(IfcPileTypeEnum, 'SUPPORT', INDETERMINATE) -userdefined = getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPileTypeEnum, 'NOTDEFINED', INDETERMINATE) +bored = IfcPileTypeEnum.BORED +driven = IfcPileTypeEnum.DRIVEN +jetgrouting = IfcPileTypeEnum.JETGROUTING +cohesion = IfcPileTypeEnum.COHESION +friction = IfcPileTypeEnum.FRICTION +support = IfcPileTypeEnum.SUPPORT +userdefined = IfcPileTypeEnum.USERDEFINED +notdefined = IfcPileTypeEnum.NOTDEFINED IfcPipeFittingTypeEnum = enum_namespace() -bend = getattr(IfcPipeFittingTypeEnum, 'BEND', INDETERMINATE) -connector = getattr(IfcPipeFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcPipeFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcPipeFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcPipeFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = getattr(IfcPipeFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = getattr(IfcPipeFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPipeFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcPipeFittingTypeEnum.BEND +connector = IfcPipeFittingTypeEnum.CONNECTOR +entry = IfcPipeFittingTypeEnum.ENTRY +exit = IfcPipeFittingTypeEnum.EXIT +junction = IfcPipeFittingTypeEnum.JUNCTION +obstruction = IfcPipeFittingTypeEnum.OBSTRUCTION +transition = IfcPipeFittingTypeEnum.TRANSITION +userdefined = IfcPipeFittingTypeEnum.USERDEFINED +notdefined = IfcPipeFittingTypeEnum.NOTDEFINED IfcPipeSegmentTypeEnum = enum_namespace() -culvert = getattr(IfcPipeSegmentTypeEnum, 'CULVERT', INDETERMINATE) -flexiblesegment = getattr(IfcPipeSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -rigidsegment = getattr(IfcPipeSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -gutter = getattr(IfcPipeSegmentTypeEnum, 'GUTTER', INDETERMINATE) -spool = getattr(IfcPipeSegmentTypeEnum, 'SPOOL', INDETERMINATE) -userdefined = getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPipeSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +culvert = IfcPipeSegmentTypeEnum.CULVERT +flexiblesegment = IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT +rigidsegment = IfcPipeSegmentTypeEnum.RIGIDSEGMENT +gutter = IfcPipeSegmentTypeEnum.GUTTER +spool = IfcPipeSegmentTypeEnum.SPOOL +userdefined = IfcPipeSegmentTypeEnum.USERDEFINED +notdefined = IfcPipeSegmentTypeEnum.NOTDEFINED IfcPlateTypeEnum = enum_namespace() -curtain_panel = getattr(IfcPlateTypeEnum, 'CURTAIN_PANEL', INDETERMINATE) -sheet = getattr(IfcPlateTypeEnum, 'SHEET', INDETERMINATE) -flange_plate = getattr(IfcPlateTypeEnum, 'FLANGE_PLATE', INDETERMINATE) -web_plate = getattr(IfcPlateTypeEnum, 'WEB_PLATE', INDETERMINATE) -stiffener_plate = getattr(IfcPlateTypeEnum, 'STIFFENER_PLATE', INDETERMINATE) -gusset_plate = getattr(IfcPlateTypeEnum, 'GUSSET_PLATE', INDETERMINATE) -cover_plate = getattr(IfcPlateTypeEnum, 'COVER_PLATE', INDETERMINATE) -splice_plate = getattr(IfcPlateTypeEnum, 'SPLICE_PLATE', INDETERMINATE) -base_plate = getattr(IfcPlateTypeEnum, 'BASE_PLATE', INDETERMINATE) -userdefined = getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPlateTypeEnum, 'NOTDEFINED', INDETERMINATE) +curtain_panel = IfcPlateTypeEnum.CURTAIN_PANEL +sheet = IfcPlateTypeEnum.SHEET +flange_plate = IfcPlateTypeEnum.FLANGE_PLATE +web_plate = IfcPlateTypeEnum.WEB_PLATE +stiffener_plate = IfcPlateTypeEnum.STIFFENER_PLATE +gusset_plate = IfcPlateTypeEnum.GUSSET_PLATE +cover_plate = IfcPlateTypeEnum.COVER_PLATE +splice_plate = IfcPlateTypeEnum.SPLICE_PLATE +base_plate = IfcPlateTypeEnum.BASE_PLATE +userdefined = IfcPlateTypeEnum.USERDEFINED +notdefined = IfcPlateTypeEnum.NOTDEFINED IfcPreferredSurfaceCurveRepresentation = enum_namespace() -curve3d = getattr(IfcPreferredSurfaceCurveRepresentation, 'CURVE3D', INDETERMINATE) -pcurve_s1 = getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S1', INDETERMINATE) -pcurve_s2 = getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S2', INDETERMINATE) +curve3d = IfcPreferredSurfaceCurveRepresentation.CURVE3D +pcurve_s1 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 +pcurve_s2 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 IfcProcedureTypeEnum = enum_namespace() -advice_caution = getattr(IfcProcedureTypeEnum, 'ADVICE_CAUTION', INDETERMINATE) -advice_note = getattr(IfcProcedureTypeEnum, 'ADVICE_NOTE', INDETERMINATE) -advice_warning = getattr(IfcProcedureTypeEnum, 'ADVICE_WARNING', INDETERMINATE) -calibration = getattr(IfcProcedureTypeEnum, 'CALIBRATION', INDETERMINATE) -diagnostic = getattr(IfcProcedureTypeEnum, 'DIAGNOSTIC', INDETERMINATE) -shutdown = getattr(IfcProcedureTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = getattr(IfcProcedureTypeEnum, 'STARTUP', INDETERMINATE) -userdefined = getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProcedureTypeEnum, 'NOTDEFINED', INDETERMINATE) +advice_caution = IfcProcedureTypeEnum.ADVICE_CAUTION +advice_note = IfcProcedureTypeEnum.ADVICE_NOTE +advice_warning = IfcProcedureTypeEnum.ADVICE_WARNING +calibration = IfcProcedureTypeEnum.CALIBRATION +diagnostic = IfcProcedureTypeEnum.DIAGNOSTIC +shutdown = IfcProcedureTypeEnum.SHUTDOWN +startup = IfcProcedureTypeEnum.STARTUP +userdefined = IfcProcedureTypeEnum.USERDEFINED +notdefined = IfcProcedureTypeEnum.NOTDEFINED IfcProfileTypeEnum = enum_namespace() -curve = getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE) -area = getattr(IfcProfileTypeEnum, 'AREA', INDETERMINATE) +curve = IfcProfileTypeEnum.CURVE +area = IfcProfileTypeEnum.AREA IfcProjectOrderTypeEnum = enum_namespace() -changeorder = getattr(IfcProjectOrderTypeEnum, 'CHANGEORDER', INDETERMINATE) -maintenanceworkorder = getattr(IfcProjectOrderTypeEnum, 'MAINTENANCEWORKORDER', INDETERMINATE) -moveorder = getattr(IfcProjectOrderTypeEnum, 'MOVEORDER', INDETERMINATE) -purchaseorder = getattr(IfcProjectOrderTypeEnum, 'PURCHASEORDER', INDETERMINATE) -workorder = getattr(IfcProjectOrderTypeEnum, 'WORKORDER', INDETERMINATE) -userdefined = getattr(IfcProjectOrderTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProjectOrderTypeEnum, 'NOTDEFINED', INDETERMINATE) +changeorder = IfcProjectOrderTypeEnum.CHANGEORDER +maintenanceworkorder = IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER +moveorder = IfcProjectOrderTypeEnum.MOVEORDER +purchaseorder = IfcProjectOrderTypeEnum.PURCHASEORDER +workorder = IfcProjectOrderTypeEnum.WORKORDER +userdefined = IfcProjectOrderTypeEnum.USERDEFINED +notdefined = IfcProjectOrderTypeEnum.NOTDEFINED IfcProjectedOrTrueLengthEnum = enum_namespace() -projected_length = getattr(IfcProjectedOrTrueLengthEnum, 'PROJECTED_LENGTH', INDETERMINATE) -true_length = getattr(IfcProjectedOrTrueLengthEnum, 'TRUE_LENGTH', INDETERMINATE) +projected_length = IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH +true_length = IfcProjectedOrTrueLengthEnum.TRUE_LENGTH IfcProjectionElementTypeEnum = enum_namespace() -blister = getattr(IfcProjectionElementTypeEnum, 'BLISTER', INDETERMINATE) -deviator = getattr(IfcProjectionElementTypeEnum, 'DEVIATOR', INDETERMINATE) -userdefined = getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProjectionElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +blister = IfcProjectionElementTypeEnum.BLISTER +deviator = IfcProjectionElementTypeEnum.DEVIATOR +userdefined = IfcProjectionElementTypeEnum.USERDEFINED +notdefined = IfcProjectionElementTypeEnum.NOTDEFINED IfcPropertySetTemplateTypeEnum = enum_namespace() -pset_typedrivenonly = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENONLY', INDETERMINATE) -pset_typedrivenoverride = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENOVERRIDE', INDETERMINATE) -pset_occurrencedriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_OCCURRENCEDRIVEN', INDETERMINATE) -pset_performancedriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PERFORMANCEDRIVEN', INDETERMINATE) -qto_typedrivenonly = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENONLY', INDETERMINATE) -qto_typedrivenoverride = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENOVERRIDE', INDETERMINATE) -qto_occurrencedriven = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_OCCURRENCEDRIVEN', INDETERMINATE) -notdefined = getattr(IfcPropertySetTemplateTypeEnum, 'NOTDEFINED', INDETERMINATE) +pset_typedrivenonly = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY +pset_typedrivenoverride = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE +pset_occurrencedriven = IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN +pset_performancedriven = IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN +qto_typedrivenonly = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY +qto_typedrivenoverride = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE +qto_occurrencedriven = IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN +notdefined = IfcPropertySetTemplateTypeEnum.NOTDEFINED IfcProtectiveDeviceTrippingUnitTypeEnum = enum_namespace() -electronic = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTRONIC', INDETERMINATE) -electromagnetic = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTROMAGNETIC', INDETERMINATE) -residualcurrent = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'RESIDUALCURRENT', INDETERMINATE) -thermal = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'THERMAL', INDETERMINATE) -userdefined = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC +electromagnetic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC +residualcurrent = IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT +thermal = IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL +userdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED IfcProtectiveDeviceTypeEnum = enum_namespace() -circuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'CIRCUITBREAKER', INDETERMINATE) -earthleakagecircuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'EARTHLEAKAGECIRCUITBREAKER', INDETERMINATE) -earthingswitch = getattr(IfcProtectiveDeviceTypeEnum, 'EARTHINGSWITCH', INDETERMINATE) -fusedisconnector = getattr(IfcProtectiveDeviceTypeEnum, 'FUSEDISCONNECTOR', INDETERMINATE) -residualcurrentcircuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTCIRCUITBREAKER', INDETERMINATE) -residualcurrentswitch = getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTSWITCH', INDETERMINATE) -varistor = getattr(IfcProtectiveDeviceTypeEnum, 'VARISTOR', INDETERMINATE) -anti_arcing_device = getattr(IfcProtectiveDeviceTypeEnum, 'ANTI_ARCING_DEVICE', INDETERMINATE) -sparkgap = getattr(IfcProtectiveDeviceTypeEnum, 'SPARKGAP', INDETERMINATE) -voltagelimiter = getattr(IfcProtectiveDeviceTypeEnum, 'VOLTAGELIMITER', INDETERMINATE) -userdefined = getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProtectiveDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +circuitbreaker = IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER +earthleakagecircuitbreaker = IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER +earthingswitch = IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH +fusedisconnector = IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR +residualcurrentcircuitbreaker = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER +residualcurrentswitch = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH +varistor = IfcProtectiveDeviceTypeEnum.VARISTOR +anti_arcing_device = IfcProtectiveDeviceTypeEnum.ANTI_ARCING_DEVICE +sparkgap = IfcProtectiveDeviceTypeEnum.SPARKGAP +voltagelimiter = IfcProtectiveDeviceTypeEnum.VOLTAGELIMITER +userdefined = IfcProtectiveDeviceTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTypeEnum.NOTDEFINED IfcPumpTypeEnum = enum_namespace() -circulator = getattr(IfcPumpTypeEnum, 'CIRCULATOR', INDETERMINATE) -endsuction = getattr(IfcPumpTypeEnum, 'ENDSUCTION', INDETERMINATE) -splitcase = getattr(IfcPumpTypeEnum, 'SPLITCASE', INDETERMINATE) -submersiblepump = getattr(IfcPumpTypeEnum, 'SUBMERSIBLEPUMP', INDETERMINATE) -sumppump = getattr(IfcPumpTypeEnum, 'SUMPPUMP', INDETERMINATE) -verticalinline = getattr(IfcPumpTypeEnum, 'VERTICALINLINE', INDETERMINATE) -verticalturbine = getattr(IfcPumpTypeEnum, 'VERTICALTURBINE', INDETERMINATE) -userdefined = getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPumpTypeEnum, 'NOTDEFINED', INDETERMINATE) +circulator = IfcPumpTypeEnum.CIRCULATOR +endsuction = IfcPumpTypeEnum.ENDSUCTION +splitcase = IfcPumpTypeEnum.SPLITCASE +submersiblepump = IfcPumpTypeEnum.SUBMERSIBLEPUMP +sumppump = IfcPumpTypeEnum.SUMPPUMP +verticalinline = IfcPumpTypeEnum.VERTICALINLINE +verticalturbine = IfcPumpTypeEnum.VERTICALTURBINE +userdefined = IfcPumpTypeEnum.USERDEFINED +notdefined = IfcPumpTypeEnum.NOTDEFINED IfcRailTypeEnum = enum_namespace() -rackrail = getattr(IfcRailTypeEnum, 'RACKRAIL', INDETERMINATE) -blade = getattr(IfcRailTypeEnum, 'BLADE', INDETERMINATE) -guardrail = getattr(IfcRailTypeEnum, 'GUARDRAIL', INDETERMINATE) -stockrail = getattr(IfcRailTypeEnum, 'STOCKRAIL', INDETERMINATE) -checkrail = getattr(IfcRailTypeEnum, 'CHECKRAIL', INDETERMINATE) -rail = getattr(IfcRailTypeEnum, 'RAIL', INDETERMINATE) -userdefined = getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailTypeEnum, 'NOTDEFINED', INDETERMINATE) +rackrail = IfcRailTypeEnum.RACKRAIL +blade = IfcRailTypeEnum.BLADE +guardrail = IfcRailTypeEnum.GUARDRAIL +stockrail = IfcRailTypeEnum.STOCKRAIL +checkrail = IfcRailTypeEnum.CHECKRAIL +rail = IfcRailTypeEnum.RAIL +userdefined = IfcRailTypeEnum.USERDEFINED +notdefined = IfcRailTypeEnum.NOTDEFINED IfcRailingTypeEnum = enum_namespace() -handrail = getattr(IfcRailingTypeEnum, 'HANDRAIL', INDETERMINATE) -guardrail = getattr(IfcRailingTypeEnum, 'GUARDRAIL', INDETERMINATE) -balustrade = getattr(IfcRailingTypeEnum, 'BALUSTRADE', INDETERMINATE) -fence = getattr(IfcRailingTypeEnum, 'FENCE', INDETERMINATE) -userdefined = getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailingTypeEnum, 'NOTDEFINED', INDETERMINATE) +handrail = IfcRailingTypeEnum.HANDRAIL +guardrail = IfcRailingTypeEnum.GUARDRAIL +balustrade = IfcRailingTypeEnum.BALUSTRADE +fence = IfcRailingTypeEnum.FENCE +userdefined = IfcRailingTypeEnum.USERDEFINED +notdefined = IfcRailingTypeEnum.NOTDEFINED IfcRailwayPartTypeEnum = enum_namespace() -trackstructure = getattr(IfcRailwayPartTypeEnum, 'TRACKSTRUCTURE', INDETERMINATE) -trackstructurepart = getattr(IfcRailwayPartTypeEnum, 'TRACKSTRUCTUREPART', INDETERMINATE) -linesidestructurepart = getattr(IfcRailwayPartTypeEnum, 'LINESIDESTRUCTUREPART', INDETERMINATE) -dilatationsuperstructure = getattr(IfcRailwayPartTypeEnum, 'DILATATIONSUPERSTRUCTURE', INDETERMINATE) -plaintracksupestructure = getattr(IfcRailwayPartTypeEnum, 'PLAINTRACKSUPESTRUCTURE', INDETERMINATE) -linesidestructure = getattr(IfcRailwayPartTypeEnum, 'LINESIDESTRUCTURE', INDETERMINATE) -superstructure = getattr(IfcRailwayPartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -turnoutsuperstructure = getattr(IfcRailwayPartTypeEnum, 'TURNOUTSUPERSTRUCTURE', INDETERMINATE) -userdefined = getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailwayPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +trackstructure = IfcRailwayPartTypeEnum.TRACKSTRUCTURE +trackstructurepart = IfcRailwayPartTypeEnum.TRACKSTRUCTUREPART +linesidestructurepart = IfcRailwayPartTypeEnum.LINESIDESTRUCTUREPART +dilatationsuperstructure = IfcRailwayPartTypeEnum.DILATATIONSUPERSTRUCTURE +plaintracksupestructure = IfcRailwayPartTypeEnum.PLAINTRACKSUPESTRUCTURE +linesidestructure = IfcRailwayPartTypeEnum.LINESIDESTRUCTURE +superstructure = IfcRailwayPartTypeEnum.SUPERSTRUCTURE +turnoutsuperstructure = IfcRailwayPartTypeEnum.TURNOUTSUPERSTRUCTURE +userdefined = IfcRailwayPartTypeEnum.USERDEFINED +notdefined = IfcRailwayPartTypeEnum.NOTDEFINED IfcRailwayTypeEnum = enum_namespace() -userdefined = getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailwayTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcRailwayTypeEnum.USERDEFINED +notdefined = IfcRailwayTypeEnum.NOTDEFINED IfcRampFlightTypeEnum = enum_namespace() -straight = getattr(IfcRampFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -spiral = getattr(IfcRampFlightTypeEnum, 'SPIRAL', INDETERMINATE) -userdefined = getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRampFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcRampFlightTypeEnum.STRAIGHT +spiral = IfcRampFlightTypeEnum.SPIRAL +userdefined = IfcRampFlightTypeEnum.USERDEFINED +notdefined = IfcRampFlightTypeEnum.NOTDEFINED IfcRampTypeEnum = enum_namespace() -straight_run_ramp = getattr(IfcRampTypeEnum, 'STRAIGHT_RUN_RAMP', INDETERMINATE) -two_straight_run_ramp = getattr(IfcRampTypeEnum, 'TWO_STRAIGHT_RUN_RAMP', INDETERMINATE) -quarter_turn_ramp = getattr(IfcRampTypeEnum, 'QUARTER_TURN_RAMP', INDETERMINATE) -two_quarter_turn_ramp = getattr(IfcRampTypeEnum, 'TWO_QUARTER_TURN_RAMP', INDETERMINATE) -half_turn_ramp = getattr(IfcRampTypeEnum, 'HALF_TURN_RAMP', INDETERMINATE) -spiral_ramp = getattr(IfcRampTypeEnum, 'SPIRAL_RAMP', INDETERMINATE) -userdefined = getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRampTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_ramp = IfcRampTypeEnum.STRAIGHT_RUN_RAMP +two_straight_run_ramp = IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP +quarter_turn_ramp = IfcRampTypeEnum.QUARTER_TURN_RAMP +two_quarter_turn_ramp = IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP +half_turn_ramp = IfcRampTypeEnum.HALF_TURN_RAMP +spiral_ramp = IfcRampTypeEnum.SPIRAL_RAMP +userdefined = IfcRampTypeEnum.USERDEFINED +notdefined = IfcRampTypeEnum.NOTDEFINED IfcRecurrenceTypeEnum = enum_namespace() -daily = getattr(IfcRecurrenceTypeEnum, 'DAILY', INDETERMINATE) -weekly = getattr(IfcRecurrenceTypeEnum, 'WEEKLY', INDETERMINATE) -monthly_by_day_of_month = getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_DAY_OF_MONTH', INDETERMINATE) -monthly_by_position = getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_POSITION', INDETERMINATE) -by_day_count = getattr(IfcRecurrenceTypeEnum, 'BY_DAY_COUNT', INDETERMINATE) -by_weekday_count = getattr(IfcRecurrenceTypeEnum, 'BY_WEEKDAY_COUNT', INDETERMINATE) -yearly_by_day_of_month = getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_DAY_OF_MONTH', INDETERMINATE) -yearly_by_position = getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_POSITION', INDETERMINATE) +daily = IfcRecurrenceTypeEnum.DAILY +weekly = IfcRecurrenceTypeEnum.WEEKLY +monthly_by_day_of_month = IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH +monthly_by_position = IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION +by_day_count = IfcRecurrenceTypeEnum.BY_DAY_COUNT +by_weekday_count = IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT +yearly_by_day_of_month = IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH +yearly_by_position = IfcRecurrenceTypeEnum.YEARLY_BY_POSITION IfcReferentTypeEnum = enum_namespace() -kilopoint = getattr(IfcReferentTypeEnum, 'KILOPOINT', INDETERMINATE) -milepoint = getattr(IfcReferentTypeEnum, 'MILEPOINT', INDETERMINATE) -station = getattr(IfcReferentTypeEnum, 'STATION', INDETERMINATE) -referencemarker = getattr(IfcReferentTypeEnum, 'REFERENCEMARKER', INDETERMINATE) -userdefined = getattr(IfcReferentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReferentTypeEnum, 'NOTDEFINED', INDETERMINATE) +kilopoint = IfcReferentTypeEnum.KILOPOINT +milepoint = IfcReferentTypeEnum.MILEPOINT +station = IfcReferentTypeEnum.STATION +referencemarker = IfcReferentTypeEnum.REFERENCEMARKER +userdefined = IfcReferentTypeEnum.USERDEFINED +notdefined = IfcReferentTypeEnum.NOTDEFINED IfcReflectanceMethodEnum = enum_namespace() -blinn = getattr(IfcReflectanceMethodEnum, 'BLINN', INDETERMINATE) -flat = getattr(IfcReflectanceMethodEnum, 'FLAT', INDETERMINATE) -glass = getattr(IfcReflectanceMethodEnum, 'GLASS', INDETERMINATE) -matt = getattr(IfcReflectanceMethodEnum, 'MATT', INDETERMINATE) -metal = getattr(IfcReflectanceMethodEnum, 'METAL', INDETERMINATE) -mirror = getattr(IfcReflectanceMethodEnum, 'MIRROR', INDETERMINATE) -phong = getattr(IfcReflectanceMethodEnum, 'PHONG', INDETERMINATE) -plastic = getattr(IfcReflectanceMethodEnum, 'PLASTIC', INDETERMINATE) -strauss = getattr(IfcReflectanceMethodEnum, 'STRAUSS', INDETERMINATE) -notdefined = getattr(IfcReflectanceMethodEnum, 'NOTDEFINED', INDETERMINATE) +blinn = IfcReflectanceMethodEnum.BLINN +flat = IfcReflectanceMethodEnum.FLAT +glass = IfcReflectanceMethodEnum.GLASS +matt = IfcReflectanceMethodEnum.MATT +metal = IfcReflectanceMethodEnum.METAL +mirror = IfcReflectanceMethodEnum.MIRROR +phong = IfcReflectanceMethodEnum.PHONG +plastic = IfcReflectanceMethodEnum.PLASTIC +strauss = IfcReflectanceMethodEnum.STRAUSS +notdefined = IfcReflectanceMethodEnum.NOTDEFINED IfcReinforcedSoilTypeEnum = enum_namespace() -surchargepreloaded = getattr(IfcReinforcedSoilTypeEnum, 'SURCHARGEPRELOADED', INDETERMINATE) -verticallydrained = getattr(IfcReinforcedSoilTypeEnum, 'VERTICALLYDRAINED', INDETERMINATE) -dynamicallycompacted = getattr(IfcReinforcedSoilTypeEnum, 'DYNAMICALLYCOMPACTED', INDETERMINATE) -replaced = getattr(IfcReinforcedSoilTypeEnum, 'REPLACED', INDETERMINATE) -rollercompacted = getattr(IfcReinforcedSoilTypeEnum, 'ROLLERCOMPACTED', INDETERMINATE) -grouted = getattr(IfcReinforcedSoilTypeEnum, 'GROUTED', INDETERMINATE) -userdefined = getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcedSoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +surchargepreloaded = IfcReinforcedSoilTypeEnum.SURCHARGEPRELOADED +verticallydrained = IfcReinforcedSoilTypeEnum.VERTICALLYDRAINED +dynamicallycompacted = IfcReinforcedSoilTypeEnum.DYNAMICALLYCOMPACTED +replaced = IfcReinforcedSoilTypeEnum.REPLACED +rollercompacted = IfcReinforcedSoilTypeEnum.ROLLERCOMPACTED +grouted = IfcReinforcedSoilTypeEnum.GROUTED +userdefined = IfcReinforcedSoilTypeEnum.USERDEFINED +notdefined = IfcReinforcedSoilTypeEnum.NOTDEFINED IfcReinforcingBarRoleEnum = enum_namespace() -main = getattr(IfcReinforcingBarRoleEnum, 'MAIN', INDETERMINATE) -shear = getattr(IfcReinforcingBarRoleEnum, 'SHEAR', INDETERMINATE) -ligature = getattr(IfcReinforcingBarRoleEnum, 'LIGATURE', INDETERMINATE) -stud = getattr(IfcReinforcingBarRoleEnum, 'STUD', INDETERMINATE) -punching = getattr(IfcReinforcingBarRoleEnum, 'PUNCHING', INDETERMINATE) -edge = getattr(IfcReinforcingBarRoleEnum, 'EDGE', INDETERMINATE) -ring = getattr(IfcReinforcingBarRoleEnum, 'RING', INDETERMINATE) -anchoring = getattr(IfcReinforcingBarRoleEnum, 'ANCHORING', INDETERMINATE) -userdefined = getattr(IfcReinforcingBarRoleEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingBarRoleEnum, 'NOTDEFINED', INDETERMINATE) +main = IfcReinforcingBarRoleEnum.MAIN +shear = IfcReinforcingBarRoleEnum.SHEAR +ligature = IfcReinforcingBarRoleEnum.LIGATURE +stud = IfcReinforcingBarRoleEnum.STUD +punching = IfcReinforcingBarRoleEnum.PUNCHING +edge = IfcReinforcingBarRoleEnum.EDGE +ring = IfcReinforcingBarRoleEnum.RING +anchoring = IfcReinforcingBarRoleEnum.ANCHORING +userdefined = IfcReinforcingBarRoleEnum.USERDEFINED +notdefined = IfcReinforcingBarRoleEnum.NOTDEFINED IfcReinforcingBarSurfaceEnum = enum_namespace() -plain = getattr(IfcReinforcingBarSurfaceEnum, 'PLAIN', INDETERMINATE) -textured = getattr(IfcReinforcingBarSurfaceEnum, 'TEXTURED', INDETERMINATE) +plain = IfcReinforcingBarSurfaceEnum.PLAIN +textured = IfcReinforcingBarSurfaceEnum.TEXTURED IfcReinforcingBarTypeEnum = enum_namespace() -anchoring = getattr(IfcReinforcingBarTypeEnum, 'ANCHORING', INDETERMINATE) -edge = getattr(IfcReinforcingBarTypeEnum, 'EDGE', INDETERMINATE) -ligature = getattr(IfcReinforcingBarTypeEnum, 'LIGATURE', INDETERMINATE) -main = getattr(IfcReinforcingBarTypeEnum, 'MAIN', INDETERMINATE) -punching = getattr(IfcReinforcingBarTypeEnum, 'PUNCHING', INDETERMINATE) -ring = getattr(IfcReinforcingBarTypeEnum, 'RING', INDETERMINATE) -shear = getattr(IfcReinforcingBarTypeEnum, 'SHEAR', INDETERMINATE) -stud = getattr(IfcReinforcingBarTypeEnum, 'STUD', INDETERMINATE) -spacebar = getattr(IfcReinforcingBarTypeEnum, 'SPACEBAR', INDETERMINATE) -userdefined = getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingBarTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarTypeEnum.ANCHORING +edge = IfcReinforcingBarTypeEnum.EDGE +ligature = IfcReinforcingBarTypeEnum.LIGATURE +main = IfcReinforcingBarTypeEnum.MAIN +punching = IfcReinforcingBarTypeEnum.PUNCHING +ring = IfcReinforcingBarTypeEnum.RING +shear = IfcReinforcingBarTypeEnum.SHEAR +stud = IfcReinforcingBarTypeEnum.STUD +spacebar = IfcReinforcingBarTypeEnum.SPACEBAR +userdefined = IfcReinforcingBarTypeEnum.USERDEFINED +notdefined = IfcReinforcingBarTypeEnum.NOTDEFINED IfcReinforcingMeshTypeEnum = enum_namespace() -userdefined = getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingMeshTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcReinforcingMeshTypeEnum.USERDEFINED +notdefined = IfcReinforcingMeshTypeEnum.NOTDEFINED IfcRoadPartTypeEnum = enum_namespace() -roadsidepart = getattr(IfcRoadPartTypeEnum, 'ROADSIDEPART', INDETERMINATE) -bus_stop = getattr(IfcRoadPartTypeEnum, 'BUS_STOP', INDETERMINATE) -hardshoulder = getattr(IfcRoadPartTypeEnum, 'HARDSHOULDER', INDETERMINATE) -intersection = getattr(IfcRoadPartTypeEnum, 'INTERSECTION', INDETERMINATE) -passingbay = getattr(IfcRoadPartTypeEnum, 'PASSINGBAY', INDETERMINATE) -roadwayplateau = getattr(IfcRoadPartTypeEnum, 'ROADWAYPLATEAU', INDETERMINATE) -roadside = getattr(IfcRoadPartTypeEnum, 'ROADSIDE', INDETERMINATE) -refugeisland = getattr(IfcRoadPartTypeEnum, 'REFUGEISLAND', INDETERMINATE) -tollplaza = getattr(IfcRoadPartTypeEnum, 'TOLLPLAZA', INDETERMINATE) -centralreserve = getattr(IfcRoadPartTypeEnum, 'CENTRALRESERVE', INDETERMINATE) -sidewalk = getattr(IfcRoadPartTypeEnum, 'SIDEWALK', INDETERMINATE) -parkingbay = getattr(IfcRoadPartTypeEnum, 'PARKINGBAY', INDETERMINATE) -railwaycrossing = getattr(IfcRoadPartTypeEnum, 'RAILWAYCROSSING', INDETERMINATE) -pedestrian_crossing = getattr(IfcRoadPartTypeEnum, 'PEDESTRIAN_CROSSING', INDETERMINATE) -softshoulder = getattr(IfcRoadPartTypeEnum, 'SOFTSHOULDER', INDETERMINATE) -bicyclecrossing = getattr(IfcRoadPartTypeEnum, 'BICYCLECROSSING', INDETERMINATE) -centralisland = getattr(IfcRoadPartTypeEnum, 'CENTRALISLAND', INDETERMINATE) -shoulder = getattr(IfcRoadPartTypeEnum, 'SHOULDER', INDETERMINATE) -trafficlane = getattr(IfcRoadPartTypeEnum, 'TRAFFICLANE', INDETERMINATE) -roadsegment = getattr(IfcRoadPartTypeEnum, 'ROADSEGMENT', INDETERMINATE) -roundabout = getattr(IfcRoadPartTypeEnum, 'ROUNDABOUT', INDETERMINATE) -layby = getattr(IfcRoadPartTypeEnum, 'LAYBY', INDETERMINATE) -carriageway = getattr(IfcRoadPartTypeEnum, 'CARRIAGEWAY', INDETERMINATE) -trafficisland = getattr(IfcRoadPartTypeEnum, 'TRAFFICISLAND', INDETERMINATE) -userdefined = getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRoadPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +roadsidepart = IfcRoadPartTypeEnum.ROADSIDEPART +bus_stop = IfcRoadPartTypeEnum.BUS_STOP +hardshoulder = IfcRoadPartTypeEnum.HARDSHOULDER +intersection = IfcRoadPartTypeEnum.INTERSECTION +passingbay = IfcRoadPartTypeEnum.PASSINGBAY +roadwayplateau = IfcRoadPartTypeEnum.ROADWAYPLATEAU +roadside = IfcRoadPartTypeEnum.ROADSIDE +refugeisland = IfcRoadPartTypeEnum.REFUGEISLAND +tollplaza = IfcRoadPartTypeEnum.TOLLPLAZA +centralreserve = IfcRoadPartTypeEnum.CENTRALRESERVE +sidewalk = IfcRoadPartTypeEnum.SIDEWALK +parkingbay = IfcRoadPartTypeEnum.PARKINGBAY +railwaycrossing = IfcRoadPartTypeEnum.RAILWAYCROSSING +pedestrian_crossing = IfcRoadPartTypeEnum.PEDESTRIAN_CROSSING +softshoulder = IfcRoadPartTypeEnum.SOFTSHOULDER +bicyclecrossing = IfcRoadPartTypeEnum.BICYCLECROSSING +centralisland = IfcRoadPartTypeEnum.CENTRALISLAND +shoulder = IfcRoadPartTypeEnum.SHOULDER +trafficlane = IfcRoadPartTypeEnum.TRAFFICLANE +roadsegment = IfcRoadPartTypeEnum.ROADSEGMENT +roundabout = IfcRoadPartTypeEnum.ROUNDABOUT +layby = IfcRoadPartTypeEnum.LAYBY +carriageway = IfcRoadPartTypeEnum.CARRIAGEWAY +trafficisland = IfcRoadPartTypeEnum.TRAFFICISLAND +userdefined = IfcRoadPartTypeEnum.USERDEFINED +notdefined = IfcRoadPartTypeEnum.NOTDEFINED IfcRoadTypeEnum = enum_namespace() -userdefined = getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRoadTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcRoadTypeEnum.USERDEFINED +notdefined = IfcRoadTypeEnum.NOTDEFINED IfcRoleEnum = enum_namespace() -supplier = getattr(IfcRoleEnum, 'SUPPLIER', INDETERMINATE) -manufacturer = getattr(IfcRoleEnum, 'MANUFACTURER', INDETERMINATE) -contractor = getattr(IfcRoleEnum, 'CONTRACTOR', INDETERMINATE) -subcontractor = getattr(IfcRoleEnum, 'SUBCONTRACTOR', INDETERMINATE) -architect = getattr(IfcRoleEnum, 'ARCHITECT', INDETERMINATE) -structuralengineer = getattr(IfcRoleEnum, 'STRUCTURALENGINEER', INDETERMINATE) -costengineer = getattr(IfcRoleEnum, 'COSTENGINEER', INDETERMINATE) -client = getattr(IfcRoleEnum, 'CLIENT', INDETERMINATE) -buildingowner = getattr(IfcRoleEnum, 'BUILDINGOWNER', INDETERMINATE) -buildingoperator = getattr(IfcRoleEnum, 'BUILDINGOPERATOR', INDETERMINATE) -mechanicalengineer = getattr(IfcRoleEnum, 'MECHANICALENGINEER', INDETERMINATE) -electricalengineer = getattr(IfcRoleEnum, 'ELECTRICALENGINEER', INDETERMINATE) -projectmanager = getattr(IfcRoleEnum, 'PROJECTMANAGER', INDETERMINATE) -facilitiesmanager = getattr(IfcRoleEnum, 'FACILITIESMANAGER', INDETERMINATE) -civilengineer = getattr(IfcRoleEnum, 'CIVILENGINEER', INDETERMINATE) -commissioningengineer = getattr(IfcRoleEnum, 'COMMISSIONINGENGINEER', INDETERMINATE) -engineer = getattr(IfcRoleEnum, 'ENGINEER', INDETERMINATE) -owner = getattr(IfcRoleEnum, 'OWNER', INDETERMINATE) -consultant = getattr(IfcRoleEnum, 'CONSULTANT', INDETERMINATE) -constructionmanager = getattr(IfcRoleEnum, 'CONSTRUCTIONMANAGER', INDETERMINATE) -fieldconstructionmanager = getattr(IfcRoleEnum, 'FIELDCONSTRUCTIONMANAGER', INDETERMINATE) -reseller = getattr(IfcRoleEnum, 'RESELLER', INDETERMINATE) -userdefined = getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) +supplier = IfcRoleEnum.SUPPLIER +manufacturer = IfcRoleEnum.MANUFACTURER +contractor = IfcRoleEnum.CONTRACTOR +subcontractor = IfcRoleEnum.SUBCONTRACTOR +architect = IfcRoleEnum.ARCHITECT +structuralengineer = IfcRoleEnum.STRUCTURALENGINEER +costengineer = IfcRoleEnum.COSTENGINEER +client = IfcRoleEnum.CLIENT +buildingowner = IfcRoleEnum.BUILDINGOWNER +buildingoperator = IfcRoleEnum.BUILDINGOPERATOR +mechanicalengineer = IfcRoleEnum.MECHANICALENGINEER +electricalengineer = IfcRoleEnum.ELECTRICALENGINEER +projectmanager = IfcRoleEnum.PROJECTMANAGER +facilitiesmanager = IfcRoleEnum.FACILITIESMANAGER +civilengineer = IfcRoleEnum.CIVILENGINEER +commissioningengineer = IfcRoleEnum.COMMISSIONINGENGINEER +engineer = IfcRoleEnum.ENGINEER +owner = IfcRoleEnum.OWNER +consultant = IfcRoleEnum.CONSULTANT +constructionmanager = IfcRoleEnum.CONSTRUCTIONMANAGER +fieldconstructionmanager = IfcRoleEnum.FIELDCONSTRUCTIONMANAGER +reseller = IfcRoleEnum.RESELLER +userdefined = IfcRoleEnum.USERDEFINED IfcRoofTypeEnum = enum_namespace() -flat_roof = getattr(IfcRoofTypeEnum, 'FLAT_ROOF', INDETERMINATE) -shed_roof = getattr(IfcRoofTypeEnum, 'SHED_ROOF', INDETERMINATE) -gable_roof = getattr(IfcRoofTypeEnum, 'GABLE_ROOF', INDETERMINATE) -hip_roof = getattr(IfcRoofTypeEnum, 'HIP_ROOF', INDETERMINATE) -hipped_gable_roof = getattr(IfcRoofTypeEnum, 'HIPPED_GABLE_ROOF', INDETERMINATE) -gambrel_roof = getattr(IfcRoofTypeEnum, 'GAMBREL_ROOF', INDETERMINATE) -mansard_roof = getattr(IfcRoofTypeEnum, 'MANSARD_ROOF', INDETERMINATE) -barrel_roof = getattr(IfcRoofTypeEnum, 'BARREL_ROOF', INDETERMINATE) -rainbow_roof = getattr(IfcRoofTypeEnum, 'RAINBOW_ROOF', INDETERMINATE) -butterfly_roof = getattr(IfcRoofTypeEnum, 'BUTTERFLY_ROOF', INDETERMINATE) -pavilion_roof = getattr(IfcRoofTypeEnum, 'PAVILION_ROOF', INDETERMINATE) -dome_roof = getattr(IfcRoofTypeEnum, 'DOME_ROOF', INDETERMINATE) -freeform = getattr(IfcRoofTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRoofTypeEnum, 'NOTDEFINED', INDETERMINATE) +flat_roof = IfcRoofTypeEnum.FLAT_ROOF +shed_roof = IfcRoofTypeEnum.SHED_ROOF +gable_roof = IfcRoofTypeEnum.GABLE_ROOF +hip_roof = IfcRoofTypeEnum.HIP_ROOF +hipped_gable_roof = IfcRoofTypeEnum.HIPPED_GABLE_ROOF +gambrel_roof = IfcRoofTypeEnum.GAMBREL_ROOF +mansard_roof = IfcRoofTypeEnum.MANSARD_ROOF +barrel_roof = IfcRoofTypeEnum.BARREL_ROOF +rainbow_roof = IfcRoofTypeEnum.RAINBOW_ROOF +butterfly_roof = IfcRoofTypeEnum.BUTTERFLY_ROOF +pavilion_roof = IfcRoofTypeEnum.PAVILION_ROOF +dome_roof = IfcRoofTypeEnum.DOME_ROOF +freeform = IfcRoofTypeEnum.FREEFORM +userdefined = IfcRoofTypeEnum.USERDEFINED +notdefined = IfcRoofTypeEnum.NOTDEFINED IfcSIPrefix = enum_namespace() -exa = getattr(IfcSIPrefix, 'EXA', INDETERMINATE) -peta = getattr(IfcSIPrefix, 'PETA', INDETERMINATE) -tera = getattr(IfcSIPrefix, 'TERA', INDETERMINATE) -giga = getattr(IfcSIPrefix, 'GIGA', INDETERMINATE) -mega = getattr(IfcSIPrefix, 'MEGA', INDETERMINATE) -kilo = getattr(IfcSIPrefix, 'KILO', INDETERMINATE) -hecto = getattr(IfcSIPrefix, 'HECTO', INDETERMINATE) -deca = getattr(IfcSIPrefix, 'DECA', INDETERMINATE) -deci = getattr(IfcSIPrefix, 'DECI', INDETERMINATE) -centi = getattr(IfcSIPrefix, 'CENTI', INDETERMINATE) -milli = getattr(IfcSIPrefix, 'MILLI', INDETERMINATE) -micro = getattr(IfcSIPrefix, 'MICRO', INDETERMINATE) -nano = getattr(IfcSIPrefix, 'NANO', INDETERMINATE) -pico = getattr(IfcSIPrefix, 'PICO', INDETERMINATE) -femto = getattr(IfcSIPrefix, 'FEMTO', INDETERMINATE) -atto = getattr(IfcSIPrefix, 'ATTO', INDETERMINATE) +exa = IfcSIPrefix.EXA +peta = IfcSIPrefix.PETA +tera = IfcSIPrefix.TERA +giga = IfcSIPrefix.GIGA +mega = IfcSIPrefix.MEGA +kilo = IfcSIPrefix.KILO +hecto = IfcSIPrefix.HECTO +deca = IfcSIPrefix.DECA +deci = IfcSIPrefix.DECI +centi = IfcSIPrefix.CENTI +milli = IfcSIPrefix.MILLI +micro = IfcSIPrefix.MICRO +nano = IfcSIPrefix.NANO +pico = IfcSIPrefix.PICO +femto = IfcSIPrefix.FEMTO +atto = IfcSIPrefix.ATTO IfcSIUnitName = enum_namespace() -ampere = getattr(IfcSIUnitName, 'AMPERE', INDETERMINATE) -becquerel = getattr(IfcSIUnitName, 'BECQUEREL', INDETERMINATE) -candela = getattr(IfcSIUnitName, 'CANDELA', INDETERMINATE) -coulomb = getattr(IfcSIUnitName, 'COULOMB', INDETERMINATE) -cubic_metre = getattr(IfcSIUnitName, 'CUBIC_METRE', INDETERMINATE) -degree_celsius = getattr(IfcSIUnitName, 'DEGREE_CELSIUS', INDETERMINATE) -farad = getattr(IfcSIUnitName, 'FARAD', INDETERMINATE) -gram = getattr(IfcSIUnitName, 'GRAM', INDETERMINATE) -gray = getattr(IfcSIUnitName, 'GRAY', INDETERMINATE) -henry = getattr(IfcSIUnitName, 'HENRY', INDETERMINATE) -hertz = getattr(IfcSIUnitName, 'HERTZ', INDETERMINATE) -joule = getattr(IfcSIUnitName, 'JOULE', INDETERMINATE) -kelvin = getattr(IfcSIUnitName, 'KELVIN', INDETERMINATE) -lumen = getattr(IfcSIUnitName, 'LUMEN', INDETERMINATE) -lux = getattr(IfcSIUnitName, 'LUX', INDETERMINATE) -metre = getattr(IfcSIUnitName, 'METRE', INDETERMINATE) -mole = getattr(IfcSIUnitName, 'MOLE', INDETERMINATE) -newton = getattr(IfcSIUnitName, 'NEWTON', INDETERMINATE) -ohm = getattr(IfcSIUnitName, 'OHM', INDETERMINATE) -pascal = getattr(IfcSIUnitName, 'PASCAL', INDETERMINATE) -radian = getattr(IfcSIUnitName, 'RADIAN', INDETERMINATE) -second = getattr(IfcSIUnitName, 'SECOND', INDETERMINATE) -siemens = getattr(IfcSIUnitName, 'SIEMENS', INDETERMINATE) -sievert = getattr(IfcSIUnitName, 'SIEVERT', INDETERMINATE) -square_metre = getattr(IfcSIUnitName, 'SQUARE_METRE', INDETERMINATE) -steradian = getattr(IfcSIUnitName, 'STERADIAN', INDETERMINATE) -tesla = getattr(IfcSIUnitName, 'TESLA', INDETERMINATE) -volt = getattr(IfcSIUnitName, 'VOLT', INDETERMINATE) -watt = getattr(IfcSIUnitName, 'WATT', INDETERMINATE) -weber = getattr(IfcSIUnitName, 'WEBER', INDETERMINATE) +ampere = IfcSIUnitName.AMPERE +becquerel = IfcSIUnitName.BECQUEREL +candela = IfcSIUnitName.CANDELA +coulomb = IfcSIUnitName.COULOMB +cubic_metre = IfcSIUnitName.CUBIC_METRE +degree_celsius = IfcSIUnitName.DEGREE_CELSIUS +farad = IfcSIUnitName.FARAD +gram = IfcSIUnitName.GRAM +gray = IfcSIUnitName.GRAY +henry = IfcSIUnitName.HENRY +hertz = IfcSIUnitName.HERTZ +joule = IfcSIUnitName.JOULE +kelvin = IfcSIUnitName.KELVIN +lumen = IfcSIUnitName.LUMEN +lux = IfcSIUnitName.LUX +metre = IfcSIUnitName.METRE +mole = IfcSIUnitName.MOLE +newton = IfcSIUnitName.NEWTON +ohm = IfcSIUnitName.OHM +pascal = IfcSIUnitName.PASCAL +radian = IfcSIUnitName.RADIAN +second = IfcSIUnitName.SECOND +siemens = IfcSIUnitName.SIEMENS +sievert = IfcSIUnitName.SIEVERT +square_metre = IfcSIUnitName.SQUARE_METRE +steradian = IfcSIUnitName.STERADIAN +tesla = IfcSIUnitName.TESLA +volt = IfcSIUnitName.VOLT +watt = IfcSIUnitName.WATT +weber = IfcSIUnitName.WEBER IfcSanitaryTerminalTypeEnum = enum_namespace() -bath = getattr(IfcSanitaryTerminalTypeEnum, 'BATH', INDETERMINATE) -bidet = getattr(IfcSanitaryTerminalTypeEnum, 'BIDET', INDETERMINATE) -cistern = getattr(IfcSanitaryTerminalTypeEnum, 'CISTERN', INDETERMINATE) -shower = getattr(IfcSanitaryTerminalTypeEnum, 'SHOWER', INDETERMINATE) -sink = getattr(IfcSanitaryTerminalTypeEnum, 'SINK', INDETERMINATE) -sanitaryfountain = getattr(IfcSanitaryTerminalTypeEnum, 'SANITARYFOUNTAIN', INDETERMINATE) -toiletpan = getattr(IfcSanitaryTerminalTypeEnum, 'TOILETPAN', INDETERMINATE) -urinal = getattr(IfcSanitaryTerminalTypeEnum, 'URINAL', INDETERMINATE) -washhandbasin = getattr(IfcSanitaryTerminalTypeEnum, 'WASHHANDBASIN', INDETERMINATE) -wcseat = getattr(IfcSanitaryTerminalTypeEnum, 'WCSEAT', INDETERMINATE) -userdefined = getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSanitaryTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +bath = IfcSanitaryTerminalTypeEnum.BATH +bidet = IfcSanitaryTerminalTypeEnum.BIDET +cistern = IfcSanitaryTerminalTypeEnum.CISTERN +shower = IfcSanitaryTerminalTypeEnum.SHOWER +sink = IfcSanitaryTerminalTypeEnum.SINK +sanitaryfountain = IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN +toiletpan = IfcSanitaryTerminalTypeEnum.TOILETPAN +urinal = IfcSanitaryTerminalTypeEnum.URINAL +washhandbasin = IfcSanitaryTerminalTypeEnum.WASHHANDBASIN +wcseat = IfcSanitaryTerminalTypeEnum.WCSEAT +userdefined = IfcSanitaryTerminalTypeEnum.USERDEFINED +notdefined = IfcSanitaryTerminalTypeEnum.NOTDEFINED IfcSectionTypeEnum = enum_namespace() -uniform = getattr(IfcSectionTypeEnum, 'UNIFORM', INDETERMINATE) -tapered = getattr(IfcSectionTypeEnum, 'TAPERED', INDETERMINATE) +uniform = IfcSectionTypeEnum.UNIFORM +tapered = IfcSectionTypeEnum.TAPERED IfcSensorTypeEnum = enum_namespace() -cosensor = getattr(IfcSensorTypeEnum, 'COSENSOR', INDETERMINATE) -co2sensor = getattr(IfcSensorTypeEnum, 'CO2SENSOR', INDETERMINATE) -conductancesensor = getattr(IfcSensorTypeEnum, 'CONDUCTANCESENSOR', INDETERMINATE) -contactsensor = getattr(IfcSensorTypeEnum, 'CONTACTSENSOR', INDETERMINATE) -firesensor = getattr(IfcSensorTypeEnum, 'FIRESENSOR', INDETERMINATE) -flowsensor = getattr(IfcSensorTypeEnum, 'FLOWSENSOR', INDETERMINATE) -frostsensor = getattr(IfcSensorTypeEnum, 'FROSTSENSOR', INDETERMINATE) -gassensor = getattr(IfcSensorTypeEnum, 'GASSENSOR', INDETERMINATE) -heatsensor = getattr(IfcSensorTypeEnum, 'HEATSENSOR', INDETERMINATE) -humiditysensor = getattr(IfcSensorTypeEnum, 'HUMIDITYSENSOR', INDETERMINATE) -identifiersensor = getattr(IfcSensorTypeEnum, 'IDENTIFIERSENSOR', INDETERMINATE) -ionconcentrationsensor = getattr(IfcSensorTypeEnum, 'IONCONCENTRATIONSENSOR', INDETERMINATE) -levelsensor = getattr(IfcSensorTypeEnum, 'LEVELSENSOR', INDETERMINATE) -lightsensor = getattr(IfcSensorTypeEnum, 'LIGHTSENSOR', INDETERMINATE) -moisturesensor = getattr(IfcSensorTypeEnum, 'MOISTURESENSOR', INDETERMINATE) -movementsensor = getattr(IfcSensorTypeEnum, 'MOVEMENTSENSOR', INDETERMINATE) -phsensor = getattr(IfcSensorTypeEnum, 'PHSENSOR', INDETERMINATE) -pressuresensor = getattr(IfcSensorTypeEnum, 'PRESSURESENSOR', INDETERMINATE) -radiationsensor = getattr(IfcSensorTypeEnum, 'RADIATIONSENSOR', INDETERMINATE) -radioactivitysensor = getattr(IfcSensorTypeEnum, 'RADIOACTIVITYSENSOR', INDETERMINATE) -smokesensor = getattr(IfcSensorTypeEnum, 'SMOKESENSOR', INDETERMINATE) -soundsensor = getattr(IfcSensorTypeEnum, 'SOUNDSENSOR', INDETERMINATE) -temperaturesensor = getattr(IfcSensorTypeEnum, 'TEMPERATURESENSOR', INDETERMINATE) -windsensor = getattr(IfcSensorTypeEnum, 'WINDSENSOR', INDETERMINATE) -earthquakesensor = getattr(IfcSensorTypeEnum, 'EARTHQUAKESENSOR', INDETERMINATE) -foreignobjectdetectionsensor = getattr(IfcSensorTypeEnum, 'FOREIGNOBJECTDETECTIONSENSOR', INDETERMINATE) -obstaclesensor = getattr(IfcSensorTypeEnum, 'OBSTACLESENSOR', INDETERMINATE) -rainsensor = getattr(IfcSensorTypeEnum, 'RAINSENSOR', INDETERMINATE) -snowdepthsensor = getattr(IfcSensorTypeEnum, 'SNOWDEPTHSENSOR', INDETERMINATE) -trainsensor = getattr(IfcSensorTypeEnum, 'TRAINSENSOR', INDETERMINATE) -turnoutclosuresensor = getattr(IfcSensorTypeEnum, 'TURNOUTCLOSURESENSOR', INDETERMINATE) -wheelsensor = getattr(IfcSensorTypeEnum, 'WHEELSENSOR', INDETERMINATE) -userdefined = getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSensorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cosensor = IfcSensorTypeEnum.COSENSOR +co2sensor = IfcSensorTypeEnum.CO2SENSOR +conductancesensor = IfcSensorTypeEnum.CONDUCTANCESENSOR +contactsensor = IfcSensorTypeEnum.CONTACTSENSOR +firesensor = IfcSensorTypeEnum.FIRESENSOR +flowsensor = IfcSensorTypeEnum.FLOWSENSOR +frostsensor = IfcSensorTypeEnum.FROSTSENSOR +gassensor = IfcSensorTypeEnum.GASSENSOR +heatsensor = IfcSensorTypeEnum.HEATSENSOR +humiditysensor = IfcSensorTypeEnum.HUMIDITYSENSOR +identifiersensor = IfcSensorTypeEnum.IDENTIFIERSENSOR +ionconcentrationsensor = IfcSensorTypeEnum.IONCONCENTRATIONSENSOR +levelsensor = IfcSensorTypeEnum.LEVELSENSOR +lightsensor = IfcSensorTypeEnum.LIGHTSENSOR +moisturesensor = IfcSensorTypeEnum.MOISTURESENSOR +movementsensor = IfcSensorTypeEnum.MOVEMENTSENSOR +phsensor = IfcSensorTypeEnum.PHSENSOR +pressuresensor = IfcSensorTypeEnum.PRESSURESENSOR +radiationsensor = IfcSensorTypeEnum.RADIATIONSENSOR +radioactivitysensor = IfcSensorTypeEnum.RADIOACTIVITYSENSOR +smokesensor = IfcSensorTypeEnum.SMOKESENSOR +soundsensor = IfcSensorTypeEnum.SOUNDSENSOR +temperaturesensor = IfcSensorTypeEnum.TEMPERATURESENSOR +windsensor = IfcSensorTypeEnum.WINDSENSOR +earthquakesensor = IfcSensorTypeEnum.EARTHQUAKESENSOR +foreignobjectdetectionsensor = IfcSensorTypeEnum.FOREIGNOBJECTDETECTIONSENSOR +obstaclesensor = IfcSensorTypeEnum.OBSTACLESENSOR +rainsensor = IfcSensorTypeEnum.RAINSENSOR +snowdepthsensor = IfcSensorTypeEnum.SNOWDEPTHSENSOR +trainsensor = IfcSensorTypeEnum.TRAINSENSOR +turnoutclosuresensor = IfcSensorTypeEnum.TURNOUTCLOSURESENSOR +wheelsensor = IfcSensorTypeEnum.WHEELSENSOR +userdefined = IfcSensorTypeEnum.USERDEFINED +notdefined = IfcSensorTypeEnum.NOTDEFINED IfcSequenceEnum = enum_namespace() -start_start = getattr(IfcSequenceEnum, 'START_START', INDETERMINATE) -start_finish = getattr(IfcSequenceEnum, 'START_FINISH', INDETERMINATE) -finish_start = getattr(IfcSequenceEnum, 'FINISH_START', INDETERMINATE) -finish_finish = getattr(IfcSequenceEnum, 'FINISH_FINISH', INDETERMINATE) -userdefined = getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSequenceEnum, 'NOTDEFINED', INDETERMINATE) +start_start = IfcSequenceEnum.START_START +start_finish = IfcSequenceEnum.START_FINISH +finish_start = IfcSequenceEnum.FINISH_START +finish_finish = IfcSequenceEnum.FINISH_FINISH +userdefined = IfcSequenceEnum.USERDEFINED +notdefined = IfcSequenceEnum.NOTDEFINED IfcShadingDeviceTypeEnum = enum_namespace() -jalousie = getattr(IfcShadingDeviceTypeEnum, 'JALOUSIE', INDETERMINATE) -shutter = getattr(IfcShadingDeviceTypeEnum, 'SHUTTER', INDETERMINATE) -awning = getattr(IfcShadingDeviceTypeEnum, 'AWNING', INDETERMINATE) -userdefined = getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcShadingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +jalousie = IfcShadingDeviceTypeEnum.JALOUSIE +shutter = IfcShadingDeviceTypeEnum.SHUTTER +awning = IfcShadingDeviceTypeEnum.AWNING +userdefined = IfcShadingDeviceTypeEnum.USERDEFINED +notdefined = IfcShadingDeviceTypeEnum.NOTDEFINED IfcSignTypeEnum = enum_namespace() -marker = getattr(IfcSignTypeEnum, 'MARKER', INDETERMINATE) -pictoral = getattr(IfcSignTypeEnum, 'PICTORAL', INDETERMINATE) -mirror = getattr(IfcSignTypeEnum, 'MIRROR', INDETERMINATE) -userdefined = getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSignTypeEnum, 'NOTDEFINED', INDETERMINATE) +marker = IfcSignTypeEnum.MARKER +pictoral = IfcSignTypeEnum.PICTORAL +mirror = IfcSignTypeEnum.MIRROR +userdefined = IfcSignTypeEnum.USERDEFINED +notdefined = IfcSignTypeEnum.NOTDEFINED IfcSignalTypeEnum = enum_namespace() -visual = getattr(IfcSignalTypeEnum, 'VISUAL', INDETERMINATE) -audio = getattr(IfcSignalTypeEnum, 'AUDIO', INDETERMINATE) -mixed = getattr(IfcSignalTypeEnum, 'MIXED', INDETERMINATE) -userdefined = getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSignalTypeEnum, 'NOTDEFINED', INDETERMINATE) +visual = IfcSignalTypeEnum.VISUAL +audio = IfcSignalTypeEnum.AUDIO +mixed = IfcSignalTypeEnum.MIXED +userdefined = IfcSignalTypeEnum.USERDEFINED +notdefined = IfcSignalTypeEnum.NOTDEFINED IfcSimplePropertyTemplateTypeEnum = enum_namespace() -p_singlevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_SINGLEVALUE', INDETERMINATE) -p_enumeratedvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_ENUMERATEDVALUE', INDETERMINATE) -p_boundedvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_BOUNDEDVALUE', INDETERMINATE) -p_listvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_LISTVALUE', INDETERMINATE) -p_tablevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_TABLEVALUE', INDETERMINATE) -p_referencevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_REFERENCEVALUE', INDETERMINATE) -q_length = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_LENGTH', INDETERMINATE) -q_area = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_AREA', INDETERMINATE) -q_volume = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_VOLUME', INDETERMINATE) -q_count = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_COUNT', INDETERMINATE) -q_weight = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_WEIGHT', INDETERMINATE) -q_time = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_TIME', INDETERMINATE) +p_singlevalue = IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE +p_enumeratedvalue = IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE +p_boundedvalue = IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE +p_listvalue = IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE +p_tablevalue = IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE +p_referencevalue = IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE +q_length = IfcSimplePropertyTemplateTypeEnum.Q_LENGTH +q_area = IfcSimplePropertyTemplateTypeEnum.Q_AREA +q_volume = IfcSimplePropertyTemplateTypeEnum.Q_VOLUME +q_count = IfcSimplePropertyTemplateTypeEnum.Q_COUNT +q_weight = IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT +q_time = IfcSimplePropertyTemplateTypeEnum.Q_TIME IfcSlabTypeEnum = enum_namespace() -floor = getattr(IfcSlabTypeEnum, 'FLOOR', INDETERMINATE) -roof = getattr(IfcSlabTypeEnum, 'ROOF', INDETERMINATE) -landing = getattr(IfcSlabTypeEnum, 'LANDING', INDETERMINATE) -baseslab = getattr(IfcSlabTypeEnum, 'BASESLAB', INDETERMINATE) -approach_slab = getattr(IfcSlabTypeEnum, 'APPROACH_SLAB', INDETERMINATE) -paving = getattr(IfcSlabTypeEnum, 'PAVING', INDETERMINATE) -wearing = getattr(IfcSlabTypeEnum, 'WEARING', INDETERMINATE) -sidewalk = getattr(IfcSlabTypeEnum, 'SIDEWALK', INDETERMINATE) -trackslab = getattr(IfcSlabTypeEnum, 'TRACKSLAB', INDETERMINATE) -userdefined = getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSlabTypeEnum, 'NOTDEFINED', INDETERMINATE) +floor = IfcSlabTypeEnum.FLOOR +roof = IfcSlabTypeEnum.ROOF +landing = IfcSlabTypeEnum.LANDING +baseslab = IfcSlabTypeEnum.BASESLAB +approach_slab = IfcSlabTypeEnum.APPROACH_SLAB +paving = IfcSlabTypeEnum.PAVING +wearing = IfcSlabTypeEnum.WEARING +sidewalk = IfcSlabTypeEnum.SIDEWALK +trackslab = IfcSlabTypeEnum.TRACKSLAB +userdefined = IfcSlabTypeEnum.USERDEFINED +notdefined = IfcSlabTypeEnum.NOTDEFINED IfcSolarDeviceTypeEnum = enum_namespace() -solarcollector = getattr(IfcSolarDeviceTypeEnum, 'SOLARCOLLECTOR', INDETERMINATE) -solarpanel = getattr(IfcSolarDeviceTypeEnum, 'SOLARPANEL', INDETERMINATE) -userdefined = getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSolarDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +solarcollector = IfcSolarDeviceTypeEnum.SOLARCOLLECTOR +solarpanel = IfcSolarDeviceTypeEnum.SOLARPANEL +userdefined = IfcSolarDeviceTypeEnum.USERDEFINED +notdefined = IfcSolarDeviceTypeEnum.NOTDEFINED IfcSpaceHeaterTypeEnum = enum_namespace() -convector = getattr(IfcSpaceHeaterTypeEnum, 'CONVECTOR', INDETERMINATE) -radiator = getattr(IfcSpaceHeaterTypeEnum, 'RADIATOR', INDETERMINATE) -userdefined = getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpaceHeaterTypeEnum, 'NOTDEFINED', INDETERMINATE) +convector = IfcSpaceHeaterTypeEnum.CONVECTOR +radiator = IfcSpaceHeaterTypeEnum.RADIATOR +userdefined = IfcSpaceHeaterTypeEnum.USERDEFINED +notdefined = IfcSpaceHeaterTypeEnum.NOTDEFINED IfcSpaceTypeEnum = enum_namespace() -space = getattr(IfcSpaceTypeEnum, 'SPACE', INDETERMINATE) -parking = getattr(IfcSpaceTypeEnum, 'PARKING', INDETERMINATE) -gfa = getattr(IfcSpaceTypeEnum, 'GFA', INDETERMINATE) -internal = getattr(IfcSpaceTypeEnum, 'INTERNAL', INDETERMINATE) -external = getattr(IfcSpaceTypeEnum, 'EXTERNAL', INDETERMINATE) -berth = getattr(IfcSpaceTypeEnum, 'BERTH', INDETERMINATE) -userdefined = getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpaceTypeEnum, 'NOTDEFINED', INDETERMINATE) +space = IfcSpaceTypeEnum.SPACE +parking = IfcSpaceTypeEnum.PARKING +gfa = IfcSpaceTypeEnum.GFA +internal = IfcSpaceTypeEnum.INTERNAL +external = IfcSpaceTypeEnum.EXTERNAL +berth = IfcSpaceTypeEnum.BERTH +userdefined = IfcSpaceTypeEnum.USERDEFINED +notdefined = IfcSpaceTypeEnum.NOTDEFINED IfcSpatialZoneTypeEnum = enum_namespace() -construction = getattr(IfcSpatialZoneTypeEnum, 'CONSTRUCTION', INDETERMINATE) -firesafety = getattr(IfcSpatialZoneTypeEnum, 'FIRESAFETY', INDETERMINATE) -lighting = getattr(IfcSpatialZoneTypeEnum, 'LIGHTING', INDETERMINATE) -occupancy = getattr(IfcSpatialZoneTypeEnum, 'OCCUPANCY', INDETERMINATE) -security = getattr(IfcSpatialZoneTypeEnum, 'SECURITY', INDETERMINATE) -thermal = getattr(IfcSpatialZoneTypeEnum, 'THERMAL', INDETERMINATE) -transport = getattr(IfcSpatialZoneTypeEnum, 'TRANSPORT', INDETERMINATE) -ventilation = getattr(IfcSpatialZoneTypeEnum, 'VENTILATION', INDETERMINATE) -reservation = getattr(IfcSpatialZoneTypeEnum, 'RESERVATION', INDETERMINATE) -userdefined = getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpatialZoneTypeEnum, 'NOTDEFINED', INDETERMINATE) +construction = IfcSpatialZoneTypeEnum.CONSTRUCTION +firesafety = IfcSpatialZoneTypeEnum.FIRESAFETY +lighting = IfcSpatialZoneTypeEnum.LIGHTING +occupancy = IfcSpatialZoneTypeEnum.OCCUPANCY +security = IfcSpatialZoneTypeEnum.SECURITY +thermal = IfcSpatialZoneTypeEnum.THERMAL +transport = IfcSpatialZoneTypeEnum.TRANSPORT +ventilation = IfcSpatialZoneTypeEnum.VENTILATION +reservation = IfcSpatialZoneTypeEnum.RESERVATION +userdefined = IfcSpatialZoneTypeEnum.USERDEFINED +notdefined = IfcSpatialZoneTypeEnum.NOTDEFINED IfcStackTerminalTypeEnum = enum_namespace() -birdcage = getattr(IfcStackTerminalTypeEnum, 'BIRDCAGE', INDETERMINATE) -cowl = getattr(IfcStackTerminalTypeEnum, 'COWL', INDETERMINATE) -rainwaterhopper = getattr(IfcStackTerminalTypeEnum, 'RAINWATERHOPPER', INDETERMINATE) -userdefined = getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStackTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +birdcage = IfcStackTerminalTypeEnum.BIRDCAGE +cowl = IfcStackTerminalTypeEnum.COWL +rainwaterhopper = IfcStackTerminalTypeEnum.RAINWATERHOPPER +userdefined = IfcStackTerminalTypeEnum.USERDEFINED +notdefined = IfcStackTerminalTypeEnum.NOTDEFINED IfcStairFlightTypeEnum = enum_namespace() -straight = getattr(IfcStairFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -winder = getattr(IfcStairFlightTypeEnum, 'WINDER', INDETERMINATE) -spiral = getattr(IfcStairFlightTypeEnum, 'SPIRAL', INDETERMINATE) -curved = getattr(IfcStairFlightTypeEnum, 'CURVED', INDETERMINATE) -freeform = getattr(IfcStairFlightTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStairFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcStairFlightTypeEnum.STRAIGHT +winder = IfcStairFlightTypeEnum.WINDER +spiral = IfcStairFlightTypeEnum.SPIRAL +curved = IfcStairFlightTypeEnum.CURVED +freeform = IfcStairFlightTypeEnum.FREEFORM +userdefined = IfcStairFlightTypeEnum.USERDEFINED +notdefined = IfcStairFlightTypeEnum.NOTDEFINED IfcStairTypeEnum = enum_namespace() -straight_run_stair = getattr(IfcStairTypeEnum, 'STRAIGHT_RUN_STAIR', INDETERMINATE) -two_straight_run_stair = getattr(IfcStairTypeEnum, 'TWO_STRAIGHT_RUN_STAIR', INDETERMINATE) -quarter_winding_stair = getattr(IfcStairTypeEnum, 'QUARTER_WINDING_STAIR', INDETERMINATE) -quarter_turn_stair = getattr(IfcStairTypeEnum, 'QUARTER_TURN_STAIR', INDETERMINATE) -half_winding_stair = getattr(IfcStairTypeEnum, 'HALF_WINDING_STAIR', INDETERMINATE) -half_turn_stair = getattr(IfcStairTypeEnum, 'HALF_TURN_STAIR', INDETERMINATE) -two_quarter_winding_stair = getattr(IfcStairTypeEnum, 'TWO_QUARTER_WINDING_STAIR', INDETERMINATE) -two_quarter_turn_stair = getattr(IfcStairTypeEnum, 'TWO_QUARTER_TURN_STAIR', INDETERMINATE) -three_quarter_winding_stair = getattr(IfcStairTypeEnum, 'THREE_QUARTER_WINDING_STAIR', INDETERMINATE) -three_quarter_turn_stair = getattr(IfcStairTypeEnum, 'THREE_QUARTER_TURN_STAIR', INDETERMINATE) -spiral_stair = getattr(IfcStairTypeEnum, 'SPIRAL_STAIR', INDETERMINATE) -double_return_stair = getattr(IfcStairTypeEnum, 'DOUBLE_RETURN_STAIR', INDETERMINATE) -curved_run_stair = getattr(IfcStairTypeEnum, 'CURVED_RUN_STAIR', INDETERMINATE) -two_curved_run_stair = getattr(IfcStairTypeEnum, 'TWO_CURVED_RUN_STAIR', INDETERMINATE) -ladder = getattr(IfcStairTypeEnum, 'LADDER', INDETERMINATE) -userdefined = getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStairTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_stair = IfcStairTypeEnum.STRAIGHT_RUN_STAIR +two_straight_run_stair = IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR +quarter_winding_stair = IfcStairTypeEnum.QUARTER_WINDING_STAIR +quarter_turn_stair = IfcStairTypeEnum.QUARTER_TURN_STAIR +half_winding_stair = IfcStairTypeEnum.HALF_WINDING_STAIR +half_turn_stair = IfcStairTypeEnum.HALF_TURN_STAIR +two_quarter_winding_stair = IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR +two_quarter_turn_stair = IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR +three_quarter_winding_stair = IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR +three_quarter_turn_stair = IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR +spiral_stair = IfcStairTypeEnum.SPIRAL_STAIR +double_return_stair = IfcStairTypeEnum.DOUBLE_RETURN_STAIR +curved_run_stair = IfcStairTypeEnum.CURVED_RUN_STAIR +two_curved_run_stair = IfcStairTypeEnum.TWO_CURVED_RUN_STAIR +ladder = IfcStairTypeEnum.LADDER +userdefined = IfcStairTypeEnum.USERDEFINED +notdefined = IfcStairTypeEnum.NOTDEFINED IfcStateEnum = enum_namespace() -readwrite = getattr(IfcStateEnum, 'READWRITE', INDETERMINATE) -readonly = getattr(IfcStateEnum, 'READONLY', INDETERMINATE) -locked = getattr(IfcStateEnum, 'LOCKED', INDETERMINATE) -readwritelocked = getattr(IfcStateEnum, 'READWRITELOCKED', INDETERMINATE) -readonlylocked = getattr(IfcStateEnum, 'READONLYLOCKED', INDETERMINATE) +readwrite = IfcStateEnum.READWRITE +readonly = IfcStateEnum.READONLY +locked = IfcStateEnum.LOCKED +readwritelocked = IfcStateEnum.READWRITELOCKED +readonlylocked = IfcStateEnum.READONLYLOCKED IfcStructuralCurveActivityTypeEnum = enum_namespace() -const = getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE) -linear = getattr(IfcStructuralCurveActivityTypeEnum, 'LINEAR', INDETERMINATE) -polygonal = getattr(IfcStructuralCurveActivityTypeEnum, 'POLYGONAL', INDETERMINATE) -equidistant = getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE) -sinus = getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) -parabola = getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE) -discrete = getattr(IfcStructuralCurveActivityTypeEnum, 'DISCRETE', INDETERMINATE) -userdefined = getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralCurveActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralCurveActivityTypeEnum.CONST +linear = IfcStructuralCurveActivityTypeEnum.LINEAR +polygonal = IfcStructuralCurveActivityTypeEnum.POLYGONAL +equidistant = IfcStructuralCurveActivityTypeEnum.EQUIDISTANT +sinus = IfcStructuralCurveActivityTypeEnum.SINUS +parabola = IfcStructuralCurveActivityTypeEnum.PARABOLA +discrete = IfcStructuralCurveActivityTypeEnum.DISCRETE +userdefined = IfcStructuralCurveActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveActivityTypeEnum.NOTDEFINED IfcStructuralCurveMemberTypeEnum = enum_namespace() -rigid_joined_member = getattr(IfcStructuralCurveMemberTypeEnum, 'RIGID_JOINED_MEMBER', INDETERMINATE) -pin_joined_member = getattr(IfcStructuralCurveMemberTypeEnum, 'PIN_JOINED_MEMBER', INDETERMINATE) -cable = getattr(IfcStructuralCurveMemberTypeEnum, 'CABLE', INDETERMINATE) -tension_member = getattr(IfcStructuralCurveMemberTypeEnum, 'TENSION_MEMBER', INDETERMINATE) -compression_member = getattr(IfcStructuralCurveMemberTypeEnum, 'COMPRESSION_MEMBER', INDETERMINATE) -userdefined = getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralCurveMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigid_joined_member = IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER +pin_joined_member = IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER +cable = IfcStructuralCurveMemberTypeEnum.CABLE +tension_member = IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER +compression_member = IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER +userdefined = IfcStructuralCurveMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveMemberTypeEnum.NOTDEFINED IfcStructuralSurfaceActivityTypeEnum = enum_namespace() -const = getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE) -bilinear = getattr(IfcStructuralSurfaceActivityTypeEnum, 'BILINEAR', INDETERMINATE) -discrete = getattr(IfcStructuralSurfaceActivityTypeEnum, 'DISCRETE', INDETERMINATE) -isocontour = getattr(IfcStructuralSurfaceActivityTypeEnum, 'ISOCONTOUR', INDETERMINATE) -userdefined = getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralSurfaceActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralSurfaceActivityTypeEnum.CONST +bilinear = IfcStructuralSurfaceActivityTypeEnum.BILINEAR +discrete = IfcStructuralSurfaceActivityTypeEnum.DISCRETE +isocontour = IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR +userdefined = IfcStructuralSurfaceActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED IfcStructuralSurfaceMemberTypeEnum = enum_namespace() -bending_element = getattr(IfcStructuralSurfaceMemberTypeEnum, 'BENDING_ELEMENT', INDETERMINATE) -membrane_element = getattr(IfcStructuralSurfaceMemberTypeEnum, 'MEMBRANE_ELEMENT', INDETERMINATE) -shell = getattr(IfcStructuralSurfaceMemberTypeEnum, 'SHELL', INDETERMINATE) -userdefined = getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralSurfaceMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_element = IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT +membrane_element = IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT +shell = IfcStructuralSurfaceMemberTypeEnum.SHELL +userdefined = IfcStructuralSurfaceMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED IfcSubContractResourceTypeEnum = enum_namespace() -purchase = getattr(IfcSubContractResourceTypeEnum, 'PURCHASE', INDETERMINATE) -work = getattr(IfcSubContractResourceTypeEnum, 'WORK', INDETERMINATE) -userdefined = getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSubContractResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +purchase = IfcSubContractResourceTypeEnum.PURCHASE +work = IfcSubContractResourceTypeEnum.WORK +userdefined = IfcSubContractResourceTypeEnum.USERDEFINED +notdefined = IfcSubContractResourceTypeEnum.NOTDEFINED IfcSurfaceFeatureTypeEnum = enum_namespace() -mark = getattr(IfcSurfaceFeatureTypeEnum, 'MARK', INDETERMINATE) -tag = getattr(IfcSurfaceFeatureTypeEnum, 'TAG', INDETERMINATE) -treatment = getattr(IfcSurfaceFeatureTypeEnum, 'TREATMENT', INDETERMINATE) -defect = getattr(IfcSurfaceFeatureTypeEnum, 'DEFECT', INDETERMINATE) -hatchmarking = getattr(IfcSurfaceFeatureTypeEnum, 'HATCHMARKING', INDETERMINATE) -linemarking = getattr(IfcSurfaceFeatureTypeEnum, 'LINEMARKING', INDETERMINATE) -pavementsurfacemarking = getattr(IfcSurfaceFeatureTypeEnum, 'PAVEMENTSURFACEMARKING', INDETERMINATE) -symbolmarking = getattr(IfcSurfaceFeatureTypeEnum, 'SYMBOLMARKING', INDETERMINATE) -nonskidsurfacing = getattr(IfcSurfaceFeatureTypeEnum, 'NONSKIDSURFACING', INDETERMINATE) -rumblestrip = getattr(IfcSurfaceFeatureTypeEnum, 'RUMBLESTRIP', INDETERMINATE) -transverserumblestrip = getattr(IfcSurfaceFeatureTypeEnum, 'TRANSVERSERUMBLESTRIP', INDETERMINATE) -userdefined = getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSurfaceFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +mark = IfcSurfaceFeatureTypeEnum.MARK +tag = IfcSurfaceFeatureTypeEnum.TAG +treatment = IfcSurfaceFeatureTypeEnum.TREATMENT +defect = IfcSurfaceFeatureTypeEnum.DEFECT +hatchmarking = IfcSurfaceFeatureTypeEnum.HATCHMARKING +linemarking = IfcSurfaceFeatureTypeEnum.LINEMARKING +pavementsurfacemarking = IfcSurfaceFeatureTypeEnum.PAVEMENTSURFACEMARKING +symbolmarking = IfcSurfaceFeatureTypeEnum.SYMBOLMARKING +nonskidsurfacing = IfcSurfaceFeatureTypeEnum.NONSKIDSURFACING +rumblestrip = IfcSurfaceFeatureTypeEnum.RUMBLESTRIP +transverserumblestrip = IfcSurfaceFeatureTypeEnum.TRANSVERSERUMBLESTRIP +userdefined = IfcSurfaceFeatureTypeEnum.USERDEFINED +notdefined = IfcSurfaceFeatureTypeEnum.NOTDEFINED IfcSurfaceSide = enum_namespace() -positive = getattr(IfcSurfaceSide, 'POSITIVE', INDETERMINATE) -negative = getattr(IfcSurfaceSide, 'NEGATIVE', INDETERMINATE) -both = getattr(IfcSurfaceSide, 'BOTH', INDETERMINATE) +positive = IfcSurfaceSide.POSITIVE +negative = IfcSurfaceSide.NEGATIVE +both = IfcSurfaceSide.BOTH IfcSwitchingDeviceTypeEnum = enum_namespace() -contactor = getattr(IfcSwitchingDeviceTypeEnum, 'CONTACTOR', INDETERMINATE) -dimmerswitch = getattr(IfcSwitchingDeviceTypeEnum, 'DIMMERSWITCH', INDETERMINATE) -emergencystop = getattr(IfcSwitchingDeviceTypeEnum, 'EMERGENCYSTOP', INDETERMINATE) -keypad = getattr(IfcSwitchingDeviceTypeEnum, 'KEYPAD', INDETERMINATE) -momentaryswitch = getattr(IfcSwitchingDeviceTypeEnum, 'MOMENTARYSWITCH', INDETERMINATE) -selectorswitch = getattr(IfcSwitchingDeviceTypeEnum, 'SELECTORSWITCH', INDETERMINATE) -starter = getattr(IfcSwitchingDeviceTypeEnum, 'STARTER', INDETERMINATE) -switchdisconnector = getattr(IfcSwitchingDeviceTypeEnum, 'SWITCHDISCONNECTOR', INDETERMINATE) -toggleswitch = getattr(IfcSwitchingDeviceTypeEnum, 'TOGGLESWITCH', INDETERMINATE) -relay = getattr(IfcSwitchingDeviceTypeEnum, 'RELAY', INDETERMINATE) -start_and_stop_equipment = getattr(IfcSwitchingDeviceTypeEnum, 'START_AND_STOP_EQUIPMENT', INDETERMINATE) -userdefined = getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSwitchingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +contactor = IfcSwitchingDeviceTypeEnum.CONTACTOR +dimmerswitch = IfcSwitchingDeviceTypeEnum.DIMMERSWITCH +emergencystop = IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP +keypad = IfcSwitchingDeviceTypeEnum.KEYPAD +momentaryswitch = IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH +selectorswitch = IfcSwitchingDeviceTypeEnum.SELECTORSWITCH +starter = IfcSwitchingDeviceTypeEnum.STARTER +switchdisconnector = IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR +toggleswitch = IfcSwitchingDeviceTypeEnum.TOGGLESWITCH +relay = IfcSwitchingDeviceTypeEnum.RELAY +start_and_stop_equipment = IfcSwitchingDeviceTypeEnum.START_AND_STOP_EQUIPMENT +userdefined = IfcSwitchingDeviceTypeEnum.USERDEFINED +notdefined = IfcSwitchingDeviceTypeEnum.NOTDEFINED IfcSystemFurnitureElementTypeEnum = enum_namespace() -panel = getattr(IfcSystemFurnitureElementTypeEnum, 'PANEL', INDETERMINATE) -worksurface = getattr(IfcSystemFurnitureElementTypeEnum, 'WORKSURFACE', INDETERMINATE) -subrack = getattr(IfcSystemFurnitureElementTypeEnum, 'SUBRACK', INDETERMINATE) -userdefined = getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSystemFurnitureElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +panel = IfcSystemFurnitureElementTypeEnum.PANEL +worksurface = IfcSystemFurnitureElementTypeEnum.WORKSURFACE +subrack = IfcSystemFurnitureElementTypeEnum.SUBRACK +userdefined = IfcSystemFurnitureElementTypeEnum.USERDEFINED +notdefined = IfcSystemFurnitureElementTypeEnum.NOTDEFINED IfcTankTypeEnum = enum_namespace() -basin = getattr(IfcTankTypeEnum, 'BASIN', INDETERMINATE) -breakpressure = getattr(IfcTankTypeEnum, 'BREAKPRESSURE', INDETERMINATE) -expansion = getattr(IfcTankTypeEnum, 'EXPANSION', INDETERMINATE) -feedandexpansion = getattr(IfcTankTypeEnum, 'FEEDANDEXPANSION', INDETERMINATE) -pressurevessel = getattr(IfcTankTypeEnum, 'PRESSUREVESSEL', INDETERMINATE) -storage = getattr(IfcTankTypeEnum, 'STORAGE', INDETERMINATE) -vessel = getattr(IfcTankTypeEnum, 'VESSEL', INDETERMINATE) -oilretentiontray = getattr(IfcTankTypeEnum, 'OILRETENTIONTRAY', INDETERMINATE) -userdefined = getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTankTypeEnum, 'NOTDEFINED', INDETERMINATE) +basin = IfcTankTypeEnum.BASIN +breakpressure = IfcTankTypeEnum.BREAKPRESSURE +expansion = IfcTankTypeEnum.EXPANSION +feedandexpansion = IfcTankTypeEnum.FEEDANDEXPANSION +pressurevessel = IfcTankTypeEnum.PRESSUREVESSEL +storage = IfcTankTypeEnum.STORAGE +vessel = IfcTankTypeEnum.VESSEL +oilretentiontray = IfcTankTypeEnum.OILRETENTIONTRAY +userdefined = IfcTankTypeEnum.USERDEFINED +notdefined = IfcTankTypeEnum.NOTDEFINED IfcTaskDurationEnum = enum_namespace() -elapsedtime = getattr(IfcTaskDurationEnum, 'ELAPSEDTIME', INDETERMINATE) -worktime = getattr(IfcTaskDurationEnum, 'WORKTIME', INDETERMINATE) -notdefined = getattr(IfcTaskDurationEnum, 'NOTDEFINED', INDETERMINATE) +elapsedtime = IfcTaskDurationEnum.ELAPSEDTIME +worktime = IfcTaskDurationEnum.WORKTIME +notdefined = IfcTaskDurationEnum.NOTDEFINED IfcTaskTypeEnum = enum_namespace() -attendance = getattr(IfcTaskTypeEnum, 'ATTENDANCE', INDETERMINATE) -construction = getattr(IfcTaskTypeEnum, 'CONSTRUCTION', INDETERMINATE) -demolition = getattr(IfcTaskTypeEnum, 'DEMOLITION', INDETERMINATE) -dismantle = getattr(IfcTaskTypeEnum, 'DISMANTLE', INDETERMINATE) -disposal = getattr(IfcTaskTypeEnum, 'DISPOSAL', INDETERMINATE) -installation = getattr(IfcTaskTypeEnum, 'INSTALLATION', INDETERMINATE) -logistic = getattr(IfcTaskTypeEnum, 'LOGISTIC', INDETERMINATE) -maintenance = getattr(IfcTaskTypeEnum, 'MAINTENANCE', INDETERMINATE) -move = getattr(IfcTaskTypeEnum, 'MOVE', INDETERMINATE) -operation = getattr(IfcTaskTypeEnum, 'OPERATION', INDETERMINATE) -removal = getattr(IfcTaskTypeEnum, 'REMOVAL', INDETERMINATE) -renovation = getattr(IfcTaskTypeEnum, 'RENOVATION', INDETERMINATE) -userdefined = getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTaskTypeEnum, 'NOTDEFINED', INDETERMINATE) +attendance = IfcTaskTypeEnum.ATTENDANCE +construction = IfcTaskTypeEnum.CONSTRUCTION +demolition = IfcTaskTypeEnum.DEMOLITION +dismantle = IfcTaskTypeEnum.DISMANTLE +disposal = IfcTaskTypeEnum.DISPOSAL +installation = IfcTaskTypeEnum.INSTALLATION +logistic = IfcTaskTypeEnum.LOGISTIC +maintenance = IfcTaskTypeEnum.MAINTENANCE +move = IfcTaskTypeEnum.MOVE +operation = IfcTaskTypeEnum.OPERATION +removal = IfcTaskTypeEnum.REMOVAL +renovation = IfcTaskTypeEnum.RENOVATION +userdefined = IfcTaskTypeEnum.USERDEFINED +notdefined = IfcTaskTypeEnum.NOTDEFINED IfcTendonAnchorTypeEnum = enum_namespace() -coupler = getattr(IfcTendonAnchorTypeEnum, 'COUPLER', INDETERMINATE) -fixed_end = getattr(IfcTendonAnchorTypeEnum, 'FIXED_END', INDETERMINATE) -tensioning_end = getattr(IfcTendonAnchorTypeEnum, 'TENSIONING_END', INDETERMINATE) -userdefined = getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonAnchorTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonAnchorTypeEnum.COUPLER +fixed_end = IfcTendonAnchorTypeEnum.FIXED_END +tensioning_end = IfcTendonAnchorTypeEnum.TENSIONING_END +userdefined = IfcTendonAnchorTypeEnum.USERDEFINED +notdefined = IfcTendonAnchorTypeEnum.NOTDEFINED IfcTendonConduitTypeEnum = enum_namespace() -duct = getattr(IfcTendonConduitTypeEnum, 'DUCT', INDETERMINATE) -coupler = getattr(IfcTendonConduitTypeEnum, 'COUPLER', INDETERMINATE) -grouting_duct = getattr(IfcTendonConduitTypeEnum, 'GROUTING_DUCT', INDETERMINATE) -trumpet = getattr(IfcTendonConduitTypeEnum, 'TRUMPET', INDETERMINATE) -diabolo = getattr(IfcTendonConduitTypeEnum, 'DIABOLO', INDETERMINATE) -userdefined = getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonConduitTypeEnum, 'NOTDEFINED', INDETERMINATE) +duct = IfcTendonConduitTypeEnum.DUCT +coupler = IfcTendonConduitTypeEnum.COUPLER +grouting_duct = IfcTendonConduitTypeEnum.GROUTING_DUCT +trumpet = IfcTendonConduitTypeEnum.TRUMPET +diabolo = IfcTendonConduitTypeEnum.DIABOLO +userdefined = IfcTendonConduitTypeEnum.USERDEFINED +notdefined = IfcTendonConduitTypeEnum.NOTDEFINED IfcTendonTypeEnum = enum_namespace() -bar = getattr(IfcTendonTypeEnum, 'BAR', INDETERMINATE) -coated = getattr(IfcTendonTypeEnum, 'COATED', INDETERMINATE) -strand = getattr(IfcTendonTypeEnum, 'STRAND', INDETERMINATE) -wire = getattr(IfcTendonTypeEnum, 'WIRE', INDETERMINATE) -userdefined = getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonTypeEnum, 'NOTDEFINED', INDETERMINATE) +bar = IfcTendonTypeEnum.BAR +coated = IfcTendonTypeEnum.COATED +strand = IfcTendonTypeEnum.STRAND +wire = IfcTendonTypeEnum.WIRE +userdefined = IfcTendonTypeEnum.USERDEFINED +notdefined = IfcTendonTypeEnum.NOTDEFINED IfcTextPath = enum_namespace() -left = getattr(IfcTextPath, 'LEFT', INDETERMINATE) -right = getattr(IfcTextPath, 'RIGHT', INDETERMINATE) -up = getattr(IfcTextPath, 'UP', INDETERMINATE) -down = getattr(IfcTextPath, 'DOWN', INDETERMINATE) +left = IfcTextPath.LEFT +right = IfcTextPath.RIGHT +up = IfcTextPath.UP +down = IfcTextPath.DOWN IfcTimeSeriesDataTypeEnum = enum_namespace() -continuous = getattr(IfcTimeSeriesDataTypeEnum, 'CONTINUOUS', INDETERMINATE) -discrete = getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETE', INDETERMINATE) -discretebinary = getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETEBINARY', INDETERMINATE) -piecewisebinary = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISEBINARY', INDETERMINATE) -piecewiseconstant = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONSTANT', INDETERMINATE) -piecewisecontinuous = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONTINUOUS', INDETERMINATE) -notdefined = getattr(IfcTimeSeriesDataTypeEnum, 'NOTDEFINED', INDETERMINATE) +continuous = IfcTimeSeriesDataTypeEnum.CONTINUOUS +discrete = IfcTimeSeriesDataTypeEnum.DISCRETE +discretebinary = IfcTimeSeriesDataTypeEnum.DISCRETEBINARY +piecewisebinary = IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY +piecewiseconstant = IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT +piecewisecontinuous = IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS +notdefined = IfcTimeSeriesDataTypeEnum.NOTDEFINED IfcTrackElementTypeEnum = enum_namespace() -trackendofalignment = getattr(IfcTrackElementTypeEnum, 'TRACKENDOFALIGNMENT', INDETERMINATE) -blockingdevice = getattr(IfcTrackElementTypeEnum, 'BLOCKINGDEVICE', INDETERMINATE) -vehiclestop = getattr(IfcTrackElementTypeEnum, 'VEHICLESTOP', INDETERMINATE) -sleeper = getattr(IfcTrackElementTypeEnum, 'SLEEPER', INDETERMINATE) -half_set_of_blades = getattr(IfcTrackElementTypeEnum, 'HALF_SET_OF_BLADES', INDETERMINATE) -speedregulator = getattr(IfcTrackElementTypeEnum, 'SPEEDREGULATOR', INDETERMINATE) -derailer = getattr(IfcTrackElementTypeEnum, 'DERAILER', INDETERMINATE) -frog = getattr(IfcTrackElementTypeEnum, 'FROG', INDETERMINATE) -userdefined = getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTrackElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +trackendofalignment = IfcTrackElementTypeEnum.TRACKENDOFALIGNMENT +blockingdevice = IfcTrackElementTypeEnum.BLOCKINGDEVICE +vehiclestop = IfcTrackElementTypeEnum.VEHICLESTOP +sleeper = IfcTrackElementTypeEnum.SLEEPER +half_set_of_blades = IfcTrackElementTypeEnum.HALF_SET_OF_BLADES +speedregulator = IfcTrackElementTypeEnum.SPEEDREGULATOR +derailer = IfcTrackElementTypeEnum.DERAILER +frog = IfcTrackElementTypeEnum.FROG +userdefined = IfcTrackElementTypeEnum.USERDEFINED +notdefined = IfcTrackElementTypeEnum.NOTDEFINED IfcTransformerTypeEnum = enum_namespace() -current = getattr(IfcTransformerTypeEnum, 'CURRENT', INDETERMINATE) -frequency = getattr(IfcTransformerTypeEnum, 'FREQUENCY', INDETERMINATE) -inverter = getattr(IfcTransformerTypeEnum, 'INVERTER', INDETERMINATE) -rectifier = getattr(IfcTransformerTypeEnum, 'RECTIFIER', INDETERMINATE) -voltage = getattr(IfcTransformerTypeEnum, 'VOLTAGE', INDETERMINATE) -chopper = getattr(IfcTransformerTypeEnum, 'CHOPPER', INDETERMINATE) -combined = getattr(IfcTransformerTypeEnum, 'COMBINED', INDETERMINATE) -userdefined = getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTransformerTypeEnum, 'NOTDEFINED', INDETERMINATE) +current = IfcTransformerTypeEnum.CURRENT +frequency = IfcTransformerTypeEnum.FREQUENCY +inverter = IfcTransformerTypeEnum.INVERTER +rectifier = IfcTransformerTypeEnum.RECTIFIER +voltage = IfcTransformerTypeEnum.VOLTAGE +chopper = IfcTransformerTypeEnum.CHOPPER +combined = IfcTransformerTypeEnum.COMBINED +userdefined = IfcTransformerTypeEnum.USERDEFINED +notdefined = IfcTransformerTypeEnum.NOTDEFINED IfcTransitionCode = enum_namespace() -discontinuous = getattr(IfcTransitionCode, 'DISCONTINUOUS', INDETERMINATE) -continuous = getattr(IfcTransitionCode, 'CONTINUOUS', INDETERMINATE) -contsamegradient = getattr(IfcTransitionCode, 'CONTSAMEGRADIENT', INDETERMINATE) -contsamegradientsamecurvature = getattr(IfcTransitionCode, 'CONTSAMEGRADIENTSAMECURVATURE', INDETERMINATE) +discontinuous = IfcTransitionCode.DISCONTINUOUS +continuous = IfcTransitionCode.CONTINUOUS +contsamegradient = IfcTransitionCode.CONTSAMEGRADIENT +contsamegradientsamecurvature = IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE IfcTransportElementFixedTypeEnum = enum_namespace() -elevator = getattr(IfcTransportElementFixedTypeEnum, 'ELEVATOR', INDETERMINATE) -escalator = getattr(IfcTransportElementFixedTypeEnum, 'ESCALATOR', INDETERMINATE) -movingwalkway = getattr(IfcTransportElementFixedTypeEnum, 'MOVINGWALKWAY', INDETERMINATE) -craneway = getattr(IfcTransportElementFixedTypeEnum, 'CRANEWAY', INDETERMINATE) -liftinggear = getattr(IfcTransportElementFixedTypeEnum, 'LIFTINGGEAR', INDETERMINATE) -haulinggear = getattr(IfcTransportElementFixedTypeEnum, 'HAULINGGEAR', INDETERMINATE) -userdefined = getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTransportElementFixedTypeEnum, 'NOTDEFINED', INDETERMINATE) +elevator = IfcTransportElementFixedTypeEnum.ELEVATOR +escalator = IfcTransportElementFixedTypeEnum.ESCALATOR +movingwalkway = IfcTransportElementFixedTypeEnum.MOVINGWALKWAY +craneway = IfcTransportElementFixedTypeEnum.CRANEWAY +liftinggear = IfcTransportElementFixedTypeEnum.LIFTINGGEAR +haulinggear = IfcTransportElementFixedTypeEnum.HAULINGGEAR +userdefined = IfcTransportElementFixedTypeEnum.USERDEFINED +notdefined = IfcTransportElementFixedTypeEnum.NOTDEFINED IfcTransportElementNonFixedTypeEnum = enum_namespace() -vehicle = getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLE', INDETERMINATE) -vehicletracked = getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLETRACKED', INDETERMINATE) -rollingstock = getattr(IfcTransportElementNonFixedTypeEnum, 'ROLLINGSTOCK', INDETERMINATE) -vehiclewheeled = getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLEWHEELED', INDETERMINATE) -vehicleair = getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLEAIR', INDETERMINATE) -cargo = getattr(IfcTransportElementNonFixedTypeEnum, 'CARGO', INDETERMINATE) -vehiclemarine = getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLEMARINE', INDETERMINATE) -userdefined = getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTransportElementNonFixedTypeEnum, 'NOTDEFINED', INDETERMINATE) +vehicle = IfcTransportElementNonFixedTypeEnum.VEHICLE +vehicletracked = IfcTransportElementNonFixedTypeEnum.VEHICLETRACKED +rollingstock = IfcTransportElementNonFixedTypeEnum.ROLLINGSTOCK +vehiclewheeled = IfcTransportElementNonFixedTypeEnum.VEHICLEWHEELED +vehicleair = IfcTransportElementNonFixedTypeEnum.VEHICLEAIR +cargo = IfcTransportElementNonFixedTypeEnum.CARGO +vehiclemarine = IfcTransportElementNonFixedTypeEnum.VEHICLEMARINE +userdefined = IfcTransportElementNonFixedTypeEnum.USERDEFINED +notdefined = IfcTransportElementNonFixedTypeEnum.NOTDEFINED IfcTrimmingPreference = enum_namespace() -cartesian = getattr(IfcTrimmingPreference, 'CARTESIAN', INDETERMINATE) -parameter = getattr(IfcTrimmingPreference, 'PARAMETER', INDETERMINATE) -unspecified = getattr(IfcTrimmingPreference, 'UNSPECIFIED', INDETERMINATE) +cartesian = IfcTrimmingPreference.CARTESIAN +parameter = IfcTrimmingPreference.PARAMETER +unspecified = IfcTrimmingPreference.UNSPECIFIED IfcTubeBundleTypeEnum = enum_namespace() -finned = getattr(IfcTubeBundleTypeEnum, 'FINNED', INDETERMINATE) -userdefined = getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTubeBundleTypeEnum, 'NOTDEFINED', INDETERMINATE) +finned = IfcTubeBundleTypeEnum.FINNED +userdefined = IfcTubeBundleTypeEnum.USERDEFINED +notdefined = IfcTubeBundleTypeEnum.NOTDEFINED IfcUnitEnum = enum_namespace() -absorbeddoseunit = getattr(IfcUnitEnum, 'ABSORBEDDOSEUNIT', INDETERMINATE) -amountofsubstanceunit = getattr(IfcUnitEnum, 'AMOUNTOFSUBSTANCEUNIT', INDETERMINATE) -areaunit = getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE) -doseequivalentunit = getattr(IfcUnitEnum, 'DOSEEQUIVALENTUNIT', INDETERMINATE) -electriccapacitanceunit = getattr(IfcUnitEnum, 'ELECTRICCAPACITANCEUNIT', INDETERMINATE) -electricchargeunit = getattr(IfcUnitEnum, 'ELECTRICCHARGEUNIT', INDETERMINATE) -electricconductanceunit = getattr(IfcUnitEnum, 'ELECTRICCONDUCTANCEUNIT', INDETERMINATE) -electriccurrentunit = getattr(IfcUnitEnum, 'ELECTRICCURRENTUNIT', INDETERMINATE) -electricresistanceunit = getattr(IfcUnitEnum, 'ELECTRICRESISTANCEUNIT', INDETERMINATE) -electricvoltageunit = getattr(IfcUnitEnum, 'ELECTRICVOLTAGEUNIT', INDETERMINATE) -energyunit = getattr(IfcUnitEnum, 'ENERGYUNIT', INDETERMINATE) -forceunit = getattr(IfcUnitEnum, 'FORCEUNIT', INDETERMINATE) -frequencyunit = getattr(IfcUnitEnum, 'FREQUENCYUNIT', INDETERMINATE) -illuminanceunit = getattr(IfcUnitEnum, 'ILLUMINANCEUNIT', INDETERMINATE) -inductanceunit = getattr(IfcUnitEnum, 'INDUCTANCEUNIT', INDETERMINATE) -lengthunit = getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE) -luminousfluxunit = getattr(IfcUnitEnum, 'LUMINOUSFLUXUNIT', INDETERMINATE) -luminousintensityunit = getattr(IfcUnitEnum, 'LUMINOUSINTENSITYUNIT', INDETERMINATE) -magneticfluxdensityunit = getattr(IfcUnitEnum, 'MAGNETICFLUXDENSITYUNIT', INDETERMINATE) -magneticfluxunit = getattr(IfcUnitEnum, 'MAGNETICFLUXUNIT', INDETERMINATE) -massunit = getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE) -planeangleunit = getattr(IfcUnitEnum, 'PLANEANGLEUNIT', INDETERMINATE) -powerunit = getattr(IfcUnitEnum, 'POWERUNIT', INDETERMINATE) -pressureunit = getattr(IfcUnitEnum, 'PRESSUREUNIT', INDETERMINATE) -radioactivityunit = getattr(IfcUnitEnum, 'RADIOACTIVITYUNIT', INDETERMINATE) -solidangleunit = getattr(IfcUnitEnum, 'SOLIDANGLEUNIT', INDETERMINATE) -thermodynamictemperatureunit = getattr(IfcUnitEnum, 'THERMODYNAMICTEMPERATUREUNIT', INDETERMINATE) -timeunit = getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE) -volumeunit = getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE) -userdefined = getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE) +absorbeddoseunit = IfcUnitEnum.ABSORBEDDOSEUNIT +amountofsubstanceunit = IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT +areaunit = IfcUnitEnum.AREAUNIT +doseequivalentunit = IfcUnitEnum.DOSEEQUIVALENTUNIT +electriccapacitanceunit = IfcUnitEnum.ELECTRICCAPACITANCEUNIT +electricchargeunit = IfcUnitEnum.ELECTRICCHARGEUNIT +electricconductanceunit = IfcUnitEnum.ELECTRICCONDUCTANCEUNIT +electriccurrentunit = IfcUnitEnum.ELECTRICCURRENTUNIT +electricresistanceunit = IfcUnitEnum.ELECTRICRESISTANCEUNIT +electricvoltageunit = IfcUnitEnum.ELECTRICVOLTAGEUNIT +energyunit = IfcUnitEnum.ENERGYUNIT +forceunit = IfcUnitEnum.FORCEUNIT +frequencyunit = IfcUnitEnum.FREQUENCYUNIT +illuminanceunit = IfcUnitEnum.ILLUMINANCEUNIT +inductanceunit = IfcUnitEnum.INDUCTANCEUNIT +lengthunit = IfcUnitEnum.LENGTHUNIT +luminousfluxunit = IfcUnitEnum.LUMINOUSFLUXUNIT +luminousintensityunit = IfcUnitEnum.LUMINOUSINTENSITYUNIT +magneticfluxdensityunit = IfcUnitEnum.MAGNETICFLUXDENSITYUNIT +magneticfluxunit = IfcUnitEnum.MAGNETICFLUXUNIT +massunit = IfcUnitEnum.MASSUNIT +planeangleunit = IfcUnitEnum.PLANEANGLEUNIT +powerunit = IfcUnitEnum.POWERUNIT +pressureunit = IfcUnitEnum.PRESSUREUNIT +radioactivityunit = IfcUnitEnum.RADIOACTIVITYUNIT +solidangleunit = IfcUnitEnum.SOLIDANGLEUNIT +thermodynamictemperatureunit = IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT +timeunit = IfcUnitEnum.TIMEUNIT +volumeunit = IfcUnitEnum.VOLUMEUNIT +userdefined = IfcUnitEnum.USERDEFINED IfcUnitaryControlElementTypeEnum = enum_namespace() -alarmpanel = getattr(IfcUnitaryControlElementTypeEnum, 'ALARMPANEL', INDETERMINATE) -controlpanel = getattr(IfcUnitaryControlElementTypeEnum, 'CONTROLPANEL', INDETERMINATE) -gasdetectionpanel = getattr(IfcUnitaryControlElementTypeEnum, 'GASDETECTIONPANEL', INDETERMINATE) -indicatorpanel = getattr(IfcUnitaryControlElementTypeEnum, 'INDICATORPANEL', INDETERMINATE) -mimicpanel = getattr(IfcUnitaryControlElementTypeEnum, 'MIMICPANEL', INDETERMINATE) -humidistat = getattr(IfcUnitaryControlElementTypeEnum, 'HUMIDISTAT', INDETERMINATE) -thermostat = getattr(IfcUnitaryControlElementTypeEnum, 'THERMOSTAT', INDETERMINATE) -weatherstation = getattr(IfcUnitaryControlElementTypeEnum, 'WEATHERSTATION', INDETERMINATE) -combined = getattr(IfcUnitaryControlElementTypeEnum, 'COMBINED', INDETERMINATE) -userdefined = getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcUnitaryControlElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +alarmpanel = IfcUnitaryControlElementTypeEnum.ALARMPANEL +controlpanel = IfcUnitaryControlElementTypeEnum.CONTROLPANEL +gasdetectionpanel = IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL +indicatorpanel = IfcUnitaryControlElementTypeEnum.INDICATORPANEL +mimicpanel = IfcUnitaryControlElementTypeEnum.MIMICPANEL +humidistat = IfcUnitaryControlElementTypeEnum.HUMIDISTAT +thermostat = IfcUnitaryControlElementTypeEnum.THERMOSTAT +weatherstation = IfcUnitaryControlElementTypeEnum.WEATHERSTATION +combined = IfcUnitaryControlElementTypeEnum.COMBINED +userdefined = IfcUnitaryControlElementTypeEnum.USERDEFINED +notdefined = IfcUnitaryControlElementTypeEnum.NOTDEFINED IfcUnitaryEquipmentTypeEnum = enum_namespace() -airhandler = getattr(IfcUnitaryEquipmentTypeEnum, 'AIRHANDLER', INDETERMINATE) -airconditioningunit = getattr(IfcUnitaryEquipmentTypeEnum, 'AIRCONDITIONINGUNIT', INDETERMINATE) -dehumidifier = getattr(IfcUnitaryEquipmentTypeEnum, 'DEHUMIDIFIER', INDETERMINATE) -splitsystem = getattr(IfcUnitaryEquipmentTypeEnum, 'SPLITSYSTEM', INDETERMINATE) -rooftopunit = getattr(IfcUnitaryEquipmentTypeEnum, 'ROOFTOPUNIT', INDETERMINATE) -userdefined = getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcUnitaryEquipmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +airhandler = IfcUnitaryEquipmentTypeEnum.AIRHANDLER +airconditioningunit = IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT +dehumidifier = IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER +splitsystem = IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM +rooftopunit = IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT +userdefined = IfcUnitaryEquipmentTypeEnum.USERDEFINED +notdefined = IfcUnitaryEquipmentTypeEnum.NOTDEFINED IfcValveTypeEnum = enum_namespace() -airrelease = getattr(IfcValveTypeEnum, 'AIRRELEASE', INDETERMINATE) -antivacuum = getattr(IfcValveTypeEnum, 'ANTIVACUUM', INDETERMINATE) -changeover = getattr(IfcValveTypeEnum, 'CHANGEOVER', INDETERMINATE) -check = getattr(IfcValveTypeEnum, 'CHECK', INDETERMINATE) -commissioning = getattr(IfcValveTypeEnum, 'COMMISSIONING', INDETERMINATE) -diverting = getattr(IfcValveTypeEnum, 'DIVERTING', INDETERMINATE) -drawoffcock = getattr(IfcValveTypeEnum, 'DRAWOFFCOCK', INDETERMINATE) -doublecheck = getattr(IfcValveTypeEnum, 'DOUBLECHECK', INDETERMINATE) -doubleregulating = getattr(IfcValveTypeEnum, 'DOUBLEREGULATING', INDETERMINATE) -faucet = getattr(IfcValveTypeEnum, 'FAUCET', INDETERMINATE) -flushing = getattr(IfcValveTypeEnum, 'FLUSHING', INDETERMINATE) -gascock = getattr(IfcValveTypeEnum, 'GASCOCK', INDETERMINATE) -gastap = getattr(IfcValveTypeEnum, 'GASTAP', INDETERMINATE) -isolating = getattr(IfcValveTypeEnum, 'ISOLATING', INDETERMINATE) -mixing = getattr(IfcValveTypeEnum, 'MIXING', INDETERMINATE) -pressurereducing = getattr(IfcValveTypeEnum, 'PRESSUREREDUCING', INDETERMINATE) -pressurerelief = getattr(IfcValveTypeEnum, 'PRESSURERELIEF', INDETERMINATE) -regulating = getattr(IfcValveTypeEnum, 'REGULATING', INDETERMINATE) -safetycutoff = getattr(IfcValveTypeEnum, 'SAFETYCUTOFF', INDETERMINATE) -steamtrap = getattr(IfcValveTypeEnum, 'STEAMTRAP', INDETERMINATE) -stopcock = getattr(IfcValveTypeEnum, 'STOPCOCK', INDETERMINATE) -userdefined = getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcValveTypeEnum, 'NOTDEFINED', INDETERMINATE) +airrelease = IfcValveTypeEnum.AIRRELEASE +antivacuum = IfcValveTypeEnum.ANTIVACUUM +changeover = IfcValveTypeEnum.CHANGEOVER +check = IfcValveTypeEnum.CHECK +commissioning = IfcValveTypeEnum.COMMISSIONING +diverting = IfcValveTypeEnum.DIVERTING +drawoffcock = IfcValveTypeEnum.DRAWOFFCOCK +doublecheck = IfcValveTypeEnum.DOUBLECHECK +doubleregulating = IfcValveTypeEnum.DOUBLEREGULATING +faucet = IfcValveTypeEnum.FAUCET +flushing = IfcValveTypeEnum.FLUSHING +gascock = IfcValveTypeEnum.GASCOCK +gastap = IfcValveTypeEnum.GASTAP +isolating = IfcValveTypeEnum.ISOLATING +mixing = IfcValveTypeEnum.MIXING +pressurereducing = IfcValveTypeEnum.PRESSUREREDUCING +pressurerelief = IfcValveTypeEnum.PRESSURERELIEF +regulating = IfcValveTypeEnum.REGULATING +safetycutoff = IfcValveTypeEnum.SAFETYCUTOFF +steamtrap = IfcValveTypeEnum.STEAMTRAP +stopcock = IfcValveTypeEnum.STOPCOCK +userdefined = IfcValveTypeEnum.USERDEFINED +notdefined = IfcValveTypeEnum.NOTDEFINED IfcVibrationDamperTypeEnum = enum_namespace() -bending_yield = getattr(IfcVibrationDamperTypeEnum, 'BENDING_YIELD', INDETERMINATE) -shear_yield = getattr(IfcVibrationDamperTypeEnum, 'SHEAR_YIELD', INDETERMINATE) -axial_yield = getattr(IfcVibrationDamperTypeEnum, 'AXIAL_YIELD', INDETERMINATE) -friction = getattr(IfcVibrationDamperTypeEnum, 'FRICTION', INDETERMINATE) -viscous = getattr(IfcVibrationDamperTypeEnum, 'VISCOUS', INDETERMINATE) -rubber = getattr(IfcVibrationDamperTypeEnum, 'RUBBER', INDETERMINATE) -userdefined = getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVibrationDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_yield = IfcVibrationDamperTypeEnum.BENDING_YIELD +shear_yield = IfcVibrationDamperTypeEnum.SHEAR_YIELD +axial_yield = IfcVibrationDamperTypeEnum.AXIAL_YIELD +friction = IfcVibrationDamperTypeEnum.FRICTION +viscous = IfcVibrationDamperTypeEnum.VISCOUS +rubber = IfcVibrationDamperTypeEnum.RUBBER +userdefined = IfcVibrationDamperTypeEnum.USERDEFINED +notdefined = IfcVibrationDamperTypeEnum.NOTDEFINED IfcVibrationIsolatorTypeEnum = enum_namespace() -compression = getattr(IfcVibrationIsolatorTypeEnum, 'COMPRESSION', INDETERMINATE) -spring = getattr(IfcVibrationIsolatorTypeEnum, 'SPRING', INDETERMINATE) -base = getattr(IfcVibrationIsolatorTypeEnum, 'BASE', INDETERMINATE) -userdefined = getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVibrationIsolatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +compression = IfcVibrationIsolatorTypeEnum.COMPRESSION +spring = IfcVibrationIsolatorTypeEnum.SPRING +base = IfcVibrationIsolatorTypeEnum.BASE +userdefined = IfcVibrationIsolatorTypeEnum.USERDEFINED +notdefined = IfcVibrationIsolatorTypeEnum.NOTDEFINED IfcVoidingFeatureTypeEnum = enum_namespace() -cutout = getattr(IfcVoidingFeatureTypeEnum, 'CUTOUT', INDETERMINATE) -notch = getattr(IfcVoidingFeatureTypeEnum, 'NOTCH', INDETERMINATE) -hole = getattr(IfcVoidingFeatureTypeEnum, 'HOLE', INDETERMINATE) -miter = getattr(IfcVoidingFeatureTypeEnum, 'MITER', INDETERMINATE) -chamfer = getattr(IfcVoidingFeatureTypeEnum, 'CHAMFER', INDETERMINATE) -edge = getattr(IfcVoidingFeatureTypeEnum, 'EDGE', INDETERMINATE) -userdefined = getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVoidingFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +cutout = IfcVoidingFeatureTypeEnum.CUTOUT +notch = IfcVoidingFeatureTypeEnum.NOTCH +hole = IfcVoidingFeatureTypeEnum.HOLE +miter = IfcVoidingFeatureTypeEnum.MITER +chamfer = IfcVoidingFeatureTypeEnum.CHAMFER +edge = IfcVoidingFeatureTypeEnum.EDGE +userdefined = IfcVoidingFeatureTypeEnum.USERDEFINED +notdefined = IfcVoidingFeatureTypeEnum.NOTDEFINED IfcWallTypeEnum = enum_namespace() -movable = getattr(IfcWallTypeEnum, 'MOVABLE', INDETERMINATE) -parapet = getattr(IfcWallTypeEnum, 'PARAPET', INDETERMINATE) -partitioning = getattr(IfcWallTypeEnum, 'PARTITIONING', INDETERMINATE) -plumbingwall = getattr(IfcWallTypeEnum, 'PLUMBINGWALL', INDETERMINATE) -shear = getattr(IfcWallTypeEnum, 'SHEAR', INDETERMINATE) -solidwall = getattr(IfcWallTypeEnum, 'SOLIDWALL', INDETERMINATE) -standard = getattr(IfcWallTypeEnum, 'STANDARD', INDETERMINATE) -polygonal = getattr(IfcWallTypeEnum, 'POLYGONAL', INDETERMINATE) -elementedwall = getattr(IfcWallTypeEnum, 'ELEMENTEDWALL', INDETERMINATE) -retainingwall = getattr(IfcWallTypeEnum, 'RETAININGWALL', INDETERMINATE) -wavewall = getattr(IfcWallTypeEnum, 'WAVEWALL', INDETERMINATE) -userdefined = getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +movable = IfcWallTypeEnum.MOVABLE +parapet = IfcWallTypeEnum.PARAPET +partitioning = IfcWallTypeEnum.PARTITIONING +plumbingwall = IfcWallTypeEnum.PLUMBINGWALL +shear = IfcWallTypeEnum.SHEAR +solidwall = IfcWallTypeEnum.SOLIDWALL +standard = IfcWallTypeEnum.STANDARD +polygonal = IfcWallTypeEnum.POLYGONAL +elementedwall = IfcWallTypeEnum.ELEMENTEDWALL +retainingwall = IfcWallTypeEnum.RETAININGWALL +wavewall = IfcWallTypeEnum.WAVEWALL +userdefined = IfcWallTypeEnum.USERDEFINED +notdefined = IfcWallTypeEnum.NOTDEFINED IfcWasteTerminalTypeEnum = enum_namespace() -floortrap = getattr(IfcWasteTerminalTypeEnum, 'FLOORTRAP', INDETERMINATE) -floorwaste = getattr(IfcWasteTerminalTypeEnum, 'FLOORWASTE', INDETERMINATE) -gullysump = getattr(IfcWasteTerminalTypeEnum, 'GULLYSUMP', INDETERMINATE) -gullytrap = getattr(IfcWasteTerminalTypeEnum, 'GULLYTRAP', INDETERMINATE) -roofdrain = getattr(IfcWasteTerminalTypeEnum, 'ROOFDRAIN', INDETERMINATE) -wastedisposalunit = getattr(IfcWasteTerminalTypeEnum, 'WASTEDISPOSALUNIT', INDETERMINATE) -wastetrap = getattr(IfcWasteTerminalTypeEnum, 'WASTETRAP', INDETERMINATE) -userdefined = getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWasteTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +floortrap = IfcWasteTerminalTypeEnum.FLOORTRAP +floorwaste = IfcWasteTerminalTypeEnum.FLOORWASTE +gullysump = IfcWasteTerminalTypeEnum.GULLYSUMP +gullytrap = IfcWasteTerminalTypeEnum.GULLYTRAP +roofdrain = IfcWasteTerminalTypeEnum.ROOFDRAIN +wastedisposalunit = IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT +wastetrap = IfcWasteTerminalTypeEnum.WASTETRAP +userdefined = IfcWasteTerminalTypeEnum.USERDEFINED +notdefined = IfcWasteTerminalTypeEnum.NOTDEFINED IfcWindowPanelOperationEnum = enum_namespace() -sidehungrighthand = getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGRIGHTHAND', INDETERMINATE) -sidehunglefthand = getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGLEFTHAND', INDETERMINATE) -tiltandturnrighthand = getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNRIGHTHAND', INDETERMINATE) -tiltandturnlefthand = getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNLEFTHAND', INDETERMINATE) -tophung = getattr(IfcWindowPanelOperationEnum, 'TOPHUNG', INDETERMINATE) -bottomhung = getattr(IfcWindowPanelOperationEnum, 'BOTTOMHUNG', INDETERMINATE) -pivothorizontal = getattr(IfcWindowPanelOperationEnum, 'PIVOTHORIZONTAL', INDETERMINATE) -pivotvertical = getattr(IfcWindowPanelOperationEnum, 'PIVOTVERTICAL', INDETERMINATE) -slidinghorizontal = getattr(IfcWindowPanelOperationEnum, 'SLIDINGHORIZONTAL', INDETERMINATE) -slidingvertical = getattr(IfcWindowPanelOperationEnum, 'SLIDINGVERTICAL', INDETERMINATE) -removablecasement = getattr(IfcWindowPanelOperationEnum, 'REMOVABLECASEMENT', INDETERMINATE) -fixedcasement = getattr(IfcWindowPanelOperationEnum, 'FIXEDCASEMENT', INDETERMINATE) -otheroperation = getattr(IfcWindowPanelOperationEnum, 'OTHEROPERATION', INDETERMINATE) -notdefined = getattr(IfcWindowPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +sidehungrighthand = IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND +sidehunglefthand = IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND +tiltandturnrighthand = IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND +tiltandturnlefthand = IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND +tophung = IfcWindowPanelOperationEnum.TOPHUNG +bottomhung = IfcWindowPanelOperationEnum.BOTTOMHUNG +pivothorizontal = IfcWindowPanelOperationEnum.PIVOTHORIZONTAL +pivotvertical = IfcWindowPanelOperationEnum.PIVOTVERTICAL +slidinghorizontal = IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL +slidingvertical = IfcWindowPanelOperationEnum.SLIDINGVERTICAL +removablecasement = IfcWindowPanelOperationEnum.REMOVABLECASEMENT +fixedcasement = IfcWindowPanelOperationEnum.FIXEDCASEMENT +otheroperation = IfcWindowPanelOperationEnum.OTHEROPERATION +notdefined = IfcWindowPanelOperationEnum.NOTDEFINED IfcWindowPanelPositionEnum = enum_namespace() -left = getattr(IfcWindowPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = getattr(IfcWindowPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = getattr(IfcWindowPanelPositionEnum, 'RIGHT', INDETERMINATE) -bottom = getattr(IfcWindowPanelPositionEnum, 'BOTTOM', INDETERMINATE) -top = getattr(IfcWindowPanelPositionEnum, 'TOP', INDETERMINATE) -notdefined = getattr(IfcWindowPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcWindowPanelPositionEnum.LEFT +middle = IfcWindowPanelPositionEnum.MIDDLE +right = IfcWindowPanelPositionEnum.RIGHT +bottom = IfcWindowPanelPositionEnum.BOTTOM +top = IfcWindowPanelPositionEnum.TOP +notdefined = IfcWindowPanelPositionEnum.NOTDEFINED IfcWindowStyleConstructionEnum = enum_namespace() -aluminium = getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = getattr(IfcWindowStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = getattr(IfcWindowStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = getattr(IfcWindowStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -plastic = getattr(IfcWindowStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -other_construction = getattr(IfcWindowStyleConstructionEnum, 'OTHER_CONSTRUCTION', INDETERMINATE) -notdefined = getattr(IfcWindowStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcWindowStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcWindowStyleConstructionEnum.STEEL +wood = IfcWindowStyleConstructionEnum.WOOD +aluminium_wood = IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD +plastic = IfcWindowStyleConstructionEnum.PLASTIC +other_construction = IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION +notdefined = IfcWindowStyleConstructionEnum.NOTDEFINED IfcWindowStyleOperationEnum = enum_namespace() -single_panel = getattr(IfcWindowStyleOperationEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = getattr(IfcWindowStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowStyleOperationEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowStyleOperationEnum.USERDEFINED +notdefined = IfcWindowStyleOperationEnum.NOTDEFINED IfcWindowTypeEnum = enum_namespace() -window = getattr(IfcWindowTypeEnum, 'WINDOW', INDETERMINATE) -skylight = getattr(IfcWindowTypeEnum, 'SKYLIGHT', INDETERMINATE) -lightdome = getattr(IfcWindowTypeEnum, 'LIGHTDOME', INDETERMINATE) -userdefined = getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowTypeEnum, 'NOTDEFINED', INDETERMINATE) +window = IfcWindowTypeEnum.WINDOW +skylight = IfcWindowTypeEnum.SKYLIGHT +lightdome = IfcWindowTypeEnum.LIGHTDOME +userdefined = IfcWindowTypeEnum.USERDEFINED +notdefined = IfcWindowTypeEnum.NOTDEFINED IfcWindowTypePartitioningEnum = enum_namespace() -single_panel = getattr(IfcWindowTypePartitioningEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = getattr(IfcWindowTypePartitioningEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowTypePartitioningEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowTypePartitioningEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowTypePartitioningEnum.USERDEFINED +notdefined = IfcWindowTypePartitioningEnum.NOTDEFINED IfcWorkCalendarTypeEnum = enum_namespace() -firstshift = getattr(IfcWorkCalendarTypeEnum, 'FIRSTSHIFT', INDETERMINATE) -secondshift = getattr(IfcWorkCalendarTypeEnum, 'SECONDSHIFT', INDETERMINATE) -thirdshift = getattr(IfcWorkCalendarTypeEnum, 'THIRDSHIFT', INDETERMINATE) -userdefined = getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkCalendarTypeEnum, 'NOTDEFINED', INDETERMINATE) +firstshift = IfcWorkCalendarTypeEnum.FIRSTSHIFT +secondshift = IfcWorkCalendarTypeEnum.SECONDSHIFT +thirdshift = IfcWorkCalendarTypeEnum.THIRDSHIFT +userdefined = IfcWorkCalendarTypeEnum.USERDEFINED +notdefined = IfcWorkCalendarTypeEnum.NOTDEFINED IfcWorkPlanTypeEnum = enum_namespace() -actual = getattr(IfcWorkPlanTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = getattr(IfcWorkPlanTypeEnum, 'BASELINE', INDETERMINATE) -planned = getattr(IfcWorkPlanTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkPlanTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkPlanTypeEnum.ACTUAL +baseline = IfcWorkPlanTypeEnum.BASELINE +planned = IfcWorkPlanTypeEnum.PLANNED +userdefined = IfcWorkPlanTypeEnum.USERDEFINED +notdefined = IfcWorkPlanTypeEnum.NOTDEFINED IfcWorkScheduleTypeEnum = enum_namespace() -actual = getattr(IfcWorkScheduleTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = getattr(IfcWorkScheduleTypeEnum, 'BASELINE', INDETERMINATE) -planned = getattr(IfcWorkScheduleTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkScheduleTypeEnum.ACTUAL +baseline = IfcWorkScheduleTypeEnum.BASELINE +planned = IfcWorkScheduleTypeEnum.PLANNED +userdefined = IfcWorkScheduleTypeEnum.USERDEFINED +notdefined = IfcWorkScheduleTypeEnum.NOTDEFINED def IfcActionRequest(*args, **kwargs): return ifcopenshell.create_entity('IfcActionRequest', 'IFC4X3_RC3', *args, **kwargs) @@ -5148,7 +5158,7 @@ class IfcBoxAlignment_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False class IfcCardinalPointReference_GreaterThanZero: SCOPE = 'type' @@ -5229,7 +5239,7 @@ class IfcFontStyle_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False class IfcFontVariant_WR1: SCOPE = 'type' @@ -5238,7 +5248,7 @@ class IfcFontVariant_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False class IfcFontWeight_WR1: SCOPE = 'type' @@ -5247,7 +5257,7 @@ class IfcFontWeight_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False class IfcHeatingValueMeasure_WR1: SCOPE = 'type' @@ -5346,7 +5356,7 @@ class IfcTextAlignment_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False class IfcTextDecoration_WR1: SCOPE = 'type' @@ -5355,7 +5365,7 @@ class IfcTextDecoration_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False class IfcTextTransformation_WR1: SCOPE = 'type' @@ -5364,7 +5374,7 @@ class IfcTextTransformation_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False class IfcActorRole_WR1: SCOPE = 'entity' @@ -5373,8 +5383,8 @@ class IfcActorRole_WR1: @staticmethod def __call__(self): - role = getattr(self, 'Role', INDETERMINATE) - assert (role != getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) or (role == getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedRole', INDETERMINATE)))) is not False + role = express_getattr(self, 'Role', INDETERMINATE) + assert (role != express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) or (role == express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedRole', INDETERMINATE)))) is not False class IfcActuator_CorrectPredefinedType: SCOPE = 'entity' @@ -5383,8 +5393,8 @@ class IfcActuator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcActuator_CorrectTypeAssigned: SCOPE = 'entity' @@ -5393,8 +5403,8 @@ class IfcActuator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcactuatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcactuatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcActuatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -5403,8 +5413,8 @@ class IfcActuatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAddress_WR1: SCOPE = 'entity' @@ -5413,8 +5423,8 @@ class IfcAddress_WR1: @staticmethod def __call__(self): - purpose = getattr(self, 'Purpose', INDETERMINATE) - assert (not exists(purpose) or (purpose != getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) or (purpose == getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedPurpose', INDETERMINATE))))) is not False + purpose = express_getattr(self, 'Purpose', INDETERMINATE) + assert (not exists(purpose) or (purpose != express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) or (purpose == express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedPurpose', INDETERMINATE))))) is not False class IfcAdvancedBrep_HasAdvancedFaces: SCOPE = 'entity' @@ -5423,7 +5433,7 @@ class IfcAdvancedBrep_HasAdvancedFaces: @staticmethod def __call__(self): - assert (sizeof([afs for afs in getattr(getattr(self, 'Outer', INDETERMINATE), 'CfsFaces', INDETERMINATE) if not 'ifc4x3_rc3.ifcadvancedface' in typeof(afs)]) == 0) is not False + assert (sizeof([afs for afs in express_getattr(express_getattr(self, 'Outer', INDETERMINATE), 'CfsFaces', INDETERMINATE) if not 'ifc4x3_rc3.ifcadvancedface' in typeof(afs)]) == 0) is not False class IfcAdvancedBrepWithVoids_VoidsHaveAdvancedFaces: SCOPE = 'entity' @@ -5432,8 +5442,8 @@ class IfcAdvancedBrepWithVoids_VoidsHaveAdvancedFaces: @staticmethod def __call__(self): - voids = getattr(self, 'Voids', INDETERMINATE) - assert (sizeof([vsh for vsh in voids if sizeof([afs for afs in getattr(vsh, 'CfsFaces', INDETERMINATE) if not 'ifc4x3_rc3.ifcadvancedface' in typeof(afs)]) == 0]) == 0) is not False + voids = express_getattr(self, 'Voids', INDETERMINATE) + assert (sizeof([vsh for vsh in voids if sizeof([afs for afs in express_getattr(vsh, 'CfsFaces', INDETERMINATE) if not 'ifc4x3_rc3.ifcadvancedface' in typeof(afs)]) == 0]) == 0) is not False class IfcAdvancedFace_ApplicableSurface: SCOPE = 'entity' @@ -5442,7 +5452,7 @@ class IfcAdvancedFace_ApplicableSurface: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_rc3.ifcelementarysurface', 'ifc4x3_rc3.ifcsweptsurface', 'ifc4x3_rc3.ifcbsplinesurface'] * typeof(getattr(self, 'FaceSurface', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_rc3.ifcelementarysurface', 'ifc4x3_rc3.ifcsweptsurface', 'ifc4x3_rc3.ifcbsplinesurface'] * typeof(express_getattr(self, 'FaceSurface', INDETERMINATE))) == 1) is not False class IfcAdvancedFace_RequiresEdgeCurve: SCOPE = 'entity' @@ -5451,7 +5461,7 @@ class IfcAdvancedFace_RequiresEdgeCurve: @staticmethod def __call__(self): - assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3_rc3.ifcedgeloop' in typeof(getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in getattr(getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not 'ifc4x3_rc3.ifcedgecurve' in typeof(getattr(oe, 'EdgeElement', INDETERMINATE))]) == 0]) == 0) is not False + assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in express_getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3_rc3.ifcedgeloop' in typeof(express_getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in express_getattr(express_getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not 'ifc4x3_rc3.ifcedgecurve' in typeof(express_getattr(oe, 'EdgeElement', INDETERMINATE))]) == 0]) == 0) is not False class IfcAdvancedFace_ApplicableEdgeCurves: SCOPE = 'entity' @@ -5460,7 +5470,7 @@ class IfcAdvancedFace_ApplicableEdgeCurves: @staticmethod def __call__(self): - assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3_rc3.ifcedgeloop' in typeof(getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in getattr(getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not sizeof(['ifc4x3_rc3.ifcline', 'ifc4x3_rc3.ifcconic', 'ifc4x3_rc3.ifcpolyline', 'ifc4x3_rc3.ifcbsplinecurve'] * typeof(getattr(getattr(oe, 'EdgeElement', INDETERMINATE), 'EdgeGeometry', INDETERMINATE))) == 1]) == 0]) == 0) is not False + assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in express_getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3_rc3.ifcedgeloop' in typeof(express_getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in express_getattr(express_getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not sizeof(['ifc4x3_rc3.ifcline', 'ifc4x3_rc3.ifcconic', 'ifc4x3_rc3.ifcpolyline', 'ifc4x3_rc3.ifcbsplinecurve'] * typeof(express_getattr(express_getattr(oe, 'EdgeElement', INDETERMINATE), 'EdgeGeometry', INDETERMINATE))) == 1]) == 0]) == 0) is not False class IfcAirTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -5469,8 +5479,8 @@ class IfcAirTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -5479,8 +5489,8 @@ class IfcAirTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcairterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcairterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirTerminalBox_CorrectPredefinedType: SCOPE = 'entity' @@ -5489,8 +5499,8 @@ class IfcAirTerminalBox_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirTerminalBox_CorrectTypeAssigned: SCOPE = 'entity' @@ -5499,8 +5509,8 @@ class IfcAirTerminalBox_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcairterminalboxtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcairterminalboxtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirTerminalBoxType_CorrectPredefinedType: SCOPE = 'entity' @@ -5509,8 +5519,8 @@ class IfcAirTerminalBoxType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAirTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -5519,8 +5529,8 @@ class IfcAirTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAirToAirHeatRecovery_CorrectPredefinedType: SCOPE = 'entity' @@ -5529,8 +5539,8 @@ class IfcAirToAirHeatRecovery_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirToAirHeatRecovery_CorrectTypeAssigned: SCOPE = 'entity' @@ -5539,8 +5549,8 @@ class IfcAirToAirHeatRecovery_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcairtoairheatrecoverytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcairtoairheatrecoverytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirToAirHeatRecoveryType_CorrectPredefinedType: SCOPE = 'entity' @@ -5549,8 +5559,8 @@ class IfcAirToAirHeatRecoveryType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAlarm_CorrectPredefinedType: SCOPE = 'entity' @@ -5559,8 +5569,8 @@ class IfcAlarm_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAlarm_CorrectTypeAssigned: SCOPE = 'entity' @@ -5569,8 +5579,8 @@ class IfcAlarm_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcalarmtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcalarmtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAlarmType_CorrectPredefinedType: SCOPE = 'entity' @@ -5579,8 +5589,8 @@ class IfcAlarmType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcApproval_HasIdentifierOrName: SCOPE = 'entity' @@ -5589,8 +5599,8 @@ class IfcApproval_HasIdentifierOrName: @staticmethod def __call__(self): - identifier = getattr(self, 'Identifier', INDETERMINATE) - name = getattr(self, 'Name', INDETERMINATE) + identifier = express_getattr(self, 'Identifier', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) assert (exists(identifier) or exists(name)) is not False class IfcArbitraryClosedProfileDef_WR1: @@ -5600,8 +5610,8 @@ class IfcArbitraryClosedProfileDef_WR1: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) - assert (getattr(outercurve, 'Dim', INDETERMINATE) == 2) is not False + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) + assert (express_getattr(outercurve, 'Dim', INDETERMINATE) == 2) is not False class IfcArbitraryClosedProfileDef_WR2: SCOPE = 'entity' @@ -5610,7 +5620,7 @@ class IfcArbitraryClosedProfileDef_WR2: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) assert (not 'ifc4x3_rc3.ifcline' in typeof(outercurve)) is not False class IfcArbitraryClosedProfileDef_WR3: @@ -5620,7 +5630,7 @@ class IfcArbitraryClosedProfileDef_WR3: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) assert (not 'ifc4x3_rc3.ifcoffsetcurve2d' in typeof(outercurve)) is not False class IfcArbitraryOpenProfileDef_WR11: @@ -5630,7 +5640,7 @@ class IfcArbitraryOpenProfileDef_WR11: @staticmethod def __call__(self): - assert ('ifc4x3_rc3.ifccenterlineprofiledef' in typeof(self) or getattr(self, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False + assert ('ifc4x3_rc3.ifccenterlineprofiledef' in typeof(self) or express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False class IfcArbitraryOpenProfileDef_WR12: SCOPE = 'entity' @@ -5639,8 +5649,8 @@ class IfcArbitraryOpenProfileDef_WR12: @staticmethod def __call__(self): - curve = getattr(self, 'Curve', INDETERMINATE) - assert (getattr(curve, 'Dim', INDETERMINATE) == 2) is not False + curve = express_getattr(self, 'Curve', INDETERMINATE) + assert (express_getattr(curve, 'Dim', INDETERMINATE) == 2) is not False class IfcArbitraryProfileDefWithVoids_WR1: SCOPE = 'entity' @@ -5649,7 +5659,7 @@ class IfcArbitraryProfileDefWithVoids_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'ProfileType', INDETERMINATE) == area) is not False + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == area) is not False class IfcArbitraryProfileDefWithVoids_WR2: SCOPE = 'entity' @@ -5658,8 +5668,8 @@ class IfcArbitraryProfileDefWithVoids_WR2: @staticmethod def __call__(self): - innercurves = getattr(self, 'InnerCurves', INDETERMINATE) - assert (sizeof([temp for temp in innercurves if getattr(temp, 'Dim', INDETERMINATE) != 2]) == 0) is not False + innercurves = express_getattr(self, 'InnerCurves', INDETERMINATE) + assert (sizeof([temp for temp in innercurves if express_getattr(temp, 'Dim', INDETERMINATE) != 2]) == 0) is not False class IfcArbitraryProfileDefWithVoids_WR3: SCOPE = 'entity' @@ -5668,7 +5678,7 @@ class IfcArbitraryProfileDefWithVoids_WR3: @staticmethod def __call__(self): - innercurves = getattr(self, 'InnerCurves', INDETERMINATE) + innercurves = express_getattr(self, 'InnerCurves', INDETERMINATE) assert (sizeof([temp for temp in innercurves if 'ifc4x3_rc3.ifcline' in typeof(temp)]) == 0) is not False class IfcAsymmetricIShapeProfileDef_ValidFlangeThickness: @@ -5678,9 +5688,9 @@ class IfcAsymmetricIShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - bottomflangethickness = getattr(self, 'BottomFlangeThickness', INDETERMINATE) - topflangethickness = getattr(self, 'TopFlangeThickness', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + bottomflangethickness = express_getattr(self, 'BottomFlangeThickness', INDETERMINATE) + topflangethickness = express_getattr(self, 'TopFlangeThickness', INDETERMINATE) assert (not exists(topflangethickness) or bottomflangethickness + topflangethickness < overalldepth) is not False class IfcAsymmetricIShapeProfileDef_ValidWebThickness: @@ -5690,9 +5700,9 @@ class IfcAsymmetricIShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - bottomflangewidth = getattr(self, 'BottomFlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - topflangewidth = getattr(self, 'TopFlangeWidth', INDETERMINATE) + bottomflangewidth = express_getattr(self, 'BottomFlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + topflangewidth = express_getattr(self, 'TopFlangeWidth', INDETERMINATE) assert (webthickness < bottomflangewidth and webthickness < topflangewidth) is not False class IfcAsymmetricIShapeProfileDef_ValidBottomFilletRadius: @@ -5702,9 +5712,9 @@ class IfcAsymmetricIShapeProfileDef_ValidBottomFilletRadius: @staticmethod def __call__(self): - bottomflangewidth = getattr(self, 'BottomFlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - bottomflangefilletradius = getattr(self, 'BottomFlangeFilletRadius', INDETERMINATE) + bottomflangewidth = express_getattr(self, 'BottomFlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + bottomflangefilletradius = express_getattr(self, 'BottomFlangeFilletRadius', INDETERMINATE) assert (not exists(bottomflangefilletradius) or bottomflangefilletradius <= (bottomflangewidth - webthickness) / 2.0) is not False class IfcAsymmetricIShapeProfileDef_ValidTopFilletRadius: @@ -5714,9 +5724,9 @@ class IfcAsymmetricIShapeProfileDef_ValidTopFilletRadius: @staticmethod def __call__(self): - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - topflangewidth = getattr(self, 'TopFlangeWidth', INDETERMINATE) - topflangefilletradius = getattr(self, 'TopFlangeFilletRadius', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + topflangewidth = express_getattr(self, 'TopFlangeWidth', INDETERMINATE) + topflangefilletradius = express_getattr(self, 'TopFlangeFilletRadius', INDETERMINATE) assert (not exists(topflangefilletradius) or topflangefilletradius <= (topflangewidth - webthickness) / 2.0) is not False class IfcAudioVisualAppliance_CorrectPredefinedType: @@ -5726,8 +5736,8 @@ class IfcAudioVisualAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAudioVisualAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -5736,8 +5746,8 @@ class IfcAudioVisualAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcaudiovisualappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcaudiovisualappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAudioVisualApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -5746,8 +5756,8 @@ class IfcAudioVisualApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAxis1Placement_AxisIs3D: SCOPE = 'entity' @@ -5756,8 +5766,8 @@ class IfcAxis1Placement_AxisIs3D: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (not exists(axis) or getattr(axis, 'Dim', INDETERMINATE) == 3) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (not exists(axis) or express_getattr(axis, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis1Placement_LocationIs3D: SCOPE = 'entity' @@ -5766,7 +5776,7 @@ class IfcAxis1Placement_LocationIs3D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcAxis1Placement_LocationIsCP: SCOPE = 'entity' @@ -5775,10 +5785,10 @@ class IfcAxis1Placement_LocationIsCP: @staticmethod def __call__(self): - assert ('ifc4x3_rc3.ifccartesianpoint' in typeof(getattr(self, 'Location', INDETERMINATE))) is not False + assert ('ifc4x3_rc3.ifccartesianpoint' in typeof(express_getattr(self, 'Location', INDETERMINATE))) is not False def calc_IfcAxis1Placement_Z(self): - axis = getattr(self, 'Axis', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) return nvl(IfcNormalise(axis), IfcDirection(DirectionRatios=[0.0, 0.0, 1.0])) class IfcAxis2Placement2D_RefDirIs2D: @@ -5788,8 +5798,8 @@ class IfcAxis2Placement2D_RefDirIs2D: @staticmethod def __call__(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(refdirection) or getattr(refdirection, 'Dim', INDETERMINATE) == 2) is not False + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(refdirection) or express_getattr(refdirection, 'Dim', INDETERMINATE) == 2) is not False class IfcAxis2Placement2D_LocationIs2D: SCOPE = 'entity' @@ -5798,7 +5808,7 @@ class IfcAxis2Placement2D_LocationIs2D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False class IfcAxis2Placement2D_LocationIsCP: SCOPE = 'entity' @@ -5807,10 +5817,10 @@ class IfcAxis2Placement2D_LocationIsCP: @staticmethod def __call__(self): - assert ('ifc4x3_rc3.ifccartesianpoint' in typeof(getattr(self, 'Location', INDETERMINATE))) is not False + assert ('ifc4x3_rc3.ifccartesianpoint' in typeof(express_getattr(self, 'Location', INDETERMINATE))) is not False def calc_IfcAxis2Placement2D_P(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) return IfcBuild2Axes(refdirection) class IfcAxis2Placement3D_LocationIs3D: @@ -5820,7 +5830,7 @@ class IfcAxis2Placement3D_LocationIs3D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_AxisIs3D: SCOPE = 'entity' @@ -5829,8 +5839,8 @@ class IfcAxis2Placement3D_AxisIs3D: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (not exists(axis) or getattr(axis, 'Dim', INDETERMINATE) == 3) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (not exists(axis) or express_getattr(axis, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_RefDirIs3D: SCOPE = 'entity' @@ -5839,8 +5849,8 @@ class IfcAxis2Placement3D_RefDirIs3D: @staticmethod def __call__(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(refdirection) or getattr(refdirection, 'Dim', INDETERMINATE) == 3) is not False + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(refdirection) or express_getattr(refdirection, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_AxisToRefDirPosition: SCOPE = 'entity' @@ -5849,9 +5859,9 @@ class IfcAxis2Placement3D_AxisToRefDirPosition: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(axis) or not exists(refdirection) or getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(axis) or not exists(refdirection) or express_getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False class IfcAxis2Placement3D_AxisAndRefDirProvision: SCOPE = 'entity' @@ -5860,8 +5870,8 @@ class IfcAxis2Placement3D_AxisAndRefDirProvision: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) assert (not exists(axis) ^ exists(refdirection)) is not False class IfcAxis2Placement3D_LocationIsCP: @@ -5871,11 +5881,11 @@ class IfcAxis2Placement3D_LocationIsCP: @staticmethod def __call__(self): - assert ('ifc4x3_rc3.ifccartesianpoint' in typeof(getattr(self, 'Location', INDETERMINATE))) is not False + assert ('ifc4x3_rc3.ifccartesianpoint' in typeof(express_getattr(self, 'Location', INDETERMINATE))) is not False def calc_IfcAxis2Placement3D_P(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) return IfcBuildAxes(axis, refdirection) class IfcAxis2PlacementLinear_WR1: @@ -5885,7 +5895,7 @@ class IfcAxis2PlacementLinear_WR1: @staticmethod def __call__(self): - assert ('ifc4x3_rc3.ifcpointbydistanceexpression' in typeof(getattr(self, 'Location', INDETERMINATE))) is not False + assert ('ifc4x3_rc3.ifcpointbydistanceexpression' in typeof(express_getattr(self, 'Location', INDETERMINATE))) is not False class IfcAxis2PlacementLinear_WR2: SCOPE = 'entity' @@ -5894,9 +5904,9 @@ class IfcAxis2PlacementLinear_WR2: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(axis) or not exists(refdirection) or getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(axis) or not exists(refdirection) or express_getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False class IfcBSplineCurve_SameDim: SCOPE = 'entity' @@ -5905,16 +5915,16 @@ class IfcBSplineCurve_SameDim: @staticmethod def __call__(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - assert (sizeof([temp for temp in controlpointslist if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + assert (sizeof([temp for temp in controlpointslist if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcBSplineCurve_UpperIndexOnControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(controlpointslist) - 1 def calc_IfcBSplineCurve_ControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - upperindexoncontrolpoints = getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + upperindexoncontrolpoints = express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) return IfcListToArray(controlpointslist, 0, upperindexoncontrolpoints) class IfcBSplineCurveWithKnots_ConsistentBSpline: @@ -5924,11 +5934,11 @@ class IfcBSplineCurveWithKnots_ConsistentBSpline: @staticmethod def __call__(self): - degree = getattr(self, 'Degree', INDETERMINATE) - upperindexoncontrolpoints = getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) - knotmultiplicities = getattr(self, 'KnotMultiplicities', INDETERMINATE) - knots = getattr(self, 'Knots', INDETERMINATE) - upperindexonknots = getattr(self, 'UpperIndexOnKnots', INDETERMINATE) + degree = express_getattr(self, 'Degree', INDETERMINATE) + upperindexoncontrolpoints = express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) + knotmultiplicities = express_getattr(self, 'KnotMultiplicities', INDETERMINATE) + knots = express_getattr(self, 'Knots', INDETERMINATE) + upperindexonknots = express_getattr(self, 'UpperIndexOnKnots', INDETERMINATE) assert IfcConstraintsParamBSpline(degree, upperindexonknots, upperindexoncontrolpoints, knotmultiplicities, knots) is not False class IfcBSplineCurveWithKnots_CorrespondingKnotLists: @@ -5938,26 +5948,26 @@ class IfcBSplineCurveWithKnots_CorrespondingKnotLists: @staticmethod def __call__(self): - knotmultiplicities = getattr(self, 'KnotMultiplicities', INDETERMINATE) - upperindexonknots = getattr(self, 'UpperIndexOnKnots', INDETERMINATE) + knotmultiplicities = express_getattr(self, 'KnotMultiplicities', INDETERMINATE) + upperindexonknots = express_getattr(self, 'UpperIndexOnKnots', INDETERMINATE) assert (sizeof(knotmultiplicities) == upperindexonknots) is not False def calc_IfcBSplineCurveWithKnots_UpperIndexOnKnots(self): - knots = getattr(self, 'Knots', INDETERMINATE) + knots = express_getattr(self, 'Knots', INDETERMINATE) return sizeof(knots) def calc_IfcBSplineSurface_UUpper(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(controlpointslist) - 1 def calc_IfcBSplineSurface_VUpper(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) - 1 def calc_IfcBSplineSurface_ControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - uupper = getattr(self, 'UUpper', INDETERMINATE) - vupper = getattr(self, 'VUpper', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + uupper = express_getattr(self, 'UUpper', INDETERMINATE) + vupper = express_getattr(self, 'VUpper', INDETERMINATE) return IfcMakeArrayOfArray(controlpointslist, 0, uupper, 0, vupper) class IfcBSplineSurfaceWithKnots_UDirectionConstraints: @@ -5967,10 +5977,10 @@ class IfcBSplineSurfaceWithKnots_UDirectionConstraints: @staticmethod def __call__(self): - umultiplicities = getattr(self, 'UMultiplicities', INDETERMINATE) - uknots = getattr(self, 'UKnots', INDETERMINATE) - knotuupper = getattr(self, 'KnotUUpper', INDETERMINATE) - assert IfcConstraintsParamBSpline(getattr(self, 'UDegree', INDETERMINATE), knotuupper, getattr(self, 'UUpper', INDETERMINATE), umultiplicities, uknots) is not False + umultiplicities = express_getattr(self, 'UMultiplicities', INDETERMINATE) + uknots = express_getattr(self, 'UKnots', INDETERMINATE) + knotuupper = express_getattr(self, 'KnotUUpper', INDETERMINATE) + assert IfcConstraintsParamBSpline(express_getattr(self, 'UDegree', INDETERMINATE), knotuupper, express_getattr(self, 'UUpper', INDETERMINATE), umultiplicities, uknots) is not False class IfcBSplineSurfaceWithKnots_VDirectionConstraints: SCOPE = 'entity' @@ -5979,10 +5989,10 @@ class IfcBSplineSurfaceWithKnots_VDirectionConstraints: @staticmethod def __call__(self): - vmultiplicities = getattr(self, 'VMultiplicities', INDETERMINATE) - vknots = getattr(self, 'VKnots', INDETERMINATE) - knotvupper = getattr(self, 'KnotVUpper', INDETERMINATE) - assert IfcConstraintsParamBSpline(getattr(self, 'VDegree', INDETERMINATE), knotvupper, getattr(self, 'VUpper', INDETERMINATE), vmultiplicities, vknots) is not False + vmultiplicities = express_getattr(self, 'VMultiplicities', INDETERMINATE) + vknots = express_getattr(self, 'VKnots', INDETERMINATE) + knotvupper = express_getattr(self, 'KnotVUpper', INDETERMINATE) + assert IfcConstraintsParamBSpline(express_getattr(self, 'VDegree', INDETERMINATE), knotvupper, express_getattr(self, 'VUpper', INDETERMINATE), vmultiplicities, vknots) is not False class IfcBSplineSurfaceWithKnots_CorrespondingULists: SCOPE = 'entity' @@ -5991,8 +6001,8 @@ class IfcBSplineSurfaceWithKnots_CorrespondingULists: @staticmethod def __call__(self): - umultiplicities = getattr(self, 'UMultiplicities', INDETERMINATE) - knotuupper = getattr(self, 'KnotUUpper', INDETERMINATE) + umultiplicities = express_getattr(self, 'UMultiplicities', INDETERMINATE) + knotuupper = express_getattr(self, 'KnotUUpper', INDETERMINATE) assert (sizeof(umultiplicities) == knotuupper) is not False class IfcBSplineSurfaceWithKnots_CorrespondingVLists: @@ -6002,16 +6012,16 @@ class IfcBSplineSurfaceWithKnots_CorrespondingVLists: @staticmethod def __call__(self): - vmultiplicities = getattr(self, 'VMultiplicities', INDETERMINATE) - knotvupper = getattr(self, 'KnotVUpper', INDETERMINATE) + vmultiplicities = express_getattr(self, 'VMultiplicities', INDETERMINATE) + knotvupper = express_getattr(self, 'KnotVUpper', INDETERMINATE) assert (sizeof(vmultiplicities) == knotvupper) is not False def calc_IfcBSplineSurfaceWithKnots_KnotVUpper(self): - vknots = getattr(self, 'VKnots', INDETERMINATE) + vknots = express_getattr(self, 'VKnots', INDETERMINATE) return sizeof(vknots) def calc_IfcBSplineSurfaceWithKnots_KnotUUpper(self): - uknots = getattr(self, 'UKnots', INDETERMINATE) + uknots = express_getattr(self, 'UKnots', INDETERMINATE) return sizeof(uknots) class IfcBeam_CorrectPredefinedType: @@ -6021,8 +6031,8 @@ class IfcBeam_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBeam_CorrectTypeAssigned: SCOPE = 'entity' @@ -6031,8 +6041,8 @@ class IfcBeam_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcbeamtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcbeamtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBeamStandardCase_HasMaterialProfileSetUsage: SCOPE = 'entity' @@ -6041,7 +6051,7 @@ class IfcBeamStandardCase_HasMaterialProfileSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc3.ifcrelassociates.relatedobjects') if 'ifc4x3_rc3.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc3.ifcmaterialprofilesetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc3.ifcrelassociates.relatedobjects') if 'ifc4x3_rc3.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc3.ifcmaterialprofilesetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcBeamType_CorrectPredefinedType: SCOPE = 'entity' @@ -6050,8 +6060,8 @@ class IfcBeamType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBearing_CorrectPredefinedType: SCOPE = 'entity' @@ -6060,8 +6070,8 @@ class IfcBearing_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBearing_CorrectTypeAssigned: SCOPE = 'entity' @@ -6070,8 +6080,8 @@ class IfcBearing_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcbearingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcbearingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBearingType_CorrectPredefinedType: SCOPE = 'entity' @@ -6080,8 +6090,8 @@ class IfcBearingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBlobTexture_SupportedRasterFormat: SCOPE = 'entity' @@ -6090,7 +6100,7 @@ class IfcBlobTexture_SupportedRasterFormat: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['bmp', 'jpg', 'gif', 'png']) is not False + assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['bmp', 'jpg', 'gif', 'png']) is not False class IfcBlobTexture_RasterCodeByteStream: SCOPE = 'entity' @@ -6099,7 +6109,7 @@ class IfcBlobTexture_RasterCodeByteStream: @staticmethod def __call__(self): - rastercode = getattr(self, 'RasterCode', INDETERMINATE) + rastercode = express_getattr(self, 'RasterCode', INDETERMINATE) assert (blength(rastercode) % 8 == 0) is not False class IfcBoiler_CorrectPredefinedType: @@ -6109,8 +6119,8 @@ class IfcBoiler_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBoiler_CorrectTypeAssigned: SCOPE = 'entity' @@ -6119,8 +6129,8 @@ class IfcBoiler_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcboilertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcboilertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBoilerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6129,8 +6139,8 @@ class IfcBoilerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBooleanClippingResult_FirstOperandType: SCOPE = 'entity' @@ -6139,7 +6149,7 @@ class IfcBooleanClippingResult_FirstOperandType: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) assert ('ifc4x3_rc3.ifcsweptareasolid' in typeof(firstoperand) or 'ifc4x3_rc3.ifcsweptdiscsolid' in typeof(firstoperand) or 'ifc4x3_rc3.ifcbooleanclippingresult' in typeof(firstoperand)) is not False class IfcBooleanClippingResult_SecondOperandType: @@ -6149,7 +6159,7 @@ class IfcBooleanClippingResult_SecondOperandType: @staticmethod def __call__(self): - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) assert ('ifc4x3_rc3.ifchalfspacesolid' in typeof(secondoperand)) is not False class IfcBooleanClippingResult_OperatorType: @@ -6159,7 +6169,7 @@ class IfcBooleanClippingResult_OperatorType: @staticmethod def __call__(self): - operator = getattr(self, 'Operator', INDETERMINATE) + operator = express_getattr(self, 'Operator', INDETERMINATE) assert (operator == difference) is not False class IfcBooleanResult_SameDim: @@ -6169,9 +6179,9 @@ class IfcBooleanResult_SameDim: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) - assert (getattr(firstoperand, 'Dim', INDETERMINATE) == getattr(secondoperand, 'Dim', INDETERMINATE)) is not False + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) + assert (express_getattr(firstoperand, 'Dim', INDETERMINATE) == express_getattr(secondoperand, 'Dim', INDETERMINATE)) is not False class IfcBooleanResult_FirstOperandClosed: SCOPE = 'entity' @@ -6180,8 +6190,8 @@ class IfcBooleanResult_FirstOperandClosed: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - assert (not 'ifc4x3_rc3.ifctessellatedfaceset' in typeof(firstoperand) or (exists(getattr(firstoperand, 'Closed', INDETERMINATE)) and getattr(firstoperand, 'Closed', INDETERMINATE))) is not False + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + assert (not 'ifc4x3_rc3.ifctessellatedfaceset' in typeof(firstoperand) or (exists(express_getattr(firstoperand, 'Closed', INDETERMINATE)) and express_getattr(firstoperand, 'Closed', INDETERMINATE))) is not False class IfcBooleanResult_SecondOperandClosed: SCOPE = 'entity' @@ -6190,12 +6200,12 @@ class IfcBooleanResult_SecondOperandClosed: @staticmethod def __call__(self): - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) - assert (not 'ifc4x3_rc3.ifctessellatedfaceset' in typeof(secondoperand) or (exists(getattr(secondoperand, 'Closed', INDETERMINATE)) and getattr(secondoperand, 'Closed', INDETERMINATE))) is not False + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) + assert (not 'ifc4x3_rc3.ifctessellatedfaceset' in typeof(secondoperand) or (exists(express_getattr(secondoperand, 'Closed', INDETERMINATE)) and express_getattr(secondoperand, 'Closed', INDETERMINATE))) is not False def calc_IfcBooleanResult_Dim(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - return getattr(firstoperand, 'Dim', INDETERMINATE) + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + return express_getattr(firstoperand, 'Dim', INDETERMINATE) class IfcBoundaryCurve_IsClosed: SCOPE = 'entity' @@ -6204,7 +6214,7 @@ class IfcBoundaryCurve_IsClosed: @staticmethod def __call__(self): - assert getattr(self, 'ClosedCurve', INDETERMINATE) is not False + assert express_getattr(self, 'ClosedCurve', INDETERMINATE) is not False def calc_IfcBoundingBox_Dim(self): return 3 @@ -6216,7 +6226,7 @@ class IfcBoxedHalfSpace_UnboundedSurface: @staticmethod def __call__(self): - assert (not 'ifc4x3_rc3.ifccurveboundedplane' in typeof(getattr(self, 'BaseSurface', INDETERMINATE))) is not False + assert (not 'ifc4x3_rc3.ifccurveboundedplane' in typeof(express_getattr(self, 'BaseSurface', INDETERMINATE))) is not False class IfcBridge_CorrectPredefinedType: SCOPE = 'entity' @@ -6225,8 +6235,8 @@ class IfcBridge_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuildingElementPart_CorrectPredefinedType: SCOPE = 'entity' @@ -6235,8 +6245,8 @@ class IfcBuildingElementPart_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuildingElementPart_CorrectTypeAssigned: SCOPE = 'entity' @@ -6245,8 +6255,8 @@ class IfcBuildingElementPart_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcbuildingelementparttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcbuildingelementparttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBuildingElementPartType_CorrectPredefinedType: SCOPE = 'entity' @@ -6255,8 +6265,8 @@ class IfcBuildingElementPartType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBuildingElementProxy_HasObjectName: SCOPE = 'entity' @@ -6265,7 +6275,7 @@ class IfcBuildingElementProxy_HasObjectName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcBuildingElementProxy_CorrectPredefinedType: SCOPE = 'entity' @@ -6274,8 +6284,8 @@ class IfcBuildingElementProxy_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuildingElementProxy_CorrectTypeAssigned: SCOPE = 'entity' @@ -6284,8 +6294,8 @@ class IfcBuildingElementProxy_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcbuildingelementproxytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcbuildingelementproxytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBuildingElementProxyType_CorrectPredefinedType: SCOPE = 'entity' @@ -6294,8 +6304,8 @@ class IfcBuildingElementProxyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBuiltElement_MaxOneMaterialAssociation: SCOPE = 'entity' @@ -6304,7 +6314,7 @@ class IfcBuiltElement_MaxOneMaterialAssociation: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'HasAssociations', INDETERMINATE) if 'ifc4x3_rc3.ifcrelassociatesmaterial' in typeof(temp)]) <= 1) is not False + assert (sizeof([temp for temp in express_getattr(self, 'HasAssociations', INDETERMINATE) if 'ifc4x3_rc3.ifcrelassociatesmaterial' in typeof(temp)]) <= 1) is not False class IfcBuiltSystem_CorrectPredefinedType: SCOPE = 'entity' @@ -6313,8 +6323,8 @@ class IfcBuiltSystem_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBurner_CorrectPredefinedType: SCOPE = 'entity' @@ -6323,8 +6333,8 @@ class IfcBurner_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBurner_CorrectTypeAssigned: SCOPE = 'entity' @@ -6333,8 +6343,8 @@ class IfcBurner_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcburnertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcburnertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBurnerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6343,8 +6353,8 @@ class IfcBurnerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCShapeProfileDef_ValidGirth: SCOPE = 'entity' @@ -6353,8 +6363,8 @@ class IfcCShapeProfileDef_ValidGirth: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - girth = getattr(self, 'Girth', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + girth = express_getattr(self, 'Girth', INDETERMINATE) assert (girth < depth / 2.0) is not False class IfcCShapeProfileDef_ValidInternalFilletRadius: @@ -6364,10 +6374,10 @@ class IfcCShapeProfileDef_ValidInternalFilletRadius: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - internalfilletradius = getattr(self, 'InternalFilletRadius', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + internalfilletradius = express_getattr(self, 'InternalFilletRadius', INDETERMINATE) assert (not exists(internalfilletradius) or (internalfilletradius <= width / 2.0 - wallthickness and internalfilletradius <= depth / 2.0 - wallthickness)) is not False class IfcCShapeProfileDef_ValidWallThickness: @@ -6377,9 +6387,9 @@ class IfcCShapeProfileDef_ValidWallThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) assert (wallthickness < width / 2.0 and wallthickness < depth / 2.0) is not False class IfcCableCarrierFitting_CorrectPredefinedType: @@ -6389,8 +6399,8 @@ class IfcCableCarrierFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableCarrierFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -6399,8 +6409,8 @@ class IfcCableCarrierFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccablecarrierfittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccablecarrierfittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableCarrierFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -6409,8 +6419,8 @@ class IfcCableCarrierFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableCarrierSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -6419,8 +6429,8 @@ class IfcCableCarrierSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableCarrierSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -6429,8 +6439,8 @@ class IfcCableCarrierSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccablecarriersegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccablecarriersegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableCarrierSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -6439,8 +6449,8 @@ class IfcCableCarrierSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -6449,8 +6459,8 @@ class IfcCableFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -6459,8 +6469,8 @@ class IfcCableFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccablefittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccablefittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -6469,8 +6479,8 @@ class IfcCableFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -6479,8 +6489,8 @@ class IfcCableSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -6489,8 +6499,8 @@ class IfcCableSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccablesegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccablesegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -6499,8 +6509,8 @@ class IfcCableSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCaissonFoundation_CorrectPredefinedType: SCOPE = 'entity' @@ -6509,8 +6519,8 @@ class IfcCaissonFoundation_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCaissonFoundation_CorrectTypeAssigned: SCOPE = 'entity' @@ -6519,8 +6529,8 @@ class IfcCaissonFoundation_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccaissonfoundationtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccaissonfoundationtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCaissonFoundationType_CorrectPredefinedType: SCOPE = 'entity' @@ -6529,8 +6539,8 @@ class IfcCaissonFoundationType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCartesianPoint_CP2Dor3D: SCOPE = 'entity' @@ -6539,11 +6549,11 @@ class IfcCartesianPoint_CP2Dor3D: @staticmethod def __call__(self): - coordinates = getattr(self, 'Coordinates', INDETERMINATE) + coordinates = express_getattr(self, 'Coordinates', INDETERMINATE) assert (hiindex(coordinates) >= 2) is not False def calc_IfcCartesianPoint_Dim(self): - coordinates = getattr(self, 'Coordinates', INDETERMINATE) + coordinates = express_getattr(self, 'Coordinates', INDETERMINATE) return hiindex(coordinates) def calc_IfcCartesianPointList_Dim(self): @@ -6556,16 +6566,16 @@ class IfcCartesianTransformationOperator_ScaleGreaterZero: @staticmethod def __call__(self): - scl = getattr(self, 'Scl', INDETERMINATE) + scl = express_getattr(self, 'Scl', INDETERMINATE) assert (scl > 0.0) is not False def calc_IfcCartesianTransformationOperator_Scl(self): - scale = getattr(self, 'Scale', INDETERMINATE) + scale = express_getattr(self, 'Scale', INDETERMINATE) return nvl(scale, 1.0) def calc_IfcCartesianTransformationOperator_Dim(self): - localorigin = getattr(self, 'LocalOrigin', INDETERMINATE) - return getattr(localorigin, 'Dim', INDETERMINATE) + localorigin = express_getattr(self, 'LocalOrigin', INDETERMINATE) + return express_getattr(localorigin, 'Dim', INDETERMINATE) class IfcCartesianTransformationOperator2D_DimEqual2: SCOPE = 'entity' @@ -6574,7 +6584,7 @@ class IfcCartesianTransformationOperator2D_DimEqual2: @staticmethod def __call__(self): - assert (getattr(self, 'Dim', INDETERMINATE) == 2) is not False + assert (express_getattr(self, 'Dim', INDETERMINATE) == 2) is not False class IfcCartesianTransformationOperator2D_Axis1Is2D: SCOPE = 'entity' @@ -6583,7 +6593,7 @@ class IfcCartesianTransformationOperator2D_Axis1Is2D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis1', INDETERMINATE)) or getattr(getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (not exists(express_getattr(self, 'Axis1', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False class IfcCartesianTransformationOperator2D_Axis2Is2D: SCOPE = 'entity' @@ -6592,10 +6602,10 @@ class IfcCartesianTransformationOperator2D_Axis2Is2D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis2', INDETERMINATE)) or getattr(getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (not exists(express_getattr(self, 'Axis2', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False def calc_IfcCartesianTransformationOperator2D_U(self): - return IfcBaseAxis(2, getattr(self, 'Axis1', INDETERMINATE), getattr(self, 'Axis2', INDETERMINATE), None) + return IfcBaseAxis(2, express_getattr(self, 'Axis1', INDETERMINATE), express_getattr(self, 'Axis2', INDETERMINATE), None) class IfcCartesianTransformationOperator2DnonUniform_Scale2GreaterZero: SCOPE = 'entity' @@ -6604,12 +6614,12 @@ class IfcCartesianTransformationOperator2DnonUniform_Scale2GreaterZero: @staticmethod def __call__(self): - scl2 = getattr(self, 'Scl2', INDETERMINATE) + scl2 = express_getattr(self, 'Scl2', INDETERMINATE) assert (scl2 > 0.0) is not False def calc_IfcCartesianTransformationOperator2DnonUniform_Scl2(self): - scale2 = getattr(self, 'Scale2', INDETERMINATE) - return nvl(scale2, getattr(self, 'Scl', INDETERMINATE)) + scale2 = express_getattr(self, 'Scale2', INDETERMINATE) + return nvl(scale2, express_getattr(self, 'Scl', INDETERMINATE)) class IfcCartesianTransformationOperator3D_DimIs3D: SCOPE = 'entity' @@ -6618,7 +6628,7 @@ class IfcCartesianTransformationOperator3D_DimIs3D: @staticmethod def __call__(self): - assert (getattr(self, 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(self, 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_Axis1Is3D: SCOPE = 'entity' @@ -6627,7 +6637,7 @@ class IfcCartesianTransformationOperator3D_Axis1Is3D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis1', INDETERMINATE)) or getattr(getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (not exists(express_getattr(self, 'Axis1', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_Axis2Is3D: SCOPE = 'entity' @@ -6636,7 +6646,7 @@ class IfcCartesianTransformationOperator3D_Axis2Is3D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis2', INDETERMINATE)) or getattr(getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (not exists(express_getattr(self, 'Axis2', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_Axis3Is3D: SCOPE = 'entity' @@ -6645,12 +6655,12 @@ class IfcCartesianTransformationOperator3D_Axis3Is3D: @staticmethod def __call__(self): - axis3 = getattr(self, 'Axis3', INDETERMINATE) - assert (not exists(axis3) or getattr(axis3, 'Dim', INDETERMINATE) == 3) is not False + axis3 = express_getattr(self, 'Axis3', INDETERMINATE) + assert (not exists(axis3) or express_getattr(axis3, 'Dim', INDETERMINATE) == 3) is not False def calc_IfcCartesianTransformationOperator3D_U(self): - axis3 = getattr(self, 'Axis3', INDETERMINATE) - return IfcBaseAxis(3, getattr(self, 'Axis1', INDETERMINATE), getattr(self, 'Axis2', INDETERMINATE), axis3) + axis3 = express_getattr(self, 'Axis3', INDETERMINATE) + return IfcBaseAxis(3, express_getattr(self, 'Axis1', INDETERMINATE), express_getattr(self, 'Axis2', INDETERMINATE), axis3) class IfcCartesianTransformationOperator3DnonUniform_Scale2GreaterZero: SCOPE = 'entity' @@ -6659,7 +6669,7 @@ class IfcCartesianTransformationOperator3DnonUniform_Scale2GreaterZero: @staticmethod def __call__(self): - scl2 = getattr(self, 'Scl2', INDETERMINATE) + scl2 = express_getattr(self, 'Scl2', INDETERMINATE) assert (scl2 > 0.0) is not False class IfcCartesianTransformationOperator3DnonUniform_Scale3GreaterZero: @@ -6669,16 +6679,16 @@ class IfcCartesianTransformationOperator3DnonUniform_Scale3GreaterZero: @staticmethod def __call__(self): - scl3 = getattr(self, 'Scl3', INDETERMINATE) + scl3 = express_getattr(self, 'Scl3', INDETERMINATE) assert (scl3 > 0.0) is not False def calc_IfcCartesianTransformationOperator3DnonUniform_Scl2(self): - scale2 = getattr(self, 'Scale2', INDETERMINATE) - return nvl(scale2, getattr(self, 'Scl', INDETERMINATE)) + scale2 = express_getattr(self, 'Scale2', INDETERMINATE) + return nvl(scale2, express_getattr(self, 'Scl', INDETERMINATE)) def calc_IfcCartesianTransformationOperator3DnonUniform_Scl3(self): - scale3 = getattr(self, 'Scale3', INDETERMINATE) - return nvl(scale3, getattr(self, 'Scl', INDETERMINATE)) + scale3 = express_getattr(self, 'Scale3', INDETERMINATE) + return nvl(scale3, express_getattr(self, 'Scl', INDETERMINATE)) class IfcChiller_CorrectPredefinedType: SCOPE = 'entity' @@ -6687,8 +6697,8 @@ class IfcChiller_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcChiller_CorrectTypeAssigned: SCOPE = 'entity' @@ -6697,8 +6707,8 @@ class IfcChiller_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcchillertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcchillertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcChillerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6707,8 +6717,8 @@ class IfcChillerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcChimney_CorrectPredefinedType: SCOPE = 'entity' @@ -6717,8 +6727,8 @@ class IfcChimney_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcChimney_CorrectTypeAssigned: SCOPE = 'entity' @@ -6727,8 +6737,8 @@ class IfcChimney_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcchimneytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcchimneytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcChimneyType_CorrectPredefinedType: SCOPE = 'entity' @@ -6737,8 +6747,8 @@ class IfcChimneyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCircleHollowProfileDef_WR1: SCOPE = 'entity' @@ -6747,8 +6757,8 @@ class IfcCircleHollowProfileDef_WR1: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - assert (wallthickness < getattr(self, 'Radius', INDETERMINATE)) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + assert (wallthickness < express_getattr(self, 'Radius', INDETERMINATE)) is not False class IfcCoil_CorrectPredefinedType: SCOPE = 'entity' @@ -6757,8 +6767,8 @@ class IfcCoil_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCoil_CorrectTypeAssigned: SCOPE = 'entity' @@ -6767,8 +6777,8 @@ class IfcCoil_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccoiltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccoiltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoilType_CorrectPredefinedType: SCOPE = 'entity' @@ -6777,8 +6787,8 @@ class IfcCoilType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcColumn_CorrectPredefinedType: SCOPE = 'entity' @@ -6787,8 +6797,8 @@ class IfcColumn_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcColumn_CorrectTypeAssigned: SCOPE = 'entity' @@ -6797,8 +6807,8 @@ class IfcColumn_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccolumntype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccolumntype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcColumnStandardCase_HasMaterialProfileSetUsage: SCOPE = 'entity' @@ -6807,7 +6817,7 @@ class IfcColumnStandardCase_HasMaterialProfileSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc3.ifcrelassociates.relatedobjects') if 'ifc4x3_rc3.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc3.ifcmaterialprofilesetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc3.ifcrelassociates.relatedobjects') if 'ifc4x3_rc3.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc3.ifcmaterialprofilesetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcColumnType_CorrectPredefinedType: SCOPE = 'entity' @@ -6816,8 +6826,8 @@ class IfcColumnType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCommunicationsAppliance_CorrectPredefinedType: SCOPE = 'entity' @@ -6826,8 +6836,8 @@ class IfcCommunicationsAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCommunicationsAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -6836,8 +6846,8 @@ class IfcCommunicationsAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccommunicationsappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccommunicationsappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCommunicationsApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -6846,8 +6856,8 @@ class IfcCommunicationsApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcComplexProperty_WR21: SCOPE = 'entity' @@ -6856,7 +6866,7 @@ class IfcComplexProperty_WR21: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert (sizeof([temp for temp in hasproperties if self == temp]) == 0) is not False class IfcComplexProperty_WR22: @@ -6866,7 +6876,7 @@ class IfcComplexProperty_WR22: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert IfcUniquePropertyName(hasproperties) is not False class IfcComplexPropertyTemplate_UniquePropertyNames: @@ -6876,7 +6886,7 @@ class IfcComplexPropertyTemplate_UniquePropertyNames: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert IfcUniquePropertyTemplateNames(haspropertytemplates) is not False class IfcComplexPropertyTemplate_NoSelfReference: @@ -6886,7 +6896,7 @@ class IfcComplexPropertyTemplate_NoSelfReference: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert (sizeof([temp for temp in haspropertytemplates if self == temp]) == 0) is not False class IfcCompositeCurve_CurveContinuous: @@ -6896,9 +6906,9 @@ class IfcCompositeCurve_CurveContinuous: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) - closedcurve = getattr(self, 'ClosedCurve', INDETERMINATE) - assert (not closedcurve and sizeof([temp for temp in segments if getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 1 or (closedcurve and sizeof([temp for temp in segments if getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 0)) is not False + segments = express_getattr(self, 'Segments', INDETERMINATE) + closedcurve = express_getattr(self, 'ClosedCurve', INDETERMINATE) + assert (not closedcurve and sizeof([temp for temp in segments if express_getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 1 or (closedcurve and sizeof([temp for temp in segments if express_getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 0)) is not False class IfcCompositeCurve_SameDim: SCOPE = 'entity' @@ -6907,17 +6917,17 @@ class IfcCompositeCurve_SameDim: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) - assert (sizeof([temp for temp in segments if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(segments, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + segments = express_getattr(self, 'Segments', INDETERMINATE) + assert (sizeof([temp for temp in segments if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(segments, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcCompositeCurve_NSegments(self): - segments = getattr(self, 'Segments', INDETERMINATE) + segments = express_getattr(self, 'Segments', INDETERMINATE) return sizeof(segments) def calc_IfcCompositeCurve_ClosedCurve(self): - segments = getattr(self, 'Segments', INDETERMINATE) - nsegments = getattr(self, 'NSegments', INDETERMINATE) - return getattr(express_getitem(segments, nsegments - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Transition', INDETERMINATE) != discontinuous + segments = express_getattr(self, 'Segments', INDETERMINATE) + nsegments = express_getattr(self, 'NSegments', INDETERMINATE) + return express_getattr(express_getitem(segments, nsegments - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Transition', INDETERMINATE) != discontinuous class IfcCompositeCurveOnSurface_SameSurface: SCOPE = 'entity' @@ -6926,7 +6936,7 @@ class IfcCompositeCurveOnSurface_SameSurface: @staticmethod def __call__(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) assert (sizeof(basissurface) > 0) is not False def calc_IfcCompositeCurveOnSurface_BasisSurface(self): @@ -6939,12 +6949,12 @@ class IfcCompositeCurveSegment_ParentIsBoundedCurve: @staticmethod def __call__(self): - parentcurve = getattr(self, 'ParentCurve', INDETERMINATE) + parentcurve = express_getattr(self, 'ParentCurve', INDETERMINATE) assert ('ifc4x3_rc3.ifcboundedcurve' in typeof(parentcurve)) is not False def calc_IfcCompositeCurveSegment_Dim(self): - parentcurve = getattr(self, 'ParentCurve', INDETERMINATE) - return getattr(parentcurve, 'Dim', INDETERMINATE) + parentcurve = express_getattr(self, 'ParentCurve', INDETERMINATE) + return express_getattr(parentcurve, 'Dim', INDETERMINATE) class IfcCompositeProfileDef_InvariantProfileType: SCOPE = 'entity' @@ -6953,8 +6963,8 @@ class IfcCompositeProfileDef_InvariantProfileType: @staticmethod def __call__(self): - profiles = getattr(self, 'Profiles', INDETERMINATE) - assert (sizeof([temp for temp in profiles if getattr(temp, 'ProfileType', INDETERMINATE) != getattr(express_getitem(profiles, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE)]) == 0) is not False + profiles = express_getattr(self, 'Profiles', INDETERMINATE) + assert (sizeof([temp for temp in profiles if express_getattr(temp, 'ProfileType', INDETERMINATE) != express_getattr(express_getitem(profiles, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcCompositeProfileDef_NoRecursion: SCOPE = 'entity' @@ -6963,7 +6973,7 @@ class IfcCompositeProfileDef_NoRecursion: @staticmethod def __call__(self): - profiles = getattr(self, 'Profiles', INDETERMINATE) + profiles = express_getattr(self, 'Profiles', INDETERMINATE) assert (sizeof([temp for temp in profiles if 'ifc4x3_rc3.ifccompositeprofiledef' in typeof(temp)]) == 0) is not False class IfcCompressor_CorrectPredefinedType: @@ -6973,8 +6983,8 @@ class IfcCompressor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCompressor_CorrectTypeAssigned: SCOPE = 'entity' @@ -6983,8 +6993,8 @@ class IfcCompressor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccompressortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccompressortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCompressorType_CorrectPredefinedType: SCOPE = 'entity' @@ -6993,8 +7003,8 @@ class IfcCompressorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCondenser_CorrectPredefinedType: SCOPE = 'entity' @@ -7003,8 +7013,8 @@ class IfcCondenser_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCondenser_CorrectTypeAssigned: SCOPE = 'entity' @@ -7013,8 +7023,8 @@ class IfcCondenser_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccondensertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccondensertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCondenserType_CorrectPredefinedType: SCOPE = 'entity' @@ -7023,8 +7033,8 @@ class IfcCondenserType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcConstraint_WR11: SCOPE = 'entity' @@ -7033,8 +7043,8 @@ class IfcConstraint_WR11: @staticmethod def __call__(self): - constraintgrade = getattr(self, 'ConstraintGrade', INDETERMINATE) - assert (constraintgrade != getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) or (constraintgrade == getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedGrade', INDETERMINATE)))) is not False + constraintgrade = express_getattr(self, 'ConstraintGrade', INDETERMINATE) + assert (constraintgrade != express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) or (constraintgrade == express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedGrade', INDETERMINATE)))) is not False class IfcConstructionEquipmentResource_CorrectPredefinedType: SCOPE = 'entity' @@ -7043,8 +7053,8 @@ class IfcConstructionEquipmentResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionEquipmentResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7053,8 +7063,8 @@ class IfcConstructionEquipmentResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcConstructionMaterialResource_CorrectPredefinedType: SCOPE = 'entity' @@ -7063,8 +7073,8 @@ class IfcConstructionMaterialResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionMaterialResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7073,8 +7083,8 @@ class IfcConstructionMaterialResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcConstructionProductResource_CorrectPredefinedType: SCOPE = 'entity' @@ -7083,8 +7093,8 @@ class IfcConstructionProductResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionProductResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7093,8 +7103,8 @@ class IfcConstructionProductResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcController_CorrectPredefinedType: SCOPE = 'entity' @@ -7103,8 +7113,8 @@ class IfcController_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcController_CorrectTypeAssigned: SCOPE = 'entity' @@ -7113,8 +7123,8 @@ class IfcController_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccontrollertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccontrollertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcControllerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7123,8 +7133,8 @@ class IfcControllerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcConveyorSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -7133,8 +7143,8 @@ class IfcConveyorSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConveyorSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -7143,8 +7153,8 @@ class IfcConveyorSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcconveyorsegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcconveyorsegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcConveyorSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -7153,8 +7163,8 @@ class IfcConveyorSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCooledBeam_CorrectPredefinedType: SCOPE = 'entity' @@ -7163,8 +7173,8 @@ class IfcCooledBeam_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCooledBeam_CorrectTypeAssigned: SCOPE = 'entity' @@ -7173,8 +7183,8 @@ class IfcCooledBeam_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccooledbeamtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccooledbeamtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCooledBeamType_CorrectPredefinedType: SCOPE = 'entity' @@ -7183,8 +7193,8 @@ class IfcCooledBeamType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCoolingTower_CorrectPredefinedType: SCOPE = 'entity' @@ -7193,8 +7203,8 @@ class IfcCoolingTower_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCoolingTower_CorrectTypeAssigned: SCOPE = 'entity' @@ -7203,8 +7213,8 @@ class IfcCoolingTower_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccoolingtowertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccoolingtowertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoolingTowerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7213,8 +7223,8 @@ class IfcCoolingTowerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCourse_CorrectPredefinedType: SCOPE = 'entity' @@ -7223,8 +7233,8 @@ class IfcCourse_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCourse_CorrectTypeAssigned: SCOPE = 'entity' @@ -7233,8 +7243,8 @@ class IfcCourse_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccoursetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccoursetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCourseType_CorrectPredefinedType: SCOPE = 'entity' @@ -7243,8 +7253,8 @@ class IfcCourseType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCovering_CorrectPredefinedType: SCOPE = 'entity' @@ -7253,8 +7263,8 @@ class IfcCovering_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCovering_CorrectTypeAssigned: SCOPE = 'entity' @@ -7263,8 +7273,8 @@ class IfcCovering_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccoveringtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccoveringtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoveringType_CorrectPredefinedType: SCOPE = 'entity' @@ -7273,8 +7283,8 @@ class IfcCoveringType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCrewResource_CorrectPredefinedType: SCOPE = 'entity' @@ -7283,8 +7293,8 @@ class IfcCrewResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCrewResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7293,8 +7303,8 @@ class IfcCrewResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False def calc_IfcCsgPrimitive3D_Dim(self): return 3 @@ -7306,8 +7316,8 @@ class IfcCurtainWall_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCurtainWall_CorrectTypeAssigned: SCOPE = 'entity' @@ -7316,8 +7326,8 @@ class IfcCurtainWall_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccurtainwalltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifccurtainwalltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCurtainWallType_CorrectPredefinedType: SCOPE = 'entity' @@ -7326,15 +7336,15 @@ class IfcCurtainWallType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcCurve_Dim(self): return IfcCurveDim(self) def calc_IfcCurveSegment_Dim(self): - parentcurve = getattr(self, 'ParentCurve', INDETERMINATE) - return getattr(parentcurve, 'Dim', INDETERMINATE) + parentcurve = express_getattr(self, 'ParentCurve', INDETERMINATE) + return express_getattr(parentcurve, 'Dim', INDETERMINATE) class IfcCurveStyle_MeasureOfWidth: SCOPE = 'entity' @@ -7343,7 +7353,7 @@ class IfcCurveStyle_MeasureOfWidth: @staticmethod def __call__(self): - curvewidth = getattr(self, 'CurveWidth', INDETERMINATE) + curvewidth = express_getattr(self, 'CurveWidth', INDETERMINATE) assert (not exists(curvewidth) or 'ifc4x3_rc3.ifcpositivelengthmeasure' in typeof(curvewidth) or ('ifc4x3_rc3.ifcdescriptivemeasure' in typeof(curvewidth) and curvewidth == 'bylayer')) is not False class IfcCurveStyle_IdentifiableCurveStyle: @@ -7353,9 +7363,9 @@ class IfcCurveStyle_IdentifiableCurveStyle: @staticmethod def __call__(self): - curvefont = getattr(self, 'CurveFont', INDETERMINATE) - curvewidth = getattr(self, 'CurveWidth', INDETERMINATE) - curvecolour = getattr(self, 'CurveColour', INDETERMINATE) + curvefont = express_getattr(self, 'CurveFont', INDETERMINATE) + curvewidth = express_getattr(self, 'CurveWidth', INDETERMINATE) + curvecolour = express_getattr(self, 'CurveColour', INDETERMINATE) assert (exists(curvefont) or exists(curvewidth) or exists(curvecolour)) is not False class IfcCurveStyleFontPattern_VisibleLengthGreaterEqualZero: @@ -7365,7 +7375,7 @@ class IfcCurveStyleFontPattern_VisibleLengthGreaterEqualZero: @staticmethod def __call__(self): - visiblesegmentlength = getattr(self, 'VisibleSegmentLength', INDETERMINATE) + visiblesegmentlength = express_getattr(self, 'VisibleSegmentLength', INDETERMINATE) assert (visiblesegmentlength >= 0.0) is not False class IfcDamper_CorrectPredefinedType: @@ -7375,8 +7385,8 @@ class IfcDamper_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDamper_CorrectTypeAssigned: SCOPE = 'entity' @@ -7385,8 +7395,8 @@ class IfcDamper_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcdampertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcdampertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDamperType_CorrectPredefinedType: SCOPE = 'entity' @@ -7395,8 +7405,8 @@ class IfcDamperType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDeepFoundation_CorrectTypeAssigned: SCOPE = 'entity' @@ -7405,8 +7415,8 @@ class IfcDeepFoundation_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcdeepfoundationtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcdeepfoundationtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDerivedProfileDef_InvariantProfileType: SCOPE = 'entity' @@ -7415,8 +7425,8 @@ class IfcDerivedProfileDef_InvariantProfileType: @staticmethod def __call__(self): - parentprofile = getattr(self, 'ParentProfile', INDETERMINATE) - assert (getattr(self, 'ProfileType', INDETERMINATE) == getattr(parentprofile, 'ProfileType', INDETERMINATE)) is not False + parentprofile = express_getattr(self, 'ParentProfile', INDETERMINATE) + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(parentprofile, 'ProfileType', INDETERMINATE)) is not False class IfcDerivedUnit_WR1: SCOPE = 'entity' @@ -7425,8 +7435,8 @@ class IfcDerivedUnit_WR1: @staticmethod def __call__(self): - elements = getattr(self, 'Elements', INDETERMINATE) - assert (sizeof(elements) > 1 or (sizeof(elements) == 1 and getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) != 1)) is not False + elements = express_getattr(self, 'Elements', INDETERMINATE) + assert (sizeof(elements) > 1 or (sizeof(elements) == 1 and express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) != 1)) is not False class IfcDerivedUnit_WR2: SCOPE = 'entity' @@ -7435,11 +7445,11 @@ class IfcDerivedUnit_WR2: @staticmethod def __call__(self): - unittype = getattr(self, 'UnitType', INDETERMINATE) - assert (unittype != getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) or (unittype == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedType', INDETERMINATE)))) is not False + unittype = express_getattr(self, 'UnitType', INDETERMINATE) + assert (unittype != express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) or (unittype == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedType', INDETERMINATE)))) is not False def calc_IfcDerivedUnit_Dimensions(self): - elements = getattr(self, 'Elements', INDETERMINATE) + elements = express_getattr(self, 'Elements', INDETERMINATE) return IfcDeriveDimensionalExponents(elements) class IfcDirection_MagnitudeGreaterZero: @@ -7449,11 +7459,11 @@ class IfcDirection_MagnitudeGreaterZero: @staticmethod def __call__(self): - directionratios = getattr(self, 'DirectionRatios', INDETERMINATE) + directionratios = express_getattr(self, 'DirectionRatios', INDETERMINATE) assert (sizeof([tmp for tmp in directionratios if tmp != 0.0]) > 0) is not False def calc_IfcDirection_Dim(self): - directionratios = getattr(self, 'DirectionRatios', INDETERMINATE) + directionratios = express_getattr(self, 'DirectionRatios', INDETERMINATE) return hiindex(directionratios) class IfcDirectrixCurveSweptAreaSolid_DirectrixBounded: @@ -7463,9 +7473,9 @@ class IfcDirectrixCurveSweptAreaSolid_DirectrixBounded: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - startparam = getattr(self, 'StartParam', INDETERMINATE) - endparam = getattr(self, 'EndParam', INDETERMINATE) + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + startparam = express_getattr(self, 'StartParam', INDETERMINATE) + endparam = express_getattr(self, 'EndParam', INDETERMINATE) assert (exists(startparam) and exists(endparam) or sizeof(['ifc4x3_rc3.ifcconic', 'ifc4x3_rc3.ifcboundedcurve'] * typeof(directrix)) == 1) is not False class IfcDiscreteAccessory_CorrectPredefinedType: @@ -7475,8 +7485,8 @@ class IfcDiscreteAccessory_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDiscreteAccessory_CorrectTypeAssigned: SCOPE = 'entity' @@ -7485,8 +7495,8 @@ class IfcDiscreteAccessory_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcdiscreteaccessorytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcdiscreteaccessorytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDiscreteAccessoryType_CorrectPredefinedType: SCOPE = 'entity' @@ -7495,8 +7505,8 @@ class IfcDiscreteAccessoryType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDistributionBoard_CorrectPredefinedType: SCOPE = 'entity' @@ -7505,8 +7515,8 @@ class IfcDistributionBoard_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDistributionBoard_CorrectTypeAssigned: SCOPE = 'entity' @@ -7515,8 +7525,8 @@ class IfcDistributionBoard_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcdistributionboardtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcdistributionboardtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDistributionBoardType_CorrectPredefinedType: SCOPE = 'entity' @@ -7525,8 +7535,8 @@ class IfcDistributionBoardType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDistributionChamberElement_CorrectPredefinedType: SCOPE = 'entity' @@ -7535,8 +7545,8 @@ class IfcDistributionChamberElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDistributionChamberElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -7545,8 +7555,8 @@ class IfcDistributionChamberElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcdistributionchamberelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcdistributionchamberelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDistributionChamberElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -7555,8 +7565,8 @@ class IfcDistributionChamberElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDistributionSystem_CorrectPredefinedType: SCOPE = 'entity' @@ -7565,8 +7575,8 @@ class IfcDistributionSystem_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDocumentReference_WR1: SCOPE = 'entity' @@ -7575,8 +7585,8 @@ class IfcDocumentReference_WR1: @staticmethod def __call__(self): - name = getattr(self, 'Name', INDETERMINATE) - referenceddocument = getattr(self, 'ReferencedDocument', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) + referenceddocument = express_getattr(self, 'ReferencedDocument', INDETERMINATE) assert exists(name) ^ exists(referenceddocument) is not False class IfcDoor_CorrectStyleAssigned: @@ -7586,8 +7596,8 @@ class IfcDoor_CorrectStyleAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcdoortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcdoortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDoor_CorrectPredefinedType: SCOPE = 'entity' @@ -7596,8 +7606,8 @@ class IfcDoor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDoor_CorrectTypeAssigned: SCOPE = 'entity' @@ -7606,8 +7616,8 @@ class IfcDoor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcdoortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcdoortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDoorLiningProperties_WR31: SCOPE = 'entity' @@ -7616,8 +7626,8 @@ class IfcDoorLiningProperties_WR31: @staticmethod def __call__(self): - liningdepth = getattr(self, 'LiningDepth', INDETERMINATE) - liningthickness = getattr(self, 'LiningThickness', INDETERMINATE) + liningdepth = express_getattr(self, 'LiningDepth', INDETERMINATE) + liningthickness = express_getattr(self, 'LiningThickness', INDETERMINATE) assert (not (exists(liningdepth) and (not exists(liningthickness)))) is not False class IfcDoorLiningProperties_WR32: @@ -7627,8 +7637,8 @@ class IfcDoorLiningProperties_WR32: @staticmethod def __call__(self): - thresholddepth = getattr(self, 'ThresholdDepth', INDETERMINATE) - thresholdthickness = getattr(self, 'ThresholdThickness', INDETERMINATE) + thresholddepth = express_getattr(self, 'ThresholdDepth', INDETERMINATE) + thresholdthickness = express_getattr(self, 'ThresholdThickness', INDETERMINATE) assert (not (exists(thresholddepth) and (not exists(thresholdthickness)))) is not False class IfcDoorLiningProperties_WR33: @@ -7638,8 +7648,8 @@ class IfcDoorLiningProperties_WR33: @staticmethod def __call__(self): - transomthickness = getattr(self, 'TransomThickness', INDETERMINATE) - transomoffset = getattr(self, 'TransomOffset', INDETERMINATE) + transomthickness = express_getattr(self, 'TransomThickness', INDETERMINATE) + transomoffset = express_getattr(self, 'TransomOffset', INDETERMINATE) assert (exists(transomoffset) and exists(transomthickness)) ^ (not exists(transomoffset) and (not exists(transomthickness))) is not False class IfcDoorLiningProperties_WR34: @@ -7649,8 +7659,8 @@ class IfcDoorLiningProperties_WR34: @staticmethod def __call__(self): - casingthickness = getattr(self, 'CasingThickness', INDETERMINATE) - casingdepth = getattr(self, 'CasingDepth', INDETERMINATE) + casingthickness = express_getattr(self, 'CasingThickness', INDETERMINATE) + casingdepth = express_getattr(self, 'CasingDepth', INDETERMINATE) assert (exists(casingdepth) and exists(casingthickness)) ^ (not exists(casingdepth) and (not exists(casingthickness))) is not False class IfcDoorLiningProperties_WR35: @@ -7660,7 +7670,7 @@ class IfcDoorLiningProperties_WR35: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc3.ifcdoortype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc3.ifcdoorstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc3.ifcdoortype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc3.ifcdoorstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcDoorPanelProperties_ApplicableToType: SCOPE = 'entity' @@ -7669,7 +7679,7 @@ class IfcDoorPanelProperties_ApplicableToType: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc3.ifcdoortype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc3.ifcdoorstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc3.ifcdoortype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc3.ifcdoorstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcDoorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7678,8 +7688,8 @@ class IfcDoorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDraughtingPreDefinedColour_PreDefinedColourNames: SCOPE = 'entity' @@ -7688,7 +7698,7 @@ class IfcDraughtingPreDefinedColour_PreDefinedColourNames: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'bylayer']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'bylayer']) is not False class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: SCOPE = 'entity' @@ -7697,7 +7707,7 @@ class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chaindoubledash', 'dashed', 'dotted', 'bylayer']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chaindoubledash', 'dashed', 'dotted', 'bylayer']) is not False class IfcDuctFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -7706,8 +7716,8 @@ class IfcDuctFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -7716,8 +7726,8 @@ class IfcDuctFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcductfittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcductfittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -7726,8 +7736,8 @@ class IfcDuctFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDuctSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -7736,8 +7746,8 @@ class IfcDuctSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -7746,8 +7756,8 @@ class IfcDuctSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcductsegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcductsegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -7756,8 +7766,8 @@ class IfcDuctSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDuctSilencer_CorrectPredefinedType: SCOPE = 'entity' @@ -7766,8 +7776,8 @@ class IfcDuctSilencer_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctSilencer_CorrectTypeAssigned: SCOPE = 'entity' @@ -7776,8 +7786,8 @@ class IfcDuctSilencer_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcductsilencertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcductsilencertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctSilencerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7786,8 +7796,8 @@ class IfcDuctSilencerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEarthworksCut_CorrectPredefinedType: SCOPE = 'entity' @@ -7796,8 +7806,8 @@ class IfcEarthworksCut_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEarthworksFill_CorrectPredefinedType: SCOPE = 'entity' @@ -7806,8 +7816,8 @@ class IfcEarthworksFill_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEdgeLoop_IsClosed: SCOPE = 'entity' @@ -7816,9 +7826,9 @@ class IfcEdgeLoop_IsClosed: @staticmethod def __call__(self): - edgelist = getattr(self, 'EdgeList', INDETERMINATE) - ne = getattr(self, 'Ne', INDETERMINATE) - assert (getattr(express_getitem(edgelist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) == getattr(express_getitem(edgelist, ne - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE)) is not False + edgelist = express_getattr(self, 'EdgeList', INDETERMINATE) + ne = express_getattr(self, 'Ne', INDETERMINATE) + assert (express_getattr(express_getitem(edgelist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) == express_getattr(express_getitem(edgelist, ne - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE)) is not False class IfcEdgeLoop_IsContinuous: SCOPE = 'entity' @@ -7830,7 +7840,7 @@ class IfcEdgeLoop_IsContinuous: assert IfcLoopHeadToTail(self) is not False def calc_IfcEdgeLoop_Ne(self): - edgelist = getattr(self, 'EdgeList', INDETERMINATE) + edgelist = express_getattr(self, 'EdgeList', INDETERMINATE) return sizeof(edgelist) class IfcElectricAppliance_CorrectPredefinedType: @@ -7840,8 +7850,8 @@ class IfcElectricAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -7850,8 +7860,8 @@ class IfcElectricAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcelectricappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcelectricappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7860,8 +7870,8 @@ class IfcElectricApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricDistributionBoard_CorrectPredefinedType: SCOPE = 'entity' @@ -7870,8 +7880,8 @@ class IfcElectricDistributionBoard_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricDistributionBoard_CorrectTypeAssigned: SCOPE = 'entity' @@ -7880,8 +7890,8 @@ class IfcElectricDistributionBoard_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcelectricdistributionboardtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcelectricdistributionboardtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricDistributionBoardType_CorrectPredefinedType: SCOPE = 'entity' @@ -7890,8 +7900,8 @@ class IfcElectricDistributionBoardType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricFlowStorageDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -7900,8 +7910,8 @@ class IfcElectricFlowStorageDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricFlowStorageDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -7910,8 +7920,8 @@ class IfcElectricFlowStorageDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcelectricflowstoragedevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcelectricflowstoragedevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricFlowStorageDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7920,8 +7930,8 @@ class IfcElectricFlowStorageDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricFlowTreatmentDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -7930,8 +7940,8 @@ class IfcElectricFlowTreatmentDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricFlowTreatmentDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -7940,8 +7950,8 @@ class IfcElectricFlowTreatmentDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcelectricflowtreatmentdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcelectricflowtreatmentdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricFlowTreatmentDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7950,8 +7960,8 @@ class IfcElectricFlowTreatmentDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricGenerator_CorrectPredefinedType: SCOPE = 'entity' @@ -7960,8 +7970,8 @@ class IfcElectricGenerator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricGenerator_CorrectTypeAssigned: SCOPE = 'entity' @@ -7970,8 +7980,8 @@ class IfcElectricGenerator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcelectricgeneratortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcelectricgeneratortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricGeneratorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7980,8 +7990,8 @@ class IfcElectricGeneratorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricMotor_CorrectPredefinedType: SCOPE = 'entity' @@ -7990,8 +8000,8 @@ class IfcElectricMotor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricMotor_CorrectTypeAssigned: SCOPE = 'entity' @@ -8000,8 +8010,8 @@ class IfcElectricMotor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcelectricmotortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcelectricmotortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricMotorType_CorrectPredefinedType: SCOPE = 'entity' @@ -8010,8 +8020,8 @@ class IfcElectricMotorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricTimeControl_CorrectPredefinedType: SCOPE = 'entity' @@ -8020,8 +8030,8 @@ class IfcElectricTimeControl_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricTimeControl_CorrectTypeAssigned: SCOPE = 'entity' @@ -8030,8 +8040,8 @@ class IfcElectricTimeControl_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcelectrictimecontroltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcelectrictimecontroltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricTimeControlType_CorrectPredefinedType: SCOPE = 'entity' @@ -8040,8 +8050,8 @@ class IfcElectricTimeControlType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElementAssembly_CorrectPredefinedType: SCOPE = 'entity' @@ -8050,8 +8060,8 @@ class IfcElementAssembly_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElementAssembly_CorrectTypeAssigned: SCOPE = 'entity' @@ -8060,8 +8070,8 @@ class IfcElementAssembly_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcelementassemblytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcelementassemblytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElementAssemblyType_CorrectPredefinedType: SCOPE = 'entity' @@ -8070,8 +8080,8 @@ class IfcElementAssemblyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElementQuantity_UniqueQuantityNames: SCOPE = 'entity' @@ -8080,7 +8090,7 @@ class IfcElementQuantity_UniqueQuantityNames: @staticmethod def __call__(self): - quantities = getattr(self, 'Quantities', INDETERMINATE) + quantities = express_getattr(self, 'Quantities', INDETERMINATE) assert IfcUniqueQuantityNames(quantities) is not False class IfcEngine_CorrectPredefinedType: @@ -8090,8 +8100,8 @@ class IfcEngine_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEngine_CorrectTypeAssigned: SCOPE = 'entity' @@ -8100,8 +8110,8 @@ class IfcEngine_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcenginetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcenginetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEngineType_CorrectPredefinedType: SCOPE = 'entity' @@ -8110,8 +8120,8 @@ class IfcEngineType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvaporativeCooler_CorrectPredefinedType: SCOPE = 'entity' @@ -8120,8 +8130,8 @@ class IfcEvaporativeCooler_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvaporativeCooler_CorrectTypeAssigned: SCOPE = 'entity' @@ -8130,8 +8140,8 @@ class IfcEvaporativeCooler_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcevaporativecoolertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcevaporativecoolertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEvaporativeCoolerType_CorrectPredefinedType: SCOPE = 'entity' @@ -8140,8 +8150,8 @@ class IfcEvaporativeCoolerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvaporator_CorrectPredefinedType: SCOPE = 'entity' @@ -8150,8 +8160,8 @@ class IfcEvaporator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvaporator_CorrectTypeAssigned: SCOPE = 'entity' @@ -8160,8 +8170,8 @@ class IfcEvaporator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcevaporatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcevaporatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEvaporatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -8170,8 +8180,8 @@ class IfcEvaporatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvent_CorrectPredefinedType: SCOPE = 'entity' @@ -8180,8 +8190,8 @@ class IfcEvent_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvent_CorrectTypeAssigned: SCOPE = 'entity' @@ -8190,9 +8200,9 @@ class IfcEvent_CorrectTypeAssigned: @staticmethod def __call__(self): - eventtriggertype = getattr(self, 'EventTriggerType', INDETERMINATE) - userdefinedeventtriggertype = getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) - assert (not exists(eventtriggertype) or eventtriggertype != getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False + eventtriggertype = express_getattr(self, 'EventTriggerType', INDETERMINATE) + userdefinedeventtriggertype = express_getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) + assert (not exists(eventtriggertype) or eventtriggertype != express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False class IfcEventType_CorrectPredefinedType: SCOPE = 'entity' @@ -8201,8 +8211,8 @@ class IfcEventType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcEventType_CorrectEventTriggerType: SCOPE = 'entity' @@ -8211,9 +8221,9 @@ class IfcEventType_CorrectEventTriggerType: @staticmethod def __call__(self): - eventtriggertype = getattr(self, 'EventTriggerType', INDETERMINATE) - userdefinedeventtriggertype = getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) - assert (eventtriggertype != getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False + eventtriggertype = express_getattr(self, 'EventTriggerType', INDETERMINATE) + userdefinedeventtriggertype = express_getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) + assert (eventtriggertype != express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False class IfcExternalReference_WR1: SCOPE = 'entity' @@ -8222,9 +8232,9 @@ class IfcExternalReference_WR1: @staticmethod def __call__(self): - location = getattr(self, 'Location', INDETERMINATE) - identification = getattr(self, 'Identification', INDETERMINATE) - name = getattr(self, 'Name', INDETERMINATE) + location = express_getattr(self, 'Location', INDETERMINATE) + identification = express_getattr(self, 'Identification', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) assert (exists(identification) or exists(location) or exists(name)) is not False class IfcExtrudedAreaSolid_ValidExtrusionDirection: @@ -8234,7 +8244,7 @@ class IfcExtrudedAreaSolid_ValidExtrusionDirection: @staticmethod def __call__(self): - assert (IfcDotProduct(IfcDirection(DirectionRatios=[0.0, 0.0, 1.0]), getattr(self, 'ExtrudedDirection', INDETERMINATE)) != 0.0) is not False + assert (IfcDotProduct(IfcDirection(DirectionRatios=[0.0, 0.0, 1.0]), express_getattr(self, 'ExtrudedDirection', INDETERMINATE)) != 0.0) is not False class IfcExtrudedAreaSolidTapered_CorrectProfileAssignment: SCOPE = 'entity' @@ -8243,7 +8253,7 @@ class IfcExtrudedAreaSolidTapered_CorrectProfileAssignment: @staticmethod def __call__(self): - assert IfcTaperedSweptAreaProfiles(getattr(self, 'SweptArea', INDETERMINATE), getattr(self, 'EndSweptArea', INDETERMINATE)) is not False + assert IfcTaperedSweptAreaProfiles(express_getattr(self, 'SweptArea', INDETERMINATE), express_getattr(self, 'EndSweptArea', INDETERMINATE)) is not False class IfcFace_HasOuterBound: SCOPE = 'entity' @@ -8252,7 +8262,7 @@ class IfcFace_HasOuterBound: @staticmethod def __call__(self): - bounds = getattr(self, 'Bounds', INDETERMINATE) + bounds = express_getattr(self, 'Bounds', INDETERMINATE) assert (sizeof([temp for temp in bounds if 'ifc4x3_rc3.ifcfaceouterbound' in typeof(temp)]) <= 1) is not False def calc_IfcFaceBasedSurfaceModel_Dim(self): @@ -8265,8 +8275,8 @@ class IfcFacilityPart_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert ((predefinedtype != getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype != getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype != getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype != getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE)) or (predefinedtype != getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE))) or ((predefinedtype == getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE)) or (predefinedtype == getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE))) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert ((predefinedtype != express_getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype != express_getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype != express_getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype != express_getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE)) or (predefinedtype != express_getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE))) or ((predefinedtype == express_getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == express_getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == express_getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE)) or (predefinedtype == express_getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE))) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFan_CorrectPredefinedType: SCOPE = 'entity' @@ -8275,8 +8285,8 @@ class IfcFan_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFan_CorrectTypeAssigned: SCOPE = 'entity' @@ -8285,8 +8295,8 @@ class IfcFan_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcfantype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcfantype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFanType_CorrectPredefinedType: SCOPE = 'entity' @@ -8295,8 +8305,8 @@ class IfcFanType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFastener_CorrectPredefinedType: SCOPE = 'entity' @@ -8305,8 +8315,8 @@ class IfcFastener_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFastener_CorrectTypeAssigned: SCOPE = 'entity' @@ -8315,8 +8325,8 @@ class IfcFastener_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcfastenertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcfastenertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFastenerType_CorrectPredefinedType: SCOPE = 'entity' @@ -8325,8 +8335,8 @@ class IfcFastenerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFeatureElement_NotContained: SCOPE = 'entity' @@ -8335,7 +8345,7 @@ class IfcFeatureElement_NotContained: @staticmethod def __call__(self): - containedinstructure = getattr(self, 'ContainedInStructure', INDETERMINATE) + containedinstructure = express_getattr(self, 'ContainedInStructure', INDETERMINATE) assert (sizeof(containedinstructure) == 0) is not False class IfcFeatureElementSubtraction_HasNoSubtraction: @@ -8345,7 +8355,7 @@ class IfcFeatureElementSubtraction_HasNoSubtraction: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'HasOpenings', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'HasOpenings', INDETERMINATE)) == 0) is not False class IfcFeatureElementSubtraction_IsNotFilling: SCOPE = 'entity' @@ -8354,7 +8364,7 @@ class IfcFeatureElementSubtraction_IsNotFilling: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'FillsVoids', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'FillsVoids', INDETERMINATE)) == 0) is not False class IfcFillAreaStyle_MaxOneColour: SCOPE = 'entity' @@ -8363,7 +8373,7 @@ class IfcFillAreaStyle_MaxOneColour: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3_rc3.ifccolour' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3_rc3.ifccolour' in typeof(style)]) <= 1) is not False class IfcFillAreaStyle_MaxOneExtHatchStyle: SCOPE = 'entity' @@ -8372,7 +8382,7 @@ class IfcFillAreaStyle_MaxOneExtHatchStyle: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3_rc3.ifcexternallydefinedhatchstyle' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3_rc3.ifcexternallydefinedhatchstyle' in typeof(style)]) <= 1) is not False class IfcFillAreaStyle_ConsistentHatchStyleDef: SCOPE = 'entity' @@ -8381,7 +8391,7 @@ class IfcFillAreaStyle_ConsistentHatchStyleDef: @staticmethod def __call__(self): - assert IfcCorrectFillAreaStyle(getattr(self, 'FillStyles', INDETERMINATE)) is not False + assert IfcCorrectFillAreaStyle(express_getattr(self, 'FillStyles', INDETERMINATE)) is not False class IfcFillAreaStyleHatching_PatternStart2D: SCOPE = 'entity' @@ -8390,8 +8400,8 @@ class IfcFillAreaStyleHatching_PatternStart2D: @staticmethod def __call__(self): - patternstart = getattr(self, 'PatternStart', INDETERMINATE) - assert (not exists(patternstart) or getattr(patternstart, 'Dim', INDETERMINATE) == 2) is not False + patternstart = express_getattr(self, 'PatternStart', INDETERMINATE) + assert (not exists(patternstart) or express_getattr(patternstart, 'Dim', INDETERMINATE) == 2) is not False class IfcFillAreaStyleHatching_RefHatchLine2D: SCOPE = 'entity' @@ -8400,8 +8410,8 @@ class IfcFillAreaStyleHatching_RefHatchLine2D: @staticmethod def __call__(self): - pointofreferencehatchline = getattr(self, 'PointOfReferenceHatchLine', INDETERMINATE) - assert (not exists(pointofreferencehatchline) or getattr(pointofreferencehatchline, 'Dim', INDETERMINATE) == 2) is not False + pointofreferencehatchline = express_getattr(self, 'PointOfReferenceHatchLine', INDETERMINATE) + assert (not exists(pointofreferencehatchline) or express_getattr(pointofreferencehatchline, 'Dim', INDETERMINATE) == 2) is not False class IfcFilter_CorrectPredefinedType: SCOPE = 'entity' @@ -8410,8 +8420,8 @@ class IfcFilter_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFilter_CorrectTypeAssigned: SCOPE = 'entity' @@ -8420,8 +8430,8 @@ class IfcFilter_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcfiltertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcfiltertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFilterType_CorrectPredefinedType: SCOPE = 'entity' @@ -8430,8 +8440,8 @@ class IfcFilterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFireSuppressionTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -8440,8 +8450,8 @@ class IfcFireSuppressionTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFireSuppressionTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -8450,8 +8460,8 @@ class IfcFireSuppressionTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcfiresuppressionterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcfiresuppressionterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFireSuppressionTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -8460,8 +8470,8 @@ class IfcFireSuppressionTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFlowInstrument_CorrectPredefinedType: SCOPE = 'entity' @@ -8470,8 +8480,8 @@ class IfcFlowInstrument_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFlowInstrument_CorrectTypeAssigned: SCOPE = 'entity' @@ -8480,8 +8490,8 @@ class IfcFlowInstrument_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcflowinstrumenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcflowinstrumenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFlowInstrumentType_CorrectPredefinedType: SCOPE = 'entity' @@ -8490,8 +8500,8 @@ class IfcFlowInstrumentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFlowMeter_CorrectPredefinedType: SCOPE = 'entity' @@ -8500,8 +8510,8 @@ class IfcFlowMeter_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFlowMeter_CorrectTypeAssigned: SCOPE = 'entity' @@ -8510,8 +8520,8 @@ class IfcFlowMeter_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcflowmetertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcflowmetertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFlowMeterType_CorrectPredefinedType: SCOPE = 'entity' @@ -8520,8 +8530,8 @@ class IfcFlowMeterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFooting_CorrectPredefinedType: SCOPE = 'entity' @@ -8530,8 +8540,8 @@ class IfcFooting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFooting_CorrectTypeAssigned: SCOPE = 'entity' @@ -8540,8 +8550,8 @@ class IfcFooting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcfootingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcfootingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFootingType_CorrectPredefinedType: SCOPE = 'entity' @@ -8550,8 +8560,8 @@ class IfcFootingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFurniture_CorrectPredefinedType: SCOPE = 'entity' @@ -8560,8 +8570,8 @@ class IfcFurniture_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFurniture_CorrectTypeAssigned: SCOPE = 'entity' @@ -8570,8 +8580,8 @@ class IfcFurniture_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcfurnituretype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcfurnituretype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFurnitureType_CorrectPredefinedType: SCOPE = 'entity' @@ -8580,8 +8590,8 @@ class IfcFurnitureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcGeographicElement_CorrectPredefinedType: SCOPE = 'entity' @@ -8590,8 +8600,8 @@ class IfcGeographicElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcGeographicElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -8600,8 +8610,8 @@ class IfcGeographicElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcgeographicelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcgeographicelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcGeographicElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -8610,8 +8620,8 @@ class IfcGeographicElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcGeometricCurveSet_NoSurfaces: SCOPE = 'entity' @@ -8620,7 +8630,7 @@ class IfcGeometricCurveSet_NoSurfaces: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Elements', INDETERMINATE) if 'ifc4x3_rc3.ifcsurface' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Elements', INDETERMINATE) if 'ifc4x3_rc3.ifcsurface' in typeof(temp)]) == 0) is not False class IfcGeometricRepresentationContext_North2D: SCOPE = 'entity' @@ -8629,8 +8639,8 @@ class IfcGeometricRepresentationContext_North2D: @staticmethod def __call__(self): - truenorth = getattr(self, 'TrueNorth', INDETERMINATE) - assert (not exists(truenorth) or hiindex(getattr(truenorth, 'DirectionRatios', INDETERMINATE)) == 2) is not False + truenorth = express_getattr(self, 'TrueNorth', INDETERMINATE) + assert (not exists(truenorth) or hiindex(express_getattr(truenorth, 'DirectionRatios', INDETERMINATE)) == 2) is not False class IfcGeometricRepresentationSubContext_ParentNoSub: SCOPE = 'entity' @@ -8639,7 +8649,7 @@ class IfcGeometricRepresentationSubContext_ParentNoSub: @staticmethod def __call__(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) assert (not 'ifc4x3_rc3.ifcgeometricrepresentationsubcontext' in typeof(parentcontext)) is not False class IfcGeometricRepresentationSubContext_UserTargetProvided: @@ -8649,9 +8659,9 @@ class IfcGeometricRepresentationSubContext_UserTargetProvided: @staticmethod def __call__(self): - targetview = getattr(self, 'TargetView', INDETERMINATE) - userdefinedtargetview = getattr(self, 'UserDefinedTargetView', INDETERMINATE) - assert (targetview != getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) or (targetview == getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedtargetview))) is not False + targetview = express_getattr(self, 'TargetView', INDETERMINATE) + userdefinedtargetview = express_getattr(self, 'UserDefinedTargetView', INDETERMINATE) + assert (targetview != express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) or (targetview == express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedtargetview))) is not False class IfcGeometricRepresentationSubContext_NoCoordOperation: SCOPE = 'entity' @@ -8660,23 +8670,23 @@ class IfcGeometricRepresentationSubContext_NoCoordOperation: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'HasCoordinateOperation', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'HasCoordinateOperation', INDETERMINATE)) == 0) is not False def calc_IfcGeometricRepresentationSubContext_WorldCoordinateSystem(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return getattr(parentcontext, 'WorldCoordinateSystem', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return express_getattr(parentcontext, 'WorldCoordinateSystem', INDETERMINATE) def calc_IfcGeometricRepresentationSubContext_CoordinateSpaceDimension(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return getattr(parentcontext, 'CoordinateSpaceDimension', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return express_getattr(parentcontext, 'CoordinateSpaceDimension', INDETERMINATE) def calc_IfcGeometricRepresentationSubContext_TrueNorth(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return nvl(getattr(parentcontext, 'TrueNorth', INDETERMINATE), IfcConvertDirectionInto2D(express_getitem(getattr(getattr(self, 'WorldCoordinateSystem', INDETERMINATE), 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return nvl(express_getattr(parentcontext, 'TrueNorth', INDETERMINATE), IfcConvertDirectionInto2D(express_getitem(express_getattr(express_getattr(self, 'WorldCoordinateSystem', INDETERMINATE), 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) def calc_IfcGeometricRepresentationSubContext_Precision(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return nvl(getattr(parentcontext, 'Precision', INDETERMINATE), 1) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return nvl(express_getattr(parentcontext, 'Precision', INDETERMINATE), 1) class IfcGeometricSet_ConsistentDim: SCOPE = 'entity' @@ -8685,12 +8695,12 @@ class IfcGeometricSet_ConsistentDim: @staticmethod def __call__(self): - elements = getattr(self, 'Elements', INDETERMINATE) - assert (sizeof([temp for temp in elements if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + elements = express_getattr(self, 'Elements', INDETERMINATE) + assert (sizeof([temp for temp in elements if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcGeometricSet_Dim(self): - elements = getattr(self, 'Elements', INDETERMINATE) - return getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + elements = express_getattr(self, 'Elements', INDETERMINATE) + return express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) def calc_IfcGradientCurve_RelativeElevation(self): return IfcGradient(self) @@ -8702,8 +8712,8 @@ class IfcGridAxis_WR1: @staticmethod def __call__(self): - axiscurve = getattr(self, 'AxisCurve', INDETERMINATE) - assert (getattr(axiscurve, 'Dim', INDETERMINATE) == 2) is not False + axiscurve = express_getattr(self, 'AxisCurve', INDETERMINATE) + assert (express_getattr(axiscurve, 'Dim', INDETERMINATE) == 2) is not False class IfcGridAxis_WR2: SCOPE = 'entity' @@ -8712,9 +8722,9 @@ class IfcGridAxis_WR2: @staticmethod def __call__(self): - partofw = getattr(self, 'PartOfW', INDETERMINATE) - partofv = getattr(self, 'PartOfV', INDETERMINATE) - partofu = getattr(self, 'PartOfU', INDETERMINATE) + partofw = express_getattr(self, 'PartOfW', INDETERMINATE) + partofv = express_getattr(self, 'PartOfV', INDETERMINATE) + partofu = express_getattr(self, 'PartOfU', INDETERMINATE) assert (sizeof(partofu) == 1) ^ (sizeof(partofv) == 1) ^ (sizeof(partofw) == 1) is not False def calc_IfcHalfSpaceSolid_Dim(self): @@ -8727,8 +8737,8 @@ class IfcHeatExchanger_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcHeatExchanger_CorrectTypeAssigned: SCOPE = 'entity' @@ -8737,8 +8747,8 @@ class IfcHeatExchanger_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcheatexchangertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcheatexchangertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcHeatExchangerType_CorrectPredefinedType: SCOPE = 'entity' @@ -8747,8 +8757,8 @@ class IfcHeatExchangerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcHumidifier_CorrectPredefinedType: SCOPE = 'entity' @@ -8757,8 +8767,8 @@ class IfcHumidifier_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcHumidifier_CorrectTypeAssigned: SCOPE = 'entity' @@ -8767,8 +8777,8 @@ class IfcHumidifier_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifchumidifiertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifchumidifiertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcHumidifierType_CorrectPredefinedType: SCOPE = 'entity' @@ -8777,8 +8787,8 @@ class IfcHumidifierType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcIShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -8787,8 +8797,8 @@ class IfcIShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (2.0 * flangethickness < overalldepth) is not False class IfcIShapeProfileDef_ValidWebThickness: @@ -8798,8 +8808,8 @@ class IfcIShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - overallwidth = getattr(self, 'OverallWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + overallwidth = express_getattr(self, 'OverallWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < overallwidth) is not False class IfcIShapeProfileDef_ValidFilletRadius: @@ -8809,11 +8819,11 @@ class IfcIShapeProfileDef_ValidFilletRadius: @staticmethod def __call__(self): - overallwidth = getattr(self, 'OverallWidth', INDETERMINATE) - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) - filletradius = getattr(self, 'FilletRadius', INDETERMINATE) + overallwidth = express_getattr(self, 'OverallWidth', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) + filletradius = express_getattr(self, 'FilletRadius', INDETERMINATE) assert (not exists(filletradius) or (filletradius <= (overallwidth - webthickness) / 2.0 and filletradius <= (overalldepth - 2.0 * flangethickness) / 2.0)) is not False class IfcImpactProtectionDevice_CorrectPredefinedType: @@ -8823,8 +8833,8 @@ class IfcImpactProtectionDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or (predefinedtype != getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype != getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype != getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE)) or ((predefinedtype == getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE)) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or (predefinedtype != express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype != express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype != express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE)) or ((predefinedtype == express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE)) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcImpactProtectionDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -8833,8 +8843,8 @@ class IfcImpactProtectionDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcimpactprotectiondevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcimpactprotectiondevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcImpactProtectionDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -8843,8 +8853,8 @@ class IfcImpactProtectionDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert ((predefinedtype != getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype != getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype != getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE)) or ((predefinedtype == getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE)) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert ((predefinedtype != express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype != express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype != express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE)) or ((predefinedtype == express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE)) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcIndexedPolyCurve_Consecutive: SCOPE = 'entity' @@ -8853,7 +8863,7 @@ class IfcIndexedPolyCurve_Consecutive: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) + segments = express_getattr(self, 'Segments', INDETERMINATE) assert (not exists(segments) or IfcConsecutiveSegments(segments)) is not False class IfcInterceptor_CorrectPredefinedType: @@ -8863,8 +8873,8 @@ class IfcInterceptor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcInterceptor_CorrectTypeAssigned: SCOPE = 'entity' @@ -8873,8 +8883,8 @@ class IfcInterceptor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcinterceptortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcinterceptortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcInterceptorType_CorrectPredefinedType: SCOPE = 'entity' @@ -8883,8 +8893,8 @@ class IfcInterceptorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcIntersectionCurve_TwoPCurves: SCOPE = 'entity' @@ -8893,7 +8903,7 @@ class IfcIntersectionCurve_TwoPCurves: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False + assert (sizeof(express_getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False class IfcIntersectionCurve_DistinctSurfaces: SCOPE = 'entity' @@ -8902,7 +8912,7 @@ class IfcIntersectionCurve_DistinctSurfaces: @staticmethod def __call__(self): - assert (IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcJunctionBox_CorrectPredefinedType: SCOPE = 'entity' @@ -8911,8 +8921,8 @@ class IfcJunctionBox_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcJunctionBox_CorrectTypeAssigned: SCOPE = 'entity' @@ -8921,8 +8931,8 @@ class IfcJunctionBox_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcjunctionboxtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcjunctionboxtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcJunctionBoxType_CorrectPredefinedType: SCOPE = 'entity' @@ -8931,8 +8941,8 @@ class IfcJunctionBoxType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLShapeProfileDef_ValidThickness: SCOPE = 'entity' @@ -8941,9 +8951,9 @@ class IfcLShapeProfileDef_ValidThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - thickness = getattr(self, 'Thickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + thickness = express_getattr(self, 'Thickness', INDETERMINATE) assert (thickness < depth and (not exists(width) or thickness < width)) is not False class IfcLaborResource_CorrectPredefinedType: @@ -8953,8 +8963,8 @@ class IfcLaborResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLaborResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -8963,8 +8973,8 @@ class IfcLaborResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcLamp_CorrectPredefinedType: SCOPE = 'entity' @@ -8973,8 +8983,8 @@ class IfcLamp_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLamp_CorrectTypeAssigned: SCOPE = 'entity' @@ -8983,8 +8993,8 @@ class IfcLamp_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifclamptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifclamptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLampType_CorrectPredefinedType: SCOPE = 'entity' @@ -8993,8 +9003,8 @@ class IfcLampType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLightFixture_CorrectPredefinedType: SCOPE = 'entity' @@ -9003,8 +9013,8 @@ class IfcLightFixture_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLightFixture_CorrectTypeAssigned: SCOPE = 'entity' @@ -9013,8 +9023,8 @@ class IfcLightFixture_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifclightfixturetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifclightfixturetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLightFixtureType_CorrectPredefinedType: SCOPE = 'entity' @@ -9023,8 +9033,8 @@ class IfcLightFixtureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLine_SameDim: SCOPE = 'entity' @@ -9033,9 +9043,9 @@ class IfcLine_SameDim: @staticmethod def __call__(self): - pnt = getattr(self, 'Pnt', INDETERMINATE) - dir = getattr(self, 'Dir', INDETERMINATE) - assert (getattr(dir, 'Dim', INDETERMINATE) == getattr(pnt, 'Dim', INDETERMINATE)) is not False + pnt = express_getattr(self, 'Pnt', INDETERMINATE) + dir = express_getattr(self, 'Dir', INDETERMINATE) + assert (express_getattr(dir, 'Dim', INDETERMINATE) == express_getattr(pnt, 'Dim', INDETERMINATE)) is not False class IfcLiquidTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -9044,8 +9054,8 @@ class IfcLiquidTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLiquidTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -9054,8 +9064,8 @@ class IfcLiquidTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcliquidterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcliquidterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLiquidTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -9064,8 +9074,8 @@ class IfcLiquidTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLocalPlacement_WR21: SCOPE = 'entity' @@ -9074,8 +9084,8 @@ class IfcLocalPlacement_WR21: @staticmethod def __call__(self): - placementrelto = getattr(self, 'PlacementRelTo', INDETERMINATE) - relativeplacement = getattr(self, 'RelativePlacement', INDETERMINATE) + placementrelto = express_getattr(self, 'PlacementRelTo', INDETERMINATE) + relativeplacement = express_getattr(self, 'RelativePlacement', INDETERMINATE) assert IfcCorrectLocalPlacement(relativeplacement, placementrelto) is not False class IfcMarineFacility_CorrectPredefinedType: @@ -9085,8 +9095,8 @@ class IfcMarineFacility_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMaterialDefinitionRepresentation_OnlyStyledRepresentations: SCOPE = 'entity' @@ -9095,7 +9105,7 @@ class IfcMaterialDefinitionRepresentation_OnlyStyledRepresentations: @staticmethod def __call__(self): - representations = getattr(self, 'Representations', INDETERMINATE) + representations = express_getattr(self, 'Representations', INDETERMINATE) assert (sizeof([temp for temp in representations if not 'ifc4x3_rc3.ifcstyledrepresentation' in typeof(temp)]) == 0) is not False class IfcMaterialLayer_NormalizedPriority: @@ -9105,7 +9115,7 @@ class IfcMaterialLayer_NormalizedPriority: @staticmethod def __call__(self): - priority = getattr(self, 'Priority', INDETERMINATE) + priority = express_getattr(self, 'Priority', INDETERMINATE) assert (not exists(priority) or 0 <= priority <= 100) is not False def calc_IfcMaterialLayerSet_TotalThickness(self): @@ -9118,7 +9128,7 @@ class IfcMaterialProfile_NormalizedPriority: @staticmethod def __call__(self): - priority = getattr(self, 'Priority', INDETERMINATE) + priority = express_getattr(self, 'Priority', INDETERMINATE) assert (not exists(priority) or 0 <= priority <= 100) is not False class IfcMechanicalFastener_CorrectPredefinedType: @@ -9128,8 +9138,8 @@ class IfcMechanicalFastener_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMechanicalFastener_CorrectTypeAssigned: SCOPE = 'entity' @@ -9138,8 +9148,8 @@ class IfcMechanicalFastener_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcmechanicalfastenertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcmechanicalfastenertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMechanicalFastenerType_CorrectPredefinedType: SCOPE = 'entity' @@ -9148,8 +9158,8 @@ class IfcMechanicalFastenerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMedicalDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -9158,8 +9168,8 @@ class IfcMedicalDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMedicalDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -9168,8 +9178,8 @@ class IfcMedicalDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcmedicaldevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcmedicaldevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMedicalDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9178,8 +9188,8 @@ class IfcMedicalDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMember_CorrectPredefinedType: SCOPE = 'entity' @@ -9188,8 +9198,8 @@ class IfcMember_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMember_CorrectTypeAssigned: SCOPE = 'entity' @@ -9198,8 +9208,8 @@ class IfcMember_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcmembertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcmembertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMemberStandardCase_HasMaterialProfileSetUsage: SCOPE = 'entity' @@ -9208,7 +9218,7 @@ class IfcMemberStandardCase_HasMaterialProfileSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc3.ifcrelassociates.relatedobjects') if 'ifc4x3_rc3.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc3.ifcmaterialprofilesetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc3.ifcrelassociates.relatedobjects') if 'ifc4x3_rc3.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc3.ifcmaterialprofilesetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcMemberType_CorrectPredefinedType: SCOPE = 'entity' @@ -9217,8 +9227,8 @@ class IfcMemberType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcMirroredProfileDef_Operator(self): return IfcCartesianTransformationOperator2D(Axis1=IfcDirection(DirectionRatios=[-1.0, 0.0]), Axis2=IfcDirection(DirectionRatios=[0.0, 1.0]), LocalOrigin=IfcCartesianPoint(Coordinates=[0.0, 0.0]), Scale=1.0) @@ -9230,8 +9240,8 @@ class IfcMobileTelecommunicationsAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMobileTelecommunicationsAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -9240,8 +9250,8 @@ class IfcMobileTelecommunicationsAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcmobiletelecommunicationsappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcmobiletelecommunicationsappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMobileTelecommunicationsApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9250,8 +9260,8 @@ class IfcMobileTelecommunicationsApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMooringDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -9260,8 +9270,8 @@ class IfcMooringDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMooringDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -9270,8 +9280,8 @@ class IfcMooringDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcmooringdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcmooringdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMooringDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9280,8 +9290,8 @@ class IfcMooringDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMotorConnection_CorrectPredefinedType: SCOPE = 'entity' @@ -9290,8 +9300,8 @@ class IfcMotorConnection_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMotorConnection_CorrectTypeAssigned: SCOPE = 'entity' @@ -9300,8 +9310,8 @@ class IfcMotorConnection_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcmotorconnectiontype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcmotorconnectiontype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMotorConnectionType_CorrectPredefinedType: SCOPE = 'entity' @@ -9310,8 +9320,8 @@ class IfcMotorConnectionType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcNamedUnit_WR1: SCOPE = 'entity' @@ -9320,7 +9330,7 @@ class IfcNamedUnit_WR1: @staticmethod def __call__(self): - assert IfcCorrectDimensions(getattr(self, 'UnitType', INDETERMINATE), getattr(self, 'Dimensions', INDETERMINATE)) is not False + assert IfcCorrectDimensions(express_getattr(self, 'UnitType', INDETERMINATE), express_getattr(self, 'Dimensions', INDETERMINATE)) is not False class IfcNavigationElement_CorrectPredefinedType: SCOPE = 'entity' @@ -9329,8 +9339,8 @@ class IfcNavigationElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcNavigationElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -9339,8 +9349,8 @@ class IfcNavigationElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcnavigationelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcnavigationelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcNavigationElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -9349,8 +9359,8 @@ class IfcNavigationElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcObject_UniquePropertySetNames: SCOPE = 'entity' @@ -9359,7 +9369,7 @@ class IfcObject_UniquePropertySetNames: @staticmethod def __call__(self): - isdefinedby = getattr(self, 'IsDefinedBy', INDETERMINATE) + isdefinedby = express_getattr(self, 'IsDefinedBy', INDETERMINATE) assert (sizeof(isdefinedby) == 0 or IfcUniqueDefinitionNames(isdefinedby)) is not False class IfcObjective_WR21: @@ -9369,8 +9379,8 @@ class IfcObjective_WR21: @staticmethod def __call__(self): - objectivequalifier = getattr(self, 'ObjectiveQualifier', INDETERMINATE) - assert (objectivequalifier != getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) or (objectivequalifier == getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedQualifier', INDETERMINATE)))) is not False + objectivequalifier = express_getattr(self, 'ObjectiveQualifier', INDETERMINATE) + assert (objectivequalifier != express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) or (objectivequalifier == express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedQualifier', INDETERMINATE)))) is not False class IfcOccupant_WR31: SCOPE = 'entity' @@ -9379,8 +9389,8 @@ class IfcOccupant_WR31: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not predefinedtype == getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not predefinedtype == express_getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcOffsetCurve2D_DimIs2D: SCOPE = 'entity' @@ -9389,8 +9399,8 @@ class IfcOffsetCurve2D_DimIs2D: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - assert (getattr(basiscurve, 'Dim', INDETERMINATE) == 2) is not False + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + assert (express_getattr(basiscurve, 'Dim', INDETERMINATE) == 2) is not False class IfcOffsetCurve3D_DimIs2D: SCOPE = 'entity' @@ -9399,8 +9409,8 @@ class IfcOffsetCurve3D_DimIs2D: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - assert (getattr(basiscurve, 'Dim', INDETERMINATE) == 3) is not False + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + assert (express_getattr(basiscurve, 'Dim', INDETERMINATE) == 3) is not False class IfcOpenCrossProfileDef_CorrectProfileType: SCOPE = 'entity' @@ -9409,7 +9419,7 @@ class IfcOpenCrossProfileDef_CorrectProfileType: @staticmethod def __call__(self): - assert (getattr(self, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False class IfcOpenCrossProfileDef_CorrespondingSlopeWidths: SCOPE = 'entity' @@ -9418,8 +9428,8 @@ class IfcOpenCrossProfileDef_CorrespondingSlopeWidths: @staticmethod def __call__(self): - widths = getattr(self, 'Widths', INDETERMINATE) - slopes = getattr(self, 'Slopes', INDETERMINATE) + widths = express_getattr(self, 'Widths', INDETERMINATE) + slopes = express_getattr(self, 'Slopes', INDETERMINATE) assert (sizeof(slopes) == sizeof(widths)) is not False class IfcOpenCrossProfileDef_CorrespondingTags: @@ -9429,8 +9439,8 @@ class IfcOpenCrossProfileDef_CorrespondingTags: @staticmethod def __call__(self): - slopes = getattr(self, 'Slopes', INDETERMINATE) - tags = getattr(self, 'Tags', INDETERMINATE) + slopes = express_getattr(self, 'Slopes', INDETERMINATE) + tags = express_getattr(self, 'Tags', INDETERMINATE) assert (not exists(tags) or sizeof(tags) == sizeof(slopes) + 1) is not False class IfcOpeningElement_CorrectPredefinedType: @@ -9440,8 +9450,8 @@ class IfcOpeningElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcOrientedEdge_EdgeElementNotOriented: SCOPE = 'entity' @@ -9450,18 +9460,18 @@ class IfcOrientedEdge_EdgeElementNotOriented: @staticmethod def __call__(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) assert (not 'ifc4x3_rc3.ifcorientededge' in typeof(edgeelement)) is not False def calc_IfcOrientedEdge_EdgeStart(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) - orientation = getattr(self, 'Orientation', INDETERMINATE) - return IfcBooleanChoose(orientation, getattr(edgeelement, 'EdgeStart', INDETERMINATE), getattr(edgeelement, 'EdgeEnd', INDETERMINATE)) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return IfcBooleanChoose(orientation, express_getattr(edgeelement, 'EdgeStart', INDETERMINATE), express_getattr(edgeelement, 'EdgeEnd', INDETERMINATE)) def calc_IfcOrientedEdge_EdgeEnd(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) - orientation = getattr(self, 'Orientation', INDETERMINATE) - return IfcBooleanChoose(orientation, getattr(edgeelement, 'EdgeEnd', INDETERMINATE), getattr(edgeelement, 'EdgeStart', INDETERMINATE)) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return IfcBooleanChoose(orientation, express_getattr(edgeelement, 'EdgeEnd', INDETERMINATE), express_getattr(edgeelement, 'EdgeStart', INDETERMINATE)) class IfcOutlet_CorrectPredefinedType: SCOPE = 'entity' @@ -9470,8 +9480,8 @@ class IfcOutlet_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcOutlet_CorrectTypeAssigned: SCOPE = 'entity' @@ -9480,8 +9490,8 @@ class IfcOutlet_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcoutlettype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcoutlettype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcOutletType_CorrectPredefinedType: SCOPE = 'entity' @@ -9490,8 +9500,8 @@ class IfcOutletType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcOwnerHistory_CorrectChangeAction: SCOPE = 'entity' @@ -9500,9 +9510,9 @@ class IfcOwnerHistory_CorrectChangeAction: @staticmethod def __call__(self): - changeaction = getattr(self, 'ChangeAction', INDETERMINATE) - lastmodifieddate = getattr(self, 'LastModifiedDate', INDETERMINATE) - assert (exists(lastmodifieddate) or (not exists(lastmodifieddate) and (not exists(changeaction))) or (not exists(lastmodifieddate) and exists(changeaction) and (changeaction == getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) or changeaction == getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE)))) is not False + changeaction = express_getattr(self, 'ChangeAction', INDETERMINATE) + lastmodifieddate = express_getattr(self, 'LastModifiedDate', INDETERMINATE) + assert (exists(lastmodifieddate) or (not exists(lastmodifieddate) and (not exists(changeaction))) or (not exists(lastmodifieddate) and exists(changeaction) and (changeaction == express_getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) or changeaction == express_getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE)))) is not False class IfcPath_IsContinuous: SCOPE = 'entity' @@ -9520,8 +9530,8 @@ class IfcPavement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPavement_CorrectTypeAssigned: SCOPE = 'entity' @@ -9530,8 +9540,8 @@ class IfcPavement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcpavementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcpavementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPavementType_CorrectPredefinedType: SCOPE = 'entity' @@ -9540,8 +9550,8 @@ class IfcPavementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPcurve_DimIs2D: SCOPE = 'entity' @@ -9550,8 +9560,8 @@ class IfcPcurve_DimIs2D: @staticmethod def __call__(self): - referencecurve = getattr(self, 'ReferenceCurve', INDETERMINATE) - assert (getattr(referencecurve, 'Dim', INDETERMINATE) == 2) is not False + referencecurve = express_getattr(self, 'ReferenceCurve', INDETERMINATE) + assert (express_getattr(referencecurve, 'Dim', INDETERMINATE) == 2) is not False class IfcPerson_IdentifiablePerson: SCOPE = 'entity' @@ -9560,9 +9570,9 @@ class IfcPerson_IdentifiablePerson: @staticmethod def __call__(self): - identification = getattr(self, 'Identification', INDETERMINATE) - familyname = getattr(self, 'FamilyName', INDETERMINATE) - givenname = getattr(self, 'GivenName', INDETERMINATE) + identification = express_getattr(self, 'Identification', INDETERMINATE) + familyname = express_getattr(self, 'FamilyName', INDETERMINATE) + givenname = express_getattr(self, 'GivenName', INDETERMINATE) assert (exists(identification) or exists(familyname) or exists(givenname)) is not False class IfcPerson_ValidSetOfNames: @@ -9572,9 +9582,9 @@ class IfcPerson_ValidSetOfNames: @staticmethod def __call__(self): - familyname = getattr(self, 'FamilyName', INDETERMINATE) - givenname = getattr(self, 'GivenName', INDETERMINATE) - middlenames = getattr(self, 'MiddleNames', INDETERMINATE) + familyname = express_getattr(self, 'FamilyName', INDETERMINATE) + givenname = express_getattr(self, 'GivenName', INDETERMINATE) + middlenames = express_getattr(self, 'MiddleNames', INDETERMINATE) assert (not exists(middlenames) or exists(familyname) or exists(givenname)) is not False class IfcPhysicalComplexQuantity_NoSelfReference: @@ -9584,7 +9594,7 @@ class IfcPhysicalComplexQuantity_NoSelfReference: @staticmethod def __call__(self): - hasquantities = getattr(self, 'HasQuantities', INDETERMINATE) + hasquantities = express_getattr(self, 'HasQuantities', INDETERMINATE) assert (sizeof([temp for temp in hasquantities if self == temp]) == 0) is not False class IfcPhysicalComplexQuantity_UniqueQuantityNames: @@ -9594,7 +9604,7 @@ class IfcPhysicalComplexQuantity_UniqueQuantityNames: @staticmethod def __call__(self): - hasquantities = getattr(self, 'HasQuantities', INDETERMINATE) + hasquantities = express_getattr(self, 'HasQuantities', INDETERMINATE) assert IfcUniqueQuantityNames(hasquantities) is not False class IfcPile_CorrectPredefinedType: @@ -9604,8 +9614,8 @@ class IfcPile_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPile_CorrectTypeAssigned: SCOPE = 'entity' @@ -9614,8 +9624,8 @@ class IfcPile_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcpiletype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcpiletype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPileType_CorrectPredefinedType: SCOPE = 'entity' @@ -9624,8 +9634,8 @@ class IfcPileType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPipeFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -9634,8 +9644,8 @@ class IfcPipeFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPipeFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -9644,8 +9654,8 @@ class IfcPipeFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcpipefittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcpipefittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPipeFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -9654,8 +9664,8 @@ class IfcPipeFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPipeSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -9664,8 +9674,8 @@ class IfcPipeSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPipeSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -9674,8 +9684,8 @@ class IfcPipeSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcpipesegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcpipesegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPipeSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -9684,8 +9694,8 @@ class IfcPipeSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPixelTexture_MinPixelInS: SCOPE = 'entity' @@ -9694,7 +9704,7 @@ class IfcPixelTexture_MinPixelInS: @staticmethod def __call__(self): - width = getattr(self, 'Width', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) assert (width >= 1) is not False class IfcPixelTexture_MinPixelInT: @@ -9704,7 +9714,7 @@ class IfcPixelTexture_MinPixelInT: @staticmethod def __call__(self): - height = getattr(self, 'Height', INDETERMINATE) + height = express_getattr(self, 'Height', INDETERMINATE) assert (height >= 1) is not False class IfcPixelTexture_NumberOfColours: @@ -9714,7 +9724,7 @@ class IfcPixelTexture_NumberOfColours: @staticmethod def __call__(self): - colourcomponents = getattr(self, 'ColourComponents', INDETERMINATE) + colourcomponents = express_getattr(self, 'ColourComponents', INDETERMINATE) assert (1 <= colourcomponents <= 4) is not False class IfcPixelTexture_SizeOfPixelList: @@ -9724,9 +9734,9 @@ class IfcPixelTexture_SizeOfPixelList: @staticmethod def __call__(self): - width = getattr(self, 'Width', INDETERMINATE) - height = getattr(self, 'Height', INDETERMINATE) - pixel = getattr(self, 'Pixel', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + height = express_getattr(self, 'Height', INDETERMINATE) + pixel = express_getattr(self, 'Pixel', INDETERMINATE) assert (sizeof(pixel) == width * height) is not False class IfcPixelTexture_PixelAsByteAndSameLength: @@ -9736,12 +9746,12 @@ class IfcPixelTexture_PixelAsByteAndSameLength: @staticmethod def __call__(self): - pixel = getattr(self, 'Pixel', INDETERMINATE) + pixel = express_getattr(self, 'Pixel', INDETERMINATE) assert (sizeof([temp for temp in pixel if blength(temp) % 8 == 0 and blength(temp) == blength(express_getitem(pixel, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == sizeof(pixel)) is not False def calc_IfcPlacement_Dim(self): - location = getattr(self, 'Location', INDETERMINATE) - return getattr(location, 'Dim', INDETERMINATE) + location = express_getattr(self, 'Location', INDETERMINATE) + return express_getattr(location, 'Dim', INDETERMINATE) class IfcPlate_CorrectPredefinedType: SCOPE = 'entity' @@ -9750,8 +9760,8 @@ class IfcPlate_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPlate_CorrectTypeAssigned: SCOPE = 'entity' @@ -9760,8 +9770,8 @@ class IfcPlate_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcplatetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcplatetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPlateStandardCase_HasMaterialLayerSetUsage: SCOPE = 'entity' @@ -9770,7 +9780,7 @@ class IfcPlateStandardCase_HasMaterialLayerSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc3.ifcrelassociates.relatedobjects') if 'ifc4x3_rc3.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc3.ifcmateriallayersetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc3.ifcrelassociates.relatedobjects') if 'ifc4x3_rc3.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc3.ifcmateriallayersetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcPlateType_CorrectPredefinedType: SCOPE = 'entity' @@ -9779,20 +9789,20 @@ class IfcPlateType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcPointByDistanceExpression_Dim(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - return getattr(basiscurve, 'Dim', INDETERMINATE) + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + return express_getattr(basiscurve, 'Dim', INDETERMINATE) def calc_IfcPointOnCurve_Dim(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - return getattr(basiscurve, 'Dim', INDETERMINATE) + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + return express_getattr(basiscurve, 'Dim', INDETERMINATE) def calc_IfcPointOnSurface_Dim(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) - return getattr(basissurface, 'Dim', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) + return express_getattr(basissurface, 'Dim', INDETERMINATE) class IfcPolyLoop_AllPointsSameDim: SCOPE = 'entity' @@ -9801,8 +9811,8 @@ class IfcPolyLoop_AllPointsSameDim: @staticmethod def __call__(self): - polygon = getattr(self, 'Polygon', INDETERMINATE) - assert (sizeof([temp for temp in polygon if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(polygon, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + polygon = express_getattr(self, 'Polygon', INDETERMINATE) + assert (sizeof([temp for temp in polygon if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(polygon, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False class IfcPolygonalBoundedHalfSpace_BoundaryDim: SCOPE = 'entity' @@ -9811,8 +9821,8 @@ class IfcPolygonalBoundedHalfSpace_BoundaryDim: @staticmethod def __call__(self): - polygonalboundary = getattr(self, 'PolygonalBoundary', INDETERMINATE) - assert (getattr(polygonalboundary, 'Dim', INDETERMINATE) == 2) is not False + polygonalboundary = express_getattr(self, 'PolygonalBoundary', INDETERMINATE) + assert (express_getattr(polygonalboundary, 'Dim', INDETERMINATE) == 2) is not False class IfcPolygonalBoundedHalfSpace_BoundaryType: SCOPE = 'entity' @@ -9821,7 +9831,7 @@ class IfcPolygonalBoundedHalfSpace_BoundaryType: @staticmethod def __call__(self): - polygonalboundary = getattr(self, 'PolygonalBoundary', INDETERMINATE) + polygonalboundary = express_getattr(self, 'PolygonalBoundary', INDETERMINATE) assert (sizeof(typeof(polygonalboundary) * ['ifc4x3_rc3.ifcpolyline', 'ifc4x3_rc3.ifccompositecurve']) == 1) is not False class IfcPolyline_SameDim: @@ -9831,8 +9841,8 @@ class IfcPolyline_SameDim: @staticmethod def __call__(self): - points = getattr(self, 'Points', INDETERMINATE) - assert (sizeof([temp for temp in points if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(points, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + points = express_getattr(self, 'Points', INDETERMINATE) + assert (sizeof([temp for temp in points if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(points, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False class IfcPolynomialCurve_ValidCoefficients: SCOPE = 'entity' @@ -9841,9 +9851,9 @@ class IfcPolynomialCurve_ValidCoefficients: @staticmethod def __call__(self): - coefficientsx = getattr(self, 'CoefficientsX', INDETERMINATE) - coefficientsy = getattr(self, 'CoefficientsY', INDETERMINATE) - coefficientsz = getattr(self, 'CoefficientsZ', INDETERMINATE) + coefficientsx = express_getattr(self, 'CoefficientsX', INDETERMINATE) + coefficientsy = express_getattr(self, 'CoefficientsY', INDETERMINATE) + coefficientsz = express_getattr(self, 'CoefficientsZ', INDETERMINATE) assert (exists(coefficientsx) and exists(coefficientsy) or (exists(coefficientsx) and exists(coefficientsz)) or (exists(coefficientsy) and exists(coefficientsz)) or (exists(coefficientsx) and exists(coefficientsy) and exists(coefficientsz))) is not False class IfcPolynomialCurve_CorrectPositionDim: @@ -9853,9 +9863,9 @@ class IfcPolynomialCurve_CorrectPositionDim: @staticmethod def __call__(self): - position = getattr(self, 'Position', INDETERMINATE) - coefficientsz = getattr(self, 'CoefficientsZ', INDETERMINATE) - assert (getattr(position, 'Dim', INDETERMINATE) == 2 and (not exists(coefficientsz)) or getattr(position, 'Dim', INDETERMINATE) == 3) is not False + position = express_getattr(self, 'Position', INDETERMINATE) + coefficientsz = express_getattr(self, 'CoefficientsZ', INDETERMINATE) + assert (express_getattr(position, 'Dim', INDETERMINATE) == 2 and (not exists(coefficientsz)) or express_getattr(position, 'Dim', INDETERMINATE) == 3) is not False class IfcPositioningElement_HasPlacement: SCOPE = 'entity' @@ -9864,7 +9874,7 @@ class IfcPositioningElement_HasPlacement: @staticmethod def __call__(self): - assert exists(getattr(self, 'ObjectPlacement', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'ObjectPlacement', INDETERMINATE)) is not False class IfcPostalAddress_WR1: SCOPE = 'entity' @@ -9873,13 +9883,13 @@ class IfcPostalAddress_WR1: @staticmethod def __call__(self): - internallocation = getattr(self, 'InternalLocation', INDETERMINATE) - addresslines = getattr(self, 'AddressLines', INDETERMINATE) - postalbox = getattr(self, 'PostalBox', INDETERMINATE) - town = getattr(self, 'Town', INDETERMINATE) - region = getattr(self, 'Region', INDETERMINATE) - postalcode = getattr(self, 'PostalCode', INDETERMINATE) - country = getattr(self, 'Country', INDETERMINATE) + internallocation = express_getattr(self, 'InternalLocation', INDETERMINATE) + addresslines = express_getattr(self, 'AddressLines', INDETERMINATE) + postalbox = express_getattr(self, 'PostalBox', INDETERMINATE) + town = express_getattr(self, 'Town', INDETERMINATE) + region = express_getattr(self, 'Region', INDETERMINATE) + postalcode = express_getattr(self, 'PostalCode', INDETERMINATE) + country = express_getattr(self, 'Country', INDETERMINATE) assert (exists(internallocation) or exists(addresslines) or exists(postalbox) or exists(postalcode) or exists(town) or exists(region) or exists(country)) is not False class IfcPresentationLayerAssignment_ApplicableItems: @@ -9889,7 +9899,7 @@ class IfcPresentationLayerAssignment_ApplicableItems: @staticmethod def __call__(self): - assigneditems = getattr(self, 'AssignedItems', INDETERMINATE) + assigneditems = express_getattr(self, 'AssignedItems', INDETERMINATE) assert (sizeof([temp for temp in assigneditems if sizeof(typeof(temp) * ['ifc4x3_rc3.ifcshaperepresentation', 'ifc4x3_rc3.ifcgeometricrepresentationitem', 'ifc4x3_rc3.ifcmappeditem']) == 1]) == sizeof(assigneditems)) is not False class IfcPresentationLayerWithStyle_ApplicableOnlyToItems: @@ -9899,7 +9909,7 @@ class IfcPresentationLayerWithStyle_ApplicableOnlyToItems: @staticmethod def __call__(self): - assigneditems = getattr(self, 'AssignedItems', INDETERMINATE) + assigneditems = express_getattr(self, 'AssignedItems', INDETERMINATE) assert (sizeof([temp for temp in assigneditems if sizeof(typeof(temp) * ['ifc4x3_rc3.ifcgeometricrepresentationitem', 'ifc4x3_rc3.ifcmappeditem']) >= 1]) == sizeof(assigneditems)) is not False class IfcProcedure_HasName: @@ -9909,7 +9919,7 @@ class IfcProcedure_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcProcedure_CorrectPredefinedType: SCOPE = 'entity' @@ -9918,8 +9928,8 @@ class IfcProcedure_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProcedureType_CorrectPredefinedType: SCOPE = 'entity' @@ -9928,8 +9938,8 @@ class IfcProcedureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcProduct_PlacementForShapeRepresentation: SCOPE = 'entity' @@ -9938,9 +9948,9 @@ class IfcProduct_PlacementForShapeRepresentation: @staticmethod def __call__(self): - objectplacement = getattr(self, 'ObjectPlacement', INDETERMINATE) - representation = getattr(self, 'Representation', INDETERMINATE) - assert (exists(representation) and exists(objectplacement) or (exists(representation) and sizeof([temp for temp in getattr(representation, 'Representations', INDETERMINATE) if 'ifc4x3_rc3.ifcshaperepresentation' in typeof(temp)]) == 0) or (not exists(representation))) is not False + objectplacement = express_getattr(self, 'ObjectPlacement', INDETERMINATE) + representation = express_getattr(self, 'Representation', INDETERMINATE) + assert (exists(representation) and exists(objectplacement) or (exists(representation) and sizeof([temp for temp in express_getattr(representation, 'Representations', INDETERMINATE) if 'ifc4x3_rc3.ifcshaperepresentation' in typeof(temp)]) == 0) or (not exists(representation))) is not False class IfcProductDefinitionShape_OnlyShapeModel: SCOPE = 'entity' @@ -9949,7 +9959,7 @@ class IfcProductDefinitionShape_OnlyShapeModel: @staticmethod def __call__(self): - representations = getattr(self, 'Representations', INDETERMINATE) + representations = express_getattr(self, 'Representations', INDETERMINATE) assert (sizeof([temp for temp in representations if not 'ifc4x3_rc3.ifcshapemodel' in typeof(temp)]) == 0) is not False class IfcProject_HasName: @@ -9959,7 +9969,7 @@ class IfcProject_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcProject_CorrectContext: SCOPE = 'entity' @@ -9968,7 +9978,7 @@ class IfcProject_CorrectContext: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'RepresentationContexts', INDETERMINATE)) or sizeof([temp for temp in getattr(self, 'RepresentationContexts', INDETERMINATE) if 'ifc4x3_rc3.ifcgeometricrepresentationsubcontext' in typeof(temp)]) == 0) is not False + assert (not exists(express_getattr(self, 'RepresentationContexts', INDETERMINATE)) or sizeof([temp for temp in express_getattr(self, 'RepresentationContexts', INDETERMINATE) if 'ifc4x3_rc3.ifcgeometricrepresentationsubcontext' in typeof(temp)]) == 0) is not False class IfcProject_NoDecomposition: SCOPE = 'entity' @@ -9977,7 +9987,7 @@ class IfcProject_NoDecomposition: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'Decomposes', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'Decomposes', INDETERMINATE)) == 0) is not False class IfcProjectedCRS_IsLengthUnit: SCOPE = 'entity' @@ -9986,8 +9996,8 @@ class IfcProjectedCRS_IsLengthUnit: @staticmethod def __call__(self): - mapunit = getattr(self, 'MapUnit', INDETERMINATE) - assert (not exists(mapunit) or getattr(mapunit, 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False + mapunit = express_getattr(self, 'MapUnit', INDETERMINATE) + assert (not exists(mapunit) or express_getattr(mapunit, 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False class IfcProjectionElement_CorrectPredefinedType: SCOPE = 'entity' @@ -9996,8 +10006,8 @@ class IfcProjectionElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPropertyBoundedValue_SameUnitUpperLower: SCOPE = 'entity' @@ -10006,8 +10016,8 @@ class IfcPropertyBoundedValue_SameUnitUpperLower: @staticmethod def __call__(self): - upperboundvalue = getattr(self, 'UpperBoundValue', INDETERMINATE) - lowerboundvalue = getattr(self, 'LowerBoundValue', INDETERMINATE) + upperboundvalue = express_getattr(self, 'UpperBoundValue', INDETERMINATE) + lowerboundvalue = express_getattr(self, 'LowerBoundValue', INDETERMINATE) assert (not exists(upperboundvalue) or not exists(lowerboundvalue) or typeof(upperboundvalue) == typeof(lowerboundvalue)) is not False class IfcPropertyBoundedValue_SameUnitUpperSet: @@ -10017,8 +10027,8 @@ class IfcPropertyBoundedValue_SameUnitUpperSet: @staticmethod def __call__(self): - upperboundvalue = getattr(self, 'UpperBoundValue', INDETERMINATE) - setpointvalue = getattr(self, 'SetPointValue', INDETERMINATE) + upperboundvalue = express_getattr(self, 'UpperBoundValue', INDETERMINATE) + setpointvalue = express_getattr(self, 'SetPointValue', INDETERMINATE) assert (not exists(upperboundvalue) or not exists(setpointvalue) or typeof(upperboundvalue) == typeof(setpointvalue)) is not False class IfcPropertyBoundedValue_SameUnitLowerSet: @@ -10028,8 +10038,8 @@ class IfcPropertyBoundedValue_SameUnitLowerSet: @staticmethod def __call__(self): - lowerboundvalue = getattr(self, 'LowerBoundValue', INDETERMINATE) - setpointvalue = getattr(self, 'SetPointValue', INDETERMINATE) + lowerboundvalue = express_getattr(self, 'LowerBoundValue', INDETERMINATE) + setpointvalue = express_getattr(self, 'SetPointValue', INDETERMINATE) assert (not exists(lowerboundvalue) or not exists(setpointvalue) or typeof(lowerboundvalue) == typeof(setpointvalue)) is not False class IfcPropertyDependencyRelationship_NoSelfReference: @@ -10039,8 +10049,8 @@ class IfcPropertyDependencyRelationship_NoSelfReference: @staticmethod def __call__(self): - dependingproperty = getattr(self, 'DependingProperty', INDETERMINATE) - dependantproperty = getattr(self, 'DependantProperty', INDETERMINATE) + dependingproperty = express_getattr(self, 'DependingProperty', INDETERMINATE) + dependantproperty = express_getattr(self, 'DependantProperty', INDETERMINATE) assert (dependingproperty != dependantproperty) is not False class IfcPropertyEnumeratedValue_WR21: @@ -10050,9 +10060,9 @@ class IfcPropertyEnumeratedValue_WR21: @staticmethod def __call__(self): - enumerationvalues = getattr(self, 'EnumerationValues', INDETERMINATE) - enumerationreference = getattr(self, 'EnumerationReference', INDETERMINATE) - assert (not exists(enumerationreference) or not exists(enumerationvalues) or sizeof([temp for temp in enumerationvalues if temp in getattr(enumerationreference, 'EnumerationValues', INDETERMINATE)]) == sizeof(enumerationvalues)) is not False + enumerationvalues = express_getattr(self, 'EnumerationValues', INDETERMINATE) + enumerationreference = express_getattr(self, 'EnumerationReference', INDETERMINATE) + assert (not exists(enumerationreference) or not exists(enumerationvalues) or sizeof([temp for temp in enumerationvalues if temp in express_getattr(enumerationreference, 'EnumerationValues', INDETERMINATE)]) == sizeof(enumerationvalues)) is not False class IfcPropertyEnumeration_WR01: SCOPE = 'entity' @@ -10061,7 +10071,7 @@ class IfcPropertyEnumeration_WR01: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'EnumerationValues', INDETERMINATE) if not typeof(express_getitem(getattr(self, 'EnumerationValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'EnumerationValues', INDETERMINATE) if not typeof(express_getitem(express_getattr(self, 'EnumerationValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False class IfcPropertyListValue_WR31: SCOPE = 'entity' @@ -10070,7 +10080,7 @@ class IfcPropertyListValue_WR31: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'ListValues', INDETERMINATE) if not typeof(express_getitem(getattr(self, 'ListValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'ListValues', INDETERMINATE) if not typeof(express_getitem(express_getattr(self, 'ListValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False class IfcPropertySet_ExistsName: SCOPE = 'entity' @@ -10079,7 +10089,7 @@ class IfcPropertySet_ExistsName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPropertySet_UniquePropertyNames: SCOPE = 'entity' @@ -10088,7 +10098,7 @@ class IfcPropertySet_UniquePropertyNames: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert IfcUniquePropertyName(hasproperties) is not False class IfcPropertySetTemplate_ExistsName: @@ -10098,7 +10108,7 @@ class IfcPropertySetTemplate_ExistsName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPropertySetTemplate_UniquePropertyNames: SCOPE = 'entity' @@ -10107,7 +10117,7 @@ class IfcPropertySetTemplate_UniquePropertyNames: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert IfcUniquePropertyTemplateNames(haspropertytemplates) is not False class IfcPropertyTableValue_WR21: @@ -10117,8 +10127,8 @@ class IfcPropertyTableValue_WR21: @staticmethod def __call__(self): - definingvalues = getattr(self, 'DefiningValues', INDETERMINATE) - definedvalues = getattr(self, 'DefinedValues', INDETERMINATE) + definingvalues = express_getattr(self, 'DefiningValues', INDETERMINATE) + definedvalues = express_getattr(self, 'DefinedValues', INDETERMINATE) assert (not exists(definingvalues) and (not exists(definedvalues)) or sizeof(definingvalues) == sizeof(definedvalues)) is not False class IfcPropertyTableValue_WR22: @@ -10128,8 +10138,8 @@ class IfcPropertyTableValue_WR22: @staticmethod def __call__(self): - definingvalues = getattr(self, 'DefiningValues', INDETERMINATE) - assert (not exists(definingvalues) or sizeof([temp for temp in getattr(self, 'DefiningValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(getattr(self, 'DefiningValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False + definingvalues = express_getattr(self, 'DefiningValues', INDETERMINATE) + assert (not exists(definingvalues) or sizeof([temp for temp in express_getattr(self, 'DefiningValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(express_getattr(self, 'DefiningValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False class IfcPropertyTableValue_WR23: SCOPE = 'entity' @@ -10138,8 +10148,8 @@ class IfcPropertyTableValue_WR23: @staticmethod def __call__(self): - definedvalues = getattr(self, 'DefinedValues', INDETERMINATE) - assert (not exists(definedvalues) or sizeof([temp for temp in getattr(self, 'DefinedValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(getattr(self, 'DefinedValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False + definedvalues = express_getattr(self, 'DefinedValues', INDETERMINATE) + assert (not exists(definedvalues) or sizeof([temp for temp in express_getattr(self, 'DefinedValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(express_getattr(self, 'DefinedValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False class IfcProtectiveDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -10148,8 +10158,8 @@ class IfcProtectiveDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProtectiveDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -10158,8 +10168,8 @@ class IfcProtectiveDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcprotectivedevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcprotectivedevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcProtectiveDeviceTrippingUnit_CorrectPredefinedType: SCOPE = 'entity' @@ -10168,8 +10178,8 @@ class IfcProtectiveDeviceTrippingUnit_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProtectiveDeviceTrippingUnit_CorrectTypeAssigned: SCOPE = 'entity' @@ -10178,8 +10188,8 @@ class IfcProtectiveDeviceTrippingUnit_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcprotectivedevicetrippingunittype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcprotectivedevicetrippingunittype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcProtectiveDeviceTrippingUnitType_CorrectPredefinedType: SCOPE = 'entity' @@ -10188,8 +10198,8 @@ class IfcProtectiveDeviceTrippingUnitType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcProtectiveDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -10198,8 +10208,8 @@ class IfcProtectiveDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcProxy_WR1: SCOPE = 'entity' @@ -10208,7 +10218,7 @@ class IfcProxy_WR1: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPump_CorrectPredefinedType: SCOPE = 'entity' @@ -10217,8 +10227,8 @@ class IfcPump_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPump_CorrectTypeAssigned: SCOPE = 'entity' @@ -10227,8 +10237,8 @@ class IfcPump_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcpumptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcpumptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPumpType_CorrectPredefinedType: SCOPE = 'entity' @@ -10237,8 +10247,8 @@ class IfcPumpType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcQuantityArea_WR21: SCOPE = 'entity' @@ -10247,7 +10257,7 @@ class IfcQuantityArea_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE)) is not False class IfcQuantityArea_WR22: SCOPE = 'entity' @@ -10256,7 +10266,7 @@ class IfcQuantityArea_WR22: @staticmethod def __call__(self): - areavalue = getattr(self, 'AreaValue', INDETERMINATE) + areavalue = express_getattr(self, 'AreaValue', INDETERMINATE) assert (areavalue >= 0.0) is not False class IfcQuantityCount_WR21: @@ -10266,7 +10276,7 @@ class IfcQuantityCount_WR21: @staticmethod def __call__(self): - countvalue = getattr(self, 'CountValue', INDETERMINATE) + countvalue = express_getattr(self, 'CountValue', INDETERMINATE) assert (countvalue >= 0.0) is not False class IfcQuantityLength_WR21: @@ -10276,7 +10286,7 @@ class IfcQuantityLength_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False class IfcQuantityLength_WR22: SCOPE = 'entity' @@ -10285,7 +10295,7 @@ class IfcQuantityLength_WR22: @staticmethod def __call__(self): - lengthvalue = getattr(self, 'LengthValue', INDETERMINATE) + lengthvalue = express_getattr(self, 'LengthValue', INDETERMINATE) assert (lengthvalue >= 0.0) is not False class IfcQuantityTime_WR21: @@ -10295,7 +10305,7 @@ class IfcQuantityTime_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE)) is not False class IfcQuantityTime_WR22: SCOPE = 'entity' @@ -10304,7 +10314,7 @@ class IfcQuantityTime_WR22: @staticmethod def __call__(self): - timevalue = getattr(self, 'TimeValue', INDETERMINATE) + timevalue = express_getattr(self, 'TimeValue', INDETERMINATE) assert (timevalue >= 0.0) is not False class IfcQuantityVolume_WR21: @@ -10314,7 +10324,7 @@ class IfcQuantityVolume_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE)) is not False class IfcQuantityVolume_WR22: SCOPE = 'entity' @@ -10323,7 +10333,7 @@ class IfcQuantityVolume_WR22: @staticmethod def __call__(self): - volumevalue = getattr(self, 'VolumeValue', INDETERMINATE) + volumevalue = express_getattr(self, 'VolumeValue', INDETERMINATE) assert (volumevalue >= 0.0) is not False class IfcQuantityWeight_WR21: @@ -10333,7 +10343,7 @@ class IfcQuantityWeight_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE)) is not False class IfcQuantityWeight_WR22: SCOPE = 'entity' @@ -10342,7 +10352,7 @@ class IfcQuantityWeight_WR22: @staticmethod def __call__(self): - weightvalue = getattr(self, 'WeightValue', INDETERMINATE) + weightvalue = express_getattr(self, 'WeightValue', INDETERMINATE) assert (weightvalue >= 0.0) is not False class IfcRail_CorrectPredefinedType: @@ -10352,8 +10362,8 @@ class IfcRail_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRail_CorrectTypeAssigned: SCOPE = 'entity' @@ -10362,8 +10372,8 @@ class IfcRail_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcrailtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcrailtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRailType_CorrectPredefinedType: SCOPE = 'entity' @@ -10372,8 +10382,8 @@ class IfcRailType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRailing_CorrectPredefinedType: SCOPE = 'entity' @@ -10382,8 +10392,8 @@ class IfcRailing_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRailing_CorrectTypeAssigned: SCOPE = 'entity' @@ -10392,8 +10402,8 @@ class IfcRailing_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcrailingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcrailingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRailingType_CorrectPredefinedType: SCOPE = 'entity' @@ -10402,8 +10412,8 @@ class IfcRailingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRailway_HasObjectType: SCOPE = 'entity' @@ -10412,8 +10422,8 @@ class IfcRailway_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcRamp_CorrectPredefinedType: SCOPE = 'entity' @@ -10422,8 +10432,8 @@ class IfcRamp_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRamp_CorrectTypeAssigned: SCOPE = 'entity' @@ -10432,8 +10442,8 @@ class IfcRamp_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcramptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcramptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRampFlight_CorrectPredefinedType: SCOPE = 'entity' @@ -10442,8 +10452,8 @@ class IfcRampFlight_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRampFlight_CorrectTypeAssigned: SCOPE = 'entity' @@ -10452,8 +10462,8 @@ class IfcRampFlight_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcrampflighttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcrampflighttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRampFlightType_CorrectPredefinedType: SCOPE = 'entity' @@ -10462,8 +10472,8 @@ class IfcRampFlightType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRampType_CorrectPredefinedType: SCOPE = 'entity' @@ -10472,8 +10482,8 @@ class IfcRampType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRationalBSplineCurveWithKnots_SameNumOfWeightsAndPoints: SCOPE = 'entity' @@ -10482,8 +10492,8 @@ class IfcRationalBSplineCurveWithKnots_SameNumOfWeightsAndPoints: @staticmethod def __call__(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - assert (sizeof(weightsdata) == sizeof(getattr(self, 'ControlPointsList', INDETERMINATE))) is not False + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + assert (sizeof(weightsdata) == sizeof(express_getattr(self, 'ControlPointsList', INDETERMINATE))) is not False class IfcRationalBSplineCurveWithKnots_WeightsGreaterZero: SCOPE = 'entity' @@ -10495,8 +10505,8 @@ class IfcRationalBSplineCurveWithKnots_WeightsGreaterZero: assert IfcCurveWeightsPositive(self) is not False def calc_IfcRationalBSplineCurveWithKnots_Weights(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - return IfcListToArray(weightsdata, 0, getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE)) + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + return IfcListToArray(weightsdata, 0, express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE)) class IfcRationalBSplineSurfaceWithKnots_CorrespondingWeightsDataLists: SCOPE = 'entity' @@ -10505,8 +10515,8 @@ class IfcRationalBSplineSurfaceWithKnots_CorrespondingWeightsDataLists: @staticmethod def __call__(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - assert (sizeof(weightsdata) == sizeof(getattr(self, 'ControlPointsList', INDETERMINATE)) and sizeof(express_getitem(weightsdata, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == sizeof(express_getitem(getattr(self, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + assert (sizeof(weightsdata) == sizeof(express_getattr(self, 'ControlPointsList', INDETERMINATE)) and sizeof(express_getitem(weightsdata, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == sizeof(express_getitem(express_getattr(self, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcRationalBSplineSurfaceWithKnots_WeightValuesGreaterZero: SCOPE = 'entity' @@ -10518,9 +10528,9 @@ class IfcRationalBSplineSurfaceWithKnots_WeightValuesGreaterZero: assert IfcSurfaceWeightsPositive(self) is not False def calc_IfcRationalBSplineSurfaceWithKnots_Weights(self): - uupper = getattr(self, 'UUpper', INDETERMINATE) - vupper = getattr(self, 'VUpper', INDETERMINATE) - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) + uupper = express_getattr(self, 'UUpper', INDETERMINATE) + vupper = express_getattr(self, 'VUpper', INDETERMINATE) + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) return IfcMakeArrayOfArray(weightsdata, 0, uupper, 0, vupper) class IfcRectangleHollowProfileDef_ValidWallThickness: @@ -10530,8 +10540,8 @@ class IfcRectangleHollowProfileDef_ValidWallThickness: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - assert (wallthickness < getattr(self, 'XDim', INDETERMINATE) / 2.0 and wallthickness < getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + assert (wallthickness < express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and wallthickness < express_getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False class IfcRectangleHollowProfileDef_ValidInnerRadius: SCOPE = 'entity' @@ -10540,9 +10550,9 @@ class IfcRectangleHollowProfileDef_ValidInnerRadius: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - innerfilletradius = getattr(self, 'InnerFilletRadius', INDETERMINATE) - assert (not exists(innerfilletradius) or (innerfilletradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 - wallthickness and innerfilletradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0 - wallthickness)) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + innerfilletradius = express_getattr(self, 'InnerFilletRadius', INDETERMINATE) + assert (not exists(innerfilletradius) or (innerfilletradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 - wallthickness and innerfilletradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0 - wallthickness)) is not False class IfcRectangleHollowProfileDef_ValidOuterRadius: SCOPE = 'entity' @@ -10551,8 +10561,8 @@ class IfcRectangleHollowProfileDef_ValidOuterRadius: @staticmethod def __call__(self): - outerfilletradius = getattr(self, 'OuterFilletRadius', INDETERMINATE) - assert (not exists(outerfilletradius) or (outerfilletradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 and outerfilletradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0)) is not False + outerfilletradius = express_getattr(self, 'OuterFilletRadius', INDETERMINATE) + assert (not exists(outerfilletradius) or (outerfilletradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and outerfilletradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0)) is not False class IfcRectangularTrimmedSurface_U1AndU2Different: SCOPE = 'entity' @@ -10561,8 +10571,8 @@ class IfcRectangularTrimmedSurface_U1AndU2Different: @staticmethod def __call__(self): - u1 = getattr(self, 'U1', INDETERMINATE) - u2 = getattr(self, 'U2', INDETERMINATE) + u1 = express_getattr(self, 'U1', INDETERMINATE) + u2 = express_getattr(self, 'U2', INDETERMINATE) assert (u1 != u2) is not False class IfcRectangularTrimmedSurface_V1AndV2Different: @@ -10572,8 +10582,8 @@ class IfcRectangularTrimmedSurface_V1AndV2Different: @staticmethod def __call__(self): - v1 = getattr(self, 'V1', INDETERMINATE) - v2 = getattr(self, 'V2', INDETERMINATE) + v1 = express_getattr(self, 'V1', INDETERMINATE) + v2 = express_getattr(self, 'V2', INDETERMINATE) assert (v1 != v2) is not False class IfcRectangularTrimmedSurface_UsenseCompatible: @@ -10583,10 +10593,10 @@ class IfcRectangularTrimmedSurface_UsenseCompatible: @staticmethod def __call__(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) - u1 = getattr(self, 'U1', INDETERMINATE) - u2 = getattr(self, 'U2', INDETERMINATE) - usense = getattr(self, 'Usense', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) + u1 = express_getattr(self, 'U1', INDETERMINATE) + u2 = express_getattr(self, 'U2', INDETERMINATE) + usense = express_getattr(self, 'Usense', INDETERMINATE) assert ('ifc4x3_rc3.ifcelementarysurface' in typeof(basissurface) and (not 'ifc4x3_rc3.ifcplane' in typeof(basissurface)) or 'ifc4x3_rc3.ifcsurfaceofrevolution' in typeof(basissurface) or usense == (u2 > u1)) is not False class IfcRectangularTrimmedSurface_VsenseCompatible: @@ -10596,9 +10606,9 @@ class IfcRectangularTrimmedSurface_VsenseCompatible: @staticmethod def __call__(self): - v1 = getattr(self, 'V1', INDETERMINATE) - v2 = getattr(self, 'V2', INDETERMINATE) - vsense = getattr(self, 'Vsense', INDETERMINATE) + v1 = express_getattr(self, 'V1', INDETERMINATE) + v2 = express_getattr(self, 'V2', INDETERMINATE) + vsense = express_getattr(self, 'Vsense', INDETERMINATE) assert (vsense == (v2 > v1)) is not False class IfcReinforcedSoil_CorrectPredefinedType: @@ -10608,8 +10618,8 @@ class IfcReinforcedSoil_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingBar_CorrectPredefinedType: SCOPE = 'entity' @@ -10618,8 +10628,8 @@ class IfcReinforcingBar_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingBar_CorrectTypeAssigned: SCOPE = 'entity' @@ -10628,8 +10638,8 @@ class IfcReinforcingBar_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcreinforcingbartype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcreinforcingbartype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcReinforcingBarType_CorrectPredefinedType: SCOPE = 'entity' @@ -10638,8 +10648,8 @@ class IfcReinforcingBarType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcReinforcingBarType_BendingShapeCodeProvided: SCOPE = 'entity' @@ -10648,8 +10658,8 @@ class IfcReinforcingBarType_BendingShapeCodeProvided: @staticmethod def __call__(self): - bendingshapecode = getattr(self, 'BendingShapeCode', INDETERMINATE) - bendingparameters = getattr(self, 'BendingParameters', INDETERMINATE) + bendingshapecode = express_getattr(self, 'BendingShapeCode', INDETERMINATE) + bendingparameters = express_getattr(self, 'BendingParameters', INDETERMINATE) assert (not exists(bendingparameters) or exists(bendingshapecode)) is not False class IfcReinforcingMesh_CorrectPredefinedType: @@ -10659,8 +10669,8 @@ class IfcReinforcingMesh_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingMesh_CorrectTypeAssigned: SCOPE = 'entity' @@ -10669,8 +10679,8 @@ class IfcReinforcingMesh_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcreinforcingmeshtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcreinforcingmeshtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcReinforcingMeshType_CorrectPredefinedType: SCOPE = 'entity' @@ -10679,8 +10689,8 @@ class IfcReinforcingMeshType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcReinforcingMeshType_BendingShapeCodeProvided: SCOPE = 'entity' @@ -10689,8 +10699,8 @@ class IfcReinforcingMeshType_BendingShapeCodeProvided: @staticmethod def __call__(self): - bendingshapecode = getattr(self, 'BendingShapeCode', INDETERMINATE) - bendingparameters = getattr(self, 'BendingParameters', INDETERMINATE) + bendingshapecode = express_getattr(self, 'BendingShapeCode', INDETERMINATE) + bendingparameters = express_getattr(self, 'BendingParameters', INDETERMINATE) assert (not exists(bendingparameters) or exists(bendingshapecode)) is not False class IfcRelAggregates_NoSelfReference: @@ -10700,8 +10710,8 @@ class IfcRelAggregates_NoSelfReference: @staticmethod def __call__(self): - relatingobject = getattr(self, 'RelatingObject', INDETERMINATE) - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) + relatingobject = express_getattr(self, 'RelatingObject', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) assert (sizeof([temp for temp in relatedobjects if relatingobject == temp]) == 0) is not False class IfcRelAssigns_WR1: @@ -10711,8 +10721,8 @@ class IfcRelAssigns_WR1: @staticmethod def __call__(self): - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) - relatedobjectstype = getattr(self, 'RelatedObjectsType', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) + relatedobjectstype = express_getattr(self, 'RelatedObjectsType', INDETERMINATE) assert IfcCorrectObjectAssignment(relatedobjectstype, relatedobjects) is not False class IfcRelAssignsToActor_NoSelfReference: @@ -10722,8 +10732,8 @@ class IfcRelAssignsToActor_NoSelfReference: @staticmethod def __call__(self): - relatingactor = getattr(self, 'RelatingActor', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingactor == temp]) == 0) is not False + relatingactor = express_getattr(self, 'RelatingActor', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingactor == temp]) == 0) is not False class IfcRelAssignsToControl_NoSelfReference: SCOPE = 'entity' @@ -10732,8 +10742,8 @@ class IfcRelAssignsToControl_NoSelfReference: @staticmethod def __call__(self): - relatingcontrol = getattr(self, 'RelatingControl', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingcontrol == temp]) == 0) is not False + relatingcontrol = express_getattr(self, 'RelatingControl', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingcontrol == temp]) == 0) is not False class IfcRelAssignsToGroup_NoSelfReference: SCOPE = 'entity' @@ -10742,8 +10752,8 @@ class IfcRelAssignsToGroup_NoSelfReference: @staticmethod def __call__(self): - relatinggroup = getattr(self, 'RelatingGroup', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatinggroup == temp]) == 0) is not False + relatinggroup = express_getattr(self, 'RelatingGroup', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatinggroup == temp]) == 0) is not False class IfcRelAssignsToProcess_NoSelfReference: SCOPE = 'entity' @@ -10752,8 +10762,8 @@ class IfcRelAssignsToProcess_NoSelfReference: @staticmethod def __call__(self): - relatingprocess = getattr(self, 'RelatingProcess', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingprocess == temp]) == 0) is not False + relatingprocess = express_getattr(self, 'RelatingProcess', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingprocess == temp]) == 0) is not False class IfcRelAssignsToProduct_NoSelfReference: SCOPE = 'entity' @@ -10762,8 +10772,8 @@ class IfcRelAssignsToProduct_NoSelfReference: @staticmethod def __call__(self): - relatingproduct = getattr(self, 'RelatingProduct', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingproduct == temp]) == 0) is not False + relatingproduct = express_getattr(self, 'RelatingProduct', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingproduct == temp]) == 0) is not False class IfcRelAssignsToResource_NoSelfReference: SCOPE = 'entity' @@ -10772,8 +10782,8 @@ class IfcRelAssignsToResource_NoSelfReference: @staticmethod def __call__(self): - relatingresource = getattr(self, 'RelatingResource', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingresource == temp]) == 0) is not False + relatingresource = express_getattr(self, 'RelatingResource', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingresource == temp]) == 0) is not False class IfcRelAssociatesMaterial_NoVoidElement: SCOPE = 'entity' @@ -10782,7 +10792,7 @@ class IfcRelAssociatesMaterial_NoVoidElement: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3_rc3.ifcfeatureelementsubtraction' in typeof(temp) or 'ifc4x3_rc3.ifcvirtualelement' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3_rc3.ifcfeatureelementsubtraction' in typeof(temp) or 'ifc4x3_rc3.ifcvirtualelement' in typeof(temp)]) == 0) is not False class IfcRelAssociatesMaterial_AllowedElements: SCOPE = 'entity' @@ -10791,7 +10801,7 @@ class IfcRelAssociatesMaterial_AllowedElements: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if sizeof(typeof(temp) * ['ifc4x3_rc3.ifcelement', 'ifc4x3_rc3.ifcelementtype', 'ifc4x3_rc3.ifcwindowstyle', 'ifc4x3_rc3.ifcdoorstyle', 'ifc4x3_rc3.ifcstructuralmember', 'ifc4x3_rc3.ifcport']) == 0]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if sizeof(typeof(temp) * ['ifc4x3_rc3.ifcelement', 'ifc4x3_rc3.ifcelementtype', 'ifc4x3_rc3.ifcwindowstyle', 'ifc4x3_rc3.ifcdoorstyle', 'ifc4x3_rc3.ifcstructuralmember', 'ifc4x3_rc3.ifcport']) == 0]) == 0) is not False class IfcRelConnectsElements_NoSelfReference: SCOPE = 'entity' @@ -10800,8 +10810,8 @@ class IfcRelConnectsElements_NoSelfReference: @staticmethod def __call__(self): - relatingelement = getattr(self, 'RelatingElement', INDETERMINATE) - relatedelement = getattr(self, 'RelatedElement', INDETERMINATE) + relatingelement = express_getattr(self, 'RelatingElement', INDETERMINATE) + relatedelement = express_getattr(self, 'RelatedElement', INDETERMINATE) assert (relatingelement != relatedelement) is not False class IfcRelConnectsPathElements_NormalizedRelatingPriorities: @@ -10811,7 +10821,7 @@ class IfcRelConnectsPathElements_NormalizedRelatingPriorities: @staticmethod def __call__(self): - relatingpriorities = getattr(self, 'RelatingPriorities', INDETERMINATE) + relatingpriorities = express_getattr(self, 'RelatingPriorities', INDETERMINATE) assert (sizeof(relatingpriorities) == 0 or sizeof([temp for temp in relatingpriorities if 0 <= temp <= 100]) == sizeof(relatingpriorities)) is not False class IfcRelConnectsPathElements_NormalizedRelatedPriorities: @@ -10821,7 +10831,7 @@ class IfcRelConnectsPathElements_NormalizedRelatedPriorities: @staticmethod def __call__(self): - relatedpriorities = getattr(self, 'RelatedPriorities', INDETERMINATE) + relatedpriorities = express_getattr(self, 'RelatedPriorities', INDETERMINATE) assert (sizeof(relatedpriorities) == 0 or sizeof([temp for temp in relatedpriorities if 0 <= temp <= 100]) == sizeof(relatedpriorities)) is not False class IfcRelConnectsPorts_NoSelfReference: @@ -10831,8 +10841,8 @@ class IfcRelConnectsPorts_NoSelfReference: @staticmethod def __call__(self): - relatingport = getattr(self, 'RelatingPort', INDETERMINATE) - relatedport = getattr(self, 'RelatedPort', INDETERMINATE) + relatingport = express_getattr(self, 'RelatingPort', INDETERMINATE) + relatedport = express_getattr(self, 'RelatedPort', INDETERMINATE) assert (relatingport != relatedport) is not False class IfcRelContainedInSpatialStructure_WR31: @@ -10842,7 +10852,7 @@ class IfcRelContainedInSpatialStructure_WR31: @staticmethod def __call__(self): - relatedelements = getattr(self, 'RelatedElements', INDETERMINATE) + relatedelements = express_getattr(self, 'RelatedElements', INDETERMINATE) assert (sizeof([temp for temp in relatedelements if 'ifc4x3_rc3.ifcspatialstructureelement' in typeof(temp)]) == 0) is not False class IfcRelDeclares_NoSelfReference: @@ -10852,8 +10862,8 @@ class IfcRelDeclares_NoSelfReference: @staticmethod def __call__(self): - relatingcontext = getattr(self, 'RelatingContext', INDETERMINATE) - relateddefinitions = getattr(self, 'RelatedDefinitions', INDETERMINATE) + relatingcontext = express_getattr(self, 'RelatingContext', INDETERMINATE) + relateddefinitions = express_getattr(self, 'RelatedDefinitions', INDETERMINATE) assert (sizeof([temp for temp in relateddefinitions if relatingcontext == temp]) == 0) is not False class IfcRelDefinesByProperties_NoRelatedTypeObject: @@ -10863,7 +10873,7 @@ class IfcRelDefinesByProperties_NoRelatedTypeObject: @staticmethod def __call__(self): - assert (sizeof([types for types in getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3_rc3.ifctypeobject' in typeof(types)]) == 0) is not False + assert (sizeof([types for types in express_getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3_rc3.ifctypeobject' in typeof(types)]) == 0) is not False class IfcRelInterferesElements_NoSelfReference: SCOPE = 'entity' @@ -10872,8 +10882,8 @@ class IfcRelInterferesElements_NoSelfReference: @staticmethod def __call__(self): - relatingelement = getattr(self, 'RelatingElement', INDETERMINATE) - relatedelement = getattr(self, 'RelatedElement', INDETERMINATE) + relatingelement = express_getattr(self, 'RelatingElement', INDETERMINATE) + relatedelement = express_getattr(self, 'RelatedElement', INDETERMINATE) assert (relatingelement != relatedelement) is not False class IfcRelNests_NoSelfReference: @@ -10883,8 +10893,8 @@ class IfcRelNests_NoSelfReference: @staticmethod def __call__(self): - relatingobject = getattr(self, 'RelatingObject', INDETERMINATE) - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) + relatingobject = express_getattr(self, 'RelatingObject', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) assert (sizeof([temp for temp in relatedobjects if relatingobject == temp]) == 0) is not False class IfcRelPositions_NoSelfReference: @@ -10894,8 +10904,8 @@ class IfcRelPositions_NoSelfReference: @staticmethod def __call__(self): - relatingpositioningelement = getattr(self, 'RelatingPositioningElement', INDETERMINATE) - relatedproducts = getattr(self, 'RelatedProducts', INDETERMINATE) + relatingpositioningelement = express_getattr(self, 'RelatingPositioningElement', INDETERMINATE) + relatedproducts = express_getattr(self, 'RelatedProducts', INDETERMINATE) assert (sizeof([temp for temp in relatedproducts if relatingpositioningelement == temp]) == 0) is not False class IfcRelReferencedInSpatialStructure_AllowedRelatedElements: @@ -10905,7 +10915,7 @@ class IfcRelReferencedInSpatialStructure_AllowedRelatedElements: @staticmethod def __call__(self): - relatedelements = getattr(self, 'RelatedElements', INDETERMINATE) + relatedelements = express_getattr(self, 'RelatedElements', INDETERMINATE) assert (sizeof([temp for temp in relatedelements if 'ifc4x3_rc3.ifcspatialstructureelement' in typeof(temp) and (not 'ifc4x3_rc3.ifcspace' in typeof(temp))]) == 0) is not False class IfcRelSequence_AvoidInconsistentSequence: @@ -10915,8 +10925,8 @@ class IfcRelSequence_AvoidInconsistentSequence: @staticmethod def __call__(self): - relatingprocess = getattr(self, 'RelatingProcess', INDETERMINATE) - relatedprocess = getattr(self, 'RelatedProcess', INDETERMINATE) + relatingprocess = express_getattr(self, 'RelatingProcess', INDETERMINATE) + relatedprocess = express_getattr(self, 'RelatedProcess', INDETERMINATE) assert (relatingprocess != relatedprocess) is not False class IfcRelSequence_CorrectSequenceType: @@ -10926,9 +10936,9 @@ class IfcRelSequence_CorrectSequenceType: @staticmethod def __call__(self): - sequencetype = getattr(self, 'SequenceType', INDETERMINATE) - userdefinedsequencetype = getattr(self, 'UserDefinedSequenceType', INDETERMINATE) - assert (sequencetype != getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) or (sequencetype == getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedsequencetype))) is not False + sequencetype = express_getattr(self, 'SequenceType', INDETERMINATE) + userdefinedsequencetype = express_getattr(self, 'UserDefinedSequenceType', INDETERMINATE) + assert (sequencetype != express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) or (sequencetype == express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedsequencetype))) is not False class IfcRelSpaceBoundary_CorrectPhysOrVirt: SCOPE = 'entity' @@ -10937,9 +10947,9 @@ class IfcRelSpaceBoundary_CorrectPhysOrVirt: @staticmethod def __call__(self): - relatedbuildingelement = getattr(self, 'RelatedBuildingElement', INDETERMINATE) - physicalorvirtualboundary = getattr(self, 'PhysicalOrVirtualBoundary', INDETERMINATE) - assert (physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'Physical', INDETERMINATE) and (not 'ifc4x3_rc3.ifcvirtualelement' in typeof(relatedbuildingelement)) or (physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'Virtual', INDETERMINATE) and ('ifc4x3_rc3.ifcvirtualelement' in typeof(relatedbuildingelement) or 'ifc4x3_rc3.ifcopeningelement' in typeof(relatedbuildingelement))) or physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'NotDefined', INDETERMINATE)) is not False + relatedbuildingelement = express_getattr(self, 'RelatedBuildingElement', INDETERMINATE) + physicalorvirtualboundary = express_getattr(self, 'PhysicalOrVirtualBoundary', INDETERMINATE) + assert (physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'Physical', INDETERMINATE) and (not 'ifc4x3_rc3.ifcvirtualelement' in typeof(relatedbuildingelement)) or (physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'Virtual', INDETERMINATE) and ('ifc4x3_rc3.ifcvirtualelement' in typeof(relatedbuildingelement) or 'ifc4x3_rc3.ifcopeningelement' in typeof(relatedbuildingelement))) or physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'NotDefined', INDETERMINATE)) is not False class IfcReparametrisedCompositeCurveSegment_PositiveLengthParameter: SCOPE = 'entity' @@ -10948,7 +10958,7 @@ class IfcReparametrisedCompositeCurveSegment_PositiveLengthParameter: @staticmethod def __call__(self): - paramlength = getattr(self, 'ParamLength', INDETERMINATE) + paramlength = express_getattr(self, 'ParamLength', INDETERMINATE) assert (paramlength > 0.0) is not False class IfcRepresentationMap_ApplicableMappedRepr: @@ -10958,7 +10968,7 @@ class IfcRepresentationMap_ApplicableMappedRepr: @staticmethod def __call__(self): - mappedrepresentation = getattr(self, 'MappedRepresentation', INDETERMINATE) + mappedrepresentation = express_getattr(self, 'MappedRepresentation', INDETERMINATE) assert ('ifc4x3_rc3.ifcshapemodel' in typeof(mappedrepresentation)) is not False class IfcRevolvedAreaSolid_AxisStartInXY: @@ -10968,8 +10978,8 @@ class IfcRevolvedAreaSolid_AxisStartInXY: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (express_getitem(getattr(getattr(axis, 'Location', INDETERMINATE), 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (express_getitem(express_getattr(express_getattr(axis, 'Location', INDETERMINATE), 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False class IfcRevolvedAreaSolid_AxisDirectionInXY: SCOPE = 'entity' @@ -10978,12 +10988,12 @@ class IfcRevolvedAreaSolid_AxisDirectionInXY: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (express_getitem(getattr(getattr(axis, 'Z', INDETERMINATE), 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (express_getitem(express_getattr(express_getattr(axis, 'Z', INDETERMINATE), 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False def calc_IfcRevolvedAreaSolid_AxisLine(self): - axis = getattr(self, 'Axis', INDETERMINATE) - return IfcLine(Pnt=getattr(axis, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=getattr(axis, 'Z', INDETERMINATE), Magnitude=1.0)) + axis = express_getattr(self, 'Axis', INDETERMINATE) + return IfcLine(Pnt=express_getattr(axis, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=express_getattr(axis, 'Z', INDETERMINATE), Magnitude=1.0)) class IfcRevolvedAreaSolidTapered_CorrectProfileAssignment: SCOPE = 'entity' @@ -10992,7 +11002,7 @@ class IfcRevolvedAreaSolidTapered_CorrectProfileAssignment: @staticmethod def __call__(self): - assert IfcTaperedSweptAreaProfiles(getattr(self, 'SweptArea', INDETERMINATE), getattr(self, 'EndSweptArea', INDETERMINATE)) is not False + assert IfcTaperedSweptAreaProfiles(express_getattr(self, 'SweptArea', INDETERMINATE), express_getattr(self, 'EndSweptArea', INDETERMINATE)) is not False class IfcRoad_HasObjectType: SCOPE = 'entity' @@ -11001,8 +11011,8 @@ class IfcRoad_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcRoof_CorrectPredefinedType: SCOPE = 'entity' @@ -11011,8 +11021,8 @@ class IfcRoof_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRoof_CorrectTypeAssigned: SCOPE = 'entity' @@ -11021,8 +11031,8 @@ class IfcRoof_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcrooftype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcrooftype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRoofType_CorrectPredefinedType: SCOPE = 'entity' @@ -11031,8 +11041,8 @@ class IfcRoofType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRoundedRectangleProfileDef_ValidRadius: SCOPE = 'entity' @@ -11041,11 +11051,11 @@ class IfcRoundedRectangleProfileDef_ValidRadius: @staticmethod def __call__(self): - roundingradius = getattr(self, 'RoundingRadius', INDETERMINATE) - assert (roundingradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 and roundingradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False + roundingradius = express_getattr(self, 'RoundingRadius', INDETERMINATE) + assert (roundingradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and roundingradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False def calc_IfcSIUnit_Dimensions(self): - return IfcDimensionsForSiUnit(getattr(self, 'Name', INDETERMINATE)) + return IfcDimensionsForSiUnit(express_getattr(self, 'Name', INDETERMINATE)) class IfcSanitaryTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -11054,8 +11064,8 @@ class IfcSanitaryTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSanitaryTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -11064,8 +11074,8 @@ class IfcSanitaryTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcsanitaryterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcsanitaryterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSanitaryTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -11074,8 +11084,8 @@ class IfcSanitaryTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSeamCurve_TwoPCurves: SCOPE = 'entity' @@ -11084,7 +11094,7 @@ class IfcSeamCurve_TwoPCurves: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False + assert (sizeof(express_getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False class IfcSeamCurve_SameSurface: SCOPE = 'entity' @@ -11093,7 +11103,7 @@ class IfcSeamCurve_SameSurface: @staticmethod def __call__(self): - assert (IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcSectionedSolid_DirectrixIs3D: SCOPE = 'entity' @@ -11102,8 +11112,8 @@ class IfcSectionedSolid_DirectrixIs3D: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - assert (getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + assert (express_getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False class IfcSectionedSolid_ConsistentProfileTypes: SCOPE = 'entity' @@ -11112,8 +11122,8 @@ class IfcSectionedSolid_ConsistentProfileTypes: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - assert (sizeof([temp for temp in crosssections if getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + assert (sizeof([temp for temp in crosssections if express_getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != express_getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcSectionedSolid_SectionsSameType: SCOPE = 'entity' @@ -11122,7 +11132,7 @@ class IfcSectionedSolid_SectionsSameType: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) assert (sizeof([temp for temp in crosssections if typeof(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(temp)]) == 0) is not False class IfcSectionedSolidHorizontal_CorrespondingSectionPositions: @@ -11132,8 +11142,8 @@ class IfcSectionedSolidHorizontal_CorrespondingSectionPositions: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) assert (sizeof(crosssections) == sizeof(crosssectionpositions)) is not False class IfcSectionedSolidHorizontal_NoLongitudinalOffsets: @@ -11143,8 +11153,8 @@ class IfcSectionedSolidHorizontal_NoLongitudinalOffsets: @staticmethod def __call__(self): - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) - assert (sizeof([temp for temp in crosssectionpositions if exists(getattr(getattr(temp, 'Location', INDETERMINATE), 'OffsetLongitudinal', INDETERMINATE))]) == 0) is not False + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) + assert (sizeof([temp for temp in crosssectionpositions if exists(express_getattr(express_getattr(temp, 'Location', INDETERMINATE), 'OffsetLongitudinal', INDETERMINATE))]) == 0) is not False class IfcSectionedSpine_CorrespondingSectionPositions: SCOPE = 'entity' @@ -11153,8 +11163,8 @@ class IfcSectionedSpine_CorrespondingSectionPositions: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) assert (sizeof(crosssections) == sizeof(crosssectionpositions)) is not False class IfcSectionedSpine_ConsistentProfileTypes: @@ -11164,8 +11174,8 @@ class IfcSectionedSpine_ConsistentProfileTypes: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - assert (sizeof([temp for temp in crosssections if getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + assert (sizeof([temp for temp in crosssections if express_getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != express_getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcSectionedSpine_SpineCurveDim: SCOPE = 'entity' @@ -11174,8 +11184,8 @@ class IfcSectionedSpine_SpineCurveDim: @staticmethod def __call__(self): - spinecurve = getattr(self, 'SpineCurve', INDETERMINATE) - assert (getattr(spinecurve, 'Dim', INDETERMINATE) == 3) is not False + spinecurve = express_getattr(self, 'SpineCurve', INDETERMINATE) + assert (express_getattr(spinecurve, 'Dim', INDETERMINATE) == 3) is not False def calc_IfcSectionedSpine_Dim(self): return 3 @@ -11187,8 +11197,8 @@ class IfcSensor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSensor_CorrectTypeAssigned: SCOPE = 'entity' @@ -11197,8 +11207,8 @@ class IfcSensor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcsensortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcsensortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSensorType_CorrectPredefinedType: SCOPE = 'entity' @@ -11207,8 +11217,8 @@ class IfcSensorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcShadingDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -11217,8 +11227,8 @@ class IfcShadingDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcShadingDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -11227,8 +11237,8 @@ class IfcShadingDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcshadingdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcshadingdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcShadingDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11237,8 +11247,8 @@ class IfcShadingDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcShapeModel_WR11: SCOPE = 'entity' @@ -11247,8 +11257,8 @@ class IfcShapeModel_WR11: @staticmethod def __call__(self): - ofshapeaspect = getattr(self, 'OfShapeAspect', INDETERMINATE) - assert (sizeof(getattr(self, 'OfProductRepresentation', INDETERMINATE)) == 1) ^ (sizeof(getattr(self, 'RepresentationMap', INDETERMINATE)) == 1) ^ (sizeof(ofshapeaspect) == 1) is not False + ofshapeaspect = express_getattr(self, 'OfShapeAspect', INDETERMINATE) + assert (sizeof(express_getattr(self, 'OfProductRepresentation', INDETERMINATE)) == 1) ^ (sizeof(express_getattr(self, 'RepresentationMap', INDETERMINATE)) == 1) ^ (sizeof(ofshapeaspect) == 1) is not False class IfcShapeRepresentation_CorrectContext: SCOPE = 'entity' @@ -11257,7 +11267,7 @@ class IfcShapeRepresentation_CorrectContext: @staticmethod def __call__(self): - assert ('ifc4x3_rc3.ifcgeometricrepresentationcontext' in typeof(getattr(self, 'ContextOfItems', INDETERMINATE))) is not False + assert ('ifc4x3_rc3.ifcgeometricrepresentationcontext' in typeof(express_getattr(self, 'ContextOfItems', INDETERMINATE))) is not False class IfcShapeRepresentation_NoTopologicalItem: SCOPE = 'entity' @@ -11266,7 +11276,7 @@ class IfcShapeRepresentation_NoTopologicalItem: @staticmethod def __call__(self): - items = getattr(self, 'Items', INDETERMINATE) + items = express_getattr(self, 'Items', INDETERMINATE) assert (sizeof([temp for temp in items if 'ifc4x3_rc3.ifctopologicalrepresentationitem' in typeof(temp) and (not sizeof(['ifc4x3_rc3.ifcvertexpoint', 'ifc4x3_rc3.ifcedgecurve', 'ifc4x3_rc3.ifcfacesurface'] * typeof(temp)) == 1)]) == 0) is not False class IfcShapeRepresentation_HasRepresentationType: @@ -11276,7 +11286,7 @@ class IfcShapeRepresentation_HasRepresentationType: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationType', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationType', INDETERMINATE)) is not False class IfcShapeRepresentation_HasRepresentationIdentifier: SCOPE = 'entity' @@ -11285,7 +11295,7 @@ class IfcShapeRepresentation_HasRepresentationIdentifier: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationIdentifier', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationIdentifier', INDETERMINATE)) is not False class IfcShapeRepresentation_CorrectItemsForType: SCOPE = 'entity' @@ -11294,7 +11304,7 @@ class IfcShapeRepresentation_CorrectItemsForType: @staticmethod def __call__(self): - assert IfcShapeRepresentationTypes(getattr(self, 'RepresentationType', INDETERMINATE), getattr(self, 'Items', INDETERMINATE)) is not False + assert IfcShapeRepresentationTypes(express_getattr(self, 'RepresentationType', INDETERMINATE), express_getattr(self, 'Items', INDETERMINATE)) is not False def calc_IfcShellBasedSurfaceModel_Dim(self): return 3 @@ -11306,8 +11316,8 @@ class IfcSign_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSign_CorrectTypeAssigned: SCOPE = 'entity' @@ -11316,8 +11326,8 @@ class IfcSign_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcsigntype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcsigntype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSignType_CorrectPredefinedType: SCOPE = 'entity' @@ -11326,8 +11336,8 @@ class IfcSignType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSignal_CorrectPredefinedType: SCOPE = 'entity' @@ -11336,8 +11346,8 @@ class IfcSignal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSignal_CorrectTypeAssigned: SCOPE = 'entity' @@ -11346,8 +11356,8 @@ class IfcSignal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcsignaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcsignaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSignalType_CorrectPredefinedType: SCOPE = 'entity' @@ -11356,8 +11366,8 @@ class IfcSignalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSlab_CorrectPredefinedType: SCOPE = 'entity' @@ -11366,8 +11376,8 @@ class IfcSlab_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSlab_CorrectTypeAssigned: SCOPE = 'entity' @@ -11376,8 +11386,8 @@ class IfcSlab_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcslabtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcslabtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSlabElementedCase_HasDecomposition: SCOPE = 'entity' @@ -11386,7 +11396,7 @@ class IfcSlabElementedCase_HasDecomposition: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'IsDecomposedBy', INDETERMINATE)) > 0) is not False + assert (hiindex(express_getattr(self, 'IsDecomposedBy', INDETERMINATE)) > 0) is not False class IfcSlabStandardCase_HasMaterialLayerSetusage: SCOPE = 'entity' @@ -11395,7 +11405,7 @@ class IfcSlabStandardCase_HasMaterialLayerSetusage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc3.ifcrelassociates.relatedobjects') if 'ifc4x3_rc3.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc3.ifcmateriallayersetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc3.ifcrelassociates.relatedobjects') if 'ifc4x3_rc3.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc3.ifcmateriallayersetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcSlabType_CorrectPredefinedType: SCOPE = 'entity' @@ -11404,8 +11414,8 @@ class IfcSlabType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSolarDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -11414,8 +11424,8 @@ class IfcSolarDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSolarDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -11424,8 +11434,8 @@ class IfcSolarDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcsolardevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcsolardevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSolarDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11434,8 +11444,8 @@ class IfcSolarDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcSolidModel_Dim(self): return 3 @@ -11447,8 +11457,8 @@ class IfcSpace_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpace_CorrectTypeAssigned: SCOPE = 'entity' @@ -11457,8 +11467,8 @@ class IfcSpace_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcspacetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcspacetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpaceHeater_CorrectPredefinedType: SCOPE = 'entity' @@ -11467,8 +11477,8 @@ class IfcSpaceHeater_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpaceHeater_CorrectTypeAssigned: SCOPE = 'entity' @@ -11477,8 +11487,8 @@ class IfcSpaceHeater_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcspaceheatertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcspaceheatertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpaceHeaterType_CorrectPredefinedType: SCOPE = 'entity' @@ -11487,8 +11497,8 @@ class IfcSpaceHeaterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSpaceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11497,8 +11507,8 @@ class IfcSpaceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSpatialStructureElement_WR41: SCOPE = 'entity' @@ -11507,7 +11517,7 @@ class IfcSpatialStructureElement_WR41: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'Decomposes', INDETERMINATE)) == 1 and 'ifc4x3_rc3.ifcrelaggregates' in typeof(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc3.ifcproject' in typeof(getattr(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)) or 'ifc4x3_rc3.ifcspatialstructureelement' in typeof(getattr(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)))) is not False + assert (hiindex(express_getattr(self, 'Decomposes', INDETERMINATE)) == 1 and 'ifc4x3_rc3.ifcrelaggregates' in typeof(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc3.ifcproject' in typeof(express_getattr(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)) or 'ifc4x3_rc3.ifcspatialstructureelement' in typeof(express_getattr(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)))) is not False class IfcSpatialZone_CorrectPredefinedType: SCOPE = 'entity' @@ -11516,8 +11526,8 @@ class IfcSpatialZone_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpatialZone_CorrectTypeAssigned: SCOPE = 'entity' @@ -11526,8 +11536,8 @@ class IfcSpatialZone_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcspatialzonetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcspatialzonetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpatialZoneType_CorrectPredefinedType: SCOPE = 'entity' @@ -11536,8 +11546,8 @@ class IfcSpatialZoneType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStackTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -11546,8 +11556,8 @@ class IfcStackTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStackTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -11556,8 +11566,8 @@ class IfcStackTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcstackterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcstackterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStackTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -11566,8 +11576,8 @@ class IfcStackTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStair_CorrectPredefinedType: SCOPE = 'entity' @@ -11576,8 +11586,8 @@ class IfcStair_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStair_CorrectTypeAssigned: SCOPE = 'entity' @@ -11586,8 +11596,8 @@ class IfcStair_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcstairtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcstairtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStairFlight_CorrectPredefinedType: SCOPE = 'entity' @@ -11596,8 +11606,8 @@ class IfcStairFlight_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStairFlight_CorrectTypeAssigned: SCOPE = 'entity' @@ -11606,8 +11616,8 @@ class IfcStairFlight_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcstairflighttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcstairflighttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStairFlightType_CorrectPredefinedType: SCOPE = 'entity' @@ -11616,8 +11626,8 @@ class IfcStairFlightType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStairType_CorrectPredefinedType: SCOPE = 'entity' @@ -11626,8 +11636,8 @@ class IfcStairType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStructuralAnalysisModel_HasObjectType: SCOPE = 'entity' @@ -11636,8 +11646,8 @@ class IfcStructuralAnalysisModel_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralAnalysisModel_CorrectPredefinedType: SCOPE = 'entity' @@ -11646,8 +11656,8 @@ class IfcStructuralAnalysisModel_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStructuralCurveAction_ProjectedIsGlobal: SCOPE = 'entity' @@ -11656,8 +11666,8 @@ class IfcStructuralCurveAction_ProjectedIsGlobal: @staticmethod def __call__(self): - projectedortrue = getattr(self, 'ProjectedOrTrue', INDETERMINATE) - assert (not exists(projectedortrue) or (projectedortrue != projected_length or getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False + projectedortrue = express_getattr(self, 'ProjectedOrTrue', INDETERMINATE) + assert (not exists(projectedortrue) or (projectedortrue != projected_length or express_getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False class IfcStructuralCurveAction_HasObjectType: SCOPE = 'entity' @@ -11666,8 +11676,8 @@ class IfcStructuralCurveAction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveAction_SuitablePredefinedType: SCOPE = 'entity' @@ -11676,8 +11686,8 @@ class IfcStructuralCurveAction_SuitablePredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE)) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE)) is not False class IfcStructuralCurveMember_HasObjectType: SCOPE = 'entity' @@ -11686,8 +11696,8 @@ class IfcStructuralCurveMember_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveReaction_HasObjectType: SCOPE = 'entity' @@ -11696,8 +11706,8 @@ class IfcStructuralCurveReaction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveReaction_SuitablePredefinedType: SCOPE = 'entity' @@ -11706,8 +11716,8 @@ class IfcStructuralCurveReaction_SuitablePredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) and predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE)) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) and predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE)) is not False class IfcStructuralLinearAction_SuitableLoadType: SCOPE = 'entity' @@ -11716,7 +11726,7 @@ class IfcStructuralLinearAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_rc3.ifcstructuralloadlinearforce', 'ifc4x3_rc3.ifcstructuralloadtemperature'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_rc3.ifcstructuralloadlinearforce', 'ifc4x3_rc3.ifcstructuralloadtemperature'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralLinearAction_ConstPredefinedType: SCOPE = 'entity' @@ -11725,7 +11735,7 @@ class IfcStructuralLinearAction_ConstPredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE)) is not False class IfcStructuralLoadCase_IsLoadCasePredefinedType: SCOPE = 'entity' @@ -11734,7 +11744,7 @@ class IfcStructuralLoadCase_IsLoadCasePredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE)) is not False class IfcStructuralLoadConfiguration_ValidListSize: SCOPE = 'entity' @@ -11743,8 +11753,8 @@ class IfcStructuralLoadConfiguration_ValidListSize: @staticmethod def __call__(self): - values = getattr(self, 'Values', INDETERMINATE) - locations = getattr(self, 'Locations', INDETERMINATE) + values = express_getattr(self, 'Values', INDETERMINATE) + locations = express_getattr(self, 'Locations', INDETERMINATE) assert (not exists(locations) or sizeof(locations) == sizeof(values)) is not False class IfcStructuralLoadGroup_HasObjectType: @@ -11754,10 +11764,10 @@ class IfcStructuralLoadGroup_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - actiontype = getattr(self, 'ActionType', INDETERMINATE) - actionsource = getattr(self, 'ActionSource', INDETERMINATE) - assert (predefinedtype != getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) and actiontype != getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) and (actionsource != getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE)) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + actiontype = express_getattr(self, 'ActionType', INDETERMINATE) + actionsource = express_getattr(self, 'ActionSource', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) and actiontype != express_getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) and (actionsource != express_getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE)) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralPlanarAction_SuitableLoadType: SCOPE = 'entity' @@ -11766,7 +11776,7 @@ class IfcStructuralPlanarAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_rc3.ifcstructuralloadplanarforce', 'ifc4x3_rc3.ifcstructuralloadtemperature'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_rc3.ifcstructuralloadplanarforce', 'ifc4x3_rc3.ifcstructuralloadtemperature'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralPlanarAction_ConstPredefinedType: SCOPE = 'entity' @@ -11775,7 +11785,7 @@ class IfcStructuralPlanarAction_ConstPredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE)) is not False class IfcStructuralPointAction_SuitableLoadType: SCOPE = 'entity' @@ -11784,7 +11794,7 @@ class IfcStructuralPointAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_rc3.ifcstructuralloadsingleforce', 'ifc4x3_rc3.ifcstructuralloadsingledisplacement'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_rc3.ifcstructuralloadsingleforce', 'ifc4x3_rc3.ifcstructuralloadsingledisplacement'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralPointReaction_SuitableLoadType: SCOPE = 'entity' @@ -11793,7 +11803,7 @@ class IfcStructuralPointReaction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_rc3.ifcstructuralloadsingleforce', 'ifc4x3_rc3.ifcstructuralloadsingledisplacement'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_rc3.ifcstructuralloadsingleforce', 'ifc4x3_rc3.ifcstructuralloadsingledisplacement'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralResultGroup_HasObjectType: SCOPE = 'entity' @@ -11802,8 +11812,8 @@ class IfcStructuralResultGroup_HasObjectType: @staticmethod def __call__(self): - theorytype = getattr(self, 'TheoryType', INDETERMINATE) - assert (theorytype != getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + theorytype = express_getattr(self, 'TheoryType', INDETERMINATE) + assert (theorytype != express_getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceAction_ProjectedIsGlobal: SCOPE = 'entity' @@ -11812,8 +11822,8 @@ class IfcStructuralSurfaceAction_ProjectedIsGlobal: @staticmethod def __call__(self): - projectedortrue = getattr(self, 'ProjectedOrTrue', INDETERMINATE) - assert (not exists(projectedortrue) or (projectedortrue != projected_length or getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False + projectedortrue = express_getattr(self, 'ProjectedOrTrue', INDETERMINATE) + assert (not exists(projectedortrue) or (projectedortrue != projected_length or express_getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False class IfcStructuralSurfaceAction_HasObjectType: SCOPE = 'entity' @@ -11822,8 +11832,8 @@ class IfcStructuralSurfaceAction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceMember_HasObjectType: SCOPE = 'entity' @@ -11832,8 +11842,8 @@ class IfcStructuralSurfaceMember_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceReaction_HasPredefinedType: SCOPE = 'entity' @@ -11842,8 +11852,8 @@ class IfcStructuralSurfaceReaction_HasPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStyledItem_ApplicableItem: SCOPE = 'entity' @@ -11852,7 +11862,7 @@ class IfcStyledItem_ApplicableItem: @staticmethod def __call__(self): - item = getattr(self, 'Item', INDETERMINATE) + item = express_getattr(self, 'Item', INDETERMINATE) assert (not 'ifc4x3_rc3.ifcstyleditem' in typeof(item)) is not False class IfcStyledRepresentation_OnlyStyledItems: @@ -11862,7 +11872,7 @@ class IfcStyledRepresentation_OnlyStyledItems: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3_rc3.ifcstyleditem' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3_rc3.ifcstyleditem' in typeof(temp)]) == 0) is not False class IfcSubContractResource_CorrectPredefinedType: SCOPE = 'entity' @@ -11871,8 +11881,8 @@ class IfcSubContractResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSubContractResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11881,8 +11891,8 @@ class IfcSubContractResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False def calc_IfcSurface_Dim(self): return 3 @@ -11894,8 +11904,8 @@ class IfcSurfaceCurve_CurveIs3D: @staticmethod def __call__(self): - curve3d = getattr(self, 'Curve3D', INDETERMINATE) - assert (getattr(curve3d, 'Dim', INDETERMINATE) == 3) is not False + curve3d = express_getattr(self, 'Curve3D', INDETERMINATE) + assert (express_getattr(curve3d, 'Dim', INDETERMINATE) == 3) is not False class IfcSurfaceCurve_CurveIsNotPcurve: SCOPE = 'entity' @@ -11904,7 +11914,7 @@ class IfcSurfaceCurve_CurveIsNotPcurve: @staticmethod def __call__(self): - curve3d = getattr(self, 'Curve3D', INDETERMINATE) + curve3d = express_getattr(self, 'Curve3D', INDETERMINATE) assert (not 'ifc4x3_rc3.ifcpcurve' in typeof(curve3d)) is not False def calc_IfcSurfaceCurve_BasisSurface(self): @@ -11917,8 +11927,8 @@ class IfcSurfaceFeature_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcSurfaceOfLinearExtrusion_DepthGreaterZero: SCOPE = 'entity' @@ -11927,17 +11937,17 @@ class IfcSurfaceOfLinearExtrusion_DepthGreaterZero: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) assert (depth > 0.0) is not False def calc_IfcSurfaceOfLinearExtrusion_ExtrusionAxis(self): - extrudeddirection = getattr(self, 'ExtrudedDirection', INDETERMINATE) - depth = getattr(self, 'Depth', INDETERMINATE) + extrudeddirection = express_getattr(self, 'ExtrudedDirection', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) return IfcVector(Orientation=extrudeddirection, Magnitude=depth) def calc_IfcSurfaceOfRevolution_AxisLine(self): - axisposition = getattr(self, 'AxisPosition', INDETERMINATE) - return IfcLine(Pnt=getattr(axisposition, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=getattr(axisposition, 'Z', INDETERMINATE), Magnitude=1.0)) + axisposition = express_getattr(self, 'AxisPosition', INDETERMINATE) + return IfcLine(Pnt=express_getattr(axisposition, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=express_getattr(axisposition, 'Z', INDETERMINATE), Magnitude=1.0)) class IfcSurfaceReinforcementArea_SurfaceAndOrShearAreaSpecified: SCOPE = 'entity' @@ -11946,9 +11956,9 @@ class IfcSurfaceReinforcementArea_SurfaceAndOrShearAreaSpecified: @staticmethod def __call__(self): - surfacereinforcement1 = getattr(self, 'SurfaceReinforcement1', INDETERMINATE) - surfacereinforcement2 = getattr(self, 'SurfaceReinforcement2', INDETERMINATE) - shearreinforcement = getattr(self, 'ShearReinforcement', INDETERMINATE) + surfacereinforcement1 = express_getattr(self, 'SurfaceReinforcement1', INDETERMINATE) + surfacereinforcement2 = express_getattr(self, 'SurfaceReinforcement2', INDETERMINATE) + shearreinforcement = express_getattr(self, 'ShearReinforcement', INDETERMINATE) assert (exists(surfacereinforcement1) or exists(surfacereinforcement2) or exists(shearreinforcement)) is not False class IfcSurfaceReinforcementArea_NonnegativeArea1: @@ -11958,7 +11968,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea1: @staticmethod def __call__(self): - surfacereinforcement1 = getattr(self, 'SurfaceReinforcement1', INDETERMINATE) + surfacereinforcement1 = express_getattr(self, 'SurfaceReinforcement1', INDETERMINATE) assert (not exists(surfacereinforcement1) or (express_getitem(surfacereinforcement1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and express_getitem(surfacereinforcement1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and (sizeof(surfacereinforcement1) == 1 or express_getitem(surfacereinforcement1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0))) is not False class IfcSurfaceReinforcementArea_NonnegativeArea2: @@ -11968,7 +11978,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea2: @staticmethod def __call__(self): - surfacereinforcement2 = getattr(self, 'SurfaceReinforcement2', INDETERMINATE) + surfacereinforcement2 = express_getattr(self, 'SurfaceReinforcement2', INDETERMINATE) assert (not exists(surfacereinforcement2) or (express_getitem(surfacereinforcement2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and express_getitem(surfacereinforcement2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and (sizeof(surfacereinforcement2) == 1 or express_getitem(surfacereinforcement2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0))) is not False class IfcSurfaceReinforcementArea_NonnegativeArea3: @@ -11978,7 +11988,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea3: @staticmethod def __call__(self): - shearreinforcement = getattr(self, 'ShearReinforcement', INDETERMINATE) + shearreinforcement = express_getattr(self, 'ShearReinforcement', INDETERMINATE) assert (not exists(shearreinforcement) or shearreinforcement >= 0.0) is not False class IfcSurfaceStyle_MaxOneShading: @@ -11988,7 +11998,7 @@ class IfcSurfaceStyle_MaxOneShading: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc3.ifcsurfacestyleshading' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc3.ifcsurfacestyleshading' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneLighting: SCOPE = 'entity' @@ -11997,7 +12007,7 @@ class IfcSurfaceStyle_MaxOneLighting: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc3.ifcsurfacestylelighting' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc3.ifcsurfacestylelighting' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneRefraction: SCOPE = 'entity' @@ -12006,7 +12016,7 @@ class IfcSurfaceStyle_MaxOneRefraction: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc3.ifcsurfacestylerefraction' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc3.ifcsurfacestylerefraction' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneTextures: SCOPE = 'entity' @@ -12015,7 +12025,7 @@ class IfcSurfaceStyle_MaxOneTextures: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc3.ifcsurfacestylewithtextures' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc3.ifcsurfacestylewithtextures' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneExtDefined: SCOPE = 'entity' @@ -12024,7 +12034,7 @@ class IfcSurfaceStyle_MaxOneExtDefined: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc3.ifcexternallydefinedsurfacestyle' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc3.ifcexternallydefinedsurfacestyle' in typeof(style)]) <= 1) is not False class IfcSweptAreaSolid_SweptAreaType: SCOPE = 'entity' @@ -12033,8 +12043,8 @@ class IfcSweptAreaSolid_SweptAreaType: @staticmethod def __call__(self): - sweptarea = getattr(self, 'SweptArea', INDETERMINATE) - assert (getattr(sweptarea, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'Area', INDETERMINATE)) is not False + sweptarea = express_getattr(self, 'SweptArea', INDETERMINATE) + assert (express_getattr(sweptarea, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'Area', INDETERMINATE)) is not False class IfcSweptDiskSolid_DirectrixDim: SCOPE = 'entity' @@ -12043,8 +12053,8 @@ class IfcSweptDiskSolid_DirectrixDim: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - assert (getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + assert (express_getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False class IfcSweptDiskSolid_InnerRadiusSize: SCOPE = 'entity' @@ -12053,8 +12063,8 @@ class IfcSweptDiskSolid_InnerRadiusSize: @staticmethod def __call__(self): - radius = getattr(self, 'Radius', INDETERMINATE) - innerradius = getattr(self, 'InnerRadius', INDETERMINATE) + radius = express_getattr(self, 'Radius', INDETERMINATE) + innerradius = express_getattr(self, 'InnerRadius', INDETERMINATE) assert (not exists(innerradius) or radius > innerradius) is not False class IfcSweptDiskSolid_DirectrixBounded: @@ -12064,9 +12074,9 @@ class IfcSweptDiskSolid_DirectrixBounded: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - startparam = getattr(self, 'StartParam', INDETERMINATE) - endparam = getattr(self, 'EndParam', INDETERMINATE) + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + startparam = express_getattr(self, 'StartParam', INDETERMINATE) + endparam = express_getattr(self, 'EndParam', INDETERMINATE) assert (exists(startparam) and exists(endparam) or sizeof(['ifc4x3_rc3.ifcconic', 'ifc4x3_rc3.ifcboundedcurve'] * typeof(directrix)) == 1) is not False class IfcSweptDiskSolidPolygonal_CorrectRadii: @@ -12076,8 +12086,8 @@ class IfcSweptDiskSolidPolygonal_CorrectRadii: @staticmethod def __call__(self): - filletradius = getattr(self, 'FilletRadius', INDETERMINATE) - assert (not exists(filletradius) or filletradius >= getattr(self, 'Radius', INDETERMINATE)) is not False + filletradius = express_getattr(self, 'FilletRadius', INDETERMINATE) + assert (not exists(filletradius) or filletradius >= express_getattr(self, 'Radius', INDETERMINATE)) is not False class IfcSweptDiskSolidPolygonal_DirectrixIsPolyline: SCOPE = 'entity' @@ -12086,7 +12096,7 @@ class IfcSweptDiskSolidPolygonal_DirectrixIsPolyline: @staticmethod def __call__(self): - assert ('ifc4x3_rc3.ifcpolyline' in typeof(getattr(self, 'Directrix', INDETERMINATE)) or ('ifc4x3_rc3.ifcindexedpolycurve' in typeof(getattr(self, 'Directrix', INDETERMINATE)) and (not exists(getattr(getattr(self, 'Directrix', INDETERMINATE), 'Segments', INDETERMINATE))))) is not False + assert ('ifc4x3_rc3.ifcpolyline' in typeof(express_getattr(self, 'Directrix', INDETERMINATE)) or ('ifc4x3_rc3.ifcindexedpolycurve' in typeof(express_getattr(self, 'Directrix', INDETERMINATE)) and (not exists(express_getattr(express_getattr(self, 'Directrix', INDETERMINATE), 'Segments', INDETERMINATE))))) is not False class IfcSweptSurface_SweptCurveType: SCOPE = 'entity' @@ -12095,8 +12105,8 @@ class IfcSweptSurface_SweptCurveType: @staticmethod def __call__(self): - sweptcurve = getattr(self, 'SweptCurve', INDETERMINATE) - assert (getattr(sweptcurve, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'Curve', INDETERMINATE)) is not False + sweptcurve = express_getattr(self, 'SweptCurve', INDETERMINATE) + assert (express_getattr(sweptcurve, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'Curve', INDETERMINATE)) is not False class IfcSwitchingDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -12105,8 +12115,8 @@ class IfcSwitchingDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSwitchingDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -12115,8 +12125,8 @@ class IfcSwitchingDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcswitchingdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcswitchingdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSwitchingDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -12125,8 +12135,8 @@ class IfcSwitchingDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSystemFurnitureElement_CorrectPredefinedType: SCOPE = 'entity' @@ -12135,8 +12145,8 @@ class IfcSystemFurnitureElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSystemFurnitureElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12145,8 +12155,8 @@ class IfcSystemFurnitureElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcsystemfurnitureelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcsystemfurnitureelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSystemFurnitureElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12155,8 +12165,8 @@ class IfcSystemFurnitureElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -12165,8 +12175,8 @@ class IfcTShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth) is not False class IfcTShapeProfileDef_ValidWebThickness: @@ -12176,8 +12186,8 @@ class IfcTShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - flangewidth = getattr(self, 'FlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + flangewidth = express_getattr(self, 'FlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < flangewidth) is not False class IfcTable_WR1: @@ -12187,8 +12197,8 @@ class IfcTable_WR1: @staticmethod def __call__(self): - rows = getattr(self, 'Rows', INDETERMINATE) - assert (sizeof([temp for temp in rows if hiindex(getattr(temp, 'RowCells', INDETERMINATE)) != hiindex(getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE))]) == 0) is not False + rows = express_getattr(self, 'Rows', INDETERMINATE) + assert (sizeof([temp for temp in rows if hiindex(express_getattr(temp, 'RowCells', INDETERMINATE)) != hiindex(express_getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE))]) == 0) is not False class IfcTable_WR2: SCOPE = 'entity' @@ -12197,20 +12207,20 @@ class IfcTable_WR2: @staticmethod def __call__(self): - numberofheadings = getattr(self, 'NumberOfHeadings', INDETERMINATE) + numberofheadings = express_getattr(self, 'NumberOfHeadings', INDETERMINATE) assert (0 <= numberofheadings <= 1) is not False def calc_IfcTable_NumberOfCellsInRow(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return hiindex(getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE)) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return hiindex(express_getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE)) def calc_IfcTable_NumberOfHeadings(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return sizeof([temp for temp in rows if getattr(temp, 'IsHeading', INDETERMINATE)]) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return sizeof([temp for temp in rows if express_getattr(temp, 'IsHeading', INDETERMINATE)]) def calc_IfcTable_NumberOfDataRows(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return sizeof([temp for temp in rows if not getattr(temp, 'IsHeading', INDETERMINATE)]) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return sizeof([temp for temp in rows if not express_getattr(temp, 'IsHeading', INDETERMINATE)]) class IfcTank_CorrectPredefinedType: SCOPE = 'entity' @@ -12219,8 +12229,8 @@ class IfcTank_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTank_CorrectTypeAssigned: SCOPE = 'entity' @@ -12229,8 +12239,8 @@ class IfcTank_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifctanktype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifctanktype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTankType_CorrectPredefinedType: SCOPE = 'entity' @@ -12239,8 +12249,8 @@ class IfcTankType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTask_HasName: SCOPE = 'entity' @@ -12249,7 +12259,7 @@ class IfcTask_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcTask_CorrectPredefinedType: SCOPE = 'entity' @@ -12258,8 +12268,8 @@ class IfcTask_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTaskType_CorrectPredefinedType: SCOPE = 'entity' @@ -12268,8 +12278,8 @@ class IfcTaskType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcTelecomAddress_MinimumDataProvided: SCOPE = 'entity' @@ -12278,12 +12288,12 @@ class IfcTelecomAddress_MinimumDataProvided: @staticmethod def __call__(self): - telephonenumbers = getattr(self, 'TelephoneNumbers', INDETERMINATE) - facsimilenumbers = getattr(self, 'FacsimileNumbers', INDETERMINATE) - pagernumber = getattr(self, 'PagerNumber', INDETERMINATE) - electronicmailaddresses = getattr(self, 'ElectronicMailAddresses', INDETERMINATE) - wwwhomepageurl = getattr(self, 'WWWHomePageURL', INDETERMINATE) - messagingids = getattr(self, 'MessagingIDs', INDETERMINATE) + telephonenumbers = express_getattr(self, 'TelephoneNumbers', INDETERMINATE) + facsimilenumbers = express_getattr(self, 'FacsimileNumbers', INDETERMINATE) + pagernumber = express_getattr(self, 'PagerNumber', INDETERMINATE) + electronicmailaddresses = express_getattr(self, 'ElectronicMailAddresses', INDETERMINATE) + wwwhomepageurl = express_getattr(self, 'WWWHomePageURL', INDETERMINATE) + messagingids = express_getattr(self, 'MessagingIDs', INDETERMINATE) assert (exists(telephonenumbers) or exists(facsimilenumbers) or exists(pagernumber) or exists(electronicmailaddresses) or exists(wwwhomepageurl) or exists(messagingids)) is not False class IfcTendon_CorrectPredefinedType: @@ -12293,8 +12303,8 @@ class IfcTendon_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendon_CorrectTypeAssigned: SCOPE = 'entity' @@ -12303,8 +12313,8 @@ class IfcTendon_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifctendontype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifctendontype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonAnchor_CorrectPredefinedType: SCOPE = 'entity' @@ -12313,8 +12323,8 @@ class IfcTendonAnchor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendonAnchor_CorrectTypeAssigned: SCOPE = 'entity' @@ -12323,8 +12333,8 @@ class IfcTendonAnchor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifctendonanchortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifctendonanchortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonAnchorType_CorrectPredefinedType: SCOPE = 'entity' @@ -12333,8 +12343,8 @@ class IfcTendonAnchorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTendonConduit_CorrectPredefinedType: SCOPE = 'entity' @@ -12343,8 +12353,8 @@ class IfcTendonConduit_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendonConduit_CorrectTypeAssigned: SCOPE = 'entity' @@ -12353,8 +12363,8 @@ class IfcTendonConduit_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifctendonconduittype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifctendonconduittype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonConduitType_CorrectPredefinedType: SCOPE = 'entity' @@ -12363,8 +12373,8 @@ class IfcTendonConduitType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTendonType_CorrectPredefinedType: SCOPE = 'entity' @@ -12373,8 +12383,8 @@ class IfcTendonType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcTessellatedFaceSet_Dim(self): return 3 @@ -12386,7 +12396,7 @@ class IfcTextLiteralWithExtent_WR31: @staticmethod def __call__(self): - extent = getattr(self, 'Extent', INDETERMINATE) + extent = express_getattr(self, 'Extent', INDETERMINATE) assert (not 'ifc4x3_rc3.ifcplanarbox' in typeof(extent)) is not False class IfcTextStyleFontModel_MeasureOfFontSize: @@ -12396,7 +12406,7 @@ class IfcTextStyleFontModel_MeasureOfFontSize: @staticmethod def __call__(self): - assert ('ifc4x3_rc3.ifclengthmeasure' in typeof(getattr(self, 'FontSize', INDETERMINATE)) and getattr(self, 'FontSize', INDETERMINATE) > 0.0) is not False + assert ('ifc4x3_rc3.ifclengthmeasure' in typeof(express_getattr(self, 'FontSize', INDETERMINATE)) and express_getattr(self, 'FontSize', INDETERMINATE) > 0.0) is not False class IfcTopologyRepresentation_WR21: SCOPE = 'entity' @@ -12405,7 +12415,7 @@ class IfcTopologyRepresentation_WR21: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3_rc3.ifctopologicalrepresentationitem' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3_rc3.ifctopologicalrepresentationitem' in typeof(temp)]) == 0) is not False class IfcTopologyRepresentation_WR22: SCOPE = 'entity' @@ -12414,7 +12424,7 @@ class IfcTopologyRepresentation_WR22: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationType', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationType', INDETERMINATE)) is not False class IfcTopologyRepresentation_WR23: SCOPE = 'entity' @@ -12423,7 +12433,7 @@ class IfcTopologyRepresentation_WR23: @staticmethod def __call__(self): - assert IfcTopologyRepresentationTypes(getattr(self, 'RepresentationType', INDETERMINATE), getattr(self, 'Items', INDETERMINATE)) is not False + assert IfcTopologyRepresentationTypes(express_getattr(self, 'RepresentationType', INDETERMINATE), express_getattr(self, 'Items', INDETERMINATE)) is not False class IfcToroidalSurface_MajorLargerMinor: SCOPE = 'entity' @@ -12432,8 +12442,8 @@ class IfcToroidalSurface_MajorLargerMinor: @staticmethod def __call__(self): - majorradius = getattr(self, 'MajorRadius', INDETERMINATE) - minorradius = getattr(self, 'MinorRadius', INDETERMINATE) + majorradius = express_getattr(self, 'MajorRadius', INDETERMINATE) + minorradius = express_getattr(self, 'MinorRadius', INDETERMINATE) assert (minorradius < majorradius) is not False class IfcTrackElement_CorrectPredefinedType: @@ -12443,8 +12453,8 @@ class IfcTrackElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTrackElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12453,8 +12463,8 @@ class IfcTrackElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifctrackelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifctrackelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTrackElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12463,8 +12473,8 @@ class IfcTrackElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTransformer_CorrectPredefinedType: SCOPE = 'entity' @@ -12473,8 +12483,8 @@ class IfcTransformer_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTransformer_CorrectTypeAssigned: SCOPE = 'entity' @@ -12483,8 +12493,8 @@ class IfcTransformer_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifctranformertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifctranformertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTransformerType_CorrectPredefinedType: SCOPE = 'entity' @@ -12493,8 +12503,8 @@ class IfcTransformerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTransportElement_CorrectPredefinedType: SCOPE = 'entity' @@ -12503,8 +12513,8 @@ class IfcTransportElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or (predefinedtype != getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) and predefinedtype != getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE)) or ((predefinedtype == getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE)) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or (predefinedtype != express_getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) and predefinedtype != express_getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE)) or ((predefinedtype == express_getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == express_getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE)) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTransportElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12513,8 +12523,8 @@ class IfcTransportElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifctransportelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifctransportelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTransportElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12523,11 +12533,11 @@ class IfcTransportElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) and predefinedtype != getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE))))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) and predefinedtype != express_getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE))))) is not False def calc_IfcTriangulatedFaceSet_NumberOfTriangles(self): - coordindex = getattr(self, 'CoordIndex', INDETERMINATE) + coordindex = express_getattr(self, 'CoordIndex', INDETERMINATE) return sizeof(coordindex) class IfcTriangulatedIrregularNetwork_NotClosed: @@ -12537,7 +12547,7 @@ class IfcTriangulatedIrregularNetwork_NotClosed: @staticmethod def __call__(self): - assert (getattr(self, 'Closed', INDETERMINATE) == False) is not False + assert (express_getattr(self, 'Closed', INDETERMINATE) == False) is not False class IfcTrimmedCurve_Trim1ValuesConsistent: SCOPE = 'entity' @@ -12546,7 +12556,7 @@ class IfcTrimmedCurve_Trim1ValuesConsistent: @staticmethod def __call__(self): - trim1 = getattr(self, 'Trim1', INDETERMINATE) + trim1 = express_getattr(self, 'Trim1', INDETERMINATE) assert (hiindex(trim1) == 1 or typeof(express_getitem(trim1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(express_getitem(trim1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcTrimmedCurve_Trim2ValuesConsistent: @@ -12556,7 +12566,7 @@ class IfcTrimmedCurve_Trim2ValuesConsistent: @staticmethod def __call__(self): - trim2 = getattr(self, 'Trim2', INDETERMINATE) + trim2 = express_getattr(self, 'Trim2', INDETERMINATE) assert (hiindex(trim2) == 1 or typeof(express_getitem(trim2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(express_getitem(trim2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcTrimmedCurve_NoTrimOfBoundedCurves: @@ -12566,7 +12576,7 @@ class IfcTrimmedCurve_NoTrimOfBoundedCurves: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) assert (not 'ifc4x3_rc3.ifcboundedcurve' in typeof(basiscurve)) is not False class IfcTubeBundle_CorrectPredefinedType: @@ -12576,8 +12586,8 @@ class IfcTubeBundle_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTubeBundle_CorrectTypeAssigned: SCOPE = 'entity' @@ -12586,8 +12596,8 @@ class IfcTubeBundle_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifctubebundletype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifctubebundletype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTubeBundleType_CorrectPredefinedType: SCOPE = 'entity' @@ -12596,8 +12606,8 @@ class IfcTubeBundleType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTypeObject_NameRequired: SCOPE = 'entity' @@ -12606,7 +12616,7 @@ class IfcTypeObject_NameRequired: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcTypeObject_UniquePropertySetNames: SCOPE = 'entity' @@ -12615,7 +12625,7 @@ class IfcTypeObject_UniquePropertySetNames: @staticmethod def __call__(self): - haspropertysets = getattr(self, 'HasPropertySets', INDETERMINATE) + haspropertysets = express_getattr(self, 'HasPropertySets', INDETERMINATE) assert (not exists(haspropertysets) or IfcUniquePropertySetNames(haspropertysets)) is not False class IfcTypeProduct_ApplicableOccurrence: @@ -12625,7 +12635,7 @@ class IfcTypeProduct_ApplicableOccurrence: @staticmethod def __call__(self): - assert (not exists(lambda : express_getitem(getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or sizeof([temp for temp in getattr(express_getitem(getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not 'ifc4x3_rc3.ifcproduct' in typeof(temp)]) == 0) is not False + assert (not exists(lambda : express_getitem(express_getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or sizeof([temp for temp in express_getattr(express_getitem(express_getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not 'ifc4x3_rc3.ifcproduct' in typeof(temp)]) == 0) is not False class IfcUShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -12634,8 +12644,8 @@ class IfcUShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth / 2.0) is not False class IfcUShapeProfileDef_ValidWebThickness: @@ -12645,8 +12655,8 @@ class IfcUShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - flangewidth = getattr(self, 'FlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + flangewidth = express_getattr(self, 'FlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < flangewidth) is not False class IfcUnitAssignment_WR01: @@ -12656,7 +12666,7 @@ class IfcUnitAssignment_WR01: @staticmethod def __call__(self): - units = getattr(self, 'Units', INDETERMINATE) + units = express_getattr(self, 'Units', INDETERMINATE) assert IfcCorrectUnitAssignment(units) is not False class IfcUnitaryControlElement_CorrectPredefinedType: @@ -12666,8 +12676,8 @@ class IfcUnitaryControlElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcUnitaryControlElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12676,8 +12686,8 @@ class IfcUnitaryControlElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcunitarycontrolelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcunitarycontrolelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcUnitaryControlElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12686,8 +12696,8 @@ class IfcUnitaryControlElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcUnitaryEquipment_CorrectPredefinedType: SCOPE = 'entity' @@ -12696,8 +12706,8 @@ class IfcUnitaryEquipment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcUnitaryEquipment_CorrectTypeAssigned: SCOPE = 'entity' @@ -12706,8 +12716,8 @@ class IfcUnitaryEquipment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcunitaryequipmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcunitaryequipmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcUnitaryEquipmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -12716,8 +12726,8 @@ class IfcUnitaryEquipmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcValve_CorrectPredefinedType: SCOPE = 'entity' @@ -12726,8 +12736,8 @@ class IfcValve_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcValve_CorrectTypeAssigned: SCOPE = 'entity' @@ -12736,8 +12746,8 @@ class IfcValve_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcvalvetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcvalvetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcValveType_CorrectPredefinedType: SCOPE = 'entity' @@ -12746,8 +12756,8 @@ class IfcValveType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVector_MagGreaterOrEqualZero: SCOPE = 'entity' @@ -12756,12 +12766,12 @@ class IfcVector_MagGreaterOrEqualZero: @staticmethod def __call__(self): - magnitude = getattr(self, 'Magnitude', INDETERMINATE) + magnitude = express_getattr(self, 'Magnitude', INDETERMINATE) assert (magnitude >= 0.0) is not False def calc_IfcVector_Dim(self): - orientation = getattr(self, 'Orientation', INDETERMINATE) - return getattr(orientation, 'Dim', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return express_getattr(orientation, 'Dim', INDETERMINATE) class IfcVibrationDamper_CorrectPredefinedType: SCOPE = 'entity' @@ -12770,8 +12780,8 @@ class IfcVibrationDamper_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcVibrationDamper_CorrectTypeAssigned: SCOPE = 'entity' @@ -12780,8 +12790,8 @@ class IfcVibrationDamper_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcvibrationdampertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcvibrationdampertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcVibrationDamperType_CorrectPredefinedType: SCOPE = 'entity' @@ -12790,8 +12800,8 @@ class IfcVibrationDamperType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVibrationIsolator_CorrectPredefinedType: SCOPE = 'entity' @@ -12800,8 +12810,8 @@ class IfcVibrationIsolator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcVibrationIsolator_CorrectTypeAssigned: SCOPE = 'entity' @@ -12810,8 +12820,8 @@ class IfcVibrationIsolator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcvibrationisolatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcvibrationisolatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcVibrationIsolatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -12820,8 +12830,8 @@ class IfcVibrationIsolatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVoidingFeature_HasObjectType: SCOPE = 'entity' @@ -12830,8 +12840,8 @@ class IfcVoidingFeature_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcWall_CorrectPredefinedType: SCOPE = 'entity' @@ -12840,8 +12850,8 @@ class IfcWall_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWall_CorrectTypeAssigned: SCOPE = 'entity' @@ -12850,8 +12860,8 @@ class IfcWall_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcwalltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcwalltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWallElementedCase_HasDecomposition: SCOPE = 'entity' @@ -12860,7 +12870,7 @@ class IfcWallElementedCase_HasDecomposition: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'IsDecomposedBy', INDETERMINATE)) > 0) is not False + assert (hiindex(express_getattr(self, 'IsDecomposedBy', INDETERMINATE)) > 0) is not False class IfcWallStandardCase_HasMaterialLayerSetUsage: SCOPE = 'entity' @@ -12869,7 +12879,7 @@ class IfcWallStandardCase_HasMaterialLayerSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc3.ifcrelassociates.relatedobjects') if 'ifc4x3_rc3.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc3.ifcmateriallayersetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc3.ifcrelassociates.relatedobjects') if 'ifc4x3_rc3.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc3.ifcmateriallayersetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcWallType_CorrectPredefinedType: SCOPE = 'entity' @@ -12878,8 +12888,8 @@ class IfcWallType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWasteTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -12888,8 +12898,8 @@ class IfcWasteTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWasteTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -12898,8 +12908,8 @@ class IfcWasteTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcwasteterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcwasteterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWasteTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -12908,8 +12918,8 @@ class IfcWasteTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWindow_CorrectStyleAssigned: SCOPE = 'entity' @@ -12918,8 +12928,8 @@ class IfcWindow_CorrectStyleAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcwindowtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcwindowtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWindow_CorrectPredefinedType: SCOPE = 'entity' @@ -12928,8 +12938,8 @@ class IfcWindow_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWindow_CorrectTypeAssigned: SCOPE = 'entity' @@ -12938,8 +12948,8 @@ class IfcWindow_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcwindowtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc3.ifcwindowtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWindowLiningProperties_WR31: SCOPE = 'entity' @@ -12948,8 +12958,8 @@ class IfcWindowLiningProperties_WR31: @staticmethod def __call__(self): - liningdepth = getattr(self, 'LiningDepth', INDETERMINATE) - liningthickness = getattr(self, 'LiningThickness', INDETERMINATE) + liningdepth = express_getattr(self, 'LiningDepth', INDETERMINATE) + liningthickness = express_getattr(self, 'LiningThickness', INDETERMINATE) assert (not (exists(liningdepth) and (not exists(liningthickness)))) is not False class IfcWindowLiningProperties_WR32: @@ -12959,8 +12969,8 @@ class IfcWindowLiningProperties_WR32: @staticmethod def __call__(self): - firsttransomoffset = getattr(self, 'FirstTransomOffset', INDETERMINATE) - secondtransomoffset = getattr(self, 'SecondTransomOffset', INDETERMINATE) + firsttransomoffset = express_getattr(self, 'FirstTransomOffset', INDETERMINATE) + secondtransomoffset = express_getattr(self, 'SecondTransomOffset', INDETERMINATE) assert (not (not exists(firsttransomoffset) and exists(secondtransomoffset))) is not False class IfcWindowLiningProperties_WR33: @@ -12970,8 +12980,8 @@ class IfcWindowLiningProperties_WR33: @staticmethod def __call__(self): - firstmullionoffset = getattr(self, 'FirstMullionOffset', INDETERMINATE) - secondmullionoffset = getattr(self, 'SecondMullionOffset', INDETERMINATE) + firstmullionoffset = express_getattr(self, 'FirstMullionOffset', INDETERMINATE) + secondmullionoffset = express_getattr(self, 'SecondMullionOffset', INDETERMINATE) assert (not (not exists(firstmullionoffset) and exists(secondmullionoffset))) is not False class IfcWindowLiningProperties_WR34: @@ -12981,7 +12991,7 @@ class IfcWindowLiningProperties_WR34: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc3.ifcwindowtype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc3.ifcwindowstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc3.ifcwindowtype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc3.ifcwindowstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcWindowPanelProperties_ApplicableToType: SCOPE = 'entity' @@ -12990,7 +13000,7 @@ class IfcWindowPanelProperties_ApplicableToType: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc3.ifcwindowtype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc3.ifcwindowstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc3.ifcwindowtype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc3.ifcwindowstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcWindowType_CorrectPredefinedType: SCOPE = 'entity' @@ -12999,8 +13009,8 @@ class IfcWindowType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWorkCalendar_CorrectPredefinedType: SCOPE = 'entity' @@ -13009,8 +13019,8 @@ class IfcWorkCalendar_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWorkPlan_CorrectPredefinedType: SCOPE = 'entity' @@ -13019,8 +13029,8 @@ class IfcWorkPlan_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWorkSchedule_CorrectPredefinedType: SCOPE = 'entity' @@ -13029,8 +13039,8 @@ class IfcWorkSchedule_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcZShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -13039,8 +13049,8 @@ class IfcZShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth / 2.0) is not False class IfcZone_WR1: @@ -13050,19 +13060,19 @@ class IfcZone_WR1: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'IsGroupedBy', INDETERMINATE)) == 0 or sizeof([temp for temp in getattr(express_getitem(getattr(self, 'IsGroupedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not ('ifc4x3_rc3.ifczone' in typeof(temp) or 'ifc4x3_rc3.ifcspace' in typeof(temp) or 'ifc4x3_rc3.ifcspatialzone' in typeof(temp))]) == 0) is not False + assert (sizeof(express_getattr(self, 'IsGroupedBy', INDETERMINATE)) == 0 or sizeof([temp for temp in express_getattr(express_getitem(express_getattr(self, 'IsGroupedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not ('ifc4x3_rc3.ifczone' in typeof(temp) or 'ifc4x3_rc3.ifcspace' in typeof(temp) or 'ifc4x3_rc3.ifcspatialzone' in typeof(temp))]) == 0) is not False class IfcRepresentationContextSameWCS: SCOPE = 'file' @staticmethod def __call__(file): - IfcGeometricRepresentationContext = getattr(file, 'by_type', INDETERMINATE)('IfcGeometricRepresentationContext') + IfcGeometricRepresentationContext = express_getattr(file, 'by_type', INDETERMINATE)('IfcGeometricRepresentationContext') isdifferent = False if sizeof(IfcGeometricRepresentationContext) > 1: for i in range(2, hiindex(IfcGeometricRepresentationContext) + 1): - if getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE) != getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE): - isdifferent = not IfcSameValidPrecision(getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) or not IfcSameAxis2Placement(getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) + if express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE) != express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE): + isdifferent = not IfcSameValidPrecision(express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) or not IfcSameAxis2Placement(express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) if isdifferent == True: break assert (isdifferent == False) is not False @@ -13072,11 +13082,11 @@ class IfcSingleProjectInstance: @staticmethod def __call__(file): - IfcProject = getattr(file, 'by_type', INDETERMINATE)('IfcProject') + IfcProject = express_getattr(file, 'by_type', INDETERMINATE)('IfcProject') assert (sizeof(IfcProject) <= 1) is not False def IfcAssociatedSurface(arg): - surf = getattr(arg, 'BasisSurface', INDETERMINATE) + surf = express_getattr(arg, 'BasisSurface', INDETERMINATE) return surf def IfcBaseAxis(dim, axis1, axis2, axis3): @@ -13090,13 +13100,13 @@ def IfcBaseAxis(dim, axis1, axis2, axis3): if exists(axis2): factor = IfcDotProduct(axis2, express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) if factor < 0.0: - u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) elif exists(axis2): d1 = IfcNormalise(axis2) u = [IfcOrthogonalComplement(d1), d1] - u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) else: u = [IfcDirection(DirectionRatios=[1.0, 0.0]), IfcDirection(DirectionRatios=[0.0, 1.0])] return u @@ -13114,7 +13124,7 @@ def IfcBuild2Axes(refdirection): def IfcBuildAxes(axis, refdirection): d1 = nvl(IfcNormalise(axis), IfcDirection(DirectionRatios=[0.0, 0.0, 1.0])) d2 = IfcFirstProjAxis(d1, refdirection) - return [d2, getattr(IfcNormalise(IfcCrossProduct(d1, d2)), 'Orientation', INDETERMINATE), d1] + return [d2, express_getattr(IfcNormalise(IfcCrossProduct(d1, d2)), 'Orientation', INDETERMINATE), d1] def IfcConsecutiveSegments(segments): result = True @@ -13151,11 +13161,11 @@ def IfcConstraintsParamBSpline(degree, upknots, upcp, knotmult, knots): def IfcConvertDirectionInto2D(direction): direction2d = IfcDirection(DirectionRatios=[0.0, 1.0]) - temp = list(getattr(direction2d, 'DirectionRatios', INDETERMINATE)) - temp[1 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(direction, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(direction2d, 'DirectionRatios', INDETERMINATE)) + temp[1 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(direction, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) direction2d.DirectionRatios = temp - temp = list(getattr(direction2d, 'DirectionRatios', INDETERMINATE)) - temp[2 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(direction, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(direction2d, 'DirectionRatios', INDETERMINATE)) + temp[2 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(direction, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) direction2d.DirectionRatios = temp return direction2d @@ -13335,7 +13345,7 @@ def IfcCorrectLocalPlacement(axisplacement, relplacement): if 'ifc4x3_rc3.ifcaxis2placement2d' in typeof(axisplacement): return True if 'ifc4x3_rc3.ifcaxis2placement3d' in typeof(axisplacement): - if getattr(getattr(relplacement, 'RelativePlacement', INDETERMINATE), 'Dim', INDETERMINATE) == 3: + if express_getattr(express_getattr(relplacement, 'RelativePlacement', INDETERMINATE), 'Dim', INDETERMINATE) == 3: return True else: return False @@ -13346,27 +13356,27 @@ def IfcCorrectObjectAssignment(constraint, objects): count = 0 if not exists(constraint): return True - if constraint == getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE): + if constraint == express_getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE): return True - elif constraint == getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3_rc3.ifcproduct' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3_rc3.ifcprocess' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3_rc3.ifccontrol' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3_rc3.ifcresource' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3_rc3.ifcactor' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3_rc3.ifcgroup' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3_rc3.ifcproject' in typeof(temp)]) return count == 0 else: @@ -13378,26 +13388,26 @@ def IfcCorrectUnitAssignment(units): monetaryunitnumber = 0 namedunitnames = express_set([]) derivedunitnames = express_set([]) - namedunitnumber = sizeof([temp for temp in units if 'ifc4x3_rc3.ifcnamedunit' in typeof(temp) and (not getattr(temp, 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE))]) - derivedunitnumber = sizeof([temp for temp in units if 'ifc4x3_rc3.ifcderivedunit' in typeof(temp) and (not getattr(temp, 'UnitType', INDETERMINATE) == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE))]) + namedunitnumber = sizeof([temp for temp in units if 'ifc4x3_rc3.ifcnamedunit' in typeof(temp) and (not express_getattr(temp, 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE))]) + derivedunitnumber = sizeof([temp for temp in units if 'ifc4x3_rc3.ifcderivedunit' in typeof(temp) and (not express_getattr(temp, 'UnitType', INDETERMINATE) == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE))]) monetaryunitnumber = sizeof([temp for temp in units if 'ifc4x3_rc3.ifcmonetaryunit' in typeof(temp)]) for i in range(1, sizeof(units) + 1): - if 'ifc4x3_rc3.ifcnamedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE)): - namedunitnames = namedunitnames + getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) - if 'ifc4x3_rc3.ifcderivedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE)): - derivedunitnames = derivedunitnames + getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) + if 'ifc4x3_rc3.ifcnamedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE)): + namedunitnames = namedunitnames + express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) + if 'ifc4x3_rc3.ifcderivedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE)): + derivedunitnames = derivedunitnames + express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) return sizeof(namedunitnames) == namedunitnumber and sizeof(derivedunitnames) == derivedunitnumber and (monetaryunitnumber <= 1) def IfcCrossProduct(arg1, arg2): - if (not exists(arg1) or getattr(arg1, 'Dim', INDETERMINATE) == 2) or (not exists(arg2) or getattr(arg2, 'Dim', INDETERMINATE) == 2): + if (not exists(arg1) or express_getattr(arg1, 'Dim', INDETERMINATE) == 2) or (not exists(arg2) or express_getattr(arg2, 'Dim', INDETERMINATE) == 2): return None else: - v1 = getattr(IfcNormalise(arg1), 'DirectionRatios', INDETERMINATE) - v2 = getattr(IfcNormalise(arg2), 'DirectionRatios', INDETERMINATE) + v1 = express_getattr(IfcNormalise(arg1), 'DirectionRatios', INDETERMINATE) + v2 = express_getattr(IfcNormalise(arg2), 'DirectionRatios', INDETERMINATE) res = IfcDirection(DirectionRatios=[express_getitem(v1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(v1, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(v1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) mag = 0.0 for i in range(1, 3 + 1): - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: @@ -13406,21 +13416,21 @@ def IfcCrossProduct(arg1, arg2): def IfcCurveDim(curve): if 'ifc4x3_rc3.ifcline' in typeof(curve): - return getattr(getattr(curve, 'Pnt', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Pnt', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_rc3.ifcconic' in typeof(curve): - return getattr(getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_rc3.ifcpolyline' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'Points', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'Points', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_rc3.ifctrimmedcurve' in typeof(curve): - return IfcCurveDim(getattr(curve, 'BasisCurve', INDETERMINATE)) + return IfcCurveDim(express_getattr(curve, 'BasisCurve', INDETERMINATE)) if 'ifc4x3_rc3.ifcgradientcurve' in typeof(curve): return 3 if 'ifc4x3_rc3.ifcsegmentedreferencecurve' in typeof(curve): return 3 if 'ifc4x3_rc3.ifccompositecurve' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_rc3.ifcbsplinecurve' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_rc3.ifcoffsetcurve2d' in typeof(curve): return 2 if 'ifc4x3_rc3.ifcoffsetcurve3d' in typeof(curve): @@ -13430,19 +13440,19 @@ def IfcCurveDim(curve): if 'ifc4x3_rc3.ifccurvesegment2d' in typeof(curve): return 2 if 'ifc4x3_rc3.ifcpolynomialcurve' in typeof(curve): - if not exists(getattr(curve, 'CoefficientsZ', INDETERMINATE)) and getattr(getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) == 2: + if not exists(express_getattr(curve, 'CoefficientsZ', INDETERMINATE)) and express_getattr(express_getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) == 2: return 2 return 3 if 'ifc4x3_rc3.ifcpcurve' in typeof(curve): return 3 if 'ifc4x3_rc3.ifcindexedpolycurve' in typeof(curve): - return getattr(getattr(curve, 'Points', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Points', INDETERMINATE), 'Dim', INDETERMINATE) return None def IfcCurveWeightsPositive(b): result = True - for i in range(0, getattr(b, 'UpperIndexOnControlPoints', INDETERMINATE) + 1): - if express_getitem(getattr(b, 'Weights', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: + for i in range(0, express_getattr(b, 'UpperIndexOnControlPoints', INDETERMINATE) + 1): + if express_getitem(express_getattr(b, 'Weights', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: result = False return result return result @@ -13450,13 +13460,13 @@ def IfcCurveWeightsPositive(b): def IfcDeriveDimensionalExponents(unitelements): result = IfcDimensionalExponents(0, 0, 0, 0, 0, 0, 0) for i in range(loindex(unitelements), hiindex(unitelements) + 1): - result.LengthExponent = getattr(result, 'LengthExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LengthExponent', INDETERMINATE) - result.MassExponent = getattr(result, 'MassExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'MassExponent', INDETERMINATE) - result.TimeExponent = getattr(result, 'TimeExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'TimeExponent', INDETERMINATE) - result.ElectricCurrentExponent = getattr(result, 'ElectricCurrentExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ElectricCurrentExponent', INDETERMINATE) - result.ThermodynamicTemperatureExponent = getattr(result, 'ThermodynamicTemperatureExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ThermodynamicTemperatureExponent', INDETERMINATE) - result.AmountOfSubstanceExponent = getattr(result, 'AmountOfSubstanceExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'AmountOfSubstanceExponent', INDETERMINATE) - result.LuminousIntensityExponent = getattr(result, 'LuminousIntensityExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LuminousIntensityExponent', INDETERMINATE) + result.LengthExponent = express_getattr(result, 'LengthExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LengthExponent', INDETERMINATE) + result.MassExponent = express_getattr(result, 'MassExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'MassExponent', INDETERMINATE) + result.TimeExponent = express_getattr(result, 'TimeExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'TimeExponent', INDETERMINATE) + result.ElectricCurrentExponent = express_getattr(result, 'ElectricCurrentExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ElectricCurrentExponent', INDETERMINATE) + result.ThermodynamicTemperatureExponent = express_getattr(result, 'ThermodynamicTemperatureExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ThermodynamicTemperatureExponent', INDETERMINATE) + result.AmountOfSubstanceExponent = express_getattr(result, 'AmountOfSubstanceExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'AmountOfSubstanceExponent', INDETERMINATE) + result.LuminousIntensityExponent = express_getattr(result, 'LuminousIntensityExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LuminousIntensityExponent', INDETERMINATE) return result def IfcDimensionsForSiUnit(n): @@ -13526,15 +13536,15 @@ def IfcDimensionsForSiUnit(n): def IfcDotProduct(arg1, arg2): if not exists(arg1) or not exists(arg2): scalar = None - elif getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + elif express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): scalar = None else: vec1 = IfcNormalise(arg1) vec2 = IfcNormalise(arg2) - ndim = getattr(arg1, 'Dim', INDETERMINATE) + ndim = express_getattr(arg1, 'Dim', INDETERMINATE) scalar = 0.0 for i in range(1, ndim + 1): - scalar = scalar + express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + scalar = scalar + express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return scalar def IfcFirstProjAxis(zaxis, arg): @@ -13543,36 +13553,36 @@ def IfcFirstProjAxis(zaxis, arg): else: z = IfcNormalise(zaxis) if not exists(arg): - if getattr(z, 'DirectionRatios', INDETERMINATE) != [1.0, 0.0, 0.0]: + if express_getattr(z, 'DirectionRatios', INDETERMINATE) != [1.0, 0.0, 0.0]: v = IfcDirection(DirectionRatios=[1.0, 0.0, 0.0]) else: v = IfcDirection(DirectionRatios=[0.0, 1.0, 0.0]) else: - if getattr(arg, 'Dim', INDETERMINATE) != 3: + if express_getattr(arg, 'Dim', INDETERMINATE) != 3: return None - if getattr(IfcCrossProduct(arg, z), 'Magnitude', INDETERMINATE) == 0.0: + if express_getattr(IfcCrossProduct(arg, z), 'Magnitude', INDETERMINATE) == 0.0: return None else: v = IfcNormalise(arg) xvec = IfcScalarTimesVector(IfcDotProduct(v, z), z) - xaxis = getattr(IfcVectorDifference(v, xvec), 'Orientation', INDETERMINATE) + xaxis = express_getattr(IfcVectorDifference(v, xvec), 'Orientation', INDETERMINATE) xaxis = IfcNormalise(xaxis) return xaxis def IfcGetBasisSurface(c): surfs = [] if 'ifc4x3_rc3.ifcpcurve' in typeof(c): - surfs = [getattr(c, 'BasisSurface', INDETERMINATE)] + surfs = [express_getattr(c, 'BasisSurface', INDETERMINATE)] elif 'ifc4x3_rc3.ifcsurfacecurve' in typeof(c): - n = sizeof(getattr(c, 'AssociatedGeometry', INDETERMINATE)) + n = sizeof(express_getattr(c, 'AssociatedGeometry', INDETERMINATE)) for i in range(1, n + 1): - surfs = surfs + IfcAssociatedSurface(express_getitem(getattr(c, 'AssociatedGeometry', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) + surfs = surfs + IfcAssociatedSurface(express_getitem(express_getattr(c, 'AssociatedGeometry', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) if 'ifc4x3_rc3.ifccompositecurveonsurface' in typeof(c): - n = sizeof(getattr(c, 'Segments', INDETERMINATE)) - surfs = IfcGetBasisSurface(getattr(express_getitem(getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) + n = sizeof(express_getattr(c, 'Segments', INDETERMINATE)) + surfs = IfcGetBasisSurface(express_getattr(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) if n > 1: for i in range(2, n + 1): - surfs = surfs * IfcGetBasisSurface(getattr(express_getitem(getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) + surfs = surfs * IfcGetBasisSurface(express_getattr(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) return surfs def IfcGradient(gradientcurve): @@ -13592,9 +13602,9 @@ def IfcListToArray(lis, low, u): def IfcLoopHeadToTail(aloop): p = True - n = sizeof(getattr(aloop, 'EdgeList', INDETERMINATE)) + n = sizeof(express_getattr(aloop, 'EdgeList', INDETERMINATE)) for i in range(2, n + 1): - p = p and getattr(express_getitem(getattr(aloop, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == getattr(express_getitem(getattr(aloop, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) + p = p and express_getattr(express_getitem(express_getattr(aloop, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == express_getattr(express_getitem(express_getattr(aloop, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) return p def IfcMakeArrayOfArray(lis, low1, u1, low2, u2): @@ -13612,10 +13622,10 @@ def IfcMakeArrayOfArray(lis, low1, u1, low2, u2): return res def IfcMlsTotalThickness(layerset): - max = getattr(express_getitem(getattr(layerset, 'MaterialLayers', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) - if sizeof(getattr(layerset, 'MaterialLayers', INDETERMINATE)) > 1: - for i in range(2, hiindex(getattr(layerset, 'MaterialLayers', INDETERMINATE)) + 1): - max = max + getattr(express_getitem(getattr(layerset, 'MaterialLayers', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) + max = express_getattr(express_getitem(express_getattr(layerset, 'MaterialLayers', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) + if sizeof(express_getattr(layerset, 'MaterialLayers', INDETERMINATE)) > 1: + for i in range(2, hiindex(express_getattr(layerset, 'MaterialLayers', INDETERMINATE)) + 1): + max = max + express_getattr(express_getitem(express_getattr(layerset, 'MaterialLayers', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) return max def IfcNormalise(arg): @@ -13626,25 +13636,25 @@ def IfcNormalise(arg): return None else: if 'ifc4x3_rc3.ifcvector' in typeof(arg): - ndim = getattr(arg, 'Dim', INDETERMINATE) - v.DirectionRatios = getattr(getattr(arg, 'Orientation', INDETERMINATE), 'DirectionRatios', INDETERMINATE) - vec.Magnitude = getattr(arg, 'Magnitude', INDETERMINATE) + ndim = express_getattr(arg, 'Dim', INDETERMINATE) + v.DirectionRatios = express_getattr(express_getattr(arg, 'Orientation', INDETERMINATE), 'DirectionRatios', INDETERMINATE) + vec.Magnitude = express_getattr(arg, 'Magnitude', INDETERMINATE) vec.Orientation = v - if getattr(arg, 'Magnitude', INDETERMINATE) == 0.0: + if express_getattr(arg, 'Magnitude', INDETERMINATE) == 0.0: return None else: vec.Magnitude = 1.0 else: - ndim = getattr(arg, 'Dim', INDETERMINATE) - v.DirectionRatios = getattr(arg, 'DirectionRatios', INDETERMINATE) + ndim = express_getattr(arg, 'Dim', INDETERMINATE) + v.DirectionRatios = express_getattr(arg, 'DirectionRatios', INDETERMINATE) mag = 0.0 for i in range(1, ndim + 1): - mag = mag + express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: mag = sqrt(mag) for i in range(1, ndim + 1): - temp = list(getattr(v, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) / mag + temp = list(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) / mag v.DirectionRatios = temp if 'ifc4x3_rc3.ifcvector' in typeof(arg): vec.Orientation = v @@ -13656,18 +13666,18 @@ def IfcNormalise(arg): return result def IfcOrthogonalComplement(vec): - if not exists(vec) or getattr(vec, 'Dim', INDETERMINATE) != 2: + if not exists(vec) or express_getattr(vec, 'Dim', INDETERMINATE) != 2: return None else: - result = IfcDirection(DirectionRatios=[-express_getitem(getattr(vec, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(vec, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) + result = IfcDirection(DirectionRatios=[-express_getitem(express_getattr(vec, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(vec, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) return result def IfcPathHeadToTail(apath): n = 0 p = unknown - n = sizeof(getattr(apath, 'EdgeList', INDETERMINATE)) + n = sizeof(express_getattr(apath, 'EdgeList', INDETERMINATE)) for i in range(2, n + 1): - p = p and getattr(express_getitem(getattr(apath, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == getattr(express_getitem(getattr(apath, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) + p = p and express_getattr(express_getitem(express_getattr(apath, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == express_getattr(express_getitem(express_getattr(apath, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) return p def IfcPointListDim(pointlist): @@ -13678,32 +13688,32 @@ def IfcPointListDim(pointlist): return None def IfcSameAxis2Placement(ap1, ap2, epsilon): - return IfcSameDirection(express_getitem(getattr(ap1, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(ap2, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameDirection(express_getitem(getattr(ap1, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(ap2, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameCartesianPoint(getattr(ap1, 'Location', INDETERMINATE), getattr(ap1, 'Location', INDETERMINATE), epsilon) + return IfcSameDirection(express_getitem(express_getattr(ap1, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(ap2, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameDirection(express_getitem(express_getattr(ap1, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(ap2, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameCartesianPoint(express_getattr(ap1, 'Location', INDETERMINATE), express_getattr(ap1, 'Location', INDETERMINATE), epsilon) def IfcSameCartesianPoint(cp1, cp2, epsilon): - cp1x = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - cp1y = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp1x = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp1y = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) cp1z = 0 - cp2x = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - cp2y = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp2x = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp2y = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) cp2z = 0 - if sizeof(getattr(cp1, 'Coordinates', INDETERMINATE)) > 2: - cp1z = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - if sizeof(getattr(cp2, 'Coordinates', INDETERMINATE)) > 2: - cp2z = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(cp1, 'Coordinates', INDETERMINATE)) > 2: + cp1z = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(cp2, 'Coordinates', INDETERMINATE)) > 2: + cp2z = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return IfcSameValue(cp1x, cp2x, epsilon) and IfcSameValue(cp1y, cp2y, epsilon) and IfcSameValue(cp1z, cp2z, epsilon) def IfcSameDirection(dir1, dir2, epsilon): - dir1x = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - dir1y = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir1x = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir1y = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) dir1z = 0 - dir2x = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - dir2y = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir2x = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir2y = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) dir2z = 0 - if sizeof(getattr(dir1, 'DirectionRatios', INDETERMINATE)) > 2: - dir1z = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - if sizeof(getattr(dir2, 'DirectionRatios', INDETERMINATE)) > 2: - dir2z = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(dir1, 'DirectionRatios', INDETERMINATE)) > 2: + dir1z = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(dir2, 'DirectionRatios', INDETERMINATE)) > 2: + dir2z = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return IfcSameValue(dir1x, dir2x, epsilon) and IfcSameValue(dir1y, dir2y, epsilon) and IfcSameValue(dir1z, dir2z, epsilon) def IfcSameValidPrecision(epsilon1, epsilon2): @@ -13724,15 +13734,15 @@ def IfcScalarTimesVector(scalar, vec): return None else: if 'ifc4x3_rc3.ifcvector' in typeof(vec): - v = getattr(vec, 'Orientation', INDETERMINATE) - mag = scalar * getattr(vec, 'Magnitude', INDETERMINATE) + v = express_getattr(vec, 'Orientation', INDETERMINATE) + mag = scalar * express_getattr(vec, 'Magnitude', INDETERMINATE) else: v = vec mag = scalar if mag < 0.0: - for i in range(1, sizeof(getattr(v, 'DirectionRatios', INDETERMINATE)) + 1): - temp = list(getattr(v, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + for i in range(1, sizeof(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + 1): + temp = list(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) v.DirectionRatios = temp mag = -mag result = IfcVector(Orientation=IfcNormalise(v), Magnitude=mag) @@ -13748,71 +13758,71 @@ def IfcSecondProjAxis(zaxis, xaxis, arg): temp = IfcScalarTimesVector(IfcDotProduct(v, xaxis), xaxis) yaxis = IfcVectorDifference(yaxis, temp) yaxis = IfcNormalise(yaxis) - return getattr(yaxis, 'Orientation', INDETERMINATE) + return express_getattr(yaxis, 'Orientation', INDETERMINATE) def IfcShapeRepresentationTypes(reptype, items): count = 0 - if getattr(reptype, 'lower', INDETERMINATE)() == 'point': + if express_getattr(reptype, 'lower', INDETERMINATE)() == 'point': count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifcpoint' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'pointcloud': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'pointcloud': count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifccartesianpointlist3d' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve': count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifccurve' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve2d': - count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifccurve' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 2]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve3d': - count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifccurve' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 3]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve2d': + count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifccurve' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 2]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve3d': + count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifccurve' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 3]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface': count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifcsurface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface2d': - count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifcsurface' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 2]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface3d': - count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifcsurface' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 3]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'fillarea': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface2d': + count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifcsurface' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 2]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface3d': + count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifcsurface' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 3]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'fillarea': count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifcannotationfillarea' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'text': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'text': count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifctextliteral' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsurface': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsurface': count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifcbsplinesurface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'annotation2d': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'annotation2d': count = sizeof([temp for temp in items if sizeof(typeof(temp) * ['ifc4x3_rc3.ifcpoint', 'ifc4x3_rc3.ifccurve', 'ifc4x3_rc3.ifcgeometriccurveset', 'ifc4x3_rc3.ifcannotationfillarea', 'ifc4x3_rc3.ifctextliteral']) == 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'geometricset': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'geometricset': count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifcgeometricset' in typeof(temp) or 'ifc4x3_rc3.ifcpoint' in typeof(temp) or 'ifc4x3_rc3.ifccurve' in typeof(temp) or ('ifc4x3_rc3.ifcsurface' in typeof(temp))]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'geometriccurveset': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'geometriccurveset': count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifcgeometriccurveset' in typeof(temp) or 'ifc4x3_rc3.ifcgeometricset' in typeof(temp) or 'ifc4x3_rc3.ifcpoint' in typeof(temp) or ('ifc4x3_rc3.ifccurve' in typeof(temp))]) for i in range(1, hiindex(items) + 1): if 'ifc4x3_rc3.ifcgeometricset' in typeof(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - if sizeof([temp for temp in getattr(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Elements', INDETERMINATE) if 'ifc4x3_rc3.ifcsurface' in typeof(temp)]) > 0: + if sizeof([temp for temp in express_getattr(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Elements', INDETERMINATE) if 'ifc4x3_rc3.ifcsurface' in typeof(temp)]) > 0: count = count - 1 - elif getattr(reptype, 'lower', INDETERMINATE)() == 'tessellation': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'tessellation': count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifctessellateditem' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surfaceorsolidmodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surfaceorsolidmodel': count = sizeof([temp for temp in items if sizeof(['ifc4x3_rc3.ifctessellateditem', 'ifc4x3_rc3.ifcshellbasedsurfacemodel', 'ifc4x3_rc3.ifcfacebasedsurfacemodel', 'ifc4x3_rc3.ifcsolidmodel'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surfacemodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surfacemodel': count = sizeof([temp for temp in items if sizeof(['ifc4x3_rc3.ifctessellateditem', 'ifc4x3_rc3.ifcshellbasedsurfacemodel', 'ifc4x3_rc3.ifcfacebasedsurfacemodel'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'solidmodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'solidmodel': count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifcsolidmodel' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'sweptsolid': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'sweptsolid': count = sizeof([temp for temp in items if sizeof(['ifc4x3_rc3.ifcextrudedareasolid', 'ifc4x3_rc3.ifcrevolvedareasolid'] * typeof(temp)) >= 1 and sizeof(['ifc4x3_rc3.ifcextrudedareasolidtapered', 'ifc4x3_rc3.ifcrevolvedareasolidtapered'] * typeof(temp)) == 0]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsweptsolid': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsweptsolid': count = sizeof([temp for temp in items if sizeof(['ifc4x3_rc3.ifcsweptareasolid', 'ifc4x3_rc3.ifcsweptdisksolid', 'ifc4x3_rc3.ifcsectionedsolidhorizontal'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'csg': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'csg': count = sizeof([temp for temp in items if sizeof(['ifc4x3_rc3.ifcbooleanresult', 'ifc4x3_rc3.ifccsgprimitive3d', 'ifc4x3_rc3.ifccsgsolid'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'clipping': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'clipping': count = sizeof([temp for temp in items if sizeof(['ifc4x3_rc3.ifccsgsolid', 'ifc4x3_rc3.ifcbooleanclippingresult'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'brep': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'brep': count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifcfacetedbrep' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedbrep': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedbrep': count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifcmanifoldsolidbrep' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'boundingbox': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'boundingbox': count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifcboundingbox' in typeof(temp)]) if sizeof(items) > 1: count = 0 - elif getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedspine': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedspine': count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifcsectionedspine' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'lightsource': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'lightsource': count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifclightsource' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'mappedrepresentation': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'mappedrepresentation': count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifcmappeditem' in typeof(temp)]) else: return None @@ -13820,9 +13830,9 @@ def IfcShapeRepresentationTypes(reptype, items): def IfcSurfaceWeightsPositive(b): result = True - weights = getattr(b, 'Weights', INDETERMINATE) - for i in range(0, getattr(b, 'UUpper', INDETERMINATE) + 1): - for j in range(0, getattr(b, 'VUpper', INDETERMINATE) + 1): + weights = express_getattr(b, 'Weights', INDETERMINATE) + for i in range(0, express_getattr(b, 'UUpper', INDETERMINATE) + 1): + for j in range(0, express_getattr(b, 'VUpper', INDETERMINATE) + 1): if express_getitem(express_getitem(weights, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), j - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: result = False return result @@ -13832,28 +13842,28 @@ def IfcTaperedSweptAreaProfiles(startarea, endarea): result = False if 'ifc4x3_rc3.ifcparameterizedprofiledef' in typeof(startarea): if 'ifc4x3_rc3.ifcderivedprofiledef' in typeof(endarea): - result = startarea == getattr(endarea, 'ParentProfile', INDETERMINATE) + result = startarea == express_getattr(endarea, 'ParentProfile', INDETERMINATE) else: result = typeof(startarea) == typeof(endarea) elif 'ifc4x3_rc3.ifcderivedprofiledef' in typeof(endarea): - result = startarea == getattr(endarea, 'ParentProfile', INDETERMINATE) + result = startarea == express_getattr(endarea, 'ParentProfile', INDETERMINATE) else: result = False return result def IfcTopologyRepresentationTypes(reptype, items): count = 0 - if getattr(reptype, 'lower', INDETERMINATE)() == 'vertex': + if express_getattr(reptype, 'lower', INDETERMINATE)() == 'vertex': count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifcvertex' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'edge': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'edge': count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifcedge' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'path': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'path': count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifcpath' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'face': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'face': count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifcface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'shell': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'shell': count = sizeof([temp for temp in items if 'ifc4x3_rc3.ifcopenshell' in typeof(temp) or 'ifc4x3_rc3.ifcclosedshell' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'undefined': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'undefined': return True else: return None @@ -13864,7 +13874,7 @@ def IfcUniqueDefinitionNames(relations): if sizeof(relations) == 0: return True for i in range(1, hiindex(relations) + 1): - definition = getattr(express_getitem(relations, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingPropertyDefinition', INDETERMINATE) + definition = express_getattr(express_getitem(relations, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingPropertyDefinition', INDETERMINATE) if 'ifc4x3_rc3.ifcpropertysetdefinition' in typeof(definition): properties = properties + definition elif 'ifc4x3_rc3.ifcpropertysetdefinitionset' in typeof(definition): @@ -13877,7 +13887,7 @@ def IfcUniqueDefinitionNames(relations): def IfcUniquePropertyName(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcUniquePropertySetNames(properties): @@ -13885,7 +13895,7 @@ def IfcUniquePropertySetNames(properties): unnamed = 0 for i in range(1, hiindex(properties) + 1): if 'ifc4x3_rc3.ifcpropertyset' in typeof(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) else: unnamed = unnamed + 1 return sizeof(names) + unnamed == sizeof(properties) @@ -13893,41 +13903,41 @@ def IfcUniquePropertySetNames(properties): def IfcUniquePropertyTemplateNames(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcUniqueQuantityNames(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcVectorDifference(arg1, arg2): - if (not exists(arg1) or not exists(arg2)) or getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + if (not exists(arg1) or not exists(arg2)) or express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): return None else: if 'ifc4x3_rc3.ifcvector' in typeof(arg1): - mag1 = getattr(arg1, 'Magnitude', INDETERMINATE) - vec1 = getattr(arg1, 'Orientation', INDETERMINATE) + mag1 = express_getattr(arg1, 'Magnitude', INDETERMINATE) + vec1 = express_getattr(arg1, 'Orientation', INDETERMINATE) else: mag1 = 1.0 vec1 = arg1 if 'ifc4x3_rc3.ifcvector' in typeof(arg2): - mag2 = getattr(arg2, 'Magnitude', INDETERMINATE) - vec2 = getattr(arg2, 'Orientation', INDETERMINATE) + mag2 = express_getattr(arg2, 'Magnitude', INDETERMINATE) + vec2 = express_getattr(arg2, 'Orientation', INDETERMINATE) else: mag2 = 1.0 vec2 = arg2 vec1 = IfcNormalise(vec1) vec2 = IfcNormalise(vec2) - ndim = sizeof(getattr(vec1, 'DirectionRatios', INDETERMINATE)) + ndim = sizeof(express_getattr(vec1, 'DirectionRatios', INDETERMINATE)) mag = 0.0 res = IfcDirection(DirectionRatios=[0.0] * ndim) for i in range(1, ndim + 1): - temp = list(getattr(res, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - mag2 * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(res, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - mag2 * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) res.DirectionRatios = temp - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: @@ -13935,31 +13945,31 @@ def IfcVectorDifference(arg1, arg2): return result def IfcVectorSum(arg1, arg2): - if (not exists(arg1) or not exists(arg2)) or getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + if (not exists(arg1) or not exists(arg2)) or express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): return None else: if 'ifc4x3_rc3.ifcvector' in typeof(arg1): - mag1 = getattr(arg1, 'Magnitude', INDETERMINATE) - vec1 = getattr(arg1, 'Orientation', INDETERMINATE) + mag1 = express_getattr(arg1, 'Magnitude', INDETERMINATE) + vec1 = express_getattr(arg1, 'Orientation', INDETERMINATE) else: mag1 = 1.0 vec1 = arg1 if 'ifc4x3_rc3.ifcvector' in typeof(arg2): - mag2 = getattr(arg2, 'Magnitude', INDETERMINATE) - vec2 = getattr(arg2, 'Orientation', INDETERMINATE) + mag2 = express_getattr(arg2, 'Magnitude', INDETERMINATE) + vec2 = express_getattr(arg2, 'Orientation', INDETERMINATE) else: mag2 = 1.0 vec2 = arg2 vec1 = IfcNormalise(vec1) vec2 = IfcNormalise(vec2) - ndim = sizeof(getattr(vec1, 'DirectionRatios', INDETERMINATE)) + ndim = sizeof(express_getattr(vec1, 'DirectionRatios', INDETERMINATE)) mag = 0.0 res = IfcDirection(DirectionRatios=[0.0] * ndim) for i in range(1, ndim + 1): - temp = list(getattr(res, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag2 * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(res, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag2 * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) res.DirectionRatios = temp - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC4.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC4.py index ac69924453..1a0dbfb756 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC4.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC4.py @@ -1,5 +1,8 @@ import ifcopenshell +def is_indeterminate(v): + return v is None or type(v).__name__ == 'indeterminate_type' + def exists(v): if callable(v): try: @@ -7,10 +10,10 @@ def exists(v): except IndexError as e: return False else: - return v is not None + return not is_indeterminate(v) def nvl(v, default): - return v if v is not None else default + return v if not is_indeterminate(v) else default def is_entity(inst): if isinstance(inst, ifcopenshell.entity_instance): @@ -22,13 +25,13 @@ def is_entity(inst): def express_len(v): if isinstance(v, ifcopenshell.entity_instance) and (not is_entity(v)): v = v[0] - elif v is None or v is INDETERMINATE: + elif is_indeterminate(v): return INDETERMINATE return len(v) old_range = range def range(*args): - if INDETERMINATE in args: + if any(map(is_indeterminate, args)): return yield from old_range(*args) sizeof = express_len @@ -80,6 +83,13 @@ def express_getitem(aggr, idx, default): return aggr[idx] except IndexError as e: return None + +def express_getattr(aggr, name, default): + v = getattr(aggr, name, default) + if v is None: + return default + else: + return v EXPRESS_ONE_BASED_INDEXING = 1 def typeof(inst): @@ -140,2394 +150,2394 @@ INDETERMINATE = indeterminate_type() class enum_namespace: def __getattr__(self, k): - return getattr(k, 'upper', INDETERMINATE)() + return express_getattr(k, 'upper', INDETERMINATE)() IfcActionRequestTypeEnum = enum_namespace() -email = getattr(IfcActionRequestTypeEnum, 'EMAIL', INDETERMINATE) -fax = getattr(IfcActionRequestTypeEnum, 'FAX', INDETERMINATE) -phone = getattr(IfcActionRequestTypeEnum, 'PHONE', INDETERMINATE) -post = getattr(IfcActionRequestTypeEnum, 'POST', INDETERMINATE) -verbal = getattr(IfcActionRequestTypeEnum, 'VERBAL', INDETERMINATE) -userdefined = getattr(IfcActionRequestTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionRequestTypeEnum, 'NOTDEFINED', INDETERMINATE) +email = IfcActionRequestTypeEnum.EMAIL +fax = IfcActionRequestTypeEnum.FAX +phone = IfcActionRequestTypeEnum.PHONE +post = IfcActionRequestTypeEnum.POST +verbal = IfcActionRequestTypeEnum.VERBAL +userdefined = IfcActionRequestTypeEnum.USERDEFINED +notdefined = IfcActionRequestTypeEnum.NOTDEFINED IfcActionSourceTypeEnum = enum_namespace() -dead_load_g = getattr(IfcActionSourceTypeEnum, 'DEAD_LOAD_G', INDETERMINATE) -completion_g1 = getattr(IfcActionSourceTypeEnum, 'COMPLETION_G1', INDETERMINATE) -live_load_q = getattr(IfcActionSourceTypeEnum, 'LIVE_LOAD_Q', INDETERMINATE) -snow_s = getattr(IfcActionSourceTypeEnum, 'SNOW_S', INDETERMINATE) -wind_w = getattr(IfcActionSourceTypeEnum, 'WIND_W', INDETERMINATE) -prestressing_p = getattr(IfcActionSourceTypeEnum, 'PRESTRESSING_P', INDETERMINATE) -settlement_u = getattr(IfcActionSourceTypeEnum, 'SETTLEMENT_U', INDETERMINATE) -temperature_t = getattr(IfcActionSourceTypeEnum, 'TEMPERATURE_T', INDETERMINATE) -earthquake_e = getattr(IfcActionSourceTypeEnum, 'EARTHQUAKE_E', INDETERMINATE) -fire = getattr(IfcActionSourceTypeEnum, 'FIRE', INDETERMINATE) -impulse = getattr(IfcActionSourceTypeEnum, 'IMPULSE', INDETERMINATE) -impact = getattr(IfcActionSourceTypeEnum, 'IMPACT', INDETERMINATE) -transport = getattr(IfcActionSourceTypeEnum, 'TRANSPORT', INDETERMINATE) -erection = getattr(IfcActionSourceTypeEnum, 'ERECTION', INDETERMINATE) -propping = getattr(IfcActionSourceTypeEnum, 'PROPPING', INDETERMINATE) -system_imperfection = getattr(IfcActionSourceTypeEnum, 'SYSTEM_IMPERFECTION', INDETERMINATE) -shrinkage = getattr(IfcActionSourceTypeEnum, 'SHRINKAGE', INDETERMINATE) -creep = getattr(IfcActionSourceTypeEnum, 'CREEP', INDETERMINATE) -lack_of_fit = getattr(IfcActionSourceTypeEnum, 'LACK_OF_FIT', INDETERMINATE) -buoyancy = getattr(IfcActionSourceTypeEnum, 'BUOYANCY', INDETERMINATE) -ice = getattr(IfcActionSourceTypeEnum, 'ICE', INDETERMINATE) -current = getattr(IfcActionSourceTypeEnum, 'CURRENT', INDETERMINATE) -wave = getattr(IfcActionSourceTypeEnum, 'WAVE', INDETERMINATE) -rain = getattr(IfcActionSourceTypeEnum, 'RAIN', INDETERMINATE) -brakes = getattr(IfcActionSourceTypeEnum, 'BRAKES', INDETERMINATE) -userdefined = getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionSourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dead_load_g = IfcActionSourceTypeEnum.DEAD_LOAD_G +completion_g1 = IfcActionSourceTypeEnum.COMPLETION_G1 +live_load_q = IfcActionSourceTypeEnum.LIVE_LOAD_Q +snow_s = IfcActionSourceTypeEnum.SNOW_S +wind_w = IfcActionSourceTypeEnum.WIND_W +prestressing_p = IfcActionSourceTypeEnum.PRESTRESSING_P +settlement_u = IfcActionSourceTypeEnum.SETTLEMENT_U +temperature_t = IfcActionSourceTypeEnum.TEMPERATURE_T +earthquake_e = IfcActionSourceTypeEnum.EARTHQUAKE_E +fire = IfcActionSourceTypeEnum.FIRE +impulse = IfcActionSourceTypeEnum.IMPULSE +impact = IfcActionSourceTypeEnum.IMPACT +transport = IfcActionSourceTypeEnum.TRANSPORT +erection = IfcActionSourceTypeEnum.ERECTION +propping = IfcActionSourceTypeEnum.PROPPING +system_imperfection = IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION +shrinkage = IfcActionSourceTypeEnum.SHRINKAGE +creep = IfcActionSourceTypeEnum.CREEP +lack_of_fit = IfcActionSourceTypeEnum.LACK_OF_FIT +buoyancy = IfcActionSourceTypeEnum.BUOYANCY +ice = IfcActionSourceTypeEnum.ICE +current = IfcActionSourceTypeEnum.CURRENT +wave = IfcActionSourceTypeEnum.WAVE +rain = IfcActionSourceTypeEnum.RAIN +brakes = IfcActionSourceTypeEnum.BRAKES +userdefined = IfcActionSourceTypeEnum.USERDEFINED +notdefined = IfcActionSourceTypeEnum.NOTDEFINED IfcActionTypeEnum = enum_namespace() -permanent_g = getattr(IfcActionTypeEnum, 'PERMANENT_G', INDETERMINATE) -variable_q = getattr(IfcActionTypeEnum, 'VARIABLE_Q', INDETERMINATE) -extraordinary_a = getattr(IfcActionTypeEnum, 'EXTRAORDINARY_A', INDETERMINATE) -userdefined = getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionTypeEnum, 'NOTDEFINED', INDETERMINATE) +permanent_g = IfcActionTypeEnum.PERMANENT_G +variable_q = IfcActionTypeEnum.VARIABLE_Q +extraordinary_a = IfcActionTypeEnum.EXTRAORDINARY_A +userdefined = IfcActionTypeEnum.USERDEFINED +notdefined = IfcActionTypeEnum.NOTDEFINED IfcActuatorTypeEnum = enum_namespace() -electricactuator = getattr(IfcActuatorTypeEnum, 'ELECTRICACTUATOR', INDETERMINATE) -handoperatedactuator = getattr(IfcActuatorTypeEnum, 'HANDOPERATEDACTUATOR', INDETERMINATE) -hydraulicactuator = getattr(IfcActuatorTypeEnum, 'HYDRAULICACTUATOR', INDETERMINATE) -pneumaticactuator = getattr(IfcActuatorTypeEnum, 'PNEUMATICACTUATOR', INDETERMINATE) -thermostaticactuator = getattr(IfcActuatorTypeEnum, 'THERMOSTATICACTUATOR', INDETERMINATE) -userdefined = getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActuatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +electricactuator = IfcActuatorTypeEnum.ELECTRICACTUATOR +handoperatedactuator = IfcActuatorTypeEnum.HANDOPERATEDACTUATOR +hydraulicactuator = IfcActuatorTypeEnum.HYDRAULICACTUATOR +pneumaticactuator = IfcActuatorTypeEnum.PNEUMATICACTUATOR +thermostaticactuator = IfcActuatorTypeEnum.THERMOSTATICACTUATOR +userdefined = IfcActuatorTypeEnum.USERDEFINED +notdefined = IfcActuatorTypeEnum.NOTDEFINED IfcAddressTypeEnum = enum_namespace() -office = getattr(IfcAddressTypeEnum, 'OFFICE', INDETERMINATE) -site = getattr(IfcAddressTypeEnum, 'SITE', INDETERMINATE) -home = getattr(IfcAddressTypeEnum, 'HOME', INDETERMINATE) -distributionpoint = getattr(IfcAddressTypeEnum, 'DISTRIBUTIONPOINT', INDETERMINATE) -userdefined = getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) +office = IfcAddressTypeEnum.OFFICE +site = IfcAddressTypeEnum.SITE +home = IfcAddressTypeEnum.HOME +distributionpoint = IfcAddressTypeEnum.DISTRIBUTIONPOINT +userdefined = IfcAddressTypeEnum.USERDEFINED IfcAirTerminalBoxTypeEnum = enum_namespace() -constantflow = getattr(IfcAirTerminalBoxTypeEnum, 'CONSTANTFLOW', INDETERMINATE) -variableflowpressuredependant = getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREDEPENDANT', INDETERMINATE) -variableflowpressureindependant = getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREINDEPENDANT', INDETERMINATE) -userdefined = getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirTerminalBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +constantflow = IfcAirTerminalBoxTypeEnum.CONSTANTFLOW +variableflowpressuredependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT +variableflowpressureindependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT +userdefined = IfcAirTerminalBoxTypeEnum.USERDEFINED +notdefined = IfcAirTerminalBoxTypeEnum.NOTDEFINED IfcAirTerminalTypeEnum = enum_namespace() -diffuser = getattr(IfcAirTerminalTypeEnum, 'DIFFUSER', INDETERMINATE) -grille = getattr(IfcAirTerminalTypeEnum, 'GRILLE', INDETERMINATE) -louvre = getattr(IfcAirTerminalTypeEnum, 'LOUVRE', INDETERMINATE) -register = getattr(IfcAirTerminalTypeEnum, 'REGISTER', INDETERMINATE) -userdefined = getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +diffuser = IfcAirTerminalTypeEnum.DIFFUSER +grille = IfcAirTerminalTypeEnum.GRILLE +louvre = IfcAirTerminalTypeEnum.LOUVRE +register = IfcAirTerminalTypeEnum.REGISTER +userdefined = IfcAirTerminalTypeEnum.USERDEFINED +notdefined = IfcAirTerminalTypeEnum.NOTDEFINED IfcAirToAirHeatRecoveryTypeEnum = enum_namespace() -fixedplatecounterflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECOUNTERFLOWEXCHANGER', INDETERMINATE) -fixedplatecrossflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECROSSFLOWEXCHANGER', INDETERMINATE) -fixedplateparallelflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATEPARALLELFLOWEXCHANGER', INDETERMINATE) -rotarywheel = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'ROTARYWHEEL', INDETERMINATE) -runaroundcoilloop = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'RUNAROUNDCOILLOOP', INDETERMINATE) -heatpipe = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'HEATPIPE', INDETERMINATE) -twintowerenthalpyrecoveryloops = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'TWINTOWERENTHALPYRECOVERYLOOPS', INDETERMINATE) -thermosiphonsealedtubeheatexchangers = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONSEALEDTUBEHEATEXCHANGERS', INDETERMINATE) -thermosiphoncoiltypeheatexchangers = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONCOILTYPEHEATEXCHANGERS', INDETERMINATE) -userdefined = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'NOTDEFINED', INDETERMINATE) +fixedplatecounterflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER +fixedplatecrossflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER +fixedplateparallelflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER +rotarywheel = IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL +runaroundcoilloop = IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP +heatpipe = IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE +twintowerenthalpyrecoveryloops = IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS +thermosiphonsealedtubeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS +thermosiphoncoiltypeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS +userdefined = IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED +notdefined = IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED IfcAlarmTypeEnum = enum_namespace() -bell = getattr(IfcAlarmTypeEnum, 'BELL', INDETERMINATE) -breakglassbutton = getattr(IfcAlarmTypeEnum, 'BREAKGLASSBUTTON', INDETERMINATE) -light = getattr(IfcAlarmTypeEnum, 'LIGHT', INDETERMINATE) -manualpullbox = getattr(IfcAlarmTypeEnum, 'MANUALPULLBOX', INDETERMINATE) -siren = getattr(IfcAlarmTypeEnum, 'SIREN', INDETERMINATE) -whistle = getattr(IfcAlarmTypeEnum, 'WHISTLE', INDETERMINATE) -railwaycrocodile = getattr(IfcAlarmTypeEnum, 'RAILWAYCROCODILE', INDETERMINATE) -railwaydetonator = getattr(IfcAlarmTypeEnum, 'RAILWAYDETONATOR', INDETERMINATE) -userdefined = getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAlarmTypeEnum, 'NOTDEFINED', INDETERMINATE) +bell = IfcAlarmTypeEnum.BELL +breakglassbutton = IfcAlarmTypeEnum.BREAKGLASSBUTTON +light = IfcAlarmTypeEnum.LIGHT +manualpullbox = IfcAlarmTypeEnum.MANUALPULLBOX +siren = IfcAlarmTypeEnum.SIREN +whistle = IfcAlarmTypeEnum.WHISTLE +railwaycrocodile = IfcAlarmTypeEnum.RAILWAYCROCODILE +railwaydetonator = IfcAlarmTypeEnum.RAILWAYDETONATOR +userdefined = IfcAlarmTypeEnum.USERDEFINED +notdefined = IfcAlarmTypeEnum.NOTDEFINED IfcAlignmentCantSegmentTypeEnum = enum_namespace() -blosscurve = getattr(IfcAlignmentCantSegmentTypeEnum, 'BLOSSCURVE', INDETERMINATE) -constantcant = getattr(IfcAlignmentCantSegmentTypeEnum, 'CONSTANTCANT', INDETERMINATE) -cosinecurve = getattr(IfcAlignmentCantSegmentTypeEnum, 'COSINECURVE', INDETERMINATE) -helmertcurve = getattr(IfcAlignmentCantSegmentTypeEnum, 'HELMERTCURVE', INDETERMINATE) -lineartransition = getattr(IfcAlignmentCantSegmentTypeEnum, 'LINEARTRANSITION', INDETERMINATE) -sinecurve = getattr(IfcAlignmentCantSegmentTypeEnum, 'SINECURVE', INDETERMINATE) -viennesebend = getattr(IfcAlignmentCantSegmentTypeEnum, 'VIENNESEBEND', INDETERMINATE) +blosscurve = IfcAlignmentCantSegmentTypeEnum.BLOSSCURVE +constantcant = IfcAlignmentCantSegmentTypeEnum.CONSTANTCANT +cosinecurve = IfcAlignmentCantSegmentTypeEnum.COSINECURVE +helmertcurve = IfcAlignmentCantSegmentTypeEnum.HELMERTCURVE +lineartransition = IfcAlignmentCantSegmentTypeEnum.LINEARTRANSITION +sinecurve = IfcAlignmentCantSegmentTypeEnum.SINECURVE +viennesebend = IfcAlignmentCantSegmentTypeEnum.VIENNESEBEND IfcAlignmentHorizontalSegmentTypeEnum = enum_namespace() -line = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'LINE', INDETERMINATE) -circulararc = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CIRCULARARC', INDETERMINATE) -clothoid = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CLOTHOID', INDETERMINATE) -cubic = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CUBIC', INDETERMINATE) -helmertcurve = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'HELMERTCURVE', INDETERMINATE) -blosscurve = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'BLOSSCURVE', INDETERMINATE) -cosinecurve = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'COSINECURVE', INDETERMINATE) -sinecurve = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'SINECURVE', INDETERMINATE) -viennesebend = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'VIENNESEBEND', INDETERMINATE) +line = IfcAlignmentHorizontalSegmentTypeEnum.LINE +circulararc = IfcAlignmentHorizontalSegmentTypeEnum.CIRCULARARC +clothoid = IfcAlignmentHorizontalSegmentTypeEnum.CLOTHOID +cubic = IfcAlignmentHorizontalSegmentTypeEnum.CUBIC +helmertcurve = IfcAlignmentHorizontalSegmentTypeEnum.HELMERTCURVE +blosscurve = IfcAlignmentHorizontalSegmentTypeEnum.BLOSSCURVE +cosinecurve = IfcAlignmentHorizontalSegmentTypeEnum.COSINECURVE +sinecurve = IfcAlignmentHorizontalSegmentTypeEnum.SINECURVE +viennesebend = IfcAlignmentHorizontalSegmentTypeEnum.VIENNESEBEND IfcAlignmentTypeEnum = enum_namespace() -userdefined = getattr(IfcAlignmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAlignmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcAlignmentTypeEnum.USERDEFINED +notdefined = IfcAlignmentTypeEnum.NOTDEFINED IfcAlignmentVerticalSegmentTypeEnum = enum_namespace() -constantgradient = getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CONSTANTGRADIENT', INDETERMINATE) -circulararc = getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CIRCULARARC', INDETERMINATE) -parabolicarc = getattr(IfcAlignmentVerticalSegmentTypeEnum, 'PARABOLICARC', INDETERMINATE) -clothoid = getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CLOTHOID', INDETERMINATE) +constantgradient = IfcAlignmentVerticalSegmentTypeEnum.CONSTANTGRADIENT +circulararc = IfcAlignmentVerticalSegmentTypeEnum.CIRCULARARC +parabolicarc = IfcAlignmentVerticalSegmentTypeEnum.PARABOLICARC +clothoid = IfcAlignmentVerticalSegmentTypeEnum.CLOTHOID IfcAnalysisModelTypeEnum = enum_namespace() -in_plane_loading_2d = getattr(IfcAnalysisModelTypeEnum, 'IN_PLANE_LOADING_2D', INDETERMINATE) -out_plane_loading_2d = getattr(IfcAnalysisModelTypeEnum, 'OUT_PLANE_LOADING_2D', INDETERMINATE) -loading_3d = getattr(IfcAnalysisModelTypeEnum, 'LOADING_3D', INDETERMINATE) -userdefined = getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnalysisModelTypeEnum, 'NOTDEFINED', INDETERMINATE) +in_plane_loading_2d = IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D +out_plane_loading_2d = IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D +loading_3d = IfcAnalysisModelTypeEnum.LOADING_3D +userdefined = IfcAnalysisModelTypeEnum.USERDEFINED +notdefined = IfcAnalysisModelTypeEnum.NOTDEFINED IfcAnalysisTheoryTypeEnum = enum_namespace() -first_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'FIRST_ORDER_THEORY', INDETERMINATE) -second_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'SECOND_ORDER_THEORY', INDETERMINATE) -third_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'THIRD_ORDER_THEORY', INDETERMINATE) -full_nonlinear_theory = getattr(IfcAnalysisTheoryTypeEnum, 'FULL_NONLINEAR_THEORY', INDETERMINATE) -userdefined = getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnalysisTheoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +first_order_theory = IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY +second_order_theory = IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY +third_order_theory = IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY +full_nonlinear_theory = IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY +userdefined = IfcAnalysisTheoryTypeEnum.USERDEFINED +notdefined = IfcAnalysisTheoryTypeEnum.NOTDEFINED IfcAnnotationTypeEnum = enum_namespace() -assumedpoint = getattr(IfcAnnotationTypeEnum, 'ASSUMEDPOINT', INDETERMINATE) -asbuiltarea = getattr(IfcAnnotationTypeEnum, 'ASBUILTAREA', INDETERMINATE) -asbuiltline = getattr(IfcAnnotationTypeEnum, 'ASBUILTLINE', INDETERMINATE) -non_physical_signal = getattr(IfcAnnotationTypeEnum, 'NON_PHYSICAL_SIGNAL', INDETERMINATE) -assumedline = getattr(IfcAnnotationTypeEnum, 'ASSUMEDLINE', INDETERMINATE) -widthevent = getattr(IfcAnnotationTypeEnum, 'WIDTHEVENT', INDETERMINATE) -assumedarea = getattr(IfcAnnotationTypeEnum, 'ASSUMEDAREA', INDETERMINATE) -superelevationevent = getattr(IfcAnnotationTypeEnum, 'SUPERELEVATIONEVENT', INDETERMINATE) -asbuiltpoint = getattr(IfcAnnotationTypeEnum, 'ASBUILTPOINT', INDETERMINATE) -userdefined = getattr(IfcAnnotationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnnotationTypeEnum, 'NOTDEFINED', INDETERMINATE) +assumedpoint = IfcAnnotationTypeEnum.ASSUMEDPOINT +asbuiltarea = IfcAnnotationTypeEnum.ASBUILTAREA +asbuiltline = IfcAnnotationTypeEnum.ASBUILTLINE +non_physical_signal = IfcAnnotationTypeEnum.NON_PHYSICAL_SIGNAL +assumedline = IfcAnnotationTypeEnum.ASSUMEDLINE +widthevent = IfcAnnotationTypeEnum.WIDTHEVENT +assumedarea = IfcAnnotationTypeEnum.ASSUMEDAREA +superelevationevent = IfcAnnotationTypeEnum.SUPERELEVATIONEVENT +asbuiltpoint = IfcAnnotationTypeEnum.ASBUILTPOINT +userdefined = IfcAnnotationTypeEnum.USERDEFINED +notdefined = IfcAnnotationTypeEnum.NOTDEFINED IfcArithmeticOperatorEnum = enum_namespace() -add = getattr(IfcArithmeticOperatorEnum, 'ADD', INDETERMINATE) -divide = getattr(IfcArithmeticOperatorEnum, 'DIVIDE', INDETERMINATE) -multiply = getattr(IfcArithmeticOperatorEnum, 'MULTIPLY', INDETERMINATE) -subtract = getattr(IfcArithmeticOperatorEnum, 'SUBTRACT', INDETERMINATE) +add = IfcArithmeticOperatorEnum.ADD +divide = IfcArithmeticOperatorEnum.DIVIDE +multiply = IfcArithmeticOperatorEnum.MULTIPLY +subtract = IfcArithmeticOperatorEnum.SUBTRACT IfcAssemblyPlaceEnum = enum_namespace() -site = getattr(IfcAssemblyPlaceEnum, 'SITE', INDETERMINATE) -factory = getattr(IfcAssemblyPlaceEnum, 'FACTORY', INDETERMINATE) -notdefined = getattr(IfcAssemblyPlaceEnum, 'NOTDEFINED', INDETERMINATE) +site = IfcAssemblyPlaceEnum.SITE +factory = IfcAssemblyPlaceEnum.FACTORY +notdefined = IfcAssemblyPlaceEnum.NOTDEFINED IfcAudioVisualApplianceTypeEnum = enum_namespace() -amplifier = getattr(IfcAudioVisualApplianceTypeEnum, 'AMPLIFIER', INDETERMINATE) -camera = getattr(IfcAudioVisualApplianceTypeEnum, 'CAMERA', INDETERMINATE) -display = getattr(IfcAudioVisualApplianceTypeEnum, 'DISPLAY', INDETERMINATE) -microphone = getattr(IfcAudioVisualApplianceTypeEnum, 'MICROPHONE', INDETERMINATE) -player = getattr(IfcAudioVisualApplianceTypeEnum, 'PLAYER', INDETERMINATE) -projector = getattr(IfcAudioVisualApplianceTypeEnum, 'PROJECTOR', INDETERMINATE) -receiver = getattr(IfcAudioVisualApplianceTypeEnum, 'RECEIVER', INDETERMINATE) -speaker = getattr(IfcAudioVisualApplianceTypeEnum, 'SPEAKER', INDETERMINATE) -switcher = getattr(IfcAudioVisualApplianceTypeEnum, 'SWITCHER', INDETERMINATE) -telephone = getattr(IfcAudioVisualApplianceTypeEnum, 'TELEPHONE', INDETERMINATE) -tuner = getattr(IfcAudioVisualApplianceTypeEnum, 'TUNER', INDETERMINATE) -communicationterminal = getattr(IfcAudioVisualApplianceTypeEnum, 'COMMUNICATIONTERMINAL', INDETERMINATE) -recordingequipment = getattr(IfcAudioVisualApplianceTypeEnum, 'RECORDINGEQUIPMENT', INDETERMINATE) -userdefined = getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAudioVisualApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +amplifier = IfcAudioVisualApplianceTypeEnum.AMPLIFIER +camera = IfcAudioVisualApplianceTypeEnum.CAMERA +display = IfcAudioVisualApplianceTypeEnum.DISPLAY +microphone = IfcAudioVisualApplianceTypeEnum.MICROPHONE +player = IfcAudioVisualApplianceTypeEnum.PLAYER +projector = IfcAudioVisualApplianceTypeEnum.PROJECTOR +receiver = IfcAudioVisualApplianceTypeEnum.RECEIVER +speaker = IfcAudioVisualApplianceTypeEnum.SPEAKER +switcher = IfcAudioVisualApplianceTypeEnum.SWITCHER +telephone = IfcAudioVisualApplianceTypeEnum.TELEPHONE +tuner = IfcAudioVisualApplianceTypeEnum.TUNER +communicationterminal = IfcAudioVisualApplianceTypeEnum.COMMUNICATIONTERMINAL +recordingequipment = IfcAudioVisualApplianceTypeEnum.RECORDINGEQUIPMENT +userdefined = IfcAudioVisualApplianceTypeEnum.USERDEFINED +notdefined = IfcAudioVisualApplianceTypeEnum.NOTDEFINED IfcBSplineCurveForm = enum_namespace() -polyline_form = getattr(IfcBSplineCurveForm, 'POLYLINE_FORM', INDETERMINATE) -circular_arc = getattr(IfcBSplineCurveForm, 'CIRCULAR_ARC', INDETERMINATE) -elliptic_arc = getattr(IfcBSplineCurveForm, 'ELLIPTIC_ARC', INDETERMINATE) -parabolic_arc = getattr(IfcBSplineCurveForm, 'PARABOLIC_ARC', INDETERMINATE) -hyperbolic_arc = getattr(IfcBSplineCurveForm, 'HYPERBOLIC_ARC', INDETERMINATE) -unspecified = getattr(IfcBSplineCurveForm, 'UNSPECIFIED', INDETERMINATE) +polyline_form = IfcBSplineCurveForm.POLYLINE_FORM +circular_arc = IfcBSplineCurveForm.CIRCULAR_ARC +elliptic_arc = IfcBSplineCurveForm.ELLIPTIC_ARC +parabolic_arc = IfcBSplineCurveForm.PARABOLIC_ARC +hyperbolic_arc = IfcBSplineCurveForm.HYPERBOLIC_ARC +unspecified = IfcBSplineCurveForm.UNSPECIFIED IfcBSplineSurfaceForm = enum_namespace() -plane_surf = getattr(IfcBSplineSurfaceForm, 'PLANE_SURF', INDETERMINATE) -cylindrical_surf = getattr(IfcBSplineSurfaceForm, 'CYLINDRICAL_SURF', INDETERMINATE) -conical_surf = getattr(IfcBSplineSurfaceForm, 'CONICAL_SURF', INDETERMINATE) -spherical_surf = getattr(IfcBSplineSurfaceForm, 'SPHERICAL_SURF', INDETERMINATE) -toroidal_surf = getattr(IfcBSplineSurfaceForm, 'TOROIDAL_SURF', INDETERMINATE) -surf_of_revolution = getattr(IfcBSplineSurfaceForm, 'SURF_OF_REVOLUTION', INDETERMINATE) -ruled_surf = getattr(IfcBSplineSurfaceForm, 'RULED_SURF', INDETERMINATE) -generalised_cone = getattr(IfcBSplineSurfaceForm, 'GENERALISED_CONE', INDETERMINATE) -quadric_surf = getattr(IfcBSplineSurfaceForm, 'QUADRIC_SURF', INDETERMINATE) -surf_of_linear_extrusion = getattr(IfcBSplineSurfaceForm, 'SURF_OF_LINEAR_EXTRUSION', INDETERMINATE) -unspecified = getattr(IfcBSplineSurfaceForm, 'UNSPECIFIED', INDETERMINATE) +plane_surf = IfcBSplineSurfaceForm.PLANE_SURF +cylindrical_surf = IfcBSplineSurfaceForm.CYLINDRICAL_SURF +conical_surf = IfcBSplineSurfaceForm.CONICAL_SURF +spherical_surf = IfcBSplineSurfaceForm.SPHERICAL_SURF +toroidal_surf = IfcBSplineSurfaceForm.TOROIDAL_SURF +surf_of_revolution = IfcBSplineSurfaceForm.SURF_OF_REVOLUTION +ruled_surf = IfcBSplineSurfaceForm.RULED_SURF +generalised_cone = IfcBSplineSurfaceForm.GENERALISED_CONE +quadric_surf = IfcBSplineSurfaceForm.QUADRIC_SURF +surf_of_linear_extrusion = IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION +unspecified = IfcBSplineSurfaceForm.UNSPECIFIED IfcBeamTypeEnum = enum_namespace() -beam = getattr(IfcBeamTypeEnum, 'BEAM', INDETERMINATE) -joist = getattr(IfcBeamTypeEnum, 'JOIST', INDETERMINATE) -hollowcore = getattr(IfcBeamTypeEnum, 'HOLLOWCORE', INDETERMINATE) -lintel = getattr(IfcBeamTypeEnum, 'LINTEL', INDETERMINATE) -spandrel = getattr(IfcBeamTypeEnum, 'SPANDREL', INDETERMINATE) -t_beam = getattr(IfcBeamTypeEnum, 'T_BEAM', INDETERMINATE) -girder_segment = getattr(IfcBeamTypeEnum, 'GIRDER_SEGMENT', INDETERMINATE) -diaphragm = getattr(IfcBeamTypeEnum, 'DIAPHRAGM', INDETERMINATE) -piercap = getattr(IfcBeamTypeEnum, 'PIERCAP', INDETERMINATE) -hatstone = getattr(IfcBeamTypeEnum, 'HATSTONE', INDETERMINATE) -cornice = getattr(IfcBeamTypeEnum, 'CORNICE', INDETERMINATE) -edgebeam = getattr(IfcBeamTypeEnum, 'EDGEBEAM', INDETERMINATE) -userdefined = getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +beam = IfcBeamTypeEnum.BEAM +joist = IfcBeamTypeEnum.JOIST +hollowcore = IfcBeamTypeEnum.HOLLOWCORE +lintel = IfcBeamTypeEnum.LINTEL +spandrel = IfcBeamTypeEnum.SPANDREL +t_beam = IfcBeamTypeEnum.T_BEAM +girder_segment = IfcBeamTypeEnum.GIRDER_SEGMENT +diaphragm = IfcBeamTypeEnum.DIAPHRAGM +piercap = IfcBeamTypeEnum.PIERCAP +hatstone = IfcBeamTypeEnum.HATSTONE +cornice = IfcBeamTypeEnum.CORNICE +edgebeam = IfcBeamTypeEnum.EDGEBEAM +userdefined = IfcBeamTypeEnum.USERDEFINED +notdefined = IfcBeamTypeEnum.NOTDEFINED IfcBearingTypeDisplacementEnum = enum_namespace() -fixed_movement = getattr(IfcBearingTypeDisplacementEnum, 'FIXED_MOVEMENT', INDETERMINATE) -guided_longitudinal = getattr(IfcBearingTypeDisplacementEnum, 'GUIDED_LONGITUDINAL', INDETERMINATE) -guided_transversal = getattr(IfcBearingTypeDisplacementEnum, 'GUIDED_TRANSVERSAL', INDETERMINATE) -free_movement = getattr(IfcBearingTypeDisplacementEnum, 'FREE_MOVEMENT', INDETERMINATE) -notdefined = getattr(IfcBearingTypeDisplacementEnum, 'NOTDEFINED', INDETERMINATE) +fixed_movement = IfcBearingTypeDisplacementEnum.FIXED_MOVEMENT +guided_longitudinal = IfcBearingTypeDisplacementEnum.GUIDED_LONGITUDINAL +guided_transversal = IfcBearingTypeDisplacementEnum.GUIDED_TRANSVERSAL +free_movement = IfcBearingTypeDisplacementEnum.FREE_MOVEMENT +notdefined = IfcBearingTypeDisplacementEnum.NOTDEFINED IfcBearingTypeEnum = enum_namespace() -cylindrical = getattr(IfcBearingTypeEnum, 'CYLINDRICAL', INDETERMINATE) -spherical = getattr(IfcBearingTypeEnum, 'SPHERICAL', INDETERMINATE) -elastomeric = getattr(IfcBearingTypeEnum, 'ELASTOMERIC', INDETERMINATE) -pot = getattr(IfcBearingTypeEnum, 'POT', INDETERMINATE) -guide = getattr(IfcBearingTypeEnum, 'GUIDE', INDETERMINATE) -rocker = getattr(IfcBearingTypeEnum, 'ROCKER', INDETERMINATE) -roller = getattr(IfcBearingTypeEnum, 'ROLLER', INDETERMINATE) -disk = getattr(IfcBearingTypeEnum, 'DISK', INDETERMINATE) -userdefined = getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBearingTypeEnum, 'NOTDEFINED', INDETERMINATE) +cylindrical = IfcBearingTypeEnum.CYLINDRICAL +spherical = IfcBearingTypeEnum.SPHERICAL +elastomeric = IfcBearingTypeEnum.ELASTOMERIC +pot = IfcBearingTypeEnum.POT +guide = IfcBearingTypeEnum.GUIDE +rocker = IfcBearingTypeEnum.ROCKER +roller = IfcBearingTypeEnum.ROLLER +disk = IfcBearingTypeEnum.DISK +userdefined = IfcBearingTypeEnum.USERDEFINED +notdefined = IfcBearingTypeEnum.NOTDEFINED IfcBenchmarkEnum = enum_namespace() -greaterthan = getattr(IfcBenchmarkEnum, 'GREATERTHAN', INDETERMINATE) -greaterthanorequalto = getattr(IfcBenchmarkEnum, 'GREATERTHANOREQUALTO', INDETERMINATE) -lessthan = getattr(IfcBenchmarkEnum, 'LESSTHAN', INDETERMINATE) -lessthanorequalto = getattr(IfcBenchmarkEnum, 'LESSTHANOREQUALTO', INDETERMINATE) -equalto = getattr(IfcBenchmarkEnum, 'EQUALTO', INDETERMINATE) -notequalto = getattr(IfcBenchmarkEnum, 'NOTEQUALTO', INDETERMINATE) -includes = getattr(IfcBenchmarkEnum, 'INCLUDES', INDETERMINATE) -notincludes = getattr(IfcBenchmarkEnum, 'NOTINCLUDES', INDETERMINATE) -includedin = getattr(IfcBenchmarkEnum, 'INCLUDEDIN', INDETERMINATE) -notincludedin = getattr(IfcBenchmarkEnum, 'NOTINCLUDEDIN', INDETERMINATE) +greaterthan = IfcBenchmarkEnum.GREATERTHAN +greaterthanorequalto = IfcBenchmarkEnum.GREATERTHANOREQUALTO +lessthan = IfcBenchmarkEnum.LESSTHAN +lessthanorequalto = IfcBenchmarkEnum.LESSTHANOREQUALTO +equalto = IfcBenchmarkEnum.EQUALTO +notequalto = IfcBenchmarkEnum.NOTEQUALTO +includes = IfcBenchmarkEnum.INCLUDES +notincludes = IfcBenchmarkEnum.NOTINCLUDES +includedin = IfcBenchmarkEnum.INCLUDEDIN +notincludedin = IfcBenchmarkEnum.NOTINCLUDEDIN IfcBoilerTypeEnum = enum_namespace() -water = getattr(IfcBoilerTypeEnum, 'WATER', INDETERMINATE) -steam = getattr(IfcBoilerTypeEnum, 'STEAM', INDETERMINATE) -userdefined = getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBoilerTypeEnum, 'NOTDEFINED', INDETERMINATE) +water = IfcBoilerTypeEnum.WATER +steam = IfcBoilerTypeEnum.STEAM +userdefined = IfcBoilerTypeEnum.USERDEFINED +notdefined = IfcBoilerTypeEnum.NOTDEFINED IfcBooleanOperator = enum_namespace() -union = getattr(IfcBooleanOperator, 'UNION', INDETERMINATE) -intersection = getattr(IfcBooleanOperator, 'INTERSECTION', INDETERMINATE) -difference = getattr(IfcBooleanOperator, 'DIFFERENCE', INDETERMINATE) +union = IfcBooleanOperator.UNION +intersection = IfcBooleanOperator.INTERSECTION +difference = IfcBooleanOperator.DIFFERENCE IfcBridgePartTypeEnum = enum_namespace() -abutment = getattr(IfcBridgePartTypeEnum, 'ABUTMENT', INDETERMINATE) -deck = getattr(IfcBridgePartTypeEnum, 'DECK', INDETERMINATE) -deck_segment = getattr(IfcBridgePartTypeEnum, 'DECK_SEGMENT', INDETERMINATE) -foundation = getattr(IfcBridgePartTypeEnum, 'FOUNDATION', INDETERMINATE) -pier = getattr(IfcBridgePartTypeEnum, 'PIER', INDETERMINATE) -pier_segment = getattr(IfcBridgePartTypeEnum, 'PIER_SEGMENT', INDETERMINATE) -pylon = getattr(IfcBridgePartTypeEnum, 'PYLON', INDETERMINATE) -substructure = getattr(IfcBridgePartTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -superstructure = getattr(IfcBridgePartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -surfacestructure = getattr(IfcBridgePartTypeEnum, 'SURFACESTRUCTURE', INDETERMINATE) -userdefined = getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBridgePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +abutment = IfcBridgePartTypeEnum.ABUTMENT +deck = IfcBridgePartTypeEnum.DECK +deck_segment = IfcBridgePartTypeEnum.DECK_SEGMENT +foundation = IfcBridgePartTypeEnum.FOUNDATION +pier = IfcBridgePartTypeEnum.PIER +pier_segment = IfcBridgePartTypeEnum.PIER_SEGMENT +pylon = IfcBridgePartTypeEnum.PYLON +substructure = IfcBridgePartTypeEnum.SUBSTRUCTURE +superstructure = IfcBridgePartTypeEnum.SUPERSTRUCTURE +surfacestructure = IfcBridgePartTypeEnum.SURFACESTRUCTURE +userdefined = IfcBridgePartTypeEnum.USERDEFINED +notdefined = IfcBridgePartTypeEnum.NOTDEFINED IfcBridgeTypeEnum = enum_namespace() -arched = getattr(IfcBridgeTypeEnum, 'ARCHED', INDETERMINATE) -cable_stayed = getattr(IfcBridgeTypeEnum, 'CABLE_STAYED', INDETERMINATE) -cantilever = getattr(IfcBridgeTypeEnum, 'CANTILEVER', INDETERMINATE) -culvert = getattr(IfcBridgeTypeEnum, 'CULVERT', INDETERMINATE) -framework = getattr(IfcBridgeTypeEnum, 'FRAMEWORK', INDETERMINATE) -girder = getattr(IfcBridgeTypeEnum, 'GIRDER', INDETERMINATE) -suspension = getattr(IfcBridgeTypeEnum, 'SUSPENSION', INDETERMINATE) -truss = getattr(IfcBridgeTypeEnum, 'TRUSS', INDETERMINATE) -userdefined = getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBridgeTypeEnum, 'NOTDEFINED', INDETERMINATE) +arched = IfcBridgeTypeEnum.ARCHED +cable_stayed = IfcBridgeTypeEnum.CABLE_STAYED +cantilever = IfcBridgeTypeEnum.CANTILEVER +culvert = IfcBridgeTypeEnum.CULVERT +framework = IfcBridgeTypeEnum.FRAMEWORK +girder = IfcBridgeTypeEnum.GIRDER +suspension = IfcBridgeTypeEnum.SUSPENSION +truss = IfcBridgeTypeEnum.TRUSS +userdefined = IfcBridgeTypeEnum.USERDEFINED +notdefined = IfcBridgeTypeEnum.NOTDEFINED IfcBuildingElementPartTypeEnum = enum_namespace() -insulation = getattr(IfcBuildingElementPartTypeEnum, 'INSULATION', INDETERMINATE) -precastpanel = getattr(IfcBuildingElementPartTypeEnum, 'PRECASTPANEL', INDETERMINATE) -apron = getattr(IfcBuildingElementPartTypeEnum, 'APRON', INDETERMINATE) -armourunit = getattr(IfcBuildingElementPartTypeEnum, 'ARMOURUNIT', INDETERMINATE) -safetycage = getattr(IfcBuildingElementPartTypeEnum, 'SAFETYCAGE', INDETERMINATE) -userdefined = getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingElementPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +insulation = IfcBuildingElementPartTypeEnum.INSULATION +precastpanel = IfcBuildingElementPartTypeEnum.PRECASTPANEL +apron = IfcBuildingElementPartTypeEnum.APRON +armourunit = IfcBuildingElementPartTypeEnum.ARMOURUNIT +safetycage = IfcBuildingElementPartTypeEnum.SAFETYCAGE +userdefined = IfcBuildingElementPartTypeEnum.USERDEFINED +notdefined = IfcBuildingElementPartTypeEnum.NOTDEFINED IfcBuildingElementProxyTypeEnum = enum_namespace() -complex = getattr(IfcBuildingElementProxyTypeEnum, 'COMPLEX', INDETERMINATE) -element = getattr(IfcBuildingElementProxyTypeEnum, 'ELEMENT', INDETERMINATE) -partial = getattr(IfcBuildingElementProxyTypeEnum, 'PARTIAL', INDETERMINATE) -provisionforvoid = getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORVOID', INDETERMINATE) -provisionforspace = getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORSPACE', INDETERMINATE) -userdefined = getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingElementProxyTypeEnum, 'NOTDEFINED', INDETERMINATE) +complex = IfcBuildingElementProxyTypeEnum.COMPLEX +element = IfcBuildingElementProxyTypeEnum.ELEMENT +partial = IfcBuildingElementProxyTypeEnum.PARTIAL +provisionforvoid = IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID +provisionforspace = IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE +userdefined = IfcBuildingElementProxyTypeEnum.USERDEFINED +notdefined = IfcBuildingElementProxyTypeEnum.NOTDEFINED IfcBuildingSystemTypeEnum = enum_namespace() -fenestration = getattr(IfcBuildingSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = getattr(IfcBuildingSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = getattr(IfcBuildingSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -outershell = getattr(IfcBuildingSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -shading = getattr(IfcBuildingSystemTypeEnum, 'SHADING', INDETERMINATE) -transport = getattr(IfcBuildingSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -reinforcing = getattr(IfcBuildingSystemTypeEnum, 'REINFORCING', INDETERMINATE) -prestressing = getattr(IfcBuildingSystemTypeEnum, 'PRESTRESSING', INDETERMINATE) -erosionprevention = getattr(IfcBuildingSystemTypeEnum, 'EROSIONPREVENTION', INDETERMINATE) -userdefined = getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +fenestration = IfcBuildingSystemTypeEnum.FENESTRATION +foundation = IfcBuildingSystemTypeEnum.FOUNDATION +loadbearing = IfcBuildingSystemTypeEnum.LOADBEARING +outershell = IfcBuildingSystemTypeEnum.OUTERSHELL +shading = IfcBuildingSystemTypeEnum.SHADING +transport = IfcBuildingSystemTypeEnum.TRANSPORT +reinforcing = IfcBuildingSystemTypeEnum.REINFORCING +prestressing = IfcBuildingSystemTypeEnum.PRESTRESSING +erosionprevention = IfcBuildingSystemTypeEnum.EROSIONPREVENTION +userdefined = IfcBuildingSystemTypeEnum.USERDEFINED +notdefined = IfcBuildingSystemTypeEnum.NOTDEFINED IfcBuiltSystemTypeEnum = enum_namespace() -reinforcing = getattr(IfcBuiltSystemTypeEnum, 'REINFORCING', INDETERMINATE) -mooring = getattr(IfcBuiltSystemTypeEnum, 'MOORING', INDETERMINATE) -outershell = getattr(IfcBuiltSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -trackcircuit = getattr(IfcBuiltSystemTypeEnum, 'TRACKCIRCUIT', INDETERMINATE) -erosionprevention = getattr(IfcBuiltSystemTypeEnum, 'EROSIONPREVENTION', INDETERMINATE) -foundation = getattr(IfcBuiltSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = getattr(IfcBuiltSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -shading = getattr(IfcBuiltSystemTypeEnum, 'SHADING', INDETERMINATE) -fenestration = getattr(IfcBuiltSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -transport = getattr(IfcBuiltSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -prestressing = getattr(IfcBuiltSystemTypeEnum, 'PRESTRESSING', INDETERMINATE) -userdefined = getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuiltSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +reinforcing = IfcBuiltSystemTypeEnum.REINFORCING +mooring = IfcBuiltSystemTypeEnum.MOORING +outershell = IfcBuiltSystemTypeEnum.OUTERSHELL +trackcircuit = IfcBuiltSystemTypeEnum.TRACKCIRCUIT +erosionprevention = IfcBuiltSystemTypeEnum.EROSIONPREVENTION +foundation = IfcBuiltSystemTypeEnum.FOUNDATION +loadbearing = IfcBuiltSystemTypeEnum.LOADBEARING +shading = IfcBuiltSystemTypeEnum.SHADING +fenestration = IfcBuiltSystemTypeEnum.FENESTRATION +transport = IfcBuiltSystemTypeEnum.TRANSPORT +prestressing = IfcBuiltSystemTypeEnum.PRESTRESSING +userdefined = IfcBuiltSystemTypeEnum.USERDEFINED +notdefined = IfcBuiltSystemTypeEnum.NOTDEFINED IfcBurnerTypeEnum = enum_namespace() -userdefined = getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBurnerTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcBurnerTypeEnum.USERDEFINED +notdefined = IfcBurnerTypeEnum.NOTDEFINED IfcCableCarrierFittingTypeEnum = enum_namespace() -bend = getattr(IfcCableCarrierFittingTypeEnum, 'BEND', INDETERMINATE) -cross = getattr(IfcCableCarrierFittingTypeEnum, 'CROSS', INDETERMINATE) -reducer = getattr(IfcCableCarrierFittingTypeEnum, 'REDUCER', INDETERMINATE) -tee = getattr(IfcCableCarrierFittingTypeEnum, 'TEE', INDETERMINATE) -userdefined = getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableCarrierFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcCableCarrierFittingTypeEnum.BEND +cross = IfcCableCarrierFittingTypeEnum.CROSS +reducer = IfcCableCarrierFittingTypeEnum.REDUCER +tee = IfcCableCarrierFittingTypeEnum.TEE +userdefined = IfcCableCarrierFittingTypeEnum.USERDEFINED +notdefined = IfcCableCarrierFittingTypeEnum.NOTDEFINED IfcCableCarrierSegmentTypeEnum = enum_namespace() -cableladdersegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLELADDERSEGMENT', INDETERMINATE) -cabletraysegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRAYSEGMENT', INDETERMINATE) -cabletrunkingsegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRUNKINGSEGMENT', INDETERMINATE) -conduitsegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CONDUITSEGMENT', INDETERMINATE) -cablebracket = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLEBRACKET', INDETERMINATE) -catenarywire = getattr(IfcCableCarrierSegmentTypeEnum, 'CATENARYWIRE', INDETERMINATE) -dropper = getattr(IfcCableCarrierSegmentTypeEnum, 'DROPPER', INDETERMINATE) -userdefined = getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableCarrierSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +cableladdersegment = IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT +cabletraysegment = IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT +cabletrunkingsegment = IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT +conduitsegment = IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT +cablebracket = IfcCableCarrierSegmentTypeEnum.CABLEBRACKET +catenarywire = IfcCableCarrierSegmentTypeEnum.CATENARYWIRE +dropper = IfcCableCarrierSegmentTypeEnum.DROPPER +userdefined = IfcCableCarrierSegmentTypeEnum.USERDEFINED +notdefined = IfcCableCarrierSegmentTypeEnum.NOTDEFINED IfcCableFittingTypeEnum = enum_namespace() -connector = getattr(IfcCableFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcCableFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcCableFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcCableFittingTypeEnum, 'JUNCTION', INDETERMINATE) -transition = getattr(IfcCableFittingTypeEnum, 'TRANSITION', INDETERMINATE) -fanout = getattr(IfcCableFittingTypeEnum, 'FANOUT', INDETERMINATE) -userdefined = getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +connector = IfcCableFittingTypeEnum.CONNECTOR +entry = IfcCableFittingTypeEnum.ENTRY +exit = IfcCableFittingTypeEnum.EXIT +junction = IfcCableFittingTypeEnum.JUNCTION +transition = IfcCableFittingTypeEnum.TRANSITION +fanout = IfcCableFittingTypeEnum.FANOUT +userdefined = IfcCableFittingTypeEnum.USERDEFINED +notdefined = IfcCableFittingTypeEnum.NOTDEFINED IfcCableSegmentTypeEnum = enum_namespace() -busbarsegment = getattr(IfcCableSegmentTypeEnum, 'BUSBARSEGMENT', INDETERMINATE) -cablesegment = getattr(IfcCableSegmentTypeEnum, 'CABLESEGMENT', INDETERMINATE) -conductorsegment = getattr(IfcCableSegmentTypeEnum, 'CONDUCTORSEGMENT', INDETERMINATE) -coresegment = getattr(IfcCableSegmentTypeEnum, 'CORESEGMENT', INDETERMINATE) -contactwiresegment = getattr(IfcCableSegmentTypeEnum, 'CONTACTWIRESEGMENT', INDETERMINATE) -fibersegment = getattr(IfcCableSegmentTypeEnum, 'FIBERSEGMENT', INDETERMINATE) -fibertube = getattr(IfcCableSegmentTypeEnum, 'FIBERTUBE', INDETERMINATE) -opticalcablesegment = getattr(IfcCableSegmentTypeEnum, 'OPTICALCABLESEGMENT', INDETERMINATE) -stitchwire = getattr(IfcCableSegmentTypeEnum, 'STITCHWIRE', INDETERMINATE) -wirepairsegment = getattr(IfcCableSegmentTypeEnum, 'WIREPAIRSEGMENT', INDETERMINATE) -userdefined = getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +busbarsegment = IfcCableSegmentTypeEnum.BUSBARSEGMENT +cablesegment = IfcCableSegmentTypeEnum.CABLESEGMENT +conductorsegment = IfcCableSegmentTypeEnum.CONDUCTORSEGMENT +coresegment = IfcCableSegmentTypeEnum.CORESEGMENT +contactwiresegment = IfcCableSegmentTypeEnum.CONTACTWIRESEGMENT +fibersegment = IfcCableSegmentTypeEnum.FIBERSEGMENT +fibertube = IfcCableSegmentTypeEnum.FIBERTUBE +opticalcablesegment = IfcCableSegmentTypeEnum.OPTICALCABLESEGMENT +stitchwire = IfcCableSegmentTypeEnum.STITCHWIRE +wirepairsegment = IfcCableSegmentTypeEnum.WIREPAIRSEGMENT +userdefined = IfcCableSegmentTypeEnum.USERDEFINED +notdefined = IfcCableSegmentTypeEnum.NOTDEFINED IfcCaissonFoundationTypeEnum = enum_namespace() -well = getattr(IfcCaissonFoundationTypeEnum, 'WELL', INDETERMINATE) -caisson = getattr(IfcCaissonFoundationTypeEnum, 'CAISSON', INDETERMINATE) -userdefined = getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCaissonFoundationTypeEnum, 'NOTDEFINED', INDETERMINATE) +well = IfcCaissonFoundationTypeEnum.WELL +caisson = IfcCaissonFoundationTypeEnum.CAISSON +userdefined = IfcCaissonFoundationTypeEnum.USERDEFINED +notdefined = IfcCaissonFoundationTypeEnum.NOTDEFINED IfcChangeActionEnum = enum_namespace() -nochange = getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE) -modified = getattr(IfcChangeActionEnum, 'MODIFIED', INDETERMINATE) -added = getattr(IfcChangeActionEnum, 'ADDED', INDETERMINATE) -deleted = getattr(IfcChangeActionEnum, 'DELETED', INDETERMINATE) -notdefined = getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) +nochange = IfcChangeActionEnum.NOCHANGE +modified = IfcChangeActionEnum.MODIFIED +added = IfcChangeActionEnum.ADDED +deleted = IfcChangeActionEnum.DELETED +notdefined = IfcChangeActionEnum.NOTDEFINED IfcChillerTypeEnum = enum_namespace() -aircooled = getattr(IfcChillerTypeEnum, 'AIRCOOLED', INDETERMINATE) -watercooled = getattr(IfcChillerTypeEnum, 'WATERCOOLED', INDETERMINATE) -heatrecovery = getattr(IfcChillerTypeEnum, 'HEATRECOVERY', INDETERMINATE) -userdefined = getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcChillerTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcChillerTypeEnum.AIRCOOLED +watercooled = IfcChillerTypeEnum.WATERCOOLED +heatrecovery = IfcChillerTypeEnum.HEATRECOVERY +userdefined = IfcChillerTypeEnum.USERDEFINED +notdefined = IfcChillerTypeEnum.NOTDEFINED IfcChimneyTypeEnum = enum_namespace() -userdefined = getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcChimneyTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcChimneyTypeEnum.USERDEFINED +notdefined = IfcChimneyTypeEnum.NOTDEFINED IfcCoilTypeEnum = enum_namespace() -dxcoolingcoil = getattr(IfcCoilTypeEnum, 'DXCOOLINGCOIL', INDETERMINATE) -electricheatingcoil = getattr(IfcCoilTypeEnum, 'ELECTRICHEATINGCOIL', INDETERMINATE) -gasheatingcoil = getattr(IfcCoilTypeEnum, 'GASHEATINGCOIL', INDETERMINATE) -hydroniccoil = getattr(IfcCoilTypeEnum, 'HYDRONICCOIL', INDETERMINATE) -steamheatingcoil = getattr(IfcCoilTypeEnum, 'STEAMHEATINGCOIL', INDETERMINATE) -watercoolingcoil = getattr(IfcCoilTypeEnum, 'WATERCOOLINGCOIL', INDETERMINATE) -waterheatingcoil = getattr(IfcCoilTypeEnum, 'WATERHEATINGCOIL', INDETERMINATE) -userdefined = getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dxcoolingcoil = IfcCoilTypeEnum.DXCOOLINGCOIL +electricheatingcoil = IfcCoilTypeEnum.ELECTRICHEATINGCOIL +gasheatingcoil = IfcCoilTypeEnum.GASHEATINGCOIL +hydroniccoil = IfcCoilTypeEnum.HYDRONICCOIL +steamheatingcoil = IfcCoilTypeEnum.STEAMHEATINGCOIL +watercoolingcoil = IfcCoilTypeEnum.WATERCOOLINGCOIL +waterheatingcoil = IfcCoilTypeEnum.WATERHEATINGCOIL +userdefined = IfcCoilTypeEnum.USERDEFINED +notdefined = IfcCoilTypeEnum.NOTDEFINED IfcColumnTypeEnum = enum_namespace() -column = getattr(IfcColumnTypeEnum, 'COLUMN', INDETERMINATE) -pilaster = getattr(IfcColumnTypeEnum, 'PILASTER', INDETERMINATE) -pierstem = getattr(IfcColumnTypeEnum, 'PIERSTEM', INDETERMINATE) -pierstem_segment = getattr(IfcColumnTypeEnum, 'PIERSTEM_SEGMENT', INDETERMINATE) -standcolumn = getattr(IfcColumnTypeEnum, 'STANDCOLUMN', INDETERMINATE) -userdefined = getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcColumnTypeEnum, 'NOTDEFINED', INDETERMINATE) +column = IfcColumnTypeEnum.COLUMN +pilaster = IfcColumnTypeEnum.PILASTER +pierstem = IfcColumnTypeEnum.PIERSTEM +pierstem_segment = IfcColumnTypeEnum.PIERSTEM_SEGMENT +standcolumn = IfcColumnTypeEnum.STANDCOLUMN +userdefined = IfcColumnTypeEnum.USERDEFINED +notdefined = IfcColumnTypeEnum.NOTDEFINED IfcCommunicationsApplianceTypeEnum = enum_namespace() -antenna = getattr(IfcCommunicationsApplianceTypeEnum, 'ANTENNA', INDETERMINATE) -computer = getattr(IfcCommunicationsApplianceTypeEnum, 'COMPUTER', INDETERMINATE) -fax = getattr(IfcCommunicationsApplianceTypeEnum, 'FAX', INDETERMINATE) -gateway = getattr(IfcCommunicationsApplianceTypeEnum, 'GATEWAY', INDETERMINATE) -modem = getattr(IfcCommunicationsApplianceTypeEnum, 'MODEM', INDETERMINATE) -networkappliance = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKAPPLIANCE', INDETERMINATE) -networkbridge = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKBRIDGE', INDETERMINATE) -networkhub = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKHUB', INDETERMINATE) -printer = getattr(IfcCommunicationsApplianceTypeEnum, 'PRINTER', INDETERMINATE) -repeater = getattr(IfcCommunicationsApplianceTypeEnum, 'REPEATER', INDETERMINATE) -router = getattr(IfcCommunicationsApplianceTypeEnum, 'ROUTER', INDETERMINATE) -scanner = getattr(IfcCommunicationsApplianceTypeEnum, 'SCANNER', INDETERMINATE) -automaton = getattr(IfcCommunicationsApplianceTypeEnum, 'AUTOMATON', INDETERMINATE) -intelligentperipheral = getattr(IfcCommunicationsApplianceTypeEnum, 'INTELLIGENTPERIPHERAL', INDETERMINATE) -ipnetworkequipment = getattr(IfcCommunicationsApplianceTypeEnum, 'IPNETWORKEQUIPMENT', INDETERMINATE) -opticalnetworkunit = getattr(IfcCommunicationsApplianceTypeEnum, 'OPTICALNETWORKUNIT', INDETERMINATE) -telecommand = getattr(IfcCommunicationsApplianceTypeEnum, 'TELECOMMAND', INDETERMINATE) -telephonyexchange = getattr(IfcCommunicationsApplianceTypeEnum, 'TELEPHONYEXCHANGE', INDETERMINATE) -transitioncomponent = getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSITIONCOMPONENT', INDETERMINATE) -transponder = getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPONDER', INDETERMINATE) -transportequipment = getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPORTEQUIPMENT', INDETERMINATE) -opticallineterminal = getattr(IfcCommunicationsApplianceTypeEnum, 'OPTICALLINETERMINAL', INDETERMINATE) -linesideelectronicunit = getattr(IfcCommunicationsApplianceTypeEnum, 'LINESIDEELECTRONICUNIT', INDETERMINATE) -radioblockcenter = getattr(IfcCommunicationsApplianceTypeEnum, 'RADIOBLOCKCENTER', INDETERMINATE) -userdefined = getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +antenna = IfcCommunicationsApplianceTypeEnum.ANTENNA +computer = IfcCommunicationsApplianceTypeEnum.COMPUTER +fax = IfcCommunicationsApplianceTypeEnum.FAX +gateway = IfcCommunicationsApplianceTypeEnum.GATEWAY +modem = IfcCommunicationsApplianceTypeEnum.MODEM +networkappliance = IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE +networkbridge = IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE +networkhub = IfcCommunicationsApplianceTypeEnum.NETWORKHUB +printer = IfcCommunicationsApplianceTypeEnum.PRINTER +repeater = IfcCommunicationsApplianceTypeEnum.REPEATER +router = IfcCommunicationsApplianceTypeEnum.ROUTER +scanner = IfcCommunicationsApplianceTypeEnum.SCANNER +automaton = IfcCommunicationsApplianceTypeEnum.AUTOMATON +intelligentperipheral = IfcCommunicationsApplianceTypeEnum.INTELLIGENTPERIPHERAL +ipnetworkequipment = IfcCommunicationsApplianceTypeEnum.IPNETWORKEQUIPMENT +opticalnetworkunit = IfcCommunicationsApplianceTypeEnum.OPTICALNETWORKUNIT +telecommand = IfcCommunicationsApplianceTypeEnum.TELECOMMAND +telephonyexchange = IfcCommunicationsApplianceTypeEnum.TELEPHONYEXCHANGE +transitioncomponent = IfcCommunicationsApplianceTypeEnum.TRANSITIONCOMPONENT +transponder = IfcCommunicationsApplianceTypeEnum.TRANSPONDER +transportequipment = IfcCommunicationsApplianceTypeEnum.TRANSPORTEQUIPMENT +opticallineterminal = IfcCommunicationsApplianceTypeEnum.OPTICALLINETERMINAL +linesideelectronicunit = IfcCommunicationsApplianceTypeEnum.LINESIDEELECTRONICUNIT +radioblockcenter = IfcCommunicationsApplianceTypeEnum.RADIOBLOCKCENTER +userdefined = IfcCommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcCommunicationsApplianceTypeEnum.NOTDEFINED IfcComplexPropertyTemplateTypeEnum = enum_namespace() -p_complex = getattr(IfcComplexPropertyTemplateTypeEnum, 'P_COMPLEX', INDETERMINATE) -q_complex = getattr(IfcComplexPropertyTemplateTypeEnum, 'Q_COMPLEX', INDETERMINATE) +p_complex = IfcComplexPropertyTemplateTypeEnum.P_COMPLEX +q_complex = IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX IfcCompressorTypeEnum = enum_namespace() -dynamic = getattr(IfcCompressorTypeEnum, 'DYNAMIC', INDETERMINATE) -reciprocating = getattr(IfcCompressorTypeEnum, 'RECIPROCATING', INDETERMINATE) -rotary = getattr(IfcCompressorTypeEnum, 'ROTARY', INDETERMINATE) -scroll = getattr(IfcCompressorTypeEnum, 'SCROLL', INDETERMINATE) -trochoidal = getattr(IfcCompressorTypeEnum, 'TROCHOIDAL', INDETERMINATE) -singlestage = getattr(IfcCompressorTypeEnum, 'SINGLESTAGE', INDETERMINATE) -booster = getattr(IfcCompressorTypeEnum, 'BOOSTER', INDETERMINATE) -opentype = getattr(IfcCompressorTypeEnum, 'OPENTYPE', INDETERMINATE) -hermetic = getattr(IfcCompressorTypeEnum, 'HERMETIC', INDETERMINATE) -semihermetic = getattr(IfcCompressorTypeEnum, 'SEMIHERMETIC', INDETERMINATE) -weldedshellhermetic = getattr(IfcCompressorTypeEnum, 'WELDEDSHELLHERMETIC', INDETERMINATE) -rollingpiston = getattr(IfcCompressorTypeEnum, 'ROLLINGPISTON', INDETERMINATE) -rotaryvane = getattr(IfcCompressorTypeEnum, 'ROTARYVANE', INDETERMINATE) -singlescrew = getattr(IfcCompressorTypeEnum, 'SINGLESCREW', INDETERMINATE) -twinscrew = getattr(IfcCompressorTypeEnum, 'TWINSCREW', INDETERMINATE) -userdefined = getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCompressorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dynamic = IfcCompressorTypeEnum.DYNAMIC +reciprocating = IfcCompressorTypeEnum.RECIPROCATING +rotary = IfcCompressorTypeEnum.ROTARY +scroll = IfcCompressorTypeEnum.SCROLL +trochoidal = IfcCompressorTypeEnum.TROCHOIDAL +singlestage = IfcCompressorTypeEnum.SINGLESTAGE +booster = IfcCompressorTypeEnum.BOOSTER +opentype = IfcCompressorTypeEnum.OPENTYPE +hermetic = IfcCompressorTypeEnum.HERMETIC +semihermetic = IfcCompressorTypeEnum.SEMIHERMETIC +weldedshellhermetic = IfcCompressorTypeEnum.WELDEDSHELLHERMETIC +rollingpiston = IfcCompressorTypeEnum.ROLLINGPISTON +rotaryvane = IfcCompressorTypeEnum.ROTARYVANE +singlescrew = IfcCompressorTypeEnum.SINGLESCREW +twinscrew = IfcCompressorTypeEnum.TWINSCREW +userdefined = IfcCompressorTypeEnum.USERDEFINED +notdefined = IfcCompressorTypeEnum.NOTDEFINED IfcCondenserTypeEnum = enum_namespace() -aircooled = getattr(IfcCondenserTypeEnum, 'AIRCOOLED', INDETERMINATE) -evaporativecooled = getattr(IfcCondenserTypeEnum, 'EVAPORATIVECOOLED', INDETERMINATE) -watercooled = getattr(IfcCondenserTypeEnum, 'WATERCOOLED', INDETERMINATE) -watercooledbrazedplate = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDBRAZEDPLATE', INDETERMINATE) -watercooledshellcoil = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLCOIL', INDETERMINATE) -watercooledshelltube = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLTUBE', INDETERMINATE) -watercooledtubeintube = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDTUBEINTUBE', INDETERMINATE) -userdefined = getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCondenserTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcCondenserTypeEnum.AIRCOOLED +evaporativecooled = IfcCondenserTypeEnum.EVAPORATIVECOOLED +watercooled = IfcCondenserTypeEnum.WATERCOOLED +watercooledbrazedplate = IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE +watercooledshellcoil = IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL +watercooledshelltube = IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE +watercooledtubeintube = IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE +userdefined = IfcCondenserTypeEnum.USERDEFINED +notdefined = IfcCondenserTypeEnum.NOTDEFINED IfcConnectionTypeEnum = enum_namespace() -atpath = getattr(IfcConnectionTypeEnum, 'ATPATH', INDETERMINATE) -atstart = getattr(IfcConnectionTypeEnum, 'ATSTART', INDETERMINATE) -atend = getattr(IfcConnectionTypeEnum, 'ATEND', INDETERMINATE) -notdefined = getattr(IfcConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +atpath = IfcConnectionTypeEnum.ATPATH +atstart = IfcConnectionTypeEnum.ATSTART +atend = IfcConnectionTypeEnum.ATEND +notdefined = IfcConnectionTypeEnum.NOTDEFINED IfcConstraintEnum = enum_namespace() -hard = getattr(IfcConstraintEnum, 'HARD', INDETERMINATE) -soft = getattr(IfcConstraintEnum, 'SOFT', INDETERMINATE) -advisory = getattr(IfcConstraintEnum, 'ADVISORY', INDETERMINATE) -userdefined = getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstraintEnum, 'NOTDEFINED', INDETERMINATE) +hard = IfcConstraintEnum.HARD +soft = IfcConstraintEnum.SOFT +advisory = IfcConstraintEnum.ADVISORY +userdefined = IfcConstraintEnum.USERDEFINED +notdefined = IfcConstraintEnum.NOTDEFINED IfcConstructionEquipmentResourceTypeEnum = enum_namespace() -demolishing = getattr(IfcConstructionEquipmentResourceTypeEnum, 'DEMOLISHING', INDETERMINATE) -earthmoving = getattr(IfcConstructionEquipmentResourceTypeEnum, 'EARTHMOVING', INDETERMINATE) -erecting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'ERECTING', INDETERMINATE) -heating = getattr(IfcConstructionEquipmentResourceTypeEnum, 'HEATING', INDETERMINATE) -lighting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'LIGHTING', INDETERMINATE) -paving = getattr(IfcConstructionEquipmentResourceTypeEnum, 'PAVING', INDETERMINATE) -pumping = getattr(IfcConstructionEquipmentResourceTypeEnum, 'PUMPING', INDETERMINATE) -transporting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'TRANSPORTING', INDETERMINATE) -userdefined = getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstructionEquipmentResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +demolishing = IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING +earthmoving = IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING +erecting = IfcConstructionEquipmentResourceTypeEnum.ERECTING +heating = IfcConstructionEquipmentResourceTypeEnum.HEATING +lighting = IfcConstructionEquipmentResourceTypeEnum.LIGHTING +paving = IfcConstructionEquipmentResourceTypeEnum.PAVING +pumping = IfcConstructionEquipmentResourceTypeEnum.PUMPING +transporting = IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING +userdefined = IfcConstructionEquipmentResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED IfcConstructionMaterialResourceTypeEnum = enum_namespace() -aggregates = getattr(IfcConstructionMaterialResourceTypeEnum, 'AGGREGATES', INDETERMINATE) -concrete = getattr(IfcConstructionMaterialResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = getattr(IfcConstructionMaterialResourceTypeEnum, 'DRYWALL', INDETERMINATE) -fuel = getattr(IfcConstructionMaterialResourceTypeEnum, 'FUEL', INDETERMINATE) -gypsum = getattr(IfcConstructionMaterialResourceTypeEnum, 'GYPSUM', INDETERMINATE) -masonry = getattr(IfcConstructionMaterialResourceTypeEnum, 'MASONRY', INDETERMINATE) -metal = getattr(IfcConstructionMaterialResourceTypeEnum, 'METAL', INDETERMINATE) -plastic = getattr(IfcConstructionMaterialResourceTypeEnum, 'PLASTIC', INDETERMINATE) -wood = getattr(IfcConstructionMaterialResourceTypeEnum, 'WOOD', INDETERMINATE) -notdefined = getattr(IfcConstructionMaterialResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) -userdefined = getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) +aggregates = IfcConstructionMaterialResourceTypeEnum.AGGREGATES +concrete = IfcConstructionMaterialResourceTypeEnum.CONCRETE +drywall = IfcConstructionMaterialResourceTypeEnum.DRYWALL +fuel = IfcConstructionMaterialResourceTypeEnum.FUEL +gypsum = IfcConstructionMaterialResourceTypeEnum.GYPSUM +masonry = IfcConstructionMaterialResourceTypeEnum.MASONRY +metal = IfcConstructionMaterialResourceTypeEnum.METAL +plastic = IfcConstructionMaterialResourceTypeEnum.PLASTIC +wood = IfcConstructionMaterialResourceTypeEnum.WOOD +notdefined = IfcConstructionMaterialResourceTypeEnum.NOTDEFINED +userdefined = IfcConstructionMaterialResourceTypeEnum.USERDEFINED IfcConstructionProductResourceTypeEnum = enum_namespace() -assembly = getattr(IfcConstructionProductResourceTypeEnum, 'ASSEMBLY', INDETERMINATE) -formwork = getattr(IfcConstructionProductResourceTypeEnum, 'FORMWORK', INDETERMINATE) -userdefined = getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstructionProductResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +assembly = IfcConstructionProductResourceTypeEnum.ASSEMBLY +formwork = IfcConstructionProductResourceTypeEnum.FORMWORK +userdefined = IfcConstructionProductResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionProductResourceTypeEnum.NOTDEFINED IfcControllerTypeEnum = enum_namespace() -floating = getattr(IfcControllerTypeEnum, 'FLOATING', INDETERMINATE) -programmable = getattr(IfcControllerTypeEnum, 'PROGRAMMABLE', INDETERMINATE) -proportional = getattr(IfcControllerTypeEnum, 'PROPORTIONAL', INDETERMINATE) -multiposition = getattr(IfcControllerTypeEnum, 'MULTIPOSITION', INDETERMINATE) -twoposition = getattr(IfcControllerTypeEnum, 'TWOPOSITION', INDETERMINATE) -userdefined = getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcControllerTypeEnum, 'NOTDEFINED', INDETERMINATE) +floating = IfcControllerTypeEnum.FLOATING +programmable = IfcControllerTypeEnum.PROGRAMMABLE +proportional = IfcControllerTypeEnum.PROPORTIONAL +multiposition = IfcControllerTypeEnum.MULTIPOSITION +twoposition = IfcControllerTypeEnum.TWOPOSITION +userdefined = IfcControllerTypeEnum.USERDEFINED +notdefined = IfcControllerTypeEnum.NOTDEFINED IfcConveyorSegmentTypeEnum = enum_namespace() -chuteconveyor = getattr(IfcConveyorSegmentTypeEnum, 'CHUTECONVEYOR', INDETERMINATE) -beltconveyor = getattr(IfcConveyorSegmentTypeEnum, 'BELTCONVEYOR', INDETERMINATE) -screwconveyor = getattr(IfcConveyorSegmentTypeEnum, 'SCREWCONVEYOR', INDETERMINATE) -bucketconveyor = getattr(IfcConveyorSegmentTypeEnum, 'BUCKETCONVEYOR', INDETERMINATE) -userdefined = getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConveyorSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +chuteconveyor = IfcConveyorSegmentTypeEnum.CHUTECONVEYOR +beltconveyor = IfcConveyorSegmentTypeEnum.BELTCONVEYOR +screwconveyor = IfcConveyorSegmentTypeEnum.SCREWCONVEYOR +bucketconveyor = IfcConveyorSegmentTypeEnum.BUCKETCONVEYOR +userdefined = IfcConveyorSegmentTypeEnum.USERDEFINED +notdefined = IfcConveyorSegmentTypeEnum.NOTDEFINED IfcCooledBeamTypeEnum = enum_namespace() -active = getattr(IfcCooledBeamTypeEnum, 'ACTIVE', INDETERMINATE) -passive = getattr(IfcCooledBeamTypeEnum, 'PASSIVE', INDETERMINATE) -userdefined = getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCooledBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +active = IfcCooledBeamTypeEnum.ACTIVE +passive = IfcCooledBeamTypeEnum.PASSIVE +userdefined = IfcCooledBeamTypeEnum.USERDEFINED +notdefined = IfcCooledBeamTypeEnum.NOTDEFINED IfcCoolingTowerTypeEnum = enum_namespace() -naturaldraft = getattr(IfcCoolingTowerTypeEnum, 'NATURALDRAFT', INDETERMINATE) -mechanicalinduceddraft = getattr(IfcCoolingTowerTypeEnum, 'MECHANICALINDUCEDDRAFT', INDETERMINATE) -mechanicalforceddraft = getattr(IfcCoolingTowerTypeEnum, 'MECHANICALFORCEDDRAFT', INDETERMINATE) -userdefined = getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoolingTowerTypeEnum, 'NOTDEFINED', INDETERMINATE) +naturaldraft = IfcCoolingTowerTypeEnum.NATURALDRAFT +mechanicalinduceddraft = IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT +mechanicalforceddraft = IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT +userdefined = IfcCoolingTowerTypeEnum.USERDEFINED +notdefined = IfcCoolingTowerTypeEnum.NOTDEFINED IfcCostItemTypeEnum = enum_namespace() -userdefined = getattr(IfcCostItemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCostItemTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCostItemTypeEnum.USERDEFINED +notdefined = IfcCostItemTypeEnum.NOTDEFINED IfcCostScheduleTypeEnum = enum_namespace() -budget = getattr(IfcCostScheduleTypeEnum, 'BUDGET', INDETERMINATE) -costplan = getattr(IfcCostScheduleTypeEnum, 'COSTPLAN', INDETERMINATE) -estimate = getattr(IfcCostScheduleTypeEnum, 'ESTIMATE', INDETERMINATE) -tender = getattr(IfcCostScheduleTypeEnum, 'TENDER', INDETERMINATE) -pricedbillofquantities = getattr(IfcCostScheduleTypeEnum, 'PRICEDBILLOFQUANTITIES', INDETERMINATE) -unpricedbillofquantities = getattr(IfcCostScheduleTypeEnum, 'UNPRICEDBILLOFQUANTITIES', INDETERMINATE) -scheduleofrates = getattr(IfcCostScheduleTypeEnum, 'SCHEDULEOFRATES', INDETERMINATE) -userdefined = getattr(IfcCostScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCostScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +budget = IfcCostScheduleTypeEnum.BUDGET +costplan = IfcCostScheduleTypeEnum.COSTPLAN +estimate = IfcCostScheduleTypeEnum.ESTIMATE +tender = IfcCostScheduleTypeEnum.TENDER +pricedbillofquantities = IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES +unpricedbillofquantities = IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES +scheduleofrates = IfcCostScheduleTypeEnum.SCHEDULEOFRATES +userdefined = IfcCostScheduleTypeEnum.USERDEFINED +notdefined = IfcCostScheduleTypeEnum.NOTDEFINED IfcCourseTypeEnum = enum_namespace() -armour = getattr(IfcCourseTypeEnum, 'ARMOUR', INDETERMINATE) -filter = getattr(IfcCourseTypeEnum, 'FILTER', INDETERMINATE) -ballastbed = getattr(IfcCourseTypeEnum, 'BALLASTBED', INDETERMINATE) -core = getattr(IfcCourseTypeEnum, 'CORE', INDETERMINATE) -pavement = getattr(IfcCourseTypeEnum, 'PAVEMENT', INDETERMINATE) -protection = getattr(IfcCourseTypeEnum, 'PROTECTION', INDETERMINATE) -userdefined = getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCourseTypeEnum, 'NOTDEFINED', INDETERMINATE) +armour = IfcCourseTypeEnum.ARMOUR +filter = IfcCourseTypeEnum.FILTER +ballastbed = IfcCourseTypeEnum.BALLASTBED +core = IfcCourseTypeEnum.CORE +pavement = IfcCourseTypeEnum.PAVEMENT +protection = IfcCourseTypeEnum.PROTECTION +userdefined = IfcCourseTypeEnum.USERDEFINED +notdefined = IfcCourseTypeEnum.NOTDEFINED IfcCoveringTypeEnum = enum_namespace() -ceiling = getattr(IfcCoveringTypeEnum, 'CEILING', INDETERMINATE) -flooring = getattr(IfcCoveringTypeEnum, 'FLOORING', INDETERMINATE) -cladding = getattr(IfcCoveringTypeEnum, 'CLADDING', INDETERMINATE) -roofing = getattr(IfcCoveringTypeEnum, 'ROOFING', INDETERMINATE) -molding = getattr(IfcCoveringTypeEnum, 'MOLDING', INDETERMINATE) -skirtingboard = getattr(IfcCoveringTypeEnum, 'SKIRTINGBOARD', INDETERMINATE) -insulation = getattr(IfcCoveringTypeEnum, 'INSULATION', INDETERMINATE) -membrane = getattr(IfcCoveringTypeEnum, 'MEMBRANE', INDETERMINATE) -sleeving = getattr(IfcCoveringTypeEnum, 'SLEEVING', INDETERMINATE) -wrapping = getattr(IfcCoveringTypeEnum, 'WRAPPING', INDETERMINATE) -coping = getattr(IfcCoveringTypeEnum, 'COPING', INDETERMINATE) -userdefined = getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoveringTypeEnum, 'NOTDEFINED', INDETERMINATE) +ceiling = IfcCoveringTypeEnum.CEILING +flooring = IfcCoveringTypeEnum.FLOORING +cladding = IfcCoveringTypeEnum.CLADDING +roofing = IfcCoveringTypeEnum.ROOFING +molding = IfcCoveringTypeEnum.MOLDING +skirtingboard = IfcCoveringTypeEnum.SKIRTINGBOARD +insulation = IfcCoveringTypeEnum.INSULATION +membrane = IfcCoveringTypeEnum.MEMBRANE +sleeving = IfcCoveringTypeEnum.SLEEVING +wrapping = IfcCoveringTypeEnum.WRAPPING +coping = IfcCoveringTypeEnum.COPING +userdefined = IfcCoveringTypeEnum.USERDEFINED +notdefined = IfcCoveringTypeEnum.NOTDEFINED IfcCrewResourceTypeEnum = enum_namespace() -office = getattr(IfcCrewResourceTypeEnum, 'OFFICE', INDETERMINATE) -site = getattr(IfcCrewResourceTypeEnum, 'SITE', INDETERMINATE) -userdefined = getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCrewResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +office = IfcCrewResourceTypeEnum.OFFICE +site = IfcCrewResourceTypeEnum.SITE +userdefined = IfcCrewResourceTypeEnum.USERDEFINED +notdefined = IfcCrewResourceTypeEnum.NOTDEFINED IfcCurtainWallTypeEnum = enum_namespace() -userdefined = getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCurtainWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCurtainWallTypeEnum.USERDEFINED +notdefined = IfcCurtainWallTypeEnum.NOTDEFINED IfcCurveInterpolationEnum = enum_namespace() -linear = getattr(IfcCurveInterpolationEnum, 'LINEAR', INDETERMINATE) -log_linear = getattr(IfcCurveInterpolationEnum, 'LOG_LINEAR', INDETERMINATE) -log_log = getattr(IfcCurveInterpolationEnum, 'LOG_LOG', INDETERMINATE) -notdefined = getattr(IfcCurveInterpolationEnum, 'NOTDEFINED', INDETERMINATE) +linear = IfcCurveInterpolationEnum.LINEAR +log_linear = IfcCurveInterpolationEnum.LOG_LINEAR +log_log = IfcCurveInterpolationEnum.LOG_LOG +notdefined = IfcCurveInterpolationEnum.NOTDEFINED IfcDamperTypeEnum = enum_namespace() -backdraftdamper = getattr(IfcDamperTypeEnum, 'BACKDRAFTDAMPER', INDETERMINATE) -balancingdamper = getattr(IfcDamperTypeEnum, 'BALANCINGDAMPER', INDETERMINATE) -blastdamper = getattr(IfcDamperTypeEnum, 'BLASTDAMPER', INDETERMINATE) -controldamper = getattr(IfcDamperTypeEnum, 'CONTROLDAMPER', INDETERMINATE) -firedamper = getattr(IfcDamperTypeEnum, 'FIREDAMPER', INDETERMINATE) -firesmokedamper = getattr(IfcDamperTypeEnum, 'FIRESMOKEDAMPER', INDETERMINATE) -fumehoodexhaust = getattr(IfcDamperTypeEnum, 'FUMEHOODEXHAUST', INDETERMINATE) -gravitydamper = getattr(IfcDamperTypeEnum, 'GRAVITYDAMPER', INDETERMINATE) -gravityreliefdamper = getattr(IfcDamperTypeEnum, 'GRAVITYRELIEFDAMPER', INDETERMINATE) -reliefdamper = getattr(IfcDamperTypeEnum, 'RELIEFDAMPER', INDETERMINATE) -smokedamper = getattr(IfcDamperTypeEnum, 'SMOKEDAMPER', INDETERMINATE) -userdefined = getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +backdraftdamper = IfcDamperTypeEnum.BACKDRAFTDAMPER +balancingdamper = IfcDamperTypeEnum.BALANCINGDAMPER +blastdamper = IfcDamperTypeEnum.BLASTDAMPER +controldamper = IfcDamperTypeEnum.CONTROLDAMPER +firedamper = IfcDamperTypeEnum.FIREDAMPER +firesmokedamper = IfcDamperTypeEnum.FIRESMOKEDAMPER +fumehoodexhaust = IfcDamperTypeEnum.FUMEHOODEXHAUST +gravitydamper = IfcDamperTypeEnum.GRAVITYDAMPER +gravityreliefdamper = IfcDamperTypeEnum.GRAVITYRELIEFDAMPER +reliefdamper = IfcDamperTypeEnum.RELIEFDAMPER +smokedamper = IfcDamperTypeEnum.SMOKEDAMPER +userdefined = IfcDamperTypeEnum.USERDEFINED +notdefined = IfcDamperTypeEnum.NOTDEFINED IfcDataOriginEnum = enum_namespace() -measured = getattr(IfcDataOriginEnum, 'MEASURED', INDETERMINATE) -predicted = getattr(IfcDataOriginEnum, 'PREDICTED', INDETERMINATE) -simulated = getattr(IfcDataOriginEnum, 'SIMULATED', INDETERMINATE) -userdefined = getattr(IfcDataOriginEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDataOriginEnum, 'NOTDEFINED', INDETERMINATE) +measured = IfcDataOriginEnum.MEASURED +predicted = IfcDataOriginEnum.PREDICTED +simulated = IfcDataOriginEnum.SIMULATED +userdefined = IfcDataOriginEnum.USERDEFINED +notdefined = IfcDataOriginEnum.NOTDEFINED IfcDerivedUnitEnum = enum_namespace() -angularvelocityunit = getattr(IfcDerivedUnitEnum, 'ANGULARVELOCITYUNIT', INDETERMINATE) -areadensityunit = getattr(IfcDerivedUnitEnum, 'AREADENSITYUNIT', INDETERMINATE) -compoundplaneangleunit = getattr(IfcDerivedUnitEnum, 'COMPOUNDPLANEANGLEUNIT', INDETERMINATE) -dynamicviscosityunit = getattr(IfcDerivedUnitEnum, 'DYNAMICVISCOSITYUNIT', INDETERMINATE) -heatfluxdensityunit = getattr(IfcDerivedUnitEnum, 'HEATFLUXDENSITYUNIT', INDETERMINATE) -integercountrateunit = getattr(IfcDerivedUnitEnum, 'INTEGERCOUNTRATEUNIT', INDETERMINATE) -isothermalmoisturecapacityunit = getattr(IfcDerivedUnitEnum, 'ISOTHERMALMOISTURECAPACITYUNIT', INDETERMINATE) -kinematicviscosityunit = getattr(IfcDerivedUnitEnum, 'KINEMATICVISCOSITYUNIT', INDETERMINATE) -linearvelocityunit = getattr(IfcDerivedUnitEnum, 'LINEARVELOCITYUNIT', INDETERMINATE) -massdensityunit = getattr(IfcDerivedUnitEnum, 'MASSDENSITYUNIT', INDETERMINATE) -massflowrateunit = getattr(IfcDerivedUnitEnum, 'MASSFLOWRATEUNIT', INDETERMINATE) -moisturediffusivityunit = getattr(IfcDerivedUnitEnum, 'MOISTUREDIFFUSIVITYUNIT', INDETERMINATE) -molecularweightunit = getattr(IfcDerivedUnitEnum, 'MOLECULARWEIGHTUNIT', INDETERMINATE) -specificheatcapacityunit = getattr(IfcDerivedUnitEnum, 'SPECIFICHEATCAPACITYUNIT', INDETERMINATE) -thermaladmittanceunit = getattr(IfcDerivedUnitEnum, 'THERMALADMITTANCEUNIT', INDETERMINATE) -thermalconductanceunit = getattr(IfcDerivedUnitEnum, 'THERMALCONDUCTANCEUNIT', INDETERMINATE) -thermalresistanceunit = getattr(IfcDerivedUnitEnum, 'THERMALRESISTANCEUNIT', INDETERMINATE) -thermaltransmittanceunit = getattr(IfcDerivedUnitEnum, 'THERMALTRANSMITTANCEUNIT', INDETERMINATE) -vaporpermeabilityunit = getattr(IfcDerivedUnitEnum, 'VAPORPERMEABILITYUNIT', INDETERMINATE) -volumetricflowrateunit = getattr(IfcDerivedUnitEnum, 'VOLUMETRICFLOWRATEUNIT', INDETERMINATE) -rotationalfrequencyunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALFREQUENCYUNIT', INDETERMINATE) -torqueunit = getattr(IfcDerivedUnitEnum, 'TORQUEUNIT', INDETERMINATE) -momentofinertiaunit = getattr(IfcDerivedUnitEnum, 'MOMENTOFINERTIAUNIT', INDETERMINATE) -linearmomentunit = getattr(IfcDerivedUnitEnum, 'LINEARMOMENTUNIT', INDETERMINATE) -linearforceunit = getattr(IfcDerivedUnitEnum, 'LINEARFORCEUNIT', INDETERMINATE) -planarforceunit = getattr(IfcDerivedUnitEnum, 'PLANARFORCEUNIT', INDETERMINATE) -modulusofelasticityunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFELASTICITYUNIT', INDETERMINATE) -shearmodulusunit = getattr(IfcDerivedUnitEnum, 'SHEARMODULUSUNIT', INDETERMINATE) -linearstiffnessunit = getattr(IfcDerivedUnitEnum, 'LINEARSTIFFNESSUNIT', INDETERMINATE) -rotationalstiffnessunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALSTIFFNESSUNIT', INDETERMINATE) -modulusofsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFSUBGRADEREACTIONUNIT', INDETERMINATE) -accelerationunit = getattr(IfcDerivedUnitEnum, 'ACCELERATIONUNIT', INDETERMINATE) -curvatureunit = getattr(IfcDerivedUnitEnum, 'CURVATUREUNIT', INDETERMINATE) -heatingvalueunit = getattr(IfcDerivedUnitEnum, 'HEATINGVALUEUNIT', INDETERMINATE) -ionconcentrationunit = getattr(IfcDerivedUnitEnum, 'IONCONCENTRATIONUNIT', INDETERMINATE) -luminousintensitydistributionunit = getattr(IfcDerivedUnitEnum, 'LUMINOUSINTENSITYDISTRIBUTIONUNIT', INDETERMINATE) -massperlengthunit = getattr(IfcDerivedUnitEnum, 'MASSPERLENGTHUNIT', INDETERMINATE) -modulusoflinearsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFLINEARSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofrotationalsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFROTATIONALSUBGRADEREACTIONUNIT', INDETERMINATE) -phunit = getattr(IfcDerivedUnitEnum, 'PHUNIT', INDETERMINATE) -rotationalmassunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALMASSUNIT', INDETERMINATE) -sectionareaintegralunit = getattr(IfcDerivedUnitEnum, 'SECTIONAREAINTEGRALUNIT', INDETERMINATE) -sectionmodulusunit = getattr(IfcDerivedUnitEnum, 'SECTIONMODULUSUNIT', INDETERMINATE) -soundpowerlevelunit = getattr(IfcDerivedUnitEnum, 'SOUNDPOWERLEVELUNIT', INDETERMINATE) -soundpowerunit = getattr(IfcDerivedUnitEnum, 'SOUNDPOWERUNIT', INDETERMINATE) -soundpressurelevelunit = getattr(IfcDerivedUnitEnum, 'SOUNDPRESSURELEVELUNIT', INDETERMINATE) -soundpressureunit = getattr(IfcDerivedUnitEnum, 'SOUNDPRESSUREUNIT', INDETERMINATE) -temperaturegradientunit = getattr(IfcDerivedUnitEnum, 'TEMPERATUREGRADIENTUNIT', INDETERMINATE) -temperaturerateofchangeunit = getattr(IfcDerivedUnitEnum, 'TEMPERATURERATEOFCHANGEUNIT', INDETERMINATE) -thermalexpansioncoefficientunit = getattr(IfcDerivedUnitEnum, 'THERMALEXPANSIONCOEFFICIENTUNIT', INDETERMINATE) -warpingconstantunit = getattr(IfcDerivedUnitEnum, 'WARPINGCONSTANTUNIT', INDETERMINATE) -warpingmomentunit = getattr(IfcDerivedUnitEnum, 'WARPINGMOMENTUNIT', INDETERMINATE) -userdefined = getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) +angularvelocityunit = IfcDerivedUnitEnum.ANGULARVELOCITYUNIT +areadensityunit = IfcDerivedUnitEnum.AREADENSITYUNIT +compoundplaneangleunit = IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT +dynamicviscosityunit = IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT +heatfluxdensityunit = IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT +integercountrateunit = IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT +isothermalmoisturecapacityunit = IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT +kinematicviscosityunit = IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT +linearvelocityunit = IfcDerivedUnitEnum.LINEARVELOCITYUNIT +massdensityunit = IfcDerivedUnitEnum.MASSDENSITYUNIT +massflowrateunit = IfcDerivedUnitEnum.MASSFLOWRATEUNIT +moisturediffusivityunit = IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT +molecularweightunit = IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT +specificheatcapacityunit = IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT +thermaladmittanceunit = IfcDerivedUnitEnum.THERMALADMITTANCEUNIT +thermalconductanceunit = IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT +thermalresistanceunit = IfcDerivedUnitEnum.THERMALRESISTANCEUNIT +thermaltransmittanceunit = IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT +vaporpermeabilityunit = IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT +volumetricflowrateunit = IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT +rotationalfrequencyunit = IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT +torqueunit = IfcDerivedUnitEnum.TORQUEUNIT +momentofinertiaunit = IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT +linearmomentunit = IfcDerivedUnitEnum.LINEARMOMENTUNIT +linearforceunit = IfcDerivedUnitEnum.LINEARFORCEUNIT +planarforceunit = IfcDerivedUnitEnum.PLANARFORCEUNIT +modulusofelasticityunit = IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT +shearmodulusunit = IfcDerivedUnitEnum.SHEARMODULUSUNIT +linearstiffnessunit = IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT +rotationalstiffnessunit = IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT +modulusofsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT +accelerationunit = IfcDerivedUnitEnum.ACCELERATIONUNIT +curvatureunit = IfcDerivedUnitEnum.CURVATUREUNIT +heatingvalueunit = IfcDerivedUnitEnum.HEATINGVALUEUNIT +ionconcentrationunit = IfcDerivedUnitEnum.IONCONCENTRATIONUNIT +luminousintensitydistributionunit = IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT +massperlengthunit = IfcDerivedUnitEnum.MASSPERLENGTHUNIT +modulusoflinearsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT +modulusofrotationalsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT +phunit = IfcDerivedUnitEnum.PHUNIT +rotationalmassunit = IfcDerivedUnitEnum.ROTATIONALMASSUNIT +sectionareaintegralunit = IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT +sectionmodulusunit = IfcDerivedUnitEnum.SECTIONMODULUSUNIT +soundpowerlevelunit = IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT +soundpowerunit = IfcDerivedUnitEnum.SOUNDPOWERUNIT +soundpressurelevelunit = IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT +soundpressureunit = IfcDerivedUnitEnum.SOUNDPRESSUREUNIT +temperaturegradientunit = IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT +temperaturerateofchangeunit = IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT +thermalexpansioncoefficientunit = IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT +warpingconstantunit = IfcDerivedUnitEnum.WARPINGCONSTANTUNIT +warpingmomentunit = IfcDerivedUnitEnum.WARPINGMOMENTUNIT +userdefined = IfcDerivedUnitEnum.USERDEFINED IfcDirectionSenseEnum = enum_namespace() -positive = getattr(IfcDirectionSenseEnum, 'POSITIVE', INDETERMINATE) -negative = getattr(IfcDirectionSenseEnum, 'NEGATIVE', INDETERMINATE) +positive = IfcDirectionSenseEnum.POSITIVE +negative = IfcDirectionSenseEnum.NEGATIVE IfcDiscreteAccessoryTypeEnum = enum_namespace() -anchorplate = getattr(IfcDiscreteAccessoryTypeEnum, 'ANCHORPLATE', INDETERMINATE) -bracket = getattr(IfcDiscreteAccessoryTypeEnum, 'BRACKET', INDETERMINATE) -shoe = getattr(IfcDiscreteAccessoryTypeEnum, 'SHOE', INDETERMINATE) -expansion_joint_device = getattr(IfcDiscreteAccessoryTypeEnum, 'EXPANSION_JOINT_DEVICE', INDETERMINATE) -cablearranger = getattr(IfcDiscreteAccessoryTypeEnum, 'CABLEARRANGER', INDETERMINATE) -insulator = getattr(IfcDiscreteAccessoryTypeEnum, 'INSULATOR', INDETERMINATE) -lock = getattr(IfcDiscreteAccessoryTypeEnum, 'LOCK', INDETERMINATE) -tensioningequipment = getattr(IfcDiscreteAccessoryTypeEnum, 'TENSIONINGEQUIPMENT', INDETERMINATE) -railpad = getattr(IfcDiscreteAccessoryTypeEnum, 'RAILPAD', INDETERMINATE) -slidingchair = getattr(IfcDiscreteAccessoryTypeEnum, 'SLIDINGCHAIR', INDETERMINATE) -rail_lubrication = getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_LUBRICATION', INDETERMINATE) -panel_strengthening = getattr(IfcDiscreteAccessoryTypeEnum, 'PANEL_STRENGTHENING', INDETERMINATE) -railbrace = getattr(IfcDiscreteAccessoryTypeEnum, 'RAILBRACE', INDETERMINATE) -elastic_cushion = getattr(IfcDiscreteAccessoryTypeEnum, 'ELASTIC_CUSHION', INDETERMINATE) -soundabsorption = getattr(IfcDiscreteAccessoryTypeEnum, 'SOUNDABSORPTION', INDETERMINATE) -pointmachinemountingdevice = getattr(IfcDiscreteAccessoryTypeEnum, 'POINTMACHINEMOUNTINGDEVICE', INDETERMINATE) -point_machine_locking_device = getattr(IfcDiscreteAccessoryTypeEnum, 'POINT_MACHINE_LOCKING_DEVICE', INDETERMINATE) -rail_mechanical_equipment = getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT', INDETERMINATE) -birdprotection = getattr(IfcDiscreteAccessoryTypeEnum, 'BIRDPROTECTION', INDETERMINATE) -userdefined = getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDiscreteAccessoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorplate = IfcDiscreteAccessoryTypeEnum.ANCHORPLATE +bracket = IfcDiscreteAccessoryTypeEnum.BRACKET +shoe = IfcDiscreteAccessoryTypeEnum.SHOE +expansion_joint_device = IfcDiscreteAccessoryTypeEnum.EXPANSION_JOINT_DEVICE +cablearranger = IfcDiscreteAccessoryTypeEnum.CABLEARRANGER +insulator = IfcDiscreteAccessoryTypeEnum.INSULATOR +lock = IfcDiscreteAccessoryTypeEnum.LOCK +tensioningequipment = IfcDiscreteAccessoryTypeEnum.TENSIONINGEQUIPMENT +railpad = IfcDiscreteAccessoryTypeEnum.RAILPAD +slidingchair = IfcDiscreteAccessoryTypeEnum.SLIDINGCHAIR +rail_lubrication = IfcDiscreteAccessoryTypeEnum.RAIL_LUBRICATION +panel_strengthening = IfcDiscreteAccessoryTypeEnum.PANEL_STRENGTHENING +railbrace = IfcDiscreteAccessoryTypeEnum.RAILBRACE +elastic_cushion = IfcDiscreteAccessoryTypeEnum.ELASTIC_CUSHION +soundabsorption = IfcDiscreteAccessoryTypeEnum.SOUNDABSORPTION +pointmachinemountingdevice = IfcDiscreteAccessoryTypeEnum.POINTMACHINEMOUNTINGDEVICE +point_machine_locking_device = IfcDiscreteAccessoryTypeEnum.POINT_MACHINE_LOCKING_DEVICE +rail_mechanical_equipment = IfcDiscreteAccessoryTypeEnum.RAIL_MECHANICAL_EQUIPMENT +birdprotection = IfcDiscreteAccessoryTypeEnum.BIRDPROTECTION +userdefined = IfcDiscreteAccessoryTypeEnum.USERDEFINED +notdefined = IfcDiscreteAccessoryTypeEnum.NOTDEFINED IfcDistributionBoardTypeEnum = enum_namespace() -switchboard = getattr(IfcDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -consumerunit = getattr(IfcDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -motorcontrolcentre = getattr(IfcDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -distributionframe = getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONFRAME', INDETERMINATE) -distributionboard = getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -dispatchingboard = getattr(IfcDistributionBoardTypeEnum, 'DISPATCHINGBOARD', INDETERMINATE) -userdefined = getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +switchboard = IfcDistributionBoardTypeEnum.SWITCHBOARD +consumerunit = IfcDistributionBoardTypeEnum.CONSUMERUNIT +motorcontrolcentre = IfcDistributionBoardTypeEnum.MOTORCONTROLCENTRE +distributionframe = IfcDistributionBoardTypeEnum.DISTRIBUTIONFRAME +distributionboard = IfcDistributionBoardTypeEnum.DISTRIBUTIONBOARD +dispatchingboard = IfcDistributionBoardTypeEnum.DISPATCHINGBOARD +userdefined = IfcDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcDistributionBoardTypeEnum.NOTDEFINED IfcDistributionChamberElementTypeEnum = enum_namespace() -formedduct = getattr(IfcDistributionChamberElementTypeEnum, 'FORMEDDUCT', INDETERMINATE) -inspectionchamber = getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONCHAMBER', INDETERMINATE) -inspectionpit = getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONPIT', INDETERMINATE) -manhole = getattr(IfcDistributionChamberElementTypeEnum, 'MANHOLE', INDETERMINATE) -meterchamber = getattr(IfcDistributionChamberElementTypeEnum, 'METERCHAMBER', INDETERMINATE) -sump = getattr(IfcDistributionChamberElementTypeEnum, 'SUMP', INDETERMINATE) -trench = getattr(IfcDistributionChamberElementTypeEnum, 'TRENCH', INDETERMINATE) -valvechamber = getattr(IfcDistributionChamberElementTypeEnum, 'VALVECHAMBER', INDETERMINATE) -userdefined = getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionChamberElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +formedduct = IfcDistributionChamberElementTypeEnum.FORMEDDUCT +inspectionchamber = IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER +inspectionpit = IfcDistributionChamberElementTypeEnum.INSPECTIONPIT +manhole = IfcDistributionChamberElementTypeEnum.MANHOLE +meterchamber = IfcDistributionChamberElementTypeEnum.METERCHAMBER +sump = IfcDistributionChamberElementTypeEnum.SUMP +trench = IfcDistributionChamberElementTypeEnum.TRENCH +valvechamber = IfcDistributionChamberElementTypeEnum.VALVECHAMBER +userdefined = IfcDistributionChamberElementTypeEnum.USERDEFINED +notdefined = IfcDistributionChamberElementTypeEnum.NOTDEFINED IfcDistributionPortTypeEnum = enum_namespace() -cable = getattr(IfcDistributionPortTypeEnum, 'CABLE', INDETERMINATE) -cablecarrier = getattr(IfcDistributionPortTypeEnum, 'CABLECARRIER', INDETERMINATE) -duct = getattr(IfcDistributionPortTypeEnum, 'DUCT', INDETERMINATE) -pipe = getattr(IfcDistributionPortTypeEnum, 'PIPE', INDETERMINATE) -wireless = getattr(IfcDistributionPortTypeEnum, 'WIRELESS', INDETERMINATE) -userdefined = getattr(IfcDistributionPortTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionPortTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcDistributionPortTypeEnum.CABLE +cablecarrier = IfcDistributionPortTypeEnum.CABLECARRIER +duct = IfcDistributionPortTypeEnum.DUCT +pipe = IfcDistributionPortTypeEnum.PIPE +wireless = IfcDistributionPortTypeEnum.WIRELESS +userdefined = IfcDistributionPortTypeEnum.USERDEFINED +notdefined = IfcDistributionPortTypeEnum.NOTDEFINED IfcDistributionSystemEnum = enum_namespace() -airconditioning = getattr(IfcDistributionSystemEnum, 'AIRCONDITIONING', INDETERMINATE) -audiovisual = getattr(IfcDistributionSystemEnum, 'AUDIOVISUAL', INDETERMINATE) -chemical = getattr(IfcDistributionSystemEnum, 'CHEMICAL', INDETERMINATE) -chilledwater = getattr(IfcDistributionSystemEnum, 'CHILLEDWATER', INDETERMINATE) -communication = getattr(IfcDistributionSystemEnum, 'COMMUNICATION', INDETERMINATE) -compressedair = getattr(IfcDistributionSystemEnum, 'COMPRESSEDAIR', INDETERMINATE) -condenserwater = getattr(IfcDistributionSystemEnum, 'CONDENSERWATER', INDETERMINATE) -control = getattr(IfcDistributionSystemEnum, 'CONTROL', INDETERMINATE) -conveying = getattr(IfcDistributionSystemEnum, 'CONVEYING', INDETERMINATE) -data = getattr(IfcDistributionSystemEnum, 'DATA', INDETERMINATE) -disposal = getattr(IfcDistributionSystemEnum, 'DISPOSAL', INDETERMINATE) -domesticcoldwater = getattr(IfcDistributionSystemEnum, 'DOMESTICCOLDWATER', INDETERMINATE) -domestichotwater = getattr(IfcDistributionSystemEnum, 'DOMESTICHOTWATER', INDETERMINATE) -drainage = getattr(IfcDistributionSystemEnum, 'DRAINAGE', INDETERMINATE) -earthing = getattr(IfcDistributionSystemEnum, 'EARTHING', INDETERMINATE) -electrical = getattr(IfcDistributionSystemEnum, 'ELECTRICAL', INDETERMINATE) -electroacoustic = getattr(IfcDistributionSystemEnum, 'ELECTROACOUSTIC', INDETERMINATE) -exhaust = getattr(IfcDistributionSystemEnum, 'EXHAUST', INDETERMINATE) -fireprotection = getattr(IfcDistributionSystemEnum, 'FIREPROTECTION', INDETERMINATE) -fuel = getattr(IfcDistributionSystemEnum, 'FUEL', INDETERMINATE) -gas = getattr(IfcDistributionSystemEnum, 'GAS', INDETERMINATE) -hazardous = getattr(IfcDistributionSystemEnum, 'HAZARDOUS', INDETERMINATE) -heating = getattr(IfcDistributionSystemEnum, 'HEATING', INDETERMINATE) -lighting = getattr(IfcDistributionSystemEnum, 'LIGHTING', INDETERMINATE) -lightningprotection = getattr(IfcDistributionSystemEnum, 'LIGHTNINGPROTECTION', INDETERMINATE) -municipalsolidwaste = getattr(IfcDistributionSystemEnum, 'MUNICIPALSOLIDWASTE', INDETERMINATE) -oil = getattr(IfcDistributionSystemEnum, 'OIL', INDETERMINATE) -operational = getattr(IfcDistributionSystemEnum, 'OPERATIONAL', INDETERMINATE) -powergeneration = getattr(IfcDistributionSystemEnum, 'POWERGENERATION', INDETERMINATE) -rainwater = getattr(IfcDistributionSystemEnum, 'RAINWATER', INDETERMINATE) -refrigeration = getattr(IfcDistributionSystemEnum, 'REFRIGERATION', INDETERMINATE) -security = getattr(IfcDistributionSystemEnum, 'SECURITY', INDETERMINATE) -sewage = getattr(IfcDistributionSystemEnum, 'SEWAGE', INDETERMINATE) -signal = getattr(IfcDistributionSystemEnum, 'SIGNAL', INDETERMINATE) -stormwater = getattr(IfcDistributionSystemEnum, 'STORMWATER', INDETERMINATE) -telephone = getattr(IfcDistributionSystemEnum, 'TELEPHONE', INDETERMINATE) -tv = getattr(IfcDistributionSystemEnum, 'TV', INDETERMINATE) -vacuum = getattr(IfcDistributionSystemEnum, 'VACUUM', INDETERMINATE) -vent = getattr(IfcDistributionSystemEnum, 'VENT', INDETERMINATE) -ventilation = getattr(IfcDistributionSystemEnum, 'VENTILATION', INDETERMINATE) -wastewater = getattr(IfcDistributionSystemEnum, 'WASTEWATER', INDETERMINATE) -watersupply = getattr(IfcDistributionSystemEnum, 'WATERSUPPLY', INDETERMINATE) -catenary_system = getattr(IfcDistributionSystemEnum, 'CATENARY_SYSTEM', INDETERMINATE) -overhead_contactline_system = getattr(IfcDistributionSystemEnum, 'OVERHEAD_CONTACTLINE_SYSTEM', INDETERMINATE) -return_circuit = getattr(IfcDistributionSystemEnum, 'RETURN_CIRCUIT', INDETERMINATE) -fixedtransmissionnetwork = getattr(IfcDistributionSystemEnum, 'FIXEDTRANSMISSIONNETWORK', INDETERMINATE) -operationaltelephonysystem = getattr(IfcDistributionSystemEnum, 'OPERATIONALTELEPHONYSYSTEM', INDETERMINATE) -mobilenetwork = getattr(IfcDistributionSystemEnum, 'MOBILENETWORK', INDETERMINATE) -monitoringsystem = getattr(IfcDistributionSystemEnum, 'MONITORINGSYSTEM', INDETERMINATE) -userdefined = getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionSystemEnum, 'NOTDEFINED', INDETERMINATE) +airconditioning = IfcDistributionSystemEnum.AIRCONDITIONING +audiovisual = IfcDistributionSystemEnum.AUDIOVISUAL +chemical = IfcDistributionSystemEnum.CHEMICAL +chilledwater = IfcDistributionSystemEnum.CHILLEDWATER +communication = IfcDistributionSystemEnum.COMMUNICATION +compressedair = IfcDistributionSystemEnum.COMPRESSEDAIR +condenserwater = IfcDistributionSystemEnum.CONDENSERWATER +control = IfcDistributionSystemEnum.CONTROL +conveying = IfcDistributionSystemEnum.CONVEYING +data = IfcDistributionSystemEnum.DATA +disposal = IfcDistributionSystemEnum.DISPOSAL +domesticcoldwater = IfcDistributionSystemEnum.DOMESTICCOLDWATER +domestichotwater = IfcDistributionSystemEnum.DOMESTICHOTWATER +drainage = IfcDistributionSystemEnum.DRAINAGE +earthing = IfcDistributionSystemEnum.EARTHING +electrical = IfcDistributionSystemEnum.ELECTRICAL +electroacoustic = IfcDistributionSystemEnum.ELECTROACOUSTIC +exhaust = IfcDistributionSystemEnum.EXHAUST +fireprotection = IfcDistributionSystemEnum.FIREPROTECTION +fuel = IfcDistributionSystemEnum.FUEL +gas = IfcDistributionSystemEnum.GAS +hazardous = IfcDistributionSystemEnum.HAZARDOUS +heating = IfcDistributionSystemEnum.HEATING +lighting = IfcDistributionSystemEnum.LIGHTING +lightningprotection = IfcDistributionSystemEnum.LIGHTNINGPROTECTION +municipalsolidwaste = IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE +oil = IfcDistributionSystemEnum.OIL +operational = IfcDistributionSystemEnum.OPERATIONAL +powergeneration = IfcDistributionSystemEnum.POWERGENERATION +rainwater = IfcDistributionSystemEnum.RAINWATER +refrigeration = IfcDistributionSystemEnum.REFRIGERATION +security = IfcDistributionSystemEnum.SECURITY +sewage = IfcDistributionSystemEnum.SEWAGE +signal = IfcDistributionSystemEnum.SIGNAL +stormwater = IfcDistributionSystemEnum.STORMWATER +telephone = IfcDistributionSystemEnum.TELEPHONE +tv = IfcDistributionSystemEnum.TV +vacuum = IfcDistributionSystemEnum.VACUUM +vent = IfcDistributionSystemEnum.VENT +ventilation = IfcDistributionSystemEnum.VENTILATION +wastewater = IfcDistributionSystemEnum.WASTEWATER +watersupply = IfcDistributionSystemEnum.WATERSUPPLY +catenary_system = IfcDistributionSystemEnum.CATENARY_SYSTEM +overhead_contactline_system = IfcDistributionSystemEnum.OVERHEAD_CONTACTLINE_SYSTEM +return_circuit = IfcDistributionSystemEnum.RETURN_CIRCUIT +fixedtransmissionnetwork = IfcDistributionSystemEnum.FIXEDTRANSMISSIONNETWORK +operationaltelephonysystem = IfcDistributionSystemEnum.OPERATIONALTELEPHONYSYSTEM +mobilenetwork = IfcDistributionSystemEnum.MOBILENETWORK +monitoringsystem = IfcDistributionSystemEnum.MONITORINGSYSTEM +userdefined = IfcDistributionSystemEnum.USERDEFINED +notdefined = IfcDistributionSystemEnum.NOTDEFINED IfcDocumentConfidentialityEnum = enum_namespace() -public = getattr(IfcDocumentConfidentialityEnum, 'PUBLIC', INDETERMINATE) -restricted = getattr(IfcDocumentConfidentialityEnum, 'RESTRICTED', INDETERMINATE) -confidential = getattr(IfcDocumentConfidentialityEnum, 'CONFIDENTIAL', INDETERMINATE) -personal = getattr(IfcDocumentConfidentialityEnum, 'PERSONAL', INDETERMINATE) -userdefined = getattr(IfcDocumentConfidentialityEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDocumentConfidentialityEnum, 'NOTDEFINED', INDETERMINATE) +public = IfcDocumentConfidentialityEnum.PUBLIC +restricted = IfcDocumentConfidentialityEnum.RESTRICTED +confidential = IfcDocumentConfidentialityEnum.CONFIDENTIAL +personal = IfcDocumentConfidentialityEnum.PERSONAL +userdefined = IfcDocumentConfidentialityEnum.USERDEFINED +notdefined = IfcDocumentConfidentialityEnum.NOTDEFINED IfcDocumentStatusEnum = enum_namespace() -draft = getattr(IfcDocumentStatusEnum, 'DRAFT', INDETERMINATE) -finaldraft = getattr(IfcDocumentStatusEnum, 'FINALDRAFT', INDETERMINATE) -final = getattr(IfcDocumentStatusEnum, 'FINAL', INDETERMINATE) -revision = getattr(IfcDocumentStatusEnum, 'REVISION', INDETERMINATE) -notdefined = getattr(IfcDocumentStatusEnum, 'NOTDEFINED', INDETERMINATE) +draft = IfcDocumentStatusEnum.DRAFT +finaldraft = IfcDocumentStatusEnum.FINALDRAFT +final = IfcDocumentStatusEnum.FINAL +revision = IfcDocumentStatusEnum.REVISION +notdefined = IfcDocumentStatusEnum.NOTDEFINED IfcDoorPanelOperationEnum = enum_namespace() -swinging = getattr(IfcDoorPanelOperationEnum, 'SWINGING', INDETERMINATE) -double_acting = getattr(IfcDoorPanelOperationEnum, 'DOUBLE_ACTING', INDETERMINATE) -sliding = getattr(IfcDoorPanelOperationEnum, 'SLIDING', INDETERMINATE) -folding = getattr(IfcDoorPanelOperationEnum, 'FOLDING', INDETERMINATE) -revolving = getattr(IfcDoorPanelOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = getattr(IfcDoorPanelOperationEnum, 'ROLLINGUP', INDETERMINATE) -fixedpanel = getattr(IfcDoorPanelOperationEnum, 'FIXEDPANEL', INDETERMINATE) -userdefined = getattr(IfcDoorPanelOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +swinging = IfcDoorPanelOperationEnum.SWINGING +double_acting = IfcDoorPanelOperationEnum.DOUBLE_ACTING +sliding = IfcDoorPanelOperationEnum.SLIDING +folding = IfcDoorPanelOperationEnum.FOLDING +revolving = IfcDoorPanelOperationEnum.REVOLVING +rollingup = IfcDoorPanelOperationEnum.ROLLINGUP +fixedpanel = IfcDoorPanelOperationEnum.FIXEDPANEL +userdefined = IfcDoorPanelOperationEnum.USERDEFINED +notdefined = IfcDoorPanelOperationEnum.NOTDEFINED IfcDoorPanelPositionEnum = enum_namespace() -left = getattr(IfcDoorPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = getattr(IfcDoorPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = getattr(IfcDoorPanelPositionEnum, 'RIGHT', INDETERMINATE) -notdefined = getattr(IfcDoorPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcDoorPanelPositionEnum.LEFT +middle = IfcDoorPanelPositionEnum.MIDDLE +right = IfcDoorPanelPositionEnum.RIGHT +notdefined = IfcDoorPanelPositionEnum.NOTDEFINED IfcDoorStyleConstructionEnum = enum_namespace() -aluminium = getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = getattr(IfcDoorStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = getattr(IfcDoorStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = getattr(IfcDoorStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -aluminium_plastic = getattr(IfcDoorStyleConstructionEnum, 'ALUMINIUM_PLASTIC', INDETERMINATE) -plastic = getattr(IfcDoorStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -userdefined = getattr(IfcDoorStyleConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcDoorStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcDoorStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcDoorStyleConstructionEnum.STEEL +wood = IfcDoorStyleConstructionEnum.WOOD +aluminium_wood = IfcDoorStyleConstructionEnum.ALUMINIUM_WOOD +aluminium_plastic = IfcDoorStyleConstructionEnum.ALUMINIUM_PLASTIC +plastic = IfcDoorStyleConstructionEnum.PLASTIC +userdefined = IfcDoorStyleConstructionEnum.USERDEFINED +notdefined = IfcDoorStyleConstructionEnum.NOTDEFINED IfcDoorStyleOperationEnum = enum_namespace() -single_swing_left = getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = getattr(IfcDoorStyleOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_door_single_swing = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_door_double_swing = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = getattr(IfcDoorStyleOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_door_sliding = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -folding_to_left = getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = getattr(IfcDoorStyleOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_door_folding = getattr(IfcDoorStyleOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -revolving = getattr(IfcDoorStyleOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = getattr(IfcDoorStyleOperationEnum, 'ROLLINGUP', INDETERMINATE) -userdefined = getattr(IfcDoorStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorStyleOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT +double_door_single_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorStyleOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorStyleOperationEnum.DOUBLE_SWING_RIGHT +double_door_double_swing = IfcDoorStyleOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +sliding_to_left = IfcDoorStyleOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorStyleOperationEnum.SLIDING_TO_RIGHT +double_door_sliding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_SLIDING +folding_to_left = IfcDoorStyleOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorStyleOperationEnum.FOLDING_TO_RIGHT +double_door_folding = IfcDoorStyleOperationEnum.DOUBLE_DOOR_FOLDING +revolving = IfcDoorStyleOperationEnum.REVOLVING +rollingup = IfcDoorStyleOperationEnum.ROLLINGUP +userdefined = IfcDoorStyleOperationEnum.USERDEFINED +notdefined = IfcDoorStyleOperationEnum.NOTDEFINED IfcDoorTypeEnum = enum_namespace() -door = getattr(IfcDoorTypeEnum, 'DOOR', INDETERMINATE) -gate = getattr(IfcDoorTypeEnum, 'GATE', INDETERMINATE) -trapdoor = getattr(IfcDoorTypeEnum, 'TRAPDOOR', INDETERMINATE) -boom_barrier = getattr(IfcDoorTypeEnum, 'BOOM_BARRIER', INDETERMINATE) -turnstile = getattr(IfcDoorTypeEnum, 'TURNSTILE', INDETERMINATE) -userdefined = getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorTypeEnum, 'NOTDEFINED', INDETERMINATE) +door = IfcDoorTypeEnum.DOOR +gate = IfcDoorTypeEnum.GATE +trapdoor = IfcDoorTypeEnum.TRAPDOOR +boom_barrier = IfcDoorTypeEnum.BOOM_BARRIER +turnstile = IfcDoorTypeEnum.TURNSTILE +userdefined = IfcDoorTypeEnum.USERDEFINED +notdefined = IfcDoorTypeEnum.NOTDEFINED IfcDoorTypeOperationEnum = enum_namespace() -single_swing_left = getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -double_panel_single_swing = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_SINGLE_SWING', INDETERMINATE) -double_panel_single_swing_opposite_left = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_panel_single_swing_opposite_right = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_swing_left = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -double_panel_double_swing = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_DOUBLE_SWING', INDETERMINATE) -sliding_to_left = getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -double_panel_sliding = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_SLIDING', INDETERMINATE) -folding_to_left = getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -double_panel_folding = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_FOLDING', INDETERMINATE) -revolving_horizontal = getattr(IfcDoorTypeOperationEnum, 'REVOLVING_HORIZONTAL', INDETERMINATE) -rollingup = getattr(IfcDoorTypeOperationEnum, 'ROLLINGUP', INDETERMINATE) -swing_fixed_left = getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_LEFT', INDETERMINATE) -swing_fixed_right = getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_RIGHT', INDETERMINATE) -double_panel_lifting_vertical = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_PANEL_LIFTING_VERTICAL', INDETERMINATE) -lifting_horizontal = getattr(IfcDoorTypeOperationEnum, 'LIFTING_HORIZONTAL', INDETERMINATE) -lifting_vertical_left = getattr(IfcDoorTypeOperationEnum, 'LIFTING_VERTICAL_LEFT', INDETERMINATE) -lifting_vertical_right = getattr(IfcDoorTypeOperationEnum, 'LIFTING_VERTICAL_RIGHT', INDETERMINATE) -revolving_vertical = getattr(IfcDoorTypeOperationEnum, 'REVOLVING_VERTICAL', INDETERMINATE) -userdefined = getattr(IfcDoorTypeOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorTypeOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_swing_left = IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT +double_panel_single_swing = IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING +double_panel_single_swing_opposite_left = IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_LEFT +double_panel_single_swing_opposite_right = IfcDoorTypeOperationEnum.DOUBLE_PANEL_SINGLE_SWING_OPPOSITE_RIGHT +double_swing_left = IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT +double_panel_double_swing = IfcDoorTypeOperationEnum.DOUBLE_PANEL_DOUBLE_SWING +sliding_to_left = IfcDoorTypeOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT +double_panel_sliding = IfcDoorTypeOperationEnum.DOUBLE_PANEL_SLIDING +folding_to_left = IfcDoorTypeOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT +double_panel_folding = IfcDoorTypeOperationEnum.DOUBLE_PANEL_FOLDING +revolving_horizontal = IfcDoorTypeOperationEnum.REVOLVING_HORIZONTAL +rollingup = IfcDoorTypeOperationEnum.ROLLINGUP +swing_fixed_left = IfcDoorTypeOperationEnum.SWING_FIXED_LEFT +swing_fixed_right = IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT +double_panel_lifting_vertical = IfcDoorTypeOperationEnum.DOUBLE_PANEL_LIFTING_VERTICAL +lifting_horizontal = IfcDoorTypeOperationEnum.LIFTING_HORIZONTAL +lifting_vertical_left = IfcDoorTypeOperationEnum.LIFTING_VERTICAL_LEFT +lifting_vertical_right = IfcDoorTypeOperationEnum.LIFTING_VERTICAL_RIGHT +revolving_vertical = IfcDoorTypeOperationEnum.REVOLVING_VERTICAL +userdefined = IfcDoorTypeOperationEnum.USERDEFINED +notdefined = IfcDoorTypeOperationEnum.NOTDEFINED IfcDuctFittingTypeEnum = enum_namespace() -bend = getattr(IfcDuctFittingTypeEnum, 'BEND', INDETERMINATE) -connector = getattr(IfcDuctFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcDuctFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcDuctFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcDuctFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = getattr(IfcDuctFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = getattr(IfcDuctFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcDuctFittingTypeEnum.BEND +connector = IfcDuctFittingTypeEnum.CONNECTOR +entry = IfcDuctFittingTypeEnum.ENTRY +exit = IfcDuctFittingTypeEnum.EXIT +junction = IfcDuctFittingTypeEnum.JUNCTION +obstruction = IfcDuctFittingTypeEnum.OBSTRUCTION +transition = IfcDuctFittingTypeEnum.TRANSITION +userdefined = IfcDuctFittingTypeEnum.USERDEFINED +notdefined = IfcDuctFittingTypeEnum.NOTDEFINED IfcDuctSegmentTypeEnum = enum_namespace() -rigidsegment = getattr(IfcDuctSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -flexiblesegment = getattr(IfcDuctSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -userdefined = getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigidsegment = IfcDuctSegmentTypeEnum.RIGIDSEGMENT +flexiblesegment = IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT +userdefined = IfcDuctSegmentTypeEnum.USERDEFINED +notdefined = IfcDuctSegmentTypeEnum.NOTDEFINED IfcDuctSilencerTypeEnum = enum_namespace() -flatoval = getattr(IfcDuctSilencerTypeEnum, 'FLATOVAL', INDETERMINATE) -rectangular = getattr(IfcDuctSilencerTypeEnum, 'RECTANGULAR', INDETERMINATE) -round = getattr(IfcDuctSilencerTypeEnum, 'ROUND', INDETERMINATE) -userdefined = getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctSilencerTypeEnum, 'NOTDEFINED', INDETERMINATE) +flatoval = IfcDuctSilencerTypeEnum.FLATOVAL +rectangular = IfcDuctSilencerTypeEnum.RECTANGULAR +round = IfcDuctSilencerTypeEnum.ROUND +userdefined = IfcDuctSilencerTypeEnum.USERDEFINED +notdefined = IfcDuctSilencerTypeEnum.NOTDEFINED IfcEarthworksCutTypeEnum = enum_namespace() -trench = getattr(IfcEarthworksCutTypeEnum, 'TRENCH', INDETERMINATE) -dredging = getattr(IfcEarthworksCutTypeEnum, 'DREDGING', INDETERMINATE) -excavation = getattr(IfcEarthworksCutTypeEnum, 'EXCAVATION', INDETERMINATE) -overexcavation = getattr(IfcEarthworksCutTypeEnum, 'OVEREXCAVATION', INDETERMINATE) -topsoilremoval = getattr(IfcEarthworksCutTypeEnum, 'TOPSOILREMOVAL', INDETERMINATE) -stepexcavation = getattr(IfcEarthworksCutTypeEnum, 'STEPEXCAVATION', INDETERMINATE) -pavementmilling = getattr(IfcEarthworksCutTypeEnum, 'PAVEMENTMILLING', INDETERMINATE) -cut = getattr(IfcEarthworksCutTypeEnum, 'CUT', INDETERMINATE) -base_excavation = getattr(IfcEarthworksCutTypeEnum, 'BASE_EXCAVATION', INDETERMINATE) -userdefined = getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEarthworksCutTypeEnum, 'NOTDEFINED', INDETERMINATE) +trench = IfcEarthworksCutTypeEnum.TRENCH +dredging = IfcEarthworksCutTypeEnum.DREDGING +excavation = IfcEarthworksCutTypeEnum.EXCAVATION +overexcavation = IfcEarthworksCutTypeEnum.OVEREXCAVATION +topsoilremoval = IfcEarthworksCutTypeEnum.TOPSOILREMOVAL +stepexcavation = IfcEarthworksCutTypeEnum.STEPEXCAVATION +pavementmilling = IfcEarthworksCutTypeEnum.PAVEMENTMILLING +cut = IfcEarthworksCutTypeEnum.CUT +base_excavation = IfcEarthworksCutTypeEnum.BASE_EXCAVATION +userdefined = IfcEarthworksCutTypeEnum.USERDEFINED +notdefined = IfcEarthworksCutTypeEnum.NOTDEFINED IfcEarthworksFillTypeEnum = enum_namespace() -backfill = getattr(IfcEarthworksFillTypeEnum, 'BACKFILL', INDETERMINATE) -counterweight = getattr(IfcEarthworksFillTypeEnum, 'COUNTERWEIGHT', INDETERMINATE) -subgrade = getattr(IfcEarthworksFillTypeEnum, 'SUBGRADE', INDETERMINATE) -embankment = getattr(IfcEarthworksFillTypeEnum, 'EMBANKMENT', INDETERMINATE) -transitionsection = getattr(IfcEarthworksFillTypeEnum, 'TRANSITIONSECTION', INDETERMINATE) -subgradebed = getattr(IfcEarthworksFillTypeEnum, 'SUBGRADEBED', INDETERMINATE) -slopefill = getattr(IfcEarthworksFillTypeEnum, 'SLOPEFILL', INDETERMINATE) -userdefined = getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEarthworksFillTypeEnum, 'NOTDEFINED', INDETERMINATE) +backfill = IfcEarthworksFillTypeEnum.BACKFILL +counterweight = IfcEarthworksFillTypeEnum.COUNTERWEIGHT +subgrade = IfcEarthworksFillTypeEnum.SUBGRADE +embankment = IfcEarthworksFillTypeEnum.EMBANKMENT +transitionsection = IfcEarthworksFillTypeEnum.TRANSITIONSECTION +subgradebed = IfcEarthworksFillTypeEnum.SUBGRADEBED +slopefill = IfcEarthworksFillTypeEnum.SLOPEFILL +userdefined = IfcEarthworksFillTypeEnum.USERDEFINED +notdefined = IfcEarthworksFillTypeEnum.NOTDEFINED IfcElectricApplianceTypeEnum = enum_namespace() -dishwasher = getattr(IfcElectricApplianceTypeEnum, 'DISHWASHER', INDETERMINATE) -electriccooker = getattr(IfcElectricApplianceTypeEnum, 'ELECTRICCOOKER', INDETERMINATE) -freestandingelectricheater = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGELECTRICHEATER', INDETERMINATE) -freestandingfan = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGFAN', INDETERMINATE) -freestandingwaterheater = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERHEATER', INDETERMINATE) -freestandingwatercooler = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERCOOLER', INDETERMINATE) -freezer = getattr(IfcElectricApplianceTypeEnum, 'FREEZER', INDETERMINATE) -fridge_freezer = getattr(IfcElectricApplianceTypeEnum, 'FRIDGE_FREEZER', INDETERMINATE) -handdryer = getattr(IfcElectricApplianceTypeEnum, 'HANDDRYER', INDETERMINATE) -kitchenmachine = getattr(IfcElectricApplianceTypeEnum, 'KITCHENMACHINE', INDETERMINATE) -microwave = getattr(IfcElectricApplianceTypeEnum, 'MICROWAVE', INDETERMINATE) -photocopier = getattr(IfcElectricApplianceTypeEnum, 'PHOTOCOPIER', INDETERMINATE) -refrigerator = getattr(IfcElectricApplianceTypeEnum, 'REFRIGERATOR', INDETERMINATE) -tumbledryer = getattr(IfcElectricApplianceTypeEnum, 'TUMBLEDRYER', INDETERMINATE) -vendingmachine = getattr(IfcElectricApplianceTypeEnum, 'VENDINGMACHINE', INDETERMINATE) -washingmachine = getattr(IfcElectricApplianceTypeEnum, 'WASHINGMACHINE', INDETERMINATE) -userdefined = getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dishwasher = IfcElectricApplianceTypeEnum.DISHWASHER +electriccooker = IfcElectricApplianceTypeEnum.ELECTRICCOOKER +freestandingelectricheater = IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER +freestandingfan = IfcElectricApplianceTypeEnum.FREESTANDINGFAN +freestandingwaterheater = IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER +freestandingwatercooler = IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER +freezer = IfcElectricApplianceTypeEnum.FREEZER +fridge_freezer = IfcElectricApplianceTypeEnum.FRIDGE_FREEZER +handdryer = IfcElectricApplianceTypeEnum.HANDDRYER +kitchenmachine = IfcElectricApplianceTypeEnum.KITCHENMACHINE +microwave = IfcElectricApplianceTypeEnum.MICROWAVE +photocopier = IfcElectricApplianceTypeEnum.PHOTOCOPIER +refrigerator = IfcElectricApplianceTypeEnum.REFRIGERATOR +tumbledryer = IfcElectricApplianceTypeEnum.TUMBLEDRYER +vendingmachine = IfcElectricApplianceTypeEnum.VENDINGMACHINE +washingmachine = IfcElectricApplianceTypeEnum.WASHINGMACHINE +userdefined = IfcElectricApplianceTypeEnum.USERDEFINED +notdefined = IfcElectricApplianceTypeEnum.NOTDEFINED IfcElectricDistributionBoardTypeEnum = enum_namespace() -consumerunit = getattr(IfcElectricDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -distributionboard = getattr(IfcElectricDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -motorcontrolcentre = getattr(IfcElectricDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = getattr(IfcElectricDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT +distributionboard = IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD +motorcontrolcentre = IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcElectricDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcElectricDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcElectricDistributionBoardTypeEnum.NOTDEFINED IfcElectricFlowStorageDeviceTypeEnum = enum_namespace() -battery = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'BATTERY', INDETERMINATE) -capacitorbank = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITORBANK', INDETERMINATE) -harmonicfilter = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'HARMONICFILTER', INDETERMINATE) -inductorbank = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTORBANK', INDETERMINATE) -ups = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'UPS', INDETERMINATE) -capacitor = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITOR', INDETERMINATE) -compensator = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'COMPENSATOR', INDETERMINATE) -inductor = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTOR', INDETERMINATE) -recharger = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'RECHARGER', INDETERMINATE) -userdefined = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +battery = IfcElectricFlowStorageDeviceTypeEnum.BATTERY +capacitorbank = IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK +harmonicfilter = IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER +inductorbank = IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK +ups = IfcElectricFlowStorageDeviceTypeEnum.UPS +capacitor = IfcElectricFlowStorageDeviceTypeEnum.CAPACITOR +compensator = IfcElectricFlowStorageDeviceTypeEnum.COMPENSATOR +inductor = IfcElectricFlowStorageDeviceTypeEnum.INDUCTOR +recharger = IfcElectricFlowStorageDeviceTypeEnum.RECHARGER +userdefined = IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED IfcElectricFlowTreatmentDeviceTypeEnum = enum_namespace() -electronicfilter = getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'ELECTRONICFILTER', INDETERMINATE) -userdefined = getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronicfilter = IfcElectricFlowTreatmentDeviceTypeEnum.ELECTRONICFILTER +userdefined = IfcElectricFlowTreatmentDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowTreatmentDeviceTypeEnum.NOTDEFINED IfcElectricGeneratorTypeEnum = enum_namespace() -chp = getattr(IfcElectricGeneratorTypeEnum, 'CHP', INDETERMINATE) -enginegenerator = getattr(IfcElectricGeneratorTypeEnum, 'ENGINEGENERATOR', INDETERMINATE) -standalone = getattr(IfcElectricGeneratorTypeEnum, 'STANDALONE', INDETERMINATE) -userdefined = getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricGeneratorTypeEnum, 'NOTDEFINED', INDETERMINATE) +chp = IfcElectricGeneratorTypeEnum.CHP +enginegenerator = IfcElectricGeneratorTypeEnum.ENGINEGENERATOR +standalone = IfcElectricGeneratorTypeEnum.STANDALONE +userdefined = IfcElectricGeneratorTypeEnum.USERDEFINED +notdefined = IfcElectricGeneratorTypeEnum.NOTDEFINED IfcElectricMotorTypeEnum = enum_namespace() -dc = getattr(IfcElectricMotorTypeEnum, 'DC', INDETERMINATE) -induction = getattr(IfcElectricMotorTypeEnum, 'INDUCTION', INDETERMINATE) -polyphase = getattr(IfcElectricMotorTypeEnum, 'POLYPHASE', INDETERMINATE) -reluctancesynchronous = getattr(IfcElectricMotorTypeEnum, 'RELUCTANCESYNCHRONOUS', INDETERMINATE) -synchronous = getattr(IfcElectricMotorTypeEnum, 'SYNCHRONOUS', INDETERMINATE) -userdefined = getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricMotorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dc = IfcElectricMotorTypeEnum.DC +induction = IfcElectricMotorTypeEnum.INDUCTION +polyphase = IfcElectricMotorTypeEnum.POLYPHASE +reluctancesynchronous = IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS +synchronous = IfcElectricMotorTypeEnum.SYNCHRONOUS +userdefined = IfcElectricMotorTypeEnum.USERDEFINED +notdefined = IfcElectricMotorTypeEnum.NOTDEFINED IfcElectricTimeControlTypeEnum = enum_namespace() -timeclock = getattr(IfcElectricTimeControlTypeEnum, 'TIMECLOCK', INDETERMINATE) -timedelay = getattr(IfcElectricTimeControlTypeEnum, 'TIMEDELAY', INDETERMINATE) -relay = getattr(IfcElectricTimeControlTypeEnum, 'RELAY', INDETERMINATE) -userdefined = getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricTimeControlTypeEnum, 'NOTDEFINED', INDETERMINATE) +timeclock = IfcElectricTimeControlTypeEnum.TIMECLOCK +timedelay = IfcElectricTimeControlTypeEnum.TIMEDELAY +relay = IfcElectricTimeControlTypeEnum.RELAY +userdefined = IfcElectricTimeControlTypeEnum.USERDEFINED +notdefined = IfcElectricTimeControlTypeEnum.NOTDEFINED IfcElementAssemblyTypeEnum = enum_namespace() -accessory_assembly = getattr(IfcElementAssemblyTypeEnum, 'ACCESSORY_ASSEMBLY', INDETERMINATE) -arch = getattr(IfcElementAssemblyTypeEnum, 'ARCH', INDETERMINATE) -beam_grid = getattr(IfcElementAssemblyTypeEnum, 'BEAM_GRID', INDETERMINATE) -braced_frame = getattr(IfcElementAssemblyTypeEnum, 'BRACED_FRAME', INDETERMINATE) -girder = getattr(IfcElementAssemblyTypeEnum, 'GIRDER', INDETERMINATE) -reinforcement_unit = getattr(IfcElementAssemblyTypeEnum, 'REINFORCEMENT_UNIT', INDETERMINATE) -rigid_frame = getattr(IfcElementAssemblyTypeEnum, 'RIGID_FRAME', INDETERMINATE) -slab_field = getattr(IfcElementAssemblyTypeEnum, 'SLAB_FIELD', INDETERMINATE) -truss = getattr(IfcElementAssemblyTypeEnum, 'TRUSS', INDETERMINATE) -abutment = getattr(IfcElementAssemblyTypeEnum, 'ABUTMENT', INDETERMINATE) -pier = getattr(IfcElementAssemblyTypeEnum, 'PIER', INDETERMINATE) -pylon = getattr(IfcElementAssemblyTypeEnum, 'PYLON', INDETERMINATE) -cross_bracing = getattr(IfcElementAssemblyTypeEnum, 'CROSS_BRACING', INDETERMINATE) -deck = getattr(IfcElementAssemblyTypeEnum, 'DECK', INDETERMINATE) -mast = getattr(IfcElementAssemblyTypeEnum, 'MAST', INDETERMINATE) -signalassembly = getattr(IfcElementAssemblyTypeEnum, 'SIGNALASSEMBLY', INDETERMINATE) -grid = getattr(IfcElementAssemblyTypeEnum, 'GRID', INDETERMINATE) -shelter = getattr(IfcElementAssemblyTypeEnum, 'SHELTER', INDETERMINATE) -supportingassembly = getattr(IfcElementAssemblyTypeEnum, 'SUPPORTINGASSEMBLY', INDETERMINATE) -suspensionassembly = getattr(IfcElementAssemblyTypeEnum, 'SUSPENSIONASSEMBLY', INDETERMINATE) -traction_switching_assembly = getattr(IfcElementAssemblyTypeEnum, 'TRACTION_SWITCHING_ASSEMBLY', INDETERMINATE) -trackpanel = getattr(IfcElementAssemblyTypeEnum, 'TRACKPANEL', INDETERMINATE) -turnoutpanel = getattr(IfcElementAssemblyTypeEnum, 'TURNOUTPANEL', INDETERMINATE) -dilatationpanel = getattr(IfcElementAssemblyTypeEnum, 'DILATATIONPANEL', INDETERMINATE) -rail_mechanical_equipment_assembly = getattr(IfcElementAssemblyTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY', INDETERMINATE) -entranceworks = getattr(IfcElementAssemblyTypeEnum, 'ENTRANCEWORKS', INDETERMINATE) -sumpbuster = getattr(IfcElementAssemblyTypeEnum, 'SUMPBUSTER', INDETERMINATE) -traffic_calming_device = getattr(IfcElementAssemblyTypeEnum, 'TRAFFIC_CALMING_DEVICE', INDETERMINATE) -userdefined = getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElementAssemblyTypeEnum, 'NOTDEFINED', INDETERMINATE) +accessory_assembly = IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY +arch = IfcElementAssemblyTypeEnum.ARCH +beam_grid = IfcElementAssemblyTypeEnum.BEAM_GRID +braced_frame = IfcElementAssemblyTypeEnum.BRACED_FRAME +girder = IfcElementAssemblyTypeEnum.GIRDER +reinforcement_unit = IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT +rigid_frame = IfcElementAssemblyTypeEnum.RIGID_FRAME +slab_field = IfcElementAssemblyTypeEnum.SLAB_FIELD +truss = IfcElementAssemblyTypeEnum.TRUSS +abutment = IfcElementAssemblyTypeEnum.ABUTMENT +pier = IfcElementAssemblyTypeEnum.PIER +pylon = IfcElementAssemblyTypeEnum.PYLON +cross_bracing = IfcElementAssemblyTypeEnum.CROSS_BRACING +deck = IfcElementAssemblyTypeEnum.DECK +mast = IfcElementAssemblyTypeEnum.MAST +signalassembly = IfcElementAssemblyTypeEnum.SIGNALASSEMBLY +grid = IfcElementAssemblyTypeEnum.GRID +shelter = IfcElementAssemblyTypeEnum.SHELTER +supportingassembly = IfcElementAssemblyTypeEnum.SUPPORTINGASSEMBLY +suspensionassembly = IfcElementAssemblyTypeEnum.SUSPENSIONASSEMBLY +traction_switching_assembly = IfcElementAssemblyTypeEnum.TRACTION_SWITCHING_ASSEMBLY +trackpanel = IfcElementAssemblyTypeEnum.TRACKPANEL +turnoutpanel = IfcElementAssemblyTypeEnum.TURNOUTPANEL +dilatationpanel = IfcElementAssemblyTypeEnum.DILATATIONPANEL +rail_mechanical_equipment_assembly = IfcElementAssemblyTypeEnum.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY +entranceworks = IfcElementAssemblyTypeEnum.ENTRANCEWORKS +sumpbuster = IfcElementAssemblyTypeEnum.SUMPBUSTER +traffic_calming_device = IfcElementAssemblyTypeEnum.TRAFFIC_CALMING_DEVICE +userdefined = IfcElementAssemblyTypeEnum.USERDEFINED +notdefined = IfcElementAssemblyTypeEnum.NOTDEFINED IfcElementCompositionEnum = enum_namespace() -complex = getattr(IfcElementCompositionEnum, 'COMPLEX', INDETERMINATE) -element = getattr(IfcElementCompositionEnum, 'ELEMENT', INDETERMINATE) -partial = getattr(IfcElementCompositionEnum, 'PARTIAL', INDETERMINATE) +complex = IfcElementCompositionEnum.COMPLEX +element = IfcElementCompositionEnum.ELEMENT +partial = IfcElementCompositionEnum.PARTIAL IfcEngineTypeEnum = enum_namespace() -externalcombustion = getattr(IfcEngineTypeEnum, 'EXTERNALCOMBUSTION', INDETERMINATE) -internalcombustion = getattr(IfcEngineTypeEnum, 'INTERNALCOMBUSTION', INDETERMINATE) -userdefined = getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEngineTypeEnum, 'NOTDEFINED', INDETERMINATE) +externalcombustion = IfcEngineTypeEnum.EXTERNALCOMBUSTION +internalcombustion = IfcEngineTypeEnum.INTERNALCOMBUSTION +userdefined = IfcEngineTypeEnum.USERDEFINED +notdefined = IfcEngineTypeEnum.NOTDEFINED IfcEvaporativeCoolerTypeEnum = enum_namespace() -directevaporativerandommediaaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER', INDETERMINATE) -directevaporativerigidmediaaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER', INDETERMINATE) -directevaporativeslingerspackagedaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER', INDETERMINATE) -directevaporativepackagedrotaryaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER', INDETERMINATE) -directevaporativeairwasher = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEAIRWASHER', INDETERMINATE) -indirectevaporativepackageaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEPACKAGEAIRCOOLER', INDETERMINATE) -indirectevaporativewetcoil = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEWETCOIL', INDETERMINATE) -indirectevaporativecoolingtowerorcoilcooler = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER', INDETERMINATE) -indirectdirectcombination = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTDIRECTCOMBINATION', INDETERMINATE) -userdefined = getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEvaporativeCoolerTypeEnum, 'NOTDEFINED', INDETERMINATE) +directevaporativerandommediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER +directevaporativerigidmediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER +directevaporativeslingerspackagedaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER +directevaporativepackagedrotaryaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER +directevaporativeairwasher = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER +indirectevaporativepackageaircooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER +indirectevaporativewetcoil = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL +indirectevaporativecoolingtowerorcoilcooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER +indirectdirectcombination = IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION +userdefined = IfcEvaporativeCoolerTypeEnum.USERDEFINED +notdefined = IfcEvaporativeCoolerTypeEnum.NOTDEFINED IfcEvaporatorTypeEnum = enum_namespace() -directexpansion = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSION', INDETERMINATE) -directexpansionshellandtube = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONSHELLANDTUBE', INDETERMINATE) -directexpansiontubeintube = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONTUBEINTUBE', INDETERMINATE) -directexpansionbrazedplate = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONBRAZEDPLATE', INDETERMINATE) -floodedshellandtube = getattr(IfcEvaporatorTypeEnum, 'FLOODEDSHELLANDTUBE', INDETERMINATE) -shellandcoil = getattr(IfcEvaporatorTypeEnum, 'SHELLANDCOIL', INDETERMINATE) -userdefined = getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEvaporatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +directexpansion = IfcEvaporatorTypeEnum.DIRECTEXPANSION +directexpansionshellandtube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE +directexpansiontubeintube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE +directexpansionbrazedplate = IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE +floodedshellandtube = IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE +shellandcoil = IfcEvaporatorTypeEnum.SHELLANDCOIL +userdefined = IfcEvaporatorTypeEnum.USERDEFINED +notdefined = IfcEvaporatorTypeEnum.NOTDEFINED IfcEventTriggerTypeEnum = enum_namespace() -eventrule = getattr(IfcEventTriggerTypeEnum, 'EVENTRULE', INDETERMINATE) -eventmessage = getattr(IfcEventTriggerTypeEnum, 'EVENTMESSAGE', INDETERMINATE) -eventtime = getattr(IfcEventTriggerTypeEnum, 'EVENTTIME', INDETERMINATE) -eventcomplex = getattr(IfcEventTriggerTypeEnum, 'EVENTCOMPLEX', INDETERMINATE) -userdefined = getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEventTriggerTypeEnum, 'NOTDEFINED', INDETERMINATE) +eventrule = IfcEventTriggerTypeEnum.EVENTRULE +eventmessage = IfcEventTriggerTypeEnum.EVENTMESSAGE +eventtime = IfcEventTriggerTypeEnum.EVENTTIME +eventcomplex = IfcEventTriggerTypeEnum.EVENTCOMPLEX +userdefined = IfcEventTriggerTypeEnum.USERDEFINED +notdefined = IfcEventTriggerTypeEnum.NOTDEFINED IfcEventTypeEnum = enum_namespace() -startevent = getattr(IfcEventTypeEnum, 'STARTEVENT', INDETERMINATE) -endevent = getattr(IfcEventTypeEnum, 'ENDEVENT', INDETERMINATE) -intermediateevent = getattr(IfcEventTypeEnum, 'INTERMEDIATEEVENT', INDETERMINATE) -userdefined = getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEventTypeEnum, 'NOTDEFINED', INDETERMINATE) +startevent = IfcEventTypeEnum.STARTEVENT +endevent = IfcEventTypeEnum.ENDEVENT +intermediateevent = IfcEventTypeEnum.INTERMEDIATEEVENT +userdefined = IfcEventTypeEnum.USERDEFINED +notdefined = IfcEventTypeEnum.NOTDEFINED IfcExternalSpatialElementTypeEnum = enum_namespace() -external = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL', INDETERMINATE) -external_earth = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_water = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_WATER', INDETERMINATE) -external_fire = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_FIRE', INDETERMINATE) -userdefined = getattr(IfcExternalSpatialElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcExternalSpatialElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcExternalSpatialElementTypeEnum.EXTERNAL +external_earth = IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH +external_water = IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER +external_fire = IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE +userdefined = IfcExternalSpatialElementTypeEnum.USERDEFINED +notdefined = IfcExternalSpatialElementTypeEnum.NOTDEFINED IfcFacilityPartCommonTypeEnum = enum_namespace() -segment = getattr(IfcFacilityPartCommonTypeEnum, 'SEGMENT', INDETERMINATE) -aboveground = getattr(IfcFacilityPartCommonTypeEnum, 'ABOVEGROUND', INDETERMINATE) -junction = getattr(IfcFacilityPartCommonTypeEnum, 'JUNCTION', INDETERMINATE) -levelcrossing = getattr(IfcFacilityPartCommonTypeEnum, 'LEVELCROSSING', INDETERMINATE) -belowground = getattr(IfcFacilityPartCommonTypeEnum, 'BELOWGROUND', INDETERMINATE) -substructure = getattr(IfcFacilityPartCommonTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -terminal = getattr(IfcFacilityPartCommonTypeEnum, 'TERMINAL', INDETERMINATE) -superstructure = getattr(IfcFacilityPartCommonTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -userdefined = getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFacilityPartCommonTypeEnum, 'NOTDEFINED', INDETERMINATE) +segment = IfcFacilityPartCommonTypeEnum.SEGMENT +aboveground = IfcFacilityPartCommonTypeEnum.ABOVEGROUND +junction = IfcFacilityPartCommonTypeEnum.JUNCTION +levelcrossing = IfcFacilityPartCommonTypeEnum.LEVELCROSSING +belowground = IfcFacilityPartCommonTypeEnum.BELOWGROUND +substructure = IfcFacilityPartCommonTypeEnum.SUBSTRUCTURE +terminal = IfcFacilityPartCommonTypeEnum.TERMINAL +superstructure = IfcFacilityPartCommonTypeEnum.SUPERSTRUCTURE +userdefined = IfcFacilityPartCommonTypeEnum.USERDEFINED +notdefined = IfcFacilityPartCommonTypeEnum.NOTDEFINED IfcFacilityUsageEnum = enum_namespace() -lateral = getattr(IfcFacilityUsageEnum, 'LATERAL', INDETERMINATE) -region = getattr(IfcFacilityUsageEnum, 'REGION', INDETERMINATE) -vertical = getattr(IfcFacilityUsageEnum, 'VERTICAL', INDETERMINATE) -longitudinal = getattr(IfcFacilityUsageEnum, 'LONGITUDINAL', INDETERMINATE) -userdefined = getattr(IfcFacilityUsageEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFacilityUsageEnum, 'NOTDEFINED', INDETERMINATE) +lateral = IfcFacilityUsageEnum.LATERAL +region = IfcFacilityUsageEnum.REGION +vertical = IfcFacilityUsageEnum.VERTICAL +longitudinal = IfcFacilityUsageEnum.LONGITUDINAL +userdefined = IfcFacilityUsageEnum.USERDEFINED +notdefined = IfcFacilityUsageEnum.NOTDEFINED IfcFanTypeEnum = enum_namespace() -centrifugalforwardcurved = getattr(IfcFanTypeEnum, 'CENTRIFUGALFORWARDCURVED', INDETERMINATE) -centrifugalradial = getattr(IfcFanTypeEnum, 'CENTRIFUGALRADIAL', INDETERMINATE) -centrifugalbackwardinclinedcurved = getattr(IfcFanTypeEnum, 'CENTRIFUGALBACKWARDINCLINEDCURVED', INDETERMINATE) -centrifugalairfoil = getattr(IfcFanTypeEnum, 'CENTRIFUGALAIRFOIL', INDETERMINATE) -tubeaxial = getattr(IfcFanTypeEnum, 'TUBEAXIAL', INDETERMINATE) -vaneaxial = getattr(IfcFanTypeEnum, 'VANEAXIAL', INDETERMINATE) -propelloraxial = getattr(IfcFanTypeEnum, 'PROPELLORAXIAL', INDETERMINATE) -userdefined = getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFanTypeEnum, 'NOTDEFINED', INDETERMINATE) +centrifugalforwardcurved = IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED +centrifugalradial = IfcFanTypeEnum.CENTRIFUGALRADIAL +centrifugalbackwardinclinedcurved = IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED +centrifugalairfoil = IfcFanTypeEnum.CENTRIFUGALAIRFOIL +tubeaxial = IfcFanTypeEnum.TUBEAXIAL +vaneaxial = IfcFanTypeEnum.VANEAXIAL +propelloraxial = IfcFanTypeEnum.PROPELLORAXIAL +userdefined = IfcFanTypeEnum.USERDEFINED +notdefined = IfcFanTypeEnum.NOTDEFINED IfcFastenerTypeEnum = enum_namespace() -glue = getattr(IfcFastenerTypeEnum, 'GLUE', INDETERMINATE) -mortar = getattr(IfcFastenerTypeEnum, 'MORTAR', INDETERMINATE) -weld = getattr(IfcFastenerTypeEnum, 'WELD', INDETERMINATE) -userdefined = getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +glue = IfcFastenerTypeEnum.GLUE +mortar = IfcFastenerTypeEnum.MORTAR +weld = IfcFastenerTypeEnum.WELD +userdefined = IfcFastenerTypeEnum.USERDEFINED +notdefined = IfcFastenerTypeEnum.NOTDEFINED IfcFilterTypeEnum = enum_namespace() -airparticlefilter = getattr(IfcFilterTypeEnum, 'AIRPARTICLEFILTER', INDETERMINATE) -compressedairfilter = getattr(IfcFilterTypeEnum, 'COMPRESSEDAIRFILTER', INDETERMINATE) -odorfilter = getattr(IfcFilterTypeEnum, 'ODORFILTER', INDETERMINATE) -oilfilter = getattr(IfcFilterTypeEnum, 'OILFILTER', INDETERMINATE) -strainer = getattr(IfcFilterTypeEnum, 'STRAINER', INDETERMINATE) -waterfilter = getattr(IfcFilterTypeEnum, 'WATERFILTER', INDETERMINATE) -userdefined = getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFilterTypeEnum, 'NOTDEFINED', INDETERMINATE) +airparticlefilter = IfcFilterTypeEnum.AIRPARTICLEFILTER +compressedairfilter = IfcFilterTypeEnum.COMPRESSEDAIRFILTER +odorfilter = IfcFilterTypeEnum.ODORFILTER +oilfilter = IfcFilterTypeEnum.OILFILTER +strainer = IfcFilterTypeEnum.STRAINER +waterfilter = IfcFilterTypeEnum.WATERFILTER +userdefined = IfcFilterTypeEnum.USERDEFINED +notdefined = IfcFilterTypeEnum.NOTDEFINED IfcFireSuppressionTerminalTypeEnum = enum_namespace() -breechinginlet = getattr(IfcFireSuppressionTerminalTypeEnum, 'BREECHINGINLET', INDETERMINATE) -firehydrant = getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREHYDRANT', INDETERMINATE) -hosereel = getattr(IfcFireSuppressionTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -sprinkler = getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLER', INDETERMINATE) -sprinklerdeflector = getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLERDEFLECTOR', INDETERMINATE) -firemonitor = getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREMONITOR', INDETERMINATE) -userdefined = getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFireSuppressionTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +breechinginlet = IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET +firehydrant = IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT +hosereel = IfcFireSuppressionTerminalTypeEnum.HOSEREEL +sprinkler = IfcFireSuppressionTerminalTypeEnum.SPRINKLER +sprinklerdeflector = IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR +firemonitor = IfcFireSuppressionTerminalTypeEnum.FIREMONITOR +userdefined = IfcFireSuppressionTerminalTypeEnum.USERDEFINED +notdefined = IfcFireSuppressionTerminalTypeEnum.NOTDEFINED IfcFlowDirectionEnum = enum_namespace() -source = getattr(IfcFlowDirectionEnum, 'SOURCE', INDETERMINATE) -sink = getattr(IfcFlowDirectionEnum, 'SINK', INDETERMINATE) -sourceandsink = getattr(IfcFlowDirectionEnum, 'SOURCEANDSINK', INDETERMINATE) -notdefined = getattr(IfcFlowDirectionEnum, 'NOTDEFINED', INDETERMINATE) +source = IfcFlowDirectionEnum.SOURCE +sink = IfcFlowDirectionEnum.SINK +sourceandsink = IfcFlowDirectionEnum.SOURCEANDSINK +notdefined = IfcFlowDirectionEnum.NOTDEFINED IfcFlowInstrumentTypeEnum = enum_namespace() -pressuregauge = getattr(IfcFlowInstrumentTypeEnum, 'PRESSUREGAUGE', INDETERMINATE) -thermometer = getattr(IfcFlowInstrumentTypeEnum, 'THERMOMETER', INDETERMINATE) -ammeter = getattr(IfcFlowInstrumentTypeEnum, 'AMMETER', INDETERMINATE) -frequencymeter = getattr(IfcFlowInstrumentTypeEnum, 'FREQUENCYMETER', INDETERMINATE) -powerfactormeter = getattr(IfcFlowInstrumentTypeEnum, 'POWERFACTORMETER', INDETERMINATE) -phaseanglemeter = getattr(IfcFlowInstrumentTypeEnum, 'PHASEANGLEMETER', INDETERMINATE) -voltmeter_peak = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_PEAK', INDETERMINATE) -voltmeter_rms = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_RMS', INDETERMINATE) -combined = getattr(IfcFlowInstrumentTypeEnum, 'COMBINED', INDETERMINATE) -voltmeter = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER', INDETERMINATE) -userdefined = getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFlowInstrumentTypeEnum, 'NOTDEFINED', INDETERMINATE) +pressuregauge = IfcFlowInstrumentTypeEnum.PRESSUREGAUGE +thermometer = IfcFlowInstrumentTypeEnum.THERMOMETER +ammeter = IfcFlowInstrumentTypeEnum.AMMETER +frequencymeter = IfcFlowInstrumentTypeEnum.FREQUENCYMETER +powerfactormeter = IfcFlowInstrumentTypeEnum.POWERFACTORMETER +phaseanglemeter = IfcFlowInstrumentTypeEnum.PHASEANGLEMETER +voltmeter_peak = IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK +voltmeter_rms = IfcFlowInstrumentTypeEnum.VOLTMETER_RMS +combined = IfcFlowInstrumentTypeEnum.COMBINED +voltmeter = IfcFlowInstrumentTypeEnum.VOLTMETER +userdefined = IfcFlowInstrumentTypeEnum.USERDEFINED +notdefined = IfcFlowInstrumentTypeEnum.NOTDEFINED IfcFlowMeterTypeEnum = enum_namespace() -energymeter = getattr(IfcFlowMeterTypeEnum, 'ENERGYMETER', INDETERMINATE) -gasmeter = getattr(IfcFlowMeterTypeEnum, 'GASMETER', INDETERMINATE) -oilmeter = getattr(IfcFlowMeterTypeEnum, 'OILMETER', INDETERMINATE) -watermeter = getattr(IfcFlowMeterTypeEnum, 'WATERMETER', INDETERMINATE) -userdefined = getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFlowMeterTypeEnum, 'NOTDEFINED', INDETERMINATE) +energymeter = IfcFlowMeterTypeEnum.ENERGYMETER +gasmeter = IfcFlowMeterTypeEnum.GASMETER +oilmeter = IfcFlowMeterTypeEnum.OILMETER +watermeter = IfcFlowMeterTypeEnum.WATERMETER +userdefined = IfcFlowMeterTypeEnum.USERDEFINED +notdefined = IfcFlowMeterTypeEnum.NOTDEFINED IfcFootingTypeEnum = enum_namespace() -caisson_foundation = getattr(IfcFootingTypeEnum, 'CAISSON_FOUNDATION', INDETERMINATE) -footing_beam = getattr(IfcFootingTypeEnum, 'FOOTING_BEAM', INDETERMINATE) -pad_footing = getattr(IfcFootingTypeEnum, 'PAD_FOOTING', INDETERMINATE) -pile_cap = getattr(IfcFootingTypeEnum, 'PILE_CAP', INDETERMINATE) -strip_footing = getattr(IfcFootingTypeEnum, 'STRIP_FOOTING', INDETERMINATE) -userdefined = getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFootingTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson_foundation = IfcFootingTypeEnum.CAISSON_FOUNDATION +footing_beam = IfcFootingTypeEnum.FOOTING_BEAM +pad_footing = IfcFootingTypeEnum.PAD_FOOTING +pile_cap = IfcFootingTypeEnum.PILE_CAP +strip_footing = IfcFootingTypeEnum.STRIP_FOOTING +userdefined = IfcFootingTypeEnum.USERDEFINED +notdefined = IfcFootingTypeEnum.NOTDEFINED IfcFurnitureTypeEnum = enum_namespace() -chair = getattr(IfcFurnitureTypeEnum, 'CHAIR', INDETERMINATE) -table = getattr(IfcFurnitureTypeEnum, 'TABLE', INDETERMINATE) -desk = getattr(IfcFurnitureTypeEnum, 'DESK', INDETERMINATE) -bed = getattr(IfcFurnitureTypeEnum, 'BED', INDETERMINATE) -filecabinet = getattr(IfcFurnitureTypeEnum, 'FILECABINET', INDETERMINATE) -shelf = getattr(IfcFurnitureTypeEnum, 'SHELF', INDETERMINATE) -sofa = getattr(IfcFurnitureTypeEnum, 'SOFA', INDETERMINATE) -technicalcabinet = getattr(IfcFurnitureTypeEnum, 'TECHNICALCABINET', INDETERMINATE) -userdefined = getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFurnitureTypeEnum, 'NOTDEFINED', INDETERMINATE) +chair = IfcFurnitureTypeEnum.CHAIR +table = IfcFurnitureTypeEnum.TABLE +desk = IfcFurnitureTypeEnum.DESK +bed = IfcFurnitureTypeEnum.BED +filecabinet = IfcFurnitureTypeEnum.FILECABINET +shelf = IfcFurnitureTypeEnum.SHELF +sofa = IfcFurnitureTypeEnum.SOFA +technicalcabinet = IfcFurnitureTypeEnum.TECHNICALCABINET +userdefined = IfcFurnitureTypeEnum.USERDEFINED +notdefined = IfcFurnitureTypeEnum.NOTDEFINED IfcGeographicElementTypeEnum = enum_namespace() -terrain = getattr(IfcGeographicElementTypeEnum, 'TERRAIN', INDETERMINATE) -soil_boring_point = getattr(IfcGeographicElementTypeEnum, 'SOIL_BORING_POINT', INDETERMINATE) -userdefined = getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGeographicElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +terrain = IfcGeographicElementTypeEnum.TERRAIN +soil_boring_point = IfcGeographicElementTypeEnum.SOIL_BORING_POINT +userdefined = IfcGeographicElementTypeEnum.USERDEFINED +notdefined = IfcGeographicElementTypeEnum.NOTDEFINED IfcGeometricProjectionEnum = enum_namespace() -graph_view = getattr(IfcGeometricProjectionEnum, 'GRAPH_VIEW', INDETERMINATE) -sketch_view = getattr(IfcGeometricProjectionEnum, 'SKETCH_VIEW', INDETERMINATE) -model_view = getattr(IfcGeometricProjectionEnum, 'MODEL_VIEW', INDETERMINATE) -plan_view = getattr(IfcGeometricProjectionEnum, 'PLAN_VIEW', INDETERMINATE) -reflected_plan_view = getattr(IfcGeometricProjectionEnum, 'REFLECTED_PLAN_VIEW', INDETERMINATE) -section_view = getattr(IfcGeometricProjectionEnum, 'SECTION_VIEW', INDETERMINATE) -elevation_view = getattr(IfcGeometricProjectionEnum, 'ELEVATION_VIEW', INDETERMINATE) -userdefined = getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGeometricProjectionEnum, 'NOTDEFINED', INDETERMINATE) +graph_view = IfcGeometricProjectionEnum.GRAPH_VIEW +sketch_view = IfcGeometricProjectionEnum.SKETCH_VIEW +model_view = IfcGeometricProjectionEnum.MODEL_VIEW +plan_view = IfcGeometricProjectionEnum.PLAN_VIEW +reflected_plan_view = IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW +section_view = IfcGeometricProjectionEnum.SECTION_VIEW +elevation_view = IfcGeometricProjectionEnum.ELEVATION_VIEW +userdefined = IfcGeometricProjectionEnum.USERDEFINED +notdefined = IfcGeometricProjectionEnum.NOTDEFINED IfcGlobalOrLocalEnum = enum_namespace() -global_coords = getattr(IfcGlobalOrLocalEnum, 'GLOBAL_COORDS', INDETERMINATE) -local_coords = getattr(IfcGlobalOrLocalEnum, 'LOCAL_COORDS', INDETERMINATE) +global_coords = IfcGlobalOrLocalEnum.GLOBAL_COORDS +local_coords = IfcGlobalOrLocalEnum.LOCAL_COORDS IfcGridTypeEnum = enum_namespace() -rectangular = getattr(IfcGridTypeEnum, 'RECTANGULAR', INDETERMINATE) -radial = getattr(IfcGridTypeEnum, 'RADIAL', INDETERMINATE) -triangular = getattr(IfcGridTypeEnum, 'TRIANGULAR', INDETERMINATE) -irregular = getattr(IfcGridTypeEnum, 'IRREGULAR', INDETERMINATE) -userdefined = getattr(IfcGridTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGridTypeEnum, 'NOTDEFINED', INDETERMINATE) +rectangular = IfcGridTypeEnum.RECTANGULAR +radial = IfcGridTypeEnum.RADIAL +triangular = IfcGridTypeEnum.TRIANGULAR +irregular = IfcGridTypeEnum.IRREGULAR +userdefined = IfcGridTypeEnum.USERDEFINED +notdefined = IfcGridTypeEnum.NOTDEFINED IfcHeatExchangerTypeEnum = enum_namespace() -plate = getattr(IfcHeatExchangerTypeEnum, 'PLATE', INDETERMINATE) -shellandtube = getattr(IfcHeatExchangerTypeEnum, 'SHELLANDTUBE', INDETERMINATE) -turnoutheating = getattr(IfcHeatExchangerTypeEnum, 'TURNOUTHEATING', INDETERMINATE) -userdefined = getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcHeatExchangerTypeEnum, 'NOTDEFINED', INDETERMINATE) +plate = IfcHeatExchangerTypeEnum.PLATE +shellandtube = IfcHeatExchangerTypeEnum.SHELLANDTUBE +turnoutheating = IfcHeatExchangerTypeEnum.TURNOUTHEATING +userdefined = IfcHeatExchangerTypeEnum.USERDEFINED +notdefined = IfcHeatExchangerTypeEnum.NOTDEFINED IfcHumidifierTypeEnum = enum_namespace() -steaminjection = getattr(IfcHumidifierTypeEnum, 'STEAMINJECTION', INDETERMINATE) -adiabaticairwasher = getattr(IfcHumidifierTypeEnum, 'ADIABATICAIRWASHER', INDETERMINATE) -adiabaticpan = getattr(IfcHumidifierTypeEnum, 'ADIABATICPAN', INDETERMINATE) -adiabaticwettedelement = getattr(IfcHumidifierTypeEnum, 'ADIABATICWETTEDELEMENT', INDETERMINATE) -adiabaticatomizing = getattr(IfcHumidifierTypeEnum, 'ADIABATICATOMIZING', INDETERMINATE) -adiabaticultrasonic = getattr(IfcHumidifierTypeEnum, 'ADIABATICULTRASONIC', INDETERMINATE) -adiabaticrigidmedia = getattr(IfcHumidifierTypeEnum, 'ADIABATICRIGIDMEDIA', INDETERMINATE) -adiabaticcompressedairnozzle = getattr(IfcHumidifierTypeEnum, 'ADIABATICCOMPRESSEDAIRNOZZLE', INDETERMINATE) -assistedelectric = getattr(IfcHumidifierTypeEnum, 'ASSISTEDELECTRIC', INDETERMINATE) -assistednaturalgas = getattr(IfcHumidifierTypeEnum, 'ASSISTEDNATURALGAS', INDETERMINATE) -assistedpropane = getattr(IfcHumidifierTypeEnum, 'ASSISTEDPROPANE', INDETERMINATE) -assistedbutane = getattr(IfcHumidifierTypeEnum, 'ASSISTEDBUTANE', INDETERMINATE) -assistedsteam = getattr(IfcHumidifierTypeEnum, 'ASSISTEDSTEAM', INDETERMINATE) -userdefined = getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcHumidifierTypeEnum, 'NOTDEFINED', INDETERMINATE) +steaminjection = IfcHumidifierTypeEnum.STEAMINJECTION +adiabaticairwasher = IfcHumidifierTypeEnum.ADIABATICAIRWASHER +adiabaticpan = IfcHumidifierTypeEnum.ADIABATICPAN +adiabaticwettedelement = IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT +adiabaticatomizing = IfcHumidifierTypeEnum.ADIABATICATOMIZING +adiabaticultrasonic = IfcHumidifierTypeEnum.ADIABATICULTRASONIC +adiabaticrigidmedia = IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA +adiabaticcompressedairnozzle = IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE +assistedelectric = IfcHumidifierTypeEnum.ASSISTEDELECTRIC +assistednaturalgas = IfcHumidifierTypeEnum.ASSISTEDNATURALGAS +assistedpropane = IfcHumidifierTypeEnum.ASSISTEDPROPANE +assistedbutane = IfcHumidifierTypeEnum.ASSISTEDBUTANE +assistedsteam = IfcHumidifierTypeEnum.ASSISTEDSTEAM +userdefined = IfcHumidifierTypeEnum.USERDEFINED +notdefined = IfcHumidifierTypeEnum.NOTDEFINED IfcImpactProtectionDeviceTypeEnum = enum_namespace() -crashcushion = getattr(IfcImpactProtectionDeviceTypeEnum, 'CRASHCUSHION', INDETERMINATE) -dampingsystem = getattr(IfcImpactProtectionDeviceTypeEnum, 'DAMPINGSYSTEM', INDETERMINATE) -fender = getattr(IfcImpactProtectionDeviceTypeEnum, 'FENDER', INDETERMINATE) -bumper = getattr(IfcImpactProtectionDeviceTypeEnum, 'BUMPER', INDETERMINATE) -userdefined = getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcImpactProtectionDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +crashcushion = IfcImpactProtectionDeviceTypeEnum.CRASHCUSHION +dampingsystem = IfcImpactProtectionDeviceTypeEnum.DAMPINGSYSTEM +fender = IfcImpactProtectionDeviceTypeEnum.FENDER +bumper = IfcImpactProtectionDeviceTypeEnum.BUMPER +userdefined = IfcImpactProtectionDeviceTypeEnum.USERDEFINED +notdefined = IfcImpactProtectionDeviceTypeEnum.NOTDEFINED IfcInterceptorTypeEnum = enum_namespace() -cyclonic = getattr(IfcInterceptorTypeEnum, 'CYCLONIC', INDETERMINATE) -grease = getattr(IfcInterceptorTypeEnum, 'GREASE', INDETERMINATE) -oil = getattr(IfcInterceptorTypeEnum, 'OIL', INDETERMINATE) -petrol = getattr(IfcInterceptorTypeEnum, 'PETROL', INDETERMINATE) -userdefined = getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcInterceptorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cyclonic = IfcInterceptorTypeEnum.CYCLONIC +grease = IfcInterceptorTypeEnum.GREASE +oil = IfcInterceptorTypeEnum.OIL +petrol = IfcInterceptorTypeEnum.PETROL +userdefined = IfcInterceptorTypeEnum.USERDEFINED +notdefined = IfcInterceptorTypeEnum.NOTDEFINED IfcInternalOrExternalEnum = enum_namespace() -internal = getattr(IfcInternalOrExternalEnum, 'INTERNAL', INDETERMINATE) -external = getattr(IfcInternalOrExternalEnum, 'EXTERNAL', INDETERMINATE) -external_earth = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_water = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_WATER', INDETERMINATE) -external_fire = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_FIRE', INDETERMINATE) -notdefined = getattr(IfcInternalOrExternalEnum, 'NOTDEFINED', INDETERMINATE) +internal = IfcInternalOrExternalEnum.INTERNAL +external = IfcInternalOrExternalEnum.EXTERNAL +external_earth = IfcInternalOrExternalEnum.EXTERNAL_EARTH +external_water = IfcInternalOrExternalEnum.EXTERNAL_WATER +external_fire = IfcInternalOrExternalEnum.EXTERNAL_FIRE +notdefined = IfcInternalOrExternalEnum.NOTDEFINED IfcInventoryTypeEnum = enum_namespace() -assetinventory = getattr(IfcInventoryTypeEnum, 'ASSETINVENTORY', INDETERMINATE) -spaceinventory = getattr(IfcInventoryTypeEnum, 'SPACEINVENTORY', INDETERMINATE) -furnitureinventory = getattr(IfcInventoryTypeEnum, 'FURNITUREINVENTORY', INDETERMINATE) -userdefined = getattr(IfcInventoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcInventoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +assetinventory = IfcInventoryTypeEnum.ASSETINVENTORY +spaceinventory = IfcInventoryTypeEnum.SPACEINVENTORY +furnitureinventory = IfcInventoryTypeEnum.FURNITUREINVENTORY +userdefined = IfcInventoryTypeEnum.USERDEFINED +notdefined = IfcInventoryTypeEnum.NOTDEFINED IfcJunctionBoxTypeEnum = enum_namespace() -data = getattr(IfcJunctionBoxTypeEnum, 'DATA', INDETERMINATE) -power = getattr(IfcJunctionBoxTypeEnum, 'POWER', INDETERMINATE) -userdefined = getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcJunctionBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +data = IfcJunctionBoxTypeEnum.DATA +power = IfcJunctionBoxTypeEnum.POWER +userdefined = IfcJunctionBoxTypeEnum.USERDEFINED +notdefined = IfcJunctionBoxTypeEnum.NOTDEFINED IfcKnotType = enum_namespace() -uniform_knots = getattr(IfcKnotType, 'UNIFORM_KNOTS', INDETERMINATE) -quasi_uniform_knots = getattr(IfcKnotType, 'QUASI_UNIFORM_KNOTS', INDETERMINATE) -piecewise_bezier_knots = getattr(IfcKnotType, 'PIECEWISE_BEZIER_KNOTS', INDETERMINATE) -unspecified = getattr(IfcKnotType, 'UNSPECIFIED', INDETERMINATE) +uniform_knots = IfcKnotType.UNIFORM_KNOTS +quasi_uniform_knots = IfcKnotType.QUASI_UNIFORM_KNOTS +piecewise_bezier_knots = IfcKnotType.PIECEWISE_BEZIER_KNOTS +unspecified = IfcKnotType.UNSPECIFIED IfcLaborResourceTypeEnum = enum_namespace() -administration = getattr(IfcLaborResourceTypeEnum, 'ADMINISTRATION', INDETERMINATE) -carpentry = getattr(IfcLaborResourceTypeEnum, 'CARPENTRY', INDETERMINATE) -cleaning = getattr(IfcLaborResourceTypeEnum, 'CLEANING', INDETERMINATE) -concrete = getattr(IfcLaborResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = getattr(IfcLaborResourceTypeEnum, 'DRYWALL', INDETERMINATE) -electric = getattr(IfcLaborResourceTypeEnum, 'ELECTRIC', INDETERMINATE) -finishing = getattr(IfcLaborResourceTypeEnum, 'FINISHING', INDETERMINATE) -flooring = getattr(IfcLaborResourceTypeEnum, 'FLOORING', INDETERMINATE) -general = getattr(IfcLaborResourceTypeEnum, 'GENERAL', INDETERMINATE) -hvac = getattr(IfcLaborResourceTypeEnum, 'HVAC', INDETERMINATE) -landscaping = getattr(IfcLaborResourceTypeEnum, 'LANDSCAPING', INDETERMINATE) -masonry = getattr(IfcLaborResourceTypeEnum, 'MASONRY', INDETERMINATE) -painting = getattr(IfcLaborResourceTypeEnum, 'PAINTING', INDETERMINATE) -paving = getattr(IfcLaborResourceTypeEnum, 'PAVING', INDETERMINATE) -plumbing = getattr(IfcLaborResourceTypeEnum, 'PLUMBING', INDETERMINATE) -roofing = getattr(IfcLaborResourceTypeEnum, 'ROOFING', INDETERMINATE) -sitegrading = getattr(IfcLaborResourceTypeEnum, 'SITEGRADING', INDETERMINATE) -steelwork = getattr(IfcLaborResourceTypeEnum, 'STEELWORK', INDETERMINATE) -surveying = getattr(IfcLaborResourceTypeEnum, 'SURVEYING', INDETERMINATE) -userdefined = getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLaborResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +administration = IfcLaborResourceTypeEnum.ADMINISTRATION +carpentry = IfcLaborResourceTypeEnum.CARPENTRY +cleaning = IfcLaborResourceTypeEnum.CLEANING +concrete = IfcLaborResourceTypeEnum.CONCRETE +drywall = IfcLaborResourceTypeEnum.DRYWALL +electric = IfcLaborResourceTypeEnum.ELECTRIC +finishing = IfcLaborResourceTypeEnum.FINISHING +flooring = IfcLaborResourceTypeEnum.FLOORING +general = IfcLaborResourceTypeEnum.GENERAL +hvac = IfcLaborResourceTypeEnum.HVAC +landscaping = IfcLaborResourceTypeEnum.LANDSCAPING +masonry = IfcLaborResourceTypeEnum.MASONRY +painting = IfcLaborResourceTypeEnum.PAINTING +paving = IfcLaborResourceTypeEnum.PAVING +plumbing = IfcLaborResourceTypeEnum.PLUMBING +roofing = IfcLaborResourceTypeEnum.ROOFING +sitegrading = IfcLaborResourceTypeEnum.SITEGRADING +steelwork = IfcLaborResourceTypeEnum.STEELWORK +surveying = IfcLaborResourceTypeEnum.SURVEYING +userdefined = IfcLaborResourceTypeEnum.USERDEFINED +notdefined = IfcLaborResourceTypeEnum.NOTDEFINED IfcLampTypeEnum = enum_namespace() -compactfluorescent = getattr(IfcLampTypeEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = getattr(IfcLampTypeEnum, 'FLUORESCENT', INDETERMINATE) -halogen = getattr(IfcLampTypeEnum, 'HALOGEN', INDETERMINATE) -highpressuremercury = getattr(IfcLampTypeEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = getattr(IfcLampTypeEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -led = getattr(IfcLampTypeEnum, 'LED', INDETERMINATE) -metalhalide = getattr(IfcLampTypeEnum, 'METALHALIDE', INDETERMINATE) -oled = getattr(IfcLampTypeEnum, 'OLED', INDETERMINATE) -tungstenfilament = getattr(IfcLampTypeEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -userdefined = getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLampTypeEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLampTypeEnum.COMPACTFLUORESCENT +fluorescent = IfcLampTypeEnum.FLUORESCENT +halogen = IfcLampTypeEnum.HALOGEN +highpressuremercury = IfcLampTypeEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLampTypeEnum.HIGHPRESSURESODIUM +led = IfcLampTypeEnum.LED +metalhalide = IfcLampTypeEnum.METALHALIDE +oled = IfcLampTypeEnum.OLED +tungstenfilament = IfcLampTypeEnum.TUNGSTENFILAMENT +userdefined = IfcLampTypeEnum.USERDEFINED +notdefined = IfcLampTypeEnum.NOTDEFINED IfcLayerSetDirectionEnum = enum_namespace() -axis1 = getattr(IfcLayerSetDirectionEnum, 'AXIS1', INDETERMINATE) -axis2 = getattr(IfcLayerSetDirectionEnum, 'AXIS2', INDETERMINATE) -axis3 = getattr(IfcLayerSetDirectionEnum, 'AXIS3', INDETERMINATE) +axis1 = IfcLayerSetDirectionEnum.AXIS1 +axis2 = IfcLayerSetDirectionEnum.AXIS2 +axis3 = IfcLayerSetDirectionEnum.AXIS3 IfcLightDistributionCurveEnum = enum_namespace() -type_a = getattr(IfcLightDistributionCurveEnum, 'TYPE_A', INDETERMINATE) -type_b = getattr(IfcLightDistributionCurveEnum, 'TYPE_B', INDETERMINATE) -type_c = getattr(IfcLightDistributionCurveEnum, 'TYPE_C', INDETERMINATE) -notdefined = getattr(IfcLightDistributionCurveEnum, 'NOTDEFINED', INDETERMINATE) +type_a = IfcLightDistributionCurveEnum.TYPE_A +type_b = IfcLightDistributionCurveEnum.TYPE_B +type_c = IfcLightDistributionCurveEnum.TYPE_C +notdefined = IfcLightDistributionCurveEnum.NOTDEFINED IfcLightEmissionSourceEnum = enum_namespace() -compactfluorescent = getattr(IfcLightEmissionSourceEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = getattr(IfcLightEmissionSourceEnum, 'FLUORESCENT', INDETERMINATE) -highpressuremercury = getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -lightemittingdiode = getattr(IfcLightEmissionSourceEnum, 'LIGHTEMITTINGDIODE', INDETERMINATE) -lowpressuresodium = getattr(IfcLightEmissionSourceEnum, 'LOWPRESSURESODIUM', INDETERMINATE) -lowvoltagehalogen = getattr(IfcLightEmissionSourceEnum, 'LOWVOLTAGEHALOGEN', INDETERMINATE) -mainvoltagehalogen = getattr(IfcLightEmissionSourceEnum, 'MAINVOLTAGEHALOGEN', INDETERMINATE) -metalhalide = getattr(IfcLightEmissionSourceEnum, 'METALHALIDE', INDETERMINATE) -tungstenfilament = getattr(IfcLightEmissionSourceEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -notdefined = getattr(IfcLightEmissionSourceEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLightEmissionSourceEnum.COMPACTFLUORESCENT +fluorescent = IfcLightEmissionSourceEnum.FLUORESCENT +highpressuremercury = IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM +lightemittingdiode = IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE +lowpressuresodium = IfcLightEmissionSourceEnum.LOWPRESSURESODIUM +lowvoltagehalogen = IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN +mainvoltagehalogen = IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN +metalhalide = IfcLightEmissionSourceEnum.METALHALIDE +tungstenfilament = IfcLightEmissionSourceEnum.TUNGSTENFILAMENT +notdefined = IfcLightEmissionSourceEnum.NOTDEFINED IfcLightFixtureTypeEnum = enum_namespace() -pointsource = getattr(IfcLightFixtureTypeEnum, 'POINTSOURCE', INDETERMINATE) -directionsource = getattr(IfcLightFixtureTypeEnum, 'DIRECTIONSOURCE', INDETERMINATE) -securitylighting = getattr(IfcLightFixtureTypeEnum, 'SECURITYLIGHTING', INDETERMINATE) -userdefined = getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLightFixtureTypeEnum, 'NOTDEFINED', INDETERMINATE) +pointsource = IfcLightFixtureTypeEnum.POINTSOURCE +directionsource = IfcLightFixtureTypeEnum.DIRECTIONSOURCE +securitylighting = IfcLightFixtureTypeEnum.SECURITYLIGHTING +userdefined = IfcLightFixtureTypeEnum.USERDEFINED +notdefined = IfcLightFixtureTypeEnum.NOTDEFINED IfcLiquidTerminalTypeEnum = enum_namespace() -loadingarm = getattr(IfcLiquidTerminalTypeEnum, 'LOADINGARM', INDETERMINATE) -hosereel = getattr(IfcLiquidTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -userdefined = getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLiquidTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +loadingarm = IfcLiquidTerminalTypeEnum.LOADINGARM +hosereel = IfcLiquidTerminalTypeEnum.HOSEREEL +userdefined = IfcLiquidTerminalTypeEnum.USERDEFINED +notdefined = IfcLiquidTerminalTypeEnum.NOTDEFINED IfcLoadGroupTypeEnum = enum_namespace() -load_group = getattr(IfcLoadGroupTypeEnum, 'LOAD_GROUP', INDETERMINATE) -load_case = getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE) -load_combination = getattr(IfcLoadGroupTypeEnum, 'LOAD_COMBINATION', INDETERMINATE) -userdefined = getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLoadGroupTypeEnum, 'NOTDEFINED', INDETERMINATE) +load_group = IfcLoadGroupTypeEnum.LOAD_GROUP +load_case = IfcLoadGroupTypeEnum.LOAD_CASE +load_combination = IfcLoadGroupTypeEnum.LOAD_COMBINATION +userdefined = IfcLoadGroupTypeEnum.USERDEFINED +notdefined = IfcLoadGroupTypeEnum.NOTDEFINED IfcLogicalOperatorEnum = enum_namespace() -logicaland = getattr(IfcLogicalOperatorEnum, 'LOGICALAND', INDETERMINATE) -logicalor = getattr(IfcLogicalOperatorEnum, 'LOGICALOR', INDETERMINATE) -logicalxor = getattr(IfcLogicalOperatorEnum, 'LOGICALXOR', INDETERMINATE) -logicalnotand = getattr(IfcLogicalOperatorEnum, 'LOGICALNOTAND', INDETERMINATE) -logicalnotor = getattr(IfcLogicalOperatorEnum, 'LOGICALNOTOR', INDETERMINATE) +logicaland = IfcLogicalOperatorEnum.LOGICALAND +logicalor = IfcLogicalOperatorEnum.LOGICALOR +logicalxor = IfcLogicalOperatorEnum.LOGICALXOR +logicalnotand = IfcLogicalOperatorEnum.LOGICALNOTAND +logicalnotor = IfcLogicalOperatorEnum.LOGICALNOTOR IfcMarineFacilityTypeEnum = enum_namespace() -canal = getattr(IfcMarineFacilityTypeEnum, 'CANAL', INDETERMINATE) -waterwayshiplift = getattr(IfcMarineFacilityTypeEnum, 'WATERWAYSHIPLIFT', INDETERMINATE) -revetment = getattr(IfcMarineFacilityTypeEnum, 'REVETMENT', INDETERMINATE) -launchrecovery = getattr(IfcMarineFacilityTypeEnum, 'LAUNCHRECOVERY', INDETERMINATE) -marinedefence = getattr(IfcMarineFacilityTypeEnum, 'MARINEDEFENCE', INDETERMINATE) -hydrolift = getattr(IfcMarineFacilityTypeEnum, 'HYDROLIFT', INDETERMINATE) -shipyard = getattr(IfcMarineFacilityTypeEnum, 'SHIPYARD', INDETERMINATE) -shiplift = getattr(IfcMarineFacilityTypeEnum, 'SHIPLIFT', INDETERMINATE) -port = getattr(IfcMarineFacilityTypeEnum, 'PORT', INDETERMINATE) -quay = getattr(IfcMarineFacilityTypeEnum, 'QUAY', INDETERMINATE) -floatingdock = getattr(IfcMarineFacilityTypeEnum, 'FLOATINGDOCK', INDETERMINATE) -navigationalchannel = getattr(IfcMarineFacilityTypeEnum, 'NAVIGATIONALCHANNEL', INDETERMINATE) -breakwater = getattr(IfcMarineFacilityTypeEnum, 'BREAKWATER', INDETERMINATE) -drydock = getattr(IfcMarineFacilityTypeEnum, 'DRYDOCK', INDETERMINATE) -jetty = getattr(IfcMarineFacilityTypeEnum, 'JETTY', INDETERMINATE) -shiplock = getattr(IfcMarineFacilityTypeEnum, 'SHIPLOCK', INDETERMINATE) -barrierbeach = getattr(IfcMarineFacilityTypeEnum, 'BARRIERBEACH', INDETERMINATE) -slipway = getattr(IfcMarineFacilityTypeEnum, 'SLIPWAY', INDETERMINATE) -waterway = getattr(IfcMarineFacilityTypeEnum, 'WATERWAY', INDETERMINATE) -userdefined = getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMarineFacilityTypeEnum, 'NOTDEFINED', INDETERMINATE) +canal = IfcMarineFacilityTypeEnum.CANAL +waterwayshiplift = IfcMarineFacilityTypeEnum.WATERWAYSHIPLIFT +revetment = IfcMarineFacilityTypeEnum.REVETMENT +launchrecovery = IfcMarineFacilityTypeEnum.LAUNCHRECOVERY +marinedefence = IfcMarineFacilityTypeEnum.MARINEDEFENCE +hydrolift = IfcMarineFacilityTypeEnum.HYDROLIFT +shipyard = IfcMarineFacilityTypeEnum.SHIPYARD +shiplift = IfcMarineFacilityTypeEnum.SHIPLIFT +port = IfcMarineFacilityTypeEnum.PORT +quay = IfcMarineFacilityTypeEnum.QUAY +floatingdock = IfcMarineFacilityTypeEnum.FLOATINGDOCK +navigationalchannel = IfcMarineFacilityTypeEnum.NAVIGATIONALCHANNEL +breakwater = IfcMarineFacilityTypeEnum.BREAKWATER +drydock = IfcMarineFacilityTypeEnum.DRYDOCK +jetty = IfcMarineFacilityTypeEnum.JETTY +shiplock = IfcMarineFacilityTypeEnum.SHIPLOCK +barrierbeach = IfcMarineFacilityTypeEnum.BARRIERBEACH +slipway = IfcMarineFacilityTypeEnum.SLIPWAY +waterway = IfcMarineFacilityTypeEnum.WATERWAY +userdefined = IfcMarineFacilityTypeEnum.USERDEFINED +notdefined = IfcMarineFacilityTypeEnum.NOTDEFINED IfcMarinePartTypeEnum = enum_namespace() -crest = getattr(IfcMarinePartTypeEnum, 'CREST', INDETERMINATE) -manufacturing = getattr(IfcMarinePartTypeEnum, 'MANUFACTURING', INDETERMINATE) -lowwaterline = getattr(IfcMarinePartTypeEnum, 'LOWWATERLINE', INDETERMINATE) -core = getattr(IfcMarinePartTypeEnum, 'CORE', INDETERMINATE) -waterfield = getattr(IfcMarinePartTypeEnum, 'WATERFIELD', INDETERMINATE) -cill_level = getattr(IfcMarinePartTypeEnum, 'CILL_LEVEL', INDETERMINATE) -berthingstructure = getattr(IfcMarinePartTypeEnum, 'BERTHINGSTRUCTURE', INDETERMINATE) -copelevel = getattr(IfcMarinePartTypeEnum, 'COPELEVEL', INDETERMINATE) -chamber = getattr(IfcMarinePartTypeEnum, 'CHAMBER', INDETERMINATE) -storagearea = getattr(IfcMarinePartTypeEnum, 'STORAGEAREA', INDETERMINATE) -approachchannel = getattr(IfcMarinePartTypeEnum, 'APPROACHCHANNEL', INDETERMINATE) -vehicleservicing = getattr(IfcMarinePartTypeEnum, 'VEHICLESERVICING', INDETERMINATE) -shiptransfer = getattr(IfcMarinePartTypeEnum, 'SHIPTRANSFER', INDETERMINATE) -gatehead = getattr(IfcMarinePartTypeEnum, 'GATEHEAD', INDETERMINATE) -gudingstructure = getattr(IfcMarinePartTypeEnum, 'GUDINGSTRUCTURE', INDETERMINATE) -belowwaterline = getattr(IfcMarinePartTypeEnum, 'BELOWWATERLINE', INDETERMINATE) -weatherside = getattr(IfcMarinePartTypeEnum, 'WEATHERSIDE', INDETERMINATE) -landfield = getattr(IfcMarinePartTypeEnum, 'LANDFIELD', INDETERMINATE) -protection = getattr(IfcMarinePartTypeEnum, 'PROTECTION', INDETERMINATE) -leewardside = getattr(IfcMarinePartTypeEnum, 'LEEWARDSIDE', INDETERMINATE) -abovewaterline = getattr(IfcMarinePartTypeEnum, 'ABOVEWATERLINE', INDETERMINATE) -anchorage = getattr(IfcMarinePartTypeEnum, 'ANCHORAGE', INDETERMINATE) -navigationalarea = getattr(IfcMarinePartTypeEnum, 'NAVIGATIONALAREA', INDETERMINATE) -highwaterline = getattr(IfcMarinePartTypeEnum, 'HIGHWATERLINE', INDETERMINATE) -userdefined = getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMarinePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +crest = IfcMarinePartTypeEnum.CREST +manufacturing = IfcMarinePartTypeEnum.MANUFACTURING +lowwaterline = IfcMarinePartTypeEnum.LOWWATERLINE +core = IfcMarinePartTypeEnum.CORE +waterfield = IfcMarinePartTypeEnum.WATERFIELD +cill_level = IfcMarinePartTypeEnum.CILL_LEVEL +berthingstructure = IfcMarinePartTypeEnum.BERTHINGSTRUCTURE +copelevel = IfcMarinePartTypeEnum.COPELEVEL +chamber = IfcMarinePartTypeEnum.CHAMBER +storagearea = IfcMarinePartTypeEnum.STORAGEAREA +approachchannel = IfcMarinePartTypeEnum.APPROACHCHANNEL +vehicleservicing = IfcMarinePartTypeEnum.VEHICLESERVICING +shiptransfer = IfcMarinePartTypeEnum.SHIPTRANSFER +gatehead = IfcMarinePartTypeEnum.GATEHEAD +gudingstructure = IfcMarinePartTypeEnum.GUDINGSTRUCTURE +belowwaterline = IfcMarinePartTypeEnum.BELOWWATERLINE +weatherside = IfcMarinePartTypeEnum.WEATHERSIDE +landfield = IfcMarinePartTypeEnum.LANDFIELD +protection = IfcMarinePartTypeEnum.PROTECTION +leewardside = IfcMarinePartTypeEnum.LEEWARDSIDE +abovewaterline = IfcMarinePartTypeEnum.ABOVEWATERLINE +anchorage = IfcMarinePartTypeEnum.ANCHORAGE +navigationalarea = IfcMarinePartTypeEnum.NAVIGATIONALAREA +highwaterline = IfcMarinePartTypeEnum.HIGHWATERLINE +userdefined = IfcMarinePartTypeEnum.USERDEFINED +notdefined = IfcMarinePartTypeEnum.NOTDEFINED IfcMechanicalFastenerTypeEnum = enum_namespace() -anchorbolt = getattr(IfcMechanicalFastenerTypeEnum, 'ANCHORBOLT', INDETERMINATE) -bolt = getattr(IfcMechanicalFastenerTypeEnum, 'BOLT', INDETERMINATE) -dowel = getattr(IfcMechanicalFastenerTypeEnum, 'DOWEL', INDETERMINATE) -nail = getattr(IfcMechanicalFastenerTypeEnum, 'NAIL', INDETERMINATE) -nailplate = getattr(IfcMechanicalFastenerTypeEnum, 'NAILPLATE', INDETERMINATE) -rivet = getattr(IfcMechanicalFastenerTypeEnum, 'RIVET', INDETERMINATE) -screw = getattr(IfcMechanicalFastenerTypeEnum, 'SCREW', INDETERMINATE) -shearconnector = getattr(IfcMechanicalFastenerTypeEnum, 'SHEARCONNECTOR', INDETERMINATE) -staple = getattr(IfcMechanicalFastenerTypeEnum, 'STAPLE', INDETERMINATE) -studshearconnector = getattr(IfcMechanicalFastenerTypeEnum, 'STUDSHEARCONNECTOR', INDETERMINATE) -coupler = getattr(IfcMechanicalFastenerTypeEnum, 'COUPLER', INDETERMINATE) -railjoint = getattr(IfcMechanicalFastenerTypeEnum, 'RAILJOINT', INDETERMINATE) -railfastening = getattr(IfcMechanicalFastenerTypeEnum, 'RAILFASTENING', INDETERMINATE) -chain = getattr(IfcMechanicalFastenerTypeEnum, 'CHAIN', INDETERMINATE) -rope = getattr(IfcMechanicalFastenerTypeEnum, 'ROPE', INDETERMINATE) -userdefined = getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMechanicalFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorbolt = IfcMechanicalFastenerTypeEnum.ANCHORBOLT +bolt = IfcMechanicalFastenerTypeEnum.BOLT +dowel = IfcMechanicalFastenerTypeEnum.DOWEL +nail = IfcMechanicalFastenerTypeEnum.NAIL +nailplate = IfcMechanicalFastenerTypeEnum.NAILPLATE +rivet = IfcMechanicalFastenerTypeEnum.RIVET +screw = IfcMechanicalFastenerTypeEnum.SCREW +shearconnector = IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR +staple = IfcMechanicalFastenerTypeEnum.STAPLE +studshearconnector = IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR +coupler = IfcMechanicalFastenerTypeEnum.COUPLER +railjoint = IfcMechanicalFastenerTypeEnum.RAILJOINT +railfastening = IfcMechanicalFastenerTypeEnum.RAILFASTENING +chain = IfcMechanicalFastenerTypeEnum.CHAIN +rope = IfcMechanicalFastenerTypeEnum.ROPE +userdefined = IfcMechanicalFastenerTypeEnum.USERDEFINED +notdefined = IfcMechanicalFastenerTypeEnum.NOTDEFINED IfcMedicalDeviceTypeEnum = enum_namespace() -airstation = getattr(IfcMedicalDeviceTypeEnum, 'AIRSTATION', INDETERMINATE) -feedairunit = getattr(IfcMedicalDeviceTypeEnum, 'FEEDAIRUNIT', INDETERMINATE) -oxygengenerator = getattr(IfcMedicalDeviceTypeEnum, 'OXYGENGENERATOR', INDETERMINATE) -oxygenplant = getattr(IfcMedicalDeviceTypeEnum, 'OXYGENPLANT', INDETERMINATE) -vacuumstation = getattr(IfcMedicalDeviceTypeEnum, 'VACUUMSTATION', INDETERMINATE) -userdefined = getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMedicalDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +airstation = IfcMedicalDeviceTypeEnum.AIRSTATION +feedairunit = IfcMedicalDeviceTypeEnum.FEEDAIRUNIT +oxygengenerator = IfcMedicalDeviceTypeEnum.OXYGENGENERATOR +oxygenplant = IfcMedicalDeviceTypeEnum.OXYGENPLANT +vacuumstation = IfcMedicalDeviceTypeEnum.VACUUMSTATION +userdefined = IfcMedicalDeviceTypeEnum.USERDEFINED +notdefined = IfcMedicalDeviceTypeEnum.NOTDEFINED IfcMemberTypeEnum = enum_namespace() -brace = getattr(IfcMemberTypeEnum, 'BRACE', INDETERMINATE) -chord = getattr(IfcMemberTypeEnum, 'CHORD', INDETERMINATE) -collar = getattr(IfcMemberTypeEnum, 'COLLAR', INDETERMINATE) -member = getattr(IfcMemberTypeEnum, 'MEMBER', INDETERMINATE) -mullion = getattr(IfcMemberTypeEnum, 'MULLION', INDETERMINATE) -plate = getattr(IfcMemberTypeEnum, 'PLATE', INDETERMINATE) -post = getattr(IfcMemberTypeEnum, 'POST', INDETERMINATE) -purlin = getattr(IfcMemberTypeEnum, 'PURLIN', INDETERMINATE) -rafter = getattr(IfcMemberTypeEnum, 'RAFTER', INDETERMINATE) -stringer = getattr(IfcMemberTypeEnum, 'STRINGER', INDETERMINATE) -strut = getattr(IfcMemberTypeEnum, 'STRUT', INDETERMINATE) -stud = getattr(IfcMemberTypeEnum, 'STUD', INDETERMINATE) -stiffening_rib = getattr(IfcMemberTypeEnum, 'STIFFENING_RIB', INDETERMINATE) -arch_segment = getattr(IfcMemberTypeEnum, 'ARCH_SEGMENT', INDETERMINATE) -suspension_cable = getattr(IfcMemberTypeEnum, 'SUSPENSION_CABLE', INDETERMINATE) -suspender = getattr(IfcMemberTypeEnum, 'SUSPENDER', INDETERMINATE) -stay_cable = getattr(IfcMemberTypeEnum, 'STAY_CABLE', INDETERMINATE) -structuralcable = getattr(IfcMemberTypeEnum, 'STRUCTURALCABLE', INDETERMINATE) -tiebar = getattr(IfcMemberTypeEnum, 'TIEBAR', INDETERMINATE) -userdefined = getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +brace = IfcMemberTypeEnum.BRACE +chord = IfcMemberTypeEnum.CHORD +collar = IfcMemberTypeEnum.COLLAR +member = IfcMemberTypeEnum.MEMBER +mullion = IfcMemberTypeEnum.MULLION +plate = IfcMemberTypeEnum.PLATE +post = IfcMemberTypeEnum.POST +purlin = IfcMemberTypeEnum.PURLIN +rafter = IfcMemberTypeEnum.RAFTER +stringer = IfcMemberTypeEnum.STRINGER +strut = IfcMemberTypeEnum.STRUT +stud = IfcMemberTypeEnum.STUD +stiffening_rib = IfcMemberTypeEnum.STIFFENING_RIB +arch_segment = IfcMemberTypeEnum.ARCH_SEGMENT +suspension_cable = IfcMemberTypeEnum.SUSPENSION_CABLE +suspender = IfcMemberTypeEnum.SUSPENDER +stay_cable = IfcMemberTypeEnum.STAY_CABLE +structuralcable = IfcMemberTypeEnum.STRUCTURALCABLE +tiebar = IfcMemberTypeEnum.TIEBAR +userdefined = IfcMemberTypeEnum.USERDEFINED +notdefined = IfcMemberTypeEnum.NOTDEFINED IfcMobileTelecommunicationsApplianceTypeEnum = enum_namespace() -e_utran_node_b = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'E_UTRAN_NODE_B', INDETERMINATE) -remoteradiounit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTERADIOUNIT', INDETERMINATE) -accesspoint = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'ACCESSPOINT', INDETERMINATE) -basetransceiverstation = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASETRANSCEIVERSTATION', INDETERMINATE) -remoteunit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTEUNIT', INDETERMINATE) -basebandunit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASEBANDUNIT', INDETERMINATE) -masterunit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MASTERUNIT', INDETERMINATE) -gateway_gprs_support_node = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'GATEWAY_GPRS_SUPPORT_NODE', INDETERMINATE) -subscriberserver = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'SUBSCRIBERSERVER', INDETERMINATE) -mobileswitchingcenter = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MOBILESWITCHINGCENTER', INDETERMINATE) -mscserver = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MSCSERVER', INDETERMINATE) -packetcontrolunit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'PACKETCONTROLUNIT', INDETERMINATE) -service_gprs_support_node = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'SERVICE_GPRS_SUPPORT_NODE', INDETERMINATE) -userdefined = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +e_utran_node_b = IfcMobileTelecommunicationsApplianceTypeEnum.E_UTRAN_NODE_B +remoteradiounit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTERADIOUNIT +accesspoint = IfcMobileTelecommunicationsApplianceTypeEnum.ACCESSPOINT +basetransceiverstation = IfcMobileTelecommunicationsApplianceTypeEnum.BASETRANSCEIVERSTATION +remoteunit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTEUNIT +basebandunit = IfcMobileTelecommunicationsApplianceTypeEnum.BASEBANDUNIT +masterunit = IfcMobileTelecommunicationsApplianceTypeEnum.MASTERUNIT +gateway_gprs_support_node = IfcMobileTelecommunicationsApplianceTypeEnum.GATEWAY_GPRS_SUPPORT_NODE +subscriberserver = IfcMobileTelecommunicationsApplianceTypeEnum.SUBSCRIBERSERVER +mobileswitchingcenter = IfcMobileTelecommunicationsApplianceTypeEnum.MOBILESWITCHINGCENTER +mscserver = IfcMobileTelecommunicationsApplianceTypeEnum.MSCSERVER +packetcontrolunit = IfcMobileTelecommunicationsApplianceTypeEnum.PACKETCONTROLUNIT +service_gprs_support_node = IfcMobileTelecommunicationsApplianceTypeEnum.SERVICE_GPRS_SUPPORT_NODE +userdefined = IfcMobileTelecommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcMobileTelecommunicationsApplianceTypeEnum.NOTDEFINED IfcMooringDeviceTypeEnum = enum_namespace() -linetensioner = getattr(IfcMooringDeviceTypeEnum, 'LINETENSIONER', INDETERMINATE) -magneticdevice = getattr(IfcMooringDeviceTypeEnum, 'MAGNETICDEVICE', INDETERMINATE) -mooringhooks = getattr(IfcMooringDeviceTypeEnum, 'MOORINGHOOKS', INDETERMINATE) -vacuumdevice = getattr(IfcMooringDeviceTypeEnum, 'VACUUMDEVICE', INDETERMINATE) -bollard = getattr(IfcMooringDeviceTypeEnum, 'BOLLARD', INDETERMINATE) -userdefined = getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMooringDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +linetensioner = IfcMooringDeviceTypeEnum.LINETENSIONER +magneticdevice = IfcMooringDeviceTypeEnum.MAGNETICDEVICE +mooringhooks = IfcMooringDeviceTypeEnum.MOORINGHOOKS +vacuumdevice = IfcMooringDeviceTypeEnum.VACUUMDEVICE +bollard = IfcMooringDeviceTypeEnum.BOLLARD +userdefined = IfcMooringDeviceTypeEnum.USERDEFINED +notdefined = IfcMooringDeviceTypeEnum.NOTDEFINED IfcMotorConnectionTypeEnum = enum_namespace() -beltdrive = getattr(IfcMotorConnectionTypeEnum, 'BELTDRIVE', INDETERMINATE) -coupling = getattr(IfcMotorConnectionTypeEnum, 'COUPLING', INDETERMINATE) -directdrive = getattr(IfcMotorConnectionTypeEnum, 'DIRECTDRIVE', INDETERMINATE) -userdefined = getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMotorConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltdrive = IfcMotorConnectionTypeEnum.BELTDRIVE +coupling = IfcMotorConnectionTypeEnum.COUPLING +directdrive = IfcMotorConnectionTypeEnum.DIRECTDRIVE +userdefined = IfcMotorConnectionTypeEnum.USERDEFINED +notdefined = IfcMotorConnectionTypeEnum.NOTDEFINED IfcNavigationElementTypeEnum = enum_namespace() -beacon = getattr(IfcNavigationElementTypeEnum, 'BEACON', INDETERMINATE) -buoy = getattr(IfcNavigationElementTypeEnum, 'BUOY', INDETERMINATE) -userdefined = getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcNavigationElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +beacon = IfcNavigationElementTypeEnum.BEACON +buoy = IfcNavigationElementTypeEnum.BUOY +userdefined = IfcNavigationElementTypeEnum.USERDEFINED +notdefined = IfcNavigationElementTypeEnum.NOTDEFINED IfcObjectTypeEnum = enum_namespace() -product = getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE) -process = getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE) -control = getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE) -resource = getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE) -actor = getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE) -group = getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE) -project = getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE) -notdefined = getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE) +product = IfcObjectTypeEnum.PRODUCT +process = IfcObjectTypeEnum.PROCESS +control = IfcObjectTypeEnum.CONTROL +resource = IfcObjectTypeEnum.RESOURCE +actor = IfcObjectTypeEnum.ACTOR +group = IfcObjectTypeEnum.GROUP +project = IfcObjectTypeEnum.PROJECT +notdefined = IfcObjectTypeEnum.NOTDEFINED IfcObjectiveEnum = enum_namespace() -codecompliance = getattr(IfcObjectiveEnum, 'CODECOMPLIANCE', INDETERMINATE) -codewaiver = getattr(IfcObjectiveEnum, 'CODEWAIVER', INDETERMINATE) -designintent = getattr(IfcObjectiveEnum, 'DESIGNINTENT', INDETERMINATE) -external = getattr(IfcObjectiveEnum, 'EXTERNAL', INDETERMINATE) -healthandsafety = getattr(IfcObjectiveEnum, 'HEALTHANDSAFETY', INDETERMINATE) -mergeconflict = getattr(IfcObjectiveEnum, 'MERGECONFLICT', INDETERMINATE) -modelview = getattr(IfcObjectiveEnum, 'MODELVIEW', INDETERMINATE) -parameter = getattr(IfcObjectiveEnum, 'PARAMETER', INDETERMINATE) -requirement = getattr(IfcObjectiveEnum, 'REQUIREMENT', INDETERMINATE) -specification = getattr(IfcObjectiveEnum, 'SPECIFICATION', INDETERMINATE) -triggercondition = getattr(IfcObjectiveEnum, 'TRIGGERCONDITION', INDETERMINATE) -userdefined = getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcObjectiveEnum, 'NOTDEFINED', INDETERMINATE) +codecompliance = IfcObjectiveEnum.CODECOMPLIANCE +codewaiver = IfcObjectiveEnum.CODEWAIVER +designintent = IfcObjectiveEnum.DESIGNINTENT +external = IfcObjectiveEnum.EXTERNAL +healthandsafety = IfcObjectiveEnum.HEALTHANDSAFETY +mergeconflict = IfcObjectiveEnum.MERGECONFLICT +modelview = IfcObjectiveEnum.MODELVIEW +parameter = IfcObjectiveEnum.PARAMETER +requirement = IfcObjectiveEnum.REQUIREMENT +specification = IfcObjectiveEnum.SPECIFICATION +triggercondition = IfcObjectiveEnum.TRIGGERCONDITION +userdefined = IfcObjectiveEnum.USERDEFINED +notdefined = IfcObjectiveEnum.NOTDEFINED IfcOccupantTypeEnum = enum_namespace() -assignee = getattr(IfcOccupantTypeEnum, 'ASSIGNEE', INDETERMINATE) -assignor = getattr(IfcOccupantTypeEnum, 'ASSIGNOR', INDETERMINATE) -lessee = getattr(IfcOccupantTypeEnum, 'LESSEE', INDETERMINATE) -lessor = getattr(IfcOccupantTypeEnum, 'LESSOR', INDETERMINATE) -lettingagent = getattr(IfcOccupantTypeEnum, 'LETTINGAGENT', INDETERMINATE) -owner = getattr(IfcOccupantTypeEnum, 'OWNER', INDETERMINATE) -tenant = getattr(IfcOccupantTypeEnum, 'TENANT', INDETERMINATE) -userdefined = getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOccupantTypeEnum, 'NOTDEFINED', INDETERMINATE) +assignee = IfcOccupantTypeEnum.ASSIGNEE +assignor = IfcOccupantTypeEnum.ASSIGNOR +lessee = IfcOccupantTypeEnum.LESSEE +lessor = IfcOccupantTypeEnum.LESSOR +lettingagent = IfcOccupantTypeEnum.LETTINGAGENT +owner = IfcOccupantTypeEnum.OWNER +tenant = IfcOccupantTypeEnum.TENANT +userdefined = IfcOccupantTypeEnum.USERDEFINED +notdefined = IfcOccupantTypeEnum.NOTDEFINED IfcOpeningElementTypeEnum = enum_namespace() -opening = getattr(IfcOpeningElementTypeEnum, 'OPENING', INDETERMINATE) -recess = getattr(IfcOpeningElementTypeEnum, 'RECESS', INDETERMINATE) -userdefined = getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOpeningElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +opening = IfcOpeningElementTypeEnum.OPENING +recess = IfcOpeningElementTypeEnum.RECESS +userdefined = IfcOpeningElementTypeEnum.USERDEFINED +notdefined = IfcOpeningElementTypeEnum.NOTDEFINED IfcOutletTypeEnum = enum_namespace() -audiovisualoutlet = getattr(IfcOutletTypeEnum, 'AUDIOVISUALOUTLET', INDETERMINATE) -communicationsoutlet = getattr(IfcOutletTypeEnum, 'COMMUNICATIONSOUTLET', INDETERMINATE) -poweroutlet = getattr(IfcOutletTypeEnum, 'POWEROUTLET', INDETERMINATE) -dataoutlet = getattr(IfcOutletTypeEnum, 'DATAOUTLET', INDETERMINATE) -telephoneoutlet = getattr(IfcOutletTypeEnum, 'TELEPHONEOUTLET', INDETERMINATE) -userdefined = getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOutletTypeEnum, 'NOTDEFINED', INDETERMINATE) +audiovisualoutlet = IfcOutletTypeEnum.AUDIOVISUALOUTLET +communicationsoutlet = IfcOutletTypeEnum.COMMUNICATIONSOUTLET +poweroutlet = IfcOutletTypeEnum.POWEROUTLET +dataoutlet = IfcOutletTypeEnum.DATAOUTLET +telephoneoutlet = IfcOutletTypeEnum.TELEPHONEOUTLET +userdefined = IfcOutletTypeEnum.USERDEFINED +notdefined = IfcOutletTypeEnum.NOTDEFINED IfcPavementTypeEnum = enum_namespace() -flexible = getattr(IfcPavementTypeEnum, 'FLEXIBLE', INDETERMINATE) -rigid = getattr(IfcPavementTypeEnum, 'RIGID', INDETERMINATE) -userdefined = getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPavementTypeEnum, 'NOTDEFINED', INDETERMINATE) +flexible = IfcPavementTypeEnum.FLEXIBLE +rigid = IfcPavementTypeEnum.RIGID +userdefined = IfcPavementTypeEnum.USERDEFINED +notdefined = IfcPavementTypeEnum.NOTDEFINED IfcPerformanceHistoryTypeEnum = enum_namespace() -userdefined = getattr(IfcPerformanceHistoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPerformanceHistoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcPerformanceHistoryTypeEnum.USERDEFINED +notdefined = IfcPerformanceHistoryTypeEnum.NOTDEFINED IfcPermeableCoveringOperationEnum = enum_namespace() -grill = getattr(IfcPermeableCoveringOperationEnum, 'GRILL', INDETERMINATE) -louver = getattr(IfcPermeableCoveringOperationEnum, 'LOUVER', INDETERMINATE) -screen = getattr(IfcPermeableCoveringOperationEnum, 'SCREEN', INDETERMINATE) -userdefined = getattr(IfcPermeableCoveringOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPermeableCoveringOperationEnum, 'NOTDEFINED', INDETERMINATE) +grill = IfcPermeableCoveringOperationEnum.GRILL +louver = IfcPermeableCoveringOperationEnum.LOUVER +screen = IfcPermeableCoveringOperationEnum.SCREEN +userdefined = IfcPermeableCoveringOperationEnum.USERDEFINED +notdefined = IfcPermeableCoveringOperationEnum.NOTDEFINED IfcPermitTypeEnum = enum_namespace() -access = getattr(IfcPermitTypeEnum, 'ACCESS', INDETERMINATE) -building = getattr(IfcPermitTypeEnum, 'BUILDING', INDETERMINATE) -work = getattr(IfcPermitTypeEnum, 'WORK', INDETERMINATE) -userdefined = getattr(IfcPermitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPermitTypeEnum, 'NOTDEFINED', INDETERMINATE) +access = IfcPermitTypeEnum.ACCESS +building = IfcPermitTypeEnum.BUILDING +work = IfcPermitTypeEnum.WORK +userdefined = IfcPermitTypeEnum.USERDEFINED +notdefined = IfcPermitTypeEnum.NOTDEFINED IfcPhysicalOrVirtualEnum = enum_namespace() -physical = getattr(IfcPhysicalOrVirtualEnum, 'PHYSICAL', INDETERMINATE) -virtual = getattr(IfcPhysicalOrVirtualEnum, 'VIRTUAL', INDETERMINATE) -notdefined = getattr(IfcPhysicalOrVirtualEnum, 'NOTDEFINED', INDETERMINATE) +physical = IfcPhysicalOrVirtualEnum.PHYSICAL +virtual = IfcPhysicalOrVirtualEnum.VIRTUAL +notdefined = IfcPhysicalOrVirtualEnum.NOTDEFINED IfcPileConstructionEnum = enum_namespace() -cast_in_place = getattr(IfcPileConstructionEnum, 'CAST_IN_PLACE', INDETERMINATE) -composite = getattr(IfcPileConstructionEnum, 'COMPOSITE', INDETERMINATE) -precast_concrete = getattr(IfcPileConstructionEnum, 'PRECAST_CONCRETE', INDETERMINATE) -prefab_steel = getattr(IfcPileConstructionEnum, 'PREFAB_STEEL', INDETERMINATE) -userdefined = getattr(IfcPileConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPileConstructionEnum, 'NOTDEFINED', INDETERMINATE) +cast_in_place = IfcPileConstructionEnum.CAST_IN_PLACE +composite = IfcPileConstructionEnum.COMPOSITE +precast_concrete = IfcPileConstructionEnum.PRECAST_CONCRETE +prefab_steel = IfcPileConstructionEnum.PREFAB_STEEL +userdefined = IfcPileConstructionEnum.USERDEFINED +notdefined = IfcPileConstructionEnum.NOTDEFINED IfcPileTypeEnum = enum_namespace() -bored = getattr(IfcPileTypeEnum, 'BORED', INDETERMINATE) -driven = getattr(IfcPileTypeEnum, 'DRIVEN', INDETERMINATE) -jetgrouting = getattr(IfcPileTypeEnum, 'JETGROUTING', INDETERMINATE) -cohesion = getattr(IfcPileTypeEnum, 'COHESION', INDETERMINATE) -friction = getattr(IfcPileTypeEnum, 'FRICTION', INDETERMINATE) -support = getattr(IfcPileTypeEnum, 'SUPPORT', INDETERMINATE) -userdefined = getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPileTypeEnum, 'NOTDEFINED', INDETERMINATE) +bored = IfcPileTypeEnum.BORED +driven = IfcPileTypeEnum.DRIVEN +jetgrouting = IfcPileTypeEnum.JETGROUTING +cohesion = IfcPileTypeEnum.COHESION +friction = IfcPileTypeEnum.FRICTION +support = IfcPileTypeEnum.SUPPORT +userdefined = IfcPileTypeEnum.USERDEFINED +notdefined = IfcPileTypeEnum.NOTDEFINED IfcPipeFittingTypeEnum = enum_namespace() -bend = getattr(IfcPipeFittingTypeEnum, 'BEND', INDETERMINATE) -connector = getattr(IfcPipeFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcPipeFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcPipeFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcPipeFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = getattr(IfcPipeFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = getattr(IfcPipeFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPipeFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcPipeFittingTypeEnum.BEND +connector = IfcPipeFittingTypeEnum.CONNECTOR +entry = IfcPipeFittingTypeEnum.ENTRY +exit = IfcPipeFittingTypeEnum.EXIT +junction = IfcPipeFittingTypeEnum.JUNCTION +obstruction = IfcPipeFittingTypeEnum.OBSTRUCTION +transition = IfcPipeFittingTypeEnum.TRANSITION +userdefined = IfcPipeFittingTypeEnum.USERDEFINED +notdefined = IfcPipeFittingTypeEnum.NOTDEFINED IfcPipeSegmentTypeEnum = enum_namespace() -culvert = getattr(IfcPipeSegmentTypeEnum, 'CULVERT', INDETERMINATE) -flexiblesegment = getattr(IfcPipeSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -rigidsegment = getattr(IfcPipeSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -gutter = getattr(IfcPipeSegmentTypeEnum, 'GUTTER', INDETERMINATE) -spool = getattr(IfcPipeSegmentTypeEnum, 'SPOOL', INDETERMINATE) -userdefined = getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPipeSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +culvert = IfcPipeSegmentTypeEnum.CULVERT +flexiblesegment = IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT +rigidsegment = IfcPipeSegmentTypeEnum.RIGIDSEGMENT +gutter = IfcPipeSegmentTypeEnum.GUTTER +spool = IfcPipeSegmentTypeEnum.SPOOL +userdefined = IfcPipeSegmentTypeEnum.USERDEFINED +notdefined = IfcPipeSegmentTypeEnum.NOTDEFINED IfcPlateTypeEnum = enum_namespace() -curtain_panel = getattr(IfcPlateTypeEnum, 'CURTAIN_PANEL', INDETERMINATE) -sheet = getattr(IfcPlateTypeEnum, 'SHEET', INDETERMINATE) -flange_plate = getattr(IfcPlateTypeEnum, 'FLANGE_PLATE', INDETERMINATE) -web_plate = getattr(IfcPlateTypeEnum, 'WEB_PLATE', INDETERMINATE) -stiffener_plate = getattr(IfcPlateTypeEnum, 'STIFFENER_PLATE', INDETERMINATE) -gusset_plate = getattr(IfcPlateTypeEnum, 'GUSSET_PLATE', INDETERMINATE) -cover_plate = getattr(IfcPlateTypeEnum, 'COVER_PLATE', INDETERMINATE) -splice_plate = getattr(IfcPlateTypeEnum, 'SPLICE_PLATE', INDETERMINATE) -base_plate = getattr(IfcPlateTypeEnum, 'BASE_PLATE', INDETERMINATE) -userdefined = getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPlateTypeEnum, 'NOTDEFINED', INDETERMINATE) +curtain_panel = IfcPlateTypeEnum.CURTAIN_PANEL +sheet = IfcPlateTypeEnum.SHEET +flange_plate = IfcPlateTypeEnum.FLANGE_PLATE +web_plate = IfcPlateTypeEnum.WEB_PLATE +stiffener_plate = IfcPlateTypeEnum.STIFFENER_PLATE +gusset_plate = IfcPlateTypeEnum.GUSSET_PLATE +cover_plate = IfcPlateTypeEnum.COVER_PLATE +splice_plate = IfcPlateTypeEnum.SPLICE_PLATE +base_plate = IfcPlateTypeEnum.BASE_PLATE +userdefined = IfcPlateTypeEnum.USERDEFINED +notdefined = IfcPlateTypeEnum.NOTDEFINED IfcPreferredSurfaceCurveRepresentation = enum_namespace() -curve3d = getattr(IfcPreferredSurfaceCurveRepresentation, 'CURVE3D', INDETERMINATE) -pcurve_s1 = getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S1', INDETERMINATE) -pcurve_s2 = getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S2', INDETERMINATE) +curve3d = IfcPreferredSurfaceCurveRepresentation.CURVE3D +pcurve_s1 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 +pcurve_s2 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 IfcProcedureTypeEnum = enum_namespace() -advice_caution = getattr(IfcProcedureTypeEnum, 'ADVICE_CAUTION', INDETERMINATE) -advice_note = getattr(IfcProcedureTypeEnum, 'ADVICE_NOTE', INDETERMINATE) -advice_warning = getattr(IfcProcedureTypeEnum, 'ADVICE_WARNING', INDETERMINATE) -calibration = getattr(IfcProcedureTypeEnum, 'CALIBRATION', INDETERMINATE) -diagnostic = getattr(IfcProcedureTypeEnum, 'DIAGNOSTIC', INDETERMINATE) -shutdown = getattr(IfcProcedureTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = getattr(IfcProcedureTypeEnum, 'STARTUP', INDETERMINATE) -userdefined = getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProcedureTypeEnum, 'NOTDEFINED', INDETERMINATE) +advice_caution = IfcProcedureTypeEnum.ADVICE_CAUTION +advice_note = IfcProcedureTypeEnum.ADVICE_NOTE +advice_warning = IfcProcedureTypeEnum.ADVICE_WARNING +calibration = IfcProcedureTypeEnum.CALIBRATION +diagnostic = IfcProcedureTypeEnum.DIAGNOSTIC +shutdown = IfcProcedureTypeEnum.SHUTDOWN +startup = IfcProcedureTypeEnum.STARTUP +userdefined = IfcProcedureTypeEnum.USERDEFINED +notdefined = IfcProcedureTypeEnum.NOTDEFINED IfcProfileTypeEnum = enum_namespace() -curve = getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE) -area = getattr(IfcProfileTypeEnum, 'AREA', INDETERMINATE) +curve = IfcProfileTypeEnum.CURVE +area = IfcProfileTypeEnum.AREA IfcProjectOrderTypeEnum = enum_namespace() -changeorder = getattr(IfcProjectOrderTypeEnum, 'CHANGEORDER', INDETERMINATE) -maintenanceworkorder = getattr(IfcProjectOrderTypeEnum, 'MAINTENANCEWORKORDER', INDETERMINATE) -moveorder = getattr(IfcProjectOrderTypeEnum, 'MOVEORDER', INDETERMINATE) -purchaseorder = getattr(IfcProjectOrderTypeEnum, 'PURCHASEORDER', INDETERMINATE) -workorder = getattr(IfcProjectOrderTypeEnum, 'WORKORDER', INDETERMINATE) -userdefined = getattr(IfcProjectOrderTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProjectOrderTypeEnum, 'NOTDEFINED', INDETERMINATE) +changeorder = IfcProjectOrderTypeEnum.CHANGEORDER +maintenanceworkorder = IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER +moveorder = IfcProjectOrderTypeEnum.MOVEORDER +purchaseorder = IfcProjectOrderTypeEnum.PURCHASEORDER +workorder = IfcProjectOrderTypeEnum.WORKORDER +userdefined = IfcProjectOrderTypeEnum.USERDEFINED +notdefined = IfcProjectOrderTypeEnum.NOTDEFINED IfcProjectedOrTrueLengthEnum = enum_namespace() -projected_length = getattr(IfcProjectedOrTrueLengthEnum, 'PROJECTED_LENGTH', INDETERMINATE) -true_length = getattr(IfcProjectedOrTrueLengthEnum, 'TRUE_LENGTH', INDETERMINATE) +projected_length = IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH +true_length = IfcProjectedOrTrueLengthEnum.TRUE_LENGTH IfcProjectionElementTypeEnum = enum_namespace() -blister = getattr(IfcProjectionElementTypeEnum, 'BLISTER', INDETERMINATE) -deviator = getattr(IfcProjectionElementTypeEnum, 'DEVIATOR', INDETERMINATE) -userdefined = getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProjectionElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +blister = IfcProjectionElementTypeEnum.BLISTER +deviator = IfcProjectionElementTypeEnum.DEVIATOR +userdefined = IfcProjectionElementTypeEnum.USERDEFINED +notdefined = IfcProjectionElementTypeEnum.NOTDEFINED IfcPropertySetTemplateTypeEnum = enum_namespace() -pset_typedrivenonly = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENONLY', INDETERMINATE) -pset_typedrivenoverride = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENOVERRIDE', INDETERMINATE) -pset_occurrencedriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_OCCURRENCEDRIVEN', INDETERMINATE) -pset_performancedriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PERFORMANCEDRIVEN', INDETERMINATE) -qto_typedrivenonly = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENONLY', INDETERMINATE) -qto_typedrivenoverride = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENOVERRIDE', INDETERMINATE) -qto_occurrencedriven = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_OCCURRENCEDRIVEN', INDETERMINATE) -notdefined = getattr(IfcPropertySetTemplateTypeEnum, 'NOTDEFINED', INDETERMINATE) +pset_typedrivenonly = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY +pset_typedrivenoverride = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE +pset_occurrencedriven = IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN +pset_performancedriven = IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN +qto_typedrivenonly = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY +qto_typedrivenoverride = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE +qto_occurrencedriven = IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN +notdefined = IfcPropertySetTemplateTypeEnum.NOTDEFINED IfcProtectiveDeviceTrippingUnitTypeEnum = enum_namespace() -electronic = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTRONIC', INDETERMINATE) -electromagnetic = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTROMAGNETIC', INDETERMINATE) -residualcurrent = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'RESIDUALCURRENT', INDETERMINATE) -thermal = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'THERMAL', INDETERMINATE) -userdefined = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC +electromagnetic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC +residualcurrent = IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT +thermal = IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL +userdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED IfcProtectiveDeviceTypeEnum = enum_namespace() -circuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'CIRCUITBREAKER', INDETERMINATE) -earthleakagecircuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'EARTHLEAKAGECIRCUITBREAKER', INDETERMINATE) -earthingswitch = getattr(IfcProtectiveDeviceTypeEnum, 'EARTHINGSWITCH', INDETERMINATE) -fusedisconnector = getattr(IfcProtectiveDeviceTypeEnum, 'FUSEDISCONNECTOR', INDETERMINATE) -residualcurrentcircuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTCIRCUITBREAKER', INDETERMINATE) -residualcurrentswitch = getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTSWITCH', INDETERMINATE) -varistor = getattr(IfcProtectiveDeviceTypeEnum, 'VARISTOR', INDETERMINATE) -anti_arcing_device = getattr(IfcProtectiveDeviceTypeEnum, 'ANTI_ARCING_DEVICE', INDETERMINATE) -sparkgap = getattr(IfcProtectiveDeviceTypeEnum, 'SPARKGAP', INDETERMINATE) -voltagelimiter = getattr(IfcProtectiveDeviceTypeEnum, 'VOLTAGELIMITER', INDETERMINATE) -userdefined = getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProtectiveDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +circuitbreaker = IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER +earthleakagecircuitbreaker = IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER +earthingswitch = IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH +fusedisconnector = IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR +residualcurrentcircuitbreaker = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER +residualcurrentswitch = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH +varistor = IfcProtectiveDeviceTypeEnum.VARISTOR +anti_arcing_device = IfcProtectiveDeviceTypeEnum.ANTI_ARCING_DEVICE +sparkgap = IfcProtectiveDeviceTypeEnum.SPARKGAP +voltagelimiter = IfcProtectiveDeviceTypeEnum.VOLTAGELIMITER +userdefined = IfcProtectiveDeviceTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTypeEnum.NOTDEFINED IfcPumpTypeEnum = enum_namespace() -circulator = getattr(IfcPumpTypeEnum, 'CIRCULATOR', INDETERMINATE) -endsuction = getattr(IfcPumpTypeEnum, 'ENDSUCTION', INDETERMINATE) -splitcase = getattr(IfcPumpTypeEnum, 'SPLITCASE', INDETERMINATE) -submersiblepump = getattr(IfcPumpTypeEnum, 'SUBMERSIBLEPUMP', INDETERMINATE) -sumppump = getattr(IfcPumpTypeEnum, 'SUMPPUMP', INDETERMINATE) -verticalinline = getattr(IfcPumpTypeEnum, 'VERTICALINLINE', INDETERMINATE) -verticalturbine = getattr(IfcPumpTypeEnum, 'VERTICALTURBINE', INDETERMINATE) -userdefined = getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPumpTypeEnum, 'NOTDEFINED', INDETERMINATE) +circulator = IfcPumpTypeEnum.CIRCULATOR +endsuction = IfcPumpTypeEnum.ENDSUCTION +splitcase = IfcPumpTypeEnum.SPLITCASE +submersiblepump = IfcPumpTypeEnum.SUBMERSIBLEPUMP +sumppump = IfcPumpTypeEnum.SUMPPUMP +verticalinline = IfcPumpTypeEnum.VERTICALINLINE +verticalturbine = IfcPumpTypeEnum.VERTICALTURBINE +userdefined = IfcPumpTypeEnum.USERDEFINED +notdefined = IfcPumpTypeEnum.NOTDEFINED IfcRailTypeEnum = enum_namespace() -rackrail = getattr(IfcRailTypeEnum, 'RACKRAIL', INDETERMINATE) -blade = getattr(IfcRailTypeEnum, 'BLADE', INDETERMINATE) -guardrail = getattr(IfcRailTypeEnum, 'GUARDRAIL', INDETERMINATE) -stockrail = getattr(IfcRailTypeEnum, 'STOCKRAIL', INDETERMINATE) -checkrail = getattr(IfcRailTypeEnum, 'CHECKRAIL', INDETERMINATE) -rail = getattr(IfcRailTypeEnum, 'RAIL', INDETERMINATE) -userdefined = getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailTypeEnum, 'NOTDEFINED', INDETERMINATE) +rackrail = IfcRailTypeEnum.RACKRAIL +blade = IfcRailTypeEnum.BLADE +guardrail = IfcRailTypeEnum.GUARDRAIL +stockrail = IfcRailTypeEnum.STOCKRAIL +checkrail = IfcRailTypeEnum.CHECKRAIL +rail = IfcRailTypeEnum.RAIL +userdefined = IfcRailTypeEnum.USERDEFINED +notdefined = IfcRailTypeEnum.NOTDEFINED IfcRailingTypeEnum = enum_namespace() -handrail = getattr(IfcRailingTypeEnum, 'HANDRAIL', INDETERMINATE) -guardrail = getattr(IfcRailingTypeEnum, 'GUARDRAIL', INDETERMINATE) -balustrade = getattr(IfcRailingTypeEnum, 'BALUSTRADE', INDETERMINATE) -fence = getattr(IfcRailingTypeEnum, 'FENCE', INDETERMINATE) -userdefined = getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailingTypeEnum, 'NOTDEFINED', INDETERMINATE) +handrail = IfcRailingTypeEnum.HANDRAIL +guardrail = IfcRailingTypeEnum.GUARDRAIL +balustrade = IfcRailingTypeEnum.BALUSTRADE +fence = IfcRailingTypeEnum.FENCE +userdefined = IfcRailingTypeEnum.USERDEFINED +notdefined = IfcRailingTypeEnum.NOTDEFINED IfcRailwayPartTypeEnum = enum_namespace() -trackstructure = getattr(IfcRailwayPartTypeEnum, 'TRACKSTRUCTURE', INDETERMINATE) -trackstructurepart = getattr(IfcRailwayPartTypeEnum, 'TRACKSTRUCTUREPART', INDETERMINATE) -linesidestructurepart = getattr(IfcRailwayPartTypeEnum, 'LINESIDESTRUCTUREPART', INDETERMINATE) -dilatationsuperstructure = getattr(IfcRailwayPartTypeEnum, 'DILATATIONSUPERSTRUCTURE', INDETERMINATE) -plaintracksupestructure = getattr(IfcRailwayPartTypeEnum, 'PLAINTRACKSUPESTRUCTURE', INDETERMINATE) -linesidestructure = getattr(IfcRailwayPartTypeEnum, 'LINESIDESTRUCTURE', INDETERMINATE) -superstructure = getattr(IfcRailwayPartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -turnoutsuperstructure = getattr(IfcRailwayPartTypeEnum, 'TURNOUTSUPERSTRUCTURE', INDETERMINATE) -userdefined = getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailwayPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +trackstructure = IfcRailwayPartTypeEnum.TRACKSTRUCTURE +trackstructurepart = IfcRailwayPartTypeEnum.TRACKSTRUCTUREPART +linesidestructurepart = IfcRailwayPartTypeEnum.LINESIDESTRUCTUREPART +dilatationsuperstructure = IfcRailwayPartTypeEnum.DILATATIONSUPERSTRUCTURE +plaintracksupestructure = IfcRailwayPartTypeEnum.PLAINTRACKSUPESTRUCTURE +linesidestructure = IfcRailwayPartTypeEnum.LINESIDESTRUCTURE +superstructure = IfcRailwayPartTypeEnum.SUPERSTRUCTURE +turnoutsuperstructure = IfcRailwayPartTypeEnum.TURNOUTSUPERSTRUCTURE +userdefined = IfcRailwayPartTypeEnum.USERDEFINED +notdefined = IfcRailwayPartTypeEnum.NOTDEFINED IfcRailwayTypeEnum = enum_namespace() -userdefined = getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailwayTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcRailwayTypeEnum.USERDEFINED +notdefined = IfcRailwayTypeEnum.NOTDEFINED IfcRampFlightTypeEnum = enum_namespace() -straight = getattr(IfcRampFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -spiral = getattr(IfcRampFlightTypeEnum, 'SPIRAL', INDETERMINATE) -userdefined = getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRampFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcRampFlightTypeEnum.STRAIGHT +spiral = IfcRampFlightTypeEnum.SPIRAL +userdefined = IfcRampFlightTypeEnum.USERDEFINED +notdefined = IfcRampFlightTypeEnum.NOTDEFINED IfcRampTypeEnum = enum_namespace() -straight_run_ramp = getattr(IfcRampTypeEnum, 'STRAIGHT_RUN_RAMP', INDETERMINATE) -two_straight_run_ramp = getattr(IfcRampTypeEnum, 'TWO_STRAIGHT_RUN_RAMP', INDETERMINATE) -quarter_turn_ramp = getattr(IfcRampTypeEnum, 'QUARTER_TURN_RAMP', INDETERMINATE) -two_quarter_turn_ramp = getattr(IfcRampTypeEnum, 'TWO_QUARTER_TURN_RAMP', INDETERMINATE) -half_turn_ramp = getattr(IfcRampTypeEnum, 'HALF_TURN_RAMP', INDETERMINATE) -spiral_ramp = getattr(IfcRampTypeEnum, 'SPIRAL_RAMP', INDETERMINATE) -userdefined = getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRampTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_ramp = IfcRampTypeEnum.STRAIGHT_RUN_RAMP +two_straight_run_ramp = IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP +quarter_turn_ramp = IfcRampTypeEnum.QUARTER_TURN_RAMP +two_quarter_turn_ramp = IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP +half_turn_ramp = IfcRampTypeEnum.HALF_TURN_RAMP +spiral_ramp = IfcRampTypeEnum.SPIRAL_RAMP +userdefined = IfcRampTypeEnum.USERDEFINED +notdefined = IfcRampTypeEnum.NOTDEFINED IfcRecurrenceTypeEnum = enum_namespace() -daily = getattr(IfcRecurrenceTypeEnum, 'DAILY', INDETERMINATE) -weekly = getattr(IfcRecurrenceTypeEnum, 'WEEKLY', INDETERMINATE) -monthly_by_day_of_month = getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_DAY_OF_MONTH', INDETERMINATE) -monthly_by_position = getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_POSITION', INDETERMINATE) -by_day_count = getattr(IfcRecurrenceTypeEnum, 'BY_DAY_COUNT', INDETERMINATE) -by_weekday_count = getattr(IfcRecurrenceTypeEnum, 'BY_WEEKDAY_COUNT', INDETERMINATE) -yearly_by_day_of_month = getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_DAY_OF_MONTH', INDETERMINATE) -yearly_by_position = getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_POSITION', INDETERMINATE) +daily = IfcRecurrenceTypeEnum.DAILY +weekly = IfcRecurrenceTypeEnum.WEEKLY +monthly_by_day_of_month = IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH +monthly_by_position = IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION +by_day_count = IfcRecurrenceTypeEnum.BY_DAY_COUNT +by_weekday_count = IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT +yearly_by_day_of_month = IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH +yearly_by_position = IfcRecurrenceTypeEnum.YEARLY_BY_POSITION IfcReferentTypeEnum = enum_namespace() -kilopoint = getattr(IfcReferentTypeEnum, 'KILOPOINT', INDETERMINATE) -milepoint = getattr(IfcReferentTypeEnum, 'MILEPOINT', INDETERMINATE) -station = getattr(IfcReferentTypeEnum, 'STATION', INDETERMINATE) -referencemarker = getattr(IfcReferentTypeEnum, 'REFERENCEMARKER', INDETERMINATE) -landmark = getattr(IfcReferentTypeEnum, 'LANDMARK', INDETERMINATE) -boundary = getattr(IfcReferentTypeEnum, 'BOUNDARY', INDETERMINATE) -intersection = getattr(IfcReferentTypeEnum, 'INTERSECTION', INDETERMINATE) -position = getattr(IfcReferentTypeEnum, 'POSITION', INDETERMINATE) -userdefined = getattr(IfcReferentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReferentTypeEnum, 'NOTDEFINED', INDETERMINATE) +kilopoint = IfcReferentTypeEnum.KILOPOINT +milepoint = IfcReferentTypeEnum.MILEPOINT +station = IfcReferentTypeEnum.STATION +referencemarker = IfcReferentTypeEnum.REFERENCEMARKER +landmark = IfcReferentTypeEnum.LANDMARK +boundary = IfcReferentTypeEnum.BOUNDARY +intersection = IfcReferentTypeEnum.INTERSECTION +position = IfcReferentTypeEnum.POSITION +userdefined = IfcReferentTypeEnum.USERDEFINED +notdefined = IfcReferentTypeEnum.NOTDEFINED IfcReflectanceMethodEnum = enum_namespace() -blinn = getattr(IfcReflectanceMethodEnum, 'BLINN', INDETERMINATE) -flat = getattr(IfcReflectanceMethodEnum, 'FLAT', INDETERMINATE) -glass = getattr(IfcReflectanceMethodEnum, 'GLASS', INDETERMINATE) -matt = getattr(IfcReflectanceMethodEnum, 'MATT', INDETERMINATE) -metal = getattr(IfcReflectanceMethodEnum, 'METAL', INDETERMINATE) -mirror = getattr(IfcReflectanceMethodEnum, 'MIRROR', INDETERMINATE) -phong = getattr(IfcReflectanceMethodEnum, 'PHONG', INDETERMINATE) -plastic = getattr(IfcReflectanceMethodEnum, 'PLASTIC', INDETERMINATE) -strauss = getattr(IfcReflectanceMethodEnum, 'STRAUSS', INDETERMINATE) -notdefined = getattr(IfcReflectanceMethodEnum, 'NOTDEFINED', INDETERMINATE) +blinn = IfcReflectanceMethodEnum.BLINN +flat = IfcReflectanceMethodEnum.FLAT +glass = IfcReflectanceMethodEnum.GLASS +matt = IfcReflectanceMethodEnum.MATT +metal = IfcReflectanceMethodEnum.METAL +mirror = IfcReflectanceMethodEnum.MIRROR +phong = IfcReflectanceMethodEnum.PHONG +plastic = IfcReflectanceMethodEnum.PLASTIC +strauss = IfcReflectanceMethodEnum.STRAUSS +notdefined = IfcReflectanceMethodEnum.NOTDEFINED IfcReinforcedSoilTypeEnum = enum_namespace() -surchargepreloaded = getattr(IfcReinforcedSoilTypeEnum, 'SURCHARGEPRELOADED', INDETERMINATE) -verticallydrained = getattr(IfcReinforcedSoilTypeEnum, 'VERTICALLYDRAINED', INDETERMINATE) -dynamicallycompacted = getattr(IfcReinforcedSoilTypeEnum, 'DYNAMICALLYCOMPACTED', INDETERMINATE) -replaced = getattr(IfcReinforcedSoilTypeEnum, 'REPLACED', INDETERMINATE) -rollercompacted = getattr(IfcReinforcedSoilTypeEnum, 'ROLLERCOMPACTED', INDETERMINATE) -grouted = getattr(IfcReinforcedSoilTypeEnum, 'GROUTED', INDETERMINATE) -userdefined = getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcedSoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +surchargepreloaded = IfcReinforcedSoilTypeEnum.SURCHARGEPRELOADED +verticallydrained = IfcReinforcedSoilTypeEnum.VERTICALLYDRAINED +dynamicallycompacted = IfcReinforcedSoilTypeEnum.DYNAMICALLYCOMPACTED +replaced = IfcReinforcedSoilTypeEnum.REPLACED +rollercompacted = IfcReinforcedSoilTypeEnum.ROLLERCOMPACTED +grouted = IfcReinforcedSoilTypeEnum.GROUTED +userdefined = IfcReinforcedSoilTypeEnum.USERDEFINED +notdefined = IfcReinforcedSoilTypeEnum.NOTDEFINED IfcReinforcingBarRoleEnum = enum_namespace() -main = getattr(IfcReinforcingBarRoleEnum, 'MAIN', INDETERMINATE) -shear = getattr(IfcReinforcingBarRoleEnum, 'SHEAR', INDETERMINATE) -ligature = getattr(IfcReinforcingBarRoleEnum, 'LIGATURE', INDETERMINATE) -stud = getattr(IfcReinforcingBarRoleEnum, 'STUD', INDETERMINATE) -punching = getattr(IfcReinforcingBarRoleEnum, 'PUNCHING', INDETERMINATE) -edge = getattr(IfcReinforcingBarRoleEnum, 'EDGE', INDETERMINATE) -ring = getattr(IfcReinforcingBarRoleEnum, 'RING', INDETERMINATE) -anchoring = getattr(IfcReinforcingBarRoleEnum, 'ANCHORING', INDETERMINATE) -userdefined = getattr(IfcReinforcingBarRoleEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingBarRoleEnum, 'NOTDEFINED', INDETERMINATE) +main = IfcReinforcingBarRoleEnum.MAIN +shear = IfcReinforcingBarRoleEnum.SHEAR +ligature = IfcReinforcingBarRoleEnum.LIGATURE +stud = IfcReinforcingBarRoleEnum.STUD +punching = IfcReinforcingBarRoleEnum.PUNCHING +edge = IfcReinforcingBarRoleEnum.EDGE +ring = IfcReinforcingBarRoleEnum.RING +anchoring = IfcReinforcingBarRoleEnum.ANCHORING +userdefined = IfcReinforcingBarRoleEnum.USERDEFINED +notdefined = IfcReinforcingBarRoleEnum.NOTDEFINED IfcReinforcingBarSurfaceEnum = enum_namespace() -plain = getattr(IfcReinforcingBarSurfaceEnum, 'PLAIN', INDETERMINATE) -textured = getattr(IfcReinforcingBarSurfaceEnum, 'TEXTURED', INDETERMINATE) +plain = IfcReinforcingBarSurfaceEnum.PLAIN +textured = IfcReinforcingBarSurfaceEnum.TEXTURED IfcReinforcingBarTypeEnum = enum_namespace() -anchoring = getattr(IfcReinforcingBarTypeEnum, 'ANCHORING', INDETERMINATE) -edge = getattr(IfcReinforcingBarTypeEnum, 'EDGE', INDETERMINATE) -ligature = getattr(IfcReinforcingBarTypeEnum, 'LIGATURE', INDETERMINATE) -main = getattr(IfcReinforcingBarTypeEnum, 'MAIN', INDETERMINATE) -punching = getattr(IfcReinforcingBarTypeEnum, 'PUNCHING', INDETERMINATE) -ring = getattr(IfcReinforcingBarTypeEnum, 'RING', INDETERMINATE) -shear = getattr(IfcReinforcingBarTypeEnum, 'SHEAR', INDETERMINATE) -stud = getattr(IfcReinforcingBarTypeEnum, 'STUD', INDETERMINATE) -spacebar = getattr(IfcReinforcingBarTypeEnum, 'SPACEBAR', INDETERMINATE) -userdefined = getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingBarTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarTypeEnum.ANCHORING +edge = IfcReinforcingBarTypeEnum.EDGE +ligature = IfcReinforcingBarTypeEnum.LIGATURE +main = IfcReinforcingBarTypeEnum.MAIN +punching = IfcReinforcingBarTypeEnum.PUNCHING +ring = IfcReinforcingBarTypeEnum.RING +shear = IfcReinforcingBarTypeEnum.SHEAR +stud = IfcReinforcingBarTypeEnum.STUD +spacebar = IfcReinforcingBarTypeEnum.SPACEBAR +userdefined = IfcReinforcingBarTypeEnum.USERDEFINED +notdefined = IfcReinforcingBarTypeEnum.NOTDEFINED IfcReinforcingMeshTypeEnum = enum_namespace() -userdefined = getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingMeshTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcReinforcingMeshTypeEnum.USERDEFINED +notdefined = IfcReinforcingMeshTypeEnum.NOTDEFINED IfcRoadPartTypeEnum = enum_namespace() -roadsidepart = getattr(IfcRoadPartTypeEnum, 'ROADSIDEPART', INDETERMINATE) -bus_stop = getattr(IfcRoadPartTypeEnum, 'BUS_STOP', INDETERMINATE) -hardshoulder = getattr(IfcRoadPartTypeEnum, 'HARDSHOULDER', INDETERMINATE) -intersection = getattr(IfcRoadPartTypeEnum, 'INTERSECTION', INDETERMINATE) -passingbay = getattr(IfcRoadPartTypeEnum, 'PASSINGBAY', INDETERMINATE) -roadwayplateau = getattr(IfcRoadPartTypeEnum, 'ROADWAYPLATEAU', INDETERMINATE) -roadside = getattr(IfcRoadPartTypeEnum, 'ROADSIDE', INDETERMINATE) -refugeisland = getattr(IfcRoadPartTypeEnum, 'REFUGEISLAND', INDETERMINATE) -tollplaza = getattr(IfcRoadPartTypeEnum, 'TOLLPLAZA', INDETERMINATE) -centralreserve = getattr(IfcRoadPartTypeEnum, 'CENTRALRESERVE', INDETERMINATE) -sidewalk = getattr(IfcRoadPartTypeEnum, 'SIDEWALK', INDETERMINATE) -parkingbay = getattr(IfcRoadPartTypeEnum, 'PARKINGBAY', INDETERMINATE) -railwaycrossing = getattr(IfcRoadPartTypeEnum, 'RAILWAYCROSSING', INDETERMINATE) -pedestrian_crossing = getattr(IfcRoadPartTypeEnum, 'PEDESTRIAN_CROSSING', INDETERMINATE) -softshoulder = getattr(IfcRoadPartTypeEnum, 'SOFTSHOULDER', INDETERMINATE) -bicyclecrossing = getattr(IfcRoadPartTypeEnum, 'BICYCLECROSSING', INDETERMINATE) -centralisland = getattr(IfcRoadPartTypeEnum, 'CENTRALISLAND', INDETERMINATE) -shoulder = getattr(IfcRoadPartTypeEnum, 'SHOULDER', INDETERMINATE) -trafficlane = getattr(IfcRoadPartTypeEnum, 'TRAFFICLANE', INDETERMINATE) -roadsegment = getattr(IfcRoadPartTypeEnum, 'ROADSEGMENT', INDETERMINATE) -roundabout = getattr(IfcRoadPartTypeEnum, 'ROUNDABOUT', INDETERMINATE) -layby = getattr(IfcRoadPartTypeEnum, 'LAYBY', INDETERMINATE) -carriageway = getattr(IfcRoadPartTypeEnum, 'CARRIAGEWAY', INDETERMINATE) -trafficisland = getattr(IfcRoadPartTypeEnum, 'TRAFFICISLAND', INDETERMINATE) -userdefined = getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRoadPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +roadsidepart = IfcRoadPartTypeEnum.ROADSIDEPART +bus_stop = IfcRoadPartTypeEnum.BUS_STOP +hardshoulder = IfcRoadPartTypeEnum.HARDSHOULDER +intersection = IfcRoadPartTypeEnum.INTERSECTION +passingbay = IfcRoadPartTypeEnum.PASSINGBAY +roadwayplateau = IfcRoadPartTypeEnum.ROADWAYPLATEAU +roadside = IfcRoadPartTypeEnum.ROADSIDE +refugeisland = IfcRoadPartTypeEnum.REFUGEISLAND +tollplaza = IfcRoadPartTypeEnum.TOLLPLAZA +centralreserve = IfcRoadPartTypeEnum.CENTRALRESERVE +sidewalk = IfcRoadPartTypeEnum.SIDEWALK +parkingbay = IfcRoadPartTypeEnum.PARKINGBAY +railwaycrossing = IfcRoadPartTypeEnum.RAILWAYCROSSING +pedestrian_crossing = IfcRoadPartTypeEnum.PEDESTRIAN_CROSSING +softshoulder = IfcRoadPartTypeEnum.SOFTSHOULDER +bicyclecrossing = IfcRoadPartTypeEnum.BICYCLECROSSING +centralisland = IfcRoadPartTypeEnum.CENTRALISLAND +shoulder = IfcRoadPartTypeEnum.SHOULDER +trafficlane = IfcRoadPartTypeEnum.TRAFFICLANE +roadsegment = IfcRoadPartTypeEnum.ROADSEGMENT +roundabout = IfcRoadPartTypeEnum.ROUNDABOUT +layby = IfcRoadPartTypeEnum.LAYBY +carriageway = IfcRoadPartTypeEnum.CARRIAGEWAY +trafficisland = IfcRoadPartTypeEnum.TRAFFICISLAND +userdefined = IfcRoadPartTypeEnum.USERDEFINED +notdefined = IfcRoadPartTypeEnum.NOTDEFINED IfcRoadTypeEnum = enum_namespace() -userdefined = getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRoadTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcRoadTypeEnum.USERDEFINED +notdefined = IfcRoadTypeEnum.NOTDEFINED IfcRoleEnum = enum_namespace() -supplier = getattr(IfcRoleEnum, 'SUPPLIER', INDETERMINATE) -manufacturer = getattr(IfcRoleEnum, 'MANUFACTURER', INDETERMINATE) -contractor = getattr(IfcRoleEnum, 'CONTRACTOR', INDETERMINATE) -subcontractor = getattr(IfcRoleEnum, 'SUBCONTRACTOR', INDETERMINATE) -architect = getattr(IfcRoleEnum, 'ARCHITECT', INDETERMINATE) -structuralengineer = getattr(IfcRoleEnum, 'STRUCTURALENGINEER', INDETERMINATE) -costengineer = getattr(IfcRoleEnum, 'COSTENGINEER', INDETERMINATE) -client = getattr(IfcRoleEnum, 'CLIENT', INDETERMINATE) -buildingowner = getattr(IfcRoleEnum, 'BUILDINGOWNER', INDETERMINATE) -buildingoperator = getattr(IfcRoleEnum, 'BUILDINGOPERATOR', INDETERMINATE) -mechanicalengineer = getattr(IfcRoleEnum, 'MECHANICALENGINEER', INDETERMINATE) -electricalengineer = getattr(IfcRoleEnum, 'ELECTRICALENGINEER', INDETERMINATE) -projectmanager = getattr(IfcRoleEnum, 'PROJECTMANAGER', INDETERMINATE) -facilitiesmanager = getattr(IfcRoleEnum, 'FACILITIESMANAGER', INDETERMINATE) -civilengineer = getattr(IfcRoleEnum, 'CIVILENGINEER', INDETERMINATE) -commissioningengineer = getattr(IfcRoleEnum, 'COMMISSIONINGENGINEER', INDETERMINATE) -engineer = getattr(IfcRoleEnum, 'ENGINEER', INDETERMINATE) -owner = getattr(IfcRoleEnum, 'OWNER', INDETERMINATE) -consultant = getattr(IfcRoleEnum, 'CONSULTANT', INDETERMINATE) -constructionmanager = getattr(IfcRoleEnum, 'CONSTRUCTIONMANAGER', INDETERMINATE) -fieldconstructionmanager = getattr(IfcRoleEnum, 'FIELDCONSTRUCTIONMANAGER', INDETERMINATE) -reseller = getattr(IfcRoleEnum, 'RESELLER', INDETERMINATE) -userdefined = getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) +supplier = IfcRoleEnum.SUPPLIER +manufacturer = IfcRoleEnum.MANUFACTURER +contractor = IfcRoleEnum.CONTRACTOR +subcontractor = IfcRoleEnum.SUBCONTRACTOR +architect = IfcRoleEnum.ARCHITECT +structuralengineer = IfcRoleEnum.STRUCTURALENGINEER +costengineer = IfcRoleEnum.COSTENGINEER +client = IfcRoleEnum.CLIENT +buildingowner = IfcRoleEnum.BUILDINGOWNER +buildingoperator = IfcRoleEnum.BUILDINGOPERATOR +mechanicalengineer = IfcRoleEnum.MECHANICALENGINEER +electricalengineer = IfcRoleEnum.ELECTRICALENGINEER +projectmanager = IfcRoleEnum.PROJECTMANAGER +facilitiesmanager = IfcRoleEnum.FACILITIESMANAGER +civilengineer = IfcRoleEnum.CIVILENGINEER +commissioningengineer = IfcRoleEnum.COMMISSIONINGENGINEER +engineer = IfcRoleEnum.ENGINEER +owner = IfcRoleEnum.OWNER +consultant = IfcRoleEnum.CONSULTANT +constructionmanager = IfcRoleEnum.CONSTRUCTIONMANAGER +fieldconstructionmanager = IfcRoleEnum.FIELDCONSTRUCTIONMANAGER +reseller = IfcRoleEnum.RESELLER +userdefined = IfcRoleEnum.USERDEFINED IfcRoofTypeEnum = enum_namespace() -flat_roof = getattr(IfcRoofTypeEnum, 'FLAT_ROOF', INDETERMINATE) -shed_roof = getattr(IfcRoofTypeEnum, 'SHED_ROOF', INDETERMINATE) -gable_roof = getattr(IfcRoofTypeEnum, 'GABLE_ROOF', INDETERMINATE) -hip_roof = getattr(IfcRoofTypeEnum, 'HIP_ROOF', INDETERMINATE) -hipped_gable_roof = getattr(IfcRoofTypeEnum, 'HIPPED_GABLE_ROOF', INDETERMINATE) -gambrel_roof = getattr(IfcRoofTypeEnum, 'GAMBREL_ROOF', INDETERMINATE) -mansard_roof = getattr(IfcRoofTypeEnum, 'MANSARD_ROOF', INDETERMINATE) -barrel_roof = getattr(IfcRoofTypeEnum, 'BARREL_ROOF', INDETERMINATE) -rainbow_roof = getattr(IfcRoofTypeEnum, 'RAINBOW_ROOF', INDETERMINATE) -butterfly_roof = getattr(IfcRoofTypeEnum, 'BUTTERFLY_ROOF', INDETERMINATE) -pavilion_roof = getattr(IfcRoofTypeEnum, 'PAVILION_ROOF', INDETERMINATE) -dome_roof = getattr(IfcRoofTypeEnum, 'DOME_ROOF', INDETERMINATE) -freeform = getattr(IfcRoofTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRoofTypeEnum, 'NOTDEFINED', INDETERMINATE) +flat_roof = IfcRoofTypeEnum.FLAT_ROOF +shed_roof = IfcRoofTypeEnum.SHED_ROOF +gable_roof = IfcRoofTypeEnum.GABLE_ROOF +hip_roof = IfcRoofTypeEnum.HIP_ROOF +hipped_gable_roof = IfcRoofTypeEnum.HIPPED_GABLE_ROOF +gambrel_roof = IfcRoofTypeEnum.GAMBREL_ROOF +mansard_roof = IfcRoofTypeEnum.MANSARD_ROOF +barrel_roof = IfcRoofTypeEnum.BARREL_ROOF +rainbow_roof = IfcRoofTypeEnum.RAINBOW_ROOF +butterfly_roof = IfcRoofTypeEnum.BUTTERFLY_ROOF +pavilion_roof = IfcRoofTypeEnum.PAVILION_ROOF +dome_roof = IfcRoofTypeEnum.DOME_ROOF +freeform = IfcRoofTypeEnum.FREEFORM +userdefined = IfcRoofTypeEnum.USERDEFINED +notdefined = IfcRoofTypeEnum.NOTDEFINED IfcSIPrefix = enum_namespace() -exa = getattr(IfcSIPrefix, 'EXA', INDETERMINATE) -peta = getattr(IfcSIPrefix, 'PETA', INDETERMINATE) -tera = getattr(IfcSIPrefix, 'TERA', INDETERMINATE) -giga = getattr(IfcSIPrefix, 'GIGA', INDETERMINATE) -mega = getattr(IfcSIPrefix, 'MEGA', INDETERMINATE) -kilo = getattr(IfcSIPrefix, 'KILO', INDETERMINATE) -hecto = getattr(IfcSIPrefix, 'HECTO', INDETERMINATE) -deca = getattr(IfcSIPrefix, 'DECA', INDETERMINATE) -deci = getattr(IfcSIPrefix, 'DECI', INDETERMINATE) -centi = getattr(IfcSIPrefix, 'CENTI', INDETERMINATE) -milli = getattr(IfcSIPrefix, 'MILLI', INDETERMINATE) -micro = getattr(IfcSIPrefix, 'MICRO', INDETERMINATE) -nano = getattr(IfcSIPrefix, 'NANO', INDETERMINATE) -pico = getattr(IfcSIPrefix, 'PICO', INDETERMINATE) -femto = getattr(IfcSIPrefix, 'FEMTO', INDETERMINATE) -atto = getattr(IfcSIPrefix, 'ATTO', INDETERMINATE) +exa = IfcSIPrefix.EXA +peta = IfcSIPrefix.PETA +tera = IfcSIPrefix.TERA +giga = IfcSIPrefix.GIGA +mega = IfcSIPrefix.MEGA +kilo = IfcSIPrefix.KILO +hecto = IfcSIPrefix.HECTO +deca = IfcSIPrefix.DECA +deci = IfcSIPrefix.DECI +centi = IfcSIPrefix.CENTI +milli = IfcSIPrefix.MILLI +micro = IfcSIPrefix.MICRO +nano = IfcSIPrefix.NANO +pico = IfcSIPrefix.PICO +femto = IfcSIPrefix.FEMTO +atto = IfcSIPrefix.ATTO IfcSIUnitName = enum_namespace() -ampere = getattr(IfcSIUnitName, 'AMPERE', INDETERMINATE) -becquerel = getattr(IfcSIUnitName, 'BECQUEREL', INDETERMINATE) -candela = getattr(IfcSIUnitName, 'CANDELA', INDETERMINATE) -coulomb = getattr(IfcSIUnitName, 'COULOMB', INDETERMINATE) -cubic_metre = getattr(IfcSIUnitName, 'CUBIC_METRE', INDETERMINATE) -degree_celsius = getattr(IfcSIUnitName, 'DEGREE_CELSIUS', INDETERMINATE) -farad = getattr(IfcSIUnitName, 'FARAD', INDETERMINATE) -gram = getattr(IfcSIUnitName, 'GRAM', INDETERMINATE) -gray = getattr(IfcSIUnitName, 'GRAY', INDETERMINATE) -henry = getattr(IfcSIUnitName, 'HENRY', INDETERMINATE) -hertz = getattr(IfcSIUnitName, 'HERTZ', INDETERMINATE) -joule = getattr(IfcSIUnitName, 'JOULE', INDETERMINATE) -kelvin = getattr(IfcSIUnitName, 'KELVIN', INDETERMINATE) -lumen = getattr(IfcSIUnitName, 'LUMEN', INDETERMINATE) -lux = getattr(IfcSIUnitName, 'LUX', INDETERMINATE) -metre = getattr(IfcSIUnitName, 'METRE', INDETERMINATE) -mole = getattr(IfcSIUnitName, 'MOLE', INDETERMINATE) -newton = getattr(IfcSIUnitName, 'NEWTON', INDETERMINATE) -ohm = getattr(IfcSIUnitName, 'OHM', INDETERMINATE) -pascal = getattr(IfcSIUnitName, 'PASCAL', INDETERMINATE) -radian = getattr(IfcSIUnitName, 'RADIAN', INDETERMINATE) -second = getattr(IfcSIUnitName, 'SECOND', INDETERMINATE) -siemens = getattr(IfcSIUnitName, 'SIEMENS', INDETERMINATE) -sievert = getattr(IfcSIUnitName, 'SIEVERT', INDETERMINATE) -square_metre = getattr(IfcSIUnitName, 'SQUARE_METRE', INDETERMINATE) -steradian = getattr(IfcSIUnitName, 'STERADIAN', INDETERMINATE) -tesla = getattr(IfcSIUnitName, 'TESLA', INDETERMINATE) -volt = getattr(IfcSIUnitName, 'VOLT', INDETERMINATE) -watt = getattr(IfcSIUnitName, 'WATT', INDETERMINATE) -weber = getattr(IfcSIUnitName, 'WEBER', INDETERMINATE) +ampere = IfcSIUnitName.AMPERE +becquerel = IfcSIUnitName.BECQUEREL +candela = IfcSIUnitName.CANDELA +coulomb = IfcSIUnitName.COULOMB +cubic_metre = IfcSIUnitName.CUBIC_METRE +degree_celsius = IfcSIUnitName.DEGREE_CELSIUS +farad = IfcSIUnitName.FARAD +gram = IfcSIUnitName.GRAM +gray = IfcSIUnitName.GRAY +henry = IfcSIUnitName.HENRY +hertz = IfcSIUnitName.HERTZ +joule = IfcSIUnitName.JOULE +kelvin = IfcSIUnitName.KELVIN +lumen = IfcSIUnitName.LUMEN +lux = IfcSIUnitName.LUX +metre = IfcSIUnitName.METRE +mole = IfcSIUnitName.MOLE +newton = IfcSIUnitName.NEWTON +ohm = IfcSIUnitName.OHM +pascal = IfcSIUnitName.PASCAL +radian = IfcSIUnitName.RADIAN +second = IfcSIUnitName.SECOND +siemens = IfcSIUnitName.SIEMENS +sievert = IfcSIUnitName.SIEVERT +square_metre = IfcSIUnitName.SQUARE_METRE +steradian = IfcSIUnitName.STERADIAN +tesla = IfcSIUnitName.TESLA +volt = IfcSIUnitName.VOLT +watt = IfcSIUnitName.WATT +weber = IfcSIUnitName.WEBER IfcSanitaryTerminalTypeEnum = enum_namespace() -bath = getattr(IfcSanitaryTerminalTypeEnum, 'BATH', INDETERMINATE) -bidet = getattr(IfcSanitaryTerminalTypeEnum, 'BIDET', INDETERMINATE) -cistern = getattr(IfcSanitaryTerminalTypeEnum, 'CISTERN', INDETERMINATE) -shower = getattr(IfcSanitaryTerminalTypeEnum, 'SHOWER', INDETERMINATE) -sink = getattr(IfcSanitaryTerminalTypeEnum, 'SINK', INDETERMINATE) -sanitaryfountain = getattr(IfcSanitaryTerminalTypeEnum, 'SANITARYFOUNTAIN', INDETERMINATE) -toiletpan = getattr(IfcSanitaryTerminalTypeEnum, 'TOILETPAN', INDETERMINATE) -urinal = getattr(IfcSanitaryTerminalTypeEnum, 'URINAL', INDETERMINATE) -washhandbasin = getattr(IfcSanitaryTerminalTypeEnum, 'WASHHANDBASIN', INDETERMINATE) -wcseat = getattr(IfcSanitaryTerminalTypeEnum, 'WCSEAT', INDETERMINATE) -userdefined = getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSanitaryTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +bath = IfcSanitaryTerminalTypeEnum.BATH +bidet = IfcSanitaryTerminalTypeEnum.BIDET +cistern = IfcSanitaryTerminalTypeEnum.CISTERN +shower = IfcSanitaryTerminalTypeEnum.SHOWER +sink = IfcSanitaryTerminalTypeEnum.SINK +sanitaryfountain = IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN +toiletpan = IfcSanitaryTerminalTypeEnum.TOILETPAN +urinal = IfcSanitaryTerminalTypeEnum.URINAL +washhandbasin = IfcSanitaryTerminalTypeEnum.WASHHANDBASIN +wcseat = IfcSanitaryTerminalTypeEnum.WCSEAT +userdefined = IfcSanitaryTerminalTypeEnum.USERDEFINED +notdefined = IfcSanitaryTerminalTypeEnum.NOTDEFINED IfcSectionTypeEnum = enum_namespace() -uniform = getattr(IfcSectionTypeEnum, 'UNIFORM', INDETERMINATE) -tapered = getattr(IfcSectionTypeEnum, 'TAPERED', INDETERMINATE) +uniform = IfcSectionTypeEnum.UNIFORM +tapered = IfcSectionTypeEnum.TAPERED IfcSensorTypeEnum = enum_namespace() -cosensor = getattr(IfcSensorTypeEnum, 'COSENSOR', INDETERMINATE) -co2sensor = getattr(IfcSensorTypeEnum, 'CO2SENSOR', INDETERMINATE) -conductancesensor = getattr(IfcSensorTypeEnum, 'CONDUCTANCESENSOR', INDETERMINATE) -contactsensor = getattr(IfcSensorTypeEnum, 'CONTACTSENSOR', INDETERMINATE) -firesensor = getattr(IfcSensorTypeEnum, 'FIRESENSOR', INDETERMINATE) -flowsensor = getattr(IfcSensorTypeEnum, 'FLOWSENSOR', INDETERMINATE) -frostsensor = getattr(IfcSensorTypeEnum, 'FROSTSENSOR', INDETERMINATE) -gassensor = getattr(IfcSensorTypeEnum, 'GASSENSOR', INDETERMINATE) -heatsensor = getattr(IfcSensorTypeEnum, 'HEATSENSOR', INDETERMINATE) -humiditysensor = getattr(IfcSensorTypeEnum, 'HUMIDITYSENSOR', INDETERMINATE) -identifiersensor = getattr(IfcSensorTypeEnum, 'IDENTIFIERSENSOR', INDETERMINATE) -ionconcentrationsensor = getattr(IfcSensorTypeEnum, 'IONCONCENTRATIONSENSOR', INDETERMINATE) -levelsensor = getattr(IfcSensorTypeEnum, 'LEVELSENSOR', INDETERMINATE) -lightsensor = getattr(IfcSensorTypeEnum, 'LIGHTSENSOR', INDETERMINATE) -moisturesensor = getattr(IfcSensorTypeEnum, 'MOISTURESENSOR', INDETERMINATE) -movementsensor = getattr(IfcSensorTypeEnum, 'MOVEMENTSENSOR', INDETERMINATE) -phsensor = getattr(IfcSensorTypeEnum, 'PHSENSOR', INDETERMINATE) -pressuresensor = getattr(IfcSensorTypeEnum, 'PRESSURESENSOR', INDETERMINATE) -radiationsensor = getattr(IfcSensorTypeEnum, 'RADIATIONSENSOR', INDETERMINATE) -radioactivitysensor = getattr(IfcSensorTypeEnum, 'RADIOACTIVITYSENSOR', INDETERMINATE) -smokesensor = getattr(IfcSensorTypeEnum, 'SMOKESENSOR', INDETERMINATE) -soundsensor = getattr(IfcSensorTypeEnum, 'SOUNDSENSOR', INDETERMINATE) -temperaturesensor = getattr(IfcSensorTypeEnum, 'TEMPERATURESENSOR', INDETERMINATE) -windsensor = getattr(IfcSensorTypeEnum, 'WINDSENSOR', INDETERMINATE) -earthquakesensor = getattr(IfcSensorTypeEnum, 'EARTHQUAKESENSOR', INDETERMINATE) -foreignobjectdetectionsensor = getattr(IfcSensorTypeEnum, 'FOREIGNOBJECTDETECTIONSENSOR', INDETERMINATE) -obstaclesensor = getattr(IfcSensorTypeEnum, 'OBSTACLESENSOR', INDETERMINATE) -rainsensor = getattr(IfcSensorTypeEnum, 'RAINSENSOR', INDETERMINATE) -snowdepthsensor = getattr(IfcSensorTypeEnum, 'SNOWDEPTHSENSOR', INDETERMINATE) -trainsensor = getattr(IfcSensorTypeEnum, 'TRAINSENSOR', INDETERMINATE) -turnoutclosuresensor = getattr(IfcSensorTypeEnum, 'TURNOUTCLOSURESENSOR', INDETERMINATE) -wheelsensor = getattr(IfcSensorTypeEnum, 'WHEELSENSOR', INDETERMINATE) -userdefined = getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSensorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cosensor = IfcSensorTypeEnum.COSENSOR +co2sensor = IfcSensorTypeEnum.CO2SENSOR +conductancesensor = IfcSensorTypeEnum.CONDUCTANCESENSOR +contactsensor = IfcSensorTypeEnum.CONTACTSENSOR +firesensor = IfcSensorTypeEnum.FIRESENSOR +flowsensor = IfcSensorTypeEnum.FLOWSENSOR +frostsensor = IfcSensorTypeEnum.FROSTSENSOR +gassensor = IfcSensorTypeEnum.GASSENSOR +heatsensor = IfcSensorTypeEnum.HEATSENSOR +humiditysensor = IfcSensorTypeEnum.HUMIDITYSENSOR +identifiersensor = IfcSensorTypeEnum.IDENTIFIERSENSOR +ionconcentrationsensor = IfcSensorTypeEnum.IONCONCENTRATIONSENSOR +levelsensor = IfcSensorTypeEnum.LEVELSENSOR +lightsensor = IfcSensorTypeEnum.LIGHTSENSOR +moisturesensor = IfcSensorTypeEnum.MOISTURESENSOR +movementsensor = IfcSensorTypeEnum.MOVEMENTSENSOR +phsensor = IfcSensorTypeEnum.PHSENSOR +pressuresensor = IfcSensorTypeEnum.PRESSURESENSOR +radiationsensor = IfcSensorTypeEnum.RADIATIONSENSOR +radioactivitysensor = IfcSensorTypeEnum.RADIOACTIVITYSENSOR +smokesensor = IfcSensorTypeEnum.SMOKESENSOR +soundsensor = IfcSensorTypeEnum.SOUNDSENSOR +temperaturesensor = IfcSensorTypeEnum.TEMPERATURESENSOR +windsensor = IfcSensorTypeEnum.WINDSENSOR +earthquakesensor = IfcSensorTypeEnum.EARTHQUAKESENSOR +foreignobjectdetectionsensor = IfcSensorTypeEnum.FOREIGNOBJECTDETECTIONSENSOR +obstaclesensor = IfcSensorTypeEnum.OBSTACLESENSOR +rainsensor = IfcSensorTypeEnum.RAINSENSOR +snowdepthsensor = IfcSensorTypeEnum.SNOWDEPTHSENSOR +trainsensor = IfcSensorTypeEnum.TRAINSENSOR +turnoutclosuresensor = IfcSensorTypeEnum.TURNOUTCLOSURESENSOR +wheelsensor = IfcSensorTypeEnum.WHEELSENSOR +userdefined = IfcSensorTypeEnum.USERDEFINED +notdefined = IfcSensorTypeEnum.NOTDEFINED IfcSequenceEnum = enum_namespace() -start_start = getattr(IfcSequenceEnum, 'START_START', INDETERMINATE) -start_finish = getattr(IfcSequenceEnum, 'START_FINISH', INDETERMINATE) -finish_start = getattr(IfcSequenceEnum, 'FINISH_START', INDETERMINATE) -finish_finish = getattr(IfcSequenceEnum, 'FINISH_FINISH', INDETERMINATE) -userdefined = getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSequenceEnum, 'NOTDEFINED', INDETERMINATE) +start_start = IfcSequenceEnum.START_START +start_finish = IfcSequenceEnum.START_FINISH +finish_start = IfcSequenceEnum.FINISH_START +finish_finish = IfcSequenceEnum.FINISH_FINISH +userdefined = IfcSequenceEnum.USERDEFINED +notdefined = IfcSequenceEnum.NOTDEFINED IfcShadingDeviceTypeEnum = enum_namespace() -jalousie = getattr(IfcShadingDeviceTypeEnum, 'JALOUSIE', INDETERMINATE) -shutter = getattr(IfcShadingDeviceTypeEnum, 'SHUTTER', INDETERMINATE) -awning = getattr(IfcShadingDeviceTypeEnum, 'AWNING', INDETERMINATE) -userdefined = getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcShadingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +jalousie = IfcShadingDeviceTypeEnum.JALOUSIE +shutter = IfcShadingDeviceTypeEnum.SHUTTER +awning = IfcShadingDeviceTypeEnum.AWNING +userdefined = IfcShadingDeviceTypeEnum.USERDEFINED +notdefined = IfcShadingDeviceTypeEnum.NOTDEFINED IfcSignTypeEnum = enum_namespace() -marker = getattr(IfcSignTypeEnum, 'MARKER', INDETERMINATE) -pictoral = getattr(IfcSignTypeEnum, 'PICTORAL', INDETERMINATE) -mirror = getattr(IfcSignTypeEnum, 'MIRROR', INDETERMINATE) -userdefined = getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSignTypeEnum, 'NOTDEFINED', INDETERMINATE) +marker = IfcSignTypeEnum.MARKER +pictoral = IfcSignTypeEnum.PICTORAL +mirror = IfcSignTypeEnum.MIRROR +userdefined = IfcSignTypeEnum.USERDEFINED +notdefined = IfcSignTypeEnum.NOTDEFINED IfcSignalTypeEnum = enum_namespace() -visual = getattr(IfcSignalTypeEnum, 'VISUAL', INDETERMINATE) -audio = getattr(IfcSignalTypeEnum, 'AUDIO', INDETERMINATE) -mixed = getattr(IfcSignalTypeEnum, 'MIXED', INDETERMINATE) -userdefined = getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSignalTypeEnum, 'NOTDEFINED', INDETERMINATE) +visual = IfcSignalTypeEnum.VISUAL +audio = IfcSignalTypeEnum.AUDIO +mixed = IfcSignalTypeEnum.MIXED +userdefined = IfcSignalTypeEnum.USERDEFINED +notdefined = IfcSignalTypeEnum.NOTDEFINED IfcSimplePropertyTemplateTypeEnum = enum_namespace() -p_singlevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_SINGLEVALUE', INDETERMINATE) -p_enumeratedvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_ENUMERATEDVALUE', INDETERMINATE) -p_boundedvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_BOUNDEDVALUE', INDETERMINATE) -p_listvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_LISTVALUE', INDETERMINATE) -p_tablevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_TABLEVALUE', INDETERMINATE) -p_referencevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_REFERENCEVALUE', INDETERMINATE) -q_length = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_LENGTH', INDETERMINATE) -q_area = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_AREA', INDETERMINATE) -q_volume = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_VOLUME', INDETERMINATE) -q_count = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_COUNT', INDETERMINATE) -q_weight = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_WEIGHT', INDETERMINATE) -q_time = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_TIME', INDETERMINATE) +p_singlevalue = IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE +p_enumeratedvalue = IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE +p_boundedvalue = IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE +p_listvalue = IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE +p_tablevalue = IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE +p_referencevalue = IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE +q_length = IfcSimplePropertyTemplateTypeEnum.Q_LENGTH +q_area = IfcSimplePropertyTemplateTypeEnum.Q_AREA +q_volume = IfcSimplePropertyTemplateTypeEnum.Q_VOLUME +q_count = IfcSimplePropertyTemplateTypeEnum.Q_COUNT +q_weight = IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT +q_time = IfcSimplePropertyTemplateTypeEnum.Q_TIME IfcSlabTypeEnum = enum_namespace() -floor = getattr(IfcSlabTypeEnum, 'FLOOR', INDETERMINATE) -roof = getattr(IfcSlabTypeEnum, 'ROOF', INDETERMINATE) -landing = getattr(IfcSlabTypeEnum, 'LANDING', INDETERMINATE) -baseslab = getattr(IfcSlabTypeEnum, 'BASESLAB', INDETERMINATE) -approach_slab = getattr(IfcSlabTypeEnum, 'APPROACH_SLAB', INDETERMINATE) -paving = getattr(IfcSlabTypeEnum, 'PAVING', INDETERMINATE) -wearing = getattr(IfcSlabTypeEnum, 'WEARING', INDETERMINATE) -sidewalk = getattr(IfcSlabTypeEnum, 'SIDEWALK', INDETERMINATE) -trackslab = getattr(IfcSlabTypeEnum, 'TRACKSLAB', INDETERMINATE) -userdefined = getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSlabTypeEnum, 'NOTDEFINED', INDETERMINATE) +floor = IfcSlabTypeEnum.FLOOR +roof = IfcSlabTypeEnum.ROOF +landing = IfcSlabTypeEnum.LANDING +baseslab = IfcSlabTypeEnum.BASESLAB +approach_slab = IfcSlabTypeEnum.APPROACH_SLAB +paving = IfcSlabTypeEnum.PAVING +wearing = IfcSlabTypeEnum.WEARING +sidewalk = IfcSlabTypeEnum.SIDEWALK +trackslab = IfcSlabTypeEnum.TRACKSLAB +userdefined = IfcSlabTypeEnum.USERDEFINED +notdefined = IfcSlabTypeEnum.NOTDEFINED IfcSolarDeviceTypeEnum = enum_namespace() -solarcollector = getattr(IfcSolarDeviceTypeEnum, 'SOLARCOLLECTOR', INDETERMINATE) -solarpanel = getattr(IfcSolarDeviceTypeEnum, 'SOLARPANEL', INDETERMINATE) -userdefined = getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSolarDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +solarcollector = IfcSolarDeviceTypeEnum.SOLARCOLLECTOR +solarpanel = IfcSolarDeviceTypeEnum.SOLARPANEL +userdefined = IfcSolarDeviceTypeEnum.USERDEFINED +notdefined = IfcSolarDeviceTypeEnum.NOTDEFINED IfcSpaceHeaterTypeEnum = enum_namespace() -convector = getattr(IfcSpaceHeaterTypeEnum, 'CONVECTOR', INDETERMINATE) -radiator = getattr(IfcSpaceHeaterTypeEnum, 'RADIATOR', INDETERMINATE) -userdefined = getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpaceHeaterTypeEnum, 'NOTDEFINED', INDETERMINATE) +convector = IfcSpaceHeaterTypeEnum.CONVECTOR +radiator = IfcSpaceHeaterTypeEnum.RADIATOR +userdefined = IfcSpaceHeaterTypeEnum.USERDEFINED +notdefined = IfcSpaceHeaterTypeEnum.NOTDEFINED IfcSpaceTypeEnum = enum_namespace() -space = getattr(IfcSpaceTypeEnum, 'SPACE', INDETERMINATE) -parking = getattr(IfcSpaceTypeEnum, 'PARKING', INDETERMINATE) -gfa = getattr(IfcSpaceTypeEnum, 'GFA', INDETERMINATE) -internal = getattr(IfcSpaceTypeEnum, 'INTERNAL', INDETERMINATE) -external = getattr(IfcSpaceTypeEnum, 'EXTERNAL', INDETERMINATE) -berth = getattr(IfcSpaceTypeEnum, 'BERTH', INDETERMINATE) -userdefined = getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpaceTypeEnum, 'NOTDEFINED', INDETERMINATE) +space = IfcSpaceTypeEnum.SPACE +parking = IfcSpaceTypeEnum.PARKING +gfa = IfcSpaceTypeEnum.GFA +internal = IfcSpaceTypeEnum.INTERNAL +external = IfcSpaceTypeEnum.EXTERNAL +berth = IfcSpaceTypeEnum.BERTH +userdefined = IfcSpaceTypeEnum.USERDEFINED +notdefined = IfcSpaceTypeEnum.NOTDEFINED IfcSpatialZoneTypeEnum = enum_namespace() -construction = getattr(IfcSpatialZoneTypeEnum, 'CONSTRUCTION', INDETERMINATE) -firesafety = getattr(IfcSpatialZoneTypeEnum, 'FIRESAFETY', INDETERMINATE) -lighting = getattr(IfcSpatialZoneTypeEnum, 'LIGHTING', INDETERMINATE) -occupancy = getattr(IfcSpatialZoneTypeEnum, 'OCCUPANCY', INDETERMINATE) -security = getattr(IfcSpatialZoneTypeEnum, 'SECURITY', INDETERMINATE) -thermal = getattr(IfcSpatialZoneTypeEnum, 'THERMAL', INDETERMINATE) -transport = getattr(IfcSpatialZoneTypeEnum, 'TRANSPORT', INDETERMINATE) -ventilation = getattr(IfcSpatialZoneTypeEnum, 'VENTILATION', INDETERMINATE) -reservation = getattr(IfcSpatialZoneTypeEnum, 'RESERVATION', INDETERMINATE) -interference = getattr(IfcSpatialZoneTypeEnum, 'INTERFERENCE', INDETERMINATE) -userdefined = getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpatialZoneTypeEnum, 'NOTDEFINED', INDETERMINATE) +construction = IfcSpatialZoneTypeEnum.CONSTRUCTION +firesafety = IfcSpatialZoneTypeEnum.FIRESAFETY +lighting = IfcSpatialZoneTypeEnum.LIGHTING +occupancy = IfcSpatialZoneTypeEnum.OCCUPANCY +security = IfcSpatialZoneTypeEnum.SECURITY +thermal = IfcSpatialZoneTypeEnum.THERMAL +transport = IfcSpatialZoneTypeEnum.TRANSPORT +ventilation = IfcSpatialZoneTypeEnum.VENTILATION +reservation = IfcSpatialZoneTypeEnum.RESERVATION +interference = IfcSpatialZoneTypeEnum.INTERFERENCE +userdefined = IfcSpatialZoneTypeEnum.USERDEFINED +notdefined = IfcSpatialZoneTypeEnum.NOTDEFINED IfcStackTerminalTypeEnum = enum_namespace() -birdcage = getattr(IfcStackTerminalTypeEnum, 'BIRDCAGE', INDETERMINATE) -cowl = getattr(IfcStackTerminalTypeEnum, 'COWL', INDETERMINATE) -rainwaterhopper = getattr(IfcStackTerminalTypeEnum, 'RAINWATERHOPPER', INDETERMINATE) -userdefined = getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStackTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +birdcage = IfcStackTerminalTypeEnum.BIRDCAGE +cowl = IfcStackTerminalTypeEnum.COWL +rainwaterhopper = IfcStackTerminalTypeEnum.RAINWATERHOPPER +userdefined = IfcStackTerminalTypeEnum.USERDEFINED +notdefined = IfcStackTerminalTypeEnum.NOTDEFINED IfcStairFlightTypeEnum = enum_namespace() -straight = getattr(IfcStairFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -winder = getattr(IfcStairFlightTypeEnum, 'WINDER', INDETERMINATE) -spiral = getattr(IfcStairFlightTypeEnum, 'SPIRAL', INDETERMINATE) -curved = getattr(IfcStairFlightTypeEnum, 'CURVED', INDETERMINATE) -freeform = getattr(IfcStairFlightTypeEnum, 'FREEFORM', INDETERMINATE) -userdefined = getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStairFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight = IfcStairFlightTypeEnum.STRAIGHT +winder = IfcStairFlightTypeEnum.WINDER +spiral = IfcStairFlightTypeEnum.SPIRAL +curved = IfcStairFlightTypeEnum.CURVED +freeform = IfcStairFlightTypeEnum.FREEFORM +userdefined = IfcStairFlightTypeEnum.USERDEFINED +notdefined = IfcStairFlightTypeEnum.NOTDEFINED IfcStairTypeEnum = enum_namespace() -straight_run_stair = getattr(IfcStairTypeEnum, 'STRAIGHT_RUN_STAIR', INDETERMINATE) -two_straight_run_stair = getattr(IfcStairTypeEnum, 'TWO_STRAIGHT_RUN_STAIR', INDETERMINATE) -quarter_winding_stair = getattr(IfcStairTypeEnum, 'QUARTER_WINDING_STAIR', INDETERMINATE) -quarter_turn_stair = getattr(IfcStairTypeEnum, 'QUARTER_TURN_STAIR', INDETERMINATE) -half_winding_stair = getattr(IfcStairTypeEnum, 'HALF_WINDING_STAIR', INDETERMINATE) -half_turn_stair = getattr(IfcStairTypeEnum, 'HALF_TURN_STAIR', INDETERMINATE) -two_quarter_winding_stair = getattr(IfcStairTypeEnum, 'TWO_QUARTER_WINDING_STAIR', INDETERMINATE) -two_quarter_turn_stair = getattr(IfcStairTypeEnum, 'TWO_QUARTER_TURN_STAIR', INDETERMINATE) -three_quarter_winding_stair = getattr(IfcStairTypeEnum, 'THREE_QUARTER_WINDING_STAIR', INDETERMINATE) -three_quarter_turn_stair = getattr(IfcStairTypeEnum, 'THREE_QUARTER_TURN_STAIR', INDETERMINATE) -spiral_stair = getattr(IfcStairTypeEnum, 'SPIRAL_STAIR', INDETERMINATE) -double_return_stair = getattr(IfcStairTypeEnum, 'DOUBLE_RETURN_STAIR', INDETERMINATE) -curved_run_stair = getattr(IfcStairTypeEnum, 'CURVED_RUN_STAIR', INDETERMINATE) -two_curved_run_stair = getattr(IfcStairTypeEnum, 'TWO_CURVED_RUN_STAIR', INDETERMINATE) -ladder = getattr(IfcStairTypeEnum, 'LADDER', INDETERMINATE) -userdefined = getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStairTypeEnum, 'NOTDEFINED', INDETERMINATE) +straight_run_stair = IfcStairTypeEnum.STRAIGHT_RUN_STAIR +two_straight_run_stair = IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR +quarter_winding_stair = IfcStairTypeEnum.QUARTER_WINDING_STAIR +quarter_turn_stair = IfcStairTypeEnum.QUARTER_TURN_STAIR +half_winding_stair = IfcStairTypeEnum.HALF_WINDING_STAIR +half_turn_stair = IfcStairTypeEnum.HALF_TURN_STAIR +two_quarter_winding_stair = IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR +two_quarter_turn_stair = IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR +three_quarter_winding_stair = IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR +three_quarter_turn_stair = IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR +spiral_stair = IfcStairTypeEnum.SPIRAL_STAIR +double_return_stair = IfcStairTypeEnum.DOUBLE_RETURN_STAIR +curved_run_stair = IfcStairTypeEnum.CURVED_RUN_STAIR +two_curved_run_stair = IfcStairTypeEnum.TWO_CURVED_RUN_STAIR +ladder = IfcStairTypeEnum.LADDER +userdefined = IfcStairTypeEnum.USERDEFINED +notdefined = IfcStairTypeEnum.NOTDEFINED IfcStateEnum = enum_namespace() -readwrite = getattr(IfcStateEnum, 'READWRITE', INDETERMINATE) -readonly = getattr(IfcStateEnum, 'READONLY', INDETERMINATE) -locked = getattr(IfcStateEnum, 'LOCKED', INDETERMINATE) -readwritelocked = getattr(IfcStateEnum, 'READWRITELOCKED', INDETERMINATE) -readonlylocked = getattr(IfcStateEnum, 'READONLYLOCKED', INDETERMINATE) +readwrite = IfcStateEnum.READWRITE +readonly = IfcStateEnum.READONLY +locked = IfcStateEnum.LOCKED +readwritelocked = IfcStateEnum.READWRITELOCKED +readonlylocked = IfcStateEnum.READONLYLOCKED IfcStructuralCurveActivityTypeEnum = enum_namespace() -const = getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE) -linear = getattr(IfcStructuralCurveActivityTypeEnum, 'LINEAR', INDETERMINATE) -polygonal = getattr(IfcStructuralCurveActivityTypeEnum, 'POLYGONAL', INDETERMINATE) -equidistant = getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE) -sinus = getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) -parabola = getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE) -discrete = getattr(IfcStructuralCurveActivityTypeEnum, 'DISCRETE', INDETERMINATE) -userdefined = getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralCurveActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralCurveActivityTypeEnum.CONST +linear = IfcStructuralCurveActivityTypeEnum.LINEAR +polygonal = IfcStructuralCurveActivityTypeEnum.POLYGONAL +equidistant = IfcStructuralCurveActivityTypeEnum.EQUIDISTANT +sinus = IfcStructuralCurveActivityTypeEnum.SINUS +parabola = IfcStructuralCurveActivityTypeEnum.PARABOLA +discrete = IfcStructuralCurveActivityTypeEnum.DISCRETE +userdefined = IfcStructuralCurveActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveActivityTypeEnum.NOTDEFINED IfcStructuralCurveMemberTypeEnum = enum_namespace() -rigid_joined_member = getattr(IfcStructuralCurveMemberTypeEnum, 'RIGID_JOINED_MEMBER', INDETERMINATE) -pin_joined_member = getattr(IfcStructuralCurveMemberTypeEnum, 'PIN_JOINED_MEMBER', INDETERMINATE) -cable = getattr(IfcStructuralCurveMemberTypeEnum, 'CABLE', INDETERMINATE) -tension_member = getattr(IfcStructuralCurveMemberTypeEnum, 'TENSION_MEMBER', INDETERMINATE) -compression_member = getattr(IfcStructuralCurveMemberTypeEnum, 'COMPRESSION_MEMBER', INDETERMINATE) -userdefined = getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralCurveMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +rigid_joined_member = IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER +pin_joined_member = IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER +cable = IfcStructuralCurveMemberTypeEnum.CABLE +tension_member = IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER +compression_member = IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER +userdefined = IfcStructuralCurveMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveMemberTypeEnum.NOTDEFINED IfcStructuralSurfaceActivityTypeEnum = enum_namespace() -const = getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE) -bilinear = getattr(IfcStructuralSurfaceActivityTypeEnum, 'BILINEAR', INDETERMINATE) -discrete = getattr(IfcStructuralSurfaceActivityTypeEnum, 'DISCRETE', INDETERMINATE) -isocontour = getattr(IfcStructuralSurfaceActivityTypeEnum, 'ISOCONTOUR', INDETERMINATE) -userdefined = getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralSurfaceActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralSurfaceActivityTypeEnum.CONST +bilinear = IfcStructuralSurfaceActivityTypeEnum.BILINEAR +discrete = IfcStructuralSurfaceActivityTypeEnum.DISCRETE +isocontour = IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR +userdefined = IfcStructuralSurfaceActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED IfcStructuralSurfaceMemberTypeEnum = enum_namespace() -bending_element = getattr(IfcStructuralSurfaceMemberTypeEnum, 'BENDING_ELEMENT', INDETERMINATE) -membrane_element = getattr(IfcStructuralSurfaceMemberTypeEnum, 'MEMBRANE_ELEMENT', INDETERMINATE) -shell = getattr(IfcStructuralSurfaceMemberTypeEnum, 'SHELL', INDETERMINATE) -userdefined = getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralSurfaceMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_element = IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT +membrane_element = IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT +shell = IfcStructuralSurfaceMemberTypeEnum.SHELL +userdefined = IfcStructuralSurfaceMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED IfcSubContractResourceTypeEnum = enum_namespace() -purchase = getattr(IfcSubContractResourceTypeEnum, 'PURCHASE', INDETERMINATE) -work = getattr(IfcSubContractResourceTypeEnum, 'WORK', INDETERMINATE) -userdefined = getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSubContractResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +purchase = IfcSubContractResourceTypeEnum.PURCHASE +work = IfcSubContractResourceTypeEnum.WORK +userdefined = IfcSubContractResourceTypeEnum.USERDEFINED +notdefined = IfcSubContractResourceTypeEnum.NOTDEFINED IfcSurfaceFeatureTypeEnum = enum_namespace() -mark = getattr(IfcSurfaceFeatureTypeEnum, 'MARK', INDETERMINATE) -tag = getattr(IfcSurfaceFeatureTypeEnum, 'TAG', INDETERMINATE) -treatment = getattr(IfcSurfaceFeatureTypeEnum, 'TREATMENT', INDETERMINATE) -defect = getattr(IfcSurfaceFeatureTypeEnum, 'DEFECT', INDETERMINATE) -hatchmarking = getattr(IfcSurfaceFeatureTypeEnum, 'HATCHMARKING', INDETERMINATE) -linemarking = getattr(IfcSurfaceFeatureTypeEnum, 'LINEMARKING', INDETERMINATE) -pavementsurfacemarking = getattr(IfcSurfaceFeatureTypeEnum, 'PAVEMENTSURFACEMARKING', INDETERMINATE) -symbolmarking = getattr(IfcSurfaceFeatureTypeEnum, 'SYMBOLMARKING', INDETERMINATE) -nonskidsurfacing = getattr(IfcSurfaceFeatureTypeEnum, 'NONSKIDSURFACING', INDETERMINATE) -rumblestrip = getattr(IfcSurfaceFeatureTypeEnum, 'RUMBLESTRIP', INDETERMINATE) -transverserumblestrip = getattr(IfcSurfaceFeatureTypeEnum, 'TRANSVERSERUMBLESTRIP', INDETERMINATE) -userdefined = getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSurfaceFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +mark = IfcSurfaceFeatureTypeEnum.MARK +tag = IfcSurfaceFeatureTypeEnum.TAG +treatment = IfcSurfaceFeatureTypeEnum.TREATMENT +defect = IfcSurfaceFeatureTypeEnum.DEFECT +hatchmarking = IfcSurfaceFeatureTypeEnum.HATCHMARKING +linemarking = IfcSurfaceFeatureTypeEnum.LINEMARKING +pavementsurfacemarking = IfcSurfaceFeatureTypeEnum.PAVEMENTSURFACEMARKING +symbolmarking = IfcSurfaceFeatureTypeEnum.SYMBOLMARKING +nonskidsurfacing = IfcSurfaceFeatureTypeEnum.NONSKIDSURFACING +rumblestrip = IfcSurfaceFeatureTypeEnum.RUMBLESTRIP +transverserumblestrip = IfcSurfaceFeatureTypeEnum.TRANSVERSERUMBLESTRIP +userdefined = IfcSurfaceFeatureTypeEnum.USERDEFINED +notdefined = IfcSurfaceFeatureTypeEnum.NOTDEFINED IfcSurfaceSide = enum_namespace() -positive = getattr(IfcSurfaceSide, 'POSITIVE', INDETERMINATE) -negative = getattr(IfcSurfaceSide, 'NEGATIVE', INDETERMINATE) -both = getattr(IfcSurfaceSide, 'BOTH', INDETERMINATE) +positive = IfcSurfaceSide.POSITIVE +negative = IfcSurfaceSide.NEGATIVE +both = IfcSurfaceSide.BOTH IfcSwitchingDeviceTypeEnum = enum_namespace() -contactor = getattr(IfcSwitchingDeviceTypeEnum, 'CONTACTOR', INDETERMINATE) -dimmerswitch = getattr(IfcSwitchingDeviceTypeEnum, 'DIMMERSWITCH', INDETERMINATE) -emergencystop = getattr(IfcSwitchingDeviceTypeEnum, 'EMERGENCYSTOP', INDETERMINATE) -keypad = getattr(IfcSwitchingDeviceTypeEnum, 'KEYPAD', INDETERMINATE) -momentaryswitch = getattr(IfcSwitchingDeviceTypeEnum, 'MOMENTARYSWITCH', INDETERMINATE) -selectorswitch = getattr(IfcSwitchingDeviceTypeEnum, 'SELECTORSWITCH', INDETERMINATE) -starter = getattr(IfcSwitchingDeviceTypeEnum, 'STARTER', INDETERMINATE) -switchdisconnector = getattr(IfcSwitchingDeviceTypeEnum, 'SWITCHDISCONNECTOR', INDETERMINATE) -toggleswitch = getattr(IfcSwitchingDeviceTypeEnum, 'TOGGLESWITCH', INDETERMINATE) -relay = getattr(IfcSwitchingDeviceTypeEnum, 'RELAY', INDETERMINATE) -start_and_stop_equipment = getattr(IfcSwitchingDeviceTypeEnum, 'START_AND_STOP_EQUIPMENT', INDETERMINATE) -userdefined = getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSwitchingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +contactor = IfcSwitchingDeviceTypeEnum.CONTACTOR +dimmerswitch = IfcSwitchingDeviceTypeEnum.DIMMERSWITCH +emergencystop = IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP +keypad = IfcSwitchingDeviceTypeEnum.KEYPAD +momentaryswitch = IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH +selectorswitch = IfcSwitchingDeviceTypeEnum.SELECTORSWITCH +starter = IfcSwitchingDeviceTypeEnum.STARTER +switchdisconnector = IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR +toggleswitch = IfcSwitchingDeviceTypeEnum.TOGGLESWITCH +relay = IfcSwitchingDeviceTypeEnum.RELAY +start_and_stop_equipment = IfcSwitchingDeviceTypeEnum.START_AND_STOP_EQUIPMENT +userdefined = IfcSwitchingDeviceTypeEnum.USERDEFINED +notdefined = IfcSwitchingDeviceTypeEnum.NOTDEFINED IfcSystemFurnitureElementTypeEnum = enum_namespace() -panel = getattr(IfcSystemFurnitureElementTypeEnum, 'PANEL', INDETERMINATE) -worksurface = getattr(IfcSystemFurnitureElementTypeEnum, 'WORKSURFACE', INDETERMINATE) -subrack = getattr(IfcSystemFurnitureElementTypeEnum, 'SUBRACK', INDETERMINATE) -userdefined = getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSystemFurnitureElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +panel = IfcSystemFurnitureElementTypeEnum.PANEL +worksurface = IfcSystemFurnitureElementTypeEnum.WORKSURFACE +subrack = IfcSystemFurnitureElementTypeEnum.SUBRACK +userdefined = IfcSystemFurnitureElementTypeEnum.USERDEFINED +notdefined = IfcSystemFurnitureElementTypeEnum.NOTDEFINED IfcTankTypeEnum = enum_namespace() -basin = getattr(IfcTankTypeEnum, 'BASIN', INDETERMINATE) -breakpressure = getattr(IfcTankTypeEnum, 'BREAKPRESSURE', INDETERMINATE) -expansion = getattr(IfcTankTypeEnum, 'EXPANSION', INDETERMINATE) -feedandexpansion = getattr(IfcTankTypeEnum, 'FEEDANDEXPANSION', INDETERMINATE) -pressurevessel = getattr(IfcTankTypeEnum, 'PRESSUREVESSEL', INDETERMINATE) -storage = getattr(IfcTankTypeEnum, 'STORAGE', INDETERMINATE) -vessel = getattr(IfcTankTypeEnum, 'VESSEL', INDETERMINATE) -oilretentiontray = getattr(IfcTankTypeEnum, 'OILRETENTIONTRAY', INDETERMINATE) -userdefined = getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTankTypeEnum, 'NOTDEFINED', INDETERMINATE) +basin = IfcTankTypeEnum.BASIN +breakpressure = IfcTankTypeEnum.BREAKPRESSURE +expansion = IfcTankTypeEnum.EXPANSION +feedandexpansion = IfcTankTypeEnum.FEEDANDEXPANSION +pressurevessel = IfcTankTypeEnum.PRESSUREVESSEL +storage = IfcTankTypeEnum.STORAGE +vessel = IfcTankTypeEnum.VESSEL +oilretentiontray = IfcTankTypeEnum.OILRETENTIONTRAY +userdefined = IfcTankTypeEnum.USERDEFINED +notdefined = IfcTankTypeEnum.NOTDEFINED IfcTaskDurationEnum = enum_namespace() -elapsedtime = getattr(IfcTaskDurationEnum, 'ELAPSEDTIME', INDETERMINATE) -worktime = getattr(IfcTaskDurationEnum, 'WORKTIME', INDETERMINATE) -notdefined = getattr(IfcTaskDurationEnum, 'NOTDEFINED', INDETERMINATE) +elapsedtime = IfcTaskDurationEnum.ELAPSEDTIME +worktime = IfcTaskDurationEnum.WORKTIME +notdefined = IfcTaskDurationEnum.NOTDEFINED IfcTaskTypeEnum = enum_namespace() -attendance = getattr(IfcTaskTypeEnum, 'ATTENDANCE', INDETERMINATE) -construction = getattr(IfcTaskTypeEnum, 'CONSTRUCTION', INDETERMINATE) -demolition = getattr(IfcTaskTypeEnum, 'DEMOLITION', INDETERMINATE) -dismantle = getattr(IfcTaskTypeEnum, 'DISMANTLE', INDETERMINATE) -disposal = getattr(IfcTaskTypeEnum, 'DISPOSAL', INDETERMINATE) -installation = getattr(IfcTaskTypeEnum, 'INSTALLATION', INDETERMINATE) -logistic = getattr(IfcTaskTypeEnum, 'LOGISTIC', INDETERMINATE) -maintenance = getattr(IfcTaskTypeEnum, 'MAINTENANCE', INDETERMINATE) -move = getattr(IfcTaskTypeEnum, 'MOVE', INDETERMINATE) -operation = getattr(IfcTaskTypeEnum, 'OPERATION', INDETERMINATE) -removal = getattr(IfcTaskTypeEnum, 'REMOVAL', INDETERMINATE) -renovation = getattr(IfcTaskTypeEnum, 'RENOVATION', INDETERMINATE) -userdefined = getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTaskTypeEnum, 'NOTDEFINED', INDETERMINATE) +attendance = IfcTaskTypeEnum.ATTENDANCE +construction = IfcTaskTypeEnum.CONSTRUCTION +demolition = IfcTaskTypeEnum.DEMOLITION +dismantle = IfcTaskTypeEnum.DISMANTLE +disposal = IfcTaskTypeEnum.DISPOSAL +installation = IfcTaskTypeEnum.INSTALLATION +logistic = IfcTaskTypeEnum.LOGISTIC +maintenance = IfcTaskTypeEnum.MAINTENANCE +move = IfcTaskTypeEnum.MOVE +operation = IfcTaskTypeEnum.OPERATION +removal = IfcTaskTypeEnum.REMOVAL +renovation = IfcTaskTypeEnum.RENOVATION +userdefined = IfcTaskTypeEnum.USERDEFINED +notdefined = IfcTaskTypeEnum.NOTDEFINED IfcTendonAnchorTypeEnum = enum_namespace() -coupler = getattr(IfcTendonAnchorTypeEnum, 'COUPLER', INDETERMINATE) -fixed_end = getattr(IfcTendonAnchorTypeEnum, 'FIXED_END', INDETERMINATE) -tensioning_end = getattr(IfcTendonAnchorTypeEnum, 'TENSIONING_END', INDETERMINATE) -userdefined = getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonAnchorTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonAnchorTypeEnum.COUPLER +fixed_end = IfcTendonAnchorTypeEnum.FIXED_END +tensioning_end = IfcTendonAnchorTypeEnum.TENSIONING_END +userdefined = IfcTendonAnchorTypeEnum.USERDEFINED +notdefined = IfcTendonAnchorTypeEnum.NOTDEFINED IfcTendonConduitTypeEnum = enum_namespace() -duct = getattr(IfcTendonConduitTypeEnum, 'DUCT', INDETERMINATE) -coupler = getattr(IfcTendonConduitTypeEnum, 'COUPLER', INDETERMINATE) -grouting_duct = getattr(IfcTendonConduitTypeEnum, 'GROUTING_DUCT', INDETERMINATE) -trumpet = getattr(IfcTendonConduitTypeEnum, 'TRUMPET', INDETERMINATE) -diabolo = getattr(IfcTendonConduitTypeEnum, 'DIABOLO', INDETERMINATE) -userdefined = getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonConduitTypeEnum, 'NOTDEFINED', INDETERMINATE) +duct = IfcTendonConduitTypeEnum.DUCT +coupler = IfcTendonConduitTypeEnum.COUPLER +grouting_duct = IfcTendonConduitTypeEnum.GROUTING_DUCT +trumpet = IfcTendonConduitTypeEnum.TRUMPET +diabolo = IfcTendonConduitTypeEnum.DIABOLO +userdefined = IfcTendonConduitTypeEnum.USERDEFINED +notdefined = IfcTendonConduitTypeEnum.NOTDEFINED IfcTendonTypeEnum = enum_namespace() -bar = getattr(IfcTendonTypeEnum, 'BAR', INDETERMINATE) -coated = getattr(IfcTendonTypeEnum, 'COATED', INDETERMINATE) -strand = getattr(IfcTendonTypeEnum, 'STRAND', INDETERMINATE) -wire = getattr(IfcTendonTypeEnum, 'WIRE', INDETERMINATE) -userdefined = getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonTypeEnum, 'NOTDEFINED', INDETERMINATE) +bar = IfcTendonTypeEnum.BAR +coated = IfcTendonTypeEnum.COATED +strand = IfcTendonTypeEnum.STRAND +wire = IfcTendonTypeEnum.WIRE +userdefined = IfcTendonTypeEnum.USERDEFINED +notdefined = IfcTendonTypeEnum.NOTDEFINED IfcTextPath = enum_namespace() -left = getattr(IfcTextPath, 'LEFT', INDETERMINATE) -right = getattr(IfcTextPath, 'RIGHT', INDETERMINATE) -up = getattr(IfcTextPath, 'UP', INDETERMINATE) -down = getattr(IfcTextPath, 'DOWN', INDETERMINATE) +left = IfcTextPath.LEFT +right = IfcTextPath.RIGHT +up = IfcTextPath.UP +down = IfcTextPath.DOWN IfcTimeSeriesDataTypeEnum = enum_namespace() -continuous = getattr(IfcTimeSeriesDataTypeEnum, 'CONTINUOUS', INDETERMINATE) -discrete = getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETE', INDETERMINATE) -discretebinary = getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETEBINARY', INDETERMINATE) -piecewisebinary = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISEBINARY', INDETERMINATE) -piecewiseconstant = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONSTANT', INDETERMINATE) -piecewisecontinuous = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONTINUOUS', INDETERMINATE) -notdefined = getattr(IfcTimeSeriesDataTypeEnum, 'NOTDEFINED', INDETERMINATE) +continuous = IfcTimeSeriesDataTypeEnum.CONTINUOUS +discrete = IfcTimeSeriesDataTypeEnum.DISCRETE +discretebinary = IfcTimeSeriesDataTypeEnum.DISCRETEBINARY +piecewisebinary = IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY +piecewiseconstant = IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT +piecewisecontinuous = IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS +notdefined = IfcTimeSeriesDataTypeEnum.NOTDEFINED IfcTrackElementTypeEnum = enum_namespace() -trackendofalignment = getattr(IfcTrackElementTypeEnum, 'TRACKENDOFALIGNMENT', INDETERMINATE) -blockingdevice = getattr(IfcTrackElementTypeEnum, 'BLOCKINGDEVICE', INDETERMINATE) -vehiclestop = getattr(IfcTrackElementTypeEnum, 'VEHICLESTOP', INDETERMINATE) -sleeper = getattr(IfcTrackElementTypeEnum, 'SLEEPER', INDETERMINATE) -half_set_of_blades = getattr(IfcTrackElementTypeEnum, 'HALF_SET_OF_BLADES', INDETERMINATE) -speedregulator = getattr(IfcTrackElementTypeEnum, 'SPEEDREGULATOR', INDETERMINATE) -derailer = getattr(IfcTrackElementTypeEnum, 'DERAILER', INDETERMINATE) -frog = getattr(IfcTrackElementTypeEnum, 'FROG', INDETERMINATE) -userdefined = getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTrackElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +trackendofalignment = IfcTrackElementTypeEnum.TRACKENDOFALIGNMENT +blockingdevice = IfcTrackElementTypeEnum.BLOCKINGDEVICE +vehiclestop = IfcTrackElementTypeEnum.VEHICLESTOP +sleeper = IfcTrackElementTypeEnum.SLEEPER +half_set_of_blades = IfcTrackElementTypeEnum.HALF_SET_OF_BLADES +speedregulator = IfcTrackElementTypeEnum.SPEEDREGULATOR +derailer = IfcTrackElementTypeEnum.DERAILER +frog = IfcTrackElementTypeEnum.FROG +userdefined = IfcTrackElementTypeEnum.USERDEFINED +notdefined = IfcTrackElementTypeEnum.NOTDEFINED IfcTransformerTypeEnum = enum_namespace() -current = getattr(IfcTransformerTypeEnum, 'CURRENT', INDETERMINATE) -frequency = getattr(IfcTransformerTypeEnum, 'FREQUENCY', INDETERMINATE) -inverter = getattr(IfcTransformerTypeEnum, 'INVERTER', INDETERMINATE) -rectifier = getattr(IfcTransformerTypeEnum, 'RECTIFIER', INDETERMINATE) -voltage = getattr(IfcTransformerTypeEnum, 'VOLTAGE', INDETERMINATE) -chopper = getattr(IfcTransformerTypeEnum, 'CHOPPER', INDETERMINATE) -combined = getattr(IfcTransformerTypeEnum, 'COMBINED', INDETERMINATE) -userdefined = getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTransformerTypeEnum, 'NOTDEFINED', INDETERMINATE) +current = IfcTransformerTypeEnum.CURRENT +frequency = IfcTransformerTypeEnum.FREQUENCY +inverter = IfcTransformerTypeEnum.INVERTER +rectifier = IfcTransformerTypeEnum.RECTIFIER +voltage = IfcTransformerTypeEnum.VOLTAGE +chopper = IfcTransformerTypeEnum.CHOPPER +combined = IfcTransformerTypeEnum.COMBINED +userdefined = IfcTransformerTypeEnum.USERDEFINED +notdefined = IfcTransformerTypeEnum.NOTDEFINED IfcTransitionCode = enum_namespace() -discontinuous = getattr(IfcTransitionCode, 'DISCONTINUOUS', INDETERMINATE) -continuous = getattr(IfcTransitionCode, 'CONTINUOUS', INDETERMINATE) -contsamegradient = getattr(IfcTransitionCode, 'CONTSAMEGRADIENT', INDETERMINATE) -contsamegradientsamecurvature = getattr(IfcTransitionCode, 'CONTSAMEGRADIENTSAMECURVATURE', INDETERMINATE) +discontinuous = IfcTransitionCode.DISCONTINUOUS +continuous = IfcTransitionCode.CONTINUOUS +contsamegradient = IfcTransitionCode.CONTSAMEGRADIENT +contsamegradientsamecurvature = IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE IfcTransportElementFixedTypeEnum = enum_namespace() -elevator = getattr(IfcTransportElementFixedTypeEnum, 'ELEVATOR', INDETERMINATE) -escalator = getattr(IfcTransportElementFixedTypeEnum, 'ESCALATOR', INDETERMINATE) -movingwalkway = getattr(IfcTransportElementFixedTypeEnum, 'MOVINGWALKWAY', INDETERMINATE) -craneway = getattr(IfcTransportElementFixedTypeEnum, 'CRANEWAY', INDETERMINATE) -liftinggear = getattr(IfcTransportElementFixedTypeEnum, 'LIFTINGGEAR', INDETERMINATE) -haulinggear = getattr(IfcTransportElementFixedTypeEnum, 'HAULINGGEAR', INDETERMINATE) -userdefined = getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTransportElementFixedTypeEnum, 'NOTDEFINED', INDETERMINATE) +elevator = IfcTransportElementFixedTypeEnum.ELEVATOR +escalator = IfcTransportElementFixedTypeEnum.ESCALATOR +movingwalkway = IfcTransportElementFixedTypeEnum.MOVINGWALKWAY +craneway = IfcTransportElementFixedTypeEnum.CRANEWAY +liftinggear = IfcTransportElementFixedTypeEnum.LIFTINGGEAR +haulinggear = IfcTransportElementFixedTypeEnum.HAULINGGEAR +userdefined = IfcTransportElementFixedTypeEnum.USERDEFINED +notdefined = IfcTransportElementFixedTypeEnum.NOTDEFINED IfcTransportElementNonFixedTypeEnum = enum_namespace() -vehicle = getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLE', INDETERMINATE) -vehicletracked = getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLETRACKED', INDETERMINATE) -rollingstock = getattr(IfcTransportElementNonFixedTypeEnum, 'ROLLINGSTOCK', INDETERMINATE) -vehiclewheeled = getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLEWHEELED', INDETERMINATE) -vehicleair = getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLEAIR', INDETERMINATE) -cargo = getattr(IfcTransportElementNonFixedTypeEnum, 'CARGO', INDETERMINATE) -vehiclemarine = getattr(IfcTransportElementNonFixedTypeEnum, 'VEHICLEMARINE', INDETERMINATE) -userdefined = getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTransportElementNonFixedTypeEnum, 'NOTDEFINED', INDETERMINATE) +vehicle = IfcTransportElementNonFixedTypeEnum.VEHICLE +vehicletracked = IfcTransportElementNonFixedTypeEnum.VEHICLETRACKED +rollingstock = IfcTransportElementNonFixedTypeEnum.ROLLINGSTOCK +vehiclewheeled = IfcTransportElementNonFixedTypeEnum.VEHICLEWHEELED +vehicleair = IfcTransportElementNonFixedTypeEnum.VEHICLEAIR +cargo = IfcTransportElementNonFixedTypeEnum.CARGO +vehiclemarine = IfcTransportElementNonFixedTypeEnum.VEHICLEMARINE +userdefined = IfcTransportElementNonFixedTypeEnum.USERDEFINED +notdefined = IfcTransportElementNonFixedTypeEnum.NOTDEFINED IfcTrimmingPreference = enum_namespace() -cartesian = getattr(IfcTrimmingPreference, 'CARTESIAN', INDETERMINATE) -parameter = getattr(IfcTrimmingPreference, 'PARAMETER', INDETERMINATE) -unspecified = getattr(IfcTrimmingPreference, 'UNSPECIFIED', INDETERMINATE) +cartesian = IfcTrimmingPreference.CARTESIAN +parameter = IfcTrimmingPreference.PARAMETER +unspecified = IfcTrimmingPreference.UNSPECIFIED IfcTubeBundleTypeEnum = enum_namespace() -finned = getattr(IfcTubeBundleTypeEnum, 'FINNED', INDETERMINATE) -userdefined = getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTubeBundleTypeEnum, 'NOTDEFINED', INDETERMINATE) +finned = IfcTubeBundleTypeEnum.FINNED +userdefined = IfcTubeBundleTypeEnum.USERDEFINED +notdefined = IfcTubeBundleTypeEnum.NOTDEFINED IfcUnitEnum = enum_namespace() -absorbeddoseunit = getattr(IfcUnitEnum, 'ABSORBEDDOSEUNIT', INDETERMINATE) -amountofsubstanceunit = getattr(IfcUnitEnum, 'AMOUNTOFSUBSTANCEUNIT', INDETERMINATE) -areaunit = getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE) -doseequivalentunit = getattr(IfcUnitEnum, 'DOSEEQUIVALENTUNIT', INDETERMINATE) -electriccapacitanceunit = getattr(IfcUnitEnum, 'ELECTRICCAPACITANCEUNIT', INDETERMINATE) -electricchargeunit = getattr(IfcUnitEnum, 'ELECTRICCHARGEUNIT', INDETERMINATE) -electricconductanceunit = getattr(IfcUnitEnum, 'ELECTRICCONDUCTANCEUNIT', INDETERMINATE) -electriccurrentunit = getattr(IfcUnitEnum, 'ELECTRICCURRENTUNIT', INDETERMINATE) -electricresistanceunit = getattr(IfcUnitEnum, 'ELECTRICRESISTANCEUNIT', INDETERMINATE) -electricvoltageunit = getattr(IfcUnitEnum, 'ELECTRICVOLTAGEUNIT', INDETERMINATE) -energyunit = getattr(IfcUnitEnum, 'ENERGYUNIT', INDETERMINATE) -forceunit = getattr(IfcUnitEnum, 'FORCEUNIT', INDETERMINATE) -frequencyunit = getattr(IfcUnitEnum, 'FREQUENCYUNIT', INDETERMINATE) -illuminanceunit = getattr(IfcUnitEnum, 'ILLUMINANCEUNIT', INDETERMINATE) -inductanceunit = getattr(IfcUnitEnum, 'INDUCTANCEUNIT', INDETERMINATE) -lengthunit = getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE) -luminousfluxunit = getattr(IfcUnitEnum, 'LUMINOUSFLUXUNIT', INDETERMINATE) -luminousintensityunit = getattr(IfcUnitEnum, 'LUMINOUSINTENSITYUNIT', INDETERMINATE) -magneticfluxdensityunit = getattr(IfcUnitEnum, 'MAGNETICFLUXDENSITYUNIT', INDETERMINATE) -magneticfluxunit = getattr(IfcUnitEnum, 'MAGNETICFLUXUNIT', INDETERMINATE) -massunit = getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE) -planeangleunit = getattr(IfcUnitEnum, 'PLANEANGLEUNIT', INDETERMINATE) -powerunit = getattr(IfcUnitEnum, 'POWERUNIT', INDETERMINATE) -pressureunit = getattr(IfcUnitEnum, 'PRESSUREUNIT', INDETERMINATE) -radioactivityunit = getattr(IfcUnitEnum, 'RADIOACTIVITYUNIT', INDETERMINATE) -solidangleunit = getattr(IfcUnitEnum, 'SOLIDANGLEUNIT', INDETERMINATE) -thermodynamictemperatureunit = getattr(IfcUnitEnum, 'THERMODYNAMICTEMPERATUREUNIT', INDETERMINATE) -timeunit = getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE) -volumeunit = getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE) -userdefined = getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE) +absorbeddoseunit = IfcUnitEnum.ABSORBEDDOSEUNIT +amountofsubstanceunit = IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT +areaunit = IfcUnitEnum.AREAUNIT +doseequivalentunit = IfcUnitEnum.DOSEEQUIVALENTUNIT +electriccapacitanceunit = IfcUnitEnum.ELECTRICCAPACITANCEUNIT +electricchargeunit = IfcUnitEnum.ELECTRICCHARGEUNIT +electricconductanceunit = IfcUnitEnum.ELECTRICCONDUCTANCEUNIT +electriccurrentunit = IfcUnitEnum.ELECTRICCURRENTUNIT +electricresistanceunit = IfcUnitEnum.ELECTRICRESISTANCEUNIT +electricvoltageunit = IfcUnitEnum.ELECTRICVOLTAGEUNIT +energyunit = IfcUnitEnum.ENERGYUNIT +forceunit = IfcUnitEnum.FORCEUNIT +frequencyunit = IfcUnitEnum.FREQUENCYUNIT +illuminanceunit = IfcUnitEnum.ILLUMINANCEUNIT +inductanceunit = IfcUnitEnum.INDUCTANCEUNIT +lengthunit = IfcUnitEnum.LENGTHUNIT +luminousfluxunit = IfcUnitEnum.LUMINOUSFLUXUNIT +luminousintensityunit = IfcUnitEnum.LUMINOUSINTENSITYUNIT +magneticfluxdensityunit = IfcUnitEnum.MAGNETICFLUXDENSITYUNIT +magneticfluxunit = IfcUnitEnum.MAGNETICFLUXUNIT +massunit = IfcUnitEnum.MASSUNIT +planeangleunit = IfcUnitEnum.PLANEANGLEUNIT +powerunit = IfcUnitEnum.POWERUNIT +pressureunit = IfcUnitEnum.PRESSUREUNIT +radioactivityunit = IfcUnitEnum.RADIOACTIVITYUNIT +solidangleunit = IfcUnitEnum.SOLIDANGLEUNIT +thermodynamictemperatureunit = IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT +timeunit = IfcUnitEnum.TIMEUNIT +volumeunit = IfcUnitEnum.VOLUMEUNIT +userdefined = IfcUnitEnum.USERDEFINED IfcUnitaryControlElementTypeEnum = enum_namespace() -alarmpanel = getattr(IfcUnitaryControlElementTypeEnum, 'ALARMPANEL', INDETERMINATE) -controlpanel = getattr(IfcUnitaryControlElementTypeEnum, 'CONTROLPANEL', INDETERMINATE) -gasdetectionpanel = getattr(IfcUnitaryControlElementTypeEnum, 'GASDETECTIONPANEL', INDETERMINATE) -indicatorpanel = getattr(IfcUnitaryControlElementTypeEnum, 'INDICATORPANEL', INDETERMINATE) -mimicpanel = getattr(IfcUnitaryControlElementTypeEnum, 'MIMICPANEL', INDETERMINATE) -humidistat = getattr(IfcUnitaryControlElementTypeEnum, 'HUMIDISTAT', INDETERMINATE) -thermostat = getattr(IfcUnitaryControlElementTypeEnum, 'THERMOSTAT', INDETERMINATE) -weatherstation = getattr(IfcUnitaryControlElementTypeEnum, 'WEATHERSTATION', INDETERMINATE) -combined = getattr(IfcUnitaryControlElementTypeEnum, 'COMBINED', INDETERMINATE) -basestationcontroller = getattr(IfcUnitaryControlElementTypeEnum, 'BASESTATIONCONTROLLER', INDETERMINATE) -userdefined = getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcUnitaryControlElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +alarmpanel = IfcUnitaryControlElementTypeEnum.ALARMPANEL +controlpanel = IfcUnitaryControlElementTypeEnum.CONTROLPANEL +gasdetectionpanel = IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL +indicatorpanel = IfcUnitaryControlElementTypeEnum.INDICATORPANEL +mimicpanel = IfcUnitaryControlElementTypeEnum.MIMICPANEL +humidistat = IfcUnitaryControlElementTypeEnum.HUMIDISTAT +thermostat = IfcUnitaryControlElementTypeEnum.THERMOSTAT +weatherstation = IfcUnitaryControlElementTypeEnum.WEATHERSTATION +combined = IfcUnitaryControlElementTypeEnum.COMBINED +basestationcontroller = IfcUnitaryControlElementTypeEnum.BASESTATIONCONTROLLER +userdefined = IfcUnitaryControlElementTypeEnum.USERDEFINED +notdefined = IfcUnitaryControlElementTypeEnum.NOTDEFINED IfcUnitaryEquipmentTypeEnum = enum_namespace() -airhandler = getattr(IfcUnitaryEquipmentTypeEnum, 'AIRHANDLER', INDETERMINATE) -airconditioningunit = getattr(IfcUnitaryEquipmentTypeEnum, 'AIRCONDITIONINGUNIT', INDETERMINATE) -dehumidifier = getattr(IfcUnitaryEquipmentTypeEnum, 'DEHUMIDIFIER', INDETERMINATE) -splitsystem = getattr(IfcUnitaryEquipmentTypeEnum, 'SPLITSYSTEM', INDETERMINATE) -rooftopunit = getattr(IfcUnitaryEquipmentTypeEnum, 'ROOFTOPUNIT', INDETERMINATE) -userdefined = getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcUnitaryEquipmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +airhandler = IfcUnitaryEquipmentTypeEnum.AIRHANDLER +airconditioningunit = IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT +dehumidifier = IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER +splitsystem = IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM +rooftopunit = IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT +userdefined = IfcUnitaryEquipmentTypeEnum.USERDEFINED +notdefined = IfcUnitaryEquipmentTypeEnum.NOTDEFINED IfcValveTypeEnum = enum_namespace() -airrelease = getattr(IfcValveTypeEnum, 'AIRRELEASE', INDETERMINATE) -antivacuum = getattr(IfcValveTypeEnum, 'ANTIVACUUM', INDETERMINATE) -changeover = getattr(IfcValveTypeEnum, 'CHANGEOVER', INDETERMINATE) -check = getattr(IfcValveTypeEnum, 'CHECK', INDETERMINATE) -commissioning = getattr(IfcValveTypeEnum, 'COMMISSIONING', INDETERMINATE) -diverting = getattr(IfcValveTypeEnum, 'DIVERTING', INDETERMINATE) -drawoffcock = getattr(IfcValveTypeEnum, 'DRAWOFFCOCK', INDETERMINATE) -doublecheck = getattr(IfcValveTypeEnum, 'DOUBLECHECK', INDETERMINATE) -doubleregulating = getattr(IfcValveTypeEnum, 'DOUBLEREGULATING', INDETERMINATE) -faucet = getattr(IfcValveTypeEnum, 'FAUCET', INDETERMINATE) -flushing = getattr(IfcValveTypeEnum, 'FLUSHING', INDETERMINATE) -gascock = getattr(IfcValveTypeEnum, 'GASCOCK', INDETERMINATE) -gastap = getattr(IfcValveTypeEnum, 'GASTAP', INDETERMINATE) -isolating = getattr(IfcValveTypeEnum, 'ISOLATING', INDETERMINATE) -mixing = getattr(IfcValveTypeEnum, 'MIXING', INDETERMINATE) -pressurereducing = getattr(IfcValveTypeEnum, 'PRESSUREREDUCING', INDETERMINATE) -pressurerelief = getattr(IfcValveTypeEnum, 'PRESSURERELIEF', INDETERMINATE) -regulating = getattr(IfcValveTypeEnum, 'REGULATING', INDETERMINATE) -safetycutoff = getattr(IfcValveTypeEnum, 'SAFETYCUTOFF', INDETERMINATE) -steamtrap = getattr(IfcValveTypeEnum, 'STEAMTRAP', INDETERMINATE) -stopcock = getattr(IfcValveTypeEnum, 'STOPCOCK', INDETERMINATE) -userdefined = getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcValveTypeEnum, 'NOTDEFINED', INDETERMINATE) +airrelease = IfcValveTypeEnum.AIRRELEASE +antivacuum = IfcValveTypeEnum.ANTIVACUUM +changeover = IfcValveTypeEnum.CHANGEOVER +check = IfcValveTypeEnum.CHECK +commissioning = IfcValveTypeEnum.COMMISSIONING +diverting = IfcValveTypeEnum.DIVERTING +drawoffcock = IfcValveTypeEnum.DRAWOFFCOCK +doublecheck = IfcValveTypeEnum.DOUBLECHECK +doubleregulating = IfcValveTypeEnum.DOUBLEREGULATING +faucet = IfcValveTypeEnum.FAUCET +flushing = IfcValveTypeEnum.FLUSHING +gascock = IfcValveTypeEnum.GASCOCK +gastap = IfcValveTypeEnum.GASTAP +isolating = IfcValveTypeEnum.ISOLATING +mixing = IfcValveTypeEnum.MIXING +pressurereducing = IfcValveTypeEnum.PRESSUREREDUCING +pressurerelief = IfcValveTypeEnum.PRESSURERELIEF +regulating = IfcValveTypeEnum.REGULATING +safetycutoff = IfcValveTypeEnum.SAFETYCUTOFF +steamtrap = IfcValveTypeEnum.STEAMTRAP +stopcock = IfcValveTypeEnum.STOPCOCK +userdefined = IfcValveTypeEnum.USERDEFINED +notdefined = IfcValveTypeEnum.NOTDEFINED IfcVibrationDamperTypeEnum = enum_namespace() -bending_yield = getattr(IfcVibrationDamperTypeEnum, 'BENDING_YIELD', INDETERMINATE) -shear_yield = getattr(IfcVibrationDamperTypeEnum, 'SHEAR_YIELD', INDETERMINATE) -axial_yield = getattr(IfcVibrationDamperTypeEnum, 'AXIAL_YIELD', INDETERMINATE) -friction = getattr(IfcVibrationDamperTypeEnum, 'FRICTION', INDETERMINATE) -viscous = getattr(IfcVibrationDamperTypeEnum, 'VISCOUS', INDETERMINATE) -rubber = getattr(IfcVibrationDamperTypeEnum, 'RUBBER', INDETERMINATE) -userdefined = getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVibrationDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_yield = IfcVibrationDamperTypeEnum.BENDING_YIELD +shear_yield = IfcVibrationDamperTypeEnum.SHEAR_YIELD +axial_yield = IfcVibrationDamperTypeEnum.AXIAL_YIELD +friction = IfcVibrationDamperTypeEnum.FRICTION +viscous = IfcVibrationDamperTypeEnum.VISCOUS +rubber = IfcVibrationDamperTypeEnum.RUBBER +userdefined = IfcVibrationDamperTypeEnum.USERDEFINED +notdefined = IfcVibrationDamperTypeEnum.NOTDEFINED IfcVibrationIsolatorTypeEnum = enum_namespace() -compression = getattr(IfcVibrationIsolatorTypeEnum, 'COMPRESSION', INDETERMINATE) -spring = getattr(IfcVibrationIsolatorTypeEnum, 'SPRING', INDETERMINATE) -base = getattr(IfcVibrationIsolatorTypeEnum, 'BASE', INDETERMINATE) -userdefined = getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVibrationIsolatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +compression = IfcVibrationIsolatorTypeEnum.COMPRESSION +spring = IfcVibrationIsolatorTypeEnum.SPRING +base = IfcVibrationIsolatorTypeEnum.BASE +userdefined = IfcVibrationIsolatorTypeEnum.USERDEFINED +notdefined = IfcVibrationIsolatorTypeEnum.NOTDEFINED IfcVoidingFeatureTypeEnum = enum_namespace() -cutout = getattr(IfcVoidingFeatureTypeEnum, 'CUTOUT', INDETERMINATE) -notch = getattr(IfcVoidingFeatureTypeEnum, 'NOTCH', INDETERMINATE) -hole = getattr(IfcVoidingFeatureTypeEnum, 'HOLE', INDETERMINATE) -miter = getattr(IfcVoidingFeatureTypeEnum, 'MITER', INDETERMINATE) -chamfer = getattr(IfcVoidingFeatureTypeEnum, 'CHAMFER', INDETERMINATE) -edge = getattr(IfcVoidingFeatureTypeEnum, 'EDGE', INDETERMINATE) -userdefined = getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVoidingFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +cutout = IfcVoidingFeatureTypeEnum.CUTOUT +notch = IfcVoidingFeatureTypeEnum.NOTCH +hole = IfcVoidingFeatureTypeEnum.HOLE +miter = IfcVoidingFeatureTypeEnum.MITER +chamfer = IfcVoidingFeatureTypeEnum.CHAMFER +edge = IfcVoidingFeatureTypeEnum.EDGE +userdefined = IfcVoidingFeatureTypeEnum.USERDEFINED +notdefined = IfcVoidingFeatureTypeEnum.NOTDEFINED IfcWallTypeEnum = enum_namespace() -movable = getattr(IfcWallTypeEnum, 'MOVABLE', INDETERMINATE) -parapet = getattr(IfcWallTypeEnum, 'PARAPET', INDETERMINATE) -partitioning = getattr(IfcWallTypeEnum, 'PARTITIONING', INDETERMINATE) -plumbingwall = getattr(IfcWallTypeEnum, 'PLUMBINGWALL', INDETERMINATE) -shear = getattr(IfcWallTypeEnum, 'SHEAR', INDETERMINATE) -solidwall = getattr(IfcWallTypeEnum, 'SOLIDWALL', INDETERMINATE) -standard = getattr(IfcWallTypeEnum, 'STANDARD', INDETERMINATE) -polygonal = getattr(IfcWallTypeEnum, 'POLYGONAL', INDETERMINATE) -elementedwall = getattr(IfcWallTypeEnum, 'ELEMENTEDWALL', INDETERMINATE) -retainingwall = getattr(IfcWallTypeEnum, 'RETAININGWALL', INDETERMINATE) -wavewall = getattr(IfcWallTypeEnum, 'WAVEWALL', INDETERMINATE) -userdefined = getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +movable = IfcWallTypeEnum.MOVABLE +parapet = IfcWallTypeEnum.PARAPET +partitioning = IfcWallTypeEnum.PARTITIONING +plumbingwall = IfcWallTypeEnum.PLUMBINGWALL +shear = IfcWallTypeEnum.SHEAR +solidwall = IfcWallTypeEnum.SOLIDWALL +standard = IfcWallTypeEnum.STANDARD +polygonal = IfcWallTypeEnum.POLYGONAL +elementedwall = IfcWallTypeEnum.ELEMENTEDWALL +retainingwall = IfcWallTypeEnum.RETAININGWALL +wavewall = IfcWallTypeEnum.WAVEWALL +userdefined = IfcWallTypeEnum.USERDEFINED +notdefined = IfcWallTypeEnum.NOTDEFINED IfcWasteTerminalTypeEnum = enum_namespace() -floortrap = getattr(IfcWasteTerminalTypeEnum, 'FLOORTRAP', INDETERMINATE) -floorwaste = getattr(IfcWasteTerminalTypeEnum, 'FLOORWASTE', INDETERMINATE) -gullysump = getattr(IfcWasteTerminalTypeEnum, 'GULLYSUMP', INDETERMINATE) -gullytrap = getattr(IfcWasteTerminalTypeEnum, 'GULLYTRAP', INDETERMINATE) -roofdrain = getattr(IfcWasteTerminalTypeEnum, 'ROOFDRAIN', INDETERMINATE) -wastedisposalunit = getattr(IfcWasteTerminalTypeEnum, 'WASTEDISPOSALUNIT', INDETERMINATE) -wastetrap = getattr(IfcWasteTerminalTypeEnum, 'WASTETRAP', INDETERMINATE) -userdefined = getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWasteTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +floortrap = IfcWasteTerminalTypeEnum.FLOORTRAP +floorwaste = IfcWasteTerminalTypeEnum.FLOORWASTE +gullysump = IfcWasteTerminalTypeEnum.GULLYSUMP +gullytrap = IfcWasteTerminalTypeEnum.GULLYTRAP +roofdrain = IfcWasteTerminalTypeEnum.ROOFDRAIN +wastedisposalunit = IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT +wastetrap = IfcWasteTerminalTypeEnum.WASTETRAP +userdefined = IfcWasteTerminalTypeEnum.USERDEFINED +notdefined = IfcWasteTerminalTypeEnum.NOTDEFINED IfcWindowPanelOperationEnum = enum_namespace() -sidehungrighthand = getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGRIGHTHAND', INDETERMINATE) -sidehunglefthand = getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGLEFTHAND', INDETERMINATE) -tiltandturnrighthand = getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNRIGHTHAND', INDETERMINATE) -tiltandturnlefthand = getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNLEFTHAND', INDETERMINATE) -tophung = getattr(IfcWindowPanelOperationEnum, 'TOPHUNG', INDETERMINATE) -bottomhung = getattr(IfcWindowPanelOperationEnum, 'BOTTOMHUNG', INDETERMINATE) -pivothorizontal = getattr(IfcWindowPanelOperationEnum, 'PIVOTHORIZONTAL', INDETERMINATE) -pivotvertical = getattr(IfcWindowPanelOperationEnum, 'PIVOTVERTICAL', INDETERMINATE) -slidinghorizontal = getattr(IfcWindowPanelOperationEnum, 'SLIDINGHORIZONTAL', INDETERMINATE) -slidingvertical = getattr(IfcWindowPanelOperationEnum, 'SLIDINGVERTICAL', INDETERMINATE) -removablecasement = getattr(IfcWindowPanelOperationEnum, 'REMOVABLECASEMENT', INDETERMINATE) -fixedcasement = getattr(IfcWindowPanelOperationEnum, 'FIXEDCASEMENT', INDETERMINATE) -otheroperation = getattr(IfcWindowPanelOperationEnum, 'OTHEROPERATION', INDETERMINATE) -notdefined = getattr(IfcWindowPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +sidehungrighthand = IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND +sidehunglefthand = IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND +tiltandturnrighthand = IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND +tiltandturnlefthand = IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND +tophung = IfcWindowPanelOperationEnum.TOPHUNG +bottomhung = IfcWindowPanelOperationEnum.BOTTOMHUNG +pivothorizontal = IfcWindowPanelOperationEnum.PIVOTHORIZONTAL +pivotvertical = IfcWindowPanelOperationEnum.PIVOTVERTICAL +slidinghorizontal = IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL +slidingvertical = IfcWindowPanelOperationEnum.SLIDINGVERTICAL +removablecasement = IfcWindowPanelOperationEnum.REMOVABLECASEMENT +fixedcasement = IfcWindowPanelOperationEnum.FIXEDCASEMENT +otheroperation = IfcWindowPanelOperationEnum.OTHEROPERATION +notdefined = IfcWindowPanelOperationEnum.NOTDEFINED IfcWindowPanelPositionEnum = enum_namespace() -left = getattr(IfcWindowPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = getattr(IfcWindowPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = getattr(IfcWindowPanelPositionEnum, 'RIGHT', INDETERMINATE) -bottom = getattr(IfcWindowPanelPositionEnum, 'BOTTOM', INDETERMINATE) -top = getattr(IfcWindowPanelPositionEnum, 'TOP', INDETERMINATE) -notdefined = getattr(IfcWindowPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcWindowPanelPositionEnum.LEFT +middle = IfcWindowPanelPositionEnum.MIDDLE +right = IfcWindowPanelPositionEnum.RIGHT +bottom = IfcWindowPanelPositionEnum.BOTTOM +top = IfcWindowPanelPositionEnum.TOP +notdefined = IfcWindowPanelPositionEnum.NOTDEFINED IfcWindowStyleConstructionEnum = enum_namespace() -aluminium = getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM', INDETERMINATE) -high_grade_steel = getattr(IfcWindowStyleConstructionEnum, 'HIGH_GRADE_STEEL', INDETERMINATE) -steel = getattr(IfcWindowStyleConstructionEnum, 'STEEL', INDETERMINATE) -wood = getattr(IfcWindowStyleConstructionEnum, 'WOOD', INDETERMINATE) -aluminium_wood = getattr(IfcWindowStyleConstructionEnum, 'ALUMINIUM_WOOD', INDETERMINATE) -plastic = getattr(IfcWindowStyleConstructionEnum, 'PLASTIC', INDETERMINATE) -other_construction = getattr(IfcWindowStyleConstructionEnum, 'OTHER_CONSTRUCTION', INDETERMINATE) -notdefined = getattr(IfcWindowStyleConstructionEnum, 'NOTDEFINED', INDETERMINATE) +aluminium = IfcWindowStyleConstructionEnum.ALUMINIUM +high_grade_steel = IfcWindowStyleConstructionEnum.HIGH_GRADE_STEEL +steel = IfcWindowStyleConstructionEnum.STEEL +wood = IfcWindowStyleConstructionEnum.WOOD +aluminium_wood = IfcWindowStyleConstructionEnum.ALUMINIUM_WOOD +plastic = IfcWindowStyleConstructionEnum.PLASTIC +other_construction = IfcWindowStyleConstructionEnum.OTHER_CONSTRUCTION +notdefined = IfcWindowStyleConstructionEnum.NOTDEFINED IfcWindowStyleOperationEnum = enum_namespace() -single_panel = getattr(IfcWindowStyleOperationEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = getattr(IfcWindowStyleOperationEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = getattr(IfcWindowStyleOperationEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = getattr(IfcWindowStyleOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowStyleOperationEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowStyleOperationEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowStyleOperationEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowStyleOperationEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowStyleOperationEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowStyleOperationEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowStyleOperationEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowStyleOperationEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowStyleOperationEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowStyleOperationEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowStyleOperationEnum.USERDEFINED +notdefined = IfcWindowStyleOperationEnum.NOTDEFINED IfcWindowTypeEnum = enum_namespace() -window = getattr(IfcWindowTypeEnum, 'WINDOW', INDETERMINATE) -skylight = getattr(IfcWindowTypeEnum, 'SKYLIGHT', INDETERMINATE) -lightdome = getattr(IfcWindowTypeEnum, 'LIGHTDOME', INDETERMINATE) -userdefined = getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowTypeEnum, 'NOTDEFINED', INDETERMINATE) +window = IfcWindowTypeEnum.WINDOW +skylight = IfcWindowTypeEnum.SKYLIGHT +lightdome = IfcWindowTypeEnum.LIGHTDOME +userdefined = IfcWindowTypeEnum.USERDEFINED +notdefined = IfcWindowTypeEnum.NOTDEFINED IfcWindowTypePartitioningEnum = enum_namespace() -single_panel = getattr(IfcWindowTypePartitioningEnum, 'SINGLE_PANEL', INDETERMINATE) -double_panel_vertical = getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -double_panel_horizontal = getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_vertical = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -triple_panel_bottom = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_top = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_left = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_horizontal = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -userdefined = getattr(IfcWindowTypePartitioningEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowTypePartitioningEnum, 'NOTDEFINED', INDETERMINATE) +single_panel = IfcWindowTypePartitioningEnum.SINGLE_PANEL +double_panel_vertical = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL +double_panel_horizontal = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL +triple_panel_vertical = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL +triple_panel_bottom = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM +triple_panel_top = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP +triple_panel_left = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT +triple_panel_horizontal = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL +userdefined = IfcWindowTypePartitioningEnum.USERDEFINED +notdefined = IfcWindowTypePartitioningEnum.NOTDEFINED IfcWorkCalendarTypeEnum = enum_namespace() -firstshift = getattr(IfcWorkCalendarTypeEnum, 'FIRSTSHIFT', INDETERMINATE) -secondshift = getattr(IfcWorkCalendarTypeEnum, 'SECONDSHIFT', INDETERMINATE) -thirdshift = getattr(IfcWorkCalendarTypeEnum, 'THIRDSHIFT', INDETERMINATE) -userdefined = getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkCalendarTypeEnum, 'NOTDEFINED', INDETERMINATE) +firstshift = IfcWorkCalendarTypeEnum.FIRSTSHIFT +secondshift = IfcWorkCalendarTypeEnum.SECONDSHIFT +thirdshift = IfcWorkCalendarTypeEnum.THIRDSHIFT +userdefined = IfcWorkCalendarTypeEnum.USERDEFINED +notdefined = IfcWorkCalendarTypeEnum.NOTDEFINED IfcWorkPlanTypeEnum = enum_namespace() -actual = getattr(IfcWorkPlanTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = getattr(IfcWorkPlanTypeEnum, 'BASELINE', INDETERMINATE) -planned = getattr(IfcWorkPlanTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkPlanTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkPlanTypeEnum.ACTUAL +baseline = IfcWorkPlanTypeEnum.BASELINE +planned = IfcWorkPlanTypeEnum.PLANNED +userdefined = IfcWorkPlanTypeEnum.USERDEFINED +notdefined = IfcWorkPlanTypeEnum.NOTDEFINED IfcWorkScheduleTypeEnum = enum_namespace() -actual = getattr(IfcWorkScheduleTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = getattr(IfcWorkScheduleTypeEnum, 'BASELINE', INDETERMINATE) -planned = getattr(IfcWorkScheduleTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkScheduleTypeEnum.ACTUAL +baseline = IfcWorkScheduleTypeEnum.BASELINE +planned = IfcWorkScheduleTypeEnum.PLANNED +userdefined = IfcWorkScheduleTypeEnum.USERDEFINED +notdefined = IfcWorkScheduleTypeEnum.NOTDEFINED def IfcActionRequest(*args, **kwargs): return ifcopenshell.create_entity('IfcActionRequest', 'IFC4X3_RC4', *args, **kwargs) @@ -5164,7 +5174,7 @@ class IfcBoxAlignment_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False class IfcCardinalPointReference_GreaterThanZero: SCOPE = 'type' @@ -5245,7 +5255,7 @@ class IfcFontStyle_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False class IfcFontVariant_WR1: SCOPE = 'type' @@ -5254,7 +5264,7 @@ class IfcFontVariant_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False class IfcFontWeight_WR1: SCOPE = 'type' @@ -5263,7 +5273,7 @@ class IfcFontWeight_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False class IfcHeatingValueMeasure_WR1: SCOPE = 'type' @@ -5362,7 +5372,7 @@ class IfcTextAlignment_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False class IfcTextDecoration_WR1: SCOPE = 'type' @@ -5371,7 +5381,7 @@ class IfcTextDecoration_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False class IfcTextTransformation_WR1: SCOPE = 'type' @@ -5380,7 +5390,7 @@ class IfcTextTransformation_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False class IfcActorRole_WR1: SCOPE = 'entity' @@ -5389,8 +5399,8 @@ class IfcActorRole_WR1: @staticmethod def __call__(self): - role = getattr(self, 'Role', INDETERMINATE) - assert (role != getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) or (role == getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedRole', INDETERMINATE)))) is not False + role = express_getattr(self, 'Role', INDETERMINATE) + assert (role != express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) or (role == express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedRole', INDETERMINATE)))) is not False class IfcActuator_CorrectPredefinedType: SCOPE = 'entity' @@ -5399,8 +5409,8 @@ class IfcActuator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcActuator_CorrectTypeAssigned: SCOPE = 'entity' @@ -5409,8 +5419,8 @@ class IfcActuator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcactuatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcactuatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcActuatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -5419,8 +5429,8 @@ class IfcActuatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAddress_WR1: SCOPE = 'entity' @@ -5429,8 +5439,8 @@ class IfcAddress_WR1: @staticmethod def __call__(self): - purpose = getattr(self, 'Purpose', INDETERMINATE) - assert (not exists(purpose) or (purpose != getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) or (purpose == getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedPurpose', INDETERMINATE))))) is not False + purpose = express_getattr(self, 'Purpose', INDETERMINATE) + assert (not exists(purpose) or (purpose != express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) or (purpose == express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedPurpose', INDETERMINATE))))) is not False class IfcAdvancedBrep_HasAdvancedFaces: SCOPE = 'entity' @@ -5439,7 +5449,7 @@ class IfcAdvancedBrep_HasAdvancedFaces: @staticmethod def __call__(self): - assert (sizeof([afs for afs in getattr(getattr(self, 'Outer', INDETERMINATE), 'CfsFaces', INDETERMINATE) if not 'ifc4x3_rc4.ifcadvancedface' in typeof(afs)]) == 0) is not False + assert (sizeof([afs for afs in express_getattr(express_getattr(self, 'Outer', INDETERMINATE), 'CfsFaces', INDETERMINATE) if not 'ifc4x3_rc4.ifcadvancedface' in typeof(afs)]) == 0) is not False class IfcAdvancedBrepWithVoids_VoidsHaveAdvancedFaces: SCOPE = 'entity' @@ -5448,8 +5458,8 @@ class IfcAdvancedBrepWithVoids_VoidsHaveAdvancedFaces: @staticmethod def __call__(self): - voids = getattr(self, 'Voids', INDETERMINATE) - assert (sizeof([vsh for vsh in voids if sizeof([afs for afs in getattr(vsh, 'CfsFaces', INDETERMINATE) if not 'ifc4x3_rc4.ifcadvancedface' in typeof(afs)]) == 0]) == 0) is not False + voids = express_getattr(self, 'Voids', INDETERMINATE) + assert (sizeof([vsh for vsh in voids if sizeof([afs for afs in express_getattr(vsh, 'CfsFaces', INDETERMINATE) if not 'ifc4x3_rc4.ifcadvancedface' in typeof(afs)]) == 0]) == 0) is not False class IfcAdvancedFace_ApplicableSurface: SCOPE = 'entity' @@ -5458,7 +5468,7 @@ class IfcAdvancedFace_ApplicableSurface: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_rc4.ifcelementarysurface', 'ifc4x3_rc4.ifcsweptsurface', 'ifc4x3_rc4.ifcbsplinesurface'] * typeof(getattr(self, 'FaceSurface', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_rc4.ifcelementarysurface', 'ifc4x3_rc4.ifcsweptsurface', 'ifc4x3_rc4.ifcbsplinesurface'] * typeof(express_getattr(self, 'FaceSurface', INDETERMINATE))) == 1) is not False class IfcAdvancedFace_RequiresEdgeCurve: SCOPE = 'entity' @@ -5467,7 +5477,7 @@ class IfcAdvancedFace_RequiresEdgeCurve: @staticmethod def __call__(self): - assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3_rc4.ifcedgeloop' in typeof(getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in getattr(getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not 'ifc4x3_rc4.ifcedgecurve' in typeof(getattr(oe, 'EdgeElement', INDETERMINATE))]) == 0]) == 0) is not False + assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in express_getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3_rc4.ifcedgeloop' in typeof(express_getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in express_getattr(express_getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not 'ifc4x3_rc4.ifcedgecurve' in typeof(express_getattr(oe, 'EdgeElement', INDETERMINATE))]) == 0]) == 0) is not False class IfcAdvancedFace_ApplicableEdgeCurves: SCOPE = 'entity' @@ -5476,7 +5486,7 @@ class IfcAdvancedFace_ApplicableEdgeCurves: @staticmethod def __call__(self): - assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3_rc4.ifcedgeloop' in typeof(getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in getattr(getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not sizeof(['ifc4x3_rc4.ifcline', 'ifc4x3_rc4.ifcconic', 'ifc4x3_rc4.ifcpolyline', 'ifc4x3_rc4.ifcbsplinecurve'] * typeof(getattr(getattr(oe, 'EdgeElement', INDETERMINATE), 'EdgeGeometry', INDETERMINATE))) == 1]) == 0]) == 0) is not False + assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in express_getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3_rc4.ifcedgeloop' in typeof(express_getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in express_getattr(express_getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not sizeof(['ifc4x3_rc4.ifcline', 'ifc4x3_rc4.ifcconic', 'ifc4x3_rc4.ifcpolyline', 'ifc4x3_rc4.ifcbsplinecurve'] * typeof(express_getattr(express_getattr(oe, 'EdgeElement', INDETERMINATE), 'EdgeGeometry', INDETERMINATE))) == 1]) == 0]) == 0) is not False class IfcAirTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -5485,8 +5495,8 @@ class IfcAirTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -5495,8 +5505,8 @@ class IfcAirTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcairterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcairterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirTerminalBox_CorrectPredefinedType: SCOPE = 'entity' @@ -5505,8 +5515,8 @@ class IfcAirTerminalBox_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirTerminalBox_CorrectTypeAssigned: SCOPE = 'entity' @@ -5515,8 +5525,8 @@ class IfcAirTerminalBox_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcairterminalboxtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcairterminalboxtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirTerminalBoxType_CorrectPredefinedType: SCOPE = 'entity' @@ -5525,8 +5535,8 @@ class IfcAirTerminalBoxType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAirTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -5535,8 +5545,8 @@ class IfcAirTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAirToAirHeatRecovery_CorrectPredefinedType: SCOPE = 'entity' @@ -5545,8 +5555,8 @@ class IfcAirToAirHeatRecovery_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirToAirHeatRecovery_CorrectTypeAssigned: SCOPE = 'entity' @@ -5555,8 +5565,8 @@ class IfcAirToAirHeatRecovery_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcairtoairheatrecoverytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcairtoairheatrecoverytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirToAirHeatRecoveryType_CorrectPredefinedType: SCOPE = 'entity' @@ -5565,8 +5575,8 @@ class IfcAirToAirHeatRecoveryType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAlarm_CorrectPredefinedType: SCOPE = 'entity' @@ -5575,8 +5585,8 @@ class IfcAlarm_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAlarm_CorrectTypeAssigned: SCOPE = 'entity' @@ -5585,8 +5595,8 @@ class IfcAlarm_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcalarmtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcalarmtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAlarmType_CorrectPredefinedType: SCOPE = 'entity' @@ -5595,8 +5605,8 @@ class IfcAlarmType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcApproval_HasIdentifierOrName: SCOPE = 'entity' @@ -5605,8 +5615,8 @@ class IfcApproval_HasIdentifierOrName: @staticmethod def __call__(self): - identifier = getattr(self, 'Identifier', INDETERMINATE) - name = getattr(self, 'Name', INDETERMINATE) + identifier = express_getattr(self, 'Identifier', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) assert (exists(identifier) or exists(name)) is not False class IfcArbitraryClosedProfileDef_WR1: @@ -5616,8 +5626,8 @@ class IfcArbitraryClosedProfileDef_WR1: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) - assert (getattr(outercurve, 'Dim', INDETERMINATE) == 2) is not False + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) + assert (express_getattr(outercurve, 'Dim', INDETERMINATE) == 2) is not False class IfcArbitraryClosedProfileDef_WR2: SCOPE = 'entity' @@ -5626,7 +5636,7 @@ class IfcArbitraryClosedProfileDef_WR2: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) assert (not 'ifc4x3_rc4.ifcline' in typeof(outercurve)) is not False class IfcArbitraryClosedProfileDef_WR3: @@ -5636,7 +5646,7 @@ class IfcArbitraryClosedProfileDef_WR3: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) assert (not 'ifc4x3_rc4.ifcoffsetcurve2d' in typeof(outercurve)) is not False class IfcArbitraryOpenProfileDef_WR11: @@ -5646,7 +5656,7 @@ class IfcArbitraryOpenProfileDef_WR11: @staticmethod def __call__(self): - assert ('ifc4x3_rc4.ifccenterlineprofiledef' in typeof(self) or getattr(self, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False + assert ('ifc4x3_rc4.ifccenterlineprofiledef' in typeof(self) or express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False class IfcArbitraryOpenProfileDef_WR12: SCOPE = 'entity' @@ -5655,8 +5665,8 @@ class IfcArbitraryOpenProfileDef_WR12: @staticmethod def __call__(self): - curve = getattr(self, 'Curve', INDETERMINATE) - assert (getattr(curve, 'Dim', INDETERMINATE) == 2) is not False + curve = express_getattr(self, 'Curve', INDETERMINATE) + assert (express_getattr(curve, 'Dim', INDETERMINATE) == 2) is not False class IfcArbitraryProfileDefWithVoids_WR1: SCOPE = 'entity' @@ -5665,7 +5675,7 @@ class IfcArbitraryProfileDefWithVoids_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'ProfileType', INDETERMINATE) == area) is not False + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == area) is not False class IfcArbitraryProfileDefWithVoids_WR2: SCOPE = 'entity' @@ -5674,8 +5684,8 @@ class IfcArbitraryProfileDefWithVoids_WR2: @staticmethod def __call__(self): - innercurves = getattr(self, 'InnerCurves', INDETERMINATE) - assert (sizeof([temp for temp in innercurves if getattr(temp, 'Dim', INDETERMINATE) != 2]) == 0) is not False + innercurves = express_getattr(self, 'InnerCurves', INDETERMINATE) + assert (sizeof([temp for temp in innercurves if express_getattr(temp, 'Dim', INDETERMINATE) != 2]) == 0) is not False class IfcArbitraryProfileDefWithVoids_WR3: SCOPE = 'entity' @@ -5684,7 +5694,7 @@ class IfcArbitraryProfileDefWithVoids_WR3: @staticmethod def __call__(self): - innercurves = getattr(self, 'InnerCurves', INDETERMINATE) + innercurves = express_getattr(self, 'InnerCurves', INDETERMINATE) assert (sizeof([temp for temp in innercurves if 'ifc4x3_rc4.ifcline' in typeof(temp)]) == 0) is not False class IfcAsymmetricIShapeProfileDef_ValidFlangeThickness: @@ -5694,9 +5704,9 @@ class IfcAsymmetricIShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - bottomflangethickness = getattr(self, 'BottomFlangeThickness', INDETERMINATE) - topflangethickness = getattr(self, 'TopFlangeThickness', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + bottomflangethickness = express_getattr(self, 'BottomFlangeThickness', INDETERMINATE) + topflangethickness = express_getattr(self, 'TopFlangeThickness', INDETERMINATE) assert (not exists(topflangethickness) or bottomflangethickness + topflangethickness < overalldepth) is not False class IfcAsymmetricIShapeProfileDef_ValidWebThickness: @@ -5706,9 +5716,9 @@ class IfcAsymmetricIShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - bottomflangewidth = getattr(self, 'BottomFlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - topflangewidth = getattr(self, 'TopFlangeWidth', INDETERMINATE) + bottomflangewidth = express_getattr(self, 'BottomFlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + topflangewidth = express_getattr(self, 'TopFlangeWidth', INDETERMINATE) assert (webthickness < bottomflangewidth and webthickness < topflangewidth) is not False class IfcAsymmetricIShapeProfileDef_ValidBottomFilletRadius: @@ -5718,9 +5728,9 @@ class IfcAsymmetricIShapeProfileDef_ValidBottomFilletRadius: @staticmethod def __call__(self): - bottomflangewidth = getattr(self, 'BottomFlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - bottomflangefilletradius = getattr(self, 'BottomFlangeFilletRadius', INDETERMINATE) + bottomflangewidth = express_getattr(self, 'BottomFlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + bottomflangefilletradius = express_getattr(self, 'BottomFlangeFilletRadius', INDETERMINATE) assert (not exists(bottomflangefilletradius) or bottomflangefilletradius <= (bottomflangewidth - webthickness) / 2.0) is not False class IfcAsymmetricIShapeProfileDef_ValidTopFilletRadius: @@ -5730,9 +5740,9 @@ class IfcAsymmetricIShapeProfileDef_ValidTopFilletRadius: @staticmethod def __call__(self): - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - topflangewidth = getattr(self, 'TopFlangeWidth', INDETERMINATE) - topflangefilletradius = getattr(self, 'TopFlangeFilletRadius', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + topflangewidth = express_getattr(self, 'TopFlangeWidth', INDETERMINATE) + topflangefilletradius = express_getattr(self, 'TopFlangeFilletRadius', INDETERMINATE) assert (not exists(topflangefilletradius) or topflangefilletradius <= (topflangewidth - webthickness) / 2.0) is not False class IfcAudioVisualAppliance_CorrectPredefinedType: @@ -5742,8 +5752,8 @@ class IfcAudioVisualAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAudioVisualAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -5752,8 +5762,8 @@ class IfcAudioVisualAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcaudiovisualappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcaudiovisualappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAudioVisualApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -5762,8 +5772,8 @@ class IfcAudioVisualApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAxis1Placement_AxisIs3D: SCOPE = 'entity' @@ -5772,8 +5782,8 @@ class IfcAxis1Placement_AxisIs3D: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (not exists(axis) or getattr(axis, 'Dim', INDETERMINATE) == 3) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (not exists(axis) or express_getattr(axis, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis1Placement_LocationIs3D: SCOPE = 'entity' @@ -5782,7 +5792,7 @@ class IfcAxis1Placement_LocationIs3D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcAxis1Placement_LocationIsCP: SCOPE = 'entity' @@ -5791,10 +5801,10 @@ class IfcAxis1Placement_LocationIsCP: @staticmethod def __call__(self): - assert ('ifc4x3_rc4.ifccartesianpoint' in typeof(getattr(self, 'Location', INDETERMINATE))) is not False + assert ('ifc4x3_rc4.ifccartesianpoint' in typeof(express_getattr(self, 'Location', INDETERMINATE))) is not False def calc_IfcAxis1Placement_Z(self): - axis = getattr(self, 'Axis', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) return nvl(IfcNormalise(axis), IfcDirection(DirectionRatios=[0.0, 0.0, 1.0])) class IfcAxis2Placement2D_RefDirIs2D: @@ -5804,8 +5814,8 @@ class IfcAxis2Placement2D_RefDirIs2D: @staticmethod def __call__(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(refdirection) or getattr(refdirection, 'Dim', INDETERMINATE) == 2) is not False + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(refdirection) or express_getattr(refdirection, 'Dim', INDETERMINATE) == 2) is not False class IfcAxis2Placement2D_LocationIs2D: SCOPE = 'entity' @@ -5814,7 +5824,7 @@ class IfcAxis2Placement2D_LocationIs2D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False class IfcAxis2Placement2D_LocationIsCP: SCOPE = 'entity' @@ -5823,10 +5833,10 @@ class IfcAxis2Placement2D_LocationIsCP: @staticmethod def __call__(self): - assert ('ifc4x3_rc4.ifccartesianpoint' in typeof(getattr(self, 'Location', INDETERMINATE))) is not False + assert ('ifc4x3_rc4.ifccartesianpoint' in typeof(express_getattr(self, 'Location', INDETERMINATE))) is not False def calc_IfcAxis2Placement2D_P(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) return IfcBuild2Axes(refdirection) class IfcAxis2Placement3D_LocationIs3D: @@ -5836,7 +5846,7 @@ class IfcAxis2Placement3D_LocationIs3D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_AxisIs3D: SCOPE = 'entity' @@ -5845,8 +5855,8 @@ class IfcAxis2Placement3D_AxisIs3D: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (not exists(axis) or getattr(axis, 'Dim', INDETERMINATE) == 3) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (not exists(axis) or express_getattr(axis, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_RefDirIs3D: SCOPE = 'entity' @@ -5855,8 +5865,8 @@ class IfcAxis2Placement3D_RefDirIs3D: @staticmethod def __call__(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(refdirection) or getattr(refdirection, 'Dim', INDETERMINATE) == 3) is not False + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(refdirection) or express_getattr(refdirection, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_AxisToRefDirPosition: SCOPE = 'entity' @@ -5865,9 +5875,9 @@ class IfcAxis2Placement3D_AxisToRefDirPosition: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(axis) or not exists(refdirection) or getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(axis) or not exists(refdirection) or express_getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False class IfcAxis2Placement3D_AxisAndRefDirProvision: SCOPE = 'entity' @@ -5876,8 +5886,8 @@ class IfcAxis2Placement3D_AxisAndRefDirProvision: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) assert (not exists(axis) ^ exists(refdirection)) is not False class IfcAxis2Placement3D_LocationIsCP: @@ -5887,11 +5897,11 @@ class IfcAxis2Placement3D_LocationIsCP: @staticmethod def __call__(self): - assert ('ifc4x3_rc4.ifccartesianpoint' in typeof(getattr(self, 'Location', INDETERMINATE))) is not False + assert ('ifc4x3_rc4.ifccartesianpoint' in typeof(express_getattr(self, 'Location', INDETERMINATE))) is not False def calc_IfcAxis2Placement3D_P(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) return IfcBuildAxes(axis, refdirection) class IfcAxis2PlacementLinear_WR1: @@ -5901,7 +5911,7 @@ class IfcAxis2PlacementLinear_WR1: @staticmethod def __call__(self): - assert ('ifc4x3_rc4.ifcpointbydistanceexpression' in typeof(getattr(self, 'Location', INDETERMINATE))) is not False + assert ('ifc4x3_rc4.ifcpointbydistanceexpression' in typeof(express_getattr(self, 'Location', INDETERMINATE))) is not False class IfcAxis2PlacementLinear_WR2: SCOPE = 'entity' @@ -5910,9 +5920,9 @@ class IfcAxis2PlacementLinear_WR2: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(axis) or not exists(refdirection) or getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(axis) or not exists(refdirection) or express_getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False class IfcBSplineCurve_SameDim: SCOPE = 'entity' @@ -5921,16 +5931,16 @@ class IfcBSplineCurve_SameDim: @staticmethod def __call__(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - assert (sizeof([temp for temp in controlpointslist if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + assert (sizeof([temp for temp in controlpointslist if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcBSplineCurve_UpperIndexOnControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(controlpointslist) - 1 def calc_IfcBSplineCurve_ControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - upperindexoncontrolpoints = getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + upperindexoncontrolpoints = express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) return IfcListToArray(controlpointslist, 0, upperindexoncontrolpoints) class IfcBSplineCurveWithKnots_ConsistentBSpline: @@ -5940,11 +5950,11 @@ class IfcBSplineCurveWithKnots_ConsistentBSpline: @staticmethod def __call__(self): - degree = getattr(self, 'Degree', INDETERMINATE) - upperindexoncontrolpoints = getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) - knotmultiplicities = getattr(self, 'KnotMultiplicities', INDETERMINATE) - knots = getattr(self, 'Knots', INDETERMINATE) - upperindexonknots = getattr(self, 'UpperIndexOnKnots', INDETERMINATE) + degree = express_getattr(self, 'Degree', INDETERMINATE) + upperindexoncontrolpoints = express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) + knotmultiplicities = express_getattr(self, 'KnotMultiplicities', INDETERMINATE) + knots = express_getattr(self, 'Knots', INDETERMINATE) + upperindexonknots = express_getattr(self, 'UpperIndexOnKnots', INDETERMINATE) assert IfcConstraintsParamBSpline(degree, upperindexonknots, upperindexoncontrolpoints, knotmultiplicities, knots) is not False class IfcBSplineCurveWithKnots_CorrespondingKnotLists: @@ -5954,26 +5964,26 @@ class IfcBSplineCurveWithKnots_CorrespondingKnotLists: @staticmethod def __call__(self): - knotmultiplicities = getattr(self, 'KnotMultiplicities', INDETERMINATE) - upperindexonknots = getattr(self, 'UpperIndexOnKnots', INDETERMINATE) + knotmultiplicities = express_getattr(self, 'KnotMultiplicities', INDETERMINATE) + upperindexonknots = express_getattr(self, 'UpperIndexOnKnots', INDETERMINATE) assert (sizeof(knotmultiplicities) == upperindexonknots) is not False def calc_IfcBSplineCurveWithKnots_UpperIndexOnKnots(self): - knots = getattr(self, 'Knots', INDETERMINATE) + knots = express_getattr(self, 'Knots', INDETERMINATE) return sizeof(knots) def calc_IfcBSplineSurface_UUpper(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(controlpointslist) - 1 def calc_IfcBSplineSurface_VUpper(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) - 1 def calc_IfcBSplineSurface_ControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - uupper = getattr(self, 'UUpper', INDETERMINATE) - vupper = getattr(self, 'VUpper', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + uupper = express_getattr(self, 'UUpper', INDETERMINATE) + vupper = express_getattr(self, 'VUpper', INDETERMINATE) return IfcMakeArrayOfArray(controlpointslist, 0, uupper, 0, vupper) class IfcBSplineSurfaceWithKnots_UDirectionConstraints: @@ -5983,10 +5993,10 @@ class IfcBSplineSurfaceWithKnots_UDirectionConstraints: @staticmethod def __call__(self): - umultiplicities = getattr(self, 'UMultiplicities', INDETERMINATE) - uknots = getattr(self, 'UKnots', INDETERMINATE) - knotuupper = getattr(self, 'KnotUUpper', INDETERMINATE) - assert IfcConstraintsParamBSpline(getattr(self, 'UDegree', INDETERMINATE), knotuupper, getattr(self, 'UUpper', INDETERMINATE), umultiplicities, uknots) is not False + umultiplicities = express_getattr(self, 'UMultiplicities', INDETERMINATE) + uknots = express_getattr(self, 'UKnots', INDETERMINATE) + knotuupper = express_getattr(self, 'KnotUUpper', INDETERMINATE) + assert IfcConstraintsParamBSpline(express_getattr(self, 'UDegree', INDETERMINATE), knotuupper, express_getattr(self, 'UUpper', INDETERMINATE), umultiplicities, uknots) is not False class IfcBSplineSurfaceWithKnots_VDirectionConstraints: SCOPE = 'entity' @@ -5995,10 +6005,10 @@ class IfcBSplineSurfaceWithKnots_VDirectionConstraints: @staticmethod def __call__(self): - vmultiplicities = getattr(self, 'VMultiplicities', INDETERMINATE) - vknots = getattr(self, 'VKnots', INDETERMINATE) - knotvupper = getattr(self, 'KnotVUpper', INDETERMINATE) - assert IfcConstraintsParamBSpline(getattr(self, 'VDegree', INDETERMINATE), knotvupper, getattr(self, 'VUpper', INDETERMINATE), vmultiplicities, vknots) is not False + vmultiplicities = express_getattr(self, 'VMultiplicities', INDETERMINATE) + vknots = express_getattr(self, 'VKnots', INDETERMINATE) + knotvupper = express_getattr(self, 'KnotVUpper', INDETERMINATE) + assert IfcConstraintsParamBSpline(express_getattr(self, 'VDegree', INDETERMINATE), knotvupper, express_getattr(self, 'VUpper', INDETERMINATE), vmultiplicities, vknots) is not False class IfcBSplineSurfaceWithKnots_CorrespondingULists: SCOPE = 'entity' @@ -6007,8 +6017,8 @@ class IfcBSplineSurfaceWithKnots_CorrespondingULists: @staticmethod def __call__(self): - umultiplicities = getattr(self, 'UMultiplicities', INDETERMINATE) - knotuupper = getattr(self, 'KnotUUpper', INDETERMINATE) + umultiplicities = express_getattr(self, 'UMultiplicities', INDETERMINATE) + knotuupper = express_getattr(self, 'KnotUUpper', INDETERMINATE) assert (sizeof(umultiplicities) == knotuupper) is not False class IfcBSplineSurfaceWithKnots_CorrespondingVLists: @@ -6018,16 +6028,16 @@ class IfcBSplineSurfaceWithKnots_CorrespondingVLists: @staticmethod def __call__(self): - vmultiplicities = getattr(self, 'VMultiplicities', INDETERMINATE) - knotvupper = getattr(self, 'KnotVUpper', INDETERMINATE) + vmultiplicities = express_getattr(self, 'VMultiplicities', INDETERMINATE) + knotvupper = express_getattr(self, 'KnotVUpper', INDETERMINATE) assert (sizeof(vmultiplicities) == knotvupper) is not False def calc_IfcBSplineSurfaceWithKnots_KnotVUpper(self): - vknots = getattr(self, 'VKnots', INDETERMINATE) + vknots = express_getattr(self, 'VKnots', INDETERMINATE) return sizeof(vknots) def calc_IfcBSplineSurfaceWithKnots_KnotUUpper(self): - uknots = getattr(self, 'UKnots', INDETERMINATE) + uknots = express_getattr(self, 'UKnots', INDETERMINATE) return sizeof(uknots) class IfcBeam_CorrectPredefinedType: @@ -6037,8 +6047,8 @@ class IfcBeam_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBeam_CorrectTypeAssigned: SCOPE = 'entity' @@ -6047,8 +6057,8 @@ class IfcBeam_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcbeamtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcbeamtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBeamStandardCase_HasMaterialProfileSetUsage: SCOPE = 'entity' @@ -6057,7 +6067,7 @@ class IfcBeamStandardCase_HasMaterialProfileSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc4.ifcrelassociates.relatedobjects') if 'ifc4x3_rc4.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc4.ifcmaterialprofilesetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc4.ifcrelassociates.relatedobjects') if 'ifc4x3_rc4.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc4.ifcmaterialprofilesetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcBeamType_CorrectPredefinedType: SCOPE = 'entity' @@ -6066,8 +6076,8 @@ class IfcBeamType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBearing_CorrectPredefinedType: SCOPE = 'entity' @@ -6076,8 +6086,8 @@ class IfcBearing_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBearing_CorrectTypeAssigned: SCOPE = 'entity' @@ -6086,8 +6096,8 @@ class IfcBearing_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcbearingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcbearingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBearingType_CorrectPredefinedType: SCOPE = 'entity' @@ -6096,8 +6106,8 @@ class IfcBearingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBlobTexture_SupportedRasterFormat: SCOPE = 'entity' @@ -6106,7 +6116,7 @@ class IfcBlobTexture_SupportedRasterFormat: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['bmp', 'jpg', 'gif', 'png']) is not False + assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['bmp', 'jpg', 'gif', 'png']) is not False class IfcBlobTexture_RasterCodeByteStream: SCOPE = 'entity' @@ -6115,7 +6125,7 @@ class IfcBlobTexture_RasterCodeByteStream: @staticmethod def __call__(self): - rastercode = getattr(self, 'RasterCode', INDETERMINATE) + rastercode = express_getattr(self, 'RasterCode', INDETERMINATE) assert (blength(rastercode) % 8 == 0) is not False class IfcBoiler_CorrectPredefinedType: @@ -6125,8 +6135,8 @@ class IfcBoiler_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBoiler_CorrectTypeAssigned: SCOPE = 'entity' @@ -6135,8 +6145,8 @@ class IfcBoiler_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcboilertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcboilertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBoilerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6145,8 +6155,8 @@ class IfcBoilerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBooleanClippingResult_FirstOperandType: SCOPE = 'entity' @@ -6155,7 +6165,7 @@ class IfcBooleanClippingResult_FirstOperandType: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) assert ('ifc4x3_rc4.ifcsweptareasolid' in typeof(firstoperand) or 'ifc4x3_rc4.ifcsweptdiscsolid' in typeof(firstoperand) or 'ifc4x3_rc4.ifcbooleanclippingresult' in typeof(firstoperand)) is not False class IfcBooleanClippingResult_SecondOperandType: @@ -6165,7 +6175,7 @@ class IfcBooleanClippingResult_SecondOperandType: @staticmethod def __call__(self): - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) assert ('ifc4x3_rc4.ifchalfspacesolid' in typeof(secondoperand)) is not False class IfcBooleanClippingResult_OperatorType: @@ -6175,7 +6185,7 @@ class IfcBooleanClippingResult_OperatorType: @staticmethod def __call__(self): - operator = getattr(self, 'Operator', INDETERMINATE) + operator = express_getattr(self, 'Operator', INDETERMINATE) assert (operator == difference) is not False class IfcBooleanResult_SameDim: @@ -6185,9 +6195,9 @@ class IfcBooleanResult_SameDim: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) - assert (getattr(firstoperand, 'Dim', INDETERMINATE) == getattr(secondoperand, 'Dim', INDETERMINATE)) is not False + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) + assert (express_getattr(firstoperand, 'Dim', INDETERMINATE) == express_getattr(secondoperand, 'Dim', INDETERMINATE)) is not False class IfcBooleanResult_FirstOperandClosed: SCOPE = 'entity' @@ -6196,8 +6206,8 @@ class IfcBooleanResult_FirstOperandClosed: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - assert (not 'ifc4x3_rc4.ifctessellatedfaceset' in typeof(firstoperand) or (exists(getattr(firstoperand, 'Closed', INDETERMINATE)) and getattr(firstoperand, 'Closed', INDETERMINATE))) is not False + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + assert (not 'ifc4x3_rc4.ifctessellatedfaceset' in typeof(firstoperand) or (exists(express_getattr(firstoperand, 'Closed', INDETERMINATE)) and express_getattr(firstoperand, 'Closed', INDETERMINATE))) is not False class IfcBooleanResult_SecondOperandClosed: SCOPE = 'entity' @@ -6206,12 +6216,12 @@ class IfcBooleanResult_SecondOperandClosed: @staticmethod def __call__(self): - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) - assert (not 'ifc4x3_rc4.ifctessellatedfaceset' in typeof(secondoperand) or (exists(getattr(secondoperand, 'Closed', INDETERMINATE)) and getattr(secondoperand, 'Closed', INDETERMINATE))) is not False + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) + assert (not 'ifc4x3_rc4.ifctessellatedfaceset' in typeof(secondoperand) or (exists(express_getattr(secondoperand, 'Closed', INDETERMINATE)) and express_getattr(secondoperand, 'Closed', INDETERMINATE))) is not False def calc_IfcBooleanResult_Dim(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - return getattr(firstoperand, 'Dim', INDETERMINATE) + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + return express_getattr(firstoperand, 'Dim', INDETERMINATE) class IfcBoundaryCurve_IsClosed: SCOPE = 'entity' @@ -6220,7 +6230,7 @@ class IfcBoundaryCurve_IsClosed: @staticmethod def __call__(self): - assert getattr(self, 'ClosedCurve', INDETERMINATE) is not False + assert express_getattr(self, 'ClosedCurve', INDETERMINATE) is not False def calc_IfcBoundingBox_Dim(self): return 3 @@ -6232,7 +6242,7 @@ class IfcBoxedHalfSpace_UnboundedSurface: @staticmethod def __call__(self): - assert (not 'ifc4x3_rc4.ifccurveboundedplane' in typeof(getattr(self, 'BaseSurface', INDETERMINATE))) is not False + assert (not 'ifc4x3_rc4.ifccurveboundedplane' in typeof(express_getattr(self, 'BaseSurface', INDETERMINATE))) is not False class IfcBridge_CorrectPredefinedType: SCOPE = 'entity' @@ -6241,8 +6251,8 @@ class IfcBridge_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuildingElementPart_CorrectPredefinedType: SCOPE = 'entity' @@ -6251,8 +6261,8 @@ class IfcBuildingElementPart_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuildingElementPart_CorrectTypeAssigned: SCOPE = 'entity' @@ -6261,8 +6271,8 @@ class IfcBuildingElementPart_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcbuildingelementparttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcbuildingelementparttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBuildingElementPartType_CorrectPredefinedType: SCOPE = 'entity' @@ -6271,8 +6281,8 @@ class IfcBuildingElementPartType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBuildingElementProxy_HasObjectName: SCOPE = 'entity' @@ -6281,7 +6291,7 @@ class IfcBuildingElementProxy_HasObjectName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcBuildingElementProxy_CorrectPredefinedType: SCOPE = 'entity' @@ -6290,8 +6300,8 @@ class IfcBuildingElementProxy_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuildingElementProxy_CorrectTypeAssigned: SCOPE = 'entity' @@ -6300,8 +6310,8 @@ class IfcBuildingElementProxy_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcbuildingelementproxytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcbuildingelementproxytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBuildingElementProxyType_CorrectPredefinedType: SCOPE = 'entity' @@ -6310,8 +6320,8 @@ class IfcBuildingElementProxyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBuiltElement_MaxOneMaterialAssociation: SCOPE = 'entity' @@ -6320,7 +6330,7 @@ class IfcBuiltElement_MaxOneMaterialAssociation: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'HasAssociations', INDETERMINATE) if 'ifc4x3_rc4.ifcrelassociatesmaterial' in typeof(temp)]) <= 1) is not False + assert (sizeof([temp for temp in express_getattr(self, 'HasAssociations', INDETERMINATE) if 'ifc4x3_rc4.ifcrelassociatesmaterial' in typeof(temp)]) <= 1) is not False class IfcBuiltSystem_CorrectPredefinedType: SCOPE = 'entity' @@ -6329,8 +6339,8 @@ class IfcBuiltSystem_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBurner_CorrectPredefinedType: SCOPE = 'entity' @@ -6339,8 +6349,8 @@ class IfcBurner_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBurner_CorrectTypeAssigned: SCOPE = 'entity' @@ -6349,8 +6359,8 @@ class IfcBurner_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcburnertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcburnertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBurnerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6359,8 +6369,8 @@ class IfcBurnerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCShapeProfileDef_ValidGirth: SCOPE = 'entity' @@ -6369,8 +6379,8 @@ class IfcCShapeProfileDef_ValidGirth: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - girth = getattr(self, 'Girth', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + girth = express_getattr(self, 'Girth', INDETERMINATE) assert (girth < depth / 2.0) is not False class IfcCShapeProfileDef_ValidInternalFilletRadius: @@ -6380,10 +6390,10 @@ class IfcCShapeProfileDef_ValidInternalFilletRadius: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - internalfilletradius = getattr(self, 'InternalFilletRadius', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + internalfilletradius = express_getattr(self, 'InternalFilletRadius', INDETERMINATE) assert (not exists(internalfilletradius) or (internalfilletradius <= width / 2.0 - wallthickness and internalfilletradius <= depth / 2.0 - wallthickness)) is not False class IfcCShapeProfileDef_ValidWallThickness: @@ -6393,9 +6403,9 @@ class IfcCShapeProfileDef_ValidWallThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) assert (wallthickness < width / 2.0 and wallthickness < depth / 2.0) is not False class IfcCableCarrierFitting_CorrectPredefinedType: @@ -6405,8 +6415,8 @@ class IfcCableCarrierFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableCarrierFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -6415,8 +6425,8 @@ class IfcCableCarrierFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccablecarrierfittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccablecarrierfittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableCarrierFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -6425,8 +6435,8 @@ class IfcCableCarrierFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableCarrierSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -6435,8 +6445,8 @@ class IfcCableCarrierSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableCarrierSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -6445,8 +6455,8 @@ class IfcCableCarrierSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccablecarriersegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccablecarriersegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableCarrierSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -6455,8 +6465,8 @@ class IfcCableCarrierSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -6465,8 +6475,8 @@ class IfcCableFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -6475,8 +6485,8 @@ class IfcCableFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccablefittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccablefittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -6485,8 +6495,8 @@ class IfcCableFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -6495,8 +6505,8 @@ class IfcCableSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -6505,8 +6515,8 @@ class IfcCableSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccablesegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccablesegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -6515,8 +6525,8 @@ class IfcCableSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCaissonFoundation_CorrectPredefinedType: SCOPE = 'entity' @@ -6525,8 +6535,8 @@ class IfcCaissonFoundation_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCaissonFoundation_CorrectTypeAssigned: SCOPE = 'entity' @@ -6535,8 +6545,8 @@ class IfcCaissonFoundation_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccaissonfoundationtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccaissonfoundationtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCaissonFoundationType_CorrectPredefinedType: SCOPE = 'entity' @@ -6545,8 +6555,8 @@ class IfcCaissonFoundationType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCartesianPoint_CP2Dor3D: SCOPE = 'entity' @@ -6555,11 +6565,11 @@ class IfcCartesianPoint_CP2Dor3D: @staticmethod def __call__(self): - coordinates = getattr(self, 'Coordinates', INDETERMINATE) + coordinates = express_getattr(self, 'Coordinates', INDETERMINATE) assert (hiindex(coordinates) >= 2) is not False def calc_IfcCartesianPoint_Dim(self): - coordinates = getattr(self, 'Coordinates', INDETERMINATE) + coordinates = express_getattr(self, 'Coordinates', INDETERMINATE) return hiindex(coordinates) def calc_IfcCartesianPointList_Dim(self): @@ -6572,16 +6582,16 @@ class IfcCartesianTransformationOperator_ScaleGreaterZero: @staticmethod def __call__(self): - scl = getattr(self, 'Scl', INDETERMINATE) + scl = express_getattr(self, 'Scl', INDETERMINATE) assert (scl > 0.0) is not False def calc_IfcCartesianTransformationOperator_Scl(self): - scale = getattr(self, 'Scale', INDETERMINATE) + scale = express_getattr(self, 'Scale', INDETERMINATE) return nvl(scale, 1.0) def calc_IfcCartesianTransformationOperator_Dim(self): - localorigin = getattr(self, 'LocalOrigin', INDETERMINATE) - return getattr(localorigin, 'Dim', INDETERMINATE) + localorigin = express_getattr(self, 'LocalOrigin', INDETERMINATE) + return express_getattr(localorigin, 'Dim', INDETERMINATE) class IfcCartesianTransformationOperator2D_DimEqual2: SCOPE = 'entity' @@ -6590,7 +6600,7 @@ class IfcCartesianTransformationOperator2D_DimEqual2: @staticmethod def __call__(self): - assert (getattr(self, 'Dim', INDETERMINATE) == 2) is not False + assert (express_getattr(self, 'Dim', INDETERMINATE) == 2) is not False class IfcCartesianTransformationOperator2D_Axis1Is2D: SCOPE = 'entity' @@ -6599,7 +6609,7 @@ class IfcCartesianTransformationOperator2D_Axis1Is2D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis1', INDETERMINATE)) or getattr(getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (not exists(express_getattr(self, 'Axis1', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False class IfcCartesianTransformationOperator2D_Axis2Is2D: SCOPE = 'entity' @@ -6608,10 +6618,10 @@ class IfcCartesianTransformationOperator2D_Axis2Is2D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis2', INDETERMINATE)) or getattr(getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (not exists(express_getattr(self, 'Axis2', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False def calc_IfcCartesianTransformationOperator2D_U(self): - return IfcBaseAxis(2, getattr(self, 'Axis1', INDETERMINATE), getattr(self, 'Axis2', INDETERMINATE), None) + return IfcBaseAxis(2, express_getattr(self, 'Axis1', INDETERMINATE), express_getattr(self, 'Axis2', INDETERMINATE), None) class IfcCartesianTransformationOperator2DnonUniform_Scale2GreaterZero: SCOPE = 'entity' @@ -6620,12 +6630,12 @@ class IfcCartesianTransformationOperator2DnonUniform_Scale2GreaterZero: @staticmethod def __call__(self): - scl2 = getattr(self, 'Scl2', INDETERMINATE) + scl2 = express_getattr(self, 'Scl2', INDETERMINATE) assert (scl2 > 0.0) is not False def calc_IfcCartesianTransformationOperator2DnonUniform_Scl2(self): - scale2 = getattr(self, 'Scale2', INDETERMINATE) - return nvl(scale2, getattr(self, 'Scl', INDETERMINATE)) + scale2 = express_getattr(self, 'Scale2', INDETERMINATE) + return nvl(scale2, express_getattr(self, 'Scl', INDETERMINATE)) class IfcCartesianTransformationOperator3D_DimIs3D: SCOPE = 'entity' @@ -6634,7 +6644,7 @@ class IfcCartesianTransformationOperator3D_DimIs3D: @staticmethod def __call__(self): - assert (getattr(self, 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(self, 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_Axis1Is3D: SCOPE = 'entity' @@ -6643,7 +6653,7 @@ class IfcCartesianTransformationOperator3D_Axis1Is3D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis1', INDETERMINATE)) or getattr(getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (not exists(express_getattr(self, 'Axis1', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_Axis2Is3D: SCOPE = 'entity' @@ -6652,7 +6662,7 @@ class IfcCartesianTransformationOperator3D_Axis2Is3D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis2', INDETERMINATE)) or getattr(getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (not exists(express_getattr(self, 'Axis2', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_Axis3Is3D: SCOPE = 'entity' @@ -6661,12 +6671,12 @@ class IfcCartesianTransformationOperator3D_Axis3Is3D: @staticmethod def __call__(self): - axis3 = getattr(self, 'Axis3', INDETERMINATE) - assert (not exists(axis3) or getattr(axis3, 'Dim', INDETERMINATE) == 3) is not False + axis3 = express_getattr(self, 'Axis3', INDETERMINATE) + assert (not exists(axis3) or express_getattr(axis3, 'Dim', INDETERMINATE) == 3) is not False def calc_IfcCartesianTransformationOperator3D_U(self): - axis3 = getattr(self, 'Axis3', INDETERMINATE) - return IfcBaseAxis(3, getattr(self, 'Axis1', INDETERMINATE), getattr(self, 'Axis2', INDETERMINATE), axis3) + axis3 = express_getattr(self, 'Axis3', INDETERMINATE) + return IfcBaseAxis(3, express_getattr(self, 'Axis1', INDETERMINATE), express_getattr(self, 'Axis2', INDETERMINATE), axis3) class IfcCartesianTransformationOperator3DnonUniform_Scale2GreaterZero: SCOPE = 'entity' @@ -6675,7 +6685,7 @@ class IfcCartesianTransformationOperator3DnonUniform_Scale2GreaterZero: @staticmethod def __call__(self): - scl2 = getattr(self, 'Scl2', INDETERMINATE) + scl2 = express_getattr(self, 'Scl2', INDETERMINATE) assert (scl2 > 0.0) is not False class IfcCartesianTransformationOperator3DnonUniform_Scale3GreaterZero: @@ -6685,16 +6695,16 @@ class IfcCartesianTransformationOperator3DnonUniform_Scale3GreaterZero: @staticmethod def __call__(self): - scl3 = getattr(self, 'Scl3', INDETERMINATE) + scl3 = express_getattr(self, 'Scl3', INDETERMINATE) assert (scl3 > 0.0) is not False def calc_IfcCartesianTransformationOperator3DnonUniform_Scl2(self): - scale2 = getattr(self, 'Scale2', INDETERMINATE) - return nvl(scale2, getattr(self, 'Scl', INDETERMINATE)) + scale2 = express_getattr(self, 'Scale2', INDETERMINATE) + return nvl(scale2, express_getattr(self, 'Scl', INDETERMINATE)) def calc_IfcCartesianTransformationOperator3DnonUniform_Scl3(self): - scale3 = getattr(self, 'Scale3', INDETERMINATE) - return nvl(scale3, getattr(self, 'Scl', INDETERMINATE)) + scale3 = express_getattr(self, 'Scale3', INDETERMINATE) + return nvl(scale3, express_getattr(self, 'Scl', INDETERMINATE)) class IfcChiller_CorrectPredefinedType: SCOPE = 'entity' @@ -6703,8 +6713,8 @@ class IfcChiller_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcChiller_CorrectTypeAssigned: SCOPE = 'entity' @@ -6713,8 +6723,8 @@ class IfcChiller_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcchillertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcchillertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcChillerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6723,8 +6733,8 @@ class IfcChillerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcChimney_CorrectPredefinedType: SCOPE = 'entity' @@ -6733,8 +6743,8 @@ class IfcChimney_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcChimney_CorrectTypeAssigned: SCOPE = 'entity' @@ -6743,8 +6753,8 @@ class IfcChimney_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcchimneytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcchimneytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcChimneyType_CorrectPredefinedType: SCOPE = 'entity' @@ -6753,8 +6763,8 @@ class IfcChimneyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCircleHollowProfileDef_WR1: SCOPE = 'entity' @@ -6763,8 +6773,8 @@ class IfcCircleHollowProfileDef_WR1: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - assert (wallthickness < getattr(self, 'Radius', INDETERMINATE)) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + assert (wallthickness < express_getattr(self, 'Radius', INDETERMINATE)) is not False class IfcCoil_CorrectPredefinedType: SCOPE = 'entity' @@ -6773,8 +6783,8 @@ class IfcCoil_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCoil_CorrectTypeAssigned: SCOPE = 'entity' @@ -6783,8 +6793,8 @@ class IfcCoil_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccoiltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccoiltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoilType_CorrectPredefinedType: SCOPE = 'entity' @@ -6793,8 +6803,8 @@ class IfcCoilType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcColumn_CorrectPredefinedType: SCOPE = 'entity' @@ -6803,8 +6813,8 @@ class IfcColumn_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcColumn_CorrectTypeAssigned: SCOPE = 'entity' @@ -6813,8 +6823,8 @@ class IfcColumn_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccolumntype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccolumntype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcColumnStandardCase_HasMaterialProfileSetUsage: SCOPE = 'entity' @@ -6823,7 +6833,7 @@ class IfcColumnStandardCase_HasMaterialProfileSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc4.ifcrelassociates.relatedobjects') if 'ifc4x3_rc4.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc4.ifcmaterialprofilesetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc4.ifcrelassociates.relatedobjects') if 'ifc4x3_rc4.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc4.ifcmaterialprofilesetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcColumnType_CorrectPredefinedType: SCOPE = 'entity' @@ -6832,8 +6842,8 @@ class IfcColumnType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCommunicationsAppliance_CorrectPredefinedType: SCOPE = 'entity' @@ -6842,8 +6852,8 @@ class IfcCommunicationsAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCommunicationsAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -6852,8 +6862,8 @@ class IfcCommunicationsAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccommunicationsappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccommunicationsappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCommunicationsApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -6862,8 +6872,8 @@ class IfcCommunicationsApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcComplexProperty_WR21: SCOPE = 'entity' @@ -6872,7 +6882,7 @@ class IfcComplexProperty_WR21: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert (sizeof([temp for temp in hasproperties if self == temp]) == 0) is not False class IfcComplexProperty_WR22: @@ -6882,7 +6892,7 @@ class IfcComplexProperty_WR22: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert IfcUniquePropertyName(hasproperties) is not False class IfcComplexPropertyTemplate_UniquePropertyNames: @@ -6892,7 +6902,7 @@ class IfcComplexPropertyTemplate_UniquePropertyNames: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert IfcUniquePropertyTemplateNames(haspropertytemplates) is not False class IfcComplexPropertyTemplate_NoSelfReference: @@ -6902,7 +6912,7 @@ class IfcComplexPropertyTemplate_NoSelfReference: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert (sizeof([temp for temp in haspropertytemplates if self == temp]) == 0) is not False class IfcCompositeCurve_CurveContinuous: @@ -6912,9 +6922,9 @@ class IfcCompositeCurve_CurveContinuous: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) - closedcurve = getattr(self, 'ClosedCurve', INDETERMINATE) - assert (not closedcurve and sizeof([temp for temp in segments if getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 1 or (closedcurve and sizeof([temp for temp in segments if getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 0)) is not False + segments = express_getattr(self, 'Segments', INDETERMINATE) + closedcurve = express_getattr(self, 'ClosedCurve', INDETERMINATE) + assert (not closedcurve and sizeof([temp for temp in segments if express_getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 1 or (closedcurve and sizeof([temp for temp in segments if express_getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 0)) is not False class IfcCompositeCurve_SameDim: SCOPE = 'entity' @@ -6923,17 +6933,17 @@ class IfcCompositeCurve_SameDim: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) - assert (sizeof([temp for temp in segments if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(segments, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + segments = express_getattr(self, 'Segments', INDETERMINATE) + assert (sizeof([temp for temp in segments if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(segments, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcCompositeCurve_NSegments(self): - segments = getattr(self, 'Segments', INDETERMINATE) + segments = express_getattr(self, 'Segments', INDETERMINATE) return sizeof(segments) def calc_IfcCompositeCurve_ClosedCurve(self): - segments = getattr(self, 'Segments', INDETERMINATE) - nsegments = getattr(self, 'NSegments', INDETERMINATE) - return getattr(express_getitem(segments, nsegments - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Transition', INDETERMINATE) != discontinuous + segments = express_getattr(self, 'Segments', INDETERMINATE) + nsegments = express_getattr(self, 'NSegments', INDETERMINATE) + return express_getattr(express_getitem(segments, nsegments - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Transition', INDETERMINATE) != discontinuous class IfcCompositeCurveOnSurface_SameSurface: SCOPE = 'entity' @@ -6942,7 +6952,7 @@ class IfcCompositeCurveOnSurface_SameSurface: @staticmethod def __call__(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) assert (sizeof(basissurface) > 0) is not False def calc_IfcCompositeCurveOnSurface_BasisSurface(self): @@ -6955,12 +6965,12 @@ class IfcCompositeCurveSegment_ParentIsBoundedCurve: @staticmethod def __call__(self): - parentcurve = getattr(self, 'ParentCurve', INDETERMINATE) + parentcurve = express_getattr(self, 'ParentCurve', INDETERMINATE) assert ('ifc4x3_rc4.ifcboundedcurve' in typeof(parentcurve)) is not False def calc_IfcCompositeCurveSegment_Dim(self): - parentcurve = getattr(self, 'ParentCurve', INDETERMINATE) - return getattr(parentcurve, 'Dim', INDETERMINATE) + parentcurve = express_getattr(self, 'ParentCurve', INDETERMINATE) + return express_getattr(parentcurve, 'Dim', INDETERMINATE) class IfcCompositeProfileDef_InvariantProfileType: SCOPE = 'entity' @@ -6969,8 +6979,8 @@ class IfcCompositeProfileDef_InvariantProfileType: @staticmethod def __call__(self): - profiles = getattr(self, 'Profiles', INDETERMINATE) - assert (sizeof([temp for temp in profiles if getattr(temp, 'ProfileType', INDETERMINATE) != getattr(express_getitem(profiles, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE)]) == 0) is not False + profiles = express_getattr(self, 'Profiles', INDETERMINATE) + assert (sizeof([temp for temp in profiles if express_getattr(temp, 'ProfileType', INDETERMINATE) != express_getattr(express_getitem(profiles, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcCompositeProfileDef_NoRecursion: SCOPE = 'entity' @@ -6979,7 +6989,7 @@ class IfcCompositeProfileDef_NoRecursion: @staticmethod def __call__(self): - profiles = getattr(self, 'Profiles', INDETERMINATE) + profiles = express_getattr(self, 'Profiles', INDETERMINATE) assert (sizeof([temp for temp in profiles if 'ifc4x3_rc4.ifccompositeprofiledef' in typeof(temp)]) == 0) is not False class IfcCompressor_CorrectPredefinedType: @@ -6989,8 +6999,8 @@ class IfcCompressor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCompressor_CorrectTypeAssigned: SCOPE = 'entity' @@ -6999,8 +7009,8 @@ class IfcCompressor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccompressortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccompressortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCompressorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7009,8 +7019,8 @@ class IfcCompressorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCondenser_CorrectPredefinedType: SCOPE = 'entity' @@ -7019,8 +7029,8 @@ class IfcCondenser_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCondenser_CorrectTypeAssigned: SCOPE = 'entity' @@ -7029,8 +7039,8 @@ class IfcCondenser_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccondensertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccondensertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCondenserType_CorrectPredefinedType: SCOPE = 'entity' @@ -7039,8 +7049,8 @@ class IfcCondenserType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcConstraint_WR11: SCOPE = 'entity' @@ -7049,8 +7059,8 @@ class IfcConstraint_WR11: @staticmethod def __call__(self): - constraintgrade = getattr(self, 'ConstraintGrade', INDETERMINATE) - assert (constraintgrade != getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) or (constraintgrade == getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedGrade', INDETERMINATE)))) is not False + constraintgrade = express_getattr(self, 'ConstraintGrade', INDETERMINATE) + assert (constraintgrade != express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) or (constraintgrade == express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedGrade', INDETERMINATE)))) is not False class IfcConstructionEquipmentResource_CorrectPredefinedType: SCOPE = 'entity' @@ -7059,8 +7069,8 @@ class IfcConstructionEquipmentResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionEquipmentResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7069,8 +7079,8 @@ class IfcConstructionEquipmentResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcConstructionMaterialResource_CorrectPredefinedType: SCOPE = 'entity' @@ -7079,8 +7089,8 @@ class IfcConstructionMaterialResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionMaterialResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7089,8 +7099,8 @@ class IfcConstructionMaterialResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcConstructionProductResource_CorrectPredefinedType: SCOPE = 'entity' @@ -7099,8 +7109,8 @@ class IfcConstructionProductResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionProductResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7109,8 +7119,8 @@ class IfcConstructionProductResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcController_CorrectPredefinedType: SCOPE = 'entity' @@ -7119,8 +7129,8 @@ class IfcController_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcController_CorrectTypeAssigned: SCOPE = 'entity' @@ -7129,8 +7139,8 @@ class IfcController_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccontrollertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccontrollertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcControllerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7139,8 +7149,8 @@ class IfcControllerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcConveyorSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -7149,8 +7159,8 @@ class IfcConveyorSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConveyorSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -7159,8 +7169,8 @@ class IfcConveyorSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcconveyorsegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcconveyorsegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcConveyorSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -7169,8 +7179,8 @@ class IfcConveyorSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCooledBeam_CorrectPredefinedType: SCOPE = 'entity' @@ -7179,8 +7189,8 @@ class IfcCooledBeam_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCooledBeam_CorrectTypeAssigned: SCOPE = 'entity' @@ -7189,8 +7199,8 @@ class IfcCooledBeam_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccooledbeamtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccooledbeamtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCooledBeamType_CorrectPredefinedType: SCOPE = 'entity' @@ -7199,8 +7209,8 @@ class IfcCooledBeamType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCoolingTower_CorrectPredefinedType: SCOPE = 'entity' @@ -7209,8 +7219,8 @@ class IfcCoolingTower_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCoolingTower_CorrectTypeAssigned: SCOPE = 'entity' @@ -7219,8 +7229,8 @@ class IfcCoolingTower_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccoolingtowertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccoolingtowertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoolingTowerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7229,8 +7239,8 @@ class IfcCoolingTowerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCourse_CorrectPredefinedType: SCOPE = 'entity' @@ -7239,8 +7249,8 @@ class IfcCourse_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCourse_CorrectTypeAssigned: SCOPE = 'entity' @@ -7249,8 +7259,8 @@ class IfcCourse_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccoursetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccoursetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCourseType_CorrectPredefinedType: SCOPE = 'entity' @@ -7259,8 +7269,8 @@ class IfcCourseType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCovering_CorrectPredefinedType: SCOPE = 'entity' @@ -7269,8 +7279,8 @@ class IfcCovering_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCovering_CorrectTypeAssigned: SCOPE = 'entity' @@ -7279,8 +7289,8 @@ class IfcCovering_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccoveringtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccoveringtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoveringType_CorrectPredefinedType: SCOPE = 'entity' @@ -7289,8 +7299,8 @@ class IfcCoveringType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCrewResource_CorrectPredefinedType: SCOPE = 'entity' @@ -7299,8 +7309,8 @@ class IfcCrewResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCrewResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7309,8 +7319,8 @@ class IfcCrewResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False def calc_IfcCsgPrimitive3D_Dim(self): return 3 @@ -7322,8 +7332,8 @@ class IfcCurtainWall_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCurtainWall_CorrectTypeAssigned: SCOPE = 'entity' @@ -7332,8 +7342,8 @@ class IfcCurtainWall_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccurtainwalltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifccurtainwalltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCurtainWallType_CorrectPredefinedType: SCOPE = 'entity' @@ -7342,15 +7352,15 @@ class IfcCurtainWallType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcCurve_Dim(self): return IfcCurveDim(self) def calc_IfcCurveSegment_Dim(self): - parentcurve = getattr(self, 'ParentCurve', INDETERMINATE) - return getattr(parentcurve, 'Dim', INDETERMINATE) + parentcurve = express_getattr(self, 'ParentCurve', INDETERMINATE) + return express_getattr(parentcurve, 'Dim', INDETERMINATE) class IfcCurveStyle_MeasureOfWidth: SCOPE = 'entity' @@ -7359,7 +7369,7 @@ class IfcCurveStyle_MeasureOfWidth: @staticmethod def __call__(self): - curvewidth = getattr(self, 'CurveWidth', INDETERMINATE) + curvewidth = express_getattr(self, 'CurveWidth', INDETERMINATE) assert (not exists(curvewidth) or 'ifc4x3_rc4.ifcpositivelengthmeasure' in typeof(curvewidth) or ('ifc4x3_rc4.ifcdescriptivemeasure' in typeof(curvewidth) and curvewidth == 'bylayer')) is not False class IfcCurveStyle_IdentifiableCurveStyle: @@ -7369,9 +7379,9 @@ class IfcCurveStyle_IdentifiableCurveStyle: @staticmethod def __call__(self): - curvefont = getattr(self, 'CurveFont', INDETERMINATE) - curvewidth = getattr(self, 'CurveWidth', INDETERMINATE) - curvecolour = getattr(self, 'CurveColour', INDETERMINATE) + curvefont = express_getattr(self, 'CurveFont', INDETERMINATE) + curvewidth = express_getattr(self, 'CurveWidth', INDETERMINATE) + curvecolour = express_getattr(self, 'CurveColour', INDETERMINATE) assert (exists(curvefont) or exists(curvewidth) or exists(curvecolour)) is not False class IfcCurveStyleFontPattern_VisibleLengthGreaterEqualZero: @@ -7381,7 +7391,7 @@ class IfcCurveStyleFontPattern_VisibleLengthGreaterEqualZero: @staticmethod def __call__(self): - visiblesegmentlength = getattr(self, 'VisibleSegmentLength', INDETERMINATE) + visiblesegmentlength = express_getattr(self, 'VisibleSegmentLength', INDETERMINATE) assert (visiblesegmentlength >= 0.0) is not False class IfcDamper_CorrectPredefinedType: @@ -7391,8 +7401,8 @@ class IfcDamper_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDamper_CorrectTypeAssigned: SCOPE = 'entity' @@ -7401,8 +7411,8 @@ class IfcDamper_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcdampertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcdampertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDamperType_CorrectPredefinedType: SCOPE = 'entity' @@ -7411,8 +7421,8 @@ class IfcDamperType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDeepFoundation_CorrectTypeAssigned: SCOPE = 'entity' @@ -7421,8 +7431,8 @@ class IfcDeepFoundation_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcdeepfoundationtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcdeepfoundationtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDerivedProfileDef_InvariantProfileType: SCOPE = 'entity' @@ -7431,8 +7441,8 @@ class IfcDerivedProfileDef_InvariantProfileType: @staticmethod def __call__(self): - parentprofile = getattr(self, 'ParentProfile', INDETERMINATE) - assert (getattr(self, 'ProfileType', INDETERMINATE) == getattr(parentprofile, 'ProfileType', INDETERMINATE)) is not False + parentprofile = express_getattr(self, 'ParentProfile', INDETERMINATE) + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(parentprofile, 'ProfileType', INDETERMINATE)) is not False class IfcDerivedUnit_WR1: SCOPE = 'entity' @@ -7441,8 +7451,8 @@ class IfcDerivedUnit_WR1: @staticmethod def __call__(self): - elements = getattr(self, 'Elements', INDETERMINATE) - assert (sizeof(elements) > 1 or (sizeof(elements) == 1 and getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) != 1)) is not False + elements = express_getattr(self, 'Elements', INDETERMINATE) + assert (sizeof(elements) > 1 or (sizeof(elements) == 1 and express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) != 1)) is not False class IfcDerivedUnit_WR2: SCOPE = 'entity' @@ -7451,11 +7461,11 @@ class IfcDerivedUnit_WR2: @staticmethod def __call__(self): - unittype = getattr(self, 'UnitType', INDETERMINATE) - assert (unittype != getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) or (unittype == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedType', INDETERMINATE)))) is not False + unittype = express_getattr(self, 'UnitType', INDETERMINATE) + assert (unittype != express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) or (unittype == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedType', INDETERMINATE)))) is not False def calc_IfcDerivedUnit_Dimensions(self): - elements = getattr(self, 'Elements', INDETERMINATE) + elements = express_getattr(self, 'Elements', INDETERMINATE) return IfcDeriveDimensionalExponents(elements) class IfcDirection_MagnitudeGreaterZero: @@ -7465,11 +7475,11 @@ class IfcDirection_MagnitudeGreaterZero: @staticmethod def __call__(self): - directionratios = getattr(self, 'DirectionRatios', INDETERMINATE) + directionratios = express_getattr(self, 'DirectionRatios', INDETERMINATE) assert (sizeof([tmp for tmp in directionratios if tmp != 0.0]) > 0) is not False def calc_IfcDirection_Dim(self): - directionratios = getattr(self, 'DirectionRatios', INDETERMINATE) + directionratios = express_getattr(self, 'DirectionRatios', INDETERMINATE) return hiindex(directionratios) class IfcDirectrixCurveSweptAreaSolid_DirectrixBounded: @@ -7479,9 +7489,9 @@ class IfcDirectrixCurveSweptAreaSolid_DirectrixBounded: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - startparam = getattr(self, 'StartParam', INDETERMINATE) - endparam = getattr(self, 'EndParam', INDETERMINATE) + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + startparam = express_getattr(self, 'StartParam', INDETERMINATE) + endparam = express_getattr(self, 'EndParam', INDETERMINATE) assert (exists(startparam) and exists(endparam) or sizeof(['ifc4x3_rc4.ifcconic', 'ifc4x3_rc4.ifcboundedcurve'] * typeof(directrix)) == 1) is not False class IfcDiscreteAccessory_CorrectPredefinedType: @@ -7491,8 +7501,8 @@ class IfcDiscreteAccessory_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDiscreteAccessory_CorrectTypeAssigned: SCOPE = 'entity' @@ -7501,8 +7511,8 @@ class IfcDiscreteAccessory_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcdiscreteaccessorytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcdiscreteaccessorytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDiscreteAccessoryType_CorrectPredefinedType: SCOPE = 'entity' @@ -7511,8 +7521,8 @@ class IfcDiscreteAccessoryType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDistributionBoard_CorrectPredefinedType: SCOPE = 'entity' @@ -7521,8 +7531,8 @@ class IfcDistributionBoard_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDistributionBoard_CorrectTypeAssigned: SCOPE = 'entity' @@ -7531,8 +7541,8 @@ class IfcDistributionBoard_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcdistributionboardtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcdistributionboardtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDistributionBoardType_CorrectPredefinedType: SCOPE = 'entity' @@ -7541,8 +7551,8 @@ class IfcDistributionBoardType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDistributionChamberElement_CorrectPredefinedType: SCOPE = 'entity' @@ -7551,8 +7561,8 @@ class IfcDistributionChamberElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDistributionChamberElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -7561,8 +7571,8 @@ class IfcDistributionChamberElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcdistributionchamberelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcdistributionchamberelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDistributionChamberElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -7571,8 +7581,8 @@ class IfcDistributionChamberElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDistributionSystem_CorrectPredefinedType: SCOPE = 'entity' @@ -7581,8 +7591,8 @@ class IfcDistributionSystem_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDocumentReference_WR1: SCOPE = 'entity' @@ -7591,8 +7601,8 @@ class IfcDocumentReference_WR1: @staticmethod def __call__(self): - name = getattr(self, 'Name', INDETERMINATE) - referenceddocument = getattr(self, 'ReferencedDocument', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) + referenceddocument = express_getattr(self, 'ReferencedDocument', INDETERMINATE) assert exists(name) ^ exists(referenceddocument) is not False class IfcDoor_CorrectStyleAssigned: @@ -7602,8 +7612,8 @@ class IfcDoor_CorrectStyleAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcdoortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcdoortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDoor_CorrectPredefinedType: SCOPE = 'entity' @@ -7612,8 +7622,8 @@ class IfcDoor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDoor_CorrectTypeAssigned: SCOPE = 'entity' @@ -7622,8 +7632,8 @@ class IfcDoor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcdoortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcdoortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDoorLiningProperties_WR31: SCOPE = 'entity' @@ -7632,8 +7642,8 @@ class IfcDoorLiningProperties_WR31: @staticmethod def __call__(self): - liningdepth = getattr(self, 'LiningDepth', INDETERMINATE) - liningthickness = getattr(self, 'LiningThickness', INDETERMINATE) + liningdepth = express_getattr(self, 'LiningDepth', INDETERMINATE) + liningthickness = express_getattr(self, 'LiningThickness', INDETERMINATE) assert (not (exists(liningdepth) and (not exists(liningthickness)))) is not False class IfcDoorLiningProperties_WR32: @@ -7643,8 +7653,8 @@ class IfcDoorLiningProperties_WR32: @staticmethod def __call__(self): - thresholddepth = getattr(self, 'ThresholdDepth', INDETERMINATE) - thresholdthickness = getattr(self, 'ThresholdThickness', INDETERMINATE) + thresholddepth = express_getattr(self, 'ThresholdDepth', INDETERMINATE) + thresholdthickness = express_getattr(self, 'ThresholdThickness', INDETERMINATE) assert (not (exists(thresholddepth) and (not exists(thresholdthickness)))) is not False class IfcDoorLiningProperties_WR33: @@ -7654,8 +7664,8 @@ class IfcDoorLiningProperties_WR33: @staticmethod def __call__(self): - transomthickness = getattr(self, 'TransomThickness', INDETERMINATE) - transomoffset = getattr(self, 'TransomOffset', INDETERMINATE) + transomthickness = express_getattr(self, 'TransomThickness', INDETERMINATE) + transomoffset = express_getattr(self, 'TransomOffset', INDETERMINATE) assert (exists(transomoffset) and exists(transomthickness)) ^ (not exists(transomoffset) and (not exists(transomthickness))) is not False class IfcDoorLiningProperties_WR34: @@ -7665,8 +7675,8 @@ class IfcDoorLiningProperties_WR34: @staticmethod def __call__(self): - casingthickness = getattr(self, 'CasingThickness', INDETERMINATE) - casingdepth = getattr(self, 'CasingDepth', INDETERMINATE) + casingthickness = express_getattr(self, 'CasingThickness', INDETERMINATE) + casingdepth = express_getattr(self, 'CasingDepth', INDETERMINATE) assert (exists(casingdepth) and exists(casingthickness)) ^ (not exists(casingdepth) and (not exists(casingthickness))) is not False class IfcDoorLiningProperties_WR35: @@ -7676,7 +7686,7 @@ class IfcDoorLiningProperties_WR35: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc4.ifcdoortype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc4.ifcdoorstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc4.ifcdoortype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc4.ifcdoorstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcDoorPanelProperties_ApplicableToType: SCOPE = 'entity' @@ -7685,7 +7695,7 @@ class IfcDoorPanelProperties_ApplicableToType: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc4.ifcdoortype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc4.ifcdoorstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc4.ifcdoortype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc4.ifcdoorstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcDoorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7694,8 +7704,8 @@ class IfcDoorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDraughtingPreDefinedColour_PreDefinedColourNames: SCOPE = 'entity' @@ -7704,7 +7714,7 @@ class IfcDraughtingPreDefinedColour_PreDefinedColourNames: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'bylayer']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'bylayer']) is not False class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: SCOPE = 'entity' @@ -7713,7 +7723,7 @@ class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chaindoubledash', 'dashed', 'dotted', 'bylayer']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chaindoubledash', 'dashed', 'dotted', 'bylayer']) is not False class IfcDuctFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -7722,8 +7732,8 @@ class IfcDuctFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -7732,8 +7742,8 @@ class IfcDuctFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcductfittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcductfittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -7742,8 +7752,8 @@ class IfcDuctFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDuctSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -7752,8 +7762,8 @@ class IfcDuctSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -7762,8 +7772,8 @@ class IfcDuctSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcductsegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcductsegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -7772,8 +7782,8 @@ class IfcDuctSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDuctSilencer_CorrectPredefinedType: SCOPE = 'entity' @@ -7782,8 +7792,8 @@ class IfcDuctSilencer_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctSilencer_CorrectTypeAssigned: SCOPE = 'entity' @@ -7792,8 +7802,8 @@ class IfcDuctSilencer_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcductsilencertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcductsilencertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctSilencerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7802,8 +7812,8 @@ class IfcDuctSilencerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEarthworksCut_CorrectPredefinedType: SCOPE = 'entity' @@ -7812,8 +7822,8 @@ class IfcEarthworksCut_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEarthworksFill_CorrectPredefinedType: SCOPE = 'entity' @@ -7822,8 +7832,8 @@ class IfcEarthworksFill_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEdgeLoop_IsClosed: SCOPE = 'entity' @@ -7832,9 +7842,9 @@ class IfcEdgeLoop_IsClosed: @staticmethod def __call__(self): - edgelist = getattr(self, 'EdgeList', INDETERMINATE) - ne = getattr(self, 'Ne', INDETERMINATE) - assert (getattr(express_getitem(edgelist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) == getattr(express_getitem(edgelist, ne - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE)) is not False + edgelist = express_getattr(self, 'EdgeList', INDETERMINATE) + ne = express_getattr(self, 'Ne', INDETERMINATE) + assert (express_getattr(express_getitem(edgelist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) == express_getattr(express_getitem(edgelist, ne - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE)) is not False class IfcEdgeLoop_IsContinuous: SCOPE = 'entity' @@ -7846,7 +7856,7 @@ class IfcEdgeLoop_IsContinuous: assert IfcLoopHeadToTail(self) is not False def calc_IfcEdgeLoop_Ne(self): - edgelist = getattr(self, 'EdgeList', INDETERMINATE) + edgelist = express_getattr(self, 'EdgeList', INDETERMINATE) return sizeof(edgelist) class IfcElectricAppliance_CorrectPredefinedType: @@ -7856,8 +7866,8 @@ class IfcElectricAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -7866,8 +7876,8 @@ class IfcElectricAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcelectricappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcelectricappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7876,8 +7886,8 @@ class IfcElectricApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricDistributionBoard_CorrectPredefinedType: SCOPE = 'entity' @@ -7886,8 +7896,8 @@ class IfcElectricDistributionBoard_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricDistributionBoard_CorrectTypeAssigned: SCOPE = 'entity' @@ -7896,8 +7906,8 @@ class IfcElectricDistributionBoard_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcelectricdistributionboardtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcelectricdistributionboardtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricDistributionBoardType_CorrectPredefinedType: SCOPE = 'entity' @@ -7906,8 +7916,8 @@ class IfcElectricDistributionBoardType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricFlowStorageDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -7916,8 +7926,8 @@ class IfcElectricFlowStorageDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricFlowStorageDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -7926,8 +7936,8 @@ class IfcElectricFlowStorageDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcelectricflowstoragedevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcelectricflowstoragedevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricFlowStorageDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7936,8 +7946,8 @@ class IfcElectricFlowStorageDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricFlowTreatmentDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -7946,8 +7956,8 @@ class IfcElectricFlowTreatmentDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricFlowTreatmentDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -7956,8 +7966,8 @@ class IfcElectricFlowTreatmentDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcelectricflowtreatmentdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcelectricflowtreatmentdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricFlowTreatmentDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7966,8 +7976,8 @@ class IfcElectricFlowTreatmentDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricGenerator_CorrectPredefinedType: SCOPE = 'entity' @@ -7976,8 +7986,8 @@ class IfcElectricGenerator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricGenerator_CorrectTypeAssigned: SCOPE = 'entity' @@ -7986,8 +7996,8 @@ class IfcElectricGenerator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcelectricgeneratortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcelectricgeneratortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricGeneratorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7996,8 +8006,8 @@ class IfcElectricGeneratorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricMotor_CorrectPredefinedType: SCOPE = 'entity' @@ -8006,8 +8016,8 @@ class IfcElectricMotor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricMotor_CorrectTypeAssigned: SCOPE = 'entity' @@ -8016,8 +8026,8 @@ class IfcElectricMotor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcelectricmotortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcelectricmotortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricMotorType_CorrectPredefinedType: SCOPE = 'entity' @@ -8026,8 +8036,8 @@ class IfcElectricMotorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricTimeControl_CorrectPredefinedType: SCOPE = 'entity' @@ -8036,8 +8046,8 @@ class IfcElectricTimeControl_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricTimeControl_CorrectTypeAssigned: SCOPE = 'entity' @@ -8046,8 +8056,8 @@ class IfcElectricTimeControl_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcelectrictimecontroltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcelectrictimecontroltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricTimeControlType_CorrectPredefinedType: SCOPE = 'entity' @@ -8056,8 +8066,8 @@ class IfcElectricTimeControlType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElementAssembly_CorrectPredefinedType: SCOPE = 'entity' @@ -8066,8 +8076,8 @@ class IfcElementAssembly_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElementAssembly_CorrectTypeAssigned: SCOPE = 'entity' @@ -8076,8 +8086,8 @@ class IfcElementAssembly_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcelementassemblytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcelementassemblytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElementAssemblyType_CorrectPredefinedType: SCOPE = 'entity' @@ -8086,8 +8096,8 @@ class IfcElementAssemblyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElementQuantity_UniqueQuantityNames: SCOPE = 'entity' @@ -8096,7 +8106,7 @@ class IfcElementQuantity_UniqueQuantityNames: @staticmethod def __call__(self): - quantities = getattr(self, 'Quantities', INDETERMINATE) + quantities = express_getattr(self, 'Quantities', INDETERMINATE) assert IfcUniqueQuantityNames(quantities) is not False class IfcEngine_CorrectPredefinedType: @@ -8106,8 +8116,8 @@ class IfcEngine_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEngine_CorrectTypeAssigned: SCOPE = 'entity' @@ -8116,8 +8126,8 @@ class IfcEngine_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcenginetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcenginetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEngineType_CorrectPredefinedType: SCOPE = 'entity' @@ -8126,8 +8136,8 @@ class IfcEngineType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvaporativeCooler_CorrectPredefinedType: SCOPE = 'entity' @@ -8136,8 +8146,8 @@ class IfcEvaporativeCooler_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvaporativeCooler_CorrectTypeAssigned: SCOPE = 'entity' @@ -8146,8 +8156,8 @@ class IfcEvaporativeCooler_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcevaporativecoolertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcevaporativecoolertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEvaporativeCoolerType_CorrectPredefinedType: SCOPE = 'entity' @@ -8156,8 +8166,8 @@ class IfcEvaporativeCoolerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvaporator_CorrectPredefinedType: SCOPE = 'entity' @@ -8166,8 +8176,8 @@ class IfcEvaporator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvaporator_CorrectTypeAssigned: SCOPE = 'entity' @@ -8176,8 +8186,8 @@ class IfcEvaporator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcevaporatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcevaporatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEvaporatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -8186,8 +8196,8 @@ class IfcEvaporatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvent_CorrectPredefinedType: SCOPE = 'entity' @@ -8196,8 +8206,8 @@ class IfcEvent_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvent_CorrectTypeAssigned: SCOPE = 'entity' @@ -8206,9 +8216,9 @@ class IfcEvent_CorrectTypeAssigned: @staticmethod def __call__(self): - eventtriggertype = getattr(self, 'EventTriggerType', INDETERMINATE) - userdefinedeventtriggertype = getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) - assert (not exists(eventtriggertype) or eventtriggertype != getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False + eventtriggertype = express_getattr(self, 'EventTriggerType', INDETERMINATE) + userdefinedeventtriggertype = express_getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) + assert (not exists(eventtriggertype) or eventtriggertype != express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False class IfcEventType_CorrectPredefinedType: SCOPE = 'entity' @@ -8217,8 +8227,8 @@ class IfcEventType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcEventType_CorrectEventTriggerType: SCOPE = 'entity' @@ -8227,9 +8237,9 @@ class IfcEventType_CorrectEventTriggerType: @staticmethod def __call__(self): - eventtriggertype = getattr(self, 'EventTriggerType', INDETERMINATE) - userdefinedeventtriggertype = getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) - assert (eventtriggertype != getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False + eventtriggertype = express_getattr(self, 'EventTriggerType', INDETERMINATE) + userdefinedeventtriggertype = express_getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) + assert (eventtriggertype != express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False class IfcExternalReference_WR1: SCOPE = 'entity' @@ -8238,9 +8248,9 @@ class IfcExternalReference_WR1: @staticmethod def __call__(self): - location = getattr(self, 'Location', INDETERMINATE) - identification = getattr(self, 'Identification', INDETERMINATE) - name = getattr(self, 'Name', INDETERMINATE) + location = express_getattr(self, 'Location', INDETERMINATE) + identification = express_getattr(self, 'Identification', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) assert (exists(identification) or exists(location) or exists(name)) is not False class IfcExtrudedAreaSolid_ValidExtrusionDirection: @@ -8250,7 +8260,7 @@ class IfcExtrudedAreaSolid_ValidExtrusionDirection: @staticmethod def __call__(self): - assert (IfcDotProduct(IfcDirection(DirectionRatios=[0.0, 0.0, 1.0]), getattr(self, 'ExtrudedDirection', INDETERMINATE)) != 0.0) is not False + assert (IfcDotProduct(IfcDirection(DirectionRatios=[0.0, 0.0, 1.0]), express_getattr(self, 'ExtrudedDirection', INDETERMINATE)) != 0.0) is not False class IfcExtrudedAreaSolidTapered_CorrectProfileAssignment: SCOPE = 'entity' @@ -8259,7 +8269,7 @@ class IfcExtrudedAreaSolidTapered_CorrectProfileAssignment: @staticmethod def __call__(self): - assert IfcTaperedSweptAreaProfiles(getattr(self, 'SweptArea', INDETERMINATE), getattr(self, 'EndSweptArea', INDETERMINATE)) is not False + assert IfcTaperedSweptAreaProfiles(express_getattr(self, 'SweptArea', INDETERMINATE), express_getattr(self, 'EndSweptArea', INDETERMINATE)) is not False class IfcFace_HasOuterBound: SCOPE = 'entity' @@ -8268,7 +8278,7 @@ class IfcFace_HasOuterBound: @staticmethod def __call__(self): - bounds = getattr(self, 'Bounds', INDETERMINATE) + bounds = express_getattr(self, 'Bounds', INDETERMINATE) assert (sizeof([temp for temp in bounds if 'ifc4x3_rc4.ifcfaceouterbound' in typeof(temp)]) <= 1) is not False def calc_IfcFaceBasedSurfaceModel_Dim(self): @@ -8281,8 +8291,8 @@ class IfcFacilityPart_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert ((predefinedtype != getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype != getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype != getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype != getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE)) or (predefinedtype != getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE))) or ((predefinedtype == getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE)) or (predefinedtype == getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE))) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert ((predefinedtype != express_getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype != express_getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype != express_getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype != express_getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE)) or (predefinedtype != express_getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE))) or ((predefinedtype == express_getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == express_getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == express_getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE)) or (predefinedtype == express_getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE))) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFan_CorrectPredefinedType: SCOPE = 'entity' @@ -8291,8 +8301,8 @@ class IfcFan_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFan_CorrectTypeAssigned: SCOPE = 'entity' @@ -8301,8 +8311,8 @@ class IfcFan_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcfantype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcfantype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFanType_CorrectPredefinedType: SCOPE = 'entity' @@ -8311,8 +8321,8 @@ class IfcFanType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFastener_CorrectPredefinedType: SCOPE = 'entity' @@ -8321,8 +8331,8 @@ class IfcFastener_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFastener_CorrectTypeAssigned: SCOPE = 'entity' @@ -8331,8 +8341,8 @@ class IfcFastener_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcfastenertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcfastenertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFastenerType_CorrectPredefinedType: SCOPE = 'entity' @@ -8341,8 +8351,8 @@ class IfcFastenerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFeatureElement_NotContained: SCOPE = 'entity' @@ -8351,7 +8361,7 @@ class IfcFeatureElement_NotContained: @staticmethod def __call__(self): - containedinstructure = getattr(self, 'ContainedInStructure', INDETERMINATE) + containedinstructure = express_getattr(self, 'ContainedInStructure', INDETERMINATE) assert (sizeof(containedinstructure) == 0) is not False class IfcFeatureElementSubtraction_HasNoSubtraction: @@ -8361,7 +8371,7 @@ class IfcFeatureElementSubtraction_HasNoSubtraction: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'HasOpenings', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'HasOpenings', INDETERMINATE)) == 0) is not False class IfcFeatureElementSubtraction_IsNotFilling: SCOPE = 'entity' @@ -8370,7 +8380,7 @@ class IfcFeatureElementSubtraction_IsNotFilling: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'FillsVoids', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'FillsVoids', INDETERMINATE)) == 0) is not False class IfcFillAreaStyle_MaxOneColour: SCOPE = 'entity' @@ -8379,7 +8389,7 @@ class IfcFillAreaStyle_MaxOneColour: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3_rc4.ifccolour' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3_rc4.ifccolour' in typeof(style)]) <= 1) is not False class IfcFillAreaStyle_MaxOneExtHatchStyle: SCOPE = 'entity' @@ -8388,7 +8398,7 @@ class IfcFillAreaStyle_MaxOneExtHatchStyle: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3_rc4.ifcexternallydefinedhatchstyle' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3_rc4.ifcexternallydefinedhatchstyle' in typeof(style)]) <= 1) is not False class IfcFillAreaStyle_ConsistentHatchStyleDef: SCOPE = 'entity' @@ -8397,7 +8407,7 @@ class IfcFillAreaStyle_ConsistentHatchStyleDef: @staticmethod def __call__(self): - assert IfcCorrectFillAreaStyle(getattr(self, 'FillStyles', INDETERMINATE)) is not False + assert IfcCorrectFillAreaStyle(express_getattr(self, 'FillStyles', INDETERMINATE)) is not False class IfcFillAreaStyleHatching_PatternStart2D: SCOPE = 'entity' @@ -8406,8 +8416,8 @@ class IfcFillAreaStyleHatching_PatternStart2D: @staticmethod def __call__(self): - patternstart = getattr(self, 'PatternStart', INDETERMINATE) - assert (not exists(patternstart) or getattr(patternstart, 'Dim', INDETERMINATE) == 2) is not False + patternstart = express_getattr(self, 'PatternStart', INDETERMINATE) + assert (not exists(patternstart) or express_getattr(patternstart, 'Dim', INDETERMINATE) == 2) is not False class IfcFillAreaStyleHatching_RefHatchLine2D: SCOPE = 'entity' @@ -8416,8 +8426,8 @@ class IfcFillAreaStyleHatching_RefHatchLine2D: @staticmethod def __call__(self): - pointofreferencehatchline = getattr(self, 'PointOfReferenceHatchLine', INDETERMINATE) - assert (not exists(pointofreferencehatchline) or getattr(pointofreferencehatchline, 'Dim', INDETERMINATE) == 2) is not False + pointofreferencehatchline = express_getattr(self, 'PointOfReferenceHatchLine', INDETERMINATE) + assert (not exists(pointofreferencehatchline) or express_getattr(pointofreferencehatchline, 'Dim', INDETERMINATE) == 2) is not False class IfcFilter_CorrectPredefinedType: SCOPE = 'entity' @@ -8426,8 +8436,8 @@ class IfcFilter_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFilter_CorrectTypeAssigned: SCOPE = 'entity' @@ -8436,8 +8446,8 @@ class IfcFilter_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcfiltertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcfiltertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFilterType_CorrectPredefinedType: SCOPE = 'entity' @@ -8446,8 +8456,8 @@ class IfcFilterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFireSuppressionTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -8456,8 +8466,8 @@ class IfcFireSuppressionTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFireSuppressionTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -8466,8 +8476,8 @@ class IfcFireSuppressionTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcfiresuppressionterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcfiresuppressionterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFireSuppressionTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -8476,8 +8486,8 @@ class IfcFireSuppressionTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFlowInstrument_CorrectPredefinedType: SCOPE = 'entity' @@ -8486,8 +8496,8 @@ class IfcFlowInstrument_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFlowInstrument_CorrectTypeAssigned: SCOPE = 'entity' @@ -8496,8 +8506,8 @@ class IfcFlowInstrument_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcflowinstrumenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcflowinstrumenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFlowInstrumentType_CorrectPredefinedType: SCOPE = 'entity' @@ -8506,8 +8516,8 @@ class IfcFlowInstrumentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFlowMeter_CorrectPredefinedType: SCOPE = 'entity' @@ -8516,8 +8526,8 @@ class IfcFlowMeter_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFlowMeter_CorrectTypeAssigned: SCOPE = 'entity' @@ -8526,8 +8536,8 @@ class IfcFlowMeter_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcflowmetertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcflowmetertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFlowMeterType_CorrectPredefinedType: SCOPE = 'entity' @@ -8536,8 +8546,8 @@ class IfcFlowMeterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFooting_CorrectPredefinedType: SCOPE = 'entity' @@ -8546,8 +8556,8 @@ class IfcFooting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFooting_CorrectTypeAssigned: SCOPE = 'entity' @@ -8556,8 +8566,8 @@ class IfcFooting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcfootingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcfootingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFootingType_CorrectPredefinedType: SCOPE = 'entity' @@ -8566,8 +8576,8 @@ class IfcFootingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFurniture_CorrectPredefinedType: SCOPE = 'entity' @@ -8576,8 +8586,8 @@ class IfcFurniture_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFurniture_CorrectTypeAssigned: SCOPE = 'entity' @@ -8586,8 +8596,8 @@ class IfcFurniture_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcfurnituretype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcfurnituretype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFurnitureType_CorrectPredefinedType: SCOPE = 'entity' @@ -8596,8 +8606,8 @@ class IfcFurnitureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcGeographicElement_CorrectPredefinedType: SCOPE = 'entity' @@ -8606,8 +8616,8 @@ class IfcGeographicElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcGeographicElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -8616,8 +8626,8 @@ class IfcGeographicElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcgeographicelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcgeographicelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcGeographicElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -8626,8 +8636,8 @@ class IfcGeographicElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcGeometricCurveSet_NoSurfaces: SCOPE = 'entity' @@ -8636,7 +8646,7 @@ class IfcGeometricCurveSet_NoSurfaces: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Elements', INDETERMINATE) if 'ifc4x3_rc4.ifcsurface' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Elements', INDETERMINATE) if 'ifc4x3_rc4.ifcsurface' in typeof(temp)]) == 0) is not False class IfcGeometricRepresentationContext_North2D: SCOPE = 'entity' @@ -8645,8 +8655,8 @@ class IfcGeometricRepresentationContext_North2D: @staticmethod def __call__(self): - truenorth = getattr(self, 'TrueNorth', INDETERMINATE) - assert (not exists(truenorth) or hiindex(getattr(truenorth, 'DirectionRatios', INDETERMINATE)) == 2) is not False + truenorth = express_getattr(self, 'TrueNorth', INDETERMINATE) + assert (not exists(truenorth) or hiindex(express_getattr(truenorth, 'DirectionRatios', INDETERMINATE)) == 2) is not False class IfcGeometricRepresentationSubContext_ParentNoSub: SCOPE = 'entity' @@ -8655,7 +8665,7 @@ class IfcGeometricRepresentationSubContext_ParentNoSub: @staticmethod def __call__(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) assert (not 'ifc4x3_rc4.ifcgeometricrepresentationsubcontext' in typeof(parentcontext)) is not False class IfcGeometricRepresentationSubContext_UserTargetProvided: @@ -8665,9 +8675,9 @@ class IfcGeometricRepresentationSubContext_UserTargetProvided: @staticmethod def __call__(self): - targetview = getattr(self, 'TargetView', INDETERMINATE) - userdefinedtargetview = getattr(self, 'UserDefinedTargetView', INDETERMINATE) - assert (targetview != getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) or (targetview == getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedtargetview))) is not False + targetview = express_getattr(self, 'TargetView', INDETERMINATE) + userdefinedtargetview = express_getattr(self, 'UserDefinedTargetView', INDETERMINATE) + assert (targetview != express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) or (targetview == express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedtargetview))) is not False class IfcGeometricRepresentationSubContext_NoCoordOperation: SCOPE = 'entity' @@ -8676,23 +8686,23 @@ class IfcGeometricRepresentationSubContext_NoCoordOperation: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'HasCoordinateOperation', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'HasCoordinateOperation', INDETERMINATE)) == 0) is not False def calc_IfcGeometricRepresentationSubContext_WorldCoordinateSystem(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return getattr(parentcontext, 'WorldCoordinateSystem', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return express_getattr(parentcontext, 'WorldCoordinateSystem', INDETERMINATE) def calc_IfcGeometricRepresentationSubContext_CoordinateSpaceDimension(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return getattr(parentcontext, 'CoordinateSpaceDimension', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return express_getattr(parentcontext, 'CoordinateSpaceDimension', INDETERMINATE) def calc_IfcGeometricRepresentationSubContext_TrueNorth(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return nvl(getattr(parentcontext, 'TrueNorth', INDETERMINATE), IfcConvertDirectionInto2D(express_getitem(getattr(getattr(self, 'WorldCoordinateSystem', INDETERMINATE), 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return nvl(express_getattr(parentcontext, 'TrueNorth', INDETERMINATE), IfcConvertDirectionInto2D(express_getitem(express_getattr(express_getattr(self, 'WorldCoordinateSystem', INDETERMINATE), 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) def calc_IfcGeometricRepresentationSubContext_Precision(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return nvl(getattr(parentcontext, 'Precision', INDETERMINATE), 1) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return nvl(express_getattr(parentcontext, 'Precision', INDETERMINATE), 1) class IfcGeometricSet_ConsistentDim: SCOPE = 'entity' @@ -8701,12 +8711,12 @@ class IfcGeometricSet_ConsistentDim: @staticmethod def __call__(self): - elements = getattr(self, 'Elements', INDETERMINATE) - assert (sizeof([temp for temp in elements if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + elements = express_getattr(self, 'Elements', INDETERMINATE) + assert (sizeof([temp for temp in elements if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcGeometricSet_Dim(self): - elements = getattr(self, 'Elements', INDETERMINATE) - return getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + elements = express_getattr(self, 'Elements', INDETERMINATE) + return express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) def calc_IfcGradientCurve_RelativeElevation(self): return IfcGradient(self) @@ -8718,8 +8728,8 @@ class IfcGridAxis_WR1: @staticmethod def __call__(self): - axiscurve = getattr(self, 'AxisCurve', INDETERMINATE) - assert (getattr(axiscurve, 'Dim', INDETERMINATE) == 2) is not False + axiscurve = express_getattr(self, 'AxisCurve', INDETERMINATE) + assert (express_getattr(axiscurve, 'Dim', INDETERMINATE) == 2) is not False class IfcGridAxis_WR2: SCOPE = 'entity' @@ -8728,9 +8738,9 @@ class IfcGridAxis_WR2: @staticmethod def __call__(self): - partofw = getattr(self, 'PartOfW', INDETERMINATE) - partofv = getattr(self, 'PartOfV', INDETERMINATE) - partofu = getattr(self, 'PartOfU', INDETERMINATE) + partofw = express_getattr(self, 'PartOfW', INDETERMINATE) + partofv = express_getattr(self, 'PartOfV', INDETERMINATE) + partofu = express_getattr(self, 'PartOfU', INDETERMINATE) assert (sizeof(partofu) == 1) ^ (sizeof(partofv) == 1) ^ (sizeof(partofw) == 1) is not False def calc_IfcHalfSpaceSolid_Dim(self): @@ -8743,8 +8753,8 @@ class IfcHeatExchanger_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcHeatExchanger_CorrectTypeAssigned: SCOPE = 'entity' @@ -8753,8 +8763,8 @@ class IfcHeatExchanger_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcheatexchangertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcheatexchangertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcHeatExchangerType_CorrectPredefinedType: SCOPE = 'entity' @@ -8763,8 +8773,8 @@ class IfcHeatExchangerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcHumidifier_CorrectPredefinedType: SCOPE = 'entity' @@ -8773,8 +8783,8 @@ class IfcHumidifier_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcHumidifier_CorrectTypeAssigned: SCOPE = 'entity' @@ -8783,8 +8793,8 @@ class IfcHumidifier_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifchumidifiertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifchumidifiertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcHumidifierType_CorrectPredefinedType: SCOPE = 'entity' @@ -8793,8 +8803,8 @@ class IfcHumidifierType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcIShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -8803,8 +8813,8 @@ class IfcIShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (2.0 * flangethickness < overalldepth) is not False class IfcIShapeProfileDef_ValidWebThickness: @@ -8814,8 +8824,8 @@ class IfcIShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - overallwidth = getattr(self, 'OverallWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + overallwidth = express_getattr(self, 'OverallWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < overallwidth) is not False class IfcIShapeProfileDef_ValidFilletRadius: @@ -8825,11 +8835,11 @@ class IfcIShapeProfileDef_ValidFilletRadius: @staticmethod def __call__(self): - overallwidth = getattr(self, 'OverallWidth', INDETERMINATE) - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) - filletradius = getattr(self, 'FilletRadius', INDETERMINATE) + overallwidth = express_getattr(self, 'OverallWidth', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) + filletradius = express_getattr(self, 'FilletRadius', INDETERMINATE) assert (not exists(filletradius) or (filletradius <= (overallwidth - webthickness) / 2.0 and filletradius <= (overalldepth - 2.0 * flangethickness) / 2.0)) is not False class IfcImpactProtectionDevice_CorrectPredefinedType: @@ -8839,8 +8849,8 @@ class IfcImpactProtectionDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or (predefinedtype != getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype != getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype != getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE)) or ((predefinedtype == getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE)) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or (predefinedtype != express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype != express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype != express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE)) or ((predefinedtype == express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE)) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcImpactProtectionDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -8849,8 +8859,8 @@ class IfcImpactProtectionDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcimpactprotectiondevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcimpactprotectiondevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcImpactProtectionDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -8859,8 +8869,8 @@ class IfcImpactProtectionDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert ((predefinedtype != getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype != getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype != getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE)) or ((predefinedtype == getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE)) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert ((predefinedtype != express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype != express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype != express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE)) or ((predefinedtype == express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE)) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcIndexedPolyCurve_Consecutive: SCOPE = 'entity' @@ -8869,7 +8879,7 @@ class IfcIndexedPolyCurve_Consecutive: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) + segments = express_getattr(self, 'Segments', INDETERMINATE) assert (not exists(segments) or IfcConsecutiveSegments(segments)) is not False class IfcInterceptor_CorrectPredefinedType: @@ -8879,8 +8889,8 @@ class IfcInterceptor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcInterceptor_CorrectTypeAssigned: SCOPE = 'entity' @@ -8889,8 +8899,8 @@ class IfcInterceptor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcinterceptortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcinterceptortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcInterceptorType_CorrectPredefinedType: SCOPE = 'entity' @@ -8899,8 +8909,8 @@ class IfcInterceptorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcIntersectionCurve_TwoPCurves: SCOPE = 'entity' @@ -8909,7 +8919,7 @@ class IfcIntersectionCurve_TwoPCurves: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False + assert (sizeof(express_getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False class IfcIntersectionCurve_DistinctSurfaces: SCOPE = 'entity' @@ -8918,7 +8928,7 @@ class IfcIntersectionCurve_DistinctSurfaces: @staticmethod def __call__(self): - assert (IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcJunctionBox_CorrectPredefinedType: SCOPE = 'entity' @@ -8927,8 +8937,8 @@ class IfcJunctionBox_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcJunctionBox_CorrectTypeAssigned: SCOPE = 'entity' @@ -8937,8 +8947,8 @@ class IfcJunctionBox_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcjunctionboxtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcjunctionboxtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcJunctionBoxType_CorrectPredefinedType: SCOPE = 'entity' @@ -8947,8 +8957,8 @@ class IfcJunctionBoxType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLShapeProfileDef_ValidThickness: SCOPE = 'entity' @@ -8957,9 +8967,9 @@ class IfcLShapeProfileDef_ValidThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - thickness = getattr(self, 'Thickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + thickness = express_getattr(self, 'Thickness', INDETERMINATE) assert (thickness < depth and (not exists(width) or thickness < width)) is not False class IfcLaborResource_CorrectPredefinedType: @@ -8969,8 +8979,8 @@ class IfcLaborResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLaborResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -8979,8 +8989,8 @@ class IfcLaborResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcLamp_CorrectPredefinedType: SCOPE = 'entity' @@ -8989,8 +8999,8 @@ class IfcLamp_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLamp_CorrectTypeAssigned: SCOPE = 'entity' @@ -8999,8 +9009,8 @@ class IfcLamp_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifclamptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifclamptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLampType_CorrectPredefinedType: SCOPE = 'entity' @@ -9009,8 +9019,8 @@ class IfcLampType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLightFixture_CorrectPredefinedType: SCOPE = 'entity' @@ -9019,8 +9029,8 @@ class IfcLightFixture_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLightFixture_CorrectTypeAssigned: SCOPE = 'entity' @@ -9029,8 +9039,8 @@ class IfcLightFixture_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifclightfixturetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifclightfixturetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLightFixtureType_CorrectPredefinedType: SCOPE = 'entity' @@ -9039,8 +9049,8 @@ class IfcLightFixtureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLine_SameDim: SCOPE = 'entity' @@ -9049,9 +9059,9 @@ class IfcLine_SameDim: @staticmethod def __call__(self): - pnt = getattr(self, 'Pnt', INDETERMINATE) - dir = getattr(self, 'Dir', INDETERMINATE) - assert (getattr(dir, 'Dim', INDETERMINATE) == getattr(pnt, 'Dim', INDETERMINATE)) is not False + pnt = express_getattr(self, 'Pnt', INDETERMINATE) + dir = express_getattr(self, 'Dir', INDETERMINATE) + assert (express_getattr(dir, 'Dim', INDETERMINATE) == express_getattr(pnt, 'Dim', INDETERMINATE)) is not False class IfcLiquidTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -9060,8 +9070,8 @@ class IfcLiquidTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLiquidTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -9070,8 +9080,8 @@ class IfcLiquidTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcliquidterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcliquidterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLiquidTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -9080,8 +9090,8 @@ class IfcLiquidTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLocalPlacement_WR21: SCOPE = 'entity' @@ -9090,8 +9100,8 @@ class IfcLocalPlacement_WR21: @staticmethod def __call__(self): - placementrelto = getattr(self, 'PlacementRelTo', INDETERMINATE) - relativeplacement = getattr(self, 'RelativePlacement', INDETERMINATE) + placementrelto = express_getattr(self, 'PlacementRelTo', INDETERMINATE) + relativeplacement = express_getattr(self, 'RelativePlacement', INDETERMINATE) assert IfcCorrectLocalPlacement(relativeplacement, placementrelto) is not False class IfcMarineFacility_CorrectPredefinedType: @@ -9101,8 +9111,8 @@ class IfcMarineFacility_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMaterialDefinitionRepresentation_OnlyStyledRepresentations: SCOPE = 'entity' @@ -9111,7 +9121,7 @@ class IfcMaterialDefinitionRepresentation_OnlyStyledRepresentations: @staticmethod def __call__(self): - representations = getattr(self, 'Representations', INDETERMINATE) + representations = express_getattr(self, 'Representations', INDETERMINATE) assert (sizeof([temp for temp in representations if not 'ifc4x3_rc4.ifcstyledrepresentation' in typeof(temp)]) == 0) is not False class IfcMaterialLayer_NormalizedPriority: @@ -9121,7 +9131,7 @@ class IfcMaterialLayer_NormalizedPriority: @staticmethod def __call__(self): - priority = getattr(self, 'Priority', INDETERMINATE) + priority = express_getattr(self, 'Priority', INDETERMINATE) assert (not exists(priority) or 0 <= priority <= 100) is not False def calc_IfcMaterialLayerSet_TotalThickness(self): @@ -9134,7 +9144,7 @@ class IfcMaterialProfile_NormalizedPriority: @staticmethod def __call__(self): - priority = getattr(self, 'Priority', INDETERMINATE) + priority = express_getattr(self, 'Priority', INDETERMINATE) assert (not exists(priority) or 0 <= priority <= 100) is not False class IfcMechanicalFastener_CorrectPredefinedType: @@ -9144,8 +9154,8 @@ class IfcMechanicalFastener_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMechanicalFastener_CorrectTypeAssigned: SCOPE = 'entity' @@ -9154,8 +9164,8 @@ class IfcMechanicalFastener_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcmechanicalfastenertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcmechanicalfastenertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMechanicalFastenerType_CorrectPredefinedType: SCOPE = 'entity' @@ -9164,8 +9174,8 @@ class IfcMechanicalFastenerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMedicalDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -9174,8 +9184,8 @@ class IfcMedicalDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMedicalDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -9184,8 +9194,8 @@ class IfcMedicalDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcmedicaldevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcmedicaldevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMedicalDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9194,8 +9204,8 @@ class IfcMedicalDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMember_CorrectPredefinedType: SCOPE = 'entity' @@ -9204,8 +9214,8 @@ class IfcMember_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMember_CorrectTypeAssigned: SCOPE = 'entity' @@ -9214,8 +9224,8 @@ class IfcMember_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcmembertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcmembertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMemberStandardCase_HasMaterialProfileSetUsage: SCOPE = 'entity' @@ -9224,7 +9234,7 @@ class IfcMemberStandardCase_HasMaterialProfileSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc4.ifcrelassociates.relatedobjects') if 'ifc4x3_rc4.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc4.ifcmaterialprofilesetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc4.ifcrelassociates.relatedobjects') if 'ifc4x3_rc4.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc4.ifcmaterialprofilesetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcMemberType_CorrectPredefinedType: SCOPE = 'entity' @@ -9233,8 +9243,8 @@ class IfcMemberType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcMirroredProfileDef_Operator(self): return IfcCartesianTransformationOperator2D(Axis1=IfcDirection(DirectionRatios=[-1.0, 0.0]), Axis2=IfcDirection(DirectionRatios=[0.0, 1.0]), LocalOrigin=IfcCartesianPoint(Coordinates=[0.0, 0.0]), Scale=1.0) @@ -9246,8 +9256,8 @@ class IfcMobileTelecommunicationsAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMobileTelecommunicationsAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -9256,8 +9266,8 @@ class IfcMobileTelecommunicationsAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcmobiletelecommunicationsappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcmobiletelecommunicationsappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMobileTelecommunicationsApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9266,8 +9276,8 @@ class IfcMobileTelecommunicationsApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMooringDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -9276,8 +9286,8 @@ class IfcMooringDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMooringDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -9286,8 +9296,8 @@ class IfcMooringDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcmooringdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcmooringdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMooringDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9296,8 +9306,8 @@ class IfcMooringDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMotorConnection_CorrectPredefinedType: SCOPE = 'entity' @@ -9306,8 +9316,8 @@ class IfcMotorConnection_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMotorConnection_CorrectTypeAssigned: SCOPE = 'entity' @@ -9316,8 +9326,8 @@ class IfcMotorConnection_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcmotorconnectiontype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcmotorconnectiontype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMotorConnectionType_CorrectPredefinedType: SCOPE = 'entity' @@ -9326,8 +9336,8 @@ class IfcMotorConnectionType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcNamedUnit_WR1: SCOPE = 'entity' @@ -9336,7 +9346,7 @@ class IfcNamedUnit_WR1: @staticmethod def __call__(self): - assert IfcCorrectDimensions(getattr(self, 'UnitType', INDETERMINATE), getattr(self, 'Dimensions', INDETERMINATE)) is not False + assert IfcCorrectDimensions(express_getattr(self, 'UnitType', INDETERMINATE), express_getattr(self, 'Dimensions', INDETERMINATE)) is not False class IfcNavigationElement_CorrectPredefinedType: SCOPE = 'entity' @@ -9345,8 +9355,8 @@ class IfcNavigationElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcNavigationElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -9355,8 +9365,8 @@ class IfcNavigationElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcnavigationelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcnavigationelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcNavigationElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -9365,8 +9375,8 @@ class IfcNavigationElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcObject_UniquePropertySetNames: SCOPE = 'entity' @@ -9375,7 +9385,7 @@ class IfcObject_UniquePropertySetNames: @staticmethod def __call__(self): - isdefinedby = getattr(self, 'IsDefinedBy', INDETERMINATE) + isdefinedby = express_getattr(self, 'IsDefinedBy', INDETERMINATE) assert (sizeof(isdefinedby) == 0 or IfcUniqueDefinitionNames(isdefinedby)) is not False class IfcObjective_WR21: @@ -9385,8 +9395,8 @@ class IfcObjective_WR21: @staticmethod def __call__(self): - objectivequalifier = getattr(self, 'ObjectiveQualifier', INDETERMINATE) - assert (objectivequalifier != getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) or (objectivequalifier == getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedQualifier', INDETERMINATE)))) is not False + objectivequalifier = express_getattr(self, 'ObjectiveQualifier', INDETERMINATE) + assert (objectivequalifier != express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) or (objectivequalifier == express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedQualifier', INDETERMINATE)))) is not False class IfcOccupant_WR31: SCOPE = 'entity' @@ -9395,8 +9405,8 @@ class IfcOccupant_WR31: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not predefinedtype == getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not predefinedtype == express_getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcOffsetCurve2D_DimIs2D: SCOPE = 'entity' @@ -9405,8 +9415,8 @@ class IfcOffsetCurve2D_DimIs2D: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - assert (getattr(basiscurve, 'Dim', INDETERMINATE) == 2) is not False + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + assert (express_getattr(basiscurve, 'Dim', INDETERMINATE) == 2) is not False class IfcOffsetCurve3D_DimIs2D: SCOPE = 'entity' @@ -9415,8 +9425,8 @@ class IfcOffsetCurve3D_DimIs2D: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - assert (getattr(basiscurve, 'Dim', INDETERMINATE) == 3) is not False + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + assert (express_getattr(basiscurve, 'Dim', INDETERMINATE) == 3) is not False class IfcOpenCrossProfileDef_CorrectProfileType: SCOPE = 'entity' @@ -9425,7 +9435,7 @@ class IfcOpenCrossProfileDef_CorrectProfileType: @staticmethod def __call__(self): - assert (getattr(self, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False class IfcOpenCrossProfileDef_CorrespondingSlopeWidths: SCOPE = 'entity' @@ -9434,8 +9444,8 @@ class IfcOpenCrossProfileDef_CorrespondingSlopeWidths: @staticmethod def __call__(self): - widths = getattr(self, 'Widths', INDETERMINATE) - slopes = getattr(self, 'Slopes', INDETERMINATE) + widths = express_getattr(self, 'Widths', INDETERMINATE) + slopes = express_getattr(self, 'Slopes', INDETERMINATE) assert (sizeof(slopes) == sizeof(widths)) is not False class IfcOpenCrossProfileDef_CorrespondingTags: @@ -9445,8 +9455,8 @@ class IfcOpenCrossProfileDef_CorrespondingTags: @staticmethod def __call__(self): - slopes = getattr(self, 'Slopes', INDETERMINATE) - tags = getattr(self, 'Tags', INDETERMINATE) + slopes = express_getattr(self, 'Slopes', INDETERMINATE) + tags = express_getattr(self, 'Tags', INDETERMINATE) assert (not exists(tags) or sizeof(tags) == sizeof(slopes) + 1) is not False class IfcOpeningElement_CorrectPredefinedType: @@ -9456,8 +9466,8 @@ class IfcOpeningElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcOrientedEdge_EdgeElementNotOriented: SCOPE = 'entity' @@ -9466,18 +9476,18 @@ class IfcOrientedEdge_EdgeElementNotOriented: @staticmethod def __call__(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) assert (not 'ifc4x3_rc4.ifcorientededge' in typeof(edgeelement)) is not False def calc_IfcOrientedEdge_EdgeStart(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) - orientation = getattr(self, 'Orientation', INDETERMINATE) - return IfcBooleanChoose(orientation, getattr(edgeelement, 'EdgeStart', INDETERMINATE), getattr(edgeelement, 'EdgeEnd', INDETERMINATE)) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return IfcBooleanChoose(orientation, express_getattr(edgeelement, 'EdgeStart', INDETERMINATE), express_getattr(edgeelement, 'EdgeEnd', INDETERMINATE)) def calc_IfcOrientedEdge_EdgeEnd(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) - orientation = getattr(self, 'Orientation', INDETERMINATE) - return IfcBooleanChoose(orientation, getattr(edgeelement, 'EdgeEnd', INDETERMINATE), getattr(edgeelement, 'EdgeStart', INDETERMINATE)) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return IfcBooleanChoose(orientation, express_getattr(edgeelement, 'EdgeEnd', INDETERMINATE), express_getattr(edgeelement, 'EdgeStart', INDETERMINATE)) class IfcOutlet_CorrectPredefinedType: SCOPE = 'entity' @@ -9486,8 +9496,8 @@ class IfcOutlet_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcOutlet_CorrectTypeAssigned: SCOPE = 'entity' @@ -9496,8 +9506,8 @@ class IfcOutlet_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcoutlettype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcoutlettype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcOutletType_CorrectPredefinedType: SCOPE = 'entity' @@ -9506,8 +9516,8 @@ class IfcOutletType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcOwnerHistory_CorrectChangeAction: SCOPE = 'entity' @@ -9516,9 +9526,9 @@ class IfcOwnerHistory_CorrectChangeAction: @staticmethod def __call__(self): - changeaction = getattr(self, 'ChangeAction', INDETERMINATE) - lastmodifieddate = getattr(self, 'LastModifiedDate', INDETERMINATE) - assert (exists(lastmodifieddate) or (not exists(lastmodifieddate) and (not exists(changeaction))) or (not exists(lastmodifieddate) and exists(changeaction) and (changeaction == getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) or changeaction == getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE)))) is not False + changeaction = express_getattr(self, 'ChangeAction', INDETERMINATE) + lastmodifieddate = express_getattr(self, 'LastModifiedDate', INDETERMINATE) + assert (exists(lastmodifieddate) or (not exists(lastmodifieddate) and (not exists(changeaction))) or (not exists(lastmodifieddate) and exists(changeaction) and (changeaction == express_getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) or changeaction == express_getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE)))) is not False class IfcPath_IsContinuous: SCOPE = 'entity' @@ -9536,8 +9546,8 @@ class IfcPavement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPavement_CorrectTypeAssigned: SCOPE = 'entity' @@ -9546,8 +9556,8 @@ class IfcPavement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcpavementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcpavementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPavementType_CorrectPredefinedType: SCOPE = 'entity' @@ -9556,8 +9566,8 @@ class IfcPavementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPcurve_DimIs2D: SCOPE = 'entity' @@ -9566,8 +9576,8 @@ class IfcPcurve_DimIs2D: @staticmethod def __call__(self): - referencecurve = getattr(self, 'ReferenceCurve', INDETERMINATE) - assert (getattr(referencecurve, 'Dim', INDETERMINATE) == 2) is not False + referencecurve = express_getattr(self, 'ReferenceCurve', INDETERMINATE) + assert (express_getattr(referencecurve, 'Dim', INDETERMINATE) == 2) is not False class IfcPerson_IdentifiablePerson: SCOPE = 'entity' @@ -9576,9 +9586,9 @@ class IfcPerson_IdentifiablePerson: @staticmethod def __call__(self): - identification = getattr(self, 'Identification', INDETERMINATE) - familyname = getattr(self, 'FamilyName', INDETERMINATE) - givenname = getattr(self, 'GivenName', INDETERMINATE) + identification = express_getattr(self, 'Identification', INDETERMINATE) + familyname = express_getattr(self, 'FamilyName', INDETERMINATE) + givenname = express_getattr(self, 'GivenName', INDETERMINATE) assert (exists(identification) or exists(familyname) or exists(givenname)) is not False class IfcPerson_ValidSetOfNames: @@ -9588,9 +9598,9 @@ class IfcPerson_ValidSetOfNames: @staticmethod def __call__(self): - familyname = getattr(self, 'FamilyName', INDETERMINATE) - givenname = getattr(self, 'GivenName', INDETERMINATE) - middlenames = getattr(self, 'MiddleNames', INDETERMINATE) + familyname = express_getattr(self, 'FamilyName', INDETERMINATE) + givenname = express_getattr(self, 'GivenName', INDETERMINATE) + middlenames = express_getattr(self, 'MiddleNames', INDETERMINATE) assert (not exists(middlenames) or exists(familyname) or exists(givenname)) is not False class IfcPhysicalComplexQuantity_NoSelfReference: @@ -9600,7 +9610,7 @@ class IfcPhysicalComplexQuantity_NoSelfReference: @staticmethod def __call__(self): - hasquantities = getattr(self, 'HasQuantities', INDETERMINATE) + hasquantities = express_getattr(self, 'HasQuantities', INDETERMINATE) assert (sizeof([temp for temp in hasquantities if self == temp]) == 0) is not False class IfcPhysicalComplexQuantity_UniqueQuantityNames: @@ -9610,7 +9620,7 @@ class IfcPhysicalComplexQuantity_UniqueQuantityNames: @staticmethod def __call__(self): - hasquantities = getattr(self, 'HasQuantities', INDETERMINATE) + hasquantities = express_getattr(self, 'HasQuantities', INDETERMINATE) assert IfcUniqueQuantityNames(hasquantities) is not False class IfcPile_CorrectPredefinedType: @@ -9620,8 +9630,8 @@ class IfcPile_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPile_CorrectTypeAssigned: SCOPE = 'entity' @@ -9630,8 +9640,8 @@ class IfcPile_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcpiletype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcpiletype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPileType_CorrectPredefinedType: SCOPE = 'entity' @@ -9640,8 +9650,8 @@ class IfcPileType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPipeFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -9650,8 +9660,8 @@ class IfcPipeFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPipeFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -9660,8 +9670,8 @@ class IfcPipeFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcpipefittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcpipefittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPipeFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -9670,8 +9680,8 @@ class IfcPipeFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPipeSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -9680,8 +9690,8 @@ class IfcPipeSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPipeSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -9690,8 +9700,8 @@ class IfcPipeSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcpipesegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcpipesegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPipeSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -9700,8 +9710,8 @@ class IfcPipeSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPixelTexture_MinPixelInS: SCOPE = 'entity' @@ -9710,7 +9720,7 @@ class IfcPixelTexture_MinPixelInS: @staticmethod def __call__(self): - width = getattr(self, 'Width', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) assert (width >= 1) is not False class IfcPixelTexture_MinPixelInT: @@ -9720,7 +9730,7 @@ class IfcPixelTexture_MinPixelInT: @staticmethod def __call__(self): - height = getattr(self, 'Height', INDETERMINATE) + height = express_getattr(self, 'Height', INDETERMINATE) assert (height >= 1) is not False class IfcPixelTexture_NumberOfColours: @@ -9730,7 +9740,7 @@ class IfcPixelTexture_NumberOfColours: @staticmethod def __call__(self): - colourcomponents = getattr(self, 'ColourComponents', INDETERMINATE) + colourcomponents = express_getattr(self, 'ColourComponents', INDETERMINATE) assert (1 <= colourcomponents <= 4) is not False class IfcPixelTexture_SizeOfPixelList: @@ -9740,9 +9750,9 @@ class IfcPixelTexture_SizeOfPixelList: @staticmethod def __call__(self): - width = getattr(self, 'Width', INDETERMINATE) - height = getattr(self, 'Height', INDETERMINATE) - pixel = getattr(self, 'Pixel', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + height = express_getattr(self, 'Height', INDETERMINATE) + pixel = express_getattr(self, 'Pixel', INDETERMINATE) assert (sizeof(pixel) == width * height) is not False class IfcPixelTexture_PixelAsByteAndSameLength: @@ -9752,12 +9762,12 @@ class IfcPixelTexture_PixelAsByteAndSameLength: @staticmethod def __call__(self): - pixel = getattr(self, 'Pixel', INDETERMINATE) + pixel = express_getattr(self, 'Pixel', INDETERMINATE) assert (sizeof([temp for temp in pixel if blength(temp) % 8 == 0 and blength(temp) == blength(express_getitem(pixel, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == sizeof(pixel)) is not False def calc_IfcPlacement_Dim(self): - location = getattr(self, 'Location', INDETERMINATE) - return getattr(location, 'Dim', INDETERMINATE) + location = express_getattr(self, 'Location', INDETERMINATE) + return express_getattr(location, 'Dim', INDETERMINATE) class IfcPlate_CorrectPredefinedType: SCOPE = 'entity' @@ -9766,8 +9776,8 @@ class IfcPlate_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPlate_CorrectTypeAssigned: SCOPE = 'entity' @@ -9776,8 +9786,8 @@ class IfcPlate_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcplatetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcplatetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPlateStandardCase_HasMaterialLayerSetUsage: SCOPE = 'entity' @@ -9786,7 +9796,7 @@ class IfcPlateStandardCase_HasMaterialLayerSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc4.ifcrelassociates.relatedobjects') if 'ifc4x3_rc4.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc4.ifcmateriallayersetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc4.ifcrelassociates.relatedobjects') if 'ifc4x3_rc4.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc4.ifcmateriallayersetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcPlateType_CorrectPredefinedType: SCOPE = 'entity' @@ -9795,20 +9805,20 @@ class IfcPlateType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcPointByDistanceExpression_Dim(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - return getattr(basiscurve, 'Dim', INDETERMINATE) + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + return express_getattr(basiscurve, 'Dim', INDETERMINATE) def calc_IfcPointOnCurve_Dim(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - return getattr(basiscurve, 'Dim', INDETERMINATE) + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + return express_getattr(basiscurve, 'Dim', INDETERMINATE) def calc_IfcPointOnSurface_Dim(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) - return getattr(basissurface, 'Dim', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) + return express_getattr(basissurface, 'Dim', INDETERMINATE) class IfcPolyLoop_AllPointsSameDim: SCOPE = 'entity' @@ -9817,8 +9827,8 @@ class IfcPolyLoop_AllPointsSameDim: @staticmethod def __call__(self): - polygon = getattr(self, 'Polygon', INDETERMINATE) - assert (sizeof([temp for temp in polygon if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(polygon, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + polygon = express_getattr(self, 'Polygon', INDETERMINATE) + assert (sizeof([temp for temp in polygon if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(polygon, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False class IfcPolygonalBoundedHalfSpace_BoundaryDim: SCOPE = 'entity' @@ -9827,8 +9837,8 @@ class IfcPolygonalBoundedHalfSpace_BoundaryDim: @staticmethod def __call__(self): - polygonalboundary = getattr(self, 'PolygonalBoundary', INDETERMINATE) - assert (getattr(polygonalboundary, 'Dim', INDETERMINATE) == 2) is not False + polygonalboundary = express_getattr(self, 'PolygonalBoundary', INDETERMINATE) + assert (express_getattr(polygonalboundary, 'Dim', INDETERMINATE) == 2) is not False class IfcPolygonalBoundedHalfSpace_BoundaryType: SCOPE = 'entity' @@ -9837,7 +9847,7 @@ class IfcPolygonalBoundedHalfSpace_BoundaryType: @staticmethod def __call__(self): - polygonalboundary = getattr(self, 'PolygonalBoundary', INDETERMINATE) + polygonalboundary = express_getattr(self, 'PolygonalBoundary', INDETERMINATE) assert (sizeof(typeof(polygonalboundary) * ['ifc4x3_rc4.ifcpolyline', 'ifc4x3_rc4.ifccompositecurve']) == 1) is not False class IfcPolyline_SameDim: @@ -9847,8 +9857,8 @@ class IfcPolyline_SameDim: @staticmethod def __call__(self): - points = getattr(self, 'Points', INDETERMINATE) - assert (sizeof([temp for temp in points if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(points, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + points = express_getattr(self, 'Points', INDETERMINATE) + assert (sizeof([temp for temp in points if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(points, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False class IfcPolynomialCurve_ValidCoefficients: SCOPE = 'entity' @@ -9857,9 +9867,9 @@ class IfcPolynomialCurve_ValidCoefficients: @staticmethod def __call__(self): - coefficientsx = getattr(self, 'CoefficientsX', INDETERMINATE) - coefficientsy = getattr(self, 'CoefficientsY', INDETERMINATE) - coefficientsz = getattr(self, 'CoefficientsZ', INDETERMINATE) + coefficientsx = express_getattr(self, 'CoefficientsX', INDETERMINATE) + coefficientsy = express_getattr(self, 'CoefficientsY', INDETERMINATE) + coefficientsz = express_getattr(self, 'CoefficientsZ', INDETERMINATE) assert (exists(coefficientsx) and exists(coefficientsy) or (exists(coefficientsx) and exists(coefficientsz)) or (exists(coefficientsy) and exists(coefficientsz)) or (exists(coefficientsx) and exists(coefficientsy) and exists(coefficientsz))) is not False class IfcPolynomialCurve_CorrectPositionDim: @@ -9869,9 +9879,9 @@ class IfcPolynomialCurve_CorrectPositionDim: @staticmethod def __call__(self): - position = getattr(self, 'Position', INDETERMINATE) - coefficientsz = getattr(self, 'CoefficientsZ', INDETERMINATE) - assert (getattr(position, 'Dim', INDETERMINATE) == 2 and (not exists(coefficientsz)) or getattr(position, 'Dim', INDETERMINATE) == 3) is not False + position = express_getattr(self, 'Position', INDETERMINATE) + coefficientsz = express_getattr(self, 'CoefficientsZ', INDETERMINATE) + assert (express_getattr(position, 'Dim', INDETERMINATE) == 2 and (not exists(coefficientsz)) or express_getattr(position, 'Dim', INDETERMINATE) == 3) is not False class IfcPositioningElement_HasPlacement: SCOPE = 'entity' @@ -9880,7 +9890,7 @@ class IfcPositioningElement_HasPlacement: @staticmethod def __call__(self): - assert exists(getattr(self, 'ObjectPlacement', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'ObjectPlacement', INDETERMINATE)) is not False class IfcPostalAddress_WR1: SCOPE = 'entity' @@ -9889,13 +9899,13 @@ class IfcPostalAddress_WR1: @staticmethod def __call__(self): - internallocation = getattr(self, 'InternalLocation', INDETERMINATE) - addresslines = getattr(self, 'AddressLines', INDETERMINATE) - postalbox = getattr(self, 'PostalBox', INDETERMINATE) - town = getattr(self, 'Town', INDETERMINATE) - region = getattr(self, 'Region', INDETERMINATE) - postalcode = getattr(self, 'PostalCode', INDETERMINATE) - country = getattr(self, 'Country', INDETERMINATE) + internallocation = express_getattr(self, 'InternalLocation', INDETERMINATE) + addresslines = express_getattr(self, 'AddressLines', INDETERMINATE) + postalbox = express_getattr(self, 'PostalBox', INDETERMINATE) + town = express_getattr(self, 'Town', INDETERMINATE) + region = express_getattr(self, 'Region', INDETERMINATE) + postalcode = express_getattr(self, 'PostalCode', INDETERMINATE) + country = express_getattr(self, 'Country', INDETERMINATE) assert (exists(internallocation) or exists(addresslines) or exists(postalbox) or exists(postalcode) or exists(town) or exists(region) or exists(country)) is not False class IfcPresentationLayerAssignment_ApplicableItems: @@ -9905,7 +9915,7 @@ class IfcPresentationLayerAssignment_ApplicableItems: @staticmethod def __call__(self): - assigneditems = getattr(self, 'AssignedItems', INDETERMINATE) + assigneditems = express_getattr(self, 'AssignedItems', INDETERMINATE) assert (sizeof([temp for temp in assigneditems if sizeof(typeof(temp) * ['ifc4x3_rc4.ifcshaperepresentation', 'ifc4x3_rc4.ifcgeometricrepresentationitem', 'ifc4x3_rc4.ifcmappeditem']) == 1]) == sizeof(assigneditems)) is not False class IfcPresentationLayerWithStyle_ApplicableOnlyToItems: @@ -9915,7 +9925,7 @@ class IfcPresentationLayerWithStyle_ApplicableOnlyToItems: @staticmethod def __call__(self): - assigneditems = getattr(self, 'AssignedItems', INDETERMINATE) + assigneditems = express_getattr(self, 'AssignedItems', INDETERMINATE) assert (sizeof([temp for temp in assigneditems if sizeof(typeof(temp) * ['ifc4x3_rc4.ifcgeometricrepresentationitem', 'ifc4x3_rc4.ifcmappeditem']) >= 1]) == sizeof(assigneditems)) is not False class IfcProcedure_HasName: @@ -9925,7 +9935,7 @@ class IfcProcedure_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcProcedure_CorrectPredefinedType: SCOPE = 'entity' @@ -9934,8 +9944,8 @@ class IfcProcedure_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProcedureType_CorrectPredefinedType: SCOPE = 'entity' @@ -9944,8 +9954,8 @@ class IfcProcedureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcProduct_PlacementForShapeRepresentation: SCOPE = 'entity' @@ -9954,9 +9964,9 @@ class IfcProduct_PlacementForShapeRepresentation: @staticmethod def __call__(self): - objectplacement = getattr(self, 'ObjectPlacement', INDETERMINATE) - representation = getattr(self, 'Representation', INDETERMINATE) - assert (exists(representation) and exists(objectplacement) or (exists(representation) and sizeof([temp for temp in getattr(representation, 'Representations', INDETERMINATE) if 'ifc4x3_rc4.ifcshaperepresentation' in typeof(temp)]) == 0) or (not exists(representation))) is not False + objectplacement = express_getattr(self, 'ObjectPlacement', INDETERMINATE) + representation = express_getattr(self, 'Representation', INDETERMINATE) + assert (exists(representation) and exists(objectplacement) or (exists(representation) and sizeof([temp for temp in express_getattr(representation, 'Representations', INDETERMINATE) if 'ifc4x3_rc4.ifcshaperepresentation' in typeof(temp)]) == 0) or (not exists(representation))) is not False class IfcProductDefinitionShape_OnlyShapeModel: SCOPE = 'entity' @@ -9965,7 +9975,7 @@ class IfcProductDefinitionShape_OnlyShapeModel: @staticmethod def __call__(self): - representations = getattr(self, 'Representations', INDETERMINATE) + representations = express_getattr(self, 'Representations', INDETERMINATE) assert (sizeof([temp for temp in representations if not 'ifc4x3_rc4.ifcshapemodel' in typeof(temp)]) == 0) is not False class IfcProject_HasName: @@ -9975,7 +9985,7 @@ class IfcProject_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcProject_CorrectContext: SCOPE = 'entity' @@ -9984,7 +9994,7 @@ class IfcProject_CorrectContext: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'RepresentationContexts', INDETERMINATE)) or sizeof([temp for temp in getattr(self, 'RepresentationContexts', INDETERMINATE) if 'ifc4x3_rc4.ifcgeometricrepresentationsubcontext' in typeof(temp)]) == 0) is not False + assert (not exists(express_getattr(self, 'RepresentationContexts', INDETERMINATE)) or sizeof([temp for temp in express_getattr(self, 'RepresentationContexts', INDETERMINATE) if 'ifc4x3_rc4.ifcgeometricrepresentationsubcontext' in typeof(temp)]) == 0) is not False class IfcProject_NoDecomposition: SCOPE = 'entity' @@ -9993,7 +10003,7 @@ class IfcProject_NoDecomposition: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'Decomposes', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'Decomposes', INDETERMINATE)) == 0) is not False class IfcProjectedCRS_IsLengthUnit: SCOPE = 'entity' @@ -10002,8 +10012,8 @@ class IfcProjectedCRS_IsLengthUnit: @staticmethod def __call__(self): - mapunit = getattr(self, 'MapUnit', INDETERMINATE) - assert (not exists(mapunit) or getattr(mapunit, 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False + mapunit = express_getattr(self, 'MapUnit', INDETERMINATE) + assert (not exists(mapunit) or express_getattr(mapunit, 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False class IfcProjectionElement_CorrectPredefinedType: SCOPE = 'entity' @@ -10012,8 +10022,8 @@ class IfcProjectionElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPropertyBoundedValue_SameUnitUpperLower: SCOPE = 'entity' @@ -10022,8 +10032,8 @@ class IfcPropertyBoundedValue_SameUnitUpperLower: @staticmethod def __call__(self): - upperboundvalue = getattr(self, 'UpperBoundValue', INDETERMINATE) - lowerboundvalue = getattr(self, 'LowerBoundValue', INDETERMINATE) + upperboundvalue = express_getattr(self, 'UpperBoundValue', INDETERMINATE) + lowerboundvalue = express_getattr(self, 'LowerBoundValue', INDETERMINATE) assert (not exists(upperboundvalue) or not exists(lowerboundvalue) or typeof(upperboundvalue) == typeof(lowerboundvalue)) is not False class IfcPropertyBoundedValue_SameUnitUpperSet: @@ -10033,8 +10043,8 @@ class IfcPropertyBoundedValue_SameUnitUpperSet: @staticmethod def __call__(self): - upperboundvalue = getattr(self, 'UpperBoundValue', INDETERMINATE) - setpointvalue = getattr(self, 'SetPointValue', INDETERMINATE) + upperboundvalue = express_getattr(self, 'UpperBoundValue', INDETERMINATE) + setpointvalue = express_getattr(self, 'SetPointValue', INDETERMINATE) assert (not exists(upperboundvalue) or not exists(setpointvalue) or typeof(upperboundvalue) == typeof(setpointvalue)) is not False class IfcPropertyBoundedValue_SameUnitLowerSet: @@ -10044,8 +10054,8 @@ class IfcPropertyBoundedValue_SameUnitLowerSet: @staticmethod def __call__(self): - lowerboundvalue = getattr(self, 'LowerBoundValue', INDETERMINATE) - setpointvalue = getattr(self, 'SetPointValue', INDETERMINATE) + lowerboundvalue = express_getattr(self, 'LowerBoundValue', INDETERMINATE) + setpointvalue = express_getattr(self, 'SetPointValue', INDETERMINATE) assert (not exists(lowerboundvalue) or not exists(setpointvalue) or typeof(lowerboundvalue) == typeof(setpointvalue)) is not False class IfcPropertyDependencyRelationship_NoSelfReference: @@ -10055,8 +10065,8 @@ class IfcPropertyDependencyRelationship_NoSelfReference: @staticmethod def __call__(self): - dependingproperty = getattr(self, 'DependingProperty', INDETERMINATE) - dependantproperty = getattr(self, 'DependantProperty', INDETERMINATE) + dependingproperty = express_getattr(self, 'DependingProperty', INDETERMINATE) + dependantproperty = express_getattr(self, 'DependantProperty', INDETERMINATE) assert (dependingproperty != dependantproperty) is not False class IfcPropertyEnumeratedValue_WR21: @@ -10066,9 +10076,9 @@ class IfcPropertyEnumeratedValue_WR21: @staticmethod def __call__(self): - enumerationvalues = getattr(self, 'EnumerationValues', INDETERMINATE) - enumerationreference = getattr(self, 'EnumerationReference', INDETERMINATE) - assert (not exists(enumerationreference) or not exists(enumerationvalues) or sizeof([temp for temp in enumerationvalues if temp in getattr(enumerationreference, 'EnumerationValues', INDETERMINATE)]) == sizeof(enumerationvalues)) is not False + enumerationvalues = express_getattr(self, 'EnumerationValues', INDETERMINATE) + enumerationreference = express_getattr(self, 'EnumerationReference', INDETERMINATE) + assert (not exists(enumerationreference) or not exists(enumerationvalues) or sizeof([temp for temp in enumerationvalues if temp in express_getattr(enumerationreference, 'EnumerationValues', INDETERMINATE)]) == sizeof(enumerationvalues)) is not False class IfcPropertyEnumeration_WR01: SCOPE = 'entity' @@ -10077,7 +10087,7 @@ class IfcPropertyEnumeration_WR01: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'EnumerationValues', INDETERMINATE) if not typeof(express_getitem(getattr(self, 'EnumerationValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'EnumerationValues', INDETERMINATE) if not typeof(express_getitem(express_getattr(self, 'EnumerationValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False class IfcPropertyListValue_WR31: SCOPE = 'entity' @@ -10086,7 +10096,7 @@ class IfcPropertyListValue_WR31: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'ListValues', INDETERMINATE) if not typeof(express_getitem(getattr(self, 'ListValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'ListValues', INDETERMINATE) if not typeof(express_getitem(express_getattr(self, 'ListValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False class IfcPropertySet_ExistsName: SCOPE = 'entity' @@ -10095,7 +10105,7 @@ class IfcPropertySet_ExistsName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPropertySet_UniquePropertyNames: SCOPE = 'entity' @@ -10104,7 +10114,7 @@ class IfcPropertySet_UniquePropertyNames: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert IfcUniquePropertyName(hasproperties) is not False class IfcPropertySetTemplate_ExistsName: @@ -10114,7 +10124,7 @@ class IfcPropertySetTemplate_ExistsName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPropertySetTemplate_UniquePropertyNames: SCOPE = 'entity' @@ -10123,7 +10133,7 @@ class IfcPropertySetTemplate_UniquePropertyNames: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert IfcUniquePropertyTemplateNames(haspropertytemplates) is not False class IfcPropertyTableValue_WR21: @@ -10133,8 +10143,8 @@ class IfcPropertyTableValue_WR21: @staticmethod def __call__(self): - definingvalues = getattr(self, 'DefiningValues', INDETERMINATE) - definedvalues = getattr(self, 'DefinedValues', INDETERMINATE) + definingvalues = express_getattr(self, 'DefiningValues', INDETERMINATE) + definedvalues = express_getattr(self, 'DefinedValues', INDETERMINATE) assert (not exists(definingvalues) and (not exists(definedvalues)) or sizeof(definingvalues) == sizeof(definedvalues)) is not False class IfcPropertyTableValue_WR22: @@ -10144,8 +10154,8 @@ class IfcPropertyTableValue_WR22: @staticmethod def __call__(self): - definingvalues = getattr(self, 'DefiningValues', INDETERMINATE) - assert (not exists(definingvalues) or sizeof([temp for temp in getattr(self, 'DefiningValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(getattr(self, 'DefiningValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False + definingvalues = express_getattr(self, 'DefiningValues', INDETERMINATE) + assert (not exists(definingvalues) or sizeof([temp for temp in express_getattr(self, 'DefiningValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(express_getattr(self, 'DefiningValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False class IfcPropertyTableValue_WR23: SCOPE = 'entity' @@ -10154,8 +10164,8 @@ class IfcPropertyTableValue_WR23: @staticmethod def __call__(self): - definedvalues = getattr(self, 'DefinedValues', INDETERMINATE) - assert (not exists(definedvalues) or sizeof([temp for temp in getattr(self, 'DefinedValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(getattr(self, 'DefinedValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False + definedvalues = express_getattr(self, 'DefinedValues', INDETERMINATE) + assert (not exists(definedvalues) or sizeof([temp for temp in express_getattr(self, 'DefinedValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(express_getattr(self, 'DefinedValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False class IfcProtectiveDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -10164,8 +10174,8 @@ class IfcProtectiveDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProtectiveDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -10174,8 +10184,8 @@ class IfcProtectiveDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcprotectivedevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcprotectivedevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcProtectiveDeviceTrippingUnit_CorrectPredefinedType: SCOPE = 'entity' @@ -10184,8 +10194,8 @@ class IfcProtectiveDeviceTrippingUnit_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProtectiveDeviceTrippingUnit_CorrectTypeAssigned: SCOPE = 'entity' @@ -10194,8 +10204,8 @@ class IfcProtectiveDeviceTrippingUnit_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcprotectivedevicetrippingunittype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcprotectivedevicetrippingunittype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcProtectiveDeviceTrippingUnitType_CorrectPredefinedType: SCOPE = 'entity' @@ -10204,8 +10214,8 @@ class IfcProtectiveDeviceTrippingUnitType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcProtectiveDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -10214,8 +10224,8 @@ class IfcProtectiveDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcProxy_WR1: SCOPE = 'entity' @@ -10224,7 +10234,7 @@ class IfcProxy_WR1: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPump_CorrectPredefinedType: SCOPE = 'entity' @@ -10233,8 +10243,8 @@ class IfcPump_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPump_CorrectTypeAssigned: SCOPE = 'entity' @@ -10243,8 +10253,8 @@ class IfcPump_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcpumptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcpumptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPumpType_CorrectPredefinedType: SCOPE = 'entity' @@ -10253,8 +10263,8 @@ class IfcPumpType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcQuantityArea_WR21: SCOPE = 'entity' @@ -10263,7 +10273,7 @@ class IfcQuantityArea_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE)) is not False class IfcQuantityArea_WR22: SCOPE = 'entity' @@ -10272,7 +10282,7 @@ class IfcQuantityArea_WR22: @staticmethod def __call__(self): - areavalue = getattr(self, 'AreaValue', INDETERMINATE) + areavalue = express_getattr(self, 'AreaValue', INDETERMINATE) assert (areavalue >= 0.0) is not False class IfcQuantityCount_WR21: @@ -10282,7 +10292,7 @@ class IfcQuantityCount_WR21: @staticmethod def __call__(self): - countvalue = getattr(self, 'CountValue', INDETERMINATE) + countvalue = express_getattr(self, 'CountValue', INDETERMINATE) assert (countvalue >= 0.0) is not False class IfcQuantityLength_WR21: @@ -10292,7 +10302,7 @@ class IfcQuantityLength_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False class IfcQuantityLength_WR22: SCOPE = 'entity' @@ -10301,7 +10311,7 @@ class IfcQuantityLength_WR22: @staticmethod def __call__(self): - lengthvalue = getattr(self, 'LengthValue', INDETERMINATE) + lengthvalue = express_getattr(self, 'LengthValue', INDETERMINATE) assert (lengthvalue >= 0.0) is not False class IfcQuantityTime_WR21: @@ -10311,7 +10321,7 @@ class IfcQuantityTime_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE)) is not False class IfcQuantityTime_WR22: SCOPE = 'entity' @@ -10320,7 +10330,7 @@ class IfcQuantityTime_WR22: @staticmethod def __call__(self): - timevalue = getattr(self, 'TimeValue', INDETERMINATE) + timevalue = express_getattr(self, 'TimeValue', INDETERMINATE) assert (timevalue >= 0.0) is not False class IfcQuantityVolume_WR21: @@ -10330,7 +10340,7 @@ class IfcQuantityVolume_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE)) is not False class IfcQuantityVolume_WR22: SCOPE = 'entity' @@ -10339,7 +10349,7 @@ class IfcQuantityVolume_WR22: @staticmethod def __call__(self): - volumevalue = getattr(self, 'VolumeValue', INDETERMINATE) + volumevalue = express_getattr(self, 'VolumeValue', INDETERMINATE) assert (volumevalue >= 0.0) is not False class IfcQuantityWeight_WR21: @@ -10349,7 +10359,7 @@ class IfcQuantityWeight_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE)) is not False class IfcQuantityWeight_WR22: SCOPE = 'entity' @@ -10358,7 +10368,7 @@ class IfcQuantityWeight_WR22: @staticmethod def __call__(self): - weightvalue = getattr(self, 'WeightValue', INDETERMINATE) + weightvalue = express_getattr(self, 'WeightValue', INDETERMINATE) assert (weightvalue >= 0.0) is not False class IfcRail_CorrectPredefinedType: @@ -10368,8 +10378,8 @@ class IfcRail_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRail_CorrectTypeAssigned: SCOPE = 'entity' @@ -10378,8 +10388,8 @@ class IfcRail_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcrailtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcrailtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRailType_CorrectPredefinedType: SCOPE = 'entity' @@ -10388,8 +10398,8 @@ class IfcRailType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRailing_CorrectPredefinedType: SCOPE = 'entity' @@ -10398,8 +10408,8 @@ class IfcRailing_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRailing_CorrectTypeAssigned: SCOPE = 'entity' @@ -10408,8 +10418,8 @@ class IfcRailing_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcrailingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcrailingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRailingType_CorrectPredefinedType: SCOPE = 'entity' @@ -10418,8 +10428,8 @@ class IfcRailingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRailway_HasObjectType: SCOPE = 'entity' @@ -10428,8 +10438,8 @@ class IfcRailway_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcRamp_CorrectPredefinedType: SCOPE = 'entity' @@ -10438,8 +10448,8 @@ class IfcRamp_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRamp_CorrectTypeAssigned: SCOPE = 'entity' @@ -10448,8 +10458,8 @@ class IfcRamp_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcramptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcramptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRampFlight_CorrectPredefinedType: SCOPE = 'entity' @@ -10458,8 +10468,8 @@ class IfcRampFlight_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRampFlight_CorrectTypeAssigned: SCOPE = 'entity' @@ -10468,8 +10478,8 @@ class IfcRampFlight_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcrampflighttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcrampflighttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRampFlightType_CorrectPredefinedType: SCOPE = 'entity' @@ -10478,8 +10488,8 @@ class IfcRampFlightType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRampType_CorrectPredefinedType: SCOPE = 'entity' @@ -10488,8 +10498,8 @@ class IfcRampType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRationalBSplineCurveWithKnots_SameNumOfWeightsAndPoints: SCOPE = 'entity' @@ -10498,8 +10508,8 @@ class IfcRationalBSplineCurveWithKnots_SameNumOfWeightsAndPoints: @staticmethod def __call__(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - assert (sizeof(weightsdata) == sizeof(getattr(self, 'ControlPointsList', INDETERMINATE))) is not False + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + assert (sizeof(weightsdata) == sizeof(express_getattr(self, 'ControlPointsList', INDETERMINATE))) is not False class IfcRationalBSplineCurveWithKnots_WeightsGreaterZero: SCOPE = 'entity' @@ -10511,8 +10521,8 @@ class IfcRationalBSplineCurveWithKnots_WeightsGreaterZero: assert IfcCurveWeightsPositive(self) is not False def calc_IfcRationalBSplineCurveWithKnots_Weights(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - return IfcListToArray(weightsdata, 0, getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE)) + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + return IfcListToArray(weightsdata, 0, express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE)) class IfcRationalBSplineSurfaceWithKnots_CorrespondingWeightsDataLists: SCOPE = 'entity' @@ -10521,8 +10531,8 @@ class IfcRationalBSplineSurfaceWithKnots_CorrespondingWeightsDataLists: @staticmethod def __call__(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - assert (sizeof(weightsdata) == sizeof(getattr(self, 'ControlPointsList', INDETERMINATE)) and sizeof(express_getitem(weightsdata, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == sizeof(express_getitem(getattr(self, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + assert (sizeof(weightsdata) == sizeof(express_getattr(self, 'ControlPointsList', INDETERMINATE)) and sizeof(express_getitem(weightsdata, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == sizeof(express_getitem(express_getattr(self, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcRationalBSplineSurfaceWithKnots_WeightValuesGreaterZero: SCOPE = 'entity' @@ -10534,9 +10544,9 @@ class IfcRationalBSplineSurfaceWithKnots_WeightValuesGreaterZero: assert IfcSurfaceWeightsPositive(self) is not False def calc_IfcRationalBSplineSurfaceWithKnots_Weights(self): - uupper = getattr(self, 'UUpper', INDETERMINATE) - vupper = getattr(self, 'VUpper', INDETERMINATE) - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) + uupper = express_getattr(self, 'UUpper', INDETERMINATE) + vupper = express_getattr(self, 'VUpper', INDETERMINATE) + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) return IfcMakeArrayOfArray(weightsdata, 0, uupper, 0, vupper) class IfcRectangleHollowProfileDef_ValidWallThickness: @@ -10546,8 +10556,8 @@ class IfcRectangleHollowProfileDef_ValidWallThickness: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - assert (wallthickness < getattr(self, 'XDim', INDETERMINATE) / 2.0 and wallthickness < getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + assert (wallthickness < express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and wallthickness < express_getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False class IfcRectangleHollowProfileDef_ValidInnerRadius: SCOPE = 'entity' @@ -10556,9 +10566,9 @@ class IfcRectangleHollowProfileDef_ValidInnerRadius: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - innerfilletradius = getattr(self, 'InnerFilletRadius', INDETERMINATE) - assert (not exists(innerfilletradius) or (innerfilletradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 - wallthickness and innerfilletradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0 - wallthickness)) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + innerfilletradius = express_getattr(self, 'InnerFilletRadius', INDETERMINATE) + assert (not exists(innerfilletradius) or (innerfilletradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 - wallthickness and innerfilletradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0 - wallthickness)) is not False class IfcRectangleHollowProfileDef_ValidOuterRadius: SCOPE = 'entity' @@ -10567,8 +10577,8 @@ class IfcRectangleHollowProfileDef_ValidOuterRadius: @staticmethod def __call__(self): - outerfilletradius = getattr(self, 'OuterFilletRadius', INDETERMINATE) - assert (not exists(outerfilletradius) or (outerfilletradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 and outerfilletradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0)) is not False + outerfilletradius = express_getattr(self, 'OuterFilletRadius', INDETERMINATE) + assert (not exists(outerfilletradius) or (outerfilletradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and outerfilletradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0)) is not False class IfcRectangularTrimmedSurface_U1AndU2Different: SCOPE = 'entity' @@ -10577,8 +10587,8 @@ class IfcRectangularTrimmedSurface_U1AndU2Different: @staticmethod def __call__(self): - u1 = getattr(self, 'U1', INDETERMINATE) - u2 = getattr(self, 'U2', INDETERMINATE) + u1 = express_getattr(self, 'U1', INDETERMINATE) + u2 = express_getattr(self, 'U2', INDETERMINATE) assert (u1 != u2) is not False class IfcRectangularTrimmedSurface_V1AndV2Different: @@ -10588,8 +10598,8 @@ class IfcRectangularTrimmedSurface_V1AndV2Different: @staticmethod def __call__(self): - v1 = getattr(self, 'V1', INDETERMINATE) - v2 = getattr(self, 'V2', INDETERMINATE) + v1 = express_getattr(self, 'V1', INDETERMINATE) + v2 = express_getattr(self, 'V2', INDETERMINATE) assert (v1 != v2) is not False class IfcRectangularTrimmedSurface_UsenseCompatible: @@ -10599,10 +10609,10 @@ class IfcRectangularTrimmedSurface_UsenseCompatible: @staticmethod def __call__(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) - u1 = getattr(self, 'U1', INDETERMINATE) - u2 = getattr(self, 'U2', INDETERMINATE) - usense = getattr(self, 'Usense', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) + u1 = express_getattr(self, 'U1', INDETERMINATE) + u2 = express_getattr(self, 'U2', INDETERMINATE) + usense = express_getattr(self, 'Usense', INDETERMINATE) assert ('ifc4x3_rc4.ifcelementarysurface' in typeof(basissurface) and (not 'ifc4x3_rc4.ifcplane' in typeof(basissurface)) or 'ifc4x3_rc4.ifcsurfaceofrevolution' in typeof(basissurface) or usense == (u2 > u1)) is not False class IfcRectangularTrimmedSurface_VsenseCompatible: @@ -10612,9 +10622,9 @@ class IfcRectangularTrimmedSurface_VsenseCompatible: @staticmethod def __call__(self): - v1 = getattr(self, 'V1', INDETERMINATE) - v2 = getattr(self, 'V2', INDETERMINATE) - vsense = getattr(self, 'Vsense', INDETERMINATE) + v1 = express_getattr(self, 'V1', INDETERMINATE) + v2 = express_getattr(self, 'V2', INDETERMINATE) + vsense = express_getattr(self, 'Vsense', INDETERMINATE) assert (vsense == (v2 > v1)) is not False class IfcReinforcedSoil_CorrectPredefinedType: @@ -10624,8 +10634,8 @@ class IfcReinforcedSoil_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingBar_CorrectPredefinedType: SCOPE = 'entity' @@ -10634,8 +10644,8 @@ class IfcReinforcingBar_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingBar_CorrectTypeAssigned: SCOPE = 'entity' @@ -10644,8 +10654,8 @@ class IfcReinforcingBar_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcreinforcingbartype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcreinforcingbartype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcReinforcingBarType_CorrectPredefinedType: SCOPE = 'entity' @@ -10654,8 +10664,8 @@ class IfcReinforcingBarType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcReinforcingBarType_BendingShapeCodeProvided: SCOPE = 'entity' @@ -10664,8 +10674,8 @@ class IfcReinforcingBarType_BendingShapeCodeProvided: @staticmethod def __call__(self): - bendingshapecode = getattr(self, 'BendingShapeCode', INDETERMINATE) - bendingparameters = getattr(self, 'BendingParameters', INDETERMINATE) + bendingshapecode = express_getattr(self, 'BendingShapeCode', INDETERMINATE) + bendingparameters = express_getattr(self, 'BendingParameters', INDETERMINATE) assert (not exists(bendingparameters) or exists(bendingshapecode)) is not False class IfcReinforcingMesh_CorrectPredefinedType: @@ -10675,8 +10685,8 @@ class IfcReinforcingMesh_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingMesh_CorrectTypeAssigned: SCOPE = 'entity' @@ -10685,8 +10695,8 @@ class IfcReinforcingMesh_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcreinforcingmeshtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcreinforcingmeshtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcReinforcingMeshType_CorrectPredefinedType: SCOPE = 'entity' @@ -10695,8 +10705,8 @@ class IfcReinforcingMeshType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcReinforcingMeshType_BendingShapeCodeProvided: SCOPE = 'entity' @@ -10705,8 +10715,8 @@ class IfcReinforcingMeshType_BendingShapeCodeProvided: @staticmethod def __call__(self): - bendingshapecode = getattr(self, 'BendingShapeCode', INDETERMINATE) - bendingparameters = getattr(self, 'BendingParameters', INDETERMINATE) + bendingshapecode = express_getattr(self, 'BendingShapeCode', INDETERMINATE) + bendingparameters = express_getattr(self, 'BendingParameters', INDETERMINATE) assert (not exists(bendingparameters) or exists(bendingshapecode)) is not False class IfcRelAggregates_NoSelfReference: @@ -10716,8 +10726,8 @@ class IfcRelAggregates_NoSelfReference: @staticmethod def __call__(self): - relatingobject = getattr(self, 'RelatingObject', INDETERMINATE) - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) + relatingobject = express_getattr(self, 'RelatingObject', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) assert (sizeof([temp for temp in relatedobjects if relatingobject == temp]) == 0) is not False class IfcRelAssigns_WR1: @@ -10727,8 +10737,8 @@ class IfcRelAssigns_WR1: @staticmethod def __call__(self): - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) - relatedobjectstype = getattr(self, 'RelatedObjectsType', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) + relatedobjectstype = express_getattr(self, 'RelatedObjectsType', INDETERMINATE) assert IfcCorrectObjectAssignment(relatedobjectstype, relatedobjects) is not False class IfcRelAssignsToActor_NoSelfReference: @@ -10738,8 +10748,8 @@ class IfcRelAssignsToActor_NoSelfReference: @staticmethod def __call__(self): - relatingactor = getattr(self, 'RelatingActor', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingactor == temp]) == 0) is not False + relatingactor = express_getattr(self, 'RelatingActor', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingactor == temp]) == 0) is not False class IfcRelAssignsToControl_NoSelfReference: SCOPE = 'entity' @@ -10748,8 +10758,8 @@ class IfcRelAssignsToControl_NoSelfReference: @staticmethod def __call__(self): - relatingcontrol = getattr(self, 'RelatingControl', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingcontrol == temp]) == 0) is not False + relatingcontrol = express_getattr(self, 'RelatingControl', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingcontrol == temp]) == 0) is not False class IfcRelAssignsToGroup_NoSelfReference: SCOPE = 'entity' @@ -10758,8 +10768,8 @@ class IfcRelAssignsToGroup_NoSelfReference: @staticmethod def __call__(self): - relatinggroup = getattr(self, 'RelatingGroup', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatinggroup == temp]) == 0) is not False + relatinggroup = express_getattr(self, 'RelatingGroup', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatinggroup == temp]) == 0) is not False class IfcRelAssignsToProcess_NoSelfReference: SCOPE = 'entity' @@ -10768,8 +10778,8 @@ class IfcRelAssignsToProcess_NoSelfReference: @staticmethod def __call__(self): - relatingprocess = getattr(self, 'RelatingProcess', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingprocess == temp]) == 0) is not False + relatingprocess = express_getattr(self, 'RelatingProcess', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingprocess == temp]) == 0) is not False class IfcRelAssignsToProduct_NoSelfReference: SCOPE = 'entity' @@ -10778,8 +10788,8 @@ class IfcRelAssignsToProduct_NoSelfReference: @staticmethod def __call__(self): - relatingproduct = getattr(self, 'RelatingProduct', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingproduct == temp]) == 0) is not False + relatingproduct = express_getattr(self, 'RelatingProduct', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingproduct == temp]) == 0) is not False class IfcRelAssignsToResource_NoSelfReference: SCOPE = 'entity' @@ -10788,8 +10798,8 @@ class IfcRelAssignsToResource_NoSelfReference: @staticmethod def __call__(self): - relatingresource = getattr(self, 'RelatingResource', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingresource == temp]) == 0) is not False + relatingresource = express_getattr(self, 'RelatingResource', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingresource == temp]) == 0) is not False class IfcRelAssociatesMaterial_NoVoidElement: SCOPE = 'entity' @@ -10798,7 +10808,7 @@ class IfcRelAssociatesMaterial_NoVoidElement: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3_rc4.ifcfeatureelementsubtraction' in typeof(temp) or 'ifc4x3_rc4.ifcvirtualelement' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3_rc4.ifcfeatureelementsubtraction' in typeof(temp) or 'ifc4x3_rc4.ifcvirtualelement' in typeof(temp)]) == 0) is not False class IfcRelAssociatesMaterial_AllowedElements: SCOPE = 'entity' @@ -10807,7 +10817,7 @@ class IfcRelAssociatesMaterial_AllowedElements: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if sizeof(typeof(temp) * ['ifc4x3_rc4.ifcelement', 'ifc4x3_rc4.ifcelementtype', 'ifc4x3_rc4.ifcwindowstyle', 'ifc4x3_rc4.ifcdoorstyle', 'ifc4x3_rc4.ifcstructuralmember', 'ifc4x3_rc4.ifcport']) == 0]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if sizeof(typeof(temp) * ['ifc4x3_rc4.ifcelement', 'ifc4x3_rc4.ifcelementtype', 'ifc4x3_rc4.ifcwindowstyle', 'ifc4x3_rc4.ifcdoorstyle', 'ifc4x3_rc4.ifcstructuralmember', 'ifc4x3_rc4.ifcport']) == 0]) == 0) is not False class IfcRelConnectsElements_NoSelfReference: SCOPE = 'entity' @@ -10816,8 +10826,8 @@ class IfcRelConnectsElements_NoSelfReference: @staticmethod def __call__(self): - relatingelement = getattr(self, 'RelatingElement', INDETERMINATE) - relatedelement = getattr(self, 'RelatedElement', INDETERMINATE) + relatingelement = express_getattr(self, 'RelatingElement', INDETERMINATE) + relatedelement = express_getattr(self, 'RelatedElement', INDETERMINATE) assert (relatingelement != relatedelement) is not False class IfcRelConnectsPathElements_NormalizedRelatingPriorities: @@ -10827,7 +10837,7 @@ class IfcRelConnectsPathElements_NormalizedRelatingPriorities: @staticmethod def __call__(self): - relatingpriorities = getattr(self, 'RelatingPriorities', INDETERMINATE) + relatingpriorities = express_getattr(self, 'RelatingPriorities', INDETERMINATE) assert (sizeof(relatingpriorities) == 0 or sizeof([temp for temp in relatingpriorities if 0 <= temp <= 100]) == sizeof(relatingpriorities)) is not False class IfcRelConnectsPathElements_NormalizedRelatedPriorities: @@ -10837,7 +10847,7 @@ class IfcRelConnectsPathElements_NormalizedRelatedPriorities: @staticmethod def __call__(self): - relatedpriorities = getattr(self, 'RelatedPriorities', INDETERMINATE) + relatedpriorities = express_getattr(self, 'RelatedPriorities', INDETERMINATE) assert (sizeof(relatedpriorities) == 0 or sizeof([temp for temp in relatedpriorities if 0 <= temp <= 100]) == sizeof(relatedpriorities)) is not False class IfcRelConnectsPorts_NoSelfReference: @@ -10847,8 +10857,8 @@ class IfcRelConnectsPorts_NoSelfReference: @staticmethod def __call__(self): - relatingport = getattr(self, 'RelatingPort', INDETERMINATE) - relatedport = getattr(self, 'RelatedPort', INDETERMINATE) + relatingport = express_getattr(self, 'RelatingPort', INDETERMINATE) + relatedport = express_getattr(self, 'RelatedPort', INDETERMINATE) assert (relatingport != relatedport) is not False class IfcRelContainedInSpatialStructure_WR31: @@ -10858,7 +10868,7 @@ class IfcRelContainedInSpatialStructure_WR31: @staticmethod def __call__(self): - relatedelements = getattr(self, 'RelatedElements', INDETERMINATE) + relatedelements = express_getattr(self, 'RelatedElements', INDETERMINATE) assert (sizeof([temp for temp in relatedelements if 'ifc4x3_rc4.ifcspatialstructureelement' in typeof(temp)]) == 0) is not False class IfcRelDeclares_NoSelfReference: @@ -10868,8 +10878,8 @@ class IfcRelDeclares_NoSelfReference: @staticmethod def __call__(self): - relatingcontext = getattr(self, 'RelatingContext', INDETERMINATE) - relateddefinitions = getattr(self, 'RelatedDefinitions', INDETERMINATE) + relatingcontext = express_getattr(self, 'RelatingContext', INDETERMINATE) + relateddefinitions = express_getattr(self, 'RelatedDefinitions', INDETERMINATE) assert (sizeof([temp for temp in relateddefinitions if relatingcontext == temp]) == 0) is not False class IfcRelDefinesByProperties_NoRelatedTypeObject: @@ -10879,7 +10889,7 @@ class IfcRelDefinesByProperties_NoRelatedTypeObject: @staticmethod def __call__(self): - assert (sizeof([types for types in getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3_rc4.ifctypeobject' in typeof(types)]) == 0) is not False + assert (sizeof([types for types in express_getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3_rc4.ifctypeobject' in typeof(types)]) == 0) is not False class IfcRelInterferesElements_NoSelfReference: SCOPE = 'entity' @@ -10888,8 +10898,8 @@ class IfcRelInterferesElements_NoSelfReference: @staticmethod def __call__(self): - relatingelement = getattr(self, 'RelatingElement', INDETERMINATE) - relatedelement = getattr(self, 'RelatedElement', INDETERMINATE) + relatingelement = express_getattr(self, 'RelatingElement', INDETERMINATE) + relatedelement = express_getattr(self, 'RelatedElement', INDETERMINATE) assert (relatingelement != relatedelement) is not False class IfcRelNests_NoSelfReference: @@ -10899,8 +10909,8 @@ class IfcRelNests_NoSelfReference: @staticmethod def __call__(self): - relatingobject = getattr(self, 'RelatingObject', INDETERMINATE) - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) + relatingobject = express_getattr(self, 'RelatingObject', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) assert (sizeof([temp for temp in relatedobjects if relatingobject == temp]) == 0) is not False class IfcRelPositions_NoSelfReference: @@ -10910,8 +10920,8 @@ class IfcRelPositions_NoSelfReference: @staticmethod def __call__(self): - relatingpositioningelement = getattr(self, 'RelatingPositioningElement', INDETERMINATE) - relatedproducts = getattr(self, 'RelatedProducts', INDETERMINATE) + relatingpositioningelement = express_getattr(self, 'RelatingPositioningElement', INDETERMINATE) + relatedproducts = express_getattr(self, 'RelatedProducts', INDETERMINATE) assert (sizeof([temp for temp in relatedproducts if relatingpositioningelement == temp]) == 0) is not False class IfcRelReferencedInSpatialStructure_AllowedRelatedElements: @@ -10921,7 +10931,7 @@ class IfcRelReferencedInSpatialStructure_AllowedRelatedElements: @staticmethod def __call__(self): - relatedelements = getattr(self, 'RelatedElements', INDETERMINATE) + relatedelements = express_getattr(self, 'RelatedElements', INDETERMINATE) assert (sizeof([temp for temp in relatedelements if 'ifc4x3_rc4.ifcspatialstructureelement' in typeof(temp) and (not 'ifc4x3_rc4.ifcspace' in typeof(temp))]) == 0) is not False class IfcRelSequence_AvoidInconsistentSequence: @@ -10931,8 +10941,8 @@ class IfcRelSequence_AvoidInconsistentSequence: @staticmethod def __call__(self): - relatingprocess = getattr(self, 'RelatingProcess', INDETERMINATE) - relatedprocess = getattr(self, 'RelatedProcess', INDETERMINATE) + relatingprocess = express_getattr(self, 'RelatingProcess', INDETERMINATE) + relatedprocess = express_getattr(self, 'RelatedProcess', INDETERMINATE) assert (relatingprocess != relatedprocess) is not False class IfcRelSequence_CorrectSequenceType: @@ -10942,9 +10952,9 @@ class IfcRelSequence_CorrectSequenceType: @staticmethod def __call__(self): - sequencetype = getattr(self, 'SequenceType', INDETERMINATE) - userdefinedsequencetype = getattr(self, 'UserDefinedSequenceType', INDETERMINATE) - assert (sequencetype != getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) or (sequencetype == getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedsequencetype))) is not False + sequencetype = express_getattr(self, 'SequenceType', INDETERMINATE) + userdefinedsequencetype = express_getattr(self, 'UserDefinedSequenceType', INDETERMINATE) + assert (sequencetype != express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) or (sequencetype == express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedsequencetype))) is not False class IfcRelSpaceBoundary_CorrectPhysOrVirt: SCOPE = 'entity' @@ -10953,9 +10963,9 @@ class IfcRelSpaceBoundary_CorrectPhysOrVirt: @staticmethod def __call__(self): - relatedbuildingelement = getattr(self, 'RelatedBuildingElement', INDETERMINATE) - physicalorvirtualboundary = getattr(self, 'PhysicalOrVirtualBoundary', INDETERMINATE) - assert (physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'Physical', INDETERMINATE) and (not 'ifc4x3_rc4.ifcvirtualelement' in typeof(relatedbuildingelement)) or (physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'Virtual', INDETERMINATE) and ('ifc4x3_rc4.ifcvirtualelement' in typeof(relatedbuildingelement) or 'ifc4x3_rc4.ifcopeningelement' in typeof(relatedbuildingelement))) or physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'NotDefined', INDETERMINATE)) is not False + relatedbuildingelement = express_getattr(self, 'RelatedBuildingElement', INDETERMINATE) + physicalorvirtualboundary = express_getattr(self, 'PhysicalOrVirtualBoundary', INDETERMINATE) + assert (physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'Physical', INDETERMINATE) and (not 'ifc4x3_rc4.ifcvirtualelement' in typeof(relatedbuildingelement)) or (physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'Virtual', INDETERMINATE) and ('ifc4x3_rc4.ifcvirtualelement' in typeof(relatedbuildingelement) or 'ifc4x3_rc4.ifcopeningelement' in typeof(relatedbuildingelement))) or physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'NotDefined', INDETERMINATE)) is not False class IfcReparametrisedCompositeCurveSegment_PositiveLengthParameter: SCOPE = 'entity' @@ -10964,7 +10974,7 @@ class IfcReparametrisedCompositeCurveSegment_PositiveLengthParameter: @staticmethod def __call__(self): - paramlength = getattr(self, 'ParamLength', INDETERMINATE) + paramlength = express_getattr(self, 'ParamLength', INDETERMINATE) assert (paramlength > 0.0) is not False class IfcRepresentationMap_ApplicableMappedRepr: @@ -10974,7 +10984,7 @@ class IfcRepresentationMap_ApplicableMappedRepr: @staticmethod def __call__(self): - mappedrepresentation = getattr(self, 'MappedRepresentation', INDETERMINATE) + mappedrepresentation = express_getattr(self, 'MappedRepresentation', INDETERMINATE) assert ('ifc4x3_rc4.ifcshapemodel' in typeof(mappedrepresentation)) is not False class IfcRevolvedAreaSolid_AxisStartInXY: @@ -10984,8 +10994,8 @@ class IfcRevolvedAreaSolid_AxisStartInXY: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (express_getitem(getattr(getattr(axis, 'Location', INDETERMINATE), 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (express_getitem(express_getattr(express_getattr(axis, 'Location', INDETERMINATE), 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False class IfcRevolvedAreaSolid_AxisDirectionInXY: SCOPE = 'entity' @@ -10994,12 +11004,12 @@ class IfcRevolvedAreaSolid_AxisDirectionInXY: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (express_getitem(getattr(getattr(axis, 'Z', INDETERMINATE), 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (express_getitem(express_getattr(express_getattr(axis, 'Z', INDETERMINATE), 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False def calc_IfcRevolvedAreaSolid_AxisLine(self): - axis = getattr(self, 'Axis', INDETERMINATE) - return IfcLine(Pnt=getattr(axis, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=getattr(axis, 'Z', INDETERMINATE), Magnitude=1.0)) + axis = express_getattr(self, 'Axis', INDETERMINATE) + return IfcLine(Pnt=express_getattr(axis, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=express_getattr(axis, 'Z', INDETERMINATE), Magnitude=1.0)) class IfcRevolvedAreaSolidTapered_CorrectProfileAssignment: SCOPE = 'entity' @@ -11008,7 +11018,7 @@ class IfcRevolvedAreaSolidTapered_CorrectProfileAssignment: @staticmethod def __call__(self): - assert IfcTaperedSweptAreaProfiles(getattr(self, 'SweptArea', INDETERMINATE), getattr(self, 'EndSweptArea', INDETERMINATE)) is not False + assert IfcTaperedSweptAreaProfiles(express_getattr(self, 'SweptArea', INDETERMINATE), express_getattr(self, 'EndSweptArea', INDETERMINATE)) is not False class IfcRoad_HasObjectType: SCOPE = 'entity' @@ -11017,8 +11027,8 @@ class IfcRoad_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcRoof_CorrectPredefinedType: SCOPE = 'entity' @@ -11027,8 +11037,8 @@ class IfcRoof_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRoof_CorrectTypeAssigned: SCOPE = 'entity' @@ -11037,8 +11047,8 @@ class IfcRoof_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcrooftype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcrooftype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRoofType_CorrectPredefinedType: SCOPE = 'entity' @@ -11047,8 +11057,8 @@ class IfcRoofType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRoundedRectangleProfileDef_ValidRadius: SCOPE = 'entity' @@ -11057,11 +11067,11 @@ class IfcRoundedRectangleProfileDef_ValidRadius: @staticmethod def __call__(self): - roundingradius = getattr(self, 'RoundingRadius', INDETERMINATE) - assert (roundingradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 and roundingradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False + roundingradius = express_getattr(self, 'RoundingRadius', INDETERMINATE) + assert (roundingradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and roundingradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False def calc_IfcSIUnit_Dimensions(self): - return IfcDimensionsForSiUnit(getattr(self, 'Name', INDETERMINATE)) + return IfcDimensionsForSiUnit(express_getattr(self, 'Name', INDETERMINATE)) class IfcSanitaryTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -11070,8 +11080,8 @@ class IfcSanitaryTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSanitaryTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -11080,8 +11090,8 @@ class IfcSanitaryTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcsanitaryterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcsanitaryterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSanitaryTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -11090,8 +11100,8 @@ class IfcSanitaryTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSeamCurve_TwoPCurves: SCOPE = 'entity' @@ -11100,7 +11110,7 @@ class IfcSeamCurve_TwoPCurves: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False + assert (sizeof(express_getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False class IfcSeamCurve_SameSurface: SCOPE = 'entity' @@ -11109,7 +11119,7 @@ class IfcSeamCurve_SameSurface: @staticmethod def __call__(self): - assert (IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcSectionedSolid_DirectrixIs3D: SCOPE = 'entity' @@ -11118,8 +11128,8 @@ class IfcSectionedSolid_DirectrixIs3D: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - assert (getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + assert (express_getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False class IfcSectionedSolid_ConsistentProfileTypes: SCOPE = 'entity' @@ -11128,8 +11138,8 @@ class IfcSectionedSolid_ConsistentProfileTypes: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - assert (sizeof([temp for temp in crosssections if getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + assert (sizeof([temp for temp in crosssections if express_getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != express_getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcSectionedSolid_SectionsSameType: SCOPE = 'entity' @@ -11138,7 +11148,7 @@ class IfcSectionedSolid_SectionsSameType: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) assert (sizeof([temp for temp in crosssections if typeof(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(temp)]) == 0) is not False class IfcSectionedSolidHorizontal_CorrespondingSectionPositions: @@ -11148,8 +11158,8 @@ class IfcSectionedSolidHorizontal_CorrespondingSectionPositions: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) assert (sizeof(crosssections) == sizeof(crosssectionpositions)) is not False class IfcSectionedSolidHorizontal_NoLongitudinalOffsets: @@ -11159,8 +11169,8 @@ class IfcSectionedSolidHorizontal_NoLongitudinalOffsets: @staticmethod def __call__(self): - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) - assert (sizeof([temp for temp in crosssectionpositions if exists(getattr(getattr(temp, 'Location', INDETERMINATE), 'OffsetLongitudinal', INDETERMINATE))]) == 0) is not False + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) + assert (sizeof([temp for temp in crosssectionpositions if exists(express_getattr(express_getattr(temp, 'Location', INDETERMINATE), 'OffsetLongitudinal', INDETERMINATE))]) == 0) is not False class IfcSectionedSpine_CorrespondingSectionPositions: SCOPE = 'entity' @@ -11169,8 +11179,8 @@ class IfcSectionedSpine_CorrespondingSectionPositions: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) assert (sizeof(crosssections) == sizeof(crosssectionpositions)) is not False class IfcSectionedSpine_ConsistentProfileTypes: @@ -11180,8 +11190,8 @@ class IfcSectionedSpine_ConsistentProfileTypes: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - assert (sizeof([temp for temp in crosssections if getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + assert (sizeof([temp for temp in crosssections if express_getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != express_getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcSectionedSpine_SpineCurveDim: SCOPE = 'entity' @@ -11190,8 +11200,8 @@ class IfcSectionedSpine_SpineCurveDim: @staticmethod def __call__(self): - spinecurve = getattr(self, 'SpineCurve', INDETERMINATE) - assert (getattr(spinecurve, 'Dim', INDETERMINATE) == 3) is not False + spinecurve = express_getattr(self, 'SpineCurve', INDETERMINATE) + assert (express_getattr(spinecurve, 'Dim', INDETERMINATE) == 3) is not False def calc_IfcSectionedSpine_Dim(self): return 3 @@ -11203,8 +11213,8 @@ class IfcSensor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSensor_CorrectTypeAssigned: SCOPE = 'entity' @@ -11213,8 +11223,8 @@ class IfcSensor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcsensortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcsensortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSensorType_CorrectPredefinedType: SCOPE = 'entity' @@ -11223,8 +11233,8 @@ class IfcSensorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcShadingDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -11233,8 +11243,8 @@ class IfcShadingDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcShadingDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -11243,8 +11253,8 @@ class IfcShadingDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcshadingdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcshadingdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcShadingDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11253,8 +11263,8 @@ class IfcShadingDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcShapeModel_WR11: SCOPE = 'entity' @@ -11263,8 +11273,8 @@ class IfcShapeModel_WR11: @staticmethod def __call__(self): - ofshapeaspect = getattr(self, 'OfShapeAspect', INDETERMINATE) - assert (sizeof(getattr(self, 'OfProductRepresentation', INDETERMINATE)) == 1) ^ (sizeof(getattr(self, 'RepresentationMap', INDETERMINATE)) == 1) ^ (sizeof(ofshapeaspect) == 1) is not False + ofshapeaspect = express_getattr(self, 'OfShapeAspect', INDETERMINATE) + assert (sizeof(express_getattr(self, 'OfProductRepresentation', INDETERMINATE)) == 1) ^ (sizeof(express_getattr(self, 'RepresentationMap', INDETERMINATE)) == 1) ^ (sizeof(ofshapeaspect) == 1) is not False class IfcShapeRepresentation_CorrectContext: SCOPE = 'entity' @@ -11273,7 +11283,7 @@ class IfcShapeRepresentation_CorrectContext: @staticmethod def __call__(self): - assert ('ifc4x3_rc4.ifcgeometricrepresentationcontext' in typeof(getattr(self, 'ContextOfItems', INDETERMINATE))) is not False + assert ('ifc4x3_rc4.ifcgeometricrepresentationcontext' in typeof(express_getattr(self, 'ContextOfItems', INDETERMINATE))) is not False class IfcShapeRepresentation_NoTopologicalItem: SCOPE = 'entity' @@ -11282,7 +11292,7 @@ class IfcShapeRepresentation_NoTopologicalItem: @staticmethod def __call__(self): - items = getattr(self, 'Items', INDETERMINATE) + items = express_getattr(self, 'Items', INDETERMINATE) assert (sizeof([temp for temp in items if 'ifc4x3_rc4.ifctopologicalrepresentationitem' in typeof(temp) and (not sizeof(['ifc4x3_rc4.ifcvertexpoint', 'ifc4x3_rc4.ifcedgecurve', 'ifc4x3_rc4.ifcfacesurface'] * typeof(temp)) == 1)]) == 0) is not False class IfcShapeRepresentation_HasRepresentationType: @@ -11292,7 +11302,7 @@ class IfcShapeRepresentation_HasRepresentationType: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationType', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationType', INDETERMINATE)) is not False class IfcShapeRepresentation_HasRepresentationIdentifier: SCOPE = 'entity' @@ -11301,7 +11311,7 @@ class IfcShapeRepresentation_HasRepresentationIdentifier: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationIdentifier', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationIdentifier', INDETERMINATE)) is not False class IfcShapeRepresentation_CorrectItemsForType: SCOPE = 'entity' @@ -11310,7 +11320,7 @@ class IfcShapeRepresentation_CorrectItemsForType: @staticmethod def __call__(self): - assert IfcShapeRepresentationTypes(getattr(self, 'RepresentationType', INDETERMINATE), getattr(self, 'Items', INDETERMINATE)) is not False + assert IfcShapeRepresentationTypes(express_getattr(self, 'RepresentationType', INDETERMINATE), express_getattr(self, 'Items', INDETERMINATE)) is not False def calc_IfcShellBasedSurfaceModel_Dim(self): return 3 @@ -11322,8 +11332,8 @@ class IfcSign_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSign_CorrectTypeAssigned: SCOPE = 'entity' @@ -11332,8 +11342,8 @@ class IfcSign_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcsigntype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcsigntype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSignType_CorrectPredefinedType: SCOPE = 'entity' @@ -11342,8 +11352,8 @@ class IfcSignType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSignal_CorrectPredefinedType: SCOPE = 'entity' @@ -11352,8 +11362,8 @@ class IfcSignal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSignal_CorrectTypeAssigned: SCOPE = 'entity' @@ -11362,8 +11372,8 @@ class IfcSignal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcsignaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcsignaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSignalType_CorrectPredefinedType: SCOPE = 'entity' @@ -11372,8 +11382,8 @@ class IfcSignalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSlab_CorrectPredefinedType: SCOPE = 'entity' @@ -11382,8 +11392,8 @@ class IfcSlab_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSlab_CorrectTypeAssigned: SCOPE = 'entity' @@ -11392,8 +11402,8 @@ class IfcSlab_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcslabtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcslabtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSlabElementedCase_HasDecomposition: SCOPE = 'entity' @@ -11402,7 +11412,7 @@ class IfcSlabElementedCase_HasDecomposition: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'IsDecomposedBy', INDETERMINATE)) > 0) is not False + assert (hiindex(express_getattr(self, 'IsDecomposedBy', INDETERMINATE)) > 0) is not False class IfcSlabStandardCase_HasMaterialLayerSetusage: SCOPE = 'entity' @@ -11411,7 +11421,7 @@ class IfcSlabStandardCase_HasMaterialLayerSetusage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc4.ifcrelassociates.relatedobjects') if 'ifc4x3_rc4.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc4.ifcmateriallayersetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc4.ifcrelassociates.relatedobjects') if 'ifc4x3_rc4.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc4.ifcmateriallayersetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcSlabType_CorrectPredefinedType: SCOPE = 'entity' @@ -11420,8 +11430,8 @@ class IfcSlabType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSolarDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -11430,8 +11440,8 @@ class IfcSolarDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSolarDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -11440,8 +11450,8 @@ class IfcSolarDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcsolardevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcsolardevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSolarDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11450,8 +11460,8 @@ class IfcSolarDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcSolidModel_Dim(self): return 3 @@ -11463,8 +11473,8 @@ class IfcSpace_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpace_CorrectTypeAssigned: SCOPE = 'entity' @@ -11473,8 +11483,8 @@ class IfcSpace_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcspacetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcspacetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpaceHeater_CorrectPredefinedType: SCOPE = 'entity' @@ -11483,8 +11493,8 @@ class IfcSpaceHeater_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpaceHeater_CorrectTypeAssigned: SCOPE = 'entity' @@ -11493,8 +11503,8 @@ class IfcSpaceHeater_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcspaceheatertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcspaceheatertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpaceHeaterType_CorrectPredefinedType: SCOPE = 'entity' @@ -11503,8 +11513,8 @@ class IfcSpaceHeaterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSpaceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11513,8 +11523,8 @@ class IfcSpaceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSpatialStructureElement_WR41: SCOPE = 'entity' @@ -11523,7 +11533,7 @@ class IfcSpatialStructureElement_WR41: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'Decomposes', INDETERMINATE)) == 1 and 'ifc4x3_rc4.ifcrelaggregates' in typeof(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc4.ifcproject' in typeof(getattr(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)) or 'ifc4x3_rc4.ifcspatialstructureelement' in typeof(getattr(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)))) is not False + assert (hiindex(express_getattr(self, 'Decomposes', INDETERMINATE)) == 1 and 'ifc4x3_rc4.ifcrelaggregates' in typeof(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc4.ifcproject' in typeof(express_getattr(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)) or 'ifc4x3_rc4.ifcspatialstructureelement' in typeof(express_getattr(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)))) is not False class IfcSpatialZone_CorrectPredefinedType: SCOPE = 'entity' @@ -11532,8 +11542,8 @@ class IfcSpatialZone_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpatialZone_CorrectTypeAssigned: SCOPE = 'entity' @@ -11542,8 +11552,8 @@ class IfcSpatialZone_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcspatialzonetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcspatialzonetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpatialZoneType_CorrectPredefinedType: SCOPE = 'entity' @@ -11552,8 +11562,8 @@ class IfcSpatialZoneType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStackTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -11562,8 +11572,8 @@ class IfcStackTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStackTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -11572,8 +11582,8 @@ class IfcStackTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcstackterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcstackterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStackTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -11582,8 +11592,8 @@ class IfcStackTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStair_CorrectPredefinedType: SCOPE = 'entity' @@ -11592,8 +11602,8 @@ class IfcStair_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStair_CorrectTypeAssigned: SCOPE = 'entity' @@ -11602,8 +11612,8 @@ class IfcStair_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcstairtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcstairtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStairFlight_CorrectPredefinedType: SCOPE = 'entity' @@ -11612,8 +11622,8 @@ class IfcStairFlight_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStairFlight_CorrectTypeAssigned: SCOPE = 'entity' @@ -11622,8 +11632,8 @@ class IfcStairFlight_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcstairflighttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcstairflighttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStairFlightType_CorrectPredefinedType: SCOPE = 'entity' @@ -11632,8 +11642,8 @@ class IfcStairFlightType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStairType_CorrectPredefinedType: SCOPE = 'entity' @@ -11642,8 +11652,8 @@ class IfcStairType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStructuralAnalysisModel_HasObjectType: SCOPE = 'entity' @@ -11652,8 +11662,8 @@ class IfcStructuralAnalysisModel_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralAnalysisModel_CorrectPredefinedType: SCOPE = 'entity' @@ -11662,8 +11672,8 @@ class IfcStructuralAnalysisModel_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStructuralCurveAction_ProjectedIsGlobal: SCOPE = 'entity' @@ -11672,8 +11682,8 @@ class IfcStructuralCurveAction_ProjectedIsGlobal: @staticmethod def __call__(self): - projectedortrue = getattr(self, 'ProjectedOrTrue', INDETERMINATE) - assert (not exists(projectedortrue) or (projectedortrue != projected_length or getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False + projectedortrue = express_getattr(self, 'ProjectedOrTrue', INDETERMINATE) + assert (not exists(projectedortrue) or (projectedortrue != projected_length or express_getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False class IfcStructuralCurveAction_HasObjectType: SCOPE = 'entity' @@ -11682,8 +11692,8 @@ class IfcStructuralCurveAction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveAction_SuitablePredefinedType: SCOPE = 'entity' @@ -11692,8 +11702,8 @@ class IfcStructuralCurveAction_SuitablePredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE)) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE)) is not False class IfcStructuralCurveMember_HasObjectType: SCOPE = 'entity' @@ -11702,8 +11712,8 @@ class IfcStructuralCurveMember_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveReaction_HasObjectType: SCOPE = 'entity' @@ -11712,8 +11722,8 @@ class IfcStructuralCurveReaction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveReaction_SuitablePredefinedType: SCOPE = 'entity' @@ -11722,8 +11732,8 @@ class IfcStructuralCurveReaction_SuitablePredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) and predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE)) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) and predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE)) is not False class IfcStructuralLinearAction_SuitableLoadType: SCOPE = 'entity' @@ -11732,7 +11742,7 @@ class IfcStructuralLinearAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_rc4.ifcstructuralloadlinearforce', 'ifc4x3_rc4.ifcstructuralloadtemperature'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_rc4.ifcstructuralloadlinearforce', 'ifc4x3_rc4.ifcstructuralloadtemperature'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralLinearAction_ConstPredefinedType: SCOPE = 'entity' @@ -11741,7 +11751,7 @@ class IfcStructuralLinearAction_ConstPredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE)) is not False class IfcStructuralLoadCase_IsLoadCasePredefinedType: SCOPE = 'entity' @@ -11750,7 +11760,7 @@ class IfcStructuralLoadCase_IsLoadCasePredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE)) is not False class IfcStructuralLoadConfiguration_ValidListSize: SCOPE = 'entity' @@ -11759,8 +11769,8 @@ class IfcStructuralLoadConfiguration_ValidListSize: @staticmethod def __call__(self): - values = getattr(self, 'Values', INDETERMINATE) - locations = getattr(self, 'Locations', INDETERMINATE) + values = express_getattr(self, 'Values', INDETERMINATE) + locations = express_getattr(self, 'Locations', INDETERMINATE) assert (not exists(locations) or sizeof(locations) == sizeof(values)) is not False class IfcStructuralLoadGroup_HasObjectType: @@ -11770,10 +11780,10 @@ class IfcStructuralLoadGroup_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - actiontype = getattr(self, 'ActionType', INDETERMINATE) - actionsource = getattr(self, 'ActionSource', INDETERMINATE) - assert (predefinedtype != getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) and actiontype != getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) and (actionsource != getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE)) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + actiontype = express_getattr(self, 'ActionType', INDETERMINATE) + actionsource = express_getattr(self, 'ActionSource', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) and actiontype != express_getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) and (actionsource != express_getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE)) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralPlanarAction_SuitableLoadType: SCOPE = 'entity' @@ -11782,7 +11792,7 @@ class IfcStructuralPlanarAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_rc4.ifcstructuralloadplanarforce', 'ifc4x3_rc4.ifcstructuralloadtemperature'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_rc4.ifcstructuralloadplanarforce', 'ifc4x3_rc4.ifcstructuralloadtemperature'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralPlanarAction_ConstPredefinedType: SCOPE = 'entity' @@ -11791,7 +11801,7 @@ class IfcStructuralPlanarAction_ConstPredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE)) is not False class IfcStructuralPointAction_SuitableLoadType: SCOPE = 'entity' @@ -11800,7 +11810,7 @@ class IfcStructuralPointAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_rc4.ifcstructuralloadsingleforce', 'ifc4x3_rc4.ifcstructuralloadsingledisplacement'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_rc4.ifcstructuralloadsingleforce', 'ifc4x3_rc4.ifcstructuralloadsingledisplacement'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralPointReaction_SuitableLoadType: SCOPE = 'entity' @@ -11809,7 +11819,7 @@ class IfcStructuralPointReaction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_rc4.ifcstructuralloadsingleforce', 'ifc4x3_rc4.ifcstructuralloadsingledisplacement'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_rc4.ifcstructuralloadsingleforce', 'ifc4x3_rc4.ifcstructuralloadsingledisplacement'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralResultGroup_HasObjectType: SCOPE = 'entity' @@ -11818,8 +11828,8 @@ class IfcStructuralResultGroup_HasObjectType: @staticmethod def __call__(self): - theorytype = getattr(self, 'TheoryType', INDETERMINATE) - assert (theorytype != getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + theorytype = express_getattr(self, 'TheoryType', INDETERMINATE) + assert (theorytype != express_getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceAction_ProjectedIsGlobal: SCOPE = 'entity' @@ -11828,8 +11838,8 @@ class IfcStructuralSurfaceAction_ProjectedIsGlobal: @staticmethod def __call__(self): - projectedortrue = getattr(self, 'ProjectedOrTrue', INDETERMINATE) - assert (not exists(projectedortrue) or (projectedortrue != projected_length or getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False + projectedortrue = express_getattr(self, 'ProjectedOrTrue', INDETERMINATE) + assert (not exists(projectedortrue) or (projectedortrue != projected_length or express_getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False class IfcStructuralSurfaceAction_HasObjectType: SCOPE = 'entity' @@ -11838,8 +11848,8 @@ class IfcStructuralSurfaceAction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceMember_HasObjectType: SCOPE = 'entity' @@ -11848,8 +11858,8 @@ class IfcStructuralSurfaceMember_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceReaction_HasPredefinedType: SCOPE = 'entity' @@ -11858,8 +11868,8 @@ class IfcStructuralSurfaceReaction_HasPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStyledItem_ApplicableItem: SCOPE = 'entity' @@ -11868,7 +11878,7 @@ class IfcStyledItem_ApplicableItem: @staticmethod def __call__(self): - item = getattr(self, 'Item', INDETERMINATE) + item = express_getattr(self, 'Item', INDETERMINATE) assert (not 'ifc4x3_rc4.ifcstyleditem' in typeof(item)) is not False class IfcStyledRepresentation_OnlyStyledItems: @@ -11878,7 +11888,7 @@ class IfcStyledRepresentation_OnlyStyledItems: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3_rc4.ifcstyleditem' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3_rc4.ifcstyleditem' in typeof(temp)]) == 0) is not False class IfcSubContractResource_CorrectPredefinedType: SCOPE = 'entity' @@ -11887,8 +11897,8 @@ class IfcSubContractResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSubContractResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11897,8 +11907,8 @@ class IfcSubContractResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False def calc_IfcSurface_Dim(self): return 3 @@ -11910,8 +11920,8 @@ class IfcSurfaceCurve_CurveIs3D: @staticmethod def __call__(self): - curve3d = getattr(self, 'Curve3D', INDETERMINATE) - assert (getattr(curve3d, 'Dim', INDETERMINATE) == 3) is not False + curve3d = express_getattr(self, 'Curve3D', INDETERMINATE) + assert (express_getattr(curve3d, 'Dim', INDETERMINATE) == 3) is not False class IfcSurfaceCurve_CurveIsNotPcurve: SCOPE = 'entity' @@ -11920,7 +11930,7 @@ class IfcSurfaceCurve_CurveIsNotPcurve: @staticmethod def __call__(self): - curve3d = getattr(self, 'Curve3D', INDETERMINATE) + curve3d = express_getattr(self, 'Curve3D', INDETERMINATE) assert (not 'ifc4x3_rc4.ifcpcurve' in typeof(curve3d)) is not False def calc_IfcSurfaceCurve_BasisSurface(self): @@ -11933,8 +11943,8 @@ class IfcSurfaceFeature_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcSurfaceOfLinearExtrusion_DepthGreaterZero: SCOPE = 'entity' @@ -11943,17 +11953,17 @@ class IfcSurfaceOfLinearExtrusion_DepthGreaterZero: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) assert (depth > 0.0) is not False def calc_IfcSurfaceOfLinearExtrusion_ExtrusionAxis(self): - extrudeddirection = getattr(self, 'ExtrudedDirection', INDETERMINATE) - depth = getattr(self, 'Depth', INDETERMINATE) + extrudeddirection = express_getattr(self, 'ExtrudedDirection', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) return IfcVector(Orientation=extrudeddirection, Magnitude=depth) def calc_IfcSurfaceOfRevolution_AxisLine(self): - axisposition = getattr(self, 'AxisPosition', INDETERMINATE) - return IfcLine(Pnt=getattr(axisposition, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=getattr(axisposition, 'Z', INDETERMINATE), Magnitude=1.0)) + axisposition = express_getattr(self, 'AxisPosition', INDETERMINATE) + return IfcLine(Pnt=express_getattr(axisposition, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=express_getattr(axisposition, 'Z', INDETERMINATE), Magnitude=1.0)) class IfcSurfaceReinforcementArea_SurfaceAndOrShearAreaSpecified: SCOPE = 'entity' @@ -11962,9 +11972,9 @@ class IfcSurfaceReinforcementArea_SurfaceAndOrShearAreaSpecified: @staticmethod def __call__(self): - surfacereinforcement1 = getattr(self, 'SurfaceReinforcement1', INDETERMINATE) - surfacereinforcement2 = getattr(self, 'SurfaceReinforcement2', INDETERMINATE) - shearreinforcement = getattr(self, 'ShearReinforcement', INDETERMINATE) + surfacereinforcement1 = express_getattr(self, 'SurfaceReinforcement1', INDETERMINATE) + surfacereinforcement2 = express_getattr(self, 'SurfaceReinforcement2', INDETERMINATE) + shearreinforcement = express_getattr(self, 'ShearReinforcement', INDETERMINATE) assert (exists(surfacereinforcement1) or exists(surfacereinforcement2) or exists(shearreinforcement)) is not False class IfcSurfaceReinforcementArea_NonnegativeArea1: @@ -11974,7 +11984,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea1: @staticmethod def __call__(self): - surfacereinforcement1 = getattr(self, 'SurfaceReinforcement1', INDETERMINATE) + surfacereinforcement1 = express_getattr(self, 'SurfaceReinforcement1', INDETERMINATE) assert (not exists(surfacereinforcement1) or (express_getitem(surfacereinforcement1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and express_getitem(surfacereinforcement1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and (sizeof(surfacereinforcement1) == 1 or express_getitem(surfacereinforcement1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0))) is not False class IfcSurfaceReinforcementArea_NonnegativeArea2: @@ -11984,7 +11994,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea2: @staticmethod def __call__(self): - surfacereinforcement2 = getattr(self, 'SurfaceReinforcement2', INDETERMINATE) + surfacereinforcement2 = express_getattr(self, 'SurfaceReinforcement2', INDETERMINATE) assert (not exists(surfacereinforcement2) or (express_getitem(surfacereinforcement2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and express_getitem(surfacereinforcement2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and (sizeof(surfacereinforcement2) == 1 or express_getitem(surfacereinforcement2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0))) is not False class IfcSurfaceReinforcementArea_NonnegativeArea3: @@ -11994,7 +12004,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea3: @staticmethod def __call__(self): - shearreinforcement = getattr(self, 'ShearReinforcement', INDETERMINATE) + shearreinforcement = express_getattr(self, 'ShearReinforcement', INDETERMINATE) assert (not exists(shearreinforcement) or shearreinforcement >= 0.0) is not False class IfcSurfaceStyle_MaxOneShading: @@ -12004,7 +12014,7 @@ class IfcSurfaceStyle_MaxOneShading: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc4.ifcsurfacestyleshading' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc4.ifcsurfacestyleshading' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneLighting: SCOPE = 'entity' @@ -12013,7 +12023,7 @@ class IfcSurfaceStyle_MaxOneLighting: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc4.ifcsurfacestylelighting' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc4.ifcsurfacestylelighting' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneRefraction: SCOPE = 'entity' @@ -12022,7 +12032,7 @@ class IfcSurfaceStyle_MaxOneRefraction: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc4.ifcsurfacestylerefraction' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc4.ifcsurfacestylerefraction' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneTextures: SCOPE = 'entity' @@ -12031,7 +12041,7 @@ class IfcSurfaceStyle_MaxOneTextures: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc4.ifcsurfacestylewithtextures' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc4.ifcsurfacestylewithtextures' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneExtDefined: SCOPE = 'entity' @@ -12040,7 +12050,7 @@ class IfcSurfaceStyle_MaxOneExtDefined: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc4.ifcexternallydefinedsurfacestyle' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_rc4.ifcexternallydefinedsurfacestyle' in typeof(style)]) <= 1) is not False class IfcSweptAreaSolid_SweptAreaType: SCOPE = 'entity' @@ -12049,8 +12059,8 @@ class IfcSweptAreaSolid_SweptAreaType: @staticmethod def __call__(self): - sweptarea = getattr(self, 'SweptArea', INDETERMINATE) - assert (getattr(sweptarea, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'Area', INDETERMINATE)) is not False + sweptarea = express_getattr(self, 'SweptArea', INDETERMINATE) + assert (express_getattr(sweptarea, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'Area', INDETERMINATE)) is not False class IfcSweptDiskSolid_DirectrixDim: SCOPE = 'entity' @@ -12059,8 +12069,8 @@ class IfcSweptDiskSolid_DirectrixDim: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - assert (getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + assert (express_getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False class IfcSweptDiskSolid_InnerRadiusSize: SCOPE = 'entity' @@ -12069,8 +12079,8 @@ class IfcSweptDiskSolid_InnerRadiusSize: @staticmethod def __call__(self): - radius = getattr(self, 'Radius', INDETERMINATE) - innerradius = getattr(self, 'InnerRadius', INDETERMINATE) + radius = express_getattr(self, 'Radius', INDETERMINATE) + innerradius = express_getattr(self, 'InnerRadius', INDETERMINATE) assert (not exists(innerradius) or radius > innerradius) is not False class IfcSweptDiskSolid_DirectrixBounded: @@ -12080,9 +12090,9 @@ class IfcSweptDiskSolid_DirectrixBounded: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - startparam = getattr(self, 'StartParam', INDETERMINATE) - endparam = getattr(self, 'EndParam', INDETERMINATE) + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + startparam = express_getattr(self, 'StartParam', INDETERMINATE) + endparam = express_getattr(self, 'EndParam', INDETERMINATE) assert (exists(startparam) and exists(endparam) or sizeof(['ifc4x3_rc4.ifcconic', 'ifc4x3_rc4.ifcboundedcurve'] * typeof(directrix)) == 1) is not False class IfcSweptDiskSolidPolygonal_CorrectRadii: @@ -12092,8 +12102,8 @@ class IfcSweptDiskSolidPolygonal_CorrectRadii: @staticmethod def __call__(self): - filletradius = getattr(self, 'FilletRadius', INDETERMINATE) - assert (not exists(filletradius) or filletradius >= getattr(self, 'Radius', INDETERMINATE)) is not False + filletradius = express_getattr(self, 'FilletRadius', INDETERMINATE) + assert (not exists(filletradius) or filletradius >= express_getattr(self, 'Radius', INDETERMINATE)) is not False class IfcSweptDiskSolidPolygonal_DirectrixIsPolyline: SCOPE = 'entity' @@ -12102,7 +12112,7 @@ class IfcSweptDiskSolidPolygonal_DirectrixIsPolyline: @staticmethod def __call__(self): - assert ('ifc4x3_rc4.ifcpolyline' in typeof(getattr(self, 'Directrix', INDETERMINATE)) or ('ifc4x3_rc4.ifcindexedpolycurve' in typeof(getattr(self, 'Directrix', INDETERMINATE)) and (not exists(getattr(getattr(self, 'Directrix', INDETERMINATE), 'Segments', INDETERMINATE))))) is not False + assert ('ifc4x3_rc4.ifcpolyline' in typeof(express_getattr(self, 'Directrix', INDETERMINATE)) or ('ifc4x3_rc4.ifcindexedpolycurve' in typeof(express_getattr(self, 'Directrix', INDETERMINATE)) and (not exists(express_getattr(express_getattr(self, 'Directrix', INDETERMINATE), 'Segments', INDETERMINATE))))) is not False class IfcSweptSurface_SweptCurveType: SCOPE = 'entity' @@ -12111,8 +12121,8 @@ class IfcSweptSurface_SweptCurveType: @staticmethod def __call__(self): - sweptcurve = getattr(self, 'SweptCurve', INDETERMINATE) - assert (getattr(sweptcurve, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'Curve', INDETERMINATE)) is not False + sweptcurve = express_getattr(self, 'SweptCurve', INDETERMINATE) + assert (express_getattr(sweptcurve, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'Curve', INDETERMINATE)) is not False class IfcSwitchingDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -12121,8 +12131,8 @@ class IfcSwitchingDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSwitchingDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -12131,8 +12141,8 @@ class IfcSwitchingDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcswitchingdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcswitchingdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSwitchingDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -12141,8 +12151,8 @@ class IfcSwitchingDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSystemFurnitureElement_CorrectPredefinedType: SCOPE = 'entity' @@ -12151,8 +12161,8 @@ class IfcSystemFurnitureElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSystemFurnitureElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12161,8 +12171,8 @@ class IfcSystemFurnitureElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcsystemfurnitureelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcsystemfurnitureelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSystemFurnitureElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12171,8 +12181,8 @@ class IfcSystemFurnitureElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -12181,8 +12191,8 @@ class IfcTShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth) is not False class IfcTShapeProfileDef_ValidWebThickness: @@ -12192,8 +12202,8 @@ class IfcTShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - flangewidth = getattr(self, 'FlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + flangewidth = express_getattr(self, 'FlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < flangewidth) is not False class IfcTable_WR1: @@ -12203,8 +12213,8 @@ class IfcTable_WR1: @staticmethod def __call__(self): - rows = getattr(self, 'Rows', INDETERMINATE) - assert (sizeof([temp for temp in rows if hiindex(getattr(temp, 'RowCells', INDETERMINATE)) != hiindex(getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE))]) == 0) is not False + rows = express_getattr(self, 'Rows', INDETERMINATE) + assert (sizeof([temp for temp in rows if hiindex(express_getattr(temp, 'RowCells', INDETERMINATE)) != hiindex(express_getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE))]) == 0) is not False class IfcTable_WR2: SCOPE = 'entity' @@ -12213,20 +12223,20 @@ class IfcTable_WR2: @staticmethod def __call__(self): - numberofheadings = getattr(self, 'NumberOfHeadings', INDETERMINATE) + numberofheadings = express_getattr(self, 'NumberOfHeadings', INDETERMINATE) assert (0 <= numberofheadings <= 1) is not False def calc_IfcTable_NumberOfCellsInRow(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return hiindex(getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE)) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return hiindex(express_getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE)) def calc_IfcTable_NumberOfHeadings(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return sizeof([temp for temp in rows if getattr(temp, 'IsHeading', INDETERMINATE)]) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return sizeof([temp for temp in rows if express_getattr(temp, 'IsHeading', INDETERMINATE)]) def calc_IfcTable_NumberOfDataRows(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return sizeof([temp for temp in rows if not getattr(temp, 'IsHeading', INDETERMINATE)]) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return sizeof([temp for temp in rows if not express_getattr(temp, 'IsHeading', INDETERMINATE)]) class IfcTank_CorrectPredefinedType: SCOPE = 'entity' @@ -12235,8 +12245,8 @@ class IfcTank_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTank_CorrectTypeAssigned: SCOPE = 'entity' @@ -12245,8 +12255,8 @@ class IfcTank_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifctanktype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifctanktype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTankType_CorrectPredefinedType: SCOPE = 'entity' @@ -12255,8 +12265,8 @@ class IfcTankType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTask_HasName: SCOPE = 'entity' @@ -12265,7 +12275,7 @@ class IfcTask_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcTask_CorrectPredefinedType: SCOPE = 'entity' @@ -12274,8 +12284,8 @@ class IfcTask_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTaskType_CorrectPredefinedType: SCOPE = 'entity' @@ -12284,8 +12294,8 @@ class IfcTaskType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcTelecomAddress_MinimumDataProvided: SCOPE = 'entity' @@ -12294,12 +12304,12 @@ class IfcTelecomAddress_MinimumDataProvided: @staticmethod def __call__(self): - telephonenumbers = getattr(self, 'TelephoneNumbers', INDETERMINATE) - facsimilenumbers = getattr(self, 'FacsimileNumbers', INDETERMINATE) - pagernumber = getattr(self, 'PagerNumber', INDETERMINATE) - electronicmailaddresses = getattr(self, 'ElectronicMailAddresses', INDETERMINATE) - wwwhomepageurl = getattr(self, 'WWWHomePageURL', INDETERMINATE) - messagingids = getattr(self, 'MessagingIDs', INDETERMINATE) + telephonenumbers = express_getattr(self, 'TelephoneNumbers', INDETERMINATE) + facsimilenumbers = express_getattr(self, 'FacsimileNumbers', INDETERMINATE) + pagernumber = express_getattr(self, 'PagerNumber', INDETERMINATE) + electronicmailaddresses = express_getattr(self, 'ElectronicMailAddresses', INDETERMINATE) + wwwhomepageurl = express_getattr(self, 'WWWHomePageURL', INDETERMINATE) + messagingids = express_getattr(self, 'MessagingIDs', INDETERMINATE) assert (exists(telephonenumbers) or exists(facsimilenumbers) or exists(pagernumber) or exists(electronicmailaddresses) or exists(wwwhomepageurl) or exists(messagingids)) is not False class IfcTendon_CorrectPredefinedType: @@ -12309,8 +12319,8 @@ class IfcTendon_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendon_CorrectTypeAssigned: SCOPE = 'entity' @@ -12319,8 +12329,8 @@ class IfcTendon_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifctendontype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifctendontype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonAnchor_CorrectPredefinedType: SCOPE = 'entity' @@ -12329,8 +12339,8 @@ class IfcTendonAnchor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendonAnchor_CorrectTypeAssigned: SCOPE = 'entity' @@ -12339,8 +12349,8 @@ class IfcTendonAnchor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifctendonanchortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifctendonanchortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonAnchorType_CorrectPredefinedType: SCOPE = 'entity' @@ -12349,8 +12359,8 @@ class IfcTendonAnchorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTendonConduit_CorrectPredefinedType: SCOPE = 'entity' @@ -12359,8 +12369,8 @@ class IfcTendonConduit_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendonConduit_CorrectTypeAssigned: SCOPE = 'entity' @@ -12369,8 +12379,8 @@ class IfcTendonConduit_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifctendonconduittype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifctendonconduittype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonConduitType_CorrectPredefinedType: SCOPE = 'entity' @@ -12379,8 +12389,8 @@ class IfcTendonConduitType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTendonType_CorrectPredefinedType: SCOPE = 'entity' @@ -12389,8 +12399,8 @@ class IfcTendonType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcTessellatedFaceSet_Dim(self): return 3 @@ -12402,7 +12412,7 @@ class IfcTextLiteralWithExtent_WR31: @staticmethod def __call__(self): - extent = getattr(self, 'Extent', INDETERMINATE) + extent = express_getattr(self, 'Extent', INDETERMINATE) assert (not 'ifc4x3_rc4.ifcplanarbox' in typeof(extent)) is not False class IfcTextStyleFontModel_MeasureOfFontSize: @@ -12412,7 +12422,7 @@ class IfcTextStyleFontModel_MeasureOfFontSize: @staticmethod def __call__(self): - assert ('ifc4x3_rc4.ifclengthmeasure' in typeof(getattr(self, 'FontSize', INDETERMINATE)) and getattr(self, 'FontSize', INDETERMINATE) > 0.0) is not False + assert ('ifc4x3_rc4.ifclengthmeasure' in typeof(express_getattr(self, 'FontSize', INDETERMINATE)) and express_getattr(self, 'FontSize', INDETERMINATE) > 0.0) is not False class IfcTopologyRepresentation_WR21: SCOPE = 'entity' @@ -12421,7 +12431,7 @@ class IfcTopologyRepresentation_WR21: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3_rc4.ifctopologicalrepresentationitem' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3_rc4.ifctopologicalrepresentationitem' in typeof(temp)]) == 0) is not False class IfcTopologyRepresentation_WR22: SCOPE = 'entity' @@ -12430,7 +12440,7 @@ class IfcTopologyRepresentation_WR22: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationType', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationType', INDETERMINATE)) is not False class IfcTopologyRepresentation_WR23: SCOPE = 'entity' @@ -12439,7 +12449,7 @@ class IfcTopologyRepresentation_WR23: @staticmethod def __call__(self): - assert IfcTopologyRepresentationTypes(getattr(self, 'RepresentationType', INDETERMINATE), getattr(self, 'Items', INDETERMINATE)) is not False + assert IfcTopologyRepresentationTypes(express_getattr(self, 'RepresentationType', INDETERMINATE), express_getattr(self, 'Items', INDETERMINATE)) is not False class IfcToroidalSurface_MajorLargerMinor: SCOPE = 'entity' @@ -12448,8 +12458,8 @@ class IfcToroidalSurface_MajorLargerMinor: @staticmethod def __call__(self): - majorradius = getattr(self, 'MajorRadius', INDETERMINATE) - minorradius = getattr(self, 'MinorRadius', INDETERMINATE) + majorradius = express_getattr(self, 'MajorRadius', INDETERMINATE) + minorradius = express_getattr(self, 'MinorRadius', INDETERMINATE) assert (minorradius < majorradius) is not False class IfcTrackElement_CorrectPredefinedType: @@ -12459,8 +12469,8 @@ class IfcTrackElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTrackElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12469,8 +12479,8 @@ class IfcTrackElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifctrackelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifctrackelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTrackElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12479,8 +12489,8 @@ class IfcTrackElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTransformer_CorrectPredefinedType: SCOPE = 'entity' @@ -12489,8 +12499,8 @@ class IfcTransformer_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTransformer_CorrectTypeAssigned: SCOPE = 'entity' @@ -12499,8 +12509,8 @@ class IfcTransformer_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifctranformertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifctranformertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTransformerType_CorrectPredefinedType: SCOPE = 'entity' @@ -12509,8 +12519,8 @@ class IfcTransformerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTransportElement_CorrectPredefinedType: SCOPE = 'entity' @@ -12519,8 +12529,8 @@ class IfcTransportElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or (predefinedtype != getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) and predefinedtype != getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE)) or ((predefinedtype == getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE)) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or (predefinedtype != express_getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) and predefinedtype != express_getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE)) or ((predefinedtype == express_getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) or predefinedtype == express_getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE)) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTransportElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12529,8 +12539,8 @@ class IfcTransportElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifctransportelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifctransportelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTransportElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12539,11 +12549,11 @@ class IfcTransportElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) and predefinedtype != getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE))))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) and predefinedtype != express_getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransportElementFixedTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransportElementNonFixedTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE))))) is not False def calc_IfcTriangulatedFaceSet_NumberOfTriangles(self): - coordindex = getattr(self, 'CoordIndex', INDETERMINATE) + coordindex = express_getattr(self, 'CoordIndex', INDETERMINATE) return sizeof(coordindex) class IfcTriangulatedIrregularNetwork_NotClosed: @@ -12553,7 +12563,7 @@ class IfcTriangulatedIrregularNetwork_NotClosed: @staticmethod def __call__(self): - assert (getattr(self, 'Closed', INDETERMINATE) == False) is not False + assert (express_getattr(self, 'Closed', INDETERMINATE) == False) is not False class IfcTrimmedCurve_Trim1ValuesConsistent: SCOPE = 'entity' @@ -12562,7 +12572,7 @@ class IfcTrimmedCurve_Trim1ValuesConsistent: @staticmethod def __call__(self): - trim1 = getattr(self, 'Trim1', INDETERMINATE) + trim1 = express_getattr(self, 'Trim1', INDETERMINATE) assert (hiindex(trim1) == 1 or typeof(express_getitem(trim1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(express_getitem(trim1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcTrimmedCurve_Trim2ValuesConsistent: @@ -12572,7 +12582,7 @@ class IfcTrimmedCurve_Trim2ValuesConsistent: @staticmethod def __call__(self): - trim2 = getattr(self, 'Trim2', INDETERMINATE) + trim2 = express_getattr(self, 'Trim2', INDETERMINATE) assert (hiindex(trim2) == 1 or typeof(express_getitem(trim2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(express_getitem(trim2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcTrimmedCurve_NoTrimOfBoundedCurves: @@ -12582,7 +12592,7 @@ class IfcTrimmedCurve_NoTrimOfBoundedCurves: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) assert (not 'ifc4x3_rc4.ifcboundedcurve' in typeof(basiscurve)) is not False class IfcTubeBundle_CorrectPredefinedType: @@ -12592,8 +12602,8 @@ class IfcTubeBundle_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTubeBundle_CorrectTypeAssigned: SCOPE = 'entity' @@ -12602,8 +12612,8 @@ class IfcTubeBundle_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifctubebundletype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifctubebundletype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTubeBundleType_CorrectPredefinedType: SCOPE = 'entity' @@ -12612,8 +12622,8 @@ class IfcTubeBundleType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTypeObject_NameRequired: SCOPE = 'entity' @@ -12622,7 +12632,7 @@ class IfcTypeObject_NameRequired: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcTypeObject_UniquePropertySetNames: SCOPE = 'entity' @@ -12631,7 +12641,7 @@ class IfcTypeObject_UniquePropertySetNames: @staticmethod def __call__(self): - haspropertysets = getattr(self, 'HasPropertySets', INDETERMINATE) + haspropertysets = express_getattr(self, 'HasPropertySets', INDETERMINATE) assert (not exists(haspropertysets) or IfcUniquePropertySetNames(haspropertysets)) is not False class IfcTypeProduct_ApplicableOccurrence: @@ -12641,7 +12651,7 @@ class IfcTypeProduct_ApplicableOccurrence: @staticmethod def __call__(self): - assert (not exists(lambda : express_getitem(getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or sizeof([temp for temp in getattr(express_getitem(getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not 'ifc4x3_rc4.ifcproduct' in typeof(temp)]) == 0) is not False + assert (not exists(lambda : express_getitem(express_getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or sizeof([temp for temp in express_getattr(express_getitem(express_getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not 'ifc4x3_rc4.ifcproduct' in typeof(temp)]) == 0) is not False class IfcUShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -12650,8 +12660,8 @@ class IfcUShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth / 2.0) is not False class IfcUShapeProfileDef_ValidWebThickness: @@ -12661,8 +12671,8 @@ class IfcUShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - flangewidth = getattr(self, 'FlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + flangewidth = express_getattr(self, 'FlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < flangewidth) is not False class IfcUnitAssignment_WR01: @@ -12672,7 +12682,7 @@ class IfcUnitAssignment_WR01: @staticmethod def __call__(self): - units = getattr(self, 'Units', INDETERMINATE) + units = express_getattr(self, 'Units', INDETERMINATE) assert IfcCorrectUnitAssignment(units) is not False class IfcUnitaryControlElement_CorrectPredefinedType: @@ -12682,8 +12692,8 @@ class IfcUnitaryControlElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcUnitaryControlElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12692,8 +12702,8 @@ class IfcUnitaryControlElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcunitarycontrolelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcunitarycontrolelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcUnitaryControlElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12702,8 +12712,8 @@ class IfcUnitaryControlElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcUnitaryEquipment_CorrectPredefinedType: SCOPE = 'entity' @@ -12712,8 +12722,8 @@ class IfcUnitaryEquipment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcUnitaryEquipment_CorrectTypeAssigned: SCOPE = 'entity' @@ -12722,8 +12732,8 @@ class IfcUnitaryEquipment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcunitaryequipmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcunitaryequipmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcUnitaryEquipmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -12732,8 +12742,8 @@ class IfcUnitaryEquipmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcValve_CorrectPredefinedType: SCOPE = 'entity' @@ -12742,8 +12752,8 @@ class IfcValve_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcValve_CorrectTypeAssigned: SCOPE = 'entity' @@ -12752,8 +12762,8 @@ class IfcValve_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcvalvetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcvalvetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcValveType_CorrectPredefinedType: SCOPE = 'entity' @@ -12762,8 +12772,8 @@ class IfcValveType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVector_MagGreaterOrEqualZero: SCOPE = 'entity' @@ -12772,12 +12782,12 @@ class IfcVector_MagGreaterOrEqualZero: @staticmethod def __call__(self): - magnitude = getattr(self, 'Magnitude', INDETERMINATE) + magnitude = express_getattr(self, 'Magnitude', INDETERMINATE) assert (magnitude >= 0.0) is not False def calc_IfcVector_Dim(self): - orientation = getattr(self, 'Orientation', INDETERMINATE) - return getattr(orientation, 'Dim', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return express_getattr(orientation, 'Dim', INDETERMINATE) class IfcVibrationDamper_CorrectPredefinedType: SCOPE = 'entity' @@ -12786,8 +12796,8 @@ class IfcVibrationDamper_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcVibrationDamper_CorrectTypeAssigned: SCOPE = 'entity' @@ -12796,8 +12806,8 @@ class IfcVibrationDamper_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcvibrationdampertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcvibrationdampertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcVibrationDamperType_CorrectPredefinedType: SCOPE = 'entity' @@ -12806,8 +12816,8 @@ class IfcVibrationDamperType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVibrationIsolator_CorrectPredefinedType: SCOPE = 'entity' @@ -12816,8 +12826,8 @@ class IfcVibrationIsolator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcVibrationIsolator_CorrectTypeAssigned: SCOPE = 'entity' @@ -12826,8 +12836,8 @@ class IfcVibrationIsolator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcvibrationisolatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcvibrationisolatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcVibrationIsolatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -12836,8 +12846,8 @@ class IfcVibrationIsolatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVoidingFeature_HasObjectType: SCOPE = 'entity' @@ -12846,8 +12856,8 @@ class IfcVoidingFeature_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcWall_CorrectPredefinedType: SCOPE = 'entity' @@ -12856,8 +12866,8 @@ class IfcWall_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWall_CorrectTypeAssigned: SCOPE = 'entity' @@ -12866,8 +12876,8 @@ class IfcWall_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcwalltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcwalltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWallElementedCase_HasDecomposition: SCOPE = 'entity' @@ -12876,7 +12886,7 @@ class IfcWallElementedCase_HasDecomposition: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'IsDecomposedBy', INDETERMINATE)) > 0) is not False + assert (hiindex(express_getattr(self, 'IsDecomposedBy', INDETERMINATE)) > 0) is not False class IfcWallStandardCase_HasMaterialLayerSetUsage: SCOPE = 'entity' @@ -12885,7 +12895,7 @@ class IfcWallStandardCase_HasMaterialLayerSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc4.ifcrelassociates.relatedobjects') if 'ifc4x3_rc4.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc4.ifcmateriallayersetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x3_rc4.ifcrelassociates.relatedobjects') if 'ifc4x3_rc4.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_rc4.ifcmateriallayersetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcWallType_CorrectPredefinedType: SCOPE = 'entity' @@ -12894,8 +12904,8 @@ class IfcWallType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWasteTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -12904,8 +12914,8 @@ class IfcWasteTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWasteTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -12914,8 +12924,8 @@ class IfcWasteTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcwasteterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcwasteterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWasteTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -12924,8 +12934,8 @@ class IfcWasteTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWindow_CorrectStyleAssigned: SCOPE = 'entity' @@ -12934,8 +12944,8 @@ class IfcWindow_CorrectStyleAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcwindowtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcwindowtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWindow_CorrectPredefinedType: SCOPE = 'entity' @@ -12944,8 +12954,8 @@ class IfcWindow_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWindow_CorrectTypeAssigned: SCOPE = 'entity' @@ -12954,8 +12964,8 @@ class IfcWindow_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcwindowtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_rc4.ifcwindowtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWindowLiningProperties_WR31: SCOPE = 'entity' @@ -12964,8 +12974,8 @@ class IfcWindowLiningProperties_WR31: @staticmethod def __call__(self): - liningdepth = getattr(self, 'LiningDepth', INDETERMINATE) - liningthickness = getattr(self, 'LiningThickness', INDETERMINATE) + liningdepth = express_getattr(self, 'LiningDepth', INDETERMINATE) + liningthickness = express_getattr(self, 'LiningThickness', INDETERMINATE) assert (not (exists(liningdepth) and (not exists(liningthickness)))) is not False class IfcWindowLiningProperties_WR32: @@ -12975,8 +12985,8 @@ class IfcWindowLiningProperties_WR32: @staticmethod def __call__(self): - firsttransomoffset = getattr(self, 'FirstTransomOffset', INDETERMINATE) - secondtransomoffset = getattr(self, 'SecondTransomOffset', INDETERMINATE) + firsttransomoffset = express_getattr(self, 'FirstTransomOffset', INDETERMINATE) + secondtransomoffset = express_getattr(self, 'SecondTransomOffset', INDETERMINATE) assert (not (not exists(firsttransomoffset) and exists(secondtransomoffset))) is not False class IfcWindowLiningProperties_WR33: @@ -12986,8 +12996,8 @@ class IfcWindowLiningProperties_WR33: @staticmethod def __call__(self): - firstmullionoffset = getattr(self, 'FirstMullionOffset', INDETERMINATE) - secondmullionoffset = getattr(self, 'SecondMullionOffset', INDETERMINATE) + firstmullionoffset = express_getattr(self, 'FirstMullionOffset', INDETERMINATE) + secondmullionoffset = express_getattr(self, 'SecondMullionOffset', INDETERMINATE) assert (not (not exists(firstmullionoffset) and exists(secondmullionoffset))) is not False class IfcWindowLiningProperties_WR34: @@ -12997,7 +13007,7 @@ class IfcWindowLiningProperties_WR34: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc4.ifcwindowtype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc4.ifcwindowstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc4.ifcwindowtype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc4.ifcwindowstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcWindowPanelProperties_ApplicableToType: SCOPE = 'entity' @@ -13006,7 +13016,7 @@ class IfcWindowPanelProperties_ApplicableToType: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc4.ifcwindowtype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc4.ifcwindowstyle' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_rc4.ifcwindowtype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or 'ifc4x3_rc4.ifcwindowstyle' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)))) is not False class IfcWindowType_CorrectPredefinedType: SCOPE = 'entity' @@ -13015,8 +13025,8 @@ class IfcWindowType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWorkCalendar_CorrectPredefinedType: SCOPE = 'entity' @@ -13025,8 +13035,8 @@ class IfcWorkCalendar_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWorkPlan_CorrectPredefinedType: SCOPE = 'entity' @@ -13035,8 +13045,8 @@ class IfcWorkPlan_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWorkSchedule_CorrectPredefinedType: SCOPE = 'entity' @@ -13045,8 +13055,8 @@ class IfcWorkSchedule_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcZShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -13055,8 +13065,8 @@ class IfcZShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth / 2.0) is not False class IfcZone_WR1: @@ -13066,19 +13076,19 @@ class IfcZone_WR1: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'IsGroupedBy', INDETERMINATE)) == 0 or sizeof([temp for temp in getattr(express_getitem(getattr(self, 'IsGroupedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not ('ifc4x3_rc4.ifczone' in typeof(temp) or 'ifc4x3_rc4.ifcspace' in typeof(temp) or 'ifc4x3_rc4.ifcspatialzone' in typeof(temp))]) == 0) is not False + assert (sizeof(express_getattr(self, 'IsGroupedBy', INDETERMINATE)) == 0 or sizeof([temp for temp in express_getattr(express_getitem(express_getattr(self, 'IsGroupedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not ('ifc4x3_rc4.ifczone' in typeof(temp) or 'ifc4x3_rc4.ifcspace' in typeof(temp) or 'ifc4x3_rc4.ifcspatialzone' in typeof(temp))]) == 0) is not False class IfcRepresentationContextSameWCS: SCOPE = 'file' @staticmethod def __call__(file): - IfcGeometricRepresentationContext = getattr(file, 'by_type', INDETERMINATE)('IfcGeometricRepresentationContext') + IfcGeometricRepresentationContext = express_getattr(file, 'by_type', INDETERMINATE)('IfcGeometricRepresentationContext') isdifferent = False if sizeof(IfcGeometricRepresentationContext) > 1: for i in range(2, hiindex(IfcGeometricRepresentationContext) + 1): - if getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE) != getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE): - isdifferent = not IfcSameValidPrecision(getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) or not IfcSameAxis2Placement(getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) + if express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE) != express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE): + isdifferent = not IfcSameValidPrecision(express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) or not IfcSameAxis2Placement(express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) if isdifferent == True: break assert (isdifferent == False) is not False @@ -13088,11 +13098,11 @@ class IfcSingleProjectInstance: @staticmethod def __call__(file): - IfcProject = getattr(file, 'by_type', INDETERMINATE)('IfcProject') + IfcProject = express_getattr(file, 'by_type', INDETERMINATE)('IfcProject') assert (sizeof(IfcProject) <= 1) is not False def IfcAssociatedSurface(arg): - surf = getattr(arg, 'BasisSurface', INDETERMINATE) + surf = express_getattr(arg, 'BasisSurface', INDETERMINATE) return surf def IfcBaseAxis(dim, axis1, axis2, axis3): @@ -13106,13 +13116,13 @@ def IfcBaseAxis(dim, axis1, axis2, axis3): if exists(axis2): factor = IfcDotProduct(axis2, express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) if factor < 0.0: - u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) elif exists(axis2): d1 = IfcNormalise(axis2) u = [IfcOrthogonalComplement(d1), d1] - u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) else: u = [IfcDirection(DirectionRatios=[1.0, 0.0]), IfcDirection(DirectionRatios=[0.0, 1.0])] return u @@ -13130,7 +13140,7 @@ def IfcBuild2Axes(refdirection): def IfcBuildAxes(axis, refdirection): d1 = nvl(IfcNormalise(axis), IfcDirection(DirectionRatios=[0.0, 0.0, 1.0])) d2 = IfcFirstProjAxis(d1, refdirection) - return [d2, getattr(IfcNormalise(IfcCrossProduct(d1, d2)), 'Orientation', INDETERMINATE), d1] + return [d2, express_getattr(IfcNormalise(IfcCrossProduct(d1, d2)), 'Orientation', INDETERMINATE), d1] def IfcConsecutiveSegments(segments): result = True @@ -13167,11 +13177,11 @@ def IfcConstraintsParamBSpline(degree, upknots, upcp, knotmult, knots): def IfcConvertDirectionInto2D(direction): direction2d = IfcDirection(DirectionRatios=[0.0, 1.0]) - temp = list(getattr(direction2d, 'DirectionRatios', INDETERMINATE)) - temp[1 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(direction, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(direction2d, 'DirectionRatios', INDETERMINATE)) + temp[1 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(direction, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) direction2d.DirectionRatios = temp - temp = list(getattr(direction2d, 'DirectionRatios', INDETERMINATE)) - temp[2 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(direction, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(direction2d, 'DirectionRatios', INDETERMINATE)) + temp[2 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(direction, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) direction2d.DirectionRatios = temp return direction2d @@ -13351,7 +13361,7 @@ def IfcCorrectLocalPlacement(axisplacement, relplacement): if 'ifc4x3_rc4.ifcaxis2placement2d' in typeof(axisplacement): return True if 'ifc4x3_rc4.ifcaxis2placement3d' in typeof(axisplacement): - if getattr(getattr(relplacement, 'RelativePlacement', INDETERMINATE), 'Dim', INDETERMINATE) == 3: + if express_getattr(express_getattr(relplacement, 'RelativePlacement', INDETERMINATE), 'Dim', INDETERMINATE) == 3: return True else: return False @@ -13362,27 +13372,27 @@ def IfcCorrectObjectAssignment(constraint, objects): count = 0 if not exists(constraint): return True - if constraint == getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE): + if constraint == express_getattr(IfcObjectTypeEnum, 'NOTDEFINED', INDETERMINATE): return True - elif constraint == getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'PRODUCT', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3_rc4.ifcproduct' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'PROCESS', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3_rc4.ifcprocess' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'CONTROL', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3_rc4.ifccontrol' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'RESOURCE', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3_rc4.ifcresource' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'ACTOR', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3_rc4.ifcactor' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'GROUP', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3_rc4.ifcgroup' in typeof(temp)]) return count == 0 - elif constraint == getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE): + elif constraint == express_getattr(IfcObjectTypeEnum, 'PROJECT', INDETERMINATE): count = sizeof([temp for temp in objects if not 'ifc4x3_rc4.ifcproject' in typeof(temp)]) return count == 0 else: @@ -13394,26 +13404,26 @@ def IfcCorrectUnitAssignment(units): monetaryunitnumber = 0 namedunitnames = express_set([]) derivedunitnames = express_set([]) - namedunitnumber = sizeof([temp for temp in units if 'ifc4x3_rc4.ifcnamedunit' in typeof(temp) and (not getattr(temp, 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE))]) - derivedunitnumber = sizeof([temp for temp in units if 'ifc4x3_rc4.ifcderivedunit' in typeof(temp) and (not getattr(temp, 'UnitType', INDETERMINATE) == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE))]) + namedunitnumber = sizeof([temp for temp in units if 'ifc4x3_rc4.ifcnamedunit' in typeof(temp) and (not express_getattr(temp, 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE))]) + derivedunitnumber = sizeof([temp for temp in units if 'ifc4x3_rc4.ifcderivedunit' in typeof(temp) and (not express_getattr(temp, 'UnitType', INDETERMINATE) == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE))]) monetaryunitnumber = sizeof([temp for temp in units if 'ifc4x3_rc4.ifcmonetaryunit' in typeof(temp)]) for i in range(1, sizeof(units) + 1): - if 'ifc4x3_rc4.ifcnamedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE)): - namedunitnames = namedunitnames + getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) - if 'ifc4x3_rc4.ifcderivedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE)): - derivedunitnames = derivedunitnames + getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) + if 'ifc4x3_rc4.ifcnamedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE)): + namedunitnames = namedunitnames + express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) + if 'ifc4x3_rc4.ifcderivedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE)): + derivedunitnames = derivedunitnames + express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) return sizeof(namedunitnames) == namedunitnumber and sizeof(derivedunitnames) == derivedunitnumber and (monetaryunitnumber <= 1) def IfcCrossProduct(arg1, arg2): - if (not exists(arg1) or getattr(arg1, 'Dim', INDETERMINATE) == 2) or (not exists(arg2) or getattr(arg2, 'Dim', INDETERMINATE) == 2): + if (not exists(arg1) or express_getattr(arg1, 'Dim', INDETERMINATE) == 2) or (not exists(arg2) or express_getattr(arg2, 'Dim', INDETERMINATE) == 2): return None else: - v1 = getattr(IfcNormalise(arg1), 'DirectionRatios', INDETERMINATE) - v2 = getattr(IfcNormalise(arg2), 'DirectionRatios', INDETERMINATE) + v1 = express_getattr(IfcNormalise(arg1), 'DirectionRatios', INDETERMINATE) + v2 = express_getattr(IfcNormalise(arg2), 'DirectionRatios', INDETERMINATE) res = IfcDirection(DirectionRatios=[express_getitem(v1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(v1, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(v1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) mag = 0.0 for i in range(1, 3 + 1): - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: @@ -13422,21 +13432,21 @@ def IfcCrossProduct(arg1, arg2): def IfcCurveDim(curve): if 'ifc4x3_rc4.ifcline' in typeof(curve): - return getattr(getattr(curve, 'Pnt', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Pnt', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_rc4.ifcconic' in typeof(curve): - return getattr(getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_rc4.ifcpolyline' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'Points', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'Points', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_rc4.ifctrimmedcurve' in typeof(curve): - return IfcCurveDim(getattr(curve, 'BasisCurve', INDETERMINATE)) + return IfcCurveDim(express_getattr(curve, 'BasisCurve', INDETERMINATE)) if 'ifc4x3_rc4.ifcgradientcurve' in typeof(curve): return 3 if 'ifc4x3_rc4.ifcsegmentedreferencecurve' in typeof(curve): return 3 if 'ifc4x3_rc4.ifccompositecurve' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_rc4.ifcbsplinecurve' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_rc4.ifcoffsetcurve2d' in typeof(curve): return 2 if 'ifc4x3_rc4.ifcoffsetcurve3d' in typeof(curve): @@ -13446,19 +13456,19 @@ def IfcCurveDim(curve): if 'ifc4x3_rc4.ifccurvesegment2d' in typeof(curve): return 2 if 'ifc4x3_rc4.ifcpolynomialcurve' in typeof(curve): - if not exists(getattr(curve, 'CoefficientsZ', INDETERMINATE)) and getattr(getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) == 2: + if not exists(express_getattr(curve, 'CoefficientsZ', INDETERMINATE)) and express_getattr(express_getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) == 2: return 2 return 3 if 'ifc4x3_rc4.ifcpcurve' in typeof(curve): return 3 if 'ifc4x3_rc4.ifcindexedpolycurve' in typeof(curve): - return getattr(getattr(curve, 'Points', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Points', INDETERMINATE), 'Dim', INDETERMINATE) return None def IfcCurveWeightsPositive(b): result = True - for i in range(0, getattr(b, 'UpperIndexOnControlPoints', INDETERMINATE) + 1): - if express_getitem(getattr(b, 'Weights', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: + for i in range(0, express_getattr(b, 'UpperIndexOnControlPoints', INDETERMINATE) + 1): + if express_getitem(express_getattr(b, 'Weights', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: result = False return result return result @@ -13466,13 +13476,13 @@ def IfcCurveWeightsPositive(b): def IfcDeriveDimensionalExponents(unitelements): result = IfcDimensionalExponents(0, 0, 0, 0, 0, 0, 0) for i in range(loindex(unitelements), hiindex(unitelements) + 1): - result.LengthExponent = getattr(result, 'LengthExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LengthExponent', INDETERMINATE) - result.MassExponent = getattr(result, 'MassExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'MassExponent', INDETERMINATE) - result.TimeExponent = getattr(result, 'TimeExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'TimeExponent', INDETERMINATE) - result.ElectricCurrentExponent = getattr(result, 'ElectricCurrentExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ElectricCurrentExponent', INDETERMINATE) - result.ThermodynamicTemperatureExponent = getattr(result, 'ThermodynamicTemperatureExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ThermodynamicTemperatureExponent', INDETERMINATE) - result.AmountOfSubstanceExponent = getattr(result, 'AmountOfSubstanceExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'AmountOfSubstanceExponent', INDETERMINATE) - result.LuminousIntensityExponent = getattr(result, 'LuminousIntensityExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LuminousIntensityExponent', INDETERMINATE) + result.LengthExponent = express_getattr(result, 'LengthExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LengthExponent', INDETERMINATE) + result.MassExponent = express_getattr(result, 'MassExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'MassExponent', INDETERMINATE) + result.TimeExponent = express_getattr(result, 'TimeExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'TimeExponent', INDETERMINATE) + result.ElectricCurrentExponent = express_getattr(result, 'ElectricCurrentExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ElectricCurrentExponent', INDETERMINATE) + result.ThermodynamicTemperatureExponent = express_getattr(result, 'ThermodynamicTemperatureExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ThermodynamicTemperatureExponent', INDETERMINATE) + result.AmountOfSubstanceExponent = express_getattr(result, 'AmountOfSubstanceExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'AmountOfSubstanceExponent', INDETERMINATE) + result.LuminousIntensityExponent = express_getattr(result, 'LuminousIntensityExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LuminousIntensityExponent', INDETERMINATE) return result def IfcDimensionsForSiUnit(n): @@ -13542,15 +13552,15 @@ def IfcDimensionsForSiUnit(n): def IfcDotProduct(arg1, arg2): if not exists(arg1) or not exists(arg2): scalar = None - elif getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + elif express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): scalar = None else: vec1 = IfcNormalise(arg1) vec2 = IfcNormalise(arg2) - ndim = getattr(arg1, 'Dim', INDETERMINATE) + ndim = express_getattr(arg1, 'Dim', INDETERMINATE) scalar = 0.0 for i in range(1, ndim + 1): - scalar = scalar + express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + scalar = scalar + express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return scalar def IfcFirstProjAxis(zaxis, arg): @@ -13559,36 +13569,36 @@ def IfcFirstProjAxis(zaxis, arg): else: z = IfcNormalise(zaxis) if not exists(arg): - if getattr(z, 'DirectionRatios', INDETERMINATE) != [1.0, 0.0, 0.0]: + if express_getattr(z, 'DirectionRatios', INDETERMINATE) != [1.0, 0.0, 0.0]: v = IfcDirection(DirectionRatios=[1.0, 0.0, 0.0]) else: v = IfcDirection(DirectionRatios=[0.0, 1.0, 0.0]) else: - if getattr(arg, 'Dim', INDETERMINATE) != 3: + if express_getattr(arg, 'Dim', INDETERMINATE) != 3: return None - if getattr(IfcCrossProduct(arg, z), 'Magnitude', INDETERMINATE) == 0.0: + if express_getattr(IfcCrossProduct(arg, z), 'Magnitude', INDETERMINATE) == 0.0: return None else: v = IfcNormalise(arg) xvec = IfcScalarTimesVector(IfcDotProduct(v, z), z) - xaxis = getattr(IfcVectorDifference(v, xvec), 'Orientation', INDETERMINATE) + xaxis = express_getattr(IfcVectorDifference(v, xvec), 'Orientation', INDETERMINATE) xaxis = IfcNormalise(xaxis) return xaxis def IfcGetBasisSurface(c): surfs = [] if 'ifc4x3_rc4.ifcpcurve' in typeof(c): - surfs = [getattr(c, 'BasisSurface', INDETERMINATE)] + surfs = [express_getattr(c, 'BasisSurface', INDETERMINATE)] elif 'ifc4x3_rc4.ifcsurfacecurve' in typeof(c): - n = sizeof(getattr(c, 'AssociatedGeometry', INDETERMINATE)) + n = sizeof(express_getattr(c, 'AssociatedGeometry', INDETERMINATE)) for i in range(1, n + 1): - surfs = surfs + IfcAssociatedSurface(express_getitem(getattr(c, 'AssociatedGeometry', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) + surfs = surfs + IfcAssociatedSurface(express_getitem(express_getattr(c, 'AssociatedGeometry', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) if 'ifc4x3_rc4.ifccompositecurveonsurface' in typeof(c): - n = sizeof(getattr(c, 'Segments', INDETERMINATE)) - surfs = IfcGetBasisSurface(getattr(express_getitem(getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) + n = sizeof(express_getattr(c, 'Segments', INDETERMINATE)) + surfs = IfcGetBasisSurface(express_getattr(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) if n > 1: for i in range(2, n + 1): - surfs = surfs * IfcGetBasisSurface(getattr(express_getitem(getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) + surfs = surfs * IfcGetBasisSurface(express_getattr(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) return surfs def IfcGradient(gradientcurve): @@ -13608,9 +13618,9 @@ def IfcListToArray(lis, low, u): def IfcLoopHeadToTail(aloop): p = True - n = sizeof(getattr(aloop, 'EdgeList', INDETERMINATE)) + n = sizeof(express_getattr(aloop, 'EdgeList', INDETERMINATE)) for i in range(2, n + 1): - p = p and getattr(express_getitem(getattr(aloop, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == getattr(express_getitem(getattr(aloop, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) + p = p and express_getattr(express_getitem(express_getattr(aloop, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == express_getattr(express_getitem(express_getattr(aloop, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) return p def IfcMakeArrayOfArray(lis, low1, u1, low2, u2): @@ -13628,10 +13638,10 @@ def IfcMakeArrayOfArray(lis, low1, u1, low2, u2): return res def IfcMlsTotalThickness(layerset): - max = getattr(express_getitem(getattr(layerset, 'MaterialLayers', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) - if sizeof(getattr(layerset, 'MaterialLayers', INDETERMINATE)) > 1: - for i in range(2, hiindex(getattr(layerset, 'MaterialLayers', INDETERMINATE)) + 1): - max = max + getattr(express_getitem(getattr(layerset, 'MaterialLayers', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) + max = express_getattr(express_getitem(express_getattr(layerset, 'MaterialLayers', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) + if sizeof(express_getattr(layerset, 'MaterialLayers', INDETERMINATE)) > 1: + for i in range(2, hiindex(express_getattr(layerset, 'MaterialLayers', INDETERMINATE)) + 1): + max = max + express_getattr(express_getitem(express_getattr(layerset, 'MaterialLayers', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) return max def IfcNormalise(arg): @@ -13642,25 +13652,25 @@ def IfcNormalise(arg): return None else: if 'ifc4x3_rc4.ifcvector' in typeof(arg): - ndim = getattr(arg, 'Dim', INDETERMINATE) - v.DirectionRatios = getattr(getattr(arg, 'Orientation', INDETERMINATE), 'DirectionRatios', INDETERMINATE) - vec.Magnitude = getattr(arg, 'Magnitude', INDETERMINATE) + ndim = express_getattr(arg, 'Dim', INDETERMINATE) + v.DirectionRatios = express_getattr(express_getattr(arg, 'Orientation', INDETERMINATE), 'DirectionRatios', INDETERMINATE) + vec.Magnitude = express_getattr(arg, 'Magnitude', INDETERMINATE) vec.Orientation = v - if getattr(arg, 'Magnitude', INDETERMINATE) == 0.0: + if express_getattr(arg, 'Magnitude', INDETERMINATE) == 0.0: return None else: vec.Magnitude = 1.0 else: - ndim = getattr(arg, 'Dim', INDETERMINATE) - v.DirectionRatios = getattr(arg, 'DirectionRatios', INDETERMINATE) + ndim = express_getattr(arg, 'Dim', INDETERMINATE) + v.DirectionRatios = express_getattr(arg, 'DirectionRatios', INDETERMINATE) mag = 0.0 for i in range(1, ndim + 1): - mag = mag + express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: mag = sqrt(mag) for i in range(1, ndim + 1): - temp = list(getattr(v, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) / mag + temp = list(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) / mag v.DirectionRatios = temp if 'ifc4x3_rc4.ifcvector' in typeof(arg): vec.Orientation = v @@ -13672,18 +13682,18 @@ def IfcNormalise(arg): return result def IfcOrthogonalComplement(vec): - if not exists(vec) or getattr(vec, 'Dim', INDETERMINATE) != 2: + if not exists(vec) or express_getattr(vec, 'Dim', INDETERMINATE) != 2: return None else: - result = IfcDirection(DirectionRatios=[-express_getitem(getattr(vec, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(vec, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) + result = IfcDirection(DirectionRatios=[-express_getitem(express_getattr(vec, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(vec, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) return result def IfcPathHeadToTail(apath): n = 0 p = unknown - n = sizeof(getattr(apath, 'EdgeList', INDETERMINATE)) + n = sizeof(express_getattr(apath, 'EdgeList', INDETERMINATE)) for i in range(2, n + 1): - p = p and getattr(express_getitem(getattr(apath, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == getattr(express_getitem(getattr(apath, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) + p = p and express_getattr(express_getitem(express_getattr(apath, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == express_getattr(express_getitem(express_getattr(apath, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) return p def IfcPointListDim(pointlist): @@ -13694,32 +13704,32 @@ def IfcPointListDim(pointlist): return None def IfcSameAxis2Placement(ap1, ap2, epsilon): - return IfcSameDirection(express_getitem(getattr(ap1, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(ap2, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameDirection(express_getitem(getattr(ap1, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(ap2, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameCartesianPoint(getattr(ap1, 'Location', INDETERMINATE), getattr(ap1, 'Location', INDETERMINATE), epsilon) + return IfcSameDirection(express_getitem(express_getattr(ap1, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(ap2, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameDirection(express_getitem(express_getattr(ap1, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(ap2, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameCartesianPoint(express_getattr(ap1, 'Location', INDETERMINATE), express_getattr(ap1, 'Location', INDETERMINATE), epsilon) def IfcSameCartesianPoint(cp1, cp2, epsilon): - cp1x = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - cp1y = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp1x = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp1y = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) cp1z = 0 - cp2x = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - cp2y = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp2x = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp2y = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) cp2z = 0 - if sizeof(getattr(cp1, 'Coordinates', INDETERMINATE)) > 2: - cp1z = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - if sizeof(getattr(cp2, 'Coordinates', INDETERMINATE)) > 2: - cp2z = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(cp1, 'Coordinates', INDETERMINATE)) > 2: + cp1z = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(cp2, 'Coordinates', INDETERMINATE)) > 2: + cp2z = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return IfcSameValue(cp1x, cp2x, epsilon) and IfcSameValue(cp1y, cp2y, epsilon) and IfcSameValue(cp1z, cp2z, epsilon) def IfcSameDirection(dir1, dir2, epsilon): - dir1x = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - dir1y = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir1x = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir1y = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) dir1z = 0 - dir2x = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - dir2y = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir2x = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir2y = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) dir2z = 0 - if sizeof(getattr(dir1, 'DirectionRatios', INDETERMINATE)) > 2: - dir1z = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - if sizeof(getattr(dir2, 'DirectionRatios', INDETERMINATE)) > 2: - dir2z = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(dir1, 'DirectionRatios', INDETERMINATE)) > 2: + dir1z = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(dir2, 'DirectionRatios', INDETERMINATE)) > 2: + dir2z = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return IfcSameValue(dir1x, dir2x, epsilon) and IfcSameValue(dir1y, dir2y, epsilon) and IfcSameValue(dir1z, dir2z, epsilon) def IfcSameValidPrecision(epsilon1, epsilon2): @@ -13740,15 +13750,15 @@ def IfcScalarTimesVector(scalar, vec): return None else: if 'ifc4x3_rc4.ifcvector' in typeof(vec): - v = getattr(vec, 'Orientation', INDETERMINATE) - mag = scalar * getattr(vec, 'Magnitude', INDETERMINATE) + v = express_getattr(vec, 'Orientation', INDETERMINATE) + mag = scalar * express_getattr(vec, 'Magnitude', INDETERMINATE) else: v = vec mag = scalar if mag < 0.0: - for i in range(1, sizeof(getattr(v, 'DirectionRatios', INDETERMINATE)) + 1): - temp = list(getattr(v, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + for i in range(1, sizeof(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + 1): + temp = list(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) v.DirectionRatios = temp mag = -mag result = IfcVector(Orientation=IfcNormalise(v), Magnitude=mag) @@ -13764,71 +13774,71 @@ def IfcSecondProjAxis(zaxis, xaxis, arg): temp = IfcScalarTimesVector(IfcDotProduct(v, xaxis), xaxis) yaxis = IfcVectorDifference(yaxis, temp) yaxis = IfcNormalise(yaxis) - return getattr(yaxis, 'Orientation', INDETERMINATE) + return express_getattr(yaxis, 'Orientation', INDETERMINATE) def IfcShapeRepresentationTypes(reptype, items): count = 0 - if getattr(reptype, 'lower', INDETERMINATE)() == 'point': + if express_getattr(reptype, 'lower', INDETERMINATE)() == 'point': count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifcpoint' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'pointcloud': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'pointcloud': count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifccartesianpointlist3d' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve': count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifccurve' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve2d': - count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifccurve' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 2]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve3d': - count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifccurve' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 3]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve2d': + count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifccurve' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 2]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve3d': + count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifccurve' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 3]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface': count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifcsurface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface2d': - count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifcsurface' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 2]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface3d': - count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifcsurface' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 3]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'fillarea': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface2d': + count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifcsurface' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 2]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface3d': + count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifcsurface' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 3]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'fillarea': count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifcannotationfillarea' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'text': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'text': count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifctextliteral' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsurface': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsurface': count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifcbsplinesurface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'annotation2d': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'annotation2d': count = sizeof([temp for temp in items if sizeof(typeof(temp) * ['ifc4x3_rc4.ifcpoint', 'ifc4x3_rc4.ifccurve', 'ifc4x3_rc4.ifcgeometriccurveset', 'ifc4x3_rc4.ifcannotationfillarea', 'ifc4x3_rc4.ifctextliteral']) == 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'geometricset': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'geometricset': count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifcgeometricset' in typeof(temp) or 'ifc4x3_rc4.ifcpoint' in typeof(temp) or 'ifc4x3_rc4.ifccurve' in typeof(temp) or ('ifc4x3_rc4.ifcsurface' in typeof(temp))]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'geometriccurveset': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'geometriccurveset': count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifcgeometriccurveset' in typeof(temp) or 'ifc4x3_rc4.ifcgeometricset' in typeof(temp) or 'ifc4x3_rc4.ifcpoint' in typeof(temp) or ('ifc4x3_rc4.ifccurve' in typeof(temp))]) for i in range(1, hiindex(items) + 1): if 'ifc4x3_rc4.ifcgeometricset' in typeof(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - if sizeof([temp for temp in getattr(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Elements', INDETERMINATE) if 'ifc4x3_rc4.ifcsurface' in typeof(temp)]) > 0: + if sizeof([temp for temp in express_getattr(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Elements', INDETERMINATE) if 'ifc4x3_rc4.ifcsurface' in typeof(temp)]) > 0: count = count - 1 - elif getattr(reptype, 'lower', INDETERMINATE)() == 'tessellation': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'tessellation': count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifctessellateditem' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surfaceorsolidmodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surfaceorsolidmodel': count = sizeof([temp for temp in items if sizeof(['ifc4x3_rc4.ifctessellateditem', 'ifc4x3_rc4.ifcshellbasedsurfacemodel', 'ifc4x3_rc4.ifcfacebasedsurfacemodel', 'ifc4x3_rc4.ifcsolidmodel'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surfacemodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surfacemodel': count = sizeof([temp for temp in items if sizeof(['ifc4x3_rc4.ifctessellateditem', 'ifc4x3_rc4.ifcshellbasedsurfacemodel', 'ifc4x3_rc4.ifcfacebasedsurfacemodel'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'solidmodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'solidmodel': count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifcsolidmodel' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'sweptsolid': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'sweptsolid': count = sizeof([temp for temp in items if sizeof(['ifc4x3_rc4.ifcextrudedareasolid', 'ifc4x3_rc4.ifcrevolvedareasolid'] * typeof(temp)) >= 1 and sizeof(['ifc4x3_rc4.ifcextrudedareasolidtapered', 'ifc4x3_rc4.ifcrevolvedareasolidtapered'] * typeof(temp)) == 0]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsweptsolid': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsweptsolid': count = sizeof([temp for temp in items if sizeof(['ifc4x3_rc4.ifcsweptareasolid', 'ifc4x3_rc4.ifcsweptdisksolid', 'ifc4x3_rc4.ifcsectionedsolidhorizontal'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'csg': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'csg': count = sizeof([temp for temp in items if sizeof(['ifc4x3_rc4.ifcbooleanresult', 'ifc4x3_rc4.ifccsgprimitive3d', 'ifc4x3_rc4.ifccsgsolid'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'clipping': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'clipping': count = sizeof([temp for temp in items if sizeof(['ifc4x3_rc4.ifccsgsolid', 'ifc4x3_rc4.ifcbooleanclippingresult'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'brep': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'brep': count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifcfacetedbrep' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedbrep': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedbrep': count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifcmanifoldsolidbrep' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'boundingbox': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'boundingbox': count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifcboundingbox' in typeof(temp)]) if sizeof(items) > 1: count = 0 - elif getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedspine': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedspine': count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifcsectionedspine' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'lightsource': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'lightsource': count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifclightsource' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'mappedrepresentation': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'mappedrepresentation': count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifcmappeditem' in typeof(temp)]) else: return None @@ -13836,9 +13846,9 @@ def IfcShapeRepresentationTypes(reptype, items): def IfcSurfaceWeightsPositive(b): result = True - weights = getattr(b, 'Weights', INDETERMINATE) - for i in range(0, getattr(b, 'UUpper', INDETERMINATE) + 1): - for j in range(0, getattr(b, 'VUpper', INDETERMINATE) + 1): + weights = express_getattr(b, 'Weights', INDETERMINATE) + for i in range(0, express_getattr(b, 'UUpper', INDETERMINATE) + 1): + for j in range(0, express_getattr(b, 'VUpper', INDETERMINATE) + 1): if express_getitem(express_getitem(weights, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), j - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: result = False return result @@ -13848,28 +13858,28 @@ def IfcTaperedSweptAreaProfiles(startarea, endarea): result = False if 'ifc4x3_rc4.ifcparameterizedprofiledef' in typeof(startarea): if 'ifc4x3_rc4.ifcderivedprofiledef' in typeof(endarea): - result = startarea == getattr(endarea, 'ParentProfile', INDETERMINATE) + result = startarea == express_getattr(endarea, 'ParentProfile', INDETERMINATE) else: result = typeof(startarea) == typeof(endarea) elif 'ifc4x3_rc4.ifcderivedprofiledef' in typeof(endarea): - result = startarea == getattr(endarea, 'ParentProfile', INDETERMINATE) + result = startarea == express_getattr(endarea, 'ParentProfile', INDETERMINATE) else: result = False return result def IfcTopologyRepresentationTypes(reptype, items): count = 0 - if getattr(reptype, 'lower', INDETERMINATE)() == 'vertex': + if express_getattr(reptype, 'lower', INDETERMINATE)() == 'vertex': count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifcvertex' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'edge': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'edge': count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifcedge' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'path': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'path': count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifcpath' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'face': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'face': count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifcface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'shell': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'shell': count = sizeof([temp for temp in items if 'ifc4x3_rc4.ifcopenshell' in typeof(temp) or 'ifc4x3_rc4.ifcclosedshell' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'undefined': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'undefined': return True else: return None @@ -13880,7 +13890,7 @@ def IfcUniqueDefinitionNames(relations): if sizeof(relations) == 0: return True for i in range(1, hiindex(relations) + 1): - definition = getattr(express_getitem(relations, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingPropertyDefinition', INDETERMINATE) + definition = express_getattr(express_getitem(relations, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingPropertyDefinition', INDETERMINATE) if 'ifc4x3_rc4.ifcpropertysetdefinition' in typeof(definition): properties = properties + definition elif 'ifc4x3_rc4.ifcpropertysetdefinitionset' in typeof(definition): @@ -13893,7 +13903,7 @@ def IfcUniqueDefinitionNames(relations): def IfcUniquePropertyName(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcUniquePropertySetNames(properties): @@ -13901,7 +13911,7 @@ def IfcUniquePropertySetNames(properties): unnamed = 0 for i in range(1, hiindex(properties) + 1): if 'ifc4x3_rc4.ifcpropertyset' in typeof(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) else: unnamed = unnamed + 1 return sizeof(names) + unnamed == sizeof(properties) @@ -13909,41 +13919,41 @@ def IfcUniquePropertySetNames(properties): def IfcUniquePropertyTemplateNames(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcUniqueQuantityNames(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcVectorDifference(arg1, arg2): - if (not exists(arg1) or not exists(arg2)) or getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + if (not exists(arg1) or not exists(arg2)) or express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): return None else: if 'ifc4x3_rc4.ifcvector' in typeof(arg1): - mag1 = getattr(arg1, 'Magnitude', INDETERMINATE) - vec1 = getattr(arg1, 'Orientation', INDETERMINATE) + mag1 = express_getattr(arg1, 'Magnitude', INDETERMINATE) + vec1 = express_getattr(arg1, 'Orientation', INDETERMINATE) else: mag1 = 1.0 vec1 = arg1 if 'ifc4x3_rc4.ifcvector' in typeof(arg2): - mag2 = getattr(arg2, 'Magnitude', INDETERMINATE) - vec2 = getattr(arg2, 'Orientation', INDETERMINATE) + mag2 = express_getattr(arg2, 'Magnitude', INDETERMINATE) + vec2 = express_getattr(arg2, 'Orientation', INDETERMINATE) else: mag2 = 1.0 vec2 = arg2 vec1 = IfcNormalise(vec1) vec2 = IfcNormalise(vec2) - ndim = sizeof(getattr(vec1, 'DirectionRatios', INDETERMINATE)) + ndim = sizeof(express_getattr(vec1, 'DirectionRatios', INDETERMINATE)) mag = 0.0 res = IfcDirection(DirectionRatios=[0.0] * ndim) for i in range(1, ndim + 1): - temp = list(getattr(res, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - mag2 * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(res, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - mag2 * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) res.DirectionRatios = temp - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: @@ -13951,31 +13961,31 @@ def IfcVectorDifference(arg1, arg2): return result def IfcVectorSum(arg1, arg2): - if (not exists(arg1) or not exists(arg2)) or getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + if (not exists(arg1) or not exists(arg2)) or express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): return None else: if 'ifc4x3_rc4.ifcvector' in typeof(arg1): - mag1 = getattr(arg1, 'Magnitude', INDETERMINATE) - vec1 = getattr(arg1, 'Orientation', INDETERMINATE) + mag1 = express_getattr(arg1, 'Magnitude', INDETERMINATE) + vec1 = express_getattr(arg1, 'Orientation', INDETERMINATE) else: mag1 = 1.0 vec1 = arg1 if 'ifc4x3_rc4.ifcvector' in typeof(arg2): - mag2 = getattr(arg2, 'Magnitude', INDETERMINATE) - vec2 = getattr(arg2, 'Orientation', INDETERMINATE) + mag2 = express_getattr(arg2, 'Magnitude', INDETERMINATE) + vec2 = express_getattr(arg2, 'Orientation', INDETERMINATE) else: mag2 = 1.0 vec2 = arg2 vec1 = IfcNormalise(vec1) vec2 = IfcNormalise(vec2) - ndim = sizeof(getattr(vec1, 'DirectionRatios', INDETERMINATE)) + ndim = sizeof(express_getattr(vec1, 'DirectionRatios', INDETERMINATE)) mag = 0.0 res = IfcDirection(DirectionRatios=[0.0] * ndim) for i in range(1, ndim + 1): - temp = list(getattr(res, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag2 * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(res, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag2 * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) res.DirectionRatios = temp - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_TC1.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_TC1.py index b607cf8b3a..ce2c064993 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_TC1.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_TC1.py @@ -1,5 +1,8 @@ import ifcopenshell +def is_indeterminate(v): + return v is None or type(v).__name__ == 'indeterminate_type' + def exists(v): if callable(v): try: @@ -7,10 +10,10 @@ def exists(v): except IndexError as e: return False else: - return v is not None + return not is_indeterminate(v) def nvl(v, default): - return v if v is not None else default + return v if not is_indeterminate(v) else default def is_entity(inst): if isinstance(inst, ifcopenshell.entity_instance): @@ -22,13 +25,13 @@ def is_entity(inst): def express_len(v): if isinstance(v, ifcopenshell.entity_instance) and (not is_entity(v)): v = v[0] - elif v is None or v is INDETERMINATE: + elif is_indeterminate(v): return INDETERMINATE return len(v) old_range = range def range(*args): - if INDETERMINATE in args: + if any(map(is_indeterminate, args)): return yield from old_range(*args) sizeof = express_len @@ -80,6 +83,13 @@ def express_getitem(aggr, idx, default): return aggr[idx] except IndexError as e: return None + +def express_getattr(aggr, name, default): + v = getattr(aggr, name, default) + if v is None: + return default + else: + return v EXPRESS_ONE_BASED_INDEXING = 1 def typeof(inst): @@ -140,2363 +150,2363 @@ INDETERMINATE = indeterminate_type() class enum_namespace: def __getattr__(self, k): - return getattr(k, 'upper', INDETERMINATE)() + return express_getattr(k, 'upper', INDETERMINATE)() IfcActionRequestTypeEnum = enum_namespace() -email = getattr(IfcActionRequestTypeEnum, 'EMAIL', INDETERMINATE) -fax = getattr(IfcActionRequestTypeEnum, 'FAX', INDETERMINATE) -phone = getattr(IfcActionRequestTypeEnum, 'PHONE', INDETERMINATE) -post = getattr(IfcActionRequestTypeEnum, 'POST', INDETERMINATE) -verbal = getattr(IfcActionRequestTypeEnum, 'VERBAL', INDETERMINATE) -userdefined = getattr(IfcActionRequestTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionRequestTypeEnum, 'NOTDEFINED', INDETERMINATE) +email = IfcActionRequestTypeEnum.EMAIL +fax = IfcActionRequestTypeEnum.FAX +phone = IfcActionRequestTypeEnum.PHONE +post = IfcActionRequestTypeEnum.POST +verbal = IfcActionRequestTypeEnum.VERBAL +userdefined = IfcActionRequestTypeEnum.USERDEFINED +notdefined = IfcActionRequestTypeEnum.NOTDEFINED IfcActionSourceTypeEnum = enum_namespace() -brakes = getattr(IfcActionSourceTypeEnum, 'BRAKES', INDETERMINATE) -buoyancy = getattr(IfcActionSourceTypeEnum, 'BUOYANCY', INDETERMINATE) -completion_g1 = getattr(IfcActionSourceTypeEnum, 'COMPLETION_G1', INDETERMINATE) -creep = getattr(IfcActionSourceTypeEnum, 'CREEP', INDETERMINATE) -current = getattr(IfcActionSourceTypeEnum, 'CURRENT', INDETERMINATE) -dead_load_g = getattr(IfcActionSourceTypeEnum, 'DEAD_LOAD_G', INDETERMINATE) -earthquake_e = getattr(IfcActionSourceTypeEnum, 'EARTHQUAKE_E', INDETERMINATE) -erection = getattr(IfcActionSourceTypeEnum, 'ERECTION', INDETERMINATE) -fire = getattr(IfcActionSourceTypeEnum, 'FIRE', INDETERMINATE) -ice = getattr(IfcActionSourceTypeEnum, 'ICE', INDETERMINATE) -impact = getattr(IfcActionSourceTypeEnum, 'IMPACT', INDETERMINATE) -impulse = getattr(IfcActionSourceTypeEnum, 'IMPULSE', INDETERMINATE) -lack_of_fit = getattr(IfcActionSourceTypeEnum, 'LACK_OF_FIT', INDETERMINATE) -live_load_q = getattr(IfcActionSourceTypeEnum, 'LIVE_LOAD_Q', INDETERMINATE) -prestressing_p = getattr(IfcActionSourceTypeEnum, 'PRESTRESSING_P', INDETERMINATE) -propping = getattr(IfcActionSourceTypeEnum, 'PROPPING', INDETERMINATE) -rain = getattr(IfcActionSourceTypeEnum, 'RAIN', INDETERMINATE) -settlement_u = getattr(IfcActionSourceTypeEnum, 'SETTLEMENT_U', INDETERMINATE) -shrinkage = getattr(IfcActionSourceTypeEnum, 'SHRINKAGE', INDETERMINATE) -snow_s = getattr(IfcActionSourceTypeEnum, 'SNOW_S', INDETERMINATE) -system_imperfection = getattr(IfcActionSourceTypeEnum, 'SYSTEM_IMPERFECTION', INDETERMINATE) -temperature_t = getattr(IfcActionSourceTypeEnum, 'TEMPERATURE_T', INDETERMINATE) -transport = getattr(IfcActionSourceTypeEnum, 'TRANSPORT', INDETERMINATE) -wave = getattr(IfcActionSourceTypeEnum, 'WAVE', INDETERMINATE) -wind_w = getattr(IfcActionSourceTypeEnum, 'WIND_W', INDETERMINATE) -userdefined = getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionSourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +brakes = IfcActionSourceTypeEnum.BRAKES +buoyancy = IfcActionSourceTypeEnum.BUOYANCY +completion_g1 = IfcActionSourceTypeEnum.COMPLETION_G1 +creep = IfcActionSourceTypeEnum.CREEP +current = IfcActionSourceTypeEnum.CURRENT +dead_load_g = IfcActionSourceTypeEnum.DEAD_LOAD_G +earthquake_e = IfcActionSourceTypeEnum.EARTHQUAKE_E +erection = IfcActionSourceTypeEnum.ERECTION +fire = IfcActionSourceTypeEnum.FIRE +ice = IfcActionSourceTypeEnum.ICE +impact = IfcActionSourceTypeEnum.IMPACT +impulse = IfcActionSourceTypeEnum.IMPULSE +lack_of_fit = IfcActionSourceTypeEnum.LACK_OF_FIT +live_load_q = IfcActionSourceTypeEnum.LIVE_LOAD_Q +prestressing_p = IfcActionSourceTypeEnum.PRESTRESSING_P +propping = IfcActionSourceTypeEnum.PROPPING +rain = IfcActionSourceTypeEnum.RAIN +settlement_u = IfcActionSourceTypeEnum.SETTLEMENT_U +shrinkage = IfcActionSourceTypeEnum.SHRINKAGE +snow_s = IfcActionSourceTypeEnum.SNOW_S +system_imperfection = IfcActionSourceTypeEnum.SYSTEM_IMPERFECTION +temperature_t = IfcActionSourceTypeEnum.TEMPERATURE_T +transport = IfcActionSourceTypeEnum.TRANSPORT +wave = IfcActionSourceTypeEnum.WAVE +wind_w = IfcActionSourceTypeEnum.WIND_W +userdefined = IfcActionSourceTypeEnum.USERDEFINED +notdefined = IfcActionSourceTypeEnum.NOTDEFINED IfcActionTypeEnum = enum_namespace() -extraordinary_a = getattr(IfcActionTypeEnum, 'EXTRAORDINARY_A', INDETERMINATE) -permanent_g = getattr(IfcActionTypeEnum, 'PERMANENT_G', INDETERMINATE) -variable_q = getattr(IfcActionTypeEnum, 'VARIABLE_Q', INDETERMINATE) -userdefined = getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActionTypeEnum, 'NOTDEFINED', INDETERMINATE) +extraordinary_a = IfcActionTypeEnum.EXTRAORDINARY_A +permanent_g = IfcActionTypeEnum.PERMANENT_G +variable_q = IfcActionTypeEnum.VARIABLE_Q +userdefined = IfcActionTypeEnum.USERDEFINED +notdefined = IfcActionTypeEnum.NOTDEFINED IfcActuatorTypeEnum = enum_namespace() -electricactuator = getattr(IfcActuatorTypeEnum, 'ELECTRICACTUATOR', INDETERMINATE) -handoperatedactuator = getattr(IfcActuatorTypeEnum, 'HANDOPERATEDACTUATOR', INDETERMINATE) -hydraulicactuator = getattr(IfcActuatorTypeEnum, 'HYDRAULICACTUATOR', INDETERMINATE) -pneumaticactuator = getattr(IfcActuatorTypeEnum, 'PNEUMATICACTUATOR', INDETERMINATE) -thermostaticactuator = getattr(IfcActuatorTypeEnum, 'THERMOSTATICACTUATOR', INDETERMINATE) -userdefined = getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcActuatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +electricactuator = IfcActuatorTypeEnum.ELECTRICACTUATOR +handoperatedactuator = IfcActuatorTypeEnum.HANDOPERATEDACTUATOR +hydraulicactuator = IfcActuatorTypeEnum.HYDRAULICACTUATOR +pneumaticactuator = IfcActuatorTypeEnum.PNEUMATICACTUATOR +thermostaticactuator = IfcActuatorTypeEnum.THERMOSTATICACTUATOR +userdefined = IfcActuatorTypeEnum.USERDEFINED +notdefined = IfcActuatorTypeEnum.NOTDEFINED IfcAddressTypeEnum = enum_namespace() -distributionpoint = getattr(IfcAddressTypeEnum, 'DISTRIBUTIONPOINT', INDETERMINATE) -home = getattr(IfcAddressTypeEnum, 'HOME', INDETERMINATE) -office = getattr(IfcAddressTypeEnum, 'OFFICE', INDETERMINATE) -site = getattr(IfcAddressTypeEnum, 'SITE', INDETERMINATE) -userdefined = getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) +distributionpoint = IfcAddressTypeEnum.DISTRIBUTIONPOINT +home = IfcAddressTypeEnum.HOME +office = IfcAddressTypeEnum.OFFICE +site = IfcAddressTypeEnum.SITE +userdefined = IfcAddressTypeEnum.USERDEFINED IfcAirTerminalBoxTypeEnum = enum_namespace() -constantflow = getattr(IfcAirTerminalBoxTypeEnum, 'CONSTANTFLOW', INDETERMINATE) -variableflowpressuredependant = getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREDEPENDANT', INDETERMINATE) -variableflowpressureindependant = getattr(IfcAirTerminalBoxTypeEnum, 'VARIABLEFLOWPRESSUREINDEPENDANT', INDETERMINATE) -userdefined = getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirTerminalBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +constantflow = IfcAirTerminalBoxTypeEnum.CONSTANTFLOW +variableflowpressuredependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREDEPENDANT +variableflowpressureindependant = IfcAirTerminalBoxTypeEnum.VARIABLEFLOWPRESSUREINDEPENDANT +userdefined = IfcAirTerminalBoxTypeEnum.USERDEFINED +notdefined = IfcAirTerminalBoxTypeEnum.NOTDEFINED IfcAirTerminalTypeEnum = enum_namespace() -diffuser = getattr(IfcAirTerminalTypeEnum, 'DIFFUSER', INDETERMINATE) -grille = getattr(IfcAirTerminalTypeEnum, 'GRILLE', INDETERMINATE) -louvre = getattr(IfcAirTerminalTypeEnum, 'LOUVRE', INDETERMINATE) -register = getattr(IfcAirTerminalTypeEnum, 'REGISTER', INDETERMINATE) -userdefined = getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +diffuser = IfcAirTerminalTypeEnum.DIFFUSER +grille = IfcAirTerminalTypeEnum.GRILLE +louvre = IfcAirTerminalTypeEnum.LOUVRE +register = IfcAirTerminalTypeEnum.REGISTER +userdefined = IfcAirTerminalTypeEnum.USERDEFINED +notdefined = IfcAirTerminalTypeEnum.NOTDEFINED IfcAirToAirHeatRecoveryTypeEnum = enum_namespace() -fixedplatecounterflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECOUNTERFLOWEXCHANGER', INDETERMINATE) -fixedplatecrossflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATECROSSFLOWEXCHANGER', INDETERMINATE) -fixedplateparallelflowexchanger = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'FIXEDPLATEPARALLELFLOWEXCHANGER', INDETERMINATE) -heatpipe = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'HEATPIPE', INDETERMINATE) -rotarywheel = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'ROTARYWHEEL', INDETERMINATE) -runaroundcoilloop = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'RUNAROUNDCOILLOOP', INDETERMINATE) -thermosiphoncoiltypeheatexchangers = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONCOILTYPEHEATEXCHANGERS', INDETERMINATE) -thermosiphonsealedtubeheatexchangers = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'THERMOSIPHONSEALEDTUBEHEATEXCHANGERS', INDETERMINATE) -twintowerenthalpyrecoveryloops = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'TWINTOWERENTHALPYRECOVERYLOOPS', INDETERMINATE) -userdefined = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAirToAirHeatRecoveryTypeEnum, 'NOTDEFINED', INDETERMINATE) +fixedplatecounterflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECOUNTERFLOWEXCHANGER +fixedplatecrossflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATECROSSFLOWEXCHANGER +fixedplateparallelflowexchanger = IfcAirToAirHeatRecoveryTypeEnum.FIXEDPLATEPARALLELFLOWEXCHANGER +heatpipe = IfcAirToAirHeatRecoveryTypeEnum.HEATPIPE +rotarywheel = IfcAirToAirHeatRecoveryTypeEnum.ROTARYWHEEL +runaroundcoilloop = IfcAirToAirHeatRecoveryTypeEnum.RUNAROUNDCOILLOOP +thermosiphoncoiltypeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONCOILTYPEHEATEXCHANGERS +thermosiphonsealedtubeheatexchangers = IfcAirToAirHeatRecoveryTypeEnum.THERMOSIPHONSEALEDTUBEHEATEXCHANGERS +twintowerenthalpyrecoveryloops = IfcAirToAirHeatRecoveryTypeEnum.TWINTOWERENTHALPYRECOVERYLOOPS +userdefined = IfcAirToAirHeatRecoveryTypeEnum.USERDEFINED +notdefined = IfcAirToAirHeatRecoveryTypeEnum.NOTDEFINED IfcAlarmTypeEnum = enum_namespace() -bell = getattr(IfcAlarmTypeEnum, 'BELL', INDETERMINATE) -breakglassbutton = getattr(IfcAlarmTypeEnum, 'BREAKGLASSBUTTON', INDETERMINATE) -light = getattr(IfcAlarmTypeEnum, 'LIGHT', INDETERMINATE) -manualpullbox = getattr(IfcAlarmTypeEnum, 'MANUALPULLBOX', INDETERMINATE) -railwaycrocodile = getattr(IfcAlarmTypeEnum, 'RAILWAYCROCODILE', INDETERMINATE) -railwaydetonator = getattr(IfcAlarmTypeEnum, 'RAILWAYDETONATOR', INDETERMINATE) -siren = getattr(IfcAlarmTypeEnum, 'SIREN', INDETERMINATE) -whistle = getattr(IfcAlarmTypeEnum, 'WHISTLE', INDETERMINATE) -userdefined = getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAlarmTypeEnum, 'NOTDEFINED', INDETERMINATE) +bell = IfcAlarmTypeEnum.BELL +breakglassbutton = IfcAlarmTypeEnum.BREAKGLASSBUTTON +light = IfcAlarmTypeEnum.LIGHT +manualpullbox = IfcAlarmTypeEnum.MANUALPULLBOX +railwaycrocodile = IfcAlarmTypeEnum.RAILWAYCROCODILE +railwaydetonator = IfcAlarmTypeEnum.RAILWAYDETONATOR +siren = IfcAlarmTypeEnum.SIREN +whistle = IfcAlarmTypeEnum.WHISTLE +userdefined = IfcAlarmTypeEnum.USERDEFINED +notdefined = IfcAlarmTypeEnum.NOTDEFINED IfcAlignmentCantSegmentTypeEnum = enum_namespace() -blosscurve = getattr(IfcAlignmentCantSegmentTypeEnum, 'BLOSSCURVE', INDETERMINATE) -constantcant = getattr(IfcAlignmentCantSegmentTypeEnum, 'CONSTANTCANT', INDETERMINATE) -cosinecurve = getattr(IfcAlignmentCantSegmentTypeEnum, 'COSINECURVE', INDETERMINATE) -helmertcurve = getattr(IfcAlignmentCantSegmentTypeEnum, 'HELMERTCURVE', INDETERMINATE) -lineartransition = getattr(IfcAlignmentCantSegmentTypeEnum, 'LINEARTRANSITION', INDETERMINATE) -sinecurve = getattr(IfcAlignmentCantSegmentTypeEnum, 'SINECURVE', INDETERMINATE) -viennesebend = getattr(IfcAlignmentCantSegmentTypeEnum, 'VIENNESEBEND', INDETERMINATE) +blosscurve = IfcAlignmentCantSegmentTypeEnum.BLOSSCURVE +constantcant = IfcAlignmentCantSegmentTypeEnum.CONSTANTCANT +cosinecurve = IfcAlignmentCantSegmentTypeEnum.COSINECURVE +helmertcurve = IfcAlignmentCantSegmentTypeEnum.HELMERTCURVE +lineartransition = IfcAlignmentCantSegmentTypeEnum.LINEARTRANSITION +sinecurve = IfcAlignmentCantSegmentTypeEnum.SINECURVE +viennesebend = IfcAlignmentCantSegmentTypeEnum.VIENNESEBEND IfcAlignmentHorizontalSegmentTypeEnum = enum_namespace() -blosscurve = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'BLOSSCURVE', INDETERMINATE) -circulararc = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CIRCULARARC', INDETERMINATE) -clothoid = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CLOTHOID', INDETERMINATE) -cosinecurve = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'COSINECURVE', INDETERMINATE) -cubic = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'CUBIC', INDETERMINATE) -helmertcurve = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'HELMERTCURVE', INDETERMINATE) -line = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'LINE', INDETERMINATE) -sinecurve = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'SINECURVE', INDETERMINATE) -viennesebend = getattr(IfcAlignmentHorizontalSegmentTypeEnum, 'VIENNESEBEND', INDETERMINATE) +blosscurve = IfcAlignmentHorizontalSegmentTypeEnum.BLOSSCURVE +circulararc = IfcAlignmentHorizontalSegmentTypeEnum.CIRCULARARC +clothoid = IfcAlignmentHorizontalSegmentTypeEnum.CLOTHOID +cosinecurve = IfcAlignmentHorizontalSegmentTypeEnum.COSINECURVE +cubic = IfcAlignmentHorizontalSegmentTypeEnum.CUBIC +helmertcurve = IfcAlignmentHorizontalSegmentTypeEnum.HELMERTCURVE +line = IfcAlignmentHorizontalSegmentTypeEnum.LINE +sinecurve = IfcAlignmentHorizontalSegmentTypeEnum.SINECURVE +viennesebend = IfcAlignmentHorizontalSegmentTypeEnum.VIENNESEBEND IfcAlignmentTypeEnum = enum_namespace() -userdefined = getattr(IfcAlignmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAlignmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcAlignmentTypeEnum.USERDEFINED +notdefined = IfcAlignmentTypeEnum.NOTDEFINED IfcAlignmentVerticalSegmentTypeEnum = enum_namespace() -circulararc = getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CIRCULARARC', INDETERMINATE) -clothoid = getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CLOTHOID', INDETERMINATE) -constantgradient = getattr(IfcAlignmentVerticalSegmentTypeEnum, 'CONSTANTGRADIENT', INDETERMINATE) -parabolicarc = getattr(IfcAlignmentVerticalSegmentTypeEnum, 'PARABOLICARC', INDETERMINATE) +circulararc = IfcAlignmentVerticalSegmentTypeEnum.CIRCULARARC +clothoid = IfcAlignmentVerticalSegmentTypeEnum.CLOTHOID +constantgradient = IfcAlignmentVerticalSegmentTypeEnum.CONSTANTGRADIENT +parabolicarc = IfcAlignmentVerticalSegmentTypeEnum.PARABOLICARC IfcAnalysisModelTypeEnum = enum_namespace() -in_plane_loading_2d = getattr(IfcAnalysisModelTypeEnum, 'IN_PLANE_LOADING_2D', INDETERMINATE) -loading_3d = getattr(IfcAnalysisModelTypeEnum, 'LOADING_3D', INDETERMINATE) -out_plane_loading_2d = getattr(IfcAnalysisModelTypeEnum, 'OUT_PLANE_LOADING_2D', INDETERMINATE) -userdefined = getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnalysisModelTypeEnum, 'NOTDEFINED', INDETERMINATE) +in_plane_loading_2d = IfcAnalysisModelTypeEnum.IN_PLANE_LOADING_2D +loading_3d = IfcAnalysisModelTypeEnum.LOADING_3D +out_plane_loading_2d = IfcAnalysisModelTypeEnum.OUT_PLANE_LOADING_2D +userdefined = IfcAnalysisModelTypeEnum.USERDEFINED +notdefined = IfcAnalysisModelTypeEnum.NOTDEFINED IfcAnalysisTheoryTypeEnum = enum_namespace() -first_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'FIRST_ORDER_THEORY', INDETERMINATE) -full_nonlinear_theory = getattr(IfcAnalysisTheoryTypeEnum, 'FULL_NONLINEAR_THEORY', INDETERMINATE) -second_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'SECOND_ORDER_THEORY', INDETERMINATE) -third_order_theory = getattr(IfcAnalysisTheoryTypeEnum, 'THIRD_ORDER_THEORY', INDETERMINATE) -userdefined = getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnalysisTheoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +first_order_theory = IfcAnalysisTheoryTypeEnum.FIRST_ORDER_THEORY +full_nonlinear_theory = IfcAnalysisTheoryTypeEnum.FULL_NONLINEAR_THEORY +second_order_theory = IfcAnalysisTheoryTypeEnum.SECOND_ORDER_THEORY +third_order_theory = IfcAnalysisTheoryTypeEnum.THIRD_ORDER_THEORY +userdefined = IfcAnalysisTheoryTypeEnum.USERDEFINED +notdefined = IfcAnalysisTheoryTypeEnum.NOTDEFINED IfcAnnotationTypeEnum = enum_namespace() -asbuiltarea = getattr(IfcAnnotationTypeEnum, 'ASBUILTAREA', INDETERMINATE) -asbuiltline = getattr(IfcAnnotationTypeEnum, 'ASBUILTLINE', INDETERMINATE) -asbuiltpoint = getattr(IfcAnnotationTypeEnum, 'ASBUILTPOINT', INDETERMINATE) -assumedarea = getattr(IfcAnnotationTypeEnum, 'ASSUMEDAREA', INDETERMINATE) -assumedline = getattr(IfcAnnotationTypeEnum, 'ASSUMEDLINE', INDETERMINATE) -assumedpoint = getattr(IfcAnnotationTypeEnum, 'ASSUMEDPOINT', INDETERMINATE) -non_physical_signal = getattr(IfcAnnotationTypeEnum, 'NON_PHYSICAL_SIGNAL', INDETERMINATE) -superelevationevent = getattr(IfcAnnotationTypeEnum, 'SUPERELEVATIONEVENT', INDETERMINATE) -widthevent = getattr(IfcAnnotationTypeEnum, 'WIDTHEVENT', INDETERMINATE) -userdefined = getattr(IfcAnnotationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAnnotationTypeEnum, 'NOTDEFINED', INDETERMINATE) +asbuiltarea = IfcAnnotationTypeEnum.ASBUILTAREA +asbuiltline = IfcAnnotationTypeEnum.ASBUILTLINE +asbuiltpoint = IfcAnnotationTypeEnum.ASBUILTPOINT +assumedarea = IfcAnnotationTypeEnum.ASSUMEDAREA +assumedline = IfcAnnotationTypeEnum.ASSUMEDLINE +assumedpoint = IfcAnnotationTypeEnum.ASSUMEDPOINT +non_physical_signal = IfcAnnotationTypeEnum.NON_PHYSICAL_SIGNAL +superelevationevent = IfcAnnotationTypeEnum.SUPERELEVATIONEVENT +widthevent = IfcAnnotationTypeEnum.WIDTHEVENT +userdefined = IfcAnnotationTypeEnum.USERDEFINED +notdefined = IfcAnnotationTypeEnum.NOTDEFINED IfcArithmeticOperatorEnum = enum_namespace() -add = getattr(IfcArithmeticOperatorEnum, 'ADD', INDETERMINATE) -divide = getattr(IfcArithmeticOperatorEnum, 'DIVIDE', INDETERMINATE) -multiply = getattr(IfcArithmeticOperatorEnum, 'MULTIPLY', INDETERMINATE) -subtract = getattr(IfcArithmeticOperatorEnum, 'SUBTRACT', INDETERMINATE) +add = IfcArithmeticOperatorEnum.ADD +divide = IfcArithmeticOperatorEnum.DIVIDE +multiply = IfcArithmeticOperatorEnum.MULTIPLY +subtract = IfcArithmeticOperatorEnum.SUBTRACT IfcAssemblyPlaceEnum = enum_namespace() -factory = getattr(IfcAssemblyPlaceEnum, 'FACTORY', INDETERMINATE) -site = getattr(IfcAssemblyPlaceEnum, 'SITE', INDETERMINATE) -notdefined = getattr(IfcAssemblyPlaceEnum, 'NOTDEFINED', INDETERMINATE) +factory = IfcAssemblyPlaceEnum.FACTORY +site = IfcAssemblyPlaceEnum.SITE +notdefined = IfcAssemblyPlaceEnum.NOTDEFINED IfcAudioVisualApplianceTypeEnum = enum_namespace() -amplifier = getattr(IfcAudioVisualApplianceTypeEnum, 'AMPLIFIER', INDETERMINATE) -camera = getattr(IfcAudioVisualApplianceTypeEnum, 'CAMERA', INDETERMINATE) -communicationterminal = getattr(IfcAudioVisualApplianceTypeEnum, 'COMMUNICATIONTERMINAL', INDETERMINATE) -display = getattr(IfcAudioVisualApplianceTypeEnum, 'DISPLAY', INDETERMINATE) -microphone = getattr(IfcAudioVisualApplianceTypeEnum, 'MICROPHONE', INDETERMINATE) -player = getattr(IfcAudioVisualApplianceTypeEnum, 'PLAYER', INDETERMINATE) -projector = getattr(IfcAudioVisualApplianceTypeEnum, 'PROJECTOR', INDETERMINATE) -receiver = getattr(IfcAudioVisualApplianceTypeEnum, 'RECEIVER', INDETERMINATE) -recordingequipment = getattr(IfcAudioVisualApplianceTypeEnum, 'RECORDINGEQUIPMENT', INDETERMINATE) -speaker = getattr(IfcAudioVisualApplianceTypeEnum, 'SPEAKER', INDETERMINATE) -switcher = getattr(IfcAudioVisualApplianceTypeEnum, 'SWITCHER', INDETERMINATE) -telephone = getattr(IfcAudioVisualApplianceTypeEnum, 'TELEPHONE', INDETERMINATE) -tuner = getattr(IfcAudioVisualApplianceTypeEnum, 'TUNER', INDETERMINATE) -userdefined = getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcAudioVisualApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +amplifier = IfcAudioVisualApplianceTypeEnum.AMPLIFIER +camera = IfcAudioVisualApplianceTypeEnum.CAMERA +communicationterminal = IfcAudioVisualApplianceTypeEnum.COMMUNICATIONTERMINAL +display = IfcAudioVisualApplianceTypeEnum.DISPLAY +microphone = IfcAudioVisualApplianceTypeEnum.MICROPHONE +player = IfcAudioVisualApplianceTypeEnum.PLAYER +projector = IfcAudioVisualApplianceTypeEnum.PROJECTOR +receiver = IfcAudioVisualApplianceTypeEnum.RECEIVER +recordingequipment = IfcAudioVisualApplianceTypeEnum.RECORDINGEQUIPMENT +speaker = IfcAudioVisualApplianceTypeEnum.SPEAKER +switcher = IfcAudioVisualApplianceTypeEnum.SWITCHER +telephone = IfcAudioVisualApplianceTypeEnum.TELEPHONE +tuner = IfcAudioVisualApplianceTypeEnum.TUNER +userdefined = IfcAudioVisualApplianceTypeEnum.USERDEFINED +notdefined = IfcAudioVisualApplianceTypeEnum.NOTDEFINED IfcBSplineCurveForm = enum_namespace() -circular_arc = getattr(IfcBSplineCurveForm, 'CIRCULAR_ARC', INDETERMINATE) -elliptic_arc = getattr(IfcBSplineCurveForm, 'ELLIPTIC_ARC', INDETERMINATE) -hyperbolic_arc = getattr(IfcBSplineCurveForm, 'HYPERBOLIC_ARC', INDETERMINATE) -parabolic_arc = getattr(IfcBSplineCurveForm, 'PARABOLIC_ARC', INDETERMINATE) -polyline_form = getattr(IfcBSplineCurveForm, 'POLYLINE_FORM', INDETERMINATE) -unspecified = getattr(IfcBSplineCurveForm, 'UNSPECIFIED', INDETERMINATE) +circular_arc = IfcBSplineCurveForm.CIRCULAR_ARC +elliptic_arc = IfcBSplineCurveForm.ELLIPTIC_ARC +hyperbolic_arc = IfcBSplineCurveForm.HYPERBOLIC_ARC +parabolic_arc = IfcBSplineCurveForm.PARABOLIC_ARC +polyline_form = IfcBSplineCurveForm.POLYLINE_FORM +unspecified = IfcBSplineCurveForm.UNSPECIFIED IfcBSplineSurfaceForm = enum_namespace() -conical_surf = getattr(IfcBSplineSurfaceForm, 'CONICAL_SURF', INDETERMINATE) -cylindrical_surf = getattr(IfcBSplineSurfaceForm, 'CYLINDRICAL_SURF', INDETERMINATE) -generalised_cone = getattr(IfcBSplineSurfaceForm, 'GENERALISED_CONE', INDETERMINATE) -plane_surf = getattr(IfcBSplineSurfaceForm, 'PLANE_SURF', INDETERMINATE) -quadric_surf = getattr(IfcBSplineSurfaceForm, 'QUADRIC_SURF', INDETERMINATE) -ruled_surf = getattr(IfcBSplineSurfaceForm, 'RULED_SURF', INDETERMINATE) -spherical_surf = getattr(IfcBSplineSurfaceForm, 'SPHERICAL_SURF', INDETERMINATE) -surf_of_linear_extrusion = getattr(IfcBSplineSurfaceForm, 'SURF_OF_LINEAR_EXTRUSION', INDETERMINATE) -surf_of_revolution = getattr(IfcBSplineSurfaceForm, 'SURF_OF_REVOLUTION', INDETERMINATE) -toroidal_surf = getattr(IfcBSplineSurfaceForm, 'TOROIDAL_SURF', INDETERMINATE) -unspecified = getattr(IfcBSplineSurfaceForm, 'UNSPECIFIED', INDETERMINATE) +conical_surf = IfcBSplineSurfaceForm.CONICAL_SURF +cylindrical_surf = IfcBSplineSurfaceForm.CYLINDRICAL_SURF +generalised_cone = IfcBSplineSurfaceForm.GENERALISED_CONE +plane_surf = IfcBSplineSurfaceForm.PLANE_SURF +quadric_surf = IfcBSplineSurfaceForm.QUADRIC_SURF +ruled_surf = IfcBSplineSurfaceForm.RULED_SURF +spherical_surf = IfcBSplineSurfaceForm.SPHERICAL_SURF +surf_of_linear_extrusion = IfcBSplineSurfaceForm.SURF_OF_LINEAR_EXTRUSION +surf_of_revolution = IfcBSplineSurfaceForm.SURF_OF_REVOLUTION +toroidal_surf = IfcBSplineSurfaceForm.TOROIDAL_SURF +unspecified = IfcBSplineSurfaceForm.UNSPECIFIED IfcBeamTypeEnum = enum_namespace() -beam = getattr(IfcBeamTypeEnum, 'BEAM', INDETERMINATE) -cornice = getattr(IfcBeamTypeEnum, 'CORNICE', INDETERMINATE) -diaphragm = getattr(IfcBeamTypeEnum, 'DIAPHRAGM', INDETERMINATE) -edgebeam = getattr(IfcBeamTypeEnum, 'EDGEBEAM', INDETERMINATE) -girder_segment = getattr(IfcBeamTypeEnum, 'GIRDER_SEGMENT', INDETERMINATE) -hatstone = getattr(IfcBeamTypeEnum, 'HATSTONE', INDETERMINATE) -hollowcore = getattr(IfcBeamTypeEnum, 'HOLLOWCORE', INDETERMINATE) -joist = getattr(IfcBeamTypeEnum, 'JOIST', INDETERMINATE) -lintel = getattr(IfcBeamTypeEnum, 'LINTEL', INDETERMINATE) -piercap = getattr(IfcBeamTypeEnum, 'PIERCAP', INDETERMINATE) -spandrel = getattr(IfcBeamTypeEnum, 'SPANDREL', INDETERMINATE) -t_beam = getattr(IfcBeamTypeEnum, 'T_BEAM', INDETERMINATE) -userdefined = getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +beam = IfcBeamTypeEnum.BEAM +cornice = IfcBeamTypeEnum.CORNICE +diaphragm = IfcBeamTypeEnum.DIAPHRAGM +edgebeam = IfcBeamTypeEnum.EDGEBEAM +girder_segment = IfcBeamTypeEnum.GIRDER_SEGMENT +hatstone = IfcBeamTypeEnum.HATSTONE +hollowcore = IfcBeamTypeEnum.HOLLOWCORE +joist = IfcBeamTypeEnum.JOIST +lintel = IfcBeamTypeEnum.LINTEL +piercap = IfcBeamTypeEnum.PIERCAP +spandrel = IfcBeamTypeEnum.SPANDREL +t_beam = IfcBeamTypeEnum.T_BEAM +userdefined = IfcBeamTypeEnum.USERDEFINED +notdefined = IfcBeamTypeEnum.NOTDEFINED IfcBearingTypeEnum = enum_namespace() -cylindrical = getattr(IfcBearingTypeEnum, 'CYLINDRICAL', INDETERMINATE) -disk = getattr(IfcBearingTypeEnum, 'DISK', INDETERMINATE) -elastomeric = getattr(IfcBearingTypeEnum, 'ELASTOMERIC', INDETERMINATE) -guide = getattr(IfcBearingTypeEnum, 'GUIDE', INDETERMINATE) -pot = getattr(IfcBearingTypeEnum, 'POT', INDETERMINATE) -rocker = getattr(IfcBearingTypeEnum, 'ROCKER', INDETERMINATE) -roller = getattr(IfcBearingTypeEnum, 'ROLLER', INDETERMINATE) -spherical = getattr(IfcBearingTypeEnum, 'SPHERICAL', INDETERMINATE) -userdefined = getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBearingTypeEnum, 'NOTDEFINED', INDETERMINATE) +cylindrical = IfcBearingTypeEnum.CYLINDRICAL +disk = IfcBearingTypeEnum.DISK +elastomeric = IfcBearingTypeEnum.ELASTOMERIC +guide = IfcBearingTypeEnum.GUIDE +pot = IfcBearingTypeEnum.POT +rocker = IfcBearingTypeEnum.ROCKER +roller = IfcBearingTypeEnum.ROLLER +spherical = IfcBearingTypeEnum.SPHERICAL +userdefined = IfcBearingTypeEnum.USERDEFINED +notdefined = IfcBearingTypeEnum.NOTDEFINED IfcBenchmarkEnum = enum_namespace() -equalto = getattr(IfcBenchmarkEnum, 'EQUALTO', INDETERMINATE) -greaterthan = getattr(IfcBenchmarkEnum, 'GREATERTHAN', INDETERMINATE) -greaterthanorequalto = getattr(IfcBenchmarkEnum, 'GREATERTHANOREQUALTO', INDETERMINATE) -includedin = getattr(IfcBenchmarkEnum, 'INCLUDEDIN', INDETERMINATE) -includes = getattr(IfcBenchmarkEnum, 'INCLUDES', INDETERMINATE) -lessthan = getattr(IfcBenchmarkEnum, 'LESSTHAN', INDETERMINATE) -lessthanorequalto = getattr(IfcBenchmarkEnum, 'LESSTHANOREQUALTO', INDETERMINATE) -notequalto = getattr(IfcBenchmarkEnum, 'NOTEQUALTO', INDETERMINATE) -notincludedin = getattr(IfcBenchmarkEnum, 'NOTINCLUDEDIN', INDETERMINATE) -notincludes = getattr(IfcBenchmarkEnum, 'NOTINCLUDES', INDETERMINATE) +equalto = IfcBenchmarkEnum.EQUALTO +greaterthan = IfcBenchmarkEnum.GREATERTHAN +greaterthanorequalto = IfcBenchmarkEnum.GREATERTHANOREQUALTO +includedin = IfcBenchmarkEnum.INCLUDEDIN +includes = IfcBenchmarkEnum.INCLUDES +lessthan = IfcBenchmarkEnum.LESSTHAN +lessthanorequalto = IfcBenchmarkEnum.LESSTHANOREQUALTO +notequalto = IfcBenchmarkEnum.NOTEQUALTO +notincludedin = IfcBenchmarkEnum.NOTINCLUDEDIN +notincludes = IfcBenchmarkEnum.NOTINCLUDES IfcBoilerTypeEnum = enum_namespace() -steam = getattr(IfcBoilerTypeEnum, 'STEAM', INDETERMINATE) -water = getattr(IfcBoilerTypeEnum, 'WATER', INDETERMINATE) -userdefined = getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBoilerTypeEnum, 'NOTDEFINED', INDETERMINATE) +steam = IfcBoilerTypeEnum.STEAM +water = IfcBoilerTypeEnum.WATER +userdefined = IfcBoilerTypeEnum.USERDEFINED +notdefined = IfcBoilerTypeEnum.NOTDEFINED IfcBooleanOperator = enum_namespace() -difference = getattr(IfcBooleanOperator, 'DIFFERENCE', INDETERMINATE) -intersection = getattr(IfcBooleanOperator, 'INTERSECTION', INDETERMINATE) -union = getattr(IfcBooleanOperator, 'UNION', INDETERMINATE) +difference = IfcBooleanOperator.DIFFERENCE +intersection = IfcBooleanOperator.INTERSECTION +union = IfcBooleanOperator.UNION IfcBridgePartTypeEnum = enum_namespace() -abutment = getattr(IfcBridgePartTypeEnum, 'ABUTMENT', INDETERMINATE) -deck = getattr(IfcBridgePartTypeEnum, 'DECK', INDETERMINATE) -deck_segment = getattr(IfcBridgePartTypeEnum, 'DECK_SEGMENT', INDETERMINATE) -foundation = getattr(IfcBridgePartTypeEnum, 'FOUNDATION', INDETERMINATE) -pier = getattr(IfcBridgePartTypeEnum, 'PIER', INDETERMINATE) -pier_segment = getattr(IfcBridgePartTypeEnum, 'PIER_SEGMENT', INDETERMINATE) -pylon = getattr(IfcBridgePartTypeEnum, 'PYLON', INDETERMINATE) -substructure = getattr(IfcBridgePartTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -superstructure = getattr(IfcBridgePartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -surfacestructure = getattr(IfcBridgePartTypeEnum, 'SURFACESTRUCTURE', INDETERMINATE) -userdefined = getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBridgePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +abutment = IfcBridgePartTypeEnum.ABUTMENT +deck = IfcBridgePartTypeEnum.DECK +deck_segment = IfcBridgePartTypeEnum.DECK_SEGMENT +foundation = IfcBridgePartTypeEnum.FOUNDATION +pier = IfcBridgePartTypeEnum.PIER +pier_segment = IfcBridgePartTypeEnum.PIER_SEGMENT +pylon = IfcBridgePartTypeEnum.PYLON +substructure = IfcBridgePartTypeEnum.SUBSTRUCTURE +superstructure = IfcBridgePartTypeEnum.SUPERSTRUCTURE +surfacestructure = IfcBridgePartTypeEnum.SURFACESTRUCTURE +userdefined = IfcBridgePartTypeEnum.USERDEFINED +notdefined = IfcBridgePartTypeEnum.NOTDEFINED IfcBridgeTypeEnum = enum_namespace() -arched = getattr(IfcBridgeTypeEnum, 'ARCHED', INDETERMINATE) -cable_stayed = getattr(IfcBridgeTypeEnum, 'CABLE_STAYED', INDETERMINATE) -cantilever = getattr(IfcBridgeTypeEnum, 'CANTILEVER', INDETERMINATE) -culvert = getattr(IfcBridgeTypeEnum, 'CULVERT', INDETERMINATE) -framework = getattr(IfcBridgeTypeEnum, 'FRAMEWORK', INDETERMINATE) -girder = getattr(IfcBridgeTypeEnum, 'GIRDER', INDETERMINATE) -suspension = getattr(IfcBridgeTypeEnum, 'SUSPENSION', INDETERMINATE) -truss = getattr(IfcBridgeTypeEnum, 'TRUSS', INDETERMINATE) -userdefined = getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBridgeTypeEnum, 'NOTDEFINED', INDETERMINATE) +arched = IfcBridgeTypeEnum.ARCHED +cable_stayed = IfcBridgeTypeEnum.CABLE_STAYED +cantilever = IfcBridgeTypeEnum.CANTILEVER +culvert = IfcBridgeTypeEnum.CULVERT +framework = IfcBridgeTypeEnum.FRAMEWORK +girder = IfcBridgeTypeEnum.GIRDER +suspension = IfcBridgeTypeEnum.SUSPENSION +truss = IfcBridgeTypeEnum.TRUSS +userdefined = IfcBridgeTypeEnum.USERDEFINED +notdefined = IfcBridgeTypeEnum.NOTDEFINED IfcBuildingElementPartTypeEnum = enum_namespace() -apron = getattr(IfcBuildingElementPartTypeEnum, 'APRON', INDETERMINATE) -armourunit = getattr(IfcBuildingElementPartTypeEnum, 'ARMOURUNIT', INDETERMINATE) -insulation = getattr(IfcBuildingElementPartTypeEnum, 'INSULATION', INDETERMINATE) -precastpanel = getattr(IfcBuildingElementPartTypeEnum, 'PRECASTPANEL', INDETERMINATE) -safetycage = getattr(IfcBuildingElementPartTypeEnum, 'SAFETYCAGE', INDETERMINATE) -userdefined = getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingElementPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +apron = IfcBuildingElementPartTypeEnum.APRON +armourunit = IfcBuildingElementPartTypeEnum.ARMOURUNIT +insulation = IfcBuildingElementPartTypeEnum.INSULATION +precastpanel = IfcBuildingElementPartTypeEnum.PRECASTPANEL +safetycage = IfcBuildingElementPartTypeEnum.SAFETYCAGE +userdefined = IfcBuildingElementPartTypeEnum.USERDEFINED +notdefined = IfcBuildingElementPartTypeEnum.NOTDEFINED IfcBuildingElementProxyTypeEnum = enum_namespace() -complex = getattr(IfcBuildingElementProxyTypeEnum, 'COMPLEX', INDETERMINATE) -element = getattr(IfcBuildingElementProxyTypeEnum, 'ELEMENT', INDETERMINATE) -partial = getattr(IfcBuildingElementProxyTypeEnum, 'PARTIAL', INDETERMINATE) -provisionforspace = getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORSPACE', INDETERMINATE) -provisionforvoid = getattr(IfcBuildingElementProxyTypeEnum, 'PROVISIONFORVOID', INDETERMINATE) -userdefined = getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingElementProxyTypeEnum, 'NOTDEFINED', INDETERMINATE) +complex = IfcBuildingElementProxyTypeEnum.COMPLEX +element = IfcBuildingElementProxyTypeEnum.ELEMENT +partial = IfcBuildingElementProxyTypeEnum.PARTIAL +provisionforspace = IfcBuildingElementProxyTypeEnum.PROVISIONFORSPACE +provisionforvoid = IfcBuildingElementProxyTypeEnum.PROVISIONFORVOID +userdefined = IfcBuildingElementProxyTypeEnum.USERDEFINED +notdefined = IfcBuildingElementProxyTypeEnum.NOTDEFINED IfcBuildingSystemTypeEnum = enum_namespace() -fenestration = getattr(IfcBuildingSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = getattr(IfcBuildingSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = getattr(IfcBuildingSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -outershell = getattr(IfcBuildingSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -shading = getattr(IfcBuildingSystemTypeEnum, 'SHADING', INDETERMINATE) -transport = getattr(IfcBuildingSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -userdefined = getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuildingSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +fenestration = IfcBuildingSystemTypeEnum.FENESTRATION +foundation = IfcBuildingSystemTypeEnum.FOUNDATION +loadbearing = IfcBuildingSystemTypeEnum.LOADBEARING +outershell = IfcBuildingSystemTypeEnum.OUTERSHELL +shading = IfcBuildingSystemTypeEnum.SHADING +transport = IfcBuildingSystemTypeEnum.TRANSPORT +userdefined = IfcBuildingSystemTypeEnum.USERDEFINED +notdefined = IfcBuildingSystemTypeEnum.NOTDEFINED IfcBuiltSystemTypeEnum = enum_namespace() -erosionprevention = getattr(IfcBuiltSystemTypeEnum, 'EROSIONPREVENTION', INDETERMINATE) -fenestration = getattr(IfcBuiltSystemTypeEnum, 'FENESTRATION', INDETERMINATE) -foundation = getattr(IfcBuiltSystemTypeEnum, 'FOUNDATION', INDETERMINATE) -loadbearing = getattr(IfcBuiltSystemTypeEnum, 'LOADBEARING', INDETERMINATE) -mooring = getattr(IfcBuiltSystemTypeEnum, 'MOORING', INDETERMINATE) -outershell = getattr(IfcBuiltSystemTypeEnum, 'OUTERSHELL', INDETERMINATE) -prestressing = getattr(IfcBuiltSystemTypeEnum, 'PRESTRESSING', INDETERMINATE) -railwayline = getattr(IfcBuiltSystemTypeEnum, 'RAILWAYLINE', INDETERMINATE) -railwaytrack = getattr(IfcBuiltSystemTypeEnum, 'RAILWAYTRACK', INDETERMINATE) -reinforcing = getattr(IfcBuiltSystemTypeEnum, 'REINFORCING', INDETERMINATE) -shading = getattr(IfcBuiltSystemTypeEnum, 'SHADING', INDETERMINATE) -trackcircuit = getattr(IfcBuiltSystemTypeEnum, 'TRACKCIRCUIT', INDETERMINATE) -transport = getattr(IfcBuiltSystemTypeEnum, 'TRANSPORT', INDETERMINATE) -userdefined = getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBuiltSystemTypeEnum, 'NOTDEFINED', INDETERMINATE) +erosionprevention = IfcBuiltSystemTypeEnum.EROSIONPREVENTION +fenestration = IfcBuiltSystemTypeEnum.FENESTRATION +foundation = IfcBuiltSystemTypeEnum.FOUNDATION +loadbearing = IfcBuiltSystemTypeEnum.LOADBEARING +mooring = IfcBuiltSystemTypeEnum.MOORING +outershell = IfcBuiltSystemTypeEnum.OUTERSHELL +prestressing = IfcBuiltSystemTypeEnum.PRESTRESSING +railwayline = IfcBuiltSystemTypeEnum.RAILWAYLINE +railwaytrack = IfcBuiltSystemTypeEnum.RAILWAYTRACK +reinforcing = IfcBuiltSystemTypeEnum.REINFORCING +shading = IfcBuiltSystemTypeEnum.SHADING +trackcircuit = IfcBuiltSystemTypeEnum.TRACKCIRCUIT +transport = IfcBuiltSystemTypeEnum.TRANSPORT +userdefined = IfcBuiltSystemTypeEnum.USERDEFINED +notdefined = IfcBuiltSystemTypeEnum.NOTDEFINED IfcBurnerTypeEnum = enum_namespace() -userdefined = getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcBurnerTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcBurnerTypeEnum.USERDEFINED +notdefined = IfcBurnerTypeEnum.NOTDEFINED IfcCableCarrierFittingTypeEnum = enum_namespace() -bend = getattr(IfcCableCarrierFittingTypeEnum, 'BEND', INDETERMINATE) -connector = getattr(IfcCableCarrierFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -cross = getattr(IfcCableCarrierFittingTypeEnum, 'CROSS', INDETERMINATE) -junction = getattr(IfcCableCarrierFittingTypeEnum, 'JUNCTION', INDETERMINATE) -reducer = getattr(IfcCableCarrierFittingTypeEnum, 'REDUCER', INDETERMINATE) -tee = getattr(IfcCableCarrierFittingTypeEnum, 'TEE', INDETERMINATE) -transition = getattr(IfcCableCarrierFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableCarrierFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcCableCarrierFittingTypeEnum.BEND +connector = IfcCableCarrierFittingTypeEnum.CONNECTOR +cross = IfcCableCarrierFittingTypeEnum.CROSS +junction = IfcCableCarrierFittingTypeEnum.JUNCTION +reducer = IfcCableCarrierFittingTypeEnum.REDUCER +tee = IfcCableCarrierFittingTypeEnum.TEE +transition = IfcCableCarrierFittingTypeEnum.TRANSITION +userdefined = IfcCableCarrierFittingTypeEnum.USERDEFINED +notdefined = IfcCableCarrierFittingTypeEnum.NOTDEFINED IfcCableCarrierSegmentTypeEnum = enum_namespace() -cablebracket = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLEBRACKET', INDETERMINATE) -cableladdersegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLELADDERSEGMENT', INDETERMINATE) -cabletraysegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRAYSEGMENT', INDETERMINATE) -cabletrunkingsegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CABLETRUNKINGSEGMENT', INDETERMINATE) -catenarywire = getattr(IfcCableCarrierSegmentTypeEnum, 'CATENARYWIRE', INDETERMINATE) -conduitsegment = getattr(IfcCableCarrierSegmentTypeEnum, 'CONDUITSEGMENT', INDETERMINATE) -dropper = getattr(IfcCableCarrierSegmentTypeEnum, 'DROPPER', INDETERMINATE) -userdefined = getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableCarrierSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +cablebracket = IfcCableCarrierSegmentTypeEnum.CABLEBRACKET +cableladdersegment = IfcCableCarrierSegmentTypeEnum.CABLELADDERSEGMENT +cabletraysegment = IfcCableCarrierSegmentTypeEnum.CABLETRAYSEGMENT +cabletrunkingsegment = IfcCableCarrierSegmentTypeEnum.CABLETRUNKINGSEGMENT +catenarywire = IfcCableCarrierSegmentTypeEnum.CATENARYWIRE +conduitsegment = IfcCableCarrierSegmentTypeEnum.CONDUITSEGMENT +dropper = IfcCableCarrierSegmentTypeEnum.DROPPER +userdefined = IfcCableCarrierSegmentTypeEnum.USERDEFINED +notdefined = IfcCableCarrierSegmentTypeEnum.NOTDEFINED IfcCableFittingTypeEnum = enum_namespace() -connector = getattr(IfcCableFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcCableFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcCableFittingTypeEnum, 'EXIT', INDETERMINATE) -fanout = getattr(IfcCableFittingTypeEnum, 'FANOUT', INDETERMINATE) -junction = getattr(IfcCableFittingTypeEnum, 'JUNCTION', INDETERMINATE) -transition = getattr(IfcCableFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +connector = IfcCableFittingTypeEnum.CONNECTOR +entry = IfcCableFittingTypeEnum.ENTRY +exit = IfcCableFittingTypeEnum.EXIT +fanout = IfcCableFittingTypeEnum.FANOUT +junction = IfcCableFittingTypeEnum.JUNCTION +transition = IfcCableFittingTypeEnum.TRANSITION +userdefined = IfcCableFittingTypeEnum.USERDEFINED +notdefined = IfcCableFittingTypeEnum.NOTDEFINED IfcCableSegmentTypeEnum = enum_namespace() -busbarsegment = getattr(IfcCableSegmentTypeEnum, 'BUSBARSEGMENT', INDETERMINATE) -cablesegment = getattr(IfcCableSegmentTypeEnum, 'CABLESEGMENT', INDETERMINATE) -conductorsegment = getattr(IfcCableSegmentTypeEnum, 'CONDUCTORSEGMENT', INDETERMINATE) -contactwiresegment = getattr(IfcCableSegmentTypeEnum, 'CONTACTWIRESEGMENT', INDETERMINATE) -coresegment = getattr(IfcCableSegmentTypeEnum, 'CORESEGMENT', INDETERMINATE) -fibersegment = getattr(IfcCableSegmentTypeEnum, 'FIBERSEGMENT', INDETERMINATE) -fibertube = getattr(IfcCableSegmentTypeEnum, 'FIBERTUBE', INDETERMINATE) -opticalcablesegment = getattr(IfcCableSegmentTypeEnum, 'OPTICALCABLESEGMENT', INDETERMINATE) -stitchwire = getattr(IfcCableSegmentTypeEnum, 'STITCHWIRE', INDETERMINATE) -wirepairsegment = getattr(IfcCableSegmentTypeEnum, 'WIREPAIRSEGMENT', INDETERMINATE) -userdefined = getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCableSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +busbarsegment = IfcCableSegmentTypeEnum.BUSBARSEGMENT +cablesegment = IfcCableSegmentTypeEnum.CABLESEGMENT +conductorsegment = IfcCableSegmentTypeEnum.CONDUCTORSEGMENT +contactwiresegment = IfcCableSegmentTypeEnum.CONTACTWIRESEGMENT +coresegment = IfcCableSegmentTypeEnum.CORESEGMENT +fibersegment = IfcCableSegmentTypeEnum.FIBERSEGMENT +fibertube = IfcCableSegmentTypeEnum.FIBERTUBE +opticalcablesegment = IfcCableSegmentTypeEnum.OPTICALCABLESEGMENT +stitchwire = IfcCableSegmentTypeEnum.STITCHWIRE +wirepairsegment = IfcCableSegmentTypeEnum.WIREPAIRSEGMENT +userdefined = IfcCableSegmentTypeEnum.USERDEFINED +notdefined = IfcCableSegmentTypeEnum.NOTDEFINED IfcCaissonFoundationTypeEnum = enum_namespace() -caisson = getattr(IfcCaissonFoundationTypeEnum, 'CAISSON', INDETERMINATE) -well = getattr(IfcCaissonFoundationTypeEnum, 'WELL', INDETERMINATE) -userdefined = getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCaissonFoundationTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson = IfcCaissonFoundationTypeEnum.CAISSON +well = IfcCaissonFoundationTypeEnum.WELL +userdefined = IfcCaissonFoundationTypeEnum.USERDEFINED +notdefined = IfcCaissonFoundationTypeEnum.NOTDEFINED IfcChangeActionEnum = enum_namespace() -added = getattr(IfcChangeActionEnum, 'ADDED', INDETERMINATE) -deleted = getattr(IfcChangeActionEnum, 'DELETED', INDETERMINATE) -modified = getattr(IfcChangeActionEnum, 'MODIFIED', INDETERMINATE) -nochange = getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE) -notdefined = getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) +added = IfcChangeActionEnum.ADDED +deleted = IfcChangeActionEnum.DELETED +modified = IfcChangeActionEnum.MODIFIED +nochange = IfcChangeActionEnum.NOCHANGE +notdefined = IfcChangeActionEnum.NOTDEFINED IfcChillerTypeEnum = enum_namespace() -aircooled = getattr(IfcChillerTypeEnum, 'AIRCOOLED', INDETERMINATE) -heatrecovery = getattr(IfcChillerTypeEnum, 'HEATRECOVERY', INDETERMINATE) -watercooled = getattr(IfcChillerTypeEnum, 'WATERCOOLED', INDETERMINATE) -userdefined = getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcChillerTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcChillerTypeEnum.AIRCOOLED +heatrecovery = IfcChillerTypeEnum.HEATRECOVERY +watercooled = IfcChillerTypeEnum.WATERCOOLED +userdefined = IfcChillerTypeEnum.USERDEFINED +notdefined = IfcChillerTypeEnum.NOTDEFINED IfcChimneyTypeEnum = enum_namespace() -userdefined = getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcChimneyTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcChimneyTypeEnum.USERDEFINED +notdefined = IfcChimneyTypeEnum.NOTDEFINED IfcCoilTypeEnum = enum_namespace() -dxcoolingcoil = getattr(IfcCoilTypeEnum, 'DXCOOLINGCOIL', INDETERMINATE) -electricheatingcoil = getattr(IfcCoilTypeEnum, 'ELECTRICHEATINGCOIL', INDETERMINATE) -gasheatingcoil = getattr(IfcCoilTypeEnum, 'GASHEATINGCOIL', INDETERMINATE) -hydroniccoil = getattr(IfcCoilTypeEnum, 'HYDRONICCOIL', INDETERMINATE) -steamheatingcoil = getattr(IfcCoilTypeEnum, 'STEAMHEATINGCOIL', INDETERMINATE) -watercoolingcoil = getattr(IfcCoilTypeEnum, 'WATERCOOLINGCOIL', INDETERMINATE) -waterheatingcoil = getattr(IfcCoilTypeEnum, 'WATERHEATINGCOIL', INDETERMINATE) -userdefined = getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dxcoolingcoil = IfcCoilTypeEnum.DXCOOLINGCOIL +electricheatingcoil = IfcCoilTypeEnum.ELECTRICHEATINGCOIL +gasheatingcoil = IfcCoilTypeEnum.GASHEATINGCOIL +hydroniccoil = IfcCoilTypeEnum.HYDRONICCOIL +steamheatingcoil = IfcCoilTypeEnum.STEAMHEATINGCOIL +watercoolingcoil = IfcCoilTypeEnum.WATERCOOLINGCOIL +waterheatingcoil = IfcCoilTypeEnum.WATERHEATINGCOIL +userdefined = IfcCoilTypeEnum.USERDEFINED +notdefined = IfcCoilTypeEnum.NOTDEFINED IfcColumnTypeEnum = enum_namespace() -column = getattr(IfcColumnTypeEnum, 'COLUMN', INDETERMINATE) -pierstem = getattr(IfcColumnTypeEnum, 'PIERSTEM', INDETERMINATE) -pierstem_segment = getattr(IfcColumnTypeEnum, 'PIERSTEM_SEGMENT', INDETERMINATE) -pilaster = getattr(IfcColumnTypeEnum, 'PILASTER', INDETERMINATE) -standcolumn = getattr(IfcColumnTypeEnum, 'STANDCOLUMN', INDETERMINATE) -userdefined = getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcColumnTypeEnum, 'NOTDEFINED', INDETERMINATE) +column = IfcColumnTypeEnum.COLUMN +pierstem = IfcColumnTypeEnum.PIERSTEM +pierstem_segment = IfcColumnTypeEnum.PIERSTEM_SEGMENT +pilaster = IfcColumnTypeEnum.PILASTER +standcolumn = IfcColumnTypeEnum.STANDCOLUMN +userdefined = IfcColumnTypeEnum.USERDEFINED +notdefined = IfcColumnTypeEnum.NOTDEFINED IfcCommunicationsApplianceTypeEnum = enum_namespace() -antenna = getattr(IfcCommunicationsApplianceTypeEnum, 'ANTENNA', INDETERMINATE) -automaton = getattr(IfcCommunicationsApplianceTypeEnum, 'AUTOMATON', INDETERMINATE) -computer = getattr(IfcCommunicationsApplianceTypeEnum, 'COMPUTER', INDETERMINATE) -fax = getattr(IfcCommunicationsApplianceTypeEnum, 'FAX', INDETERMINATE) -gateway = getattr(IfcCommunicationsApplianceTypeEnum, 'GATEWAY', INDETERMINATE) -intelligentperipheral = getattr(IfcCommunicationsApplianceTypeEnum, 'INTELLIGENTPERIPHERAL', INDETERMINATE) -ipnetworkequipment = getattr(IfcCommunicationsApplianceTypeEnum, 'IPNETWORKEQUIPMENT', INDETERMINATE) -linesideelectronicunit = getattr(IfcCommunicationsApplianceTypeEnum, 'LINESIDEELECTRONICUNIT', INDETERMINATE) -modem = getattr(IfcCommunicationsApplianceTypeEnum, 'MODEM', INDETERMINATE) -networkappliance = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKAPPLIANCE', INDETERMINATE) -networkbridge = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKBRIDGE', INDETERMINATE) -networkhub = getattr(IfcCommunicationsApplianceTypeEnum, 'NETWORKHUB', INDETERMINATE) -opticallineterminal = getattr(IfcCommunicationsApplianceTypeEnum, 'OPTICALLINETERMINAL', INDETERMINATE) -opticalnetworkunit = getattr(IfcCommunicationsApplianceTypeEnum, 'OPTICALNETWORKUNIT', INDETERMINATE) -printer = getattr(IfcCommunicationsApplianceTypeEnum, 'PRINTER', INDETERMINATE) -radioblockcenter = getattr(IfcCommunicationsApplianceTypeEnum, 'RADIOBLOCKCENTER', INDETERMINATE) -repeater = getattr(IfcCommunicationsApplianceTypeEnum, 'REPEATER', INDETERMINATE) -router = getattr(IfcCommunicationsApplianceTypeEnum, 'ROUTER', INDETERMINATE) -scanner = getattr(IfcCommunicationsApplianceTypeEnum, 'SCANNER', INDETERMINATE) -telecommand = getattr(IfcCommunicationsApplianceTypeEnum, 'TELECOMMAND', INDETERMINATE) -telephonyexchange = getattr(IfcCommunicationsApplianceTypeEnum, 'TELEPHONYEXCHANGE', INDETERMINATE) -transitioncomponent = getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSITIONCOMPONENT', INDETERMINATE) -transponder = getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPONDER', INDETERMINATE) -transportequipment = getattr(IfcCommunicationsApplianceTypeEnum, 'TRANSPORTEQUIPMENT', INDETERMINATE) -userdefined = getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +antenna = IfcCommunicationsApplianceTypeEnum.ANTENNA +automaton = IfcCommunicationsApplianceTypeEnum.AUTOMATON +computer = IfcCommunicationsApplianceTypeEnum.COMPUTER +fax = IfcCommunicationsApplianceTypeEnum.FAX +gateway = IfcCommunicationsApplianceTypeEnum.GATEWAY +intelligentperipheral = IfcCommunicationsApplianceTypeEnum.INTELLIGENTPERIPHERAL +ipnetworkequipment = IfcCommunicationsApplianceTypeEnum.IPNETWORKEQUIPMENT +linesideelectronicunit = IfcCommunicationsApplianceTypeEnum.LINESIDEELECTRONICUNIT +modem = IfcCommunicationsApplianceTypeEnum.MODEM +networkappliance = IfcCommunicationsApplianceTypeEnum.NETWORKAPPLIANCE +networkbridge = IfcCommunicationsApplianceTypeEnum.NETWORKBRIDGE +networkhub = IfcCommunicationsApplianceTypeEnum.NETWORKHUB +opticallineterminal = IfcCommunicationsApplianceTypeEnum.OPTICALLINETERMINAL +opticalnetworkunit = IfcCommunicationsApplianceTypeEnum.OPTICALNETWORKUNIT +printer = IfcCommunicationsApplianceTypeEnum.PRINTER +radioblockcenter = IfcCommunicationsApplianceTypeEnum.RADIOBLOCKCENTER +repeater = IfcCommunicationsApplianceTypeEnum.REPEATER +router = IfcCommunicationsApplianceTypeEnum.ROUTER +scanner = IfcCommunicationsApplianceTypeEnum.SCANNER +telecommand = IfcCommunicationsApplianceTypeEnum.TELECOMMAND +telephonyexchange = IfcCommunicationsApplianceTypeEnum.TELEPHONYEXCHANGE +transitioncomponent = IfcCommunicationsApplianceTypeEnum.TRANSITIONCOMPONENT +transponder = IfcCommunicationsApplianceTypeEnum.TRANSPONDER +transportequipment = IfcCommunicationsApplianceTypeEnum.TRANSPORTEQUIPMENT +userdefined = IfcCommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcCommunicationsApplianceTypeEnum.NOTDEFINED IfcComplexPropertyTemplateTypeEnum = enum_namespace() -p_complex = getattr(IfcComplexPropertyTemplateTypeEnum, 'P_COMPLEX', INDETERMINATE) -q_complex = getattr(IfcComplexPropertyTemplateTypeEnum, 'Q_COMPLEX', INDETERMINATE) +p_complex = IfcComplexPropertyTemplateTypeEnum.P_COMPLEX +q_complex = IfcComplexPropertyTemplateTypeEnum.Q_COMPLEX IfcCompressorTypeEnum = enum_namespace() -booster = getattr(IfcCompressorTypeEnum, 'BOOSTER', INDETERMINATE) -dynamic = getattr(IfcCompressorTypeEnum, 'DYNAMIC', INDETERMINATE) -hermetic = getattr(IfcCompressorTypeEnum, 'HERMETIC', INDETERMINATE) -opentype = getattr(IfcCompressorTypeEnum, 'OPENTYPE', INDETERMINATE) -reciprocating = getattr(IfcCompressorTypeEnum, 'RECIPROCATING', INDETERMINATE) -rollingpiston = getattr(IfcCompressorTypeEnum, 'ROLLINGPISTON', INDETERMINATE) -rotary = getattr(IfcCompressorTypeEnum, 'ROTARY', INDETERMINATE) -rotaryvane = getattr(IfcCompressorTypeEnum, 'ROTARYVANE', INDETERMINATE) -scroll = getattr(IfcCompressorTypeEnum, 'SCROLL', INDETERMINATE) -semihermetic = getattr(IfcCompressorTypeEnum, 'SEMIHERMETIC', INDETERMINATE) -singlescrew = getattr(IfcCompressorTypeEnum, 'SINGLESCREW', INDETERMINATE) -singlestage = getattr(IfcCompressorTypeEnum, 'SINGLESTAGE', INDETERMINATE) -trochoidal = getattr(IfcCompressorTypeEnum, 'TROCHOIDAL', INDETERMINATE) -twinscrew = getattr(IfcCompressorTypeEnum, 'TWINSCREW', INDETERMINATE) -weldedshellhermetic = getattr(IfcCompressorTypeEnum, 'WELDEDSHELLHERMETIC', INDETERMINATE) -userdefined = getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCompressorTypeEnum, 'NOTDEFINED', INDETERMINATE) +booster = IfcCompressorTypeEnum.BOOSTER +dynamic = IfcCompressorTypeEnum.DYNAMIC +hermetic = IfcCompressorTypeEnum.HERMETIC +opentype = IfcCompressorTypeEnum.OPENTYPE +reciprocating = IfcCompressorTypeEnum.RECIPROCATING +rollingpiston = IfcCompressorTypeEnum.ROLLINGPISTON +rotary = IfcCompressorTypeEnum.ROTARY +rotaryvane = IfcCompressorTypeEnum.ROTARYVANE +scroll = IfcCompressorTypeEnum.SCROLL +semihermetic = IfcCompressorTypeEnum.SEMIHERMETIC +singlescrew = IfcCompressorTypeEnum.SINGLESCREW +singlestage = IfcCompressorTypeEnum.SINGLESTAGE +trochoidal = IfcCompressorTypeEnum.TROCHOIDAL +twinscrew = IfcCompressorTypeEnum.TWINSCREW +weldedshellhermetic = IfcCompressorTypeEnum.WELDEDSHELLHERMETIC +userdefined = IfcCompressorTypeEnum.USERDEFINED +notdefined = IfcCompressorTypeEnum.NOTDEFINED IfcCondenserTypeEnum = enum_namespace() -aircooled = getattr(IfcCondenserTypeEnum, 'AIRCOOLED', INDETERMINATE) -evaporativecooled = getattr(IfcCondenserTypeEnum, 'EVAPORATIVECOOLED', INDETERMINATE) -watercooled = getattr(IfcCondenserTypeEnum, 'WATERCOOLED', INDETERMINATE) -watercooledbrazedplate = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDBRAZEDPLATE', INDETERMINATE) -watercooledshellcoil = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLCOIL', INDETERMINATE) -watercooledshelltube = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDSHELLTUBE', INDETERMINATE) -watercooledtubeintube = getattr(IfcCondenserTypeEnum, 'WATERCOOLEDTUBEINTUBE', INDETERMINATE) -userdefined = getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCondenserTypeEnum, 'NOTDEFINED', INDETERMINATE) +aircooled = IfcCondenserTypeEnum.AIRCOOLED +evaporativecooled = IfcCondenserTypeEnum.EVAPORATIVECOOLED +watercooled = IfcCondenserTypeEnum.WATERCOOLED +watercooledbrazedplate = IfcCondenserTypeEnum.WATERCOOLEDBRAZEDPLATE +watercooledshellcoil = IfcCondenserTypeEnum.WATERCOOLEDSHELLCOIL +watercooledshelltube = IfcCondenserTypeEnum.WATERCOOLEDSHELLTUBE +watercooledtubeintube = IfcCondenserTypeEnum.WATERCOOLEDTUBEINTUBE +userdefined = IfcCondenserTypeEnum.USERDEFINED +notdefined = IfcCondenserTypeEnum.NOTDEFINED IfcConnectionTypeEnum = enum_namespace() -atend = getattr(IfcConnectionTypeEnum, 'ATEND', INDETERMINATE) -atpath = getattr(IfcConnectionTypeEnum, 'ATPATH', INDETERMINATE) -atstart = getattr(IfcConnectionTypeEnum, 'ATSTART', INDETERMINATE) -notdefined = getattr(IfcConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +atend = IfcConnectionTypeEnum.ATEND +atpath = IfcConnectionTypeEnum.ATPATH +atstart = IfcConnectionTypeEnum.ATSTART +notdefined = IfcConnectionTypeEnum.NOTDEFINED IfcConstraintEnum = enum_namespace() -advisory = getattr(IfcConstraintEnum, 'ADVISORY', INDETERMINATE) -hard = getattr(IfcConstraintEnum, 'HARD', INDETERMINATE) -soft = getattr(IfcConstraintEnum, 'SOFT', INDETERMINATE) -userdefined = getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstraintEnum, 'NOTDEFINED', INDETERMINATE) +advisory = IfcConstraintEnum.ADVISORY +hard = IfcConstraintEnum.HARD +soft = IfcConstraintEnum.SOFT +userdefined = IfcConstraintEnum.USERDEFINED +notdefined = IfcConstraintEnum.NOTDEFINED IfcConstructionEquipmentResourceTypeEnum = enum_namespace() -demolishing = getattr(IfcConstructionEquipmentResourceTypeEnum, 'DEMOLISHING', INDETERMINATE) -earthmoving = getattr(IfcConstructionEquipmentResourceTypeEnum, 'EARTHMOVING', INDETERMINATE) -erecting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'ERECTING', INDETERMINATE) -heating = getattr(IfcConstructionEquipmentResourceTypeEnum, 'HEATING', INDETERMINATE) -lighting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'LIGHTING', INDETERMINATE) -paving = getattr(IfcConstructionEquipmentResourceTypeEnum, 'PAVING', INDETERMINATE) -pumping = getattr(IfcConstructionEquipmentResourceTypeEnum, 'PUMPING', INDETERMINATE) -transporting = getattr(IfcConstructionEquipmentResourceTypeEnum, 'TRANSPORTING', INDETERMINATE) -userdefined = getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstructionEquipmentResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +demolishing = IfcConstructionEquipmentResourceTypeEnum.DEMOLISHING +earthmoving = IfcConstructionEquipmentResourceTypeEnum.EARTHMOVING +erecting = IfcConstructionEquipmentResourceTypeEnum.ERECTING +heating = IfcConstructionEquipmentResourceTypeEnum.HEATING +lighting = IfcConstructionEquipmentResourceTypeEnum.LIGHTING +paving = IfcConstructionEquipmentResourceTypeEnum.PAVING +pumping = IfcConstructionEquipmentResourceTypeEnum.PUMPING +transporting = IfcConstructionEquipmentResourceTypeEnum.TRANSPORTING +userdefined = IfcConstructionEquipmentResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionEquipmentResourceTypeEnum.NOTDEFINED IfcConstructionMaterialResourceTypeEnum = enum_namespace() -aggregates = getattr(IfcConstructionMaterialResourceTypeEnum, 'AGGREGATES', INDETERMINATE) -concrete = getattr(IfcConstructionMaterialResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = getattr(IfcConstructionMaterialResourceTypeEnum, 'DRYWALL', INDETERMINATE) -fuel = getattr(IfcConstructionMaterialResourceTypeEnum, 'FUEL', INDETERMINATE) -gypsum = getattr(IfcConstructionMaterialResourceTypeEnum, 'GYPSUM', INDETERMINATE) -masonry = getattr(IfcConstructionMaterialResourceTypeEnum, 'MASONRY', INDETERMINATE) -metal = getattr(IfcConstructionMaterialResourceTypeEnum, 'METAL', INDETERMINATE) -plastic = getattr(IfcConstructionMaterialResourceTypeEnum, 'PLASTIC', INDETERMINATE) -wood = getattr(IfcConstructionMaterialResourceTypeEnum, 'WOOD', INDETERMINATE) -userdefined = getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstructionMaterialResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +aggregates = IfcConstructionMaterialResourceTypeEnum.AGGREGATES +concrete = IfcConstructionMaterialResourceTypeEnum.CONCRETE +drywall = IfcConstructionMaterialResourceTypeEnum.DRYWALL +fuel = IfcConstructionMaterialResourceTypeEnum.FUEL +gypsum = IfcConstructionMaterialResourceTypeEnum.GYPSUM +masonry = IfcConstructionMaterialResourceTypeEnum.MASONRY +metal = IfcConstructionMaterialResourceTypeEnum.METAL +plastic = IfcConstructionMaterialResourceTypeEnum.PLASTIC +wood = IfcConstructionMaterialResourceTypeEnum.WOOD +userdefined = IfcConstructionMaterialResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionMaterialResourceTypeEnum.NOTDEFINED IfcConstructionProductResourceTypeEnum = enum_namespace() -assembly = getattr(IfcConstructionProductResourceTypeEnum, 'ASSEMBLY', INDETERMINATE) -formwork = getattr(IfcConstructionProductResourceTypeEnum, 'FORMWORK', INDETERMINATE) -userdefined = getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConstructionProductResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +assembly = IfcConstructionProductResourceTypeEnum.ASSEMBLY +formwork = IfcConstructionProductResourceTypeEnum.FORMWORK +userdefined = IfcConstructionProductResourceTypeEnum.USERDEFINED +notdefined = IfcConstructionProductResourceTypeEnum.NOTDEFINED IfcControllerTypeEnum = enum_namespace() -floating = getattr(IfcControllerTypeEnum, 'FLOATING', INDETERMINATE) -multiposition = getattr(IfcControllerTypeEnum, 'MULTIPOSITION', INDETERMINATE) -programmable = getattr(IfcControllerTypeEnum, 'PROGRAMMABLE', INDETERMINATE) -proportional = getattr(IfcControllerTypeEnum, 'PROPORTIONAL', INDETERMINATE) -twoposition = getattr(IfcControllerTypeEnum, 'TWOPOSITION', INDETERMINATE) -userdefined = getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcControllerTypeEnum, 'NOTDEFINED', INDETERMINATE) +floating = IfcControllerTypeEnum.FLOATING +multiposition = IfcControllerTypeEnum.MULTIPOSITION +programmable = IfcControllerTypeEnum.PROGRAMMABLE +proportional = IfcControllerTypeEnum.PROPORTIONAL +twoposition = IfcControllerTypeEnum.TWOPOSITION +userdefined = IfcControllerTypeEnum.USERDEFINED +notdefined = IfcControllerTypeEnum.NOTDEFINED IfcConveyorSegmentTypeEnum = enum_namespace() -beltconveyor = getattr(IfcConveyorSegmentTypeEnum, 'BELTCONVEYOR', INDETERMINATE) -bucketconveyor = getattr(IfcConveyorSegmentTypeEnum, 'BUCKETCONVEYOR', INDETERMINATE) -chuteconveyor = getattr(IfcConveyorSegmentTypeEnum, 'CHUTECONVEYOR', INDETERMINATE) -screwconveyor = getattr(IfcConveyorSegmentTypeEnum, 'SCREWCONVEYOR', INDETERMINATE) -userdefined = getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcConveyorSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltconveyor = IfcConveyorSegmentTypeEnum.BELTCONVEYOR +bucketconveyor = IfcConveyorSegmentTypeEnum.BUCKETCONVEYOR +chuteconveyor = IfcConveyorSegmentTypeEnum.CHUTECONVEYOR +screwconveyor = IfcConveyorSegmentTypeEnum.SCREWCONVEYOR +userdefined = IfcConveyorSegmentTypeEnum.USERDEFINED +notdefined = IfcConveyorSegmentTypeEnum.NOTDEFINED IfcCooledBeamTypeEnum = enum_namespace() -active = getattr(IfcCooledBeamTypeEnum, 'ACTIVE', INDETERMINATE) -passive = getattr(IfcCooledBeamTypeEnum, 'PASSIVE', INDETERMINATE) -userdefined = getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCooledBeamTypeEnum, 'NOTDEFINED', INDETERMINATE) +active = IfcCooledBeamTypeEnum.ACTIVE +passive = IfcCooledBeamTypeEnum.PASSIVE +userdefined = IfcCooledBeamTypeEnum.USERDEFINED +notdefined = IfcCooledBeamTypeEnum.NOTDEFINED IfcCoolingTowerTypeEnum = enum_namespace() -mechanicalforceddraft = getattr(IfcCoolingTowerTypeEnum, 'MECHANICALFORCEDDRAFT', INDETERMINATE) -mechanicalinduceddraft = getattr(IfcCoolingTowerTypeEnum, 'MECHANICALINDUCEDDRAFT', INDETERMINATE) -naturaldraft = getattr(IfcCoolingTowerTypeEnum, 'NATURALDRAFT', INDETERMINATE) -userdefined = getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoolingTowerTypeEnum, 'NOTDEFINED', INDETERMINATE) +mechanicalforceddraft = IfcCoolingTowerTypeEnum.MECHANICALFORCEDDRAFT +mechanicalinduceddraft = IfcCoolingTowerTypeEnum.MECHANICALINDUCEDDRAFT +naturaldraft = IfcCoolingTowerTypeEnum.NATURALDRAFT +userdefined = IfcCoolingTowerTypeEnum.USERDEFINED +notdefined = IfcCoolingTowerTypeEnum.NOTDEFINED IfcCostItemTypeEnum = enum_namespace() -userdefined = getattr(IfcCostItemTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCostItemTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCostItemTypeEnum.USERDEFINED +notdefined = IfcCostItemTypeEnum.NOTDEFINED IfcCostScheduleTypeEnum = enum_namespace() -budget = getattr(IfcCostScheduleTypeEnum, 'BUDGET', INDETERMINATE) -costplan = getattr(IfcCostScheduleTypeEnum, 'COSTPLAN', INDETERMINATE) -estimate = getattr(IfcCostScheduleTypeEnum, 'ESTIMATE', INDETERMINATE) -pricedbillofquantities = getattr(IfcCostScheduleTypeEnum, 'PRICEDBILLOFQUANTITIES', INDETERMINATE) -scheduleofrates = getattr(IfcCostScheduleTypeEnum, 'SCHEDULEOFRATES', INDETERMINATE) -tender = getattr(IfcCostScheduleTypeEnum, 'TENDER', INDETERMINATE) -unpricedbillofquantities = getattr(IfcCostScheduleTypeEnum, 'UNPRICEDBILLOFQUANTITIES', INDETERMINATE) -userdefined = getattr(IfcCostScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCostScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +budget = IfcCostScheduleTypeEnum.BUDGET +costplan = IfcCostScheduleTypeEnum.COSTPLAN +estimate = IfcCostScheduleTypeEnum.ESTIMATE +pricedbillofquantities = IfcCostScheduleTypeEnum.PRICEDBILLOFQUANTITIES +scheduleofrates = IfcCostScheduleTypeEnum.SCHEDULEOFRATES +tender = IfcCostScheduleTypeEnum.TENDER +unpricedbillofquantities = IfcCostScheduleTypeEnum.UNPRICEDBILLOFQUANTITIES +userdefined = IfcCostScheduleTypeEnum.USERDEFINED +notdefined = IfcCostScheduleTypeEnum.NOTDEFINED IfcCourseTypeEnum = enum_namespace() -armour = getattr(IfcCourseTypeEnum, 'ARMOUR', INDETERMINATE) -ballastbed = getattr(IfcCourseTypeEnum, 'BALLASTBED', INDETERMINATE) -core = getattr(IfcCourseTypeEnum, 'CORE', INDETERMINATE) -filter = getattr(IfcCourseTypeEnum, 'FILTER', INDETERMINATE) -pavement = getattr(IfcCourseTypeEnum, 'PAVEMENT', INDETERMINATE) -protection = getattr(IfcCourseTypeEnum, 'PROTECTION', INDETERMINATE) -userdefined = getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCourseTypeEnum, 'NOTDEFINED', INDETERMINATE) +armour = IfcCourseTypeEnum.ARMOUR +ballastbed = IfcCourseTypeEnum.BALLASTBED +core = IfcCourseTypeEnum.CORE +filter = IfcCourseTypeEnum.FILTER +pavement = IfcCourseTypeEnum.PAVEMENT +protection = IfcCourseTypeEnum.PROTECTION +userdefined = IfcCourseTypeEnum.USERDEFINED +notdefined = IfcCourseTypeEnum.NOTDEFINED IfcCoveringTypeEnum = enum_namespace() -ceiling = getattr(IfcCoveringTypeEnum, 'CEILING', INDETERMINATE) -cladding = getattr(IfcCoveringTypeEnum, 'CLADDING', INDETERMINATE) -coping = getattr(IfcCoveringTypeEnum, 'COPING', INDETERMINATE) -flooring = getattr(IfcCoveringTypeEnum, 'FLOORING', INDETERMINATE) -insulation = getattr(IfcCoveringTypeEnum, 'INSULATION', INDETERMINATE) -membrane = getattr(IfcCoveringTypeEnum, 'MEMBRANE', INDETERMINATE) -molding = getattr(IfcCoveringTypeEnum, 'MOLDING', INDETERMINATE) -roofing = getattr(IfcCoveringTypeEnum, 'ROOFING', INDETERMINATE) -skirtingboard = getattr(IfcCoveringTypeEnum, 'SKIRTINGBOARD', INDETERMINATE) -sleeving = getattr(IfcCoveringTypeEnum, 'SLEEVING', INDETERMINATE) -topping = getattr(IfcCoveringTypeEnum, 'TOPPING', INDETERMINATE) -wrapping = getattr(IfcCoveringTypeEnum, 'WRAPPING', INDETERMINATE) -userdefined = getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCoveringTypeEnum, 'NOTDEFINED', INDETERMINATE) +ceiling = IfcCoveringTypeEnum.CEILING +cladding = IfcCoveringTypeEnum.CLADDING +coping = IfcCoveringTypeEnum.COPING +flooring = IfcCoveringTypeEnum.FLOORING +insulation = IfcCoveringTypeEnum.INSULATION +membrane = IfcCoveringTypeEnum.MEMBRANE +molding = IfcCoveringTypeEnum.MOLDING +roofing = IfcCoveringTypeEnum.ROOFING +skirtingboard = IfcCoveringTypeEnum.SKIRTINGBOARD +sleeving = IfcCoveringTypeEnum.SLEEVING +topping = IfcCoveringTypeEnum.TOPPING +wrapping = IfcCoveringTypeEnum.WRAPPING +userdefined = IfcCoveringTypeEnum.USERDEFINED +notdefined = IfcCoveringTypeEnum.NOTDEFINED IfcCrewResourceTypeEnum = enum_namespace() -office = getattr(IfcCrewResourceTypeEnum, 'OFFICE', INDETERMINATE) -site = getattr(IfcCrewResourceTypeEnum, 'SITE', INDETERMINATE) -userdefined = getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCrewResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +office = IfcCrewResourceTypeEnum.OFFICE +site = IfcCrewResourceTypeEnum.SITE +userdefined = IfcCrewResourceTypeEnum.USERDEFINED +notdefined = IfcCrewResourceTypeEnum.NOTDEFINED IfcCurtainWallTypeEnum = enum_namespace() -userdefined = getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcCurtainWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcCurtainWallTypeEnum.USERDEFINED +notdefined = IfcCurtainWallTypeEnum.NOTDEFINED IfcCurveInterpolationEnum = enum_namespace() -linear = getattr(IfcCurveInterpolationEnum, 'LINEAR', INDETERMINATE) -log_linear = getattr(IfcCurveInterpolationEnum, 'LOG_LINEAR', INDETERMINATE) -log_log = getattr(IfcCurveInterpolationEnum, 'LOG_LOG', INDETERMINATE) -notdefined = getattr(IfcCurveInterpolationEnum, 'NOTDEFINED', INDETERMINATE) +linear = IfcCurveInterpolationEnum.LINEAR +log_linear = IfcCurveInterpolationEnum.LOG_LINEAR +log_log = IfcCurveInterpolationEnum.LOG_LOG +notdefined = IfcCurveInterpolationEnum.NOTDEFINED IfcDamperTypeEnum = enum_namespace() -backdraftdamper = getattr(IfcDamperTypeEnum, 'BACKDRAFTDAMPER', INDETERMINATE) -balancingdamper = getattr(IfcDamperTypeEnum, 'BALANCINGDAMPER', INDETERMINATE) -blastdamper = getattr(IfcDamperTypeEnum, 'BLASTDAMPER', INDETERMINATE) -controldamper = getattr(IfcDamperTypeEnum, 'CONTROLDAMPER', INDETERMINATE) -firedamper = getattr(IfcDamperTypeEnum, 'FIREDAMPER', INDETERMINATE) -firesmokedamper = getattr(IfcDamperTypeEnum, 'FIRESMOKEDAMPER', INDETERMINATE) -fumehoodexhaust = getattr(IfcDamperTypeEnum, 'FUMEHOODEXHAUST', INDETERMINATE) -gravitydamper = getattr(IfcDamperTypeEnum, 'GRAVITYDAMPER', INDETERMINATE) -gravityreliefdamper = getattr(IfcDamperTypeEnum, 'GRAVITYRELIEFDAMPER', INDETERMINATE) -reliefdamper = getattr(IfcDamperTypeEnum, 'RELIEFDAMPER', INDETERMINATE) -smokedamper = getattr(IfcDamperTypeEnum, 'SMOKEDAMPER', INDETERMINATE) -userdefined = getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +backdraftdamper = IfcDamperTypeEnum.BACKDRAFTDAMPER +balancingdamper = IfcDamperTypeEnum.BALANCINGDAMPER +blastdamper = IfcDamperTypeEnum.BLASTDAMPER +controldamper = IfcDamperTypeEnum.CONTROLDAMPER +firedamper = IfcDamperTypeEnum.FIREDAMPER +firesmokedamper = IfcDamperTypeEnum.FIRESMOKEDAMPER +fumehoodexhaust = IfcDamperTypeEnum.FUMEHOODEXHAUST +gravitydamper = IfcDamperTypeEnum.GRAVITYDAMPER +gravityreliefdamper = IfcDamperTypeEnum.GRAVITYRELIEFDAMPER +reliefdamper = IfcDamperTypeEnum.RELIEFDAMPER +smokedamper = IfcDamperTypeEnum.SMOKEDAMPER +userdefined = IfcDamperTypeEnum.USERDEFINED +notdefined = IfcDamperTypeEnum.NOTDEFINED IfcDataOriginEnum = enum_namespace() -measured = getattr(IfcDataOriginEnum, 'MEASURED', INDETERMINATE) -predicted = getattr(IfcDataOriginEnum, 'PREDICTED', INDETERMINATE) -simulated = getattr(IfcDataOriginEnum, 'SIMULATED', INDETERMINATE) -userdefined = getattr(IfcDataOriginEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDataOriginEnum, 'NOTDEFINED', INDETERMINATE) +measured = IfcDataOriginEnum.MEASURED +predicted = IfcDataOriginEnum.PREDICTED +simulated = IfcDataOriginEnum.SIMULATED +userdefined = IfcDataOriginEnum.USERDEFINED +notdefined = IfcDataOriginEnum.NOTDEFINED IfcDerivedUnitEnum = enum_namespace() -accelerationunit = getattr(IfcDerivedUnitEnum, 'ACCELERATIONUNIT', INDETERMINATE) -angularvelocityunit = getattr(IfcDerivedUnitEnum, 'ANGULARVELOCITYUNIT', INDETERMINATE) -areadensityunit = getattr(IfcDerivedUnitEnum, 'AREADENSITYUNIT', INDETERMINATE) -compoundplaneangleunit = getattr(IfcDerivedUnitEnum, 'COMPOUNDPLANEANGLEUNIT', INDETERMINATE) -curvatureunit = getattr(IfcDerivedUnitEnum, 'CURVATUREUNIT', INDETERMINATE) -dynamicviscosityunit = getattr(IfcDerivedUnitEnum, 'DYNAMICVISCOSITYUNIT', INDETERMINATE) -heatfluxdensityunit = getattr(IfcDerivedUnitEnum, 'HEATFLUXDENSITYUNIT', INDETERMINATE) -heatingvalueunit = getattr(IfcDerivedUnitEnum, 'HEATINGVALUEUNIT', INDETERMINATE) -integercountrateunit = getattr(IfcDerivedUnitEnum, 'INTEGERCOUNTRATEUNIT', INDETERMINATE) -ionconcentrationunit = getattr(IfcDerivedUnitEnum, 'IONCONCENTRATIONUNIT', INDETERMINATE) -isothermalmoisturecapacityunit = getattr(IfcDerivedUnitEnum, 'ISOTHERMALMOISTURECAPACITYUNIT', INDETERMINATE) -kinematicviscosityunit = getattr(IfcDerivedUnitEnum, 'KINEMATICVISCOSITYUNIT', INDETERMINATE) -linearforceunit = getattr(IfcDerivedUnitEnum, 'LINEARFORCEUNIT', INDETERMINATE) -linearmomentunit = getattr(IfcDerivedUnitEnum, 'LINEARMOMENTUNIT', INDETERMINATE) -linearstiffnessunit = getattr(IfcDerivedUnitEnum, 'LINEARSTIFFNESSUNIT', INDETERMINATE) -linearvelocityunit = getattr(IfcDerivedUnitEnum, 'LINEARVELOCITYUNIT', INDETERMINATE) -luminousintensitydistributionunit = getattr(IfcDerivedUnitEnum, 'LUMINOUSINTENSITYDISTRIBUTIONUNIT', INDETERMINATE) -massdensityunit = getattr(IfcDerivedUnitEnum, 'MASSDENSITYUNIT', INDETERMINATE) -massflowrateunit = getattr(IfcDerivedUnitEnum, 'MASSFLOWRATEUNIT', INDETERMINATE) -massperlengthunit = getattr(IfcDerivedUnitEnum, 'MASSPERLENGTHUNIT', INDETERMINATE) -modulusofelasticityunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFELASTICITYUNIT', INDETERMINATE) -modulusoflinearsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFLINEARSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofrotationalsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFROTATIONALSUBGRADEREACTIONUNIT', INDETERMINATE) -modulusofsubgradereactionunit = getattr(IfcDerivedUnitEnum, 'MODULUSOFSUBGRADEREACTIONUNIT', INDETERMINATE) -moisturediffusivityunit = getattr(IfcDerivedUnitEnum, 'MOISTUREDIFFUSIVITYUNIT', INDETERMINATE) -molecularweightunit = getattr(IfcDerivedUnitEnum, 'MOLECULARWEIGHTUNIT', INDETERMINATE) -momentofinertiaunit = getattr(IfcDerivedUnitEnum, 'MOMENTOFINERTIAUNIT', INDETERMINATE) -phunit = getattr(IfcDerivedUnitEnum, 'PHUNIT', INDETERMINATE) -planarforceunit = getattr(IfcDerivedUnitEnum, 'PLANARFORCEUNIT', INDETERMINATE) -rotationalfrequencyunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALFREQUENCYUNIT', INDETERMINATE) -rotationalmassunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALMASSUNIT', INDETERMINATE) -rotationalstiffnessunit = getattr(IfcDerivedUnitEnum, 'ROTATIONALSTIFFNESSUNIT', INDETERMINATE) -sectionareaintegralunit = getattr(IfcDerivedUnitEnum, 'SECTIONAREAINTEGRALUNIT', INDETERMINATE) -sectionmodulusunit = getattr(IfcDerivedUnitEnum, 'SECTIONMODULUSUNIT', INDETERMINATE) -shearmodulusunit = getattr(IfcDerivedUnitEnum, 'SHEARMODULUSUNIT', INDETERMINATE) -soundpowerlevelunit = getattr(IfcDerivedUnitEnum, 'SOUNDPOWERLEVELUNIT', INDETERMINATE) -soundpowerunit = getattr(IfcDerivedUnitEnum, 'SOUNDPOWERUNIT', INDETERMINATE) -soundpressurelevelunit = getattr(IfcDerivedUnitEnum, 'SOUNDPRESSURELEVELUNIT', INDETERMINATE) -soundpressureunit = getattr(IfcDerivedUnitEnum, 'SOUNDPRESSUREUNIT', INDETERMINATE) -specificheatcapacityunit = getattr(IfcDerivedUnitEnum, 'SPECIFICHEATCAPACITYUNIT', INDETERMINATE) -temperaturegradientunit = getattr(IfcDerivedUnitEnum, 'TEMPERATUREGRADIENTUNIT', INDETERMINATE) -temperaturerateofchangeunit = getattr(IfcDerivedUnitEnum, 'TEMPERATURERATEOFCHANGEUNIT', INDETERMINATE) -thermaladmittanceunit = getattr(IfcDerivedUnitEnum, 'THERMALADMITTANCEUNIT', INDETERMINATE) -thermalconductanceunit = getattr(IfcDerivedUnitEnum, 'THERMALCONDUCTANCEUNIT', INDETERMINATE) -thermalexpansioncoefficientunit = getattr(IfcDerivedUnitEnum, 'THERMALEXPANSIONCOEFFICIENTUNIT', INDETERMINATE) -thermalresistanceunit = getattr(IfcDerivedUnitEnum, 'THERMALRESISTANCEUNIT', INDETERMINATE) -thermaltransmittanceunit = getattr(IfcDerivedUnitEnum, 'THERMALTRANSMITTANCEUNIT', INDETERMINATE) -torqueunit = getattr(IfcDerivedUnitEnum, 'TORQUEUNIT', INDETERMINATE) -vaporpermeabilityunit = getattr(IfcDerivedUnitEnum, 'VAPORPERMEABILITYUNIT', INDETERMINATE) -volumetricflowrateunit = getattr(IfcDerivedUnitEnum, 'VOLUMETRICFLOWRATEUNIT', INDETERMINATE) -warpingconstantunit = getattr(IfcDerivedUnitEnum, 'WARPINGCONSTANTUNIT', INDETERMINATE) -warpingmomentunit = getattr(IfcDerivedUnitEnum, 'WARPINGMOMENTUNIT', INDETERMINATE) -userdefined = getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) +accelerationunit = IfcDerivedUnitEnum.ACCELERATIONUNIT +angularvelocityunit = IfcDerivedUnitEnum.ANGULARVELOCITYUNIT +areadensityunit = IfcDerivedUnitEnum.AREADENSITYUNIT +compoundplaneangleunit = IfcDerivedUnitEnum.COMPOUNDPLANEANGLEUNIT +curvatureunit = IfcDerivedUnitEnum.CURVATUREUNIT +dynamicviscosityunit = IfcDerivedUnitEnum.DYNAMICVISCOSITYUNIT +heatfluxdensityunit = IfcDerivedUnitEnum.HEATFLUXDENSITYUNIT +heatingvalueunit = IfcDerivedUnitEnum.HEATINGVALUEUNIT +integercountrateunit = IfcDerivedUnitEnum.INTEGERCOUNTRATEUNIT +ionconcentrationunit = IfcDerivedUnitEnum.IONCONCENTRATIONUNIT +isothermalmoisturecapacityunit = IfcDerivedUnitEnum.ISOTHERMALMOISTURECAPACITYUNIT +kinematicviscosityunit = IfcDerivedUnitEnum.KINEMATICVISCOSITYUNIT +linearforceunit = IfcDerivedUnitEnum.LINEARFORCEUNIT +linearmomentunit = IfcDerivedUnitEnum.LINEARMOMENTUNIT +linearstiffnessunit = IfcDerivedUnitEnum.LINEARSTIFFNESSUNIT +linearvelocityunit = IfcDerivedUnitEnum.LINEARVELOCITYUNIT +luminousintensitydistributionunit = IfcDerivedUnitEnum.LUMINOUSINTENSITYDISTRIBUTIONUNIT +massdensityunit = IfcDerivedUnitEnum.MASSDENSITYUNIT +massflowrateunit = IfcDerivedUnitEnum.MASSFLOWRATEUNIT +massperlengthunit = IfcDerivedUnitEnum.MASSPERLENGTHUNIT +modulusofelasticityunit = IfcDerivedUnitEnum.MODULUSOFELASTICITYUNIT +modulusoflinearsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFLINEARSUBGRADEREACTIONUNIT +modulusofrotationalsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFROTATIONALSUBGRADEREACTIONUNIT +modulusofsubgradereactionunit = IfcDerivedUnitEnum.MODULUSOFSUBGRADEREACTIONUNIT +moisturediffusivityunit = IfcDerivedUnitEnum.MOISTUREDIFFUSIVITYUNIT +molecularweightunit = IfcDerivedUnitEnum.MOLECULARWEIGHTUNIT +momentofinertiaunit = IfcDerivedUnitEnum.MOMENTOFINERTIAUNIT +phunit = IfcDerivedUnitEnum.PHUNIT +planarforceunit = IfcDerivedUnitEnum.PLANARFORCEUNIT +rotationalfrequencyunit = IfcDerivedUnitEnum.ROTATIONALFREQUENCYUNIT +rotationalmassunit = IfcDerivedUnitEnum.ROTATIONALMASSUNIT +rotationalstiffnessunit = IfcDerivedUnitEnum.ROTATIONALSTIFFNESSUNIT +sectionareaintegralunit = IfcDerivedUnitEnum.SECTIONAREAINTEGRALUNIT +sectionmodulusunit = IfcDerivedUnitEnum.SECTIONMODULUSUNIT +shearmodulusunit = IfcDerivedUnitEnum.SHEARMODULUSUNIT +soundpowerlevelunit = IfcDerivedUnitEnum.SOUNDPOWERLEVELUNIT +soundpowerunit = IfcDerivedUnitEnum.SOUNDPOWERUNIT +soundpressurelevelunit = IfcDerivedUnitEnum.SOUNDPRESSURELEVELUNIT +soundpressureunit = IfcDerivedUnitEnum.SOUNDPRESSUREUNIT +specificheatcapacityunit = IfcDerivedUnitEnum.SPECIFICHEATCAPACITYUNIT +temperaturegradientunit = IfcDerivedUnitEnum.TEMPERATUREGRADIENTUNIT +temperaturerateofchangeunit = IfcDerivedUnitEnum.TEMPERATURERATEOFCHANGEUNIT +thermaladmittanceunit = IfcDerivedUnitEnum.THERMALADMITTANCEUNIT +thermalconductanceunit = IfcDerivedUnitEnum.THERMALCONDUCTANCEUNIT +thermalexpansioncoefficientunit = IfcDerivedUnitEnum.THERMALEXPANSIONCOEFFICIENTUNIT +thermalresistanceunit = IfcDerivedUnitEnum.THERMALRESISTANCEUNIT +thermaltransmittanceunit = IfcDerivedUnitEnum.THERMALTRANSMITTANCEUNIT +torqueunit = IfcDerivedUnitEnum.TORQUEUNIT +vaporpermeabilityunit = IfcDerivedUnitEnum.VAPORPERMEABILITYUNIT +volumetricflowrateunit = IfcDerivedUnitEnum.VOLUMETRICFLOWRATEUNIT +warpingconstantunit = IfcDerivedUnitEnum.WARPINGCONSTANTUNIT +warpingmomentunit = IfcDerivedUnitEnum.WARPINGMOMENTUNIT +userdefined = IfcDerivedUnitEnum.USERDEFINED IfcDirectionSenseEnum = enum_namespace() -negative = getattr(IfcDirectionSenseEnum, 'NEGATIVE', INDETERMINATE) -positive = getattr(IfcDirectionSenseEnum, 'POSITIVE', INDETERMINATE) +negative = IfcDirectionSenseEnum.NEGATIVE +positive = IfcDirectionSenseEnum.POSITIVE IfcDiscreteAccessoryTypeEnum = enum_namespace() -anchorplate = getattr(IfcDiscreteAccessoryTypeEnum, 'ANCHORPLATE', INDETERMINATE) -birdprotection = getattr(IfcDiscreteAccessoryTypeEnum, 'BIRDPROTECTION', INDETERMINATE) -bracket = getattr(IfcDiscreteAccessoryTypeEnum, 'BRACKET', INDETERMINATE) -cablearranger = getattr(IfcDiscreteAccessoryTypeEnum, 'CABLEARRANGER', INDETERMINATE) -elastic_cushion = getattr(IfcDiscreteAccessoryTypeEnum, 'ELASTIC_CUSHION', INDETERMINATE) -expansion_joint_device = getattr(IfcDiscreteAccessoryTypeEnum, 'EXPANSION_JOINT_DEVICE', INDETERMINATE) -filler = getattr(IfcDiscreteAccessoryTypeEnum, 'FILLER', INDETERMINATE) -flashing = getattr(IfcDiscreteAccessoryTypeEnum, 'FLASHING', INDETERMINATE) -insulator = getattr(IfcDiscreteAccessoryTypeEnum, 'INSULATOR', INDETERMINATE) -lock = getattr(IfcDiscreteAccessoryTypeEnum, 'LOCK', INDETERMINATE) -panel_strengthening = getattr(IfcDiscreteAccessoryTypeEnum, 'PANEL_STRENGTHENING', INDETERMINATE) -pointmachinemountingdevice = getattr(IfcDiscreteAccessoryTypeEnum, 'POINTMACHINEMOUNTINGDEVICE', INDETERMINATE) -point_machine_locking_device = getattr(IfcDiscreteAccessoryTypeEnum, 'POINT_MACHINE_LOCKING_DEVICE', INDETERMINATE) -railbrace = getattr(IfcDiscreteAccessoryTypeEnum, 'RAILBRACE', INDETERMINATE) -railpad = getattr(IfcDiscreteAccessoryTypeEnum, 'RAILPAD', INDETERMINATE) -rail_lubrication = getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_LUBRICATION', INDETERMINATE) -rail_mechanical_equipment = getattr(IfcDiscreteAccessoryTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT', INDETERMINATE) -shoe = getattr(IfcDiscreteAccessoryTypeEnum, 'SHOE', INDETERMINATE) -slidingchair = getattr(IfcDiscreteAccessoryTypeEnum, 'SLIDINGCHAIR', INDETERMINATE) -soundabsorption = getattr(IfcDiscreteAccessoryTypeEnum, 'SOUNDABSORPTION', INDETERMINATE) -tensioningequipment = getattr(IfcDiscreteAccessoryTypeEnum, 'TENSIONINGEQUIPMENT', INDETERMINATE) -userdefined = getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDiscreteAccessoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorplate = IfcDiscreteAccessoryTypeEnum.ANCHORPLATE +birdprotection = IfcDiscreteAccessoryTypeEnum.BIRDPROTECTION +bracket = IfcDiscreteAccessoryTypeEnum.BRACKET +cablearranger = IfcDiscreteAccessoryTypeEnum.CABLEARRANGER +elastic_cushion = IfcDiscreteAccessoryTypeEnum.ELASTIC_CUSHION +expansion_joint_device = IfcDiscreteAccessoryTypeEnum.EXPANSION_JOINT_DEVICE +filler = IfcDiscreteAccessoryTypeEnum.FILLER +flashing = IfcDiscreteAccessoryTypeEnum.FLASHING +insulator = IfcDiscreteAccessoryTypeEnum.INSULATOR +lock = IfcDiscreteAccessoryTypeEnum.LOCK +panel_strengthening = IfcDiscreteAccessoryTypeEnum.PANEL_STRENGTHENING +pointmachinemountingdevice = IfcDiscreteAccessoryTypeEnum.POINTMACHINEMOUNTINGDEVICE +point_machine_locking_device = IfcDiscreteAccessoryTypeEnum.POINT_MACHINE_LOCKING_DEVICE +railbrace = IfcDiscreteAccessoryTypeEnum.RAILBRACE +railpad = IfcDiscreteAccessoryTypeEnum.RAILPAD +rail_lubrication = IfcDiscreteAccessoryTypeEnum.RAIL_LUBRICATION +rail_mechanical_equipment = IfcDiscreteAccessoryTypeEnum.RAIL_MECHANICAL_EQUIPMENT +shoe = IfcDiscreteAccessoryTypeEnum.SHOE +slidingchair = IfcDiscreteAccessoryTypeEnum.SLIDINGCHAIR +soundabsorption = IfcDiscreteAccessoryTypeEnum.SOUNDABSORPTION +tensioningequipment = IfcDiscreteAccessoryTypeEnum.TENSIONINGEQUIPMENT +userdefined = IfcDiscreteAccessoryTypeEnum.USERDEFINED +notdefined = IfcDiscreteAccessoryTypeEnum.NOTDEFINED IfcDistributionBoardTypeEnum = enum_namespace() -consumerunit = getattr(IfcDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -dispatchingboard = getattr(IfcDistributionBoardTypeEnum, 'DISPATCHINGBOARD', INDETERMINATE) -distributionboard = getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -distributionframe = getattr(IfcDistributionBoardTypeEnum, 'DISTRIBUTIONFRAME', INDETERMINATE) -motorcontrolcentre = getattr(IfcDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = getattr(IfcDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcDistributionBoardTypeEnum.CONSUMERUNIT +dispatchingboard = IfcDistributionBoardTypeEnum.DISPATCHINGBOARD +distributionboard = IfcDistributionBoardTypeEnum.DISTRIBUTIONBOARD +distributionframe = IfcDistributionBoardTypeEnum.DISTRIBUTIONFRAME +motorcontrolcentre = IfcDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcDistributionBoardTypeEnum.NOTDEFINED IfcDistributionChamberElementTypeEnum = enum_namespace() -formedduct = getattr(IfcDistributionChamberElementTypeEnum, 'FORMEDDUCT', INDETERMINATE) -inspectionchamber = getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONCHAMBER', INDETERMINATE) -inspectionpit = getattr(IfcDistributionChamberElementTypeEnum, 'INSPECTIONPIT', INDETERMINATE) -manhole = getattr(IfcDistributionChamberElementTypeEnum, 'MANHOLE', INDETERMINATE) -meterchamber = getattr(IfcDistributionChamberElementTypeEnum, 'METERCHAMBER', INDETERMINATE) -sump = getattr(IfcDistributionChamberElementTypeEnum, 'SUMP', INDETERMINATE) -trench = getattr(IfcDistributionChamberElementTypeEnum, 'TRENCH', INDETERMINATE) -valvechamber = getattr(IfcDistributionChamberElementTypeEnum, 'VALVECHAMBER', INDETERMINATE) -userdefined = getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionChamberElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +formedduct = IfcDistributionChamberElementTypeEnum.FORMEDDUCT +inspectionchamber = IfcDistributionChamberElementTypeEnum.INSPECTIONCHAMBER +inspectionpit = IfcDistributionChamberElementTypeEnum.INSPECTIONPIT +manhole = IfcDistributionChamberElementTypeEnum.MANHOLE +meterchamber = IfcDistributionChamberElementTypeEnum.METERCHAMBER +sump = IfcDistributionChamberElementTypeEnum.SUMP +trench = IfcDistributionChamberElementTypeEnum.TRENCH +valvechamber = IfcDistributionChamberElementTypeEnum.VALVECHAMBER +userdefined = IfcDistributionChamberElementTypeEnum.USERDEFINED +notdefined = IfcDistributionChamberElementTypeEnum.NOTDEFINED IfcDistributionPortTypeEnum = enum_namespace() -cable = getattr(IfcDistributionPortTypeEnum, 'CABLE', INDETERMINATE) -cablecarrier = getattr(IfcDistributionPortTypeEnum, 'CABLECARRIER', INDETERMINATE) -duct = getattr(IfcDistributionPortTypeEnum, 'DUCT', INDETERMINATE) -pipe = getattr(IfcDistributionPortTypeEnum, 'PIPE', INDETERMINATE) -wireless = getattr(IfcDistributionPortTypeEnum, 'WIRELESS', INDETERMINATE) -userdefined = getattr(IfcDistributionPortTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionPortTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcDistributionPortTypeEnum.CABLE +cablecarrier = IfcDistributionPortTypeEnum.CABLECARRIER +duct = IfcDistributionPortTypeEnum.DUCT +pipe = IfcDistributionPortTypeEnum.PIPE +wireless = IfcDistributionPortTypeEnum.WIRELESS +userdefined = IfcDistributionPortTypeEnum.USERDEFINED +notdefined = IfcDistributionPortTypeEnum.NOTDEFINED IfcDistributionSystemEnum = enum_namespace() -airconditioning = getattr(IfcDistributionSystemEnum, 'AIRCONDITIONING', INDETERMINATE) -audiovisual = getattr(IfcDistributionSystemEnum, 'AUDIOVISUAL', INDETERMINATE) -catenary_system = getattr(IfcDistributionSystemEnum, 'CATENARY_SYSTEM', INDETERMINATE) -chemical = getattr(IfcDistributionSystemEnum, 'CHEMICAL', INDETERMINATE) -chilledwater = getattr(IfcDistributionSystemEnum, 'CHILLEDWATER', INDETERMINATE) -communication = getattr(IfcDistributionSystemEnum, 'COMMUNICATION', INDETERMINATE) -compressedair = getattr(IfcDistributionSystemEnum, 'COMPRESSEDAIR', INDETERMINATE) -condenserwater = getattr(IfcDistributionSystemEnum, 'CONDENSERWATER', INDETERMINATE) -control = getattr(IfcDistributionSystemEnum, 'CONTROL', INDETERMINATE) -conveying = getattr(IfcDistributionSystemEnum, 'CONVEYING', INDETERMINATE) -data = getattr(IfcDistributionSystemEnum, 'DATA', INDETERMINATE) -disposal = getattr(IfcDistributionSystemEnum, 'DISPOSAL', INDETERMINATE) -domesticcoldwater = getattr(IfcDistributionSystemEnum, 'DOMESTICCOLDWATER', INDETERMINATE) -domestichotwater = getattr(IfcDistributionSystemEnum, 'DOMESTICHOTWATER', INDETERMINATE) -drainage = getattr(IfcDistributionSystemEnum, 'DRAINAGE', INDETERMINATE) -earthing = getattr(IfcDistributionSystemEnum, 'EARTHING', INDETERMINATE) -electrical = getattr(IfcDistributionSystemEnum, 'ELECTRICAL', INDETERMINATE) -electroacoustic = getattr(IfcDistributionSystemEnum, 'ELECTROACOUSTIC', INDETERMINATE) -exhaust = getattr(IfcDistributionSystemEnum, 'EXHAUST', INDETERMINATE) -fireprotection = getattr(IfcDistributionSystemEnum, 'FIREPROTECTION', INDETERMINATE) -fixedtransmissionnetwork = getattr(IfcDistributionSystemEnum, 'FIXEDTRANSMISSIONNETWORK', INDETERMINATE) -fuel = getattr(IfcDistributionSystemEnum, 'FUEL', INDETERMINATE) -gas = getattr(IfcDistributionSystemEnum, 'GAS', INDETERMINATE) -hazardous = getattr(IfcDistributionSystemEnum, 'HAZARDOUS', INDETERMINATE) -heating = getattr(IfcDistributionSystemEnum, 'HEATING', INDETERMINATE) -lighting = getattr(IfcDistributionSystemEnum, 'LIGHTING', INDETERMINATE) -lightningprotection = getattr(IfcDistributionSystemEnum, 'LIGHTNINGPROTECTION', INDETERMINATE) -mobilenetwork = getattr(IfcDistributionSystemEnum, 'MOBILENETWORK', INDETERMINATE) -monitoringsystem = getattr(IfcDistributionSystemEnum, 'MONITORINGSYSTEM', INDETERMINATE) -municipalsolidwaste = getattr(IfcDistributionSystemEnum, 'MUNICIPALSOLIDWASTE', INDETERMINATE) -oil = getattr(IfcDistributionSystemEnum, 'OIL', INDETERMINATE) -operational = getattr(IfcDistributionSystemEnum, 'OPERATIONAL', INDETERMINATE) -operationaltelephonysystem = getattr(IfcDistributionSystemEnum, 'OPERATIONALTELEPHONYSYSTEM', INDETERMINATE) -overhead_contactline_system = getattr(IfcDistributionSystemEnum, 'OVERHEAD_CONTACTLINE_SYSTEM', INDETERMINATE) -powergeneration = getattr(IfcDistributionSystemEnum, 'POWERGENERATION', INDETERMINATE) -rainwater = getattr(IfcDistributionSystemEnum, 'RAINWATER', INDETERMINATE) -refrigeration = getattr(IfcDistributionSystemEnum, 'REFRIGERATION', INDETERMINATE) -return_circuit = getattr(IfcDistributionSystemEnum, 'RETURN_CIRCUIT', INDETERMINATE) -security = getattr(IfcDistributionSystemEnum, 'SECURITY', INDETERMINATE) -sewage = getattr(IfcDistributionSystemEnum, 'SEWAGE', INDETERMINATE) -signal = getattr(IfcDistributionSystemEnum, 'SIGNAL', INDETERMINATE) -stormwater = getattr(IfcDistributionSystemEnum, 'STORMWATER', INDETERMINATE) -telephone = getattr(IfcDistributionSystemEnum, 'TELEPHONE', INDETERMINATE) -tv = getattr(IfcDistributionSystemEnum, 'TV', INDETERMINATE) -vacuum = getattr(IfcDistributionSystemEnum, 'VACUUM', INDETERMINATE) -vent = getattr(IfcDistributionSystemEnum, 'VENT', INDETERMINATE) -ventilation = getattr(IfcDistributionSystemEnum, 'VENTILATION', INDETERMINATE) -wastewater = getattr(IfcDistributionSystemEnum, 'WASTEWATER', INDETERMINATE) -watersupply = getattr(IfcDistributionSystemEnum, 'WATERSUPPLY', INDETERMINATE) -userdefined = getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDistributionSystemEnum, 'NOTDEFINED', INDETERMINATE) +airconditioning = IfcDistributionSystemEnum.AIRCONDITIONING +audiovisual = IfcDistributionSystemEnum.AUDIOVISUAL +catenary_system = IfcDistributionSystemEnum.CATENARY_SYSTEM +chemical = IfcDistributionSystemEnum.CHEMICAL +chilledwater = IfcDistributionSystemEnum.CHILLEDWATER +communication = IfcDistributionSystemEnum.COMMUNICATION +compressedair = IfcDistributionSystemEnum.COMPRESSEDAIR +condenserwater = IfcDistributionSystemEnum.CONDENSERWATER +control = IfcDistributionSystemEnum.CONTROL +conveying = IfcDistributionSystemEnum.CONVEYING +data = IfcDistributionSystemEnum.DATA +disposal = IfcDistributionSystemEnum.DISPOSAL +domesticcoldwater = IfcDistributionSystemEnum.DOMESTICCOLDWATER +domestichotwater = IfcDistributionSystemEnum.DOMESTICHOTWATER +drainage = IfcDistributionSystemEnum.DRAINAGE +earthing = IfcDistributionSystemEnum.EARTHING +electrical = IfcDistributionSystemEnum.ELECTRICAL +electroacoustic = IfcDistributionSystemEnum.ELECTROACOUSTIC +exhaust = IfcDistributionSystemEnum.EXHAUST +fireprotection = IfcDistributionSystemEnum.FIREPROTECTION +fixedtransmissionnetwork = IfcDistributionSystemEnum.FIXEDTRANSMISSIONNETWORK +fuel = IfcDistributionSystemEnum.FUEL +gas = IfcDistributionSystemEnum.GAS +hazardous = IfcDistributionSystemEnum.HAZARDOUS +heating = IfcDistributionSystemEnum.HEATING +lighting = IfcDistributionSystemEnum.LIGHTING +lightningprotection = IfcDistributionSystemEnum.LIGHTNINGPROTECTION +mobilenetwork = IfcDistributionSystemEnum.MOBILENETWORK +monitoringsystem = IfcDistributionSystemEnum.MONITORINGSYSTEM +municipalsolidwaste = IfcDistributionSystemEnum.MUNICIPALSOLIDWASTE +oil = IfcDistributionSystemEnum.OIL +operational = IfcDistributionSystemEnum.OPERATIONAL +operationaltelephonysystem = IfcDistributionSystemEnum.OPERATIONALTELEPHONYSYSTEM +overhead_contactline_system = IfcDistributionSystemEnum.OVERHEAD_CONTACTLINE_SYSTEM +powergeneration = IfcDistributionSystemEnum.POWERGENERATION +rainwater = IfcDistributionSystemEnum.RAINWATER +refrigeration = IfcDistributionSystemEnum.REFRIGERATION +return_circuit = IfcDistributionSystemEnum.RETURN_CIRCUIT +security = IfcDistributionSystemEnum.SECURITY +sewage = IfcDistributionSystemEnum.SEWAGE +signal = IfcDistributionSystemEnum.SIGNAL +stormwater = IfcDistributionSystemEnum.STORMWATER +telephone = IfcDistributionSystemEnum.TELEPHONE +tv = IfcDistributionSystemEnum.TV +vacuum = IfcDistributionSystemEnum.VACUUM +vent = IfcDistributionSystemEnum.VENT +ventilation = IfcDistributionSystemEnum.VENTILATION +wastewater = IfcDistributionSystemEnum.WASTEWATER +watersupply = IfcDistributionSystemEnum.WATERSUPPLY +userdefined = IfcDistributionSystemEnum.USERDEFINED +notdefined = IfcDistributionSystemEnum.NOTDEFINED IfcDocumentConfidentialityEnum = enum_namespace() -confidential = getattr(IfcDocumentConfidentialityEnum, 'CONFIDENTIAL', INDETERMINATE) -personal = getattr(IfcDocumentConfidentialityEnum, 'PERSONAL', INDETERMINATE) -public = getattr(IfcDocumentConfidentialityEnum, 'PUBLIC', INDETERMINATE) -restricted = getattr(IfcDocumentConfidentialityEnum, 'RESTRICTED', INDETERMINATE) -userdefined = getattr(IfcDocumentConfidentialityEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDocumentConfidentialityEnum, 'NOTDEFINED', INDETERMINATE) +confidential = IfcDocumentConfidentialityEnum.CONFIDENTIAL +personal = IfcDocumentConfidentialityEnum.PERSONAL +public = IfcDocumentConfidentialityEnum.PUBLIC +restricted = IfcDocumentConfidentialityEnum.RESTRICTED +userdefined = IfcDocumentConfidentialityEnum.USERDEFINED +notdefined = IfcDocumentConfidentialityEnum.NOTDEFINED IfcDocumentStatusEnum = enum_namespace() -draft = getattr(IfcDocumentStatusEnum, 'DRAFT', INDETERMINATE) -final = getattr(IfcDocumentStatusEnum, 'FINAL', INDETERMINATE) -finaldraft = getattr(IfcDocumentStatusEnum, 'FINALDRAFT', INDETERMINATE) -revision = getattr(IfcDocumentStatusEnum, 'REVISION', INDETERMINATE) -notdefined = getattr(IfcDocumentStatusEnum, 'NOTDEFINED', INDETERMINATE) +draft = IfcDocumentStatusEnum.DRAFT +final = IfcDocumentStatusEnum.FINAL +finaldraft = IfcDocumentStatusEnum.FINALDRAFT +revision = IfcDocumentStatusEnum.REVISION +notdefined = IfcDocumentStatusEnum.NOTDEFINED IfcDoorPanelOperationEnum = enum_namespace() -double_acting = getattr(IfcDoorPanelOperationEnum, 'DOUBLE_ACTING', INDETERMINATE) -fixedpanel = getattr(IfcDoorPanelOperationEnum, 'FIXEDPANEL', INDETERMINATE) -folding = getattr(IfcDoorPanelOperationEnum, 'FOLDING', INDETERMINATE) -revolving = getattr(IfcDoorPanelOperationEnum, 'REVOLVING', INDETERMINATE) -rollingup = getattr(IfcDoorPanelOperationEnum, 'ROLLINGUP', INDETERMINATE) -sliding = getattr(IfcDoorPanelOperationEnum, 'SLIDING', INDETERMINATE) -swinging = getattr(IfcDoorPanelOperationEnum, 'SWINGING', INDETERMINATE) -userdefined = getattr(IfcDoorPanelOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +double_acting = IfcDoorPanelOperationEnum.DOUBLE_ACTING +fixedpanel = IfcDoorPanelOperationEnum.FIXEDPANEL +folding = IfcDoorPanelOperationEnum.FOLDING +revolving = IfcDoorPanelOperationEnum.REVOLVING +rollingup = IfcDoorPanelOperationEnum.ROLLINGUP +sliding = IfcDoorPanelOperationEnum.SLIDING +swinging = IfcDoorPanelOperationEnum.SWINGING +userdefined = IfcDoorPanelOperationEnum.USERDEFINED +notdefined = IfcDoorPanelOperationEnum.NOTDEFINED IfcDoorPanelPositionEnum = enum_namespace() -left = getattr(IfcDoorPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = getattr(IfcDoorPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = getattr(IfcDoorPanelPositionEnum, 'RIGHT', INDETERMINATE) -notdefined = getattr(IfcDoorPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +left = IfcDoorPanelPositionEnum.LEFT +middle = IfcDoorPanelPositionEnum.MIDDLE +right = IfcDoorPanelPositionEnum.RIGHT +notdefined = IfcDoorPanelPositionEnum.NOTDEFINED IfcDoorTypeEnum = enum_namespace() -boom_barrier = getattr(IfcDoorTypeEnum, 'BOOM_BARRIER', INDETERMINATE) -door = getattr(IfcDoorTypeEnum, 'DOOR', INDETERMINATE) -gate = getattr(IfcDoorTypeEnum, 'GATE', INDETERMINATE) -trapdoor = getattr(IfcDoorTypeEnum, 'TRAPDOOR', INDETERMINATE) -turnstile = getattr(IfcDoorTypeEnum, 'TURNSTILE', INDETERMINATE) -userdefined = getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorTypeEnum, 'NOTDEFINED', INDETERMINATE) +boom_barrier = IfcDoorTypeEnum.BOOM_BARRIER +door = IfcDoorTypeEnum.DOOR +gate = IfcDoorTypeEnum.GATE +trapdoor = IfcDoorTypeEnum.TRAPDOOR +turnstile = IfcDoorTypeEnum.TURNSTILE +userdefined = IfcDoorTypeEnum.USERDEFINED +notdefined = IfcDoorTypeEnum.NOTDEFINED IfcDoorTypeOperationEnum = enum_namespace() -double_door_double_swing = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_DOUBLE_SWING', INDETERMINATE) -double_door_folding = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_FOLDING', INDETERMINATE) -double_door_lifting_vertical = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_LIFTING_VERTICAL', INDETERMINATE) -double_door_single_swing = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING', INDETERMINATE) -double_door_single_swing_opposite_left = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT', INDETERMINATE) -double_door_single_swing_opposite_right = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT', INDETERMINATE) -double_door_sliding = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_DOOR_SLIDING', INDETERMINATE) -double_swing_left = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_LEFT', INDETERMINATE) -double_swing_right = getattr(IfcDoorTypeOperationEnum, 'DOUBLE_SWING_RIGHT', INDETERMINATE) -folding_to_left = getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_LEFT', INDETERMINATE) -folding_to_right = getattr(IfcDoorTypeOperationEnum, 'FOLDING_TO_RIGHT', INDETERMINATE) -lifting_horizontal = getattr(IfcDoorTypeOperationEnum, 'LIFTING_HORIZONTAL', INDETERMINATE) -lifting_vertical_left = getattr(IfcDoorTypeOperationEnum, 'LIFTING_VERTICAL_LEFT', INDETERMINATE) -lifting_vertical_right = getattr(IfcDoorTypeOperationEnum, 'LIFTING_VERTICAL_RIGHT', INDETERMINATE) -revolving = getattr(IfcDoorTypeOperationEnum, 'REVOLVING', INDETERMINATE) -revolving_vertical = getattr(IfcDoorTypeOperationEnum, 'REVOLVING_VERTICAL', INDETERMINATE) -rollingup = getattr(IfcDoorTypeOperationEnum, 'ROLLINGUP', INDETERMINATE) -single_swing_left = getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_LEFT', INDETERMINATE) -single_swing_right = getattr(IfcDoorTypeOperationEnum, 'SINGLE_SWING_RIGHT', INDETERMINATE) -sliding_to_left = getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_LEFT', INDETERMINATE) -sliding_to_right = getattr(IfcDoorTypeOperationEnum, 'SLIDING_TO_RIGHT', INDETERMINATE) -swing_fixed_left = getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_LEFT', INDETERMINATE) -swing_fixed_right = getattr(IfcDoorTypeOperationEnum, 'SWING_FIXED_RIGHT', INDETERMINATE) -userdefined = getattr(IfcDoorTypeOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDoorTypeOperationEnum, 'NOTDEFINED', INDETERMINATE) +double_door_double_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_DOUBLE_SWING +double_door_folding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_FOLDING +double_door_lifting_vertical = IfcDoorTypeOperationEnum.DOUBLE_DOOR_LIFTING_VERTICAL +double_door_single_swing = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING +double_door_single_swing_opposite_left = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_LEFT +double_door_single_swing_opposite_right = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SINGLE_SWING_OPPOSITE_RIGHT +double_door_sliding = IfcDoorTypeOperationEnum.DOUBLE_DOOR_SLIDING +double_swing_left = IfcDoorTypeOperationEnum.DOUBLE_SWING_LEFT +double_swing_right = IfcDoorTypeOperationEnum.DOUBLE_SWING_RIGHT +folding_to_left = IfcDoorTypeOperationEnum.FOLDING_TO_LEFT +folding_to_right = IfcDoorTypeOperationEnum.FOLDING_TO_RIGHT +lifting_horizontal = IfcDoorTypeOperationEnum.LIFTING_HORIZONTAL +lifting_vertical_left = IfcDoorTypeOperationEnum.LIFTING_VERTICAL_LEFT +lifting_vertical_right = IfcDoorTypeOperationEnum.LIFTING_VERTICAL_RIGHT +revolving = IfcDoorTypeOperationEnum.REVOLVING +revolving_vertical = IfcDoorTypeOperationEnum.REVOLVING_VERTICAL +rollingup = IfcDoorTypeOperationEnum.ROLLINGUP +single_swing_left = IfcDoorTypeOperationEnum.SINGLE_SWING_LEFT +single_swing_right = IfcDoorTypeOperationEnum.SINGLE_SWING_RIGHT +sliding_to_left = IfcDoorTypeOperationEnum.SLIDING_TO_LEFT +sliding_to_right = IfcDoorTypeOperationEnum.SLIDING_TO_RIGHT +swing_fixed_left = IfcDoorTypeOperationEnum.SWING_FIXED_LEFT +swing_fixed_right = IfcDoorTypeOperationEnum.SWING_FIXED_RIGHT +userdefined = IfcDoorTypeOperationEnum.USERDEFINED +notdefined = IfcDoorTypeOperationEnum.NOTDEFINED IfcDuctFittingTypeEnum = enum_namespace() -bend = getattr(IfcDuctFittingTypeEnum, 'BEND', INDETERMINATE) -connector = getattr(IfcDuctFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcDuctFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcDuctFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcDuctFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = getattr(IfcDuctFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = getattr(IfcDuctFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcDuctFittingTypeEnum.BEND +connector = IfcDuctFittingTypeEnum.CONNECTOR +entry = IfcDuctFittingTypeEnum.ENTRY +exit = IfcDuctFittingTypeEnum.EXIT +junction = IfcDuctFittingTypeEnum.JUNCTION +obstruction = IfcDuctFittingTypeEnum.OBSTRUCTION +transition = IfcDuctFittingTypeEnum.TRANSITION +userdefined = IfcDuctFittingTypeEnum.USERDEFINED +notdefined = IfcDuctFittingTypeEnum.NOTDEFINED IfcDuctSegmentTypeEnum = enum_namespace() -flexiblesegment = getattr(IfcDuctSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -rigidsegment = getattr(IfcDuctSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -userdefined = getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +flexiblesegment = IfcDuctSegmentTypeEnum.FLEXIBLESEGMENT +rigidsegment = IfcDuctSegmentTypeEnum.RIGIDSEGMENT +userdefined = IfcDuctSegmentTypeEnum.USERDEFINED +notdefined = IfcDuctSegmentTypeEnum.NOTDEFINED IfcDuctSilencerTypeEnum = enum_namespace() -flatoval = getattr(IfcDuctSilencerTypeEnum, 'FLATOVAL', INDETERMINATE) -rectangular = getattr(IfcDuctSilencerTypeEnum, 'RECTANGULAR', INDETERMINATE) -round = getattr(IfcDuctSilencerTypeEnum, 'ROUND', INDETERMINATE) -userdefined = getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcDuctSilencerTypeEnum, 'NOTDEFINED', INDETERMINATE) +flatoval = IfcDuctSilencerTypeEnum.FLATOVAL +rectangular = IfcDuctSilencerTypeEnum.RECTANGULAR +round = IfcDuctSilencerTypeEnum.ROUND +userdefined = IfcDuctSilencerTypeEnum.USERDEFINED +notdefined = IfcDuctSilencerTypeEnum.NOTDEFINED IfcEarthworksCutTypeEnum = enum_namespace() -base_excavation = getattr(IfcEarthworksCutTypeEnum, 'BASE_EXCAVATION', INDETERMINATE) -cut = getattr(IfcEarthworksCutTypeEnum, 'CUT', INDETERMINATE) -dredging = getattr(IfcEarthworksCutTypeEnum, 'DREDGING', INDETERMINATE) -excavation = getattr(IfcEarthworksCutTypeEnum, 'EXCAVATION', INDETERMINATE) -overexcavation = getattr(IfcEarthworksCutTypeEnum, 'OVEREXCAVATION', INDETERMINATE) -pavementmilling = getattr(IfcEarthworksCutTypeEnum, 'PAVEMENTMILLING', INDETERMINATE) -stepexcavation = getattr(IfcEarthworksCutTypeEnum, 'STEPEXCAVATION', INDETERMINATE) -topsoilremoval = getattr(IfcEarthworksCutTypeEnum, 'TOPSOILREMOVAL', INDETERMINATE) -trench = getattr(IfcEarthworksCutTypeEnum, 'TRENCH', INDETERMINATE) -userdefined = getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEarthworksCutTypeEnum, 'NOTDEFINED', INDETERMINATE) +base_excavation = IfcEarthworksCutTypeEnum.BASE_EXCAVATION +cut = IfcEarthworksCutTypeEnum.CUT +dredging = IfcEarthworksCutTypeEnum.DREDGING +excavation = IfcEarthworksCutTypeEnum.EXCAVATION +overexcavation = IfcEarthworksCutTypeEnum.OVEREXCAVATION +pavementmilling = IfcEarthworksCutTypeEnum.PAVEMENTMILLING +stepexcavation = IfcEarthworksCutTypeEnum.STEPEXCAVATION +topsoilremoval = IfcEarthworksCutTypeEnum.TOPSOILREMOVAL +trench = IfcEarthworksCutTypeEnum.TRENCH +userdefined = IfcEarthworksCutTypeEnum.USERDEFINED +notdefined = IfcEarthworksCutTypeEnum.NOTDEFINED IfcEarthworksFillTypeEnum = enum_namespace() -backfill = getattr(IfcEarthworksFillTypeEnum, 'BACKFILL', INDETERMINATE) -counterweight = getattr(IfcEarthworksFillTypeEnum, 'COUNTERWEIGHT', INDETERMINATE) -embankment = getattr(IfcEarthworksFillTypeEnum, 'EMBANKMENT', INDETERMINATE) -slopefill = getattr(IfcEarthworksFillTypeEnum, 'SLOPEFILL', INDETERMINATE) -subgrade = getattr(IfcEarthworksFillTypeEnum, 'SUBGRADE', INDETERMINATE) -subgradebed = getattr(IfcEarthworksFillTypeEnum, 'SUBGRADEBED', INDETERMINATE) -transitionsection = getattr(IfcEarthworksFillTypeEnum, 'TRANSITIONSECTION', INDETERMINATE) -userdefined = getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEarthworksFillTypeEnum, 'NOTDEFINED', INDETERMINATE) +backfill = IfcEarthworksFillTypeEnum.BACKFILL +counterweight = IfcEarthworksFillTypeEnum.COUNTERWEIGHT +embankment = IfcEarthworksFillTypeEnum.EMBANKMENT +slopefill = IfcEarthworksFillTypeEnum.SLOPEFILL +subgrade = IfcEarthworksFillTypeEnum.SUBGRADE +subgradebed = IfcEarthworksFillTypeEnum.SUBGRADEBED +transitionsection = IfcEarthworksFillTypeEnum.TRANSITIONSECTION +userdefined = IfcEarthworksFillTypeEnum.USERDEFINED +notdefined = IfcEarthworksFillTypeEnum.NOTDEFINED IfcElectricApplianceTypeEnum = enum_namespace() -dishwasher = getattr(IfcElectricApplianceTypeEnum, 'DISHWASHER', INDETERMINATE) -electriccooker = getattr(IfcElectricApplianceTypeEnum, 'ELECTRICCOOKER', INDETERMINATE) -freestandingelectricheater = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGELECTRICHEATER', INDETERMINATE) -freestandingfan = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGFAN', INDETERMINATE) -freestandingwatercooler = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERCOOLER', INDETERMINATE) -freestandingwaterheater = getattr(IfcElectricApplianceTypeEnum, 'FREESTANDINGWATERHEATER', INDETERMINATE) -freezer = getattr(IfcElectricApplianceTypeEnum, 'FREEZER', INDETERMINATE) -fridge_freezer = getattr(IfcElectricApplianceTypeEnum, 'FRIDGE_FREEZER', INDETERMINATE) -handdryer = getattr(IfcElectricApplianceTypeEnum, 'HANDDRYER', INDETERMINATE) -kitchenmachine = getattr(IfcElectricApplianceTypeEnum, 'KITCHENMACHINE', INDETERMINATE) -microwave = getattr(IfcElectricApplianceTypeEnum, 'MICROWAVE', INDETERMINATE) -photocopier = getattr(IfcElectricApplianceTypeEnum, 'PHOTOCOPIER', INDETERMINATE) -refrigerator = getattr(IfcElectricApplianceTypeEnum, 'REFRIGERATOR', INDETERMINATE) -tumbledryer = getattr(IfcElectricApplianceTypeEnum, 'TUMBLEDRYER', INDETERMINATE) -vendingmachine = getattr(IfcElectricApplianceTypeEnum, 'VENDINGMACHINE', INDETERMINATE) -washingmachine = getattr(IfcElectricApplianceTypeEnum, 'WASHINGMACHINE', INDETERMINATE) -userdefined = getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +dishwasher = IfcElectricApplianceTypeEnum.DISHWASHER +electriccooker = IfcElectricApplianceTypeEnum.ELECTRICCOOKER +freestandingelectricheater = IfcElectricApplianceTypeEnum.FREESTANDINGELECTRICHEATER +freestandingfan = IfcElectricApplianceTypeEnum.FREESTANDINGFAN +freestandingwatercooler = IfcElectricApplianceTypeEnum.FREESTANDINGWATERCOOLER +freestandingwaterheater = IfcElectricApplianceTypeEnum.FREESTANDINGWATERHEATER +freezer = IfcElectricApplianceTypeEnum.FREEZER +fridge_freezer = IfcElectricApplianceTypeEnum.FRIDGE_FREEZER +handdryer = IfcElectricApplianceTypeEnum.HANDDRYER +kitchenmachine = IfcElectricApplianceTypeEnum.KITCHENMACHINE +microwave = IfcElectricApplianceTypeEnum.MICROWAVE +photocopier = IfcElectricApplianceTypeEnum.PHOTOCOPIER +refrigerator = IfcElectricApplianceTypeEnum.REFRIGERATOR +tumbledryer = IfcElectricApplianceTypeEnum.TUMBLEDRYER +vendingmachine = IfcElectricApplianceTypeEnum.VENDINGMACHINE +washingmachine = IfcElectricApplianceTypeEnum.WASHINGMACHINE +userdefined = IfcElectricApplianceTypeEnum.USERDEFINED +notdefined = IfcElectricApplianceTypeEnum.NOTDEFINED IfcElectricDistributionBoardTypeEnum = enum_namespace() -consumerunit = getattr(IfcElectricDistributionBoardTypeEnum, 'CONSUMERUNIT', INDETERMINATE) -distributionboard = getattr(IfcElectricDistributionBoardTypeEnum, 'DISTRIBUTIONBOARD', INDETERMINATE) -motorcontrolcentre = getattr(IfcElectricDistributionBoardTypeEnum, 'MOTORCONTROLCENTRE', INDETERMINATE) -switchboard = getattr(IfcElectricDistributionBoardTypeEnum, 'SWITCHBOARD', INDETERMINATE) -userdefined = getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricDistributionBoardTypeEnum, 'NOTDEFINED', INDETERMINATE) +consumerunit = IfcElectricDistributionBoardTypeEnum.CONSUMERUNIT +distributionboard = IfcElectricDistributionBoardTypeEnum.DISTRIBUTIONBOARD +motorcontrolcentre = IfcElectricDistributionBoardTypeEnum.MOTORCONTROLCENTRE +switchboard = IfcElectricDistributionBoardTypeEnum.SWITCHBOARD +userdefined = IfcElectricDistributionBoardTypeEnum.USERDEFINED +notdefined = IfcElectricDistributionBoardTypeEnum.NOTDEFINED IfcElectricFlowStorageDeviceTypeEnum = enum_namespace() -battery = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'BATTERY', INDETERMINATE) -capacitor = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITOR', INDETERMINATE) -capacitorbank = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'CAPACITORBANK', INDETERMINATE) -compensator = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'COMPENSATOR', INDETERMINATE) -harmonicfilter = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'HARMONICFILTER', INDETERMINATE) -inductor = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTOR', INDETERMINATE) -inductorbank = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'INDUCTORBANK', INDETERMINATE) -recharger = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'RECHARGER', INDETERMINATE) -ups = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'UPS', INDETERMINATE) -userdefined = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricFlowStorageDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +battery = IfcElectricFlowStorageDeviceTypeEnum.BATTERY +capacitor = IfcElectricFlowStorageDeviceTypeEnum.CAPACITOR +capacitorbank = IfcElectricFlowStorageDeviceTypeEnum.CAPACITORBANK +compensator = IfcElectricFlowStorageDeviceTypeEnum.COMPENSATOR +harmonicfilter = IfcElectricFlowStorageDeviceTypeEnum.HARMONICFILTER +inductor = IfcElectricFlowStorageDeviceTypeEnum.INDUCTOR +inductorbank = IfcElectricFlowStorageDeviceTypeEnum.INDUCTORBANK +recharger = IfcElectricFlowStorageDeviceTypeEnum.RECHARGER +ups = IfcElectricFlowStorageDeviceTypeEnum.UPS +userdefined = IfcElectricFlowStorageDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowStorageDeviceTypeEnum.NOTDEFINED IfcElectricFlowTreatmentDeviceTypeEnum = enum_namespace() -electronicfilter = getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'ELECTRONICFILTER', INDETERMINATE) -userdefined = getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +electronicfilter = IfcElectricFlowTreatmentDeviceTypeEnum.ELECTRONICFILTER +userdefined = IfcElectricFlowTreatmentDeviceTypeEnum.USERDEFINED +notdefined = IfcElectricFlowTreatmentDeviceTypeEnum.NOTDEFINED IfcElectricGeneratorTypeEnum = enum_namespace() -chp = getattr(IfcElectricGeneratorTypeEnum, 'CHP', INDETERMINATE) -enginegenerator = getattr(IfcElectricGeneratorTypeEnum, 'ENGINEGENERATOR', INDETERMINATE) -standalone = getattr(IfcElectricGeneratorTypeEnum, 'STANDALONE', INDETERMINATE) -userdefined = getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricGeneratorTypeEnum, 'NOTDEFINED', INDETERMINATE) +chp = IfcElectricGeneratorTypeEnum.CHP +enginegenerator = IfcElectricGeneratorTypeEnum.ENGINEGENERATOR +standalone = IfcElectricGeneratorTypeEnum.STANDALONE +userdefined = IfcElectricGeneratorTypeEnum.USERDEFINED +notdefined = IfcElectricGeneratorTypeEnum.NOTDEFINED IfcElectricMotorTypeEnum = enum_namespace() -dc = getattr(IfcElectricMotorTypeEnum, 'DC', INDETERMINATE) -induction = getattr(IfcElectricMotorTypeEnum, 'INDUCTION', INDETERMINATE) -polyphase = getattr(IfcElectricMotorTypeEnum, 'POLYPHASE', INDETERMINATE) -reluctancesynchronous = getattr(IfcElectricMotorTypeEnum, 'RELUCTANCESYNCHRONOUS', INDETERMINATE) -synchronous = getattr(IfcElectricMotorTypeEnum, 'SYNCHRONOUS', INDETERMINATE) -userdefined = getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricMotorTypeEnum, 'NOTDEFINED', INDETERMINATE) +dc = IfcElectricMotorTypeEnum.DC +induction = IfcElectricMotorTypeEnum.INDUCTION +polyphase = IfcElectricMotorTypeEnum.POLYPHASE +reluctancesynchronous = IfcElectricMotorTypeEnum.RELUCTANCESYNCHRONOUS +synchronous = IfcElectricMotorTypeEnum.SYNCHRONOUS +userdefined = IfcElectricMotorTypeEnum.USERDEFINED +notdefined = IfcElectricMotorTypeEnum.NOTDEFINED IfcElectricTimeControlTypeEnum = enum_namespace() -relay = getattr(IfcElectricTimeControlTypeEnum, 'RELAY', INDETERMINATE) -timeclock = getattr(IfcElectricTimeControlTypeEnum, 'TIMECLOCK', INDETERMINATE) -timedelay = getattr(IfcElectricTimeControlTypeEnum, 'TIMEDELAY', INDETERMINATE) -userdefined = getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElectricTimeControlTypeEnum, 'NOTDEFINED', INDETERMINATE) +relay = IfcElectricTimeControlTypeEnum.RELAY +timeclock = IfcElectricTimeControlTypeEnum.TIMECLOCK +timedelay = IfcElectricTimeControlTypeEnum.TIMEDELAY +userdefined = IfcElectricTimeControlTypeEnum.USERDEFINED +notdefined = IfcElectricTimeControlTypeEnum.NOTDEFINED IfcElementAssemblyTypeEnum = enum_namespace() -abutment = getattr(IfcElementAssemblyTypeEnum, 'ABUTMENT', INDETERMINATE) -accessory_assembly = getattr(IfcElementAssemblyTypeEnum, 'ACCESSORY_ASSEMBLY', INDETERMINATE) -arch = getattr(IfcElementAssemblyTypeEnum, 'ARCH', INDETERMINATE) -beam_grid = getattr(IfcElementAssemblyTypeEnum, 'BEAM_GRID', INDETERMINATE) -braced_frame = getattr(IfcElementAssemblyTypeEnum, 'BRACED_FRAME', INDETERMINATE) -cross_bracing = getattr(IfcElementAssemblyTypeEnum, 'CROSS_BRACING', INDETERMINATE) -deck = getattr(IfcElementAssemblyTypeEnum, 'DECK', INDETERMINATE) -dilatationpanel = getattr(IfcElementAssemblyTypeEnum, 'DILATATIONPANEL', INDETERMINATE) -entranceworks = getattr(IfcElementAssemblyTypeEnum, 'ENTRANCEWORKS', INDETERMINATE) -girder = getattr(IfcElementAssemblyTypeEnum, 'GIRDER', INDETERMINATE) -grid = getattr(IfcElementAssemblyTypeEnum, 'GRID', INDETERMINATE) -mast = getattr(IfcElementAssemblyTypeEnum, 'MAST', INDETERMINATE) -pier = getattr(IfcElementAssemblyTypeEnum, 'PIER', INDETERMINATE) -pylon = getattr(IfcElementAssemblyTypeEnum, 'PYLON', INDETERMINATE) -rail_mechanical_equipment_assembly = getattr(IfcElementAssemblyTypeEnum, 'RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY', INDETERMINATE) -reinforcement_unit = getattr(IfcElementAssemblyTypeEnum, 'REINFORCEMENT_UNIT', INDETERMINATE) -rigid_frame = getattr(IfcElementAssemblyTypeEnum, 'RIGID_FRAME', INDETERMINATE) -shelter = getattr(IfcElementAssemblyTypeEnum, 'SHELTER', INDETERMINATE) -signalassembly = getattr(IfcElementAssemblyTypeEnum, 'SIGNALASSEMBLY', INDETERMINATE) -slab_field = getattr(IfcElementAssemblyTypeEnum, 'SLAB_FIELD', INDETERMINATE) -sumpbuster = getattr(IfcElementAssemblyTypeEnum, 'SUMPBUSTER', INDETERMINATE) -supportingassembly = getattr(IfcElementAssemblyTypeEnum, 'SUPPORTINGASSEMBLY', INDETERMINATE) -suspensionassembly = getattr(IfcElementAssemblyTypeEnum, 'SUSPENSIONASSEMBLY', INDETERMINATE) -trackpanel = getattr(IfcElementAssemblyTypeEnum, 'TRACKPANEL', INDETERMINATE) -traction_switching_assembly = getattr(IfcElementAssemblyTypeEnum, 'TRACTION_SWITCHING_ASSEMBLY', INDETERMINATE) -traffic_calming_device = getattr(IfcElementAssemblyTypeEnum, 'TRAFFIC_CALMING_DEVICE', INDETERMINATE) -truss = getattr(IfcElementAssemblyTypeEnum, 'TRUSS', INDETERMINATE) -turnoutpanel = getattr(IfcElementAssemblyTypeEnum, 'TURNOUTPANEL', INDETERMINATE) -userdefined = getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcElementAssemblyTypeEnum, 'NOTDEFINED', INDETERMINATE) +abutment = IfcElementAssemblyTypeEnum.ABUTMENT +accessory_assembly = IfcElementAssemblyTypeEnum.ACCESSORY_ASSEMBLY +arch = IfcElementAssemblyTypeEnum.ARCH +beam_grid = IfcElementAssemblyTypeEnum.BEAM_GRID +braced_frame = IfcElementAssemblyTypeEnum.BRACED_FRAME +cross_bracing = IfcElementAssemblyTypeEnum.CROSS_BRACING +deck = IfcElementAssemblyTypeEnum.DECK +dilatationpanel = IfcElementAssemblyTypeEnum.DILATATIONPANEL +entranceworks = IfcElementAssemblyTypeEnum.ENTRANCEWORKS +girder = IfcElementAssemblyTypeEnum.GIRDER +grid = IfcElementAssemblyTypeEnum.GRID +mast = IfcElementAssemblyTypeEnum.MAST +pier = IfcElementAssemblyTypeEnum.PIER +pylon = IfcElementAssemblyTypeEnum.PYLON +rail_mechanical_equipment_assembly = IfcElementAssemblyTypeEnum.RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY +reinforcement_unit = IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT +rigid_frame = IfcElementAssemblyTypeEnum.RIGID_FRAME +shelter = IfcElementAssemblyTypeEnum.SHELTER +signalassembly = IfcElementAssemblyTypeEnum.SIGNALASSEMBLY +slab_field = IfcElementAssemblyTypeEnum.SLAB_FIELD +sumpbuster = IfcElementAssemblyTypeEnum.SUMPBUSTER +supportingassembly = IfcElementAssemblyTypeEnum.SUPPORTINGASSEMBLY +suspensionassembly = IfcElementAssemblyTypeEnum.SUSPENSIONASSEMBLY +trackpanel = IfcElementAssemblyTypeEnum.TRACKPANEL +traction_switching_assembly = IfcElementAssemblyTypeEnum.TRACTION_SWITCHING_ASSEMBLY +traffic_calming_device = IfcElementAssemblyTypeEnum.TRAFFIC_CALMING_DEVICE +truss = IfcElementAssemblyTypeEnum.TRUSS +turnoutpanel = IfcElementAssemblyTypeEnum.TURNOUTPANEL +userdefined = IfcElementAssemblyTypeEnum.USERDEFINED +notdefined = IfcElementAssemblyTypeEnum.NOTDEFINED IfcElementCompositionEnum = enum_namespace() -complex = getattr(IfcElementCompositionEnum, 'COMPLEX', INDETERMINATE) -element = getattr(IfcElementCompositionEnum, 'ELEMENT', INDETERMINATE) -partial = getattr(IfcElementCompositionEnum, 'PARTIAL', INDETERMINATE) +complex = IfcElementCompositionEnum.COMPLEX +element = IfcElementCompositionEnum.ELEMENT +partial = IfcElementCompositionEnum.PARTIAL IfcEngineTypeEnum = enum_namespace() -externalcombustion = getattr(IfcEngineTypeEnum, 'EXTERNALCOMBUSTION', INDETERMINATE) -internalcombustion = getattr(IfcEngineTypeEnum, 'INTERNALCOMBUSTION', INDETERMINATE) -userdefined = getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEngineTypeEnum, 'NOTDEFINED', INDETERMINATE) +externalcombustion = IfcEngineTypeEnum.EXTERNALCOMBUSTION +internalcombustion = IfcEngineTypeEnum.INTERNALCOMBUSTION +userdefined = IfcEngineTypeEnum.USERDEFINED +notdefined = IfcEngineTypeEnum.NOTDEFINED IfcEvaporativeCoolerTypeEnum = enum_namespace() -directevaporativeairwasher = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEAIRWASHER', INDETERMINATE) -directevaporativepackagedrotaryaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER', INDETERMINATE) -directevaporativerandommediaaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER', INDETERMINATE) -directevaporativerigidmediaaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER', INDETERMINATE) -directevaporativeslingerspackagedaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER', INDETERMINATE) -indirectdirectcombination = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTDIRECTCOMBINATION', INDETERMINATE) -indirectevaporativecoolingtowerorcoilcooler = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER', INDETERMINATE) -indirectevaporativepackageaircooler = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEPACKAGEAIRCOOLER', INDETERMINATE) -indirectevaporativewetcoil = getattr(IfcEvaporativeCoolerTypeEnum, 'INDIRECTEVAPORATIVEWETCOIL', INDETERMINATE) -userdefined = getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEvaporativeCoolerTypeEnum, 'NOTDEFINED', INDETERMINATE) +directevaporativeairwasher = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEAIRWASHER +directevaporativepackagedrotaryaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER +directevaporativerandommediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER +directevaporativerigidmediaaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER +directevaporativeslingerspackagedaircooler = IfcEvaporativeCoolerTypeEnum.DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER +indirectdirectcombination = IfcEvaporativeCoolerTypeEnum.INDIRECTDIRECTCOMBINATION +indirectevaporativecoolingtowerorcoilcooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER +indirectevaporativepackageaircooler = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEPACKAGEAIRCOOLER +indirectevaporativewetcoil = IfcEvaporativeCoolerTypeEnum.INDIRECTEVAPORATIVEWETCOIL +userdefined = IfcEvaporativeCoolerTypeEnum.USERDEFINED +notdefined = IfcEvaporativeCoolerTypeEnum.NOTDEFINED IfcEvaporatorTypeEnum = enum_namespace() -directexpansion = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSION', INDETERMINATE) -directexpansionbrazedplate = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONBRAZEDPLATE', INDETERMINATE) -directexpansionshellandtube = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONSHELLANDTUBE', INDETERMINATE) -directexpansiontubeintube = getattr(IfcEvaporatorTypeEnum, 'DIRECTEXPANSIONTUBEINTUBE', INDETERMINATE) -floodedshellandtube = getattr(IfcEvaporatorTypeEnum, 'FLOODEDSHELLANDTUBE', INDETERMINATE) -shellandcoil = getattr(IfcEvaporatorTypeEnum, 'SHELLANDCOIL', INDETERMINATE) -userdefined = getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEvaporatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +directexpansion = IfcEvaporatorTypeEnum.DIRECTEXPANSION +directexpansionbrazedplate = IfcEvaporatorTypeEnum.DIRECTEXPANSIONBRAZEDPLATE +directexpansionshellandtube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONSHELLANDTUBE +directexpansiontubeintube = IfcEvaporatorTypeEnum.DIRECTEXPANSIONTUBEINTUBE +floodedshellandtube = IfcEvaporatorTypeEnum.FLOODEDSHELLANDTUBE +shellandcoil = IfcEvaporatorTypeEnum.SHELLANDCOIL +userdefined = IfcEvaporatorTypeEnum.USERDEFINED +notdefined = IfcEvaporatorTypeEnum.NOTDEFINED IfcEventTriggerTypeEnum = enum_namespace() -eventcomplex = getattr(IfcEventTriggerTypeEnum, 'EVENTCOMPLEX', INDETERMINATE) -eventmessage = getattr(IfcEventTriggerTypeEnum, 'EVENTMESSAGE', INDETERMINATE) -eventrule = getattr(IfcEventTriggerTypeEnum, 'EVENTRULE', INDETERMINATE) -eventtime = getattr(IfcEventTriggerTypeEnum, 'EVENTTIME', INDETERMINATE) -userdefined = getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEventTriggerTypeEnum, 'NOTDEFINED', INDETERMINATE) +eventcomplex = IfcEventTriggerTypeEnum.EVENTCOMPLEX +eventmessage = IfcEventTriggerTypeEnum.EVENTMESSAGE +eventrule = IfcEventTriggerTypeEnum.EVENTRULE +eventtime = IfcEventTriggerTypeEnum.EVENTTIME +userdefined = IfcEventTriggerTypeEnum.USERDEFINED +notdefined = IfcEventTriggerTypeEnum.NOTDEFINED IfcEventTypeEnum = enum_namespace() -endevent = getattr(IfcEventTypeEnum, 'ENDEVENT', INDETERMINATE) -intermediateevent = getattr(IfcEventTypeEnum, 'INTERMEDIATEEVENT', INDETERMINATE) -startevent = getattr(IfcEventTypeEnum, 'STARTEVENT', INDETERMINATE) -userdefined = getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcEventTypeEnum, 'NOTDEFINED', INDETERMINATE) +endevent = IfcEventTypeEnum.ENDEVENT +intermediateevent = IfcEventTypeEnum.INTERMEDIATEEVENT +startevent = IfcEventTypeEnum.STARTEVENT +userdefined = IfcEventTypeEnum.USERDEFINED +notdefined = IfcEventTypeEnum.NOTDEFINED IfcExternalSpatialElementTypeEnum = enum_namespace() -external = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL', INDETERMINATE) -external_earth = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_fire = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_FIRE', INDETERMINATE) -external_water = getattr(IfcExternalSpatialElementTypeEnum, 'EXTERNAL_WATER', INDETERMINATE) -userdefined = getattr(IfcExternalSpatialElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcExternalSpatialElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcExternalSpatialElementTypeEnum.EXTERNAL +external_earth = IfcExternalSpatialElementTypeEnum.EXTERNAL_EARTH +external_fire = IfcExternalSpatialElementTypeEnum.EXTERNAL_FIRE +external_water = IfcExternalSpatialElementTypeEnum.EXTERNAL_WATER +userdefined = IfcExternalSpatialElementTypeEnum.USERDEFINED +notdefined = IfcExternalSpatialElementTypeEnum.NOTDEFINED IfcFacilityPartCommonTypeEnum = enum_namespace() -aboveground = getattr(IfcFacilityPartCommonTypeEnum, 'ABOVEGROUND', INDETERMINATE) -belowground = getattr(IfcFacilityPartCommonTypeEnum, 'BELOWGROUND', INDETERMINATE) -junction = getattr(IfcFacilityPartCommonTypeEnum, 'JUNCTION', INDETERMINATE) -levelcrossing = getattr(IfcFacilityPartCommonTypeEnum, 'LEVELCROSSING', INDETERMINATE) -segment = getattr(IfcFacilityPartCommonTypeEnum, 'SEGMENT', INDETERMINATE) -substructure = getattr(IfcFacilityPartCommonTypeEnum, 'SUBSTRUCTURE', INDETERMINATE) -superstructure = getattr(IfcFacilityPartCommonTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -terminal = getattr(IfcFacilityPartCommonTypeEnum, 'TERMINAL', INDETERMINATE) -userdefined = getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFacilityPartCommonTypeEnum, 'NOTDEFINED', INDETERMINATE) +aboveground = IfcFacilityPartCommonTypeEnum.ABOVEGROUND +belowground = IfcFacilityPartCommonTypeEnum.BELOWGROUND +junction = IfcFacilityPartCommonTypeEnum.JUNCTION +levelcrossing = IfcFacilityPartCommonTypeEnum.LEVELCROSSING +segment = IfcFacilityPartCommonTypeEnum.SEGMENT +substructure = IfcFacilityPartCommonTypeEnum.SUBSTRUCTURE +superstructure = IfcFacilityPartCommonTypeEnum.SUPERSTRUCTURE +terminal = IfcFacilityPartCommonTypeEnum.TERMINAL +userdefined = IfcFacilityPartCommonTypeEnum.USERDEFINED +notdefined = IfcFacilityPartCommonTypeEnum.NOTDEFINED IfcFacilityUsageEnum = enum_namespace() -lateral = getattr(IfcFacilityUsageEnum, 'LATERAL', INDETERMINATE) -longitudinal = getattr(IfcFacilityUsageEnum, 'LONGITUDINAL', INDETERMINATE) -region = getattr(IfcFacilityUsageEnum, 'REGION', INDETERMINATE) -vertical = getattr(IfcFacilityUsageEnum, 'VERTICAL', INDETERMINATE) -userdefined = getattr(IfcFacilityUsageEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFacilityUsageEnum, 'NOTDEFINED', INDETERMINATE) +lateral = IfcFacilityUsageEnum.LATERAL +longitudinal = IfcFacilityUsageEnum.LONGITUDINAL +region = IfcFacilityUsageEnum.REGION +vertical = IfcFacilityUsageEnum.VERTICAL +userdefined = IfcFacilityUsageEnum.USERDEFINED +notdefined = IfcFacilityUsageEnum.NOTDEFINED IfcFanTypeEnum = enum_namespace() -centrifugalairfoil = getattr(IfcFanTypeEnum, 'CENTRIFUGALAIRFOIL', INDETERMINATE) -centrifugalbackwardinclinedcurved = getattr(IfcFanTypeEnum, 'CENTRIFUGALBACKWARDINCLINEDCURVED', INDETERMINATE) -centrifugalforwardcurved = getattr(IfcFanTypeEnum, 'CENTRIFUGALFORWARDCURVED', INDETERMINATE) -centrifugalradial = getattr(IfcFanTypeEnum, 'CENTRIFUGALRADIAL', INDETERMINATE) -propelloraxial = getattr(IfcFanTypeEnum, 'PROPELLORAXIAL', INDETERMINATE) -tubeaxial = getattr(IfcFanTypeEnum, 'TUBEAXIAL', INDETERMINATE) -vaneaxial = getattr(IfcFanTypeEnum, 'VANEAXIAL', INDETERMINATE) -userdefined = getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFanTypeEnum, 'NOTDEFINED', INDETERMINATE) +centrifugalairfoil = IfcFanTypeEnum.CENTRIFUGALAIRFOIL +centrifugalbackwardinclinedcurved = IfcFanTypeEnum.CENTRIFUGALBACKWARDINCLINEDCURVED +centrifugalforwardcurved = IfcFanTypeEnum.CENTRIFUGALFORWARDCURVED +centrifugalradial = IfcFanTypeEnum.CENTRIFUGALRADIAL +propelloraxial = IfcFanTypeEnum.PROPELLORAXIAL +tubeaxial = IfcFanTypeEnum.TUBEAXIAL +vaneaxial = IfcFanTypeEnum.VANEAXIAL +userdefined = IfcFanTypeEnum.USERDEFINED +notdefined = IfcFanTypeEnum.NOTDEFINED IfcFastenerTypeEnum = enum_namespace() -glue = getattr(IfcFastenerTypeEnum, 'GLUE', INDETERMINATE) -mortar = getattr(IfcFastenerTypeEnum, 'MORTAR', INDETERMINATE) -weld = getattr(IfcFastenerTypeEnum, 'WELD', INDETERMINATE) -userdefined = getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +glue = IfcFastenerTypeEnum.GLUE +mortar = IfcFastenerTypeEnum.MORTAR +weld = IfcFastenerTypeEnum.WELD +userdefined = IfcFastenerTypeEnum.USERDEFINED +notdefined = IfcFastenerTypeEnum.NOTDEFINED IfcFilterTypeEnum = enum_namespace() -airparticlefilter = getattr(IfcFilterTypeEnum, 'AIRPARTICLEFILTER', INDETERMINATE) -compressedairfilter = getattr(IfcFilterTypeEnum, 'COMPRESSEDAIRFILTER', INDETERMINATE) -odorfilter = getattr(IfcFilterTypeEnum, 'ODORFILTER', INDETERMINATE) -oilfilter = getattr(IfcFilterTypeEnum, 'OILFILTER', INDETERMINATE) -strainer = getattr(IfcFilterTypeEnum, 'STRAINER', INDETERMINATE) -waterfilter = getattr(IfcFilterTypeEnum, 'WATERFILTER', INDETERMINATE) -userdefined = getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFilterTypeEnum, 'NOTDEFINED', INDETERMINATE) +airparticlefilter = IfcFilterTypeEnum.AIRPARTICLEFILTER +compressedairfilter = IfcFilterTypeEnum.COMPRESSEDAIRFILTER +odorfilter = IfcFilterTypeEnum.ODORFILTER +oilfilter = IfcFilterTypeEnum.OILFILTER +strainer = IfcFilterTypeEnum.STRAINER +waterfilter = IfcFilterTypeEnum.WATERFILTER +userdefined = IfcFilterTypeEnum.USERDEFINED +notdefined = IfcFilterTypeEnum.NOTDEFINED IfcFireSuppressionTerminalTypeEnum = enum_namespace() -breechinginlet = getattr(IfcFireSuppressionTerminalTypeEnum, 'BREECHINGINLET', INDETERMINATE) -firehydrant = getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREHYDRANT', INDETERMINATE) -firemonitor = getattr(IfcFireSuppressionTerminalTypeEnum, 'FIREMONITOR', INDETERMINATE) -hosereel = getattr(IfcFireSuppressionTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -sprinkler = getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLER', INDETERMINATE) -sprinklerdeflector = getattr(IfcFireSuppressionTerminalTypeEnum, 'SPRINKLERDEFLECTOR', INDETERMINATE) -userdefined = getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFireSuppressionTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +breechinginlet = IfcFireSuppressionTerminalTypeEnum.BREECHINGINLET +firehydrant = IfcFireSuppressionTerminalTypeEnum.FIREHYDRANT +firemonitor = IfcFireSuppressionTerminalTypeEnum.FIREMONITOR +hosereel = IfcFireSuppressionTerminalTypeEnum.HOSEREEL +sprinkler = IfcFireSuppressionTerminalTypeEnum.SPRINKLER +sprinklerdeflector = IfcFireSuppressionTerminalTypeEnum.SPRINKLERDEFLECTOR +userdefined = IfcFireSuppressionTerminalTypeEnum.USERDEFINED +notdefined = IfcFireSuppressionTerminalTypeEnum.NOTDEFINED IfcFlowDirectionEnum = enum_namespace() -sink = getattr(IfcFlowDirectionEnum, 'SINK', INDETERMINATE) -source = getattr(IfcFlowDirectionEnum, 'SOURCE', INDETERMINATE) -sourceandsink = getattr(IfcFlowDirectionEnum, 'SOURCEANDSINK', INDETERMINATE) -notdefined = getattr(IfcFlowDirectionEnum, 'NOTDEFINED', INDETERMINATE) +sink = IfcFlowDirectionEnum.SINK +source = IfcFlowDirectionEnum.SOURCE +sourceandsink = IfcFlowDirectionEnum.SOURCEANDSINK +notdefined = IfcFlowDirectionEnum.NOTDEFINED IfcFlowInstrumentTypeEnum = enum_namespace() -ammeter = getattr(IfcFlowInstrumentTypeEnum, 'AMMETER', INDETERMINATE) -combined = getattr(IfcFlowInstrumentTypeEnum, 'COMBINED', INDETERMINATE) -frequencymeter = getattr(IfcFlowInstrumentTypeEnum, 'FREQUENCYMETER', INDETERMINATE) -phaseanglemeter = getattr(IfcFlowInstrumentTypeEnum, 'PHASEANGLEMETER', INDETERMINATE) -powerfactormeter = getattr(IfcFlowInstrumentTypeEnum, 'POWERFACTORMETER', INDETERMINATE) -pressuregauge = getattr(IfcFlowInstrumentTypeEnum, 'PRESSUREGAUGE', INDETERMINATE) -thermometer = getattr(IfcFlowInstrumentTypeEnum, 'THERMOMETER', INDETERMINATE) -voltmeter = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER', INDETERMINATE) -voltmeter_peak = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_PEAK', INDETERMINATE) -voltmeter_rms = getattr(IfcFlowInstrumentTypeEnum, 'VOLTMETER_RMS', INDETERMINATE) -userdefined = getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFlowInstrumentTypeEnum, 'NOTDEFINED', INDETERMINATE) +ammeter = IfcFlowInstrumentTypeEnum.AMMETER +combined = IfcFlowInstrumentTypeEnum.COMBINED +frequencymeter = IfcFlowInstrumentTypeEnum.FREQUENCYMETER +phaseanglemeter = IfcFlowInstrumentTypeEnum.PHASEANGLEMETER +powerfactormeter = IfcFlowInstrumentTypeEnum.POWERFACTORMETER +pressuregauge = IfcFlowInstrumentTypeEnum.PRESSUREGAUGE +thermometer = IfcFlowInstrumentTypeEnum.THERMOMETER +voltmeter = IfcFlowInstrumentTypeEnum.VOLTMETER +voltmeter_peak = IfcFlowInstrumentTypeEnum.VOLTMETER_PEAK +voltmeter_rms = IfcFlowInstrumentTypeEnum.VOLTMETER_RMS +userdefined = IfcFlowInstrumentTypeEnum.USERDEFINED +notdefined = IfcFlowInstrumentTypeEnum.NOTDEFINED IfcFlowMeterTypeEnum = enum_namespace() -energymeter = getattr(IfcFlowMeterTypeEnum, 'ENERGYMETER', INDETERMINATE) -gasmeter = getattr(IfcFlowMeterTypeEnum, 'GASMETER', INDETERMINATE) -oilmeter = getattr(IfcFlowMeterTypeEnum, 'OILMETER', INDETERMINATE) -watermeter = getattr(IfcFlowMeterTypeEnum, 'WATERMETER', INDETERMINATE) -userdefined = getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFlowMeterTypeEnum, 'NOTDEFINED', INDETERMINATE) +energymeter = IfcFlowMeterTypeEnum.ENERGYMETER +gasmeter = IfcFlowMeterTypeEnum.GASMETER +oilmeter = IfcFlowMeterTypeEnum.OILMETER +watermeter = IfcFlowMeterTypeEnum.WATERMETER +userdefined = IfcFlowMeterTypeEnum.USERDEFINED +notdefined = IfcFlowMeterTypeEnum.NOTDEFINED IfcFootingTypeEnum = enum_namespace() -caisson_foundation = getattr(IfcFootingTypeEnum, 'CAISSON_FOUNDATION', INDETERMINATE) -footing_beam = getattr(IfcFootingTypeEnum, 'FOOTING_BEAM', INDETERMINATE) -pad_footing = getattr(IfcFootingTypeEnum, 'PAD_FOOTING', INDETERMINATE) -pile_cap = getattr(IfcFootingTypeEnum, 'PILE_CAP', INDETERMINATE) -strip_footing = getattr(IfcFootingTypeEnum, 'STRIP_FOOTING', INDETERMINATE) -userdefined = getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFootingTypeEnum, 'NOTDEFINED', INDETERMINATE) +caisson_foundation = IfcFootingTypeEnum.CAISSON_FOUNDATION +footing_beam = IfcFootingTypeEnum.FOOTING_BEAM +pad_footing = IfcFootingTypeEnum.PAD_FOOTING +pile_cap = IfcFootingTypeEnum.PILE_CAP +strip_footing = IfcFootingTypeEnum.STRIP_FOOTING +userdefined = IfcFootingTypeEnum.USERDEFINED +notdefined = IfcFootingTypeEnum.NOTDEFINED IfcFurnitureTypeEnum = enum_namespace() -bed = getattr(IfcFurnitureTypeEnum, 'BED', INDETERMINATE) -chair = getattr(IfcFurnitureTypeEnum, 'CHAIR', INDETERMINATE) -desk = getattr(IfcFurnitureTypeEnum, 'DESK', INDETERMINATE) -filecabinet = getattr(IfcFurnitureTypeEnum, 'FILECABINET', INDETERMINATE) -shelf = getattr(IfcFurnitureTypeEnum, 'SHELF', INDETERMINATE) -sofa = getattr(IfcFurnitureTypeEnum, 'SOFA', INDETERMINATE) -table = getattr(IfcFurnitureTypeEnum, 'TABLE', INDETERMINATE) -technicalcabinet = getattr(IfcFurnitureTypeEnum, 'TECHNICALCABINET', INDETERMINATE) -userdefined = getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcFurnitureTypeEnum, 'NOTDEFINED', INDETERMINATE) +bed = IfcFurnitureTypeEnum.BED +chair = IfcFurnitureTypeEnum.CHAIR +desk = IfcFurnitureTypeEnum.DESK +filecabinet = IfcFurnitureTypeEnum.FILECABINET +shelf = IfcFurnitureTypeEnum.SHELF +sofa = IfcFurnitureTypeEnum.SOFA +table = IfcFurnitureTypeEnum.TABLE +technicalcabinet = IfcFurnitureTypeEnum.TECHNICALCABINET +userdefined = IfcFurnitureTypeEnum.USERDEFINED +notdefined = IfcFurnitureTypeEnum.NOTDEFINED IfcGeographicElementTypeEnum = enum_namespace() -soil_boring_point = getattr(IfcGeographicElementTypeEnum, 'SOIL_BORING_POINT', INDETERMINATE) -terrain = getattr(IfcGeographicElementTypeEnum, 'TERRAIN', INDETERMINATE) -vegetation = getattr(IfcGeographicElementTypeEnum, 'VEGETATION', INDETERMINATE) -userdefined = getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGeographicElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +soil_boring_point = IfcGeographicElementTypeEnum.SOIL_BORING_POINT +terrain = IfcGeographicElementTypeEnum.TERRAIN +vegetation = IfcGeographicElementTypeEnum.VEGETATION +userdefined = IfcGeographicElementTypeEnum.USERDEFINED +notdefined = IfcGeographicElementTypeEnum.NOTDEFINED IfcGeometricProjectionEnum = enum_namespace() -elevation_view = getattr(IfcGeometricProjectionEnum, 'ELEVATION_VIEW', INDETERMINATE) -graph_view = getattr(IfcGeometricProjectionEnum, 'GRAPH_VIEW', INDETERMINATE) -model_view = getattr(IfcGeometricProjectionEnum, 'MODEL_VIEW', INDETERMINATE) -plan_view = getattr(IfcGeometricProjectionEnum, 'PLAN_VIEW', INDETERMINATE) -reflected_plan_view = getattr(IfcGeometricProjectionEnum, 'REFLECTED_PLAN_VIEW', INDETERMINATE) -section_view = getattr(IfcGeometricProjectionEnum, 'SECTION_VIEW', INDETERMINATE) -sketch_view = getattr(IfcGeometricProjectionEnum, 'SKETCH_VIEW', INDETERMINATE) -userdefined = getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGeometricProjectionEnum, 'NOTDEFINED', INDETERMINATE) +elevation_view = IfcGeometricProjectionEnum.ELEVATION_VIEW +graph_view = IfcGeometricProjectionEnum.GRAPH_VIEW +model_view = IfcGeometricProjectionEnum.MODEL_VIEW +plan_view = IfcGeometricProjectionEnum.PLAN_VIEW +reflected_plan_view = IfcGeometricProjectionEnum.REFLECTED_PLAN_VIEW +section_view = IfcGeometricProjectionEnum.SECTION_VIEW +sketch_view = IfcGeometricProjectionEnum.SKETCH_VIEW +userdefined = IfcGeometricProjectionEnum.USERDEFINED +notdefined = IfcGeometricProjectionEnum.NOTDEFINED IfcGeotechnicalStratumTypeEnum = enum_namespace() -solid = getattr(IfcGeotechnicalStratumTypeEnum, 'SOLID', INDETERMINATE) -void = getattr(IfcGeotechnicalStratumTypeEnum, 'VOID', INDETERMINATE) -water = getattr(IfcGeotechnicalStratumTypeEnum, 'WATER', INDETERMINATE) -userdefined = getattr(IfcGeotechnicalStratumTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGeotechnicalStratumTypeEnum, 'NOTDEFINED', INDETERMINATE) +solid = IfcGeotechnicalStratumTypeEnum.SOLID +void = IfcGeotechnicalStratumTypeEnum.VOID +water = IfcGeotechnicalStratumTypeEnum.WATER +userdefined = IfcGeotechnicalStratumTypeEnum.USERDEFINED +notdefined = IfcGeotechnicalStratumTypeEnum.NOTDEFINED IfcGlobalOrLocalEnum = enum_namespace() -global_coords = getattr(IfcGlobalOrLocalEnum, 'GLOBAL_COORDS', INDETERMINATE) -local_coords = getattr(IfcGlobalOrLocalEnum, 'LOCAL_COORDS', INDETERMINATE) +global_coords = IfcGlobalOrLocalEnum.GLOBAL_COORDS +local_coords = IfcGlobalOrLocalEnum.LOCAL_COORDS IfcGridTypeEnum = enum_namespace() -irregular = getattr(IfcGridTypeEnum, 'IRREGULAR', INDETERMINATE) -radial = getattr(IfcGridTypeEnum, 'RADIAL', INDETERMINATE) -rectangular = getattr(IfcGridTypeEnum, 'RECTANGULAR', INDETERMINATE) -triangular = getattr(IfcGridTypeEnum, 'TRIANGULAR', INDETERMINATE) -userdefined = getattr(IfcGridTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcGridTypeEnum, 'NOTDEFINED', INDETERMINATE) +irregular = IfcGridTypeEnum.IRREGULAR +radial = IfcGridTypeEnum.RADIAL +rectangular = IfcGridTypeEnum.RECTANGULAR +triangular = IfcGridTypeEnum.TRIANGULAR +userdefined = IfcGridTypeEnum.USERDEFINED +notdefined = IfcGridTypeEnum.NOTDEFINED IfcHeatExchangerTypeEnum = enum_namespace() -plate = getattr(IfcHeatExchangerTypeEnum, 'PLATE', INDETERMINATE) -shellandtube = getattr(IfcHeatExchangerTypeEnum, 'SHELLANDTUBE', INDETERMINATE) -turnoutheating = getattr(IfcHeatExchangerTypeEnum, 'TURNOUTHEATING', INDETERMINATE) -userdefined = getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcHeatExchangerTypeEnum, 'NOTDEFINED', INDETERMINATE) +plate = IfcHeatExchangerTypeEnum.PLATE +shellandtube = IfcHeatExchangerTypeEnum.SHELLANDTUBE +turnoutheating = IfcHeatExchangerTypeEnum.TURNOUTHEATING +userdefined = IfcHeatExchangerTypeEnum.USERDEFINED +notdefined = IfcHeatExchangerTypeEnum.NOTDEFINED IfcHumidifierTypeEnum = enum_namespace() -adiabaticairwasher = getattr(IfcHumidifierTypeEnum, 'ADIABATICAIRWASHER', INDETERMINATE) -adiabaticatomizing = getattr(IfcHumidifierTypeEnum, 'ADIABATICATOMIZING', INDETERMINATE) -adiabaticcompressedairnozzle = getattr(IfcHumidifierTypeEnum, 'ADIABATICCOMPRESSEDAIRNOZZLE', INDETERMINATE) -adiabaticpan = getattr(IfcHumidifierTypeEnum, 'ADIABATICPAN', INDETERMINATE) -adiabaticrigidmedia = getattr(IfcHumidifierTypeEnum, 'ADIABATICRIGIDMEDIA', INDETERMINATE) -adiabaticultrasonic = getattr(IfcHumidifierTypeEnum, 'ADIABATICULTRASONIC', INDETERMINATE) -adiabaticwettedelement = getattr(IfcHumidifierTypeEnum, 'ADIABATICWETTEDELEMENT', INDETERMINATE) -assistedbutane = getattr(IfcHumidifierTypeEnum, 'ASSISTEDBUTANE', INDETERMINATE) -assistedelectric = getattr(IfcHumidifierTypeEnum, 'ASSISTEDELECTRIC', INDETERMINATE) -assistednaturalgas = getattr(IfcHumidifierTypeEnum, 'ASSISTEDNATURALGAS', INDETERMINATE) -assistedpropane = getattr(IfcHumidifierTypeEnum, 'ASSISTEDPROPANE', INDETERMINATE) -assistedsteam = getattr(IfcHumidifierTypeEnum, 'ASSISTEDSTEAM', INDETERMINATE) -steaminjection = getattr(IfcHumidifierTypeEnum, 'STEAMINJECTION', INDETERMINATE) -userdefined = getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcHumidifierTypeEnum, 'NOTDEFINED', INDETERMINATE) +adiabaticairwasher = IfcHumidifierTypeEnum.ADIABATICAIRWASHER +adiabaticatomizing = IfcHumidifierTypeEnum.ADIABATICATOMIZING +adiabaticcompressedairnozzle = IfcHumidifierTypeEnum.ADIABATICCOMPRESSEDAIRNOZZLE +adiabaticpan = IfcHumidifierTypeEnum.ADIABATICPAN +adiabaticrigidmedia = IfcHumidifierTypeEnum.ADIABATICRIGIDMEDIA +adiabaticultrasonic = IfcHumidifierTypeEnum.ADIABATICULTRASONIC +adiabaticwettedelement = IfcHumidifierTypeEnum.ADIABATICWETTEDELEMENT +assistedbutane = IfcHumidifierTypeEnum.ASSISTEDBUTANE +assistedelectric = IfcHumidifierTypeEnum.ASSISTEDELECTRIC +assistednaturalgas = IfcHumidifierTypeEnum.ASSISTEDNATURALGAS +assistedpropane = IfcHumidifierTypeEnum.ASSISTEDPROPANE +assistedsteam = IfcHumidifierTypeEnum.ASSISTEDSTEAM +steaminjection = IfcHumidifierTypeEnum.STEAMINJECTION +userdefined = IfcHumidifierTypeEnum.USERDEFINED +notdefined = IfcHumidifierTypeEnum.NOTDEFINED IfcImpactProtectionDeviceTypeEnum = enum_namespace() -bumper = getattr(IfcImpactProtectionDeviceTypeEnum, 'BUMPER', INDETERMINATE) -crashcushion = getattr(IfcImpactProtectionDeviceTypeEnum, 'CRASHCUSHION', INDETERMINATE) -dampingsystem = getattr(IfcImpactProtectionDeviceTypeEnum, 'DAMPINGSYSTEM', INDETERMINATE) -fender = getattr(IfcImpactProtectionDeviceTypeEnum, 'FENDER', INDETERMINATE) -userdefined = getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcImpactProtectionDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +bumper = IfcImpactProtectionDeviceTypeEnum.BUMPER +crashcushion = IfcImpactProtectionDeviceTypeEnum.CRASHCUSHION +dampingsystem = IfcImpactProtectionDeviceTypeEnum.DAMPINGSYSTEM +fender = IfcImpactProtectionDeviceTypeEnum.FENDER +userdefined = IfcImpactProtectionDeviceTypeEnum.USERDEFINED +notdefined = IfcImpactProtectionDeviceTypeEnum.NOTDEFINED IfcInterceptorTypeEnum = enum_namespace() -cyclonic = getattr(IfcInterceptorTypeEnum, 'CYCLONIC', INDETERMINATE) -grease = getattr(IfcInterceptorTypeEnum, 'GREASE', INDETERMINATE) -oil = getattr(IfcInterceptorTypeEnum, 'OIL', INDETERMINATE) -petrol = getattr(IfcInterceptorTypeEnum, 'PETROL', INDETERMINATE) -userdefined = getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcInterceptorTypeEnum, 'NOTDEFINED', INDETERMINATE) +cyclonic = IfcInterceptorTypeEnum.CYCLONIC +grease = IfcInterceptorTypeEnum.GREASE +oil = IfcInterceptorTypeEnum.OIL +petrol = IfcInterceptorTypeEnum.PETROL +userdefined = IfcInterceptorTypeEnum.USERDEFINED +notdefined = IfcInterceptorTypeEnum.NOTDEFINED IfcInternalOrExternalEnum = enum_namespace() -external = getattr(IfcInternalOrExternalEnum, 'EXTERNAL', INDETERMINATE) -external_earth = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_EARTH', INDETERMINATE) -external_fire = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_FIRE', INDETERMINATE) -external_water = getattr(IfcInternalOrExternalEnum, 'EXTERNAL_WATER', INDETERMINATE) -internal = getattr(IfcInternalOrExternalEnum, 'INTERNAL', INDETERMINATE) -notdefined = getattr(IfcInternalOrExternalEnum, 'NOTDEFINED', INDETERMINATE) +external = IfcInternalOrExternalEnum.EXTERNAL +external_earth = IfcInternalOrExternalEnum.EXTERNAL_EARTH +external_fire = IfcInternalOrExternalEnum.EXTERNAL_FIRE +external_water = IfcInternalOrExternalEnum.EXTERNAL_WATER +internal = IfcInternalOrExternalEnum.INTERNAL +notdefined = IfcInternalOrExternalEnum.NOTDEFINED IfcInventoryTypeEnum = enum_namespace() -assetinventory = getattr(IfcInventoryTypeEnum, 'ASSETINVENTORY', INDETERMINATE) -furnitureinventory = getattr(IfcInventoryTypeEnum, 'FURNITUREINVENTORY', INDETERMINATE) -spaceinventory = getattr(IfcInventoryTypeEnum, 'SPACEINVENTORY', INDETERMINATE) -userdefined = getattr(IfcInventoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcInventoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +assetinventory = IfcInventoryTypeEnum.ASSETINVENTORY +furnitureinventory = IfcInventoryTypeEnum.FURNITUREINVENTORY +spaceinventory = IfcInventoryTypeEnum.SPACEINVENTORY +userdefined = IfcInventoryTypeEnum.USERDEFINED +notdefined = IfcInventoryTypeEnum.NOTDEFINED IfcJunctionBoxTypeEnum = enum_namespace() -data = getattr(IfcJunctionBoxTypeEnum, 'DATA', INDETERMINATE) -power = getattr(IfcJunctionBoxTypeEnum, 'POWER', INDETERMINATE) -userdefined = getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcJunctionBoxTypeEnum, 'NOTDEFINED', INDETERMINATE) +data = IfcJunctionBoxTypeEnum.DATA +power = IfcJunctionBoxTypeEnum.POWER +userdefined = IfcJunctionBoxTypeEnum.USERDEFINED +notdefined = IfcJunctionBoxTypeEnum.NOTDEFINED IfcKerbTypeEnum = enum_namespace() -userdefined = getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcKerbTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcKerbTypeEnum.USERDEFINED +notdefined = IfcKerbTypeEnum.NOTDEFINED IfcKnotType = enum_namespace() -piecewise_bezier_knots = getattr(IfcKnotType, 'PIECEWISE_BEZIER_KNOTS', INDETERMINATE) -quasi_uniform_knots = getattr(IfcKnotType, 'QUASI_UNIFORM_KNOTS', INDETERMINATE) -uniform_knots = getattr(IfcKnotType, 'UNIFORM_KNOTS', INDETERMINATE) -unspecified = getattr(IfcKnotType, 'UNSPECIFIED', INDETERMINATE) +piecewise_bezier_knots = IfcKnotType.PIECEWISE_BEZIER_KNOTS +quasi_uniform_knots = IfcKnotType.QUASI_UNIFORM_KNOTS +uniform_knots = IfcKnotType.UNIFORM_KNOTS +unspecified = IfcKnotType.UNSPECIFIED IfcLaborResourceTypeEnum = enum_namespace() -administration = getattr(IfcLaborResourceTypeEnum, 'ADMINISTRATION', INDETERMINATE) -carpentry = getattr(IfcLaborResourceTypeEnum, 'CARPENTRY', INDETERMINATE) -cleaning = getattr(IfcLaborResourceTypeEnum, 'CLEANING', INDETERMINATE) -concrete = getattr(IfcLaborResourceTypeEnum, 'CONCRETE', INDETERMINATE) -drywall = getattr(IfcLaborResourceTypeEnum, 'DRYWALL', INDETERMINATE) -electric = getattr(IfcLaborResourceTypeEnum, 'ELECTRIC', INDETERMINATE) -finishing = getattr(IfcLaborResourceTypeEnum, 'FINISHING', INDETERMINATE) -flooring = getattr(IfcLaborResourceTypeEnum, 'FLOORING', INDETERMINATE) -general = getattr(IfcLaborResourceTypeEnum, 'GENERAL', INDETERMINATE) -hvac = getattr(IfcLaborResourceTypeEnum, 'HVAC', INDETERMINATE) -landscaping = getattr(IfcLaborResourceTypeEnum, 'LANDSCAPING', INDETERMINATE) -masonry = getattr(IfcLaborResourceTypeEnum, 'MASONRY', INDETERMINATE) -painting = getattr(IfcLaborResourceTypeEnum, 'PAINTING', INDETERMINATE) -paving = getattr(IfcLaborResourceTypeEnum, 'PAVING', INDETERMINATE) -plumbing = getattr(IfcLaborResourceTypeEnum, 'PLUMBING', INDETERMINATE) -roofing = getattr(IfcLaborResourceTypeEnum, 'ROOFING', INDETERMINATE) -sitegrading = getattr(IfcLaborResourceTypeEnum, 'SITEGRADING', INDETERMINATE) -steelwork = getattr(IfcLaborResourceTypeEnum, 'STEELWORK', INDETERMINATE) -surveying = getattr(IfcLaborResourceTypeEnum, 'SURVEYING', INDETERMINATE) -userdefined = getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLaborResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +administration = IfcLaborResourceTypeEnum.ADMINISTRATION +carpentry = IfcLaborResourceTypeEnum.CARPENTRY +cleaning = IfcLaborResourceTypeEnum.CLEANING +concrete = IfcLaborResourceTypeEnum.CONCRETE +drywall = IfcLaborResourceTypeEnum.DRYWALL +electric = IfcLaborResourceTypeEnum.ELECTRIC +finishing = IfcLaborResourceTypeEnum.FINISHING +flooring = IfcLaborResourceTypeEnum.FLOORING +general = IfcLaborResourceTypeEnum.GENERAL +hvac = IfcLaborResourceTypeEnum.HVAC +landscaping = IfcLaborResourceTypeEnum.LANDSCAPING +masonry = IfcLaborResourceTypeEnum.MASONRY +painting = IfcLaborResourceTypeEnum.PAINTING +paving = IfcLaborResourceTypeEnum.PAVING +plumbing = IfcLaborResourceTypeEnum.PLUMBING +roofing = IfcLaborResourceTypeEnum.ROOFING +sitegrading = IfcLaborResourceTypeEnum.SITEGRADING +steelwork = IfcLaborResourceTypeEnum.STEELWORK +surveying = IfcLaborResourceTypeEnum.SURVEYING +userdefined = IfcLaborResourceTypeEnum.USERDEFINED +notdefined = IfcLaborResourceTypeEnum.NOTDEFINED IfcLampTypeEnum = enum_namespace() -compactfluorescent = getattr(IfcLampTypeEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = getattr(IfcLampTypeEnum, 'FLUORESCENT', INDETERMINATE) -halogen = getattr(IfcLampTypeEnum, 'HALOGEN', INDETERMINATE) -highpressuremercury = getattr(IfcLampTypeEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = getattr(IfcLampTypeEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -led = getattr(IfcLampTypeEnum, 'LED', INDETERMINATE) -metalhalide = getattr(IfcLampTypeEnum, 'METALHALIDE', INDETERMINATE) -oled = getattr(IfcLampTypeEnum, 'OLED', INDETERMINATE) -tungstenfilament = getattr(IfcLampTypeEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -userdefined = getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLampTypeEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLampTypeEnum.COMPACTFLUORESCENT +fluorescent = IfcLampTypeEnum.FLUORESCENT +halogen = IfcLampTypeEnum.HALOGEN +highpressuremercury = IfcLampTypeEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLampTypeEnum.HIGHPRESSURESODIUM +led = IfcLampTypeEnum.LED +metalhalide = IfcLampTypeEnum.METALHALIDE +oled = IfcLampTypeEnum.OLED +tungstenfilament = IfcLampTypeEnum.TUNGSTENFILAMENT +userdefined = IfcLampTypeEnum.USERDEFINED +notdefined = IfcLampTypeEnum.NOTDEFINED IfcLayerSetDirectionEnum = enum_namespace() -axis1 = getattr(IfcLayerSetDirectionEnum, 'AXIS1', INDETERMINATE) -axis2 = getattr(IfcLayerSetDirectionEnum, 'AXIS2', INDETERMINATE) -axis3 = getattr(IfcLayerSetDirectionEnum, 'AXIS3', INDETERMINATE) +axis1 = IfcLayerSetDirectionEnum.AXIS1 +axis2 = IfcLayerSetDirectionEnum.AXIS2 +axis3 = IfcLayerSetDirectionEnum.AXIS3 IfcLightDistributionCurveEnum = enum_namespace() -type_a = getattr(IfcLightDistributionCurveEnum, 'TYPE_A', INDETERMINATE) -type_b = getattr(IfcLightDistributionCurveEnum, 'TYPE_B', INDETERMINATE) -type_c = getattr(IfcLightDistributionCurveEnum, 'TYPE_C', INDETERMINATE) -notdefined = getattr(IfcLightDistributionCurveEnum, 'NOTDEFINED', INDETERMINATE) +type_a = IfcLightDistributionCurveEnum.TYPE_A +type_b = IfcLightDistributionCurveEnum.TYPE_B +type_c = IfcLightDistributionCurveEnum.TYPE_C +notdefined = IfcLightDistributionCurveEnum.NOTDEFINED IfcLightEmissionSourceEnum = enum_namespace() -compactfluorescent = getattr(IfcLightEmissionSourceEnum, 'COMPACTFLUORESCENT', INDETERMINATE) -fluorescent = getattr(IfcLightEmissionSourceEnum, 'FLUORESCENT', INDETERMINATE) -highpressuremercury = getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSUREMERCURY', INDETERMINATE) -highpressuresodium = getattr(IfcLightEmissionSourceEnum, 'HIGHPRESSURESODIUM', INDETERMINATE) -lightemittingdiode = getattr(IfcLightEmissionSourceEnum, 'LIGHTEMITTINGDIODE', INDETERMINATE) -lowpressuresodium = getattr(IfcLightEmissionSourceEnum, 'LOWPRESSURESODIUM', INDETERMINATE) -lowvoltagehalogen = getattr(IfcLightEmissionSourceEnum, 'LOWVOLTAGEHALOGEN', INDETERMINATE) -mainvoltagehalogen = getattr(IfcLightEmissionSourceEnum, 'MAINVOLTAGEHALOGEN', INDETERMINATE) -metalhalide = getattr(IfcLightEmissionSourceEnum, 'METALHALIDE', INDETERMINATE) -tungstenfilament = getattr(IfcLightEmissionSourceEnum, 'TUNGSTENFILAMENT', INDETERMINATE) -notdefined = getattr(IfcLightEmissionSourceEnum, 'NOTDEFINED', INDETERMINATE) +compactfluorescent = IfcLightEmissionSourceEnum.COMPACTFLUORESCENT +fluorescent = IfcLightEmissionSourceEnum.FLUORESCENT +highpressuremercury = IfcLightEmissionSourceEnum.HIGHPRESSUREMERCURY +highpressuresodium = IfcLightEmissionSourceEnum.HIGHPRESSURESODIUM +lightemittingdiode = IfcLightEmissionSourceEnum.LIGHTEMITTINGDIODE +lowpressuresodium = IfcLightEmissionSourceEnum.LOWPRESSURESODIUM +lowvoltagehalogen = IfcLightEmissionSourceEnum.LOWVOLTAGEHALOGEN +mainvoltagehalogen = IfcLightEmissionSourceEnum.MAINVOLTAGEHALOGEN +metalhalide = IfcLightEmissionSourceEnum.METALHALIDE +tungstenfilament = IfcLightEmissionSourceEnum.TUNGSTENFILAMENT +notdefined = IfcLightEmissionSourceEnum.NOTDEFINED IfcLightFixtureTypeEnum = enum_namespace() -directionsource = getattr(IfcLightFixtureTypeEnum, 'DIRECTIONSOURCE', INDETERMINATE) -pointsource = getattr(IfcLightFixtureTypeEnum, 'POINTSOURCE', INDETERMINATE) -securitylighting = getattr(IfcLightFixtureTypeEnum, 'SECURITYLIGHTING', INDETERMINATE) -userdefined = getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLightFixtureTypeEnum, 'NOTDEFINED', INDETERMINATE) +directionsource = IfcLightFixtureTypeEnum.DIRECTIONSOURCE +pointsource = IfcLightFixtureTypeEnum.POINTSOURCE +securitylighting = IfcLightFixtureTypeEnum.SECURITYLIGHTING +userdefined = IfcLightFixtureTypeEnum.USERDEFINED +notdefined = IfcLightFixtureTypeEnum.NOTDEFINED IfcLiquidTerminalTypeEnum = enum_namespace() -hosereel = getattr(IfcLiquidTerminalTypeEnum, 'HOSEREEL', INDETERMINATE) -loadingarm = getattr(IfcLiquidTerminalTypeEnum, 'LOADINGARM', INDETERMINATE) -userdefined = getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLiquidTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +hosereel = IfcLiquidTerminalTypeEnum.HOSEREEL +loadingarm = IfcLiquidTerminalTypeEnum.LOADINGARM +userdefined = IfcLiquidTerminalTypeEnum.USERDEFINED +notdefined = IfcLiquidTerminalTypeEnum.NOTDEFINED IfcLoadGroupTypeEnum = enum_namespace() -load_case = getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE) -load_combination = getattr(IfcLoadGroupTypeEnum, 'LOAD_COMBINATION', INDETERMINATE) -load_group = getattr(IfcLoadGroupTypeEnum, 'LOAD_GROUP', INDETERMINATE) -userdefined = getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcLoadGroupTypeEnum, 'NOTDEFINED', INDETERMINATE) +load_case = IfcLoadGroupTypeEnum.LOAD_CASE +load_combination = IfcLoadGroupTypeEnum.LOAD_COMBINATION +load_group = IfcLoadGroupTypeEnum.LOAD_GROUP +userdefined = IfcLoadGroupTypeEnum.USERDEFINED +notdefined = IfcLoadGroupTypeEnum.NOTDEFINED IfcLogicalOperatorEnum = enum_namespace() -logicaland = getattr(IfcLogicalOperatorEnum, 'LOGICALAND', INDETERMINATE) -logicalnotand = getattr(IfcLogicalOperatorEnum, 'LOGICALNOTAND', INDETERMINATE) -logicalnotor = getattr(IfcLogicalOperatorEnum, 'LOGICALNOTOR', INDETERMINATE) -logicalor = getattr(IfcLogicalOperatorEnum, 'LOGICALOR', INDETERMINATE) -logicalxor = getattr(IfcLogicalOperatorEnum, 'LOGICALXOR', INDETERMINATE) +logicaland = IfcLogicalOperatorEnum.LOGICALAND +logicalnotand = IfcLogicalOperatorEnum.LOGICALNOTAND +logicalnotor = IfcLogicalOperatorEnum.LOGICALNOTOR +logicalor = IfcLogicalOperatorEnum.LOGICALOR +logicalxor = IfcLogicalOperatorEnum.LOGICALXOR IfcMarineFacilityTypeEnum = enum_namespace() -barrierbeach = getattr(IfcMarineFacilityTypeEnum, 'BARRIERBEACH', INDETERMINATE) -breakwater = getattr(IfcMarineFacilityTypeEnum, 'BREAKWATER', INDETERMINATE) -canal = getattr(IfcMarineFacilityTypeEnum, 'CANAL', INDETERMINATE) -drydock = getattr(IfcMarineFacilityTypeEnum, 'DRYDOCK', INDETERMINATE) -floatingdock = getattr(IfcMarineFacilityTypeEnum, 'FLOATINGDOCK', INDETERMINATE) -hydrolift = getattr(IfcMarineFacilityTypeEnum, 'HYDROLIFT', INDETERMINATE) -jetty = getattr(IfcMarineFacilityTypeEnum, 'JETTY', INDETERMINATE) -launchrecovery = getattr(IfcMarineFacilityTypeEnum, 'LAUNCHRECOVERY', INDETERMINATE) -marinedefence = getattr(IfcMarineFacilityTypeEnum, 'MARINEDEFENCE', INDETERMINATE) -navigationalchannel = getattr(IfcMarineFacilityTypeEnum, 'NAVIGATIONALCHANNEL', INDETERMINATE) -port = getattr(IfcMarineFacilityTypeEnum, 'PORT', INDETERMINATE) -quay = getattr(IfcMarineFacilityTypeEnum, 'QUAY', INDETERMINATE) -revetment = getattr(IfcMarineFacilityTypeEnum, 'REVETMENT', INDETERMINATE) -shiplift = getattr(IfcMarineFacilityTypeEnum, 'SHIPLIFT', INDETERMINATE) -shiplock = getattr(IfcMarineFacilityTypeEnum, 'SHIPLOCK', INDETERMINATE) -shipyard = getattr(IfcMarineFacilityTypeEnum, 'SHIPYARD', INDETERMINATE) -slipway = getattr(IfcMarineFacilityTypeEnum, 'SLIPWAY', INDETERMINATE) -waterway = getattr(IfcMarineFacilityTypeEnum, 'WATERWAY', INDETERMINATE) -waterwayshiplift = getattr(IfcMarineFacilityTypeEnum, 'WATERWAYSHIPLIFT', INDETERMINATE) -userdefined = getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMarineFacilityTypeEnum, 'NOTDEFINED', INDETERMINATE) +barrierbeach = IfcMarineFacilityTypeEnum.BARRIERBEACH +breakwater = IfcMarineFacilityTypeEnum.BREAKWATER +canal = IfcMarineFacilityTypeEnum.CANAL +drydock = IfcMarineFacilityTypeEnum.DRYDOCK +floatingdock = IfcMarineFacilityTypeEnum.FLOATINGDOCK +hydrolift = IfcMarineFacilityTypeEnum.HYDROLIFT +jetty = IfcMarineFacilityTypeEnum.JETTY +launchrecovery = IfcMarineFacilityTypeEnum.LAUNCHRECOVERY +marinedefence = IfcMarineFacilityTypeEnum.MARINEDEFENCE +navigationalchannel = IfcMarineFacilityTypeEnum.NAVIGATIONALCHANNEL +port = IfcMarineFacilityTypeEnum.PORT +quay = IfcMarineFacilityTypeEnum.QUAY +revetment = IfcMarineFacilityTypeEnum.REVETMENT +shiplift = IfcMarineFacilityTypeEnum.SHIPLIFT +shiplock = IfcMarineFacilityTypeEnum.SHIPLOCK +shipyard = IfcMarineFacilityTypeEnum.SHIPYARD +slipway = IfcMarineFacilityTypeEnum.SLIPWAY +waterway = IfcMarineFacilityTypeEnum.WATERWAY +waterwayshiplift = IfcMarineFacilityTypeEnum.WATERWAYSHIPLIFT +userdefined = IfcMarineFacilityTypeEnum.USERDEFINED +notdefined = IfcMarineFacilityTypeEnum.NOTDEFINED IfcMarinePartTypeEnum = enum_namespace() -abovewaterline = getattr(IfcMarinePartTypeEnum, 'ABOVEWATERLINE', INDETERMINATE) -anchorage = getattr(IfcMarinePartTypeEnum, 'ANCHORAGE', INDETERMINATE) -approachchannel = getattr(IfcMarinePartTypeEnum, 'APPROACHCHANNEL', INDETERMINATE) -belowwaterline = getattr(IfcMarinePartTypeEnum, 'BELOWWATERLINE', INDETERMINATE) -berthingstructure = getattr(IfcMarinePartTypeEnum, 'BERTHINGSTRUCTURE', INDETERMINATE) -chamber = getattr(IfcMarinePartTypeEnum, 'CHAMBER', INDETERMINATE) -cill_level = getattr(IfcMarinePartTypeEnum, 'CILL_LEVEL', INDETERMINATE) -copelevel = getattr(IfcMarinePartTypeEnum, 'COPELEVEL', INDETERMINATE) -core = getattr(IfcMarinePartTypeEnum, 'CORE', INDETERMINATE) -crest = getattr(IfcMarinePartTypeEnum, 'CREST', INDETERMINATE) -gatehead = getattr(IfcMarinePartTypeEnum, 'GATEHEAD', INDETERMINATE) -gudingstructure = getattr(IfcMarinePartTypeEnum, 'GUDINGSTRUCTURE', INDETERMINATE) -highwaterline = getattr(IfcMarinePartTypeEnum, 'HIGHWATERLINE', INDETERMINATE) -landfield = getattr(IfcMarinePartTypeEnum, 'LANDFIELD', INDETERMINATE) -leewardside = getattr(IfcMarinePartTypeEnum, 'LEEWARDSIDE', INDETERMINATE) -lowwaterline = getattr(IfcMarinePartTypeEnum, 'LOWWATERLINE', INDETERMINATE) -manufacturing = getattr(IfcMarinePartTypeEnum, 'MANUFACTURING', INDETERMINATE) -navigationalarea = getattr(IfcMarinePartTypeEnum, 'NAVIGATIONALAREA', INDETERMINATE) -protection = getattr(IfcMarinePartTypeEnum, 'PROTECTION', INDETERMINATE) -shiptransfer = getattr(IfcMarinePartTypeEnum, 'SHIPTRANSFER', INDETERMINATE) -storagearea = getattr(IfcMarinePartTypeEnum, 'STORAGEAREA', INDETERMINATE) -vehicleservicing = getattr(IfcMarinePartTypeEnum, 'VEHICLESERVICING', INDETERMINATE) -waterfield = getattr(IfcMarinePartTypeEnum, 'WATERFIELD', INDETERMINATE) -weatherside = getattr(IfcMarinePartTypeEnum, 'WEATHERSIDE', INDETERMINATE) -userdefined = getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMarinePartTypeEnum, 'NOTDEFINED', INDETERMINATE) +abovewaterline = IfcMarinePartTypeEnum.ABOVEWATERLINE +anchorage = IfcMarinePartTypeEnum.ANCHORAGE +approachchannel = IfcMarinePartTypeEnum.APPROACHCHANNEL +belowwaterline = IfcMarinePartTypeEnum.BELOWWATERLINE +berthingstructure = IfcMarinePartTypeEnum.BERTHINGSTRUCTURE +chamber = IfcMarinePartTypeEnum.CHAMBER +cill_level = IfcMarinePartTypeEnum.CILL_LEVEL +copelevel = IfcMarinePartTypeEnum.COPELEVEL +core = IfcMarinePartTypeEnum.CORE +crest = IfcMarinePartTypeEnum.CREST +gatehead = IfcMarinePartTypeEnum.GATEHEAD +gudingstructure = IfcMarinePartTypeEnum.GUDINGSTRUCTURE +highwaterline = IfcMarinePartTypeEnum.HIGHWATERLINE +landfield = IfcMarinePartTypeEnum.LANDFIELD +leewardside = IfcMarinePartTypeEnum.LEEWARDSIDE +lowwaterline = IfcMarinePartTypeEnum.LOWWATERLINE +manufacturing = IfcMarinePartTypeEnum.MANUFACTURING +navigationalarea = IfcMarinePartTypeEnum.NAVIGATIONALAREA +protection = IfcMarinePartTypeEnum.PROTECTION +shiptransfer = IfcMarinePartTypeEnum.SHIPTRANSFER +storagearea = IfcMarinePartTypeEnum.STORAGEAREA +vehicleservicing = IfcMarinePartTypeEnum.VEHICLESERVICING +waterfield = IfcMarinePartTypeEnum.WATERFIELD +weatherside = IfcMarinePartTypeEnum.WEATHERSIDE +userdefined = IfcMarinePartTypeEnum.USERDEFINED +notdefined = IfcMarinePartTypeEnum.NOTDEFINED IfcMechanicalFastenerTypeEnum = enum_namespace() -anchorbolt = getattr(IfcMechanicalFastenerTypeEnum, 'ANCHORBOLT', INDETERMINATE) -bolt = getattr(IfcMechanicalFastenerTypeEnum, 'BOLT', INDETERMINATE) -chain = getattr(IfcMechanicalFastenerTypeEnum, 'CHAIN', INDETERMINATE) -coupler = getattr(IfcMechanicalFastenerTypeEnum, 'COUPLER', INDETERMINATE) -dowel = getattr(IfcMechanicalFastenerTypeEnum, 'DOWEL', INDETERMINATE) -nail = getattr(IfcMechanicalFastenerTypeEnum, 'NAIL', INDETERMINATE) -nailplate = getattr(IfcMechanicalFastenerTypeEnum, 'NAILPLATE', INDETERMINATE) -railfastening = getattr(IfcMechanicalFastenerTypeEnum, 'RAILFASTENING', INDETERMINATE) -railjoint = getattr(IfcMechanicalFastenerTypeEnum, 'RAILJOINT', INDETERMINATE) -rivet = getattr(IfcMechanicalFastenerTypeEnum, 'RIVET', INDETERMINATE) -rope = getattr(IfcMechanicalFastenerTypeEnum, 'ROPE', INDETERMINATE) -screw = getattr(IfcMechanicalFastenerTypeEnum, 'SCREW', INDETERMINATE) -shearconnector = getattr(IfcMechanicalFastenerTypeEnum, 'SHEARCONNECTOR', INDETERMINATE) -staple = getattr(IfcMechanicalFastenerTypeEnum, 'STAPLE', INDETERMINATE) -studshearconnector = getattr(IfcMechanicalFastenerTypeEnum, 'STUDSHEARCONNECTOR', INDETERMINATE) -userdefined = getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMechanicalFastenerTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchorbolt = IfcMechanicalFastenerTypeEnum.ANCHORBOLT +bolt = IfcMechanicalFastenerTypeEnum.BOLT +chain = IfcMechanicalFastenerTypeEnum.CHAIN +coupler = IfcMechanicalFastenerTypeEnum.COUPLER +dowel = IfcMechanicalFastenerTypeEnum.DOWEL +nail = IfcMechanicalFastenerTypeEnum.NAIL +nailplate = IfcMechanicalFastenerTypeEnum.NAILPLATE +railfastening = IfcMechanicalFastenerTypeEnum.RAILFASTENING +railjoint = IfcMechanicalFastenerTypeEnum.RAILJOINT +rivet = IfcMechanicalFastenerTypeEnum.RIVET +rope = IfcMechanicalFastenerTypeEnum.ROPE +screw = IfcMechanicalFastenerTypeEnum.SCREW +shearconnector = IfcMechanicalFastenerTypeEnum.SHEARCONNECTOR +staple = IfcMechanicalFastenerTypeEnum.STAPLE +studshearconnector = IfcMechanicalFastenerTypeEnum.STUDSHEARCONNECTOR +userdefined = IfcMechanicalFastenerTypeEnum.USERDEFINED +notdefined = IfcMechanicalFastenerTypeEnum.NOTDEFINED IfcMedicalDeviceTypeEnum = enum_namespace() -airstation = getattr(IfcMedicalDeviceTypeEnum, 'AIRSTATION', INDETERMINATE) -feedairunit = getattr(IfcMedicalDeviceTypeEnum, 'FEEDAIRUNIT', INDETERMINATE) -oxygengenerator = getattr(IfcMedicalDeviceTypeEnum, 'OXYGENGENERATOR', INDETERMINATE) -oxygenplant = getattr(IfcMedicalDeviceTypeEnum, 'OXYGENPLANT', INDETERMINATE) -vacuumstation = getattr(IfcMedicalDeviceTypeEnum, 'VACUUMSTATION', INDETERMINATE) -userdefined = getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMedicalDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +airstation = IfcMedicalDeviceTypeEnum.AIRSTATION +feedairunit = IfcMedicalDeviceTypeEnum.FEEDAIRUNIT +oxygengenerator = IfcMedicalDeviceTypeEnum.OXYGENGENERATOR +oxygenplant = IfcMedicalDeviceTypeEnum.OXYGENPLANT +vacuumstation = IfcMedicalDeviceTypeEnum.VACUUMSTATION +userdefined = IfcMedicalDeviceTypeEnum.USERDEFINED +notdefined = IfcMedicalDeviceTypeEnum.NOTDEFINED IfcMemberTypeEnum = enum_namespace() -arch_segment = getattr(IfcMemberTypeEnum, 'ARCH_SEGMENT', INDETERMINATE) -brace = getattr(IfcMemberTypeEnum, 'BRACE', INDETERMINATE) -chord = getattr(IfcMemberTypeEnum, 'CHORD', INDETERMINATE) -collar = getattr(IfcMemberTypeEnum, 'COLLAR', INDETERMINATE) -member = getattr(IfcMemberTypeEnum, 'MEMBER', INDETERMINATE) -mullion = getattr(IfcMemberTypeEnum, 'MULLION', INDETERMINATE) -plate = getattr(IfcMemberTypeEnum, 'PLATE', INDETERMINATE) -post = getattr(IfcMemberTypeEnum, 'POST', INDETERMINATE) -purlin = getattr(IfcMemberTypeEnum, 'PURLIN', INDETERMINATE) -rafter = getattr(IfcMemberTypeEnum, 'RAFTER', INDETERMINATE) -stay_cable = getattr(IfcMemberTypeEnum, 'STAY_CABLE', INDETERMINATE) -stiffening_rib = getattr(IfcMemberTypeEnum, 'STIFFENING_RIB', INDETERMINATE) -stringer = getattr(IfcMemberTypeEnum, 'STRINGER', INDETERMINATE) -structuralcable = getattr(IfcMemberTypeEnum, 'STRUCTURALCABLE', INDETERMINATE) -strut = getattr(IfcMemberTypeEnum, 'STRUT', INDETERMINATE) -stud = getattr(IfcMemberTypeEnum, 'STUD', INDETERMINATE) -suspender = getattr(IfcMemberTypeEnum, 'SUSPENDER', INDETERMINATE) -suspension_cable = getattr(IfcMemberTypeEnum, 'SUSPENSION_CABLE', INDETERMINATE) -tiebar = getattr(IfcMemberTypeEnum, 'TIEBAR', INDETERMINATE) -userdefined = getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +arch_segment = IfcMemberTypeEnum.ARCH_SEGMENT +brace = IfcMemberTypeEnum.BRACE +chord = IfcMemberTypeEnum.CHORD +collar = IfcMemberTypeEnum.COLLAR +member = IfcMemberTypeEnum.MEMBER +mullion = IfcMemberTypeEnum.MULLION +plate = IfcMemberTypeEnum.PLATE +post = IfcMemberTypeEnum.POST +purlin = IfcMemberTypeEnum.PURLIN +rafter = IfcMemberTypeEnum.RAFTER +stay_cable = IfcMemberTypeEnum.STAY_CABLE +stiffening_rib = IfcMemberTypeEnum.STIFFENING_RIB +stringer = IfcMemberTypeEnum.STRINGER +structuralcable = IfcMemberTypeEnum.STRUCTURALCABLE +strut = IfcMemberTypeEnum.STRUT +stud = IfcMemberTypeEnum.STUD +suspender = IfcMemberTypeEnum.SUSPENDER +suspension_cable = IfcMemberTypeEnum.SUSPENSION_CABLE +tiebar = IfcMemberTypeEnum.TIEBAR +userdefined = IfcMemberTypeEnum.USERDEFINED +notdefined = IfcMemberTypeEnum.NOTDEFINED IfcMobileTelecommunicationsApplianceTypeEnum = enum_namespace() -accesspoint = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'ACCESSPOINT', INDETERMINATE) -basebandunit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASEBANDUNIT', INDETERMINATE) -basetransceiverstation = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'BASETRANSCEIVERSTATION', INDETERMINATE) -e_utran_node_b = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'E_UTRAN_NODE_B', INDETERMINATE) -gateway_gprs_support_node = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'GATEWAY_GPRS_SUPPORT_NODE', INDETERMINATE) -masterunit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MASTERUNIT', INDETERMINATE) -mobileswitchingcenter = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MOBILESWITCHINGCENTER', INDETERMINATE) -mscserver = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'MSCSERVER', INDETERMINATE) -packetcontrolunit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'PACKETCONTROLUNIT', INDETERMINATE) -remoteradiounit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTERADIOUNIT', INDETERMINATE) -remoteunit = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'REMOTEUNIT', INDETERMINATE) -service_gprs_support_node = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'SERVICE_GPRS_SUPPORT_NODE', INDETERMINATE) -subscriberserver = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'SUBSCRIBERSERVER', INDETERMINATE) -userdefined = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'NOTDEFINED', INDETERMINATE) +accesspoint = IfcMobileTelecommunicationsApplianceTypeEnum.ACCESSPOINT +basebandunit = IfcMobileTelecommunicationsApplianceTypeEnum.BASEBANDUNIT +basetransceiverstation = IfcMobileTelecommunicationsApplianceTypeEnum.BASETRANSCEIVERSTATION +e_utran_node_b = IfcMobileTelecommunicationsApplianceTypeEnum.E_UTRAN_NODE_B +gateway_gprs_support_node = IfcMobileTelecommunicationsApplianceTypeEnum.GATEWAY_GPRS_SUPPORT_NODE +masterunit = IfcMobileTelecommunicationsApplianceTypeEnum.MASTERUNIT +mobileswitchingcenter = IfcMobileTelecommunicationsApplianceTypeEnum.MOBILESWITCHINGCENTER +mscserver = IfcMobileTelecommunicationsApplianceTypeEnum.MSCSERVER +packetcontrolunit = IfcMobileTelecommunicationsApplianceTypeEnum.PACKETCONTROLUNIT +remoteradiounit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTERADIOUNIT +remoteunit = IfcMobileTelecommunicationsApplianceTypeEnum.REMOTEUNIT +service_gprs_support_node = IfcMobileTelecommunicationsApplianceTypeEnum.SERVICE_GPRS_SUPPORT_NODE +subscriberserver = IfcMobileTelecommunicationsApplianceTypeEnum.SUBSCRIBERSERVER +userdefined = IfcMobileTelecommunicationsApplianceTypeEnum.USERDEFINED +notdefined = IfcMobileTelecommunicationsApplianceTypeEnum.NOTDEFINED IfcMooringDeviceTypeEnum = enum_namespace() -bollard = getattr(IfcMooringDeviceTypeEnum, 'BOLLARD', INDETERMINATE) -linetensioner = getattr(IfcMooringDeviceTypeEnum, 'LINETENSIONER', INDETERMINATE) -magneticdevice = getattr(IfcMooringDeviceTypeEnum, 'MAGNETICDEVICE', INDETERMINATE) -mooringhooks = getattr(IfcMooringDeviceTypeEnum, 'MOORINGHOOKS', INDETERMINATE) -vacuumdevice = getattr(IfcMooringDeviceTypeEnum, 'VACUUMDEVICE', INDETERMINATE) -userdefined = getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMooringDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +bollard = IfcMooringDeviceTypeEnum.BOLLARD +linetensioner = IfcMooringDeviceTypeEnum.LINETENSIONER +magneticdevice = IfcMooringDeviceTypeEnum.MAGNETICDEVICE +mooringhooks = IfcMooringDeviceTypeEnum.MOORINGHOOKS +vacuumdevice = IfcMooringDeviceTypeEnum.VACUUMDEVICE +userdefined = IfcMooringDeviceTypeEnum.USERDEFINED +notdefined = IfcMooringDeviceTypeEnum.NOTDEFINED IfcMotorConnectionTypeEnum = enum_namespace() -beltdrive = getattr(IfcMotorConnectionTypeEnum, 'BELTDRIVE', INDETERMINATE) -coupling = getattr(IfcMotorConnectionTypeEnum, 'COUPLING', INDETERMINATE) -directdrive = getattr(IfcMotorConnectionTypeEnum, 'DIRECTDRIVE', INDETERMINATE) -userdefined = getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcMotorConnectionTypeEnum, 'NOTDEFINED', INDETERMINATE) +beltdrive = IfcMotorConnectionTypeEnum.BELTDRIVE +coupling = IfcMotorConnectionTypeEnum.COUPLING +directdrive = IfcMotorConnectionTypeEnum.DIRECTDRIVE +userdefined = IfcMotorConnectionTypeEnum.USERDEFINED +notdefined = IfcMotorConnectionTypeEnum.NOTDEFINED IfcNavigationElementTypeEnum = enum_namespace() -beacon = getattr(IfcNavigationElementTypeEnum, 'BEACON', INDETERMINATE) -buoy = getattr(IfcNavigationElementTypeEnum, 'BUOY', INDETERMINATE) -userdefined = getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcNavigationElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +beacon = IfcNavigationElementTypeEnum.BEACON +buoy = IfcNavigationElementTypeEnum.BUOY +userdefined = IfcNavigationElementTypeEnum.USERDEFINED +notdefined = IfcNavigationElementTypeEnum.NOTDEFINED IfcObjectiveEnum = enum_namespace() -codecompliance = getattr(IfcObjectiveEnum, 'CODECOMPLIANCE', INDETERMINATE) -codewaiver = getattr(IfcObjectiveEnum, 'CODEWAIVER', INDETERMINATE) -designintent = getattr(IfcObjectiveEnum, 'DESIGNINTENT', INDETERMINATE) -external = getattr(IfcObjectiveEnum, 'EXTERNAL', INDETERMINATE) -healthandsafety = getattr(IfcObjectiveEnum, 'HEALTHANDSAFETY', INDETERMINATE) -mergeconflict = getattr(IfcObjectiveEnum, 'MERGECONFLICT', INDETERMINATE) -modelview = getattr(IfcObjectiveEnum, 'MODELVIEW', INDETERMINATE) -parameter = getattr(IfcObjectiveEnum, 'PARAMETER', INDETERMINATE) -requirement = getattr(IfcObjectiveEnum, 'REQUIREMENT', INDETERMINATE) -specification = getattr(IfcObjectiveEnum, 'SPECIFICATION', INDETERMINATE) -triggercondition = getattr(IfcObjectiveEnum, 'TRIGGERCONDITION', INDETERMINATE) -userdefined = getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcObjectiveEnum, 'NOTDEFINED', INDETERMINATE) +codecompliance = IfcObjectiveEnum.CODECOMPLIANCE +codewaiver = IfcObjectiveEnum.CODEWAIVER +designintent = IfcObjectiveEnum.DESIGNINTENT +external = IfcObjectiveEnum.EXTERNAL +healthandsafety = IfcObjectiveEnum.HEALTHANDSAFETY +mergeconflict = IfcObjectiveEnum.MERGECONFLICT +modelview = IfcObjectiveEnum.MODELVIEW +parameter = IfcObjectiveEnum.PARAMETER +requirement = IfcObjectiveEnum.REQUIREMENT +specification = IfcObjectiveEnum.SPECIFICATION +triggercondition = IfcObjectiveEnum.TRIGGERCONDITION +userdefined = IfcObjectiveEnum.USERDEFINED +notdefined = IfcObjectiveEnum.NOTDEFINED IfcOccupantTypeEnum = enum_namespace() -assignee = getattr(IfcOccupantTypeEnum, 'ASSIGNEE', INDETERMINATE) -assignor = getattr(IfcOccupantTypeEnum, 'ASSIGNOR', INDETERMINATE) -lessee = getattr(IfcOccupantTypeEnum, 'LESSEE', INDETERMINATE) -lessor = getattr(IfcOccupantTypeEnum, 'LESSOR', INDETERMINATE) -lettingagent = getattr(IfcOccupantTypeEnum, 'LETTINGAGENT', INDETERMINATE) -owner = getattr(IfcOccupantTypeEnum, 'OWNER', INDETERMINATE) -tenant = getattr(IfcOccupantTypeEnum, 'TENANT', INDETERMINATE) -userdefined = getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOccupantTypeEnum, 'NOTDEFINED', INDETERMINATE) +assignee = IfcOccupantTypeEnum.ASSIGNEE +assignor = IfcOccupantTypeEnum.ASSIGNOR +lessee = IfcOccupantTypeEnum.LESSEE +lessor = IfcOccupantTypeEnum.LESSOR +lettingagent = IfcOccupantTypeEnum.LETTINGAGENT +owner = IfcOccupantTypeEnum.OWNER +tenant = IfcOccupantTypeEnum.TENANT +userdefined = IfcOccupantTypeEnum.USERDEFINED +notdefined = IfcOccupantTypeEnum.NOTDEFINED IfcOpeningElementTypeEnum = enum_namespace() -opening = getattr(IfcOpeningElementTypeEnum, 'OPENING', INDETERMINATE) -recess = getattr(IfcOpeningElementTypeEnum, 'RECESS', INDETERMINATE) -userdefined = getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOpeningElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +opening = IfcOpeningElementTypeEnum.OPENING +recess = IfcOpeningElementTypeEnum.RECESS +userdefined = IfcOpeningElementTypeEnum.USERDEFINED +notdefined = IfcOpeningElementTypeEnum.NOTDEFINED IfcOutletTypeEnum = enum_namespace() -audiovisualoutlet = getattr(IfcOutletTypeEnum, 'AUDIOVISUALOUTLET', INDETERMINATE) -communicationsoutlet = getattr(IfcOutletTypeEnum, 'COMMUNICATIONSOUTLET', INDETERMINATE) -dataoutlet = getattr(IfcOutletTypeEnum, 'DATAOUTLET', INDETERMINATE) -poweroutlet = getattr(IfcOutletTypeEnum, 'POWEROUTLET', INDETERMINATE) -telephoneoutlet = getattr(IfcOutletTypeEnum, 'TELEPHONEOUTLET', INDETERMINATE) -userdefined = getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcOutletTypeEnum, 'NOTDEFINED', INDETERMINATE) +audiovisualoutlet = IfcOutletTypeEnum.AUDIOVISUALOUTLET +communicationsoutlet = IfcOutletTypeEnum.COMMUNICATIONSOUTLET +dataoutlet = IfcOutletTypeEnum.DATAOUTLET +poweroutlet = IfcOutletTypeEnum.POWEROUTLET +telephoneoutlet = IfcOutletTypeEnum.TELEPHONEOUTLET +userdefined = IfcOutletTypeEnum.USERDEFINED +notdefined = IfcOutletTypeEnum.NOTDEFINED IfcPavementTypeEnum = enum_namespace() -flexible = getattr(IfcPavementTypeEnum, 'FLEXIBLE', INDETERMINATE) -rigid = getattr(IfcPavementTypeEnum, 'RIGID', INDETERMINATE) -userdefined = getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPavementTypeEnum, 'NOTDEFINED', INDETERMINATE) +flexible = IfcPavementTypeEnum.FLEXIBLE +rigid = IfcPavementTypeEnum.RIGID +userdefined = IfcPavementTypeEnum.USERDEFINED +notdefined = IfcPavementTypeEnum.NOTDEFINED IfcPerformanceHistoryTypeEnum = enum_namespace() -userdefined = getattr(IfcPerformanceHistoryTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPerformanceHistoryTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcPerformanceHistoryTypeEnum.USERDEFINED +notdefined = IfcPerformanceHistoryTypeEnum.NOTDEFINED IfcPermeableCoveringOperationEnum = enum_namespace() -grill = getattr(IfcPermeableCoveringOperationEnum, 'GRILL', INDETERMINATE) -louver = getattr(IfcPermeableCoveringOperationEnum, 'LOUVER', INDETERMINATE) -screen = getattr(IfcPermeableCoveringOperationEnum, 'SCREEN', INDETERMINATE) -userdefined = getattr(IfcPermeableCoveringOperationEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPermeableCoveringOperationEnum, 'NOTDEFINED', INDETERMINATE) +grill = IfcPermeableCoveringOperationEnum.GRILL +louver = IfcPermeableCoveringOperationEnum.LOUVER +screen = IfcPermeableCoveringOperationEnum.SCREEN +userdefined = IfcPermeableCoveringOperationEnum.USERDEFINED +notdefined = IfcPermeableCoveringOperationEnum.NOTDEFINED IfcPermitTypeEnum = enum_namespace() -access = getattr(IfcPermitTypeEnum, 'ACCESS', INDETERMINATE) -building = getattr(IfcPermitTypeEnum, 'BUILDING', INDETERMINATE) -work = getattr(IfcPermitTypeEnum, 'WORK', INDETERMINATE) -userdefined = getattr(IfcPermitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPermitTypeEnum, 'NOTDEFINED', INDETERMINATE) +access = IfcPermitTypeEnum.ACCESS +building = IfcPermitTypeEnum.BUILDING +work = IfcPermitTypeEnum.WORK +userdefined = IfcPermitTypeEnum.USERDEFINED +notdefined = IfcPermitTypeEnum.NOTDEFINED IfcPhysicalOrVirtualEnum = enum_namespace() -physical = getattr(IfcPhysicalOrVirtualEnum, 'PHYSICAL', INDETERMINATE) -virtual = getattr(IfcPhysicalOrVirtualEnum, 'VIRTUAL', INDETERMINATE) -notdefined = getattr(IfcPhysicalOrVirtualEnum, 'NOTDEFINED', INDETERMINATE) +physical = IfcPhysicalOrVirtualEnum.PHYSICAL +virtual = IfcPhysicalOrVirtualEnum.VIRTUAL +notdefined = IfcPhysicalOrVirtualEnum.NOTDEFINED IfcPileConstructionEnum = enum_namespace() -cast_in_place = getattr(IfcPileConstructionEnum, 'CAST_IN_PLACE', INDETERMINATE) -composite = getattr(IfcPileConstructionEnum, 'COMPOSITE', INDETERMINATE) -precast_concrete = getattr(IfcPileConstructionEnum, 'PRECAST_CONCRETE', INDETERMINATE) -prefab_steel = getattr(IfcPileConstructionEnum, 'PREFAB_STEEL', INDETERMINATE) -userdefined = getattr(IfcPileConstructionEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPileConstructionEnum, 'NOTDEFINED', INDETERMINATE) +cast_in_place = IfcPileConstructionEnum.CAST_IN_PLACE +composite = IfcPileConstructionEnum.COMPOSITE +precast_concrete = IfcPileConstructionEnum.PRECAST_CONCRETE +prefab_steel = IfcPileConstructionEnum.PREFAB_STEEL +userdefined = IfcPileConstructionEnum.USERDEFINED +notdefined = IfcPileConstructionEnum.NOTDEFINED IfcPileTypeEnum = enum_namespace() -bored = getattr(IfcPileTypeEnum, 'BORED', INDETERMINATE) -cohesion = getattr(IfcPileTypeEnum, 'COHESION', INDETERMINATE) -driven = getattr(IfcPileTypeEnum, 'DRIVEN', INDETERMINATE) -friction = getattr(IfcPileTypeEnum, 'FRICTION', INDETERMINATE) -jetgrouting = getattr(IfcPileTypeEnum, 'JETGROUTING', INDETERMINATE) -support = getattr(IfcPileTypeEnum, 'SUPPORT', INDETERMINATE) -userdefined = getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPileTypeEnum, 'NOTDEFINED', INDETERMINATE) +bored = IfcPileTypeEnum.BORED +cohesion = IfcPileTypeEnum.COHESION +driven = IfcPileTypeEnum.DRIVEN +friction = IfcPileTypeEnum.FRICTION +jetgrouting = IfcPileTypeEnum.JETGROUTING +support = IfcPileTypeEnum.SUPPORT +userdefined = IfcPileTypeEnum.USERDEFINED +notdefined = IfcPileTypeEnum.NOTDEFINED IfcPipeFittingTypeEnum = enum_namespace() -bend = getattr(IfcPipeFittingTypeEnum, 'BEND', INDETERMINATE) -connector = getattr(IfcPipeFittingTypeEnum, 'CONNECTOR', INDETERMINATE) -entry = getattr(IfcPipeFittingTypeEnum, 'ENTRY', INDETERMINATE) -exit = getattr(IfcPipeFittingTypeEnum, 'EXIT', INDETERMINATE) -junction = getattr(IfcPipeFittingTypeEnum, 'JUNCTION', INDETERMINATE) -obstruction = getattr(IfcPipeFittingTypeEnum, 'OBSTRUCTION', INDETERMINATE) -transition = getattr(IfcPipeFittingTypeEnum, 'TRANSITION', INDETERMINATE) -userdefined = getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPipeFittingTypeEnum, 'NOTDEFINED', INDETERMINATE) +bend = IfcPipeFittingTypeEnum.BEND +connector = IfcPipeFittingTypeEnum.CONNECTOR +entry = IfcPipeFittingTypeEnum.ENTRY +exit = IfcPipeFittingTypeEnum.EXIT +junction = IfcPipeFittingTypeEnum.JUNCTION +obstruction = IfcPipeFittingTypeEnum.OBSTRUCTION +transition = IfcPipeFittingTypeEnum.TRANSITION +userdefined = IfcPipeFittingTypeEnum.USERDEFINED +notdefined = IfcPipeFittingTypeEnum.NOTDEFINED IfcPipeSegmentTypeEnum = enum_namespace() -culvert = getattr(IfcPipeSegmentTypeEnum, 'CULVERT', INDETERMINATE) -flexiblesegment = getattr(IfcPipeSegmentTypeEnum, 'FLEXIBLESEGMENT', INDETERMINATE) -gutter = getattr(IfcPipeSegmentTypeEnum, 'GUTTER', INDETERMINATE) -rigidsegment = getattr(IfcPipeSegmentTypeEnum, 'RIGIDSEGMENT', INDETERMINATE) -spool = getattr(IfcPipeSegmentTypeEnum, 'SPOOL', INDETERMINATE) -userdefined = getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPipeSegmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +culvert = IfcPipeSegmentTypeEnum.CULVERT +flexiblesegment = IfcPipeSegmentTypeEnum.FLEXIBLESEGMENT +gutter = IfcPipeSegmentTypeEnum.GUTTER +rigidsegment = IfcPipeSegmentTypeEnum.RIGIDSEGMENT +spool = IfcPipeSegmentTypeEnum.SPOOL +userdefined = IfcPipeSegmentTypeEnum.USERDEFINED +notdefined = IfcPipeSegmentTypeEnum.NOTDEFINED IfcPlateTypeEnum = enum_namespace() -base_plate = getattr(IfcPlateTypeEnum, 'BASE_PLATE', INDETERMINATE) -cover_plate = getattr(IfcPlateTypeEnum, 'COVER_PLATE', INDETERMINATE) -curtain_panel = getattr(IfcPlateTypeEnum, 'CURTAIN_PANEL', INDETERMINATE) -flange_plate = getattr(IfcPlateTypeEnum, 'FLANGE_PLATE', INDETERMINATE) -gusset_plate = getattr(IfcPlateTypeEnum, 'GUSSET_PLATE', INDETERMINATE) -sheet = getattr(IfcPlateTypeEnum, 'SHEET', INDETERMINATE) -splice_plate = getattr(IfcPlateTypeEnum, 'SPLICE_PLATE', INDETERMINATE) -stiffener_plate = getattr(IfcPlateTypeEnum, 'STIFFENER_PLATE', INDETERMINATE) -web_plate = getattr(IfcPlateTypeEnum, 'WEB_PLATE', INDETERMINATE) -userdefined = getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPlateTypeEnum, 'NOTDEFINED', INDETERMINATE) +base_plate = IfcPlateTypeEnum.BASE_PLATE +cover_plate = IfcPlateTypeEnum.COVER_PLATE +curtain_panel = IfcPlateTypeEnum.CURTAIN_PANEL +flange_plate = IfcPlateTypeEnum.FLANGE_PLATE +gusset_plate = IfcPlateTypeEnum.GUSSET_PLATE +sheet = IfcPlateTypeEnum.SHEET +splice_plate = IfcPlateTypeEnum.SPLICE_PLATE +stiffener_plate = IfcPlateTypeEnum.STIFFENER_PLATE +web_plate = IfcPlateTypeEnum.WEB_PLATE +userdefined = IfcPlateTypeEnum.USERDEFINED +notdefined = IfcPlateTypeEnum.NOTDEFINED IfcPreferredSurfaceCurveRepresentation = enum_namespace() -curve3d = getattr(IfcPreferredSurfaceCurveRepresentation, 'CURVE3D', INDETERMINATE) -pcurve_s1 = getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S1', INDETERMINATE) -pcurve_s2 = getattr(IfcPreferredSurfaceCurveRepresentation, 'PCURVE_S2', INDETERMINATE) +curve3d = IfcPreferredSurfaceCurveRepresentation.CURVE3D +pcurve_s1 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S1 +pcurve_s2 = IfcPreferredSurfaceCurveRepresentation.PCURVE_S2 IfcProcedureTypeEnum = enum_namespace() -advice_caution = getattr(IfcProcedureTypeEnum, 'ADVICE_CAUTION', INDETERMINATE) -advice_note = getattr(IfcProcedureTypeEnum, 'ADVICE_NOTE', INDETERMINATE) -advice_warning = getattr(IfcProcedureTypeEnum, 'ADVICE_WARNING', INDETERMINATE) -calibration = getattr(IfcProcedureTypeEnum, 'CALIBRATION', INDETERMINATE) -diagnostic = getattr(IfcProcedureTypeEnum, 'DIAGNOSTIC', INDETERMINATE) -shutdown = getattr(IfcProcedureTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = getattr(IfcProcedureTypeEnum, 'STARTUP', INDETERMINATE) -userdefined = getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProcedureTypeEnum, 'NOTDEFINED', INDETERMINATE) +advice_caution = IfcProcedureTypeEnum.ADVICE_CAUTION +advice_note = IfcProcedureTypeEnum.ADVICE_NOTE +advice_warning = IfcProcedureTypeEnum.ADVICE_WARNING +calibration = IfcProcedureTypeEnum.CALIBRATION +diagnostic = IfcProcedureTypeEnum.DIAGNOSTIC +shutdown = IfcProcedureTypeEnum.SHUTDOWN +startup = IfcProcedureTypeEnum.STARTUP +userdefined = IfcProcedureTypeEnum.USERDEFINED +notdefined = IfcProcedureTypeEnum.NOTDEFINED IfcProfileTypeEnum = enum_namespace() -area = getattr(IfcProfileTypeEnum, 'AREA', INDETERMINATE) -curve = getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE) +area = IfcProfileTypeEnum.AREA +curve = IfcProfileTypeEnum.CURVE IfcProjectOrderTypeEnum = enum_namespace() -changeorder = getattr(IfcProjectOrderTypeEnum, 'CHANGEORDER', INDETERMINATE) -maintenanceworkorder = getattr(IfcProjectOrderTypeEnum, 'MAINTENANCEWORKORDER', INDETERMINATE) -moveorder = getattr(IfcProjectOrderTypeEnum, 'MOVEORDER', INDETERMINATE) -purchaseorder = getattr(IfcProjectOrderTypeEnum, 'PURCHASEORDER', INDETERMINATE) -workorder = getattr(IfcProjectOrderTypeEnum, 'WORKORDER', INDETERMINATE) -userdefined = getattr(IfcProjectOrderTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProjectOrderTypeEnum, 'NOTDEFINED', INDETERMINATE) +changeorder = IfcProjectOrderTypeEnum.CHANGEORDER +maintenanceworkorder = IfcProjectOrderTypeEnum.MAINTENANCEWORKORDER +moveorder = IfcProjectOrderTypeEnum.MOVEORDER +purchaseorder = IfcProjectOrderTypeEnum.PURCHASEORDER +workorder = IfcProjectOrderTypeEnum.WORKORDER +userdefined = IfcProjectOrderTypeEnum.USERDEFINED +notdefined = IfcProjectOrderTypeEnum.NOTDEFINED IfcProjectedOrTrueLengthEnum = enum_namespace() -projected_length = getattr(IfcProjectedOrTrueLengthEnum, 'PROJECTED_LENGTH', INDETERMINATE) -true_length = getattr(IfcProjectedOrTrueLengthEnum, 'TRUE_LENGTH', INDETERMINATE) +projected_length = IfcProjectedOrTrueLengthEnum.PROJECTED_LENGTH +true_length = IfcProjectedOrTrueLengthEnum.TRUE_LENGTH IfcProjectionElementTypeEnum = enum_namespace() -blister = getattr(IfcProjectionElementTypeEnum, 'BLISTER', INDETERMINATE) -deviator = getattr(IfcProjectionElementTypeEnum, 'DEVIATOR', INDETERMINATE) -userdefined = getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProjectionElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +blister = IfcProjectionElementTypeEnum.BLISTER +deviator = IfcProjectionElementTypeEnum.DEVIATOR +userdefined = IfcProjectionElementTypeEnum.USERDEFINED +notdefined = IfcProjectionElementTypeEnum.NOTDEFINED IfcPropertySetTemplateTypeEnum = enum_namespace() -pset_materialdriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_MATERIALDRIVEN', INDETERMINATE) -pset_occurrencedriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_OCCURRENCEDRIVEN', INDETERMINATE) -pset_performancedriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PERFORMANCEDRIVEN', INDETERMINATE) -pset_profiledriven = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_PROFILEDRIVEN', INDETERMINATE) -pset_typedrivenonly = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENONLY', INDETERMINATE) -pset_typedrivenoverride = getattr(IfcPropertySetTemplateTypeEnum, 'PSET_TYPEDRIVENOVERRIDE', INDETERMINATE) -qto_occurrencedriven = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_OCCURRENCEDRIVEN', INDETERMINATE) -qto_typedrivenonly = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENONLY', INDETERMINATE) -qto_typedrivenoverride = getattr(IfcPropertySetTemplateTypeEnum, 'QTO_TYPEDRIVENOVERRIDE', INDETERMINATE) -notdefined = getattr(IfcPropertySetTemplateTypeEnum, 'NOTDEFINED', INDETERMINATE) +pset_materialdriven = IfcPropertySetTemplateTypeEnum.PSET_MATERIALDRIVEN +pset_occurrencedriven = IfcPropertySetTemplateTypeEnum.PSET_OCCURRENCEDRIVEN +pset_performancedriven = IfcPropertySetTemplateTypeEnum.PSET_PERFORMANCEDRIVEN +pset_profiledriven = IfcPropertySetTemplateTypeEnum.PSET_PROFILEDRIVEN +pset_typedrivenonly = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENONLY +pset_typedrivenoverride = IfcPropertySetTemplateTypeEnum.PSET_TYPEDRIVENOVERRIDE +qto_occurrencedriven = IfcPropertySetTemplateTypeEnum.QTO_OCCURRENCEDRIVEN +qto_typedrivenonly = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENONLY +qto_typedrivenoverride = IfcPropertySetTemplateTypeEnum.QTO_TYPEDRIVENOVERRIDE +notdefined = IfcPropertySetTemplateTypeEnum.NOTDEFINED IfcProtectiveDeviceTrippingUnitTypeEnum = enum_namespace() -electromagnetic = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTROMAGNETIC', INDETERMINATE) -electronic = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'ELECTRONIC', INDETERMINATE) -residualcurrent = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'RESIDUALCURRENT', INDETERMINATE) -thermal = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'THERMAL', INDETERMINATE) -userdefined = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'NOTDEFINED', INDETERMINATE) +electromagnetic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTROMAGNETIC +electronic = IfcProtectiveDeviceTrippingUnitTypeEnum.ELECTRONIC +residualcurrent = IfcProtectiveDeviceTrippingUnitTypeEnum.RESIDUALCURRENT +thermal = IfcProtectiveDeviceTrippingUnitTypeEnum.THERMAL +userdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTrippingUnitTypeEnum.NOTDEFINED IfcProtectiveDeviceTypeEnum = enum_namespace() -anti_arcing_device = getattr(IfcProtectiveDeviceTypeEnum, 'ANTI_ARCING_DEVICE', INDETERMINATE) -circuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'CIRCUITBREAKER', INDETERMINATE) -earthingswitch = getattr(IfcProtectiveDeviceTypeEnum, 'EARTHINGSWITCH', INDETERMINATE) -earthleakagecircuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'EARTHLEAKAGECIRCUITBREAKER', INDETERMINATE) -fusedisconnector = getattr(IfcProtectiveDeviceTypeEnum, 'FUSEDISCONNECTOR', INDETERMINATE) -residualcurrentcircuitbreaker = getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTCIRCUITBREAKER', INDETERMINATE) -residualcurrentswitch = getattr(IfcProtectiveDeviceTypeEnum, 'RESIDUALCURRENTSWITCH', INDETERMINATE) -sparkgap = getattr(IfcProtectiveDeviceTypeEnum, 'SPARKGAP', INDETERMINATE) -varistor = getattr(IfcProtectiveDeviceTypeEnum, 'VARISTOR', INDETERMINATE) -voltagelimiter = getattr(IfcProtectiveDeviceTypeEnum, 'VOLTAGELIMITER', INDETERMINATE) -userdefined = getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcProtectiveDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +anti_arcing_device = IfcProtectiveDeviceTypeEnum.ANTI_ARCING_DEVICE +circuitbreaker = IfcProtectiveDeviceTypeEnum.CIRCUITBREAKER +earthingswitch = IfcProtectiveDeviceTypeEnum.EARTHINGSWITCH +earthleakagecircuitbreaker = IfcProtectiveDeviceTypeEnum.EARTHLEAKAGECIRCUITBREAKER +fusedisconnector = IfcProtectiveDeviceTypeEnum.FUSEDISCONNECTOR +residualcurrentcircuitbreaker = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTCIRCUITBREAKER +residualcurrentswitch = IfcProtectiveDeviceTypeEnum.RESIDUALCURRENTSWITCH +sparkgap = IfcProtectiveDeviceTypeEnum.SPARKGAP +varistor = IfcProtectiveDeviceTypeEnum.VARISTOR +voltagelimiter = IfcProtectiveDeviceTypeEnum.VOLTAGELIMITER +userdefined = IfcProtectiveDeviceTypeEnum.USERDEFINED +notdefined = IfcProtectiveDeviceTypeEnum.NOTDEFINED IfcPumpTypeEnum = enum_namespace() -circulator = getattr(IfcPumpTypeEnum, 'CIRCULATOR', INDETERMINATE) -endsuction = getattr(IfcPumpTypeEnum, 'ENDSUCTION', INDETERMINATE) -splitcase = getattr(IfcPumpTypeEnum, 'SPLITCASE', INDETERMINATE) -submersiblepump = getattr(IfcPumpTypeEnum, 'SUBMERSIBLEPUMP', INDETERMINATE) -sumppump = getattr(IfcPumpTypeEnum, 'SUMPPUMP', INDETERMINATE) -verticalinline = getattr(IfcPumpTypeEnum, 'VERTICALINLINE', INDETERMINATE) -verticalturbine = getattr(IfcPumpTypeEnum, 'VERTICALTURBINE', INDETERMINATE) -userdefined = getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcPumpTypeEnum, 'NOTDEFINED', INDETERMINATE) +circulator = IfcPumpTypeEnum.CIRCULATOR +endsuction = IfcPumpTypeEnum.ENDSUCTION +splitcase = IfcPumpTypeEnum.SPLITCASE +submersiblepump = IfcPumpTypeEnum.SUBMERSIBLEPUMP +sumppump = IfcPumpTypeEnum.SUMPPUMP +verticalinline = IfcPumpTypeEnum.VERTICALINLINE +verticalturbine = IfcPumpTypeEnum.VERTICALTURBINE +userdefined = IfcPumpTypeEnum.USERDEFINED +notdefined = IfcPumpTypeEnum.NOTDEFINED IfcRailTypeEnum = enum_namespace() -blade = getattr(IfcRailTypeEnum, 'BLADE', INDETERMINATE) -checkrail = getattr(IfcRailTypeEnum, 'CHECKRAIL', INDETERMINATE) -guardrail = getattr(IfcRailTypeEnum, 'GUARDRAIL', INDETERMINATE) -rackrail = getattr(IfcRailTypeEnum, 'RACKRAIL', INDETERMINATE) -rail = getattr(IfcRailTypeEnum, 'RAIL', INDETERMINATE) -stockrail = getattr(IfcRailTypeEnum, 'STOCKRAIL', INDETERMINATE) -userdefined = getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailTypeEnum, 'NOTDEFINED', INDETERMINATE) +blade = IfcRailTypeEnum.BLADE +checkrail = IfcRailTypeEnum.CHECKRAIL +guardrail = IfcRailTypeEnum.GUARDRAIL +rackrail = IfcRailTypeEnum.RACKRAIL +rail = IfcRailTypeEnum.RAIL +stockrail = IfcRailTypeEnum.STOCKRAIL +userdefined = IfcRailTypeEnum.USERDEFINED +notdefined = IfcRailTypeEnum.NOTDEFINED IfcRailingTypeEnum = enum_namespace() -balustrade = getattr(IfcRailingTypeEnum, 'BALUSTRADE', INDETERMINATE) -fence = getattr(IfcRailingTypeEnum, 'FENCE', INDETERMINATE) -guardrail = getattr(IfcRailingTypeEnum, 'GUARDRAIL', INDETERMINATE) -handrail = getattr(IfcRailingTypeEnum, 'HANDRAIL', INDETERMINATE) -userdefined = getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailingTypeEnum, 'NOTDEFINED', INDETERMINATE) +balustrade = IfcRailingTypeEnum.BALUSTRADE +fence = IfcRailingTypeEnum.FENCE +guardrail = IfcRailingTypeEnum.GUARDRAIL +handrail = IfcRailingTypeEnum.HANDRAIL +userdefined = IfcRailingTypeEnum.USERDEFINED +notdefined = IfcRailingTypeEnum.NOTDEFINED IfcRailwayPartTypeEnum = enum_namespace() -dilatationsuperstructure = getattr(IfcRailwayPartTypeEnum, 'DILATATIONSUPERSTRUCTURE', INDETERMINATE) -linesidestructure = getattr(IfcRailwayPartTypeEnum, 'LINESIDESTRUCTURE', INDETERMINATE) -linesidestructurepart = getattr(IfcRailwayPartTypeEnum, 'LINESIDESTRUCTUREPART', INDETERMINATE) -plaintracksuperstructure = getattr(IfcRailwayPartTypeEnum, 'PLAINTRACKSUPERSTRUCTURE', INDETERMINATE) -superstructure = getattr(IfcRailwayPartTypeEnum, 'SUPERSTRUCTURE', INDETERMINATE) -trackstructure = getattr(IfcRailwayPartTypeEnum, 'TRACKSTRUCTURE', INDETERMINATE) -trackstructurepart = getattr(IfcRailwayPartTypeEnum, 'TRACKSTRUCTUREPART', INDETERMINATE) -turnoutsuperstructure = getattr(IfcRailwayPartTypeEnum, 'TURNOUTSUPERSTRUCTURE', INDETERMINATE) -userdefined = getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailwayPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +dilatationsuperstructure = IfcRailwayPartTypeEnum.DILATATIONSUPERSTRUCTURE +linesidestructure = IfcRailwayPartTypeEnum.LINESIDESTRUCTURE +linesidestructurepart = IfcRailwayPartTypeEnum.LINESIDESTRUCTUREPART +plaintracksuperstructure = IfcRailwayPartTypeEnum.PLAINTRACKSUPERSTRUCTURE +superstructure = IfcRailwayPartTypeEnum.SUPERSTRUCTURE +trackstructure = IfcRailwayPartTypeEnum.TRACKSTRUCTURE +trackstructurepart = IfcRailwayPartTypeEnum.TRACKSTRUCTUREPART +turnoutsuperstructure = IfcRailwayPartTypeEnum.TURNOUTSUPERSTRUCTURE +userdefined = IfcRailwayPartTypeEnum.USERDEFINED +notdefined = IfcRailwayPartTypeEnum.NOTDEFINED IfcRailwayTypeEnum = enum_namespace() -userdefined = getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRailwayTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcRailwayTypeEnum.USERDEFINED +notdefined = IfcRailwayTypeEnum.NOTDEFINED IfcRampFlightTypeEnum = enum_namespace() -spiral = getattr(IfcRampFlightTypeEnum, 'SPIRAL', INDETERMINATE) -straight = getattr(IfcRampFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -userdefined = getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRampFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +spiral = IfcRampFlightTypeEnum.SPIRAL +straight = IfcRampFlightTypeEnum.STRAIGHT +userdefined = IfcRampFlightTypeEnum.USERDEFINED +notdefined = IfcRampFlightTypeEnum.NOTDEFINED IfcRampTypeEnum = enum_namespace() -half_turn_ramp = getattr(IfcRampTypeEnum, 'HALF_TURN_RAMP', INDETERMINATE) -quarter_turn_ramp = getattr(IfcRampTypeEnum, 'QUARTER_TURN_RAMP', INDETERMINATE) -spiral_ramp = getattr(IfcRampTypeEnum, 'SPIRAL_RAMP', INDETERMINATE) -straight_run_ramp = getattr(IfcRampTypeEnum, 'STRAIGHT_RUN_RAMP', INDETERMINATE) -two_quarter_turn_ramp = getattr(IfcRampTypeEnum, 'TWO_QUARTER_TURN_RAMP', INDETERMINATE) -two_straight_run_ramp = getattr(IfcRampTypeEnum, 'TWO_STRAIGHT_RUN_RAMP', INDETERMINATE) -userdefined = getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRampTypeEnum, 'NOTDEFINED', INDETERMINATE) +half_turn_ramp = IfcRampTypeEnum.HALF_TURN_RAMP +quarter_turn_ramp = IfcRampTypeEnum.QUARTER_TURN_RAMP +spiral_ramp = IfcRampTypeEnum.SPIRAL_RAMP +straight_run_ramp = IfcRampTypeEnum.STRAIGHT_RUN_RAMP +two_quarter_turn_ramp = IfcRampTypeEnum.TWO_QUARTER_TURN_RAMP +two_straight_run_ramp = IfcRampTypeEnum.TWO_STRAIGHT_RUN_RAMP +userdefined = IfcRampTypeEnum.USERDEFINED +notdefined = IfcRampTypeEnum.NOTDEFINED IfcRecurrenceTypeEnum = enum_namespace() -by_day_count = getattr(IfcRecurrenceTypeEnum, 'BY_DAY_COUNT', INDETERMINATE) -by_weekday_count = getattr(IfcRecurrenceTypeEnum, 'BY_WEEKDAY_COUNT', INDETERMINATE) -daily = getattr(IfcRecurrenceTypeEnum, 'DAILY', INDETERMINATE) -monthly_by_day_of_month = getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_DAY_OF_MONTH', INDETERMINATE) -monthly_by_position = getattr(IfcRecurrenceTypeEnum, 'MONTHLY_BY_POSITION', INDETERMINATE) -weekly = getattr(IfcRecurrenceTypeEnum, 'WEEKLY', INDETERMINATE) -yearly_by_day_of_month = getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_DAY_OF_MONTH', INDETERMINATE) -yearly_by_position = getattr(IfcRecurrenceTypeEnum, 'YEARLY_BY_POSITION', INDETERMINATE) +by_day_count = IfcRecurrenceTypeEnum.BY_DAY_COUNT +by_weekday_count = IfcRecurrenceTypeEnum.BY_WEEKDAY_COUNT +daily = IfcRecurrenceTypeEnum.DAILY +monthly_by_day_of_month = IfcRecurrenceTypeEnum.MONTHLY_BY_DAY_OF_MONTH +monthly_by_position = IfcRecurrenceTypeEnum.MONTHLY_BY_POSITION +weekly = IfcRecurrenceTypeEnum.WEEKLY +yearly_by_day_of_month = IfcRecurrenceTypeEnum.YEARLY_BY_DAY_OF_MONTH +yearly_by_position = IfcRecurrenceTypeEnum.YEARLY_BY_POSITION IfcReferentTypeEnum = enum_namespace() -boundary = getattr(IfcReferentTypeEnum, 'BOUNDARY', INDETERMINATE) -intersection = getattr(IfcReferentTypeEnum, 'INTERSECTION', INDETERMINATE) -kilopoint = getattr(IfcReferentTypeEnum, 'KILOPOINT', INDETERMINATE) -landmark = getattr(IfcReferentTypeEnum, 'LANDMARK', INDETERMINATE) -milepoint = getattr(IfcReferentTypeEnum, 'MILEPOINT', INDETERMINATE) -position = getattr(IfcReferentTypeEnum, 'POSITION', INDETERMINATE) -referencemarker = getattr(IfcReferentTypeEnum, 'REFERENCEMARKER', INDETERMINATE) -station = getattr(IfcReferentTypeEnum, 'STATION', INDETERMINATE) -userdefined = getattr(IfcReferentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReferentTypeEnum, 'NOTDEFINED', INDETERMINATE) +boundary = IfcReferentTypeEnum.BOUNDARY +intersection = IfcReferentTypeEnum.INTERSECTION +kilopoint = IfcReferentTypeEnum.KILOPOINT +landmark = IfcReferentTypeEnum.LANDMARK +milepoint = IfcReferentTypeEnum.MILEPOINT +position = IfcReferentTypeEnum.POSITION +referencemarker = IfcReferentTypeEnum.REFERENCEMARKER +station = IfcReferentTypeEnum.STATION +userdefined = IfcReferentTypeEnum.USERDEFINED +notdefined = IfcReferentTypeEnum.NOTDEFINED IfcReflectanceMethodEnum = enum_namespace() -blinn = getattr(IfcReflectanceMethodEnum, 'BLINN', INDETERMINATE) -flat = getattr(IfcReflectanceMethodEnum, 'FLAT', INDETERMINATE) -glass = getattr(IfcReflectanceMethodEnum, 'GLASS', INDETERMINATE) -matt = getattr(IfcReflectanceMethodEnum, 'MATT', INDETERMINATE) -metal = getattr(IfcReflectanceMethodEnum, 'METAL', INDETERMINATE) -mirror = getattr(IfcReflectanceMethodEnum, 'MIRROR', INDETERMINATE) -phong = getattr(IfcReflectanceMethodEnum, 'PHONG', INDETERMINATE) -physical = getattr(IfcReflectanceMethodEnum, 'PHYSICAL', INDETERMINATE) -plastic = getattr(IfcReflectanceMethodEnum, 'PLASTIC', INDETERMINATE) -strauss = getattr(IfcReflectanceMethodEnum, 'STRAUSS', INDETERMINATE) -notdefined = getattr(IfcReflectanceMethodEnum, 'NOTDEFINED', INDETERMINATE) +blinn = IfcReflectanceMethodEnum.BLINN +flat = IfcReflectanceMethodEnum.FLAT +glass = IfcReflectanceMethodEnum.GLASS +matt = IfcReflectanceMethodEnum.MATT +metal = IfcReflectanceMethodEnum.METAL +mirror = IfcReflectanceMethodEnum.MIRROR +phong = IfcReflectanceMethodEnum.PHONG +physical = IfcReflectanceMethodEnum.PHYSICAL +plastic = IfcReflectanceMethodEnum.PLASTIC +strauss = IfcReflectanceMethodEnum.STRAUSS +notdefined = IfcReflectanceMethodEnum.NOTDEFINED IfcReinforcedSoilTypeEnum = enum_namespace() -dynamicallycompacted = getattr(IfcReinforcedSoilTypeEnum, 'DYNAMICALLYCOMPACTED', INDETERMINATE) -grouted = getattr(IfcReinforcedSoilTypeEnum, 'GROUTED', INDETERMINATE) -replaced = getattr(IfcReinforcedSoilTypeEnum, 'REPLACED', INDETERMINATE) -rollercompacted = getattr(IfcReinforcedSoilTypeEnum, 'ROLLERCOMPACTED', INDETERMINATE) -surchargepreloaded = getattr(IfcReinforcedSoilTypeEnum, 'SURCHARGEPRELOADED', INDETERMINATE) -verticallydrained = getattr(IfcReinforcedSoilTypeEnum, 'VERTICALLYDRAINED', INDETERMINATE) -userdefined = getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcedSoilTypeEnum, 'NOTDEFINED', INDETERMINATE) +dynamicallycompacted = IfcReinforcedSoilTypeEnum.DYNAMICALLYCOMPACTED +grouted = IfcReinforcedSoilTypeEnum.GROUTED +replaced = IfcReinforcedSoilTypeEnum.REPLACED +rollercompacted = IfcReinforcedSoilTypeEnum.ROLLERCOMPACTED +surchargepreloaded = IfcReinforcedSoilTypeEnum.SURCHARGEPRELOADED +verticallydrained = IfcReinforcedSoilTypeEnum.VERTICALLYDRAINED +userdefined = IfcReinforcedSoilTypeEnum.USERDEFINED +notdefined = IfcReinforcedSoilTypeEnum.NOTDEFINED IfcReinforcingBarRoleEnum = enum_namespace() -anchoring = getattr(IfcReinforcingBarRoleEnum, 'ANCHORING', INDETERMINATE) -edge = getattr(IfcReinforcingBarRoleEnum, 'EDGE', INDETERMINATE) -ligature = getattr(IfcReinforcingBarRoleEnum, 'LIGATURE', INDETERMINATE) -main = getattr(IfcReinforcingBarRoleEnum, 'MAIN', INDETERMINATE) -punching = getattr(IfcReinforcingBarRoleEnum, 'PUNCHING', INDETERMINATE) -ring = getattr(IfcReinforcingBarRoleEnum, 'RING', INDETERMINATE) -shear = getattr(IfcReinforcingBarRoleEnum, 'SHEAR', INDETERMINATE) -stud = getattr(IfcReinforcingBarRoleEnum, 'STUD', INDETERMINATE) -userdefined = getattr(IfcReinforcingBarRoleEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingBarRoleEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarRoleEnum.ANCHORING +edge = IfcReinforcingBarRoleEnum.EDGE +ligature = IfcReinforcingBarRoleEnum.LIGATURE +main = IfcReinforcingBarRoleEnum.MAIN +punching = IfcReinforcingBarRoleEnum.PUNCHING +ring = IfcReinforcingBarRoleEnum.RING +shear = IfcReinforcingBarRoleEnum.SHEAR +stud = IfcReinforcingBarRoleEnum.STUD +userdefined = IfcReinforcingBarRoleEnum.USERDEFINED +notdefined = IfcReinforcingBarRoleEnum.NOTDEFINED IfcReinforcingBarSurfaceEnum = enum_namespace() -plain = getattr(IfcReinforcingBarSurfaceEnum, 'PLAIN', INDETERMINATE) -textured = getattr(IfcReinforcingBarSurfaceEnum, 'TEXTURED', INDETERMINATE) +plain = IfcReinforcingBarSurfaceEnum.PLAIN +textured = IfcReinforcingBarSurfaceEnum.TEXTURED IfcReinforcingBarTypeEnum = enum_namespace() -anchoring = getattr(IfcReinforcingBarTypeEnum, 'ANCHORING', INDETERMINATE) -edge = getattr(IfcReinforcingBarTypeEnum, 'EDGE', INDETERMINATE) -ligature = getattr(IfcReinforcingBarTypeEnum, 'LIGATURE', INDETERMINATE) -main = getattr(IfcReinforcingBarTypeEnum, 'MAIN', INDETERMINATE) -punching = getattr(IfcReinforcingBarTypeEnum, 'PUNCHING', INDETERMINATE) -ring = getattr(IfcReinforcingBarTypeEnum, 'RING', INDETERMINATE) -shear = getattr(IfcReinforcingBarTypeEnum, 'SHEAR', INDETERMINATE) -spacebar = getattr(IfcReinforcingBarTypeEnum, 'SPACEBAR', INDETERMINATE) -stud = getattr(IfcReinforcingBarTypeEnum, 'STUD', INDETERMINATE) -userdefined = getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingBarTypeEnum, 'NOTDEFINED', INDETERMINATE) +anchoring = IfcReinforcingBarTypeEnum.ANCHORING +edge = IfcReinforcingBarTypeEnum.EDGE +ligature = IfcReinforcingBarTypeEnum.LIGATURE +main = IfcReinforcingBarTypeEnum.MAIN +punching = IfcReinforcingBarTypeEnum.PUNCHING +ring = IfcReinforcingBarTypeEnum.RING +shear = IfcReinforcingBarTypeEnum.SHEAR +spacebar = IfcReinforcingBarTypeEnum.SPACEBAR +stud = IfcReinforcingBarTypeEnum.STUD +userdefined = IfcReinforcingBarTypeEnum.USERDEFINED +notdefined = IfcReinforcingBarTypeEnum.NOTDEFINED IfcReinforcingMeshTypeEnum = enum_namespace() -userdefined = getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcReinforcingMeshTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcReinforcingMeshTypeEnum.USERDEFINED +notdefined = IfcReinforcingMeshTypeEnum.NOTDEFINED IfcRoadPartTypeEnum = enum_namespace() -bicyclecrossing = getattr(IfcRoadPartTypeEnum, 'BICYCLECROSSING', INDETERMINATE) -bus_stop = getattr(IfcRoadPartTypeEnum, 'BUS_STOP', INDETERMINATE) -carriageway = getattr(IfcRoadPartTypeEnum, 'CARRIAGEWAY', INDETERMINATE) -centralisland = getattr(IfcRoadPartTypeEnum, 'CENTRALISLAND', INDETERMINATE) -centralreserve = getattr(IfcRoadPartTypeEnum, 'CENTRALRESERVE', INDETERMINATE) -hardshoulder = getattr(IfcRoadPartTypeEnum, 'HARDSHOULDER', INDETERMINATE) -intersection = getattr(IfcRoadPartTypeEnum, 'INTERSECTION', INDETERMINATE) -layby = getattr(IfcRoadPartTypeEnum, 'LAYBY', INDETERMINATE) -parkingbay = getattr(IfcRoadPartTypeEnum, 'PARKINGBAY', INDETERMINATE) -passingbay = getattr(IfcRoadPartTypeEnum, 'PASSINGBAY', INDETERMINATE) -pedestrian_crossing = getattr(IfcRoadPartTypeEnum, 'PEDESTRIAN_CROSSING', INDETERMINATE) -railwaycrossing = getattr(IfcRoadPartTypeEnum, 'RAILWAYCROSSING', INDETERMINATE) -refugeisland = getattr(IfcRoadPartTypeEnum, 'REFUGEISLAND', INDETERMINATE) -roadsegment = getattr(IfcRoadPartTypeEnum, 'ROADSEGMENT', INDETERMINATE) -roadside = getattr(IfcRoadPartTypeEnum, 'ROADSIDE', INDETERMINATE) -roadsidepart = getattr(IfcRoadPartTypeEnum, 'ROADSIDEPART', INDETERMINATE) -roadwayplateau = getattr(IfcRoadPartTypeEnum, 'ROADWAYPLATEAU', INDETERMINATE) -roundabout = getattr(IfcRoadPartTypeEnum, 'ROUNDABOUT', INDETERMINATE) -shoulder = getattr(IfcRoadPartTypeEnum, 'SHOULDER', INDETERMINATE) -sidewalk = getattr(IfcRoadPartTypeEnum, 'SIDEWALK', INDETERMINATE) -softshoulder = getattr(IfcRoadPartTypeEnum, 'SOFTSHOULDER', INDETERMINATE) -tollplaza = getattr(IfcRoadPartTypeEnum, 'TOLLPLAZA', INDETERMINATE) -trafficisland = getattr(IfcRoadPartTypeEnum, 'TRAFFICISLAND', INDETERMINATE) -trafficlane = getattr(IfcRoadPartTypeEnum, 'TRAFFICLANE', INDETERMINATE) -userdefined = getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRoadPartTypeEnum, 'NOTDEFINED', INDETERMINATE) +bicyclecrossing = IfcRoadPartTypeEnum.BICYCLECROSSING +bus_stop = IfcRoadPartTypeEnum.BUS_STOP +carriageway = IfcRoadPartTypeEnum.CARRIAGEWAY +centralisland = IfcRoadPartTypeEnum.CENTRALISLAND +centralreserve = IfcRoadPartTypeEnum.CENTRALRESERVE +hardshoulder = IfcRoadPartTypeEnum.HARDSHOULDER +intersection = IfcRoadPartTypeEnum.INTERSECTION +layby = IfcRoadPartTypeEnum.LAYBY +parkingbay = IfcRoadPartTypeEnum.PARKINGBAY +passingbay = IfcRoadPartTypeEnum.PASSINGBAY +pedestrian_crossing = IfcRoadPartTypeEnum.PEDESTRIAN_CROSSING +railwaycrossing = IfcRoadPartTypeEnum.RAILWAYCROSSING +refugeisland = IfcRoadPartTypeEnum.REFUGEISLAND +roadsegment = IfcRoadPartTypeEnum.ROADSEGMENT +roadside = IfcRoadPartTypeEnum.ROADSIDE +roadsidepart = IfcRoadPartTypeEnum.ROADSIDEPART +roadwayplateau = IfcRoadPartTypeEnum.ROADWAYPLATEAU +roundabout = IfcRoadPartTypeEnum.ROUNDABOUT +shoulder = IfcRoadPartTypeEnum.SHOULDER +sidewalk = IfcRoadPartTypeEnum.SIDEWALK +softshoulder = IfcRoadPartTypeEnum.SOFTSHOULDER +tollplaza = IfcRoadPartTypeEnum.TOLLPLAZA +trafficisland = IfcRoadPartTypeEnum.TRAFFICISLAND +trafficlane = IfcRoadPartTypeEnum.TRAFFICLANE +userdefined = IfcRoadPartTypeEnum.USERDEFINED +notdefined = IfcRoadPartTypeEnum.NOTDEFINED IfcRoadTypeEnum = enum_namespace() -userdefined = getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRoadTypeEnum, 'NOTDEFINED', INDETERMINATE) +userdefined = IfcRoadTypeEnum.USERDEFINED +notdefined = IfcRoadTypeEnum.NOTDEFINED IfcRoleEnum = enum_namespace() -architect = getattr(IfcRoleEnum, 'ARCHITECT', INDETERMINATE) -buildingoperator = getattr(IfcRoleEnum, 'BUILDINGOPERATOR', INDETERMINATE) -buildingowner = getattr(IfcRoleEnum, 'BUILDINGOWNER', INDETERMINATE) -civilengineer = getattr(IfcRoleEnum, 'CIVILENGINEER', INDETERMINATE) -client = getattr(IfcRoleEnum, 'CLIENT', INDETERMINATE) -commissioningengineer = getattr(IfcRoleEnum, 'COMMISSIONINGENGINEER', INDETERMINATE) -constructionmanager = getattr(IfcRoleEnum, 'CONSTRUCTIONMANAGER', INDETERMINATE) -consultant = getattr(IfcRoleEnum, 'CONSULTANT', INDETERMINATE) -contractor = getattr(IfcRoleEnum, 'CONTRACTOR', INDETERMINATE) -costengineer = getattr(IfcRoleEnum, 'COSTENGINEER', INDETERMINATE) -electricalengineer = getattr(IfcRoleEnum, 'ELECTRICALENGINEER', INDETERMINATE) -engineer = getattr(IfcRoleEnum, 'ENGINEER', INDETERMINATE) -facilitiesmanager = getattr(IfcRoleEnum, 'FACILITIESMANAGER', INDETERMINATE) -fieldconstructionmanager = getattr(IfcRoleEnum, 'FIELDCONSTRUCTIONMANAGER', INDETERMINATE) -manufacturer = getattr(IfcRoleEnum, 'MANUFACTURER', INDETERMINATE) -mechanicalengineer = getattr(IfcRoleEnum, 'MECHANICALENGINEER', INDETERMINATE) -owner = getattr(IfcRoleEnum, 'OWNER', INDETERMINATE) -projectmanager = getattr(IfcRoleEnum, 'PROJECTMANAGER', INDETERMINATE) -reseller = getattr(IfcRoleEnum, 'RESELLER', INDETERMINATE) -structuralengineer = getattr(IfcRoleEnum, 'STRUCTURALENGINEER', INDETERMINATE) -subcontractor = getattr(IfcRoleEnum, 'SUBCONTRACTOR', INDETERMINATE) -supplier = getattr(IfcRoleEnum, 'SUPPLIER', INDETERMINATE) -userdefined = getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) +architect = IfcRoleEnum.ARCHITECT +buildingoperator = IfcRoleEnum.BUILDINGOPERATOR +buildingowner = IfcRoleEnum.BUILDINGOWNER +civilengineer = IfcRoleEnum.CIVILENGINEER +client = IfcRoleEnum.CLIENT +commissioningengineer = IfcRoleEnum.COMMISSIONINGENGINEER +constructionmanager = IfcRoleEnum.CONSTRUCTIONMANAGER +consultant = IfcRoleEnum.CONSULTANT +contractor = IfcRoleEnum.CONTRACTOR +costengineer = IfcRoleEnum.COSTENGINEER +electricalengineer = IfcRoleEnum.ELECTRICALENGINEER +engineer = IfcRoleEnum.ENGINEER +facilitiesmanager = IfcRoleEnum.FACILITIESMANAGER +fieldconstructionmanager = IfcRoleEnum.FIELDCONSTRUCTIONMANAGER +manufacturer = IfcRoleEnum.MANUFACTURER +mechanicalengineer = IfcRoleEnum.MECHANICALENGINEER +owner = IfcRoleEnum.OWNER +projectmanager = IfcRoleEnum.PROJECTMANAGER +reseller = IfcRoleEnum.RESELLER +structuralengineer = IfcRoleEnum.STRUCTURALENGINEER +subcontractor = IfcRoleEnum.SUBCONTRACTOR +supplier = IfcRoleEnum.SUPPLIER +userdefined = IfcRoleEnum.USERDEFINED IfcRoofTypeEnum = enum_namespace() -barrel_roof = getattr(IfcRoofTypeEnum, 'BARREL_ROOF', INDETERMINATE) -butterfly_roof = getattr(IfcRoofTypeEnum, 'BUTTERFLY_ROOF', INDETERMINATE) -dome_roof = getattr(IfcRoofTypeEnum, 'DOME_ROOF', INDETERMINATE) -flat_roof = getattr(IfcRoofTypeEnum, 'FLAT_ROOF', INDETERMINATE) -freeform = getattr(IfcRoofTypeEnum, 'FREEFORM', INDETERMINATE) -gable_roof = getattr(IfcRoofTypeEnum, 'GABLE_ROOF', INDETERMINATE) -gambrel_roof = getattr(IfcRoofTypeEnum, 'GAMBREL_ROOF', INDETERMINATE) -hipped_gable_roof = getattr(IfcRoofTypeEnum, 'HIPPED_GABLE_ROOF', INDETERMINATE) -hip_roof = getattr(IfcRoofTypeEnum, 'HIP_ROOF', INDETERMINATE) -mansard_roof = getattr(IfcRoofTypeEnum, 'MANSARD_ROOF', INDETERMINATE) -pavilion_roof = getattr(IfcRoofTypeEnum, 'PAVILION_ROOF', INDETERMINATE) -rainbow_roof = getattr(IfcRoofTypeEnum, 'RAINBOW_ROOF', INDETERMINATE) -shed_roof = getattr(IfcRoofTypeEnum, 'SHED_ROOF', INDETERMINATE) -userdefined = getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcRoofTypeEnum, 'NOTDEFINED', INDETERMINATE) +barrel_roof = IfcRoofTypeEnum.BARREL_ROOF +butterfly_roof = IfcRoofTypeEnum.BUTTERFLY_ROOF +dome_roof = IfcRoofTypeEnum.DOME_ROOF +flat_roof = IfcRoofTypeEnum.FLAT_ROOF +freeform = IfcRoofTypeEnum.FREEFORM +gable_roof = IfcRoofTypeEnum.GABLE_ROOF +gambrel_roof = IfcRoofTypeEnum.GAMBREL_ROOF +hipped_gable_roof = IfcRoofTypeEnum.HIPPED_GABLE_ROOF +hip_roof = IfcRoofTypeEnum.HIP_ROOF +mansard_roof = IfcRoofTypeEnum.MANSARD_ROOF +pavilion_roof = IfcRoofTypeEnum.PAVILION_ROOF +rainbow_roof = IfcRoofTypeEnum.RAINBOW_ROOF +shed_roof = IfcRoofTypeEnum.SHED_ROOF +userdefined = IfcRoofTypeEnum.USERDEFINED +notdefined = IfcRoofTypeEnum.NOTDEFINED IfcSIPrefix = enum_namespace() -atto = getattr(IfcSIPrefix, 'ATTO', INDETERMINATE) -centi = getattr(IfcSIPrefix, 'CENTI', INDETERMINATE) -deca = getattr(IfcSIPrefix, 'DECA', INDETERMINATE) -deci = getattr(IfcSIPrefix, 'DECI', INDETERMINATE) -exa = getattr(IfcSIPrefix, 'EXA', INDETERMINATE) -femto = getattr(IfcSIPrefix, 'FEMTO', INDETERMINATE) -giga = getattr(IfcSIPrefix, 'GIGA', INDETERMINATE) -hecto = getattr(IfcSIPrefix, 'HECTO', INDETERMINATE) -kilo = getattr(IfcSIPrefix, 'KILO', INDETERMINATE) -mega = getattr(IfcSIPrefix, 'MEGA', INDETERMINATE) -micro = getattr(IfcSIPrefix, 'MICRO', INDETERMINATE) -milli = getattr(IfcSIPrefix, 'MILLI', INDETERMINATE) -nano = getattr(IfcSIPrefix, 'NANO', INDETERMINATE) -peta = getattr(IfcSIPrefix, 'PETA', INDETERMINATE) -pico = getattr(IfcSIPrefix, 'PICO', INDETERMINATE) -tera = getattr(IfcSIPrefix, 'TERA', INDETERMINATE) +atto = IfcSIPrefix.ATTO +centi = IfcSIPrefix.CENTI +deca = IfcSIPrefix.DECA +deci = IfcSIPrefix.DECI +exa = IfcSIPrefix.EXA +femto = IfcSIPrefix.FEMTO +giga = IfcSIPrefix.GIGA +hecto = IfcSIPrefix.HECTO +kilo = IfcSIPrefix.KILO +mega = IfcSIPrefix.MEGA +micro = IfcSIPrefix.MICRO +milli = IfcSIPrefix.MILLI +nano = IfcSIPrefix.NANO +peta = IfcSIPrefix.PETA +pico = IfcSIPrefix.PICO +tera = IfcSIPrefix.TERA IfcSIUnitName = enum_namespace() -ampere = getattr(IfcSIUnitName, 'AMPERE', INDETERMINATE) -becquerel = getattr(IfcSIUnitName, 'BECQUEREL', INDETERMINATE) -candela = getattr(IfcSIUnitName, 'CANDELA', INDETERMINATE) -coulomb = getattr(IfcSIUnitName, 'COULOMB', INDETERMINATE) -cubic_metre = getattr(IfcSIUnitName, 'CUBIC_METRE', INDETERMINATE) -degree_celsius = getattr(IfcSIUnitName, 'DEGREE_CELSIUS', INDETERMINATE) -farad = getattr(IfcSIUnitName, 'FARAD', INDETERMINATE) -gram = getattr(IfcSIUnitName, 'GRAM', INDETERMINATE) -gray = getattr(IfcSIUnitName, 'GRAY', INDETERMINATE) -henry = getattr(IfcSIUnitName, 'HENRY', INDETERMINATE) -hertz = getattr(IfcSIUnitName, 'HERTZ', INDETERMINATE) -joule = getattr(IfcSIUnitName, 'JOULE', INDETERMINATE) -kelvin = getattr(IfcSIUnitName, 'KELVIN', INDETERMINATE) -lumen = getattr(IfcSIUnitName, 'LUMEN', INDETERMINATE) -lux = getattr(IfcSIUnitName, 'LUX', INDETERMINATE) -metre = getattr(IfcSIUnitName, 'METRE', INDETERMINATE) -mole = getattr(IfcSIUnitName, 'MOLE', INDETERMINATE) -newton = getattr(IfcSIUnitName, 'NEWTON', INDETERMINATE) -ohm = getattr(IfcSIUnitName, 'OHM', INDETERMINATE) -pascal = getattr(IfcSIUnitName, 'PASCAL', INDETERMINATE) -radian = getattr(IfcSIUnitName, 'RADIAN', INDETERMINATE) -second = getattr(IfcSIUnitName, 'SECOND', INDETERMINATE) -siemens = getattr(IfcSIUnitName, 'SIEMENS', INDETERMINATE) -sievert = getattr(IfcSIUnitName, 'SIEVERT', INDETERMINATE) -square_metre = getattr(IfcSIUnitName, 'SQUARE_METRE', INDETERMINATE) -steradian = getattr(IfcSIUnitName, 'STERADIAN', INDETERMINATE) -tesla = getattr(IfcSIUnitName, 'TESLA', INDETERMINATE) -volt = getattr(IfcSIUnitName, 'VOLT', INDETERMINATE) -watt = getattr(IfcSIUnitName, 'WATT', INDETERMINATE) -weber = getattr(IfcSIUnitName, 'WEBER', INDETERMINATE) +ampere = IfcSIUnitName.AMPERE +becquerel = IfcSIUnitName.BECQUEREL +candela = IfcSIUnitName.CANDELA +coulomb = IfcSIUnitName.COULOMB +cubic_metre = IfcSIUnitName.CUBIC_METRE +degree_celsius = IfcSIUnitName.DEGREE_CELSIUS +farad = IfcSIUnitName.FARAD +gram = IfcSIUnitName.GRAM +gray = IfcSIUnitName.GRAY +henry = IfcSIUnitName.HENRY +hertz = IfcSIUnitName.HERTZ +joule = IfcSIUnitName.JOULE +kelvin = IfcSIUnitName.KELVIN +lumen = IfcSIUnitName.LUMEN +lux = IfcSIUnitName.LUX +metre = IfcSIUnitName.METRE +mole = IfcSIUnitName.MOLE +newton = IfcSIUnitName.NEWTON +ohm = IfcSIUnitName.OHM +pascal = IfcSIUnitName.PASCAL +radian = IfcSIUnitName.RADIAN +second = IfcSIUnitName.SECOND +siemens = IfcSIUnitName.SIEMENS +sievert = IfcSIUnitName.SIEVERT +square_metre = IfcSIUnitName.SQUARE_METRE +steradian = IfcSIUnitName.STERADIAN +tesla = IfcSIUnitName.TESLA +volt = IfcSIUnitName.VOLT +watt = IfcSIUnitName.WATT +weber = IfcSIUnitName.WEBER IfcSanitaryTerminalTypeEnum = enum_namespace() -bath = getattr(IfcSanitaryTerminalTypeEnum, 'BATH', INDETERMINATE) -bidet = getattr(IfcSanitaryTerminalTypeEnum, 'BIDET', INDETERMINATE) -cistern = getattr(IfcSanitaryTerminalTypeEnum, 'CISTERN', INDETERMINATE) -sanitaryfountain = getattr(IfcSanitaryTerminalTypeEnum, 'SANITARYFOUNTAIN', INDETERMINATE) -shower = getattr(IfcSanitaryTerminalTypeEnum, 'SHOWER', INDETERMINATE) -sink = getattr(IfcSanitaryTerminalTypeEnum, 'SINK', INDETERMINATE) -toiletpan = getattr(IfcSanitaryTerminalTypeEnum, 'TOILETPAN', INDETERMINATE) -urinal = getattr(IfcSanitaryTerminalTypeEnum, 'URINAL', INDETERMINATE) -washhandbasin = getattr(IfcSanitaryTerminalTypeEnum, 'WASHHANDBASIN', INDETERMINATE) -wcseat = getattr(IfcSanitaryTerminalTypeEnum, 'WCSEAT', INDETERMINATE) -userdefined = getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSanitaryTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +bath = IfcSanitaryTerminalTypeEnum.BATH +bidet = IfcSanitaryTerminalTypeEnum.BIDET +cistern = IfcSanitaryTerminalTypeEnum.CISTERN +sanitaryfountain = IfcSanitaryTerminalTypeEnum.SANITARYFOUNTAIN +shower = IfcSanitaryTerminalTypeEnum.SHOWER +sink = IfcSanitaryTerminalTypeEnum.SINK +toiletpan = IfcSanitaryTerminalTypeEnum.TOILETPAN +urinal = IfcSanitaryTerminalTypeEnum.URINAL +washhandbasin = IfcSanitaryTerminalTypeEnum.WASHHANDBASIN +wcseat = IfcSanitaryTerminalTypeEnum.WCSEAT +userdefined = IfcSanitaryTerminalTypeEnum.USERDEFINED +notdefined = IfcSanitaryTerminalTypeEnum.NOTDEFINED IfcSectionTypeEnum = enum_namespace() -tapered = getattr(IfcSectionTypeEnum, 'TAPERED', INDETERMINATE) -uniform = getattr(IfcSectionTypeEnum, 'UNIFORM', INDETERMINATE) +tapered = IfcSectionTypeEnum.TAPERED +uniform = IfcSectionTypeEnum.UNIFORM IfcSensorTypeEnum = enum_namespace() -co2sensor = getattr(IfcSensorTypeEnum, 'CO2SENSOR', INDETERMINATE) -conductancesensor = getattr(IfcSensorTypeEnum, 'CONDUCTANCESENSOR', INDETERMINATE) -contactsensor = getattr(IfcSensorTypeEnum, 'CONTACTSENSOR', INDETERMINATE) -cosensor = getattr(IfcSensorTypeEnum, 'COSENSOR', INDETERMINATE) -earthquakesensor = getattr(IfcSensorTypeEnum, 'EARTHQUAKESENSOR', INDETERMINATE) -firesensor = getattr(IfcSensorTypeEnum, 'FIRESENSOR', INDETERMINATE) -flowsensor = getattr(IfcSensorTypeEnum, 'FLOWSENSOR', INDETERMINATE) -foreignobjectdetectionsensor = getattr(IfcSensorTypeEnum, 'FOREIGNOBJECTDETECTIONSENSOR', INDETERMINATE) -frostsensor = getattr(IfcSensorTypeEnum, 'FROSTSENSOR', INDETERMINATE) -gassensor = getattr(IfcSensorTypeEnum, 'GASSENSOR', INDETERMINATE) -heatsensor = getattr(IfcSensorTypeEnum, 'HEATSENSOR', INDETERMINATE) -humiditysensor = getattr(IfcSensorTypeEnum, 'HUMIDITYSENSOR', INDETERMINATE) -identifiersensor = getattr(IfcSensorTypeEnum, 'IDENTIFIERSENSOR', INDETERMINATE) -ionconcentrationsensor = getattr(IfcSensorTypeEnum, 'IONCONCENTRATIONSENSOR', INDETERMINATE) -levelsensor = getattr(IfcSensorTypeEnum, 'LEVELSENSOR', INDETERMINATE) -lightsensor = getattr(IfcSensorTypeEnum, 'LIGHTSENSOR', INDETERMINATE) -moisturesensor = getattr(IfcSensorTypeEnum, 'MOISTURESENSOR', INDETERMINATE) -movementsensor = getattr(IfcSensorTypeEnum, 'MOVEMENTSENSOR', INDETERMINATE) -obstaclesensor = getattr(IfcSensorTypeEnum, 'OBSTACLESENSOR', INDETERMINATE) -phsensor = getattr(IfcSensorTypeEnum, 'PHSENSOR', INDETERMINATE) -pressuresensor = getattr(IfcSensorTypeEnum, 'PRESSURESENSOR', INDETERMINATE) -radiationsensor = getattr(IfcSensorTypeEnum, 'RADIATIONSENSOR', INDETERMINATE) -radioactivitysensor = getattr(IfcSensorTypeEnum, 'RADIOACTIVITYSENSOR', INDETERMINATE) -rainsensor = getattr(IfcSensorTypeEnum, 'RAINSENSOR', INDETERMINATE) -smokesensor = getattr(IfcSensorTypeEnum, 'SMOKESENSOR', INDETERMINATE) -snowdepthsensor = getattr(IfcSensorTypeEnum, 'SNOWDEPTHSENSOR', INDETERMINATE) -soundsensor = getattr(IfcSensorTypeEnum, 'SOUNDSENSOR', INDETERMINATE) -temperaturesensor = getattr(IfcSensorTypeEnum, 'TEMPERATURESENSOR', INDETERMINATE) -trainsensor = getattr(IfcSensorTypeEnum, 'TRAINSENSOR', INDETERMINATE) -turnoutclosuresensor = getattr(IfcSensorTypeEnum, 'TURNOUTCLOSURESENSOR', INDETERMINATE) -wheelsensor = getattr(IfcSensorTypeEnum, 'WHEELSENSOR', INDETERMINATE) -windsensor = getattr(IfcSensorTypeEnum, 'WINDSENSOR', INDETERMINATE) -userdefined = getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSensorTypeEnum, 'NOTDEFINED', INDETERMINATE) +co2sensor = IfcSensorTypeEnum.CO2SENSOR +conductancesensor = IfcSensorTypeEnum.CONDUCTANCESENSOR +contactsensor = IfcSensorTypeEnum.CONTACTSENSOR +cosensor = IfcSensorTypeEnum.COSENSOR +earthquakesensor = IfcSensorTypeEnum.EARTHQUAKESENSOR +firesensor = IfcSensorTypeEnum.FIRESENSOR +flowsensor = IfcSensorTypeEnum.FLOWSENSOR +foreignobjectdetectionsensor = IfcSensorTypeEnum.FOREIGNOBJECTDETECTIONSENSOR +frostsensor = IfcSensorTypeEnum.FROSTSENSOR +gassensor = IfcSensorTypeEnum.GASSENSOR +heatsensor = IfcSensorTypeEnum.HEATSENSOR +humiditysensor = IfcSensorTypeEnum.HUMIDITYSENSOR +identifiersensor = IfcSensorTypeEnum.IDENTIFIERSENSOR +ionconcentrationsensor = IfcSensorTypeEnum.IONCONCENTRATIONSENSOR +levelsensor = IfcSensorTypeEnum.LEVELSENSOR +lightsensor = IfcSensorTypeEnum.LIGHTSENSOR +moisturesensor = IfcSensorTypeEnum.MOISTURESENSOR +movementsensor = IfcSensorTypeEnum.MOVEMENTSENSOR +obstaclesensor = IfcSensorTypeEnum.OBSTACLESENSOR +phsensor = IfcSensorTypeEnum.PHSENSOR +pressuresensor = IfcSensorTypeEnum.PRESSURESENSOR +radiationsensor = IfcSensorTypeEnum.RADIATIONSENSOR +radioactivitysensor = IfcSensorTypeEnum.RADIOACTIVITYSENSOR +rainsensor = IfcSensorTypeEnum.RAINSENSOR +smokesensor = IfcSensorTypeEnum.SMOKESENSOR +snowdepthsensor = IfcSensorTypeEnum.SNOWDEPTHSENSOR +soundsensor = IfcSensorTypeEnum.SOUNDSENSOR +temperaturesensor = IfcSensorTypeEnum.TEMPERATURESENSOR +trainsensor = IfcSensorTypeEnum.TRAINSENSOR +turnoutclosuresensor = IfcSensorTypeEnum.TURNOUTCLOSURESENSOR +wheelsensor = IfcSensorTypeEnum.WHEELSENSOR +windsensor = IfcSensorTypeEnum.WINDSENSOR +userdefined = IfcSensorTypeEnum.USERDEFINED +notdefined = IfcSensorTypeEnum.NOTDEFINED IfcSequenceEnum = enum_namespace() -finish_finish = getattr(IfcSequenceEnum, 'FINISH_FINISH', INDETERMINATE) -finish_start = getattr(IfcSequenceEnum, 'FINISH_START', INDETERMINATE) -start_finish = getattr(IfcSequenceEnum, 'START_FINISH', INDETERMINATE) -start_start = getattr(IfcSequenceEnum, 'START_START', INDETERMINATE) -userdefined = getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSequenceEnum, 'NOTDEFINED', INDETERMINATE) +finish_finish = IfcSequenceEnum.FINISH_FINISH +finish_start = IfcSequenceEnum.FINISH_START +start_finish = IfcSequenceEnum.START_FINISH +start_start = IfcSequenceEnum.START_START +userdefined = IfcSequenceEnum.USERDEFINED +notdefined = IfcSequenceEnum.NOTDEFINED IfcShadingDeviceTypeEnum = enum_namespace() -awning = getattr(IfcShadingDeviceTypeEnum, 'AWNING', INDETERMINATE) -jalousie = getattr(IfcShadingDeviceTypeEnum, 'JALOUSIE', INDETERMINATE) -shutter = getattr(IfcShadingDeviceTypeEnum, 'SHUTTER', INDETERMINATE) -userdefined = getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcShadingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +awning = IfcShadingDeviceTypeEnum.AWNING +jalousie = IfcShadingDeviceTypeEnum.JALOUSIE +shutter = IfcShadingDeviceTypeEnum.SHUTTER +userdefined = IfcShadingDeviceTypeEnum.USERDEFINED +notdefined = IfcShadingDeviceTypeEnum.NOTDEFINED IfcSignTypeEnum = enum_namespace() -marker = getattr(IfcSignTypeEnum, 'MARKER', INDETERMINATE) -mirror = getattr(IfcSignTypeEnum, 'MIRROR', INDETERMINATE) -pictoral = getattr(IfcSignTypeEnum, 'PICTORAL', INDETERMINATE) -userdefined = getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSignTypeEnum, 'NOTDEFINED', INDETERMINATE) +marker = IfcSignTypeEnum.MARKER +mirror = IfcSignTypeEnum.MIRROR +pictoral = IfcSignTypeEnum.PICTORAL +userdefined = IfcSignTypeEnum.USERDEFINED +notdefined = IfcSignTypeEnum.NOTDEFINED IfcSignalTypeEnum = enum_namespace() -audio = getattr(IfcSignalTypeEnum, 'AUDIO', INDETERMINATE) -mixed = getattr(IfcSignalTypeEnum, 'MIXED', INDETERMINATE) -visual = getattr(IfcSignalTypeEnum, 'VISUAL', INDETERMINATE) -userdefined = getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSignalTypeEnum, 'NOTDEFINED', INDETERMINATE) +audio = IfcSignalTypeEnum.AUDIO +mixed = IfcSignalTypeEnum.MIXED +visual = IfcSignalTypeEnum.VISUAL +userdefined = IfcSignalTypeEnum.USERDEFINED +notdefined = IfcSignalTypeEnum.NOTDEFINED IfcSimplePropertyTemplateTypeEnum = enum_namespace() -p_boundedvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_BOUNDEDVALUE', INDETERMINATE) -p_enumeratedvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_ENUMERATEDVALUE', INDETERMINATE) -p_listvalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_LISTVALUE', INDETERMINATE) -p_referencevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_REFERENCEVALUE', INDETERMINATE) -p_singlevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_SINGLEVALUE', INDETERMINATE) -p_tablevalue = getattr(IfcSimplePropertyTemplateTypeEnum, 'P_TABLEVALUE', INDETERMINATE) -q_area = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_AREA', INDETERMINATE) -q_count = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_COUNT', INDETERMINATE) -q_length = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_LENGTH', INDETERMINATE) -q_number = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_NUMBER', INDETERMINATE) -q_time = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_TIME', INDETERMINATE) -q_volume = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_VOLUME', INDETERMINATE) -q_weight = getattr(IfcSimplePropertyTemplateTypeEnum, 'Q_WEIGHT', INDETERMINATE) +p_boundedvalue = IfcSimplePropertyTemplateTypeEnum.P_BOUNDEDVALUE +p_enumeratedvalue = IfcSimplePropertyTemplateTypeEnum.P_ENUMERATEDVALUE +p_listvalue = IfcSimplePropertyTemplateTypeEnum.P_LISTVALUE +p_referencevalue = IfcSimplePropertyTemplateTypeEnum.P_REFERENCEVALUE +p_singlevalue = IfcSimplePropertyTemplateTypeEnum.P_SINGLEVALUE +p_tablevalue = IfcSimplePropertyTemplateTypeEnum.P_TABLEVALUE +q_area = IfcSimplePropertyTemplateTypeEnum.Q_AREA +q_count = IfcSimplePropertyTemplateTypeEnum.Q_COUNT +q_length = IfcSimplePropertyTemplateTypeEnum.Q_LENGTH +q_number = IfcSimplePropertyTemplateTypeEnum.Q_NUMBER +q_time = IfcSimplePropertyTemplateTypeEnum.Q_TIME +q_volume = IfcSimplePropertyTemplateTypeEnum.Q_VOLUME +q_weight = IfcSimplePropertyTemplateTypeEnum.Q_WEIGHT IfcSlabTypeEnum = enum_namespace() -approach_slab = getattr(IfcSlabTypeEnum, 'APPROACH_SLAB', INDETERMINATE) -baseslab = getattr(IfcSlabTypeEnum, 'BASESLAB', INDETERMINATE) -floor = getattr(IfcSlabTypeEnum, 'FLOOR', INDETERMINATE) -landing = getattr(IfcSlabTypeEnum, 'LANDING', INDETERMINATE) -paving = getattr(IfcSlabTypeEnum, 'PAVING', INDETERMINATE) -roof = getattr(IfcSlabTypeEnum, 'ROOF', INDETERMINATE) -sidewalk = getattr(IfcSlabTypeEnum, 'SIDEWALK', INDETERMINATE) -trackslab = getattr(IfcSlabTypeEnum, 'TRACKSLAB', INDETERMINATE) -wearing = getattr(IfcSlabTypeEnum, 'WEARING', INDETERMINATE) -userdefined = getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSlabTypeEnum, 'NOTDEFINED', INDETERMINATE) +approach_slab = IfcSlabTypeEnum.APPROACH_SLAB +baseslab = IfcSlabTypeEnum.BASESLAB +floor = IfcSlabTypeEnum.FLOOR +landing = IfcSlabTypeEnum.LANDING +paving = IfcSlabTypeEnum.PAVING +roof = IfcSlabTypeEnum.ROOF +sidewalk = IfcSlabTypeEnum.SIDEWALK +trackslab = IfcSlabTypeEnum.TRACKSLAB +wearing = IfcSlabTypeEnum.WEARING +userdefined = IfcSlabTypeEnum.USERDEFINED +notdefined = IfcSlabTypeEnum.NOTDEFINED IfcSolarDeviceTypeEnum = enum_namespace() -solarcollector = getattr(IfcSolarDeviceTypeEnum, 'SOLARCOLLECTOR', INDETERMINATE) -solarpanel = getattr(IfcSolarDeviceTypeEnum, 'SOLARPANEL', INDETERMINATE) -userdefined = getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSolarDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +solarcollector = IfcSolarDeviceTypeEnum.SOLARCOLLECTOR +solarpanel = IfcSolarDeviceTypeEnum.SOLARPANEL +userdefined = IfcSolarDeviceTypeEnum.USERDEFINED +notdefined = IfcSolarDeviceTypeEnum.NOTDEFINED IfcSpaceHeaterTypeEnum = enum_namespace() -convector = getattr(IfcSpaceHeaterTypeEnum, 'CONVECTOR', INDETERMINATE) -radiator = getattr(IfcSpaceHeaterTypeEnum, 'RADIATOR', INDETERMINATE) -userdefined = getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpaceHeaterTypeEnum, 'NOTDEFINED', INDETERMINATE) +convector = IfcSpaceHeaterTypeEnum.CONVECTOR +radiator = IfcSpaceHeaterTypeEnum.RADIATOR +userdefined = IfcSpaceHeaterTypeEnum.USERDEFINED +notdefined = IfcSpaceHeaterTypeEnum.NOTDEFINED IfcSpaceTypeEnum = enum_namespace() -berth = getattr(IfcSpaceTypeEnum, 'BERTH', INDETERMINATE) -external = getattr(IfcSpaceTypeEnum, 'EXTERNAL', INDETERMINATE) -gfa = getattr(IfcSpaceTypeEnum, 'GFA', INDETERMINATE) -internal = getattr(IfcSpaceTypeEnum, 'INTERNAL', INDETERMINATE) -parking = getattr(IfcSpaceTypeEnum, 'PARKING', INDETERMINATE) -space = getattr(IfcSpaceTypeEnum, 'SPACE', INDETERMINATE) -userdefined = getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpaceTypeEnum, 'NOTDEFINED', INDETERMINATE) +berth = IfcSpaceTypeEnum.BERTH +external = IfcSpaceTypeEnum.EXTERNAL +gfa = IfcSpaceTypeEnum.GFA +internal = IfcSpaceTypeEnum.INTERNAL +parking = IfcSpaceTypeEnum.PARKING +space = IfcSpaceTypeEnum.SPACE +userdefined = IfcSpaceTypeEnum.USERDEFINED +notdefined = IfcSpaceTypeEnum.NOTDEFINED IfcSpatialZoneTypeEnum = enum_namespace() -construction = getattr(IfcSpatialZoneTypeEnum, 'CONSTRUCTION', INDETERMINATE) -firesafety = getattr(IfcSpatialZoneTypeEnum, 'FIRESAFETY', INDETERMINATE) -interference = getattr(IfcSpatialZoneTypeEnum, 'INTERFERENCE', INDETERMINATE) -lighting = getattr(IfcSpatialZoneTypeEnum, 'LIGHTING', INDETERMINATE) -occupancy = getattr(IfcSpatialZoneTypeEnum, 'OCCUPANCY', INDETERMINATE) -reservation = getattr(IfcSpatialZoneTypeEnum, 'RESERVATION', INDETERMINATE) -security = getattr(IfcSpatialZoneTypeEnum, 'SECURITY', INDETERMINATE) -thermal = getattr(IfcSpatialZoneTypeEnum, 'THERMAL', INDETERMINATE) -transport = getattr(IfcSpatialZoneTypeEnum, 'TRANSPORT', INDETERMINATE) -ventilation = getattr(IfcSpatialZoneTypeEnum, 'VENTILATION', INDETERMINATE) -userdefined = getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSpatialZoneTypeEnum, 'NOTDEFINED', INDETERMINATE) +construction = IfcSpatialZoneTypeEnum.CONSTRUCTION +firesafety = IfcSpatialZoneTypeEnum.FIRESAFETY +interference = IfcSpatialZoneTypeEnum.INTERFERENCE +lighting = IfcSpatialZoneTypeEnum.LIGHTING +occupancy = IfcSpatialZoneTypeEnum.OCCUPANCY +reservation = IfcSpatialZoneTypeEnum.RESERVATION +security = IfcSpatialZoneTypeEnum.SECURITY +thermal = IfcSpatialZoneTypeEnum.THERMAL +transport = IfcSpatialZoneTypeEnum.TRANSPORT +ventilation = IfcSpatialZoneTypeEnum.VENTILATION +userdefined = IfcSpatialZoneTypeEnum.USERDEFINED +notdefined = IfcSpatialZoneTypeEnum.NOTDEFINED IfcStackTerminalTypeEnum = enum_namespace() -birdcage = getattr(IfcStackTerminalTypeEnum, 'BIRDCAGE', INDETERMINATE) -cowl = getattr(IfcStackTerminalTypeEnum, 'COWL', INDETERMINATE) -rainwaterhopper = getattr(IfcStackTerminalTypeEnum, 'RAINWATERHOPPER', INDETERMINATE) -userdefined = getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStackTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +birdcage = IfcStackTerminalTypeEnum.BIRDCAGE +cowl = IfcStackTerminalTypeEnum.COWL +rainwaterhopper = IfcStackTerminalTypeEnum.RAINWATERHOPPER +userdefined = IfcStackTerminalTypeEnum.USERDEFINED +notdefined = IfcStackTerminalTypeEnum.NOTDEFINED IfcStairFlightTypeEnum = enum_namespace() -curved = getattr(IfcStairFlightTypeEnum, 'CURVED', INDETERMINATE) -freeform = getattr(IfcStairFlightTypeEnum, 'FREEFORM', INDETERMINATE) -spiral = getattr(IfcStairFlightTypeEnum, 'SPIRAL', INDETERMINATE) -straight = getattr(IfcStairFlightTypeEnum, 'STRAIGHT', INDETERMINATE) -winder = getattr(IfcStairFlightTypeEnum, 'WINDER', INDETERMINATE) -userdefined = getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStairFlightTypeEnum, 'NOTDEFINED', INDETERMINATE) +curved = IfcStairFlightTypeEnum.CURVED +freeform = IfcStairFlightTypeEnum.FREEFORM +spiral = IfcStairFlightTypeEnum.SPIRAL +straight = IfcStairFlightTypeEnum.STRAIGHT +winder = IfcStairFlightTypeEnum.WINDER +userdefined = IfcStairFlightTypeEnum.USERDEFINED +notdefined = IfcStairFlightTypeEnum.NOTDEFINED IfcStairTypeEnum = enum_namespace() -curved_run_stair = getattr(IfcStairTypeEnum, 'CURVED_RUN_STAIR', INDETERMINATE) -double_return_stair = getattr(IfcStairTypeEnum, 'DOUBLE_RETURN_STAIR', INDETERMINATE) -half_turn_stair = getattr(IfcStairTypeEnum, 'HALF_TURN_STAIR', INDETERMINATE) -half_winding_stair = getattr(IfcStairTypeEnum, 'HALF_WINDING_STAIR', INDETERMINATE) -ladder = getattr(IfcStairTypeEnum, 'LADDER', INDETERMINATE) -quarter_turn_stair = getattr(IfcStairTypeEnum, 'QUARTER_TURN_STAIR', INDETERMINATE) -quarter_winding_stair = getattr(IfcStairTypeEnum, 'QUARTER_WINDING_STAIR', INDETERMINATE) -spiral_stair = getattr(IfcStairTypeEnum, 'SPIRAL_STAIR', INDETERMINATE) -straight_run_stair = getattr(IfcStairTypeEnum, 'STRAIGHT_RUN_STAIR', INDETERMINATE) -three_quarter_turn_stair = getattr(IfcStairTypeEnum, 'THREE_QUARTER_TURN_STAIR', INDETERMINATE) -three_quarter_winding_stair = getattr(IfcStairTypeEnum, 'THREE_QUARTER_WINDING_STAIR', INDETERMINATE) -two_curved_run_stair = getattr(IfcStairTypeEnum, 'TWO_CURVED_RUN_STAIR', INDETERMINATE) -two_quarter_turn_stair = getattr(IfcStairTypeEnum, 'TWO_QUARTER_TURN_STAIR', INDETERMINATE) -two_quarter_winding_stair = getattr(IfcStairTypeEnum, 'TWO_QUARTER_WINDING_STAIR', INDETERMINATE) -two_straight_run_stair = getattr(IfcStairTypeEnum, 'TWO_STRAIGHT_RUN_STAIR', INDETERMINATE) -userdefined = getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStairTypeEnum, 'NOTDEFINED', INDETERMINATE) +curved_run_stair = IfcStairTypeEnum.CURVED_RUN_STAIR +double_return_stair = IfcStairTypeEnum.DOUBLE_RETURN_STAIR +half_turn_stair = IfcStairTypeEnum.HALF_TURN_STAIR +half_winding_stair = IfcStairTypeEnum.HALF_WINDING_STAIR +ladder = IfcStairTypeEnum.LADDER +quarter_turn_stair = IfcStairTypeEnum.QUARTER_TURN_STAIR +quarter_winding_stair = IfcStairTypeEnum.QUARTER_WINDING_STAIR +spiral_stair = IfcStairTypeEnum.SPIRAL_STAIR +straight_run_stair = IfcStairTypeEnum.STRAIGHT_RUN_STAIR +three_quarter_turn_stair = IfcStairTypeEnum.THREE_QUARTER_TURN_STAIR +three_quarter_winding_stair = IfcStairTypeEnum.THREE_QUARTER_WINDING_STAIR +two_curved_run_stair = IfcStairTypeEnum.TWO_CURVED_RUN_STAIR +two_quarter_turn_stair = IfcStairTypeEnum.TWO_QUARTER_TURN_STAIR +two_quarter_winding_stair = IfcStairTypeEnum.TWO_QUARTER_WINDING_STAIR +two_straight_run_stair = IfcStairTypeEnum.TWO_STRAIGHT_RUN_STAIR +userdefined = IfcStairTypeEnum.USERDEFINED +notdefined = IfcStairTypeEnum.NOTDEFINED IfcStateEnum = enum_namespace() -locked = getattr(IfcStateEnum, 'LOCKED', INDETERMINATE) -readonly = getattr(IfcStateEnum, 'READONLY', INDETERMINATE) -readonlylocked = getattr(IfcStateEnum, 'READONLYLOCKED', INDETERMINATE) -readwrite = getattr(IfcStateEnum, 'READWRITE', INDETERMINATE) -readwritelocked = getattr(IfcStateEnum, 'READWRITELOCKED', INDETERMINATE) +locked = IfcStateEnum.LOCKED +readonly = IfcStateEnum.READONLY +readonlylocked = IfcStateEnum.READONLYLOCKED +readwrite = IfcStateEnum.READWRITE +readwritelocked = IfcStateEnum.READWRITELOCKED IfcStructuralCurveActivityTypeEnum = enum_namespace() -const = getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE) -discrete = getattr(IfcStructuralCurveActivityTypeEnum, 'DISCRETE', INDETERMINATE) -equidistant = getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE) -linear = getattr(IfcStructuralCurveActivityTypeEnum, 'LINEAR', INDETERMINATE) -parabola = getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE) -polygonal = getattr(IfcStructuralCurveActivityTypeEnum, 'POLYGONAL', INDETERMINATE) -sinus = getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) -userdefined = getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralCurveActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +const = IfcStructuralCurveActivityTypeEnum.CONST +discrete = IfcStructuralCurveActivityTypeEnum.DISCRETE +equidistant = IfcStructuralCurveActivityTypeEnum.EQUIDISTANT +linear = IfcStructuralCurveActivityTypeEnum.LINEAR +parabola = IfcStructuralCurveActivityTypeEnum.PARABOLA +polygonal = IfcStructuralCurveActivityTypeEnum.POLYGONAL +sinus = IfcStructuralCurveActivityTypeEnum.SINUS +userdefined = IfcStructuralCurveActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveActivityTypeEnum.NOTDEFINED IfcStructuralCurveMemberTypeEnum = enum_namespace() -cable = getattr(IfcStructuralCurveMemberTypeEnum, 'CABLE', INDETERMINATE) -compression_member = getattr(IfcStructuralCurveMemberTypeEnum, 'COMPRESSION_MEMBER', INDETERMINATE) -pin_joined_member = getattr(IfcStructuralCurveMemberTypeEnum, 'PIN_JOINED_MEMBER', INDETERMINATE) -rigid_joined_member = getattr(IfcStructuralCurveMemberTypeEnum, 'RIGID_JOINED_MEMBER', INDETERMINATE) -tension_member = getattr(IfcStructuralCurveMemberTypeEnum, 'TENSION_MEMBER', INDETERMINATE) -userdefined = getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralCurveMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +cable = IfcStructuralCurveMemberTypeEnum.CABLE +compression_member = IfcStructuralCurveMemberTypeEnum.COMPRESSION_MEMBER +pin_joined_member = IfcStructuralCurveMemberTypeEnum.PIN_JOINED_MEMBER +rigid_joined_member = IfcStructuralCurveMemberTypeEnum.RIGID_JOINED_MEMBER +tension_member = IfcStructuralCurveMemberTypeEnum.TENSION_MEMBER +userdefined = IfcStructuralCurveMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralCurveMemberTypeEnum.NOTDEFINED IfcStructuralSurfaceActivityTypeEnum = enum_namespace() -bilinear = getattr(IfcStructuralSurfaceActivityTypeEnum, 'BILINEAR', INDETERMINATE) -const = getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE) -discrete = getattr(IfcStructuralSurfaceActivityTypeEnum, 'DISCRETE', INDETERMINATE) -isocontour = getattr(IfcStructuralSurfaceActivityTypeEnum, 'ISOCONTOUR', INDETERMINATE) -userdefined = getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralSurfaceActivityTypeEnum, 'NOTDEFINED', INDETERMINATE) +bilinear = IfcStructuralSurfaceActivityTypeEnum.BILINEAR +const = IfcStructuralSurfaceActivityTypeEnum.CONST +discrete = IfcStructuralSurfaceActivityTypeEnum.DISCRETE +isocontour = IfcStructuralSurfaceActivityTypeEnum.ISOCONTOUR +userdefined = IfcStructuralSurfaceActivityTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceActivityTypeEnum.NOTDEFINED IfcStructuralSurfaceMemberTypeEnum = enum_namespace() -bending_element = getattr(IfcStructuralSurfaceMemberTypeEnum, 'BENDING_ELEMENT', INDETERMINATE) -membrane_element = getattr(IfcStructuralSurfaceMemberTypeEnum, 'MEMBRANE_ELEMENT', INDETERMINATE) -shell = getattr(IfcStructuralSurfaceMemberTypeEnum, 'SHELL', INDETERMINATE) -userdefined = getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcStructuralSurfaceMemberTypeEnum, 'NOTDEFINED', INDETERMINATE) +bending_element = IfcStructuralSurfaceMemberTypeEnum.BENDING_ELEMENT +membrane_element = IfcStructuralSurfaceMemberTypeEnum.MEMBRANE_ELEMENT +shell = IfcStructuralSurfaceMemberTypeEnum.SHELL +userdefined = IfcStructuralSurfaceMemberTypeEnum.USERDEFINED +notdefined = IfcStructuralSurfaceMemberTypeEnum.NOTDEFINED IfcSubContractResourceTypeEnum = enum_namespace() -purchase = getattr(IfcSubContractResourceTypeEnum, 'PURCHASE', INDETERMINATE) -work = getattr(IfcSubContractResourceTypeEnum, 'WORK', INDETERMINATE) -userdefined = getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSubContractResourceTypeEnum, 'NOTDEFINED', INDETERMINATE) +purchase = IfcSubContractResourceTypeEnum.PURCHASE +work = IfcSubContractResourceTypeEnum.WORK +userdefined = IfcSubContractResourceTypeEnum.USERDEFINED +notdefined = IfcSubContractResourceTypeEnum.NOTDEFINED IfcSurfaceFeatureTypeEnum = enum_namespace() -defect = getattr(IfcSurfaceFeatureTypeEnum, 'DEFECT', INDETERMINATE) -hatchmarking = getattr(IfcSurfaceFeatureTypeEnum, 'HATCHMARKING', INDETERMINATE) -linemarking = getattr(IfcSurfaceFeatureTypeEnum, 'LINEMARKING', INDETERMINATE) -mark = getattr(IfcSurfaceFeatureTypeEnum, 'MARK', INDETERMINATE) -nonskidsurfacing = getattr(IfcSurfaceFeatureTypeEnum, 'NONSKIDSURFACING', INDETERMINATE) -pavementsurfacemarking = getattr(IfcSurfaceFeatureTypeEnum, 'PAVEMENTSURFACEMARKING', INDETERMINATE) -rumblestrip = getattr(IfcSurfaceFeatureTypeEnum, 'RUMBLESTRIP', INDETERMINATE) -symbolmarking = getattr(IfcSurfaceFeatureTypeEnum, 'SYMBOLMARKING', INDETERMINATE) -tag = getattr(IfcSurfaceFeatureTypeEnum, 'TAG', INDETERMINATE) -transverserumblestrip = getattr(IfcSurfaceFeatureTypeEnum, 'TRANSVERSERUMBLESTRIP', INDETERMINATE) -treatment = getattr(IfcSurfaceFeatureTypeEnum, 'TREATMENT', INDETERMINATE) -userdefined = getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSurfaceFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +defect = IfcSurfaceFeatureTypeEnum.DEFECT +hatchmarking = IfcSurfaceFeatureTypeEnum.HATCHMARKING +linemarking = IfcSurfaceFeatureTypeEnum.LINEMARKING +mark = IfcSurfaceFeatureTypeEnum.MARK +nonskidsurfacing = IfcSurfaceFeatureTypeEnum.NONSKIDSURFACING +pavementsurfacemarking = IfcSurfaceFeatureTypeEnum.PAVEMENTSURFACEMARKING +rumblestrip = IfcSurfaceFeatureTypeEnum.RUMBLESTRIP +symbolmarking = IfcSurfaceFeatureTypeEnum.SYMBOLMARKING +tag = IfcSurfaceFeatureTypeEnum.TAG +transverserumblestrip = IfcSurfaceFeatureTypeEnum.TRANSVERSERUMBLESTRIP +treatment = IfcSurfaceFeatureTypeEnum.TREATMENT +userdefined = IfcSurfaceFeatureTypeEnum.USERDEFINED +notdefined = IfcSurfaceFeatureTypeEnum.NOTDEFINED IfcSurfaceSide = enum_namespace() -both = getattr(IfcSurfaceSide, 'BOTH', INDETERMINATE) -negative = getattr(IfcSurfaceSide, 'NEGATIVE', INDETERMINATE) -positive = getattr(IfcSurfaceSide, 'POSITIVE', INDETERMINATE) +both = IfcSurfaceSide.BOTH +negative = IfcSurfaceSide.NEGATIVE +positive = IfcSurfaceSide.POSITIVE IfcSwitchingDeviceTypeEnum = enum_namespace() -contactor = getattr(IfcSwitchingDeviceTypeEnum, 'CONTACTOR', INDETERMINATE) -dimmerswitch = getattr(IfcSwitchingDeviceTypeEnum, 'DIMMERSWITCH', INDETERMINATE) -emergencystop = getattr(IfcSwitchingDeviceTypeEnum, 'EMERGENCYSTOP', INDETERMINATE) -keypad = getattr(IfcSwitchingDeviceTypeEnum, 'KEYPAD', INDETERMINATE) -momentaryswitch = getattr(IfcSwitchingDeviceTypeEnum, 'MOMENTARYSWITCH', INDETERMINATE) -relay = getattr(IfcSwitchingDeviceTypeEnum, 'RELAY', INDETERMINATE) -selectorswitch = getattr(IfcSwitchingDeviceTypeEnum, 'SELECTORSWITCH', INDETERMINATE) -starter = getattr(IfcSwitchingDeviceTypeEnum, 'STARTER', INDETERMINATE) -start_and_stop_equipment = getattr(IfcSwitchingDeviceTypeEnum, 'START_AND_STOP_EQUIPMENT', INDETERMINATE) -switchdisconnector = getattr(IfcSwitchingDeviceTypeEnum, 'SWITCHDISCONNECTOR', INDETERMINATE) -toggleswitch = getattr(IfcSwitchingDeviceTypeEnum, 'TOGGLESWITCH', INDETERMINATE) -userdefined = getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSwitchingDeviceTypeEnum, 'NOTDEFINED', INDETERMINATE) +contactor = IfcSwitchingDeviceTypeEnum.CONTACTOR +dimmerswitch = IfcSwitchingDeviceTypeEnum.DIMMERSWITCH +emergencystop = IfcSwitchingDeviceTypeEnum.EMERGENCYSTOP +keypad = IfcSwitchingDeviceTypeEnum.KEYPAD +momentaryswitch = IfcSwitchingDeviceTypeEnum.MOMENTARYSWITCH +relay = IfcSwitchingDeviceTypeEnum.RELAY +selectorswitch = IfcSwitchingDeviceTypeEnum.SELECTORSWITCH +starter = IfcSwitchingDeviceTypeEnum.STARTER +start_and_stop_equipment = IfcSwitchingDeviceTypeEnum.START_AND_STOP_EQUIPMENT +switchdisconnector = IfcSwitchingDeviceTypeEnum.SWITCHDISCONNECTOR +toggleswitch = IfcSwitchingDeviceTypeEnum.TOGGLESWITCH +userdefined = IfcSwitchingDeviceTypeEnum.USERDEFINED +notdefined = IfcSwitchingDeviceTypeEnum.NOTDEFINED IfcSystemFurnitureElementTypeEnum = enum_namespace() -panel = getattr(IfcSystemFurnitureElementTypeEnum, 'PANEL', INDETERMINATE) -subrack = getattr(IfcSystemFurnitureElementTypeEnum, 'SUBRACK', INDETERMINATE) -worksurface = getattr(IfcSystemFurnitureElementTypeEnum, 'WORKSURFACE', INDETERMINATE) -userdefined = getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcSystemFurnitureElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +panel = IfcSystemFurnitureElementTypeEnum.PANEL +subrack = IfcSystemFurnitureElementTypeEnum.SUBRACK +worksurface = IfcSystemFurnitureElementTypeEnum.WORKSURFACE +userdefined = IfcSystemFurnitureElementTypeEnum.USERDEFINED +notdefined = IfcSystemFurnitureElementTypeEnum.NOTDEFINED IfcTankTypeEnum = enum_namespace() -basin = getattr(IfcTankTypeEnum, 'BASIN', INDETERMINATE) -breakpressure = getattr(IfcTankTypeEnum, 'BREAKPRESSURE', INDETERMINATE) -expansion = getattr(IfcTankTypeEnum, 'EXPANSION', INDETERMINATE) -feedandexpansion = getattr(IfcTankTypeEnum, 'FEEDANDEXPANSION', INDETERMINATE) -oilretentiontray = getattr(IfcTankTypeEnum, 'OILRETENTIONTRAY', INDETERMINATE) -pressurevessel = getattr(IfcTankTypeEnum, 'PRESSUREVESSEL', INDETERMINATE) -storage = getattr(IfcTankTypeEnum, 'STORAGE', INDETERMINATE) -vessel = getattr(IfcTankTypeEnum, 'VESSEL', INDETERMINATE) -userdefined = getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTankTypeEnum, 'NOTDEFINED', INDETERMINATE) +basin = IfcTankTypeEnum.BASIN +breakpressure = IfcTankTypeEnum.BREAKPRESSURE +expansion = IfcTankTypeEnum.EXPANSION +feedandexpansion = IfcTankTypeEnum.FEEDANDEXPANSION +oilretentiontray = IfcTankTypeEnum.OILRETENTIONTRAY +pressurevessel = IfcTankTypeEnum.PRESSUREVESSEL +storage = IfcTankTypeEnum.STORAGE +vessel = IfcTankTypeEnum.VESSEL +userdefined = IfcTankTypeEnum.USERDEFINED +notdefined = IfcTankTypeEnum.NOTDEFINED IfcTaskDurationEnum = enum_namespace() -elapsedtime = getattr(IfcTaskDurationEnum, 'ELAPSEDTIME', INDETERMINATE) -worktime = getattr(IfcTaskDurationEnum, 'WORKTIME', INDETERMINATE) -notdefined = getattr(IfcTaskDurationEnum, 'NOTDEFINED', INDETERMINATE) +elapsedtime = IfcTaskDurationEnum.ELAPSEDTIME +worktime = IfcTaskDurationEnum.WORKTIME +notdefined = IfcTaskDurationEnum.NOTDEFINED IfcTaskTypeEnum = enum_namespace() -adjustment = getattr(IfcTaskTypeEnum, 'ADJUSTMENT', INDETERMINATE) -attendance = getattr(IfcTaskTypeEnum, 'ATTENDANCE', INDETERMINATE) -calibration = getattr(IfcTaskTypeEnum, 'CALIBRATION', INDETERMINATE) -construction = getattr(IfcTaskTypeEnum, 'CONSTRUCTION', INDETERMINATE) -demolition = getattr(IfcTaskTypeEnum, 'DEMOLITION', INDETERMINATE) -dismantle = getattr(IfcTaskTypeEnum, 'DISMANTLE', INDETERMINATE) -disposal = getattr(IfcTaskTypeEnum, 'DISPOSAL', INDETERMINATE) -emergency = getattr(IfcTaskTypeEnum, 'EMERGENCY', INDETERMINATE) -inspection = getattr(IfcTaskTypeEnum, 'INSPECTION', INDETERMINATE) -installation = getattr(IfcTaskTypeEnum, 'INSTALLATION', INDETERMINATE) -logistic = getattr(IfcTaskTypeEnum, 'LOGISTIC', INDETERMINATE) -maintenance = getattr(IfcTaskTypeEnum, 'MAINTENANCE', INDETERMINATE) -move = getattr(IfcTaskTypeEnum, 'MOVE', INDETERMINATE) -operation = getattr(IfcTaskTypeEnum, 'OPERATION', INDETERMINATE) -removal = getattr(IfcTaskTypeEnum, 'REMOVAL', INDETERMINATE) -renovation = getattr(IfcTaskTypeEnum, 'RENOVATION', INDETERMINATE) -safety = getattr(IfcTaskTypeEnum, 'SAFETY', INDETERMINATE) -shutdown = getattr(IfcTaskTypeEnum, 'SHUTDOWN', INDETERMINATE) -startup = getattr(IfcTaskTypeEnum, 'STARTUP', INDETERMINATE) -testing = getattr(IfcTaskTypeEnum, 'TESTING', INDETERMINATE) -troubleshooting = getattr(IfcTaskTypeEnum, 'TROUBLESHOOTING', INDETERMINATE) -userdefined = getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTaskTypeEnum, 'NOTDEFINED', INDETERMINATE) +adjustment = IfcTaskTypeEnum.ADJUSTMENT +attendance = IfcTaskTypeEnum.ATTENDANCE +calibration = IfcTaskTypeEnum.CALIBRATION +construction = IfcTaskTypeEnum.CONSTRUCTION +demolition = IfcTaskTypeEnum.DEMOLITION +dismantle = IfcTaskTypeEnum.DISMANTLE +disposal = IfcTaskTypeEnum.DISPOSAL +emergency = IfcTaskTypeEnum.EMERGENCY +inspection = IfcTaskTypeEnum.INSPECTION +installation = IfcTaskTypeEnum.INSTALLATION +logistic = IfcTaskTypeEnum.LOGISTIC +maintenance = IfcTaskTypeEnum.MAINTENANCE +move = IfcTaskTypeEnum.MOVE +operation = IfcTaskTypeEnum.OPERATION +removal = IfcTaskTypeEnum.REMOVAL +renovation = IfcTaskTypeEnum.RENOVATION +safety = IfcTaskTypeEnum.SAFETY +shutdown = IfcTaskTypeEnum.SHUTDOWN +startup = IfcTaskTypeEnum.STARTUP +testing = IfcTaskTypeEnum.TESTING +troubleshooting = IfcTaskTypeEnum.TROUBLESHOOTING +userdefined = IfcTaskTypeEnum.USERDEFINED +notdefined = IfcTaskTypeEnum.NOTDEFINED IfcTendonAnchorTypeEnum = enum_namespace() -coupler = getattr(IfcTendonAnchorTypeEnum, 'COUPLER', INDETERMINATE) -fixed_end = getattr(IfcTendonAnchorTypeEnum, 'FIXED_END', INDETERMINATE) -tensioning_end = getattr(IfcTendonAnchorTypeEnum, 'TENSIONING_END', INDETERMINATE) -userdefined = getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonAnchorTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonAnchorTypeEnum.COUPLER +fixed_end = IfcTendonAnchorTypeEnum.FIXED_END +tensioning_end = IfcTendonAnchorTypeEnum.TENSIONING_END +userdefined = IfcTendonAnchorTypeEnum.USERDEFINED +notdefined = IfcTendonAnchorTypeEnum.NOTDEFINED IfcTendonConduitTypeEnum = enum_namespace() -coupler = getattr(IfcTendonConduitTypeEnum, 'COUPLER', INDETERMINATE) -diabolo = getattr(IfcTendonConduitTypeEnum, 'DIABOLO', INDETERMINATE) -duct = getattr(IfcTendonConduitTypeEnum, 'DUCT', INDETERMINATE) -grouting_duct = getattr(IfcTendonConduitTypeEnum, 'GROUTING_DUCT', INDETERMINATE) -trumpet = getattr(IfcTendonConduitTypeEnum, 'TRUMPET', INDETERMINATE) -userdefined = getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonConduitTypeEnum, 'NOTDEFINED', INDETERMINATE) +coupler = IfcTendonConduitTypeEnum.COUPLER +diabolo = IfcTendonConduitTypeEnum.DIABOLO +duct = IfcTendonConduitTypeEnum.DUCT +grouting_duct = IfcTendonConduitTypeEnum.GROUTING_DUCT +trumpet = IfcTendonConduitTypeEnum.TRUMPET +userdefined = IfcTendonConduitTypeEnum.USERDEFINED +notdefined = IfcTendonConduitTypeEnum.NOTDEFINED IfcTendonTypeEnum = enum_namespace() -bar = getattr(IfcTendonTypeEnum, 'BAR', INDETERMINATE) -coated = getattr(IfcTendonTypeEnum, 'COATED', INDETERMINATE) -strand = getattr(IfcTendonTypeEnum, 'STRAND', INDETERMINATE) -wire = getattr(IfcTendonTypeEnum, 'WIRE', INDETERMINATE) -userdefined = getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTendonTypeEnum, 'NOTDEFINED', INDETERMINATE) +bar = IfcTendonTypeEnum.BAR +coated = IfcTendonTypeEnum.COATED +strand = IfcTendonTypeEnum.STRAND +wire = IfcTendonTypeEnum.WIRE +userdefined = IfcTendonTypeEnum.USERDEFINED +notdefined = IfcTendonTypeEnum.NOTDEFINED IfcTextPath = enum_namespace() -down = getattr(IfcTextPath, 'DOWN', INDETERMINATE) -left = getattr(IfcTextPath, 'LEFT', INDETERMINATE) -right = getattr(IfcTextPath, 'RIGHT', INDETERMINATE) -up = getattr(IfcTextPath, 'UP', INDETERMINATE) +down = IfcTextPath.DOWN +left = IfcTextPath.LEFT +right = IfcTextPath.RIGHT +up = IfcTextPath.UP IfcTimeSeriesDataTypeEnum = enum_namespace() -continuous = getattr(IfcTimeSeriesDataTypeEnum, 'CONTINUOUS', INDETERMINATE) -discrete = getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETE', INDETERMINATE) -discretebinary = getattr(IfcTimeSeriesDataTypeEnum, 'DISCRETEBINARY', INDETERMINATE) -piecewisebinary = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISEBINARY', INDETERMINATE) -piecewiseconstant = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONSTANT', INDETERMINATE) -piecewisecontinuous = getattr(IfcTimeSeriesDataTypeEnum, 'PIECEWISECONTINUOUS', INDETERMINATE) -notdefined = getattr(IfcTimeSeriesDataTypeEnum, 'NOTDEFINED', INDETERMINATE) +continuous = IfcTimeSeriesDataTypeEnum.CONTINUOUS +discrete = IfcTimeSeriesDataTypeEnum.DISCRETE +discretebinary = IfcTimeSeriesDataTypeEnum.DISCRETEBINARY +piecewisebinary = IfcTimeSeriesDataTypeEnum.PIECEWISEBINARY +piecewiseconstant = IfcTimeSeriesDataTypeEnum.PIECEWISECONSTANT +piecewisecontinuous = IfcTimeSeriesDataTypeEnum.PIECEWISECONTINUOUS +notdefined = IfcTimeSeriesDataTypeEnum.NOTDEFINED IfcTrackElementTypeEnum = enum_namespace() -blockingdevice = getattr(IfcTrackElementTypeEnum, 'BLOCKINGDEVICE', INDETERMINATE) -derailer = getattr(IfcTrackElementTypeEnum, 'DERAILER', INDETERMINATE) -frog = getattr(IfcTrackElementTypeEnum, 'FROG', INDETERMINATE) -half_set_of_blades = getattr(IfcTrackElementTypeEnum, 'HALF_SET_OF_BLADES', INDETERMINATE) -sleeper = getattr(IfcTrackElementTypeEnum, 'SLEEPER', INDETERMINATE) -speedregulator = getattr(IfcTrackElementTypeEnum, 'SPEEDREGULATOR', INDETERMINATE) -trackendofalignment = getattr(IfcTrackElementTypeEnum, 'TRACKENDOFALIGNMENT', INDETERMINATE) -vehiclestop = getattr(IfcTrackElementTypeEnum, 'VEHICLESTOP', INDETERMINATE) -userdefined = getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTrackElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +blockingdevice = IfcTrackElementTypeEnum.BLOCKINGDEVICE +derailer = IfcTrackElementTypeEnum.DERAILER +frog = IfcTrackElementTypeEnum.FROG +half_set_of_blades = IfcTrackElementTypeEnum.HALF_SET_OF_BLADES +sleeper = IfcTrackElementTypeEnum.SLEEPER +speedregulator = IfcTrackElementTypeEnum.SPEEDREGULATOR +trackendofalignment = IfcTrackElementTypeEnum.TRACKENDOFALIGNMENT +vehiclestop = IfcTrackElementTypeEnum.VEHICLESTOP +userdefined = IfcTrackElementTypeEnum.USERDEFINED +notdefined = IfcTrackElementTypeEnum.NOTDEFINED IfcTransformerTypeEnum = enum_namespace() -chopper = getattr(IfcTransformerTypeEnum, 'CHOPPER', INDETERMINATE) -combined = getattr(IfcTransformerTypeEnum, 'COMBINED', INDETERMINATE) -current = getattr(IfcTransformerTypeEnum, 'CURRENT', INDETERMINATE) -frequency = getattr(IfcTransformerTypeEnum, 'FREQUENCY', INDETERMINATE) -inverter = getattr(IfcTransformerTypeEnum, 'INVERTER', INDETERMINATE) -rectifier = getattr(IfcTransformerTypeEnum, 'RECTIFIER', INDETERMINATE) -voltage = getattr(IfcTransformerTypeEnum, 'VOLTAGE', INDETERMINATE) -userdefined = getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTransformerTypeEnum, 'NOTDEFINED', INDETERMINATE) +chopper = IfcTransformerTypeEnum.CHOPPER +combined = IfcTransformerTypeEnum.COMBINED +current = IfcTransformerTypeEnum.CURRENT +frequency = IfcTransformerTypeEnum.FREQUENCY +inverter = IfcTransformerTypeEnum.INVERTER +rectifier = IfcTransformerTypeEnum.RECTIFIER +voltage = IfcTransformerTypeEnum.VOLTAGE +userdefined = IfcTransformerTypeEnum.USERDEFINED +notdefined = IfcTransformerTypeEnum.NOTDEFINED IfcTransitionCode = enum_namespace() -continuous = getattr(IfcTransitionCode, 'CONTINUOUS', INDETERMINATE) -contsamegradient = getattr(IfcTransitionCode, 'CONTSAMEGRADIENT', INDETERMINATE) -contsamegradientsamecurvature = getattr(IfcTransitionCode, 'CONTSAMEGRADIENTSAMECURVATURE', INDETERMINATE) -discontinuous = getattr(IfcTransitionCode, 'DISCONTINUOUS', INDETERMINATE) +continuous = IfcTransitionCode.CONTINUOUS +contsamegradient = IfcTransitionCode.CONTSAMEGRADIENT +contsamegradientsamecurvature = IfcTransitionCode.CONTSAMEGRADIENTSAMECURVATURE +discontinuous = IfcTransitionCode.DISCONTINUOUS IfcTransportElementTypeEnum = enum_namespace() -craneway = getattr(IfcTransportElementTypeEnum, 'CRANEWAY', INDETERMINATE) -elevator = getattr(IfcTransportElementTypeEnum, 'ELEVATOR', INDETERMINATE) -escalator = getattr(IfcTransportElementTypeEnum, 'ESCALATOR', INDETERMINATE) -haulinggear = getattr(IfcTransportElementTypeEnum, 'HAULINGGEAR', INDETERMINATE) -liftinggear = getattr(IfcTransportElementTypeEnum, 'LIFTINGGEAR', INDETERMINATE) -movingwalkway = getattr(IfcTransportElementTypeEnum, 'MOVINGWALKWAY', INDETERMINATE) -userdefined = getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTransportElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +craneway = IfcTransportElementTypeEnum.CRANEWAY +elevator = IfcTransportElementTypeEnum.ELEVATOR +escalator = IfcTransportElementTypeEnum.ESCALATOR +haulinggear = IfcTransportElementTypeEnum.HAULINGGEAR +liftinggear = IfcTransportElementTypeEnum.LIFTINGGEAR +movingwalkway = IfcTransportElementTypeEnum.MOVINGWALKWAY +userdefined = IfcTransportElementTypeEnum.USERDEFINED +notdefined = IfcTransportElementTypeEnum.NOTDEFINED IfcTrimmingPreference = enum_namespace() -cartesian = getattr(IfcTrimmingPreference, 'CARTESIAN', INDETERMINATE) -parameter = getattr(IfcTrimmingPreference, 'PARAMETER', INDETERMINATE) -unspecified = getattr(IfcTrimmingPreference, 'UNSPECIFIED', INDETERMINATE) +cartesian = IfcTrimmingPreference.CARTESIAN +parameter = IfcTrimmingPreference.PARAMETER +unspecified = IfcTrimmingPreference.UNSPECIFIED IfcTubeBundleTypeEnum = enum_namespace() -finned = getattr(IfcTubeBundleTypeEnum, 'FINNED', INDETERMINATE) -userdefined = getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcTubeBundleTypeEnum, 'NOTDEFINED', INDETERMINATE) +finned = IfcTubeBundleTypeEnum.FINNED +userdefined = IfcTubeBundleTypeEnum.USERDEFINED +notdefined = IfcTubeBundleTypeEnum.NOTDEFINED IfcUnitEnum = enum_namespace() -absorbeddoseunit = getattr(IfcUnitEnum, 'ABSORBEDDOSEUNIT', INDETERMINATE) -amountofsubstanceunit = getattr(IfcUnitEnum, 'AMOUNTOFSUBSTANCEUNIT', INDETERMINATE) -areaunit = getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE) -doseequivalentunit = getattr(IfcUnitEnum, 'DOSEEQUIVALENTUNIT', INDETERMINATE) -electriccapacitanceunit = getattr(IfcUnitEnum, 'ELECTRICCAPACITANCEUNIT', INDETERMINATE) -electricchargeunit = getattr(IfcUnitEnum, 'ELECTRICCHARGEUNIT', INDETERMINATE) -electricconductanceunit = getattr(IfcUnitEnum, 'ELECTRICCONDUCTANCEUNIT', INDETERMINATE) -electriccurrentunit = getattr(IfcUnitEnum, 'ELECTRICCURRENTUNIT', INDETERMINATE) -electricresistanceunit = getattr(IfcUnitEnum, 'ELECTRICRESISTANCEUNIT', INDETERMINATE) -electricvoltageunit = getattr(IfcUnitEnum, 'ELECTRICVOLTAGEUNIT', INDETERMINATE) -energyunit = getattr(IfcUnitEnum, 'ENERGYUNIT', INDETERMINATE) -forceunit = getattr(IfcUnitEnum, 'FORCEUNIT', INDETERMINATE) -frequencyunit = getattr(IfcUnitEnum, 'FREQUENCYUNIT', INDETERMINATE) -illuminanceunit = getattr(IfcUnitEnum, 'ILLUMINANCEUNIT', INDETERMINATE) -inductanceunit = getattr(IfcUnitEnum, 'INDUCTANCEUNIT', INDETERMINATE) -lengthunit = getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE) -luminousfluxunit = getattr(IfcUnitEnum, 'LUMINOUSFLUXUNIT', INDETERMINATE) -luminousintensityunit = getattr(IfcUnitEnum, 'LUMINOUSINTENSITYUNIT', INDETERMINATE) -magneticfluxdensityunit = getattr(IfcUnitEnum, 'MAGNETICFLUXDENSITYUNIT', INDETERMINATE) -magneticfluxunit = getattr(IfcUnitEnum, 'MAGNETICFLUXUNIT', INDETERMINATE) -massunit = getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE) -planeangleunit = getattr(IfcUnitEnum, 'PLANEANGLEUNIT', INDETERMINATE) -powerunit = getattr(IfcUnitEnum, 'POWERUNIT', INDETERMINATE) -pressureunit = getattr(IfcUnitEnum, 'PRESSUREUNIT', INDETERMINATE) -radioactivityunit = getattr(IfcUnitEnum, 'RADIOACTIVITYUNIT', INDETERMINATE) -solidangleunit = getattr(IfcUnitEnum, 'SOLIDANGLEUNIT', INDETERMINATE) -thermodynamictemperatureunit = getattr(IfcUnitEnum, 'THERMODYNAMICTEMPERATUREUNIT', INDETERMINATE) -timeunit = getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE) -volumeunit = getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE) -userdefined = getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE) +absorbeddoseunit = IfcUnitEnum.ABSORBEDDOSEUNIT +amountofsubstanceunit = IfcUnitEnum.AMOUNTOFSUBSTANCEUNIT +areaunit = IfcUnitEnum.AREAUNIT +doseequivalentunit = IfcUnitEnum.DOSEEQUIVALENTUNIT +electriccapacitanceunit = IfcUnitEnum.ELECTRICCAPACITANCEUNIT +electricchargeunit = IfcUnitEnum.ELECTRICCHARGEUNIT +electricconductanceunit = IfcUnitEnum.ELECTRICCONDUCTANCEUNIT +electriccurrentunit = IfcUnitEnum.ELECTRICCURRENTUNIT +electricresistanceunit = IfcUnitEnum.ELECTRICRESISTANCEUNIT +electricvoltageunit = IfcUnitEnum.ELECTRICVOLTAGEUNIT +energyunit = IfcUnitEnum.ENERGYUNIT +forceunit = IfcUnitEnum.FORCEUNIT +frequencyunit = IfcUnitEnum.FREQUENCYUNIT +illuminanceunit = IfcUnitEnum.ILLUMINANCEUNIT +inductanceunit = IfcUnitEnum.INDUCTANCEUNIT +lengthunit = IfcUnitEnum.LENGTHUNIT +luminousfluxunit = IfcUnitEnum.LUMINOUSFLUXUNIT +luminousintensityunit = IfcUnitEnum.LUMINOUSINTENSITYUNIT +magneticfluxdensityunit = IfcUnitEnum.MAGNETICFLUXDENSITYUNIT +magneticfluxunit = IfcUnitEnum.MAGNETICFLUXUNIT +massunit = IfcUnitEnum.MASSUNIT +planeangleunit = IfcUnitEnum.PLANEANGLEUNIT +powerunit = IfcUnitEnum.POWERUNIT +pressureunit = IfcUnitEnum.PRESSUREUNIT +radioactivityunit = IfcUnitEnum.RADIOACTIVITYUNIT +solidangleunit = IfcUnitEnum.SOLIDANGLEUNIT +thermodynamictemperatureunit = IfcUnitEnum.THERMODYNAMICTEMPERATUREUNIT +timeunit = IfcUnitEnum.TIMEUNIT +volumeunit = IfcUnitEnum.VOLUMEUNIT +userdefined = IfcUnitEnum.USERDEFINED IfcUnitaryControlElementTypeEnum = enum_namespace() -alarmpanel = getattr(IfcUnitaryControlElementTypeEnum, 'ALARMPANEL', INDETERMINATE) -basestationcontroller = getattr(IfcUnitaryControlElementTypeEnum, 'BASESTATIONCONTROLLER', INDETERMINATE) -combined = getattr(IfcUnitaryControlElementTypeEnum, 'COMBINED', INDETERMINATE) -controlpanel = getattr(IfcUnitaryControlElementTypeEnum, 'CONTROLPANEL', INDETERMINATE) -gasdetectionpanel = getattr(IfcUnitaryControlElementTypeEnum, 'GASDETECTIONPANEL', INDETERMINATE) -humidistat = getattr(IfcUnitaryControlElementTypeEnum, 'HUMIDISTAT', INDETERMINATE) -indicatorpanel = getattr(IfcUnitaryControlElementTypeEnum, 'INDICATORPANEL', INDETERMINATE) -mimicpanel = getattr(IfcUnitaryControlElementTypeEnum, 'MIMICPANEL', INDETERMINATE) -thermostat = getattr(IfcUnitaryControlElementTypeEnum, 'THERMOSTAT', INDETERMINATE) -weatherstation = getattr(IfcUnitaryControlElementTypeEnum, 'WEATHERSTATION', INDETERMINATE) -userdefined = getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcUnitaryControlElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +alarmpanel = IfcUnitaryControlElementTypeEnum.ALARMPANEL +basestationcontroller = IfcUnitaryControlElementTypeEnum.BASESTATIONCONTROLLER +combined = IfcUnitaryControlElementTypeEnum.COMBINED +controlpanel = IfcUnitaryControlElementTypeEnum.CONTROLPANEL +gasdetectionpanel = IfcUnitaryControlElementTypeEnum.GASDETECTIONPANEL +humidistat = IfcUnitaryControlElementTypeEnum.HUMIDISTAT +indicatorpanel = IfcUnitaryControlElementTypeEnum.INDICATORPANEL +mimicpanel = IfcUnitaryControlElementTypeEnum.MIMICPANEL +thermostat = IfcUnitaryControlElementTypeEnum.THERMOSTAT +weatherstation = IfcUnitaryControlElementTypeEnum.WEATHERSTATION +userdefined = IfcUnitaryControlElementTypeEnum.USERDEFINED +notdefined = IfcUnitaryControlElementTypeEnum.NOTDEFINED IfcUnitaryEquipmentTypeEnum = enum_namespace() -airconditioningunit = getattr(IfcUnitaryEquipmentTypeEnum, 'AIRCONDITIONINGUNIT', INDETERMINATE) -airhandler = getattr(IfcUnitaryEquipmentTypeEnum, 'AIRHANDLER', INDETERMINATE) -dehumidifier = getattr(IfcUnitaryEquipmentTypeEnum, 'DEHUMIDIFIER', INDETERMINATE) -rooftopunit = getattr(IfcUnitaryEquipmentTypeEnum, 'ROOFTOPUNIT', INDETERMINATE) -splitsystem = getattr(IfcUnitaryEquipmentTypeEnum, 'SPLITSYSTEM', INDETERMINATE) -userdefined = getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcUnitaryEquipmentTypeEnum, 'NOTDEFINED', INDETERMINATE) +airconditioningunit = IfcUnitaryEquipmentTypeEnum.AIRCONDITIONINGUNIT +airhandler = IfcUnitaryEquipmentTypeEnum.AIRHANDLER +dehumidifier = IfcUnitaryEquipmentTypeEnum.DEHUMIDIFIER +rooftopunit = IfcUnitaryEquipmentTypeEnum.ROOFTOPUNIT +splitsystem = IfcUnitaryEquipmentTypeEnum.SPLITSYSTEM +userdefined = IfcUnitaryEquipmentTypeEnum.USERDEFINED +notdefined = IfcUnitaryEquipmentTypeEnum.NOTDEFINED IfcValveTypeEnum = enum_namespace() -airrelease = getattr(IfcValveTypeEnum, 'AIRRELEASE', INDETERMINATE) -antivacuum = getattr(IfcValveTypeEnum, 'ANTIVACUUM', INDETERMINATE) -changeover = getattr(IfcValveTypeEnum, 'CHANGEOVER', INDETERMINATE) -check = getattr(IfcValveTypeEnum, 'CHECK', INDETERMINATE) -commissioning = getattr(IfcValveTypeEnum, 'COMMISSIONING', INDETERMINATE) -diverting = getattr(IfcValveTypeEnum, 'DIVERTING', INDETERMINATE) -doublecheck = getattr(IfcValveTypeEnum, 'DOUBLECHECK', INDETERMINATE) -doubleregulating = getattr(IfcValveTypeEnum, 'DOUBLEREGULATING', INDETERMINATE) -drawoffcock = getattr(IfcValveTypeEnum, 'DRAWOFFCOCK', INDETERMINATE) -faucet = getattr(IfcValveTypeEnum, 'FAUCET', INDETERMINATE) -flushing = getattr(IfcValveTypeEnum, 'FLUSHING', INDETERMINATE) -gascock = getattr(IfcValveTypeEnum, 'GASCOCK', INDETERMINATE) -gastap = getattr(IfcValveTypeEnum, 'GASTAP', INDETERMINATE) -isolating = getattr(IfcValveTypeEnum, 'ISOLATING', INDETERMINATE) -mixing = getattr(IfcValveTypeEnum, 'MIXING', INDETERMINATE) -pressurereducing = getattr(IfcValveTypeEnum, 'PRESSUREREDUCING', INDETERMINATE) -pressurerelief = getattr(IfcValveTypeEnum, 'PRESSURERELIEF', INDETERMINATE) -regulating = getattr(IfcValveTypeEnum, 'REGULATING', INDETERMINATE) -safetycutoff = getattr(IfcValveTypeEnum, 'SAFETYCUTOFF', INDETERMINATE) -steamtrap = getattr(IfcValveTypeEnum, 'STEAMTRAP', INDETERMINATE) -stopcock = getattr(IfcValveTypeEnum, 'STOPCOCK', INDETERMINATE) -userdefined = getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcValveTypeEnum, 'NOTDEFINED', INDETERMINATE) +airrelease = IfcValveTypeEnum.AIRRELEASE +antivacuum = IfcValveTypeEnum.ANTIVACUUM +changeover = IfcValveTypeEnum.CHANGEOVER +check = IfcValveTypeEnum.CHECK +commissioning = IfcValveTypeEnum.COMMISSIONING +diverting = IfcValveTypeEnum.DIVERTING +doublecheck = IfcValveTypeEnum.DOUBLECHECK +doubleregulating = IfcValveTypeEnum.DOUBLEREGULATING +drawoffcock = IfcValveTypeEnum.DRAWOFFCOCK +faucet = IfcValveTypeEnum.FAUCET +flushing = IfcValveTypeEnum.FLUSHING +gascock = IfcValveTypeEnum.GASCOCK +gastap = IfcValveTypeEnum.GASTAP +isolating = IfcValveTypeEnum.ISOLATING +mixing = IfcValveTypeEnum.MIXING +pressurereducing = IfcValveTypeEnum.PRESSUREREDUCING +pressurerelief = IfcValveTypeEnum.PRESSURERELIEF +regulating = IfcValveTypeEnum.REGULATING +safetycutoff = IfcValveTypeEnum.SAFETYCUTOFF +steamtrap = IfcValveTypeEnum.STEAMTRAP +stopcock = IfcValveTypeEnum.STOPCOCK +userdefined = IfcValveTypeEnum.USERDEFINED +notdefined = IfcValveTypeEnum.NOTDEFINED IfcVehicleTypeEnum = enum_namespace() -cargo = getattr(IfcVehicleTypeEnum, 'CARGO', INDETERMINATE) -rollingstock = getattr(IfcVehicleTypeEnum, 'ROLLINGSTOCK', INDETERMINATE) -vehicle = getattr(IfcVehicleTypeEnum, 'VEHICLE', INDETERMINATE) -vehicleair = getattr(IfcVehicleTypeEnum, 'VEHICLEAIR', INDETERMINATE) -vehiclemarine = getattr(IfcVehicleTypeEnum, 'VEHICLEMARINE', INDETERMINATE) -vehicletracked = getattr(IfcVehicleTypeEnum, 'VEHICLETRACKED', INDETERMINATE) -vehiclewheeled = getattr(IfcVehicleTypeEnum, 'VEHICLEWHEELED', INDETERMINATE) -userdefined = getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVehicleTypeEnum, 'NOTDEFINED', INDETERMINATE) +cargo = IfcVehicleTypeEnum.CARGO +rollingstock = IfcVehicleTypeEnum.ROLLINGSTOCK +vehicle = IfcVehicleTypeEnum.VEHICLE +vehicleair = IfcVehicleTypeEnum.VEHICLEAIR +vehiclemarine = IfcVehicleTypeEnum.VEHICLEMARINE +vehicletracked = IfcVehicleTypeEnum.VEHICLETRACKED +vehiclewheeled = IfcVehicleTypeEnum.VEHICLEWHEELED +userdefined = IfcVehicleTypeEnum.USERDEFINED +notdefined = IfcVehicleTypeEnum.NOTDEFINED IfcVibrationDamperTypeEnum = enum_namespace() -axial_yield = getattr(IfcVibrationDamperTypeEnum, 'AXIAL_YIELD', INDETERMINATE) -bending_yield = getattr(IfcVibrationDamperTypeEnum, 'BENDING_YIELD', INDETERMINATE) -friction = getattr(IfcVibrationDamperTypeEnum, 'FRICTION', INDETERMINATE) -rubber = getattr(IfcVibrationDamperTypeEnum, 'RUBBER', INDETERMINATE) -shear_yield = getattr(IfcVibrationDamperTypeEnum, 'SHEAR_YIELD', INDETERMINATE) -viscous = getattr(IfcVibrationDamperTypeEnum, 'VISCOUS', INDETERMINATE) -userdefined = getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVibrationDamperTypeEnum, 'NOTDEFINED', INDETERMINATE) +axial_yield = IfcVibrationDamperTypeEnum.AXIAL_YIELD +bending_yield = IfcVibrationDamperTypeEnum.BENDING_YIELD +friction = IfcVibrationDamperTypeEnum.FRICTION +rubber = IfcVibrationDamperTypeEnum.RUBBER +shear_yield = IfcVibrationDamperTypeEnum.SHEAR_YIELD +viscous = IfcVibrationDamperTypeEnum.VISCOUS +userdefined = IfcVibrationDamperTypeEnum.USERDEFINED +notdefined = IfcVibrationDamperTypeEnum.NOTDEFINED IfcVibrationIsolatorTypeEnum = enum_namespace() -base = getattr(IfcVibrationIsolatorTypeEnum, 'BASE', INDETERMINATE) -compression = getattr(IfcVibrationIsolatorTypeEnum, 'COMPRESSION', INDETERMINATE) -spring = getattr(IfcVibrationIsolatorTypeEnum, 'SPRING', INDETERMINATE) -userdefined = getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVibrationIsolatorTypeEnum, 'NOTDEFINED', INDETERMINATE) +base = IfcVibrationIsolatorTypeEnum.BASE +compression = IfcVibrationIsolatorTypeEnum.COMPRESSION +spring = IfcVibrationIsolatorTypeEnum.SPRING +userdefined = IfcVibrationIsolatorTypeEnum.USERDEFINED +notdefined = IfcVibrationIsolatorTypeEnum.NOTDEFINED IfcVirtualElementTypeEnum = enum_namespace() -boundary = getattr(IfcVirtualElementTypeEnum, 'BOUNDARY', INDETERMINATE) -clearance = getattr(IfcVirtualElementTypeEnum, 'CLEARANCE', INDETERMINATE) -provisionforvoid = getattr(IfcVirtualElementTypeEnum, 'PROVISIONFORVOID', INDETERMINATE) -userdefined = getattr(IfcVirtualElementTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVirtualElementTypeEnum, 'NOTDEFINED', INDETERMINATE) +boundary = IfcVirtualElementTypeEnum.BOUNDARY +clearance = IfcVirtualElementTypeEnum.CLEARANCE +provisionforvoid = IfcVirtualElementTypeEnum.PROVISIONFORVOID +userdefined = IfcVirtualElementTypeEnum.USERDEFINED +notdefined = IfcVirtualElementTypeEnum.NOTDEFINED IfcVoidingFeatureTypeEnum = enum_namespace() -chamfer = getattr(IfcVoidingFeatureTypeEnum, 'CHAMFER', INDETERMINATE) -cutout = getattr(IfcVoidingFeatureTypeEnum, 'CUTOUT', INDETERMINATE) -edge = getattr(IfcVoidingFeatureTypeEnum, 'EDGE', INDETERMINATE) -hole = getattr(IfcVoidingFeatureTypeEnum, 'HOLE', INDETERMINATE) -miter = getattr(IfcVoidingFeatureTypeEnum, 'MITER', INDETERMINATE) -notch = getattr(IfcVoidingFeatureTypeEnum, 'NOTCH', INDETERMINATE) -userdefined = getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcVoidingFeatureTypeEnum, 'NOTDEFINED', INDETERMINATE) +chamfer = IfcVoidingFeatureTypeEnum.CHAMFER +cutout = IfcVoidingFeatureTypeEnum.CUTOUT +edge = IfcVoidingFeatureTypeEnum.EDGE +hole = IfcVoidingFeatureTypeEnum.HOLE +miter = IfcVoidingFeatureTypeEnum.MITER +notch = IfcVoidingFeatureTypeEnum.NOTCH +userdefined = IfcVoidingFeatureTypeEnum.USERDEFINED +notdefined = IfcVoidingFeatureTypeEnum.NOTDEFINED IfcWallTypeEnum = enum_namespace() -elementedwall = getattr(IfcWallTypeEnum, 'ELEMENTEDWALL', INDETERMINATE) -movable = getattr(IfcWallTypeEnum, 'MOVABLE', INDETERMINATE) -parapet = getattr(IfcWallTypeEnum, 'PARAPET', INDETERMINATE) -partitioning = getattr(IfcWallTypeEnum, 'PARTITIONING', INDETERMINATE) -plumbingwall = getattr(IfcWallTypeEnum, 'PLUMBINGWALL', INDETERMINATE) -polygonal = getattr(IfcWallTypeEnum, 'POLYGONAL', INDETERMINATE) -retainingwall = getattr(IfcWallTypeEnum, 'RETAININGWALL', INDETERMINATE) -shear = getattr(IfcWallTypeEnum, 'SHEAR', INDETERMINATE) -solidwall = getattr(IfcWallTypeEnum, 'SOLIDWALL', INDETERMINATE) -standard = getattr(IfcWallTypeEnum, 'STANDARD', INDETERMINATE) -wavewall = getattr(IfcWallTypeEnum, 'WAVEWALL', INDETERMINATE) -userdefined = getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWallTypeEnum, 'NOTDEFINED', INDETERMINATE) +elementedwall = IfcWallTypeEnum.ELEMENTEDWALL +movable = IfcWallTypeEnum.MOVABLE +parapet = IfcWallTypeEnum.PARAPET +partitioning = IfcWallTypeEnum.PARTITIONING +plumbingwall = IfcWallTypeEnum.PLUMBINGWALL +polygonal = IfcWallTypeEnum.POLYGONAL +retainingwall = IfcWallTypeEnum.RETAININGWALL +shear = IfcWallTypeEnum.SHEAR +solidwall = IfcWallTypeEnum.SOLIDWALL +standard = IfcWallTypeEnum.STANDARD +wavewall = IfcWallTypeEnum.WAVEWALL +userdefined = IfcWallTypeEnum.USERDEFINED +notdefined = IfcWallTypeEnum.NOTDEFINED IfcWasteTerminalTypeEnum = enum_namespace() -floortrap = getattr(IfcWasteTerminalTypeEnum, 'FLOORTRAP', INDETERMINATE) -floorwaste = getattr(IfcWasteTerminalTypeEnum, 'FLOORWASTE', INDETERMINATE) -gullysump = getattr(IfcWasteTerminalTypeEnum, 'GULLYSUMP', INDETERMINATE) -gullytrap = getattr(IfcWasteTerminalTypeEnum, 'GULLYTRAP', INDETERMINATE) -roofdrain = getattr(IfcWasteTerminalTypeEnum, 'ROOFDRAIN', INDETERMINATE) -wastedisposalunit = getattr(IfcWasteTerminalTypeEnum, 'WASTEDISPOSALUNIT', INDETERMINATE) -wastetrap = getattr(IfcWasteTerminalTypeEnum, 'WASTETRAP', INDETERMINATE) -userdefined = getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWasteTerminalTypeEnum, 'NOTDEFINED', INDETERMINATE) +floortrap = IfcWasteTerminalTypeEnum.FLOORTRAP +floorwaste = IfcWasteTerminalTypeEnum.FLOORWASTE +gullysump = IfcWasteTerminalTypeEnum.GULLYSUMP +gullytrap = IfcWasteTerminalTypeEnum.GULLYTRAP +roofdrain = IfcWasteTerminalTypeEnum.ROOFDRAIN +wastedisposalunit = IfcWasteTerminalTypeEnum.WASTEDISPOSALUNIT +wastetrap = IfcWasteTerminalTypeEnum.WASTETRAP +userdefined = IfcWasteTerminalTypeEnum.USERDEFINED +notdefined = IfcWasteTerminalTypeEnum.NOTDEFINED IfcWindowPanelOperationEnum = enum_namespace() -bottomhung = getattr(IfcWindowPanelOperationEnum, 'BOTTOMHUNG', INDETERMINATE) -fixedcasement = getattr(IfcWindowPanelOperationEnum, 'FIXEDCASEMENT', INDETERMINATE) -otheroperation = getattr(IfcWindowPanelOperationEnum, 'OTHEROPERATION', INDETERMINATE) -pivothorizontal = getattr(IfcWindowPanelOperationEnum, 'PIVOTHORIZONTAL', INDETERMINATE) -pivotvertical = getattr(IfcWindowPanelOperationEnum, 'PIVOTVERTICAL', INDETERMINATE) -removablecasement = getattr(IfcWindowPanelOperationEnum, 'REMOVABLECASEMENT', INDETERMINATE) -sidehunglefthand = getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGLEFTHAND', INDETERMINATE) -sidehungrighthand = getattr(IfcWindowPanelOperationEnum, 'SIDEHUNGRIGHTHAND', INDETERMINATE) -slidinghorizontal = getattr(IfcWindowPanelOperationEnum, 'SLIDINGHORIZONTAL', INDETERMINATE) -slidingvertical = getattr(IfcWindowPanelOperationEnum, 'SLIDINGVERTICAL', INDETERMINATE) -tiltandturnlefthand = getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNLEFTHAND', INDETERMINATE) -tiltandturnrighthand = getattr(IfcWindowPanelOperationEnum, 'TILTANDTURNRIGHTHAND', INDETERMINATE) -tophung = getattr(IfcWindowPanelOperationEnum, 'TOPHUNG', INDETERMINATE) -notdefined = getattr(IfcWindowPanelOperationEnum, 'NOTDEFINED', INDETERMINATE) +bottomhung = IfcWindowPanelOperationEnum.BOTTOMHUNG +fixedcasement = IfcWindowPanelOperationEnum.FIXEDCASEMENT +otheroperation = IfcWindowPanelOperationEnum.OTHEROPERATION +pivothorizontal = IfcWindowPanelOperationEnum.PIVOTHORIZONTAL +pivotvertical = IfcWindowPanelOperationEnum.PIVOTVERTICAL +removablecasement = IfcWindowPanelOperationEnum.REMOVABLECASEMENT +sidehunglefthand = IfcWindowPanelOperationEnum.SIDEHUNGLEFTHAND +sidehungrighthand = IfcWindowPanelOperationEnum.SIDEHUNGRIGHTHAND +slidinghorizontal = IfcWindowPanelOperationEnum.SLIDINGHORIZONTAL +slidingvertical = IfcWindowPanelOperationEnum.SLIDINGVERTICAL +tiltandturnlefthand = IfcWindowPanelOperationEnum.TILTANDTURNLEFTHAND +tiltandturnrighthand = IfcWindowPanelOperationEnum.TILTANDTURNRIGHTHAND +tophung = IfcWindowPanelOperationEnum.TOPHUNG +notdefined = IfcWindowPanelOperationEnum.NOTDEFINED IfcWindowPanelPositionEnum = enum_namespace() -bottom = getattr(IfcWindowPanelPositionEnum, 'BOTTOM', INDETERMINATE) -left = getattr(IfcWindowPanelPositionEnum, 'LEFT', INDETERMINATE) -middle = getattr(IfcWindowPanelPositionEnum, 'MIDDLE', INDETERMINATE) -right = getattr(IfcWindowPanelPositionEnum, 'RIGHT', INDETERMINATE) -top = getattr(IfcWindowPanelPositionEnum, 'TOP', INDETERMINATE) -notdefined = getattr(IfcWindowPanelPositionEnum, 'NOTDEFINED', INDETERMINATE) +bottom = IfcWindowPanelPositionEnum.BOTTOM +left = IfcWindowPanelPositionEnum.LEFT +middle = IfcWindowPanelPositionEnum.MIDDLE +right = IfcWindowPanelPositionEnum.RIGHT +top = IfcWindowPanelPositionEnum.TOP +notdefined = IfcWindowPanelPositionEnum.NOTDEFINED IfcWindowTypeEnum = enum_namespace() -lightdome = getattr(IfcWindowTypeEnum, 'LIGHTDOME', INDETERMINATE) -skylight = getattr(IfcWindowTypeEnum, 'SKYLIGHT', INDETERMINATE) -window = getattr(IfcWindowTypeEnum, 'WINDOW', INDETERMINATE) -userdefined = getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowTypeEnum, 'NOTDEFINED', INDETERMINATE) +lightdome = IfcWindowTypeEnum.LIGHTDOME +skylight = IfcWindowTypeEnum.SKYLIGHT +window = IfcWindowTypeEnum.WINDOW +userdefined = IfcWindowTypeEnum.USERDEFINED +notdefined = IfcWindowTypeEnum.NOTDEFINED IfcWindowTypePartitioningEnum = enum_namespace() -double_panel_horizontal = getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_HORIZONTAL', INDETERMINATE) -double_panel_vertical = getattr(IfcWindowTypePartitioningEnum, 'DOUBLE_PANEL_VERTICAL', INDETERMINATE) -single_panel = getattr(IfcWindowTypePartitioningEnum, 'SINGLE_PANEL', INDETERMINATE) -triple_panel_bottom = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_BOTTOM', INDETERMINATE) -triple_panel_horizontal = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_HORIZONTAL', INDETERMINATE) -triple_panel_left = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_LEFT', INDETERMINATE) -triple_panel_right = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_RIGHT', INDETERMINATE) -triple_panel_top = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_TOP', INDETERMINATE) -triple_panel_vertical = getattr(IfcWindowTypePartitioningEnum, 'TRIPLE_PANEL_VERTICAL', INDETERMINATE) -userdefined = getattr(IfcWindowTypePartitioningEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWindowTypePartitioningEnum, 'NOTDEFINED', INDETERMINATE) +double_panel_horizontal = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_HORIZONTAL +double_panel_vertical = IfcWindowTypePartitioningEnum.DOUBLE_PANEL_VERTICAL +single_panel = IfcWindowTypePartitioningEnum.SINGLE_PANEL +triple_panel_bottom = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_BOTTOM +triple_panel_horizontal = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_HORIZONTAL +triple_panel_left = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_LEFT +triple_panel_right = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_RIGHT +triple_panel_top = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_TOP +triple_panel_vertical = IfcWindowTypePartitioningEnum.TRIPLE_PANEL_VERTICAL +userdefined = IfcWindowTypePartitioningEnum.USERDEFINED +notdefined = IfcWindowTypePartitioningEnum.NOTDEFINED IfcWorkCalendarTypeEnum = enum_namespace() -firstshift = getattr(IfcWorkCalendarTypeEnum, 'FIRSTSHIFT', INDETERMINATE) -secondshift = getattr(IfcWorkCalendarTypeEnum, 'SECONDSHIFT', INDETERMINATE) -thirdshift = getattr(IfcWorkCalendarTypeEnum, 'THIRDSHIFT', INDETERMINATE) -userdefined = getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkCalendarTypeEnum, 'NOTDEFINED', INDETERMINATE) +firstshift = IfcWorkCalendarTypeEnum.FIRSTSHIFT +secondshift = IfcWorkCalendarTypeEnum.SECONDSHIFT +thirdshift = IfcWorkCalendarTypeEnum.THIRDSHIFT +userdefined = IfcWorkCalendarTypeEnum.USERDEFINED +notdefined = IfcWorkCalendarTypeEnum.NOTDEFINED IfcWorkPlanTypeEnum = enum_namespace() -actual = getattr(IfcWorkPlanTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = getattr(IfcWorkPlanTypeEnum, 'BASELINE', INDETERMINATE) -planned = getattr(IfcWorkPlanTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkPlanTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkPlanTypeEnum.ACTUAL +baseline = IfcWorkPlanTypeEnum.BASELINE +planned = IfcWorkPlanTypeEnum.PLANNED +userdefined = IfcWorkPlanTypeEnum.USERDEFINED +notdefined = IfcWorkPlanTypeEnum.NOTDEFINED IfcWorkScheduleTypeEnum = enum_namespace() -actual = getattr(IfcWorkScheduleTypeEnum, 'ACTUAL', INDETERMINATE) -baseline = getattr(IfcWorkScheduleTypeEnum, 'BASELINE', INDETERMINATE) -planned = getattr(IfcWorkScheduleTypeEnum, 'PLANNED', INDETERMINATE) -userdefined = getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) -notdefined = getattr(IfcWorkScheduleTypeEnum, 'NOTDEFINED', INDETERMINATE) +actual = IfcWorkScheduleTypeEnum.ACTUAL +baseline = IfcWorkScheduleTypeEnum.BASELINE +planned = IfcWorkScheduleTypeEnum.PLANNED +userdefined = IfcWorkScheduleTypeEnum.USERDEFINED +notdefined = IfcWorkScheduleTypeEnum.NOTDEFINED def IfcActionRequest(*args, **kwargs): return ifcopenshell.create_entity('IfcActionRequest', 'IFC4X3_TC1', *args, **kwargs) @@ -5121,7 +5131,7 @@ class IfcBoxAlignment_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False class IfcCardinalPointReference_GreaterThanZero: SCOPE = 'type' @@ -5202,7 +5212,7 @@ class IfcFontStyle_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False class IfcFontVariant_WR1: SCOPE = 'type' @@ -5211,7 +5221,7 @@ class IfcFontVariant_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False class IfcFontWeight_WR1: SCOPE = 'type' @@ -5220,7 +5230,7 @@ class IfcFontWeight_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False class IfcHeatingValueMeasure_WR1: SCOPE = 'type' @@ -5319,7 +5329,7 @@ class IfcTextAlignment_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False class IfcTextDecoration_WR1: SCOPE = 'type' @@ -5328,7 +5338,7 @@ class IfcTextDecoration_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False class IfcTextTransformation_WR1: SCOPE = 'type' @@ -5337,7 +5347,7 @@ class IfcTextTransformation_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False class IfcActorRole_WR1: SCOPE = 'entity' @@ -5346,8 +5356,8 @@ class IfcActorRole_WR1: @staticmethod def __call__(self): - role = getattr(self, 'Role', INDETERMINATE) - assert (role != getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) or (role == getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedRole', INDETERMINATE)))) is not False + role = express_getattr(self, 'Role', INDETERMINATE) + assert (role != express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) or (role == express_getattr(IfcRoleEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedRole', INDETERMINATE)))) is not False class IfcActuator_CorrectPredefinedType: SCOPE = 'entity' @@ -5356,8 +5366,8 @@ class IfcActuator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcActuator_CorrectTypeAssigned: SCOPE = 'entity' @@ -5366,8 +5376,8 @@ class IfcActuator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcactuatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcactuatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcActuatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -5376,8 +5386,8 @@ class IfcActuatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcActuatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAddress_WR1: SCOPE = 'entity' @@ -5386,8 +5396,8 @@ class IfcAddress_WR1: @staticmethod def __call__(self): - purpose = getattr(self, 'Purpose', INDETERMINATE) - assert (not exists(purpose) or (purpose != getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) or (purpose == getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedPurpose', INDETERMINATE))))) is not False + purpose = express_getattr(self, 'Purpose', INDETERMINATE) + assert (not exists(purpose) or (purpose != express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) or (purpose == express_getattr(IfcAddressTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedPurpose', INDETERMINATE))))) is not False class IfcAdvancedBrep_HasAdvancedFaces: SCOPE = 'entity' @@ -5396,7 +5406,7 @@ class IfcAdvancedBrep_HasAdvancedFaces: @staticmethod def __call__(self): - assert (sizeof([afs for afs in getattr(getattr(self, 'Outer', INDETERMINATE), 'CfsFaces', INDETERMINATE) if not 'ifc4x3_tc1.ifcadvancedface' in typeof(afs)]) == 0) is not False + assert (sizeof([afs for afs in express_getattr(express_getattr(self, 'Outer', INDETERMINATE), 'CfsFaces', INDETERMINATE) if not 'ifc4x3_tc1.ifcadvancedface' in typeof(afs)]) == 0) is not False class IfcAdvancedBrepWithVoids_VoidsHaveAdvancedFaces: SCOPE = 'entity' @@ -5405,8 +5415,8 @@ class IfcAdvancedBrepWithVoids_VoidsHaveAdvancedFaces: @staticmethod def __call__(self): - voids = getattr(self, 'Voids', INDETERMINATE) - assert (sizeof([vsh for vsh in voids if sizeof([afs for afs in getattr(vsh, 'CfsFaces', INDETERMINATE) if not 'ifc4x3_tc1.ifcadvancedface' in typeof(afs)]) == 0]) == 0) is not False + voids = express_getattr(self, 'Voids', INDETERMINATE) + assert (sizeof([vsh for vsh in voids if sizeof([afs for afs in express_getattr(vsh, 'CfsFaces', INDETERMINATE) if not 'ifc4x3_tc1.ifcadvancedface' in typeof(afs)]) == 0]) == 0) is not False class IfcAdvancedFace_ApplicableEdgeCurves: SCOPE = 'entity' @@ -5415,7 +5425,7 @@ class IfcAdvancedFace_ApplicableEdgeCurves: @staticmethod def __call__(self): - assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3_tc1.ifcedgeloop' in typeof(getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in getattr(getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not sizeof(['ifc4x3_tc1.ifcline', 'ifc4x3_tc1.ifcconic', 'ifc4x3_tc1.ifcpolyline', 'ifc4x3_tc1.ifcbsplinecurve'] * typeof(getattr(getattr(oe, 'EdgeElement', INDETERMINATE), 'EdgeGeometry', INDETERMINATE))) == 1]) == 0]) == 0) is not False + assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in express_getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3_tc1.ifcedgeloop' in typeof(express_getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in express_getattr(express_getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not sizeof(['ifc4x3_tc1.ifcline', 'ifc4x3_tc1.ifcconic', 'ifc4x3_tc1.ifcpolyline', 'ifc4x3_tc1.ifcbsplinecurve'] * typeof(express_getattr(express_getattr(oe, 'EdgeElement', INDETERMINATE), 'EdgeGeometry', INDETERMINATE))) == 1]) == 0]) == 0) is not False class IfcAdvancedFace_ApplicableSurface: SCOPE = 'entity' @@ -5424,7 +5434,7 @@ class IfcAdvancedFace_ApplicableSurface: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_tc1.ifcelementarysurface', 'ifc4x3_tc1.ifcsweptsurface', 'ifc4x3_tc1.ifcbsplinesurface'] * typeof(getattr(self, 'FaceSurface', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_tc1.ifcelementarysurface', 'ifc4x3_tc1.ifcsweptsurface', 'ifc4x3_tc1.ifcbsplinesurface'] * typeof(express_getattr(self, 'FaceSurface', INDETERMINATE))) == 1) is not False class IfcAdvancedFace_RequiresEdgeCurve: SCOPE = 'entity' @@ -5433,7 +5443,7 @@ class IfcAdvancedFace_RequiresEdgeCurve: @staticmethod def __call__(self): - assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3_tc1.ifcedgeloop' in typeof(getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in getattr(getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not 'ifc4x3_tc1.ifcedgecurve' in typeof(getattr(oe, 'EdgeElement', INDETERMINATE))]) == 0]) == 0) is not False + assert (sizeof([elpfbnds for elpfbnds in [bnds for bnds in express_getattr(self, 'Bounds', INDETERMINATE) if 'ifc4x3_tc1.ifcedgeloop' in typeof(express_getattr(bnds, 'Bound', INDETERMINATE))] if not sizeof([oe for oe in express_getattr(express_getattr(elpfbnds, 'Bound', INDETERMINATE), 'EdgeList', INDETERMINATE) if not 'ifc4x3_tc1.ifcedgecurve' in typeof(express_getattr(oe, 'EdgeElement', INDETERMINATE))]) == 0]) == 0) is not False class IfcAirTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -5442,8 +5452,8 @@ class IfcAirTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -5452,8 +5462,8 @@ class IfcAirTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcairterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcairterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirTerminalBox_CorrectPredefinedType: SCOPE = 'entity' @@ -5462,8 +5472,8 @@ class IfcAirTerminalBox_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirTerminalBox_CorrectTypeAssigned: SCOPE = 'entity' @@ -5472,8 +5482,8 @@ class IfcAirTerminalBox_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcairterminalboxtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcairterminalboxtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirTerminalBoxType_CorrectPredefinedType: SCOPE = 'entity' @@ -5482,8 +5492,8 @@ class IfcAirTerminalBoxType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAirTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -5492,8 +5502,8 @@ class IfcAirTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAirToAirHeatRecovery_CorrectPredefinedType: SCOPE = 'entity' @@ -5502,8 +5512,8 @@ class IfcAirToAirHeatRecovery_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAirToAirHeatRecovery_CorrectTypeAssigned: SCOPE = 'entity' @@ -5512,8 +5522,8 @@ class IfcAirToAirHeatRecovery_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcairtoairheatrecoverytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcairtoairheatrecoverytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAirToAirHeatRecoveryType_CorrectPredefinedType: SCOPE = 'entity' @@ -5522,8 +5532,8 @@ class IfcAirToAirHeatRecoveryType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAirToAirHeatRecoveryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAlarm_CorrectPredefinedType: SCOPE = 'entity' @@ -5532,8 +5542,8 @@ class IfcAlarm_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAlarm_CorrectTypeAssigned: SCOPE = 'entity' @@ -5542,8 +5552,8 @@ class IfcAlarm_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcalarmtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcalarmtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAlarmType_CorrectPredefinedType: SCOPE = 'entity' @@ -5552,8 +5562,8 @@ class IfcAlarmType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAlarmTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcApproval_HasIdentifierOrName: SCOPE = 'entity' @@ -5562,8 +5572,8 @@ class IfcApproval_HasIdentifierOrName: @staticmethod def __call__(self): - identifier = getattr(self, 'Identifier', INDETERMINATE) - name = getattr(self, 'Name', INDETERMINATE) + identifier = express_getattr(self, 'Identifier', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) assert (exists(identifier) or exists(name)) is not False class IfcArbitraryClosedProfileDef_WR1: @@ -5573,8 +5583,8 @@ class IfcArbitraryClosedProfileDef_WR1: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) - assert (getattr(outercurve, 'Dim', INDETERMINATE) == 2) is not False + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) + assert (express_getattr(outercurve, 'Dim', INDETERMINATE) == 2) is not False class IfcArbitraryClosedProfileDef_WR2: SCOPE = 'entity' @@ -5583,7 +5593,7 @@ class IfcArbitraryClosedProfileDef_WR2: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) assert (not 'ifc4x3_tc1.ifcline' in typeof(outercurve)) is not False class IfcArbitraryClosedProfileDef_WR3: @@ -5593,7 +5603,7 @@ class IfcArbitraryClosedProfileDef_WR3: @staticmethod def __call__(self): - outercurve = getattr(self, 'OuterCurve', INDETERMINATE) + outercurve = express_getattr(self, 'OuterCurve', INDETERMINATE) assert (not 'ifc4x3_tc1.ifcoffsetcurve2d' in typeof(outercurve)) is not False class IfcArbitraryOpenProfileDef_WR11: @@ -5603,7 +5613,7 @@ class IfcArbitraryOpenProfileDef_WR11: @staticmethod def __call__(self): - assert ('ifc4x3_tc1.ifccenterlineprofiledef' in typeof(self) or getattr(self, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False + assert ('ifc4x3_tc1.ifccenterlineprofiledef' in typeof(self) or express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False class IfcArbitraryOpenProfileDef_WR12: SCOPE = 'entity' @@ -5612,8 +5622,8 @@ class IfcArbitraryOpenProfileDef_WR12: @staticmethod def __call__(self): - curve = getattr(self, 'Curve', INDETERMINATE) - assert (getattr(curve, 'Dim', INDETERMINATE) == 2) is not False + curve = express_getattr(self, 'Curve', INDETERMINATE) + assert (express_getattr(curve, 'Dim', INDETERMINATE) == 2) is not False class IfcArbitraryProfileDefWithVoids_WR1: SCOPE = 'entity' @@ -5622,7 +5632,7 @@ class IfcArbitraryProfileDefWithVoids_WR1: @staticmethod def __call__(self): - assert (getattr(self, 'ProfileType', INDETERMINATE) == area) is not False + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == area) is not False class IfcArbitraryProfileDefWithVoids_WR2: SCOPE = 'entity' @@ -5631,8 +5641,8 @@ class IfcArbitraryProfileDefWithVoids_WR2: @staticmethod def __call__(self): - innercurves = getattr(self, 'InnerCurves', INDETERMINATE) - assert (sizeof([temp for temp in innercurves if getattr(temp, 'Dim', INDETERMINATE) != 2]) == 0) is not False + innercurves = express_getattr(self, 'InnerCurves', INDETERMINATE) + assert (sizeof([temp for temp in innercurves if express_getattr(temp, 'Dim', INDETERMINATE) != 2]) == 0) is not False class IfcArbitraryProfileDefWithVoids_WR3: SCOPE = 'entity' @@ -5641,7 +5651,7 @@ class IfcArbitraryProfileDefWithVoids_WR3: @staticmethod def __call__(self): - innercurves = getattr(self, 'InnerCurves', INDETERMINATE) + innercurves = express_getattr(self, 'InnerCurves', INDETERMINATE) assert (sizeof([temp for temp in innercurves if 'ifc4x3_tc1.ifcline' in typeof(temp)]) == 0) is not False class IfcAsymmetricIShapeProfileDef_ValidBottomFilletRadius: @@ -5651,9 +5661,9 @@ class IfcAsymmetricIShapeProfileDef_ValidBottomFilletRadius: @staticmethod def __call__(self): - bottomflangewidth = getattr(self, 'BottomFlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - bottomflangefilletradius = getattr(self, 'BottomFlangeFilletRadius', INDETERMINATE) + bottomflangewidth = express_getattr(self, 'BottomFlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + bottomflangefilletradius = express_getattr(self, 'BottomFlangeFilletRadius', INDETERMINATE) assert (not exists(bottomflangefilletradius) or bottomflangefilletradius <= (bottomflangewidth - webthickness) / 2.0) is not False class IfcAsymmetricIShapeProfileDef_ValidFlangeThickness: @@ -5663,9 +5673,9 @@ class IfcAsymmetricIShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - bottomflangethickness = getattr(self, 'BottomFlangeThickness', INDETERMINATE) - topflangethickness = getattr(self, 'TopFlangeThickness', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + bottomflangethickness = express_getattr(self, 'BottomFlangeThickness', INDETERMINATE) + topflangethickness = express_getattr(self, 'TopFlangeThickness', INDETERMINATE) assert (not exists(topflangethickness) or bottomflangethickness + topflangethickness < overalldepth) is not False class IfcAsymmetricIShapeProfileDef_ValidTopFilletRadius: @@ -5675,9 +5685,9 @@ class IfcAsymmetricIShapeProfileDef_ValidTopFilletRadius: @staticmethod def __call__(self): - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - topflangewidth = getattr(self, 'TopFlangeWidth', INDETERMINATE) - topflangefilletradius = getattr(self, 'TopFlangeFilletRadius', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + topflangewidth = express_getattr(self, 'TopFlangeWidth', INDETERMINATE) + topflangefilletradius = express_getattr(self, 'TopFlangeFilletRadius', INDETERMINATE) assert (not exists(topflangefilletradius) or topflangefilletradius <= (topflangewidth - webthickness) / 2.0) is not False class IfcAsymmetricIShapeProfileDef_ValidWebThickness: @@ -5687,9 +5697,9 @@ class IfcAsymmetricIShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - bottomflangewidth = getattr(self, 'BottomFlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - topflangewidth = getattr(self, 'TopFlangeWidth', INDETERMINATE) + bottomflangewidth = express_getattr(self, 'BottomFlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + topflangewidth = express_getattr(self, 'TopFlangeWidth', INDETERMINATE) assert (webthickness < bottomflangewidth and webthickness < topflangewidth) is not False class IfcAudioVisualAppliance_CorrectPredefinedType: @@ -5699,8 +5709,8 @@ class IfcAudioVisualAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcAudioVisualAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -5709,8 +5719,8 @@ class IfcAudioVisualAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcaudiovisualappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcaudiovisualappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcAudioVisualApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -5719,8 +5729,8 @@ class IfcAudioVisualApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAudioVisualApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcAxis1Placement_AxisIs3D: SCOPE = 'entity' @@ -5729,8 +5739,8 @@ class IfcAxis1Placement_AxisIs3D: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (not exists(axis) or getattr(axis, 'Dim', INDETERMINATE) == 3) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (not exists(axis) or express_getattr(axis, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis1Placement_LocationIs3D: SCOPE = 'entity' @@ -5739,7 +5749,7 @@ class IfcAxis1Placement_LocationIs3D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcAxis1Placement_LocationIsCP: SCOPE = 'entity' @@ -5748,10 +5758,10 @@ class IfcAxis1Placement_LocationIsCP: @staticmethod def __call__(self): - assert ('ifc4x3_tc1.ifccartesianpoint' in typeof(getattr(self, 'Location', INDETERMINATE))) is not False + assert ('ifc4x3_tc1.ifccartesianpoint' in typeof(express_getattr(self, 'Location', INDETERMINATE))) is not False def calc_IfcAxis1Placement_Z(self): - axis = getattr(self, 'Axis', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) return nvl(IfcNormalise(axis), IfcDirection(DirectionRatios=[0.0, 0.0, 1.0])) class IfcAxis2Placement2D_LocationIs2D: @@ -5761,7 +5771,7 @@ class IfcAxis2Placement2D_LocationIs2D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False class IfcAxis2Placement2D_LocationIsCP: SCOPE = 'entity' @@ -5770,7 +5780,7 @@ class IfcAxis2Placement2D_LocationIsCP: @staticmethod def __call__(self): - assert ('ifc4x3_tc1.ifccartesianpoint' in typeof(getattr(self, 'Location', INDETERMINATE))) is not False + assert ('ifc4x3_tc1.ifccartesianpoint' in typeof(express_getattr(self, 'Location', INDETERMINATE))) is not False class IfcAxis2Placement2D_RefDirIs2D: SCOPE = 'entity' @@ -5779,11 +5789,11 @@ class IfcAxis2Placement2D_RefDirIs2D: @staticmethod def __call__(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(refdirection) or getattr(refdirection, 'Dim', INDETERMINATE) == 2) is not False + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(refdirection) or express_getattr(refdirection, 'Dim', INDETERMINATE) == 2) is not False def calc_IfcAxis2Placement2D_P(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) return IfcBuild2Axes(refdirection) class IfcAxis2Placement3D_AxisAndRefDirProvision: @@ -5793,8 +5803,8 @@ class IfcAxis2Placement3D_AxisAndRefDirProvision: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) assert (not exists(axis) ^ exists(refdirection)) is not False class IfcAxis2Placement3D_AxisIs3D: @@ -5804,8 +5814,8 @@ class IfcAxis2Placement3D_AxisIs3D: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (not exists(axis) or getattr(axis, 'Dim', INDETERMINATE) == 3) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (not exists(axis) or express_getattr(axis, 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_AxisToRefDirPosition: SCOPE = 'entity' @@ -5814,9 +5824,9 @@ class IfcAxis2Placement3D_AxisToRefDirPosition: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(axis) or not exists(refdirection) or getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(axis) or not exists(refdirection) or express_getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False class IfcAxis2Placement3D_LocationIs3D: SCOPE = 'entity' @@ -5825,7 +5835,7 @@ class IfcAxis2Placement3D_LocationIs3D: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(express_getattr(self, 'Location', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcAxis2Placement3D_LocationIsCP: SCOPE = 'entity' @@ -5834,7 +5844,7 @@ class IfcAxis2Placement3D_LocationIsCP: @staticmethod def __call__(self): - assert ('ifc4x3_tc1.ifccartesianpoint' in typeof(getattr(self, 'Location', INDETERMINATE))) is not False + assert ('ifc4x3_tc1.ifccartesianpoint' in typeof(express_getattr(self, 'Location', INDETERMINATE))) is not False class IfcAxis2Placement3D_RefDirIs3D: SCOPE = 'entity' @@ -5843,12 +5853,12 @@ class IfcAxis2Placement3D_RefDirIs3D: @staticmethod def __call__(self): - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(refdirection) or getattr(refdirection, 'Dim', INDETERMINATE) == 3) is not False + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(refdirection) or express_getattr(refdirection, 'Dim', INDETERMINATE) == 3) is not False def calc_IfcAxis2Placement3D_P(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) return IfcBuildAxes(axis, refdirection) class IfcAxis2PlacementLinear_WR1: @@ -5858,7 +5868,7 @@ class IfcAxis2PlacementLinear_WR1: @staticmethod def __call__(self): - assert ('ifc4x3_tc1.ifcpointbydistanceexpression' in typeof(getattr(self, 'Location', INDETERMINATE))) is not False + assert ('ifc4x3_tc1.ifcpointbydistanceexpression' in typeof(express_getattr(self, 'Location', INDETERMINATE))) is not False class IfcAxis2PlacementLinear_WR2: SCOPE = 'entity' @@ -5867,9 +5877,9 @@ class IfcAxis2PlacementLinear_WR2: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - refdirection = getattr(self, 'RefDirection', INDETERMINATE) - assert (not exists(axis) or not exists(refdirection) or getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + refdirection = express_getattr(self, 'RefDirection', INDETERMINATE) + assert (not exists(axis) or not exists(refdirection) or express_getattr(IfcCrossProduct(axis, refdirection), 'Magnitude', INDETERMINATE) > 0.0) is not False class IfcBSplineCurve_SameDim: SCOPE = 'entity' @@ -5878,16 +5888,16 @@ class IfcBSplineCurve_SameDim: @staticmethod def __call__(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - assert (sizeof([temp for temp in controlpointslist if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + assert (sizeof([temp for temp in controlpointslist if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcBSplineCurve_UpperIndexOnControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(controlpointslist) - 1 def calc_IfcBSplineCurve_ControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - upperindexoncontrolpoints = getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + upperindexoncontrolpoints = express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) return IfcListToArray(controlpointslist, 0, upperindexoncontrolpoints) class IfcBSplineCurveWithKnots_ConsistentBSpline: @@ -5897,11 +5907,11 @@ class IfcBSplineCurveWithKnots_ConsistentBSpline: @staticmethod def __call__(self): - degree = getattr(self, 'Degree', INDETERMINATE) - upperindexoncontrolpoints = getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) - knotmultiplicities = getattr(self, 'KnotMultiplicities', INDETERMINATE) - knots = getattr(self, 'Knots', INDETERMINATE) - upperindexonknots = getattr(self, 'UpperIndexOnKnots', INDETERMINATE) + degree = express_getattr(self, 'Degree', INDETERMINATE) + upperindexoncontrolpoints = express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE) + knotmultiplicities = express_getattr(self, 'KnotMultiplicities', INDETERMINATE) + knots = express_getattr(self, 'Knots', INDETERMINATE) + upperindexonknots = express_getattr(self, 'UpperIndexOnKnots', INDETERMINATE) assert IfcConstraintsParamBSpline(degree, upperindexonknots, upperindexoncontrolpoints, knotmultiplicities, knots) is not False class IfcBSplineCurveWithKnots_CorrespondingKnotLists: @@ -5911,26 +5921,26 @@ class IfcBSplineCurveWithKnots_CorrespondingKnotLists: @staticmethod def __call__(self): - knotmultiplicities = getattr(self, 'KnotMultiplicities', INDETERMINATE) - upperindexonknots = getattr(self, 'UpperIndexOnKnots', INDETERMINATE) + knotmultiplicities = express_getattr(self, 'KnotMultiplicities', INDETERMINATE) + upperindexonknots = express_getattr(self, 'UpperIndexOnKnots', INDETERMINATE) assert (sizeof(knotmultiplicities) == upperindexonknots) is not False def calc_IfcBSplineCurveWithKnots_UpperIndexOnKnots(self): - knots = getattr(self, 'Knots', INDETERMINATE) + knots = express_getattr(self, 'Knots', INDETERMINATE) return sizeof(knots) def calc_IfcBSplineSurface_UUpper(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(controlpointslist) - 1 def calc_IfcBSplineSurface_VUpper(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) return sizeof(express_getitem(controlpointslist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) - 1 def calc_IfcBSplineSurface_ControlPoints(self): - controlpointslist = getattr(self, 'ControlPointsList', INDETERMINATE) - uupper = getattr(self, 'UUpper', INDETERMINATE) - vupper = getattr(self, 'VUpper', INDETERMINATE) + controlpointslist = express_getattr(self, 'ControlPointsList', INDETERMINATE) + uupper = express_getattr(self, 'UUpper', INDETERMINATE) + vupper = express_getattr(self, 'VUpper', INDETERMINATE) return IfcMakeArrayOfArray(controlpointslist, 0, uupper, 0, vupper) class IfcBSplineSurfaceWithKnots_CorrespondingULists: @@ -5940,8 +5950,8 @@ class IfcBSplineSurfaceWithKnots_CorrespondingULists: @staticmethod def __call__(self): - umultiplicities = getattr(self, 'UMultiplicities', INDETERMINATE) - knotuupper = getattr(self, 'KnotUUpper', INDETERMINATE) + umultiplicities = express_getattr(self, 'UMultiplicities', INDETERMINATE) + knotuupper = express_getattr(self, 'KnotUUpper', INDETERMINATE) assert (sizeof(umultiplicities) == knotuupper) is not False class IfcBSplineSurfaceWithKnots_CorrespondingVLists: @@ -5951,8 +5961,8 @@ class IfcBSplineSurfaceWithKnots_CorrespondingVLists: @staticmethod def __call__(self): - vmultiplicities = getattr(self, 'VMultiplicities', INDETERMINATE) - knotvupper = getattr(self, 'KnotVUpper', INDETERMINATE) + vmultiplicities = express_getattr(self, 'VMultiplicities', INDETERMINATE) + knotvupper = express_getattr(self, 'KnotVUpper', INDETERMINATE) assert (sizeof(vmultiplicities) == knotvupper) is not False class IfcBSplineSurfaceWithKnots_UDirectionConstraints: @@ -5962,10 +5972,10 @@ class IfcBSplineSurfaceWithKnots_UDirectionConstraints: @staticmethod def __call__(self): - umultiplicities = getattr(self, 'UMultiplicities', INDETERMINATE) - uknots = getattr(self, 'UKnots', INDETERMINATE) - knotuupper = getattr(self, 'KnotUUpper', INDETERMINATE) - assert IfcConstraintsParamBSpline(getattr(self, 'UDegree', INDETERMINATE), knotuupper, getattr(self, 'UUpper', INDETERMINATE), umultiplicities, uknots) is not False + umultiplicities = express_getattr(self, 'UMultiplicities', INDETERMINATE) + uknots = express_getattr(self, 'UKnots', INDETERMINATE) + knotuupper = express_getattr(self, 'KnotUUpper', INDETERMINATE) + assert IfcConstraintsParamBSpline(express_getattr(self, 'UDegree', INDETERMINATE), knotuupper, express_getattr(self, 'UUpper', INDETERMINATE), umultiplicities, uknots) is not False class IfcBSplineSurfaceWithKnots_VDirectionConstraints: SCOPE = 'entity' @@ -5974,17 +5984,17 @@ class IfcBSplineSurfaceWithKnots_VDirectionConstraints: @staticmethod def __call__(self): - vmultiplicities = getattr(self, 'VMultiplicities', INDETERMINATE) - vknots = getattr(self, 'VKnots', INDETERMINATE) - knotvupper = getattr(self, 'KnotVUpper', INDETERMINATE) - assert IfcConstraintsParamBSpline(getattr(self, 'VDegree', INDETERMINATE), knotvupper, getattr(self, 'VUpper', INDETERMINATE), vmultiplicities, vknots) is not False + vmultiplicities = express_getattr(self, 'VMultiplicities', INDETERMINATE) + vknots = express_getattr(self, 'VKnots', INDETERMINATE) + knotvupper = express_getattr(self, 'KnotVUpper', INDETERMINATE) + assert IfcConstraintsParamBSpline(express_getattr(self, 'VDegree', INDETERMINATE), knotvupper, express_getattr(self, 'VUpper', INDETERMINATE), vmultiplicities, vknots) is not False def calc_IfcBSplineSurfaceWithKnots_KnotVUpper(self): - vknots = getattr(self, 'VKnots', INDETERMINATE) + vknots = express_getattr(self, 'VKnots', INDETERMINATE) return sizeof(vknots) def calc_IfcBSplineSurfaceWithKnots_KnotUUpper(self): - uknots = getattr(self, 'UKnots', INDETERMINATE) + uknots = express_getattr(self, 'UKnots', INDETERMINATE) return sizeof(uknots) class IfcBeam_CorrectPredefinedType: @@ -5994,8 +6004,8 @@ class IfcBeam_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBeam_CorrectTypeAssigned: SCOPE = 'entity' @@ -6004,8 +6014,8 @@ class IfcBeam_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcbeamtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcbeamtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBeamType_CorrectPredefinedType: SCOPE = 'entity' @@ -6014,8 +6024,8 @@ class IfcBeamType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBearing_CorrectPredefinedType: SCOPE = 'entity' @@ -6024,8 +6034,8 @@ class IfcBearing_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBearing_CorrectTypeAssigned: SCOPE = 'entity' @@ -6034,8 +6044,8 @@ class IfcBearing_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcbearingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcbearingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBearingType_CorrectPredefinedType: SCOPE = 'entity' @@ -6044,8 +6054,8 @@ class IfcBearingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBearingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBlobTexture_RasterCodeByteStream: SCOPE = 'entity' @@ -6054,7 +6064,7 @@ class IfcBlobTexture_RasterCodeByteStream: @staticmethod def __call__(self): - rastercode = getattr(self, 'RasterCode', INDETERMINATE) + rastercode = express_getattr(self, 'RasterCode', INDETERMINATE) assert (blength(rastercode) % 8 == 0) is not False class IfcBlobTexture_SupportedRasterFormat: @@ -6064,7 +6074,7 @@ class IfcBlobTexture_SupportedRasterFormat: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['bmp', 'jpg', 'gif', 'png']) is not False + assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['bmp', 'jpg', 'gif', 'png']) is not False class IfcBoiler_CorrectPredefinedType: SCOPE = 'entity' @@ -6073,8 +6083,8 @@ class IfcBoiler_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBoiler_CorrectTypeAssigned: SCOPE = 'entity' @@ -6083,8 +6093,8 @@ class IfcBoiler_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcboilertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcboilertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBoilerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6093,8 +6103,8 @@ class IfcBoilerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBoilerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBooleanClippingResult_FirstOperandType: SCOPE = 'entity' @@ -6103,7 +6113,7 @@ class IfcBooleanClippingResult_FirstOperandType: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) assert ('ifc4x3_tc1.ifcsweptareasolid' in typeof(firstoperand) or 'ifc4x3_tc1.ifcsweptdiscsolid' in typeof(firstoperand) or 'ifc4x3_tc1.ifcbooleanclippingresult' in typeof(firstoperand)) is not False class IfcBooleanClippingResult_OperatorType: @@ -6113,7 +6123,7 @@ class IfcBooleanClippingResult_OperatorType: @staticmethod def __call__(self): - operator = getattr(self, 'Operator', INDETERMINATE) + operator = express_getattr(self, 'Operator', INDETERMINATE) assert (operator == difference) is not False class IfcBooleanClippingResult_SecondOperandType: @@ -6123,7 +6133,7 @@ class IfcBooleanClippingResult_SecondOperandType: @staticmethod def __call__(self): - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) assert ('ifc4x3_tc1.ifchalfspacesolid' in typeof(secondoperand)) is not False class IfcBooleanResult_FirstOperandClosed: @@ -6133,8 +6143,8 @@ class IfcBooleanResult_FirstOperandClosed: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - assert (not 'ifc4x3_tc1.ifctessellatedfaceset' in typeof(firstoperand) or (exists(getattr(firstoperand, 'Closed', INDETERMINATE)) and getattr(firstoperand, 'Closed', INDETERMINATE))) is not False + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + assert (not 'ifc4x3_tc1.ifctessellatedfaceset' in typeof(firstoperand) or (exists(express_getattr(firstoperand, 'Closed', INDETERMINATE)) and express_getattr(firstoperand, 'Closed', INDETERMINATE))) is not False class IfcBooleanResult_SameDim: SCOPE = 'entity' @@ -6143,9 +6153,9 @@ class IfcBooleanResult_SameDim: @staticmethod def __call__(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) - assert (getattr(firstoperand, 'Dim', INDETERMINATE) == getattr(secondoperand, 'Dim', INDETERMINATE)) is not False + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) + assert (express_getattr(firstoperand, 'Dim', INDETERMINATE) == express_getattr(secondoperand, 'Dim', INDETERMINATE)) is not False class IfcBooleanResult_SecondOperandClosed: SCOPE = 'entity' @@ -6154,12 +6164,12 @@ class IfcBooleanResult_SecondOperandClosed: @staticmethod def __call__(self): - secondoperand = getattr(self, 'SecondOperand', INDETERMINATE) - assert (not 'ifc4x3_tc1.ifctessellatedfaceset' in typeof(secondoperand) or (exists(getattr(secondoperand, 'Closed', INDETERMINATE)) and getattr(secondoperand, 'Closed', INDETERMINATE))) is not False + secondoperand = express_getattr(self, 'SecondOperand', INDETERMINATE) + assert (not 'ifc4x3_tc1.ifctessellatedfaceset' in typeof(secondoperand) or (exists(express_getattr(secondoperand, 'Closed', INDETERMINATE)) and express_getattr(secondoperand, 'Closed', INDETERMINATE))) is not False def calc_IfcBooleanResult_Dim(self): - firstoperand = getattr(self, 'FirstOperand', INDETERMINATE) - return getattr(firstoperand, 'Dim', INDETERMINATE) + firstoperand = express_getattr(self, 'FirstOperand', INDETERMINATE) + return express_getattr(firstoperand, 'Dim', INDETERMINATE) class IfcBoundaryCurve_IsClosed: SCOPE = 'entity' @@ -6168,7 +6178,7 @@ class IfcBoundaryCurve_IsClosed: @staticmethod def __call__(self): - assert getattr(self, 'ClosedCurve', INDETERMINATE) is not False + assert express_getattr(self, 'ClosedCurve', INDETERMINATE) is not False def calc_IfcBoundingBox_Dim(self): return 3 @@ -6180,7 +6190,7 @@ class IfcBoxedHalfSpace_UnboundedSurface: @staticmethod def __call__(self): - assert (not 'ifc4x3_tc1.ifccurveboundedplane' in typeof(getattr(self, 'BaseSurface', INDETERMINATE))) is not False + assert (not 'ifc4x3_tc1.ifccurveboundedplane' in typeof(express_getattr(self, 'BaseSurface', INDETERMINATE))) is not False class IfcBridge_CorrectPredefinedType: SCOPE = 'entity' @@ -6189,8 +6199,8 @@ class IfcBridge_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBridgeTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBridgePart_CorrectPredefinedType: SCOPE = 'entity' @@ -6199,8 +6209,8 @@ class IfcBridgePart_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBridgePartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuildingElementPart_CorrectPredefinedType: SCOPE = 'entity' @@ -6209,8 +6219,8 @@ class IfcBuildingElementPart_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuildingElementPart_CorrectTypeAssigned: SCOPE = 'entity' @@ -6219,8 +6229,8 @@ class IfcBuildingElementPart_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcbuildingelementparttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcbuildingelementparttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBuildingElementPartType_CorrectPredefinedType: SCOPE = 'entity' @@ -6229,8 +6239,8 @@ class IfcBuildingElementPartType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBuildingElementProxy_CorrectPredefinedType: SCOPE = 'entity' @@ -6239,8 +6249,8 @@ class IfcBuildingElementProxy_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuildingElementProxy_CorrectTypeAssigned: SCOPE = 'entity' @@ -6249,8 +6259,8 @@ class IfcBuildingElementProxy_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcbuildingelementproxytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcbuildingelementproxytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBuildingElementProxy_HasObjectName: SCOPE = 'entity' @@ -6259,7 +6269,7 @@ class IfcBuildingElementProxy_HasObjectName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcBuildingElementProxyType_CorrectPredefinedType: SCOPE = 'entity' @@ -6268,8 +6278,8 @@ class IfcBuildingElementProxyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingElementProxyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcBuildingSystem_CorrectPredefinedType: SCOPE = 'entity' @@ -6278,8 +6288,8 @@ class IfcBuildingSystem_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuildingSystemTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBuiltElement_MaxOneMaterialAssociation: SCOPE = 'entity' @@ -6288,7 +6298,7 @@ class IfcBuiltElement_MaxOneMaterialAssociation: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'HasAssociations', INDETERMINATE) if 'ifc4x3_tc1.ifcrelassociatesmaterial' in typeof(temp)]) <= 1) is not False + assert (sizeof([temp for temp in express_getattr(self, 'HasAssociations', INDETERMINATE) if 'ifc4x3_tc1.ifcrelassociatesmaterial' in typeof(temp)]) <= 1) is not False class IfcBuiltSystem_CorrectPredefinedType: SCOPE = 'entity' @@ -6297,8 +6307,8 @@ class IfcBuiltSystem_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBuiltSystemTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBurner_CorrectPredefinedType: SCOPE = 'entity' @@ -6307,8 +6317,8 @@ class IfcBurner_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcBurner_CorrectTypeAssigned: SCOPE = 'entity' @@ -6317,8 +6327,8 @@ class IfcBurner_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcburnertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcburnertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcBurnerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6327,8 +6337,8 @@ class IfcBurnerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcBurnerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCShapeProfileDef_ValidGirth: SCOPE = 'entity' @@ -6337,8 +6347,8 @@ class IfcCShapeProfileDef_ValidGirth: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - girth = getattr(self, 'Girth', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + girth = express_getattr(self, 'Girth', INDETERMINATE) assert (girth < depth / 2.0) is not False class IfcCShapeProfileDef_ValidInternalFilletRadius: @@ -6348,10 +6358,10 @@ class IfcCShapeProfileDef_ValidInternalFilletRadius: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - internalfilletradius = getattr(self, 'InternalFilletRadius', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + internalfilletradius = express_getattr(self, 'InternalFilletRadius', INDETERMINATE) assert (not exists(internalfilletradius) or (internalfilletradius <= width / 2.0 - wallthickness and internalfilletradius <= depth / 2.0 - wallthickness)) is not False class IfcCShapeProfileDef_ValidWallThickness: @@ -6361,9 +6371,9 @@ class IfcCShapeProfileDef_ValidWallThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) assert (wallthickness < width / 2.0 and wallthickness < depth / 2.0) is not False class IfcCableCarrierFitting_CorrectPredefinedType: @@ -6373,8 +6383,8 @@ class IfcCableCarrierFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableCarrierFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -6383,8 +6393,8 @@ class IfcCableCarrierFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccablecarrierfittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccablecarrierfittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableCarrierFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -6393,8 +6403,8 @@ class IfcCableCarrierFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableCarrierSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -6403,8 +6413,8 @@ class IfcCableCarrierSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableCarrierSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -6413,8 +6423,8 @@ class IfcCableCarrierSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccablecarriersegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccablecarriersegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableCarrierSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -6423,8 +6433,8 @@ class IfcCableCarrierSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableCarrierSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -6433,8 +6443,8 @@ class IfcCableFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -6443,8 +6453,8 @@ class IfcCableFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccablefittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccablefittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -6453,8 +6463,8 @@ class IfcCableFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCableSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -6463,8 +6473,8 @@ class IfcCableSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCableSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -6473,8 +6483,8 @@ class IfcCableSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccablesegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccablesegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCableSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -6483,8 +6493,8 @@ class IfcCableSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCableSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCaissonFoundation_CorrectPredefinedType: SCOPE = 'entity' @@ -6493,8 +6503,8 @@ class IfcCaissonFoundation_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCaissonFoundation_CorrectTypeAssigned: SCOPE = 'entity' @@ -6503,8 +6513,8 @@ class IfcCaissonFoundation_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccaissonfoundationtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccaissonfoundationtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCaissonFoundationType_CorrectPredefinedType: SCOPE = 'entity' @@ -6513,8 +6523,8 @@ class IfcCaissonFoundationType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCaissonFoundationTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCartesianPoint_CP2Dor3D: SCOPE = 'entity' @@ -6523,7 +6533,7 @@ class IfcCartesianPoint_CP2Dor3D: @staticmethod def __call__(self): - coordinates = getattr(self, 'Coordinates', INDETERMINATE) + coordinates = express_getattr(self, 'Coordinates', INDETERMINATE) assert (hiindex(coordinates) >= 2) is not False def calc_IfcCartesianPointList_Dim(self): @@ -6536,16 +6546,16 @@ class IfcCartesianTransformationOperator_ScaleGreaterZero: @staticmethod def __call__(self): - scl = getattr(self, 'Scl', INDETERMINATE) + scl = express_getattr(self, 'Scl', INDETERMINATE) assert (scl > 0.0) is not False def calc_IfcCartesianTransformationOperator_Scl(self): - scale = getattr(self, 'Scale', INDETERMINATE) + scale = express_getattr(self, 'Scale', INDETERMINATE) return nvl(scale, 1.0) def calc_IfcCartesianTransformationOperator_Dim(self): - localorigin = getattr(self, 'LocalOrigin', INDETERMINATE) - return getattr(localorigin, 'Dim', INDETERMINATE) + localorigin = express_getattr(self, 'LocalOrigin', INDETERMINATE) + return express_getattr(localorigin, 'Dim', INDETERMINATE) class IfcCartesianTransformationOperator2D_Axis1Is2D: SCOPE = 'entity' @@ -6554,7 +6564,7 @@ class IfcCartesianTransformationOperator2D_Axis1Is2D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis1', INDETERMINATE)) or getattr(getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (not exists(express_getattr(self, 'Axis1', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False class IfcCartesianTransformationOperator2D_Axis2Is2D: SCOPE = 'entity' @@ -6563,7 +6573,7 @@ class IfcCartesianTransformationOperator2D_Axis2Is2D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis2', INDETERMINATE)) or getattr(getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False + assert (not exists(express_getattr(self, 'Axis2', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 2) is not False class IfcCartesianTransformationOperator2D_DimEqual2: SCOPE = 'entity' @@ -6572,10 +6582,10 @@ class IfcCartesianTransformationOperator2D_DimEqual2: @staticmethod def __call__(self): - assert (getattr(self, 'Dim', INDETERMINATE) == 2) is not False + assert (express_getattr(self, 'Dim', INDETERMINATE) == 2) is not False def calc_IfcCartesianTransformationOperator2D_U(self): - return IfcBaseAxis(2, getattr(self, 'Axis1', INDETERMINATE), getattr(self, 'Axis2', INDETERMINATE), None) + return IfcBaseAxis(2, express_getattr(self, 'Axis1', INDETERMINATE), express_getattr(self, 'Axis2', INDETERMINATE), None) class IfcCartesianTransformationOperator2DnonUniform_Scale2GreaterZero: SCOPE = 'entity' @@ -6584,12 +6594,12 @@ class IfcCartesianTransformationOperator2DnonUniform_Scale2GreaterZero: @staticmethod def __call__(self): - scl2 = getattr(self, 'Scl2', INDETERMINATE) + scl2 = express_getattr(self, 'Scl2', INDETERMINATE) assert (scl2 > 0.0) is not False def calc_IfcCartesianTransformationOperator2DnonUniform_Scl2(self): - scale2 = getattr(self, 'Scale2', INDETERMINATE) - return nvl(scale2, getattr(self, 'Scl', INDETERMINATE)) + scale2 = express_getattr(self, 'Scale2', INDETERMINATE) + return nvl(scale2, express_getattr(self, 'Scl', INDETERMINATE)) class IfcCartesianTransformationOperator3D_Axis1Is3D: SCOPE = 'entity' @@ -6598,7 +6608,7 @@ class IfcCartesianTransformationOperator3D_Axis1Is3D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis1', INDETERMINATE)) or getattr(getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (not exists(express_getattr(self, 'Axis1', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis1', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_Axis2Is3D: SCOPE = 'entity' @@ -6607,7 +6617,7 @@ class IfcCartesianTransformationOperator3D_Axis2Is3D: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Axis2', INDETERMINATE)) or getattr(getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False + assert (not exists(express_getattr(self, 'Axis2', INDETERMINATE)) or express_getattr(express_getattr(self, 'Axis2', INDETERMINATE), 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_Axis3Is3D: SCOPE = 'entity' @@ -6616,8 +6626,8 @@ class IfcCartesianTransformationOperator3D_Axis3Is3D: @staticmethod def __call__(self): - axis3 = getattr(self, 'Axis3', INDETERMINATE) - assert (not exists(axis3) or getattr(axis3, 'Dim', INDETERMINATE) == 3) is not False + axis3 = express_getattr(self, 'Axis3', INDETERMINATE) + assert (not exists(axis3) or express_getattr(axis3, 'Dim', INDETERMINATE) == 3) is not False class IfcCartesianTransformationOperator3D_DimIs3D: SCOPE = 'entity' @@ -6626,11 +6636,11 @@ class IfcCartesianTransformationOperator3D_DimIs3D: @staticmethod def __call__(self): - assert (getattr(self, 'Dim', INDETERMINATE) == 3) is not False + assert (express_getattr(self, 'Dim', INDETERMINATE) == 3) is not False def calc_IfcCartesianTransformationOperator3D_U(self): - axis3 = getattr(self, 'Axis3', INDETERMINATE) - return IfcBaseAxis(3, getattr(self, 'Axis1', INDETERMINATE), getattr(self, 'Axis2', INDETERMINATE), axis3) + axis3 = express_getattr(self, 'Axis3', INDETERMINATE) + return IfcBaseAxis(3, express_getattr(self, 'Axis1', INDETERMINATE), express_getattr(self, 'Axis2', INDETERMINATE), axis3) class IfcCartesianTransformationOperator3DnonUniform_Scale2GreaterZero: SCOPE = 'entity' @@ -6639,7 +6649,7 @@ class IfcCartesianTransformationOperator3DnonUniform_Scale2GreaterZero: @staticmethod def __call__(self): - scl2 = getattr(self, 'Scl2', INDETERMINATE) + scl2 = express_getattr(self, 'Scl2', INDETERMINATE) assert (scl2 > 0.0) is not False class IfcCartesianTransformationOperator3DnonUniform_Scale3GreaterZero: @@ -6649,16 +6659,16 @@ class IfcCartesianTransformationOperator3DnonUniform_Scale3GreaterZero: @staticmethod def __call__(self): - scl3 = getattr(self, 'Scl3', INDETERMINATE) + scl3 = express_getattr(self, 'Scl3', INDETERMINATE) assert (scl3 > 0.0) is not False def calc_IfcCartesianTransformationOperator3DnonUniform_Scl2(self): - scale2 = getattr(self, 'Scale2', INDETERMINATE) - return nvl(scale2, getattr(self, 'Scl', INDETERMINATE)) + scale2 = express_getattr(self, 'Scale2', INDETERMINATE) + return nvl(scale2, express_getattr(self, 'Scl', INDETERMINATE)) def calc_IfcCartesianTransformationOperator3DnonUniform_Scl3(self): - scale3 = getattr(self, 'Scale3', INDETERMINATE) - return nvl(scale3, getattr(self, 'Scl', INDETERMINATE)) + scale3 = express_getattr(self, 'Scale3', INDETERMINATE) + return nvl(scale3, express_getattr(self, 'Scl', INDETERMINATE)) class IfcChiller_CorrectPredefinedType: SCOPE = 'entity' @@ -6667,8 +6677,8 @@ class IfcChiller_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcChiller_CorrectTypeAssigned: SCOPE = 'entity' @@ -6677,8 +6687,8 @@ class IfcChiller_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcchillertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcchillertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcChillerType_CorrectPredefinedType: SCOPE = 'entity' @@ -6687,8 +6697,8 @@ class IfcChillerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChillerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcChimney_CorrectPredefinedType: SCOPE = 'entity' @@ -6697,8 +6707,8 @@ class IfcChimney_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcChimney_CorrectTypeAssigned: SCOPE = 'entity' @@ -6707,8 +6717,8 @@ class IfcChimney_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcchimneytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcchimneytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcChimneyType_CorrectPredefinedType: SCOPE = 'entity' @@ -6717,8 +6727,8 @@ class IfcChimneyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcChimneyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCircleHollowProfileDef_WR1: SCOPE = 'entity' @@ -6727,8 +6737,8 @@ class IfcCircleHollowProfileDef_WR1: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - assert (wallthickness < getattr(self, 'Radius', INDETERMINATE)) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + assert (wallthickness < express_getattr(self, 'Radius', INDETERMINATE)) is not False class IfcCoil_CorrectPredefinedType: SCOPE = 'entity' @@ -6737,8 +6747,8 @@ class IfcCoil_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCoil_CorrectTypeAssigned: SCOPE = 'entity' @@ -6747,8 +6757,8 @@ class IfcCoil_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccoiltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccoiltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoilType_CorrectPredefinedType: SCOPE = 'entity' @@ -6757,8 +6767,8 @@ class IfcCoilType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcColumn_CorrectPredefinedType: SCOPE = 'entity' @@ -6767,8 +6777,8 @@ class IfcColumn_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcColumn_CorrectTypeAssigned: SCOPE = 'entity' @@ -6777,8 +6787,8 @@ class IfcColumn_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccolumntype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccolumntype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcColumnType_CorrectPredefinedType: SCOPE = 'entity' @@ -6787,8 +6797,8 @@ class IfcColumnType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcColumnTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCommunicationsAppliance_CorrectPredefinedType: SCOPE = 'entity' @@ -6797,8 +6807,8 @@ class IfcCommunicationsAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCommunicationsAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -6807,8 +6817,8 @@ class IfcCommunicationsAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccommunicationsappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccommunicationsappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCommunicationsApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -6817,8 +6827,8 @@ class IfcCommunicationsApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcComplexProperty_WR21: SCOPE = 'entity' @@ -6827,7 +6837,7 @@ class IfcComplexProperty_WR21: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert (sizeof([temp for temp in hasproperties if self == temp]) == 0) is not False class IfcComplexProperty_WR22: @@ -6837,7 +6847,7 @@ class IfcComplexProperty_WR22: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert IfcUniquePropertyName(hasproperties) is not False class IfcComplexPropertyTemplate_NoSelfReference: @@ -6847,7 +6857,7 @@ class IfcComplexPropertyTemplate_NoSelfReference: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert (sizeof([temp for temp in haspropertytemplates if self == temp]) == 0) is not False class IfcComplexPropertyTemplate_UniquePropertyNames: @@ -6857,7 +6867,7 @@ class IfcComplexPropertyTemplate_UniquePropertyNames: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert IfcUniquePropertyTemplateNames(haspropertytemplates) is not False class IfcCompositeCurve_CurveContinuous: @@ -6867,9 +6877,9 @@ class IfcCompositeCurve_CurveContinuous: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) - closedcurve = getattr(self, 'ClosedCurve', INDETERMINATE) - assert (not closedcurve and sizeof([temp for temp in segments if getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 1 or (closedcurve and sizeof([temp for temp in segments if getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 0)) is not False + segments = express_getattr(self, 'Segments', INDETERMINATE) + closedcurve = express_getattr(self, 'ClosedCurve', INDETERMINATE) + assert (not closedcurve and sizeof([temp for temp in segments if express_getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 1 or (closedcurve and sizeof([temp for temp in segments if express_getattr(temp, 'Transition', INDETERMINATE) == discontinuous]) == 0)) is not False class IfcCompositeCurve_SameDim: SCOPE = 'entity' @@ -6878,17 +6888,17 @@ class IfcCompositeCurve_SameDim: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) - assert (sizeof([temp for temp in segments if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(segments, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + segments = express_getattr(self, 'Segments', INDETERMINATE) + assert (sizeof([temp for temp in segments if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(segments, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcCompositeCurve_NSegments(self): - segments = getattr(self, 'Segments', INDETERMINATE) + segments = express_getattr(self, 'Segments', INDETERMINATE) return sizeof(segments) def calc_IfcCompositeCurve_ClosedCurve(self): - segments = getattr(self, 'Segments', INDETERMINATE) - nsegments = getattr(self, 'NSegments', INDETERMINATE) - return getattr(express_getitem(segments, nsegments - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Transition', INDETERMINATE) != discontinuous + segments = express_getattr(self, 'Segments', INDETERMINATE) + nsegments = express_getattr(self, 'NSegments', INDETERMINATE) + return express_getattr(express_getitem(segments, nsegments - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Transition', INDETERMINATE) != discontinuous class IfcCompositeCurveOnSurface_SameSurface: SCOPE = 'entity' @@ -6897,7 +6907,7 @@ class IfcCompositeCurveOnSurface_SameSurface: @staticmethod def __call__(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) assert (sizeof(basissurface) > 0) is not False def calc_IfcCompositeCurveOnSurface_BasisSurface(self): @@ -6910,7 +6920,7 @@ class IfcCompositeCurveSegment_ParentIsBoundedCurve: @staticmethod def __call__(self): - parentcurve = getattr(self, 'ParentCurve', INDETERMINATE) + parentcurve = express_getattr(self, 'ParentCurve', INDETERMINATE) assert ('ifc4x3_tc1.ifcboundedcurve' in typeof(parentcurve)) is not False class IfcCompositeProfileDef_InvariantProfileType: @@ -6920,8 +6930,8 @@ class IfcCompositeProfileDef_InvariantProfileType: @staticmethod def __call__(self): - profiles = getattr(self, 'Profiles', INDETERMINATE) - assert (sizeof([temp for temp in profiles if getattr(temp, 'ProfileType', INDETERMINATE) != getattr(express_getitem(profiles, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE)]) == 0) is not False + profiles = express_getattr(self, 'Profiles', INDETERMINATE) + assert (sizeof([temp for temp in profiles if express_getattr(temp, 'ProfileType', INDETERMINATE) != express_getattr(express_getitem(profiles, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcCompositeProfileDef_NoRecursion: SCOPE = 'entity' @@ -6930,7 +6940,7 @@ class IfcCompositeProfileDef_NoRecursion: @staticmethod def __call__(self): - profiles = getattr(self, 'Profiles', INDETERMINATE) + profiles = express_getattr(self, 'Profiles', INDETERMINATE) assert (sizeof([temp for temp in profiles if 'ifc4x3_tc1.ifccompositeprofiledef' in typeof(temp)]) == 0) is not False class IfcCompressor_CorrectPredefinedType: @@ -6940,8 +6950,8 @@ class IfcCompressor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCompressor_CorrectTypeAssigned: SCOPE = 'entity' @@ -6950,8 +6960,8 @@ class IfcCompressor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccompressortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccompressortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCompressorType_CorrectPredefinedType: SCOPE = 'entity' @@ -6960,8 +6970,8 @@ class IfcCompressorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCompressorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCondenser_CorrectPredefinedType: SCOPE = 'entity' @@ -6970,8 +6980,8 @@ class IfcCondenser_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCondenser_CorrectTypeAssigned: SCOPE = 'entity' @@ -6980,8 +6990,8 @@ class IfcCondenser_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccondensertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccondensertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCondenserType_CorrectPredefinedType: SCOPE = 'entity' @@ -6990,8 +7000,8 @@ class IfcCondenserType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCondenserTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcConstraint_WR11: SCOPE = 'entity' @@ -7000,8 +7010,8 @@ class IfcConstraint_WR11: @staticmethod def __call__(self): - constraintgrade = getattr(self, 'ConstraintGrade', INDETERMINATE) - assert (constraintgrade != getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) or (constraintgrade == getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedGrade', INDETERMINATE)))) is not False + constraintgrade = express_getattr(self, 'ConstraintGrade', INDETERMINATE) + assert (constraintgrade != express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) or (constraintgrade == express_getattr(IfcConstraintEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedGrade', INDETERMINATE)))) is not False class IfcConstructionEquipmentResource_CorrectPredefinedType: SCOPE = 'entity' @@ -7010,8 +7020,8 @@ class IfcConstructionEquipmentResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionEquipmentResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7020,8 +7030,8 @@ class IfcConstructionEquipmentResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionEquipmentResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcConstructionMaterialResource_CorrectPredefinedType: SCOPE = 'entity' @@ -7030,8 +7040,8 @@ class IfcConstructionMaterialResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionMaterialResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7040,8 +7050,8 @@ class IfcConstructionMaterialResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionMaterialResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcConstructionProductResource_CorrectPredefinedType: SCOPE = 'entity' @@ -7050,8 +7060,8 @@ class IfcConstructionProductResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConstructionProductResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7060,8 +7070,8 @@ class IfcConstructionProductResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConstructionProductResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcController_CorrectPredefinedType: SCOPE = 'entity' @@ -7070,8 +7080,8 @@ class IfcController_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcController_CorrectTypeAssigned: SCOPE = 'entity' @@ -7080,8 +7090,8 @@ class IfcController_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccontrollertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccontrollertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcControllerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7090,8 +7100,8 @@ class IfcControllerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcControllerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcConveyorSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -7100,8 +7110,8 @@ class IfcConveyorSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcConveyorSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -7110,8 +7120,8 @@ class IfcConveyorSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcconveyorsegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcconveyorsegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcConveyorSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -7120,8 +7130,8 @@ class IfcConveyorSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcConveyorSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCooledBeam_CorrectPredefinedType: SCOPE = 'entity' @@ -7130,8 +7140,8 @@ class IfcCooledBeam_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCooledBeam_CorrectTypeAssigned: SCOPE = 'entity' @@ -7140,8 +7150,8 @@ class IfcCooledBeam_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccooledbeamtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccooledbeamtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCooledBeamType_CorrectPredefinedType: SCOPE = 'entity' @@ -7150,8 +7160,8 @@ class IfcCooledBeamType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCooledBeamTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCoolingTower_CorrectPredefinedType: SCOPE = 'entity' @@ -7160,8 +7170,8 @@ class IfcCoolingTower_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCoolingTower_CorrectTypeAssigned: SCOPE = 'entity' @@ -7170,8 +7180,8 @@ class IfcCoolingTower_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccoolingtowertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccoolingtowertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoolingTowerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7180,8 +7190,8 @@ class IfcCoolingTowerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoolingTowerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCourse_CorrectPredefinedType: SCOPE = 'entity' @@ -7190,8 +7200,8 @@ class IfcCourse_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCourse_CorrectTypeAssigned: SCOPE = 'entity' @@ -7200,8 +7210,8 @@ class IfcCourse_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccoursetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccoursetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCourseType_CorrectPredefinedType: SCOPE = 'entity' @@ -7210,8 +7220,8 @@ class IfcCourseType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCourseTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCovering_CorrectPredefinedType: SCOPE = 'entity' @@ -7220,8 +7230,8 @@ class IfcCovering_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCovering_CorrectTypeAssigned: SCOPE = 'entity' @@ -7230,8 +7240,8 @@ class IfcCovering_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccoveringtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccoveringtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCoveringType_CorrectPredefinedType: SCOPE = 'entity' @@ -7240,8 +7250,8 @@ class IfcCoveringType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCoveringTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcCrewResource_CorrectPredefinedType: SCOPE = 'entity' @@ -7250,8 +7260,8 @@ class IfcCrewResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCrewResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7260,8 +7270,8 @@ class IfcCrewResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCrewResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False def calc_IfcCsgPrimitive3D_Dim(self): return 3 @@ -7273,8 +7283,8 @@ class IfcCurtainWall_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcCurtainWall_CorrectTypeAssigned: SCOPE = 'entity' @@ -7283,8 +7293,8 @@ class IfcCurtainWall_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccurtainwalltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifccurtainwalltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcCurtainWallType_CorrectPredefinedType: SCOPE = 'entity' @@ -7293,8 +7303,8 @@ class IfcCurtainWallType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcCurtainWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcCurve_Dim(self): return IfcCurveDim(self) @@ -7306,9 +7316,9 @@ class IfcCurveStyle_IdentifiableCurveStyle: @staticmethod def __call__(self): - curvefont = getattr(self, 'CurveFont', INDETERMINATE) - curvewidth = getattr(self, 'CurveWidth', INDETERMINATE) - curvecolour = getattr(self, 'CurveColour', INDETERMINATE) + curvefont = express_getattr(self, 'CurveFont', INDETERMINATE) + curvewidth = express_getattr(self, 'CurveWidth', INDETERMINATE) + curvecolour = express_getattr(self, 'CurveColour', INDETERMINATE) assert (exists(curvefont) or exists(curvewidth) or exists(curvecolour)) is not False class IfcCurveStyle_MeasureOfWidth: @@ -7318,7 +7328,7 @@ class IfcCurveStyle_MeasureOfWidth: @staticmethod def __call__(self): - curvewidth = getattr(self, 'CurveWidth', INDETERMINATE) + curvewidth = express_getattr(self, 'CurveWidth', INDETERMINATE) assert (not exists(curvewidth) or 'ifc4x3_tc1.ifcpositivelengthmeasure' in typeof(curvewidth) or ('ifc4x3_tc1.ifcdescriptivemeasure' in typeof(curvewidth) and curvewidth == 'bylayer')) is not False class IfcCurveStyleFontPattern_VisibleLengthGreaterEqualZero: @@ -7328,7 +7338,7 @@ class IfcCurveStyleFontPattern_VisibleLengthGreaterEqualZero: @staticmethod def __call__(self): - visiblesegmentlength = getattr(self, 'VisibleSegmentLength', INDETERMINATE) + visiblesegmentlength = express_getattr(self, 'VisibleSegmentLength', INDETERMINATE) assert (visiblesegmentlength >= 0.0) is not False class IfcDamper_CorrectPredefinedType: @@ -7338,8 +7348,8 @@ class IfcDamper_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDamper_CorrectTypeAssigned: SCOPE = 'entity' @@ -7348,8 +7358,8 @@ class IfcDamper_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcdampertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcdampertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDamperType_CorrectPredefinedType: SCOPE = 'entity' @@ -7358,8 +7368,8 @@ class IfcDamperType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDeepFoundation_CorrectTypeAssigned: SCOPE = 'entity' @@ -7368,8 +7378,8 @@ class IfcDeepFoundation_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcdeepfoundationtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcdeepfoundationtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDerivedProfileDef_InvariantProfileType: SCOPE = 'entity' @@ -7378,8 +7388,8 @@ class IfcDerivedProfileDef_InvariantProfileType: @staticmethod def __call__(self): - parentprofile = getattr(self, 'ParentProfile', INDETERMINATE) - assert (getattr(self, 'ProfileType', INDETERMINATE) == getattr(parentprofile, 'ProfileType', INDETERMINATE)) is not False + parentprofile = express_getattr(self, 'ParentProfile', INDETERMINATE) + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(parentprofile, 'ProfileType', INDETERMINATE)) is not False class IfcDerivedUnit_WR1: SCOPE = 'entity' @@ -7388,8 +7398,8 @@ class IfcDerivedUnit_WR1: @staticmethod def __call__(self): - elements = getattr(self, 'Elements', INDETERMINATE) - assert (sizeof(elements) > 1 or (sizeof(elements) == 1 and getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) != 1)) is not False + elements = express_getattr(self, 'Elements', INDETERMINATE) + assert (sizeof(elements) > 1 or (sizeof(elements) == 1 and express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) != 1)) is not False class IfcDerivedUnit_WR2: SCOPE = 'entity' @@ -7398,11 +7408,11 @@ class IfcDerivedUnit_WR2: @staticmethod def __call__(self): - unittype = getattr(self, 'UnitType', INDETERMINATE) - assert (unittype != getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) or (unittype == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedType', INDETERMINATE)))) is not False + unittype = express_getattr(self, 'UnitType', INDETERMINATE) + assert (unittype != express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) or (unittype == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedType', INDETERMINATE)))) is not False def calc_IfcDerivedUnit_Dimensions(self): - elements = getattr(self, 'Elements', INDETERMINATE) + elements = express_getattr(self, 'Elements', INDETERMINATE) return IfcDeriveDimensionalExponents(elements) class IfcDirection_MagnitudeGreaterZero: @@ -7412,11 +7422,11 @@ class IfcDirection_MagnitudeGreaterZero: @staticmethod def __call__(self): - directionratios = getattr(self, 'DirectionRatios', INDETERMINATE) + directionratios = express_getattr(self, 'DirectionRatios', INDETERMINATE) assert (sizeof([tmp for tmp in directionratios if tmp != 0.0]) > 0) is not False def calc_IfcDirection_Dim(self): - directionratios = getattr(self, 'DirectionRatios', INDETERMINATE) + directionratios = express_getattr(self, 'DirectionRatios', INDETERMINATE) return hiindex(directionratios) class IfcDirectrixCurveSweptAreaSolid_DirectrixBounded: @@ -7426,9 +7436,9 @@ class IfcDirectrixCurveSweptAreaSolid_DirectrixBounded: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - startparam = getattr(self, 'StartParam', INDETERMINATE) - endparam = getattr(self, 'EndParam', INDETERMINATE) + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + startparam = express_getattr(self, 'StartParam', INDETERMINATE) + endparam = express_getattr(self, 'EndParam', INDETERMINATE) assert (exists(startparam) and exists(endparam) or sizeof(['ifc4x3_tc1.ifcconic', 'ifc4x3_tc1.ifcboundedcurve'] * typeof(directrix)) == 1) is not False class IfcDiscreteAccessory_CorrectPredefinedType: @@ -7438,8 +7448,8 @@ class IfcDiscreteAccessory_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDiscreteAccessory_CorrectTypeAssigned: SCOPE = 'entity' @@ -7448,8 +7458,8 @@ class IfcDiscreteAccessory_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcdiscreteaccessorytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcdiscreteaccessorytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDiscreteAccessoryType_CorrectPredefinedType: SCOPE = 'entity' @@ -7458,8 +7468,8 @@ class IfcDiscreteAccessoryType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDiscreteAccessoryTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDistributionBoard_CorrectPredefinedType: SCOPE = 'entity' @@ -7468,8 +7478,8 @@ class IfcDistributionBoard_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDistributionBoard_CorrectTypeAssigned: SCOPE = 'entity' @@ -7478,8 +7488,8 @@ class IfcDistributionBoard_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcdistributionboardtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcdistributionboardtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDistributionBoardType_CorrectPredefinedType: SCOPE = 'entity' @@ -7488,8 +7498,8 @@ class IfcDistributionBoardType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDistributionChamberElement_CorrectPredefinedType: SCOPE = 'entity' @@ -7498,8 +7508,8 @@ class IfcDistributionChamberElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDistributionChamberElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -7508,8 +7518,8 @@ class IfcDistributionChamberElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcdistributionchamberelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcdistributionchamberelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDistributionChamberElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -7518,8 +7528,8 @@ class IfcDistributionChamberElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionChamberElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDistributionSystem_CorrectPredefinedType: SCOPE = 'entity' @@ -7528,8 +7538,8 @@ class IfcDistributionSystem_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDistributionSystemEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDocumentReference_WR1: SCOPE = 'entity' @@ -7538,8 +7548,8 @@ class IfcDocumentReference_WR1: @staticmethod def __call__(self): - name = getattr(self, 'Name', INDETERMINATE) - referenceddocument = getattr(self, 'ReferencedDocument', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) + referenceddocument = express_getattr(self, 'ReferencedDocument', INDETERMINATE) assert exists(name) ^ exists(referenceddocument) is not False class IfcDoor_CorrectPredefinedType: @@ -7549,8 +7559,8 @@ class IfcDoor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDoor_CorrectTypeAssigned: SCOPE = 'entity' @@ -7559,8 +7569,8 @@ class IfcDoor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcdoortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcdoortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDoorLiningProperties_WR31: SCOPE = 'entity' @@ -7569,8 +7579,8 @@ class IfcDoorLiningProperties_WR31: @staticmethod def __call__(self): - liningdepth = getattr(self, 'LiningDepth', INDETERMINATE) - liningthickness = getattr(self, 'LiningThickness', INDETERMINATE) + liningdepth = express_getattr(self, 'LiningDepth', INDETERMINATE) + liningthickness = express_getattr(self, 'LiningThickness', INDETERMINATE) assert (not (exists(liningdepth) and (not exists(liningthickness)))) is not False class IfcDoorLiningProperties_WR32: @@ -7580,8 +7590,8 @@ class IfcDoorLiningProperties_WR32: @staticmethod def __call__(self): - thresholddepth = getattr(self, 'ThresholdDepth', INDETERMINATE) - thresholdthickness = getattr(self, 'ThresholdThickness', INDETERMINATE) + thresholddepth = express_getattr(self, 'ThresholdDepth', INDETERMINATE) + thresholdthickness = express_getattr(self, 'ThresholdThickness', INDETERMINATE) assert (not (exists(thresholddepth) and (not exists(thresholdthickness)))) is not False class IfcDoorLiningProperties_WR33: @@ -7591,8 +7601,8 @@ class IfcDoorLiningProperties_WR33: @staticmethod def __call__(self): - transomthickness = getattr(self, 'TransomThickness', INDETERMINATE) - transomoffset = getattr(self, 'TransomOffset', INDETERMINATE) + transomthickness = express_getattr(self, 'TransomThickness', INDETERMINATE) + transomoffset = express_getattr(self, 'TransomOffset', INDETERMINATE) assert (exists(transomoffset) and exists(transomthickness)) ^ (not exists(transomoffset) and (not exists(transomthickness))) is not False class IfcDoorLiningProperties_WR34: @@ -7602,8 +7612,8 @@ class IfcDoorLiningProperties_WR34: @staticmethod def __call__(self): - casingthickness = getattr(self, 'CasingThickness', INDETERMINATE) - casingdepth = getattr(self, 'CasingDepth', INDETERMINATE) + casingthickness = express_getattr(self, 'CasingThickness', INDETERMINATE) + casingdepth = express_getattr(self, 'CasingDepth', INDETERMINATE) assert (exists(casingdepth) and exists(casingthickness)) ^ (not exists(casingdepth) and (not exists(casingthickness))) is not False class IfcDoorLiningProperties_WR35: @@ -7613,7 +7623,7 @@ class IfcDoorLiningProperties_WR35: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc4x3_tc1.ifcdoortype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc4x3_tc1.ifcdoortype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcDoorPanelProperties_ApplicableToType: SCOPE = 'entity' @@ -7622,7 +7632,7 @@ class IfcDoorPanelProperties_ApplicableToType: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc4x3_tc1.ifcdoortype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc4x3_tc1.ifcdoortype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcDoorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7631,8 +7641,8 @@ class IfcDoorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDoorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDraughtingPreDefinedColour_PreDefinedColourNames: SCOPE = 'entity' @@ -7641,7 +7651,7 @@ class IfcDraughtingPreDefinedColour_PreDefinedColourNames: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'bylayer']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'bylayer']) is not False class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: SCOPE = 'entity' @@ -7650,7 +7660,7 @@ class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: @staticmethod def __call__(self): - assert (getattr(getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chaindoubledash', 'dashed', 'dotted', 'bylayer']) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chaindoubledash', 'dashed', 'dotted', 'bylayer']) is not False class IfcDuctFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -7659,8 +7669,8 @@ class IfcDuctFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -7669,8 +7679,8 @@ class IfcDuctFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcductfittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcductfittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -7679,8 +7689,8 @@ class IfcDuctFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDuctSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -7689,8 +7699,8 @@ class IfcDuctSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -7699,8 +7709,8 @@ class IfcDuctSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcductsegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcductsegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -7709,8 +7719,8 @@ class IfcDuctSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcDuctSilencer_CorrectPredefinedType: SCOPE = 'entity' @@ -7719,8 +7729,8 @@ class IfcDuctSilencer_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcDuctSilencer_CorrectTypeAssigned: SCOPE = 'entity' @@ -7729,8 +7739,8 @@ class IfcDuctSilencer_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcductsilencertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcductsilencertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcDuctSilencerType_CorrectPredefinedType: SCOPE = 'entity' @@ -7739,8 +7749,8 @@ class IfcDuctSilencerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcDuctSilencerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEarthworksCut_CorrectPredefinedType: SCOPE = 'entity' @@ -7749,8 +7759,8 @@ class IfcEarthworksCut_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEarthworksCutTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEarthworksFill_CorrectPredefinedType: SCOPE = 'entity' @@ -7759,8 +7769,8 @@ class IfcEarthworksFill_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEarthworksFillTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEdgeLoop_IsClosed: SCOPE = 'entity' @@ -7769,9 +7779,9 @@ class IfcEdgeLoop_IsClosed: @staticmethod def __call__(self): - edgelist = getattr(self, 'EdgeList', INDETERMINATE) - ne = getattr(self, 'Ne', INDETERMINATE) - assert (getattr(express_getitem(edgelist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) == getattr(express_getitem(edgelist, ne - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE)) is not False + edgelist = express_getattr(self, 'EdgeList', INDETERMINATE) + ne = express_getattr(self, 'Ne', INDETERMINATE) + assert (express_getattr(express_getitem(edgelist, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) == express_getattr(express_getitem(edgelist, ne - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE)) is not False class IfcEdgeLoop_IsContinuous: SCOPE = 'entity' @@ -7783,7 +7793,7 @@ class IfcEdgeLoop_IsContinuous: assert IfcLoopHeadToTail(self) is not False def calc_IfcEdgeLoop_Ne(self): - edgelist = getattr(self, 'EdgeList', INDETERMINATE) + edgelist = express_getattr(self, 'EdgeList', INDETERMINATE) return sizeof(edgelist) class IfcElectricAppliance_CorrectPredefinedType: @@ -7793,8 +7803,8 @@ class IfcElectricAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -7803,8 +7813,8 @@ class IfcElectricAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcelectricappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcelectricappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7813,8 +7823,8 @@ class IfcElectricApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricDistributionBoard_CorrectPredefinedType: SCOPE = 'entity' @@ -7823,8 +7833,8 @@ class IfcElectricDistributionBoard_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricDistributionBoard_CorrectTypeAssigned: SCOPE = 'entity' @@ -7833,8 +7843,8 @@ class IfcElectricDistributionBoard_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcelectricdistributionboardtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcelectricdistributionboardtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricDistributionBoardType_CorrectPredefinedType: SCOPE = 'entity' @@ -7843,8 +7853,8 @@ class IfcElectricDistributionBoardType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricDistributionBoardTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricFlowStorageDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -7853,8 +7863,8 @@ class IfcElectricFlowStorageDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricFlowStorageDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -7863,8 +7873,8 @@ class IfcElectricFlowStorageDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcelectricflowstoragedevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcelectricflowstoragedevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricFlowStorageDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7873,8 +7883,8 @@ class IfcElectricFlowStorageDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowStorageDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricFlowTreatmentDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -7883,8 +7893,8 @@ class IfcElectricFlowTreatmentDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricFlowTreatmentDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -7893,8 +7903,8 @@ class IfcElectricFlowTreatmentDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcelectricflowtreatmentdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcelectricflowtreatmentdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricFlowTreatmentDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -7903,8 +7913,8 @@ class IfcElectricFlowTreatmentDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricFlowTreatmentDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricGenerator_CorrectPredefinedType: SCOPE = 'entity' @@ -7913,8 +7923,8 @@ class IfcElectricGenerator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricGenerator_CorrectTypeAssigned: SCOPE = 'entity' @@ -7923,8 +7933,8 @@ class IfcElectricGenerator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcelectricgeneratortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcelectricgeneratortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricGeneratorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7933,8 +7943,8 @@ class IfcElectricGeneratorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricGeneratorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricMotor_CorrectPredefinedType: SCOPE = 'entity' @@ -7943,8 +7953,8 @@ class IfcElectricMotor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricMotor_CorrectTypeAssigned: SCOPE = 'entity' @@ -7953,8 +7963,8 @@ class IfcElectricMotor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcelectricmotortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcelectricmotortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricMotorType_CorrectPredefinedType: SCOPE = 'entity' @@ -7963,8 +7973,8 @@ class IfcElectricMotorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricMotorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElectricTimeControl_CorrectPredefinedType: SCOPE = 'entity' @@ -7973,8 +7983,8 @@ class IfcElectricTimeControl_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElectricTimeControl_CorrectTypeAssigned: SCOPE = 'entity' @@ -7983,8 +7993,8 @@ class IfcElectricTimeControl_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcelectrictimecontroltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcelectrictimecontroltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElectricTimeControlType_CorrectPredefinedType: SCOPE = 'entity' @@ -7993,8 +8003,8 @@ class IfcElectricTimeControlType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElectricTimeControlTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElementAssembly_CorrectPredefinedType: SCOPE = 'entity' @@ -8003,8 +8013,8 @@ class IfcElementAssembly_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcElementAssembly_CorrectTypeAssigned: SCOPE = 'entity' @@ -8013,8 +8023,8 @@ class IfcElementAssembly_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcelementassemblytype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcelementassemblytype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcElementAssemblyType_CorrectPredefinedType: SCOPE = 'entity' @@ -8023,8 +8033,8 @@ class IfcElementAssemblyType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcElementAssemblyTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcElementQuantity_UniqueQuantityNames: SCOPE = 'entity' @@ -8033,7 +8043,7 @@ class IfcElementQuantity_UniqueQuantityNames: @staticmethod def __call__(self): - quantities = getattr(self, 'Quantities', INDETERMINATE) + quantities = express_getattr(self, 'Quantities', INDETERMINATE) assert IfcUniqueQuantityNames(quantities) is not False class IfcEngine_CorrectPredefinedType: @@ -8043,8 +8053,8 @@ class IfcEngine_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEngine_CorrectTypeAssigned: SCOPE = 'entity' @@ -8053,8 +8063,8 @@ class IfcEngine_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcenginetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcenginetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEngineType_CorrectPredefinedType: SCOPE = 'entity' @@ -8063,8 +8073,8 @@ class IfcEngineType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEngineTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvaporativeCooler_CorrectPredefinedType: SCOPE = 'entity' @@ -8073,8 +8083,8 @@ class IfcEvaporativeCooler_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvaporativeCooler_CorrectTypeAssigned: SCOPE = 'entity' @@ -8083,8 +8093,8 @@ class IfcEvaporativeCooler_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcevaporativecoolertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcevaporativecoolertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEvaporativeCoolerType_CorrectPredefinedType: SCOPE = 'entity' @@ -8093,8 +8103,8 @@ class IfcEvaporativeCoolerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporativeCoolerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvaporator_CorrectPredefinedType: SCOPE = 'entity' @@ -8103,8 +8113,8 @@ class IfcEvaporator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvaporator_CorrectTypeAssigned: SCOPE = 'entity' @@ -8113,8 +8123,8 @@ class IfcEvaporator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcevaporatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcevaporatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcEvaporatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -8123,8 +8133,8 @@ class IfcEvaporatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEvaporatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcEvent_CorrectPredefinedType: SCOPE = 'entity' @@ -8133,8 +8143,8 @@ class IfcEvent_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcEvent_CorrectTypeAssigned: SCOPE = 'entity' @@ -8143,9 +8153,9 @@ class IfcEvent_CorrectTypeAssigned: @staticmethod def __call__(self): - eventtriggertype = getattr(self, 'EventTriggerType', INDETERMINATE) - userdefinedeventtriggertype = getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) - assert (not exists(eventtriggertype) or eventtriggertype != getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False + eventtriggertype = express_getattr(self, 'EventTriggerType', INDETERMINATE) + userdefinedeventtriggertype = express_getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) + assert (not exists(eventtriggertype) or eventtriggertype != express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False class IfcEventType_CorrectEventTriggerType: SCOPE = 'entity' @@ -8154,9 +8164,9 @@ class IfcEventType_CorrectEventTriggerType: @staticmethod def __call__(self): - eventtriggertype = getattr(self, 'EventTriggerType', INDETERMINATE) - userdefinedeventtriggertype = getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) - assert (eventtriggertype != getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False + eventtriggertype = express_getattr(self, 'EventTriggerType', INDETERMINATE) + userdefinedeventtriggertype = express_getattr(self, 'UserDefinedEventTriggerType', INDETERMINATE) + assert (eventtriggertype != express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) or (eventtriggertype == express_getattr(IfcEventTriggerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedeventtriggertype))) is not False class IfcEventType_CorrectPredefinedType: SCOPE = 'entity' @@ -8165,8 +8175,8 @@ class IfcEventType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcEventTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcExternalReference_WR1: SCOPE = 'entity' @@ -8175,9 +8185,9 @@ class IfcExternalReference_WR1: @staticmethod def __call__(self): - location = getattr(self, 'Location', INDETERMINATE) - identification = getattr(self, 'Identification', INDETERMINATE) - name = getattr(self, 'Name', INDETERMINATE) + location = express_getattr(self, 'Location', INDETERMINATE) + identification = express_getattr(self, 'Identification', INDETERMINATE) + name = express_getattr(self, 'Name', INDETERMINATE) assert (exists(identification) or exists(location) or exists(name)) is not False class IfcExtrudedAreaSolid_ValidExtrusionDirection: @@ -8187,7 +8197,7 @@ class IfcExtrudedAreaSolid_ValidExtrusionDirection: @staticmethod def __call__(self): - assert (IfcDotProduct(IfcDirection(DirectionRatios=[0.0, 0.0, 1.0]), getattr(self, 'ExtrudedDirection', INDETERMINATE)) != 0.0) is not False + assert (IfcDotProduct(IfcDirection(DirectionRatios=[0.0, 0.0, 1.0]), express_getattr(self, 'ExtrudedDirection', INDETERMINATE)) != 0.0) is not False class IfcExtrudedAreaSolidTapered_CorrectProfileAssignment: SCOPE = 'entity' @@ -8196,7 +8206,7 @@ class IfcExtrudedAreaSolidTapered_CorrectProfileAssignment: @staticmethod def __call__(self): - assert IfcTaperedSweptAreaProfiles(getattr(self, 'SweptArea', INDETERMINATE), getattr(self, 'EndSweptArea', INDETERMINATE)) is not False + assert IfcTaperedSweptAreaProfiles(express_getattr(self, 'SweptArea', INDETERMINATE), express_getattr(self, 'EndSweptArea', INDETERMINATE)) is not False class IfcFace_HasOuterBound: SCOPE = 'entity' @@ -8205,7 +8215,7 @@ class IfcFace_HasOuterBound: @staticmethod def __call__(self): - bounds = getattr(self, 'Bounds', INDETERMINATE) + bounds = express_getattr(self, 'Bounds', INDETERMINATE) assert (sizeof([temp for temp in bounds if 'ifc4x3_tc1.ifcfaceouterbound' in typeof(temp)]) <= 1) is not False def calc_IfcFaceBasedSurfaceModel_Dim(self): @@ -8218,8 +8228,8 @@ class IfcFacilityPartCommon_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFacilityPartCommonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFan_CorrectPredefinedType: SCOPE = 'entity' @@ -8228,8 +8238,8 @@ class IfcFan_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFan_CorrectTypeAssigned: SCOPE = 'entity' @@ -8238,8 +8248,8 @@ class IfcFan_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcfantype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcfantype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFanType_CorrectPredefinedType: SCOPE = 'entity' @@ -8248,8 +8258,8 @@ class IfcFanType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFastener_CorrectPredefinedType: SCOPE = 'entity' @@ -8258,8 +8268,8 @@ class IfcFastener_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFastener_CorrectTypeAssigned: SCOPE = 'entity' @@ -8268,8 +8278,8 @@ class IfcFastener_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcfastenertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcfastenertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFastenerType_CorrectPredefinedType: SCOPE = 'entity' @@ -8278,8 +8288,8 @@ class IfcFastenerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFeatureElement_NotContained: SCOPE = 'entity' @@ -8288,7 +8298,7 @@ class IfcFeatureElement_NotContained: @staticmethod def __call__(self): - containedinstructure = getattr(self, 'ContainedInStructure', INDETERMINATE) + containedinstructure = express_getattr(self, 'ContainedInStructure', INDETERMINATE) assert (sizeof(containedinstructure) == 0) is not False class IfcFeatureElementSubtraction_HasNoSubtraction: @@ -8298,7 +8308,7 @@ class IfcFeatureElementSubtraction_HasNoSubtraction: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'HasOpenings', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'HasOpenings', INDETERMINATE)) == 0) is not False class IfcFeatureElementSubtraction_IsNotFilling: SCOPE = 'entity' @@ -8307,7 +8317,7 @@ class IfcFeatureElementSubtraction_IsNotFilling: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'FillsVoids', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'FillsVoids', INDETERMINATE)) == 0) is not False class IfcFillAreaStyle_ConsistentHatchStyleDef: SCOPE = 'entity' @@ -8316,7 +8326,7 @@ class IfcFillAreaStyle_ConsistentHatchStyleDef: @staticmethod def __call__(self): - assert IfcCorrectFillAreaStyle(getattr(self, 'FillStyles', INDETERMINATE)) is not False + assert IfcCorrectFillAreaStyle(express_getattr(self, 'FillStyles', INDETERMINATE)) is not False class IfcFillAreaStyle_MaxOneColour: SCOPE = 'entity' @@ -8325,7 +8335,7 @@ class IfcFillAreaStyle_MaxOneColour: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3_tc1.ifccolour' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3_tc1.ifccolour' in typeof(style)]) <= 1) is not False class IfcFillAreaStyle_MaxOneExtHatchStyle: SCOPE = 'entity' @@ -8334,7 +8344,7 @@ class IfcFillAreaStyle_MaxOneExtHatchStyle: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3_tc1.ifcexternallydefinedhatchstyle' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'FillStyles', INDETERMINATE) if 'ifc4x3_tc1.ifcexternallydefinedhatchstyle' in typeof(style)]) <= 1) is not False class IfcFillAreaStyleHatching_PatternStart2D: SCOPE = 'entity' @@ -8343,8 +8353,8 @@ class IfcFillAreaStyleHatching_PatternStart2D: @staticmethod def __call__(self): - patternstart = getattr(self, 'PatternStart', INDETERMINATE) - assert (not exists(patternstart) or getattr(patternstart, 'Dim', INDETERMINATE) == 2) is not False + patternstart = express_getattr(self, 'PatternStart', INDETERMINATE) + assert (not exists(patternstart) or express_getattr(patternstart, 'Dim', INDETERMINATE) == 2) is not False class IfcFillAreaStyleHatching_RefHatchLine2D: SCOPE = 'entity' @@ -8353,8 +8363,8 @@ class IfcFillAreaStyleHatching_RefHatchLine2D: @staticmethod def __call__(self): - pointofreferencehatchline = getattr(self, 'PointOfReferenceHatchLine', INDETERMINATE) - assert (not exists(pointofreferencehatchline) or getattr(pointofreferencehatchline, 'Dim', INDETERMINATE) == 2) is not False + pointofreferencehatchline = express_getattr(self, 'PointOfReferenceHatchLine', INDETERMINATE) + assert (not exists(pointofreferencehatchline) or express_getattr(pointofreferencehatchline, 'Dim', INDETERMINATE) == 2) is not False class IfcFilter_CorrectPredefinedType: SCOPE = 'entity' @@ -8363,8 +8373,8 @@ class IfcFilter_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFilter_CorrectTypeAssigned: SCOPE = 'entity' @@ -8373,8 +8383,8 @@ class IfcFilter_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcfiltertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcfiltertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFilterType_CorrectPredefinedType: SCOPE = 'entity' @@ -8383,8 +8393,8 @@ class IfcFilterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFilterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFireSuppressionTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -8393,8 +8403,8 @@ class IfcFireSuppressionTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFireSuppressionTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -8403,8 +8413,8 @@ class IfcFireSuppressionTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcfiresuppressionterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcfiresuppressionterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFireSuppressionTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -8413,8 +8423,8 @@ class IfcFireSuppressionTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFireSuppressionTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFlowInstrument_CorrectPredefinedType: SCOPE = 'entity' @@ -8423,8 +8433,8 @@ class IfcFlowInstrument_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFlowInstrument_CorrectTypeAssigned: SCOPE = 'entity' @@ -8433,8 +8443,8 @@ class IfcFlowInstrument_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcflowinstrumenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcflowinstrumenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFlowInstrumentType_CorrectPredefinedType: SCOPE = 'entity' @@ -8443,8 +8453,8 @@ class IfcFlowInstrumentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowInstrumentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFlowMeter_CorrectPredefinedType: SCOPE = 'entity' @@ -8453,8 +8463,8 @@ class IfcFlowMeter_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFlowMeter_CorrectTypeAssigned: SCOPE = 'entity' @@ -8463,8 +8473,8 @@ class IfcFlowMeter_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcflowmetertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcflowmetertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFlowMeterType_CorrectPredefinedType: SCOPE = 'entity' @@ -8473,8 +8483,8 @@ class IfcFlowMeterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFlowMeterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFooting_CorrectPredefinedType: SCOPE = 'entity' @@ -8483,8 +8493,8 @@ class IfcFooting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFooting_CorrectTypeAssigned: SCOPE = 'entity' @@ -8493,8 +8503,8 @@ class IfcFooting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcfootingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcfootingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFootingType_CorrectPredefinedType: SCOPE = 'entity' @@ -8503,8 +8513,8 @@ class IfcFootingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFootingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcFurniture_CorrectPredefinedType: SCOPE = 'entity' @@ -8513,8 +8523,8 @@ class IfcFurniture_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcFurniture_CorrectTypeAssigned: SCOPE = 'entity' @@ -8523,8 +8533,8 @@ class IfcFurniture_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcfurnituretype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcfurnituretype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcFurnitureType_CorrectPredefinedType: SCOPE = 'entity' @@ -8533,8 +8543,8 @@ class IfcFurnitureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcFurnitureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcGeographicElement_CorrectPredefinedType: SCOPE = 'entity' @@ -8543,8 +8553,8 @@ class IfcGeographicElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcGeographicElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -8553,8 +8563,8 @@ class IfcGeographicElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcgeographicelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcgeographicelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcGeographicElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -8563,8 +8573,8 @@ class IfcGeographicElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcGeographicElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcGeometricCurveSet_NoSurfaces: SCOPE = 'entity' @@ -8573,7 +8583,7 @@ class IfcGeometricCurveSet_NoSurfaces: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Elements', INDETERMINATE) if 'ifc4x3_tc1.ifcsurface' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Elements', INDETERMINATE) if 'ifc4x3_tc1.ifcsurface' in typeof(temp)]) == 0) is not False class IfcGeometricRepresentationContext_North2D: SCOPE = 'entity' @@ -8582,8 +8592,8 @@ class IfcGeometricRepresentationContext_North2D: @staticmethod def __call__(self): - truenorth = getattr(self, 'TrueNorth', INDETERMINATE) - assert (not exists(truenorth) or hiindex(getattr(truenorth, 'DirectionRatios', INDETERMINATE)) == 2) is not False + truenorth = express_getattr(self, 'TrueNorth', INDETERMINATE) + assert (not exists(truenorth) or hiindex(express_getattr(truenorth, 'DirectionRatios', INDETERMINATE)) == 2) is not False class IfcGeometricRepresentationSubContext_NoCoordOperation: SCOPE = 'entity' @@ -8592,7 +8602,7 @@ class IfcGeometricRepresentationSubContext_NoCoordOperation: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'HasCoordinateOperation', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'HasCoordinateOperation', INDETERMINATE)) == 0) is not False class IfcGeometricRepresentationSubContext_ParentNoSub: SCOPE = 'entity' @@ -8601,7 +8611,7 @@ class IfcGeometricRepresentationSubContext_ParentNoSub: @staticmethod def __call__(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) assert (not 'ifc4x3_tc1.ifcgeometricrepresentationsubcontext' in typeof(parentcontext)) is not False class IfcGeometricRepresentationSubContext_UserTargetProvided: @@ -8611,25 +8621,25 @@ class IfcGeometricRepresentationSubContext_UserTargetProvided: @staticmethod def __call__(self): - targetview = getattr(self, 'TargetView', INDETERMINATE) - userdefinedtargetview = getattr(self, 'UserDefinedTargetView', INDETERMINATE) - assert (targetview != getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) or (targetview == getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedtargetview))) is not False + targetview = express_getattr(self, 'TargetView', INDETERMINATE) + userdefinedtargetview = express_getattr(self, 'UserDefinedTargetView', INDETERMINATE) + assert (targetview != express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) or (targetview == express_getattr(IfcGeometricProjectionEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedtargetview))) is not False def calc_IfcGeometricRepresentationSubContext_WorldCoordinateSystem(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return getattr(parentcontext, 'WorldCoordinateSystem', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return express_getattr(parentcontext, 'WorldCoordinateSystem', INDETERMINATE) def calc_IfcGeometricRepresentationSubContext_CoordinateSpaceDimension(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return getattr(parentcontext, 'CoordinateSpaceDimension', INDETERMINATE) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return express_getattr(parentcontext, 'CoordinateSpaceDimension', INDETERMINATE) def calc_IfcGeometricRepresentationSubContext_TrueNorth(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return nvl(getattr(parentcontext, 'TrueNorth', INDETERMINATE), IfcConvertDirectionInto2D(express_getitem(getattr(getattr(self, 'WorldCoordinateSystem', INDETERMINATE), 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return nvl(express_getattr(parentcontext, 'TrueNorth', INDETERMINATE), IfcConvertDirectionInto2D(express_getitem(express_getattr(express_getattr(self, 'WorldCoordinateSystem', INDETERMINATE), 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) def calc_IfcGeometricRepresentationSubContext_Precision(self): - parentcontext = getattr(self, 'ParentContext', INDETERMINATE) - return nvl(getattr(parentcontext, 'Precision', INDETERMINATE), 1) + parentcontext = express_getattr(self, 'ParentContext', INDETERMINATE) + return nvl(express_getattr(parentcontext, 'Precision', INDETERMINATE), 1) class IfcGeometricSet_ConsistentDim: SCOPE = 'entity' @@ -8638,12 +8648,12 @@ class IfcGeometricSet_ConsistentDim: @staticmethod def __call__(self): - elements = getattr(self, 'Elements', INDETERMINATE) - assert (sizeof([temp for temp in elements if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + elements = express_getattr(self, 'Elements', INDETERMINATE) + assert (sizeof([temp for temp in elements if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False def calc_IfcGeometricSet_Dim(self): - elements = getattr(self, 'Elements', INDETERMINATE) - return getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + elements = express_getattr(self, 'Elements', INDETERMINATE) + return express_getattr(express_getitem(elements, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) class IfcGeotechnicalStratum_CorrectPredefinedType: SCOPE = 'entity' @@ -8652,8 +8662,8 @@ class IfcGeotechnicalStratum_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcGeotechnicalStratumTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcGeotechnicalStratumTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcGeotechnicalStratumTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcGeotechnicalStratumTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcGridAxis_WR1: SCOPE = 'entity' @@ -8662,8 +8672,8 @@ class IfcGridAxis_WR1: @staticmethod def __call__(self): - axiscurve = getattr(self, 'AxisCurve', INDETERMINATE) - assert (getattr(axiscurve, 'Dim', INDETERMINATE) == 2) is not False + axiscurve = express_getattr(self, 'AxisCurve', INDETERMINATE) + assert (express_getattr(axiscurve, 'Dim', INDETERMINATE) == 2) is not False class IfcGridAxis_WR2: SCOPE = 'entity' @@ -8672,9 +8682,9 @@ class IfcGridAxis_WR2: @staticmethod def __call__(self): - partofw = getattr(self, 'PartOfW', INDETERMINATE) - partofv = getattr(self, 'PartOfV', INDETERMINATE) - partofu = getattr(self, 'PartOfU', INDETERMINATE) + partofw = express_getattr(self, 'PartOfW', INDETERMINATE) + partofv = express_getattr(self, 'PartOfV', INDETERMINATE) + partofu = express_getattr(self, 'PartOfU', INDETERMINATE) assert (sizeof(partofu) == 1) ^ (sizeof(partofv) == 1) ^ (sizeof(partofw) == 1) is not False def calc_IfcHalfSpaceSolid_Dim(self): @@ -8687,8 +8697,8 @@ class IfcHeatExchanger_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcHeatExchanger_CorrectTypeAssigned: SCOPE = 'entity' @@ -8697,8 +8707,8 @@ class IfcHeatExchanger_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcheatexchangertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcheatexchangertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcHeatExchangerType_CorrectPredefinedType: SCOPE = 'entity' @@ -8707,8 +8717,8 @@ class IfcHeatExchangerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHeatExchangerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcHumidifier_CorrectPredefinedType: SCOPE = 'entity' @@ -8717,8 +8727,8 @@ class IfcHumidifier_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcHumidifier_CorrectTypeAssigned: SCOPE = 'entity' @@ -8727,8 +8737,8 @@ class IfcHumidifier_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifchumidifiertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifchumidifiertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcHumidifierType_CorrectPredefinedType: SCOPE = 'entity' @@ -8737,8 +8747,8 @@ class IfcHumidifierType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcHumidifierTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcIShapeProfileDef_ValidFilletRadius: SCOPE = 'entity' @@ -8747,11 +8757,11 @@ class IfcIShapeProfileDef_ValidFilletRadius: @staticmethod def __call__(self): - overallwidth = getattr(self, 'OverallWidth', INDETERMINATE) - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) - filletradius = getattr(self, 'FilletRadius', INDETERMINATE) + overallwidth = express_getattr(self, 'OverallWidth', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) + filletradius = express_getattr(self, 'FilletRadius', INDETERMINATE) assert (not exists(filletradius) or (filletradius <= (overallwidth - webthickness) / 2.0 and filletradius <= (overalldepth - 2.0 * flangethickness) / 2.0)) is not False class IfcIShapeProfileDef_ValidFlangeThickness: @@ -8761,8 +8771,8 @@ class IfcIShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - overalldepth = getattr(self, 'OverallDepth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + overalldepth = express_getattr(self, 'OverallDepth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (2.0 * flangethickness < overalldepth) is not False class IfcIShapeProfileDef_ValidWebThickness: @@ -8772,8 +8782,8 @@ class IfcIShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - overallwidth = getattr(self, 'OverallWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + overallwidth = express_getattr(self, 'OverallWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < overallwidth) is not False class IfcImpactProtectionDevice_CorrectPredefinedType: @@ -8783,8 +8793,8 @@ class IfcImpactProtectionDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcImpactProtectionDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -8793,8 +8803,8 @@ class IfcImpactProtectionDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcimpactprotectiondevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcimpactprotectiondevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcImpactProtectionDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -8803,8 +8813,8 @@ class IfcImpactProtectionDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcImpactProtectionDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcIndexedPolyCurve_Consecutive: SCOPE = 'entity' @@ -8813,7 +8823,7 @@ class IfcIndexedPolyCurve_Consecutive: @staticmethod def __call__(self): - segments = getattr(self, 'Segments', INDETERMINATE) + segments = express_getattr(self, 'Segments', INDETERMINATE) assert (not exists(segments) or IfcConsecutiveSegments(segments)) is not False class IfcInterceptor_CorrectPredefinedType: @@ -8823,8 +8833,8 @@ class IfcInterceptor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcInterceptor_CorrectTypeAssigned: SCOPE = 'entity' @@ -8833,8 +8843,8 @@ class IfcInterceptor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcinterceptortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcinterceptortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcInterceptorType_CorrectPredefinedType: SCOPE = 'entity' @@ -8843,8 +8853,8 @@ class IfcInterceptorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcInterceptorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcIntersectionCurve_DistinctSurfaces: SCOPE = 'entity' @@ -8853,7 +8863,7 @@ class IfcIntersectionCurve_DistinctSurfaces: @staticmethod def __call__(self): - assert (IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcIntersectionCurve_TwoPCurves: SCOPE = 'entity' @@ -8862,7 +8872,7 @@ class IfcIntersectionCurve_TwoPCurves: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False + assert (sizeof(express_getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False class IfcJunctionBox_CorrectPredefinedType: SCOPE = 'entity' @@ -8871,8 +8881,8 @@ class IfcJunctionBox_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcJunctionBox_CorrectTypeAssigned: SCOPE = 'entity' @@ -8881,8 +8891,8 @@ class IfcJunctionBox_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcjunctionboxtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcjunctionboxtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcJunctionBoxType_CorrectPredefinedType: SCOPE = 'entity' @@ -8891,8 +8901,8 @@ class IfcJunctionBoxType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcJunctionBoxTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcKerb_CorrectPredefinedType: SCOPE = 'entity' @@ -8901,8 +8911,8 @@ class IfcKerb_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcKerb_CorrectTypeAssigned: SCOPE = 'entity' @@ -8911,8 +8921,8 @@ class IfcKerb_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifckerbtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifckerbtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcKerbType_CorrectPredefinedType: SCOPE = 'entity' @@ -8921,8 +8931,8 @@ class IfcKerbType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcKerbTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLShapeProfileDef_ValidThickness: SCOPE = 'entity' @@ -8931,9 +8941,9 @@ class IfcLShapeProfileDef_ValidThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - width = getattr(self, 'Width', INDETERMINATE) - thickness = getattr(self, 'Thickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + thickness = express_getattr(self, 'Thickness', INDETERMINATE) assert (thickness < depth and (not exists(width) or thickness < width)) is not False class IfcLaborResource_CorrectPredefinedType: @@ -8943,8 +8953,8 @@ class IfcLaborResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLaborResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -8953,8 +8963,8 @@ class IfcLaborResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLaborResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False class IfcLamp_CorrectPredefinedType: SCOPE = 'entity' @@ -8963,8 +8973,8 @@ class IfcLamp_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLamp_CorrectTypeAssigned: SCOPE = 'entity' @@ -8973,8 +8983,8 @@ class IfcLamp_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifclamptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifclamptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLampType_CorrectPredefinedType: SCOPE = 'entity' @@ -8983,8 +8993,8 @@ class IfcLampType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLightFixture_CorrectPredefinedType: SCOPE = 'entity' @@ -8993,8 +9003,8 @@ class IfcLightFixture_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLightFixture_CorrectTypeAssigned: SCOPE = 'entity' @@ -9003,8 +9013,8 @@ class IfcLightFixture_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifclightfixturetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifclightfixturetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLightFixtureType_CorrectPredefinedType: SCOPE = 'entity' @@ -9013,8 +9023,8 @@ class IfcLightFixtureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLightFixtureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLine_SameDim: SCOPE = 'entity' @@ -9023,9 +9033,9 @@ class IfcLine_SameDim: @staticmethod def __call__(self): - pnt = getattr(self, 'Pnt', INDETERMINATE) - dir = getattr(self, 'Dir', INDETERMINATE) - assert (getattr(dir, 'Dim', INDETERMINATE) == getattr(pnt, 'Dim', INDETERMINATE)) is not False + pnt = express_getattr(self, 'Pnt', INDETERMINATE) + dir = express_getattr(self, 'Dir', INDETERMINATE) + assert (express_getattr(dir, 'Dim', INDETERMINATE) == express_getattr(pnt, 'Dim', INDETERMINATE)) is not False class IfcLiquidTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -9034,8 +9044,8 @@ class IfcLiquidTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcLiquidTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -9044,8 +9054,8 @@ class IfcLiquidTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcliquidterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcliquidterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcLiquidTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -9054,8 +9064,8 @@ class IfcLiquidTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcLiquidTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcLocalPlacement_WR21: SCOPE = 'entity' @@ -9064,8 +9074,8 @@ class IfcLocalPlacement_WR21: @staticmethod def __call__(self): - placementrelto = getattr(self, 'PlacementRelTo', INDETERMINATE) - relativeplacement = getattr(self, 'RelativePlacement', INDETERMINATE) + placementrelto = express_getattr(self, 'PlacementRelTo', INDETERMINATE) + relativeplacement = express_getattr(self, 'RelativePlacement', INDETERMINATE) assert IfcCorrectLocalPlacement(relativeplacement, placementrelto) is not False class IfcMarineFacility_CorrectPredefinedType: @@ -9075,8 +9085,8 @@ class IfcMarineFacility_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMarineFacilityTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMarinePart_CorrectPredefinedType: SCOPE = 'entity' @@ -9085,8 +9095,8 @@ class IfcMarinePart_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMarinePartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMaterialDefinitionRepresentation_OnlyStyledRepresentations: SCOPE = 'entity' @@ -9095,7 +9105,7 @@ class IfcMaterialDefinitionRepresentation_OnlyStyledRepresentations: @staticmethod def __call__(self): - representations = getattr(self, 'Representations', INDETERMINATE) + representations = express_getattr(self, 'Representations', INDETERMINATE) assert (sizeof([temp for temp in representations if not 'ifc4x3_tc1.ifcstyledrepresentation' in typeof(temp)]) == 0) is not False class IfcMaterialLayer_NormalizedPriority: @@ -9105,7 +9115,7 @@ class IfcMaterialLayer_NormalizedPriority: @staticmethod def __call__(self): - priority = getattr(self, 'Priority', INDETERMINATE) + priority = express_getattr(self, 'Priority', INDETERMINATE) assert (not exists(priority) or 0 <= priority <= 100) is not False def calc_IfcMaterialLayerSet_TotalThickness(self): @@ -9118,7 +9128,7 @@ class IfcMaterialProfile_NormalizedPriority: @staticmethod def __call__(self): - priority = getattr(self, 'Priority', INDETERMINATE) + priority = express_getattr(self, 'Priority', INDETERMINATE) assert (not exists(priority) or 0 <= priority <= 100) is not False class IfcMechanicalFastener_CorrectPredefinedType: @@ -9128,8 +9138,8 @@ class IfcMechanicalFastener_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMechanicalFastener_CorrectTypeAssigned: SCOPE = 'entity' @@ -9138,8 +9148,8 @@ class IfcMechanicalFastener_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcmechanicalfastenertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcmechanicalfastenertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMechanicalFastenerType_CorrectPredefinedType: SCOPE = 'entity' @@ -9148,8 +9158,8 @@ class IfcMechanicalFastenerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMechanicalFastenerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMedicalDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -9158,8 +9168,8 @@ class IfcMedicalDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMedicalDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -9168,8 +9178,8 @@ class IfcMedicalDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcmedicaldevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcmedicaldevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMedicalDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9178,8 +9188,8 @@ class IfcMedicalDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMedicalDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMember_CorrectPredefinedType: SCOPE = 'entity' @@ -9188,8 +9198,8 @@ class IfcMember_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMember_CorrectTypeAssigned: SCOPE = 'entity' @@ -9198,8 +9208,8 @@ class IfcMember_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcmembertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcmembertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMemberType_CorrectPredefinedType: SCOPE = 'entity' @@ -9208,8 +9218,8 @@ class IfcMemberType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMemberTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcMirroredProfileDef_Operator(self): return IfcCartesianTransformationOperator2D(Axis1=IfcDirection(DirectionRatios=[-1.0, 0.0]), Axis2=IfcDirection(DirectionRatios=[0.0, 1.0]), LocalOrigin=IfcCartesianPoint(Coordinates=[0.0, 0.0]), Scale=1.0) @@ -9221,8 +9231,8 @@ class IfcMobileTelecommunicationsAppliance_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMobileTelecommunicationsAppliance_CorrectTypeAssigned: SCOPE = 'entity' @@ -9231,8 +9241,8 @@ class IfcMobileTelecommunicationsAppliance_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcmobiletelecommunicationsappliancetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcmobiletelecommunicationsappliancetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMobileTelecommunicationsApplianceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9241,8 +9251,8 @@ class IfcMobileTelecommunicationsApplianceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMobileTelecommunicationsApplianceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMooringDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -9251,8 +9261,8 @@ class IfcMooringDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMooringDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -9261,8 +9271,8 @@ class IfcMooringDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcmooringdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcmooringdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMooringDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -9271,8 +9281,8 @@ class IfcMooringDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMooringDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcMotorConnection_CorrectPredefinedType: SCOPE = 'entity' @@ -9281,8 +9291,8 @@ class IfcMotorConnection_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcMotorConnection_CorrectTypeAssigned: SCOPE = 'entity' @@ -9291,8 +9301,8 @@ class IfcMotorConnection_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcmotorconnectiontype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcmotorconnectiontype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcMotorConnectionType_CorrectPredefinedType: SCOPE = 'entity' @@ -9301,8 +9311,8 @@ class IfcMotorConnectionType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcMotorConnectionTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcNamedUnit_WR1: SCOPE = 'entity' @@ -9311,7 +9321,7 @@ class IfcNamedUnit_WR1: @staticmethod def __call__(self): - assert IfcCorrectDimensions(getattr(self, 'UnitType', INDETERMINATE), getattr(self, 'Dimensions', INDETERMINATE)) is not False + assert IfcCorrectDimensions(express_getattr(self, 'UnitType', INDETERMINATE), express_getattr(self, 'Dimensions', INDETERMINATE)) is not False class IfcNavigationElement_CorrectPredefinedType: SCOPE = 'entity' @@ -9320,8 +9330,8 @@ class IfcNavigationElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcNavigationElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -9330,8 +9340,8 @@ class IfcNavigationElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcnavigationelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcnavigationelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcNavigationElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -9340,8 +9350,8 @@ class IfcNavigationElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcNavigationElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcObject_UniquePropertySetNames: SCOPE = 'entity' @@ -9350,7 +9360,7 @@ class IfcObject_UniquePropertySetNames: @staticmethod def __call__(self): - isdefinedby = getattr(self, 'IsDefinedBy', INDETERMINATE) + isdefinedby = express_getattr(self, 'IsDefinedBy', INDETERMINATE) assert (sizeof(isdefinedby) == 0 or IfcUniqueDefinitionNames(isdefinedby)) is not False class IfcObjective_WR21: @@ -9360,8 +9370,8 @@ class IfcObjective_WR21: @staticmethod def __call__(self): - objectivequalifier = getattr(self, 'ObjectiveQualifier', INDETERMINATE) - assert (objectivequalifier != getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) or (objectivequalifier == getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'UserDefinedQualifier', INDETERMINATE)))) is not False + objectivequalifier = express_getattr(self, 'ObjectiveQualifier', INDETERMINATE) + assert (objectivequalifier != express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) or (objectivequalifier == express_getattr(IfcObjectiveEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'UserDefinedQualifier', INDETERMINATE)))) is not False class IfcOccupant_WR31: SCOPE = 'entity' @@ -9370,8 +9380,8 @@ class IfcOccupant_WR31: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not predefinedtype == getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not predefinedtype == express_getattr(IfcOccupantTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcOffsetCurve2D_DimIs2D: SCOPE = 'entity' @@ -9380,8 +9390,8 @@ class IfcOffsetCurve2D_DimIs2D: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - assert (getattr(basiscurve, 'Dim', INDETERMINATE) == 2) is not False + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + assert (express_getattr(basiscurve, 'Dim', INDETERMINATE) == 2) is not False class IfcOffsetCurve3D_DimIs2D: SCOPE = 'entity' @@ -9390,8 +9400,8 @@ class IfcOffsetCurve3D_DimIs2D: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) - assert (getattr(basiscurve, 'Dim', INDETERMINATE) == 3) is not False + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) + assert (express_getattr(basiscurve, 'Dim', INDETERMINATE) == 3) is not False class IfcOpenCrossProfileDef_CorrectProfileType: SCOPE = 'entity' @@ -9400,7 +9410,7 @@ class IfcOpenCrossProfileDef_CorrectProfileType: @staticmethod def __call__(self): - assert (getattr(self, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False + assert (express_getattr(self, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)) is not False class IfcOpenCrossProfileDef_CorrespondingSlopeWidths: SCOPE = 'entity' @@ -9409,8 +9419,8 @@ class IfcOpenCrossProfileDef_CorrespondingSlopeWidths: @staticmethod def __call__(self): - widths = getattr(self, 'Widths', INDETERMINATE) - slopes = getattr(self, 'Slopes', INDETERMINATE) + widths = express_getattr(self, 'Widths', INDETERMINATE) + slopes = express_getattr(self, 'Slopes', INDETERMINATE) assert (sizeof(slopes) == sizeof(widths)) is not False class IfcOpenCrossProfileDef_CorrespondingTags: @@ -9420,8 +9430,8 @@ class IfcOpenCrossProfileDef_CorrespondingTags: @staticmethod def __call__(self): - slopes = getattr(self, 'Slopes', INDETERMINATE) - tags = getattr(self, 'Tags', INDETERMINATE) + slopes = express_getattr(self, 'Slopes', INDETERMINATE) + tags = express_getattr(self, 'Tags', INDETERMINATE) assert (not exists(tags) or sizeof(tags) == sizeof(slopes) + 1) is not False class IfcOpeningElement_CorrectPredefinedType: @@ -9431,8 +9441,8 @@ class IfcOpeningElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcOpeningElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcOrientedEdge_EdgeElementNotOriented: SCOPE = 'entity' @@ -9441,18 +9451,18 @@ class IfcOrientedEdge_EdgeElementNotOriented: @staticmethod def __call__(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) assert (not 'ifc4x3_tc1.ifcorientededge' in typeof(edgeelement)) is not False def calc_IfcOrientedEdge_EdgeStart(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) - orientation = getattr(self, 'Orientation', INDETERMINATE) - return IfcBooleanChoose(orientation, getattr(edgeelement, 'EdgeStart', INDETERMINATE), getattr(edgeelement, 'EdgeEnd', INDETERMINATE)) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return IfcBooleanChoose(orientation, express_getattr(edgeelement, 'EdgeStart', INDETERMINATE), express_getattr(edgeelement, 'EdgeEnd', INDETERMINATE)) def calc_IfcOrientedEdge_EdgeEnd(self): - edgeelement = getattr(self, 'EdgeElement', INDETERMINATE) - orientation = getattr(self, 'Orientation', INDETERMINATE) - return IfcBooleanChoose(orientation, getattr(edgeelement, 'EdgeEnd', INDETERMINATE), getattr(edgeelement, 'EdgeStart', INDETERMINATE)) + edgeelement = express_getattr(self, 'EdgeElement', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return IfcBooleanChoose(orientation, express_getattr(edgeelement, 'EdgeEnd', INDETERMINATE), express_getattr(edgeelement, 'EdgeStart', INDETERMINATE)) class IfcOutlet_CorrectPredefinedType: SCOPE = 'entity' @@ -9461,8 +9471,8 @@ class IfcOutlet_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcOutlet_CorrectTypeAssigned: SCOPE = 'entity' @@ -9471,8 +9481,8 @@ class IfcOutlet_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcoutlettype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcoutlettype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcOutletType_CorrectPredefinedType: SCOPE = 'entity' @@ -9481,8 +9491,8 @@ class IfcOutletType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcOutletTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcOwnerHistory_CorrectChangeAction: SCOPE = 'entity' @@ -9491,9 +9501,9 @@ class IfcOwnerHistory_CorrectChangeAction: @staticmethod def __call__(self): - changeaction = getattr(self, 'ChangeAction', INDETERMINATE) - lastmodifieddate = getattr(self, 'LastModifiedDate', INDETERMINATE) - assert (exists(lastmodifieddate) or (not exists(lastmodifieddate) and (not exists(changeaction))) or (not exists(lastmodifieddate) and exists(changeaction) and (changeaction == getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) or changeaction == getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE)))) is not False + changeaction = express_getattr(self, 'ChangeAction', INDETERMINATE) + lastmodifieddate = express_getattr(self, 'LastModifiedDate', INDETERMINATE) + assert (exists(lastmodifieddate) or (not exists(lastmodifieddate) and (not exists(changeaction))) or (not exists(lastmodifieddate) and exists(changeaction) and (changeaction == express_getattr(IfcChangeActionEnum, 'NOTDEFINED', INDETERMINATE) or changeaction == express_getattr(IfcChangeActionEnum, 'NOCHANGE', INDETERMINATE)))) is not False class IfcPath_IsContinuous: SCOPE = 'entity' @@ -9511,8 +9521,8 @@ class IfcPavement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPavement_CorrectTypeAssigned: SCOPE = 'entity' @@ -9521,8 +9531,8 @@ class IfcPavement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcpavementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcpavementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPavementType_CorrectPredefinedType: SCOPE = 'entity' @@ -9531,8 +9541,8 @@ class IfcPavementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPavementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPcurve_DimIs2D: SCOPE = 'entity' @@ -9541,8 +9551,8 @@ class IfcPcurve_DimIs2D: @staticmethod def __call__(self): - referencecurve = getattr(self, 'ReferenceCurve', INDETERMINATE) - assert (getattr(referencecurve, 'Dim', INDETERMINATE) == 2) is not False + referencecurve = express_getattr(self, 'ReferenceCurve', INDETERMINATE) + assert (express_getattr(referencecurve, 'Dim', INDETERMINATE) == 2) is not False class IfcPerson_IdentifiablePerson: SCOPE = 'entity' @@ -9551,9 +9561,9 @@ class IfcPerson_IdentifiablePerson: @staticmethod def __call__(self): - identification = getattr(self, 'Identification', INDETERMINATE) - familyname = getattr(self, 'FamilyName', INDETERMINATE) - givenname = getattr(self, 'GivenName', INDETERMINATE) + identification = express_getattr(self, 'Identification', INDETERMINATE) + familyname = express_getattr(self, 'FamilyName', INDETERMINATE) + givenname = express_getattr(self, 'GivenName', INDETERMINATE) assert (exists(identification) or exists(familyname) or exists(givenname)) is not False class IfcPerson_ValidSetOfNames: @@ -9563,9 +9573,9 @@ class IfcPerson_ValidSetOfNames: @staticmethod def __call__(self): - familyname = getattr(self, 'FamilyName', INDETERMINATE) - givenname = getattr(self, 'GivenName', INDETERMINATE) - middlenames = getattr(self, 'MiddleNames', INDETERMINATE) + familyname = express_getattr(self, 'FamilyName', INDETERMINATE) + givenname = express_getattr(self, 'GivenName', INDETERMINATE) + middlenames = express_getattr(self, 'MiddleNames', INDETERMINATE) assert (not exists(middlenames) or exists(familyname) or exists(givenname)) is not False class IfcPhysicalComplexQuantity_NoSelfReference: @@ -9575,7 +9585,7 @@ class IfcPhysicalComplexQuantity_NoSelfReference: @staticmethod def __call__(self): - hasquantities = getattr(self, 'HasQuantities', INDETERMINATE) + hasquantities = express_getattr(self, 'HasQuantities', INDETERMINATE) assert (sizeof([temp for temp in hasquantities if self == temp]) == 0) is not False class IfcPhysicalComplexQuantity_UniqueQuantityNames: @@ -9585,7 +9595,7 @@ class IfcPhysicalComplexQuantity_UniqueQuantityNames: @staticmethod def __call__(self): - hasquantities = getattr(self, 'HasQuantities', INDETERMINATE) + hasquantities = express_getattr(self, 'HasQuantities', INDETERMINATE) assert IfcUniqueQuantityNames(hasquantities) is not False class IfcPile_CorrectPredefinedType: @@ -9595,8 +9605,8 @@ class IfcPile_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPile_CorrectTypeAssigned: SCOPE = 'entity' @@ -9605,8 +9615,8 @@ class IfcPile_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcpiletype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcpiletype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPileType_CorrectPredefinedType: SCOPE = 'entity' @@ -9615,8 +9625,8 @@ class IfcPileType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPileTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPipeFitting_CorrectPredefinedType: SCOPE = 'entity' @@ -9625,8 +9635,8 @@ class IfcPipeFitting_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPipeFitting_CorrectTypeAssigned: SCOPE = 'entity' @@ -9635,8 +9645,8 @@ class IfcPipeFitting_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcpipefittingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcpipefittingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPipeFittingType_CorrectPredefinedType: SCOPE = 'entity' @@ -9645,8 +9655,8 @@ class IfcPipeFittingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeFittingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPipeSegment_CorrectPredefinedType: SCOPE = 'entity' @@ -9655,8 +9665,8 @@ class IfcPipeSegment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPipeSegment_CorrectTypeAssigned: SCOPE = 'entity' @@ -9665,8 +9675,8 @@ class IfcPipeSegment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcpipesegmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcpipesegmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPipeSegmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -9675,8 +9685,8 @@ class IfcPipeSegmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPipeSegmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPixelTexture_MinPixelInS: SCOPE = 'entity' @@ -9685,7 +9695,7 @@ class IfcPixelTexture_MinPixelInS: @staticmethod def __call__(self): - width = getattr(self, 'Width', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) assert (width >= 1) is not False class IfcPixelTexture_MinPixelInT: @@ -9695,7 +9705,7 @@ class IfcPixelTexture_MinPixelInT: @staticmethod def __call__(self): - height = getattr(self, 'Height', INDETERMINATE) + height = express_getattr(self, 'Height', INDETERMINATE) assert (height >= 1) is not False class IfcPixelTexture_NumberOfColours: @@ -9705,7 +9715,7 @@ class IfcPixelTexture_NumberOfColours: @staticmethod def __call__(self): - colourcomponents = getattr(self, 'ColourComponents', INDETERMINATE) + colourcomponents = express_getattr(self, 'ColourComponents', INDETERMINATE) assert (1 <= colourcomponents <= 4) is not False class IfcPixelTexture_PixelAsByteAndSameLength: @@ -9715,7 +9725,7 @@ class IfcPixelTexture_PixelAsByteAndSameLength: @staticmethod def __call__(self): - pixel = getattr(self, 'Pixel', INDETERMINATE) + pixel = express_getattr(self, 'Pixel', INDETERMINATE) assert (sizeof([temp for temp in pixel if blength(temp) % 8 == 0 and blength(temp) == blength(express_getitem(pixel, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == sizeof(pixel)) is not False class IfcPixelTexture_SizeOfPixelList: @@ -9725,14 +9735,14 @@ class IfcPixelTexture_SizeOfPixelList: @staticmethod def __call__(self): - width = getattr(self, 'Width', INDETERMINATE) - height = getattr(self, 'Height', INDETERMINATE) - pixel = getattr(self, 'Pixel', INDETERMINATE) + width = express_getattr(self, 'Width', INDETERMINATE) + height = express_getattr(self, 'Height', INDETERMINATE) + pixel = express_getattr(self, 'Pixel', INDETERMINATE) assert (sizeof(pixel) == width * height) is not False def calc_IfcPlacement_Dim(self): - location = getattr(self, 'Location', INDETERMINATE) - return getattr(location, 'Dim', INDETERMINATE) + location = express_getattr(self, 'Location', INDETERMINATE) + return express_getattr(location, 'Dim', INDETERMINATE) class IfcPlate_CorrectPredefinedType: SCOPE = 'entity' @@ -9741,8 +9751,8 @@ class IfcPlate_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPlate_CorrectTypeAssigned: SCOPE = 'entity' @@ -9751,8 +9761,8 @@ class IfcPlate_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcplatetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcplatetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPlateType_CorrectPredefinedType: SCOPE = 'entity' @@ -9761,8 +9771,8 @@ class IfcPlateType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPlateTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcPoint_Dim(self): return IfcPointDim(self) @@ -9774,8 +9784,8 @@ class IfcPolyLoop_AllPointsSameDim: @staticmethod def __call__(self): - polygon = getattr(self, 'Polygon', INDETERMINATE) - assert (sizeof([temp for temp in polygon if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(polygon, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + polygon = express_getattr(self, 'Polygon', INDETERMINATE) + assert (sizeof([temp for temp in polygon if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(polygon, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False class IfcPolygonalBoundedHalfSpace_BoundaryDim: SCOPE = 'entity' @@ -9784,8 +9794,8 @@ class IfcPolygonalBoundedHalfSpace_BoundaryDim: @staticmethod def __call__(self): - polygonalboundary = getattr(self, 'PolygonalBoundary', INDETERMINATE) - assert (getattr(polygonalboundary, 'Dim', INDETERMINATE) == 2) is not False + polygonalboundary = express_getattr(self, 'PolygonalBoundary', INDETERMINATE) + assert (express_getattr(polygonalboundary, 'Dim', INDETERMINATE) == 2) is not False class IfcPolygonalBoundedHalfSpace_BoundaryType: SCOPE = 'entity' @@ -9794,7 +9804,7 @@ class IfcPolygonalBoundedHalfSpace_BoundaryType: @staticmethod def __call__(self): - polygonalboundary = getattr(self, 'PolygonalBoundary', INDETERMINATE) + polygonalboundary = express_getattr(self, 'PolygonalBoundary', INDETERMINATE) assert (sizeof(typeof(polygonalboundary) * ['ifc4x3_tc1.ifcpolyline', 'ifc4x3_tc1.ifccompositecurve', 'ifc4x3_tc1.ifcindexedpolycurve']) == 1) is not False class IfcPolyline_SameDim: @@ -9804,8 +9814,8 @@ class IfcPolyline_SameDim: @staticmethod def __call__(self): - points = getattr(self, 'Points', INDETERMINATE) - assert (sizeof([temp for temp in points if getattr(temp, 'Dim', INDETERMINATE) != getattr(express_getitem(points, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False + points = express_getattr(self, 'Points', INDETERMINATE) + assert (sizeof([temp for temp in points if express_getattr(temp, 'Dim', INDETERMINATE) != express_getattr(express_getitem(points, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE)]) == 0) is not False class IfcPolynomialCurve_CorrectPositionDim: SCOPE = 'entity' @@ -9814,9 +9824,9 @@ class IfcPolynomialCurve_CorrectPositionDim: @staticmethod def __call__(self): - position = getattr(self, 'Position', INDETERMINATE) - coefficientsz = getattr(self, 'CoefficientsZ', INDETERMINATE) - assert (getattr(position, 'Dim', INDETERMINATE) == 2 and (not exists(coefficientsz)) or getattr(position, 'Dim', INDETERMINATE) == 3) is not False + position = express_getattr(self, 'Position', INDETERMINATE) + coefficientsz = express_getattr(self, 'CoefficientsZ', INDETERMINATE) + assert (express_getattr(position, 'Dim', INDETERMINATE) == 2 and (not exists(coefficientsz)) or express_getattr(position, 'Dim', INDETERMINATE) == 3) is not False class IfcPolynomialCurve_ValidCoefficients: SCOPE = 'entity' @@ -9825,9 +9835,9 @@ class IfcPolynomialCurve_ValidCoefficients: @staticmethod def __call__(self): - coefficientsx = getattr(self, 'CoefficientsX', INDETERMINATE) - coefficientsy = getattr(self, 'CoefficientsY', INDETERMINATE) - coefficientsz = getattr(self, 'CoefficientsZ', INDETERMINATE) + coefficientsx = express_getattr(self, 'CoefficientsX', INDETERMINATE) + coefficientsy = express_getattr(self, 'CoefficientsY', INDETERMINATE) + coefficientsz = express_getattr(self, 'CoefficientsZ', INDETERMINATE) assert (exists(coefficientsx) and exists(coefficientsy) or (exists(coefficientsx) and exists(coefficientsz)) or (exists(coefficientsy) and exists(coefficientsz)) or (exists(coefficientsx) and exists(coefficientsy) and exists(coefficientsz))) is not False class IfcPositioningElement_HasPlacement: @@ -9837,7 +9847,7 @@ class IfcPositioningElement_HasPlacement: @staticmethod def __call__(self): - assert exists(getattr(self, 'ObjectPlacement', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'ObjectPlacement', INDETERMINATE)) is not False class IfcPostalAddress_WR1: SCOPE = 'entity' @@ -9846,13 +9856,13 @@ class IfcPostalAddress_WR1: @staticmethod def __call__(self): - internallocation = getattr(self, 'InternalLocation', INDETERMINATE) - addresslines = getattr(self, 'AddressLines', INDETERMINATE) - postalbox = getattr(self, 'PostalBox', INDETERMINATE) - town = getattr(self, 'Town', INDETERMINATE) - region = getattr(self, 'Region', INDETERMINATE) - postalcode = getattr(self, 'PostalCode', INDETERMINATE) - country = getattr(self, 'Country', INDETERMINATE) + internallocation = express_getattr(self, 'InternalLocation', INDETERMINATE) + addresslines = express_getattr(self, 'AddressLines', INDETERMINATE) + postalbox = express_getattr(self, 'PostalBox', INDETERMINATE) + town = express_getattr(self, 'Town', INDETERMINATE) + region = express_getattr(self, 'Region', INDETERMINATE) + postalcode = express_getattr(self, 'PostalCode', INDETERMINATE) + country = express_getattr(self, 'Country', INDETERMINATE) assert (exists(internallocation) or exists(addresslines) or exists(postalbox) or exists(postalcode) or exists(town) or exists(region) or exists(country)) is not False class IfcPresentationLayerAssignment_ApplicableItems: @@ -9862,7 +9872,7 @@ class IfcPresentationLayerAssignment_ApplicableItems: @staticmethod def __call__(self): - assigneditems = getattr(self, 'AssignedItems', INDETERMINATE) + assigneditems = express_getattr(self, 'AssignedItems', INDETERMINATE) assert (sizeof([temp for temp in assigneditems if sizeof(typeof(temp) * ['ifc4x3_tc1.ifcshaperepresentation', 'ifc4x3_tc1.ifcgeometricrepresentationitem', 'ifc4x3_tc1.ifcmappeditem']) == 1]) == sizeof(assigneditems)) is not False class IfcPresentationLayerWithStyle_ApplicableOnlyToItems: @@ -9872,7 +9882,7 @@ class IfcPresentationLayerWithStyle_ApplicableOnlyToItems: @staticmethod def __call__(self): - assigneditems = getattr(self, 'AssignedItems', INDETERMINATE) + assigneditems = express_getattr(self, 'AssignedItems', INDETERMINATE) assert (sizeof([temp for temp in assigneditems if sizeof(typeof(temp) * ['ifc4x3_tc1.ifcgeometricrepresentationitem', 'ifc4x3_tc1.ifcmappeditem']) >= 1]) == sizeof(assigneditems)) is not False class IfcProcedure_CorrectPredefinedType: @@ -9882,8 +9892,8 @@ class IfcProcedure_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProcedure_HasName: SCOPE = 'entity' @@ -9892,7 +9902,7 @@ class IfcProcedure_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcProcedureType_CorrectPredefinedType: SCOPE = 'entity' @@ -9901,8 +9911,8 @@ class IfcProcedureType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProcedureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcProduct_PlacementForShapeRepresentation: SCOPE = 'entity' @@ -9911,9 +9921,9 @@ class IfcProduct_PlacementForShapeRepresentation: @staticmethod def __call__(self): - objectplacement = getattr(self, 'ObjectPlacement', INDETERMINATE) - representation = getattr(self, 'Representation', INDETERMINATE) - assert (exists(representation) and exists(objectplacement) or (exists(representation) and sizeof([temp for temp in getattr(representation, 'Representations', INDETERMINATE) if 'ifc4x3_tc1.ifcshaperepresentation' in typeof(temp)]) == 0) or (not exists(representation))) is not False + objectplacement = express_getattr(self, 'ObjectPlacement', INDETERMINATE) + representation = express_getattr(self, 'Representation', INDETERMINATE) + assert (exists(representation) and exists(objectplacement) or (exists(representation) and sizeof([temp for temp in express_getattr(representation, 'Representations', INDETERMINATE) if 'ifc4x3_tc1.ifcshaperepresentation' in typeof(temp)]) == 0) or (not exists(representation))) is not False class IfcProductDefinitionShape_OnlyShapeModel: SCOPE = 'entity' @@ -9922,7 +9932,7 @@ class IfcProductDefinitionShape_OnlyShapeModel: @staticmethod def __call__(self): - representations = getattr(self, 'Representations', INDETERMINATE) + representations = express_getattr(self, 'Representations', INDETERMINATE) assert (sizeof([temp for temp in representations if not 'ifc4x3_tc1.ifcshapemodel' in typeof(temp)]) == 0) is not False class IfcProject_CorrectContext: @@ -9932,7 +9942,7 @@ class IfcProject_CorrectContext: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'RepresentationContexts', INDETERMINATE)) or sizeof([temp for temp in getattr(self, 'RepresentationContexts', INDETERMINATE) if 'ifc4x3_tc1.ifcgeometricrepresentationsubcontext' in typeof(temp)]) == 0) is not False + assert (not exists(express_getattr(self, 'RepresentationContexts', INDETERMINATE)) or sizeof([temp for temp in express_getattr(self, 'RepresentationContexts', INDETERMINATE) if 'ifc4x3_tc1.ifcgeometricrepresentationsubcontext' in typeof(temp)]) == 0) is not False class IfcProject_HasName: SCOPE = 'entity' @@ -9941,7 +9951,7 @@ class IfcProject_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcProject_NoDecomposition: SCOPE = 'entity' @@ -9950,7 +9960,7 @@ class IfcProject_NoDecomposition: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'Decomposes', INDETERMINATE)) == 0) is not False + assert (sizeof(express_getattr(self, 'Decomposes', INDETERMINATE)) == 0) is not False class IfcProjectedCRS_IsLengthUnit: SCOPE = 'entity' @@ -9959,8 +9969,8 @@ class IfcProjectedCRS_IsLengthUnit: @staticmethod def __call__(self): - mapunit = getattr(self, 'MapUnit', INDETERMINATE) - assert (not exists(mapunit) or getattr(mapunit, 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False + mapunit = express_getattr(self, 'MapUnit', INDETERMINATE) + assert (not exists(mapunit) or express_getattr(mapunit, 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False class IfcProjectionElement_CorrectPredefinedType: SCOPE = 'entity' @@ -9969,8 +9979,8 @@ class IfcProjectionElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProjectionElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPropertyBoundedValue_SameUnitLowerSet: SCOPE = 'entity' @@ -9979,8 +9989,8 @@ class IfcPropertyBoundedValue_SameUnitLowerSet: @staticmethod def __call__(self): - lowerboundvalue = getattr(self, 'LowerBoundValue', INDETERMINATE) - setpointvalue = getattr(self, 'SetPointValue', INDETERMINATE) + lowerboundvalue = express_getattr(self, 'LowerBoundValue', INDETERMINATE) + setpointvalue = express_getattr(self, 'SetPointValue', INDETERMINATE) assert (not exists(lowerboundvalue) or not exists(setpointvalue) or typeof(lowerboundvalue) == typeof(setpointvalue)) is not False class IfcPropertyBoundedValue_SameUnitUpperLower: @@ -9990,8 +10000,8 @@ class IfcPropertyBoundedValue_SameUnitUpperLower: @staticmethod def __call__(self): - upperboundvalue = getattr(self, 'UpperBoundValue', INDETERMINATE) - lowerboundvalue = getattr(self, 'LowerBoundValue', INDETERMINATE) + upperboundvalue = express_getattr(self, 'UpperBoundValue', INDETERMINATE) + lowerboundvalue = express_getattr(self, 'LowerBoundValue', INDETERMINATE) assert (not exists(upperboundvalue) or not exists(lowerboundvalue) or typeof(upperboundvalue) == typeof(lowerboundvalue)) is not False class IfcPropertyBoundedValue_SameUnitUpperSet: @@ -10001,8 +10011,8 @@ class IfcPropertyBoundedValue_SameUnitUpperSet: @staticmethod def __call__(self): - upperboundvalue = getattr(self, 'UpperBoundValue', INDETERMINATE) - setpointvalue = getattr(self, 'SetPointValue', INDETERMINATE) + upperboundvalue = express_getattr(self, 'UpperBoundValue', INDETERMINATE) + setpointvalue = express_getattr(self, 'SetPointValue', INDETERMINATE) assert (not exists(upperboundvalue) or not exists(setpointvalue) or typeof(upperboundvalue) == typeof(setpointvalue)) is not False class IfcPropertyDependencyRelationship_NoSelfReference: @@ -10012,8 +10022,8 @@ class IfcPropertyDependencyRelationship_NoSelfReference: @staticmethod def __call__(self): - dependingproperty = getattr(self, 'DependingProperty', INDETERMINATE) - dependantproperty = getattr(self, 'DependantProperty', INDETERMINATE) + dependingproperty = express_getattr(self, 'DependingProperty', INDETERMINATE) + dependantproperty = express_getattr(self, 'DependantProperty', INDETERMINATE) assert (dependingproperty != dependantproperty) is not False class IfcPropertyEnumeratedValue_WR21: @@ -10023,9 +10033,9 @@ class IfcPropertyEnumeratedValue_WR21: @staticmethod def __call__(self): - enumerationvalues = getattr(self, 'EnumerationValues', INDETERMINATE) - enumerationreference = getattr(self, 'EnumerationReference', INDETERMINATE) - assert (not exists(enumerationreference) or not exists(enumerationvalues) or sizeof([temp for temp in enumerationvalues if temp in getattr(enumerationreference, 'EnumerationValues', INDETERMINATE)]) == sizeof(enumerationvalues)) is not False + enumerationvalues = express_getattr(self, 'EnumerationValues', INDETERMINATE) + enumerationreference = express_getattr(self, 'EnumerationReference', INDETERMINATE) + assert (not exists(enumerationreference) or not exists(enumerationvalues) or sizeof([temp for temp in enumerationvalues if temp in express_getattr(enumerationreference, 'EnumerationValues', INDETERMINATE)]) == sizeof(enumerationvalues)) is not False class IfcPropertyEnumeration_WR01: SCOPE = 'entity' @@ -10034,7 +10044,7 @@ class IfcPropertyEnumeration_WR01: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'EnumerationValues', INDETERMINATE) if not typeof(express_getitem(getattr(self, 'EnumerationValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'EnumerationValues', INDETERMINATE) if not typeof(express_getitem(express_getattr(self, 'EnumerationValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False class IfcPropertyListValue_WR31: SCOPE = 'entity' @@ -10043,7 +10053,7 @@ class IfcPropertyListValue_WR31: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'ListValues', INDETERMINATE) if not typeof(express_getitem(getattr(self, 'ListValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'ListValues', INDETERMINATE) if not typeof(express_getitem(express_getattr(self, 'ListValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == typeof(temp)]) == 0) is not False class IfcPropertySet_ExistsName: SCOPE = 'entity' @@ -10052,7 +10062,7 @@ class IfcPropertySet_ExistsName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPropertySet_UniquePropertyNames: SCOPE = 'entity' @@ -10061,7 +10071,7 @@ class IfcPropertySet_UniquePropertyNames: @staticmethod def __call__(self): - hasproperties = getattr(self, 'HasProperties', INDETERMINATE) + hasproperties = express_getattr(self, 'HasProperties', INDETERMINATE) assert IfcUniquePropertyName(hasproperties) is not False class IfcPropertySetTemplate_ExistsName: @@ -10071,7 +10081,7 @@ class IfcPropertySetTemplate_ExistsName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcPropertySetTemplate_UniquePropertyNames: SCOPE = 'entity' @@ -10080,7 +10090,7 @@ class IfcPropertySetTemplate_UniquePropertyNames: @staticmethod def __call__(self): - haspropertytemplates = getattr(self, 'HasPropertyTemplates', INDETERMINATE) + haspropertytemplates = express_getattr(self, 'HasPropertyTemplates', INDETERMINATE) assert IfcUniquePropertyTemplateNames(haspropertytemplates) is not False class IfcPropertyTableValue_WR21: @@ -10090,8 +10100,8 @@ class IfcPropertyTableValue_WR21: @staticmethod def __call__(self): - definingvalues = getattr(self, 'DefiningValues', INDETERMINATE) - definedvalues = getattr(self, 'DefinedValues', INDETERMINATE) + definingvalues = express_getattr(self, 'DefiningValues', INDETERMINATE) + definedvalues = express_getattr(self, 'DefinedValues', INDETERMINATE) assert (not exists(definingvalues) and (not exists(definedvalues)) or sizeof(definingvalues) == sizeof(definedvalues)) is not False class IfcPropertyTableValue_WR22: @@ -10101,8 +10111,8 @@ class IfcPropertyTableValue_WR22: @staticmethod def __call__(self): - definingvalues = getattr(self, 'DefiningValues', INDETERMINATE) - assert (not exists(definingvalues) or sizeof([temp for temp in getattr(self, 'DefiningValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(getattr(self, 'DefiningValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False + definingvalues = express_getattr(self, 'DefiningValues', INDETERMINATE) + assert (not exists(definingvalues) or sizeof([temp for temp in express_getattr(self, 'DefiningValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(express_getattr(self, 'DefiningValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False class IfcPropertyTableValue_WR23: SCOPE = 'entity' @@ -10111,8 +10121,8 @@ class IfcPropertyTableValue_WR23: @staticmethod def __call__(self): - definedvalues = getattr(self, 'DefinedValues', INDETERMINATE) - assert (not exists(definedvalues) or sizeof([temp for temp in getattr(self, 'DefinedValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(getattr(self, 'DefinedValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False + definedvalues = express_getattr(self, 'DefinedValues', INDETERMINATE) + assert (not exists(definedvalues) or sizeof([temp for temp in express_getattr(self, 'DefinedValues', INDETERMINATE) if typeof(temp) != typeof(express_getitem(express_getattr(self, 'DefinedValues', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))]) == 0) is not False class IfcProtectiveDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -10121,8 +10131,8 @@ class IfcProtectiveDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProtectiveDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -10131,8 +10141,8 @@ class IfcProtectiveDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcprotectivedevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcprotectivedevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcProtectiveDeviceTrippingUnit_CorrectPredefinedType: SCOPE = 'entity' @@ -10141,8 +10151,8 @@ class IfcProtectiveDeviceTrippingUnit_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcProtectiveDeviceTrippingUnit_CorrectTypeAssigned: SCOPE = 'entity' @@ -10151,8 +10161,8 @@ class IfcProtectiveDeviceTrippingUnit_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcprotectivedevicetrippingunittype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcprotectivedevicetrippingunittype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcProtectiveDeviceTrippingUnitType_CorrectPredefinedType: SCOPE = 'entity' @@ -10161,8 +10171,8 @@ class IfcProtectiveDeviceTrippingUnitType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTrippingUnitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcProtectiveDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -10171,8 +10181,8 @@ class IfcProtectiveDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcProtectiveDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcPump_CorrectPredefinedType: SCOPE = 'entity' @@ -10181,8 +10191,8 @@ class IfcPump_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcPump_CorrectTypeAssigned: SCOPE = 'entity' @@ -10191,8 +10201,8 @@ class IfcPump_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcpumptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcpumptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcPumpType_CorrectPredefinedType: SCOPE = 'entity' @@ -10201,8 +10211,8 @@ class IfcPumpType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcPumpTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcQuantityArea_WR21: SCOPE = 'entity' @@ -10211,7 +10221,7 @@ class IfcQuantityArea_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'AREAUNIT', INDETERMINATE)) is not False class IfcQuantityArea_WR22: SCOPE = 'entity' @@ -10220,7 +10230,7 @@ class IfcQuantityArea_WR22: @staticmethod def __call__(self): - areavalue = getattr(self, 'AreaValue', INDETERMINATE) + areavalue = express_getattr(self, 'AreaValue', INDETERMINATE) assert (areavalue >= 0.0) is not False class IfcQuantityCount_WR21: @@ -10230,7 +10240,7 @@ class IfcQuantityCount_WR21: @staticmethod def __call__(self): - countvalue = getattr(self, 'CountValue', INDETERMINATE) + countvalue = express_getattr(self, 'CountValue', INDETERMINATE) assert (countvalue >= 0) is not False class IfcQuantityLength_WR21: @@ -10240,7 +10250,7 @@ class IfcQuantityLength_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'LENGTHUNIT', INDETERMINATE)) is not False class IfcQuantityLength_WR22: SCOPE = 'entity' @@ -10249,7 +10259,7 @@ class IfcQuantityLength_WR22: @staticmethod def __call__(self): - lengthvalue = getattr(self, 'LengthValue', INDETERMINATE) + lengthvalue = express_getattr(self, 'LengthValue', INDETERMINATE) assert (lengthvalue >= 0.0) is not False class IfcQuantityTime_WR21: @@ -10259,7 +10269,7 @@ class IfcQuantityTime_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'TIMEUNIT', INDETERMINATE)) is not False class IfcQuantityTime_WR22: SCOPE = 'entity' @@ -10268,7 +10278,7 @@ class IfcQuantityTime_WR22: @staticmethod def __call__(self): - timevalue = getattr(self, 'TimeValue', INDETERMINATE) + timevalue = express_getattr(self, 'TimeValue', INDETERMINATE) assert (timevalue >= 0.0) is not False class IfcQuantityVolume_WR21: @@ -10278,7 +10288,7 @@ class IfcQuantityVolume_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'VOLUMEUNIT', INDETERMINATE)) is not False class IfcQuantityVolume_WR22: SCOPE = 'entity' @@ -10287,7 +10297,7 @@ class IfcQuantityVolume_WR22: @staticmethod def __call__(self): - volumevalue = getattr(self, 'VolumeValue', INDETERMINATE) + volumevalue = express_getattr(self, 'VolumeValue', INDETERMINATE) assert (volumevalue >= 0.0) is not False class IfcQuantityWeight_WR21: @@ -10297,7 +10307,7 @@ class IfcQuantityWeight_WR21: @staticmethod def __call__(self): - assert (not exists(getattr(self, 'Unit', INDETERMINATE)) or getattr(getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE)) is not False + assert (not exists(express_getattr(self, 'Unit', INDETERMINATE)) or express_getattr(express_getattr(self, 'Unit', INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'MASSUNIT', INDETERMINATE)) is not False class IfcQuantityWeight_WR22: SCOPE = 'entity' @@ -10306,7 +10316,7 @@ class IfcQuantityWeight_WR22: @staticmethod def __call__(self): - weightvalue = getattr(self, 'WeightValue', INDETERMINATE) + weightvalue = express_getattr(self, 'WeightValue', INDETERMINATE) assert (weightvalue >= 0.0) is not False class IfcRail_CorrectPredefinedType: @@ -10316,8 +10326,8 @@ class IfcRail_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRail_CorrectTypeAssigned: SCOPE = 'entity' @@ -10326,8 +10336,8 @@ class IfcRail_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcrailtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcrailtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRailType_CorrectPredefinedType: SCOPE = 'entity' @@ -10336,8 +10346,8 @@ class IfcRailType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRailing_CorrectPredefinedType: SCOPE = 'entity' @@ -10346,8 +10356,8 @@ class IfcRailing_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRailing_CorrectTypeAssigned: SCOPE = 'entity' @@ -10356,8 +10366,8 @@ class IfcRailing_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcrailingtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcrailingtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRailingType_CorrectPredefinedType: SCOPE = 'entity' @@ -10366,8 +10376,8 @@ class IfcRailingType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailingTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRailway_CorrectPredefinedType: SCOPE = 'entity' @@ -10376,8 +10386,8 @@ class IfcRailway_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailwayTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRailwayPart_CorrectPredefinedType: SCOPE = 'entity' @@ -10386,8 +10396,8 @@ class IfcRailwayPart_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRailwayPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRamp_CorrectPredefinedType: SCOPE = 'entity' @@ -10396,8 +10406,8 @@ class IfcRamp_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRamp_CorrectTypeAssigned: SCOPE = 'entity' @@ -10406,8 +10416,8 @@ class IfcRamp_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcramptype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcramptype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRampFlight_CorrectPredefinedType: SCOPE = 'entity' @@ -10416,8 +10426,8 @@ class IfcRampFlight_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRampFlight_CorrectTypeAssigned: SCOPE = 'entity' @@ -10426,8 +10436,8 @@ class IfcRampFlight_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcrampflighttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcrampflighttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRampFlightType_CorrectPredefinedType: SCOPE = 'entity' @@ -10436,8 +10446,8 @@ class IfcRampFlightType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRampType_CorrectPredefinedType: SCOPE = 'entity' @@ -10446,8 +10456,8 @@ class IfcRampType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRampTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRationalBSplineCurveWithKnots_SameNumOfWeightsAndPoints: SCOPE = 'entity' @@ -10456,8 +10466,8 @@ class IfcRationalBSplineCurveWithKnots_SameNumOfWeightsAndPoints: @staticmethod def __call__(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - assert (sizeof(weightsdata) == sizeof(getattr(self, 'ControlPointsList', INDETERMINATE))) is not False + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + assert (sizeof(weightsdata) == sizeof(express_getattr(self, 'ControlPointsList', INDETERMINATE))) is not False class IfcRationalBSplineCurveWithKnots_WeightsGreaterZero: SCOPE = 'entity' @@ -10469,8 +10479,8 @@ class IfcRationalBSplineCurveWithKnots_WeightsGreaterZero: assert IfcCurveWeightsPositive(self) is not False def calc_IfcRationalBSplineCurveWithKnots_Weights(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - return IfcListToArray(weightsdata, 0, getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE)) + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + return IfcListToArray(weightsdata, 0, express_getattr(self, 'UpperIndexOnControlPoints', INDETERMINATE)) class IfcRationalBSplineSurfaceWithKnots_CorrespondingWeightsDataLists: SCOPE = 'entity' @@ -10479,8 +10489,8 @@ class IfcRationalBSplineSurfaceWithKnots_CorrespondingWeightsDataLists: @staticmethod def __call__(self): - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) - assert (sizeof(weightsdata) == sizeof(getattr(self, 'ControlPointsList', INDETERMINATE)) and sizeof(express_getitem(weightsdata, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == sizeof(express_getitem(getattr(self, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) + assert (sizeof(weightsdata) == sizeof(express_getattr(self, 'ControlPointsList', INDETERMINATE)) and sizeof(express_getitem(weightsdata, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == sizeof(express_getitem(express_getattr(self, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcRationalBSplineSurfaceWithKnots_WeightValuesGreaterZero: SCOPE = 'entity' @@ -10492,9 +10502,9 @@ class IfcRationalBSplineSurfaceWithKnots_WeightValuesGreaterZero: assert IfcSurfaceWeightsPositive(self) is not False def calc_IfcRationalBSplineSurfaceWithKnots_Weights(self): - uupper = getattr(self, 'UUpper', INDETERMINATE) - vupper = getattr(self, 'VUpper', INDETERMINATE) - weightsdata = getattr(self, 'WeightsData', INDETERMINATE) + uupper = express_getattr(self, 'UUpper', INDETERMINATE) + vupper = express_getattr(self, 'VUpper', INDETERMINATE) + weightsdata = express_getattr(self, 'WeightsData', INDETERMINATE) return IfcMakeArrayOfArray(weightsdata, 0, uupper, 0, vupper) class IfcRectangleHollowProfileDef_ValidInnerRadius: @@ -10504,9 +10514,9 @@ class IfcRectangleHollowProfileDef_ValidInnerRadius: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - innerfilletradius = getattr(self, 'InnerFilletRadius', INDETERMINATE) - assert (not exists(innerfilletradius) or (innerfilletradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 - wallthickness and innerfilletradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0 - wallthickness)) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + innerfilletradius = express_getattr(self, 'InnerFilletRadius', INDETERMINATE) + assert (not exists(innerfilletradius) or (innerfilletradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 - wallthickness and innerfilletradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0 - wallthickness)) is not False class IfcRectangleHollowProfileDef_ValidOuterRadius: SCOPE = 'entity' @@ -10515,8 +10525,8 @@ class IfcRectangleHollowProfileDef_ValidOuterRadius: @staticmethod def __call__(self): - outerfilletradius = getattr(self, 'OuterFilletRadius', INDETERMINATE) - assert (not exists(outerfilletradius) or (outerfilletradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 and outerfilletradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0)) is not False + outerfilletradius = express_getattr(self, 'OuterFilletRadius', INDETERMINATE) + assert (not exists(outerfilletradius) or (outerfilletradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and outerfilletradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0)) is not False class IfcRectangleHollowProfileDef_ValidWallThickness: SCOPE = 'entity' @@ -10525,8 +10535,8 @@ class IfcRectangleHollowProfileDef_ValidWallThickness: @staticmethod def __call__(self): - wallthickness = getattr(self, 'WallThickness', INDETERMINATE) - assert (wallthickness < getattr(self, 'XDim', INDETERMINATE) / 2.0 and wallthickness < getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False + wallthickness = express_getattr(self, 'WallThickness', INDETERMINATE) + assert (wallthickness < express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and wallthickness < express_getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False class IfcRectangularTrimmedSurface_U1AndU2Different: SCOPE = 'entity' @@ -10535,8 +10545,8 @@ class IfcRectangularTrimmedSurface_U1AndU2Different: @staticmethod def __call__(self): - u1 = getattr(self, 'U1', INDETERMINATE) - u2 = getattr(self, 'U2', INDETERMINATE) + u1 = express_getattr(self, 'U1', INDETERMINATE) + u2 = express_getattr(self, 'U2', INDETERMINATE) assert (u1 != u2) is not False class IfcRectangularTrimmedSurface_UsenseCompatible: @@ -10546,10 +10556,10 @@ class IfcRectangularTrimmedSurface_UsenseCompatible: @staticmethod def __call__(self): - basissurface = getattr(self, 'BasisSurface', INDETERMINATE) - u1 = getattr(self, 'U1', INDETERMINATE) - u2 = getattr(self, 'U2', INDETERMINATE) - usense = getattr(self, 'Usense', INDETERMINATE) + basissurface = express_getattr(self, 'BasisSurface', INDETERMINATE) + u1 = express_getattr(self, 'U1', INDETERMINATE) + u2 = express_getattr(self, 'U2', INDETERMINATE) + usense = express_getattr(self, 'Usense', INDETERMINATE) assert ('ifc4x3_tc1.ifcelementarysurface' in typeof(basissurface) and (not 'ifc4x3_tc1.ifcplane' in typeof(basissurface)) or 'ifc4x3_tc1.ifcsurfaceofrevolution' in typeof(basissurface) or usense == (u2 > u1)) is not False class IfcRectangularTrimmedSurface_V1AndV2Different: @@ -10559,8 +10569,8 @@ class IfcRectangularTrimmedSurface_V1AndV2Different: @staticmethod def __call__(self): - v1 = getattr(self, 'V1', INDETERMINATE) - v2 = getattr(self, 'V2', INDETERMINATE) + v1 = express_getattr(self, 'V1', INDETERMINATE) + v2 = express_getattr(self, 'V2', INDETERMINATE) assert (v1 != v2) is not False class IfcRectangularTrimmedSurface_VsenseCompatible: @@ -10570,9 +10580,9 @@ class IfcRectangularTrimmedSurface_VsenseCompatible: @staticmethod def __call__(self): - v1 = getattr(self, 'V1', INDETERMINATE) - v2 = getattr(self, 'V2', INDETERMINATE) - vsense = getattr(self, 'Vsense', INDETERMINATE) + v1 = express_getattr(self, 'V1', INDETERMINATE) + v2 = express_getattr(self, 'V2', INDETERMINATE) + vsense = express_getattr(self, 'Vsense', INDETERMINATE) assert (vsense == (v2 > v1)) is not False class IfcReinforcedSoil_CorrectPredefinedType: @@ -10582,8 +10592,8 @@ class IfcReinforcedSoil_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcedSoilTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingBar_CorrectPredefinedType: SCOPE = 'entity' @@ -10592,8 +10602,8 @@ class IfcReinforcingBar_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingBar_CorrectTypeAssigned: SCOPE = 'entity' @@ -10602,8 +10612,8 @@ class IfcReinforcingBar_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcreinforcingbartype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcreinforcingbartype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcReinforcingBarType_BendingShapeCodeProvided: SCOPE = 'entity' @@ -10612,8 +10622,8 @@ class IfcReinforcingBarType_BendingShapeCodeProvided: @staticmethod def __call__(self): - bendingshapecode = getattr(self, 'BendingShapeCode', INDETERMINATE) - bendingparameters = getattr(self, 'BendingParameters', INDETERMINATE) + bendingshapecode = express_getattr(self, 'BendingShapeCode', INDETERMINATE) + bendingparameters = express_getattr(self, 'BendingParameters', INDETERMINATE) assert (not exists(bendingparameters) or exists(bendingshapecode)) is not False class IfcReinforcingBarType_CorrectPredefinedType: @@ -10623,8 +10633,8 @@ class IfcReinforcingBarType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingBarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcReinforcingMesh_CorrectPredefinedType: SCOPE = 'entity' @@ -10633,8 +10643,8 @@ class IfcReinforcingMesh_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcReinforcingMesh_CorrectTypeAssigned: SCOPE = 'entity' @@ -10643,8 +10653,8 @@ class IfcReinforcingMesh_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcreinforcingmeshtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcreinforcingmeshtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcReinforcingMeshType_BendingShapeCodeProvided: SCOPE = 'entity' @@ -10653,8 +10663,8 @@ class IfcReinforcingMeshType_BendingShapeCodeProvided: @staticmethod def __call__(self): - bendingshapecode = getattr(self, 'BendingShapeCode', INDETERMINATE) - bendingparameters = getattr(self, 'BendingParameters', INDETERMINATE) + bendingshapecode = express_getattr(self, 'BendingShapeCode', INDETERMINATE) + bendingparameters = express_getattr(self, 'BendingParameters', INDETERMINATE) assert (not exists(bendingparameters) or exists(bendingshapecode)) is not False class IfcReinforcingMeshType_CorrectPredefinedType: @@ -10664,8 +10674,8 @@ class IfcReinforcingMeshType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcReinforcingMeshTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRelAggregates_NoSelfReference: SCOPE = 'entity' @@ -10674,8 +10684,8 @@ class IfcRelAggregates_NoSelfReference: @staticmethod def __call__(self): - relatingobject = getattr(self, 'RelatingObject', INDETERMINATE) - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) + relatingobject = express_getattr(self, 'RelatingObject', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) assert (sizeof([temp for temp in relatedobjects if relatingobject == temp]) == 0) is not False class IfcRelAssignsToActor_NoSelfReference: @@ -10685,8 +10695,8 @@ class IfcRelAssignsToActor_NoSelfReference: @staticmethod def __call__(self): - relatingactor = getattr(self, 'RelatingActor', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingactor == temp]) == 0) is not False + relatingactor = express_getattr(self, 'RelatingActor', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingactor == temp]) == 0) is not False class IfcRelAssignsToControl_NoSelfReference: SCOPE = 'entity' @@ -10695,8 +10705,8 @@ class IfcRelAssignsToControl_NoSelfReference: @staticmethod def __call__(self): - relatingcontrol = getattr(self, 'RelatingControl', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingcontrol == temp]) == 0) is not False + relatingcontrol = express_getattr(self, 'RelatingControl', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingcontrol == temp]) == 0) is not False class IfcRelAssignsToGroup_NoSelfReference: SCOPE = 'entity' @@ -10705,8 +10715,8 @@ class IfcRelAssignsToGroup_NoSelfReference: @staticmethod def __call__(self): - relatinggroup = getattr(self, 'RelatingGroup', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatinggroup == temp]) == 0) is not False + relatinggroup = express_getattr(self, 'RelatingGroup', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatinggroup == temp]) == 0) is not False class IfcRelAssignsToProcess_NoSelfReference: SCOPE = 'entity' @@ -10715,8 +10725,8 @@ class IfcRelAssignsToProcess_NoSelfReference: @staticmethod def __call__(self): - relatingprocess = getattr(self, 'RelatingProcess', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingprocess == temp]) == 0) is not False + relatingprocess = express_getattr(self, 'RelatingProcess', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingprocess == temp]) == 0) is not False class IfcRelAssignsToProduct_NoSelfReference: SCOPE = 'entity' @@ -10725,8 +10735,8 @@ class IfcRelAssignsToProduct_NoSelfReference: @staticmethod def __call__(self): - relatingproduct = getattr(self, 'RelatingProduct', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingproduct == temp]) == 0) is not False + relatingproduct = express_getattr(self, 'RelatingProduct', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingproduct == temp]) == 0) is not False class IfcRelAssignsToResource_NoSelfReference: SCOPE = 'entity' @@ -10735,8 +10745,8 @@ class IfcRelAssignsToResource_NoSelfReference: @staticmethod def __call__(self): - relatingresource = getattr(self, 'RelatingResource', INDETERMINATE) - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if relatingresource == temp]) == 0) is not False + relatingresource = express_getattr(self, 'RelatingResource', INDETERMINATE) + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if relatingresource == temp]) == 0) is not False class IfcRelAssociatesMaterial_AllowedElements: SCOPE = 'entity' @@ -10745,7 +10755,7 @@ class IfcRelAssociatesMaterial_AllowedElements: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if sizeof(typeof(temp) * ['ifc4x3_tc1.ifcelement', 'ifc4x3_tc1.ifcelementtype', 'ifc4x3_tc1.ifcstructuralmember', 'ifc4x3_tc1.ifcport']) == 0]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if sizeof(typeof(temp) * ['ifc4x3_tc1.ifcelement', 'ifc4x3_tc1.ifcelementtype', 'ifc4x3_tc1.ifcstructuralmember', 'ifc4x3_tc1.ifcport']) == 0]) == 0) is not False class IfcRelAssociatesMaterial_NoVoidElement: SCOPE = 'entity' @@ -10754,7 +10764,7 @@ class IfcRelAssociatesMaterial_NoVoidElement: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3_tc1.ifcfeatureelementsubtraction' in typeof(temp) or 'ifc4x3_tc1.ifcvirtualelement' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3_tc1.ifcfeatureelementsubtraction' in typeof(temp) or 'ifc4x3_tc1.ifcvirtualelement' in typeof(temp)]) == 0) is not False class IfcRelConnectsElements_NoSelfReference: SCOPE = 'entity' @@ -10763,8 +10773,8 @@ class IfcRelConnectsElements_NoSelfReference: @staticmethod def __call__(self): - relatingelement = getattr(self, 'RelatingElement', INDETERMINATE) - relatedelement = getattr(self, 'RelatedElement', INDETERMINATE) + relatingelement = express_getattr(self, 'RelatingElement', INDETERMINATE) + relatedelement = express_getattr(self, 'RelatedElement', INDETERMINATE) assert (relatingelement != relatedelement) is not False class IfcRelConnectsPathElements_NormalizedRelatedPriorities: @@ -10774,7 +10784,7 @@ class IfcRelConnectsPathElements_NormalizedRelatedPriorities: @staticmethod def __call__(self): - relatedpriorities = getattr(self, 'RelatedPriorities', INDETERMINATE) + relatedpriorities = express_getattr(self, 'RelatedPriorities', INDETERMINATE) assert (sizeof(relatedpriorities) == 0 or sizeof([temp for temp in relatedpriorities if 0 <= temp <= 100]) == sizeof(relatedpriorities)) is not False class IfcRelConnectsPathElements_NormalizedRelatingPriorities: @@ -10784,7 +10794,7 @@ class IfcRelConnectsPathElements_NormalizedRelatingPriorities: @staticmethod def __call__(self): - relatingpriorities = getattr(self, 'RelatingPriorities', INDETERMINATE) + relatingpriorities = express_getattr(self, 'RelatingPriorities', INDETERMINATE) assert (sizeof(relatingpriorities) == 0 or sizeof([temp for temp in relatingpriorities if 0 <= temp <= 100]) == sizeof(relatingpriorities)) is not False class IfcRelConnectsPorts_NoSelfReference: @@ -10794,8 +10804,8 @@ class IfcRelConnectsPorts_NoSelfReference: @staticmethod def __call__(self): - relatingport = getattr(self, 'RelatingPort', INDETERMINATE) - relatedport = getattr(self, 'RelatedPort', INDETERMINATE) + relatingport = express_getattr(self, 'RelatingPort', INDETERMINATE) + relatedport = express_getattr(self, 'RelatedPort', INDETERMINATE) assert (relatingport != relatedport) is not False class IfcRelContainedInSpatialStructure_WR31: @@ -10805,7 +10815,7 @@ class IfcRelContainedInSpatialStructure_WR31: @staticmethod def __call__(self): - relatedelements = getattr(self, 'RelatedElements', INDETERMINATE) + relatedelements = express_getattr(self, 'RelatedElements', INDETERMINATE) assert (sizeof([temp for temp in relatedelements if 'ifc4x3_tc1.ifcspatialstructureelement' in typeof(temp)]) == 0) is not False class IfcRelDeclares_NoSelfReference: @@ -10815,8 +10825,8 @@ class IfcRelDeclares_NoSelfReference: @staticmethod def __call__(self): - relatingcontext = getattr(self, 'RelatingContext', INDETERMINATE) - relateddefinitions = getattr(self, 'RelatedDefinitions', INDETERMINATE) + relatingcontext = express_getattr(self, 'RelatingContext', INDETERMINATE) + relateddefinitions = express_getattr(self, 'RelatedDefinitions', INDETERMINATE) assert (sizeof([temp for temp in relateddefinitions if relatingcontext == temp]) == 0) is not False class IfcRelDefinesByProperties_NoRelatedTypeObject: @@ -10826,7 +10836,7 @@ class IfcRelDefinesByProperties_NoRelatedTypeObject: @staticmethod def __call__(self): - assert (sizeof([types for types in getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3_tc1.ifctypeobject' in typeof(types)]) == 0) is not False + assert (sizeof([types for types in express_getattr(self, 'RelatedObjects', INDETERMINATE) if 'ifc4x3_tc1.ifctypeobject' in typeof(types)]) == 0) is not False class IfcRelInterferesElements_NoSelfReference: SCOPE = 'entity' @@ -10835,8 +10845,8 @@ class IfcRelInterferesElements_NoSelfReference: @staticmethod def __call__(self): - relatingelement = getattr(self, 'RelatingElement', INDETERMINATE) - relatedelement = getattr(self, 'RelatedElement', INDETERMINATE) + relatingelement = express_getattr(self, 'RelatingElement', INDETERMINATE) + relatedelement = express_getattr(self, 'RelatedElement', INDETERMINATE) assert (relatingelement != relatedelement) is not False class IfcRelNests_NoSelfReference: @@ -10846,8 +10856,8 @@ class IfcRelNests_NoSelfReference: @staticmethod def __call__(self): - relatingobject = getattr(self, 'RelatingObject', INDETERMINATE) - relatedobjects = getattr(self, 'RelatedObjects', INDETERMINATE) + relatingobject = express_getattr(self, 'RelatingObject', INDETERMINATE) + relatedobjects = express_getattr(self, 'RelatedObjects', INDETERMINATE) assert (sizeof([temp for temp in relatedobjects if relatingobject == temp]) == 0) is not False class IfcRelPositions_NoSelfReference: @@ -10857,8 +10867,8 @@ class IfcRelPositions_NoSelfReference: @staticmethod def __call__(self): - relatingpositioningelement = getattr(self, 'RelatingPositioningElement', INDETERMINATE) - relatedproducts = getattr(self, 'RelatedProducts', INDETERMINATE) + relatingpositioningelement = express_getattr(self, 'RelatingPositioningElement', INDETERMINATE) + relatedproducts = express_getattr(self, 'RelatedProducts', INDETERMINATE) assert (sizeof([temp for temp in relatedproducts if relatingpositioningelement == temp]) == 0) is not False class IfcRelReferencedInSpatialStructure_AllowedRelatedElements: @@ -10868,7 +10878,7 @@ class IfcRelReferencedInSpatialStructure_AllowedRelatedElements: @staticmethod def __call__(self): - relatedelements = getattr(self, 'RelatedElements', INDETERMINATE) + relatedelements = express_getattr(self, 'RelatedElements', INDETERMINATE) assert (sizeof([temp for temp in relatedelements if 'ifc4x3_tc1.ifcspatialstructureelement' in typeof(temp) and (not 'ifc4x3_tc1.ifcspace' in typeof(temp))]) == 0) is not False class IfcRelSequence_AvoidInconsistentSequence: @@ -10878,8 +10888,8 @@ class IfcRelSequence_AvoidInconsistentSequence: @staticmethod def __call__(self): - relatingprocess = getattr(self, 'RelatingProcess', INDETERMINATE) - relatedprocess = getattr(self, 'RelatedProcess', INDETERMINATE) + relatingprocess = express_getattr(self, 'RelatingProcess', INDETERMINATE) + relatedprocess = express_getattr(self, 'RelatedProcess', INDETERMINATE) assert (relatingprocess != relatedprocess) is not False class IfcRelSequence_CorrectSequenceType: @@ -10889,9 +10899,9 @@ class IfcRelSequence_CorrectSequenceType: @staticmethod def __call__(self): - sequencetype = getattr(self, 'SequenceType', INDETERMINATE) - userdefinedsequencetype = getattr(self, 'UserDefinedSequenceType', INDETERMINATE) - assert (sequencetype != getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) or (sequencetype == getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedsequencetype))) is not False + sequencetype = express_getattr(self, 'SequenceType', INDETERMINATE) + userdefinedsequencetype = express_getattr(self, 'UserDefinedSequenceType', INDETERMINATE) + assert (sequencetype != express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) or (sequencetype == express_getattr(IfcSequenceEnum, 'USERDEFINED', INDETERMINATE) and exists(userdefinedsequencetype))) is not False class IfcRelSpaceBoundary_CorrectPhysOrVirt: SCOPE = 'entity' @@ -10900,9 +10910,9 @@ class IfcRelSpaceBoundary_CorrectPhysOrVirt: @staticmethod def __call__(self): - relatedbuildingelement = getattr(self, 'RelatedBuildingElement', INDETERMINATE) - physicalorvirtualboundary = getattr(self, 'PhysicalOrVirtualBoundary', INDETERMINATE) - assert (physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'Physical', INDETERMINATE) and (not 'ifc4x3_tc1.ifcvirtualelement' in typeof(relatedbuildingelement)) or (physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'Virtual', INDETERMINATE) and ('ifc4x3_tc1.ifcvirtualelement' in typeof(relatedbuildingelement) or 'ifc4x3_tc1.ifcopeningelement' in typeof(relatedbuildingelement))) or physicalorvirtualboundary == getattr(IfcPhysicalOrVirtualEnum, 'NotDefined', INDETERMINATE)) is not False + relatedbuildingelement = express_getattr(self, 'RelatedBuildingElement', INDETERMINATE) + physicalorvirtualboundary = express_getattr(self, 'PhysicalOrVirtualBoundary', INDETERMINATE) + assert (physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'Physical', INDETERMINATE) and (not 'ifc4x3_tc1.ifcvirtualelement' in typeof(relatedbuildingelement)) or (physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'Virtual', INDETERMINATE) and ('ifc4x3_tc1.ifcvirtualelement' in typeof(relatedbuildingelement) or 'ifc4x3_tc1.ifcopeningelement' in typeof(relatedbuildingelement))) or physicalorvirtualboundary == express_getattr(IfcPhysicalOrVirtualEnum, 'NotDefined', INDETERMINATE)) is not False class IfcReparametrisedCompositeCurveSegment_PositiveLengthParameter: SCOPE = 'entity' @@ -10911,7 +10921,7 @@ class IfcReparametrisedCompositeCurveSegment_PositiveLengthParameter: @staticmethod def __call__(self): - paramlength = getattr(self, 'ParamLength', INDETERMINATE) + paramlength = express_getattr(self, 'ParamLength', INDETERMINATE) assert (paramlength > 0.0) is not False class IfcRepresentationMap_ApplicableMappedRepr: @@ -10921,7 +10931,7 @@ class IfcRepresentationMap_ApplicableMappedRepr: @staticmethod def __call__(self): - mappedrepresentation = getattr(self, 'MappedRepresentation', INDETERMINATE) + mappedrepresentation = express_getattr(self, 'MappedRepresentation', INDETERMINATE) assert ('ifc4x3_tc1.ifcshapemodel' in typeof(mappedrepresentation)) is not False class IfcRevolvedAreaSolid_AxisDirectionInXY: @@ -10931,8 +10941,8 @@ class IfcRevolvedAreaSolid_AxisDirectionInXY: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert (express_getitem(getattr(getattr(axis, 'Z', INDETERMINATE), 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert (express_getitem(express_getattr(express_getattr(axis, 'Z', INDETERMINATE), 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False class IfcRevolvedAreaSolid_AxisStartInXY: SCOPE = 'entity' @@ -10941,12 +10951,12 @@ class IfcRevolvedAreaSolid_AxisStartInXY: @staticmethod def __call__(self): - axis = getattr(self, 'Axis', INDETERMINATE) - assert ('ifc4x3_tc1.ifccartesianpoint' in typeof(getattr(axis, 'Location', INDETERMINATE)) and express_getitem(getattr(getattr(axis, 'Location', INDETERMINATE), 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False + axis = express_getattr(self, 'Axis', INDETERMINATE) + assert ('ifc4x3_tc1.ifccartesianpoint' in typeof(express_getattr(axis, 'Location', INDETERMINATE)) and express_getitem(express_getattr(express_getattr(axis, 'Location', INDETERMINATE), 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) == 0.0) is not False def calc_IfcRevolvedAreaSolid_AxisLine(self): - axis = getattr(self, 'Axis', INDETERMINATE) - return IfcLine(Pnt=getattr(axis, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=getattr(axis, 'Z', INDETERMINATE), Magnitude=1.0)) + axis = express_getattr(self, 'Axis', INDETERMINATE) + return IfcLine(Pnt=express_getattr(axis, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=express_getattr(axis, 'Z', INDETERMINATE), Magnitude=1.0)) class IfcRevolvedAreaSolidTapered_CorrectProfileAssignment: SCOPE = 'entity' @@ -10955,7 +10965,7 @@ class IfcRevolvedAreaSolidTapered_CorrectProfileAssignment: @staticmethod def __call__(self): - assert IfcTaperedSweptAreaProfiles(getattr(self, 'SweptArea', INDETERMINATE), getattr(self, 'EndSweptArea', INDETERMINATE)) is not False + assert IfcTaperedSweptAreaProfiles(express_getattr(self, 'SweptArea', INDETERMINATE), express_getattr(self, 'EndSweptArea', INDETERMINATE)) is not False class IfcRoad_CorrectPredefinedType: SCOPE = 'entity' @@ -10964,8 +10974,8 @@ class IfcRoad_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoadTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRoadPart_CorrectPredefinedType: SCOPE = 'entity' @@ -10974,8 +10984,8 @@ class IfcRoadPart_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoadPartTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRoof_CorrectPredefinedType: SCOPE = 'entity' @@ -10984,8 +10994,8 @@ class IfcRoof_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcRoof_CorrectTypeAssigned: SCOPE = 'entity' @@ -10994,8 +11004,8 @@ class IfcRoof_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcrooftype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcrooftype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcRoofType_CorrectPredefinedType: SCOPE = 'entity' @@ -11004,8 +11014,8 @@ class IfcRoofType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcRoofTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcRoundedRectangleProfileDef_ValidRadius: SCOPE = 'entity' @@ -11014,11 +11024,11 @@ class IfcRoundedRectangleProfileDef_ValidRadius: @staticmethod def __call__(self): - roundingradius = getattr(self, 'RoundingRadius', INDETERMINATE) - assert (roundingradius <= getattr(self, 'XDim', INDETERMINATE) / 2.0 and roundingradius <= getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False + roundingradius = express_getattr(self, 'RoundingRadius', INDETERMINATE) + assert (roundingradius <= express_getattr(self, 'XDim', INDETERMINATE) / 2.0 and roundingradius <= express_getattr(self, 'YDim', INDETERMINATE) / 2.0) is not False def calc_IfcSIUnit_Dimensions(self): - return IfcDimensionsForSIUnit(getattr(self, 'Name', INDETERMINATE)) + return IfcDimensionsForSIUnit(express_getattr(self, 'Name', INDETERMINATE)) class IfcSanitaryTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -11027,8 +11037,8 @@ class IfcSanitaryTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSanitaryTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -11037,8 +11047,8 @@ class IfcSanitaryTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcsanitaryterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcsanitaryterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSanitaryTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -11047,8 +11057,8 @@ class IfcSanitaryTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSanitaryTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSeamCurve_SameSurface: SCOPE = 'entity' @@ -11057,7 +11067,7 @@ class IfcSeamCurve_SameSurface: @staticmethod def __call__(self): - assert (IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == IfcAssociatedSurface(express_getitem(getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) == IfcAssociatedSurface(express_getitem(express_getattr(self, 'AssociatedGeometry', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcSeamCurve_TwoPCurves: SCOPE = 'entity' @@ -11066,7 +11076,7 @@ class IfcSeamCurve_TwoPCurves: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False + assert (sizeof(express_getattr(self, 'AssociatedGeometry', INDETERMINATE)) == 2) is not False class IfcSectionedSolid_ConsistentProfileTypes: SCOPE = 'entity' @@ -11075,8 +11085,8 @@ class IfcSectionedSolid_ConsistentProfileTypes: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - assert (sizeof([temp for temp in crosssections if getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + assert (sizeof([temp for temp in crosssections if express_getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != express_getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcSectionedSolid_DirectrixIs3D: SCOPE = 'entity' @@ -11085,8 +11095,8 @@ class IfcSectionedSolid_DirectrixIs3D: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - assert (getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + assert (express_getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False class IfcSectionedSolid_SectionsSameType: SCOPE = 'entity' @@ -11095,7 +11105,7 @@ class IfcSectionedSolid_SectionsSameType: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) assert (sizeof([temp for temp in crosssections if typeof(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(temp)]) == 0) is not False class IfcSectionedSolidHorizontal_CorrespondingSectionPositions: @@ -11105,8 +11115,8 @@ class IfcSectionedSolidHorizontal_CorrespondingSectionPositions: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) assert (sizeof(crosssections) == sizeof(crosssectionpositions)) is not False class IfcSectionedSolidHorizontal_NoLongitudinalOffsets: @@ -11116,8 +11126,8 @@ class IfcSectionedSolidHorizontal_NoLongitudinalOffsets: @staticmethod def __call__(self): - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) - assert (sizeof([temp for temp in crosssectionpositions if exists(getattr(getattr(temp, 'Location', INDETERMINATE), 'OffsetLongitudinal', INDETERMINATE))]) == 0) is not False + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) + assert (sizeof([temp for temp in crosssectionpositions if exists(express_getattr(express_getattr(temp, 'Location', INDETERMINATE), 'OffsetLongitudinal', INDETERMINATE))]) == 0) is not False class IfcSectionedSpine_ConsistentProfileTypes: SCOPE = 'entity' @@ -11126,8 +11136,8 @@ class IfcSectionedSpine_ConsistentProfileTypes: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - assert (sizeof([temp for temp in crosssections if getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + assert (sizeof([temp for temp in crosssections if express_getattr(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ProfileType', INDETERMINATE) != express_getattr(temp, 'ProfileType', INDETERMINATE)]) == 0) is not False class IfcSectionedSpine_CorrespondingSectionPositions: SCOPE = 'entity' @@ -11136,8 +11146,8 @@ class IfcSectionedSpine_CorrespondingSectionPositions: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) assert (sizeof(crosssections) == sizeof(crosssectionpositions)) is not False class IfcSectionedSpine_SpineCurveDim: @@ -11147,8 +11157,8 @@ class IfcSectionedSpine_SpineCurveDim: @staticmethod def __call__(self): - spinecurve = getattr(self, 'SpineCurve', INDETERMINATE) - assert (getattr(spinecurve, 'Dim', INDETERMINATE) == 3) is not False + spinecurve = express_getattr(self, 'SpineCurve', INDETERMINATE) + assert (express_getattr(spinecurve, 'Dim', INDETERMINATE) == 3) is not False def calc_IfcSectionedSpine_Dim(self): return 3 @@ -11160,8 +11170,8 @@ class IfcSectionedSurface_AreaProfileTypes: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) - assert (sizeof([temp for temp in crosssections if getattr(temp, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)]) == 0) is not False + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) + assert (sizeof([temp for temp in crosssections if express_getattr(temp, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'CURVE', INDETERMINATE)]) == 0) is not False class IfcSectionedSurface_CorrespondingSectionPositions: SCOPE = 'entity' @@ -11170,8 +11180,8 @@ class IfcSectionedSurface_CorrespondingSectionPositions: @staticmethod def __call__(self): - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) - crosssections = getattr(self, 'CrossSections', INDETERMINATE) + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) assert (sizeof(crosssections) == sizeof(crosssectionpositions)) is not False class IfcSectionedSurface_DirectrixIs3D: @@ -11181,8 +11191,8 @@ class IfcSectionedSurface_DirectrixIs3D: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - assert (getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + assert (express_getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False class IfcSectionedSurface_NoOffsets: SCOPE = 'entity' @@ -11191,8 +11201,8 @@ class IfcSectionedSurface_NoOffsets: @staticmethod def __call__(self): - crosssectionpositions = getattr(self, 'CrossSectionPositions', INDETERMINATE) - assert (sizeof([temp for temp in crosssectionpositions if exists(getattr(getattr(temp, 'Location', INDETERMINATE), 'OffsetLateral', INDETERMINATE)) or exists(getattr(getattr(temp, 'Location', INDETERMINATE), 'OffsetVertical', INDETERMINATE)) or exists(getattr(getattr(temp, 'Location', INDETERMINATE), 'OffsetLongitudinal', INDETERMINATE))]) == 0) is not False + crosssectionpositions = express_getattr(self, 'CrossSectionPositions', INDETERMINATE) + assert (sizeof([temp for temp in crosssectionpositions if exists(express_getattr(express_getattr(temp, 'Location', INDETERMINATE), 'OffsetLateral', INDETERMINATE)) or exists(express_getattr(express_getattr(temp, 'Location', INDETERMINATE), 'OffsetVertical', INDETERMINATE)) or exists(express_getattr(express_getattr(temp, 'Location', INDETERMINATE), 'OffsetLongitudinal', INDETERMINATE))]) == 0) is not False class IfcSectionedSurface_SectionsSameType: SCOPE = 'entity' @@ -11201,7 +11211,7 @@ class IfcSectionedSurface_SectionsSameType: @staticmethod def __call__(self): - crosssections = getattr(self, 'CrossSections', INDETERMINATE) + crosssections = express_getattr(self, 'CrossSections', INDETERMINATE) assert (sizeof([temp for temp in crosssections if typeof(express_getitem(crosssections, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(temp)]) == 0) is not False def calc_IfcSegment_Dim(self): @@ -11214,8 +11224,8 @@ class IfcSensor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSensor_CorrectTypeAssigned: SCOPE = 'entity' @@ -11224,8 +11234,8 @@ class IfcSensor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcsensortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcsensortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSensorType_CorrectPredefinedType: SCOPE = 'entity' @@ -11234,8 +11244,8 @@ class IfcSensorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSensorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcShadingDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -11244,8 +11254,8 @@ class IfcShadingDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcShadingDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -11254,8 +11264,8 @@ class IfcShadingDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcshadingdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcshadingdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcShadingDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11264,8 +11274,8 @@ class IfcShadingDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcShadingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcShapeModel_WR11: SCOPE = 'entity' @@ -11274,8 +11284,8 @@ class IfcShapeModel_WR11: @staticmethod def __call__(self): - ofshapeaspect = getattr(self, 'OfShapeAspect', INDETERMINATE) - assert (sizeof(getattr(self, 'OfProductRepresentation', INDETERMINATE)) == 1) ^ (sizeof(getattr(self, 'RepresentationMap', INDETERMINATE)) == 1) ^ (sizeof(ofshapeaspect) == 1) is not False + ofshapeaspect = express_getattr(self, 'OfShapeAspect', INDETERMINATE) + assert (sizeof(express_getattr(self, 'OfProductRepresentation', INDETERMINATE)) == 1) ^ (sizeof(express_getattr(self, 'RepresentationMap', INDETERMINATE)) == 1) ^ (sizeof(ofshapeaspect) == 1) is not False class IfcShapeRepresentation_CorrectContext: SCOPE = 'entity' @@ -11284,7 +11294,7 @@ class IfcShapeRepresentation_CorrectContext: @staticmethod def __call__(self): - assert ('ifc4x3_tc1.ifcgeometricrepresentationcontext' in typeof(getattr(self, 'ContextOfItems', INDETERMINATE))) is not False + assert ('ifc4x3_tc1.ifcgeometricrepresentationcontext' in typeof(express_getattr(self, 'ContextOfItems', INDETERMINATE))) is not False class IfcShapeRepresentation_CorrectItemsForType: SCOPE = 'entity' @@ -11293,7 +11303,7 @@ class IfcShapeRepresentation_CorrectItemsForType: @staticmethod def __call__(self): - assert IfcShapeRepresentationTypes(getattr(self, 'RepresentationType', INDETERMINATE), getattr(self, 'Items', INDETERMINATE)) is not False + assert IfcShapeRepresentationTypes(express_getattr(self, 'RepresentationType', INDETERMINATE), express_getattr(self, 'Items', INDETERMINATE)) is not False class IfcShapeRepresentation_HasRepresentationIdentifier: SCOPE = 'entity' @@ -11302,7 +11312,7 @@ class IfcShapeRepresentation_HasRepresentationIdentifier: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationIdentifier', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationIdentifier', INDETERMINATE)) is not False class IfcShapeRepresentation_HasRepresentationType: SCOPE = 'entity' @@ -11311,7 +11321,7 @@ class IfcShapeRepresentation_HasRepresentationType: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationType', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationType', INDETERMINATE)) is not False class IfcShapeRepresentation_NoTopologicalItem: SCOPE = 'entity' @@ -11320,7 +11330,7 @@ class IfcShapeRepresentation_NoTopologicalItem: @staticmethod def __call__(self): - items = getattr(self, 'Items', INDETERMINATE) + items = express_getattr(self, 'Items', INDETERMINATE) assert (sizeof([temp for temp in items if 'ifc4x3_tc1.ifctopologicalrepresentationitem' in typeof(temp) and (not sizeof(['ifc4x3_tc1.ifcvertexpoint', 'ifc4x3_tc1.ifcedgecurve', 'ifc4x3_tc1.ifcfacesurface'] * typeof(temp)) == 1)]) == 0) is not False def calc_IfcShellBasedSurfaceModel_Dim(self): @@ -11333,8 +11343,8 @@ class IfcSign_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSign_CorrectTypeAssigned: SCOPE = 'entity' @@ -11343,8 +11353,8 @@ class IfcSign_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcsigntype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcsigntype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSignType_CorrectPredefinedType: SCOPE = 'entity' @@ -11353,8 +11363,8 @@ class IfcSignType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSignal_CorrectPredefinedType: SCOPE = 'entity' @@ -11363,8 +11373,8 @@ class IfcSignal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSignal_CorrectTypeAssigned: SCOPE = 'entity' @@ -11373,8 +11383,8 @@ class IfcSignal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcsignaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcsignaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSignalType_CorrectPredefinedType: SCOPE = 'entity' @@ -11383,8 +11393,8 @@ class IfcSignalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSignalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSlab_CorrectPredefinedType: SCOPE = 'entity' @@ -11393,8 +11403,8 @@ class IfcSlab_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSlab_CorrectTypeAssigned: SCOPE = 'entity' @@ -11403,8 +11413,8 @@ class IfcSlab_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcslabtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcslabtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSlabType_CorrectPredefinedType: SCOPE = 'entity' @@ -11413,8 +11423,8 @@ class IfcSlabType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSlabTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSolarDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -11423,8 +11433,8 @@ class IfcSolarDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSolarDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -11433,8 +11443,8 @@ class IfcSolarDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcsolardevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcsolardevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSolarDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11443,8 +11453,8 @@ class IfcSolarDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSolarDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcSolidModel_Dim(self): return 3 @@ -11456,8 +11466,8 @@ class IfcSpace_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpace_CorrectTypeAssigned: SCOPE = 'entity' @@ -11466,8 +11476,8 @@ class IfcSpace_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcspacetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcspacetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpaceHeater_CorrectPredefinedType: SCOPE = 'entity' @@ -11476,8 +11486,8 @@ class IfcSpaceHeater_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpaceHeater_CorrectTypeAssigned: SCOPE = 'entity' @@ -11486,8 +11496,8 @@ class IfcSpaceHeater_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcspaceheatertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcspaceheatertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpaceHeaterType_CorrectPredefinedType: SCOPE = 'entity' @@ -11496,8 +11506,8 @@ class IfcSpaceHeaterType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceHeaterTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSpaceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11506,8 +11516,8 @@ class IfcSpaceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpaceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSpatialStructureElement_WR41: SCOPE = 'entity' @@ -11516,7 +11526,7 @@ class IfcSpatialStructureElement_WR41: @staticmethod def __call__(self): - assert (hiindex(getattr(self, 'Decomposes', INDETERMINATE)) == 1 and 'ifc4x3_tc1.ifcrelaggregates' in typeof(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_tc1.ifcproject' in typeof(getattr(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)) or 'ifc4x3_tc1.ifcspatialstructureelement' in typeof(getattr(express_getitem(getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)))) is not False + assert (hiindex(express_getattr(self, 'Decomposes', INDETERMINATE)) == 1 and 'ifc4x3_tc1.ifcrelaggregates' in typeof(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and ('ifc4x3_tc1.ifcproject' in typeof(express_getattr(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)) or 'ifc4x3_tc1.ifcspatialstructureelement' in typeof(express_getattr(express_getitem(express_getattr(self, 'Decomposes', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingObject', INDETERMINATE)))) is not False class IfcSpatialZone_CorrectPredefinedType: SCOPE = 'entity' @@ -11525,8 +11535,8 @@ class IfcSpatialZone_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSpatialZone_CorrectTypeAssigned: SCOPE = 'entity' @@ -11535,8 +11545,8 @@ class IfcSpatialZone_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcspatialzonetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcspatialzonetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSpatialZoneType_CorrectPredefinedType: SCOPE = 'entity' @@ -11545,8 +11555,8 @@ class IfcSpatialZoneType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSpatialZoneTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStackTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -11555,8 +11565,8 @@ class IfcStackTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStackTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -11565,8 +11575,8 @@ class IfcStackTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcstackterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcstackterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStackTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -11575,8 +11585,8 @@ class IfcStackTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStackTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStair_CorrectPredefinedType: SCOPE = 'entity' @@ -11585,8 +11595,8 @@ class IfcStair_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStair_CorrectTypeAssigned: SCOPE = 'entity' @@ -11595,8 +11605,8 @@ class IfcStair_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcstairtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcstairtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStairFlight_CorrectPredefinedType: SCOPE = 'entity' @@ -11605,8 +11615,8 @@ class IfcStairFlight_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStairFlight_CorrectTypeAssigned: SCOPE = 'entity' @@ -11615,8 +11625,8 @@ class IfcStairFlight_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcstairflighttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcstairflighttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcStairFlightType_CorrectPredefinedType: SCOPE = 'entity' @@ -11625,8 +11635,8 @@ class IfcStairFlightType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairFlightTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStairType_CorrectPredefinedType: SCOPE = 'entity' @@ -11635,8 +11645,8 @@ class IfcStairType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcStairTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcStructuralAnalysisModel_CorrectPredefinedType: SCOPE = 'entity' @@ -11645,8 +11655,8 @@ class IfcStructuralAnalysisModel_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcAnalysisModelTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcStructuralCurveAction_HasObjectType: SCOPE = 'entity' @@ -11655,8 +11665,8 @@ class IfcStructuralCurveAction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveAction_ProjectedIsGlobal: SCOPE = 'entity' @@ -11665,8 +11675,8 @@ class IfcStructuralCurveAction_ProjectedIsGlobal: @staticmethod def __call__(self): - projectedortrue = getattr(self, 'ProjectedOrTrue', INDETERMINATE) - assert (not exists(projectedortrue) or (projectedortrue != projected_length or getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False + projectedortrue = express_getattr(self, 'ProjectedOrTrue', INDETERMINATE) + assert (not exists(projectedortrue) or (projectedortrue != projected_length or express_getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False class IfcStructuralCurveAction_SuitablePredefinedType: SCOPE = 'entity' @@ -11675,8 +11685,8 @@ class IfcStructuralCurveAction_SuitablePredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE)) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'EQUIDISTANT', INDETERMINATE)) is not False class IfcStructuralCurveMember_HasObjectType: SCOPE = 'entity' @@ -11685,8 +11695,8 @@ class IfcStructuralCurveMember_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveReaction_HasObjectType: SCOPE = 'entity' @@ -11695,8 +11705,8 @@ class IfcStructuralCurveReaction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralCurveReaction_SuitablePredefinedType: SCOPE = 'entity' @@ -11705,8 +11715,8 @@ class IfcStructuralCurveReaction_SuitablePredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) and predefinedtype != getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE)) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'SINUS', INDETERMINATE) and predefinedtype != express_getattr(IfcStructuralCurveActivityTypeEnum, 'PARABOLA', INDETERMINATE)) is not False class IfcStructuralLinearAction_ConstPredefinedType: SCOPE = 'entity' @@ -11715,7 +11725,7 @@ class IfcStructuralLinearAction_ConstPredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcStructuralCurveActivityTypeEnum, 'CONST', INDETERMINATE)) is not False class IfcStructuralLinearAction_SuitableLoadType: SCOPE = 'entity' @@ -11724,7 +11734,7 @@ class IfcStructuralLinearAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_tc1.ifcstructuralloadlinearforce', 'ifc4x3_tc1.ifcstructuralloadtemperature'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_tc1.ifcstructuralloadlinearforce', 'ifc4x3_tc1.ifcstructuralloadtemperature'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralLoadCase_IsLoadCasePredefinedType: SCOPE = 'entity' @@ -11733,7 +11743,7 @@ class IfcStructuralLoadCase_IsLoadCasePredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcLoadGroupTypeEnum, 'LOAD_CASE', INDETERMINATE)) is not False class IfcStructuralLoadConfiguration_ValidListSize: SCOPE = 'entity' @@ -11742,8 +11752,8 @@ class IfcStructuralLoadConfiguration_ValidListSize: @staticmethod def __call__(self): - values = getattr(self, 'Values', INDETERMINATE) - locations = getattr(self, 'Locations', INDETERMINATE) + values = express_getattr(self, 'Values', INDETERMINATE) + locations = express_getattr(self, 'Locations', INDETERMINATE) assert (not exists(locations) or sizeof(locations) == sizeof(values)) is not False class IfcStructuralLoadGroup_HasObjectType: @@ -11753,10 +11763,10 @@ class IfcStructuralLoadGroup_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - actiontype = getattr(self, 'ActionType', INDETERMINATE) - actionsource = getattr(self, 'ActionSource', INDETERMINATE) - assert (predefinedtype != getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) and actiontype != getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) and (actionsource != getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE)) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + actiontype = express_getattr(self, 'ActionType', INDETERMINATE) + actionsource = express_getattr(self, 'ActionSource', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcLoadGroupTypeEnum, 'USERDEFINED', INDETERMINATE) and actiontype != express_getattr(IfcActionTypeEnum, 'USERDEFINED', INDETERMINATE) and (actionsource != express_getattr(IfcActionSourceTypeEnum, 'USERDEFINED', INDETERMINATE)) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralPlanarAction_ConstPredefinedType: SCOPE = 'entity' @@ -11765,7 +11775,7 @@ class IfcStructuralPlanarAction_ConstPredefinedType: @staticmethod def __call__(self): - assert (getattr(self, 'PredefinedType', INDETERMINATE) == getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE)) is not False + assert (express_getattr(self, 'PredefinedType', INDETERMINATE) == express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'CONST', INDETERMINATE)) is not False class IfcStructuralPlanarAction_SuitableLoadType: SCOPE = 'entity' @@ -11774,7 +11784,7 @@ class IfcStructuralPlanarAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_tc1.ifcstructuralloadplanarforce', 'ifc4x3_tc1.ifcstructuralloadtemperature'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_tc1.ifcstructuralloadplanarforce', 'ifc4x3_tc1.ifcstructuralloadtemperature'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralPointAction_SuitableLoadType: SCOPE = 'entity' @@ -11783,7 +11793,7 @@ class IfcStructuralPointAction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_tc1.ifcstructuralloadsingleforce', 'ifc4x3_tc1.ifcstructuralloadsingledisplacement'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_tc1.ifcstructuralloadsingleforce', 'ifc4x3_tc1.ifcstructuralloadsingledisplacement'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralPointReaction_SuitableLoadType: SCOPE = 'entity' @@ -11792,7 +11802,7 @@ class IfcStructuralPointReaction_SuitableLoadType: @staticmethod def __call__(self): - assert (sizeof(['ifc4x3_tc1.ifcstructuralloadsingleforce', 'ifc4x3_tc1.ifcstructuralloadsingledisplacement'] * typeof(getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False + assert (sizeof(['ifc4x3_tc1.ifcstructuralloadsingleforce', 'ifc4x3_tc1.ifcstructuralloadsingledisplacement'] * typeof(express_getattr(self, 'AppliedLoad', INDETERMINATE))) == 1) is not False class IfcStructuralResultGroup_HasObjectType: SCOPE = 'entity' @@ -11801,8 +11811,8 @@ class IfcStructuralResultGroup_HasObjectType: @staticmethod def __call__(self): - theorytype = getattr(self, 'TheoryType', INDETERMINATE) - assert (theorytype != getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + theorytype = express_getattr(self, 'TheoryType', INDETERMINATE) + assert (theorytype != express_getattr(IfcAnalysisTheoryTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceAction_HasObjectType: SCOPE = 'entity' @@ -11811,8 +11821,8 @@ class IfcStructuralSurfaceAction_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceAction_ProjectedIsGlobal: SCOPE = 'entity' @@ -11821,8 +11831,8 @@ class IfcStructuralSurfaceAction_ProjectedIsGlobal: @staticmethod def __call__(self): - projectedortrue = getattr(self, 'ProjectedOrTrue', INDETERMINATE) - assert (not exists(projectedortrue) or (projectedortrue != projected_length or getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False + projectedortrue = express_getattr(self, 'ProjectedOrTrue', INDETERMINATE) + assert (not exists(projectedortrue) or (projectedortrue != projected_length or express_getattr(self, 'GlobalOrLocal', INDETERMINATE) == global_coords)) is not False class IfcStructuralSurfaceMember_HasObjectType: SCOPE = 'entity' @@ -11831,8 +11841,8 @@ class IfcStructuralSurfaceMember_HasObjectType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceMemberTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStructuralSurfaceReaction_HasPredefinedType: SCOPE = 'entity' @@ -11841,8 +11851,8 @@ class IfcStructuralSurfaceReaction_HasPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(getattr(self, 'ObjectType', INDETERMINATE))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcStructuralSurfaceActivityTypeEnum, 'USERDEFINED', INDETERMINATE) or exists(express_getattr(self, 'ObjectType', INDETERMINATE))) is not False class IfcStyledItem_ApplicableItem: SCOPE = 'entity' @@ -11851,7 +11861,7 @@ class IfcStyledItem_ApplicableItem: @staticmethod def __call__(self): - item = getattr(self, 'Item', INDETERMINATE) + item = express_getattr(self, 'Item', INDETERMINATE) assert (not 'ifc4x3_tc1.ifcstyleditem' in typeof(item)) is not False class IfcStyledRepresentation_OnlyStyledItems: @@ -11861,7 +11871,7 @@ class IfcStyledRepresentation_OnlyStyledItems: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3_tc1.ifcstyleditem' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3_tc1.ifcstyleditem' in typeof(temp)]) == 0) is not False class IfcSubContractResource_CorrectPredefinedType: SCOPE = 'entity' @@ -11870,8 +11880,8 @@ class IfcSubContractResource_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSubContractResourceType_CorrectPredefinedType: SCOPE = 'entity' @@ -11880,8 +11890,8 @@ class IfcSubContractResourceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ResourceType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSubContractResourceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ResourceType', INDETERMINATE)))) is not False def calc_IfcSurface_Dim(self): return 3 @@ -11893,8 +11903,8 @@ class IfcSurfaceCurve_CurveIs3D: @staticmethod def __call__(self): - curve3d = getattr(self, 'Curve3D', INDETERMINATE) - assert (getattr(curve3d, 'Dim', INDETERMINATE) == 3) is not False + curve3d = express_getattr(self, 'Curve3D', INDETERMINATE) + assert (express_getattr(curve3d, 'Dim', INDETERMINATE) == 3) is not False class IfcSurfaceCurve_CurveIsNotPcurve: SCOPE = 'entity' @@ -11903,7 +11913,7 @@ class IfcSurfaceCurve_CurveIsNotPcurve: @staticmethod def __call__(self): - curve3d = getattr(self, 'Curve3D', INDETERMINATE) + curve3d = express_getattr(self, 'Curve3D', INDETERMINATE) assert (not 'ifc4x3_tc1.ifcpcurve' in typeof(curve3d)) is not False def calc_IfcSurfaceCurve_BasisSurface(self): @@ -11916,8 +11926,8 @@ class IfcSurfaceFeature_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSurfaceFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSurfaceOfLinearExtrusion_DepthGreaterZero: SCOPE = 'entity' @@ -11926,17 +11936,17 @@ class IfcSurfaceOfLinearExtrusion_DepthGreaterZero: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) assert (depth > 0.0) is not False def calc_IfcSurfaceOfLinearExtrusion_ExtrusionAxis(self): - extrudeddirection = getattr(self, 'ExtrudedDirection', INDETERMINATE) - depth = getattr(self, 'Depth', INDETERMINATE) + extrudeddirection = express_getattr(self, 'ExtrudedDirection', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) return IfcVector(Orientation=extrudeddirection, Magnitude=depth) def calc_IfcSurfaceOfRevolution_AxisLine(self): - axisposition = getattr(self, 'AxisPosition', INDETERMINATE) - return IfcLine(Pnt=getattr(axisposition, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=getattr(axisposition, 'Z', INDETERMINATE), Magnitude=1.0)) + axisposition = express_getattr(self, 'AxisPosition', INDETERMINATE) + return IfcLine(Pnt=express_getattr(axisposition, 'Location', INDETERMINATE), Dir=IfcVector(Orientation=express_getattr(axisposition, 'Z', INDETERMINATE), Magnitude=1.0)) class IfcSurfaceReinforcementArea_NonnegativeArea1: SCOPE = 'entity' @@ -11945,7 +11955,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea1: @staticmethod def __call__(self): - surfacereinforcement1 = getattr(self, 'SurfaceReinforcement1', INDETERMINATE) + surfacereinforcement1 = express_getattr(self, 'SurfaceReinforcement1', INDETERMINATE) assert (not exists(surfacereinforcement1) or (express_getitem(surfacereinforcement1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and express_getitem(surfacereinforcement1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and (sizeof(surfacereinforcement1) == 1 or express_getitem(surfacereinforcement1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0))) is not False class IfcSurfaceReinforcementArea_NonnegativeArea2: @@ -11955,7 +11965,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea2: @staticmethod def __call__(self): - surfacereinforcement2 = getattr(self, 'SurfaceReinforcement2', INDETERMINATE) + surfacereinforcement2 = express_getattr(self, 'SurfaceReinforcement2', INDETERMINATE) assert (not exists(surfacereinforcement2) or (express_getitem(surfacereinforcement2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and express_getitem(surfacereinforcement2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0 and (sizeof(surfacereinforcement2) == 1 or express_getitem(surfacereinforcement2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) >= 0.0))) is not False class IfcSurfaceReinforcementArea_NonnegativeArea3: @@ -11965,7 +11975,7 @@ class IfcSurfaceReinforcementArea_NonnegativeArea3: @staticmethod def __call__(self): - shearreinforcement = getattr(self, 'ShearReinforcement', INDETERMINATE) + shearreinforcement = express_getattr(self, 'ShearReinforcement', INDETERMINATE) assert (not exists(shearreinforcement) or shearreinforcement >= 0.0) is not False class IfcSurfaceReinforcementArea_SurfaceAndOrShearAreaSpecified: @@ -11975,9 +11985,9 @@ class IfcSurfaceReinforcementArea_SurfaceAndOrShearAreaSpecified: @staticmethod def __call__(self): - surfacereinforcement1 = getattr(self, 'SurfaceReinforcement1', INDETERMINATE) - surfacereinforcement2 = getattr(self, 'SurfaceReinforcement2', INDETERMINATE) - shearreinforcement = getattr(self, 'ShearReinforcement', INDETERMINATE) + surfacereinforcement1 = express_getattr(self, 'SurfaceReinforcement1', INDETERMINATE) + surfacereinforcement2 = express_getattr(self, 'SurfaceReinforcement2', INDETERMINATE) + shearreinforcement = express_getattr(self, 'ShearReinforcement', INDETERMINATE) assert (exists(surfacereinforcement1) or exists(surfacereinforcement2) or exists(shearreinforcement)) is not False class IfcSurfaceStyle_MaxOneExtDefined: @@ -11987,7 +11997,7 @@ class IfcSurfaceStyle_MaxOneExtDefined: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_tc1.ifcexternallydefinedsurfacestyle' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_tc1.ifcexternallydefinedsurfacestyle' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneLighting: SCOPE = 'entity' @@ -11996,7 +12006,7 @@ class IfcSurfaceStyle_MaxOneLighting: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_tc1.ifcsurfacestylelighting' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_tc1.ifcsurfacestylelighting' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneRefraction: SCOPE = 'entity' @@ -12005,7 +12015,7 @@ class IfcSurfaceStyle_MaxOneRefraction: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_tc1.ifcsurfacestylerefraction' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_tc1.ifcsurfacestylerefraction' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneShading: SCOPE = 'entity' @@ -12014,7 +12024,7 @@ class IfcSurfaceStyle_MaxOneShading: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_tc1.ifcsurfacestyleshading' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_tc1.ifcsurfacestyleshading' in typeof(style)]) <= 1) is not False class IfcSurfaceStyle_MaxOneTextures: SCOPE = 'entity' @@ -12023,7 +12033,7 @@ class IfcSurfaceStyle_MaxOneTextures: @staticmethod def __call__(self): - assert (sizeof([style for style in getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_tc1.ifcsurfacestylewithtextures' in typeof(style)]) <= 1) is not False + assert (sizeof([style for style in express_getattr(self, 'Styles', INDETERMINATE) if 'ifc4x3_tc1.ifcsurfacestylewithtextures' in typeof(style)]) <= 1) is not False class IfcSweptAreaSolid_SweptAreaType: SCOPE = 'entity' @@ -12032,8 +12042,8 @@ class IfcSweptAreaSolid_SweptAreaType: @staticmethod def __call__(self): - sweptarea = getattr(self, 'SweptArea', INDETERMINATE) - assert (getattr(sweptarea, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'Area', INDETERMINATE)) is not False + sweptarea = express_getattr(self, 'SweptArea', INDETERMINATE) + assert (express_getattr(sweptarea, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'Area', INDETERMINATE)) is not False class IfcSweptDiskSolid_DirectrixBounded: SCOPE = 'entity' @@ -12042,9 +12052,9 @@ class IfcSweptDiskSolid_DirectrixBounded: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - startparam = getattr(self, 'StartParam', INDETERMINATE) - endparam = getattr(self, 'EndParam', INDETERMINATE) + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + startparam = express_getattr(self, 'StartParam', INDETERMINATE) + endparam = express_getattr(self, 'EndParam', INDETERMINATE) assert (exists(startparam) and exists(endparam) or sizeof(['ifc4x3_tc1.ifcconic', 'ifc4x3_tc1.ifcboundedcurve'] * typeof(directrix)) == 1) is not False class IfcSweptDiskSolid_DirectrixDim: @@ -12054,8 +12064,8 @@ class IfcSweptDiskSolid_DirectrixDim: @staticmethod def __call__(self): - directrix = getattr(self, 'Directrix', INDETERMINATE) - assert (getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False + directrix = express_getattr(self, 'Directrix', INDETERMINATE) + assert (express_getattr(directrix, 'Dim', INDETERMINATE) == 3) is not False class IfcSweptDiskSolid_InnerRadiusSize: SCOPE = 'entity' @@ -12064,8 +12074,8 @@ class IfcSweptDiskSolid_InnerRadiusSize: @staticmethod def __call__(self): - radius = getattr(self, 'Radius', INDETERMINATE) - innerradius = getattr(self, 'InnerRadius', INDETERMINATE) + radius = express_getattr(self, 'Radius', INDETERMINATE) + innerradius = express_getattr(self, 'InnerRadius', INDETERMINATE) assert (not exists(innerradius) or radius > innerradius) is not False class IfcSweptDiskSolidPolygonal_CorrectRadii: @@ -12075,8 +12085,8 @@ class IfcSweptDiskSolidPolygonal_CorrectRadii: @staticmethod def __call__(self): - filletradius = getattr(self, 'FilletRadius', INDETERMINATE) - assert (not exists(filletradius) or filletradius >= getattr(self, 'Radius', INDETERMINATE)) is not False + filletradius = express_getattr(self, 'FilletRadius', INDETERMINATE) + assert (not exists(filletradius) or filletradius >= express_getattr(self, 'Radius', INDETERMINATE)) is not False class IfcSweptDiskSolidPolygonal_DirectrixIsPolyline: SCOPE = 'entity' @@ -12085,7 +12095,7 @@ class IfcSweptDiskSolidPolygonal_DirectrixIsPolyline: @staticmethod def __call__(self): - assert ('ifc4x3_tc1.ifcpolyline' in typeof(getattr(self, 'Directrix', INDETERMINATE)) or ('ifc4x3_tc1.ifcindexedpolycurve' in typeof(getattr(self, 'Directrix', INDETERMINATE)) and (not exists(getattr(getattr(self, 'Directrix', INDETERMINATE), 'Segments', INDETERMINATE))))) is not False + assert ('ifc4x3_tc1.ifcpolyline' in typeof(express_getattr(self, 'Directrix', INDETERMINATE)) or ('ifc4x3_tc1.ifcindexedpolycurve' in typeof(express_getattr(self, 'Directrix', INDETERMINATE)) and (not exists(express_getattr(express_getattr(self, 'Directrix', INDETERMINATE), 'Segments', INDETERMINATE))))) is not False class IfcSweptSurface_SweptCurveType: SCOPE = 'entity' @@ -12094,8 +12104,8 @@ class IfcSweptSurface_SweptCurveType: @staticmethod def __call__(self): - sweptcurve = getattr(self, 'SweptCurve', INDETERMINATE) - assert (getattr(sweptcurve, 'ProfileType', INDETERMINATE) == getattr(IfcProfileTypeEnum, 'Curve', INDETERMINATE)) is not False + sweptcurve = express_getattr(self, 'SweptCurve', INDETERMINATE) + assert (express_getattr(sweptcurve, 'ProfileType', INDETERMINATE) == express_getattr(IfcProfileTypeEnum, 'Curve', INDETERMINATE)) is not False class IfcSwitchingDevice_CorrectPredefinedType: SCOPE = 'entity' @@ -12104,8 +12114,8 @@ class IfcSwitchingDevice_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSwitchingDevice_CorrectTypeAssigned: SCOPE = 'entity' @@ -12114,8 +12124,8 @@ class IfcSwitchingDevice_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcswitchingdevicetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcswitchingdevicetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSwitchingDeviceType_CorrectPredefinedType: SCOPE = 'entity' @@ -12124,8 +12134,8 @@ class IfcSwitchingDeviceType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSwitchingDeviceTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcSystemFurnitureElement_CorrectPredefinedType: SCOPE = 'entity' @@ -12134,8 +12144,8 @@ class IfcSystemFurnitureElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcSystemFurnitureElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12144,8 +12154,8 @@ class IfcSystemFurnitureElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcsystemfurnitureelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcsystemfurnitureelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcSystemFurnitureElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12154,8 +12164,8 @@ class IfcSystemFurnitureElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcSystemFurnitureElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -12164,8 +12174,8 @@ class IfcTShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth) is not False class IfcTShapeProfileDef_ValidWebThickness: @@ -12175,8 +12185,8 @@ class IfcTShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - flangewidth = getattr(self, 'FlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + flangewidth = express_getattr(self, 'FlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < flangewidth) is not False class IfcTable_WR1: @@ -12186,8 +12196,8 @@ class IfcTable_WR1: @staticmethod def __call__(self): - rows = getattr(self, 'Rows', INDETERMINATE) - assert (sizeof([temp for temp in rows if hiindex(getattr(temp, 'RowCells', INDETERMINATE)) != hiindex(getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE))]) == 0) is not False + rows = express_getattr(self, 'Rows', INDETERMINATE) + assert (sizeof([temp for temp in rows if hiindex(express_getattr(temp, 'RowCells', INDETERMINATE)) != hiindex(express_getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE))]) == 0) is not False class IfcTable_WR2: SCOPE = 'entity' @@ -12196,20 +12206,20 @@ class IfcTable_WR2: @staticmethod def __call__(self): - numberofheadings = getattr(self, 'NumberOfHeadings', INDETERMINATE) + numberofheadings = express_getattr(self, 'NumberOfHeadings', INDETERMINATE) assert (0 <= numberofheadings <= 1) is not False def calc_IfcTable_NumberOfCellsInRow(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return hiindex(getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE)) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return hiindex(express_getattr(express_getitem(rows, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RowCells', INDETERMINATE)) def calc_IfcTable_NumberOfHeadings(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return sizeof([temp for temp in rows if getattr(temp, 'IsHeading', INDETERMINATE)]) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return sizeof([temp for temp in rows if express_getattr(temp, 'IsHeading', INDETERMINATE)]) def calc_IfcTable_NumberOfDataRows(self): - rows = getattr(self, 'Rows', INDETERMINATE) - return sizeof([temp for temp in rows if not getattr(temp, 'IsHeading', INDETERMINATE)]) + rows = express_getattr(self, 'Rows', INDETERMINATE) + return sizeof([temp for temp in rows if not express_getattr(temp, 'IsHeading', INDETERMINATE)]) class IfcTank_CorrectPredefinedType: SCOPE = 'entity' @@ -12218,8 +12228,8 @@ class IfcTank_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTank_CorrectTypeAssigned: SCOPE = 'entity' @@ -12228,8 +12238,8 @@ class IfcTank_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifctanktype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifctanktype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTankType_CorrectPredefinedType: SCOPE = 'entity' @@ -12238,8 +12248,8 @@ class IfcTankType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTankTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTask_CorrectPredefinedType: SCOPE = 'entity' @@ -12248,8 +12258,8 @@ class IfcTask_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTask_HasName: SCOPE = 'entity' @@ -12258,7 +12268,7 @@ class IfcTask_HasName: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcTaskType_CorrectPredefinedType: SCOPE = 'entity' @@ -12267,8 +12277,8 @@ class IfcTaskType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ProcessType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTaskTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ProcessType', INDETERMINATE)))) is not False class IfcTelecomAddress_MinimumDataProvided: SCOPE = 'entity' @@ -12277,12 +12287,12 @@ class IfcTelecomAddress_MinimumDataProvided: @staticmethod def __call__(self): - telephonenumbers = getattr(self, 'TelephoneNumbers', INDETERMINATE) - facsimilenumbers = getattr(self, 'FacsimileNumbers', INDETERMINATE) - pagernumber = getattr(self, 'PagerNumber', INDETERMINATE) - electronicmailaddresses = getattr(self, 'ElectronicMailAddresses', INDETERMINATE) - wwwhomepageurl = getattr(self, 'WWWHomePageURL', INDETERMINATE) - messagingids = getattr(self, 'MessagingIDs', INDETERMINATE) + telephonenumbers = express_getattr(self, 'TelephoneNumbers', INDETERMINATE) + facsimilenumbers = express_getattr(self, 'FacsimileNumbers', INDETERMINATE) + pagernumber = express_getattr(self, 'PagerNumber', INDETERMINATE) + electronicmailaddresses = express_getattr(self, 'ElectronicMailAddresses', INDETERMINATE) + wwwhomepageurl = express_getattr(self, 'WWWHomePageURL', INDETERMINATE) + messagingids = express_getattr(self, 'MessagingIDs', INDETERMINATE) assert (exists(telephonenumbers) or exists(facsimilenumbers) or exists(pagernumber) or exists(electronicmailaddresses) or exists(wwwhomepageurl) or exists(messagingids)) is not False class IfcTendon_CorrectPredefinedType: @@ -12292,8 +12302,8 @@ class IfcTendon_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendon_CorrectTypeAssigned: SCOPE = 'entity' @@ -12302,8 +12312,8 @@ class IfcTendon_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifctendontype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifctendontype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonAnchor_CorrectPredefinedType: SCOPE = 'entity' @@ -12312,8 +12322,8 @@ class IfcTendonAnchor_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendonAnchor_CorrectTypeAssigned: SCOPE = 'entity' @@ -12322,8 +12332,8 @@ class IfcTendonAnchor_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifctendonanchortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifctendonanchortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonAnchorType_CorrectPredefinedType: SCOPE = 'entity' @@ -12332,8 +12342,8 @@ class IfcTendonAnchorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonAnchorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTendonConduit_CorrectPredefinedType: SCOPE = 'entity' @@ -12342,8 +12352,8 @@ class IfcTendonConduit_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTendonConduit_CorrectTypeAssigned: SCOPE = 'entity' @@ -12352,8 +12362,8 @@ class IfcTendonConduit_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifctendonconduittype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifctendonconduittype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTendonConduitType_CorrectPredefinedType: SCOPE = 'entity' @@ -12362,8 +12372,8 @@ class IfcTendonConduitType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonConduitTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTendonType_CorrectPredefinedType: SCOPE = 'entity' @@ -12372,8 +12382,8 @@ class IfcTendonType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTendonTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcTessellatedFaceSet_Dim(self): return 3 @@ -12385,7 +12395,7 @@ class IfcTextLiteralWithExtent_WR31: @staticmethod def __call__(self): - extent = getattr(self, 'Extent', INDETERMINATE) + extent = express_getattr(self, 'Extent', INDETERMINATE) assert (not 'ifc4x3_tc1.ifcplanarbox' in typeof(extent)) is not False class IfcTextStyleFontModel_MeasureOfFontSize: @@ -12395,7 +12405,7 @@ class IfcTextStyleFontModel_MeasureOfFontSize: @staticmethod def __call__(self): - assert ('ifc4x3_tc1.ifclengthmeasure' in typeof(getattr(self, 'FontSize', INDETERMINATE)) and getattr(self, 'FontSize', INDETERMINATE) > 0.0) is not False + assert ('ifc4x3_tc1.ifclengthmeasure' in typeof(express_getattr(self, 'FontSize', INDETERMINATE)) and express_getattr(self, 'FontSize', INDETERMINATE) > 0.0) is not False class IfcTopologyRepresentation_WR21: SCOPE = 'entity' @@ -12404,7 +12414,7 @@ class IfcTopologyRepresentation_WR21: @staticmethod def __call__(self): - assert (sizeof([temp for temp in getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3_tc1.ifctopologicalrepresentationitem' in typeof(temp)]) == 0) is not False + assert (sizeof([temp for temp in express_getattr(self, 'Items', INDETERMINATE) if not 'ifc4x3_tc1.ifctopologicalrepresentationitem' in typeof(temp)]) == 0) is not False class IfcTopologyRepresentation_WR22: SCOPE = 'entity' @@ -12413,7 +12423,7 @@ class IfcTopologyRepresentation_WR22: @staticmethod def __call__(self): - assert exists(getattr(self, 'RepresentationType', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'RepresentationType', INDETERMINATE)) is not False class IfcTopologyRepresentation_WR23: SCOPE = 'entity' @@ -12422,7 +12432,7 @@ class IfcTopologyRepresentation_WR23: @staticmethod def __call__(self): - assert IfcTopologyRepresentationTypes(getattr(self, 'RepresentationType', INDETERMINATE), getattr(self, 'Items', INDETERMINATE)) is not False + assert IfcTopologyRepresentationTypes(express_getattr(self, 'RepresentationType', INDETERMINATE), express_getattr(self, 'Items', INDETERMINATE)) is not False class IfcToroidalSurface_MajorLargerMinor: SCOPE = 'entity' @@ -12431,8 +12441,8 @@ class IfcToroidalSurface_MajorLargerMinor: @staticmethod def __call__(self): - majorradius = getattr(self, 'MajorRadius', INDETERMINATE) - minorradius = getattr(self, 'MinorRadius', INDETERMINATE) + majorradius = express_getattr(self, 'MajorRadius', INDETERMINATE) + minorradius = express_getattr(self, 'MinorRadius', INDETERMINATE) assert (minorradius < majorradius) is not False class IfcTrackElement_CorrectPredefinedType: @@ -12442,8 +12452,8 @@ class IfcTrackElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTrackElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12452,8 +12462,8 @@ class IfcTrackElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifctrackelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifctrackelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTrackElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12462,8 +12472,8 @@ class IfcTrackElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTrackElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTransformer_CorrectPredefinedType: SCOPE = 'entity' @@ -12472,8 +12482,8 @@ class IfcTransformer_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTransformer_CorrectTypeAssigned: SCOPE = 'entity' @@ -12482,8 +12492,8 @@ class IfcTransformer_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifctransformertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifctransformertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTransformerType_CorrectPredefinedType: SCOPE = 'entity' @@ -12492,8 +12502,8 @@ class IfcTransformerType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransformerTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTransportElement_CorrectPredefinedType: SCOPE = 'entity' @@ -12502,8 +12512,8 @@ class IfcTransportElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTransportElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12512,8 +12522,8 @@ class IfcTransportElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifctransportelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifctransportelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTransportElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12522,11 +12532,11 @@ class IfcTransportElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTransportElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False def calc_IfcTriangulatedFaceSet_NumberOfTriangles(self): - coordindex = getattr(self, 'CoordIndex', INDETERMINATE) + coordindex = express_getattr(self, 'CoordIndex', INDETERMINATE) return sizeof(coordindex) class IfcTriangulatedIrregularNetwork_NotClosed: @@ -12536,7 +12546,7 @@ class IfcTriangulatedIrregularNetwork_NotClosed: @staticmethod def __call__(self): - assert (getattr(self, 'Closed', INDETERMINATE) == False) is not False + assert (express_getattr(self, 'Closed', INDETERMINATE) == False) is not False class IfcTrimmedCurve_NoTrimOfBoundedCurves: SCOPE = 'entity' @@ -12545,7 +12555,7 @@ class IfcTrimmedCurve_NoTrimOfBoundedCurves: @staticmethod def __call__(self): - basiscurve = getattr(self, 'BasisCurve', INDETERMINATE) + basiscurve = express_getattr(self, 'BasisCurve', INDETERMINATE) assert (not 'ifc4x3_tc1.ifcboundedcurve' in typeof(basiscurve)) is not False class IfcTrimmedCurve_Trim1ValuesConsistent: @@ -12555,7 +12565,7 @@ class IfcTrimmedCurve_Trim1ValuesConsistent: @staticmethod def __call__(self): - trim1 = getattr(self, 'Trim1', INDETERMINATE) + trim1 = express_getattr(self, 'Trim1', INDETERMINATE) assert (hiindex(trim1) == 1 or typeof(express_getitem(trim1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(express_getitem(trim1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcTrimmedCurve_Trim2ValuesConsistent: @@ -12565,7 +12575,7 @@ class IfcTrimmedCurve_Trim2ValuesConsistent: @staticmethod def __call__(self): - trim2 = getattr(self, 'Trim2', INDETERMINATE) + trim2 = express_getattr(self, 'Trim2', INDETERMINATE) assert (hiindex(trim2) == 1 or typeof(express_getitem(trim2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) != typeof(express_getitem(trim2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcTubeBundle_CorrectPredefinedType: @@ -12575,8 +12585,8 @@ class IfcTubeBundle_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcTubeBundle_CorrectTypeAssigned: SCOPE = 'entity' @@ -12585,8 +12595,8 @@ class IfcTubeBundle_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifctubebundletype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifctubebundletype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcTubeBundleType_CorrectPredefinedType: SCOPE = 'entity' @@ -12595,8 +12605,8 @@ class IfcTubeBundleType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcTubeBundleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcTypeObject_NameRequired: SCOPE = 'entity' @@ -12605,7 +12615,7 @@ class IfcTypeObject_NameRequired: @staticmethod def __call__(self): - assert exists(getattr(self, 'Name', INDETERMINATE)) is not False + assert exists(express_getattr(self, 'Name', INDETERMINATE)) is not False class IfcTypeObject_UniquePropertySetNames: SCOPE = 'entity' @@ -12614,7 +12624,7 @@ class IfcTypeObject_UniquePropertySetNames: @staticmethod def __call__(self): - haspropertysets = getattr(self, 'HasPropertySets', INDETERMINATE) + haspropertysets = express_getattr(self, 'HasPropertySets', INDETERMINATE) assert (not exists(haspropertysets) or IfcUniquePropertySetNames(haspropertysets)) is not False class IfcTypeProduct_ApplicableOccurrence: @@ -12624,7 +12634,7 @@ class IfcTypeProduct_ApplicableOccurrence: @staticmethod def __call__(self): - assert (not exists(lambda : express_getitem(getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or sizeof([temp for temp in getattr(express_getitem(getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not 'ifc4x3_tc1.ifcproduct' in typeof(temp)]) == 0) is not False + assert (not exists(lambda : express_getitem(express_getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) or sizeof([temp for temp in express_getattr(express_getitem(express_getattr(self, 'Types', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not 'ifc4x3_tc1.ifcproduct' in typeof(temp)]) == 0) is not False class IfcUShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -12633,8 +12643,8 @@ class IfcUShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth / 2.0) is not False class IfcUShapeProfileDef_ValidWebThickness: @@ -12644,8 +12654,8 @@ class IfcUShapeProfileDef_ValidWebThickness: @staticmethod def __call__(self): - flangewidth = getattr(self, 'FlangeWidth', INDETERMINATE) - webthickness = getattr(self, 'WebThickness', INDETERMINATE) + flangewidth = express_getattr(self, 'FlangeWidth', INDETERMINATE) + webthickness = express_getattr(self, 'WebThickness', INDETERMINATE) assert (webthickness < flangewidth) is not False class IfcUnitAssignment_WR01: @@ -12655,7 +12665,7 @@ class IfcUnitAssignment_WR01: @staticmethod def __call__(self): - units = getattr(self, 'Units', INDETERMINATE) + units = express_getattr(self, 'Units', INDETERMINATE) assert IfcCorrectUnitAssignment(units) is not False class IfcUnitaryControlElement_CorrectPredefinedType: @@ -12665,8 +12675,8 @@ class IfcUnitaryControlElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcUnitaryControlElement_CorrectTypeAssigned: SCOPE = 'entity' @@ -12675,8 +12685,8 @@ class IfcUnitaryControlElement_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcunitarycontrolelementtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcunitarycontrolelementtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcUnitaryControlElementType_CorrectPredefinedType: SCOPE = 'entity' @@ -12685,8 +12695,8 @@ class IfcUnitaryControlElementType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryControlElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcUnitaryEquipment_CorrectPredefinedType: SCOPE = 'entity' @@ -12695,8 +12705,8 @@ class IfcUnitaryEquipment_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcUnitaryEquipment_CorrectTypeAssigned: SCOPE = 'entity' @@ -12705,8 +12715,8 @@ class IfcUnitaryEquipment_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcunitaryequipmenttype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcunitaryequipmenttype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcUnitaryEquipmentType_CorrectPredefinedType: SCOPE = 'entity' @@ -12715,8 +12725,8 @@ class IfcUnitaryEquipmentType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcUnitaryEquipmentTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcValve_CorrectPredefinedType: SCOPE = 'entity' @@ -12725,8 +12735,8 @@ class IfcValve_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcValve_CorrectTypeAssigned: SCOPE = 'entity' @@ -12735,8 +12745,8 @@ class IfcValve_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcvalvetype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcvalvetype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcValveType_CorrectPredefinedType: SCOPE = 'entity' @@ -12745,8 +12755,8 @@ class IfcValveType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcValveTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVector_MagGreaterOrEqualZero: SCOPE = 'entity' @@ -12755,12 +12765,12 @@ class IfcVector_MagGreaterOrEqualZero: @staticmethod def __call__(self): - magnitude = getattr(self, 'Magnitude', INDETERMINATE) + magnitude = express_getattr(self, 'Magnitude', INDETERMINATE) assert (magnitude >= 0.0) is not False def calc_IfcVector_Dim(self): - orientation = getattr(self, 'Orientation', INDETERMINATE) - return getattr(orientation, 'Dim', INDETERMINATE) + orientation = express_getattr(self, 'Orientation', INDETERMINATE) + return express_getattr(orientation, 'Dim', INDETERMINATE) class IfcVehicle_CorrectPredefinedType: SCOPE = 'entity' @@ -12769,8 +12779,8 @@ class IfcVehicle_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcVehicle_CorrectTypeAssigned: SCOPE = 'entity' @@ -12779,8 +12789,8 @@ class IfcVehicle_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcvehicletype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcvehicletype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcVehicleType_CorrectPredefinedType: SCOPE = 'entity' @@ -12789,8 +12799,8 @@ class IfcVehicleType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVehicleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVibrationDamper_CorrectPredefinedType: SCOPE = 'entity' @@ -12799,8 +12809,8 @@ class IfcVibrationDamper_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcVibrationDamper_CorrectTypeAssigned: SCOPE = 'entity' @@ -12809,8 +12819,8 @@ class IfcVibrationDamper_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcvibrationdampertype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcvibrationdampertype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcVibrationDamperType_CorrectPredefinedType: SCOPE = 'entity' @@ -12819,8 +12829,8 @@ class IfcVibrationDamperType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationDamperTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVibrationIsolator_CorrectPredefinedType: SCOPE = 'entity' @@ -12829,8 +12839,8 @@ class IfcVibrationIsolator_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcVibrationIsolator_CorrectTypeAssigned: SCOPE = 'entity' @@ -12839,8 +12849,8 @@ class IfcVibrationIsolator_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcvibrationisolatortype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcvibrationisolatortype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcVibrationIsolatorType_CorrectPredefinedType: SCOPE = 'entity' @@ -12849,8 +12859,8 @@ class IfcVibrationIsolatorType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVibrationIsolatorTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcVirtualElement_CorrectPredefinedType: SCOPE = 'entity' @@ -12859,8 +12869,8 @@ class IfcVirtualElement_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVirtualElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVirtualElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVirtualElementTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVirtualElementTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcVoidingFeature_CorrectPredefinedType: SCOPE = 'entity' @@ -12869,8 +12879,8 @@ class IfcVoidingFeature_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcVoidingFeatureTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWall_CorrectPredefinedType: SCOPE = 'entity' @@ -12879,8 +12889,8 @@ class IfcWall_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWall_CorrectTypeAssigned: SCOPE = 'entity' @@ -12889,8 +12899,8 @@ class IfcWall_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcwalltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcwalltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWallStandardCase_HasMaterialLayerSetUsage: SCOPE = 'entity' @@ -12899,7 +12909,7 @@ class IfcWallStandardCase_HasMaterialLayerSetUsage: @staticmethod def __call__(self): - assert (sizeof([temp for temp in usedin(self, 'ifc4x3_tc1.ifcrelassociates.relatedobjects') if 'ifc4x3_tc1.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_tc1.ifcmateriallayersetusage' in typeof(getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False + assert (sizeof([temp for temp in usedin(self, 'ifc4x3_tc1.ifcrelassociates.relatedobjects') if 'ifc4x3_tc1.ifcrelassociatesmaterial' in typeof(temp) and 'ifc4x3_tc1.ifcmateriallayersetusage' in typeof(express_getattr(temp, 'RelatingMaterial', INDETERMINATE))]) == 1) is not False class IfcWallType_CorrectPredefinedType: SCOPE = 'entity' @@ -12908,8 +12918,8 @@ class IfcWallType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWallTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWasteTerminal_CorrectPredefinedType: SCOPE = 'entity' @@ -12918,8 +12928,8 @@ class IfcWasteTerminal_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWasteTerminal_CorrectTypeAssigned: SCOPE = 'entity' @@ -12928,8 +12938,8 @@ class IfcWasteTerminal_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcwasteterminaltype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcwasteterminaltype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWasteTerminalType_CorrectPredefinedType: SCOPE = 'entity' @@ -12938,8 +12948,8 @@ class IfcWasteTerminalType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWasteTerminalTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWindow_CorrectPredefinedType: SCOPE = 'entity' @@ -12948,8 +12958,8 @@ class IfcWindow_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWindow_CorrectTypeAssigned: SCOPE = 'entity' @@ -12958,8 +12968,8 @@ class IfcWindow_CorrectTypeAssigned: @staticmethod def __call__(self): - istypedby = getattr(self, 'IsTypedBy', INDETERMINATE) - assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcwindowtype' in typeof(getattr(express_getitem(getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False + istypedby = express_getattr(self, 'IsTypedBy', INDETERMINATE) + assert (sizeof(istypedby) == 0 or 'ifc4x3_tc1.ifcwindowtype' in typeof(express_getattr(express_getitem(express_getattr(self, 'IsTypedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingType', INDETERMINATE))) is not False class IfcWindowLiningProperties_WR31: SCOPE = 'entity' @@ -12968,8 +12978,8 @@ class IfcWindowLiningProperties_WR31: @staticmethod def __call__(self): - liningdepth = getattr(self, 'LiningDepth', INDETERMINATE) - liningthickness = getattr(self, 'LiningThickness', INDETERMINATE) + liningdepth = express_getattr(self, 'LiningDepth', INDETERMINATE) + liningthickness = express_getattr(self, 'LiningThickness', INDETERMINATE) assert (not (exists(liningdepth) and (not exists(liningthickness)))) is not False class IfcWindowLiningProperties_WR32: @@ -12979,8 +12989,8 @@ class IfcWindowLiningProperties_WR32: @staticmethod def __call__(self): - firsttransomoffset = getattr(self, 'FirstTransomOffset', INDETERMINATE) - secondtransomoffset = getattr(self, 'SecondTransomOffset', INDETERMINATE) + firsttransomoffset = express_getattr(self, 'FirstTransomOffset', INDETERMINATE) + secondtransomoffset = express_getattr(self, 'SecondTransomOffset', INDETERMINATE) assert (not (not exists(firsttransomoffset) and exists(secondtransomoffset))) is not False class IfcWindowLiningProperties_WR33: @@ -12990,8 +13000,8 @@ class IfcWindowLiningProperties_WR33: @staticmethod def __call__(self): - firstmullionoffset = getattr(self, 'FirstMullionOffset', INDETERMINATE) - secondmullionoffset = getattr(self, 'SecondMullionOffset', INDETERMINATE) + firstmullionoffset = express_getattr(self, 'FirstMullionOffset', INDETERMINATE) + secondmullionoffset = express_getattr(self, 'SecondMullionOffset', INDETERMINATE) assert (not (not exists(firstmullionoffset) and exists(secondmullionoffset))) is not False class IfcWindowLiningProperties_WR34: @@ -13001,7 +13011,7 @@ class IfcWindowLiningProperties_WR34: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc4x3_tc1.ifcwindowtype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc4x3_tc1.ifcwindowtype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcWindowPanelProperties_ApplicableToType: SCOPE = 'entity' @@ -13010,7 +13020,7 @@ class IfcWindowPanelProperties_ApplicableToType: @staticmethod def __call__(self): - assert (exists(lambda : express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc4x3_tc1.ifcwindowtype' in typeof(express_getitem(getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False + assert (exists(lambda : express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and 'ifc4x3_tc1.ifcwindowtype' in typeof(express_getitem(express_getattr(self, 'DefinesType', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE))) is not False class IfcWindowType_CorrectPredefinedType: SCOPE = 'entity' @@ -13019,8 +13029,8 @@ class IfcWindowType_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (predefinedtype != getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ElementType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (predefinedtype != express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWindowTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ElementType', INDETERMINATE)))) is not False class IfcWorkCalendar_CorrectPredefinedType: SCOPE = 'entity' @@ -13029,8 +13039,8 @@ class IfcWorkCalendar_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkCalendarTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWorkPlan_CorrectPredefinedType: SCOPE = 'entity' @@ -13039,8 +13049,8 @@ class IfcWorkPlan_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkPlanTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcWorkSchedule_CorrectPredefinedType: SCOPE = 'entity' @@ -13049,8 +13059,8 @@ class IfcWorkSchedule_CorrectPredefinedType: @staticmethod def __call__(self): - predefinedtype = getattr(self, 'PredefinedType', INDETERMINATE) - assert (not exists(predefinedtype) or predefinedtype != getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(getattr(self, 'ObjectType', INDETERMINATE)))) is not False + predefinedtype = express_getattr(self, 'PredefinedType', INDETERMINATE) + assert (not exists(predefinedtype) or predefinedtype != express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) or (predefinedtype == express_getattr(IfcWorkScheduleTypeEnum, 'USERDEFINED', INDETERMINATE) and exists(express_getattr(self, 'ObjectType', INDETERMINATE)))) is not False class IfcZShapeProfileDef_ValidFlangeThickness: SCOPE = 'entity' @@ -13059,8 +13069,8 @@ class IfcZShapeProfileDef_ValidFlangeThickness: @staticmethod def __call__(self): - depth = getattr(self, 'Depth', INDETERMINATE) - flangethickness = getattr(self, 'FlangeThickness', INDETERMINATE) + depth = express_getattr(self, 'Depth', INDETERMINATE) + flangethickness = express_getattr(self, 'FlangeThickness', INDETERMINATE) assert (flangethickness < depth / 2.0) is not False class IfcZone_WR1: @@ -13070,19 +13080,19 @@ class IfcZone_WR1: @staticmethod def __call__(self): - assert (sizeof(getattr(self, 'IsGroupedBy', INDETERMINATE)) == 0 or sizeof([temp for temp in getattr(express_getitem(getattr(self, 'IsGroupedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not ('ifc4x3_tc1.ifczone' in typeof(temp) or 'ifc4x3_tc1.ifcspace' in typeof(temp) or 'ifc4x3_tc1.ifcspatialzone' in typeof(temp))]) == 0) is not False + assert (sizeof(express_getattr(self, 'IsGroupedBy', INDETERMINATE)) == 0 or sizeof([temp for temp in express_getattr(express_getitem(express_getattr(self, 'IsGroupedBy', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatedObjects', INDETERMINATE) if not ('ifc4x3_tc1.ifczone' in typeof(temp) or 'ifc4x3_tc1.ifcspace' in typeof(temp) or 'ifc4x3_tc1.ifcspatialzone' in typeof(temp))]) == 0) is not False class IfcRepresentationContextSameWCS: SCOPE = 'file' @staticmethod def __call__(file): - IfcGeometricRepresentationContext = getattr(file, 'by_type', INDETERMINATE)('IfcGeometricRepresentationContext') + IfcGeometricRepresentationContext = express_getattr(file, 'by_type', INDETERMINATE)('IfcGeometricRepresentationContext') isdifferent = False if sizeof(IfcGeometricRepresentationContext) > 1: for i in range(2, hiindex(IfcGeometricRepresentationContext) + 1): - if getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE) != getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE): - isdifferent = not IfcSameValidPrecision(getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) or not IfcSameAxis2Placement(getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) + if express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE) != express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE): + isdifferent = not IfcSameValidPrecision(express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) or not IfcSameAxis2Placement(express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'WorldCoordinateSystem', INDETERMINATE), express_getattr(express_getitem(IfcGeometricRepresentationContext, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Precision', INDETERMINATE)) if isdifferent == True: break assert (isdifferent == False) is not False @@ -13092,11 +13102,11 @@ class IfcSingleProjectInstance: @staticmethod def __call__(file): - IfcProject = getattr(file, 'by_type', INDETERMINATE)('IfcProject') + IfcProject = express_getattr(file, 'by_type', INDETERMINATE)('IfcProject') assert (sizeof(IfcProject) <= 1) is not False def IfcAssociatedSurface(arg): - surf = getattr(arg, 'BasisSurface', INDETERMINATE) + surf = express_getattr(arg, 'BasisSurface', INDETERMINATE) return surf def IfcBaseAxis(dim, axis1, axis2, axis3): @@ -13110,13 +13120,13 @@ def IfcBaseAxis(dim, axis1, axis2, axis3): if exists(axis2): factor = IfcDotProduct(axis2, express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) if factor < 0.0: - u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[2 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) elif exists(axis2): d1 = IfcNormalise(axis2) u = [IfcOrthogonalComplement(d1), d1] - u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[1 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + u[1 - EXPRESS_ONE_BASED_INDEXING].DirectionRatios[2 - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(express_getitem(u, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) else: u = [IfcDirection(DirectionRatios=[1.0, 0.0]), IfcDirection(DirectionRatios=[0.0, 1.0])] return u @@ -13134,7 +13144,7 @@ def IfcBuild2Axes(refdirection): def IfcBuildAxes(axis, refdirection): d1 = nvl(IfcNormalise(axis), IfcDirection(DirectionRatios=[0.0, 0.0, 1.0])) d2 = IfcFirstProjAxis(d1, refdirection) - return [d2, getattr(IfcNormalise(IfcCrossProduct(d1, d2)), 'Orientation', INDETERMINATE), d1] + return [d2, express_getattr(IfcNormalise(IfcCrossProduct(d1, d2)), 'Orientation', INDETERMINATE), d1] def IfcConsecutiveSegments(segments): result = True @@ -13171,11 +13181,11 @@ def IfcConstraintsParamBSpline(degree, upknots, upcp, knotmult, knots): def IfcConvertDirectionInto2D(direction): direction2d = IfcDirection(DirectionRatios=[0.0, 1.0]) - temp = list(getattr(direction2d, 'DirectionRatios', INDETERMINATE)) - temp[1 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(direction, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(direction2d, 'DirectionRatios', INDETERMINATE)) + temp[1 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(direction, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) direction2d.DirectionRatios = temp - temp = list(getattr(direction2d, 'DirectionRatios', INDETERMINATE)) - temp[2 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(direction, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(direction2d, 'DirectionRatios', INDETERMINATE)) + temp[2 - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(direction, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) direction2d.DirectionRatios = temp return direction2d @@ -13355,7 +13365,7 @@ def IfcCorrectLocalPlacement(axisplacement, relplacement): if 'ifc4x3_tc1.ifcaxis2placement2d' in typeof(axisplacement): return True if 'ifc4x3_tc1.ifcaxis2placement3d' in typeof(axisplacement): - if getattr(getattr(relplacement, 'RelativePlacement', INDETERMINATE), 'Dim', INDETERMINATE) == 3: + if express_getattr(express_getattr(relplacement, 'RelativePlacement', INDETERMINATE), 'Dim', INDETERMINATE) == 3: return True else: return False @@ -13368,26 +13378,26 @@ def IfcCorrectUnitAssignment(units): monetaryunitnumber = 0 namedunitnames = express_set([]) derivedunitnames = express_set([]) - namedunitnumber = sizeof([temp for temp in units if 'ifc4x3_tc1.ifcnamedunit' in typeof(temp) and (not getattr(temp, 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE))]) - derivedunitnumber = sizeof([temp for temp in units if 'ifc4x3_tc1.ifcderivedunit' in typeof(temp) and (not getattr(temp, 'UnitType', INDETERMINATE) == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE))]) + namedunitnumber = sizeof([temp for temp in units if 'ifc4x3_tc1.ifcnamedunit' in typeof(temp) and (not express_getattr(temp, 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE))]) + derivedunitnumber = sizeof([temp for temp in units if 'ifc4x3_tc1.ifcderivedunit' in typeof(temp) and (not express_getattr(temp, 'UnitType', INDETERMINATE) == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE))]) monetaryunitnumber = sizeof([temp for temp in units if 'ifc4x3_tc1.ifcmonetaryunit' in typeof(temp)]) for i in range(1, sizeof(units) + 1): - if 'ifc4x3_tc1.ifcnamedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE)): - namedunitnames = namedunitnames + getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) - if 'ifc4x3_tc1.ifcderivedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE)): - derivedunitnames = derivedunitnames + getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) + if 'ifc4x3_tc1.ifcnamedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcUnitEnum, 'USERDEFINED', INDETERMINATE)): + namedunitnames = namedunitnames + express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) + if 'ifc4x3_tc1.ifcderivedunit' in typeof(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) and (not express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) == express_getattr(IfcDerivedUnitEnum, 'USERDEFINED', INDETERMINATE)): + derivedunitnames = derivedunitnames + express_getattr(express_getitem(units, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'UnitType', INDETERMINATE) return sizeof(namedunitnames) == namedunitnumber and sizeof(derivedunitnames) == derivedunitnumber and (monetaryunitnumber <= 1) def IfcCrossProduct(arg1, arg2): - if (not exists(arg1) or getattr(arg1, 'Dim', INDETERMINATE) == 2) or (not exists(arg2) or getattr(arg2, 'Dim', INDETERMINATE) == 2): + if (not exists(arg1) or express_getattr(arg1, 'Dim', INDETERMINATE) == 2) or (not exists(arg2) or express_getattr(arg2, 'Dim', INDETERMINATE) == 2): return None else: - v1 = getattr(IfcNormalise(arg1), 'DirectionRatios', INDETERMINATE) - v2 = getattr(IfcNormalise(arg2), 'DirectionRatios', INDETERMINATE) + v1 = express_getattr(IfcNormalise(arg1), 'DirectionRatios', INDETERMINATE) + v2 = express_getattr(IfcNormalise(arg2), 'DirectionRatios', INDETERMINATE) res = IfcDirection(DirectionRatios=[express_getitem(v1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(v1, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(v1, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - express_getitem(v1, 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(v2, 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) mag = 0.0 for i in range(1, 3 + 1): - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: @@ -13396,21 +13406,21 @@ def IfcCrossProduct(arg1, arg2): def IfcCurveDim(curve): if 'ifc4x3_tc1.ifcline' in typeof(curve): - return getattr(getattr(curve, 'Pnt', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Pnt', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_tc1.ifcconic' in typeof(curve): - return getattr(getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_tc1.ifcpolyline' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'Points', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'Points', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_tc1.ifctrimmedcurve' in typeof(curve): - return IfcCurveDim(getattr(curve, 'BasisCurve', INDETERMINATE)) + return IfcCurveDim(express_getattr(curve, 'BasisCurve', INDETERMINATE)) if 'ifc4x3_tc1.ifcgradientcurve' in typeof(curve): return 3 if 'ifc4x3_tc1.ifcsegmentedreferencecurve' in typeof(curve): return 3 if 'ifc4x3_tc1.ifccompositecurve' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_tc1.ifcbsplinecurve' in typeof(curve): - return getattr(express_getitem(getattr(curve, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getitem(express_getattr(curve, 'ControlPointsList', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_tc1.ifcoffsetcurve2d' in typeof(curve): return 2 if 'ifc4x3_tc1.ifcoffsetcurve3d' in typeof(curve): @@ -13420,19 +13430,19 @@ def IfcCurveDim(curve): if 'ifc4x3_tc1.ifccurvesegment2d' in typeof(curve): return 2 if 'ifc4x3_tc1.ifcpolynomialcurve' in typeof(curve): - if not exists(getattr(curve, 'CoefficientsZ', INDETERMINATE)) and getattr(getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) == 2: + if not exists(express_getattr(curve, 'CoefficientsZ', INDETERMINATE)) and express_getattr(express_getattr(curve, 'Position', INDETERMINATE), 'Dim', INDETERMINATE) == 2: return 2 return 3 if 'ifc4x3_tc1.ifcpcurve' in typeof(curve): return 3 if 'ifc4x3_tc1.ifcindexedpolycurve' in typeof(curve): - return getattr(getattr(curve, 'Points', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(curve, 'Points', INDETERMINATE), 'Dim', INDETERMINATE) return None def IfcCurveWeightsPositive(b): result = True - for i in range(0, getattr(b, 'UpperIndexOnControlPoints', INDETERMINATE) + 1): - if express_getitem(getattr(b, 'Weights', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: + for i in range(0, express_getattr(b, 'UpperIndexOnControlPoints', INDETERMINATE) + 1): + if express_getitem(express_getattr(b, 'Weights', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: result = False return result return result @@ -13440,13 +13450,13 @@ def IfcCurveWeightsPositive(b): def IfcDeriveDimensionalExponents(unitelements): result = IfcDimensionalExponents(0, 0, 0, 0, 0, 0, 0) for i in range(loindex(unitelements), hiindex(unitelements) + 1): - result.LengthExponent = getattr(result, 'LengthExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LengthExponent', INDETERMINATE) - result.MassExponent = getattr(result, 'MassExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'MassExponent', INDETERMINATE) - result.TimeExponent = getattr(result, 'TimeExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'TimeExponent', INDETERMINATE) - result.ElectricCurrentExponent = getattr(result, 'ElectricCurrentExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ElectricCurrentExponent', INDETERMINATE) - result.ThermodynamicTemperatureExponent = getattr(result, 'ThermodynamicTemperatureExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ThermodynamicTemperatureExponent', INDETERMINATE) - result.AmountOfSubstanceExponent = getattr(result, 'AmountOfSubstanceExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'AmountOfSubstanceExponent', INDETERMINATE) - result.LuminousIntensityExponent = getattr(result, 'LuminousIntensityExponent', INDETERMINATE) + getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * getattr(getattr(getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LuminousIntensityExponent', INDETERMINATE) + result.LengthExponent = express_getattr(result, 'LengthExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LengthExponent', INDETERMINATE) + result.MassExponent = express_getattr(result, 'MassExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'MassExponent', INDETERMINATE) + result.TimeExponent = express_getattr(result, 'TimeExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'TimeExponent', INDETERMINATE) + result.ElectricCurrentExponent = express_getattr(result, 'ElectricCurrentExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ElectricCurrentExponent', INDETERMINATE) + result.ThermodynamicTemperatureExponent = express_getattr(result, 'ThermodynamicTemperatureExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'ThermodynamicTemperatureExponent', INDETERMINATE) + result.AmountOfSubstanceExponent = express_getattr(result, 'AmountOfSubstanceExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'AmountOfSubstanceExponent', INDETERMINATE) + result.LuminousIntensityExponent = express_getattr(result, 'LuminousIntensityExponent', INDETERMINATE) + express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Exponent', INDETERMINATE) * express_getattr(express_getattr(express_getattr(express_getitem(unitelements, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Unit', INDETERMINATE), 'Dimensions', INDETERMINATE), 'LuminousIntensityExponent', INDETERMINATE) return result def IfcDimensionsForSIUnit(n): @@ -13516,15 +13526,15 @@ def IfcDimensionsForSIUnit(n): def IfcDotProduct(arg1, arg2): if not exists(arg1) or not exists(arg2): scalar = None - elif getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + elif express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): scalar = None else: vec1 = IfcNormalise(arg1) vec2 = IfcNormalise(arg2) - ndim = getattr(arg1, 'Dim', INDETERMINATE) + ndim = express_getattr(arg1, 'Dim', INDETERMINATE) scalar = 0.0 for i in range(1, ndim + 1): - scalar = scalar + express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + scalar = scalar + express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return scalar def IfcFirstProjAxis(zaxis, arg): @@ -13533,42 +13543,42 @@ def IfcFirstProjAxis(zaxis, arg): else: z = IfcNormalise(zaxis) if not exists(arg): - if getattr(z, 'DirectionRatios', INDETERMINATE) != [1.0, 0.0, 0.0]: + if express_getattr(z, 'DirectionRatios', INDETERMINATE) != [1.0, 0.0, 0.0]: v = IfcDirection(DirectionRatios=[1.0, 0.0, 0.0]) else: v = IfcDirection(DirectionRatios=[0.0, 1.0, 0.0]) else: - if getattr(arg, 'Dim', INDETERMINATE) != 3: + if express_getattr(arg, 'Dim', INDETERMINATE) != 3: return None - if getattr(IfcCrossProduct(arg, z), 'Magnitude', INDETERMINATE) == 0.0: + if express_getattr(IfcCrossProduct(arg, z), 'Magnitude', INDETERMINATE) == 0.0: return None else: v = IfcNormalise(arg) xvec = IfcScalarTimesVector(IfcDotProduct(v, z), z) - xaxis = getattr(IfcVectorDifference(v, xvec), 'Orientation', INDETERMINATE) + xaxis = express_getattr(IfcVectorDifference(v, xvec), 'Orientation', INDETERMINATE) xaxis = IfcNormalise(xaxis) return xaxis def IfcGetBasisSurface(c): surfs = [] if 'ifc4x3_tc1.ifcpcurve' in typeof(c): - surfs = [getattr(c, 'BasisSurface', INDETERMINATE)] + surfs = [express_getattr(c, 'BasisSurface', INDETERMINATE)] elif 'ifc4x3_tc1.ifcsurfacecurve' in typeof(c): - n = sizeof(getattr(c, 'AssociatedGeometry', INDETERMINATE)) + n = sizeof(express_getattr(c, 'AssociatedGeometry', INDETERMINATE)) for i in range(1, n + 1): - surfs = surfs + IfcAssociatedSurface(express_getitem(getattr(c, 'AssociatedGeometry', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) + surfs = surfs + IfcAssociatedSurface(express_getitem(express_getattr(c, 'AssociatedGeometry', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)) if 'ifc4x3_tc1.ifccompositecurveonsurface' in typeof(c): - n = sizeof(getattr(c, 'Segments', INDETERMINATE)) - if 'ifc4x3_tc1.ifccurvesegment' in typeof(express_getitem(getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - surfs = IfcGetBasisSurface(getattr(express_getitem(getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) - if 'ifc4x3_tc1.ifccompositecurvesegment' in typeof(express_getitem(getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - surfs = IfcGetBasisSurface(getattr(express_getitem(getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) + n = sizeof(express_getattr(c, 'Segments', INDETERMINATE)) + if 'ifc4x3_tc1.ifccurvesegment' in typeof(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): + surfs = IfcGetBasisSurface(express_getattr(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) + if 'ifc4x3_tc1.ifccompositecurvesegment' in typeof(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): + surfs = IfcGetBasisSurface(express_getattr(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) if n > 1: for i in range(2, n + 1): - if 'ifc4x3_tc1.ifccurvesegment' in typeof(express_getitem(getattr(c, 'Segments', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - surfs = surfs * IfcGetBasisSurface(getattr(express_getitem(getattr(c, 'Segments', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) - if 'ifc4x3_tc1.ifccompositecurvesegment' in typeof(express_getitem(getattr(c, 'Segments', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - surfs = surfs * IfcGetBasisSurface(getattr(express_getitem(getattr(c, 'Segments', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) + if 'ifc4x3_tc1.ifccurvesegment' in typeof(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): + surfs = surfs * IfcGetBasisSurface(express_getattr(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) + if 'ifc4x3_tc1.ifccompositecurvesegment' in typeof(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): + surfs = surfs * IfcGetBasisSurface(express_getattr(express_getitem(express_getattr(c, 'Segments', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'ParentCurve', INDETERMINATE)) return surfs def IfcListToArray(lis, low, u): @@ -13585,9 +13595,9 @@ def IfcListToArray(lis, low, u): def IfcLoopHeadToTail(aloop): p = True - n = sizeof(getattr(aloop, 'EdgeList', INDETERMINATE)) + n = sizeof(express_getattr(aloop, 'EdgeList', INDETERMINATE)) for i in range(2, n + 1): - p = p and getattr(express_getitem(getattr(aloop, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == getattr(express_getitem(getattr(aloop, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) + p = p and express_getattr(express_getitem(express_getattr(aloop, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == express_getattr(express_getitem(express_getattr(aloop, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) return p def IfcMakeArrayOfArray(lis, low1, u1, low2, u2): @@ -13605,10 +13615,10 @@ def IfcMakeArrayOfArray(lis, low1, u1, low2, u2): return res def IfcMlsTotalThickness(layerset): - max = getattr(express_getitem(getattr(layerset, 'MaterialLayers', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) - if sizeof(getattr(layerset, 'MaterialLayers', INDETERMINATE)) > 1: - for i in range(2, hiindex(getattr(layerset, 'MaterialLayers', INDETERMINATE)) + 1): - max = max + getattr(express_getitem(getattr(layerset, 'MaterialLayers', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) + max = express_getattr(express_getitem(express_getattr(layerset, 'MaterialLayers', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) + if sizeof(express_getattr(layerset, 'MaterialLayers', INDETERMINATE)) > 1: + for i in range(2, hiindex(express_getattr(layerset, 'MaterialLayers', INDETERMINATE)) + 1): + max = max + express_getattr(express_getitem(express_getattr(layerset, 'MaterialLayers', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'LayerThickness', INDETERMINATE) return max def IfcNormalise(arg): @@ -13619,25 +13629,25 @@ def IfcNormalise(arg): return None else: if 'ifc4x3_tc1.ifcvector' in typeof(arg): - ndim = getattr(arg, 'Dim', INDETERMINATE) - v.DirectionRatios = getattr(getattr(arg, 'Orientation', INDETERMINATE), 'DirectionRatios', INDETERMINATE) - vec.Magnitude = getattr(arg, 'Magnitude', INDETERMINATE) + ndim = express_getattr(arg, 'Dim', INDETERMINATE) + v.DirectionRatios = express_getattr(express_getattr(arg, 'Orientation', INDETERMINATE), 'DirectionRatios', INDETERMINATE) + vec.Magnitude = express_getattr(arg, 'Magnitude', INDETERMINATE) vec.Orientation = v - if getattr(arg, 'Magnitude', INDETERMINATE) == 0.0: + if express_getattr(arg, 'Magnitude', INDETERMINATE) == 0.0: return None else: vec.Magnitude = 1.0 else: - ndim = getattr(arg, 'Dim', INDETERMINATE) - v.DirectionRatios = getattr(arg, 'DirectionRatios', INDETERMINATE) + ndim = express_getattr(arg, 'Dim', INDETERMINATE) + v.DirectionRatios = express_getattr(arg, 'DirectionRatios', INDETERMINATE) mag = 0.0 for i in range(1, ndim + 1): - mag = mag + express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: mag = sqrt(mag) for i in range(1, ndim + 1): - temp = list(getattr(v, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) / mag + temp = list(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) / mag v.DirectionRatios = temp if 'ifc4x3_tc1.ifcvector' in typeof(arg): vec.Orientation = v @@ -13649,29 +13659,29 @@ def IfcNormalise(arg): return result def IfcOrthogonalComplement(vec): - if not exists(vec) or getattr(vec, 'Dim', INDETERMINATE) != 2: + if not exists(vec) or express_getattr(vec, 'Dim', INDETERMINATE) != 2: return None else: - result = IfcDirection(DirectionRatios=[-express_getitem(getattr(vec, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(vec, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) + result = IfcDirection(DirectionRatios=[-express_getitem(express_getattr(vec, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(vec, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)]) return result def IfcPathHeadToTail(apath): n = 0 p = unknown - n = sizeof(getattr(apath, 'EdgeList', INDETERMINATE)) + n = sizeof(express_getattr(apath, 'EdgeList', INDETERMINATE)) for i in range(2, n + 1): - p = p and getattr(express_getitem(getattr(apath, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == getattr(express_getitem(getattr(apath, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) + p = p and express_getattr(express_getitem(express_getattr(apath, 'EdgeList', INDETERMINATE), i - 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeEnd', INDETERMINATE) == express_getattr(express_getitem(express_getattr(apath, 'EdgeList', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'EdgeStart', INDETERMINATE) return p def IfcPointDim(point): if 'ifc4x3_tc1.ifccartesianpoint' in typeof(point): - return hiindex(getattr(point, 'Coordinates', INDETERMINATE)) + return hiindex(express_getattr(point, 'Coordinates', INDETERMINATE)) if 'ifc4x3_tc1.ifcpointbydistanceexpression' in typeof(point): - return getattr(getattr(point, 'BasisCurve', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(point, 'BasisCurve', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_tc1.ifcpointoncurve' in typeof(point): - return getattr(getattr(point, 'BasisCurve', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(point, 'BasisCurve', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_tc1.ifcpointonsurface' in typeof(point): - return getattr(getattr(point, 'BasisSurface', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(point, 'BasisSurface', INDETERMINATE), 'Dim', INDETERMINATE) return None def IfcPointListDim(pointlist): @@ -13682,32 +13692,32 @@ def IfcPointListDim(pointlist): return None def IfcSameAxis2Placement(ap1, ap2, epsilon): - return IfcSameDirection(express_getitem(getattr(ap1, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(ap2, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameDirection(express_getitem(getattr(ap1, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(getattr(ap2, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameCartesianPoint(getattr(ap1, 'Location', INDETERMINATE), getattr(ap2, 'Location', INDETERMINATE), epsilon) + return IfcSameDirection(express_getitem(express_getattr(ap1, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(ap2, 'P', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameDirection(express_getitem(express_getattr(ap1, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), express_getitem(express_getattr(ap2, 'P', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), epsilon) and IfcSameCartesianPoint(express_getattr(ap1, 'Location', INDETERMINATE), express_getattr(ap2, 'Location', INDETERMINATE), epsilon) def IfcSameCartesianPoint(cp1, cp2, epsilon): - cp1x = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - cp1y = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp1x = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp1y = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) cp1z = 0 - cp2x = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - cp2y = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp2x = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + cp2y = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) cp2z = 0 - if sizeof(getattr(cp1, 'Coordinates', INDETERMINATE)) > 2: - cp1z = express_getitem(getattr(cp1, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - if sizeof(getattr(cp2, 'Coordinates', INDETERMINATE)) > 2: - cp2z = express_getitem(getattr(cp2, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(cp1, 'Coordinates', INDETERMINATE)) > 2: + cp1z = express_getitem(express_getattr(cp1, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(cp2, 'Coordinates', INDETERMINATE)) > 2: + cp2z = express_getitem(express_getattr(cp2, 'Coordinates', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return IfcSameValue(cp1x, cp2x, epsilon) and IfcSameValue(cp1y, cp2y, epsilon) and IfcSameValue(cp1z, cp2z, epsilon) def IfcSameDirection(dir1, dir2, epsilon): - dir1x = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - dir1y = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir1x = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir1y = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) dir1z = 0 - dir2x = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - dir2y = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir2x = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 1 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + dir2y = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 2 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) dir2z = 0 - if sizeof(getattr(dir1, 'DirectionRatios', INDETERMINATE)) > 2: - dir1z = express_getitem(getattr(dir1, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - if sizeof(getattr(dir2, 'DirectionRatios', INDETERMINATE)) > 2: - dir2z = express_getitem(getattr(dir2, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(dir1, 'DirectionRatios', INDETERMINATE)) > 2: + dir1z = express_getitem(express_getattr(dir1, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + if sizeof(express_getattr(dir2, 'DirectionRatios', INDETERMINATE)) > 2: + dir2z = express_getitem(express_getattr(dir2, 'DirectionRatios', INDETERMINATE), 3 - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) return IfcSameValue(dir1x, dir2x, epsilon) and IfcSameValue(dir1y, dir2y, epsilon) and IfcSameValue(dir1z, dir2z, epsilon) def IfcSameValidPrecision(epsilon1, epsilon2): @@ -13728,15 +13738,15 @@ def IfcScalarTimesVector(scalar, vec): return None else: if 'ifc4x3_tc1.ifcvector' in typeof(vec): - v = getattr(vec, 'Orientation', INDETERMINATE) - mag = scalar * getattr(vec, 'Magnitude', INDETERMINATE) + v = express_getattr(vec, 'Orientation', INDETERMINATE) + mag = scalar * express_getattr(vec, 'Magnitude', INDETERMINATE) else: v = vec mag = scalar if mag < 0.0: - for i in range(1, sizeof(getattr(v, 'DirectionRatios', INDETERMINATE)) + 1): - temp = list(getattr(v, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + for i in range(1, sizeof(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + 1): + temp = list(express_getattr(v, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = -express_getitem(express_getattr(v, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) v.DirectionRatios = temp mag = -mag result = IfcVector(Orientation=IfcNormalise(v), Magnitude=mag) @@ -13752,82 +13762,82 @@ def IfcSecondProjAxis(zaxis, xaxis, arg): temp = IfcScalarTimesVector(IfcDotProduct(v, xaxis), xaxis) yaxis = IfcVectorDifference(yaxis, temp) yaxis = IfcNormalise(yaxis) - return getattr(yaxis, 'Orientation', INDETERMINATE) + return express_getattr(yaxis, 'Orientation', INDETERMINATE) def IfcSegmentDim(segment): if 'ifc4x3_tc1.ifccurvesegment' in typeof(segment): - return getattr(getattr(segment, 'ParentCurve', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(segment, 'ParentCurve', INDETERMINATE), 'Dim', INDETERMINATE) if 'ifc4x3_tc1.ifccompositecurvesegment' in typeof(segment): - return getattr(getattr(segment, 'ParentCurve', INDETERMINATE), 'Dim', INDETERMINATE) + return express_getattr(express_getattr(segment, 'ParentCurve', INDETERMINATE), 'Dim', INDETERMINATE) return None def IfcShapeRepresentationTypes(reptype, items): count = 0 - if getattr(reptype, 'lower', INDETERMINATE)() == 'point': + if express_getattr(reptype, 'lower', INDETERMINATE)() == 'point': count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifcpoint' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'pointcloud': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'pointcloud': count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifccartesianpointlist3d' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve': count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifccurve' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve2d': - count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifccurve' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 2]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'curve3d': - count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifccurve' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 3]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'segment': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve2d': + count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifccurve' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 2]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'curve3d': + count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifccurve' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 3]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'segment': count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifcsegment' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface': count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifcsurface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface2d': - count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifcsurface' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 2]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surface3d': - count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifcsurface' in typeof(temp) and getattr(temp, 'Dim', INDETERMINATE) == 3]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedsurface': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface2d': + count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifcsurface' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 2]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surface3d': + count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifcsurface' in typeof(temp) and express_getattr(temp, 'Dim', INDETERMINATE) == 3]) + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedsurface': count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifcsectionedsurface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'fillarea': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'fillarea': count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifcannotationfillarea' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'text': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'text': count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifctextliteral' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsurface': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsurface': count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifcbsplinesurface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'annotation2d': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'annotation2d': count = sizeof([temp for temp in items if sizeof(typeof(temp) * ['ifc4x3_tc1.ifcpoint', 'ifc4x3_tc1.ifccurve', 'ifc4x3_tc1.ifcgeometriccurveset', 'ifc4x3_tc1.ifcannotationfillarea', 'ifc4x3_tc1.ifctextliteral']) == 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'geometricset': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'geometricset': count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifcgeometricset' in typeof(temp) or 'ifc4x3_tc1.ifcpoint' in typeof(temp) or 'ifc4x3_tc1.ifccurve' in typeof(temp) or ('ifc4x3_tc1.ifcsurface' in typeof(temp))]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'geometriccurveset': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'geometriccurveset': count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifcgeometriccurveset' in typeof(temp) or 'ifc4x3_tc1.ifcgeometricset' in typeof(temp) or 'ifc4x3_tc1.ifcpoint' in typeof(temp) or ('ifc4x3_tc1.ifccurve' in typeof(temp))]) for i in range(1, hiindex(items) + 1): if 'ifc4x3_tc1.ifcgeometricset' in typeof(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - if sizeof([temp for temp in getattr(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Elements', INDETERMINATE) if 'ifc4x3_tc1.ifcsurface' in typeof(temp)]) > 0: + if sizeof([temp for temp in express_getattr(express_getitem(items, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Elements', INDETERMINATE) if 'ifc4x3_tc1.ifcsurface' in typeof(temp)]) > 0: count = count - 1 - elif getattr(reptype, 'lower', INDETERMINATE)() == 'tessellation': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'tessellation': count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifctessellateditem' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surfaceorsolidmodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surfaceorsolidmodel': count = sizeof([temp for temp in items if sizeof(['ifc4x3_tc1.ifctessellateditem', 'ifc4x3_tc1.ifcshellbasedsurfacemodel', 'ifc4x3_tc1.ifcfacebasedsurfacemodel', 'ifc4x3_tc1.ifcsolidmodel'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'surfacemodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'surfacemodel': count = sizeof([temp for temp in items if sizeof(['ifc4x3_tc1.ifctessellateditem', 'ifc4x3_tc1.ifcshellbasedsurfacemodel', 'ifc4x3_tc1.ifcfacebasedsurfacemodel'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'solidmodel': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'solidmodel': count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifcsolidmodel' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'sweptsolid': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'sweptsolid': count = sizeof([temp for temp in items if sizeof(['ifc4x3_tc1.ifcextrudedareasolid', 'ifc4x3_tc1.ifcrevolvedareasolid'] * typeof(temp)) >= 1 and sizeof(['ifc4x3_tc1.ifcextrudedareasolidtapered', 'ifc4x3_tc1.ifcrevolvedareasolidtapered'] * typeof(temp)) == 0]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsweptsolid': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedsweptsolid': count = sizeof([temp for temp in items if sizeof(['ifc4x3_tc1.ifcsweptareasolid', 'ifc4x3_tc1.ifcsweptdisksolid', 'ifc4x3_tc1.ifcsectionedsolidhorizontal'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'csg': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'csg': count = sizeof([temp for temp in items if sizeof(['ifc4x3_tc1.ifcbooleanresult', 'ifc4x3_tc1.ifccsgprimitive3d', 'ifc4x3_tc1.ifccsgsolid'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'clipping': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'clipping': count = sizeof([temp for temp in items if sizeof(['ifc4x3_tc1.ifccsgsolid', 'ifc4x3_tc1.ifcbooleanclippingresult'] * typeof(temp)) >= 1]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'brep': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'brep': count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifcfacetedbrep' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'advancedbrep': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'advancedbrep': count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifcmanifoldsolidbrep' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'boundingbox': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'boundingbox': count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifcboundingbox' in typeof(temp)]) if sizeof(items) > 1: count = 0 - elif getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedspine': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'sectionedspine': count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifcsectionedspine' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'lightsource': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'lightsource': count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifclightsource' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'mappedrepresentation': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'mappedrepresentation': count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifcmappeditem' in typeof(temp)]) else: return None @@ -13835,9 +13845,9 @@ def IfcShapeRepresentationTypes(reptype, items): def IfcSurfaceWeightsPositive(b): result = True - weights = getattr(b, 'Weights', INDETERMINATE) - for i in range(0, getattr(b, 'UUpper', INDETERMINATE) + 1): - for j in range(0, getattr(b, 'VUpper', INDETERMINATE) + 1): + weights = express_getattr(b, 'Weights', INDETERMINATE) + for i in range(0, express_getattr(b, 'UUpper', INDETERMINATE) + 1): + for j in range(0, express_getattr(b, 'VUpper', INDETERMINATE) + 1): if express_getitem(express_getitem(weights, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), j - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) <= 0.0: result = False return result @@ -13847,28 +13857,28 @@ def IfcTaperedSweptAreaProfiles(startarea, endarea): result = False if 'ifc4x3_tc1.ifcparameterizedprofiledef' in typeof(startarea): if 'ifc4x3_tc1.ifcderivedprofiledef' in typeof(endarea): - result = startarea == getattr(endarea, 'ParentProfile', INDETERMINATE) + result = startarea == express_getattr(endarea, 'ParentProfile', INDETERMINATE) else: result = typeof(startarea) == typeof(endarea) elif 'ifc4x3_tc1.ifcderivedprofiledef' in typeof(endarea): - result = startarea == getattr(endarea, 'ParentProfile', INDETERMINATE) + result = startarea == express_getattr(endarea, 'ParentProfile', INDETERMINATE) else: result = False return result def IfcTopologyRepresentationTypes(reptype, items): count = 0 - if getattr(reptype, 'lower', INDETERMINATE)() == 'vertex': + if express_getattr(reptype, 'lower', INDETERMINATE)() == 'vertex': count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifcvertex' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'edge': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'edge': count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifcedge' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'path': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'path': count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifcpath' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'face': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'face': count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifcface' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'shell': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'shell': count = sizeof([temp for temp in items if 'ifc4x3_tc1.ifcopenshell' in typeof(temp) or 'ifc4x3_tc1.ifcclosedshell' in typeof(temp)]) - elif getattr(reptype, 'lower', INDETERMINATE)() == 'undefined': + elif express_getattr(reptype, 'lower', INDETERMINATE)() == 'undefined': return True else: return None @@ -13879,7 +13889,7 @@ def IfcUniqueDefinitionNames(relations): if sizeof(relations) == 0: return True for i in range(1, hiindex(relations) + 1): - definition = getattr(express_getitem(relations, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingPropertyDefinition', INDETERMINATE) + definition = express_getattr(express_getitem(relations, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'RelatingPropertyDefinition', INDETERMINATE) if 'ifc4x3_tc1.ifcpropertysetdefinition' in typeof(definition): properties = properties + definition elif 'ifc4x3_tc1.ifcpropertysetdefinitionset' in typeof(definition): @@ -13892,7 +13902,7 @@ def IfcUniqueDefinitionNames(relations): def IfcUniquePropertyName(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcUniquePropertySetNames(properties): @@ -13900,7 +13910,7 @@ def IfcUniquePropertySetNames(properties): unnamed = 0 for i in range(1, hiindex(properties) + 1): if 'ifc4x3_tc1.ifcpropertyset' in typeof(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE)): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) else: unnamed = unnamed + 1 return sizeof(names) + unnamed == sizeof(properties) @@ -13908,41 +13918,41 @@ def IfcUniquePropertySetNames(properties): def IfcUniquePropertyTemplateNames(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcUniqueQuantityNames(properties): names = express_set([]) for i in range(1, hiindex(properties) + 1): - names = names + getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) + names = names + express_getattr(express_getitem(properties, i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE), 'Name', INDETERMINATE) return sizeof(names) == sizeof(properties) def IfcVectorDifference(arg1, arg2): - if (not exists(arg1) or not exists(arg2)) or getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + if (not exists(arg1) or not exists(arg2)) or express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): return None else: if 'ifc4x3_tc1.ifcvector' in typeof(arg1): - mag1 = getattr(arg1, 'Magnitude', INDETERMINATE) - vec1 = getattr(arg1, 'Orientation', INDETERMINATE) + mag1 = express_getattr(arg1, 'Magnitude', INDETERMINATE) + vec1 = express_getattr(arg1, 'Orientation', INDETERMINATE) else: mag1 = 1.0 vec1 = arg1 if 'ifc4x3_tc1.ifcvector' in typeof(arg2): - mag2 = getattr(arg2, 'Magnitude', INDETERMINATE) - vec2 = getattr(arg2, 'Orientation', INDETERMINATE) + mag2 = express_getattr(arg2, 'Magnitude', INDETERMINATE) + vec2 = express_getattr(arg2, 'Orientation', INDETERMINATE) else: mag2 = 1.0 vec2 = arg2 vec1 = IfcNormalise(vec1) vec2 = IfcNormalise(vec2) - ndim = sizeof(getattr(vec1, 'DirectionRatios', INDETERMINATE)) + ndim = sizeof(express_getattr(vec1, 'DirectionRatios', INDETERMINATE)) mag = 0.0 res = IfcDirection(DirectionRatios=[0.0] * ndim) for i in range(1, ndim + 1): - temp = list(getattr(res, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - mag2 * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(res, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) - mag2 * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) res.DirectionRatios = temp - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: @@ -13950,31 +13960,31 @@ def IfcVectorDifference(arg1, arg2): return result def IfcVectorSum(arg1, arg2): - if (not exists(arg1) or not exists(arg2)) or getattr(arg1, 'Dim', INDETERMINATE) != getattr(arg2, 'Dim', INDETERMINATE): + if (not exists(arg1) or not exists(arg2)) or express_getattr(arg1, 'Dim', INDETERMINATE) != express_getattr(arg2, 'Dim', INDETERMINATE): return None else: if 'ifc4x3_tc1.ifcvector' in typeof(arg1): - mag1 = getattr(arg1, 'Magnitude', INDETERMINATE) - vec1 = getattr(arg1, 'Orientation', INDETERMINATE) + mag1 = express_getattr(arg1, 'Magnitude', INDETERMINATE) + vec1 = express_getattr(arg1, 'Orientation', INDETERMINATE) else: mag1 = 1.0 vec1 = arg1 if 'ifc4x3_tc1.ifcvector' in typeof(arg2): - mag2 = getattr(arg2, 'Magnitude', INDETERMINATE) - vec2 = getattr(arg2, 'Orientation', INDETERMINATE) + mag2 = express_getattr(arg2, 'Magnitude', INDETERMINATE) + vec2 = express_getattr(arg2, 'Orientation', INDETERMINATE) else: mag2 = 1.0 vec2 = arg2 vec1 = IfcNormalise(vec1) vec2 = IfcNormalise(vec2) - ndim = sizeof(getattr(vec1, 'DirectionRatios', INDETERMINATE)) + ndim = sizeof(express_getattr(vec1, 'DirectionRatios', INDETERMINATE)) mag = 0.0 res = IfcDirection(DirectionRatios=[0.0] * ndim) for i in range(1, ndim + 1): - temp = list(getattr(res, 'DirectionRatios', INDETERMINATE)) - temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag2 * express_getitem(getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + temp = list(express_getattr(res, 'DirectionRatios', INDETERMINATE)) + temp[i - EXPRESS_ONE_BASED_INDEXING] = mag1 * express_getitem(express_getattr(vec1, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag2 * express_getitem(express_getattr(vec2, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) res.DirectionRatios = temp - mag = mag + express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) + mag = mag + express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) * express_getitem(express_getattr(res, 'DirectionRatios', INDETERMINATE), i - EXPRESS_ONE_BASED_INDEXING, INDETERMINATE) if mag > 0.0: result = IfcVector(Orientation=res, Magnitude=sqrt(mag)) else: diff --git a/src/ifcopenshell-python/ifcopenshell/file.py b/src/ifcopenshell-python/ifcopenshell/file.py index 0aadacfbfc..a12d12eb57 100644 --- a/src/ifcopenshell-python/ifcopenshell/file.py +++ b/src/ifcopenshell-python/ifcopenshell/file.py @@ -17,25 +17,27 @@ # along with IfcOpenShell. If not, see . from __future__ import annotations + +import functools +import numbers import os import re -import numbers import time -import zipfile -import functools -import ifcopenshell -import weakref import types -from pathlib import Path -from typing import Any, Optional, TYPE_CHECKING, Union, overload, Literal, TypedDict +import weakref +import zipfile from collections.abc import Callable, Generator +from pathlib import Path +from typing import TYPE_CHECKING, Any, Literal, Optional, TypedDict, Union, overload + from typing_extensions import assert_never +import ifcopenshell +from ifcopenshell.util.mvd_info import LARK_AVAILABLE, MvdInfo + from . import ifcopenshell_wrapper from .entity_instance import entity_instance -from ifcopenshell.util.mvd_info import MvdInfo, LARK_AVAILABLE - if TYPE_CHECKING: import ifcopenshell.util.schema diff --git a/src/ifcopenshell-python/ifcopenshell/geom/__init__.py b/src/ifcopenshell-python/ifcopenshell/geom/__init__.py index 604e5b8e37..9ed96fa0c8 100644 --- a/src/ifcopenshell-python/ifcopenshell/geom/__init__.py +++ b/src/ifcopenshell-python/ifcopenshell/geom/__init__.py @@ -40,7 +40,7 @@ def _has_occ(): pass try: - import OCC.BRepTools + import OCC.BRepTools # noqa: F401 return True except ImportError: @@ -52,6 +52,6 @@ def _has_occ(): has_occ = _has_occ() if has_occ: - from . import occ_utils as utils + from . import occ_utils as utils # noqa: F401 from .main import * diff --git a/src/ifcopenshell-python/ifcopenshell/geom/app.py b/src/ifcopenshell-python/ifcopenshell/geom/app.py index aa11f18c1f..fa07f3f2b8 100644 --- a/src/ifcopenshell-python/ifcopenshell/geom/app.py +++ b/src/ifcopenshell-python/ifcopenshell/geom/app.py @@ -16,24 +16,23 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +import functools +import multiprocessing import os import sys import time -import operator -import functools -import multiprocessing + import ifcopenshell.ifcopenshell_wrapper as W try: - from OCC.Core import AIS + from OCC.Core import AIS # noqa: F401 USE_OCCT_HANDLE = False except ImportError: - from OCC import AIS USE_OCCT_HANDLE = True -from collections import defaultdict, OrderedDict +from collections import OrderedDict, defaultdict from collections.abc import Iterable try: @@ -55,7 +54,6 @@ from .code_editor_pane import code_edit try: from OCC.Display.pyqt5Display import qtViewer3d except BaseException: - import OCC.Display try: import OCC.Display.backend @@ -69,11 +67,10 @@ except BaseException: from OCC.Display.qtDisplay import qtViewer3d -from .main import settings, iterator -from .occ_utils import display_shape - from .. import open as open_ifc_file from .. import version as ifcopenshell_version +from .main import iterator, settings +from .occ_utils import display_shape if ifcopenshell_version < "0.6": # not yet ported diff --git a/src/ifcopenshell-python/ifcopenshell/geom/code_editor_pane.py b/src/ifcopenshell-python/ifcopenshell/geom/code_editor_pane.py index f84f45a234..3e130debbc 100644 --- a/src/ifcopenshell-python/ifcopenshell/geom/code_editor_pane.py +++ b/src/ifcopenshell-python/ifcopenshell/geom/code_editor_pane.py @@ -16,11 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import os -import sys import logging - +import sys from code import InteractiveConsole + from PyQt5 import QtCore, QtGui, QtWidgets try: @@ -29,15 +28,12 @@ except BaseException: QtWidgets = QtGui try: - from pyqode.core.panels import CheckerPanel - from pyqode.core import api - from pyqode.core import modes - from pyqode.core import panels - from pyqode.core.api import CodeEdit, ColorScheme - from pyqode.python.modes import PyAutoIndentMode, PythonSH + from pyqode.core import api, modes, panels + from pyqode.core.api import CodeEdit + from pyqode.python import modes as pymodes + from pyqode.python import panels as pypanels from pyqode.python.backend import server - from pyqode.python import modes as pymodes, panels as pypanels, widgets - from pyqode.python.widgets import PyInteractiveConsole + from pyqode.python.modes import PythonSH has_pyqode = True except BaseException: diff --git a/src/ifcopenshell-python/ifcopenshell/geom/main.py b/src/ifcopenshell-python/ifcopenshell/geom/main.py index a1f00bb137..db6deecb15 100644 --- a/src/ifcopenshell-python/ifcopenshell/geom/main.py +++ b/src/ifcopenshell-python/ifcopenshell/geom/main.py @@ -18,18 +18,14 @@ from __future__ import annotations -import os -import sys -import operator -from .. import open, ifcopenshell_wrapper -from ..file import file -from ..entity_instance import entity_instance - -from . import has_occ - -from typing import TypeVar, Union, Optional, Any, Literal, overload, TYPE_CHECKING, cast from collections.abc import Generator, Iterable +from typing import TYPE_CHECKING, Any, Literal, Optional, TypeVar, Union, cast, overload + +from .. import ifcopenshell_wrapper, open +from ..entity_instance import entity_instance +from ..file import file +from . import has_occ if TYPE_CHECKING: from OCC.Core import TopoDS @@ -672,7 +668,7 @@ class serializers: # so no wrap_buffer_creation() for these serializers xml = ifcopenshell_wrapper.XmlSerializer buffer = ifcopenshell_wrapper.buffer - # gltf and hdf5 availability depend on IfcOpenShell configuration settings + # gltf, hdf5, collada and json availability depend on IfcOpenShell configuration settings try: gltf = ifcopenshell_wrapper.GltfSerializer except: @@ -685,6 +681,10 @@ class serializers: collada = ifcopenshell_wrapper.ColladaSerializer except: pass + try: + json = ifcopenshell_wrapper.JsonSerializer + except: + pass # ttl is always available since it doesn't depend on any C++ libraries, # just people might be using an outdated binary if hasattr(ifcopenshell_wrapper, "TtlWktSerializer"): diff --git a/src/ifcopenshell-python/ifcopenshell/geom/occ_utils.py b/src/ifcopenshell-python/ifcopenshell/geom/occ_utils.py index 9835b48696..8964b2392a 100644 --- a/src/ifcopenshell-python/ifcopenshell/geom/occ_utils.py +++ b/src/ifcopenshell-python/ifcopenshell/geom/occ_utils.py @@ -18,24 +18,25 @@ from __future__ import annotations -import inspect -import random -import operator -import warnings -import ifcopenshell.ifcopenshell_wrapper as ifcopenshell_wrapper -from typing import NamedTuple, Any, Union -from typing_extensions import assert_never +import inspect +import operator +import random +import warnings from collections.abc import Iterable +from typing import NamedTuple, Union import OCC +from typing_extensions import assert_never + +import ifcopenshell.ifcopenshell_wrapper as ifcopenshell_wrapper try: - from OCC.Core import V3d, TopoDS, gp, AIS, Quantity, BRepTools, Graphic3d + from OCC.Core import AIS, BRepTools, Graphic3d, Quantity, TopoDS, V3d, gp USE_OCCT_HANDLE = False except ImportError: - from OCC import V3d, TopoDS, gp, AIS, Quantity, BRepTools, Graphic3d + from OCC import AIS, BRepTools, Graphic3d, Quantity, TopoDS, V3d, gp USE_OCCT_HANDLE = True diff --git a/src/ifcopenshell-python/ifcopenshell/geom/stats.py b/src/ifcopenshell-python/ifcopenshell/geom/stats.py index 364083acd7..9266d532d4 100644 --- a/src/ifcopenshell-python/ifcopenshell/geom/stats.py +++ b/src/ifcopenshell-python/ifcopenshell/geom/stats.py @@ -1,6 +1,6 @@ import sys -from typing import Optional, IO from itertools import accumulate +from typing import IO, Optional from . import ifcopenshell_wrapper diff --git a/src/ifcopenshell-python/ifcopenshell/guid.py b/src/ifcopenshell-python/ifcopenshell/guid.py index 6e3c6f5b0a..4f6d30332d 100644 --- a/src/ifcopenshell-python/ifcopenshell/guid.py +++ b/src/ifcopenshell-python/ifcopenshell/guid.py @@ -47,11 +47,10 @@ cf. . -import ifcopenshell -from typing import Any, Union, Literal +from typing import Any, Literal, Union + from typing_extensions import Self +import ifcopenshell + # `std::vector` usually translated to `tuple[xxx, ...]`. ON_SLABS_AND_WALLS: Any @@ -363,6 +365,13 @@ class Iterator: def unit_magnitude(self): ... def unit_name(self): ... +class JsonSerializer: + JSON_DIALECT_CREOOX: Any + def finalize(self): ... + def ready(self): ... + def setFile(self, arg2): ... + def writeHeader(self): ... + class OpaqueCoordinate_3: def get(self, i): ... def set(self, i, n): ... @@ -591,10 +600,6 @@ class XmlSerializer: def setFile(self, arg2): ... def writeHeader(self): ... -class XmlSerializerFactory: - @staticmethod - def implementations(): ... - class _SwigNonDynamicMeta(type): ... class abstract_arrangement: @@ -1597,6 +1602,7 @@ class uninitialized_tag: ... def arrange_polygons(polygons): ... def clear_schemas(): ... +def construct_iterator(geometry_library, settings, file, num_threads): ... def construct_iterator_with_include_exclude(geometry_library, settings, file, elems, include, num_threads): ... def construct_iterator_with_include_exclude_globalid(geometry_library, settings, file, elems, include, num_threads): ... def construct_iterator_with_include_exclude_id(geometry_library, settings, file, elems, include, num_threads): ... diff --git a/src/ifcopenshell-python/ifcopenshell/simple_spf b/src/ifcopenshell-python/ifcopenshell/simple_spf index 2849a31788..30317826f8 160000 --- a/src/ifcopenshell-python/ifcopenshell/simple_spf +++ b/src/ifcopenshell-python/ifcopenshell/simple_spf @@ -1 +1 @@ -Subproject commit 2849a31788c4f82edca7d1b1046d0606fdf8b9be +Subproject commit 30317826f8f743860ecff9e183699296593e42cb diff --git a/src/ifcopenshell-python/ifcopenshell/sql.py b/src/ifcopenshell-python/ifcopenshell/sql.py index e0701cf8ed..dcc170e006 100644 --- a/src/ifcopenshell-python/ifcopenshell/sql.py +++ b/src/ifcopenshell-python/ifcopenshell/sql.py @@ -16,19 +16,23 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . from __future__ import annotations -import re + import json +import re import types +from pathlib import Path +from typing import TYPE_CHECKING, Any, NoReturn, Optional, TypedDict, Union + import numpy as np import numpy.typing as npt + import ifcopenshell import ifcopenshell.util.attribute import ifcopenshell.util.schema -from pathlib import Path -from typing import Any, NoReturn, Union, Optional, TYPE_CHECKING, TypedDict + from . import ifcopenshell_wrapper -from .file import file from .entity_instance import entity_instance +from .file import file if TYPE_CHECKING: import sqlite3 diff --git a/src/ifcopenshell-python/ifcopenshell/stream.py b/src/ifcopenshell-python/ifcopenshell/stream.py index 655dc2d9cd..627ebac82c 100644 --- a/src/ifcopenshell-python/ifcopenshell/stream.py +++ b/src/ifcopenshell-python/ifcopenshell/stream.py @@ -21,15 +21,16 @@ from __future__ import annotations try: import os import re + from typing import Any, NoReturn, Optional, Union + + from lark import Lark, Transformer import ifcopenshell.util.attribute import ifcopenshell.util.schema - from .file import file + from . import ifcopenshell_wrapper from .entity_instance import entity_instance - - from lark import Lark, Transformer - from typing import Any, NoReturn, Union, Optional + from .file import file class StreamTransformer(Transformer): file: file diff --git a/src/ifcopenshell-python/ifcopenshell/template.py b/src/ifcopenshell-python/ifcopenshell/template.py index d31b125279..bd58d0fdef 100644 --- a/src/ifcopenshell-python/ifcopenshell/template.py +++ b/src/ifcopenshell-python/ifcopenshell/template.py @@ -19,12 +19,11 @@ import time import uuid +from typing import Optional from .file import file from .guid import compress from .ifcopenshell_wrapper import version -from typing import Optional - # A quick way to setup an 'empty' IFC file, taken from: # http://academy.ifcopenshell.org/creating-a-simple-wall-with-property-set-and-quantity-information/ diff --git a/src/ifcopenshell-python/ifcopenshell/util/alignment.py b/src/ifcopenshell-python/ifcopenshell/util/alignment.py index ad6c6dd65d..1b90ac7c5f 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/alignment.py +++ b/src/ifcopenshell-python/ifcopenshell/util/alignment.py @@ -17,6 +17,7 @@ # along with IfcOpenShell. If not, see . import math + import ifcopenshell import ifcopenshell.util.unit diff --git a/src/ifcopenshell-python/ifcopenshell/util/attribute.py b/src/ifcopenshell-python/ifcopenshell/util/attribute.py index a3212aca67..0e34b5c022 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/attribute.py +++ b/src/ifcopenshell-python/ifcopenshell/util/attribute.py @@ -16,8 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Literal, Union + import ifcopenshell.ifcopenshell_wrapper as ifcopenshell_wrapper -from typing import Union, Literal PrimitiveType = Literal["entity", "string", "float", "integer", "boolean", "enum", "binary"] ComplexPrimitiveType = Literal["list", "array", "set"] diff --git a/src/ifcopenshell-python/ifcopenshell/util/brick.py b/src/ifcopenshell-python/ifcopenshell/util/brick.py index 04e0be5452..ec358c2b98 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/brick.py +++ b/src/ifcopenshell-python/ifcopenshell/util/brick.py @@ -16,14 +16,14 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import os import json +import os +from typing import Union + import ifcopenshell import ifcopenshell.util.classification import ifcopenshell.util.element import ifcopenshell.util.system -from typing import Union - cwd = os.path.dirname(os.path.realpath(__file__)) diff --git a/src/ifcopenshell-python/ifcopenshell/util/classification.py b/src/ifcopenshell-python/ifcopenshell/util/classification.py index 06f9b0e31a..df36eb97a4 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/classification.py +++ b/src/ifcopenshell-python/ifcopenshell/util/classification.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.util.element from typing import Optional +import ifcopenshell.util.element + def get_references(element: ifcopenshell.entity_instance, should_inherit=True) -> set[ifcopenshell.entity_instance]: """Gets classification references associated with the element diff --git a/src/ifcopenshell-python/ifcopenshell/util/constraint.py b/src/ifcopenshell-python/ifcopenshell/util/constraint.py index 2c370aa997..6d52d74676 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/constraint.py +++ b/src/ifcopenshell-python/ifcopenshell/util/constraint.py @@ -18,9 +18,10 @@ # # -import ifcopenshell from typing import Union +import ifcopenshell + def get_constraints(product: ifcopenshell.entity_instance) -> list[ifcopenshell.entity_instance]: """ diff --git a/src/ifcopenshell-python/ifcopenshell/util/cost.py b/src/ifcopenshell-python/ifcopenshell/util/cost.py index 8bdca75e1b..19172c4710 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/cost.py +++ b/src/ifcopenshell-python/ifcopenshell/util/cost.py @@ -16,10 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import lark -import ifcopenshell -from typing import Optional, Union, Literal, Any from collections.abc import Generator +from typing import Any, Literal, Optional, Union + +import lark + +import ifcopenshell import ifcopenshell.ifcopenshell_wrapper as ifcopenshell_wrapper import ifcopenshell.util.attribute import ifcopenshell.util.element @@ -189,11 +191,9 @@ def get_cost_items_for_product(product: ifcopenshell.entity_instance) -> list[if """ Returns a list of cost items related to the given product. - Args: - product: An object of class IfcProduct representing a product. + :param product: An object of class IfcProduct representing a product. - Returns: - A list of IfcCostItem objects representing the cost items related to the product. + :return: A list of IfcCostItem objects representing the cost items related to the product. """ cost_items = [] for assignment in product.HasAssignments: diff --git a/src/ifcopenshell-python/ifcopenshell/util/data.py b/src/ifcopenshell-python/ifcopenshell/util/data.py index c65a87ddb0..4169b1ea4d 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/data.py +++ b/src/ifcopenshell-python/ifcopenshell/util/data.py @@ -17,10 +17,13 @@ # along with IfcOpenShell. If not, see . from __future__ import annotations -import numpy as np -import ifcopenshell -from typing import Any, Union + from dataclasses import dataclass +from typing import Any, Union + +import numpy as np + +import ifcopenshell from ifcopenshell.util.shape_builder import ShapeBuilder diff --git a/src/ifcopenshell-python/ifcopenshell/util/date.py b/src/ifcopenshell-python/ifcopenshell/util/date.py index 3b0761f75c..dcd1c36ca5 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/date.py +++ b/src/ifcopenshell-python/ifcopenshell/util/date.py @@ -16,12 +16,14 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell import datetime -import isodate from re import findall +from typing import Any, Literal, Union, overload + +import isodate from dateutil import parser -from typing import Literal, Union, Any, overload + +import ifcopenshell def timedelta2duration(timedelta): diff --git a/src/ifcopenshell-python/ifcopenshell/util/doc.py b/src/ifcopenshell-python/ifcopenshell/util/doc.py index 41d6189fe4..b0443f6117 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/doc.py +++ b/src/ifcopenshell-python/ifcopenshell/util/doc.py @@ -16,27 +16,30 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +import copy import json from pathlib import Path -import copy +from typing import Optional, TypedDict, Union + +from typing_extensions import NotRequired + import ifcopenshell import ifcopenshell.ifcopenshell_wrapper as ifcopenshell_wrapper import ifcopenshell.util.attribute import ifcopenshell.util.schema -from typing import Optional, Literal, Any, Union, TypedDict -from typing_extensions import NotRequired try: import glob - import warnings - import requests - import urllib.parse - from markdown import markdown - from bs4 import BeautifulSoup, MarkupResemblesLocatorWarning - import zipfile - from lxml import etree import re import shutil + import urllib.parse + import warnings + import zipfile + + import requests + from bs4 import BeautifulSoup, MarkupResemblesLocatorWarning + from lxml import etree + from markdown import markdown except: pass # Only necessary if you're using it to generate the docs database diff --git a/src/ifcopenshell-python/ifcopenshell/util/element.py b/src/ifcopenshell-python/ifcopenshell/util/element.py index 7bbe8bdc99..149606cb14 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/element.py +++ b/src/ifcopenshell-python/ifcopenshell/util/element.py @@ -16,14 +16,14 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from collections import namedtuple +from collections.abc import Callable, Generator, Sequence +from typing import Any, Literal, Optional, Union, overload + import ifcopenshell import ifcopenshell.guid import ifcopenshell.util.element import ifcopenshell.util.representation -from typing import Any, Callable, Optional, Union, Literal, overload -from collections.abc import Generator, Sequence -from collections import namedtuple - MATERIAL_TYPE = Literal[ "IfcMaterial", @@ -35,6 +35,9 @@ MATERIAL_TYPE = Literal[ "IfcMaterialList", ] +PrioritisedLayer = namedtuple("PrioritisedLayer", "priority material thickness") +PrioritisedProfile = namedtuple("PrioritisedProfile", "priority material profile") + def get_pset( element: ifcopenshell.entity_instance, @@ -1845,3 +1848,48 @@ def has_openings(element: ifcopenshell.entity_instance) -> bool: :return: True if element has openings. """ return bool(next(get_openings(element), False)) + + +def get_material_layers(element: ifcopenshell.entity_instance) -> list[PrioritisedLayer]: + """ + Retrieves all material layers assigned to an element. + :param element: The IFC element + :return: A list of IfcMaterialLayer entities + + Example: + .. code:: python + element = ifcopenshell.by_type("IfcWall")[0] + material_layers = ifcopenshell.util.element.get_material_layers(element) + """ + material = ifcopenshell.util.element.get_material(element, should_skip_usage=True) + if not material or not material.is_a("IfcMaterialLayerSet"): + return [] + return [ + PrioritisedLayer(getattr(layer, "Priority", 0) or 0, layer.Material, layer.LayerThickness) + for layer in material.MaterialLayers + ] + + +def get_material_profiles(element: ifcopenshell.entity_instance) -> list[PrioritisedProfile]: + """ + Retrieves all material profiles assigned to an element. + + :param element: The IFC element + :return: A list of IfcMaterialProfile entities + + Example: + + .. code:: python + + element = ifcopenshell.by_type("IfcBeam")[0] + material_profiles = ifcopenshell.util.element.get_material_profiles(element) + """ + material = ifcopenshell.util.element.get_material(element, should_skip_usage=True) + if not material or not material.is_a("IfcMaterialProfileSet"): + return [] + return [ + PrioritisedProfile( + getattr(material_profile, "Priority", 0) or 0, material_profile.Material, material_profile.Profile + ) + for material_profile in material.MaterialProfiles + ] diff --git a/src/ifcopenshell-python/ifcopenshell/util/file.py b/src/ifcopenshell-python/ifcopenshell/util/file.py index 4875ddf3b7..a874e1ba4d 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/file.py +++ b/src/ifcopenshell-python/ifcopenshell/util/file.py @@ -17,7 +17,8 @@ # along with IfcOpenShell. If not, see . import zipfile -from typing import IO, Union, TypedDict +from typing import IO, TypedDict, Union + from typing_extensions import NotRequired diff --git a/src/ifcopenshell-python/ifcopenshell/util/fm.py b/src/ifcopenshell-python/ifcopenshell/util/fm.py index c9b1977e4e..bfb7391dc3 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/fm.py +++ b/src/ifcopenshell-python/ifcopenshell/util/fm.py @@ -16,11 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import Literal + +from typing_extensions import assert_never + import ifcopenshell import ifcopenshell.ifcopenshell_wrapper as W import ifcopenshell.util.attribute -from typing import Literal -from typing_extensions import assert_never # COBie actually uses an exclusion list, but this inclusion list is equivalent. cobie_type_classes = [ diff --git a/src/ifcopenshell-python/ifcopenshell/util/generate_pset_templates.py b/src/ifcopenshell-python/ifcopenshell/util/generate_pset_templates.py index 44d5bc28cf..681c074009 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/generate_pset_templates.py +++ b/src/ifcopenshell-python/ifcopenshell/util/generate_pset_templates.py @@ -18,22 +18,22 @@ RUN_FROM_DEV_REPO = False -import ifcopenshell.ifcopenshell_wrapper as W -import ifcopenshell.api.unit -import ifcopenshell.api.project -import ifcopenshell.guid -import ifcopenshell.util.attribute import glob import sys -from pathlib import Path -from lxml import etree from itertools import chain +from pathlib import Path from typing import cast +from lxml import etree + +import ifcopenshell.api.project +import ifcopenshell.api.unit +import ifcopenshell.guid +import ifcopenshell.ifcopenshell_wrapper as W if not RUN_FROM_DEV_REPO: - import zipfile import shutil + import zipfile BASE_MODULE_PATH = Path(__file__).parent diff --git a/src/ifcopenshell-python/ifcopenshell/util/geolocation.py b/src/ifcopenshell-python/ifcopenshell/util/geolocation.py index 748ba8f3c3..fba8dfffaf 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/geolocation.py +++ b/src/ifcopenshell-python/ifcopenshell/util/geolocation.py @@ -17,12 +17,14 @@ # along with IfcOpenShell. If not, see . import math +from decimal import ROUND_HALF_UP, Decimal +from typing import NamedTuple, Optional, Union + import numpy as np + import ifcopenshell import ifcopenshell.util.element import ifcopenshell.util.placement -from typing import NamedTuple, Optional, Union -from decimal import Decimal, ROUND_HALF_UP MatrixType = ifcopenshell.util.placement.MatrixType diff --git a/src/ifcopenshell-python/ifcopenshell/util/ifc4x3dev_scrape_data_for_docs.py b/src/ifcopenshell-python/ifcopenshell/util/ifc4x3dev_scrape_data_for_docs.py index 02e4f1f491..86ab81ef4c 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/ifc4x3dev_scrape_data_for_docs.py +++ b/src/ifcopenshell-python/ifcopenshell/util/ifc4x3dev_scrape_data_for_docs.py @@ -17,7 +17,12 @@ # along with IfcOpenShell. If not, see . try: - from server import get_resource_path, resource_documentation_builder, process_markdown, R + from server import ( + R, + get_resource_path, + process_markdown, + resource_documentation_builder, + ) except ModuleNotFoundError as e: print( "ERROR. Failed to import `server.py`.\n" @@ -26,13 +31,15 @@ except ModuleNotFoundError as e: raise e import itertools -import operator import json -import ifcopenshell +import operator from collections import Counter -from bs4 import BeautifulSoup from typing import Any, Union +from bs4 import BeautifulSoup + +import ifcopenshell + # Hacky modified functions from server.py to make parser work def get_definition_from_md(resource: str, mdc: str) -> str: diff --git a/src/ifcopenshell-python/ifcopenshell/util/mvd_info.py b/src/ifcopenshell-python/ifcopenshell/util/mvd_info.py index a4ca36039d..a3bdb07337 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/mvd_info.py +++ b/src/ifcopenshell-python/ifcopenshell/util/mvd_info.py @@ -26,8 +26,8 @@ try: except ImportError: LARK_AVAILABLE = False -from typing import Callable, Union import re +from typing import Union if LARK_AVAILABLE: mvd_grammar = r""" @@ -51,9 +51,9 @@ if LARK_AVAILABLE: value: /[A-Za-z0-9 _\.-]+/ - other_keyword: /[^\[\]]+/ - - dynamic_option_word: /[^\[\]]+/ + other_keyword: /[^\[\]]+/ + + dynamic_option_word: /[^\[\]]+/ %import common.WS %ignore WS diff --git a/src/ifcopenshell-python/ifcopenshell/util/placement.py b/src/ifcopenshell-python/ifcopenshell/util/placement.py index e7e7b99a68..cc37ab9906 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/placement.py +++ b/src/ifcopenshell-python/ifcopenshell/util/placement.py @@ -16,11 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from collections.abc import Iterable +from typing import Literal, Optional + import numpy as np import numpy.typing as npt + import ifcopenshell -from typing import Literal, Optional -from collections.abc import Iterable MatrixType = npt.NDArray[np.float64] """`npt.NDArray[np.float64]`""" diff --git a/src/ifcopenshell-python/ifcopenshell/util/profiler.py b/src/ifcopenshell-python/ifcopenshell/util/profiler.py new file mode 100644 index 0000000000..2228a54a6a --- /dev/null +++ b/src/ifcopenshell-python/ifcopenshell/util/profiler.py @@ -0,0 +1,35 @@ +# IfcOpenShell - IFC toolkit and geometry engine +# Copyright (C) 2021 Dion Moult +# +# This file is part of IfcOpenShell. +# +# IfcOpenShell is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcOpenShell is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with IfcOpenShell. If not, see . + + +from timeit import default_timer as timer + + +class Profiler: + """ + A python context manager timing utility, useful for measure functions performances + """ + + def __init__(self, task): + self.task = task + + def __enter__(self): + self.start = timer() + + def __exit__(self, *args): + print(f"{self.task} {timer() - self.start:.6f} s") diff --git a/src/ifcopenshell-python/ifcopenshell/util/pset.py b/src/ifcopenshell-python/ifcopenshell/util/pset.py index df906a2e57..68fc84a5b1 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/pset.py +++ b/src/ifcopenshell-python/ifcopenshell/util/pset.py @@ -16,15 +16,16 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import re import pathlib +import re +from functools import lru_cache +from typing import Literal, NamedTuple, Optional, Union + import ifcopenshell import ifcopenshell.ifcopenshell_wrapper as W import ifcopenshell.util.schema import ifcopenshell.util.type from ifcopenshell.entity_instance import entity_instance -from functools import lru_cache -from typing import Optional, Literal, NamedTuple, Union templates: dict[ifcopenshell.util.schema.IFC_SCHEMA, "PsetQto"] = {} diff --git a/src/ifcopenshell-python/ifcopenshell/util/representation.py b/src/ifcopenshell-python/ifcopenshell/util/representation.py index 10743294b0..f0c2b54fca 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/representation.py +++ b/src/ifcopenshell-python/ifcopenshell/util/representation.py @@ -16,15 +16,16 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from collections.abc import Generator, Sequence +from typing import Literal, Optional, TypedDict, Union + import numpy as np import numpy.typing as npt -import ifcopenshell -import ifcopenshell.util.representation -import ifcopenshell.util.placement -import ifcopenshell.util.shape -from typing import Optional, Union, TypedDict, Literal -from collections.abc import Generator, Sequence +import ifcopenshell +import ifcopenshell.util.placement +import ifcopenshell.util.representation +import ifcopenshell.util.shape CONTEXT_TYPE = Literal["Model", "Plan", "NotDefined"] REPRESENTATION_IDENTIFIER = Literal[ diff --git a/src/ifcopenshell-python/ifcopenshell/util/resource.py b/src/ifcopenshell-python/ifcopenshell/util/resource.py index f518a09125..262ddda125 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/resource.py +++ b/src/ifcopenshell-python/ifcopenshell/util/resource.py @@ -16,11 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.util.cost -import ifcopenshell.util.element -import ifcopenshell.util.date -from typing import Union, Any +from typing import Any, Union +import ifcopenshell.util.cost +import ifcopenshell.util.date +import ifcopenshell.util.element PRODUCTIVITY_PSET_DATA = Union[dict[str, Any], None] # https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcConstructionResource.htm#Table-7.3.3.7.1.3.H diff --git a/src/ifcopenshell-python/ifcopenshell/util/schema.py b/src/ifcopenshell-python/ifcopenshell/util/schema.py index d3d7b65c6a..bdd6d489d0 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/schema.py +++ b/src/ifcopenshell-python/ifcopenshell/util/schema.py @@ -16,13 +16,14 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import os import json +import os import time +from typing import Any, Literal, Union + import ifcopenshell -import ifcopenshell.util.attribute import ifcopenshell.ifcopenshell_wrapper as ifcopenshell_wrapper -from typing import Union, Any, Literal +import ifcopenshell.util.attribute # This is highly experimental and incomplete, however, it may work for simple datasets. diff --git a/src/ifcopenshell-python/ifcopenshell/util/schema/ifc_classes_suggestions.json b/src/ifcopenshell-python/ifcopenshell/util/schema/ifc_classes_suggestions.json index ea520e028b..c3cf248ada 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/schema/ifc_classes_suggestions.json +++ b/src/ifcopenshell-python/ifcopenshell/util/schema/ifc_classes_suggestions.json @@ -5,6 +5,16 @@ "predefined_type": "NOTDEFINED" } ], + "IfcAirTerminal": [ + { + "name": "Commercial Kitchen Hood" + } + ], + "IfcAirTerminalType": [ + { + "name": "Commercial Kitchen Hood" + } + ], "IfcAirTerminalBox": [ { "name": "VAV Box" @@ -51,6 +61,16 @@ "predefined_type": "DISTRIBUTIONBOARD" } ], + "IfcFireSuppressionTerminal": [ + { + "name": "Fire Extinguisher" + } + ], + "IfcFireSuppressionTerminalType": [ + { + "name": "Fire Extinguisher" + } + ], "IfcFurniture": [ { "name": "Casework" diff --git a/src/ifcopenshell-python/ifcopenshell/util/scripts/validate_stub.py b/src/ifcopenshell-python/ifcopenshell/util/scripts/validate_stub.py index 14b05ed258..2ddf444704 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/scripts/validate_stub.py +++ b/src/ifcopenshell-python/ifcopenshell/util/scripts/validate_stub.py @@ -30,6 +30,7 @@ import ast import difflib from pathlib import Path from typing import Union + from typing_extensions import assert_never diff --git a/src/ifcopenshell-python/ifcopenshell/util/selector.py b/src/ifcopenshell-python/ifcopenshell/util/selector.py index 6e94fb1d06..d3bef9758f 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/selector.py +++ b/src/ifcopenshell-python/ifcopenshell/util/selector.py @@ -17,16 +17,20 @@ # along with IfcOpenShell. If not, see . import re -import sys +from collections.abc import Iterable +from decimal import Decimal +from types import EllipsisType +from typing import Any, Optional, Union + import lark import numpy as np -import ifcopenshell.api.pset + import ifcopenshell.api.geometry +import ifcopenshell.api.pset import ifcopenshell.util import ifcopenshell.util.attribute import ifcopenshell.util.classification import ifcopenshell.util.element -import ifcopenshell.util.fm import ifcopenshell.util.geolocation import ifcopenshell.util.placement import ifcopenshell.util.pset @@ -34,15 +38,6 @@ import ifcopenshell.util.schema import ifcopenshell.util.shape import ifcopenshell.util.system import ifcopenshell.util.unit -from decimal import Decimal -from typing import Optional, Any, Union -from collections.abc import Iterable - -if sys.version_info >= (3, 10): - from types import EllipsisType -else: - EllipsisType = type(...) - filter_elements_grammar = lark.Lark( """start: filter_group @@ -139,21 +134,35 @@ get_element_grammar = lark.Lark( ) format_grammar = lark.Lark( - """start: function + """start: expression - function: round | number | int | format_length | lower | upper | title | concat | substr | ESCAPED_STRING | NUMBER + ?expression: add_sub + ?add_sub: mul_div + | add_sub "+" mul_div -> add + | add_sub "-" mul_div -> subtract + ?mul_div: function + | mul_div "*" function -> multiply + | mul_div "/" function -> divide + + function: round | number | int | format_length | lower | upper | title | concat | substr | sort | reverse | join | variable | ESCAPED_STRING | SIGNED_NUMBER | "(" expression ")" - round: "round(" function "," NUMBER ")" - number: "number(" function ["," ESCAPED_STRING ["," ESCAPED_STRING]] ")" - int: "int(" function ")" + variable: "{{" query_path "}}" + query_path: /[^}]+/ + + round: "round(" expression "," NUMBER ")" + number: "number(" expression ["," ESCAPED_STRING ["," ESCAPED_STRING]] ")" + int: "int(" expression ")" format_length: metric_length | imperial_length - metric_length: "metric_length(" function "," NUMBER "," NUMBER ")" - imperial_length: "imperial_length(" function "," NUMBER ["," ESCAPED_STRING "," ESCAPED_STRING ["," boolean]] ")" - lower: "lower(" function ")" - upper: "upper(" function ")" - title: "title(" function ")" - concat: "concat(" function ("," function)* ")" - substr: "substr(" function "," SIGNED_INT ["," SIGNED_INT] ")" + metric_length: "metric_length(" expression "," NUMBER "," NUMBER ")" + imperial_length: "imperial_length(" expression "," NUMBER ["," ESCAPED_STRING "," ESCAPED_STRING ["," boolean]] ")" + lower: "lower(" expression ")" + upper: "upper(" expression ")" + title: "title(" expression ")" + concat: "concat(" expression ("," expression)* ")" + substr: "substr(" expression "," SIGNED_INT ["," SIGNED_INT] ")" + sort: "sort(" expression ")" + reverse: "reverse(" expression ")" + join: "join(" ESCAPED_STRING "," expression ")" boolean: TRUE | FALSE TRUE: "true" | "True" | "TRUE" @@ -189,9 +198,78 @@ format_grammar = lark.Lark( class FormatTransformer(lark.Transformer): + def __init__(self, element=None): + """Initialize transformer with optional element for variable substitution""" + super().__init__() + self.element = element + def start(self, args): + if isinstance(args[0], (list, tuple)): + return ", ".join(args[0]) return args[0] + def expression(self, args): + return args[0] + + def variable(self, args): + """Handle variable substitution like {{z}} or {{Pset_Wall.FireRating}}""" + if self.element: + try: + return get_element_value(self.element, args[0]) + except: + pass + + def query_path(self, args): + """Extract the query path from variable""" + return str(args[0]).strip() + + def add(self, args): + """Handle addition operation""" + left, right = args + try: + left_val = float(left) if left != "None" and left is not None else 0.0 + right_val = float(right) if right != "None" and right is not None else 0.0 + result = left_val + right_val + # Return integer if result has no decimal part + if result % 1 == 0: + return str(int(result)) + return str(result) + except (ValueError, TypeError): + # If can't convert to numbers, concatenate as strings + return str(left) + str(right) + + def subtract(self, args): + """Handle subtraction operation""" + left, right = args + left_val = float(left) if left != "None" and left is not None else 0.0 + right_val = float(right) if right != "None" and right is not None else 0.0 + result = left_val - right_val + if result % 1 == 0: + return str(int(result)) + return str(result) + + def multiply(self, args): + """Handle multiplication operation""" + left, right = args + left_val = float(left) if left != "None" and left is not None else 0.0 + right_val = float(right) if right != "None" and right is not None else 0.0 + result = left_val * right_val + if result % 1 == 0: + return str(int(result)) + return str(result) + + def divide(self, args): + """Handle division operation""" + left, right = args + left_val = float(left) if left != "None" and left is not None else 0.0 + right_val = float(right) if right != "None" and right is not None else 1.0 + if right_val == 0: + return "inf" # or raise an error, or return "0" + result = left_val / right_val + if result % 1 == 0: + return str(int(result)) + return str(result) + def function(self, args): return args[0] @@ -211,7 +289,7 @@ class FormatTransformer(lark.Transformer): return str(args[0]).title() def concat(self, args): - return "".join(args) + return "".join(str(arg) for arg in args) def substr(self, args): if len(args) == 3: @@ -221,6 +299,15 @@ class FormatTransformer(lark.Transformer): elif len(args) == 2: return str(args[0])[int(args[1]) :] + def sort(self, args): + return sorted(args[0]) + + def reverse(self, args): + return list(reversed(args[0])) + + def join(self, args): + return args[0].join(args[1]) + def boolean(self, args): if not args: return True @@ -241,13 +328,14 @@ class FormatTransformer(lark.Transformer): return str(result) def number(self, args): - if isinstance(args[0], str): - args[0] = float(args[0]) if "." in args[0] else int(args[0]) + arg_val = args[0] + if isinstance(arg_val, str): + arg_val = float(arg_val) if "." in arg_val else int(arg_val) if len(args) >= 3 and args[2]: - return "{:,}".format(args[0]).replace(".", "*").replace(",", args[2]).replace("*", args[1]) + return "{:,}".format(arg_val).replace(".", "*").replace(",", args[2]).replace("*", args[1]) elif len(args) >= 2 and args[1]: - return "{}".format(args[0]).replace(".", args[1]) - return "{:,}".format(args[0]) + return "{}".format(arg_val).replace(".", args[1]) + return "{:,}".format(arg_val) def format_length(self, args): return args[0] @@ -259,6 +347,7 @@ class FormatTransformer(lark.Transformer): ) def imperial_length(self, args): + args = list(filter(lambda x: x is not None, args)) if len(args) == 2: input_unit, output_unit = "foot", "foot" value, precision = args @@ -279,14 +368,15 @@ class FormatTransformer(lark.Transformer): return ifcopenshell.util.unit.format_length( float(value), int(precision), - suppress_zero_inches=suppress_zero_inches, + suppress_zero_inches=(suppress_zero_inches if suppress_zero_inches is not None else False), unit_system="imperial", input_unit=input_unit, output_unit=output_unit, ) def int(self, args: list[str]) -> str: - return str(int(float(args[0]))) + value = 0.0 if args[0] == "None" else args[0] or 0.0 + return str(int(float(value))) class GetElementTransformer(lark.Transformer): @@ -312,8 +402,18 @@ class GetElementTransformer(lark.Transformer): return args[1:-1].replace("\\", "") -def format(query: str) -> str: - return FormatTransformer().transform(format_grammar.parse(query)) +def format(query: str, element: Optional[ifcopenshell.entity_instance] = None) -> str: + """Format a query string with optional element context for variable substitution. + + :param query: Format query string (can include {{variable}} placeholders) + :param element: Optional IFC element for variable substitution + :return: Formatted string + + Example: + format("{{z}} / 2", element) # Substitutes element's z value + format("imperial_length({{z}} / 2, 4)", element) # Uses z in calculation + """ + return FormatTransformer(element).transform(format_grammar.parse(query)) def get_element_value(element: ifcopenshell.entity_instance, query: str) -> Any: @@ -1027,13 +1127,6 @@ class FacetTransformer(lark.Transformer): ): parents.add(parent) - for rel in self.file.by_type("IfcRelVoidsElement"): - parent = rel.RelatingBuildingElement - if parent and ( - self.compare(parent.Name, comparison, value) or self.compare(parent.GlobalId, comparison, value) - ): - parents.add(parent) - for rel in self.file.by_type("IfcRelFillsElement"): parent = rel.RelatingOpeningElement if parent and ( @@ -1041,15 +1134,19 @@ class FacetTransformer(lark.Transformer): ): parents.add(parent) + # Get all children of the matched parents children: set[ifcopenshell.entity_instance] = set() for parent in parents: children |= set(ifcopenshell.util.element.get_decomposition(parent)) + # Combine parents and children into a single result set + result = parents | children + self.add_default_elements() if comparison == "=": - self.elements = self.elements & children + self.elements = self.elements & result else: - self.elements -= children + self.elements -= result def query(self, args): keys, comparison, value = args diff --git a/src/ifcopenshell-python/ifcopenshell/util/sequence.py b/src/ifcopenshell-python/ifcopenshell/util/sequence.py index 1452aa011c..518d581657 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/sequence.py +++ b/src/ifcopenshell-python/ifcopenshell/util/sequence.py @@ -17,13 +17,13 @@ # along with IfcOpenShell. If not, see . import datetime +from collections.abc import Generator +from functools import cache +from math import floor +from typing import Literal, Optional, Union + import ifcopenshell.util.date import ifcopenshell.util.element -from math import floor -from functools import cache -from typing import Union, Literal, Optional -from collections.abc import Generator - DURATION_TYPE = Literal["ELAPSEDTIME", "WORKTIME", "NOTDEFINED"] RECURRENCE_TYPE = Literal[ @@ -367,14 +367,12 @@ def get_tasks_for_product( """ Get all tasks assigned to or referenced by the given product. - Args: - product: An object that is assigned tasks or references tasks. - schedule: An optional string representing the schedule name to filter tasks by. + :param product: An object that is assigned tasks or references tasks. + :param schedule: An optional string representing the schedule name to filter tasks by. - Returns: - A tuple of two lists: - - The first list contains all tasks assigned to the product. - - The second list contains all tasks referenced by the product that are part of the given schedule. + :return: A tuple of two lists: + - The first list contains all tasks assigned to the product. + - The second list contains all tasks referenced by the product that are part of the given schedule. """ inputs = [ assignement.RelatingProcess diff --git a/src/ifcopenshell-python/ifcopenshell/util/shape.py b/src/ifcopenshell-python/ifcopenshell/util/shape.py index 75c15b6935..7732412861 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/shape.py +++ b/src/ifcopenshell-python/ifcopenshell/util/shape.py @@ -16,26 +16,36 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import shapely -import shapely.ops +from __future__ import annotations + +from math import cos, radians +from typing import TYPE_CHECKING, Literal, Optional, Union + import numpy as np import numpy.typing as npt -import ifcopenshell.ifcopenshell_wrapper as W +import shapely +import shapely.ops + import ifcopenshell.util.element import ifcopenshell.util.placement import ifcopenshell.util.representation -from ifcopenshell.util.shape_builder import VectorType -from math import radians, cos -from ifcopenshell.geom import ShapeElementType -from typing import Optional, Literal, Union -tol = 1e-6 -AXIS_LITERAL = Literal["X", "Y", "Z"] -VECTOR_3D = tuple[float, float, float] +if TYPE_CHECKING: + import ifcopenshell.ifcopenshell_wrapper as W + from ifcopenshell.geom import ShapeElementType + from ifcopenshell.util.shape_builder import VectorType + + AXIS_LITERAL = Literal["X", "Y", "Z"] + + VECTOR_3D = tuple[float, float, float] + +# Used only for typing, but reused by `shape.py` users. MatrixType = npt.NDArray[np.float64] """`npt.NDArray[np.float64]`""" +tol = 1e-6 + # NOTE: See IfcGeomRepresentation.h for W.Triangulation buffer types. # NOTE: For functions that return a single scalar ensure to use .item() to diff --git a/src/ifcopenshell-python/ifcopenshell/util/shape_builder.py b/src/ifcopenshell-python/ifcopenshell/util/shape_builder.py index 0811b8798c..31a067bc80 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/shape_builder.py +++ b/src/ifcopenshell-python/ifcopenshell/util/shape_builder.py @@ -17,20 +17,21 @@ # along with IfcOpenShell. If not, see . from __future__ import annotations + +import collections.abc +from collections.abc import Sequence +from itertools import chain +from math import atan, cos, degrees, pi, radians, sin, sqrt, tan +from typing import TYPE_CHECKING, Any, Literal, Optional, Union + import numpy as np import numpy.typing as npt -import collections -import collections.abc + import ifcopenshell -import ifcopenshell.api import ifcopenshell.util.element import ifcopenshell.util.placement import ifcopenshell.util.representation import ifcopenshell.util.unit -from math import cos, sin, pi, tan, radians, degrees, atan, sqrt -from typing import Union, Optional, Literal, Any, TYPE_CHECKING -from collections.abc import Sequence -from itertools import chain PRECISION = 1.0e-5 @@ -312,7 +313,7 @@ class ShapeBuilder: Generate an IfcIndexedPolyCurve based on the provided points. :param points: List of 2d or 3d points - :param closed: Whether polyline should be closed. Default is `False` + :param closed: Whether polyline should be closed. :param position_offset: offset to be applied to all points :param arc_points: Indices of the middle points for arcs. For creating an arc segment, provide 3 points: `arc_start`, `arc_middle` and `arc_end` to `points` and add the `arc_middle` @@ -415,8 +416,9 @@ class ShapeBuilder: 3 2 0 1 - :param size: rectangle size, could be either 2d or 3d, defaults to `(1,1)` - :param position: rectangle position, default to `None`. + :param size: rectangle size, could be either 2d or 3d. + Use 0 for one of 3d dimensions to create 2d rectangle in 3d space. + :param position: rectangle position. if `position` not specified zero-vector will be used :return: list of rectangle coords """ @@ -441,9 +443,11 @@ class ShapeBuilder: """ Generate a rectangle polyline. - :param size: rectangle size, could be either 2d or 3d, defaults to `(1,1)` - :param position: rectangle position, default to `None`. - if `position` not specified zero-vector will be used + :param size: rectangle. + :param position: rectangle position. + + See ``get_rectangle_coords`` for more information. + :return: IfcIndexedPolyCurve """ return self.polyline(self.get_rectangle_coords(size, position), closed=True) @@ -784,7 +788,7 @@ class ShapeBuilder: """ Create IfcAxis2Placement3D from numpy matrix. - :param matrix: 4x4 transformation matrix, defaults to `np.eye(4)` + :param matrix: 4x4 transformation matrix, defaults to ``np.eye(4)`` :return: IfcAxis2Placement3D """ if matrix is None: @@ -965,8 +969,8 @@ class ShapeBuilder: def sphere(self, radius: float = 1.0, center: VectorType = (0.0, 0.0, 0.0)) -> ifcopenshell.entity_instance: """ - :param radius: radius of the sphere, defaults to 1.0 - :param center: sphere position, defaults to `(0.0, 0.0, 0.0)` + :param radius: radius of the sphere. + :param center: sphere position. :return: IfcSphere """ @@ -1069,7 +1073,7 @@ class ShapeBuilder: :param context: IfcGeometricRepresentationSubContext :param items: could be a list or single curve/IfcExtrudedAreaSolid - :param representation_type: Explicitly specified RepresentationType, defaults to `None`. + :param representation_type: Explicitly specified RepresentationType. If not provided it will be guessed from the items types :return: IfcShapeRepresentation """ @@ -1180,8 +1184,8 @@ class ShapeBuilder: :param fillets: list of points from `coords` to base fillet on. Example: (1,) :param fillet_radius: list of fillet radius for each of corresponding point form `fillets`. Example: (5.,) Note: `fillet_radius` could be just 1 float value if it's the same for all fillets. - :param closed: boolean whether curve should be closed (whether last point connected to first one). Default: True - :param create_ifc_curve: create IfcIndexedPolyCurve or just return the data. Default: False + :param closed: boolean whether curve should be closed (whether last point connected to first one). + :param create_ifc_curve: create IfcIndexedPolyCurve or just return the data. :return: (points, segments, ifc_curve) for the created simple curve if both points in e are equally far from pt, then v1 is returned. @@ -1460,10 +1464,10 @@ class ShapeBuilder: :param points: list of points, assuming they form consecutive closed polyline. :param magnitude: extrusion magnitude - :param extrusion_vector: extrusion direction, by default it's extruding by Z+ axis + :param extrusion_vector: extrusion direction. :param offset: offset from the points - :param start_cap: if True, create start cap, by default it's True - :param end_cap: if True, create end cap, by default it's True + :param start_cap: if True, create start cap. + :param end_cap: if True, create end cap. :return: IfcPolygonalFaceSet """ diff --git a/src/ifcopenshell-python/ifcopenshell/util/system.py b/src/ifcopenshell-python/ifcopenshell/util/system.py index 832daefc0d..39d9207018 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/system.py +++ b/src/ifcopenshell-python/ifcopenshell/util/system.py @@ -17,8 +17,9 @@ # along with IfcOpenShell. If not, see . +from typing import Literal, Optional, Union + import ifcopenshell.util.system -from typing import Optional, Union, Literal group_types: dict[str, tuple[str, ...]] = { "IfcZone": ("IfcZone", "IfcSpace", "IfcSpatialZone"), diff --git a/src/ifcopenshell-python/ifcopenshell/util/type.py b/src/ifcopenshell-python/ifcopenshell/util/type.py index ab58814267..86a1ccc7c9 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/type.py +++ b/src/ifcopenshell-python/ifcopenshell/util/type.py @@ -16,8 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import os import json +import os + import ifcopenshell.util.schema cwd = os.path.dirname(os.path.realpath(__file__)) diff --git a/src/ifcopenshell-python/ifcopenshell/util/unit.py b/src/ifcopenshell-python/ifcopenshell/util/unit.py index a364ed2467..7e4686d4e4 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/unit.py +++ b/src/ifcopenshell-python/ifcopenshell/util/unit.py @@ -16,14 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from collections.abc import Generator from fractions import Fraction from math import pi from typing import Literal, Optional, Union -from collections.abc import Generator import ifcopenshell import ifcopenshell.ifcopenshell_wrapper as ifcopenshell_wrapper -import ifcopenshell.api.unit prefixes = { "EXA": 1e18, @@ -209,6 +208,7 @@ si_conversions = { "pound": 0.454, "ton UK": 1016.0469088, "ton US": 907.18474, + "tonne": 1000.0, "lbf": 4.4482216153, "kip": 4448.2216153, "psi": 6894.7572932, @@ -253,6 +253,7 @@ imperial_types = { "pound": "MASSUNIT", "ton UK": "MASSUNIT", "ton US": "MASSUNIT", + "tonne": "MASSUNIT", "lbf": "FORCEUNIT", "kip": "FORCEUNIT", "psi": "PRESSUREUNIT", @@ -323,6 +324,7 @@ unit_symbols = { "pound": "lb", "ton UK": "ton", "ton US": "ton", + "tonne": "t", "lbf": "lbf", "kip": "kip", "psi": "psi", @@ -773,8 +775,9 @@ def format_length( if output_unit == "foot": return f"{feet}' - {whole} {remainder}/{frac.denominator}\"" return f'{(feet * 12) + whole} {remainder}/{frac.denominator}"' + # When we have a proper fraction (numerator < denominator), show "0 frac" if output_unit == "foot": - return f"{feet}' - {frac.numerator}/{frac.denominator}\"" + return f"{feet}' - 0 {frac.numerator}/{frac.denominator}\"" return f'{feet * 12} {frac.numerator}/{frac.denominator}"' elif unit_system == "metric": rounded_val = round(value / precision) * precision @@ -865,10 +868,10 @@ def iter_element_and_attributes_per_type(ifc_file: ifcopenshell.file, attr_type_ def convert_file_length_units(ifc_file: ifcopenshell.file, target_units: str = "METER") -> ifcopenshell.file: """Converts all units in an IFC file to the specified target units. Returns a new file.""" - import ifcopenshell.util.element - import ifcopenshell.util.geolocation import ifcopenshell.api.georeference import ifcopenshell.api.unit + import ifcopenshell.util.element + import ifcopenshell.util.geolocation prefix = get_prefix(target_units) si_unit = get_unit_name(target_units) diff --git a/src/ifcopenshell-python/ifcopenshell/validate.py b/src/ifcopenshell-python/ifcopenshell/validate.py index 25f9b3a685..13f148d520 100644 --- a/src/ifcopenshell-python/ifcopenshell/validate.py +++ b/src/ifcopenshell-python/ifcopenshell/validate.py @@ -44,27 +44,23 @@ Can be used to run validation on IFC file from the command line: """ from __future__ import annotations + +import argparse +import functools +import json import os import sys -import json -import functools import types -import argparse - from collections import namedtuple -from typing import Union, Any, Optional, TYPE_CHECKING from collections.abc import Iterator -from logging import Logger, Handler - -if sys.version_info >= (3, 10): - from types import EllipsisType -else: - EllipsisType = type(...) +from logging import Handler, Logger +from types import EllipsisType +from typing import TYPE_CHECKING, Any, Optional, Union import ifcopenshell +import ifcopenshell.express.rule_executor import ifcopenshell.ifcopenshell_wrapper import ifcopenshell.ifcopenshell_wrapper as W -import ifcopenshell.express.rule_executor if TYPE_CHECKING: import ifcopenshell.simple_spf @@ -315,8 +311,8 @@ def assert_valid( def log_internal_cpp_errors( f: Optional[ifcopenshell.file], filename: str, logger: Union[Logger, json_logger], log_content: Optional[str] = None ) -> None: - import re import bisect + import re chr_offset_re = re.compile(r"at offset (\d+)\s*") for_instance_re = re.compile(r"\s*for instance #(\d+)\s*") @@ -779,8 +775,8 @@ class LogDetectionHandler(Handler): if __name__ == "__main__": - import sys import logging + import sys def handle_exception(exc_type, exc_value, exc_traceback): import traceback diff --git a/src/ifcopenshell-python/pyproject.toml b/src/ifcopenshell-python/pyproject.toml index 652b1fcdab..9bcaeeebaa 100644 --- a/src/ifcopenshell-python/pyproject.toml +++ b/src/ifcopenshell-python/pyproject.toml @@ -10,7 +10,7 @@ authors = [ ] description = "Python bindings, utility functions, and high-level API for IfcOpenShell" readme = "README.md" -requires-python = ">=3.9,<3.14" +requires-python = ">=3.10,<3.15" classifiers = [ "Programming Language :: Python :: 3", "License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)", @@ -45,3 +45,6 @@ include = ["ifcopenshell*"] [tool.ruff] extend = "../../pyproject.toml" +lint.select = [ + "F401", # unused imports +] diff --git a/src/ifcopenshell-python/test/api/aggregate/test_assign_object.py b/src/ifcopenshell-python/test/api/aggregate/test_assign_object.py index f00ff6c1d0..e8b41e8dbb 100644 --- a/src/ifcopenshell-python/test/api/aggregate/test_assign_object.py +++ b/src/ifcopenshell-python/test/api/aggregate/test_assign_object.py @@ -18,14 +18,15 @@ import numpy import pytest -import test.bootstrap -import ifcopenshell.api.root -import ifcopenshell.api.unit -import ifcopenshell.api.spatial -import ifcopenshell.api.geometry + import ifcopenshell.api.aggregate +import ifcopenshell.api.geometry +import ifcopenshell.api.root +import ifcopenshell.api.spatial +import ifcopenshell.api.unit import ifcopenshell.util.element import ifcopenshell.util.placement +import test.bootstrap class TestAssignObject(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/aggregate/test_unassign_object.py b/src/ifcopenshell-python/test/api/aggregate/test_unassign_object.py index 722cccdb93..3d8e25134d 100644 --- a/src/ifcopenshell-python/test/api/aggregate/test_unassign_object.py +++ b/src/ifcopenshell-python/test/api/aggregate/test_unassign_object.py @@ -16,10 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.root import ifcopenshell.api.aggregate +import ifcopenshell.api.root import ifcopenshell.util.element +import test.bootstrap class TestUnassignObject(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/alignment/test_add_segment_to_layout.py b/src/ifcopenshell-python/test/api/alignment/test_add_segment_to_layout.py index bea6f8989a..90a4d97d11 100644 --- a/src/ifcopenshell-python/test/api/alignment/test_add_segment_to_layout.py +++ b/src/ifcopenshell-python/test/api/alignment/test_add_segment_to_layout.py @@ -16,11 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest + import ifcopenshell.api.alignment import ifcopenshell.api.context import ifcopenshell.api.unit - from ifcopenshell.api.alignment._add_segment_to_layout import _add_segment_to_layout diff --git a/src/ifcopenshell-python/test/api/alignment/test_add_stationing_to_alignment.py b/src/ifcopenshell-python/test/api/alignment/test_add_stationing_to_alignment.py index 49cbd70367..4dd113ebbc 100644 --- a/src/ifcopenshell-python/test/api/alignment/test_add_stationing_to_alignment.py +++ b/src/ifcopenshell-python/test/api/alignment/test_add_stationing_to_alignment.py @@ -16,7 +16,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest + import ifcopenshell.api.alignment import ifcopenshell.api.context import ifcopenshell.api.unit diff --git a/src/ifcopenshell-python/test/api/alignment/test_add_vertical_alignment.py b/src/ifcopenshell-python/test/api/alignment/test_add_vertical_alignment.py index 243188866c..5a09cd1890 100644 --- a/src/ifcopenshell-python/test/api/alignment/test_add_vertical_alignment.py +++ b/src/ifcopenshell-python/test/api/alignment/test_add_vertical_alignment.py @@ -16,7 +16,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest + import ifcopenshell.api.alignment import ifcopenshell.api.context import ifcopenshell.api.unit diff --git a/src/ifcopenshell-python/test/api/alignment/test_create.py b/src/ifcopenshell-python/test/api/alignment/test_create.py index 355c2d1ae5..f227bfd758 100644 --- a/src/ifcopenshell-python/test/api/alignment/test_create.py +++ b/src/ifcopenshell-python/test/api/alignment/test_create.py @@ -16,7 +16,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest + import ifcopenshell.api.alignment import ifcopenshell.api.context import ifcopenshell.api.unit diff --git a/src/ifcopenshell-python/test/api/alignment/test_create_as_offset_curve.py b/src/ifcopenshell-python/test/api/alignment/test_create_as_offset_curve.py index 25b2656611..ac763e6af1 100644 --- a/src/ifcopenshell-python/test/api/alignment/test_create_as_offset_curve.py +++ b/src/ifcopenshell-python/test/api/alignment/test_create_as_offset_curve.py @@ -16,12 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.util -import ifcopenshell.util.unit -import pytest import math + import ifcopenshell.api.alignment import ifcopenshell.api.unit +import ifcopenshell.util +import ifcopenshell.util.unit def test_create_as_offset_curve(): diff --git a/src/ifcopenshell-python/test/api/alignment/test_create_as_polyline.py b/src/ifcopenshell-python/test/api/alignment/test_create_as_polyline.py index dac7d3156b..6e4eee9527 100644 --- a/src/ifcopenshell-python/test/api/alignment/test_create_as_polyline.py +++ b/src/ifcopenshell-python/test/api/alignment/test_create_as_polyline.py @@ -16,7 +16,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest + import ifcopenshell.api.alignment import ifcopenshell.api.unit diff --git a/src/ifcopenshell-python/test/api/alignment/test_create_by_pi_method.py b/src/ifcopenshell-python/test/api/alignment/test_create_by_pi_method.py index bd3a25faed..6da7af0690 100644 --- a/src/ifcopenshell-python/test/api/alignment/test_create_by_pi_method.py +++ b/src/ifcopenshell-python/test/api/alignment/test_create_by_pi_method.py @@ -16,7 +16,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest + import ifcopenshell.api.alignment import ifcopenshell.api.context import ifcopenshell.api.unit diff --git a/src/ifcopenshell-python/test/api/alignment/test_create_layout_segment.py b/src/ifcopenshell-python/test/api/alignment/test_create_layout_segment.py index 6713f0f78a..e1b0978e1a 100644 --- a/src/ifcopenshell-python/test/api/alignment/test_create_layout_segment.py +++ b/src/ifcopenshell-python/test/api/alignment/test_create_layout_segment.py @@ -16,11 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest +import math + import ifcopenshell.api.alignment import ifcopenshell.api.context import ifcopenshell.api.unit -import math def _test_horizontal() -> ifcopenshell.file: diff --git a/src/ifcopenshell-python/test/api/alignment/test_create_no_geometry.py b/src/ifcopenshell-python/test/api/alignment/test_create_no_geometry.py index 15b64af2f9..20d5f946e8 100644 --- a/src/ifcopenshell-python/test/api/alignment/test_create_no_geometry.py +++ b/src/ifcopenshell-python/test/api/alignment/test_create_no_geometry.py @@ -16,9 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest + import ifcopenshell.api.alignment -import ifcopenshell.api.context import ifcopenshell.api.unit diff --git a/src/ifcopenshell-python/test/api/alignment/test_distance_along_from_station.py b/src/ifcopenshell-python/test/api/alignment/test_distance_along_from_station.py index d5c8518259..a5af19ebe3 100644 --- a/src/ifcopenshell-python/test/api/alignment/test_distance_along_from_station.py +++ b/src/ifcopenshell-python/test/api/alignment/test_distance_along_from_station.py @@ -17,6 +17,7 @@ # along with IfcOpenShell. If not, see . import pytest + import ifcopenshell.api.alignment import ifcopenshell.api.context import ifcopenshell.api.unit diff --git a/src/ifcopenshell-python/test/api/alignment/test_get_alignment.py b/src/ifcopenshell-python/test/api/alignment/test_get_alignment.py index b1d5ac720e..9c7a8718e2 100644 --- a/src/ifcopenshell-python/test/api/alignment/test_get_alignment.py +++ b/src/ifcopenshell-python/test/api/alignment/test_get_alignment.py @@ -16,7 +16,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest + import ifcopenshell.api.alignment import ifcopenshell.api.context import ifcopenshell.api.unit diff --git a/src/ifcopenshell-python/test/api/alignment/test_get_basis_curve.py b/src/ifcopenshell-python/test/api/alignment/test_get_basis_curve.py index 659b9db343..0743fa6fd7 100644 --- a/src/ifcopenshell-python/test/api/alignment/test_get_basis_curve.py +++ b/src/ifcopenshell-python/test/api/alignment/test_get_basis_curve.py @@ -16,7 +16,6 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest import ifcopenshell.api.alignment import ifcopenshell.api.context diff --git a/src/ifcopenshell-python/test/api/alignment/test_horizontal_layout_by_pi_method.py b/src/ifcopenshell-python/test/api/alignment/test_horizontal_layout_by_pi_method.py index a4678f7e0e..0864d5a67f 100644 --- a/src/ifcopenshell-python/test/api/alignment/test_horizontal_layout_by_pi_method.py +++ b/src/ifcopenshell-python/test/api/alignment/test_horizontal_layout_by_pi_method.py @@ -16,7 +16,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest + import ifcopenshell.api.alignment import ifcopenshell.api.context import ifcopenshell.api.unit diff --git a/src/ifcopenshell-python/test/api/alignment/test_map_alignment_cant_segment.py b/src/ifcopenshell-python/test/api/alignment/test_map_alignment_cant_segment.py index 021314547c..c3ec6c3831 100644 --- a/src/ifcopenshell-python/test/api/alignment/test_map_alignment_cant_segment.py +++ b/src/ifcopenshell-python/test/api/alignment/test_map_alignment_cant_segment.py @@ -17,9 +17,11 @@ # along with IfcOpenShell. If not, see . import pytest + import ifcopenshell.api.alignment -import ifcopenshell.api.context -from ifcopenshell.api.alignment._map_alignment_cant_segment import _map_alignment_cant_segment +from ifcopenshell.api.alignment._map_alignment_cant_segment import ( + _map_alignment_cant_segment, +) def _BlossCurve_100_0_300_1000_1_Meter(file): diff --git a/src/ifcopenshell-python/test/api/alignment/test_map_alignment_horizontal_segment.py b/src/ifcopenshell-python/test/api/alignment/test_map_alignment_horizontal_segment.py index c9bdfc0432..191f56a279 100644 --- a/src/ifcopenshell-python/test/api/alignment/test_map_alignment_horizontal_segment.py +++ b/src/ifcopenshell-python/test/api/alignment/test_map_alignment_horizontal_segment.py @@ -20,9 +20,12 @@ # for horizontal alignment. import pytest + import ifcopenshell.api.alignment import ifcopenshell.api.unit -from ifcopenshell.api.alignment._map_alignment_horizontal_segment import _map_alignment_horizontal_segment +from ifcopenshell.api.alignment._map_alignment_horizontal_segment import ( + _map_alignment_horizontal_segment, +) def _BlossCurve_100_0_300_1000_1_Meter(file): diff --git a/src/ifcopenshell-python/test/api/alignment/test_map_alignment_vertical_segment.py b/src/ifcopenshell-python/test/api/alignment/test_map_alignment_vertical_segment.py index 2d5f6a6133..fc88aed036 100644 --- a/src/ifcopenshell-python/test/api/alignment/test_map_alignment_vertical_segment.py +++ b/src/ifcopenshell-python/test/api/alignment/test_map_alignment_vertical_segment.py @@ -20,8 +20,11 @@ # for vertical alignment. import pytest + import ifcopenshell.api.alignment -from ifcopenshell.api.alignment._map_alignment_vertical_segment import _map_alignment_vertical_segment +from ifcopenshell.api.alignment._map_alignment_vertical_segment import ( + _map_alignment_vertical_segment, +) def _CircularArc_100_0_10_0_0_0_0_5_1_Meter(file): diff --git a/src/ifcopenshell-python/test/api/alignment/test_name_segments.py b/src/ifcopenshell-python/test/api/alignment/test_name_segments.py index 5a1174573b..2c9b8fa2ef 100644 --- a/src/ifcopenshell-python/test/api/alignment/test_name_segments.py +++ b/src/ifcopenshell-python/test/api/alignment/test_name_segments.py @@ -16,7 +16,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest + import ifcopenshell.api.alignment import ifcopenshell.api.context import ifcopenshell.api.unit diff --git a/src/ifcopenshell-python/test/api/alignment/test_referent_names.py b/src/ifcopenshell-python/test/api/alignment/test_referent_names.py index 2e0e50a683..d64ea9a3ec 100644 --- a/src/ifcopenshell-python/test/api/alignment/test_referent_names.py +++ b/src/ifcopenshell-python/test/api/alignment/test_referent_names.py @@ -17,7 +17,7 @@ # along with IfcOpenShell. If not, see . import pytest -from pytest import fixture + import ifcopenshell.api.alignment import ifcopenshell.api.context import ifcopenshell.api.unit diff --git a/src/ifcopenshell-python/test/api/alignment/test_update_curve_segment_transition_code.py b/src/ifcopenshell-python/test/api/alignment/test_update_curve_segment_transition_code.py index 2b6accf037..6fc87861db 100644 --- a/src/ifcopenshell-python/test/api/alignment/test_update_curve_segment_transition_code.py +++ b/src/ifcopenshell-python/test/api/alignment/test_update_curve_segment_transition_code.py @@ -16,10 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest -from ifcopenshell.api.alignment._update_curve_segment_transition_code import _update_curve_segment_transition_code + import ifcopenshell.api.context import ifcopenshell.api.unit +from ifcopenshell.api.alignment._update_curve_segment_transition_code import ( + _update_curve_segment_transition_code, +) def _test1(): diff --git a/src/ifcopenshell-python/test/api/alignment/test_update_fallback_position.py b/src/ifcopenshell-python/test/api/alignment/test_update_fallback_position.py index 2982cb466b..a53c162ea9 100644 --- a/src/ifcopenshell-python/test/api/alignment/test_update_fallback_position.py +++ b/src/ifcopenshell-python/test/api/alignment/test_update_fallback_position.py @@ -17,6 +17,7 @@ # along with IfcOpenShell. If not, see . import pytest + import ifcopenshell.api.alignment import ifcopenshell.api.context import ifcopenshell.api.unit diff --git a/src/ifcopenshell-python/test/api/alignment/test_vertical_layout_by_pi_method.py b/src/ifcopenshell-python/test/api/alignment/test_vertical_layout_by_pi_method.py index 8dab67c181..bd97d644de 100644 --- a/src/ifcopenshell-python/test/api/alignment/test_vertical_layout_by_pi_method.py +++ b/src/ifcopenshell-python/test/api/alignment/test_vertical_layout_by_pi_method.py @@ -16,7 +16,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest + import ifcopenshell.api.alignment import ifcopenshell.api.context import ifcopenshell.api.unit diff --git a/src/ifcopenshell-python/test/api/boundary/test_copy_boundary.py b/src/ifcopenshell-python/test/api/boundary/test_copy_boundary.py index 30adbf74c4..675f187c09 100644 --- a/src/ifcopenshell-python/test/api/boundary/test_copy_boundary.py +++ b/src/ifcopenshell-python/test/api/boundary/test_copy_boundary.py @@ -16,9 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.root import ifcopenshell.api.boundary +import ifcopenshell.api.root +import test.bootstrap class TestCopyBoundary(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/boundary/test_remove_boundary.py b/src/ifcopenshell-python/test/api/boundary/test_remove_boundary.py index 7dea36b2bc..91227b66a4 100644 --- a/src/ifcopenshell-python/test/api/boundary/test_remove_boundary.py +++ b/src/ifcopenshell-python/test/api/boundary/test_remove_boundary.py @@ -16,9 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.root import ifcopenshell.api.boundary +import ifcopenshell.api.root +import test.bootstrap class TestRemoveBoundary(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/classification/test_add_classification.py b/src/ifcopenshell-python/test/api/classification/test_add_classification.py index 12442255fe..f97d32d881 100644 --- a/src/ifcopenshell-python/test/api/classification/test_add_classification.py +++ b/src/ifcopenshell-python/test/api/classification/test_add_classification.py @@ -16,9 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.root import ifcopenshell.api.classification +import ifcopenshell.api.root +import test.bootstrap class TestAddClassification(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/classification/test_add_reference.py b/src/ifcopenshell-python/test/api/classification/test_add_reference.py index caf6f5d8af..7aad6996f1 100644 --- a/src/ifcopenshell-python/test/api/classification/test_add_reference.py +++ b/src/ifcopenshell-python/test/api/classification/test_add_reference.py @@ -17,10 +17,11 @@ # along with IfcOpenShell. If not, see . import pytest -import test.bootstrap -import ifcopenshell.api.root + import ifcopenshell.api.classification +import ifcopenshell.api.root import ifcopenshell.util.classification +import test.bootstrap class TestAddReference(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/classification/test_remove_classification.py b/src/ifcopenshell-python/test/api/classification/test_remove_classification.py index 15a8b414cb..54d3b8418b 100644 --- a/src/ifcopenshell-python/test/api/classification/test_remove_classification.py +++ b/src/ifcopenshell-python/test/api/classification/test_remove_classification.py @@ -16,9 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.root import ifcopenshell.api.classification +import ifcopenshell.api.root +import test.bootstrap class TestRemoveClassification(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/classification/test_remove_reference.py b/src/ifcopenshell-python/test/api/classification/test_remove_reference.py index 6812805594..9bcede5db3 100644 --- a/src/ifcopenshell-python/test/api/classification/test_remove_reference.py +++ b/src/ifcopenshell-python/test/api/classification/test_remove_reference.py @@ -17,10 +17,11 @@ # along with IfcOpenShell. If not, see . import pytest -import test.bootstrap -import ifcopenshell.api.root + import ifcopenshell.api.classification +import ifcopenshell.api.root import ifcopenshell.util.classification +import test.bootstrap class TestRemoveReference(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/cogo/test_add_survey_point.py b/src/ifcopenshell-python/test/api/cogo/test_add_survey_point.py index 068fef52a8..143cb32c65 100644 --- a/src/ifcopenshell-python/test/api/cogo/test_add_survey_point.py +++ b/src/ifcopenshell-python/test/api/cogo/test_add_survey_point.py @@ -17,10 +17,10 @@ # along with IfcOpenShell. If not, see . import pytest + import ifcopenshell.api.aggregate -import ifcopenshell.api.alignment -import ifcopenshell.api.context import ifcopenshell.api.cogo +import ifcopenshell.api.context def test_add_survey_point(): diff --git a/src/ifcopenshell-python/test/api/cogo/test_assign_survey_point.py b/src/ifcopenshell-python/test/api/cogo/test_assign_survey_point.py index 39e7823af9..23a61c7655 100644 --- a/src/ifcopenshell-python/test/api/cogo/test_assign_survey_point.py +++ b/src/ifcopenshell-python/test/api/cogo/test_assign_survey_point.py @@ -17,10 +17,10 @@ # along with IfcOpenShell. If not, see . import pytest + import ifcopenshell.api.aggregate -import ifcopenshell.api.alignment -import ifcopenshell.api.context import ifcopenshell.api.cogo +import ifcopenshell.api.context def test_assign_survey_point(): diff --git a/src/ifcopenshell-python/test/api/cogo/test_bearing2dd.py b/src/ifcopenshell-python/test/api/cogo/test_bearing2dd.py index 657c0a65a8..199aa8a4e8 100644 --- a/src/ifcopenshell-python/test/api/cogo/test_bearing2dd.py +++ b/src/ifcopenshell-python/test/api/cogo/test_bearing2dd.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . + import pytest + import ifcopenshell.api.cogo -import math def test_bearing2dd(): diff --git a/src/ifcopenshell-python/test/api/cogo/test_edit_survey_point.py b/src/ifcopenshell-python/test/api/cogo/test_edit_survey_point.py index 17038f533b..cce8837475 100644 --- a/src/ifcopenshell-python/test/api/cogo/test_edit_survey_point.py +++ b/src/ifcopenshell-python/test/api/cogo/test_edit_survey_point.py @@ -17,10 +17,10 @@ # along with IfcOpenShell. If not, see . import pytest + import ifcopenshell.api.aggregate -import ifcopenshell.api.alignment -import ifcopenshell.api.context import ifcopenshell.api.cogo +import ifcopenshell.api.context def test_edit_survey_point(): diff --git a/src/ifcopenshell-python/test/api/constraint/test_assign_constraint.py b/src/ifcopenshell-python/test/api/constraint/test_assign_constraint.py index 41d594098e..f83c00be19 100644 --- a/src/ifcopenshell-python/test/api/constraint/test_assign_constraint.py +++ b/src/ifcopenshell-python/test/api/constraint/test_assign_constraint.py @@ -16,10 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.root import ifcopenshell.api.constraint +import ifcopenshell.api.root import ifcopenshell.util.constraint +import test.bootstrap class TestAssignConstraint(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/constraint/test_unassign_constraint.py b/src/ifcopenshell-python/test/api/constraint/test_unassign_constraint.py index bf311f2870..245ae07e91 100644 --- a/src/ifcopenshell-python/test/api/constraint/test_unassign_constraint.py +++ b/src/ifcopenshell-python/test/api/constraint/test_unassign_constraint.py @@ -16,10 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.root import ifcopenshell.api.constraint +import ifcopenshell.api.root import ifcopenshell.util.constraint +import test.bootstrap class TestUnassignConstraint(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/context/test_add_context.py b/src/ifcopenshell-python/test/api/context/test_add_context.py index 1ae3183697..4e24fe623a 100644 --- a/src/ifcopenshell-python/test/api/context/test_add_context.py +++ b/src/ifcopenshell-python/test/api/context/test_add_context.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.context +import test.bootstrap class TestAddContext(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/context/test_edit_context.py b/src/ifcopenshell-python/test/api/context/test_edit_context.py index f138b649e1..eead4d1971 100644 --- a/src/ifcopenshell-python/test/api/context/test_edit_context.py +++ b/src/ifcopenshell-python/test/api/context/test_edit_context.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.context +import test.bootstrap class TestEditContext(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/context/test_remove_context.py b/src/ifcopenshell-python/test/api/context/test_remove_context.py index dbc4185b6c..1dd3e255b4 100644 --- a/src/ifcopenshell-python/test/api/context/test_remove_context.py +++ b/src/ifcopenshell-python/test/api/context/test_remove_context.py @@ -16,10 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.context import ifcopenshell.api.geometry import ifcopenshell.api.root +import test.bootstrap class TestRemoveContext(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/control/test_assign_control.py b/src/ifcopenshell-python/test/api/control/test_assign_control.py index 75c6c0e8d3..a84b8d3ed7 100644 --- a/src/ifcopenshell-python/test/api/control/test_assign_control.py +++ b/src/ifcopenshell-python/test/api/control/test_assign_control.py @@ -16,9 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.cost import ifcopenshell.api.control +import ifcopenshell.api.cost +import test.bootstrap class TestAssignControl(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/control/test_unassign_control.py b/src/ifcopenshell-python/test/api/control/test_unassign_control.py index ecaebdae32..e413847f76 100644 --- a/src/ifcopenshell-python/test/api/control/test_unassign_control.py +++ b/src/ifcopenshell-python/test/api/control/test_unassign_control.py @@ -16,9 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.cost import ifcopenshell.api.control +import ifcopenshell.api.cost +import test.bootstrap class TestUnassignControl(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/cost/test_add_cost_item.py b/src/ifcopenshell-python/test/api/cost/test_add_cost_item.py index c2a3762e78..b473bdc86c 100644 --- a/src/ifcopenshell-python/test/api/cost/test_add_cost_item.py +++ b/src/ifcopenshell-python/test/api/cost/test_add_cost_item.py @@ -16,9 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.cost import ifcopenshell.util.element +import test.bootstrap class TestAddCostItem(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/cost/test_add_cost_item_quantity.py b/src/ifcopenshell-python/test/api/cost/test_add_cost_item_quantity.py index e5ffe38ce0..7680e9e376 100644 --- a/src/ifcopenshell-python/test/api/cost/test_add_cost_item_quantity.py +++ b/src/ifcopenshell-python/test/api/cost/test_add_cost_item_quantity.py @@ -16,10 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap +import ifcopenshell.api.control import ifcopenshell.api.cost import ifcopenshell.api.root -import ifcopenshell.api.control +import test.bootstrap class TestAddCostItemQuantity(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/cost/test_add_cost_schedule.py b/src/ifcopenshell-python/test/api/cost/test_add_cost_schedule.py index 019bc2b6b4..af138af60a 100644 --- a/src/ifcopenshell-python/test/api/cost/test_add_cost_schedule.py +++ b/src/ifcopenshell-python/test/api/cost/test_add_cost_schedule.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.cost +import test.bootstrap class TestAddCostSchedule(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/cost/test_remove_cost_item.py b/src/ifcopenshell-python/test/api/cost/test_remove_cost_item.py index a987063769..1bcd60eae9 100644 --- a/src/ifcopenshell-python/test/api/cost/test_remove_cost_item.py +++ b/src/ifcopenshell-python/test/api/cost/test_remove_cost_item.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.cost +import test.bootstrap class TestRemoveCostItem(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/cost/test_remove_cost_schedule.py b/src/ifcopenshell-python/test/api/cost/test_remove_cost_schedule.py index 309f4b0906..9b6c6824f1 100644 --- a/src/ifcopenshell-python/test/api/cost/test_remove_cost_schedule.py +++ b/src/ifcopenshell-python/test/api/cost/test_remove_cost_schedule.py @@ -16,9 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api import ifcopenshell.api.cost +import test.bootstrap class TestRemoveCostSchedule(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/document/test_add_information.py b/src/ifcopenshell-python/test/api/document/test_add_information.py index 8dc687652b..ea4846c9a5 100644 --- a/src/ifcopenshell-python/test/api/document/test_add_information.py +++ b/src/ifcopenshell-python/test/api/document/test_add_information.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.document +import test.bootstrap class TestAddInformation(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/document/test_add_reference.py b/src/ifcopenshell-python/test/api/document/test_add_reference.py index a0420a6d15..dbfbfb474b 100644 --- a/src/ifcopenshell-python/test/api/document/test_add_reference.py +++ b/src/ifcopenshell-python/test/api/document/test_add_reference.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.document +import test.bootstrap class TestAddReference(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/document/test_assign_document.py b/src/ifcopenshell-python/test/api/document/test_assign_document.py index 2a3051fe4b..336e640a67 100644 --- a/src/ifcopenshell-python/test/api/document/test_assign_document.py +++ b/src/ifcopenshell-python/test/api/document/test_assign_document.py @@ -16,10 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.root import ifcopenshell.api.document +import ifcopenshell.api.root import ifcopenshell.util.element +import test.bootstrap class TestAssignDocument(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/document/test_remove_information.py b/src/ifcopenshell-python/test/api/document/test_remove_information.py index 69e87faece..cee5357fd7 100644 --- a/src/ifcopenshell-python/test/api/document/test_remove_information.py +++ b/src/ifcopenshell-python/test/api/document/test_remove_information.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.document +import test.bootstrap class TestRemoveInformation(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/document/test_remove_reference.py b/src/ifcopenshell-python/test/api/document/test_remove_reference.py index dd5fde6602..56a6971a76 100644 --- a/src/ifcopenshell-python/test/api/document/test_remove_reference.py +++ b/src/ifcopenshell-python/test/api/document/test_remove_reference.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.document +import test.bootstrap class TestRemoveReference(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/document/test_unassign_document.py b/src/ifcopenshell-python/test/api/document/test_unassign_document.py index a5671a2b89..167143a949 100644 --- a/src/ifcopenshell-python/test/api/document/test_unassign_document.py +++ b/src/ifcopenshell-python/test/api/document/test_unassign_document.py @@ -16,10 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.root import ifcopenshell.api.document +import ifcopenshell.api.root import ifcopenshell.util.element +import test.bootstrap class TestUnassignDocument(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/drawing/test_assign_product.py b/src/ifcopenshell-python/test/api/drawing/test_assign_product.py index c2464203c0..925afc7073 100644 --- a/src/ifcopenshell-python/test/api/drawing/test_assign_product.py +++ b/src/ifcopenshell-python/test/api/drawing/test_assign_product.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.drawing +import test.bootstrap class TestAssignProduct(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/drawing/test_edit_text_literal.py b/src/ifcopenshell-python/test/api/drawing/test_edit_text_literal.py index 410c11ce7a..dcc7ba3dd5 100644 --- a/src/ifcopenshell-python/test/api/drawing/test_edit_text_literal.py +++ b/src/ifcopenshell-python/test/api/drawing/test_edit_text_literal.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.drawing +import test.bootstrap class TestEditTextLiteral(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/drawing/test_unassign_product.py b/src/ifcopenshell-python/test/api/drawing/test_unassign_product.py index f80a9b2ecc..381b9c01e7 100644 --- a/src/ifcopenshell-python/test/api/drawing/test_unassign_product.py +++ b/src/ifcopenshell-python/test/api/drawing/test_unassign_product.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.drawing +import test.bootstrap class TestUnassignProduct(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/feature/test_add_feature.py b/src/ifcopenshell-python/test/api/feature/test_add_feature.py index 7ac05f6ecf..eb4f0e3565 100644 --- a/src/ifcopenshell-python/test/api/feature/test_add_feature.py +++ b/src/ifcopenshell-python/test/api/feature/test_add_feature.py @@ -17,12 +17,13 @@ # along with IfcOpenShell. If not, see . import numpy -import test.bootstrap + import ifcopenshell.api.feature +import ifcopenshell.api.geometry import ifcopenshell.api.root import ifcopenshell.api.unit -import ifcopenshell.api.geometry import ifcopenshell.util.placement +import test.bootstrap class TestAddFeature(test.bootstrap.IFC4X3): diff --git a/src/ifcopenshell-python/test/api/feature/test_add_filling.py b/src/ifcopenshell-python/test/api/feature/test_add_filling.py index 49259d75ab..c968215187 100644 --- a/src/ifcopenshell-python/test/api/feature/test_add_filling.py +++ b/src/ifcopenshell-python/test/api/feature/test_add_filling.py @@ -16,9 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.feature import ifcopenshell.api.root +import test.bootstrap class TestAddFilling(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/feature/test_remove_feature.py b/src/ifcopenshell-python/test/api/feature/test_remove_feature.py index 5275639525..74065267da 100644 --- a/src/ifcopenshell-python/test/api/feature/test_remove_feature.py +++ b/src/ifcopenshell-python/test/api/feature/test_remove_feature.py @@ -16,9 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.feature import ifcopenshell.api.root +import test.bootstrap class TestRemoveFeature(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/geometry/test_add_boolean.py b/src/ifcopenshell-python/test/api/geometry/test_add_boolean.py index 80673275f8..d507f89308 100644 --- a/src/ifcopenshell-python/test/api/geometry/test_add_boolean.py +++ b/src/ifcopenshell-python/test/api/geometry/test_add_boolean.py @@ -16,11 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.root import ifcopenshell.api.context import ifcopenshell.api.geometry +import ifcopenshell.api.root import ifcopenshell.util.shape_builder +import test.bootstrap class TestAddBoolean(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/geometry/test_add_profile_representation.py b/src/ifcopenshell-python/test/api/geometry/test_add_profile_representation.py index 39ac9aa928..e0c500a8cf 100644 --- a/src/ifcopenshell-python/test/api/geometry/test_add_profile_representation.py +++ b/src/ifcopenshell-python/test/api/geometry/test_add_profile_representation.py @@ -16,11 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.unit -import ifcopenshell.api.root import ifcopenshell.api.context import ifcopenshell.api.geometry +import ifcopenshell.api.root +import ifcopenshell.api.unit +import test.bootstrap from ifcopenshell.util.shape_builder import ShapeBuilder diff --git a/src/ifcopenshell-python/test/api/geometry/test_add_shape_aspect.py b/src/ifcopenshell-python/test/api/geometry/test_add_shape_aspect.py index c827f1e33a..b0e9b63f48 100644 --- a/src/ifcopenshell-python/test/api/geometry/test_add_shape_aspect.py +++ b/src/ifcopenshell-python/test/api/geometry/test_add_shape_aspect.py @@ -16,11 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.root import ifcopenshell.api.context import ifcopenshell.api.geometry +import ifcopenshell.api.root import ifcopenshell.util.shape_builder +import test.bootstrap class TestAddShapeAspect(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/geometry/test_assign_representation.py b/src/ifcopenshell-python/test/api/geometry/test_assign_representation.py index c971219157..57fb48dabe 100644 --- a/src/ifcopenshell-python/test/api/geometry/test_assign_representation.py +++ b/src/ifcopenshell-python/test/api/geometry/test_assign_representation.py @@ -16,12 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api -import ifcopenshell.api.material -import ifcopenshell.api.type -import ifcopenshell.api.root import ifcopenshell.api.geometry +import ifcopenshell.api.material +import ifcopenshell.api.root +import ifcopenshell.api.type +import test.bootstrap class TestAssignRepresentation(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/geometry/test_connect_element.py b/src/ifcopenshell-python/test/api/geometry/test_connect_element.py index 240976463b..9902b7b4df 100644 --- a/src/ifcopenshell-python/test/api/geometry/test_connect_element.py +++ b/src/ifcopenshell-python/test/api/geometry/test_connect_element.py @@ -16,9 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.root import ifcopenshell.api.geometry +import ifcopenshell.api.root +import test.bootstrap class TestConnectElement(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/geometry/test_connect_path.py b/src/ifcopenshell-python/test/api/geometry/test_connect_path.py index 634eb1b45e..bda341d2c6 100644 --- a/src/ifcopenshell-python/test/api/geometry/test_connect_path.py +++ b/src/ifcopenshell-python/test/api/geometry/test_connect_path.py @@ -16,9 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.root import ifcopenshell.api.geometry +import ifcopenshell.api.root +import test.bootstrap class TestConnectPath(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/geometry/test_disconnect_element.py b/src/ifcopenshell-python/test/api/geometry/test_disconnect_element.py index 4bf8dfbbc8..9fab39cc01 100644 --- a/src/ifcopenshell-python/test/api/geometry/test_disconnect_element.py +++ b/src/ifcopenshell-python/test/api/geometry/test_disconnect_element.py @@ -16,9 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.root import ifcopenshell.api.geometry +import ifcopenshell.api.root +import test.bootstrap class TestDisconnectElement(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/geometry/test_disconnect_path.py b/src/ifcopenshell-python/test/api/geometry/test_disconnect_path.py index fdb0c013d8..5a58a8693b 100644 --- a/src/ifcopenshell-python/test/api/geometry/test_disconnect_path.py +++ b/src/ifcopenshell-python/test/api/geometry/test_disconnect_path.py @@ -16,9 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.root import ifcopenshell.api.geometry +import ifcopenshell.api.root +import test.bootstrap class TestDisconnectPath(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/geometry/test_edit_object_placement.py b/src/ifcopenshell-python/test/api/geometry/test_edit_object_placement.py index 70dcbf7285..d243d4b738 100644 --- a/src/ifcopenshell-python/test/api/geometry/test_edit_object_placement.py +++ b/src/ifcopenshell-python/test/api/geometry/test_edit_object_placement.py @@ -18,16 +18,17 @@ import numpy import pytest -import test.bootstrap -import ifcopenshell.api.feature -import ifcopenshell.api.root -import ifcopenshell.api.unit -import ifcopenshell.api.system -import ifcopenshell.api.spatial -import ifcopenshell.api.geometry + import ifcopenshell.api.aggregate +import ifcopenshell.api.feature +import ifcopenshell.api.geometry +import ifcopenshell.api.root +import ifcopenshell.api.spatial +import ifcopenshell.api.system +import ifcopenshell.api.unit import ifcopenshell.guid import ifcopenshell.util.placement +import test.bootstrap class TestEditObjectPlacement(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/geometry/test_remove_boolean.py b/src/ifcopenshell-python/test/api/geometry/test_remove_boolean.py index 5330d097cc..aeb7728ea6 100644 --- a/src/ifcopenshell-python/test/api/geometry/test_remove_boolean.py +++ b/src/ifcopenshell-python/test/api/geometry/test_remove_boolean.py @@ -16,11 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.root import ifcopenshell.api.context import ifcopenshell.api.geometry +import ifcopenshell.api.root import ifcopenshell.util.shape_builder +import test.bootstrap class TestRemoveBoolean(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/geometry/test_remove_representation.py b/src/ifcopenshell-python/test/api/geometry/test_remove_representation.py index 4363cc8ac8..1c37f8960a 100644 --- a/src/ifcopenshell-python/test/api/geometry/test_remove_representation.py +++ b/src/ifcopenshell-python/test/api/geometry/test_remove_representation.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.geometry +import test.bootstrap class TestRemoveRepresentation(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/geometry/test_unassign_representation.py b/src/ifcopenshell-python/test/api/geometry/test_unassign_representation.py index 1e45054369..e44d802e23 100644 --- a/src/ifcopenshell-python/test/api/geometry/test_unassign_representation.py +++ b/src/ifcopenshell-python/test/api/geometry/test_unassign_representation.py @@ -16,9 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.geometry -import ifcopenshell.util.placement +import test.bootstrap class TestUnassignRepresentation(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/geometry/test_validate_type.py b/src/ifcopenshell-python/test/api/geometry/test_validate_type.py index 189f9619a9..7f4a57e995 100644 --- a/src/ifcopenshell-python/test/api/geometry/test_validate_type.py +++ b/src/ifcopenshell-python/test/api/geometry/test_validate_type.py @@ -16,11 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.root import ifcopenshell.api.context import ifcopenshell.api.geometry +import ifcopenshell.api.root import ifcopenshell.util.shape_builder +import test.bootstrap class TestValidateType(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/georeference/test_add_georeferencing.py b/src/ifcopenshell-python/test/api/georeference/test_add_georeferencing.py index 121af8f5a1..68f1ac2597 100644 --- a/src/ifcopenshell-python/test/api/georeference/test_add_georeferencing.py +++ b/src/ifcopenshell-python/test/api/georeference/test_add_georeferencing.py @@ -16,11 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.root import ifcopenshell.api.context import ifcopenshell.api.georeference +import ifcopenshell.api.root import ifcopenshell.util.element +import test.bootstrap class TestAddGeoreferencing(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/georeference/test_edit_georeferencing.py b/src/ifcopenshell-python/test/api/georeference/test_edit_georeferencing.py index 862983fdc5..729eb0559b 100644 --- a/src/ifcopenshell-python/test/api/georeference/test_edit_georeferencing.py +++ b/src/ifcopenshell-python/test/api/georeference/test_edit_georeferencing.py @@ -16,11 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.root import ifcopenshell.api.context import ifcopenshell.api.georeference +import ifcopenshell.api.root import ifcopenshell.util.element +import test.bootstrap class TestEditGeoreferencing(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/georeference/test_edit_true_north.py b/src/ifcopenshell-python/test/api/georeference/test_edit_true_north.py index 9f8f2dd07a..dc8ea2bc3e 100644 --- a/src/ifcopenshell-python/test/api/georeference/test_edit_true_north.py +++ b/src/ifcopenshell-python/test/api/georeference/test_edit_true_north.py @@ -17,11 +17,12 @@ # along with IfcOpenShell. If not, see . import numpy as np -import test.bootstrap -import ifcopenshell.api.root + import ifcopenshell.api.context import ifcopenshell.api.georeference +import ifcopenshell.api.root import ifcopenshell.util.geolocation +import test.bootstrap class TestEditTrueNorth(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/georeference/test_edit_wcs.py b/src/ifcopenshell-python/test/api/georeference/test_edit_wcs.py index f23ce928ce..9e761e81bb 100644 --- a/src/ifcopenshell-python/test/api/georeference/test_edit_wcs.py +++ b/src/ifcopenshell-python/test/api/georeference/test_edit_wcs.py @@ -17,11 +17,12 @@ # along with IfcOpenShell. If not, see . import numpy as np -import test.bootstrap -import ifcopenshell.api.root + import ifcopenshell.api.context import ifcopenshell.api.georeference +import ifcopenshell.api.root import ifcopenshell.util.geolocation +import test.bootstrap class TestEditWCS(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/georeference/test_remove_georeferencing.py b/src/ifcopenshell-python/test/api/georeference/test_remove_georeferencing.py index 5befb17b99..13bca27c5d 100644 --- a/src/ifcopenshell-python/test/api/georeference/test_remove_georeferencing.py +++ b/src/ifcopenshell-python/test/api/georeference/test_remove_georeferencing.py @@ -16,11 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.root import ifcopenshell.api.context import ifcopenshell.api.georeference +import ifcopenshell.api.root import ifcopenshell.util.element +import test.bootstrap class TestRemoveGeoreferencing(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/grid/test_create_grid_axis.py b/src/ifcopenshell-python/test/api/grid/test_create_grid_axis.py index 518f6308d2..24ca32f9ef 100644 --- a/src/ifcopenshell-python/test/api/grid/test_create_grid_axis.py +++ b/src/ifcopenshell-python/test/api/grid/test_create_grid_axis.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.grid +import test.bootstrap class TestCreateGridAxis(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/group/test_add_group.py b/src/ifcopenshell-python/test/api/group/test_add_group.py index 0c8af993ab..22eaac30c5 100644 --- a/src/ifcopenshell-python/test/api/group/test_add_group.py +++ b/src/ifcopenshell-python/test/api/group/test_add_group.py @@ -16,9 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.group -import ifcopenshell.util.element +import test.bootstrap class TestAddGroup(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/group/test_assign_group.py b/src/ifcopenshell-python/test/api/group/test_assign_group.py index 85b2711e27..959883db3b 100644 --- a/src/ifcopenshell-python/test/api/group/test_assign_group.py +++ b/src/ifcopenshell-python/test/api/group/test_assign_group.py @@ -16,10 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.root import ifcopenshell.api.group +import ifcopenshell.api.root import ifcopenshell.util.element +import test.bootstrap class TestAssignGroup(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/group/test_remove_group.py b/src/ifcopenshell-python/test/api/group/test_remove_group.py index 28e59493c5..efe7cd25d3 100644 --- a/src/ifcopenshell-python/test/api/group/test_remove_group.py +++ b/src/ifcopenshell-python/test/api/group/test_remove_group.py @@ -16,10 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap +import ifcopenshell.api.group import ifcopenshell.api.pset import ifcopenshell.api.root -import ifcopenshell.api.group +import test.bootstrap class TestRemoveGroup(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/group/test_unassign_group.py b/src/ifcopenshell-python/test/api/group/test_unassign_group.py index c40b4affcb..f909e428f7 100644 --- a/src/ifcopenshell-python/test/api/group/test_unassign_group.py +++ b/src/ifcopenshell-python/test/api/group/test_unassign_group.py @@ -16,9 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.root import ifcopenshell.api.group +import ifcopenshell.api.root +import test.bootstrap class TestAssignGroup(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/group/test_update_group_products.py b/src/ifcopenshell-python/test/api/group/test_update_group_products.py index 56d685de9a..c8e50f7d0e 100644 --- a/src/ifcopenshell-python/test/api/group/test_update_group_products.py +++ b/src/ifcopenshell-python/test/api/group/test_update_group_products.py @@ -16,10 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.root import ifcopenshell.api.group +import ifcopenshell.api.root import ifcopenshell.util.element +import test.bootstrap class TestUpdateGroupProductsIFC2X3(test.bootstrap.IFC2X3): diff --git a/src/ifcopenshell-python/test/api/layer/test_add_layer.py b/src/ifcopenshell-python/test/api/layer/test_add_layer.py index 97635ccb63..aa54065048 100644 --- a/src/ifcopenshell-python/test/api/layer/test_add_layer.py +++ b/src/ifcopenshell-python/test/api/layer/test_add_layer.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.layer +import test.bootstrap class TestAddLayer(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/layer/test_add_layer_with_style.py b/src/ifcopenshell-python/test/api/layer/test_add_layer_with_style.py index 0395e40178..8d52258727 100644 --- a/src/ifcopenshell-python/test/api/layer/test_add_layer_with_style.py +++ b/src/ifcopenshell-python/test/api/layer/test_add_layer_with_style.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.layer +import test.bootstrap class TestAddLayerWithStyle(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/layer/test_assign_layer.py b/src/ifcopenshell-python/test/api/layer/test_assign_layer.py index f2b0e831d9..9c174975ca 100644 --- a/src/ifcopenshell-python/test/api/layer/test_assign_layer.py +++ b/src/ifcopenshell-python/test/api/layer/test_assign_layer.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.layer +import test.bootstrap class TestAssignLayer(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/layer/test_unassign_layer.py b/src/ifcopenshell-python/test/api/layer/test_unassign_layer.py index 018c9125f5..8d14f6ad94 100644 --- a/src/ifcopenshell-python/test/api/layer/test_unassign_layer.py +++ b/src/ifcopenshell-python/test/api/layer/test_unassign_layer.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.layer +import test.bootstrap class TestUnassignLayer(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/library/test_add_library.py b/src/ifcopenshell-python/test/api/library/test_add_library.py index e2cd440028..36b63b70f6 100644 --- a/src/ifcopenshell-python/test/api/library/test_add_library.py +++ b/src/ifcopenshell-python/test/api/library/test_add_library.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.library +import test.bootstrap class TestAddLibrary(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/library/test_add_reference.py b/src/ifcopenshell-python/test/api/library/test_add_reference.py index 95f23d495f..596d878b67 100644 --- a/src/ifcopenshell-python/test/api/library/test_add_reference.py +++ b/src/ifcopenshell-python/test/api/library/test_add_reference.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.library +import test.bootstrap class TestAddReference(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/library/test_assign_reference.py b/src/ifcopenshell-python/test/api/library/test_assign_reference.py index 988d4c2265..822687f2db 100644 --- a/src/ifcopenshell-python/test/api/library/test_assign_reference.py +++ b/src/ifcopenshell-python/test/api/library/test_assign_reference.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.library +import test.bootstrap class TestAssignReference(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/library/test_edit_library.py b/src/ifcopenshell-python/test/api/library/test_edit_library.py index 26f46d3016..42f4119f99 100644 --- a/src/ifcopenshell-python/test/api/library/test_edit_library.py +++ b/src/ifcopenshell-python/test/api/library/test_edit_library.py @@ -16,10 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import datetime + import ifcopenshell.api.library import ifcopenshell.util.date +import test.bootstrap class TestEditLibrary(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/library/test_edit_reference.py b/src/ifcopenshell-python/test/api/library/test_edit_reference.py index b979a56357..6bb638ff5b 100644 --- a/src/ifcopenshell-python/test/api/library/test_edit_reference.py +++ b/src/ifcopenshell-python/test/api/library/test_edit_reference.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.library +import test.bootstrap class TestEditReference(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/library/test_remove_library.py b/src/ifcopenshell-python/test/api/library/test_remove_library.py index 7376d4a288..038249f49b 100644 --- a/src/ifcopenshell-python/test/api/library/test_remove_library.py +++ b/src/ifcopenshell-python/test/api/library/test_remove_library.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.library +import test.bootstrap class TestRemoveLibrary(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/library/test_remove_reference.py b/src/ifcopenshell-python/test/api/library/test_remove_reference.py index f6f6d90588..32b0920188 100644 --- a/src/ifcopenshell-python/test/api/library/test_remove_reference.py +++ b/src/ifcopenshell-python/test/api/library/test_remove_reference.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.library +import test.bootstrap class TestRemoveReference(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/library/test_unassign_reference.py b/src/ifcopenshell-python/test/api/library/test_unassign_reference.py index e7e1b9cf63..e1223b91fe 100644 --- a/src/ifcopenshell-python/test/api/library/test_unassign_reference.py +++ b/src/ifcopenshell-python/test/api/library/test_unassign_reference.py @@ -16,9 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.library import ifcopenshell.util.element +import test.bootstrap class TestUnassignReference(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/material/test_add_material_set.py b/src/ifcopenshell-python/test/api/material/test_add_material_set.py index 758c40b824..10e65cb6d3 100644 --- a/src/ifcopenshell-python/test/api/material/test_add_material_set.py +++ b/src/ifcopenshell-python/test/api/material/test_add_material_set.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.material +import test.bootstrap class TestAddMaterialSetIFC2X3(test.bootstrap.IFC2X3): diff --git a/src/ifcopenshell-python/test/api/material/test_assign_material.py b/src/ifcopenshell-python/test/api/material/test_assign_material.py index 2baeedcb50..554bc95b9f 100644 --- a/src/ifcopenshell-python/test/api/material/test_assign_material.py +++ b/src/ifcopenshell-python/test/api/material/test_assign_material.py @@ -16,11 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap +import ifcopenshell.api.material import ifcopenshell.api.root import ifcopenshell.api.type -import ifcopenshell.api.material import ifcopenshell.util.element +import test.bootstrap class TestAssignMaterialIFC2X3(test.bootstrap.IFC2X3): diff --git a/src/ifcopenshell-python/test/api/material/test_copy_material.py b/src/ifcopenshell-python/test/api/material/test_copy_material.py index 2faa210e6c..51e36f0eac 100644 --- a/src/ifcopenshell-python/test/api/material/test_copy_material.py +++ b/src/ifcopenshell-python/test/api/material/test_copy_material.py @@ -16,13 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap +import ifcopenshell.api.context +import ifcopenshell.api.material import ifcopenshell.api.pset import ifcopenshell.api.root import ifcopenshell.api.style -import ifcopenshell.api.context -import ifcopenshell.api.material import ifcopenshell.util.element +import test.bootstrap class TestCopyMaterial(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/material/test_edit_profile_usage.py b/src/ifcopenshell-python/test/api/material/test_edit_profile_usage.py index 3a029482c1..ae4230d29f 100644 --- a/src/ifcopenshell-python/test/api/material/test_edit_profile_usage.py +++ b/src/ifcopenshell-python/test/api/material/test_edit_profile_usage.py @@ -16,12 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.context import ifcopenshell.api.geometry import ifcopenshell.api.material import ifcopenshell.api.root -import ifcopenshell.util.placement +import test.bootstrap from ifcopenshell.util.shape_builder import ShapeBuilder diff --git a/src/ifcopenshell-python/test/api/material/test_remove_material.py b/src/ifcopenshell-python/test/api/material/test_remove_material.py index 01f3621a81..d33f9114dc 100644 --- a/src/ifcopenshell-python/test/api/material/test_remove_material.py +++ b/src/ifcopenshell-python/test/api/material/test_remove_material.py @@ -16,12 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap +import ifcopenshell.api.context +import ifcopenshell.api.material import ifcopenshell.api.pset import ifcopenshell.api.root import ifcopenshell.api.style -import ifcopenshell.api.context -import ifcopenshell.api.material +import test.bootstrap class TestRemoveMaterialIFC2X3(test.bootstrap.IFC2X3): diff --git a/src/ifcopenshell-python/test/api/material/test_remove_material_set.py b/src/ifcopenshell-python/test/api/material/test_remove_material_set.py index 3c6c70b44a..24330c3720 100644 --- a/src/ifcopenshell-python/test/api/material/test_remove_material_set.py +++ b/src/ifcopenshell-python/test/api/material/test_remove_material_set.py @@ -16,11 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.material import ifcopenshell.api.pset import ifcopenshell.api.root import ifcopenshell.api.type +import test.bootstrap class TestRemoveMaterialSetIFC2X3(test.bootstrap.IFC2X3): diff --git a/src/ifcopenshell-python/test/api/material/test_unassign_material.py b/src/ifcopenshell-python/test/api/material/test_unassign_material.py index 398661c7b0..ba5f29c04a 100644 --- a/src/ifcopenshell-python/test/api/material/test_unassign_material.py +++ b/src/ifcopenshell-python/test/api/material/test_unassign_material.py @@ -16,11 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap +import ifcopenshell.api.material import ifcopenshell.api.root import ifcopenshell.api.type -import ifcopenshell.api.material import ifcopenshell.util.element +import test.bootstrap class TestUnassignMaterialIFC2X3(test.bootstrap.IFC2X3): diff --git a/src/ifcopenshell-python/test/api/nest/test_assign_object.py b/src/ifcopenshell-python/test/api/nest/test_assign_object.py index a6abfde611..88f8d0bb90 100644 --- a/src/ifcopenshell-python/test/api/nest/test_assign_object.py +++ b/src/ifcopenshell-python/test/api/nest/test_assign_object.py @@ -17,11 +17,11 @@ # along with IfcOpenShell. If not, see . import pytest -import test.bootstrap + import ifcopenshell.api.nest import ifcopenshell.api.root import ifcopenshell.util.element -import ifcopenshell.util.placement +import test.bootstrap class TestAssignObject(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/nest/test_unassign_object.py b/src/ifcopenshell-python/test/api/nest/test_unassign_object.py index 9f3979b85d..925d15b2db 100644 --- a/src/ifcopenshell-python/test/api/nest/test_unassign_object.py +++ b/src/ifcopenshell-python/test/api/nest/test_unassign_object.py @@ -16,10 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.nest import ifcopenshell.api.root import ifcopenshell.util.element +import test.bootstrap class TestUnassignObject(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/owner/test_add_actor.py b/src/ifcopenshell-python/test/api/owner/test_add_actor.py index 2a4bf52cf7..c3a8410ae6 100644 --- a/src/ifcopenshell-python/test/api/owner/test_add_actor.py +++ b/src/ifcopenshell-python/test/api/owner/test_add_actor.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.owner +import test.bootstrap class TestAddActor(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/owner/test_add_address.py b/src/ifcopenshell-python/test/api/owner/test_add_address.py index 16dc75f492..ffb3daebf2 100644 --- a/src/ifcopenshell-python/test/api/owner/test_add_address.py +++ b/src/ifcopenshell-python/test/api/owner/test_add_address.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.owner +import test.bootstrap class TestAddAddress(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/owner/test_add_application.py b/src/ifcopenshell-python/test/api/owner/test_add_application.py index 77890c19cf..bc70fae55a 100644 --- a/src/ifcopenshell-python/test/api/owner/test_add_application.py +++ b/src/ifcopenshell-python/test/api/owner/test_add_application.py @@ -16,9 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.owner import ifcopenshell.util.element +import test.bootstrap class TestAddApplication(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/owner/test_add_organisation.py b/src/ifcopenshell-python/test/api/owner/test_add_organisation.py index 5f20a35129..5080951e57 100644 --- a/src/ifcopenshell-python/test/api/owner/test_add_organisation.py +++ b/src/ifcopenshell-python/test/api/owner/test_add_organisation.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.owner +import test.bootstrap class TestAddOrganisation(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/owner/test_add_person.py b/src/ifcopenshell-python/test/api/owner/test_add_person.py index 9f1dc8e776..8d02a45d0a 100644 --- a/src/ifcopenshell-python/test/api/owner/test_add_person.py +++ b/src/ifcopenshell-python/test/api/owner/test_add_person.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.owner +import test.bootstrap class TestAddPerson(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/owner/test_add_person_and_organisation.py b/src/ifcopenshell-python/test/api/owner/test_add_person_and_organisation.py index ac97b7a317..7ed6cf8934 100644 --- a/src/ifcopenshell-python/test/api/owner/test_add_person_and_organisation.py +++ b/src/ifcopenshell-python/test/api/owner/test_add_person_and_organisation.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.owner +import test.bootstrap class TestAddPersonAndOrganisation(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/owner/test_add_role.py b/src/ifcopenshell-python/test/api/owner/test_add_role.py index c98cba08e9..05c450aa2f 100644 --- a/src/ifcopenshell-python/test/api/owner/test_add_role.py +++ b/src/ifcopenshell-python/test/api/owner/test_add_role.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.owner +import test.bootstrap class TestAddRole(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/owner/test_assign_actor.py b/src/ifcopenshell-python/test/api/owner/test_assign_actor.py index c4c6f84c24..0098037f39 100644 --- a/src/ifcopenshell-python/test/api/owner/test_assign_actor.py +++ b/src/ifcopenshell-python/test/api/owner/test_assign_actor.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.owner +import test.bootstrap class TestAssignActor(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/owner/test_create_owner_history.py b/src/ifcopenshell-python/test/api/owner/test_create_owner_history.py index 839f46ea73..5d717fed80 100644 --- a/src/ifcopenshell-python/test/api/owner/test_create_owner_history.py +++ b/src/ifcopenshell-python/test/api/owner/test_create_owner_history.py @@ -17,10 +17,12 @@ # along with IfcOpenShell. If not, see . import time + import pytest -import test.bootstrap + import ifcopenshell.api import ifcopenshell.api.owner.settings +import test.bootstrap class TestCreateOwnerHistory(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/owner/test_edit_actor.py b/src/ifcopenshell-python/test/api/owner/test_edit_actor.py index 02335cca41..f050514819 100644 --- a/src/ifcopenshell-python/test/api/owner/test_edit_actor.py +++ b/src/ifcopenshell-python/test/api/owner/test_edit_actor.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.owner +import test.bootstrap class TestEditActor(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/owner/test_edit_address.py b/src/ifcopenshell-python/test/api/owner/test_edit_address.py index c01b072939..1529f1b863 100644 --- a/src/ifcopenshell-python/test/api/owner/test_edit_address.py +++ b/src/ifcopenshell-python/test/api/owner/test_edit_address.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.owner +import test.bootstrap class TestEditAddress(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/owner/test_edit_application.py b/src/ifcopenshell-python/test/api/owner/test_edit_application.py index 4a88e8631b..ac3612bca9 100644 --- a/src/ifcopenshell-python/test/api/owner/test_edit_application.py +++ b/src/ifcopenshell-python/test/api/owner/test_edit_application.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.owner +import test.bootstrap class TestEditApplication(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/owner/test_edit_organisation.py b/src/ifcopenshell-python/test/api/owner/test_edit_organisation.py index c1a6742239..6580762406 100644 --- a/src/ifcopenshell-python/test/api/owner/test_edit_organisation.py +++ b/src/ifcopenshell-python/test/api/owner/test_edit_organisation.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.owner +import test.bootstrap class TestEditOrganisation(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/owner/test_edit_person.py b/src/ifcopenshell-python/test/api/owner/test_edit_person.py index e1b79ddc6e..ae07f78e91 100644 --- a/src/ifcopenshell-python/test/api/owner/test_edit_person.py +++ b/src/ifcopenshell-python/test/api/owner/test_edit_person.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.owner +import test.bootstrap class TestEditPerson(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/owner/test_edit_role.py b/src/ifcopenshell-python/test/api/owner/test_edit_role.py index c92f38d15c..8fb203cbf1 100644 --- a/src/ifcopenshell-python/test/api/owner/test_edit_role.py +++ b/src/ifcopenshell-python/test/api/owner/test_edit_role.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.owner +import test.bootstrap class TestEditRole(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/owner/test_remove_actor.py b/src/ifcopenshell-python/test/api/owner/test_remove_actor.py index f46b70ca6e..db044c3efe 100644 --- a/src/ifcopenshell-python/test/api/owner/test_remove_actor.py +++ b/src/ifcopenshell-python/test/api/owner/test_remove_actor.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.owner +import test.bootstrap class TestRemoveActor(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/owner/test_remove_address.py b/src/ifcopenshell-python/test/api/owner/test_remove_address.py index f8d6c6094f..e8dfb72dc0 100644 --- a/src/ifcopenshell-python/test/api/owner/test_remove_address.py +++ b/src/ifcopenshell-python/test/api/owner/test_remove_address.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.owner +import test.bootstrap class TestRemoveAddress(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/owner/test_remove_organisation.py b/src/ifcopenshell-python/test/api/owner/test_remove_organisation.py index 7da306ecf3..0a0f25dd73 100644 --- a/src/ifcopenshell-python/test/api/owner/test_remove_organisation.py +++ b/src/ifcopenshell-python/test/api/owner/test_remove_organisation.py @@ -16,9 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.owner import ifcopenshell.guid +import test.bootstrap class TestRemoveOrganisationIFC2X3(test.bootstrap.IFC2X3): diff --git a/src/ifcopenshell-python/test/api/owner/test_remove_person.py b/src/ifcopenshell-python/test/api/owner/test_remove_person.py index 8304d4b985..d8effdd4ec 100644 --- a/src/ifcopenshell-python/test/api/owner/test_remove_person.py +++ b/src/ifcopenshell-python/test/api/owner/test_remove_person.py @@ -17,9 +17,10 @@ # along with IfcOpenShell. If not, see . import pytest -import test.bootstrap + import ifcopenshell.api.owner import ifcopenshell.guid +import test.bootstrap class TestRemovePersonIFC2X3(test.bootstrap.IFC2X3): diff --git a/src/ifcopenshell-python/test/api/owner/test_remove_person_and_organisation.py b/src/ifcopenshell-python/test/api/owner/test_remove_person_and_organisation.py index a07d8dbe6a..a8bfa3a891 100644 --- a/src/ifcopenshell-python/test/api/owner/test_remove_person_and_organisation.py +++ b/src/ifcopenshell-python/test/api/owner/test_remove_person_and_organisation.py @@ -16,9 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.owner import ifcopenshell.guid +import test.bootstrap class TestRemovePersonAndOrganisationIFC2X3(test.bootstrap.IFC2X3): diff --git a/src/ifcopenshell-python/test/api/owner/test_remove_role.py b/src/ifcopenshell-python/test/api/owner/test_remove_role.py index 0c2afcdd99..3ef261be00 100644 --- a/src/ifcopenshell-python/test/api/owner/test_remove_role.py +++ b/src/ifcopenshell-python/test/api/owner/test_remove_role.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.owner +import test.bootstrap class TestRemoveRoleIFC2X3(test.bootstrap.IFC2X3): diff --git a/src/ifcopenshell-python/test/api/owner/test_unassign_actor.py b/src/ifcopenshell-python/test/api/owner/test_unassign_actor.py index 96a21c1a79..465ca01bae 100644 --- a/src/ifcopenshell-python/test/api/owner/test_unassign_actor.py +++ b/src/ifcopenshell-python/test/api/owner/test_unassign_actor.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.owner +import test.bootstrap class TestUnassignActor(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/owner/test_update_owner_history.py b/src/ifcopenshell-python/test/api/owner/test_update_owner_history.py index fb500658e1..1aeb5ad7c3 100644 --- a/src/ifcopenshell-python/test/api/owner/test_update_owner_history.py +++ b/src/ifcopenshell-python/test/api/owner/test_update_owner_history.py @@ -17,9 +17,10 @@ # along with IfcOpenShell. If not, see . import time -import test.bootstrap + import ifcopenshell.api.owner import ifcopenshell.api.owner.settings +import test.bootstrap class TestUpdateOwnerHistory(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/profile/test_add_parameterized_profile.py b/src/ifcopenshell-python/test/api/profile/test_add_parameterized_profile.py index 8481592643..b485cc97e7 100644 --- a/src/ifcopenshell-python/test/api/profile/test_add_parameterized_profile.py +++ b/src/ifcopenshell-python/test/api/profile/test_add_parameterized_profile.py @@ -16,9 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.profile import ifcopenshell.util.schema +import test.bootstrap class TestAddParametrizedProfileIFC2X3(test.bootstrap.IFC2X3): diff --git a/src/ifcopenshell-python/test/api/profile/test_copy_profile.py b/src/ifcopenshell-python/test/api/profile/test_copy_profile.py index 8cc19b1489..b82c47c12b 100644 --- a/src/ifcopenshell-python/test/api/profile/test_copy_profile.py +++ b/src/ifcopenshell-python/test/api/profile/test_copy_profile.py @@ -16,10 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.profile import ifcopenshell.api.pset import ifcopenshell.util.element +import test.bootstrap class TestCopyProfileIFC2X3(test.bootstrap.IFC2X3): diff --git a/src/ifcopenshell-python/test/api/profile/test_remove_profile.py b/src/ifcopenshell-python/test/api/profile/test_remove_profile.py index 86b3e136e7..3657ebc2d2 100644 --- a/src/ifcopenshell-python/test/api/profile/test_remove_profile.py +++ b/src/ifcopenshell-python/test/api/profile/test_remove_profile.py @@ -16,9 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.profile import ifcopenshell.api.pset +import test.bootstrap class TestRemoveProfileIFC2X3(test.bootstrap.IFC2X3): diff --git a/src/ifcopenshell-python/test/api/project/test_append_asset.py b/src/ifcopenshell-python/test/api/project/test_append_asset.py index 399ee1fd04..949fc2fa5f 100644 --- a/src/ifcopenshell-python/test/api/project/test_append_asset.py +++ b/src/ifcopenshell-python/test/api/project/test_append_asset.py @@ -16,28 +16,28 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.layer -import ifcopenshell.api.geometry -import ifcopenshell.api.georeference -import ifcopenshell.api.pset -import ifcopenshell.api.root -import ifcopenshell.api.type +import numpy as np + +import ifcopenshell.api.classification +import ifcopenshell.api.context import ifcopenshell.api.cost import ifcopenshell.api.feature -import ifcopenshell.api.style -import ifcopenshell.api.context -import ifcopenshell.api.project +import ifcopenshell.api.geometry +import ifcopenshell.api.georeference +import ifcopenshell.api.layer import ifcopenshell.api.material -import ifcopenshell.api.profile -import ifcopenshell.api.unit -import ifcopenshell.api.classification import ifcopenshell.api.owner.settings -import ifcopenshell.util.element +import ifcopenshell.api.profile +import ifcopenshell.api.project +import ifcopenshell.api.pset +import ifcopenshell.api.root +import ifcopenshell.api.style +import ifcopenshell.api.type +import ifcopenshell.api.unit import ifcopenshell.util.classification +import ifcopenshell.util.element import ifcopenshell.util.placement -import ifcopenshell.util.unit -import numpy as np +import test.bootstrap from ifcopenshell.util.shape_builder import ShapeBuilder diff --git a/src/ifcopenshell-python/test/api/project/test_assign_declaration.py b/src/ifcopenshell-python/test/api/project/test_assign_declaration.py index 8bbaf521cc..af24565b59 100644 --- a/src/ifcopenshell-python/test/api/project/test_assign_declaration.py +++ b/src/ifcopenshell-python/test/api/project/test_assign_declaration.py @@ -16,9 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.root import ifcopenshell.api.project +import ifcopenshell.api.root +import test.bootstrap # NOTE: supported only in IFC4+ diff --git a/src/ifcopenshell-python/test/api/project/test_create_file.py b/src/ifcopenshell-python/test/api/project/test_create_file.py index 8456e2fe27..6373968cb2 100644 --- a/src/ifcopenshell-python/test/api/project/test_create_file.py +++ b/src/ifcopenshell-python/test/api/project/test_create_file.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.project +import test.bootstrap class TestCreateFile(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/project/test_unassign_declaration.py b/src/ifcopenshell-python/test/api/project/test_unassign_declaration.py index 6a1683840b..4d77f2b721 100644 --- a/src/ifcopenshell-python/test/api/project/test_unassign_declaration.py +++ b/src/ifcopenshell-python/test/api/project/test_unassign_declaration.py @@ -16,11 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.root -import ifcopenshell.api.project from typing import Union +import ifcopenshell.api.project +import ifcopenshell.api.root +import test.bootstrap + # NOTE: supported only in IFC4+ class TestUnassignDeclaration(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/pset/test_add_pset.py b/src/ifcopenshell-python/test/api/pset/test_add_pset.py index fadb1a369c..1629c639bf 100644 --- a/src/ifcopenshell-python/test/api/pset/test_add_pset.py +++ b/src/ifcopenshell-python/test/api/pset/test_add_pset.py @@ -16,12 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap +import ifcopenshell.api.material +import ifcopenshell.api.profile import ifcopenshell.api.pset import ifcopenshell.api.root -import ifcopenshell.api.profile -import ifcopenshell.api.material import ifcopenshell.util.element +import test.bootstrap class TestAddPset(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/pset/test_add_qto.py b/src/ifcopenshell-python/test/api/pset/test_add_qto.py index 4c7493ca14..3f4a4e3ce6 100644 --- a/src/ifcopenshell-python/test/api/pset/test_add_qto.py +++ b/src/ifcopenshell-python/test/api/pset/test_add_qto.py @@ -16,10 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.pset import ifcopenshell.api.root import ifcopenshell.util.element +import test.bootstrap class TestAddQto(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/pset/test_assign_pset.py b/src/ifcopenshell-python/test/api/pset/test_assign_pset.py index 950d2743cb..0685d1dbf0 100644 --- a/src/ifcopenshell-python/test/api/pset/test_assign_pset.py +++ b/src/ifcopenshell-python/test/api/pset/test_assign_pset.py @@ -16,9 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.pset -import ifcopenshell.util.element +import test.bootstrap class TestAssignPset(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/pset/test_edit_pset.py b/src/ifcopenshell-python/test/api/pset/test_edit_pset.py index 257297f6b9..84347c626f 100644 --- a/src/ifcopenshell-python/test/api/pset/test_edit_pset.py +++ b/src/ifcopenshell-python/test/api/pset/test_edit_pset.py @@ -17,12 +17,13 @@ # along with IfcOpenShell. If not, see . import operator -import test.bootstrap +from typing import Union + import ifcopenshell.api.pset import ifcopenshell.api.root import ifcopenshell.guid import ifcopenshell.util.element -from typing import Union +import test.bootstrap def get_properties(material: ifcopenshell.entity_instance) -> Union[ifcopenshell.entity_instance, None]: diff --git a/src/ifcopenshell-python/test/api/pset/test_edit_qto.py b/src/ifcopenshell-python/test/api/pset/test_edit_qto.py index 0dc2bb5ef7..5bf31f8262 100644 --- a/src/ifcopenshell-python/test/api/pset/test_edit_qto.py +++ b/src/ifcopenshell-python/test/api/pset/test_edit_qto.py @@ -16,9 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.pset import ifcopenshell.api.root +import test.bootstrap class TestEditQto(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/pset/test_remove_pset.py b/src/ifcopenshell-python/test/api/pset/test_remove_pset.py index bb154cfc4f..b0f5dfd004 100644 --- a/src/ifcopenshell-python/test/api/pset/test_remove_pset.py +++ b/src/ifcopenshell-python/test/api/pset/test_remove_pset.py @@ -16,10 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.pset import ifcopenshell.api.root import ifcopenshell.util.element +import test.bootstrap class TestRemovePset(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/pset/test_unassign_pset.py b/src/ifcopenshell-python/test/api/pset/test_unassign_pset.py index 585a281713..3ee3e85328 100644 --- a/src/ifcopenshell-python/test/api/pset/test_unassign_pset.py +++ b/src/ifcopenshell-python/test/api/pset/test_unassign_pset.py @@ -16,9 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.pset -import ifcopenshell.util.element +import test.bootstrap class TestUnassignPset(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/pset/test_unshare_pset.py b/src/ifcopenshell-python/test/api/pset/test_unshare_pset.py index 846d2d5a54..76481b9170 100644 --- a/src/ifcopenshell-python/test/api/pset/test_unshare_pset.py +++ b/src/ifcopenshell-python/test/api/pset/test_unshare_pset.py @@ -16,11 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.pset -import ifcopenshell.api.root -import ifcopenshell.util.element import ifcopenshell.guid +import ifcopenshell.util.element +import test.bootstrap class TestUnsharePset(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/pset_template/test_edit_prop_template.py b/src/ifcopenshell-python/test/api/pset_template/test_edit_prop_template.py index ac076964c7..5f26b02983 100644 --- a/src/ifcopenshell-python/test/api/pset_template/test_edit_prop_template.py +++ b/src/ifcopenshell-python/test/api/pset_template/test_edit_prop_template.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.pset_template +import test.bootstrap class TestEditPropTemplate(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/resource/test_add_resource_quantity.py b/src/ifcopenshell-python/test/api/resource/test_add_resource_quantity.py index c9e20e7a49..890f290bc6 100644 --- a/src/ifcopenshell-python/test/api/resource/test_add_resource_quantity.py +++ b/src/ifcopenshell-python/test/api/resource/test_add_resource_quantity.py @@ -17,10 +17,11 @@ # along with IfcOpenShell. If not, see . import pytest -import test.bootstrap + import ifcopenshell.api import ifcopenshell.api.resource import ifcopenshell.util.resource +import test.bootstrap class TestAddResourceQuantity(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/resource/test_calculate_resource_work.py b/src/ifcopenshell-python/test/api/resource/test_calculate_resource_work.py index c80e3dae28..a15947a544 100644 --- a/src/ifcopenshell-python/test/api/resource/test_calculate_resource_work.py +++ b/src/ifcopenshell-python/test/api/resource/test_calculate_resource_work.py @@ -16,12 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.pset -import ifcopenshell.api.root import ifcopenshell.api.resource +import ifcopenshell.api.root import ifcopenshell.api.sequence -import ifcopenshell.util.constraint +import test.bootstrap # NOTE: resource module features relies on entities introduced in IFC4 diff --git a/src/ifcopenshell-python/test/api/root/test_copy_class.py b/src/ifcopenshell-python/test/api/root/test_copy_class.py index 66ba27ec06..c8cf57c3f6 100644 --- a/src/ifcopenshell-python/test/api/root/test_copy_class.py +++ b/src/ifcopenshell-python/test/api/root/test_copy_class.py @@ -17,19 +17,19 @@ # along with IfcOpenShell. If not, see . import numpy -import test.bootstrap -import ifcopenshell.api.unit -import ifcopenshell.api.type -import ifcopenshell.api.root -import ifcopenshell.api.feature -import ifcopenshell.api.pset -import ifcopenshell.api.group -import ifcopenshell.api.system -import ifcopenshell.api.spatial -import ifcopenshell.api.geometry + import ifcopenshell.api.aggregate -import ifcopenshell.util +import ifcopenshell.api.feature +import ifcopenshell.api.geometry +import ifcopenshell.api.group +import ifcopenshell.api.pset +import ifcopenshell.api.root +import ifcopenshell.api.spatial +import ifcopenshell.api.system +import ifcopenshell.api.type +import ifcopenshell.api.unit import ifcopenshell.util.system +import test.bootstrap class TestCopyClass(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/root/test_create_entity.py b/src/ifcopenshell-python/test/api/root/test_create_entity.py index dbe27a3a51..9616b2fec1 100644 --- a/src/ifcopenshell-python/test/api/root/test_create_entity.py +++ b/src/ifcopenshell-python/test/api/root/test_create_entity.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.root +import test.bootstrap class TestCreateEntity(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/root/test_reassign_class.py b/src/ifcopenshell-python/test/api/root/test_reassign_class.py index f8be13225e..bd6d0f05e8 100644 --- a/src/ifcopenshell-python/test/api/root/test_reassign_class.py +++ b/src/ifcopenshell-python/test/api/root/test_reassign_class.py @@ -18,13 +18,13 @@ import ifcopenshell.api.aggregate import ifcopenshell.api.geometry -import ifcopenshell.api.spatial -import ifcopenshell.util.representation -import test.bootstrap import ifcopenshell.api.pset import ifcopenshell.api.root +import ifcopenshell.api.spatial import ifcopenshell.api.type import ifcopenshell.util.element +import ifcopenshell.util.representation +import test.bootstrap class TestReassignClass(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/root/test_remove_product.py b/src/ifcopenshell-python/test/api/root/test_remove_product.py index da9b46dbe5..ae2308b360 100644 --- a/src/ifcopenshell-python/test/api/root/test_remove_product.py +++ b/src/ifcopenshell-python/test/api/root/test_remove_product.py @@ -16,24 +16,24 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.unit -import ifcopenshell.api.nest -import ifcopenshell.api.root -import ifcopenshell.api.feature -import ifcopenshell.api.grid -import ifcopenshell.api.type -import ifcopenshell.api.pset -import ifcopenshell.api.group -import ifcopenshell.api.owner -import ifcopenshell.api.system -import ifcopenshell.api.spatial -import ifcopenshell.api.drawing -import ifcopenshell.api.context -import ifcopenshell.api.geometry -import ifcopenshell.api.material import ifcopenshell.api.aggregate +import ifcopenshell.api.context +import ifcopenshell.api.drawing +import ifcopenshell.api.feature +import ifcopenshell.api.geometry +import ifcopenshell.api.grid +import ifcopenshell.api.group +import ifcopenshell.api.material +import ifcopenshell.api.nest +import ifcopenshell.api.owner +import ifcopenshell.api.pset +import ifcopenshell.api.root +import ifcopenshell.api.spatial +import ifcopenshell.api.system +import ifcopenshell.api.type +import ifcopenshell.api.unit import ifcopenshell.guid +import test.bootstrap class TestRemoveProduct(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/sequence/test_add_date_time.py b/src/ifcopenshell-python/test/api/sequence/test_add_date_time.py index 3b5d5ac15c..742a7d54ec 100644 --- a/src/ifcopenshell-python/test/api/sequence/test_add_date_time.py +++ b/src/ifcopenshell-python/test/api/sequence/test_add_date_time.py @@ -16,11 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from datetime import datetime + +import ifcopenshell.api.sequence import ifcopenshell.util import ifcopenshell.util.date import test.bootstrap -import ifcopenshell.api.sequence -from datetime import datetime class TestAddDateTime(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/sequence/test_assign_product.py b/src/ifcopenshell-python/test/api/sequence/test_assign_product.py index 19812e820c..b78b4d65a8 100644 --- a/src/ifcopenshell-python/test/api/sequence/test_assign_product.py +++ b/src/ifcopenshell-python/test/api/sequence/test_assign_product.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.sequence +import test.bootstrap class TestAssignProduct(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/sequence/test_calculate_task_duration.py b/src/ifcopenshell-python/test/api/sequence/test_calculate_task_duration.py index daed2ecb64..462526966a 100644 --- a/src/ifcopenshell-python/test/api/sequence/test_calculate_task_duration.py +++ b/src/ifcopenshell-python/test/api/sequence/test_calculate_task_duration.py @@ -16,11 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.root import ifcopenshell.api.pset -import ifcopenshell.api.sequence import ifcopenshell.api.resource +import ifcopenshell.api.root +import ifcopenshell.api.sequence +import test.bootstrap # NOTE: sequence module features relies on entities introduced in IFC4 diff --git a/src/ifcopenshell-python/test/api/sequence/test_cascade_schedule.py b/src/ifcopenshell-python/test/api/sequence/test_cascade_schedule.py index 87d5647343..32c9908736 100644 --- a/src/ifcopenshell-python/test/api/sequence/test_cascade_schedule.py +++ b/src/ifcopenshell-python/test/api/sequence/test_cascade_schedule.py @@ -16,10 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest import datetime -import test.bootstrap + +import pytest + import ifcopenshell.api.sequence +import test.bootstrap # NOTE: sequence module features relies on entities introduced in IFC4 diff --git a/src/ifcopenshell-python/test/api/sequence/test_edit_task_time.py b/src/ifcopenshell-python/test/api/sequence/test_edit_task_time.py index dcaf082bf8..a28a6cd604 100644 --- a/src/ifcopenshell-python/test/api/sequence/test_edit_task_time.py +++ b/src/ifcopenshell-python/test/api/sequence/test_edit_task_time.py @@ -17,11 +17,11 @@ # along with IfcOpenShell. If not, see . import datetime -import test.bootstrap -import ifcopenshell.api.root -import ifcopenshell.api.control -import ifcopenshell.api.sequence +import ifcopenshell.api.control +import ifcopenshell.api.root +import ifcopenshell.api.sequence +import test.bootstrap # NOTE: IfcTaskTime was introduced in IFC4 diff --git a/src/ifcopenshell-python/test/api/sequence/test_edit_work_time.py b/src/ifcopenshell-python/test/api/sequence/test_edit_work_time.py index dc58088d38..8ca467b681 100644 --- a/src/ifcopenshell-python/test/api/sequence/test_edit_work_time.py +++ b/src/ifcopenshell-python/test/api/sequence/test_edit_work_time.py @@ -17,8 +17,9 @@ # along with IfcOpenShell. If not, see . import datetime -import test.bootstrap + import ifcopenshell.api.sequence +import test.bootstrap # NOTE: IfcWorkTime was introduced in IFC4 diff --git a/src/ifcopenshell-python/test/api/sequence/test_recalculate_schedule.py b/src/ifcopenshell-python/test/api/sequence/test_recalculate_schedule.py index d5aacde632..0445f16474 100644 --- a/src/ifcopenshell-python/test/api/sequence/test_recalculate_schedule.py +++ b/src/ifcopenshell-python/test/api/sequence/test_recalculate_schedule.py @@ -16,11 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest import datetime -import test.bootstrap + +import pytest + import ifcopenshell.api.root import ifcopenshell.api.sequence +import test.bootstrap # NOTE: sequence module features relies on entities introduced in IFC4 diff --git a/src/ifcopenshell-python/test/api/sequence/test_remove_task.py b/src/ifcopenshell-python/test/api/sequence/test_remove_task.py index a23cf9cb54..8395afe288 100644 --- a/src/ifcopenshell-python/test/api/sequence/test_remove_task.py +++ b/src/ifcopenshell-python/test/api/sequence/test_remove_task.py @@ -16,11 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest -import test.bootstrap -import ifcopenshell.api + import ifcopenshell.api.nest import ifcopenshell.api.sequence +import test.bootstrap # NOTE: sequence module features relies on entities introduced in IFC4 diff --git a/src/ifcopenshell-python/test/api/sequence/test_remove_work_calendar.py b/src/ifcopenshell-python/test/api/sequence/test_remove_work_calendar.py index 99b0a035dc..cadf4770db 100644 --- a/src/ifcopenshell-python/test/api/sequence/test_remove_work_calendar.py +++ b/src/ifcopenshell-python/test/api/sequence/test_remove_work_calendar.py @@ -16,11 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest -import test.bootstrap -import ifcopenshell.api + import ifcopenshell.api.control import ifcopenshell.api.sequence +import test.bootstrap # NOTE: sequence module features relies on entities introduced in IFC4 diff --git a/src/ifcopenshell-python/test/api/sequence/test_remove_work_plan.py b/src/ifcopenshell-python/test/api/sequence/test_remove_work_plan.py index 273577f63e..906ea7a644 100644 --- a/src/ifcopenshell-python/test/api/sequence/test_remove_work_plan.py +++ b/src/ifcopenshell-python/test/api/sequence/test_remove_work_plan.py @@ -16,10 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest -import test.bootstrap + import ifcopenshell.api import ifcopenshell.api.sequence +import test.bootstrap def declared_objects(ifc_file: ifcopenshell.file) -> set[ifcopenshell.entity_instance]: diff --git a/src/ifcopenshell-python/test/api/sequence/test_remove_work_schedule.py b/src/ifcopenshell-python/test/api/sequence/test_remove_work_schedule.py index b661b8df48..02608e64f6 100644 --- a/src/ifcopenshell-python/test/api/sequence/test_remove_work_schedule.py +++ b/src/ifcopenshell-python/test/api/sequence/test_remove_work_schedule.py @@ -16,10 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest -import test.bootstrap + import ifcopenshell.api import ifcopenshell.api.sequence +import test.bootstrap def declared_objects(ifc_file: ifcopenshell.file) -> set[ifcopenshell.entity_instance]: diff --git a/src/ifcopenshell-python/test/api/sequence/test_remove_work_time.py b/src/ifcopenshell-python/test/api/sequence/test_remove_work_time.py index d0318c5c7a..207206f366 100644 --- a/src/ifcopenshell-python/test/api/sequence/test_remove_work_time.py +++ b/src/ifcopenshell-python/test/api/sequence/test_remove_work_time.py @@ -16,10 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest -import test.bootstrap -import ifcopenshell.api + import ifcopenshell.api.sequence +import test.bootstrap # NOTE: sequence module features relies on entities introduced in IFC4 diff --git a/src/ifcopenshell-python/test/api/sequence/test_unassign_product.py b/src/ifcopenshell-python/test/api/sequence/test_unassign_product.py index fdeae7e25d..537b2c6043 100644 --- a/src/ifcopenshell-python/test/api/sequence/test_unassign_product.py +++ b/src/ifcopenshell-python/test/api/sequence/test_unassign_product.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.sequence +import test.bootstrap class TestUnassignProduct(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/spatial/test_assign_container.py b/src/ifcopenshell-python/test/api/spatial/test_assign_container.py index 4e0ba57666..fcee090724 100644 --- a/src/ifcopenshell-python/test/api/spatial/test_assign_container.py +++ b/src/ifcopenshell-python/test/api/spatial/test_assign_container.py @@ -18,14 +18,15 @@ import numpy import pytest -import test.bootstrap -import ifcopenshell.api.root -import ifcopenshell.api.unit -import ifcopenshell.api.spatial -import ifcopenshell.api.geometry + import ifcopenshell.api.aggregate +import ifcopenshell.api.geometry +import ifcopenshell.api.root +import ifcopenshell.api.spatial +import ifcopenshell.api.unit import ifcopenshell.util.element import ifcopenshell.util.placement +import test.bootstrap class TestAssignContainer(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/spatial/test_dereference_structure.py b/src/ifcopenshell-python/test/api/spatial/test_dereference_structure.py index 9e618033e1..5f9d2b5099 100644 --- a/src/ifcopenshell-python/test/api/spatial/test_dereference_structure.py +++ b/src/ifcopenshell-python/test/api/spatial/test_dereference_structure.py @@ -16,10 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.root import ifcopenshell.api.spatial import ifcopenshell.util.element +import test.bootstrap class TestDereferenceStructure(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/spatial/test_reference_structure.py b/src/ifcopenshell-python/test/api/spatial/test_reference_structure.py index 013b0e4a18..6b5a3daeaa 100644 --- a/src/ifcopenshell-python/test/api/spatial/test_reference_structure.py +++ b/src/ifcopenshell-python/test/api/spatial/test_reference_structure.py @@ -16,10 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.root import ifcopenshell.api.spatial import ifcopenshell.util.element +import test.bootstrap class TestReferenceStructure(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/spatial/test_unassign_container.py b/src/ifcopenshell-python/test/api/spatial/test_unassign_container.py index 795614e35d..2a75a0c9df 100644 --- a/src/ifcopenshell-python/test/api/spatial/test_unassign_container.py +++ b/src/ifcopenshell-python/test/api/spatial/test_unassign_container.py @@ -16,11 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.root import ifcopenshell.api.spatial import ifcopenshell.util.element -import ifcopenshell.util.placement +import test.bootstrap class TestUnassignContainer(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/structural/test_add_structural_analysis_model.py b/src/ifcopenshell-python/test/api/structural/test_add_structural_analysis_model.py index c7c715d1c0..3d19dd50eb 100644 --- a/src/ifcopenshell-python/test/api/structural/test_add_structural_analysis_model.py +++ b/src/ifcopenshell-python/test/api/structural/test_add_structural_analysis_model.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.structural +import test.bootstrap class TestAddStructuralAnalysisModel(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/structural/test_assign_structural_analysis_model.py b/src/ifcopenshell-python/test/api/structural/test_assign_structural_analysis_model.py index da09c38674..867630696b 100644 --- a/src/ifcopenshell-python/test/api/structural/test_assign_structural_analysis_model.py +++ b/src/ifcopenshell-python/test/api/structural/test_assign_structural_analysis_model.py @@ -16,9 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.root import ifcopenshell.api.structural +import test.bootstrap class TestAssignStructuralAnalysisModel(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/structural/test_edit_structural_analysis_model.py b/src/ifcopenshell-python/test/api/structural/test_edit_structural_analysis_model.py index fddb8a9993..6deda5a833 100644 --- a/src/ifcopenshell-python/test/api/structural/test_edit_structural_analysis_model.py +++ b/src/ifcopenshell-python/test/api/structural/test_edit_structural_analysis_model.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.structural +import test.bootstrap class TestEditStructuralAnalysisModel(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/structural/test_remove_structural_analysis_model.py b/src/ifcopenshell-python/test/api/structural/test_remove_structural_analysis_model.py index b496dcc9a1..c330be81cb 100644 --- a/src/ifcopenshell-python/test/api/structural/test_remove_structural_analysis_model.py +++ b/src/ifcopenshell-python/test/api/structural/test_remove_structural_analysis_model.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.structural +import test.bootstrap class TestRemoveStructuralAnalysisModel(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/structural/test_unassign_structural_analysis_model.py b/src/ifcopenshell-python/test/api/structural/test_unassign_structural_analysis_model.py index c80842b7ad..43992acd3c 100644 --- a/src/ifcopenshell-python/test/api/structural/test_unassign_structural_analysis_model.py +++ b/src/ifcopenshell-python/test/api/structural/test_unassign_structural_analysis_model.py @@ -16,9 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.root import ifcopenshell.api.structural +import test.bootstrap class TestUnassignStructuralAnalysisModel(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/style/test_add_surface_style.py b/src/ifcopenshell-python/test/api/style/test_add_surface_style.py index 83f176a690..dcfd42fd2c 100644 --- a/src/ifcopenshell-python/test/api/style/test_add_surface_style.py +++ b/src/ifcopenshell-python/test/api/style/test_add_surface_style.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.style +import test.bootstrap class TestAddSurfaceStyle(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/style/test_add_surface_textures.py b/src/ifcopenshell-python/test/api/style/test_add_surface_textures.py index 78971148d7..aa7d011adc 100644 --- a/src/ifcopenshell-python/test/api/style/test_add_surface_textures.py +++ b/src/ifcopenshell-python/test/api/style/test_add_surface_textures.py @@ -16,9 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest -import test.bootstrap + import ifcopenshell.api.style +import test.bootstrap # TODO: add ifc2x3 tests after add_surface_textures will support ifc2x3 diff --git a/src/ifcopenshell-python/test/api/style/test_assign_material_style.py b/src/ifcopenshell-python/test/api/style/test_assign_material_style.py index 47f26ee6ac..40e82d7ac2 100644 --- a/src/ifcopenshell-python/test/api/style/test_assign_material_style.py +++ b/src/ifcopenshell-python/test/api/style/test_assign_material_style.py @@ -16,11 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell +import ifcopenshell.api.material import ifcopenshell.api.root import ifcopenshell.api.style -import ifcopenshell.api.material +import test.bootstrap class TestAssignMaterialStyleIFC2X3(test.bootstrap.IFC2X3): diff --git a/src/ifcopenshell-python/test/api/style/test_assign_representation_styles.py b/src/ifcopenshell-python/test/api/style/test_assign_representation_styles.py index 9527813291..0dbe2b51ad 100644 --- a/src/ifcopenshell-python/test/api/style/test_assign_representation_styles.py +++ b/src/ifcopenshell-python/test/api/style/test_assign_representation_styles.py @@ -16,10 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell import ifcopenshell.api.root import ifcopenshell.api.style +import test.bootstrap class TestAssignRepresentationStyles(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/style/test_edit_surface_style.py b/src/ifcopenshell-python/test/api/style/test_edit_surface_style.py index 5875396a7a..b8fc7e241b 100644 --- a/src/ifcopenshell-python/test/api/style/test_edit_surface_style.py +++ b/src/ifcopenshell-python/test/api/style/test_edit_surface_style.py @@ -17,8 +17,9 @@ # along with IfcOpenShell. If not, see . import pytest -import test.bootstrap + import ifcopenshell.api.style +import test.bootstrap class TestEditSurfaceStyle(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/style/test_remove_style.py b/src/ifcopenshell-python/test/api/style/test_remove_style.py index 1993ef3cf3..04faee3b25 100644 --- a/src/ifcopenshell-python/test/api/style/test_remove_style.py +++ b/src/ifcopenshell-python/test/api/style/test_remove_style.py @@ -16,10 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest -import test.bootstrap + import ifcopenshell.api.material import ifcopenshell.api.style +import test.bootstrap class TestRemoveStyle(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/style/test_remove_surface_style.py b/src/ifcopenshell-python/test/api/style/test_remove_surface_style.py index 14f8173a3a..25affe54a4 100644 --- a/src/ifcopenshell-python/test/api/style/test_remove_surface_style.py +++ b/src/ifcopenshell-python/test/api/style/test_remove_surface_style.py @@ -16,9 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest -import test.bootstrap + import ifcopenshell.api.style +import test.bootstrap class TestRemoveSurfaceStyleIFC2X3(test.bootstrap.IFC2X3): diff --git a/src/ifcopenshell-python/test/api/style/test_unassign_material_style.py b/src/ifcopenshell-python/test/api/style/test_unassign_material_style.py index b009de1616..6a3fad0c20 100644 --- a/src/ifcopenshell-python/test/api/style/test_unassign_material_style.py +++ b/src/ifcopenshell-python/test/api/style/test_unassign_material_style.py @@ -16,11 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell +import ifcopenshell.api.material import ifcopenshell.api.root import ifcopenshell.api.style -import ifcopenshell.api.material +import test.bootstrap class TestUnassignMaterialStyleIFC2X3(test.bootstrap.IFC2X3): diff --git a/src/ifcopenshell-python/test/api/style/test_unassign_representation_styles.py b/src/ifcopenshell-python/test/api/style/test_unassign_representation_styles.py index 2138f6cb9b..45bf852947 100644 --- a/src/ifcopenshell-python/test/api/style/test_unassign_representation_styles.py +++ b/src/ifcopenshell-python/test/api/style/test_unassign_representation_styles.py @@ -16,10 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell import ifcopenshell.api.root import ifcopenshell.api.style +import test.bootstrap class TestUnassignRepresentationStyles(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/system/test_add_port.py b/src/ifcopenshell-python/test/api/system/test_add_port.py index c2c420427c..ff8163fa15 100644 --- a/src/ifcopenshell-python/test/api/system/test_add_port.py +++ b/src/ifcopenshell-python/test/api/system/test_add_port.py @@ -16,10 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.root import ifcopenshell.api.system import ifcopenshell.util.system +import test.bootstrap class TestAddPort(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/system/test_add_system.py b/src/ifcopenshell-python/test/api/system/test_add_system.py index 8d98d5c3dd..1801a2332a 100644 --- a/src/ifcopenshell-python/test/api/system/test_add_system.py +++ b/src/ifcopenshell-python/test/api/system/test_add_system.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.system +import test.bootstrap class TestAddSystem(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/system/test_assign_flow_control.py b/src/ifcopenshell-python/test/api/system/test_assign_flow_control.py index e3d1df3bec..4ce38defa7 100644 --- a/src/ifcopenshell-python/test/api/system/test_assign_flow_control.py +++ b/src/ifcopenshell-python/test/api/system/test_assign_flow_control.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.system +import test.bootstrap class TestAssignFlowControl(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/system/test_assign_port.py b/src/ifcopenshell-python/test/api/system/test_assign_port.py index d17f2775d8..650496f875 100644 --- a/src/ifcopenshell-python/test/api/system/test_assign_port.py +++ b/src/ifcopenshell-python/test/api/system/test_assign_port.py @@ -17,13 +17,14 @@ # along with IfcOpenShell. If not, see . import numpy -import test.bootstrap -import ifcopenshell.api.unit + +import ifcopenshell.api.geometry import ifcopenshell.api.root import ifcopenshell.api.system -import ifcopenshell.api.geometry +import ifcopenshell.api.unit import ifcopenshell.util.placement import ifcopenshell.util.system +import test.bootstrap class TestAssignPort(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/system/test_assign_system.py b/src/ifcopenshell-python/test/api/system/test_assign_system.py index 22c26d9214..e262419d13 100644 --- a/src/ifcopenshell-python/test/api/system/test_assign_system.py +++ b/src/ifcopenshell-python/test/api/system/test_assign_system.py @@ -17,10 +17,11 @@ # along with IfcOpenShell. If not, see . import pytest -import test.bootstrap + import ifcopenshell.api.root import ifcopenshell.api.system import ifcopenshell.util.system +import test.bootstrap class TestAssignSystem(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/system/test_connect_port.py b/src/ifcopenshell-python/test/api/system/test_connect_port.py index 8dd19d47fa..53975b5fd9 100644 --- a/src/ifcopenshell-python/test/api/system/test_connect_port.py +++ b/src/ifcopenshell-python/test/api/system/test_connect_port.py @@ -16,10 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.root import ifcopenshell.api.system -import ifcopenshell.util.system +import test.bootstrap class TestConnectPort(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/system/test_disconnect_port.py b/src/ifcopenshell-python/test/api/system/test_disconnect_port.py index a34fdfc615..1d711bdd2c 100644 --- a/src/ifcopenshell-python/test/api/system/test_disconnect_port.py +++ b/src/ifcopenshell-python/test/api/system/test_disconnect_port.py @@ -16,9 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.system -import ifcopenshell.util.system +import test.bootstrap class TestDisconnectPort(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/system/test_remove_system.py b/src/ifcopenshell-python/test/api/system/test_remove_system.py index 44e00987d6..c347ae09a0 100644 --- a/src/ifcopenshell-python/test/api/system/test_remove_system.py +++ b/src/ifcopenshell-python/test/api/system/test_remove_system.py @@ -16,10 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api.root import ifcopenshell.api.pset +import ifcopenshell.api.root import ifcopenshell.api.system +import test.bootstrap class TestRemoveSystem(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/system/test_unassign_flow_control.py b/src/ifcopenshell-python/test/api/system/test_unassign_flow_control.py index 22d2559561..afc20789fd 100644 --- a/src/ifcopenshell-python/test/api/system/test_unassign_flow_control.py +++ b/src/ifcopenshell-python/test/api/system/test_unassign_flow_control.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.system +import test.bootstrap class TestUnassignFlowControl(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/system/test_unassign_port.py b/src/ifcopenshell-python/test/api/system/test_unassign_port.py index b49de25f9a..711b17eeeb 100644 --- a/src/ifcopenshell-python/test/api/system/test_unassign_port.py +++ b/src/ifcopenshell-python/test/api/system/test_unassign_port.py @@ -16,10 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.root import ifcopenshell.api.system import ifcopenshell.util.system +import test.bootstrap class TestAssignPort(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/system/test_unassign_system.py b/src/ifcopenshell-python/test/api/system/test_unassign_system.py index 8503dd82c3..3db260b5ab 100644 --- a/src/ifcopenshell-python/test/api/system/test_unassign_system.py +++ b/src/ifcopenshell-python/test/api/system/test_unassign_system.py @@ -16,11 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest -import test.bootstrap + import ifcopenshell.api.root import ifcopenshell.api.system import ifcopenshell.util.system +import test.bootstrap class TestUnassignSystem(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/test_api.py b/src/ifcopenshell-python/test/api/test_api.py index 8dca81d32f..7036f93528 100644 --- a/src/ifcopenshell-python/test/api/test_api.py +++ b/src/ifcopenshell-python/test/api/test_api.py @@ -16,15 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from datetime import datetime + +import ifcopenshell.api.control import ifcopenshell.api.cost import ifcopenshell.api.root -import test.bootstrap -import ifcopenshell.api -import ifcopenshell.api.control -import ifcopenshell.api.sequence import ifcopenshell.util.element -from datetime import datetime -from typing import Union +import test.bootstrap def deprecation_check(test): diff --git a/src/ifcopenshell-python/test/api/type/test_assign_type.py b/src/ifcopenshell-python/test/api/type/test_assign_type.py index 21df8c8bba..009d4efedf 100644 --- a/src/ifcopenshell-python/test/api/type/test_assign_type.py +++ b/src/ifcopenshell-python/test/api/type/test_assign_type.py @@ -16,14 +16,15 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap +import pytest + +import ifcopenshell.api.geometry +import ifcopenshell.api.material import ifcopenshell.api.root import ifcopenshell.api.type -import ifcopenshell.api.material -import ifcopenshell.api.geometry import ifcopenshell.util.element import ifcopenshell.util.representation -import pytest +import test.bootstrap class TestAssignType(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/type/test_map_type_representation.py b/src/ifcopenshell-python/test/api/type/test_map_type_representation.py index cd52591fd7..520c22e5f3 100644 --- a/src/ifcopenshell-python/test/api/type/test_map_type_representation.py +++ b/src/ifcopenshell-python/test/api/type/test_map_type_representation.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.type +import test.bootstrap class TestMapTypeRepresentations(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/type/test_unassign_type.py b/src/ifcopenshell-python/test/api/type/test_unassign_type.py index c37ae7214d..3f5adf1148 100644 --- a/src/ifcopenshell-python/test/api/type/test_unassign_type.py +++ b/src/ifcopenshell-python/test/api/type/test_unassign_type.py @@ -16,12 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap +import ifcopenshell.api.geometry +import ifcopenshell.api.material import ifcopenshell.api.root import ifcopenshell.api.type -import ifcopenshell.api.material -import ifcopenshell.api.geometry import ifcopenshell.util.element +import test.bootstrap class TestUnassignType(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/unit/test_add_context_dependent_unit.py b/src/ifcopenshell-python/test/api/unit/test_add_context_dependent_unit.py index 705a2f0815..567d2cfd7a 100644 --- a/src/ifcopenshell-python/test/api/unit/test_add_context_dependent_unit.py +++ b/src/ifcopenshell-python/test/api/unit/test_add_context_dependent_unit.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.unit +import test.bootstrap class TestAddContextDependentUnit(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/unit/test_add_conversion_based_unit.py b/src/ifcopenshell-python/test/api/unit/test_add_conversion_based_unit.py index 03a8a7edfd..2286be6df1 100644 --- a/src/ifcopenshell-python/test/api/unit/test_add_conversion_based_unit.py +++ b/src/ifcopenshell-python/test/api/unit/test_add_conversion_based_unit.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.unit +import test.bootstrap class TestAddConversionBasedUnitIFC2X3(test.bootstrap.IFC2X3): @@ -40,6 +40,54 @@ class TestAddConversionBasedUnitIFC2X3(test.bootstrap.IFC2X3): assert si_unit.Prefix is None assert si_unit.Name == "METRE" + def test_adding_mass_units_creates_proper_massunit(self): + mass_units = [ + ("tonne", 1000.0), + ("pound", 0.454), + ("ounce", 0.02835), + ("ton UK", 1016.0469088), + ("ton US", 907.18474), + ] + + for name, expected_conversion in mass_units: + unit = ifcopenshell.api.unit.add_conversion_based_unit(self.file, name=name) + + assert unit.is_a("IfcConversionBasedUnit") + assert unit.UnitType == "MASSUNIT" + assert unit.Name == name + + actual_conversion = unit.ConversionFactor.ValueComponent.wrappedValue + assert actual_conversion == expected_conversion + + target_unit = unit.ConversionFactor.UnitComponent + assert target_unit.is_a("IfcSIUnit") + assert target_unit.UnitType == "MASSUNIT" + assert target_unit.Name == "GRAM" + assert target_unit.Prefix == "KILO" + + def test_adding_time_units_creates_proper_timeunit(self): + time_units = [ + ("minute", 60), + ("hour", 3600), + ("day", 86400), + ] + + for name, expected_conversion in time_units: + unit = ifcopenshell.api.unit.add_conversion_based_unit(self.file, name=name) + + assert unit.is_a("IfcConversionBasedUnit") + assert unit.UnitType == "TIMEUNIT" + assert unit.Name == name + + actual_conversion = unit.ConversionFactor.ValueComponent.wrappedValue + assert actual_conversion == expected_conversion + + target_unit = unit.ConversionFactor.UnitComponent + assert target_unit.is_a("IfcSIUnit") + assert target_unit.UnitType == "TIMEUNIT" + assert target_unit.Name == "SECOND" + assert target_unit.Prefix is None + class TestAddConversionBasedUnitIFC4(test.bootstrap.IFC4, TestAddConversionBasedUnitIFC2X3): def test_adding_a_unit_with_offset(self): @@ -61,3 +109,8 @@ class TestAddConversionBasedUnitIFC4(test.bootstrap.IFC4, TestAddConversionBased assert si_unit.Prefix is None assert si_unit.Name == "KELVIN" assert unit.ConversionOffset == -459.67 + + def test_unknown_units_fall_back_to_userdefined(self): + unknown_unit = ifcopenshell.api.unit.add_conversion_based_unit(self.file, name="unknown_unit") + assert unknown_unit.UnitType == "USERDEFINED" + assert unknown_unit.Name == "unknown_unit" diff --git a/src/ifcopenshell-python/test/api/unit/test_add_monetary_unit.py b/src/ifcopenshell-python/test/api/unit/test_add_monetary_unit.py index 3d3e44bfe4..0e11f29882 100644 --- a/src/ifcopenshell-python/test/api/unit/test_add_monetary_unit.py +++ b/src/ifcopenshell-python/test/api/unit/test_add_monetary_unit.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.unit +import test.bootstrap class TestAddMonetaryUnit(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/unit/test_add_si_unit.py b/src/ifcopenshell-python/test/api/unit/test_add_si_unit.py index f618f9871e..b12cbd16ca 100644 --- a/src/ifcopenshell-python/test/api/unit/test_add_si_unit.py +++ b/src/ifcopenshell-python/test/api/unit/test_add_si_unit.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.unit +import test.bootstrap class TestAddSIUnit(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/unit/test_assign_unit.py b/src/ifcopenshell-python/test/api/unit/test_assign_unit.py index 21a136b257..66cee04442 100644 --- a/src/ifcopenshell-python/test/api/unit/test_assign_unit.py +++ b/src/ifcopenshell-python/test/api/unit/test_assign_unit.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.unit +import test.bootstrap class TestAssignUnit(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/unit/test_edit_derived_unit.py b/src/ifcopenshell-python/test/api/unit/test_edit_derived_unit.py index 679f5602b7..c97d55b407 100644 --- a/src/ifcopenshell-python/test/api/unit/test_edit_derived_unit.py +++ b/src/ifcopenshell-python/test/api/unit/test_edit_derived_unit.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.unit +import test.bootstrap class TestEditDerivedUnit(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/unit/test_edit_monetary_unit.py b/src/ifcopenshell-python/test/api/unit/test_edit_monetary_unit.py index d956b2fb04..a8bba121c0 100644 --- a/src/ifcopenshell-python/test/api/unit/test_edit_monetary_unit.py +++ b/src/ifcopenshell-python/test/api/unit/test_edit_monetary_unit.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.unit +import test.bootstrap class TestEditMonetaryUnit(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/unit/test_edit_named_unit.py b/src/ifcopenshell-python/test/api/unit/test_edit_named_unit.py index cc99e69eae..6f861f9cd8 100644 --- a/src/ifcopenshell-python/test/api/unit/test_edit_named_unit.py +++ b/src/ifcopenshell-python/test/api/unit/test_edit_named_unit.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.unit +import test.bootstrap class TestEditNamedUnitIFC2X3(test.bootstrap.IFC2X3): diff --git a/src/ifcopenshell-python/test/api/unit/test_remove_unit.py b/src/ifcopenshell-python/test/api/unit/test_remove_unit.py index 5b3ab7bcc4..02df1ec562 100644 --- a/src/ifcopenshell-python/test/api/unit/test_remove_unit.py +++ b/src/ifcopenshell-python/test/api/unit/test_remove_unit.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.unit +import test.bootstrap class TestRemoveUnit(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/api/unit/test_unassign_unit.py b/src/ifcopenshell-python/test/api/unit/test_unassign_unit.py index 5a101e2018..a30a9570a9 100644 --- a/src/ifcopenshell-python/test/api/unit/test_unassign_unit.py +++ b/src/ifcopenshell-python/test/api/unit/test_unassign_unit.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.unit +import test.bootstrap class TestUnassignUnit(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/bootstrap.py b/src/ifcopenshell-python/test/bootstrap.py index 055ea8774a..1342be206c 100644 --- a/src/ifcopenshell-python/test/bootstrap.py +++ b/src/ifcopenshell-python/test/bootstrap.py @@ -26,9 +26,10 @@ if os.path.abspath(os.path.join(os.path.dirname(__file__), "..")) == sys.path[0] import pytest + import ifcopenshell -import ifcopenshell.api.project import ifcopenshell.api.owner.settings +import ifcopenshell.api.project class IFC4X3: diff --git a/src/ifcopenshell-python/test/file_gc.py b/src/ifcopenshell-python/test/file_gc.py index f28256a3d0..483c268e17 100644 --- a/src/ifcopenshell-python/test/file_gc.py +++ b/src/ifcopenshell-python/test/file_gc.py @@ -1,14 +1,16 @@ -import os -import pytest -import weakref import itertools +import os +import weakref + +import pytest + import ifcopenshell -import ifcopenshell.guid -import ifcopenshell.api.pset +import ifcopenshell.api.attribute +import ifcopenshell.api.material import ifcopenshell.api.owner import ifcopenshell.api.project -import ifcopenshell.api.material -import ifcopenshell.api.attribute +import ifcopenshell.api.pset +import ifcopenshell.guid import ifcopenshell.template diff --git a/src/ifcopenshell-python/test/fixtures/rules/fail-property-list-value-distinct-value-types.ifc b/src/ifcopenshell-python/test/fixtures/rules/fail-property-list-value-distinct-value-types.ifc new file mode 100644 index 0000000000..2da9e30c9c --- /dev/null +++ b/src/ifcopenshell-python/test/fixtures/rules/fail-property-list-value-distinct-value-types.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2025-12-24T14:25:45',(''),(''),'IfcOpenShell 0.8.0','IfcOpenShell 0.8.0',''); +FILE_SCHEMA(('IFC4X3_ADD2')); +ENDSEC; +DATA; +#1=IFCPROPERTYLISTVALUE('Test',$,(IFCLABEL('test1'),IFCINTEGER(2)),$); +ENDSEC; +END-ISO-10303-21; diff --git a/src/ifcopenshell-python/test/fixtures/rules/generate_00.py b/src/ifcopenshell-python/test/fixtures/rules/generate_00.py index 251f501bec..e50e20a81e 100644 --- a/src/ifcopenshell-python/test/fixtures/rules/generate_00.py +++ b/src/ifcopenshell-python/test/fixtures/rules/generate_00.py @@ -1,4 +1,5 @@ import time + import ifcopenshell for i in range(3): diff --git a/src/ifcopenshell-python/test/fixtures/rules/generate_02.py b/src/ifcopenshell-python/test/fixtures/rules/generate_02.py index 298fee7eba..5747fa589f 100644 --- a/src/ifcopenshell-python/test/fixtures/rules/generate_02.py +++ b/src/ifcopenshell-python/test/fixtures/rules/generate_02.py @@ -1,4 +1,5 @@ import time + import ifcopenshell latitudes = [ diff --git a/src/ifcopenshell-python/test/fixtures/rules/generate_06.py b/src/ifcopenshell-python/test/fixtures/rules/generate_06.py index b36c5108cb..fd9cca7153 100644 --- a/src/ifcopenshell-python/test/fixtures/rules/generate_06.py +++ b/src/ifcopenshell-python/test/fixtures/rules/generate_06.py @@ -1,5 +1,6 @@ import itertools import time + import ifcopenshell for pty, ety in itertools.product(("GRILLE", "USERDEFINED"), (None, "Something")): diff --git a/src/ifcopenshell-python/test/fixtures/rules/generate_10.py b/src/ifcopenshell-python/test/fixtures/rules/generate_10.py index b717411dfd..f4ac7209e8 100644 --- a/src/ifcopenshell-python/test/fixtures/rules/generate_10.py +++ b/src/ifcopenshell-python/test/fixtures/rules/generate_10.py @@ -1,4 +1,5 @@ import itertools + import ifcopenshell defaults = {"Girth": 1.0, "WallThickness": 0.11} diff --git a/src/ifcopenshell-python/test/fixtures/rules/generate_16.py b/src/ifcopenshell-python/test/fixtures/rules/generate_16.py index 7b6a32dfb1..88964b17ff 100644 --- a/src/ifcopenshell-python/test/fixtures/rules/generate_16.py +++ b/src/ifcopenshell-python/test/fixtures/rules/generate_16.py @@ -1,4 +1,5 @@ import time + import ifcopenshell names = [("Same", "Same"), ("Different", "SomethingElse")] diff --git a/src/ifcopenshell-python/test/fixtures/rules/generate_17.py b/src/ifcopenshell-python/test/fixtures/rules/generate_17.py index 2daa8b3b38..c313ac93a1 100644 --- a/src/ifcopenshell-python/test/fixtures/rules/generate_17.py +++ b/src/ifcopenshell-python/test/fixtures/rules/generate_17.py @@ -1,4 +1,5 @@ import time + import ifcopenshell for i, nm in enumerate(("no-mls", "mls", "mlsu")): diff --git a/src/ifcopenshell-python/test/fixtures/rules/generate_21.py b/src/ifcopenshell-python/test/fixtures/rules/generate_21.py index f5fcc68b71..0d99acc560 100644 --- a/src/ifcopenshell-python/test/fixtures/rules/generate_21.py +++ b/src/ifcopenshell-python/test/fixtures/rules/generate_21.py @@ -1,4 +1,5 @@ import itertools + import ifcopenshell diff --git a/src/ifcopenshell-python/test/fixtures/rules/generate_24.py b/src/ifcopenshell-python/test/fixtures/rules/generate_24.py index c790a6103d..f792a169f6 100644 --- a/src/ifcopenshell-python/test/fixtures/rules/generate_24.py +++ b/src/ifcopenshell-python/test/fixtures/rules/generate_24.py @@ -1,4 +1,5 @@ import time + import ifcopenshell for ents in [ diff --git a/src/ifcopenshell-python/test/fixtures/rules/pass-property-list-value-label-values.ifc b/src/ifcopenshell-python/test/fixtures/rules/pass-property-list-value-label-values.ifc new file mode 100644 index 0000000000..848e9a55b9 --- /dev/null +++ b/src/ifcopenshell-python/test/fixtures/rules/pass-property-list-value-label-values.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2025-12-24T14:25:45',(''),(''),'IfcOpenShell 0.8.0','IfcOpenShell 0.8.0',''); +FILE_SCHEMA(('IFC4X3_ADD2')); +ENDSEC; +DATA; +#1=IFCPROPERTYLISTVALUE('Test',$,(IFCLABEL('test1'),IFCLABEL('test2')),$); +ENDSEC; +END-ISO-10303-21; diff --git a/src/ifcopenshell-python/test/fixtures/rules/pass-property-list-value-nil-values.ifc b/src/ifcopenshell-python/test/fixtures/rules/pass-property-list-value-nil-values.ifc new file mode 100644 index 0000000000..cb57393ca9 --- /dev/null +++ b/src/ifcopenshell-python/test/fixtures/rules/pass-property-list-value-nil-values.ifc @@ -0,0 +1,10 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1'); +FILE_NAME('','2025-12-24T14:25:45',(''),(''),'IfcOpenShell 0.8.0','IfcOpenShell 0.8.0',''); +FILE_SCHEMA(('IFC4X3_ADD2')); +ENDSEC; +DATA; +#1=IFCPROPERTYLISTVALUE('Test',$,$,$); +ENDSEC; +END-ISO-10303-21; diff --git a/src/ifcopenshell-python/test/fixtures/validate/generate_00.py b/src/ifcopenshell-python/test/fixtures/validate/generate_00.py index 082804fa26..3d6db0620e 100644 --- a/src/ifcopenshell-python/test/fixtures/validate/generate_00.py +++ b/src/ifcopenshell-python/test/fixtures/validate/generate_00.py @@ -1,8 +1,8 @@ -import ifcopenshell -import ifcopenshell.api.root -import ifcopenshell.api.owner from pathlib import Path +import ifcopenshell +import ifcopenshell.api.owner +import ifcopenshell.api.root guid1 = "3pdqyORIn8KBHZAhhtJ72T" guid2 = "1sEzC8v31DshmvW5t5P631" diff --git a/src/ifcopenshell-python/test/geom/geometry_tests.py b/src/ifcopenshell-python/test/geom/geometry_tests.py index d84ef3e9ea..744bf432fc 100644 --- a/src/ifcopenshell-python/test/geom/geometry_tests.py +++ b/src/ifcopenshell-python/test/geom/geometry_tests.py @@ -16,11 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell +import numpy as np + import ifcopenshell.geom import ifcopenshell.util.shape import test.bootstrap -import numpy as np from ifcopenshell.util.shape_builder import ShapeBuilder, V diff --git a/src/ifcopenshell-python/test/geom/polyhedral_shapes.py b/src/ifcopenshell-python/test/geom/polyhedral_shapes.py index 2e58809f71..c844c961e2 100644 --- a/src/ifcopenshell-python/test/geom/polyhedral_shapes.py +++ b/src/ifcopenshell-python/test/geom/polyhedral_shapes.py @@ -1,12 +1,10 @@ import collections import numpy as np -import ifcopenshell -import ifcopenshell.geom - import pytest -from test.bootstrap import file +import ifcopenshell +import ifcopenshell.geom @pytest.mark.parametrize("file", ["geom/polygonal-face-tessellation.ifc"], indirect=True) diff --git a/src/ifcopenshell-python/test/geom/settings.py b/src/ifcopenshell-python/test/geom/settings.py index c4e24b2027..3ede93b941 100644 --- a/src/ifcopenshell-python/test/geom/settings.py +++ b/src/ifcopenshell-python/test/geom/settings.py @@ -17,6 +17,7 @@ # along with IfcOpenShell. If not, see . import numpy as np + import ifcopenshell import ifcopenshell.api.context import ifcopenshell.api.geometry @@ -24,7 +25,6 @@ import ifcopenshell.api.profile import ifcopenshell.api.root import ifcopenshell.api.unit import ifcopenshell.geom -import ifcopenshell.geom import ifcopenshell.util.unit import test.bootstrap from ifcopenshell.util.shape_builder import ShapeBuilder diff --git a/src/ifcopenshell-python/test/geom/stats.py b/src/ifcopenshell-python/test/geom/stats.py index fd0cd8e337..88f9b64345 100644 --- a/src/ifcopenshell-python/test/geom/stats.py +++ b/src/ifcopenshell-python/test/geom/stats.py @@ -1,8 +1,9 @@ import os -import ifcopenshell -from ifcopenshell.geom.stats import StatsCollector + import pytest +from ifcopenshell.geom.stats import StatsCollector + @pytest.mark.parametrize( "file", diff --git a/src/ifcopenshell-python/test/geom/test_sweeps.py b/src/ifcopenshell-python/test/geom/test_sweeps.py index d77faec540..ac2b2faf6f 100644 --- a/src/ifcopenshell-python/test/geom/test_sweeps.py +++ b/src/ifcopenshell-python/test/geom/test_sweeps.py @@ -1,9 +1,10 @@ import pathlib from collections.abc import Sequence -import ifcopenshell import pytest +import ifcopenshell + def _bbox_from_vertices(verts: list[tuple[float, float, float]]): if not verts: diff --git a/src/ifcopenshell-python/test/global_id_updates.py b/src/ifcopenshell-python/test/global_id_updates.py index 40b548f8c6..c128eef4a5 100644 --- a/src/ifcopenshell-python/test/global_id_updates.py +++ b/src/ifcopenshell-python/test/global_id_updates.py @@ -1,4 +1,5 @@ import pytest + import ifcopenshell import ifcopenshell.guid diff --git a/src/ifcopenshell-python/test/instance_string_formatting.py b/src/ifcopenshell-python/test/instance_string_formatting.py index 2d85e99d26..6f5a096a57 100644 --- a/src/ifcopenshell-python/test/instance_string_formatting.py +++ b/src/ifcopenshell-python/test/instance_string_formatting.py @@ -1,4 +1,5 @@ import pytest + import ifcopenshell import ifcopenshell.guid diff --git a/src/ifcopenshell-python/test/test_create_shape.py b/src/ifcopenshell-python/test/test_create_shape.py index bc743217bf..dfcb68c7be 100644 --- a/src/ifcopenshell-python/test/test_create_shape.py +++ b/src/ifcopenshell-python/test/test_create_shape.py @@ -3,8 +3,10 @@ import itertools import multiprocessing import operator import os +from typing import get_args + import pytest -import test.bootstrap + import ifcopenshell import ifcopenshell.api.context import ifcopenshell.api.owner.settings @@ -14,8 +16,8 @@ import ifcopenshell.api.unit import ifcopenshell.geom import ifcopenshell.ifcopenshell_wrapper as W import ifcopenshell.util.shape +import test.bootstrap from ifcopenshell.util.shape_builder import ShapeBuilder -from typing import get_args fn = os.path.join(os.path.dirname(__file__), "fixtures/ColumnPSetsOfSets.ifc") diff --git a/src/ifcopenshell-python/test/test_entity_instance.py b/src/ifcopenshell-python/test/test_entity_instance.py index 6af57585d0..cf4c050320 100644 --- a/src/ifcopenshell-python/test/test_entity_instance.py +++ b/src/ifcopenshell-python/test/test_entity_instance.py @@ -16,11 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest + import test.bootstrap -import ifcopenshell -import ifcopenshell.api -import ifcopenshell.util.element class TestGetInfo2(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/test_file.py b/src/ifcopenshell-python/test/test_file.py index 31c77cd6e6..c2c0aa54ea 100644 --- a/src/ifcopenshell-python/test/test_file.py +++ b/src/ifcopenshell-python/test/test_file.py @@ -17,10 +17,9 @@ # along with IfcOpenShell. If not, see . import pytest -import test.bootstrap + import ifcopenshell -import ifcopenshell.api -import ifcopenshell.util.element +import test.bootstrap class TestTransaction(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/test_file_inverse.py b/src/ifcopenshell-python/test/test_file_inverse.py index 9d385ff0f0..af2e0d8a31 100644 --- a/src/ifcopenshell-python/test/test_file_inverse.py +++ b/src/ifcopenshell-python/test/test_file_inverse.py @@ -1,11 +1,6 @@ -import gc -import sys import pytest -import pprint -import weakref -import itertools + import ifcopenshell -import ifcopenshell.api def test_inverse_indices(): diff --git a/src/ifcopenshell-python/test/test_guid.py b/src/ifcopenshell-python/test/test_guid.py index 53af52bbed..ff361a2d77 100644 --- a/src/ifcopenshell-python/test/test_guid.py +++ b/src/ifcopenshell-python/test/test_guid.py @@ -20,15 +20,14 @@ # IMPORTS # ---------------------------------------------------------------- +import string from functools import reduce from unittest import TestCase -from pytest import mark -from pytest import fixture from uuid import uuid4 -import string -from ifcopenshell.guid import compress -from ifcopenshell.guid import expand +from pytest import fixture, mark + +from ifcopenshell.guid import compress, expand # ---------------------------------------------------------------- # FIXTURES diff --git a/src/ifcopenshell-python/test/test_mvd_info.py b/src/ifcopenshell-python/test/test_mvd_info.py index 80fe2f2154..7ba33481e6 100644 --- a/src/ifcopenshell-python/test/test_mvd_info.py +++ b/src/ifcopenshell-python/test/test_mvd_info.py @@ -1,5 +1,7 @@ import os + import pytest + import ifcopenshell from ifcopenshell.util import mvd_info from ifcopenshell.util.mvd_info import parse_mvd diff --git a/src/ifcopenshell-python/test/test_open.py b/src/ifcopenshell-python/test/test_open.py index 99f312c76e..7525adaa72 100644 --- a/src/ifcopenshell-python/test/test_open.py +++ b/src/ifcopenshell-python/test/test_open.py @@ -17,9 +17,10 @@ # along with IfcOpenShell. If not, see . from pathlib import Path -import pytest -import ifcopenshell +import pytest + +import ifcopenshell TEST_FILE_DIR = Path(__file__).parent / "../../../test/input/" diff --git a/src/ifcopenshell-python/test/test_package.py b/src/ifcopenshell-python/test/test_package.py index 137c1079bf..b251e081c7 100644 --- a/src/ifcopenshell-python/test/test_package.py +++ b/src/ifcopenshell-python/test/test_package.py @@ -17,11 +17,12 @@ # along with IfcOpenShell. If not, see . import http.client -from pathlib import Path from collections.abc import Sequence -from typing_extensions import assert_never +from pathlib import Path from urllib.parse import urlparse +from typing_extensions import assert_never + try: from bs4 import BeautifulSoup except: diff --git a/src/ifcopenshell-python/test/test_rules.py b/src/ifcopenshell-python/test/test_rules.py index a54e98ed68..9754405626 100644 --- a/src/ifcopenshell-python/test/test_rules.py +++ b/src/ifcopenshell-python/test/test_rules.py @@ -1,12 +1,12 @@ +import glob import os import sys -import glob import pytest import tabulate -import ifcopenshell.validate import ifcopenshell.express.rule_executor +import ifcopenshell.validate @pytest.mark.parametrize( diff --git a/src/ifcopenshell-python/test/test_sql.py b/src/ifcopenshell-python/test/test_sql.py index 6d6c85786c..39cf4c2583 100644 --- a/src/ifcopenshell-python/test/test_sql.py +++ b/src/ifcopenshell-python/test/test_sql.py @@ -17,11 +17,12 @@ # along with IfcOpenShell. If not, see . import tempfile -import ifcpatch -import ifcopenshell from pathlib import Path + from ifcpatch.recipes import Ifc2Sql +import ifcopenshell + TEST_FILE = Path(__file__).parent / "files" / "basic.ifc" SQLITE_PATH = None diff --git a/src/ifcopenshell-python/test/test_stream.py b/src/ifcopenshell-python/test/test_stream.py index e425fd1583..754fcc4527 100644 --- a/src/ifcopenshell-python/test/test_stream.py +++ b/src/ifcopenshell-python/test/test_stream.py @@ -16,11 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest -import test.bootstrap -import ifcopenshell from pathlib import Path +import ifcopenshell + TEST_FILE = Path(__file__).parent / "files" / "basic.ifc" diff --git a/src/ifcopenshell-python/test/test_streaming_rocksdb_and_simpletyperefs.py b/src/ifcopenshell-python/test/test_streaming_rocksdb_and_simpletyperefs.py index b0bfb2925a..32ea728df9 100644 --- a/src/ifcopenshell-python/test/test_streaming_rocksdb_and_simpletyperefs.py +++ b/src/ifcopenshell-python/test/test_streaming_rocksdb_and_simpletyperefs.py @@ -19,10 +19,12 @@ import gc import os import struct -import pytest -import ifcopenshell import tempfile +import pytest + +import ifcopenshell + try: import psutil except ImportError: diff --git a/src/ifcopenshell-python/test/test_validate.py b/src/ifcopenshell-python/test/test_validate.py index 16b12f223d..d3eff78f33 100644 --- a/src/ifcopenshell-python/test/test_validate.py +++ b/src/ifcopenshell-python/test/test_validate.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import os import glob +import os import pytest diff --git a/src/ifcopenshell-python/test/test_validate_rocksdb.py b/src/ifcopenshell-python/test/test_validate_rocksdb.py index 203d0ed2a4..64c010938b 100644 --- a/src/ifcopenshell-python/test/test_validate_rocksdb.py +++ b/src/ifcopenshell-python/test/test_validate_rocksdb.py @@ -16,10 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import os import glob +import os import tempfile -import time import pytest diff --git a/src/ifcopenshell-python/test/test_wall_opening.py b/src/ifcopenshell-python/test/test_wall_opening.py index 0e8c0d42cf..a08ff445be 100644 --- a/src/ifcopenshell-python/test/test_wall_opening.py +++ b/src/ifcopenshell-python/test/test_wall_opening.py @@ -16,18 +16,17 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import os -import re import glob import json -import typing +import os +import re import shutil import subprocess - +import typing from dataclasses import dataclass, field import pytest -import ifcopenshell + import ifcopenshell.guid import ifcopenshell.template diff --git a/src/ifcopenshell-python/test/test_write.py b/src/ifcopenshell-python/test/test_write.py index e7a1f76b7c..1e55221d54 100644 --- a/src/ifcopenshell-python/test/test_write.py +++ b/src/ifcopenshell-python/test/test_write.py @@ -18,9 +18,10 @@ import tempfile from pathlib import Path -import pytest -import ifcopenshell +import pytest + +import ifcopenshell TEST_FILE_DIR = Path(__file__).parent / "../../../test/input/" diff --git a/src/ifcopenshell-python/test/typing_tests.py b/src/ifcopenshell-python/test/typing_tests.py index c535960348..5b2d789613 100644 --- a/src/ifcopenshell-python/test/typing_tests.py +++ b/src/ifcopenshell-python/test/typing_tests.py @@ -22,10 +22,12 @@ Those tests are not automatically checked and just there to make sure overloads """ -import ifcopenshell from typing import Union + from typing_extensions import assert_type +import ifcopenshell + def ifcopenshell_open_test(str_: str, bool_: bool): ifc_file = ifcopenshell.open(str_) diff --git a/src/ifcopenshell-python/test/util/scripts/test_validate_stub.py b/src/ifcopenshell-python/test/util/scripts/test_validate_stub.py index 86d18bd356..a4a0b1ecbc 100644 --- a/src/ifcopenshell-python/test/util/scripts/test_validate_stub.py +++ b/src/ifcopenshell-python/test/util/scripts/test_validate_stub.py @@ -16,7 +16,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest + import ifcopenshell.util.scripts.validate_stub as subject diff --git a/src/ifcopenshell-python/test/util/test_attribute.py b/src/ifcopenshell-python/test/util/test_attribute.py index 494374f565..c3d882dc72 100644 --- a/src/ifcopenshell-python/test/util/test_attribute.py +++ b/src/ifcopenshell-python/test/util/test_attribute.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . + import ifcopenshell -import pytest import ifcopenshell.ifcopenshell_wrapper as W import ifcopenshell.util.attribute as subject diff --git a/src/ifcopenshell-python/test/util/test_brick.py b/src/ifcopenshell-python/test/util/test_brick.py index 61a9f413af..88302a2170 100644 --- a/src/ifcopenshell-python/test/util/test_brick.py +++ b/src/ifcopenshell-python/test/util/test_brick.py @@ -16,11 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest -import test.bootstrap + import ifcopenshell.api.root import ifcopenshell.api.type import ifcopenshell.util.brick as subject +import test.bootstrap class TestGetBrickTypeIFC4(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/util/test_classification.py b/src/ifcopenshell-python/test/util/test_classification.py index 29820dc665..e006773d2a 100644 --- a/src/ifcopenshell-python/test/util/test_classification.py +++ b/src/ifcopenshell-python/test/util/test_classification.py @@ -16,11 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap +import ifcopenshell.api.classification import ifcopenshell.api.root import ifcopenshell.api.type -import ifcopenshell.api.classification import ifcopenshell.util.classification as subject +import test.bootstrap class TestGetReferences(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/util/test_date.py b/src/ifcopenshell-python/test/util/test_date.py index b57b2d158b..9b1713a772 100644 --- a/src/ifcopenshell-python/test/util/test_date.py +++ b/src/ifcopenshell-python/test/util/test_date.py @@ -16,8 +16,7 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest -import test.bootstrap + import ifcopenshell.util.date as subject diff --git a/src/ifcopenshell-python/test/util/test_element.py b/src/ifcopenshell-python/test/util/test_element.py index 2c62c6d7c5..1308e957c1 100644 --- a/src/ifcopenshell-python/test/util/test_element.py +++ b/src/ifcopenshell-python/test/util/test_element.py @@ -16,30 +16,31 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +import pytest + +import ifcopenshell.api.aggregate +import ifcopenshell.api.classification +import ifcopenshell.api.context import ifcopenshell.api.control import ifcopenshell.api.cost -import ifcopenshell.api.profile -import pytest -import test.bootstrap +import ifcopenshell.api.document import ifcopenshell.api.feature -import ifcopenshell.api.pset -import ifcopenshell.api.root -import ifcopenshell.api.type -import ifcopenshell.api.nest -import ifcopenshell.api.style +import ifcopenshell.api.geometry +import ifcopenshell.api.group import ifcopenshell.api.layer import ifcopenshell.api.library -import ifcopenshell.api.context -import ifcopenshell.api.spatial -import ifcopenshell.api.geometry -import ifcopenshell.api.sequence -import ifcopenshell.api.classification import ifcopenshell.api.material -import ifcopenshell.api.document -import ifcopenshell.api.aggregate -import ifcopenshell.api.group +import ifcopenshell.api.nest +import ifcopenshell.api.profile +import ifcopenshell.api.pset +import ifcopenshell.api.root +import ifcopenshell.api.sequence +import ifcopenshell.api.spatial +import ifcopenshell.api.style +import ifcopenshell.api.type import ifcopenshell.guid import ifcopenshell.util.element as subject +import test.bootstrap from ifcopenshell.util.shape_builder import ShapeBuilder diff --git a/src/ifcopenshell-python/test/util/test_file.py b/src/ifcopenshell-python/test/util/test_file.py index 6517bbd5d8..18fc8ef07c 100644 --- a/src/ifcopenshell-python/test/util/test_file.py +++ b/src/ifcopenshell-python/test/util/test_file.py @@ -16,13 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest -import test.bootstrap -import ifcopenshell.util.file as subject import tempfile import zipfile from pathlib import Path +import ifcopenshell.util.file as subject +import test.bootstrap HEADER_EXTRACTOR_TEST_FILE_STR = """ ISO-10303-21; diff --git a/src/ifcopenshell-python/test/util/test_geolocation.py b/src/ifcopenshell-python/test/util/test_geolocation.py index 59f70fcd7a..92775963c3 100644 --- a/src/ifcopenshell-python/test/util/test_geolocation.py +++ b/src/ifcopenshell-python/test/util/test_geolocation.py @@ -17,11 +17,12 @@ # along with IfcOpenShell. If not, see . import numpy as np -import test.bootstrap -import ifcopenshell.api.root + import ifcopenshell.api.context import ifcopenshell.api.georeference +import ifcopenshell.api.root import ifcopenshell.util.geolocation as subject +import test.bootstrap class TestXYZ2ENH(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/util/test_placement.py b/src/ifcopenshell-python/test/util/test_placement.py index af428660fd..bd611db36b 100644 --- a/src/ifcopenshell-python/test/util/test_placement.py +++ b/src/ifcopenshell-python/test/util/test_placement.py @@ -16,9 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell -import test.bootstrap import ifcopenshell.util.placement as subject +import test.bootstrap class TestGetStoreyElevationIFC4(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/util/test_pset.py b/src/ifcopenshell-python/test/util/test_pset.py index c99a0b86a6..3b44951ec4 100644 --- a/src/ifcopenshell-python/test/util/test_pset.py +++ b/src/ifcopenshell-python/test/util/test_pset.py @@ -18,7 +18,6 @@ """Run this test from src/ifcopenshell-python folder: pytest --durations=0 ifcopenshell/util/test_pset.py""" from ifcopenshell.util import pset -from ifcopenshell import util from ifcopenshell.util.pset import ApplicableEntity diff --git a/src/ifcopenshell-python/test/util/test_schema.py b/src/ifcopenshell-python/test/util/test_schema.py index aa24de6360..cb45b6e8db 100644 --- a/src/ifcopenshell-python/test/util/test_schema.py +++ b/src/ifcopenshell-python/test/util/test_schema.py @@ -16,9 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap import ifcopenshell.api.project import ifcopenshell.util.schema as subject +import test.bootstrap class TestMigrator(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/util/test_selector.py b/src/ifcopenshell-python/test/util/test_selector.py index 36d200539a..3c94876a66 100644 --- a/src/ifcopenshell-python/test/util/test_selector.py +++ b/src/ifcopenshell-python/test/util/test_selector.py @@ -16,27 +16,26 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest -import test.bootstrap -import ifcopenshell.api.spatial -import ifcopenshell.api.root -import ifcopenshell.api.unit -import ifcopenshell.api.classification -import ifcopenshell.api.pset -import ifcopenshell.api.type -import ifcopenshell.api.material -import ifcopenshell.api.geometry -import ifcopenshell.api.aggregate -import ifcopenshell.api.group -import ifcopenshell.api.sequence -import ifcopenshell.util.element -import ifcopenshell.util.selector as subject -import ifcopenshell.util.placement -import ifcopenshell.util.pset import numpy as np +import pytest + +import ifcopenshell.api.aggregate +import ifcopenshell.api.classification +import ifcopenshell.api.geometry +import ifcopenshell.api.group +import ifcopenshell.api.material +import ifcopenshell.api.pset +import ifcopenshell.api.root +import ifcopenshell.api.spatial +import ifcopenshell.api.type +import ifcopenshell.api.unit +import ifcopenshell.util.element +import ifcopenshell.util.placement +import ifcopenshell.util.selector as subject +import test.bootstrap -class TestFormat: +class TestFormat(test.bootstrap.IFC4): def test_no_formatting(self): assert subject.format("123") == "123" assert subject.format('"123"') == "123" @@ -55,6 +54,7 @@ class TestFormat: def test_number_formatting(self): assert subject.format("round(123, 5)") == "125" assert subject.format('round("123", 5)') == "125" + assert subject.format('round(-123, 5)') == "-125" assert subject.format("int(123.123)") == "123" assert subject.format("int(123)") == "123" assert subject.format("number(123)") == "123" @@ -73,6 +73,42 @@ class TestFormat: assert subject.format('imperial_length("3.123", 2)') == "3' - 1 1/2\"" assert subject.format('imperial_length("123.123", 2, "inch", "foot")') == "10' - 3\"" assert subject.format('imperial_length("123.123", 2, "inch", "inch")') == '123"' + assert subject.format('imperial_length(3.0, 4, "foot", "foot", true)') == "3'" + assert subject.format('imperial_length(3.0, 4, "foot", "foot", True)') == "3'" + assert subject.format('imperial_length(3.0, 4, "foot", "foot", false)') == "3' - 0\"" + assert subject.format('imperial_length(3.0, 4, "foot", "foot", False)') == "3' - 0\"" + + def test_variable_formatting(self): + assert subject.format('{{undefined}}') is None + assert subject.format('upper({{undefined}})') == "NONE" + assert subject.format('int({{undefined}})') == "0" + element = ifcopenshell.api.root.create_entity(self.file, ifc_class="IfcWall") + assert subject.format('{{undefined}}', element) is None + assert subject.format('{{class}}', element) == "IfcWall" + assert subject.format('{{ class }}', element) == "IfcWall" + assert subject.format('upper({{ class }})', element) == "IFCWALL" + + def test_list_formatting(self): + element = ifcopenshell.api.root.create_entity(self.file, ifc_class="IfcWall") + material = ifcopenshell.api.material.add_material(self.file, name="CON01") + material2 = ifcopenshell.api.material.add_material(self.file, name="CON03") + material3 = ifcopenshell.api.material.add_material(self.file, name="CON02") + material_set = ifcopenshell.api.material.add_material_set(self.file, set_type="IfcMaterialLayerSet") + layer = ifcopenshell.api.material.add_layer(self.file, layer_set=material_set, material=material) + layer = ifcopenshell.api.material.add_layer(self.file, layer_set=material_set, material=material2) + layer = ifcopenshell.api.material.add_layer(self.file, layer_set=material_set, material=material3) + ifcopenshell.api.material.assign_material(self.file, products=[element], material=material_set) + assert subject.format('{{materials.Name}}', element) == "CON01, CON03, CON02" + assert subject.format('sort({{materials.Name}})', element) == "CON01, CON02, CON03" + assert subject.format('reverse({{materials.Name}})', element) == "CON02, CON03, CON01" + assert subject.format('join("-", {{materials.Name}})', element) == "CON01-CON03-CON02" + + def test_expressions(self): + assert subject.format('2+3') == "5" + assert subject.format('-2+3') == "1" + assert subject.format('2-3') == "-1" + assert subject.format('3*2') == "6" + assert subject.format('3/2') == "1.5" class TestGetElementValue(test.bootstrap.IFC4): @@ -302,7 +338,7 @@ class TestFilterElements(test.bootstrap.IFC4): assert subject.filter_elements(self.file, "IfcWall, parent=Project") == {element, element2, element3} assert subject.filter_elements(self.file, "IfcWall, parent=Space") == {element} assert subject.filter_elements(self.file, "IfcWall, parent=G") == {element, element2, element3} - assert subject.filter_elements(self.file, "IfcWall, parent=Element2") == {element3} + assert subject.filter_elements(self.file, "IfcWall, parent=Element2") == {element2, element3} assert subject.filter_elements(self.file, "IfcWall, parent=Space") == {element} def test_selecting_multiple_filter_groups(self): diff --git a/src/ifcopenshell-python/test/util/test_shape_builder.py b/src/ifcopenshell-python/test/util/test_shape_builder.py index a46c014fa7..5ff8adc03f 100644 --- a/src/ifcopenshell-python/test/util/test_shape_builder.py +++ b/src/ifcopenshell-python/test/util/test_shape_builder.py @@ -16,28 +16,28 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.geom -import ifcopenshell.util -import ifcopenshell.util.shape -import pytest -import test.bootstrap -import ifcopenshell.api -import numpy as np -from ifcopenshell.util.shape_builder import ( - ShapeBuilder, - is_x, - np_rotation_matrix, - np_to_3d, - np_angle, - V, - np_angle_signed, - np_normal, - np_intersect_line_line, - np_matrix_to_euler, -) from math import degrees, radians from typing import Any, Union +import numpy as np +import pytest + +import ifcopenshell.geom +import ifcopenshell.util.shape +import test.bootstrap +from ifcopenshell.util.shape_builder import ( + ShapeBuilder, + V, + is_x, + np_angle, + np_angle_signed, + np_intersect_line_line, + np_matrix_to_euler, + np_normal, + np_rotation_matrix, + np_to_3d, +) + class TestMathutilsCompatibleMethods(test.bootstrap.IFC4): def test_np_rotation_matrix(self): diff --git a/src/ifcopenshell-python/test/util/test_system.py b/src/ifcopenshell-python/test/util/test_system.py index 3e8c6d0159..f38971351a 100644 --- a/src/ifcopenshell-python/test/util/test_system.py +++ b/src/ifcopenshell-python/test/util/test_system.py @@ -16,14 +16,16 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . +from typing import get_args + import pytest -import test.bootstrap + import ifcopenshell.api import ifcopenshell.api.root import ifcopenshell.api.system import ifcopenshell.util.schema import ifcopenshell.util.system as subject -from typing import get_args +import test.bootstrap class TestValidateGroupTypes: diff --git a/src/ifcopenshell-python/test/util/test_type.py b/src/ifcopenshell-python/test/util/test_type.py index 6043238e73..dfc16e3446 100644 --- a/src/ifcopenshell-python/test/util/test_type.py +++ b/src/ifcopenshell-python/test/util/test_type.py @@ -16,10 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest -import test.bootstrap -import ifcopenshell.api + import ifcopenshell.util.type as subject +import test.bootstrap class TestGetApplicableTypes(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/util/test_unit.py b/src/ifcopenshell-python/test/util/test_unit.py index 6e28a28e70..5deef1884a 100644 --- a/src/ifcopenshell-python/test/util/test_unit.py +++ b/src/ifcopenshell-python/test/util/test_unit.py @@ -16,18 +16,20 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap +from math import pi + import numpy as np + import ifcopenshell.api.context -import ifcopenshell.api.unit -import ifcopenshell.api.root import ifcopenshell.api.georeference import ifcopenshell.api.pset +import ifcopenshell.api.root +import ifcopenshell.api.unit import ifcopenshell.util.element import ifcopenshell.util.geolocation import ifcopenshell.util.unit as subject +import test.bootstrap from ifcopenshell.util.shape_builder import ShapeBuilder -from math import pi class TestCacheUnits(test.bootstrap.IFC4): diff --git a/src/ifcopenshell-python/test/util/test_unit_conversion.py b/src/ifcopenshell-python/test/util/test_unit_conversion.py index fa95260607..a3c8b702ef 100644 --- a/src/ifcopenshell-python/test/util/test_unit_conversion.py +++ b/src/ifcopenshell-python/test/util/test_unit_conversion.py @@ -16,9 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . import pathlib -import pytest -import ifcopenshell.util.unit + import numpy as np +import pytest + +import ifcopenshell.util.unit UNITS_FIXTURE_DIR = pathlib.Path(__file__).parent.parent / "fixtures" / "units" diff --git a/src/ifcparse/CMakeLists.txt b/src/ifcparse/CMakeLists.txt new file mode 100644 index 0000000000..55e63d68c7 --- /dev/null +++ b/src/ifcparse/CMakeLists.txt @@ -0,0 +1,59 @@ +file(GLOB IFCPARSE_H_FILES_ALL *.h) +file(GLOB IFCPARSE_CPP_FILES_ALL *.cpp) + +foreach(file ${IFCPARSE_H_FILES_ALL}) + get_filename_component(filename "${file}" NAME) + + if(NOT "${filename}" MATCHES "[0-9]") + list(APPEND IFCPARSE_H_FILES "${file}") + endif() +endforeach() + +foreach(file ${IFCPARSE_CPP_FILES_ALL}) + get_filename_component(filename "${file}" NAME) + + if(NOT "${filename}" MATCHES "[0-9]") + list(APPEND IFCPARSE_CPP_FILES "${file}") + endif() +endforeach() + +foreach(schema ${SCHEMA_VERSIONS}) + list(APPEND IFCPARSE_H_FILES Ifc${schema}.h Ifc${schema}-definitions.h) + list(APPEND IFCPARSE_CPP_FILES Ifc${schema}.cpp Ifc${schema}-schema.cpp) +endforeach() + +set(IFCPARSE_FILES ${IFCPARSE_CPP_FILES} ${IFCPARSE_H_FILES}) + +add_library(IfcParse ${IFCPARSE_FILES}) +target_compile_definitions(IfcParse PUBLIC ${SCHEMA_DEFINITIONS}) +set_target_properties( + IfcParse + PROPERTIES + COMPILE_FLAGS -DIFC_PARSE_EXPORTS + VERSION "${PROJECT_VERSION}" + SOVERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}" + PUBLIC_HEADER "${IFCPARSE_H_FILES}" +) + +if(IFCXML_SUPPORT) + find_package(LibXml2 REQUIRED) + target_compile_definitions(IfcParse PUBLIC WITH_IFCXML) + set(SWIG_DEFINES ${SWIG_DEFINES} -DWITH_IFCXML PARENT_SCOPE) + + target_link_libraries(IfcParse LibXml2::LibXml2) +endif() + +if(WASM_BUILD) + target_link_libraries(IfcParse ${BCRYPT_LIBRARIES}) +else() + target_link_libraries(IfcParse ${Boost_LIBRARIES} ${BCRYPT_LIBRARIES}) +endif() + +target_link_libraries(IfcParse ${ROCKSDB_LIBRARIES}) + +install( + TARGETS IfcParse + EXPORT ${IFCOPENSHELL_EXPORT_TARGETS} + PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/ifcparse" + INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" +) diff --git a/src/ifcparse/IfcFile.cpp b/src/ifcparse/IfcFile.cpp index d0b2dd030e..9e26b24442 100644 --- a/src/ifcparse/IfcFile.cpp +++ b/src/ifcparse/IfcFile.cpp @@ -705,6 +705,7 @@ std::optionaldeclaration_by_name(TokenFunc::asStringRef(token_stream_[2])); } catch (const IfcException& ex) { Logger::Message(Logger::LOG_ERROR, std::string(ex.what()) + " at offset " + std::to_string(token_stream_[2].startPos)); + current_id = 0; goto advance; } diff --git a/src/ifcparse/IfcParse.cpp b/src/ifcparse/IfcParse.cpp index 3a7c373a7d..f0f880b7d6 100644 --- a/src/ifcparse/IfcParse.cpp +++ b/src/ifcparse/IfcParse.cpp @@ -1607,6 +1607,11 @@ void IfcParse::impl::in_memory_file_storage::read_from_stream(IfcParse::FileRead // Move the storage of simple type instances so that they are retained during the lifetime of the file read_simple_type_instances = streamer.stealInstances(); + // Set file ownership on simple type instances, so that when adding them to other files, proper copies are created + for (auto& inst : read_simple_type_instances) { + inst->file_ = file; + } + Logger::Status("\rDone scanning file "); delete tokens; diff --git a/src/ifcparse/parse_ifcxml.cpp b/src/ifcparse/parse_ifcxml.cpp index 26f0552075..60cd85c1c6 100644 --- a/src/ifcparse/parse_ifcxml.cpp +++ b/src/ifcparse/parse_ifcxml.cpp @@ -688,7 +688,6 @@ end: return; } -#ifdef WITH_IFCXML IFC_PARSE_API IfcParse::IfcFile* IfcParse::parse_ifcxml(const std::string& filename) { throw std::runtime_error("IFC-XML import temporarily disabled"); @@ -722,6 +721,5 @@ IFC_PARSE_API IfcParse::IfcFile* IfcParse::parse_ifcxml(const std::string& filen return state.file; } -#endif #endif // WITH_IFCXML diff --git a/src/ifcpatch/README.md b/src/ifcpatch/README.md new file mode 100644 index 0000000000..ca490d4424 --- /dev/null +++ b/src/ifcpatch/README.md @@ -0,0 +1,59 @@ +# IfcPatch + +Utility for applying modification recipes to IFC files. IfcPatch enables programmatic editing and correction of IFC models through a collection of patches that can fix common issues, migrate data, or transform models. + +## Available Recipes + +### Alignment and Linear Placement +- **AddGeometricRepresentationToAlignment** - Add geometric representations to alignment elements +- **AddLinearPlacementFallbackPosition** - Add fallback positions for linear placements +- **AddZeroLengthSegmentToAlignment** - Add zero-length segments to alignments +- **PatchStationReferentPosition** - Patch station referent positions + +### Data Conversion and Migration +- **AGS2IFC** - Convert AGS (geotechnical) data to IFC +- **ConvertLengthUnit** - Convert between length units +- **ConvertNestToAggregate** - Convert nesting relationships to aggregations +- **ConvertPropertiesToQuantities** - Convert properties to quantities +- **Migrate** - Migrate between IFC schema versions + +### Element Extraction and Manipulation +- **ExtractElements** - Extract specific elements into a new model +- **ExtractPropertiesToSQLite** - Export properties to SQLite database +- **Ifc2Sql** - Convert IFC to SQL database +- **TessellateElements** - Tessellate elements into triangulated geometry + +### Fixing Software-Specific Issues +- **FixArchiCADToRevitDoorSwings** - Fix door swing orientation from ArchiCAD for Revit +- **FixArchiCADToRevitSpaces** - Fix space data from ArchiCAD for Revit +- **FixRevit2025TINs** - Fix TIN (Triangulated Irregular Network) issues from Revit 2025 +- **FixRevitClassificationCodeTypes** - Fix classification code data types from Revit +- **FixRevitTINs** - Fix TIN issues from Revit + +### Geometry and Representation +- **AssignConstituentFractions** - Assign fractions to material constituents +- **DowngradeIndexedPolyCurve** - Convert indexed poly curves to simpler representations +- **RemoveSiteRepresentation** - Remove geometric representation from site elements + +### Merging and Optimization +- **MergeDuplicateTypes** - Merge duplicate element types +- **MergeProjects** - Merge multiple IFC projects +- **MergeStyles** - Merge duplicate styles +- **Optimise** - Optimize file size and structure +- **PurgeData** - Remove unused data from model + +### Spatial and Coordinate Systems +- **OffsetObjectPlacements** - Offset object placement coordinates +- **OffsetStoreyElevations** - Offset storey elevations +- **ResetAbsoluteCoordinates** - Reset absolute coordinates to origin +- **ResetSpatialElementLocations** - Reset spatial element locations +- **SetFalseOrigin** - Set a false origin for coordinates +- **SetRefElevation** - Set reference elevation +- **SetWorldCoordinateSystem** - Set world coordinate system +- **SplitByBuildingStorey** - Split model by building storeys + +### Utilities +- **RecycleNonRootedElements** - Remove or recycle non-rooted elements +- **RegenerateGlobalIds** - Regenerate GlobalId values for elements +- **RemoveRevitUniformatClassification** - Remove Revit Uniformat classification +- **UnsharePsets** - Unshare property sets between elements diff --git a/src/ifcpatch/bootstrap.py b/src/ifcpatch/bootstrap.py index 263da876ec..f703e25969 100644 --- a/src/ifcpatch/bootstrap.py +++ b/src/ifcpatch/bootstrap.py @@ -15,12 +15,3 @@ # # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . - -import toposort -import ifcpatch -import ifcpatch.recipes -import ifcopenshell.util.selector -import ifcopenshell.util.element -import ifcopenshell.util.schema - -import ifcpatch.__main__ diff --git a/src/ifcpatch/ifcpatch/__init__.py b/src/ifcpatch/ifcpatch/__init__.py index 91acba3bd4..c279bfea1c 100644 --- a/src/ifcpatch/ifcpatch/__init__.py +++ b/src/ifcpatch/ifcpatch/__init__.py @@ -18,22 +18,21 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . -import os -import shutil -import sys -import ifcopenshell -import logging -import typing -import inspect -import collections import importlib import importlib.util +import inspect +import logging +import os import re -from pathlib import Path -from typing import Union, Optional, Any, TypedDict -from typing_extensions import NotRequired +import shutil +import sys +import typing from collections.abc import Sequence +from pathlib import Path +from typing import Any, Optional, TypedDict, Union +import ifcopenshell +from typing_extensions import NotRequired __version__ = version = "0.0.0" diff --git a/src/ifcpatch/ifcpatch/__main__.py b/src/ifcpatch/ifcpatch/__main__.py index 178259694d..ae01f9b594 100644 --- a/src/ifcpatch/ifcpatch/__main__.py +++ b/src/ifcpatch/ifcpatch/__main__.py @@ -19,9 +19,11 @@ # along with IfcPatch. If not, see . import argparse -import ifcpatch + import ifcopenshell +import ifcpatch + parser = argparse.ArgumentParser(description="Patches IFC files to fix badly formatted data") parser.add_argument("-i", "--input", type=str, required=True, help="The IFC file to patch") parser.add_argument("-o", "--output", type=str, help="The output file to save the patched IFC") diff --git a/src/ifcpatch/ifcpatch/recipes/AGS2IFC.py b/src/ifcpatch/ifcpatch/recipes/AGS2IFC.py index 283d83a6b7..d24aec34e4 100644 --- a/src/ifcpatch/ifcpatch/recipes/AGS2IFC.py +++ b/src/ifcpatch/ifcpatch/recipes/AGS2IFC.py @@ -17,22 +17,21 @@ # along with IfcPatch. If not, see . -import os import csv -import numpy as np -import ifcopenshell -import ifcopenshell.api.pset -import ifcopenshell.api.root -import ifcopenshell.api.unit -import ifcopenshell.api.style +import os + +import ifcopenshell.api.aggregate import ifcopenshell.api.context import ifcopenshell.api.document -import ifcopenshell.api.project -import ifcopenshell.api.spatial import ifcopenshell.api.geometry -import ifcopenshell.api.aggregate +import ifcopenshell.api.project +import ifcopenshell.api.pset +import ifcopenshell.api.root +import ifcopenshell.api.spatial +import ifcopenshell.api.style +import ifcopenshell.api.unit import ifcopenshell.util.shape_builder -from itertools import cycle +import numpy as np from ifcopenshell.util.shape_builder import V diff --git a/src/ifcpatch/ifcpatch/recipes/AddGeometricRepresentationToAlignment.py b/src/ifcpatch/ifcpatch/recipes/AddGeometricRepresentationToAlignment.py index b4c9cd2b6c..8045490181 100644 --- a/src/ifcpatch/ifcpatch/recipes/AddGeometricRepresentationToAlignment.py +++ b/src/ifcpatch/ifcpatch/recipes/AddGeometricRepresentationToAlignment.py @@ -16,13 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . +from logging import Logger +from typing import Union + import ifcopenshell import ifcopenshell.util.alignment -import ifcpatch -from logging import Logger -import typing -from typing import Union +import ifcpatch class Patcher(ifcpatch.BasePatcher): diff --git a/src/ifcpatch/ifcpatch/recipes/AddLinearPlacementFallbackPosition.py b/src/ifcpatch/ifcpatch/recipes/AddLinearPlacementFallbackPosition.py index 256dd8f5aa..c659c38c64 100644 --- a/src/ifcpatch/ifcpatch/recipes/AddLinearPlacementFallbackPosition.py +++ b/src/ifcpatch/ifcpatch/recipes/AddLinearPlacementFallbackPosition.py @@ -16,13 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . +from logging import Logger +from typing import Union + import ifcopenshell import ifcopenshell.util.alignment -import ifcpatch -from logging import Logger -import typing -from typing import Union +import ifcpatch class Patcher(ifcpatch.BasePatcher): diff --git a/src/ifcpatch/ifcpatch/recipes/AddZeroLengthSegmentToAlignment.py b/src/ifcpatch/ifcpatch/recipes/AddZeroLengthSegmentToAlignment.py index aa6870939c..d92f794959 100644 --- a/src/ifcpatch/ifcpatch/recipes/AddZeroLengthSegmentToAlignment.py +++ b/src/ifcpatch/ifcpatch/recipes/AddZeroLengthSegmentToAlignment.py @@ -16,13 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . +from logging import Logger +from typing import Union + import ifcopenshell import ifcopenshell.util.alignment -import ifcpatch -from logging import Logger -import typing -from typing import Union +import ifcpatch class Patcher(ifcpatch.BasePatcher): diff --git a/src/ifcpatch/ifcpatch/recipes/AssignConstituentFractions.py b/src/ifcpatch/ifcpatch/recipes/AssignConstituentFractions.py index 0989c6bd14..0b105a52f7 100644 --- a/src/ifcpatch/ifcpatch/recipes/AssignConstituentFractions.py +++ b/src/ifcpatch/ifcpatch/recipes/AssignConstituentFractions.py @@ -16,10 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . +from logging import Logger + import ifcopenshell import ifcopenshell.util.element import ifcopenshell.util.unit -from logging import Logger class Patcher: diff --git a/src/ifcpatch/ifcpatch/recipes/ConvertLengthUnit.py b/src/ifcpatch/ifcpatch/recipes/ConvertLengthUnit.py index e82f12c281..3b5774bfcb 100644 --- a/src/ifcpatch/ifcpatch/recipes/ConvertLengthUnit.py +++ b/src/ifcpatch/ifcpatch/recipes/ConvertLengthUnit.py @@ -16,18 +16,15 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . -import ifcopenshell -import ifcopenshell.api -import ifcopenshell.api.owner.settings -import ifcopenshell.util.pset -import ifcopenshell.util.element -import ifcopenshell.util.unit -import ifcpatch -from logging import Logger - import typing +from logging import Logger from typing import Union +import ifcopenshell +import ifcopenshell.util.unit + +import ifcpatch + LengthUnit = typing.Literal[ "ATTOMETER", "FEMTOMETER", diff --git a/src/ifcpatch/ifcpatch/recipes/ConvertNestToAggregate.py b/src/ifcpatch/ifcpatch/recipes/ConvertNestToAggregate.py index 8471ed28f3..0d10de9bae 100644 --- a/src/ifcpatch/ifcpatch/recipes/ConvertNestToAggregate.py +++ b/src/ifcpatch/ifcpatch/recipes/ConvertNestToAggregate.py @@ -16,7 +16,6 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . -import ifcopenshell import ifcopenshell.guid diff --git a/src/ifcpatch/ifcpatch/recipes/ConvertPropertiesToQuantities.py b/src/ifcpatch/ifcpatch/recipes/ConvertPropertiesToQuantities.py index 74c28fb0e3..3b3b54cac4 100644 --- a/src/ifcpatch/ifcpatch/recipes/ConvertPropertiesToQuantities.py +++ b/src/ifcpatch/ifcpatch/recipes/ConvertPropertiesToQuantities.py @@ -16,14 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . -import ifcopenshell -import ifcopenshell.api -import ifcopenshell.api.pset -import ifcopenshell.util.pset -import ifcopenshell.util.element from logging import Logger from typing import Union +import ifcopenshell +import ifcopenshell.api.pset +import ifcopenshell.util.pset + class Patcher: def __init__(self, file: ifcopenshell.file, logger: Logger, property_name: str, quantity_name: str): diff --git a/src/ifcpatch/ifcpatch/recipes/DowngradeIndexedPolyCurve.py b/src/ifcpatch/ifcpatch/recipes/DowngradeIndexedPolyCurve.py index ea169f2967..4ae36f26b8 100644 --- a/src/ifcpatch/ifcpatch/recipes/DowngradeIndexedPolyCurve.py +++ b/src/ifcpatch/ifcpatch/recipes/DowngradeIndexedPolyCurve.py @@ -16,7 +16,6 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . -import ifcopenshell import ifcopenshell.util.element diff --git a/src/ifcpatch/ifcpatch/recipes/ExtractElements.py b/src/ifcpatch/ifcpatch/recipes/ExtractElements.py index 6f70a410b3..6f88f820be 100644 --- a/src/ifcpatch/ifcpatch/recipes/ExtractElements.py +++ b/src/ifcpatch/ifcpatch/recipes/ExtractElements.py @@ -16,14 +16,15 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . +from logging import Logger +from typing import Union + import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.project import ifcopenshell.guid import ifcopenshell.util.selector + import ifcpatch -from typing import Union -from logging import Logger class Patcher(ifcpatch.BasePatcher): diff --git a/src/ifcpatch/ifcpatch/recipes/ExtractPropertiesToSQLite.py b/src/ifcpatch/ifcpatch/recipes/ExtractPropertiesToSQLite.py index 226052ae19..634a8fb796 100644 --- a/src/ifcpatch/ifcpatch/recipes/ExtractPropertiesToSQLite.py +++ b/src/ifcpatch/ifcpatch/recipes/ExtractPropertiesToSQLite.py @@ -17,12 +17,8 @@ # along with IfcPatch. If not, see . -import os -import re -import json -import time import tempfile -import ifcopenshell + import ifcopenshell.util.element try: diff --git a/src/ifcpatch/ifcpatch/recipes/FixArchiCADToRevitDoorSwings.py b/src/ifcpatch/ifcpatch/recipes/FixArchiCADToRevitDoorSwings.py index 28860b58dc..c2523c7e8f 100644 --- a/src/ifcpatch/ifcpatch/recipes/FixArchiCADToRevitDoorSwings.py +++ b/src/ifcpatch/ifcpatch/recipes/FixArchiCADToRevitDoorSwings.py @@ -18,17 +18,16 @@ import logging -import math -import os from typing import Union -import ifcpatch import ifcopenshell import ifcopenshell.geom import ifcopenshell.util.element import ifcopenshell.util.schema import ifcopenshell.util.unit +import ifcpatch + class Patcher(ifcpatch.BasePatcher): def __init__(self, file: ifcopenshell.file, logger: Union[logging.Logger, None] = None): diff --git a/src/ifcpatch/ifcpatch/recipes/FixArchiCADToRevitSpaces.py b/src/ifcpatch/ifcpatch/recipes/FixArchiCADToRevitSpaces.py index d19bc8b26c..38a7a2950e 100644 --- a/src/ifcpatch/ifcpatch/recipes/FixArchiCADToRevitSpaces.py +++ b/src/ifcpatch/ifcpatch/recipes/FixArchiCADToRevitSpaces.py @@ -17,7 +17,6 @@ # along with IfcPatch. If not, see . import logging -import ifcopenshell class Patcher: @@ -67,11 +66,10 @@ class Patcher: self.filepath = filepath def patch(self) -> None: - import bpy import bonsai.tool as tool - import ifcopenshell + import bpy import ifcopenshell.util.element - from mathutils import Vector, Matrix + from mathutils import Matrix, Vector if len(bpy.data.objects) > 0: bpy.data.batch_remove(bpy.data.objects) diff --git a/src/ifcpatch/ifcpatch/recipes/FixRevit2025TINs.py b/src/ifcpatch/ifcpatch/recipes/FixRevit2025TINs.py index e18b4eed39..642afb6e8c 100644 --- a/src/ifcpatch/ifcpatch/recipes/FixRevit2025TINs.py +++ b/src/ifcpatch/ifcpatch/recipes/FixRevit2025TINs.py @@ -17,13 +17,12 @@ # along with IfcPatch. If not, see . -import ifcopenshell -import ifcopenshell.util.schema -import ifcopenshell.util.shape_builder -import ifcopenshell.util.unit import logging from typing import Optional +import ifcopenshell +import ifcopenshell.util.shape_builder + class Patcher: def __init__( @@ -110,9 +109,9 @@ class Patcher: self.should_create_edges = should_create_edges def patch(self) -> None: - import bpy import bmesh import bonsai.tool as tool + import bpy import ifcopenshell.util.shape_builder bpy.context.scene.BIMProjectProperties.should_use_native_meshes = True @@ -161,15 +160,13 @@ class Patcher: self.file = tool.Ifc.get() def create_edges(self, obj): - import bpy import bmesh import bonsai.tool as tool + import bpy + import ifcopenshell.api.geometry + import ifcopenshell.api.root import ifcopenshell.util.element import ifcopenshell.util.representation - import ifcopenshell.api.root - import ifcopenshell.api.type - import ifcopenshell.api.spatial - import ifcopenshell.api.geometry element = tool.Ifc.get_entity(obj) data = obj.data @@ -229,16 +226,14 @@ class Patcher: def create_face_sampleable_object(self, obj): # No sharp faces - import bpy + from math import degrees + import bmesh import bonsai.tool as tool + import ifcopenshell.api.geometry + import ifcopenshell.api.root import ifcopenshell.util.element import ifcopenshell.util.representation - import ifcopenshell.api.root - import ifcopenshell.api.type - import ifcopenshell.api.spatial - import ifcopenshell.api.geometry - from math import degrees print("working on ", obj.name) element = tool.Ifc.get_entity(obj) @@ -278,16 +273,14 @@ class Patcher: def create_edge_sampleable_object(self, obj): # This is crazy but we need a sharp face per island - import bpy + from math import degrees, radians, sin + import bmesh import bonsai.tool as tool + import ifcopenshell.api.geometry + import ifcopenshell.api.root import ifcopenshell.util.element import ifcopenshell.util.representation - import ifcopenshell.api.root - import ifcopenshell.api.type - import ifcopenshell.api.spatial - import ifcopenshell.api.geometry - from math import degrees, radians, sin from mathutils import Matrix # Get the active object (assumed to have a mesh) diff --git a/src/ifcpatch/ifcpatch/recipes/FixRevitClassificationCodeTypes.py b/src/ifcpatch/ifcpatch/recipes/FixRevitClassificationCodeTypes.py index 1ec5b331de..1ec871160a 100644 --- a/src/ifcpatch/ifcpatch/recipes/FixRevitClassificationCodeTypes.py +++ b/src/ifcpatch/ifcpatch/recipes/FixRevitClassificationCodeTypes.py @@ -16,7 +16,6 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . -import ifcopenshell import ifcopenshell.util.element diff --git a/src/ifcpatch/ifcpatch/recipes/FixRevitTINs.py b/src/ifcpatch/ifcpatch/recipes/FixRevitTINs.py index a673bf377c..6c083456e9 100644 --- a/src/ifcpatch/ifcpatch/recipes/FixRevitTINs.py +++ b/src/ifcpatch/ifcpatch/recipes/FixRevitTINs.py @@ -17,7 +17,6 @@ # along with IfcPatch. If not, see . -import ifcopenshell import logging @@ -79,10 +78,11 @@ class Patcher: self.is_solid = is_solid def patch(self) -> None: - import bpy + from math import degrees + import bmesh import bonsai.tool as tool - from math import degrees + import bpy props = tool.Project.get_project_props() props.should_use_native_meshes = True diff --git a/src/ifcpatch/ifcpatch/recipes/Ifc2Sql.py b/src/ifcpatch/ifcpatch/recipes/Ifc2Sql.py index 1e8ac55b7c..f7e294898a 100644 --- a/src/ifcpatch/ifcpatch/recipes/Ifc2Sql.py +++ b/src/ifcpatch/ifcpatch/recipes/Ifc2Sql.py @@ -17,16 +17,16 @@ # along with IfcPatch. If not, see . -import os -import re -import json -import time -import tempfile -import typing import itertools +import json import logging -import numpy as np import multiprocessing +import re +import time +import typing +from pathlib import Path +from typing import TYPE_CHECKING, Any, Literal, Union + import ifcopenshell import ifcopenshell.geom import ifcopenshell.ifcopenshell_wrapper as W @@ -37,15 +37,16 @@ import ifcopenshell.util.representation import ifcopenshell.util.schema import ifcopenshell.util.shape import ifcopenshell.util.unit -import ifcpatch -from pathlib import Path -from typing import Any, TYPE_CHECKING, Literal, Union +import numpy as np from typing_extensions import assert_never +import ifcpatch + SQLTypes = typing.Literal["SQLite", "MySQL"] if TYPE_CHECKING: import sqlite3 + import mysql.connector import mysql.connector.abstracts else: diff --git a/src/ifcpatch/ifcpatch/recipes/MergeDuplicateTypes.py b/src/ifcpatch/ifcpatch/recipes/MergeDuplicateTypes.py index fe82b33cfb..38b01135b3 100644 --- a/src/ifcpatch/ifcpatch/recipes/MergeDuplicateTypes.py +++ b/src/ifcpatch/ifcpatch/recipes/MergeDuplicateTypes.py @@ -16,13 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . -import ifcopenshell -import ifcopenshell.api -import ifcopenshell.api.type -import ifcopenshell.util.element from logging import Logger from typing import Any +import ifcopenshell +import ifcopenshell.api.type +import ifcopenshell.util.element + class Patcher: def __init__(self, file: ifcopenshell.file, logger: Logger, attribute: str = "Tag", should_merge_null: bool = True): diff --git a/src/ifcpatch/ifcpatch/recipes/MergeProjects.py b/src/ifcpatch/ifcpatch/recipes/MergeProjects.py index 9372f1d75f..ffb8e2e65b 100644 --- a/src/ifcpatch/ifcpatch/recipes/MergeProjects.py +++ b/src/ifcpatch/ifcpatch/recipes/MergeProjects.py @@ -16,14 +16,16 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . -import numpy as np +from logging import Logger +from typing import Union + import ifcopenshell -import ifcopenshell.util.unit import ifcopenshell.util.element import ifcopenshell.util.geolocation +import ifcopenshell.util.unit +import numpy as np + from ifcpatch.recipes.SetFalseOrigin import Patcher as SetFalseOrigin -from typing import Union -from logging import Logger class Patcher: diff --git a/src/ifcpatch/ifcpatch/recipes/MergeStyles.py b/src/ifcpatch/ifcpatch/recipes/MergeStyles.py index 5c1fa2f4fa..c6df956bbe 100644 --- a/src/ifcpatch/ifcpatch/recipes/MergeStyles.py +++ b/src/ifcpatch/ifcpatch/recipes/MergeStyles.py @@ -16,12 +16,14 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . -import ifcopenshell -import ifcopenshell.util.element -import ifcpatch import logging from typing import Union +import ifcopenshell +import ifcopenshell.util.element + +import ifcpatch + class Patcher(ifcpatch.BasePatcher): def __init__(self, file: ifcopenshell.file, logger: Union[logging.Logger, None] = None): diff --git a/src/ifcpatch/ifcpatch/recipes/Migrate.py b/src/ifcpatch/ifcpatch/recipes/Migrate.py index 9f330e9016..627342f096 100644 --- a/src/ifcpatch/ifcpatch/recipes/Migrate.py +++ b/src/ifcpatch/ifcpatch/recipes/Migrate.py @@ -16,12 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . +from logging import Logger +from typing import Union + import ifcopenshell import ifcopenshell.util.schema + import ifcpatch -import typing -from typing import Union -from logging import Logger class Patcher(ifcpatch.BasePatcher): diff --git a/src/ifcpatch/ifcpatch/recipes/OffsetObjectPlacements.py b/src/ifcpatch/ifcpatch/recipes/OffsetObjectPlacements.py index d5cd0e4947..7b8f122482 100644 --- a/src/ifcpatch/ifcpatch/recipes/OffsetObjectPlacements.py +++ b/src/ifcpatch/ifcpatch/recipes/OffsetObjectPlacements.py @@ -17,10 +17,10 @@ # along with IfcPatch. If not, see . import math -import numpy as np -import ifcopenshell -import ifcopenshell.util.placement import typing + +import ifcopenshell.util.placement +import numpy as np from ifcopenshell.util.shape_builder import ShapeBuilder @@ -54,27 +54,20 @@ class Patcher: entire IFC model. :param x: The X coordinate to offset by in project length units. - :type x: typing.Union[str, float] :param y: The Y coordinate to offset by in project length units. - :type y: typing.Union[str, float] :param z: The Z coordinate to offset by in project length units. - :type z: typing.Union[str, float] :param should_rotate_first: Whether or not to rotate first and then translate, or to first translate and rotate afterwards. Defaults to rotate first then translate. - :type should_rotate_first: bool :param ax: An optional angle to rotate by. If only this angle is specified, it is treated as the angle to rotate in plan view (i.e. around the Z axis). If all angle parameters are specified, then it is treated as the angle to rotate around the X axis. Angles are in decimal degrees and positive is anticlockwise. - :type ax: typing.Union[str, float],optional :param ay: An optional angle to rotate by for 3D rotations along the Y axis. Angles are in decimal degrees and positive is anticlockwise. - :type ay: typing.Union[str, float],optional :param az: An optional angle to rotate by for 3D rotations along the Z axis. Angles are in decimal degrees and positive is anticlockwise. - :type az: typing.Union[str, float],optional Example: diff --git a/src/ifcpatch/ifcpatch/recipes/OffsetStoreyElevations.py b/src/ifcpatch/ifcpatch/recipes/OffsetStoreyElevations.py index 4b3efd7c71..f40e0a840c 100644 --- a/src/ifcpatch/ifcpatch/recipes/OffsetStoreyElevations.py +++ b/src/ifcpatch/ifcpatch/recipes/OffsetStoreyElevations.py @@ -26,7 +26,6 @@ class Patcher: All objects placed relative to the storeys will also be shifted. :param z: The Z value in project length units to offset storeys by. - :type z: typing.Union[str, float] Example: diff --git a/src/ifcpatch/ifcpatch/recipes/Optimise.py b/src/ifcpatch/ifcpatch/recipes/Optimise.py index 79699ae2e6..b0043a7299 100644 --- a/src/ifcpatch/ifcpatch/recipes/Optimise.py +++ b/src/ifcpatch/ifcpatch/recipes/Optimise.py @@ -17,7 +17,6 @@ # along with IfcPatch. If not, see . import ifcopenshell -import ifcopenshell.util.element class Patcher: diff --git a/src/ifcpatch/ifcpatch/recipes/PatchStationReferentPosition.py b/src/ifcpatch/ifcpatch/recipes/PatchStationReferentPosition.py index 556c43a094..9af1afc950 100644 --- a/src/ifcpatch/ifcpatch/recipes/PatchStationReferentPosition.py +++ b/src/ifcpatch/ifcpatch/recipes/PatchStationReferentPosition.py @@ -1,11 +1,11 @@ +from logging import Logger +from typing import Union + import ifcopenshell import ifcopenshell.api.alignment import ifcopenshell.util.element -import ifcpatch -from logging import Logger -import typing -from typing import Union +import ifcpatch class Patcher(ifcpatch.BasePatcher): diff --git a/src/ifcpatch/ifcpatch/recipes/PurgeData.py b/src/ifcpatch/ifcpatch/recipes/PurgeData.py index 5ef1af6102..3c34927a63 100644 --- a/src/ifcpatch/ifcpatch/recipes/PurgeData.py +++ b/src/ifcpatch/ifcpatch/recipes/PurgeData.py @@ -17,9 +17,10 @@ # along with IfcPatch. If not, see . import datetime -import ifcopenshell from logging import Logger +import ifcopenshell + class Patcher: def __init__(self, file: ifcopenshell.file, logger: Logger): diff --git a/src/ifcpatch/ifcpatch/recipes/RecycleNonRootedElements.py b/src/ifcpatch/ifcpatch/recipes/RecycleNonRootedElements.py index 93ab762778..f66b375ae3 100644 --- a/src/ifcpatch/ifcpatch/recipes/RecycleNonRootedElements.py +++ b/src/ifcpatch/ifcpatch/recipes/RecycleNonRootedElements.py @@ -16,8 +16,9 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . -from collections import deque import logging +from collections import deque + import ifcopenshell.util.element diff --git a/src/ifcpatch/ifcpatch/recipes/RegenerateGlobalIds.py b/src/ifcpatch/ifcpatch/recipes/RegenerateGlobalIds.py index 63c595ca9e..8e0a8ab976 100644 --- a/src/ifcpatch/ifcpatch/recipes/RegenerateGlobalIds.py +++ b/src/ifcpatch/ifcpatch/recipes/RegenerateGlobalIds.py @@ -16,9 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . +from logging import Logger + import ifcopenshell import ifcopenshell.guid -from logging import Logger class Patcher: @@ -36,7 +37,6 @@ class Patcher: :param only_duplicates: If set to True, new GlobalIds will only be generated for duplicate IDs. This is a safe thing to run to ensure IFCs are valid. If False, all GlobalIds will be regenerated. - :type only_duplicates: bool Example: diff --git a/src/ifcpatch/ifcpatch/recipes/ResetAbsoluteCoordinates.py b/src/ifcpatch/ifcpatch/recipes/ResetAbsoluteCoordinates.py index ee0b4c1568..1414464fcd 100644 --- a/src/ifcpatch/ifcpatch/recipes/ResetAbsoluteCoordinates.py +++ b/src/ifcpatch/ifcpatch/recipes/ResetAbsoluteCoordinates.py @@ -17,10 +17,11 @@ # along with IfcPatch. If not, see . import logging +from typing import Literal, Union + +import ifcopenshell import numpy as np import numpy.typing as npt -import ifcopenshell -from typing import Literal, Optional, Union class Patcher: @@ -68,19 +69,13 @@ class Patcher: points used in object placements. Choosing "Both" will replace all cartesian points regardless of use (useful if the model has both large placement offsets and large geometry offsets). - :type mode: str :param automatic_offset_point: Choose, whether the offset should be determined automatically or specified manually. - :type automatic_offset_point: bool :param threshold: The threshold for deciding, whether a coordinate is treated as a large coordinate. - :type threshold: float :param x: The x-ordinate of the manually specified offset point. - :type x: Union[str, float] :param y: The y-ordinate of the manually specified offset point. - :type y: Union[str, float] :param z: The z-ordinate of the manually specified offset point. - :type z: Union[str, float] Example: diff --git a/src/ifcpatch/ifcpatch/recipes/ResetSpatialElementLocations.py b/src/ifcpatch/ifcpatch/recipes/ResetSpatialElementLocations.py index fca2a5ee11..9bd751e763 100644 --- a/src/ifcpatch/ifcpatch/recipes/ResetSpatialElementLocations.py +++ b/src/ifcpatch/ifcpatch/recipes/ResetSpatialElementLocations.py @@ -16,11 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . -import ifcopenshell import logging -import ifcopenshell.api + +import ifcopenshell import ifcopenshell.api.geometry -import ifcopenshell.util import ifcopenshell.util.element import ifcopenshell.util.placement import numpy as np diff --git a/src/ifcpatch/ifcpatch/recipes/SetFalseOrigin.py b/src/ifcpatch/ifcpatch/recipes/SetFalseOrigin.py index e22f4787d1..bd8706f9e1 100644 --- a/src/ifcpatch/ifcpatch/recipes/SetFalseOrigin.py +++ b/src/ifcpatch/ifcpatch/recipes/SetFalseOrigin.py @@ -16,11 +16,16 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . -import ifcopenshell +import typing + import ifcopenshell.api.georeference import ifcopenshell.util.geolocation -from ifcpatch.recipes import OffsetObjectPlacements, SetWorldCoordinateSystem, ResetSpatialElementLocations -import typing + +from ifcpatch.recipes import ( + OffsetObjectPlacements, + ResetSpatialElementLocations, + SetWorldCoordinateSystem, +) class Patcher: diff --git a/src/ifcpatch/ifcpatch/recipes/SetRefElevation.py b/src/ifcpatch/ifcpatch/recipes/SetRefElevation.py index a39b564cd9..57daef3a93 100644 --- a/src/ifcpatch/ifcpatch/recipes/SetRefElevation.py +++ b/src/ifcpatch/ifcpatch/recipes/SetRefElevation.py @@ -32,7 +32,6 @@ class Patcher: The reference elevation is simply a numerical attribute. :param elevation: The elevation to set. - :type elevation: typing.Union[str, float] Example: diff --git a/src/ifcpatch/ifcpatch/recipes/SetWorldCoordinateSystem.py b/src/ifcpatch/ifcpatch/recipes/SetWorldCoordinateSystem.py index ba83d9a556..080da3ef7f 100644 --- a/src/ifcpatch/ifcpatch/recipes/SetWorldCoordinateSystem.py +++ b/src/ifcpatch/ifcpatch/recipes/SetWorldCoordinateSystem.py @@ -17,9 +17,10 @@ # along with IfcPatch. If not, see . import math -import numpy as np import typing +import numpy as np + class Patcher: def __init__( @@ -38,20 +39,14 @@ class Patcher: Sets the world coordinate system to whatever you want. :param x: The X coordinate. - :type x: typing.Union[str, float] :param y: The Y coordinate. - :type y: typing.Union[str, float] :param z: The Z coordinate. - :type z: typing.Union[str, float] :param ax: An angle to rotate by for 3D rotations along the X axis. Angles are in decimal degrees and positive is anticlockwise. - :type ax: typing.Union[str, float] :param ay: An angle to rotate by for 3D rotations along the Y axis. Angles are in decimal degrees and positive is anticlockwise. - :type ay: typing.Union[str, float] :param az: An angle to rotate by for 3D rotations along the Z axis. Angles are in decimal degrees and positive is anticlockwise. - :type az: typing.Union[str, float] Example: diff --git a/src/ifcpatch/ifcpatch/recipes/SplitByBuildingStorey.py b/src/ifcpatch/ifcpatch/recipes/SplitByBuildingStorey.py index 1d0b4c02f0..2f83fbb208 100644 --- a/src/ifcpatch/ifcpatch/recipes/SplitByBuildingStorey.py +++ b/src/ifcpatch/ifcpatch/recipes/SplitByBuildingStorey.py @@ -16,12 +16,13 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . -import os import logging -import ifcopenshell +import os from pathlib import Path from typing import Union +import ifcopenshell + class Patcher: def __init__(self, file: ifcopenshell.file, logger: logging.Logger, output_dir: Union[str, None] = None): @@ -45,10 +46,11 @@ class Patcher: self.output_dir = output_dir def patch(self) -> None: - import ifcopenshell import tempfile from shutil import copyfile + import ifcopenshell + if self.output_dir is None: output_dir = Path() else: diff --git a/src/ifcpatch/ifcpatch/recipes/TessellateElements.py b/src/ifcpatch/ifcpatch/recipes/TessellateElements.py index 1d8ee1933c..75dc5578d8 100644 --- a/src/ifcpatch/ifcpatch/recipes/TessellateElements.py +++ b/src/ifcpatch/ifcpatch/recipes/TessellateElements.py @@ -16,17 +16,17 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . -import ifcopenshell -import ifcopenshell.api -import ifcopenshell.api.geometry -import ifcopenshell.geom -import ifcopenshell.util.selector -import ifcopenshell.util.shape -import ifcopenshell.util.representation import multiprocessing from logging import Logger from typing import Union +import ifcopenshell +import ifcopenshell.api.geometry +import ifcopenshell.geom +import ifcopenshell.util.representation +import ifcopenshell.util.selector +import ifcopenshell.util.shape + class Patcher: def __init__( @@ -47,10 +47,8 @@ class Patcher: See example bug: https://github.com/Autodesk/revit-ifc/issues/707 :param query: Query string to filter out elements to convert, defaults to "IfcBeam" - :type query: str :param force_faceted_brep: Force using IfcFacetedBreps instead of IfcPolygonalFaceSets, defaults to `False` - :type force_faceted_brep: bool Example: diff --git a/src/ifcpatch/ifcpatch/recipes/UnsharePsets.py b/src/ifcpatch/ifcpatch/recipes/UnsharePsets.py index fa7f1b083c..67dc3da646 100644 --- a/src/ifcpatch/ifcpatch/recipes/UnsharePsets.py +++ b/src/ifcpatch/ifcpatch/recipes/UnsharePsets.py @@ -16,12 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcPatch. If not, see . +from logging import Logger + import ifcopenshell import ifcopenshell.api.pset -import ifcopenshell.guid import ifcopenshell.util.element import ifcopenshell.util.selector -from logging import Logger class Patcher: diff --git a/src/ifcpatch/pyproject.toml b/src/ifcpatch/pyproject.toml index 5d43201a25..22cf2ec3c5 100644 --- a/src/ifcpatch/pyproject.toml +++ b/src/ifcpatch/pyproject.toml @@ -8,7 +8,7 @@ version = "0.0.0" authors = [ { name="Dion Moult", email="dion@thinkmoult.com" }, ] -description = "IFC patching utility" +description = "Utility for applying modification recipes to IFC files" readme = "README.md" keywords = ["IFC", "BIM"] classifiers = [ @@ -31,3 +31,11 @@ Issues = "https://github.com/IfcOpenShell/IfcOpenShell/issues" [tool.setuptools.packages.find] include = ["ifcpatch*"] exclude = ["test*"] + +[tool.ruff] +extend = "../../pyproject.toml" + +[tool.ruff.lint] +select = [ + "F401", # unused imports +] diff --git a/src/ifcpatch/test/bootstrap.py b/src/ifcpatch/test/bootstrap.py index d4d1d07c2e..7c6dfec558 100644 --- a/src/ifcpatch/test/bootstrap.py +++ b/src/ifcpatch/test/bootstrap.py @@ -16,11 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import pytest import ifcopenshell import ifcopenshell.api -import ifcopenshell.api.project import ifcopenshell.api.owner.settings +import ifcopenshell.api.project +import pytest class IFC4X3: diff --git a/src/ifcpatch/test/test_ConvertLengthUnit.py b/src/ifcpatch/test/test_ConvertLengthUnit.py index 85e451110a..6fdf2668ec 100644 --- a/src/ifcpatch/test/test_ConvertLengthUnit.py +++ b/src/ifcpatch/test/test_ConvertLengthUnit.py @@ -16,12 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api import ifcopenshell.api.root import ifcopenshell.api.unit import ifcopenshell.util.unit + import ifcpatch +import test.bootstrap class TestConvertLengthUnit(test.bootstrap.IFC4): diff --git a/src/ifcpatch/test/test_ConvertPropertiesToQuantities.py b/src/ifcpatch/test/test_ConvertPropertiesToQuantities.py index 830495f74f..d25dcd9d1d 100644 --- a/src/ifcpatch/test/test_ConvertPropertiesToQuantities.py +++ b/src/ifcpatch/test/test_ConvertPropertiesToQuantities.py @@ -16,11 +16,12 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcpatch import ifcopenshell import ifcopenshell.api.pset import ifcopenshell.api.root import ifcopenshell.util.element + +import ifcpatch import test.bootstrap diff --git a/src/ifcpatch/test/test_ExtractElements.py b/src/ifcpatch/test/test_ExtractElements.py index 8df5095256..8d7d4021c6 100644 --- a/src/ifcpatch/test/test_ExtractElements.py +++ b/src/ifcpatch/test/test_ExtractElements.py @@ -17,14 +17,15 @@ # along with IfcOpenShell. If not, see . import os -import pytest -import ifcpatch + import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.aggregate import ifcopenshell.api.root import ifcopenshell.api.spatial import ifcopenshell.util.element +import pytest + +import ifcpatch import test.bootstrap diff --git a/src/ifcpatch/test/test_Ifc2Sql.py b/src/ifcpatch/test/test_Ifc2Sql.py index e5c40fe245..49e38c08fe 100644 --- a/src/ifcpatch/test/test_Ifc2Sql.py +++ b/src/ifcpatch/test/test_Ifc2Sql.py @@ -17,19 +17,12 @@ # along with IfcOpenShell. If not, see . import tempfile -import ifcpatch -import ifcopenshell -import ifcopenshell.api.context -import ifcopenshell.api.geometry -import ifcopenshell.api.georeference -import ifcopenshell.geom -import ifcopenshell.util.geolocation -import ifcopenshell.util.placement -import ifcopenshell.util.representation -import ifcopenshell.util.shape -import ifcopenshell.util.shape_builder from pathlib import Path +import ifcopenshell + +import ifcpatch + class TestIfc2Sql: def test_run(self): diff --git a/src/ifcpatch/test/test_MergeDuplicateTypes.py b/src/ifcpatch/test/test_MergeDuplicateTypes.py index 37e37d39b4..565a62517b 100644 --- a/src/ifcpatch/test/test_MergeDuplicateTypes.py +++ b/src/ifcpatch/test/test_MergeDuplicateTypes.py @@ -16,17 +16,15 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import os -import pytest -import ifcpatch -import ifcopenshell -import ifcopenshell.api + import ifcopenshell.api.geometry import ifcopenshell.api.material import ifcopenshell.api.root import ifcopenshell.api.type import ifcopenshell.util.element import ifcopenshell.util.representation + +import ifcpatch import test.bootstrap diff --git a/src/ifcpatch/test/test_MergeProject.py b/src/ifcpatch/test/test_MergeProject.py index 6384e98dd8..35fcb0719f 100644 --- a/src/ifcpatch/test/test_MergeProject.py +++ b/src/ifcpatch/test/test_MergeProject.py @@ -16,7 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcpatch +import tempfile +from pathlib import Path +from typing import Optional + import ifcopenshell import ifcopenshell.api.context import ifcopenshell.api.geometry @@ -29,11 +32,10 @@ import ifcopenshell.util.placement import ifcopenshell.util.representation import ifcopenshell.util.shape import ifcopenshell.util.shape_builder -import test.bootstrap -import tempfile import numpy as np -from pathlib import Path -from typing import Optional + +import ifcpatch +import test.bootstrap class TestMergeProjects(test.bootstrap.IFC4): diff --git a/src/ifcpatch/test/test_Migrate.py b/src/ifcpatch/test/test_Migrate.py index afefd9d3fb..85e60ff09f 100644 --- a/src/ifcpatch/test/test_Migrate.py +++ b/src/ifcpatch/test/test_Migrate.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . + import ifcpatch -import ifcopenshell import test.bootstrap diff --git a/src/ifcpatch/test/test_RegenerateGlobalIds.py b/src/ifcpatch/test/test_RegenerateGlobalIds.py index 3cc4d9026f..4858b6a7b0 100644 --- a/src/ifcpatch/test/test_RegenerateGlobalIds.py +++ b/src/ifcpatch/test/test_RegenerateGlobalIds.py @@ -16,13 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import os -import pytest -import ifcpatch -import ifcopenshell -import ifcopenshell.api + import ifcopenshell.api.root -import ifcopenshell.util.element + +import ifcpatch import test.bootstrap diff --git a/src/ifcpatch/test/test_ResetSpatialElementLocations.py b/src/ifcpatch/test/test_ResetSpatialElementLocations.py index 1ae7c63c6f..d0dc385015 100644 --- a/src/ifcpatch/test/test_ResetSpatialElementLocations.py +++ b/src/ifcpatch/test/test_ResetSpatialElementLocations.py @@ -16,16 +16,16 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api import ifcopenshell.api.aggregate import ifcopenshell.api.geometry import ifcopenshell.api.root import ifcopenshell.api.unit import ifcopenshell.util.placement -import ifcpatch import numpy as np +import ifcpatch +import test.bootstrap + class TestResetSpatialElementLocations(test.bootstrap.IFC4): def test_run(self): diff --git a/src/ifcpatch/test/test_SetFalseOrigin.py b/src/ifcpatch/test/test_SetFalseOrigin.py index da4e621f04..e15e8684fb 100644 --- a/src/ifcpatch/test/test_SetFalseOrigin.py +++ b/src/ifcpatch/test/test_SetFalseOrigin.py @@ -16,8 +16,6 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import test.bootstrap -import ifcopenshell.api import ifcopenshell.api.aggregate import ifcopenshell.api.context import ifcopenshell.api.geometry @@ -27,9 +25,11 @@ import ifcopenshell.api.unit import ifcopenshell.util.element import ifcopenshell.util.geolocation import ifcopenshell.util.placement -import ifcpatch import numpy as np +import ifcpatch +import test.bootstrap + class TestSetFalseOrigin(test.bootstrap.IFC4): def test_run(self): diff --git a/src/ifcpatch/test/test_TesselateElements.py b/src/ifcpatch/test/test_TesselateElements.py index 83ea349137..9e15c35f72 100644 --- a/src/ifcpatch/test/test_TesselateElements.py +++ b/src/ifcpatch/test/test_TesselateElements.py @@ -16,19 +16,16 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcopenshell.util.representation -import ifcpatch -import ifcopenshell import ifcopenshell.api.context import ifcopenshell.api.geometry -import ifcopenshell.api.profile import ifcopenshell.api.root import ifcopenshell.api.unit -import test.bootstrap -import ifcopenshell.geom -import ifcopenshell.util.element +import ifcopenshell.util.representation from ifcopenshell.util.shape_builder import ShapeBuilder +import ifcpatch +import test.bootstrap + class TestTesselateElements(test.bootstrap.IFC4): def test_run(self): diff --git a/src/ifcpatch/test/test_UnsharePsets.py b/src/ifcpatch/test/test_UnsharePsets.py index d2226223bc..ae09ed879b 100644 --- a/src/ifcpatch/test/test_UnsharePsets.py +++ b/src/ifcpatch/test/test_UnsharePsets.py @@ -16,11 +16,11 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcOpenShell. If not, see . -import ifcpatch import ifcopenshell import ifcopenshell.api.pset -import ifcopenshell.geom import ifcopenshell.util.element + +import ifcpatch import test.bootstrap diff --git a/src/ifcpatch/test/test_ifcpatch.py b/src/ifcpatch/test/test_ifcpatch.py index 90ff3937fa..4d7e98e55a 100644 --- a/src/ifcpatch/test/test_ifcpatch.py +++ b/src/ifcpatch/test/test_ifcpatch.py @@ -17,10 +17,12 @@ # along with IfcOpenShell. If not, see . import tempfile -import ifcopenshell.api.root -import ifcpatch from pathlib import Path +import ifcopenshell.api.root + +import ifcpatch + class Test: def test_parsing_docs(self): diff --git a/src/ifcsverchok/__init__.py b/src/ifcsverchok/__init__.py index c655baed52..2355ab6783 100644 --- a/src/ifcsverchok/__init__.py +++ b/src/ifcsverchok/__init__.py @@ -31,6 +31,7 @@ bl_info = { import importlib import logging import types + import bpy from bpy_extras.io_utils import ExportHelper @@ -80,7 +81,7 @@ ensure_addons_are_enabled("bonsai", "sverchok") from sverchok.ui.nodeview_space_menu import add_node_menu -def nodes_index(): +def nodes_index() -> list[tuple[str, list[tuple[str, str]]]]: return [ ( "IFC", @@ -110,15 +111,27 @@ def nodes_index(): ("ifc.create_project", "SvIfcCreateProject"), ("ifc.quick_project_setup", "SvIfcQuickProjectSetup"), ], - ) + ), + ( + "IFC Shape Builder", + [ + ("ifc.shape_builder.rectangle", "SvIfcSbRectangle"), + ("ifc.shape_builder.extrude", "SvIfcSbExtrude"), + ("ifc.shape_builder.representation", "SvIfcSbRepresentation"), + ("ifc.shape_builder.test", "SvIfcSbTest"), + ("ifc.shape_builder.shape_output", "SvSbShapeOutput"), + ("ifc.shape_builder.mesh", "SvSbMesh"), + ("ifc.shape_builder.polyline", "SvSbPolyline"), + ], + ), ] def make_node_categories() -> list[dict[str, list[str]]]: - node_categories = [{}] + node_categories: list[dict[str, list[str]]] = [] for category, nodes in nodes_index(): nodes = [node_name for idname, node_name in nodes] - node_categories[0][category] = nodes + node_categories.append({category: nodes}) return node_categories @@ -141,23 +154,24 @@ imported_modules = make_node_list() reload_event = False from os.path import splitext + import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.aggregate import ifcopenshell.api.root import ifcopenshell.api.spatial import ifcopenshell.util.element + from ifcsverchok.ifcstore import SvIfcStore class IFC_Sv_UpdateCurrent(bpy.types.Operator): """Update current Sverchok node tree. - Will reset transient IFC file. - """ + Will reset transient IFC file""" bl_idname = "ifc.sverchok_update_current" bl_label = "Update Current Node Tree" + # bl_description = "Update current Sverchok node tree, resetting transient IFC file." bl_options = {"REGISTER", "UNDO", "INTERNAL"} node_group: bpy.props.StringProperty(default="") @@ -284,11 +298,13 @@ class IFC_PT_write_file_panel(bpy.types.Panel): def draw(self, context): ng = context.space_data.node_tree layout = self.layout + assert layout row = layout.split(factor=0.2, align=True) row = layout.row() row2 = layout.row() row.operator("ifc.sverchok_update_current", text="IFC Re-run all nodes") row2.operator("ifc.write_file_panel") + layout.operator("bim.ifcsverchok_use_bonsai_file") CLASSES = [IFC_Sv_UpdateCurrent, IFC_Sv_write_file, IFC_PT_write_file_panel] diff --git a/src/ifcsverchok/helper.py b/src/ifcsverchok/helper.py index 411809e025..7407bd94cd 100644 --- a/src/ifcsverchok/helper.py +++ b/src/ifcsverchok/helper.py @@ -16,11 +16,14 @@ # You should have received a copy of the GNU General Public License # along with IfcSverchok. If not, see . +from typing import Any, Literal, TypeVar, Union + import bpy import ifcopenshell import sverchok.core.sockets -from sverchok.data_structure import zip_long_repeat -from typing import Any, Union, TypeVar +from sverchok.data_structure import flatten_data, zip_long_repeat + +from ifcsverchok.ifcstore import SvIfcStore T_socket = TypeVar("T_socket", bound=sverchok.core.sockets.SvSocketCommon) @@ -66,6 +69,54 @@ def get_selected_nodes() -> list[bpy.types.Node]: return [n for n in node_tree.nodes if n.select] +def get_socket_value( + sockets: Union[bpy.types.NodeInputs, bpy.types.NodeOutputs], + name: str, + *, + value_type: Literal["SINGLE_VALUE", "CONTAINER", "FLATTEN"] = "SINGLE_VALUE", +) -> Any: + """ + :param value_type: + + - ``SINGLE_VALUE`` - e.g. ``[[x]]`` -> ``x``. + + - ``CONTAINER`` - e.g. ``[ [ [x, y, z], [x,y, z] ] ]`` -> ``[ [x1, y1, z1], [x2, y2, z2] ]``. + + - ``FLATTEN`` - e.g. `` [ [ [x1], [x2] ] ] `` -> `` [x1, x2] ``. + """ + socket = sockets[name] + assert isinstance(socket, sverchok.core.sockets.SvSocketCommon) + value = socket.sv_get() + if value_type == "FLATTEN": + return flatten_data(value) + value = value[0] + if value_type == "SINGLE_VALUE": + return value[0] + return value + + +def set_socket_value( + sockets: bpy.types.NodeOutputs, + name: str, + value: Any, + *, + value_type: Literal["SINGLE_VALUE", "FINAL_VALUE"] = "SINGLE_VALUE", +) -> None: + """ + :param value_type: + + - ``SINGLE_VALUE`` - e.g. ``x`` -> ``[[x]]``. + + - ``FINAL_VALUE`` - keep value as is. + """ + socket = sockets[name] + assert isinstance(socket, sverchok.core.sockets.SvSocketCommon) + if value_type == "SINGLE_VALUE": + socket.sv_set([[value]]) + return + socket.sv_set(value) + + def create_socket( inputs_or_outputs: Union[bpy.types.NodeInputs, bpy.types.NodeOutputs], name: str, @@ -86,3 +137,7 @@ def create_socket( if prop_name: socket.prop_name = prop_name return socket + + +def get_file() -> ifcopenshell.file: + return SvIfcStore.get_file() diff --git a/src/ifcsverchok/ifcstore.py b/src/ifcsverchok/ifcstore.py index e99a97aa6d..30cd760b87 100644 --- a/src/ifcsverchok/ifcstore.py +++ b/src/ifcsverchok/ifcstore.py @@ -16,13 +16,14 @@ # You should have received a copy of the GNU General Public License # along with IfcSverchok. If not, see . +from typing import Any, Union + +import bonsai.tool as tool import bpy import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.context import ifcopenshell.util.representation from ifcopenshell import template -from typing import Union, Any class SvIfcStore: @@ -49,6 +50,8 @@ class SvIfcStore: future = [] schema_identifiers = ["IFC4", "IFC2X3"] + use_bonsai_file = False + @staticmethod def purge() -> None: SvIfcStore.path = "" @@ -94,6 +97,8 @@ class SvIfcStore: @staticmethod def get_file() -> ifcopenshell.file: + if SvIfcStore.use_bonsai_file: + return tool.Ifc.get() if SvIfcStore.file is None: SvIfcStore.create_boilerplate() return SvIfcStore.file diff --git a/src/ifcsverchok/nodes/ifc/add.py b/src/ifcsverchok/nodes/ifc/add.py index 5aab0da1f1..c6ed124eb7 100644 --- a/src/ifcsverchok/nodes/ifc/add.py +++ b/src/ifcsverchok/nodes/ifc/add.py @@ -18,11 +18,12 @@ import bpy import ifcopenshell +from bpy.props import StringProperty +from sverchok.data_structure import updateNode +from sverchok.node_tree import SverchCustomTreeNode + import ifcsverchok.helper import ifcsverchok.helper as helper -from bpy.props import StringProperty -from sverchok.node_tree import SverchCustomTreeNode -from sverchok.data_structure import updateNode class SvIfcAdd(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): diff --git a/src/ifcsverchok/nodes/ifc/add_pset.py b/src/ifcsverchok/nodes/ifc/add_pset.py index 4e6f0d7674..5676dadf71 100644 --- a/src/ifcsverchok/nodes/ifc/add_pset.py +++ b/src/ifcsverchok/nodes/ifc/add_pset.py @@ -16,23 +16,20 @@ # You should have received a copy of the GNU General Public License # along with IfcSverchok. If not, see . -import bpy +import json +import bpy import ifcopenshell +import ifcopenshell.api.pset import sverchok.core.sockets +from bpy.props import StringProperty +from sverchok.data_structure import flatten_data, updateNode +from sverchok.node_tree import SverchCustomTreeNode + import ifcsverchok.helper import ifcsverchok.helper as helper from ifcsverchok.ifcstore import SvIfcStore -import json -import ifcopenshell -import ifcopenshell.api -import ifcopenshell.api.pset - -from bpy.props import StringProperty -from sverchok.node_tree import SverchCustomTreeNode -from sverchok.data_structure import updateNode, flatten_data - class SvIfcAddPset(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): bl_idname = "SvIfcAddPset" diff --git a/src/ifcsverchok/nodes/ifc/add_spatial_element.py b/src/ifcsverchok/nodes/ifc/add_spatial_element.py index c96b5e2d14..0f03dc1b52 100644 --- a/src/ifcsverchok/nodes/ifc/add_spatial_element.py +++ b/src/ifcsverchok/nodes/ifc/add_spatial_element.py @@ -16,27 +16,24 @@ # You should have received a copy of the GNU General Public License # along with IfcSverchok. If not, see . -import bpy - from itertools import chain -import ifcopenshell -import ifcopenshell.api +import bpy import ifcopenshell.api.aggregate import ifcopenshell.api.root import ifcopenshell.api.spatial import ifcopenshell.util.element -import ifcsverchok.helper -from ifcsverchok.ifcstore import SvIfcStore - from bpy.props import StringProperty -from sverchok.node_tree import SverchCustomTreeNode from sverchok.data_structure import ( - updateNode, + ensure_min_nesting, flatten_data, repeat_last_for_length, - ensure_min_nesting, + updateNode, ) +from sverchok.node_tree import SverchCustomTreeNode + +import ifcsverchok.helper +from ifcsverchok.ifcstore import SvIfcStore class SvIfcAddSpatialElement(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): diff --git a/src/ifcsverchok/nodes/ifc/api.py b/src/ifcsverchok/nodes/ifc/api.py index af0b8766dd..4c53b3968d 100644 --- a/src/ifcsverchok/nodes/ifc/api.py +++ b/src/ifcsverchok/nodes/ifc/api.py @@ -16,17 +16,18 @@ # You should have received a copy of the GNU General Public License # along with IfcSverchok. If not, see . +import logging +from typing import Any, Union + import bpy -import ifcopenshell import ifcopenshell.api import sverchok.core.sockets +from bpy.props import StringProperty +from sverchok.data_structure import updateNode +from sverchok.node_tree import SverchCustomTreeNode + import ifcsverchok.helper import ifcsverchok.helper as helper -from bpy.props import StringProperty, EnumProperty -from sverchok.node_tree import SverchCustomTreeNode -from sverchok.data_structure import updateNode -import logging -from typing import Union, Any logger = logging.getLogger("sverchok.ifc") diff --git a/src/ifcsverchok/nodes/ifc/bmesh_to_ifc.py b/src/ifcsverchok/nodes/ifc/bmesh_to_ifc.py index ab748ecd50..785d5db718 100644 --- a/src/ifcsverchok/nodes/ifc/bmesh_to_ifc.py +++ b/src/ifcsverchok/nodes/ifc/bmesh_to_ifc.py @@ -16,34 +16,25 @@ # You should have received a copy of the GNU General Public License # along with IfcSverchok. If not, see . -from copy import deepcopy -from decimal import Context -from email.policy import default import bpy import ifcopenshell -import ifcsverchok.helper -import ifcopenshell.api import ifcopenshell.api.context import ifcopenshell.api.geometry import ifcopenshell.util.representation -from ifcsverchok.ifcstore import SvIfcStore -import bonsai.tool as tool -import bonsai.core.geometry as core from bpy.props import ( - StringProperty, - EnumProperty, - IntProperty, BoolProperty, + EnumProperty, PointerProperty, + StringProperty, +) +from mathutils import Matrix +from sverchok.data_structure import ( + updateNode, ) from sverchok.node_tree import SverchCustomTreeNode -from sverchok.data_structure import updateNode, flatten_data, fixed_iter, flat_iter -from bonsai.bim.module.root.prop import get_contexts -from sverchok.data_structure import zip_long_repeat, node_id -from sverchok.core.socket_data import sv_get_socket -from itertools import chain, cycle -from mathutils import Matrix +import ifcsverchok.helper +from ifcsverchok.ifcstore import SvIfcStore class SvIfcBMeshToIfcRepr(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): diff --git a/src/ifcsverchok/nodes/ifc/by_guid.py b/src/ifcsverchok/nodes/ifc/by_guid.py index 43bea96c84..fd6b79bb55 100644 --- a/src/ifcsverchok/nodes/ifc/by_guid.py +++ b/src/ifcsverchok/nodes/ifc/by_guid.py @@ -19,13 +19,13 @@ import itertools import bpy -import ifcopenshell +from bpy.props import StringProperty +from sverchok.data_structure import flatten_data, updateNode +from sverchok.node_tree import SverchCustomTreeNode + import ifcsverchok.helper import ifcsverchok.helper as helper from ifcsverchok.ifcstore import SvIfcStore -from bpy.props import StringProperty -from sverchok.node_tree import SverchCustomTreeNode -from sverchok.data_structure import updateNode, flatten_data class SvIfcByGuid(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): diff --git a/src/ifcsverchok/nodes/ifc/by_id.py b/src/ifcsverchok/nodes/ifc/by_id.py index e985f4d0e6..78ce51415f 100644 --- a/src/ifcsverchok/nodes/ifc/by_id.py +++ b/src/ifcsverchok/nodes/ifc/by_id.py @@ -18,12 +18,13 @@ import bpy +from bpy.props import StringProperty +from sverchok.data_structure import flatten_data, updateNode +from sverchok.node_tree import SverchCustomTreeNode + import ifcsverchok.helper import ifcsverchok.helper as helper from ifcsverchok.ifcstore import SvIfcStore -from bpy.props import StringProperty -from sverchok.node_tree import SverchCustomTreeNode -from sverchok.data_structure import updateNode, flatten_data class SvIfcById(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): diff --git a/src/ifcsverchok/nodes/ifc/by_query.py b/src/ifcsverchok/nodes/ifc/by_query.py index 95f9ca654f..6b6cb12bdb 100644 --- a/src/ifcsverchok/nodes/ifc/by_query.py +++ b/src/ifcsverchok/nodes/ifc/by_query.py @@ -17,23 +17,35 @@ # along with IfcSverchok. If not, see . import bpy -import ifcopenshell import ifcopenshell.util.selector -import ifcsverchok.helper -from ifcsverchok.ifcstore import SvIfcStore from bpy.props import StringProperty -from sverchok.node_tree import SverchCustomTreeNode from sverchok.data_structure import updateNode +from sverchok.node_tree import SverchCustomTreeNode + +import ifcsverchok.helper as helper +from ifcsverchok.ifcstore import SvIfcStore -class SvIfcByQuery(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): +class SvIfcByQuery(bpy.types.Node, SverchCustomTreeNode, helper.SvIfcCore): bl_idname = "SvIfcByQuery" bl_label = "IFC By Query" query: StringProperty(name="Query", update=updateNode) - def sv_init(self, context): - self.inputs.new("SvStringsSocket", "query").prop_name = "query" - self.outputs.new("SvStringsSocket", "Entity") + def sv_init(self, context) -> None: + helper.create_socket( + self.inputs, + "query", + description="IFC Query string.", + data_type="list[list[str]]", + prop_name="query", + ) + helper.create_socket( + self.outputs, + "Entity", + description="IFC Entities found by the query.", + data_type="set[ifcopenshell.entity_instance]", + prop_name="Entity", + ) def process(self): if not self.inputs["query"].sv_get()[0][0]: @@ -43,8 +55,8 @@ class SvIfcByQuery(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIf super().process() def process_ifc(self, query: str) -> None: - selector = ifcopenshell.util.selector.Selector() - self.outputs["Entity"].sv_set([selector.parse(self.file, query)]) + elements = ifcopenshell.util.selector.filter_elements(self.file, query) + self.outputs["Entity"].sv_set(elements) def register(): diff --git a/src/ifcsverchok/nodes/ifc/by_type.py b/src/ifcsverchok/nodes/ifc/by_type.py index c4c6f9bdb7..2e6d9b43f4 100644 --- a/src/ifcsverchok/nodes/ifc/by_type.py +++ b/src/ifcsverchok/nodes/ifc/by_type.py @@ -18,11 +18,12 @@ import bpy import ifcopenshell -import ifcsverchok.helper -from bpy.props import StringProperty, EnumProperty -from ifcsverchok.ifcstore import SvIfcStore -from sverchok.node_tree import SverchCustomTreeNode +from bpy.props import EnumProperty, StringProperty from sverchok.data_structure import updateNode +from sverchok.node_tree import SverchCustomTreeNode + +import ifcsverchok.helper +from ifcsverchok.ifcstore import SvIfcStore def get_ifc_products(self, context): diff --git a/src/ifcsverchok/nodes/ifc/create_entity.py b/src/ifcsverchok/nodes/ifc/create_entity.py index 0bfb88b786..2ce1d54461 100644 --- a/src/ifcsverchok/nodes/ifc/create_entity.py +++ b/src/ifcsverchok/nodes/ifc/create_entity.py @@ -17,25 +17,23 @@ # along with IfcSverchok. If not, see . import bpy -from mathutils import Matrix -import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.geometry import ifcopenshell.api.root import ifcopenshell.util.schema +from bpy.props import BoolProperty, StringProperty +from mathutils import Matrix +from sverchok.data_structure import ( + ensure_min_nesting, + flatten_data, + repeat_last_for_length, + updateNode, +) +from sverchok.node_tree import SverchCustomTreeNode + import ifcsverchok.helper import ifcsverchok.helper as helper from ifcsverchok.ifcstore import SvIfcStore -from bpy.props import StringProperty, BoolProperty -from sverchok.node_tree import SverchCustomTreeNode -from sverchok.data_structure import ( - updateNode, - flatten_data, - repeat_last_for_length, - ensure_min_nesting, -) - class SvIfcCreateEntity(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): bl_idname = "SvIfcCreateEntity" diff --git a/src/ifcsverchok/nodes/ifc/create_file.py b/src/ifcsverchok/nodes/ifc/create_file.py index 50a77a5198..1d10d0fd3e 100644 --- a/src/ifcsverchok/nodes/ifc/create_file.py +++ b/src/ifcsverchok/nodes/ifc/create_file.py @@ -19,12 +19,13 @@ import bpy import ifcopenshell import ifcopenshell.guid -import ifcsverchok.helper -import ifcsverchok.helper as helper import sverchok.core.sockets from bpy.props import StringProperty -from sverchok.node_tree import SverchCustomTreeNode from sverchok.data_structure import updateNode +from sverchok.node_tree import SverchCustomTreeNode + +import ifcsverchok.helper +import ifcsverchok.helper as helper class SvIfcCreateFileRefresh(bpy.types.Operator): diff --git a/src/ifcsverchok/nodes/ifc/create_project.py b/src/ifcsverchok/nodes/ifc/create_project.py index cc782de19d..b6de31de34 100644 --- a/src/ifcsverchok/nodes/ifc/create_project.py +++ b/src/ifcsverchok/nodes/ifc/create_project.py @@ -18,13 +18,13 @@ import bpy import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.context import ifcopenshell.api.root import ifcopenshell.api.unit +from sverchok.node_tree import SverchCustomTreeNode + import ifcsverchok.helper import ifcsverchok.helper as helper -from sverchok.node_tree import SverchCustomTreeNode class SvIfcCreateProject(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): diff --git a/src/ifcsverchok/nodes/ifc/create_shape.py b/src/ifcsverchok/nodes/ifc/create_shape.py index 381fc1e11c..de47c3b0e6 100644 --- a/src/ifcsverchok/nodes/ifc/create_shape.py +++ b/src/ifcsverchok/nodes/ifc/create_shape.py @@ -16,16 +16,17 @@ # You should have received a copy of the GNU General Public License # along with IfcSverchok. If not, see . -import bpy import logging -import ifcopenshell + +import bonsai.bim.import_ifc +import bpy import ifcopenshell.geom +from bpy.props import BoolProperty, StringProperty +from sverchok.data_structure import flatten_data, updateNode +from sverchok.node_tree import SverchCustomTreeNode + import ifcsverchok.helper from ifcsverchok.ifcstore import SvIfcStore -import bonsai.bim.import_ifc -from bpy.props import StringProperty, PointerProperty, BoolProperty -from sverchok.node_tree import SverchCustomTreeNode -from sverchok.data_structure import updateNode, flatten_data class SvIfcCreateShape(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): @@ -100,10 +101,8 @@ class SvIfcCreateShape(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper. def register(): - # bpy.utils.register_class(SvIfcCreateShapeRefresh) bpy.utils.register_class(SvIfcCreateShape) def unregister(): bpy.utils.unregister_class(SvIfcCreateShape) - # bpy.utils.unregister_class(SvIfcCreateShapeRefresh) diff --git a/src/ifcsverchok/nodes/ifc/generate_guid.py b/src/ifcsverchok/nodes/ifc/generate_guid.py index cd706bc6a4..759dcbb90e 100644 --- a/src/ifcsverchok/nodes/ifc/generate_guid.py +++ b/src/ifcsverchok/nodes/ifc/generate_guid.py @@ -17,11 +17,11 @@ # along with IfcSverchok. If not, see . import bpy -import ifcopenshell import ifcopenshell.guid -import ifcsverchok.helper from sverchok.node_tree import SverchCustomTreeNode +import ifcsverchok.helper + class SvIfcGenerateGuid(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): bl_idname = "SvIfcGenerateGuid" diff --git a/src/ifcsverchok/nodes/ifc/get_attribute.py b/src/ifcsverchok/nodes/ifc/get_attribute.py index c4ec65e30e..7f90e742a8 100644 --- a/src/ifcsverchok/nodes/ifc/get_attribute.py +++ b/src/ifcsverchok/nodes/ifc/get_attribute.py @@ -17,13 +17,12 @@ # along with IfcSverchok. If not, see . import bpy -import ifcopenshell -import ifcopenshell.util.element +from bpy.props import StringProperty +from sverchok.data_structure import flatten_data, updateNode +from sverchok.node_tree import SverchCustomTreeNode + import ifcsverchok.helper from ifcsverchok.ifcstore import SvIfcStore -from bpy.props import StringProperty -from sverchok.node_tree import SverchCustomTreeNode -from sverchok.data_structure import updateNode, flatten_data class SvIfcGetAttribute(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): diff --git a/src/ifcsverchok/nodes/ifc/get_property.py b/src/ifcsverchok/nodes/ifc/get_property.py index a9a78e15b9..e8af45d606 100644 --- a/src/ifcsverchok/nodes/ifc/get_property.py +++ b/src/ifcsverchok/nodes/ifc/get_property.py @@ -17,13 +17,13 @@ # along with IfcSverchok. If not, see . import bpy -import ifcopenshell import ifcopenshell.util.element +from bpy.props import StringProperty +from sverchok.data_structure import flatten_data, updateNode +from sverchok.node_tree import SverchCustomTreeNode + import ifcsverchok.helper from ifcsverchok.ifcstore import SvIfcStore -from bpy.props import StringProperty -from sverchok.node_tree import SverchCustomTreeNode -from sverchok.data_structure import updateNode, flatten_data class SvIfcGetProperty(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): diff --git a/src/ifcsverchok/nodes/ifc/pick_ifc_class.py b/src/ifcsverchok/nodes/ifc/pick_ifc_class.py index 3cbbf03af0..b24d499708 100644 --- a/src/ifcsverchok/nodes/ifc/pick_ifc_class.py +++ b/src/ifcsverchok/nodes/ifc/pick_ifc_class.py @@ -18,11 +18,12 @@ import bpy import ifcopenshell -import ifcsverchok.helper from bpy.props import EnumProperty -from ifcsverchok.ifcstore import SvIfcStore -from sverchok.node_tree import SverchCustomTreeNode from sverchok.data_structure import updateNode +from sverchok.node_tree import SverchCustomTreeNode + +import ifcsverchok.helper +from ifcsverchok.ifcstore import SvIfcStore def get_ifc_products(self, context): diff --git a/src/ifcsverchok/nodes/ifc/quick_project_setup.py b/src/ifcsverchok/nodes/ifc/quick_project_setup.py index 49c621d8ba..c98e80a5c4 100644 --- a/src/ifcsverchok/nodes/ifc/quick_project_setup.py +++ b/src/ifcsverchok/nodes/ifc/quick_project_setup.py @@ -16,17 +16,15 @@ # You should have received a copy of the GNU General Public License # along with IfcSverchok. If not, see . - -from email.mime import application import bpy -import ifcopenshell import sverchok.core.sockets +from bpy.props import StringProperty +from ifcopenshell import template +from sverchok.data_structure import updateNode +from sverchok.node_tree import SverchCustomTreeNode + import ifcsverchok.helper import ifcsverchok.helper as helper -from bpy.props import StringProperty -from sverchok.node_tree import SverchCustomTreeNode -from sverchok.data_structure import updateNode -from ifcopenshell import template class SvIfcQuickProjectSetup(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): diff --git a/src/ifcsverchok/nodes/ifc/read_entity.py b/src/ifcsverchok/nodes/ifc/read_entity.py index 9ea2fa3490..454293e7d3 100644 --- a/src/ifcsverchok/nodes/ifc/read_entity.py +++ b/src/ifcsverchok/nodes/ifc/read_entity.py @@ -18,11 +18,12 @@ import bpy import ifcopenshell +from bpy.props import StringProperty +from sverchok.data_structure import flatten_data, updateNode +from sverchok.node_tree import SverchCustomTreeNode + import ifcsverchok.helper from ifcsverchok.ifcstore import SvIfcStore -from bpy.props import StringProperty -from sverchok.node_tree import SverchCustomTreeNode -from sverchok.data_structure import updateNode, ensure_min_nesting, flatten_data class SvIfcReadEntity(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): diff --git a/src/ifcsverchok/nodes/ifc/read_file.py b/src/ifcsverchok/nodes/ifc/read_file.py index ab754d7278..758bd6b14f 100644 --- a/src/ifcsverchok/nodes/ifc/read_file.py +++ b/src/ifcsverchok/nodes/ifc/read_file.py @@ -19,11 +19,12 @@ import bpy import ifcopenshell import ifcopenshell.guid +from bpy.props import StringProperty +from sverchok.data_structure import updateNode +from sverchok.node_tree import SverchCustomTreeNode + import ifcsverchok.helper import ifcsverchok.helper as helper -from bpy.props import StringProperty -from sverchok.node_tree import SverchCustomTreeNode -from sverchok.data_structure import updateNode class SvIfcReadFile(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): diff --git a/src/ifcsverchok/nodes/ifc/remove.py b/src/ifcsverchok/nodes/ifc/remove.py index 2e76d28896..6a85086fd2 100644 --- a/src/ifcsverchok/nodes/ifc/remove.py +++ b/src/ifcsverchok/nodes/ifc/remove.py @@ -16,14 +16,16 @@ # You should have received a copy of the GNU General Public License # along with IfcSverchok. If not, see . +from typing import Union + import bpy import ifcopenshell +from bpy.props import StringProperty +from sverchok.data_structure import updateNode +from sverchok.node_tree import SverchCustomTreeNode + import ifcsverchok.helper import ifcsverchok.helper as helper -from bpy.props import StringProperty -from sverchok.node_tree import SverchCustomTreeNode -from sverchok.data_structure import updateNode -from typing import Union class SvIfcRemove(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): diff --git a/src/ifcsverchok/nodes/ifc/select_blender_objects.py b/src/ifcsverchok/nodes/ifc/select_blender_objects.py index 5067db7ccf..d2582dcaff 100644 --- a/src/ifcsverchok/nodes/ifc/select_blender_objects.py +++ b/src/ifcsverchok/nodes/ifc/select_blender_objects.py @@ -16,15 +16,15 @@ # You should have received a copy of the GNU General Public License # along with IfcSverchok. If not, see . +import bonsai.tool as tool import bpy import ifcopenshell -import ifcopenshell.util.selector -import bonsai.tool as tool +from bpy.props import StringProperty +from sverchok.data_structure import updateNode +from sverchok.node_tree import SverchCustomTreeNode + import ifcsverchok.helper import ifcsverchok.helper as helper -from bpy.props import StringProperty -from sverchok.node_tree import SverchCustomTreeNode -from sverchok.data_structure import updateNode class SvIfcSelectBlenderObjectsRefresh(bpy.types.Operator): diff --git a/src/ifcsverchok/nodes/ifc/shape_builder/extrude.py b/src/ifcsverchok/nodes/ifc/shape_builder/extrude.py new file mode 100644 index 0000000000..1725f37aa2 --- /dev/null +++ b/src/ifcsverchok/nodes/ifc/shape_builder/extrude.py @@ -0,0 +1,93 @@ +# IfcSverchok - IFC Sverchok extension +# Copyright (C) 2022 Martina Jakubowska +# +# This file is part of IfcSverchok. +# +# IfcSverchok is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcSverchok is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with IfcSverchok. If not, see . + +from typing import TYPE_CHECKING, Literal + +import bpy +import ifcopenshell +import ifcsverchok.helper +import ifcsverchok.helper as helper +from ifcopenshell.util.shape_builder import ShapeBuilder +from sverchok.core.sockets import SvVerticesSocket +from sverchok.data_structure import updateNode +from sverchok.node_tree import SverchCustomTreeNode + + +class SvIfcSbExtrude(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): + bl_idname = "SvIfcSbExtrude" + bl_label = "IFC Extrude" + + extrude_axis: bpy.props.EnumProperty( # pyright: ignore[reportRedeclaration] + default="Z", + items=[ + ("X", "X", "Interpret curve as in XY plane and extrude along X+."), + ("Y", "Y", "Interpret curve as in XZ plane and extrude along Y+."), + ("Z", "Z", "Interpret curve as in XY plane and extrude along Z+."), + ], + name="Extrude Axis", + update=updateNode, + ) + + if TYPE_CHECKING: + extrude_axis: Literal["X", "Y", "Z"] + + def sv_init(self, context): + helper.create_socket( + self.inputs, + "Curve", + description="Curve to extrude", + data_type="list[list[ifcopenshell.entity_instance]]", + ) + helper.create_socket( + self.inputs, + "Magnitude", + data_type="list[list[float]]", + ) + helper.create_socket( + self.inputs, + "Position", + data_type="list[list[tuple[float, float, float]]]", + socket_type=SvVerticesSocket, + ) + helper.create_socket( + self.outputs, + "Extruded Profile", + description="Extruded Profile", + data_type="list[list[ifcopenshell.entity_instance]]", + ) + + def draw_buttons(self, context, layout): + layout.prop(self, "extrude_axis") + + def process(self): + self.file = helper.get_file() + curve: ifcopenshell.entity_instance = helper.get_socket_value(self.inputs, "Curve") + magnitude: float = helper.get_socket_value(self.inputs, "Magnitude") + position: tuple[float, float, float] = helper.get_socket_value(self.inputs, "Position") + builder = ShapeBuilder(self.file) + axis_kargs = builder.extrude_kwargs(self.extrude_axis) + extrude = builder.extrude(curve, magnitude=magnitude, position=position, **axis_kargs) + helper.set_socket_value(self.outputs, "Extruded Profile", extrude) + + +def register(): + bpy.utils.register_class(SvIfcSbExtrude) + + +def unregister(): + bpy.utils.unregister_class(SvIfcSbExtrude) diff --git a/src/ifcsverchok/nodes/ifc/shape_builder/mesh.py b/src/ifcsverchok/nodes/ifc/shape_builder/mesh.py new file mode 100644 index 0000000000..8b740bef08 --- /dev/null +++ b/src/ifcsverchok/nodes/ifc/shape_builder/mesh.py @@ -0,0 +1,51 @@ +# IfcSverchok - IFC Sverchok extension +# Copyright (C) 2022 Martina Jakubowska +# +# This file is part of IfcSverchok. +# +# IfcSverchok is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcSverchok is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with IfcSverchok. If not, see . + +import bpy +import ifcsverchok.helper as helper +import sverchok.core.sockets +from ifcsverchok.nodes.ifc.shape_builder.representation import ShapeBuilder +from sverchok.node_tree import SverchCustomTreeNode + + +class SvSbMesh(bpy.types.Node, SverchCustomTreeNode, helper.SvIfcCore): + bl_idname = "SvSbMesh" + bl_label = "IFC Mesh" + + def sv_init(self, context): + helper.create_socket(self.inputs, "Vers", socket_type=sverchok.core.sockets.SvVerticesSocket) + helper.create_socket(self.inputs, "Pols") + helper.create_socket(self.outputs, "Representation Item", data_type="list[list[ifcopenshell.entity_instance]]") + + def process(self): + ifc_file = helper.get_file() + + vertices: list[[list[float]]] = helper.get_socket_value(self.inputs, "Vers", value_type="CONTAINER") + polygons: list[[list[int]]] = helper.get_socket_value(self.inputs, "Pols", value_type="CONTAINER") + + builder = ShapeBuilder(ifc_file) + mesh = builder.mesh(vertices, polygons) + helper.set_socket_value(self.outputs, "Representation Item", mesh) + + +def register(): + bpy.utils.register_class(SvSbMesh) + + +def unregister(): + bpy.utils.unregister_class(SvSbMesh) diff --git a/src/ifcsverchok/nodes/ifc/shape_builder/polyline.py b/src/ifcsverchok/nodes/ifc/shape_builder/polyline.py new file mode 100644 index 0000000000..2f27a3834f --- /dev/null +++ b/src/ifcsverchok/nodes/ifc/shape_builder/polyline.py @@ -0,0 +1,52 @@ +# IfcSverchok - IFC Sverchok extension +# Copyright (C) 2022 Martina Jakubowska +# +# This file is part of IfcSverchok. +# +# IfcSverchok is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcSverchok is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with IfcSverchok. If not, see . + +import bpy +import ifcsverchok.helper as helper +import sverchok.core.sockets +from ifcsverchok.nodes.ifc.shape_builder.representation import ShapeBuilder +from sverchok.node_tree import SverchCustomTreeNode + + +class SvSbPolyline(bpy.types.Node, SverchCustomTreeNode, helper.SvIfcCore): + bl_idname = "SvSbPolyline" + bl_label = "IFC Polyline" + bl_description = "Create closed polyline from vertices." + + def sv_init(self, context): + helper.create_socket(self.inputs, "Vers", socket_type=sverchok.core.sockets.SvVerticesSocket) + helper.create_socket(self.inputs, "Closed", data_type="list[list[bool]]") + helper.create_socket(self.outputs, "Representation Item", data_type="list[list[ifcopenshell.entity_instance]]") + + def process(self): + ifc_file = helper.get_file() + + vertices: list[[list[float]]] = helper.get_socket_value(self.inputs, "Vers", value_type="CONTAINER") + closed = helper.get_socket_value(self.inputs, "Closed") + + builder = ShapeBuilder(ifc_file) + Polyline = builder.polyline(vertices, closed=closed) + helper.set_socket_value(self.outputs, "Representation Item", Polyline) + + +def register(): + bpy.utils.register_class(SvSbPolyline) + + +def unregister(): + bpy.utils.unregister_class(SvSbPolyline) diff --git a/src/ifcsverchok/nodes/ifc/shape_builder/rectangle.py b/src/ifcsverchok/nodes/ifc/shape_builder/rectangle.py new file mode 100644 index 0000000000..35e73db71f --- /dev/null +++ b/src/ifcsverchok/nodes/ifc/shape_builder/rectangle.py @@ -0,0 +1,56 @@ +# IfcSverchok - IFC Sverchok extension +# Copyright (C) 2022 Martina Jakubowska +# +# This file is part of IfcSverchok. +# +# IfcSverchok is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcSverchok is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with IfcSverchok. If not, see . + +import bpy +import ifcsverchok.helper +import ifcsverchok.helper as helper +from ifcopenshell.util.shape_builder import ShapeBuilder +from sverchok.node_tree import SverchCustomTreeNode + + +class SvIfcSbRectangle(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): + bl_idname = "SvIfcSbRectangle" + bl_label = "IFC Rectangle" + + def sv_init(self, context): + helper.create_socket( + self.inputs, + "Size (2D)", + data_type="list[list[tuple[float, float]]]", + ) + helper.create_socket( + self.outputs, + "Rectangle", + description="Rectangle", + data_type="list[list[ifcopenshell.entity_instance]]", + ) + + def process(self): + file = helper.get_file() + builder = ShapeBuilder(file) + size: tuple[float, ...] = helper.get_socket_value(self.inputs, "Size", value_type="CONTAINER") + rectangle = builder.rectangle(size=size) + helper.set_socket_value(self.outputs, "Rectangle", rectangle) + + +def register(): + bpy.utils.register_class(SvIfcSbRectangle) + + +def unregister(): + bpy.utils.unregister_class(SvIfcSbRectangle) diff --git a/src/ifcsverchok/nodes/ifc/shape_builder/representation.py b/src/ifcsverchok/nodes/ifc/shape_builder/representation.py new file mode 100644 index 0000000000..7fefe038dc --- /dev/null +++ b/src/ifcsverchok/nodes/ifc/shape_builder/representation.py @@ -0,0 +1,63 @@ +# IfcSverchok - IFC Sverchok extension +# Copyright (C) 2022 Martina Jakubowska +# +# This file is part of IfcSverchok. +# +# IfcSverchok is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcSverchok is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with IfcSverchok. If not, see . + +import bpy +import ifcopenshell +import ifcopenshell.util.representation +import ifcsverchok.helper +import ifcsverchok.helper as helper +from ifcopenshell.util.shape_builder import ShapeBuilder +from sverchok.node_tree import SverchCustomTreeNode + + +class SvIfcSbRepresentation(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): + bl_idname = "SvIfcSbRepresentation" + bl_label = "IFC Representation" + + def sv_init(self, context): + helper.create_socket( + self.inputs, + "Representation Item", + description="Representation Item", + data_type="list[list[ifcopenshell.entity_instance]]", + ) + helper.create_socket( + self.outputs, + "Shape Representation", + description="IfcShapeRepresentation", + data_type="list[list[ifcopenshell.entity_instance]]", + ) + + def process(self): + self.file = helper.get_file() + representation_items: list[ifcopenshell.entity_instance] + representation_items = helper.get_socket_value(self.inputs, "Representation Item", value_type="FLATTEN") + + builder = ShapeBuilder(self.file) + context = ifcopenshell.util.representation.get_context(self.file, "Model", "Body", "MODEL_VIEW") + assert context is not None + representation = builder.get_representation(context, items=representation_items) + helper.set_socket_value(self.outputs, "Shape Representation", representation) + + +def register(): + bpy.utils.register_class(SvIfcSbRepresentation) + + +def unregister(): + bpy.utils.unregister_class(SvIfcSbRepresentation) diff --git a/src/ifcsverchok/nodes/ifc/shape_builder/shape_output.py b/src/ifcsverchok/nodes/ifc/shape_builder/shape_output.py new file mode 100644 index 0000000000..d8585ba7a2 --- /dev/null +++ b/src/ifcsverchok/nodes/ifc/shape_builder/shape_output.py @@ -0,0 +1,67 @@ +# IfcSverchok - IFC Sverchok extension +# Copyright (C) 2022 Martina Jakubowska +# +# This file is part of IfcSverchok. +# +# IfcSverchok is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcSverchok is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with IfcSverchok. If not, see . + +import bpy +import ifcopenshell +import ifcopenshell.geom +import ifcopenshell.ifcopenshell_wrapper as W +import ifcopenshell.util.shape +import ifcsverchok.helper as helper +import sverchok.core.sockets +from sverchok.node_tree import SverchCustomTreeNode + + +class SvSbShapeOutput(bpy.types.Node, SverchCustomTreeNode, helper.SvIfcCore): + """ + Triggers: Ifc create shape by entity + Tooltip: Convert IfcShapeRepresentation to geometry data. + """ + + bl_idname = "SvSbShapeOutput" + bl_label = "IFC Shape Output" + + def sv_init(self, context): + helper.create_socket(self.inputs, "Representation", data_type="list[list[ifcopenshell.entity_instance]]") + helper.create_socket(self.outputs, "Vers", socket_type=sverchok.core.sockets.SvVerticesSocket) + helper.create_socket(self.outputs, "Edgs") + helper.create_socket(self.outputs, "Pols") + + def process(self): + entity: ifcopenshell.entity_instance = helper.get_socket_value(self.inputs, "Representation") + self.create(entity) + helper.set_socket_value(self.outputs, "Vers", [self.verts], value_type="FINAL_VALUE") + helper.set_socket_value(self.outputs, "Edgs", [self.edges], value_type="FINAL_VALUE") + helper.set_socket_value(self.outputs, "Pols", [self.polys], value_type="FINAL_VALUE") + + def create(self, entity: ifcopenshell.entity_instance) -> None: + assert bpy.context.scene + settings = ifcopenshell.geom.settings() + settings.set("dimensionality", ifcopenshell.ifcopenshell_wrapper.CURVES_SURFACES_AND_SOLIDS) + shape = ifcopenshell.geom.create_shape(settings, entity) + assert isinstance(shape, W.Triangulation) + self.verts = ifcopenshell.util.shape.get_vertices(shape).tolist() + self.edges = ifcopenshell.util.shape.get_edges(shape).tolist() + self.polys = ifcopenshell.util.shape.get_faces(shape).tolist() + + +def register(): + bpy.utils.register_class(SvSbShapeOutput) + + +def unregister(): + bpy.utils.unregister_class(SvSbShapeOutput) diff --git a/src/ifcsverchok/nodes/ifc/shape_builder/test.py b/src/ifcsverchok/nodes/ifc/shape_builder/test.py new file mode 100644 index 0000000000..4b8cd2ba04 --- /dev/null +++ b/src/ifcsverchok/nodes/ifc/shape_builder/test.py @@ -0,0 +1,54 @@ +# IfcSverchok - IFC Sverchok extension +# Copyright (C) 2022 Martina Jakubowska +# +# This file is part of IfcSverchok. +# +# IfcSverchok is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# IfcSverchok is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with IfcSverchok. If not, see . + +import bpy +import ifcsverchok.helper +import ifcsverchok.helper as helper +from sverchok.node_tree import SverchCustomTreeNode + + +class SvIfcSbTest(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): + bl_idname = "SvIfcSbTest" + bl_label = "IFC Test" + + def sv_init(self, context): + helper.create_socket( + self.inputs, + "Input", + ) + helper.create_socket( + self.outputs, + "Output", + description="Extruded Profile", + ) + + def process(self): + print("test!") + self.sv_input_names = ["Input"] + super().process() + + def process_ifc(self, input_value: float) -> None: + self.outputs["Output"].sv_set([[input_value]]) + + +def register(): + bpy.utils.register_class(SvIfcSbTest) + + +def unregister(): + bpy.utils.unregister_class(SvIfcSbTest) diff --git a/src/ifcsverchok/nodes/ifc/sverchok_to_ifc.py b/src/ifcsverchok/nodes/ifc/sverchok_to_ifc.py index f9a6701432..be06fac1ce 100644 --- a/src/ifcsverchok/nodes/ifc/sverchok_to_ifc.py +++ b/src/ifcsverchok/nodes/ifc/sverchok_to_ifc.py @@ -17,16 +17,15 @@ # along with IfcSverchok. If not, see . import bpy -import ifcopenshell -import ifcsverchok.helper -import ifcopenshell.api import ifcopenshell.api.context import ifcopenshell.api.geometry import ifcopenshell.util.representation -from ifcsverchok.ifcstore import SvIfcStore -from bpy.props import StringProperty, EnumProperty, IntProperty, FloatVectorProperty +from bpy.props import EnumProperty, StringProperty +from sverchok.data_structure import ensure_min_nesting, updateNode from sverchok.node_tree import SverchCustomTreeNode -from sverchok.data_structure import updateNode, ensure_min_nesting + +import ifcsverchok.helper +from ifcsverchok.ifcstore import SvIfcStore class SvIfcSverchokToIfcRepr(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): diff --git a/src/ifcsverchok/nodes/ifc/write_file.py b/src/ifcsverchok/nodes/ifc/write_file.py index 245c8a9d62..8d52b3d77a 100644 --- a/src/ifcsverchok/nodes/ifc/write_file.py +++ b/src/ifcsverchok/nodes/ifc/write_file.py @@ -17,19 +17,20 @@ # along with IfcSverchok. If not, see . from os.path import abspath, splitext + import bpy import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.aggregate import ifcopenshell.api.root import ifcopenshell.api.spatial import ifcopenshell.util.element +from bpy.props import BoolProperty, StringProperty +from sverchok.data_structure import flatten_data, updateNode +from sverchok.node_tree import SverchCustomTreeNode + import ifcsverchok.helper import ifcsverchok.helper as helper from ifcsverchok.ifcstore import SvIfcStore -from bpy.props import StringProperty, BoolProperty -from sverchok.node_tree import SverchCustomTreeNode -from sverchok.data_structure import updateNode, flatten_data class SvIfcWriteFile(bpy.types.Node, SverchCustomTreeNode, ifcsverchok.helper.SvIfcCore): diff --git a/src/ifcsverchok/pyproject.toml b/src/ifcsverchok/pyproject.toml new file mode 100644 index 0000000000..6952f66f06 --- /dev/null +++ b/src/ifcsverchok/pyproject.toml @@ -0,0 +1,5 @@ +[tool.ruff] +extend = "../../pyproject.toml" +lint.select = [ + "F401", # unused imports +] diff --git a/src/ifctester/ifctester/__init__.py b/src/ifctester/ifctester/__init__.py index edb1db90e4..f7d708105d 100644 --- a/src/ifctester/ifctester/__init__.py +++ b/src/ifctester/ifctester/__init__.py @@ -19,3 +19,4 @@ from .ids import open __version__ = version = "0.0.0" +__all__ = ["open"] diff --git a/src/ifctester/ifctester/__main__.py b/src/ifctester/ifctester/__main__.py index e0acdd5468..d961b5e667 100644 --- a/src/ifctester/ifctester/__main__.py +++ b/src/ifctester/ifctester/__main__.py @@ -18,13 +18,14 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcTester. If not, see . -import time import argparse -import ifcopenshell -from . import ids -from . import reporter +import time from pathlib import Path +import ifcopenshell + +from . import ids, reporter + parser = argparse.ArgumentParser(description="Uses an IDS to audit an IFC") parser.add_argument("ids", type=str, help="Path to an IDS") parser.add_argument("ifc", type=str, help="Path to an IFC", nargs="?") diff --git a/src/ifctester/ifctester/facet.py b/src/ifctester/ifctester/facet.py index 6b5536299d..b8c3ebad5d 100644 --- a/src/ifctester/ifctester/facet.py +++ b/src/ifctester/ifctester/facet.py @@ -17,15 +17,17 @@ # along with IfcTester. If not, see . from __future__ import annotations -import re + import builtins -import ifcopenshell.util.unit -import ifcopenshell.util.element -import ifcopenshell.util.classification +import re from functools import lru_cache -from xmlschema.validators import identities -from typing import Union, Optional, Any, Literal, TYPE_CHECKING, TypedDict from logging import Logger +from typing import TYPE_CHECKING, Any, Literal, Optional, TypedDict, Union + +import ifcopenshell.util.classification +import ifcopenshell.util.element +import ifcopenshell.util.unit +from xmlschema.validators import identities if TYPE_CHECKING: from .ids import Specification diff --git a/src/ifctester/ifctester/ids.py b/src/ifctester/ifctester/ids.py index 7aecf040d3..8d00ce9fac 100644 --- a/src/ifctester/ifctester/ids.py +++ b/src/ifctester/ifctester/ids.py @@ -17,29 +17,32 @@ # along with IfcTester. If not, see . from __future__ import annotations -import os + import datetime -import ifcopenshell -from xmlschema.validators.exceptions import XMLSchemaValidationError -from xmlschema import XMLSchema -from xmlschema import etree_tostring +import os +from typing import Any, Optional, Union from xml.etree import ElementTree as ET + +import ifcopenshell +from xmlschema import XMLSchema, etree_tostring +from xmlschema.validators.exceptions import XMLSchemaValidationError + from .facet import ( - Facet, - Entity, Attribute, + Cardinality, Classification, - Property, - PartOf, + Entity, + Facet, + FacetFailure, Material, + PartOf, + Property, Restriction, get_pset, get_psets, - Cardinality, - FacetFailure, ) -from typing import Optional, Union, Any +__all__ = ["Attribute", "Classification", "Entity", "Material", "PartOf", "Property", "Restriction"] cwd = os.path.dirname(os.path.realpath(__file__)) schema = None @@ -298,23 +301,15 @@ class Specification: if not is_applicable: continue self.applicable_entities.append(element) - for facet in self.requirements: - result = facet(element) - is_pass = bool(result) - if self.maxOccurs != 0: # This is a required or optional specification - if is_pass: + if self.maxOccurs != 0: # Requirements are skipped for prohibited applicability + for facet in self.requirements: + result = facet(element) + if bool(result): self.passed_entities.add(element) facet.passed_entities.add(element) else: self.failed_entities.add(element) facet.failures.append(FacetFailure(element=element, reason=str(result))) - else: # This is a prohibited specification - if is_pass: - self.failed_entities.add(element) - facet.failures.append(FacetFailure(element=element, reason=str(result))) - else: - self.passed_entities.add(element) - facet.passed_entities.add(element) self.status = True for facet in self.requirements: diff --git a/src/ifctester/ifctester/reporter.py b/src/ifctester/ifctester/reporter.py index 2ce8a8c45f..38b3ba8f5b 100644 --- a/src/ifctester/ifctester/reporter.py +++ b/src/ifctester/ifctester/reporter.py @@ -17,18 +17,21 @@ # along with IfcTester. If not, see . from __future__ import annotations + +import datetime +import math import os import re import sys -import math -import datetime +from typing import Literal, Optional, TypedDict, Union + import ifcopenshell import ifcopenshell.util.element import ifcopenshell.util.placement import ifcopenshell.util.unit -from .ids import Specification, Ids + from .facet import Facet, FacetFailure -from typing import TypedDict, Union, Literal, Optional +from .ids import Ids, Specification cwd = os.path.dirname(os.path.realpath(__file__)) @@ -78,10 +81,12 @@ class ResultsSpecification(TypedDict): description: str instructions: str status: bool + is_skipped: bool is_ifc_version: bool total_applicable: int total_applicable_pass: int total_applicable_fail: int + applicable_entities: list[ResultsEntity] percent_applicable_pass: ResultsPercent total_checks: int total_checks_pass: int @@ -364,16 +369,24 @@ class Json(Reporter): cardinality = "optional" elif specification.minOccurs == 0 and specification.maxOccurs == 0: cardinality = "prohibited" + elif specification.minOccurs >= 1: + # Any minimum occurrence >= 1 means the specification is required + cardinality = "required" + else: + # minOccurs == 0 with any other maxOccurs value means optional + cardinality = "optional" return ResultsSpecification( name=specification.name, description=specification.description, instructions=specification.instructions, status=specification.status, + is_skipped=cardinality == "optional" and total_checks == 0, is_ifc_version=specification.is_ifc_version, total_applicable=total_applicable, total_applicable_pass=total_applicable_pass, total_applicable_fail=total_applicable - total_applicable_pass, + applicable_entities=self.report_applicable_entities(specification), percent_applicable_pass=percent_applicable_pass, total_checks=total_checks, total_checks_pass=total_checks_pass, @@ -384,6 +397,24 @@ class Json(Reporter): requirements=requirements, ) + def report_applicable_entities(self, specification: Specification) -> list[ResultsEntity]: + return [ + ResultsEntity( + { + "element": e, + "element_type": ifcopenshell.util.element.get_type(e), + "class": e.is_a(), + "predefined_type": ifcopenshell.util.element.get_predefined_type(e), + "name": getattr(e, "Name", None), + "description": getattr(e, "Description", None), + "id": e.id(), + "global_id": getattr(e, "GlobalId", None), + "tag": getattr(e, "Tag", None), + } + ) + for e in specification.applicable_entities + ] + def report_passed_entities(self, requirement: Facet) -> list[ResultsEntity]: return [ ResultsEntity( @@ -445,11 +476,13 @@ class Html(Json): def report(self) -> None: super().report() for spec in self.results["specifications"]: - if spec["cardinality"] == "optional" and spec["total_checks"] == 0: - spec["is_skipped"] = True spec["is_prohibited"] = spec["cardinality"] == "prohibited" spec["cardinality"] = spec["cardinality"].capitalize() spec["has_requirements"] = bool(spec["requirements"]) + total_applicable_entities = len(spec["applicable_entities"]) + spec["applicable_entities"] = self.limit_entities(spec["applicable_entities"]) + spec["has_omitted_applicable"] = total_applicable_entities > self.entity_limit + spec["total_omitted_applicable"] = total_applicable_entities - self.entity_limit for requirement in spec["requirements"]: total_passed_entities = len(requirement["passed_entities"]) total_failed_entities = len(requirement["failed_entities"]) @@ -555,7 +588,7 @@ class Ods(Json): def to_file(self, filepath: str) -> None: from odf.opendocument import OpenDocumentSpreadsheet from odf.style import Style, TableCellProperties - from odf.table import Table, TableRow, TableCell + from odf.table import Table, TableCell, TableRow from odf.text import P self.doc = OpenDocumentSpreadsheet() @@ -696,7 +729,7 @@ class OdsSummary(Json): def to_file(self, filepath: str) -> None: from odf.opendocument import OpenDocumentSpreadsheet from odf.style import Style, TableCellProperties - from odf.table import Table, TableRow, TableCell + from odf.table import Table, TableCell, TableRow from odf.text import P self.doc = OpenDocumentSpreadsheet() diff --git a/src/ifctester/ifctester/templates/report.html b/src/ifctester/ifctester/templates/report.html index 456e90e5f4..51beb5c0f5 100644 --- a/src/ifctester/ifctester/templates/report.html +++ b/src/ifctester/ifctester/templates/report.html @@ -152,7 +152,6 @@

Requirements

- {{/has_requirements}}
    {{#requirements}}
  1. @@ -252,6 +251,45 @@
  2. {{/requirements}}
+ {{/has_requirements}} + {{#is_prohibited}} + {{#total_applicable}} + + + + + + + + + + + + + {{#applicable_entities}} + + + + + + + + + {{#extra_of_type}} + + + + {{/extra_of_type}} + {{/applicable_entities}} + {{#has_omitted_applicable}} + + + + {{/has_omitted_applicable}} + +
ClassPredefinedTypeNameDescriptionGlobalIdTag
{{class}}{{predefined_type}}{{name}}{{description}}{{global_id}}{{tag}}
... {{extra_of_type}} more of the same element type ({{type_name}} with Tag {{type_tag}} and GlobalId {{type_global_id}}) not shown ...
... {{total_omitted_applicable}} more failing elements not shown out of {{total_applicable}} total ...
+ {{/total_applicable}} + {{/is_prohibited}} {{/specifications}} diff --git a/src/ifctester/pyproject.toml b/src/ifctester/pyproject.toml index c174854190..1be89ed68b 100644 --- a/src/ifctester/pyproject.toml +++ b/src/ifctester/pyproject.toml @@ -32,3 +32,9 @@ exclude = ["test*"] [tool.setuptools.package-data] "*" = ["*.*"] + +[tool.ruff] +extend = "../../pyproject.toml" +lint.select = [ + "F401", # unused imports +] diff --git a/src/ifctester/test/ids_doc_generator.py b/src/ifctester/test/ids_doc_generator.py index fa95854d35..3788afebbc 100644 --- a/src/ifctester/test/ids_doc_generator.py +++ b/src/ifctester/test/ids_doc_generator.py @@ -16,13 +16,14 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcTester. If not, see . +import functools import os import re import uuid -import pytest -import functools +from pathlib import Path +from xml.dom.minidom import parseString + import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.aggregate import ifcopenshell.api.context import ifcopenshell.api.geometry @@ -32,15 +33,15 @@ import ifcopenshell.api.spatial import ifcopenshell.api.type import ifcopenshell.api.unit import ifcopenshell.guid -import ifctester +import numpy as np +import pytest import test_facet import test_ids -import numpy as np -from pathlib import Path -from xml.dom.minidom import parseString -from ifctester import ids from ifcopenshell import validate +import ifctester +from ifctester import ids + outdir = "build" diff --git a/src/ifctester/test/test_facet.py b/src/ifctester/test/test_facet.py index 167201979b..3c5d91a6e4 100644 --- a/src/ifctester/test/test_facet.py +++ b/src/ifctester/test/test_facet.py @@ -18,13 +18,14 @@ import uuid + import ifcopenshell -import ifcopenshell.api import ifcopenshell.api.aggregate import ifcopenshell.api.classification import ifcopenshell.api.group import ifcopenshell.api.material import ifcopenshell.api.nest +import ifcopenshell.api.owner.settings import ifcopenshell.api.pset import ifcopenshell.api.root import ifcopenshell.api.spatial @@ -32,9 +33,18 @@ import ifcopenshell.api.type import ifcopenshell.api.unit import ifcopenshell.guid import ifcopenshell.util.pset -import ifctester.ids + import ifctester.facet -from ifctester.facet import Entity, Attribute, Classification, Property, PartOf, Material, Restriction +import ifctester.ids +from ifctester.facet import ( + Attribute, + Classification, + Entity, + Material, + PartOf, + Property, + Restriction, +) def set_facet(facet): diff --git a/src/ifctester/test/test_ids.py b/src/ifctester/test/test_ids.py index 9985a14a2c..9410d73948 100644 --- a/src/ifctester/test/test_ids.py +++ b/src/ifctester/test/test_ids.py @@ -17,13 +17,14 @@ # along with IfcTester. If not, see . import os +from typing import Optional + +import ifcopenshell +import ifcopenshell.api.material import pytest import xmlschema -import ifcopenshell -import ifcopenshell.api -import ifcopenshell.api.material + from ifctester import ids -from typing import Optional def run( diff --git a/src/ifctester/webapp/package-lock.json b/src/ifctester/webapp/package-lock.json index 77879e3317..647b9d534e 100644 --- a/src/ifctester/webapp/package-lock.json +++ b/src/ifctester/webapp/package-lock.json @@ -30,7 +30,7 @@ "tailwind-variants": "^1.0.0", "tailwindcss": "^4.0.0", "tw-animate-css": "^1.3.2", - "vite": "^6.3.5" + "vite": "^6.4.1" } }, "node_modules/@ampproject/remapping": { @@ -1160,6 +1160,66 @@ "node": ">=14.0.0" } }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/core": { + "version": "1.4.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.0.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/runtime": { + "version": "1.4.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/wasi-threads": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.10", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@tybys/wasm-util": "^0.9.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@tybys/wasm-util": { + "version": "0.9.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/tslib": { + "version": "2.8.0", + "dev": true, + "inBundle": true, + "license": "0BSD", + "optional": true + }, "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { "version": "4.1.8", "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.8.tgz", @@ -1895,9 +1955,9 @@ } }, "node_modules/minizlib": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz", - "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", "dev": true, "license": "MIT", "dependencies": { @@ -1907,22 +1967,6 @@ "node": ">= 18" } }, - "node_modules/mkdirp": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", - "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", - "dev": true, - "license": "MIT", - "bin": { - "mkdirp": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/mode-watcher": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/mode-watcher/-/mode-watcher-1.1.0.tgz", @@ -2807,17 +2851,16 @@ } }, "node_modules/tar": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", - "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.7.tgz", + "integrity": "sha512-fov56fJiRuThVFXD6o6/Q354S7pnWMJIVlDBYijsTNx6jKSE4pvrDTs6lUnmGvNyfJwFQQwWy3owKz1ucIhveQ==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", - "minizlib": "^3.0.1", - "mkdirp": "^3.0.1", + "minizlib": "^3.1.0", "yallist": "^5.0.0" }, "engines": { @@ -2881,9 +2924,9 @@ "license": "MIT" }, "node_modules/vite": { - "version": "6.3.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", - "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", + "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", "dev": true, "license": "MIT", "dependencies": { diff --git a/src/ifctester/webapp/package.json b/src/ifctester/webapp/package.json index 001aaa110f..4a8abd7897 100644 --- a/src/ifctester/webapp/package.json +++ b/src/ifctester/webapp/package.json @@ -24,7 +24,7 @@ "tailwind-variants": "^1.0.0", "tailwindcss": "^4.0.0", "tw-animate-css": "^1.3.2", - "vite": "^6.3.5" + "vite": "^6.4.1" }, "dependencies": { "eventemitter3": "^5.0.1", diff --git a/src/ifctester/webapp/public/worker/api.py b/src/ifctester/webapp/public/worker/api.py index d5b77d846d..c7d3a90662 100644 --- a/src/ifctester/webapp/public/worker/api.py +++ b/src/ifctester/webapp/public/worker/api.py @@ -1,10 +1,8 @@ import ifcopenshell -import ifcopenshell.util import ifcopenshell.util.attribute import ifcopenshell.util.pset -import ifcopenshell.util.schema -import xml.etree.ElementTree as ET from xmlschema.validators.exceptions import XMLSchemaValidationError + from ifctester.ids import Ids, IdsXmlValidationError, get_schema # https://github.com/buildingSMART/IDS/blob/9914d568c7ac037acd97e58a0d16e9f93c3e3416/Schema/ids.xsd#L232 diff --git a/src/ifctester/webapp/serve.py b/src/ifctester/webapp/serve.py index 245d50c38f..5b18f15545 100644 --- a/src/ifctester/webapp/serve.py +++ b/src/ifctester/webapp/serve.py @@ -16,10 +16,10 @@ # You should have received a copy of the GNU Lesser General Public License # along with IfcTester. If not, see . -import os -import sys import argparse import mimetypes +import os +import sys bonsai_lib_path = os.environ.get("BONSAI_LIB_PATH") print(os.environ) @@ -29,7 +29,7 @@ bonsai_version = os.environ.get("BONSAI_VERSION") if bonsai_lib_path: sys.path.insert(0, bonsai_lib_path) -from flask import Flask, send_from_directory, send_file +from flask import Flask, send_file, send_from_directory # Browsers expecting this specific MIME type for .mjs files, # otherwise they fail to load. diff --git a/src/ifctester/webapp/src/pages/Home/IdsViewer.svelte b/src/ifctester/webapp/src/pages/Home/IdsViewer.svelte index e9645e0984..2fda5f0c2c 100644 --- a/src/ifctester/webapp/src/pages/Home/IdsViewer.svelte +++ b/src/ifctester/webapp/src/pages/Home/IdsViewer.svelte @@ -50,13 +50,7 @@ function getSpecificationStatus(specIndex, auditData) { const spec = auditData.specifications[specIndex]; if (!spec) return null; - - // If no applicable elements and no checks, and it passed, it's actually skipped - if (spec.total_applicable === 0 && spec.total_checks === 0 && spec.status === true) { - return 'skipped'; - } - - return spec.status; + return spec.is_skipped ? 'skipped' : spec.status; } function getSpecificationStats(specIndex, auditData) { @@ -79,11 +73,13 @@ const status = getSpecificationStatus(specIndex, auditData); if (status === 'skipped') { - return "Skipped because no applicable entities were found and the cardinality is OPTIONAL or PROHIBITED"; + return "Skipped because no applicable entities were found and the cardinality is OPTIONAL"; } if (status === false) { // Failed - if (spec.total_applicable === 0) { + if (spec.cardinality === 'prohibited') { + return `Failed because ${spec.total_applicable} prohibited entities were found`; + } else if (spec.total_applicable === 0) { return "Failed because no applicable entities were found but the cardinality is REQUIRED"; } else { const failedChecks = spec.total_checks - spec.total_checks_pass; @@ -240,19 +236,30 @@ {#if "@description" in spec}

{spec["@description"]}

{/if} +
+ {#if spec.applicability["@minOccurs"] === 1 && spec.applicability["@maxOccurs"] === 'unbounded'} + Required + {/if} + {#if spec.applicability["@minOccurs"] === 0 && spec.applicability["@maxOccurs"] === 'unbounded'} + Optional + {/if} + {#if spec.applicability["@minOccurs"] === 0 && spec.applicability["@maxOccurs"] === 0} + Prohibited + {/if} + {#if auditReport} + {@const stats = getSpecificationStats(index, auditReport.data)} + {@const status = getSpecificationStatus(index, auditReport.data)} + {#if stats && spec.applicability["@maxOccurs"] !== 0 && status !== 'skipped'} + Checks: {stats.checksPassed}/{stats.checksTotal} + Requirements: {stats.requirementsPassed}/{stats.requirements} + {/if} + {/if} +
{#if auditReport} {@const reason = getSpecificationReason(index, auditReport.data)} {#if reason}

{reason}

{/if} - {@const stats = getSpecificationStats(index, auditReport.data)} - {@const status = getSpecificationStatus(index, auditReport.data)} - {#if stats && status !== 'skipped'} -
- Checks: {stats.checksPassed}/{stats.checksTotal} - Requirements: {stats.requirementsPassed}/{stats.requirements} -
- {/if} {/if}
@@ -292,9 +299,105 @@ {/if} {/each}
+ + {#if auditReport} + {@const status = getSpecificationStatus(index, auditReport.data)} + {#if ! status && spec.applicability["@maxOccurs"] == 0} + {@const specReport = auditReport.data.specifications[index]} +
+ {#if specReport.applicable_entities && specReport.applicable_entities.length > 0} +
+

Failed Elements ({specReport.applicable_entities.length})

+
+ + + + + + + + + + + + + + + {#each specReport.applicable_entities.slice(0, 10) as entity} + + + + + + + + + + {/each} + {#if specReport.applicable_entities.length > 10} + + + + {/if} + +
ClassPredefinedTypeNameDescriptionWarningGlobalIdTag
{entity.class}{entity.predefined_type || '-'} + + +
{entity.name || '-'}
+
+ +

{entity.name || '-'}

+
+
+
+ + +
{entity.description || '-'}
+
+ +

{entity.description || '-'}

+
+
+
+ + +
{entity.reason || '-'}
+
+ +

{entity.reason || '-'}

+
+
+
+ + +
{entity.global_id || '-'}
+
+ +

{entity.global_id || '-'}

+
+
+
+ + +
{entity.tag || '-'}
+
+ +

{entity.tag || '-'}

+
+
+
... {specReport.applicable_entities.length - 10} more failing elements not shown ...
+
+
+
+ {/if} +
+ + {/if} + {/if} + {#if Array.isArray(spec.requirements) && spec.requirements.length > 0}

Requirements

@@ -497,6 +600,7 @@ {/each}
+ {/if} {/if} @@ -1128,4 +1232,4 @@ white-space: nowrap; cursor: pointer; } - \ No newline at end of file + diff --git a/src/ifcwrap/CMakeLists.txt b/src/ifcwrap/CMakeLists.txt index 149810216e..16e3a86565 100644 --- a/src/ifcwrap/CMakeLists.txt +++ b/src/ifcwrap/CMakeLists.txt @@ -24,27 +24,27 @@ if(POLICY CMP0177) # 3.31 cmake_policy(SET CMP0177 OLD) endif() -FIND_PACKAGE(SWIG) -IF(NOT SWIG_FOUND) - MESSAGE( +find_package(SWIG) +if(NOT SWIG_FOUND) + message( FATAL_ERROR "BUILD_IFCPYTHON enabled, but unable to find SWIG. Disable BUILD_IFCPYTHON or fix SWIG paths to proceed. " "Likely SWIG_EXECUTABLE is missing (current value - '${SWIG_EXECUTABLE}')." ) -ENDIF() +endif() include(GNUInstallDirs) -INCLUDE(${SWIG_USE_FILE}) +include(${SWIG_USE_FILE}) -IF(NOT "${PYTHON_INCLUDE_DIR}" STREQUAL "") +if(NOT "${PYTHON_INCLUDE_DIR}" STREQUAL "") # Hint for FindPython where to find Python_INCLUDE_DIRS. set(Python_INCLUDE_DIR "${PYTHON_INCLUDE_DIR}") - MESSAGE(STATUS "Looking for Python header files in: ${Python_INCLUDE_DIR}") -ENDIF() -IF(NOT "${PYTHON_LIBRARY}" STREQUAL "") + message(STATUS "Looking for Python header files in: ${Python_INCLUDE_DIR}") +endif() +if(NOT "${PYTHON_LIBRARY}" STREQUAL "") # Hint for FindPython where to find Python_LIBRARIES. set(Python_LIBRARY "${PYTHON_LIBRARY}") - MESSAGE(STATUS "Looking for Python library file in: ${Python_LIBRARY}") -ENDIF() + message(STATUS "Looking for Python library file in: ${Python_LIBRARY}") +endif() # Development.Module = headers on Unix, headers+libraries on Windows. # Required variables: @@ -53,38 +53,29 @@ ENDIF() # Unfortunately all paths must be always provided explicitly, not by prefixing PATH. # Otherwise FindPython will break on newer Python versions (list of supported versions is hardcoded). find_package(Python COMPONENTS Development.Module) -IF(NOT Python_Development.Module_FOUND) - MESSAGE(FATAL_ERROR "BUILD_IFCPYTHON enabled, but unable to find Python lib or header. Disable BUILD_IFCPYTHON or fix Python paths to proceed.") -ENDIF() +if(NOT Python_Development.Module_FOUND) + message( + FATAL_ERROR + "BUILD_IFCPYTHON enabled, but unable to find Python lib or header. Disable BUILD_IFCPYTHON or fix Python paths to proceed." + ) +endif() # Ensure version is saved here, from wasm libraries, # not from Python interpreter that might be unrelated to pyodide Python version. set(_python_libs_version "${Python_VERSION_MAJOR}${Python_VERSION_MINOR}") -INCLUDE_DIRECTORIES(BEFORE ${CMAKE_CURRENT_SOURCE_DIR}) +include_directories(BEFORE ${CMAKE_CURRENT_SOURCE_DIR}) -SET(CMAKE_SWIG_FLAGS ${SWIG_DEFINES}) -# NOTE Workaround for most likely missing debug Python libraries on Windows (requires Python built from the source). -# Python 3.5 intaller and onwards will have an option to install the debug libraries too. -# NOTE PYTHON_DEBUG_LIBRARIES appears to be a deprecated variable -IF (WIN32 AND NOT Python_LIBRARY_DEBUG) - MESSAGE(STATUS "Python debug libraries were not found, defining SWIG_PYTHON_INTERPRETER_NO_DEBUG workaround for IfcWrap.") - ADD_DEFINITIONS(-DSWIG_PYTHON_INTERPRETER_NO_DEBUG) -ENDIF() +set(CMAKE_SWIG_FLAGS ${SWIG_DEFINES}) -if (WITH_CGAL) +if(WITH_CGAL) set(LIBSVGFILL svgfill) endif() -SET_SOURCE_FILES_PROPERTIES(IfcPython.i PROPERTIES CPLUSPLUS ON) +set_source_files_properties(IfcPython.i PROPERTIES CPLUSPLUS ON) # Rebuild on changes in other .i files. -SET_PROPERTY( - SOURCE IfcPython.i - PROPERTY DEPENDS - IfcGeomWrapper.i - IfcParseWrapper.i - utils/type_conversion.i - utils/typemaps_in.i - utils/typemaps_out.i +set_property( + SOURCE IfcPython.i + PROPERTY DEPENDS IfcGeomWrapper.i IfcParseWrapper.i utils/type_conversion.i utils/typemaps_in.i utils/typemaps_out.i ) # On Windows there is '_d' prefix for debug builds - e.g. `_d.cp311-win_amd64.pyd`. @@ -92,7 +83,25 @@ SET_PROPERTY( if(WIN32 AND CMAKE_VERSION VERSION_LESS "4.2") set(Python_DEBUG_POSTFIX "_d") endif() -if (CMAKE_VERSION VERSION_GREATER_EQUAL "4.2") +# Workaround for most likely missing debug Python libraries on Windows. +# Even if user has them, it's unlikely that they want to use them for building IfcPython +# since it makes extension incompatiblew with standard Python +# and requires all other extensions to be built in debug mode as well. +# But debug mode is still might be needed - e.g. Blender's Python is using it, if you're running debug build. +if(NOT USE_DEBUG_PYTHON) + set(Python_DEBUG_POSTFIX "") + add_compile_definitions(SWIG_PYTHON_INTERPRETER_NO_DEBUG) + if(Python_LIBRARY_DEBUG) + # If debug libraries were found, then override them with release ones. + get_target_property(IMPORTED_IMPLIB Python::Module IMPORTED_IMPLIB_RELEASE) + get_target_property(IMPORTED_LOCATION Python::Module IMPORTED_LOCATION_RELEASE) + set_target_properties( + Python::Module + PROPERTIES IMPORTED_IMPLIB_DEBUG "${IMPORTED_IMPLIB}" IMPORTED_LOCATION_DEBUG "${IMPORTED_LOCATION}" + ) + endif() +endif() +if(CMAKE_VERSION VERSION_GREATER_EQUAL "4.2") # `DEBUG_POSTFIX` argument was added in 4.2. swig_add_library(ifcopenshell_wrapper LANGUAGE python SOURCES IfcPython.i DEBUG_POSTFIX "${Python_DEBUG_POSTFIX}") else() @@ -100,15 +109,12 @@ else() # swig py wrapper will try to import `_ifcopenshell_wrapper_d` module and would fail. set(SWIG_MODULE_ifcopenshell_wrapper_EXTRA_FLAGS "-interface" "_ifcopenshell_wrapper") swig_add_library(ifcopenshell_wrapper LANGUAGE python SOURCES IfcPython.i) - set_target_properties( - ifcopenshell_wrapper PROPERTIES - DEBUG_POSTFIX "${Python_DEBUG_POSTFIX}" - ) + set_target_properties(ifcopenshell_wrapper PROPERTIES DEBUG_POSTFIX "${Python_DEBUG_POSTFIX}") endif() target_link_libraries(ifcopenshell_wrapper PRIVATE Python::Module) -SET_PROPERTY(TARGET ifcopenshell_wrapper PROPERTY SWIG_DEPENDS ${IFCOPENSHELL_LIBRARIES}) -if (WASM_BUILD) +set_property(TARGET ifcopenshell_wrapper PROPERTY SWIG_DEPENDS ${IFCOPENSHELL_LIBRARIES}) +if(WASM_BUILD) # SIDE_MODULE=1 - add to .so all symbols from linked archives (default used by pyodide). # Since currently libIfcGeom.a seems to be linked twice it results in duplicated symbols and compilation errors. # Possibly in the future we can clean up linked libs and try `=1`. @@ -117,11 +123,7 @@ if (WASM_BUILD) if(CMAKE_GENERATOR MATCHES "Makefile" AND CMAKE_VERSION VERSION_LESS "4.2") # Accomodate bug in cmake makefile generator (fixed in 4.2+). # https://gitlab.kitware.com/cmake/cmake/-/issues/27326 - string( - REPLACE "SIDE_MODULE=1" "SIDE_MODULE=2" - CMAKE_MODULE_LINKER_FLAGS - "${CMAKE_MODULE_LINKER_FLAGS}" - ) + string(REPLACE "SIDE_MODULE=1" "SIDE_MODULE=2" CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS}") endif() target_link_options( ifcopenshell_wrapper @@ -129,12 +131,17 @@ if (WASM_BUILD) ) endif() if("$ENV{LDFLAGS}" MATCHES ".undefined.suppress") -# On osx there is some state in the python dylib. With `-Wl,undefined,suppress` we can ignore the missing symbols at compile time. -target_link_libraries(ifcopenshell_wrapper PRIVATE ${IFCOPENSHELL_LIBRARIES} ${OPENCASCADE_LIBRARIES} ${Boost_LIBRARIES} ${LIBSVGFILL}) + # On osx there is some state in the python dylib. With `-Wl,undefined,suppress` we can ignore the missing symbols at compile time. + target_link_libraries( + ifcopenshell_wrapper + PRIVATE ${IFCOPENSHELL_LIBRARIES} ${OpenCASCADE_LIBRARIES} ${Boost_LIBRARIES} ${LIBSVGFILL} + ) else() -target_link_libraries(ifcopenshell_wrapper PRIVATE ${IFCOPENSHELL_LIBRARIES} ${LIBSVGFILL}) + target_link_libraries(ifcopenshell_wrapper PRIVATE ${IFCOPENSHELL_LIBRARIES} ${LIBSVGFILL}) endif() -if ((NOT WIN32) AND BUILD_SHARED_LIBS) +target_link_libraries(ifcopenshell_wrapper PRIVATE ${CGAL_LIBRARIES}) +target_link_libraries(ifcopenshell_wrapper PRIVATE IfcGeom ${kernel_libraries}) +if((NOT WIN32) AND BUILD_SHARED_LIBS) SET_INSTALL_RPATHS(ifcopenshell_wrapper "${IFCDIRS};${OCC_LIBRARY_DIR}") endif() @@ -142,10 +149,10 @@ endif() # directory in which the wrapper can be installed. if(NOT ${PYTHON_EXECUTABLE} STREQUAL "") set(Python_EXECUTABLE "${PYTHON_EXECUTABLE}") - MESSAGE(STATUS "Looking for Python interpreter in: ${PYTHON_EXECUTABLE}") + message(STATUS "Looking for Python interpreter in: ${PYTHON_EXECUTABLE}") endif() -FIND_PACKAGE(Python COMPONENTS Interpreter) -IF(Python_Interpreter_FOUND OR PYTHON_MODULE_INSTALL_DIR) +find_package(Python COMPONENTS Interpreter) +if(Python_Interpreter_FOUND OR PYTHON_MODULE_INSTALL_DIR) # Python_SOABI example value is 'cp311-win_amd64'. if(WASM_BUILD) # For WASM we usually don't provide interpreter, @@ -158,48 +165,43 @@ IF(Python_Interpreter_FOUND OR PYTHON_MODULE_INSTALL_DIR) else() set(PYTHON_EXTENSION_SUFFIX ".${Python_SOABI}.so") endif() - set_target_properties( - ifcopenshell_wrapper PROPERTIES - SUFFIX ${PYTHON_EXTENSION_SUFFIX} - ) - if (PYTHON_MODULE_INSTALL_DIR) - set(python_package_dir "${PYTHON_MODULE_INSTALL_DIR}") + set_target_properties(ifcopenshell_wrapper PROPERTIES SUFFIX ${PYTHON_EXTENSION_SUFFIX}) + if(PYTHON_MODULE_INSTALL_DIR) + set(python_package_dir "${PYTHON_MODULE_INSTALL_DIR}") else() - IF (USERSPACE_PYTHON_PREFIX) - EXECUTE_PROCESS( + if(USERSPACE_PYTHON_PREFIX) + execute_process( COMMAND ${PYTHON_EXECUTABLE} -c "import sys; import site; sys.stdout.write(site.USER_SITE)" OUTPUT_VARIABLE python_package_dir ) - ELSE () + else() set(python_package_dir "${Python_SITEARCH}") - ENDIF() - if (BUILD_PACKAGE) + endif() + if(BUILD_PACKAGE) set(python_package_dir ${CMAKE_INSTALL_LIBDIR}/python${PYTHON_VERSION_MAJOR}/dist-packages/) endif() endif() - IF("${python_package_dir}" STREQUAL "") - MESSAGE(WARNING "Unable to locate Python site-package directory, unable to install the Python wrapper") - ELSE() + if("${python_package_dir}" STREQUAL "") + message(WARNING "Unable to locate Python site-package directory, unable to install the Python wrapper") + else() message(STATUS "Python wrapper will be installed to '${python_package_dir}'.") - FILE(GLOB_RECURSE sourcefiles - "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/*" - ) - FOREACH(file ${sourcefiles}) - FILE(RELATIVE_PATH relative "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/" "${file}") - GET_FILENAME_COMPONENT(dir "${relative}" DIRECTORY) + file(GLOB_RECURSE sourcefiles "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/*") + foreach(file ${sourcefiles}) + file(RELATIVE_PATH relative "${CMAKE_CURRENT_SOURCE_DIR}/../ifcopenshell-python/ifcopenshell/" "${file}") + get_filename_component(dir "${relative}" DIRECTORY) if(NOT IS_DIRECTORY "${file}") - INSTALL(FILES "${file}" - DESTINATION "${python_package_dir}/ifcopenshell/${dir}") + install(FILES "${file}" DESTINATION "${python_package_dir}/ifcopenshell/${dir}") endif() - ENDFOREACH() - INSTALL(FILES "${CMAKE_BINARY_DIR}/ifcwrap/ifcopenshell_wrapper.py" - DESTINATION "${python_package_dir}/ifcopenshell") - INSTALL(TARGETS ifcopenshell_wrapper - DESTINATION "${python_package_dir}/ifcopenshell") - if (MSVC) - INSTALL(FILES $ DESTINATION bin OPTIONAL) - endif() - ENDIF() -ELSE() - MESSAGE(WARNING "No Python interpreter found, unable to install the Python wrapper") -ENDIF() + endforeach() + install( + FILES "${CMAKE_BINARY_DIR}/ifcwrap/ifcopenshell_wrapper.py" + DESTINATION "${python_package_dir}/ifcopenshell" + ) + install(TARGETS ifcopenshell_wrapper DESTINATION "${python_package_dir}/ifcopenshell") + if(MSVC) + install(FILES $ DESTINATION bin OPTIONAL) + endif() + endif() +else() + message(WARNING "No Python interpreter found, unable to install the Python wrapper") +endif() diff --git a/src/ifcwrap/IfcGeomWrapper.i b/src/ifcwrap/IfcGeomWrapper.i index 6991abbdaf..e155c2837e 100644 --- a/src/ifcwrap/IfcGeomWrapper.i +++ b/src/ifcwrap/IfcGeomWrapper.i @@ -275,6 +275,7 @@ namespace { %include "../serializers/XmlSerializer.h" %include "../serializers/GltfSerializer.h" %include "../serializers/TtlWktSerializer.h" +%include "../serializers/JsonSerializer.h" %extend ifcopenshell::geometry::taxonomy::style { size_t instance_id() const { diff --git a/src/ifcwrap/IfcPython.i b/src/ifcwrap/IfcPython.i index 8595e264e2..db772ba26e 100644 --- a/src/ifcwrap/IfcPython.i +++ b/src/ifcwrap/IfcPython.i @@ -162,6 +162,10 @@ %ignore MaxOffset; %ignore MaxOffsetDeviation; %ignore ApplyOffset; +%ignore SeparateZUpNode; + +%ignore XmlSerializerFactory; +%ignore JsonSerializerFactory; // Triangulated representation helper struct %ignore EdgeKey; @@ -308,6 +312,7 @@ constexpr bool is_std_vector_vector_v = is_std_vector_vector::value; #include "../serializers/GltfSerializer.h" #include "../serializers/TtlWktSerializer.h" #include "../serializers/RocksDbSerializer.h" + #include "../serializers/JsonSerializer.h" #ifdef HAS_SCHEMA_2x3 #include "../ifcparse/Ifc2x3.h" diff --git a/src/ifcwrap/utils/type_conversion.i b/src/ifcwrap/utils/type_conversion.i index 292a2e0c11..3eacf55fac 100644 --- a/src/ifcwrap/utils/type_conversion.i +++ b/src/ifcwrap/utils/type_conversion.i @@ -31,6 +31,7 @@ bool check_aggregate_of_type(PyObject* aggregate, void* type_obj) { if (!PySequence_Check(aggregate)) return false; + if (PySequence_Size(aggregate) == -1) return false; for(Py_ssize_t i = 0; i < PySequence_Size(aggregate); ++i) { PyObject* element = PySequence_GetItem(aggregate, i); // This is equivalent to the PyFloat_CheckExact macro. This means @@ -46,6 +47,7 @@ bool check_aggregate_of_aggregate_of_type(PyObject* aggregate, void* type_obj) { if (!PySequence_Check(aggregate)) return false; + if (PySequence_Size(aggregate) == -1) return false; for(Py_ssize_t i = 0; i < PySequence_Size(aggregate); ++i) { PyObject* element = PySequence_GetItem(aggregate, i); bool b = check_aggregate_of_type(element, type_obj); diff --git a/src/opencdeserver/api/app/api/bcf.py b/src/opencdeserver/api/app/api/bcf.py index 58a907730f..81047e1f23 100644 --- a/src/opencdeserver/api/app/api/bcf.py +++ b/src/opencdeserver/api/app/api/bcf.py @@ -1,19 +1,16 @@ from uuid import UUID -from fastapi import APIRouter, Depends, UploadFile, HTTPException + +from fastapi import APIRouter, Depends, HTTPException, UploadFile from fastapi.responses import FileResponse - -from security.secure import get_current_active_user - from models.bcf_request import * from models.bcf_response import * -from models.request import * from models.other import * - +from models.request import * from repository.bcf import bcf_db +from security.secure import get_current_active_user from api.logging import LoggingRoute - router = APIRouter(route_class=LoggingRoute) # ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- diff --git a/src/opencdeserver/api/app/api/documents.py b/src/opencdeserver/api/app/api/documents.py index c22ab0506f..2c60fe0139 100644 --- a/src/opencdeserver/api/app/api/documents.py +++ b/src/opencdeserver/api/app/api/documents.py @@ -1,27 +1,22 @@ import collections import os import shutil -import traceback import sys - -from fastapi import HTTPException, status, APIRouter, Request, Depends -from fastapi import UploadFile, Form -from fastapi.responses import FileResponse, HTMLResponse -from fastapi.templating import Jinja2Templates -from fastapi.encoders import jsonable_encoder - +import traceback from typing import Union from uuid import UUID, uuid4 -from pydantic import ValidationError -from security.secure import get_current_active_user - -from repository.documents import doc_db - -from models.documents_request import * -from models.documents_response import * +from fastapi import APIRouter, Depends, Form, HTTPException, Request, UploadFile, status +from fastapi.encoders import jsonable_encoder +from fastapi.responses import FileResponse, HTMLResponse +from fastapi.templating import Jinja2Templates from models.documents_common import * from models.documents_other import * +from models.documents_request import * +from models.documents_response import * +from pydantic import ValidationError +from repository.documents import doc_db +from security.secure import get_current_active_user from api.logging import LoggingRoute diff --git a/src/opencdeserver/api/app/api/foundation.py b/src/opencdeserver/api/app/api/foundation.py index 25c6036ac8..7d63eb749d 100644 --- a/src/opencdeserver/api/app/api/foundation.py +++ b/src/opencdeserver/api/app/api/foundation.py @@ -1,21 +1,16 @@ import os - from typing import Optional - -from fastapi import APIRouter, Request, Form -from fastapi import Depends, HTTPException, status -from fastapi.security import HTTPBasicCredentials, HTTPBasic -from fastapi.responses import HTMLResponse -from fastapi.templating import Jinja2Templates - -from models.request import * - -from repository.foundation import foundation_db -from security.secure import authenticate_user, get_current_active_user - from uuid import uuid4 + +from fastapi import APIRouter, Depends, Form, HTTPException, Request, status +from fastapi.responses import HTMLResponse +from fastapi.security import HTTPBasic, HTTPBasicCredentials +from fastapi.templating import Jinja2Templates +from models.request import * +from repository.foundation import foundation_db +from security.secure import authenticate_user, get_current_active_user, get_secrets + from api.logging import LoggingRoute -from security.secure import get_secrets secrets = get_secrets() diff --git a/src/opencdeserver/api/app/api/logging.py b/src/opencdeserver/api/app/api/logging.py index de368ccb9c..8d85cbf80b 100644 --- a/src/opencdeserver/api/app/api/logging.py +++ b/src/opencdeserver/api/app/api/logging.py @@ -1,11 +1,12 @@ -from fastapi import FastAPI, APIRouter, Response, Request +import logging +from collections.abc import Callable + +import httpx +from fastapi import APIRouter, FastAPI, Request, Response +from fastapi.routing import APIRoute from starlette.background import BackgroundTask from starlette.responses import StreamingResponse -from fastapi.routing import APIRoute from starlette.types import Message -from collections.abc import Callable -import logging -import httpx def log_info(req_body, res_body, route_url): diff --git a/src/opencdeserver/api/app/api/user.py b/src/opencdeserver/api/app/api/user.py index 5628a4cf05..def1a1573e 100644 --- a/src/opencdeserver/api/app/api/user.py +++ b/src/opencdeserver/api/app/api/user.py @@ -1,23 +1,19 @@ import collections import os -import traceback import sys - -from fastapi import APIRouter, Request, Depends -from fastapi.responses import FileResponse, HTMLResponse -from fastapi.templating import Jinja2Templates -from fastapi.encoders import jsonable_encoder - +import traceback from uuid import UUID -from pydantic import ValidationError -from security.secure import get_current_active_user - -from repository.documents import doc_db - +from fastapi import APIRouter, Depends, Request +from fastapi.encoders import jsonable_encoder +from fastapi.responses import FileResponse, HTMLResponse +from fastapi.templating import Jinja2Templates +from models.documents_other import * from models.documents_request import * from models.documents_response import * -from models.documents_other import * +from pydantic import ValidationError +from repository.documents import doc_db +from security.secure import get_current_active_user from api.logging import LoggingRoute diff --git a/src/opencdeserver/api/app/database/neo4j.py b/src/opencdeserver/api/app/database/neo4j.py index 9ad68759d2..ff8a4e7cde 100644 --- a/src/opencdeserver/api/app/database/neo4j.py +++ b/src/opencdeserver/api/app/database/neo4j.py @@ -1,15 +1,12 @@ -import jsonpickle import os -import pytz - -from dateutil import parser -from uuid import uuid4, UUID - -from neo4j import GraphDatabase - from datetime import datetime, timezone +from uuid import UUID, uuid4 +import jsonpickle +import pytz +from dateutil import parser from models.request import UserInDB +from neo4j import GraphDatabase from security.secrets import get_secrets get_secrets() diff --git a/src/opencdeserver/api/app/ifcgraph/ifcgraph.py b/src/opencdeserver/api/app/ifcgraph/ifcgraph.py index afe1c36749..e39878a286 100644 --- a/src/opencdeserver/api/app/ifcgraph/ifcgraph.py +++ b/src/opencdeserver/api/app/ifcgraph/ifcgraph.py @@ -18,11 +18,12 @@ # Some modifications have been made to the code. # -from py2neo.data import Node, Relationship from uuid import uuid4 + import ifcopenshell import ifcopenshell.util.schema from py2neo import Graph +from py2neo.data import Node, Relationship # Create the basic node with literal attributes and the class hierarchy diff --git a/src/opencdeserver/api/app/main.py b/src/opencdeserver/api/app/main.py index 4862106a55..2d189b8198 100644 --- a/src/opencdeserver/api/app/main.py +++ b/src/opencdeserver/api/app/main.py @@ -1,12 +1,9 @@ +from api import bcf, documents, foundation from fastapi import FastAPI, Request -from fastapi.responses import HTMLResponse, FileResponse from fastapi.middleware.cors import CORSMiddleware +from fastapi.responses import FileResponse, HTMLResponse from fastapi.templating import Jinja2Templates -from api import foundation -from api import bcf -from api import documents - endpoint_metadata = [ {"name": "api_versions_get", "description": "/foundation/versions"}, {"name": "foundation_auth_get", "description": "/foundation/1.0/auth"}, diff --git a/src/opencdeserver/api/app/models/bcf_common.py b/src/opencdeserver/api/app/models/bcf_common.py index 30df15b565..d93d2c3dff 100644 --- a/src/opencdeserver/api/app/models/bcf_common.py +++ b/src/opencdeserver/api/app/models/bcf_common.py @@ -1,6 +1,7 @@ -from pydantic import BaseModel -from typing import Optional from enum import Enum +from typing import Optional + +from pydantic import BaseModel class BimSnippet(BaseModel): diff --git a/src/opencdeserver/api/app/models/bcf_request.py b/src/opencdeserver/api/app/models/bcf_request.py index 52fd9cad84..aa14bedd83 100644 --- a/src/opencdeserver/api/app/models/bcf_request.py +++ b/src/opencdeserver/api/app/models/bcf_request.py @@ -1,7 +1,21 @@ -from pydantic import BaseModel from typing import Optional -from models.bcf_common import BimSnippet, BitmapType, Location, Direction, SnapshotType, Component -from models.bcf_common import Coloring, OrthogonalCamera, Visibility, PerspectiveCamera, Line, ClippingPlane + +from pydantic import BaseModel + +from models.bcf_common import ( + BimSnippet, + BitmapType, + ClippingPlane, + Coloring, + Component, + Direction, + Line, + Location, + OrthogonalCamera, + PerspectiveCamera, + SnapshotType, + Visibility, +) class ProjectPUT(BaseModel): diff --git a/src/opencdeserver/api/app/models/documents_common.py b/src/opencdeserver/api/app/models/documents_common.py index 1e269babad..a32a3551be 100644 --- a/src/opencdeserver/api/app/models/documents_common.py +++ b/src/opencdeserver/api/app/models/documents_common.py @@ -1,6 +1,6 @@ -from pydantic import BaseModel, Field, constr from typing import Optional +from pydantic import BaseModel, Field, constr # This file contains models used in both requests and responses during upload and download of documents. diff --git a/src/opencdeserver/api/app/models/documents_not_used.py b/src/opencdeserver/api/app/models/documents_not_used.py index e0c78ba09f..902eb23137 100644 --- a/src/opencdeserver/api/app/models/documents_not_used.py +++ b/src/opencdeserver/api/app/models/documents_not_used.py @@ -1,7 +1,8 @@ from typing import Optional -from pydantic import BaseModel -from models.documents_common import Document, DocumentVersion +from pydantic import BaseModel + +from models.documents_common import Document, DocumentVersion # This file contains models that are not used at all, at least not yet. diff --git a/src/opencdeserver/api/app/models/documents_other.py b/src/opencdeserver/api/app/models/documents_other.py index 9530268df7..253e5ecd80 100644 --- a/src/opencdeserver/api/app/models/documents_other.py +++ b/src/opencdeserver/api/app/models/documents_other.py @@ -1,10 +1,10 @@ -from pydantic import BaseModel, Field from typing import Optional -from models.documents_common import CallbackLink, Document -from models.documents_request import FileToUpload, DocumentMetadataEntry -from models.request import User +from pydantic import BaseModel, Field +from models.documents_common import CallbackLink, Document +from models.documents_request import DocumentMetadataEntry, FileToUpload +from models.request import User # This file contains models that are neither used in requests nor in responses, # and they can be used during both upload and download of documents. diff --git a/src/opencdeserver/api/app/models/documents_request.py b/src/opencdeserver/api/app/models/documents_request.py index 6eb9210a63..e58fe3af2a 100644 --- a/src/opencdeserver/api/app/models/documents_request.py +++ b/src/opencdeserver/api/app/models/documents_request.py @@ -1,10 +1,10 @@ -from pydantic import BaseModel, Field, constr -from typing import Optional from enum import Enum +from typing import Optional + +from pydantic import BaseModel, Field, constr from models.documents_common import CallbackLink - # This file contains models used in requests during upload and download of documents. diff --git a/src/opencdeserver/api/app/models/documents_response.py b/src/opencdeserver/api/app/models/documents_response.py index 2e98c70583..a2a53381ca 100644 --- a/src/opencdeserver/api/app/models/documents_response.py +++ b/src/opencdeserver/api/app/models/documents_response.py @@ -1,10 +1,10 @@ -from pydantic import BaseModel, Field, constr -from typing import Optional from enum import Enum +from typing import Optional + +from pydantic import BaseModel, Field, constr from models.documents_common import DocumentVersion, LinkData - # This file contains models used in responses during upload and download of documents. diff --git a/src/opencdeserver/api/app/models/foundation_other.py b/src/opencdeserver/api/app/models/foundation_other.py index 486a9b82f2..f6a894b5ad 100644 --- a/src/opencdeserver/api/app/models/foundation_other.py +++ b/src/opencdeserver/api/app/models/foundation_other.py @@ -1,4 +1,5 @@ from __future__ import annotations + from pydantic import BaseModel diff --git a/src/opencdeserver/api/app/models/other.py b/src/opencdeserver/api/app/models/other.py index c71593ce70..024db30398 100644 --- a/src/opencdeserver/api/app/models/other.py +++ b/src/opencdeserver/api/app/models/other.py @@ -1,4 +1,5 @@ from __future__ import annotations + from pydantic import BaseModel diff --git a/src/opencdeserver/api/app/models/request.py b/src/opencdeserver/api/app/models/request.py index 40271cf37a..616df5ef15 100644 --- a/src/opencdeserver/api/app/models/request.py +++ b/src/opencdeserver/api/app/models/request.py @@ -1,4 +1,5 @@ from __future__ import annotations + from pydantic import BaseModel diff --git a/src/opencdeserver/api/app/repository/bcf.py b/src/opencdeserver/api/app/repository/bcf.py index 80f9d172a1..a65c43d115 100644 --- a/src/opencdeserver/api/app/repository/bcf.py +++ b/src/opencdeserver/api/app/repository/bcf.py @@ -1,13 +1,10 @@ import base64 import os -import jsonpickle - -from fastapi import UploadFile, HTTPException - from uuid import UUID, uuid4 +import jsonpickle from database.neo4j import MyDB, driver - +from fastapi import HTTPException, UploadFile from models.bcf_request import * from models.bcf_response import * from models.request import * diff --git a/src/opencdeserver/api/app/repository/documents.py b/src/opencdeserver/api/app/repository/documents.py index 39f5576065..95c669a7bc 100644 --- a/src/opencdeserver/api/app/repository/documents.py +++ b/src/opencdeserver/api/app/repository/documents.py @@ -1,22 +1,17 @@ -import os import math - -from uuid import UUID, uuid4 +import os from typing import Union - -from fastapi import HTTPException - -from database.neo4j import MyDB, driver - -from models.documents_request import * -from models.documents_response import * -from models.documents_common import * -from models.documents_other import * +from uuid import UUID, uuid4 import ifcopenshell -from py2neo import Graph - +from database.neo4j import MyDB, driver +from fastapi import HTTPException from ifcgraph.ifcgraph import create_full_graph +from models.documents_common import * +from models.documents_other import * +from models.documents_request import * +from models.documents_response import * +from py2neo import Graph class DOCDB(MyDB): diff --git a/src/opencdeserver/api/app/repository/foundation.py b/src/opencdeserver/api/app/repository/foundation.py index 2554bfee8d..d80dc78c24 100644 --- a/src/opencdeserver/api/app/repository/foundation.py +++ b/src/opencdeserver/api/app/repository/foundation.py @@ -1,19 +1,14 @@ -import os import hashlib - +import os from datetime import timedelta -from fastapi import HTTPException - from database.neo4j import MyDB, driver -from security.secure import create_access_token +from fastapi import HTTPException from jose import jwt - -from security.secrets import get_secrets -from security.secure import credentials_exception - from models.foundation_other import * from models.other import * +from security.secrets import get_secrets +from security.secure import create_access_token, credentials_exception secrets = get_secrets() diff --git a/src/opencdeserver/api/app/security/secure.py b/src/opencdeserver/api/app/security/secure.py index 77c225ee24..fec837b868 100644 --- a/src/opencdeserver/api/app/security/secure.py +++ b/src/opencdeserver/api/app/security/secure.py @@ -1,17 +1,15 @@ from __future__ import annotations -from fastapi import Depends, HTTPException, status, Security -from fastapi.security import OAuth2AuthorizationCodeBearer, SecurityScopes +import os from datetime import datetime, timedelta -from passlib.context import CryptContext -from jose import jwt, JWTError - -from models.other import TokenData -from models.request import User from database.neo4j import db -import os - +from fastapi import Depends, HTTPException, Security, status +from fastapi.security import OAuth2AuthorizationCodeBearer, SecurityScopes +from jose import JWTError, jwt +from models.other import TokenData +from models.request import User +from passlib.context import CryptContext from security.secrets import get_secrets secrets = get_secrets() diff --git a/src/pyodide/demo-app/context.py b/src/pyodide/demo-app/context.py index 682aab7589..f330c21940 100644 --- a/src/pyodide/demo-app/context.py +++ b/src/pyodide/demo-app/context.py @@ -1,11 +1,17 @@ import ifcopenshell -import ifcopenshell.api.feature -import ifcopenshell.geom import ifcopenshell.api +import ifcopenshell.api.aggregate +import ifcopenshell.api.context +import ifcopenshell.api.feature +import ifcopenshell.api.geometry +import ifcopenshell.api.root +import ifcopenshell.api.spatial +import ifcopenshell.api.type +import ifcopenshell.api.unit +import ifcopenshell.geom +import ifcopenshell.util.representation import ifcopenshell.util.unit - import numpy as np - import propertygroups O = 0.0, 0.0, 0.0 @@ -27,57 +33,55 @@ class Context: def open(self, file_content): self.model = ifcopenshell.file.from_string(file_content) - body = [ctx for ctx in self.model.by_type('IfcGeometricRepresentationContext') if ctx.ContextIdentifier == 'Body'] + body = [ + ctx for ctx in self.model.by_type("IfcGeometricRepresentationContext") if ctx.ContextIdentifier == "Body" + ] if body: self.body = body[0] else: - context = ifcopenshell.api.run("context.add_context", self.model, context_type="Model") - self.body = ifcopenshell.api.run( - "context.add_context", + context = ifcopenshell.api.context.add_context(self.model, context_type="Model") + self.body = ifcopenshell.api.context.add_context( self.model, context_type="Model", context_identifier="Body", target_view="MODEL_VIEW", parent=context, ) - axis = [ctx for ctx in self.model.by_type('IfcGeometricRepresentationContext') if ctx.ContextIdentifier == 'Axis'] + axis = [ + ctx for ctx in self.model.by_type("IfcGeometricRepresentationContext") if ctx.ContextIdentifier == "Axis" + ] if body: self.axis = axis[0] else: - context = ifcopenshell.api.run("context.add_context", self.model, context_type="Model") - self.axis = ifcopenshell.api.run( - "context.add_context", + context = ifcopenshell.api.context.add_context(self.model, context_type="Model") + self.axis = ifcopenshell.api.context.add_context( self.model, context_type="Model", context_identifier="Axis", target_view="GRAPH_VIEW", parent=context, ) - self.storey = self.model.by_type('IfcBuildingStorey')[0] + self.storey = self.model.by_type("IfcBuildingStorey")[0] def _create_empty_model(self): # Create a blank model self.model = ifcopenshell.file() # All projects must have one IFC Project element - project = ifcopenshell.api.run( - "root.create_entity", self.model, ifc_class="IfcProject", name="My Project" - ) + project = ifcopenshell.api.root.create_entity(self.model, ifc_class="IfcProject", name="My Project") # Geometry is optional in IFC, but because we want to use geometry in this example, let's define units # Assigning without arguments defaults to metric units - ifcopenshell.api.run("unit.assign_unit", self.model) + ifcopenshell.api.unit.assign_unit(self.model) # Let's create a modeling geometry context, so we can store 3D geometry (note: IFC supports 2D too!) - context = ifcopenshell.api.run("context.add_context", self.model, context_type="Model") + context = ifcopenshell.api.context.add_context(self.model, context_type="Model") # In particular, in this example we want to store the 3D "body" geometry of objects, i.e. the body shape - self.body = ifcopenshell.api.run( - "context.add_context", + self.body = ifcopenshell.api.context.add_context( self.model, context_type="Model", context_identifier="Body", target_view="MODEL_VIEW", parent=context, ) - self.axis = ifcopenshell.api.run( - "context.add_context", + self.axis = ifcopenshell.api.context.add_context( self.model, context_type="Model", context_identifier="Axis", @@ -85,69 +89,55 @@ class Context: parent=context, ) # Create a site, building, and storey. Many hierarchies are possible. - site = ifcopenshell.api.run( - "root.create_entity", self.model, ifc_class="IfcSite", name="My Site" - ) - building = ifcopenshell.api.run( - "root.create_entity", self.model, ifc_class="IfcBuilding", name="Building A" - ) - self.storey = ifcopenshell.api.run( - "root.create_entity", + site = ifcopenshell.api.root.create_entity(self.model, ifc_class="IfcSite", name="My Site") + building = ifcopenshell.api.root.create_entity(self.model, ifc_class="IfcBuilding", name="Building A") + self.storey = ifcopenshell.api.root.create_entity( self.model, ifc_class="IfcBuildingStorey", name="Ground Floor", ) # Since the site is our top level location, assign it to the project # Then place our building on the site, and our storey in the building - ifcopenshell.api.run( - "aggregate.assign_object", + ifcopenshell.api.aggregate.assign_object( self.model, relating_object=project, products=[site], ) - ifcopenshell.api.run( - "aggregate.assign_object", + ifcopenshell.api.aggregate.assign_object( self.model, relating_object=site, products=[building], ) - ifcopenshell.api.run( - "aggregate.assign_object", + ifcopenshell.api.aggregate.assign_object( self.model, relating_object=building, products=[self.storey], ) - def create_2pt_wall( - self, p1, p2, elevation, height, thickness, container, wall_type=None - ): + def create_2pt_wall(self, p1, p2, elevation, height, thickness, container, wall_type=None): p1 = np.array([p1[0], p1[1]]) p2 = np.array([p2[0], p2[1]]) - wall = ifcopenshell.api.run("root.create_entity", self.model, ifc_class="IfcWall") + wall = ifcopenshell.api.root.create_entity(self.model, ifc_class="IfcWall") length = float(np.linalg.norm(p2 - p1)) - representation = ifcopenshell.api.run( - "geometry.add_wall_representation", + representation = ifcopenshell.api.geometry.add_wall_representation( self.model, context=self.body, length=length, height=height, thickness=thickness, ) - ifcopenshell.api.run( - "geometry.assign_representation", + ifcopenshell.api.geometry.assign_representation( self.model, product=wall, representation=representation, ) - representation = ifcopenshell.api.run( - "geometry.add_axis_representation", + representation = ifcopenshell.api.geometry.add_axis_representation( self.model, context=self.axis, axis=[(0.0, 0.0), (length, 0.0)], ) - ifcopenshell.api.run( - "geometry.assign_representation", + ifcopenshell.api.geometry.assign_representation( self.model, product=wall, representation=representation, @@ -162,16 +152,14 @@ class Context: [0, 0, 0, 1], ] ) - ifcopenshell.api.run("geometry.edit_object_placement", self.model, product=wall, matrix=matrix) - ifcopenshell.api.run( - "spatial.assign_container", + ifcopenshell.api.geometry.edit_object_placement(self.model, product=wall, matrix=matrix) + ifcopenshell.api.spatial.assign_container( self.model, relating_structure=container, products=[wall], ) if wall_type: - ifcopenshell.api.run( - "type.assign_type", + ifcopenshell.api.type.assign_type( self.model, related_object=wall, relating_type=wall_type, @@ -188,46 +176,37 @@ class Context: def create_fill(self, ty, pt, wall): if isinstance(wall, str): wall = self.model[wall] - if not wall.is_a('IfcWall'): + if not wall.is_a("IfcWall"): raise ValueError("Only 'wall' hosts are supported") - if ty == 'door': + if ty == "door": props = propertygroups.BIMDoorProperties() - elif ty == 'window': + elif ty == "window": props = propertygroups.BIMWindowProperties() else: raise ValueError("Only 'door' or 'window' fills are supported") si_conversion = ifcopenshell.util.unit.calculate_unit_scale(self.model) - body = ifcopenshell.util.representation.get_context( - self.model, "Model", "Body", "MODEL_VIEW" - ) + body = ifcopenshell.util.representation.get_context(self.model, "Model", "Body", "MODEL_VIEW") representation_data = props.to_dict(si_conversion=si_conversion) representation_data["context"] = body - door_representation = ifcopenshell.api.run( - f"geometry.add_{ty}_representation", self.model, **representation_data - ) - door = ifcopenshell.api.run( - "root.create_entity", self.model, ifc_class=f"ifc{ty}" - ) + if ty == "door": + door_representation = ifcopenshell.api.geometry.add_door_representation(self.model, **representation_data) + else: + door_representation = ifcopenshell.api.geometry.add_window_representation(self.model, **representation_data) + door = ifcopenshell.api.root.create_entity(self.model, ifc_class=f"ifc{ty}") door.OverallWidth = props.overall_width / si_conversion door.OverallHeight = props.overall_height / si_conversion - ifcopenshell.api.run( - "geometry.assign_representation", + ifcopenshell.api.geometry.assign_representation( self.model, product=door, representation=door_representation, ) - ifcopenshell.api.run( - "spatial.assign_container", + ifcopenshell.api.spatial.assign_container( self.model, relating_structure=self.storey, products=[door], ) - r = [ - r - for r in wall.Representation.Representations - if r.RepresentationIdentifier == "Axis" - ] + r = [r for r in wall.Representation.Representations if r.RepresentationIdentifier == "Axis"] if not r: raise ValueError("Axis representation is needed") r = r[0] @@ -250,8 +229,7 @@ class Context: v_dot_v = np.dot(v, v) t = AP_dot_v / v_dot_v * np.linalg.norm(v) / si_conversion - opening = ifcopenshell.api.run( - "root.create_entity", + opening = ifcopenshell.api.root.create_entity( self.model, ifc_class="IfcOpeningElement", predefined_type="OPENING", @@ -260,9 +238,7 @@ class Context: position_3d = None if self.model.schema == "IFC2X3": - position_3d = self.model.createIfcAxis2Placement2D( - self.model.createIfcCartesianPoint([0.0, 0.0, 0.0]) - ) + position_3d = self.model.createIfcAxis2Placement2D(self.model.createIfcCartesianPoint([0.0, 0.0, 0.0])) position_2d = self.model.createIfcAxis2Placement2D( self.model.createIfcCartesianPoint([door.OverallWidth / 2.0, 0.0]) ) @@ -294,10 +270,7 @@ class Context: ifcopenshell.api.feature.add_feature(self.model, feature=opening, element=wall) ifcopenshell.api.feature.add_filling(self.model, opening=opening, element=door) - z_offsets = { - 'door': 0, - 'window': 1 - } + z_offsets = {"door": 0, "window": 1} opening.ObjectPlacement = self.model.createIfcLocalPlacement( wall.ObjectPlacement, self.model.createIfcAxis2Placement3D( @@ -307,9 +280,7 @@ class Context: door.ObjectPlacement = self.model.createIfcLocalPlacement( opening.ObjectPlacement, - self.model.createIfcAxis2Placement3D( - self.model.createIfcCartesianPoint((0.0, 0.0, 0.0)) - ), + self.model.createIfcAxis2Placement3D(self.model.createIfcCartesianPoint((0.0, 0.0, 0.0))), ) return door @@ -317,9 +288,7 @@ class Context: def to_obj_file(self, fn): st = ifcopenshell.geom.settings(USE_WORLD_COORDS=True, WELD_VERTICES=False) it = ifcopenshell.geom.iterator(st, self.model, exclude=("IfcOpeningElement",)) - sr = ifcopenshell.geom.serializers.obj( - fn, fn + ".mtl", st, ifcopenshell.geom.serializer_settings() - ) + sr = ifcopenshell.geom.serializers.obj(fn, fn + ".mtl", st, ifcopenshell.geom.serializer_settings()) if it.initialize(): for el in ifcopenshell.geom.consume_iterator(it): sr.write(el) @@ -330,7 +299,7 @@ if __name__ == "__main__": m = Context() w1 = m.create_2pt_wall((0.0, 0.0), (4.0, 0.0), 0.0, 3.0, 0.1, m.storey) w2 = m.create_2pt_wall((1.0, 3.0), (1.0, 0.0), 0.0, 3.0, 0.1, m.storey) - m.create_fill('door', [2, 0.0], w1) - m.create_fill('window', [1, 1.5], w2) + m.create_fill("door", [2, 0.0], w1) + m.create_fill("window", [1, 1.5], w2) m.model.write("out.ifc") m.to_obj_file("out.obj") diff --git a/src/pyodide/demo-app/propertygroups.py b/src/pyodide/demo-app/propertygroups.py index 4ba73b8efb..f28bfcc120 100644 --- a/src/pyodide/demo-app/propertygroups.py +++ b/src/pyodide/demo-app/propertygroups.py @@ -3,6 +3,7 @@ from dataclasses import dataclass, field # From: src\bonsai\bonsai\bim\module\model\prop.py # Adapted to use dataclasses instead of bpy props + @dataclass class BIMWindowProperties: non_si_units_props = ("is_editing", "window_type") @@ -19,6 +20,7 @@ class BIMWindowProperties: ) # number of panels and default mullion/transom values + # fmt: off window_types_panels = { "SINGLE_PANEL": (1, ((0, 0 ), (0, 0 ))), "DOUBLE_PANEL_HORIZONTAL": (2, ((0, 0 ), (0.45, 0 ))), @@ -30,6 +32,7 @@ class BIMWindowProperties: "TRIPLE_PANEL_HORIZONTAL": (3, ((0, 0 ), (0.3, 0.6))), "TRIPLE_PANEL_VERTICAL": (3, ((0.2, 0.4), (0, 0 ))), } + # fmt: on is_editing: bool = False window_type: str = "SINGLE_PANEL" @@ -50,10 +53,10 @@ class BIMWindowProperties: second_transom_offset: float = 0.6 # panel properties - frame_depth: list = field(default_factory = lambda: [0.035] * 3) - frame_thickness: list = field(default_factory = lambda: [0.035] * 3) + frame_depth: list = field(default_factory=lambda: [0.035] * 3) + frame_thickness: list = field(default_factory=lambda: [0.035] * 3) - def to_dict(self, si_conversion=1.): + def to_dict(self, si_conversion=1.0): di = { "partition_type": self.window_type, "overall_height": self.overall_height / si_conversion, @@ -124,7 +127,7 @@ class BIMDoorProperties: frame_thickness: float = 0.035 frame_depth: float = 0.035 - def to_dict(self, si_conversion=1.): + def to_dict(self, si_conversion=1.0): return { "operation_type": self.door_type, "overall_height": self.overall_height / si_conversion, diff --git a/src/pyodide/demo-app/tests/missing_files.py b/src/pyodide/demo-app/tests/missing_files.py index e42b552c50..87f7cbdbf8 100644 --- a/src/pyodide/demo-app/tests/missing_files.py +++ b/src/pyodide/demo-app/tests/missing_files.py @@ -1,26 +1,29 @@ async def test_pset(): - import ifcopenshell.api.pset import ifcopenshell.api.material + import ifcopenshell.api.pset + errors = [] try: model = ifcopenshell.file() steel_material = ifcopenshell.api.material.add_material(model, name="S355 Steel") - steel_pset = ifcopenshell.api.pset.add_pset(model, - product=steel_material, - name="Pset_MaterialSteel") + steel_pset = ifcopenshell.api.pset.add_pset(model, product=steel_material, name="Pset_MaterialSteel") - ifcopenshell.api.pset.edit_pset(model, + ifcopenshell.api.pset.edit_pset( + model, pset=steel_pset, properties={ - "YieldStress": 355*(10**6), # Pa (355 MPa) - }) + "YieldStress": 355 * (10**6), # Pa (355 MPa) + }, + ) except Exception as e: errors.append(f"API Error: {e}") return errors + async def test_doc(): import ifcopenshell.util.doc + errors = [] try: ifcopenshell.util.doc.get_entity_doc("IFC4", "IfcWall", recursive=True) diff --git a/src/qtviewer/CMakeLists.txt b/src/qtviewer/CMakeLists.txt index 978d5f116b..0ffed811a7 100644 --- a/src/qtviewer/CMakeLists.txt +++ b/src/qtviewer/CMakeLists.txt @@ -17,13 +17,19 @@ # # ################################################################################ -cmake_minimum_required(VERSION 3.1.3) - message("Running CMakeLists.txt in /src/qtviewer") # Specify the Qt version and components to use set(QT_VERSION 6 CACHE STRING "Qt version") -set(QT_COMPONENTS Core Gui OpenGL OpenGLWidgets Widgets CACHE STRING "Qt components") +set(QT_COMPONENTS + Core + Gui + OpenGL + OpenGLWidgets + Widgets + CACHE STRING + "Qt components" +) find_package(Qt${QT_VERSION} COMPONENTS ${QT_COMPONENTS} REQUIRED PATHS ${QT_DIR}) @@ -47,10 +53,7 @@ set(targetName "QtViewer") # Scan for .qrc files and add to build process set(CMAKE_AUTORCC ON) -set(RESOURCE_FILES - resources/qt_resources.qrc - resources/qt_res.rc -) +set(RESOURCE_FILES resources/qt_resources.qrc resources/qt_res.rc) # The MACOSX_BUNDLE_ICON_FILE variable is added to the Info.plist # generated by CMake. This variable contains the .icns file name, @@ -59,10 +62,10 @@ set(MACOSX_BUNDLE_ICON_FILE ifcosLogo.icns) # The following tells CMake where to find and install the file itself. set(app_icon_macos "resources/ifcosLogo.icns") -set_source_files_properties(${app_icon_macos} PROPERTIES - MACOSX_PACKAGE_LOCATION "Resources") +set_source_files_properties(${app_icon_macos} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources") -add_executable(${targetName} +add_executable( + ${targetName} MessageLogger.h IfcViewerWidget.h IfcViewerWidget.cpp @@ -75,16 +78,15 @@ add_executable(${targetName} ${app_icon_macos} ) -set_target_properties(${targetName} PROPERTIES - AUTOMOC On - WIN32_EXECUTABLE ON - MACOSX_BUNDLE ON - RESOURCE "${RESOURCE_FILES}" +set_target_properties( + ${targetName} + PROPERTIES AUTOMOC On WIN32_EXECUTABLE ON MACOSX_BUNDLE ON RESOURCE "${RESOURCE_FILES}" ) -target_link_libraries(${targetName} +target_link_libraries( + ${targetName} ${IFCOPENSHELL_LIBRARIES} - ${OPENCASCADE_LIBRARIES} + ${OpenCASCADE_LIBRARIES} ${OPENSCENEGRAPH_LIBRARIES} Qt${QT_VERSION}::Core Qt${QT_VERSION}::Gui @@ -93,10 +95,9 @@ target_link_libraries(${targetName} Qt${QT_VERSION}::Widgets ) -target_include_directories(${targetName} PUBLIC - ${QT_DIR}/include - ${OPENSCENEGRAPH_INCLUDE_DIRS} -) +target_include_directories(${targetName} PUBLIC ${QT_DIR}/include ${OPENSCENEGRAPH_INCLUDE_DIRS}) get_target_property(targetIncludeDirs ${targetName} INCLUDE_DIRECTORIES) message(STATUS "target_include_directories: ${targetIncludeDirs}") + +install(TARGETS ${targetName}) diff --git a/src/qtviewer/ParseIfcFile.cpp b/src/qtviewer/ParseIfcFile.cpp index 0936d5624b..8fe3e350a6 100644 --- a/src/qtviewer/ParseIfcFile.cpp +++ b/src/qtviewer/ParseIfcFile.cpp @@ -1,4 +1,5 @@ #include "ParseIfcFile.h" +#include "../ifcgeom/hybrid_kernel.h" #include "MessageLogger.h" #include "osg/Array" @@ -31,7 +32,7 @@ bool ParseIfcFile::Parse( settings.set("weld-vertices", false); settings.set("apply-default-materials", true); - IfcGeom::Iterator* it = new IfcGeom::Iterator(settings, &file); + IfcGeom::Iterator* it = new IfcGeom::Iterator(ifcopenshell::geometry::kernels::construct(&file, "opencascade", settings), settings, &file); if (!it->initialize()) { MessageLogger::log("Error: Iterator failed to initialize! Aborting."); delete it; diff --git a/src/serializers/CMakeLists.txt b/src/serializers/CMakeLists.txt new file mode 100644 index 0000000000..94b30a0e38 --- /dev/null +++ b/src/serializers/CMakeLists.txt @@ -0,0 +1,43 @@ +add_subdirectory(schema_dependent) + +file(GLOB SERIALIZERS_H_FILES *.h) +file(GLOB SERIALIZERS_CPP_FILES *.cpp) +set(SERIALIZERS_FILES ${SERIALIZERS_H_FILES} ${SERIALIZERS_CPP_FILES}) + +add_library(Serializers ${SERIALIZERS_FILES}) +set_target_properties( + Serializers + PROPERTIES + COMPILE_FLAGS "-DSERIALIZERS_EXPORTS" + VERSION "${PROJECT_VERSION}" + SOVERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}" +) +set(SERIALIZER_SCHEMA_LIBRARIES Serializers ${SERIALIZER_SCHEMA_LIBRARIES} PARENT_SCOPE) + +if(WITH_PROJ) + find_package(PROJ REQUIRED) + target_compile_definitions(Serializers PRIVATE "WITH_PROJ") + if(PROJ_STATIC) + target_compile_definitions(Serializers PRIVATE "PROJ_DLL=") + endif() + target_link_libraries(Serializers PRIVATE PROJ::proj) +endif() + +target_link_libraries( + Serializers + PRIVATE + ${SERIALIZER_SCHEMA_LIBRARIES} + ${OPENCOLLADA_LIBRARIES} + ${USD_LIBRARIES} + ${GLTF_LIBRARIES} + IfcGeom + ${OpenCASCADE_LIBRARIES} + ${kernel_libraries} + IfcParse +) + +install(TARGETS Serializers) + +# Can't use `PUBLIC_HEADER` since we need two folders. +install(FILES ${SERIALIZERS_H_FILES} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/serializers/") +install(FILES ${SERIALIZERS_S_H_FILES} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/serializers/schema_dependent") diff --git a/src/serializers/GltfSerializer.cpp b/src/serializers/GltfSerializer.cpp index 32844c67ca..3627106f42 100644 --- a/src/serializers/GltfSerializer.cpp +++ b/src/serializers/GltfSerializer.cpp @@ -180,35 +180,108 @@ void GltfSerializer::write(const IfcGeom::TriangulationElement* o) { return; } - node_array_.push_back(json_["nodes"].size()); + size_t current_node_index = json_["nodes"].size(); + auto current_leaf_index = current_node_index; + json_["nodes"].emplace_back(); + node_indices_[o->product()] = current_node_index; + node_array_.push_back(current_node_index); - const auto& m = o->transformation().data()->ccomponents(); - - // @todo check - std::array matrix_flat; - if (settings_.get().get()) { - matrix_flat = { - m(0,0), m(1,0), m(2,0), m(3,0), - m(0,1), m(1,1), m(2,1), m(3,1), - m(0,2), m(1,2), m(2,2), m(3,2), - m(0,3), m(1,3), m(2,3), m(3,3) - }; - } else { - // nb: note that this contains the Y-UP transform as well. - matrix_flat = { - m(0,0), m(2,0), -m(1,0), m(3,0), - m(0,1), m(2,1), -m(1,1), m(3,1), - m(0,2), m(2,2), -m(1,2), m(3,2), - m(0,3), m(2,3), -m(1,3), m(3,3) - }; + auto m = o->transformation().data()->ccomponents(); + + if (o->parents().empty()) { + roots_.push_back(current_node_index); } + if (!o->parents().empty()) { + // apply inverse of last parent -> overwrite product transform (m) + m = o->parents().back()->transformation().data()->ccomponents().inverse() * m; + + for (auto it = o->parents().rbegin(); it != o->parents().rend(); ++it) { + const auto jt = it + 1; + const bool is_root = jt == o->parents().rend(); + + auto kt = node_indices_.find((*it)->product()); + if (kt != node_indices_.end()) { + // parent already processed as part of other parent sequence + json_["nodes"][kt->second]["children"].push_back(current_node_index); + break; + } + + + auto mm = (*it)->transformation().data()->ccomponents(); + if (!is_root) { + mm = (*jt)->transformation().data()->ccomponents().inverse() * mm; + } + + json parent_node = json::object(); + + std::array matrix_flat; + if (settings_.get().get() || settings_.get().get() || !is_root) { + // y-up transform is only accounted for on root + matrix_flat = { + mm(0,0), mm(1,0), mm(2,0), mm(3,0), + mm(0,1), mm(1,1), mm(2,1), mm(3,1), + mm(0,2), mm(1,2), mm(2,2), mm(3,2), + mm(0,3), mm(1,3), mm(2,3), mm(3,3) + }; + } else { + // nb: note that this contains the Y-UP transform. + matrix_flat = { + mm(0,0), mm(2,0), -mm(1,0), mm(3,0), + mm(0,1), mm(2,1), -mm(1,1), mm(3,1), + mm(0,2), mm(2,2), -mm(1,2), mm(3,2), + mm(0,3), mm(2,3), -mm(1,3), mm(3,3) + }; + } - static const std::array identity_matrix = {1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1}; + static const std::array identity_matrix = {1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1}; + + if (matrix_flat != identity_matrix) { + // glTF validator complains about identity matrices + parent_node["matrix"] = matrix_flat; + } + + size_t new_node_index = json_["nodes"].size(); + node_indices_[(*it)->product()] = new_node_index; + node_array_.push_back(new_node_index); + parent_node["name"] = object_id(o); + parent_node["children"] = json::array({current_node_index}); + json_["nodes"].push_back(parent_node); + + current_node_index = new_node_index; + + if (is_root) { + roots_.push_back(current_node_index); + } + } + } json node; - if (matrix_flat != identity_matrix) { - // glTF validator complains about identity matrices - node["matrix"] = matrix_flat; + { + std::array matrix_flat; + if (settings_.get().get() || settings_.get().get() || !o->parents().empty()) { + // y-up transform is only accounted for on root + matrix_flat = { + m(0,0), m(1,0), m(2,0), m(3,0), + m(0,1), m(1,1), m(2,1), m(3,1), + m(0,2), m(1,2), m(2,2), m(3,2), + m(0,3), m(1,3), m(2,3), m(3,3) + }; + } else { + // nb: note that this contains the Y-UP transform. + matrix_flat = { + m(0,0), m(2,0), -m(1,0), m(3,0), + m(0,1), m(2,1), -m(1,1), m(3,1), + m(0,2), m(2,2), -m(1,2), m(3,2), + m(0,3), m(2,3), -m(1,3), m(3,3) + }; + } + + static const std::array identity_matrix = {1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1}; + + if (matrix_flat != identity_matrix) { + // glTF validator complains about identity matrices + node["matrix"] = matrix_flat; + } } node["name"] = object_id(o); @@ -300,7 +373,7 @@ void GltfSerializer::write(const IfcGeom::TriangulationElement* o) { } node["mesh"] = current_mesh_index; - json_["nodes"].push_back(node); + json_["nodes"][current_leaf_index] = node; } template @@ -338,20 +411,30 @@ void write_block(std::ostream& fs, It begin, It end) { } void GltfSerializer::finalize() { + // separate z up + if (settings_.get().get()) { + z_up_transform_ = json::object(); + (*z_up_transform_)["name"] = "Z_UP"; + static const std::array z_up_matrix = { + 1, 0, 0, 0, + 0, 0, -1, 0, + 0, 1, 0, 0, + 0, 0, 0, 1}; + (*z_up_transform_)["matrix"] = z_up_matrix; + (*z_up_transform_)["children"] = roots_; + json_["nodes"].push_back(*z_up_transform_); + } + if (north_rotation_) { - (*north_rotation_)["children"] = json::array(); - for (int i = 0; i < json_["nodes"].size(); ++i) { - (*north_rotation_)["children"].push_back(i); - } - json_["nodes"].push_back(*north_rotation_); + (*north_rotation_)["children"] = roots_; } if (ecef_transform_) { - (*ecef_transform_)["children"] = json::array(); - for (int i = 0; i < json_["nodes"].size(); ++i) { - (*ecef_transform_)["children"].push_back(i); - } - json_["nodes"].push_back(*ecef_transform_); + (*ecef_transform_)["children"] = roots_; + } + + if (z_up_transform_) { + (*ecef_transform_)["children"] = roots_; } tmp_fstream1_.close(); @@ -372,7 +455,9 @@ void GltfSerializer::finalize() { } json scene_0; - if (north_rotation_ || ecef_transform_) { + if (geometry_settings().get().get()) { + scene_0["nodes"] = roots_; + } else if (north_rotation_ || ecef_transform_ || z_up_transform_) { scene_0["nodes"] = std::array{json_["nodes"].size() - 1}; } else { scene_0["nodes"] = node_array_; diff --git a/src/serializers/GltfSerializer.h b/src/serializers/GltfSerializer.h index d2c6edab89..d3754d90a0 100644 --- a/src/serializers/GltfSerializer.h +++ b/src/serializers/GltfSerializer.h @@ -36,8 +36,10 @@ private: std::ofstream fstream_, tmp_fstream1_, tmp_fstream2_; std::map materials_, meshes_; json json_, node_array_; - boost::optional ecef_transform_, north_rotation_; + boost::optional ecef_transform_, north_rotation_, z_up_transform_; int bufferViewId; + std::map node_indices_; + std::vector roots_; int writeMaterial(const ifcopenshell::geometry::taxonomy::style::ptr style); public: diff --git a/src/serializers/JsonSerializer.cpp b/src/serializers/JsonSerializer.cpp new file mode 100644 index 0000000000..d14e4aff0e --- /dev/null +++ b/src/serializers/JsonSerializer.cpp @@ -0,0 +1,65 @@ +/******************************************************************************** +* * +* This file is part of IfcOpenShell. * +* * +* IfcOpenShell is free software: you can redistribute it and/or modify * +* it under the terms of the Lesser GNU General Public License as published by * +* the Free Software Foundation, either version 3.0 of the License, or * +* (at your option) any later version. * +* * +* IfcOpenShell is distributed in the hope that it will be useful, * +* but WITHOUT ANY WARRANTY; without even the implied warranty of * +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +* Lesser GNU General Public License for more details. * +* * +* You should have received a copy of the Lesser GNU General Public License * +* along with this program. If not, see . * +* * +********************************************************************************/ + +#ifdef WITH_GLTF + +#include "JsonSerializer.h" + +#include +#include +#include + +#define EXTERNAL_DEFS(r, data, elem) \ + extern void BOOST_PP_CAT(init_JsonSerializer_Ifc, elem)(JsonSerializerFactory::Factory*); + +#define CALL_DEFS(r, data, elem) \ + BOOST_PP_CAT(init_JsonSerializer_Ifc, elem)(this); + +BOOST_PP_SEQ_FOR_EACH(EXTERNAL_DEFS, , SCHEMA_SEQ) + +JsonSerializerFactory::Factory::Factory() { + BOOST_PP_SEQ_FOR_EACH(CALL_DEFS, , SCHEMA_SEQ) +} + +void JsonSerializerFactory::Factory::bind(const std::string& schema_name, fn f) { + const std::string schema_name_lower = boost::to_lower_copy(schema_name); + this->insert(std::make_pair(schema_name_lower, f)); +} + +JsonSerializer* JsonSerializerFactory::Factory::construct(const std::string& schema_name, IfcParse::IfcFile* file, std::string json_filename, JsonSerializer::Dialect dialect) { + const std::string schema_name_lower = boost::to_lower_copy(schema_name); + auto it = this->find(schema_name_lower); + if (it == this->end()) { + throw IfcParse::IfcException("No Json serializer registered for " + schema_name); + } + return it->second(file, json_filename, dialect); +} + +JsonSerializer::JsonSerializer(IfcParse::IfcFile* file, const std::string& json_filename, JsonSerializer::Dialect dialect) { + if (file) { + implementation_ = JsonSerializerFactory::implementations().construct(file->schema()->name(), file, json_filename, dialect); + } +} + +JsonSerializerFactory::Factory& JsonSerializerFactory::implementations() { + static JsonSerializerFactory::Factory impl; + return impl; +} + +#endif diff --git a/src/serializers/JsonSerializer.h b/src/serializers/JsonSerializer.h new file mode 100644 index 0000000000..3aa4e0a002 --- /dev/null +++ b/src/serializers/JsonSerializer.h @@ -0,0 +1,52 @@ +#ifndef JSONSERIALIZER_H +#define JSONSERIALIZER_H + +#ifdef WITH_GLTF + +#include "../ifcgeom/Serializer.h" +#include "../ifcparse/IfcFile.h" +#include "../serializers/serializers_api.h" + +#include +#include + +class SERIALIZERS_API JsonSerializer : public Serializer { + public: + enum Dialect { + JSON_DIALECT_CREOOX + }; + private: + JsonSerializer* implementation_; + + protected: + std::string json_filename; + Dialect dialect_; + + public: + JsonSerializer(IfcParse::IfcFile* file, const std::string& json_filename, Dialect dialect = Dialect::JSON_DIALECT_CREOOX); + + virtual ~JsonSerializer() {} + + bool ready() { return true; } + void writeHeader() {} + + void finalize() { implementation_->finalize(); } + void setFile(IfcParse::IfcFile*) { throw IfcParse::IfcException("Should be supplied on construction"); } +}; + +struct SERIALIZERS_API JsonSerializerFactory { + typedef boost::function3 fn; + + class Factory : public std::map { + public: + Factory(); + void bind(const std::string& schema_name, fn); + JsonSerializer* construct(const std::string& schema_name, IfcParse::IfcFile*, std::string, JsonSerializer::Dialect); + }; + + static Factory& implementations(); +}; + +#endif + +#endif diff --git a/src/serializers/USDSerializer.h b/src/serializers/USDSerializer.h index 9f795fb88b..f9b50bc22c 100644 --- a/src/serializers/USDSerializer.h +++ b/src/serializers/USDSerializer.h @@ -30,6 +30,8 @@ #include "../ifcparse/utils.h" // undefine opencascade Handle macro, because it conflicts with USD +// Macro source code lives in Standard_Handle.hxx. +#pragma push_macro("Handle") #undef Handle #include "pxr/pxr.h" @@ -38,6 +40,9 @@ #include "pxr/usd/usdGeom/mesh.h" #include "pxr/usd/usdShade/material.h" +// redefine Handle macro. +#pragma pop_macro("Handle") + #include #include #include diff --git a/src/serializers/WavefrontObjSerializer.cpp b/src/serializers/WavefrontObjSerializer.cpp index 300fceeb88..f29612a65e 100644 --- a/src/serializers/WavefrontObjSerializer.cpp +++ b/src/serializers/WavefrontObjSerializer.cpp @@ -93,7 +93,9 @@ void WaveFrontOBJSerializer::write(const IfcGeom::TriangulationElement* o) const IfcGeom::Representation::Triangulation& mesh = o->geometry(); - const int vcount = (int)mesh.verts().size() / 3; + size_t vcount = mesh.verts().size() / 3; + size_t ncount = mesh.normals().size() / 3; + for (auto it = mesh.verts().begin(); it != mesh.verts().end();) { const double x = *(it++); const double y = *(it++); @@ -139,22 +141,25 @@ void WaveFrontOBJSerializer::write(const IfcGeom::TriangulationElement* o) previous_material_id = material_id; } - const int v1 = *(it++)+vcount_total; - const int v2 = *(it++)+vcount_total; - const int v3 = *(it++)+vcount_total; + const int v1 = *(it++) + vcount_total; + const int v2 = *(it++) + vcount_total; + const int v3 = *(it++) + vcount_total; - if (has_normals && has_uvs) { - obj_stream.stream << "f " << v1 << "/" << v1 << "/" << v1 << " " - << v2 << "/" << v2 << "/" << v2 << " " - << v3 << "/" << v3 << "/" << v3 << "\n"; + const int n1 = v1 - vcount_total + ncount_total; + const int n2 = v2 - vcount_total + ncount_total; + const int n3 = v3 - vcount_total + ncount_total; + + if (has_normals && has_uvs) { + obj_stream.stream << "f " << v1 << "/" << n1 << "/" << n1 << " " + << v2 << "/" << n2 << "/" << n2 << " " + << v3 << "/" << n3 << "/" << n3 << "\n"; } else if (has_normals) { - obj_stream.stream << "f " << v1 << "//" << v1 << " " - << v2 << "//" << v2 << " " - << v3 << "//" << v3 << "\n"; + obj_stream.stream << "f " << v1 << "//" << n1 << " " + << v2 << "//" << n2 << " " + << v3 << "//" << n3 << "\n"; } else { obj_stream.stream << "f " << v1 << " " << v2 << " " << v3 << "\n"; } - } std::set faces_set (mesh.faces().begin(), mesh.faces().end()); @@ -189,4 +194,5 @@ void WaveFrontOBJSerializer::write(const IfcGeom::TriangulationElement* o) } vcount_total += vcount; + ncount_total += ncount; } diff --git a/src/serializers/WavefrontObjSerializer.h b/src/serializers/WavefrontObjSerializer.h index 4085dfa376..d3ea41f69e 100644 --- a/src/serializers/WavefrontObjSerializer.h +++ b/src/serializers/WavefrontObjSerializer.h @@ -32,7 +32,7 @@ class SERIALIZERS_API WaveFrontOBJSerializer : public WriteOnlyGeometrySerialize private: stream_or_filename obj_stream; stream_or_filename mtl_stream; - unsigned int vcount_total; + size_t vcount_total, ncount_total; std::set materials; public: WaveFrontOBJSerializer(const stream_or_filename& obj_filename, const stream_or_filename& mtl_filename, const ifcopenshell::geometry::Settings& geometry_settings, const ifcopenshell::geometry::SerializerSettings& settings); diff --git a/src/serializers/schema_dependent/CMakeLists.txt b/src/serializers/schema_dependent/CMakeLists.txt new file mode 100644 index 0000000000..ef877342e9 --- /dev/null +++ b/src/serializers/schema_dependent/CMakeLists.txt @@ -0,0 +1,18 @@ +file(GLOB SERIALIZERS_S_H_FILES *.h) +file(GLOB SERIALIZERS_S_CPP_FILES *.cpp) +set(SERIALIZERS_S_FILES ${SERIALIZERS_S_H_FILES} ${SERIALIZERS_S_CPP_FILES}) + +foreach(schema ${SCHEMA_VERSIONS}) + add_library(Serializers_ifc${schema} OBJECT ${SERIALIZERS_S_FILES}) + set(SERIALIZER_SCHEMA_LIBRARIES ${SERIALIZER_SCHEMA_LIBRARIES} Serializers_ifc${schema}) + set_target_properties( + Serializers_ifc${schema} + PROPERTIES COMPILE_FLAGS "-DIFC_GEOM_EXPORTS -DIfcSchema=Ifc${schema}" + ) + target_link_libraries(Serializers_ifc${schema} ${HDF5_LIBRARIES} ${GLTF_LIBRARIES}) + if(NOT WASM_BUILD) + target_link_libraries(Serializers_ifc${schema} IfcGeom ${OpenCASCADE_LIBRARIES}) + endif() +endforeach() + +set(SERIALIZER_SCHEMA_LIBRARIES ${SERIALIZER_SCHEMA_LIBRARIES} PARENT_SCOPE) diff --git a/src/serializers/schema_dependent/JsonSerializer.cpp b/src/serializers/schema_dependent/JsonSerializer.cpp new file mode 100644 index 0000000000..7c7ee890d9 --- /dev/null +++ b/src/serializers/schema_dependent/JsonSerializer.cpp @@ -0,0 +1,862 @@ +/******************************************************************************** +* * +* This file is part of IfcOpenShell. * +* * +* IfcOpenShell is free software: you can redistribute it and/or modify * +* it under the terms of the Lesser GNU General Public License as published by * +* the Free Software Foundation, either version 3.0 of the License, or * +* (at your option) any later version. * +* * +* IfcOpenShell is distributed in the hope that it will be useful, * +* but WITHOUT ANY WARRANTY; without even the implied warranty of * +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +* Lesser GNU General Public License for more details. * +* * +* You should have received a copy of the Lesser GNU General Public License * +* along with this program. If not, see . * +* * +********************************************************************************/ + +#ifdef WITH_GLTF + +#include "JsonSerializer.h" + +#include +#include + +#include + +#include "../../ifcparse/IfcSIPrefix.h" +#include "../../ifcparse/utils.h" +#include "../../ifcparse/IfcLogger.h" + +using json = nlohmann::json; + +namespace { + struct POSTFIX_SCHEMA(factory_t) { + JsonSerializer* operator()(IfcParse::IfcFile* file, const std::string& json_filename, JsonSerializer::Dialect dialect) const { + POSTFIX_SCHEMA(JsonSerializer)* s = new POSTFIX_SCHEMA(JsonSerializer)(file, json_filename, dialect); + s->setFile(file); + return s; + } + }; +} + +void MAKE_INIT_FN(JsonSerializer)(JsonSerializerFactory::Factory* mapping) { + static const std::string schema_name = STRINGIFY(IfcSchema); + POSTFIX_SCHEMA(factory_t) factory; + mapping->bind(schema_name, factory); +} + +namespace { + +class format_value_visitor : public boost::static_visitor { + public: + template + json operator()(const T& t) const { + if constexpr (std::is_same_v, Derived> || std::is_same_v, boost::dynamic_bitset<>> || std::is_same_v, IfcUtil::IfcBaseClass*> || std::is_same_v, std::vector> || std::is_same_v, std::vector> || std::is_same_v, std::vector> || std::is_same_v, std::vector>> || std::is_same_v, aggregate_of_instance::ptr> || std::is_same_v, aggregate_of_aggregate_of_instance::ptr> || std::is_same_v, std::vector>> || std::is_same_v, std::vector>> || std::is_same_v, empty_aggregate_t> || std::is_same_v, empty_aggregate_of_aggregate_t> || std::is_same_v, Blank>) { + return ""; + } else if constexpr (std::is_same_v, boost::logic::tribool>) { + // @todo handle indeterminate + return ""; + } else if constexpr (std::is_same_v, std::string>) { + return t; + } else if constexpr (std::is_same_v, EnumerationReference>) { + return t.value(); + } else { + return t; + } + } +}; + +class get_type_visitor : public boost::static_visitor { + public: + template + std::string operator()(const T& t) const { + // @todo more types + return "number"; + } +}; + +// Returns related entity instances using IFC's objectified relationship +// model. The second and third argument require a member function pointer. +template +auto get_related(T* t, F f, G g) { + typename U::list::ptr li = (*t.*f)()->template as(); + typename aggregate_of::ptr acc(new aggregate_of); + for (typename U::list::it it = li->begin(); it != li->end(); ++it) { + U* u = *it; + try { + acc->push((*u.*g)()->template as()); + } catch (IfcParse::IfcException& e) { + Logger::Error(e); + } + } + return acc; +} + +void format_entity_instance(IfcUtil::IfcBaseEntity* instance, json& tree, IfcUtil::IfcBaseEntity* parent = nullptr) { + /* + { + "id" : string, // Element GUID (IFC GloballyUniqueId) + "name" : string, // Element name + "longName" ?: string, // Long name (for spatial elements) + "type" : string, // IFC entity type + "parent" : string | null, // Parent element GUID (null for root) + "groups" ?: string[], // Array of group GUIDs + "ObjectType" ?: string, // ObjectType attribute (for IfcObject) + "tag" ?: string, // Tag attribute (for IfcElement) + "attributes" ?: { + // Special attributes + "elevation" ?: number // Elevation for IfcBuildingStorey + }, + "propertySetIds" ?: string[] // Array of property set GUIDs + } + */ + + json child; + + auto write_to_json = [&](const std::string& keyJson, const std::string& keyIfc) { + AttributeValue val; + try { + val = instance->get(keyIfc); + } catch (const IfcParse::IfcException&) { + // simply laziness like no attribute Tag on IfcProject + return; + } + if (!val.isNull()) { + child[keyJson] = val.apply_visitor(format_value_visitor{}); + } + }; + + write_to_json("id", "GlobalId"); + write_to_json("name", "Name"); + write_to_json("longName", "LongName"); + child["type"] = instance->declaration().name(); + if (parent) { + if (auto* rt = parent->as()) { + child["parent"] = rt->GlobalId(); + } + } + // @todo groups + write_to_json("ObjectType", "ObjectType"); + write_to_json("tag", "Tag"); + if (auto* storey = instance->as()) { + auto elevation = storey->Elevation(); + if (elevation) { + child["attributes"] = json::object({{"elevation", *elevation}}); + } + } + + if (auto* obj = instance->as()) { + IfcSchema::IfcPropertySetDefinition::list::ptr property_sets = get_related(obj, &IfcSchema::IfcObject::IsDefinedBy, &IfcSchema::IfcRelDefinesByProperties::RelatingPropertyDefinition); + if (!property_sets && property_sets->size()) { + child["propertySetIds"] = json::array(); + for (IfcSchema::IfcPropertySetDefinition::list::it it = property_sets->begin(); it != property_sets->end(); ++it) { + IfcSchema::IfcPropertySetDefinition* pset = *it; + child["propertySetIds"].push_back(pset->GlobalId()); + } + } + } + + tree.push_back(child); +} + + +// A function to be called recursively. Template specialization is used +// to descend into decomposition, containment and property relationships. +template +void descend(A* instance, json& tree, IfcUtil::IfcBaseEntity* parent = nullptr) { + if (instance->declaration().is(IfcSchema::IfcObjectDefinition::Class())) { + descend(instance->template as(), tree, parent); + } else { + format_entity_instance(instance, tree); + } +} + +// @todo would be nice to generalize this with the XML version +// +// Descends into the tree by recursing into IfcRelContainedInSpatialStructure, +// IfcRelDecomposes, IfcRelDefinesByType, IfcRelDefinesByProperties relations. +template <> +void descend(IfcSchema::IfcObjectDefinition* product, json& tree, IfcUtil::IfcBaseEntity* parent) { + if (product->declaration().is(IfcSchema::IfcElement::Class())) { + auto voids = product->as()->FillsVoids(); + if (voids && voids->size() == 1 && (*voids->begin())->RelatingOpeningElement() != parent) { + // Fills are placed under their corresponding opening, return early to avoid duplication. + return; + } + } + + format_entity_instance(product, tree, parent); + + if (product->declaration().is(IfcSchema::IfcOpeningElement::Class())) { + IfcSchema::IfcOpeningElement* opening = product->as(); + IfcSchema::IfcElement::list::ptr fills = get_related( + opening, &IfcSchema::IfcOpeningElement::HasFillings, &IfcSchema::IfcRelFillsElement::RelatedBuildingElement); + + for (IfcSchema::IfcElement::list::it it = fills->begin(); it != fills->end(); ++it) { + descend(*it, tree, product); + } + } + + if (product->declaration().is(IfcSchema::IfcSpatialStructureElement::Class())) { + IfcSchema::IfcSpatialStructureElement* structure = product->as(); + + IfcSchema::IfcObjectDefinition::list::ptr elements = get_related(structure, &IfcSchema::IfcSpatialStructureElement::ContainsElements, &IfcSchema::IfcRelContainedInSpatialStructure::RelatedElements); + + for (IfcSchema::IfcObjectDefinition::list::it it = elements->begin(); it != elements->end(); ++it) { + descend(*it, tree, product); + } + } + + if (product->declaration().is(IfcSchema::IfcElement::Class())) { + IfcSchema::IfcElement* element = static_cast(product); + IfcSchema::IfcOpeningElement::list::ptr openings = get_related( + element, &IfcSchema::IfcElement::HasOpenings, &IfcSchema::IfcRelVoidsElement::RelatedOpeningElement); + + for (IfcSchema::IfcOpeningElement::list::it it = openings->begin(); it != openings->end(); ++it) { + descend(*it, tree, product); + } + } + +#ifdef SCHEMA_IfcRelDecomposes_HAS_RelatedObjects + IfcSchema::IfcObjectDefinition::list::ptr structures = get_related(product, &IfcSchema::IfcObjectDefinition::IsDecomposedBy, &IfcSchema::IfcRelDecomposes::RelatedObjects); +#else + IfcSchema::IfcObjectDefinition::list::ptr structures = get_related(product, &IfcSchema::IfcObjectDefinition::IsDecomposedBy, &IfcSchema::IfcRelAggregates::RelatedObjects); + + structures->push(get_related(product, &IfcSchema::IfcObjectDefinition::IsNestedBy, &IfcSchema::IfcRelNests::RelatedObjects)); +#endif + + for (IfcSchema::IfcObjectDefinition::list::it it = structures->begin(); it != structures->end(); ++it) { + IfcSchema::IfcObjectDefinition* ob = *it; + descend(ob, tree, product); + } + + // psets are handled as part of format_entity_instance() + // all other relationships are not needed in JSON output +} + +IfcSchema::IfcValue* get_value_from_prop(const IfcSchema::IfcProperty* prop) { + if (auto* psv = prop->as()) { + if (auto* nv = psv->NominalValue()) { + return nv; + } + } + // @todo other unit typs + return nullptr; +} + +IfcSchema::IfcUnit* get_unit_from_prop(const IfcSchema::IfcProperty* prop) { + if (auto* psv = prop->as()) { + if (auto* un = psv->Unit()) { + return un; + } + } + // @todo other unit typs + return nullptr; +} + +} // namespace + +void POSTFIX_SCHEMA(JsonSerializer)::finalize() { + json output; + + IfcSchema::IfcProject::list::ptr projects = file->instances_by_type(); + if (projects->size() != 1) { + Logger::Message(Logger::LOG_ERROR, "Expected a single IfcProject"); + return; + } + IfcSchema::IfcProject* project = *projects->begin(); + + auto catch_exceptions = [this](const auto& fn) { + try { + return fn(); + } catch (const std::exception& e) { + Logger::Error(e); + static std::invoke_result_t v; + return v; + } + }; + + output["id"] = catch_exceptions([&]() { return file->header().file_name()->name(); }); + output["projectId"] = catch_exceptions([&]() { return project->GlobalId(); }); + output["author"] = catch_exceptions([&]() { return file->header().file_name()->author().empty() ? "unknown" : file->header().file_name()->author().front(); }); + output["createdAt"] = catch_exceptions([&]() { return file->header().file_name()->time_stamp(); }); + output["schema"] = catch_exceptions([&]() { return file->header().file_schema()->schema_identifiers().front(); }); // without schema we would not be here + output["creatingApplication"] = catch_exceptions([&]() { return file->header().file_name()->originating_system(); }); + output["properties"] = json::array(); + output["propertySets"] = json::array(); + output["units"] = json::array(); + output["projectUnits"] = json::object(); + output["metaObjects"] = json::array(); + output["groups"] = json::array(); + + // Maps for deduplication of properties and quantities + std::map property_to_index; + std::unordered_map json_to_index; + + // Obtain sequence of units because properties, quantities reference them by index. + // IfcUnit is a select of IfcDerivedUnit, IfcMonetaryUnit and IfcNamedUnit. + // Unfortunately, instances_by_type() does not support select types directly (even though there isn't a real reason for that). + IfcSchema::IfcUnit::list::ptr units(new IfcSchema::IfcUnit::list); + units->push(file->instances_by_type()->as()); + units->push(file->instances_by_type()->as()); + units->push(file->instances_by_type()->as()); + + auto format_property = [&](const IfcUtil::IfcBaseEntity* prop_) { + json jprop; + /* + { + "name": "LoadBearing", + "ifcPropertyType": "IfcPropertySingleValue", + "ifcValueType": "IfcBoolean", + "value": "True", + "valueType": "boolean" + }, + */ + if (auto* prop = prop_->as()) { + jprop["name"] = prop->Name(); + jprop["ifcPropertyType"] = prop->declaration().name(); + if (auto* val = get_value_from_prop(prop)) { + jprop["ifcValueType"] = val->declaration().name(); + jprop["value"] = val->data().get_attribute_value(nullptr, nullptr, 0, 0).apply_visitor(format_value_visitor{}); + jprop["valueType"] = val->data().get_attribute_value(nullptr, nullptr, 0, 0).apply_visitor(get_type_visitor{}); + } + if (auto* unit = get_unit_from_prop(prop)) { + jprop["unit"] = std::distance(units->begin(), std::find(units->begin(), units->end(), unit)); + } + } + + return jprop; + }; + + auto format_quantity = [&](const IfcUtil::IfcBaseEntity* qto_) { + json jprop; + /* + { + "name": "GrossVolume", + "ifcPropertyType": "IfcQuantityVolume", + "value": 12.5, + "valueType": "ElementQuantity", + "unit": 3 + } + */ + if (auto* qto = qto_->as()) { + jprop["name"] = qto->Name(); + jprop["ifcPropertyType"] = qto->declaration().name(); + if (auto* prop = qto->as()) { + jprop["ifcValueType"] = prop->declaration().attributes()[0]->name(); + jprop["value"] = prop->data().get_attribute_value(nullptr, nullptr, 0, 3).apply_visitor(format_value_visitor{}); + jprop["valueType"] = "number"; + if (auto* unit = prop->Unit()) { + jprop["unit"] = std::distance(units->begin(), std::find(units->begin(), units->end(), unit)); + } + } + } + return jprop; + }; + + auto deduplicate = [&](auto base_formatter) { + return [&, base_formatter](const IfcUtil::IfcBaseEntity* prop) mutable -> std::size_t { + if (auto it = property_to_index.find(prop); it != property_to_index.end()) { + return it->second; + } + + // Build JSON for this property + json j = base_formatter(prop); + + // Check if an identical JSON object is already in the global list + auto [it2, inserted] = json_to_index.try_emplace(j, output["properties"].size()); + if (inserted) { + // First time we've seen this JSON -> append to output + output["properties"].push_back(j); + } + + std::size_t idx = it2->second; + property_to_index.emplace(prop, idx); // remember for this pointer too + return idx; + }; + }; + auto property_index_for = deduplicate(format_property); + auto quantity_index_for = deduplicate(format_quantity); + + auto pset_predef_or_qsets = file->instances_by_type(); + for (auto& inst : *pset_predef_or_qsets) { + std::vector property_indices; + if (auto* pset = inst->as()) { + auto props = pset->HasProperties(); + for (auto& prop : *props) { + std::size_t index = property_index_for(prop); + property_indices.push_back(index); + } + } else if (auto* qset = inst->as()) { + auto qtos = qset->Quantities(); + for (auto& qto : *qtos) { + std::size_t index = quantity_index_for(qto); + property_indices.push_back(index); + } +#ifdef SCHEMA_HAS_IfcPreDefinedPropertySet + // ifc2x3 does not have this type yet, just inherits from IfcPropertySetDefinition + } else if (auto* pset = inst->as()) { +#else + } else { +#endif + /* + // not all_attributes() only the attributes defined on this particular concrete type + // @todo actually I don't know how to map PreDefinedPropertySet yet + auto attributes = inst->declaration().attributes(); + for (auto* a : attributes) { + auto val = inst->get(a->name()); + if (val.isNull()) { + continue; + } + val.apply_visitor(format_value_visitor{}); + } + */ + } + + /* + { + "id" : "3fG7k$Hj2_9Pxd8vD_xg7", + "name" : "Pset_WallCommon", + "type" : "IfcPropertySet", + "properties" : [ 0, 1, 2 ] + }, + */ + output["propertySets"].push_back(json::object({{"id", inst->GlobalId()}, + {"name", *inst->Name()}, // @todo optional + {"type", inst->declaration().name()}, + {"properties", property_indices}})); + } + + for (auto& unit : *units) { + /* + { + "name": string, // Unit symbol/name + "className": string, // IFC unit class + "unitEnum"?: string, // Unit type enum + "unitType"?: string, // Unit type (alternative) + "prefix"?: string, // SI prefix (for IfcSIUnit) + "userDefinedType"?: string, // User-defined type + "conversionFactor"?: { // Conversion factor (for IfcConversionBasedUnit) + "valueComponent": { + "value": number, + "valueType": string, + "ifcValueType": string + }, + "unitComponent": number // Reference to base unit index + }, + "elements"?: [ // For IfcDerivedUnit + { + "unit": number, // Reference to unit index + "exponent": number // Exponent value + } + ], + "dimensions"?: { // IfcDimensionalExponents + "LengthExponent": number, + "MassExponent": number, + "TimeExponent": number, + "ElectricCurrentExponent": number, + "ThermodynamicTemperatureExponent": number, + "AmountOfSubstanceExponent": number, + "LuminousIntensityExponent": number + } + } + */ + json junit; + junit["className"] = unit->declaration().name(); + if (auto* siunit = unit->as()) { + // @todo figure out how to encode name for si units + std::string unit_name = ""; + junit["unitEnum"] = IfcSchema::IfcUnitEnum::ToString(siunit->UnitType()); + if (siunit->Prefix()) { + junit["prefix"] = IfcSchema::IfcSIPrefix::ToString(*siunit->Prefix()); + unit_name.push_back(IfcSchema::IfcSIPrefix::ToString(*siunit->Prefix())[0]); + } + unit_name.push_back(IfcSchema::IfcSIUnitName::ToString(siunit->Name())[0]); + boost::to_lower(unit_name); + junit["name"] = unit_name; + } else if (auto* convunit = unit->as()) { + junit["name"] = convunit->Name(); + junit["unitEnum"] = IfcSchema::IfcUnitEnum::ToString(convunit->UnitType()); + if (convunit->ConversionFactor()) { + json jconv; + auto val = convunit->ConversionFactor()->ValueComponent(); + jconv["valueComponent"] = { + {"value", val->data().get_attribute_value(nullptr, nullptr, 0, 0).apply_visitor(format_value_visitor{})}, + {"valueType", val->data().get_attribute_value(nullptr, nullptr, 0, 0).apply_visitor(get_type_visitor{})} + }; + jconv["unitComponent"] = std::distance(units->begin(), std::find(units->begin(), units->end(), convunit->ConversionFactor()->UnitComponent())); + junit["conversionFactor"] = jconv; + } + } else if (auto* derunit = unit->as()) { +#ifdef SCHEMA_IfcDerivedUnit_HAS_Name + // 4.3 onwards + if (derunit->Name()) { + junit["name"] = *derunit->Name(); + } +#endif + json jelements = json::array(); + auto elements = derunit->Elements(); + for (auto& elem : *elements) { + jelements.push_back({ + {"unit", std::distance(units->begin(), std::find(units->begin(), units->end(), elem->Unit()))}, + {"exponent", elem->Exponent()} + }); + } + junit["elements"] = jelements; + } + if (auto* namedunit = unit->as()) { + // support for derived attributes is only available in python + if (namedunit->as() == nullptr) { + if (auto* dimexp = namedunit->Dimensions()) { + junit["dimensions"] = { + {"LengthExponent", dimexp->LengthExponent()}, + {"MassExponent", dimexp->MassExponent()}, + {"TimeExponent", dimexp->TimeExponent()}, + {"ElectricCurrentExponent", dimexp->ElectricCurrentExponent()}, + {"ThermodynamicTemperatureExponent", dimexp->ThermodynamicTemperatureExponent()}, + {"AmountOfSubstanceExponent", dimexp->AmountOfSubstanceExponent()}, + {"LuminousIntensityExponent", dimexp->LuminousIntensityExponent()}}; + } + } + } + output["units"].push_back(junit); + } + + auto project_units = project->UnitsInContext()->Units(); + /* + { + "LENGTHUNIT": number, + "AREAUNIT": number, + "VOLUMEUNIT": number, + "PLANEANGLEUNIT": number, + "MASSUNIT": number, + "TIMEUNIT": number, + // ... other unit types + }*/ + for (auto* pu : *project_units) { + auto it = std::find(units->begin(), units->end(), pu); + if (auto* nu = pu->as()) { + if (it != units->end()) { + output["projectUnits"][IfcSchema::IfcUnitEnum::ToString(nu->UnitType())] = std::distance(units->begin(), it); + } + } + } + + /* + // meta objects + { + "id": string, // Element GUID (IFC GloballyUniqueId) + "name": string, // Element name + "longName"?: string, // Long name (for spatial elements) + "type": string, // IFC entity type + "parent": string | null, // Parent element GUID (null for root) + "groups"?: string[], // Array of group GUIDs + "ObjectType"?: string, // ObjectType attribute (for IfcObject) + "tag"?: string, // Tag attribute (for IfcElement) + "attributes"?: { // Special attributes + "elevation"?: number // Elevation for IfcBuildingStorey + }, + "propertySetIds"?: string[] // Array of property set GUIDs + } + */ + + descend(project, output["metaObjects"]); + + std::ofstream f(IfcUtil::path::from_utf8(json_filename).c_str()); + f << output.dump(4); +} + + /* + + ptree root, header, units, decomposition, properties, quantities, types, layers, materials, work, calendars, connections, groups; + + + // Write the SPF header as XML nodes. + BOOST_FOREACH (const std::string& s, catch_exceptions([this]() { return file->header().file_description()->description(); })) { + header.add_child("file_description.description", ptree(s)); + } + BOOST_FOREACH (const std::string& s, catch_exceptions([this]() { return file->header().file_name()->author(); })) { + header.add_child("file_name.author", ptree(s)); + } + BOOST_FOREACH (const std::string& s, catch_exceptions([this]() { return file->header().file_name()->organization(); })) { + header.add_child("file_name.organization", ptree(s)); + } + BOOST_FOREACH (const std::string& s, catch_exceptions([this]() { return file->header().file_schema()->schema_identifiers(); })) { + header.add_child("file_schema.schema_identifiers", ptree(s)); + } + try { + header.put("file_description.implementation_level", file->header().file_description()->implementation_level()); + } catch (const IfcParse::IfcException& ex) { + std::stringstream ss; + ss << "Failed to get ifc file header file_description implementation_level, error: '" << ex.what() << "'"; + Logger::Message(Logger::LOG_ERROR, ss.str()); + } + try { + header.put("file_name.name", file->header().file_name()->name()); + } catch (const IfcParse::IfcException& ex) { + std::stringstream ss; + ss << "Failed to get ifc file header file_name name, error: '" << ex.what() << "'"; + Logger::Message(Logger::LOG_ERROR, ss.str()); + } + try { + header.put("file_name.time_stamp", file->header().file_name()->time_stamp()); + } catch (const IfcParse::IfcException& ex) { + std::stringstream ss; + ss << "Failed to get ifc file header file_name time_stamp, error: '" << ex.what() << "'"; + Logger::Message(Logger::LOG_ERROR, ss.str()); + } + try { + header.put("file_name.preprocessor_version", file->header().file_name()->preprocessor_version()); + } catch (const IfcParse::IfcException& ex) { + std::stringstream ss; + ss << "Failed to get ifc file header file_name preprocessor_version, error: '" << ex.what() << "'"; + Logger::Message(Logger::LOG_ERROR, ss.str()); + } + try { + header.put("file_name.originating_system", file->header().file_name()->originating_system()); + } catch (const IfcParse::IfcException& ex) { + std::stringstream ss; + ss << "Failed to get ifc file header file_name originating_system, error: '" << ex.what() << "'"; + Logger::Message(Logger::LOG_ERROR, ss.str()); + } + try { + // @nb inconsistent spelling + header.put("file_name.authorization", file->header().file_name()->authorization()); + } catch (const IfcParse::IfcException& ex) { + std::stringstream ss; + ss << "Failed to get ifc file header file_name authorization, error: '" << ex.what() << "'"; + Logger::Message(Logger::LOG_ERROR, ss.str()); + } + + // Descend into the decomposition structure of the IFC file. + descend(mapping_, project, decomposition); + + // Write all property sets and values as XML nodes. + IfcSchema::IfcPropertySet::list::ptr psets = file->instances_by_type(); + for (IfcSchema::IfcPropertySet::list::it it = psets->begin(); it != psets->end(); ++it) { + IfcSchema::IfcPropertySet* pset = *it; + ptree* node = format_entity_instance(mapping_, pset, properties); + if (node) { + format_properties(mapping_, pset->HasProperties(), *node); + } + } + + // Write all group sets and values as XML nodes. + IfcSchema::IfcGroup::list::ptr gsets = file->instances_by_type(); + std::set notRootGroups; //selfname, fathername + for (IfcSchema::IfcGroup::list::it it = gsets->begin(); it != gsets->end(); ++it) { + writeGroupToNode(mapping_, *it, groups, notRootGroups); + } + for (auto it = groups.begin(); it != groups.end();) { + if (notRootGroups.find(it->second.get(".Name")) != notRootGroups.end()) { + it = groups.erase(it); + } else { + it++; + } + } + + // Write all quantities and values as XML nodes. + IfcSchema::IfcElementQuantity::list::ptr qtosets = file->instances_by_type(); + for (IfcSchema::IfcElementQuantity::list::it it = qtosets->begin(); it != qtosets->end(); ++it) { + IfcSchema::IfcElementQuantity* qto = *it; + ptree* node = format_entity_instance(mapping_, qto, quantities); + if (node) { + format_quantities(mapping_, qto->Quantities(), *node); + } + } + + // Write all work schedules and values as XML nodes. + ptree pwork_schedules; + IfcSchema::IfcWorkSchedule::list::ptr pschedules = file->instances_by_type(); + for (IfcSchema::IfcWorkSchedule::list::it it = pschedules->begin(); it != pschedules->end(); ++it) { + IfcSchema::IfcWorkSchedule* schedule = *it; + ptree* nschedule = format_entity_instance(mapping_, schedule, pwork_schedules); + + if (nschedule) { + IfcSchema::IfcRelAssignsToControl::list::ptr controls = schedule->Controls(); + for (IfcSchema::IfcRelAssignsToControl::list::it it2 = controls->begin(); it2 != controls->end(); ++it2) { + IfcSchema::IfcRelAssignsToControl* control = *it2; + + IfcSchema::IfcObjectDefinition::list::ptr objects = control->RelatedObjects(); + for (IfcSchema::IfcObjectDefinition::list::it it3 = objects->begin(); it3 != objects->end(); ++it3) { + IfcSchema::IfcObjectDefinition* object = *it3; + + if (object && object->declaration().is(IfcSchema::IfcTask::Class())) { + IfcSchema::IfcTask* task = object->as(); + format_tasks(mapping_, task, *nschedule); + } + } + } + } + } + work.add_child("schedules", pwork_schedules); + + // Write all work plans and values as XML nodes. + ptree pwork_plans; + IfcSchema::IfcWorkPlan::list::ptr pplans = file->instances_by_type(); + for (IfcSchema::IfcWorkPlan::list::it it = pplans->begin(); it != pplans->end(); ++it) { + IfcSchema::IfcWorkPlan* plan = *it; + ptree* nschedule = format_entity_instance(mapping_, plan, pwork_plans); + + if (nschedule) { +#ifdef SCHEMA_IfcObjectDefinition_HAS_IsDecomposedBy + auto decomposed_by = plan->IsDecomposedBy(); + for (auto it2 = decomposed_by->begin(); it2 != decomposed_by->end(); ++it2) { + IfcSchema::IfcObjectDefinition::list::ptr related_objects = (*it2)->RelatedObjects(); + for (IfcSchema::IfcObjectDefinition::list::it it3 = related_objects->begin(); it3 != related_objects->end(); ++it3) { + IfcSchema::IfcObjectDefinition* work_schedule = *it3; + ptree pwork_schedule; + pwork_schedule.put(".id", work_schedule->GlobalId()); + nschedule->add_child("IfcWorkSchedule", pwork_schedule); + } + } +#endif + } + } + work.add_child("plans", pwork_plans); + + // Write all work calendars and values as XML nodes. +#ifdef SCHEMA_HAS_IfcWorkCalendar + IfcSchema::IfcWorkCalendar::list::ptr pcalendars = file->instances_by_type(); + for (IfcSchema::IfcWorkCalendar::list::it it = pcalendars->begin(); it != pcalendars->end(); ++it) { + IfcSchema::IfcWorkCalendar* calendar = *it; + ptree* ncalendar = format_entity_instance(mapping_, calendar, calendars); + + if (ncalendar) { + IfcSchema::IfcWorkTime::list::ptr working_times = calendar->WorkingTimes().value_or(nullptr); + if (working_times != nullptr) { + for (IfcSchema::IfcWorkTime::list::it it2 = working_times->begin(); it2 != working_times->end(); ++it2) { + IfcSchema::IfcWorkTime* working_time = *it2; + format_entity_instance(mapping_, working_time, *ncalendar); + } + } + } + } +#endif + + IfcSchema::IfcRelConnectsElements::list::ptr pconnections = file->instances_by_type(); + for (IfcSchema::IfcRelConnectsElements::list::it it = pconnections->begin(); it != pconnections->end(); ++it) { + IfcSchema::IfcRelConnectsElements* connection = *it; + + ptree* nconnection = format_entity_instance(mapping_, connection, connections); + + ptree nrelatedElement; + ptree nrelatingElement; + + format_entity_instance(mapping_, connection->RelatedElement(), nrelatedElement, true); + format_entity_instance(mapping_, connection->RelatingElement(), nrelatingElement, true); + + nconnection->add_child("RelatedElement", nrelatedElement); + nconnection->add_child("RelatingElement", nrelatingElement); + } + + // Write all type objects as XML nodes. + IfcSchema::IfcTypeObject::list::ptr type_objects = file->instances_by_type(); + for (IfcSchema::IfcTypeObject::list::it it = type_objects->begin(); it != type_objects->end(); ++it) { + IfcSchema::IfcTypeObject* type_object = *it; + ptree* node = descend(mapping_, type_object, types); + + if (node && type_object->HasPropertySets()) { + IfcSchema::IfcPropertySetDefinition::list::ptr property_sets = *type_object->HasPropertySets(); + for (IfcSchema::IfcPropertySetDefinition::list::it jt = property_sets->begin(); jt != property_sets->end(); ++jt) { + IfcSchema::IfcPropertySetDefinition* pset = *jt; + if (pset->declaration().is(IfcSchema::IfcPropertySet::Class())) { + format_entity_instance(mapping_, pset, *node, true); + } + } + } + } + + // Write all assigned units as XML nodes. + auto unit_assignments = project->UnitsInContext()->Units(); + for (auto it = unit_assignments->begin(); it != unit_assignments->end(); ++it) { + if ((*it)->declaration().is(IfcSchema::IfcNamedUnit::Class())) { + IfcSchema::IfcNamedUnit* named_unit = (*it)->as(); + ptree* node = format_entity_instance(mapping_, named_unit, units); + if (node) { + node->put(".SI_equivalent", IfcParse::get_SI_equivalent(named_unit)); + } + } else if ((*it)->declaration().is(IfcSchema::IfcMonetaryUnit::Class())) { + format_entity_instance(mapping_, (*it)->as(), units); + } + } + + // Layer assignments. IfcPresentationLayerAssignments don't have GUIDs (only optional Identifier) + // so use names as the IDs and only insert those with unique names. In case of possible duplicate names/IDs + // the first IfcPresentationLayerAssignment occurrence takes precedence. + std::set layer_names; + IfcSchema::IfcPresentationLayerAssignment::list::ptr layer_assignments = file->instances_by_type(); + for (IfcSchema::IfcPresentationLayerAssignment::list::it it = layer_assignments->begin(); it != layer_assignments->end(); ++it) { + const std::string& name = (*it)->Name(); + if (layer_names.find(name) == layer_names.end()) { + layer_names.insert(name); + ptree node; + node.put(".id", name); + format_entity_instance(mapping_, *it, node, layers); + } + } + + IfcSchema::IfcRelAssociatesMaterial::list::ptr materal_associations = file->instances_by_type(); + std::set emitted_materials; + for (IfcSchema::IfcRelAssociatesMaterial::list::it it = materal_associations->begin(); it != materal_associations->end(); ++it) { + IfcSchema::IfcMaterialSelect* mat = (**it).RelatingMaterial(); + if (emitted_materials.find(mat) == emitted_materials.end()) { + emitted_materials.insert(mat); + ptree node; + node.put(".id", qualify_unrooted_instance(mat)); + if (mat->as() || mat->as()) { + IfcSchema::IfcMaterialLayerSet* layerset = mat->as(); + if (!layerset) { + layerset = mat->as()->ForLayerSet(); + } + if (layerset->LayerSetName()) { + node.put(".LayerSetName", *layerset->LayerSetName()); + } + IfcSchema::IfcMaterialLayer::list::ptr ls = layerset->MaterialLayers(); + for (IfcSchema::IfcMaterialLayer::list::it jt = ls->begin(); jt != ls->end(); ++jt) { + ptree subnode; + if ((*jt)->Material()) { + subnode.put(".Name", (*jt)->Material()->Name()); + } + format_entity_instance(mapping_, *jt, subnode, node); + } + } else if (mat->as()) { + IfcSchema::IfcMaterial::list::ptr mats = mat->as()->Materials(); + for (IfcSchema::IfcMaterial::list::it jt = mats->begin(); jt != mats->end(); ++jt) { + ptree subnode; + format_entity_instance(mapping_, *jt, subnode, node); + } + } + format_entity_instance(mapping_, mat->as(), node, materials); + } + } + + root.add_child("ifc.header", header); + root.add_child("ifc.units", units); + root.add_child("ifc.connections", connections); + root.add_child("ifc.properties", properties); + root.add_child("ifc.quantities", quantities); + root.add_child("ifc.work", work); + root.add_child("ifc.calendars", calendars); + root.add_child("ifc.types", types); + root.add_child("ifc.layers", layers); + root.add_child("ifc.groups", groups); + root.add_child("ifc.materials", materials); + root.add_child("ifc.decomposition", decomposition); + + root.put("ifc..xmlns:xlink", "http://www.w3.org/1999/xlink"); + +#if BOOST_VERSION >= 105600 + boost::property_tree::xml_writer_settings settings = boost::property_tree::xml_writer_make_settings('\t', 1); +#else + boost::property_tree::xml_writer_settings settings('\t', 1); +#endif + + std::ofstream f(IfcUtil::path::from_utf8(xml_filename).c_str()); + boost::property_tree::write_xml(f, root, settings); + */ + +#endif \ No newline at end of file diff --git a/src/serializers/schema_dependent/JsonSerializer.h b/src/serializers/schema_dependent/JsonSerializer.h new file mode 100644 index 0000000000..0fd7c57040 --- /dev/null +++ b/src/serializers/schema_dependent/JsonSerializer.h @@ -0,0 +1,58 @@ +/******************************************************************************** + * * + * This file is part of IfcOpenShell. * + * * + * IfcOpenShell is free software: you can redistribute it and/or modify * + * it under the terms of the Lesser GNU General Public License as published by * + * the Free Software Foundation, either version 3.0 of the License, or * + * (at your option) any later version. * + * * + * IfcOpenShell is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * Lesser GNU General Public License for more details. * + * * + * You should have received a copy of the Lesser GNU General Public License * + * along with this program. If not, see . * + * * + ********************************************************************************/ + +#ifndef JSONSERIALIZERIMPL_H +#define JSONSERIALIZERIMPL_H + +#ifdef WITH_GLTF + +#include "../../ifcgeom/abstract_mapping.h" +#include "../../ifcparse/macros.h" +#include "../../serializers/JsonSerializer.h" + +#define INCLUDE_PARENT_PARENT_DIR(x) STRINGIFY(../../ifcparse/x.h) +#include INCLUDE_PARENT_PARENT_DIR(IfcSchema) +#undef INCLUDE_PARENT_PARENT_DIR +#define INCLUDE_PARENT_PARENT_DIR(x) STRINGIFY(../../ifcparse/x-definitions.h) +#include INCLUDE_PARENT_PARENT_DIR(IfcSchema) + +class POSTFIX_SCHEMA(JsonSerializer) : public JsonSerializer { + private: + IfcParse::IfcFile* file; + + // @todo + ifcopenshell::geometry::Settings settings_; + ifcopenshell::geometry::abstract_mapping* mapping_; + + public: + POSTFIX_SCHEMA(JsonSerializer)(IfcParse::IfcFile* file, const std::string& json_filename, JsonSerializer::Dialect dialect) + : JsonSerializer(0, "", dialect), mapping_(ifcopenshell::geometry::impl::mapping_implementations().construct(file, settings_)) + { + this->file = file; + this->json_filename = json_filename; + this->dialect_ = dialect; + } + + void finalize(); + void setFile(IfcParse::IfcFile*) {} +}; + +#endif + +#endif diff --git a/src/svgfill b/src/svgfill deleted file mode 160000 index 801703453d..0000000000 --- a/src/svgfill +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 801703453d89d313c2f387da5731d97fb908daf2 diff --git a/src/svgfill/3rdparty/.gersemirc b/src/svgfill/3rdparty/.gersemirc new file mode 100644 index 0000000000..f64d72913d --- /dev/null +++ b/src/svgfill/3rdparty/.gersemirc @@ -0,0 +1 @@ +disable_formatting: true diff --git a/src/svgfill/3rdparty/svgpp b/src/svgfill/3rdparty/svgpp new file mode 160000 index 0000000000..5f1870aa7b --- /dev/null +++ b/src/svgfill/3rdparty/svgpp @@ -0,0 +1 @@ +Subproject commit 5f1870aa7b757718ff5f86bdfb55966fa4f217f9 diff --git a/src/svgfill/CMakeLists.txt b/src/svgfill/CMakeLists.txt new file mode 100644 index 0000000000..f2f8c1a062 --- /dev/null +++ b/src/svgfill/CMakeLists.txt @@ -0,0 +1,66 @@ +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +project(svgfill) + +if(POLICY CMP0144) # 3.27 + cmake_policy(SET CMP0144 NEW) # find_package() uses upper-case _ROOT variables. +endif() +if(POLICY CMP0167) # 3.30 find_package(Boost) to use BoostConfig instead of FindBoost. + cmake_policy(SET CMP0167 OLD) +endif() + +if(WIN32 AND NOT DEFINED ENV{CONDA_BUILD}) + set(Boost_USE_STATIC_LIBS ON) + set(Boost_USE_MULTITHREADED ON) + if(USE_STATIC_MSVC_RUNTIME) + set(Boost_USE_STATIC_RUNTIME ON) + endif() +else() + # Disable Boost's autolinking as the libraries to be linked to are supplied + # already by CMake, and it's going to conflict if there are multiple, as is + # the case in conda-forge's libboost feedstock. + add_definitions(-DBOOST_ALL_NO_LIB) + if(WIN32) + # Necessary for boost version >= 1.67 + set(BCRYPT_LIBRARIES "bcrypt.lib") + endif() +endif() + +if(MSVC) + add_definitions(-bigobj) +endif() + +find_package(Boost) +message(STATUS "Boost include files found in ${Boost_INCLUDE_DIRS}") +find_package(LibXml2 REQUIRED) +find_package(CGAL REQUIRED) + +include_directories(${Boost_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/svgpp/include) + +file(GLOB LIB_H_FILES src/*.h) +file(GLOB LIB_CPP_FILES src/svgfill.cpp src/arrange_polygons.cpp) +set(LIB_SRC_FILES ${LIB_H_FILES} ${LIB_CPP_FILES}) +add_library(svgfill ${LIB_SRC_FILES}) +target_link_libraries(svgfill ${Boost_LIBRARIES} ${BCRYPT_LIBRARIES} LibXml2::LibXml2 IFCOPENSHELL_CGAL) +set_target_properties(svgfill PROPERTIES PUBLIC_HEADER "${LIB_H_FILES}") + +add_executable(svgfill_exe src/main.cpp) +target_link_libraries(svgfill_exe svgfill) +set_property(TARGET svgfill_exe PROPERTY OUTPUT_NAME svgfill) +if(WIN32) + # both the library and the executable now result in a file with basename svgfill, + # on linux the the library is prefixed with lib as libsvgfill.a. Windows does not + # have this mechanism, so on windows the linker would be created an import library + # for the executable, also named svgfill.lib. This naming conflict results in: + # LINK : fatal error LNK1149: output filename matches input filename + # This flag tells the linker not to generate an import library and therefore no + # conflict occurs. + target_link_options(svgfill_exe PRIVATE "/NOIMPLIB") +endif() + +install( + TARGETS svgfill_exe svgfill + EXPORT ${IFCOPENSHELL_EXPORT_TARGETS} + PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/svgfill" +) diff --git a/src/svgfill/README.md b/src/svgfill/README.md new file mode 100644 index 0000000000..1e2193e6f8 --- /dev/null +++ b/src/svgfill/README.md @@ -0,0 +1,64 @@ +svgfill +======= + +An application to fill areas bounded by unconnected lines in SVG. + +Dependencies +------------ + +* [CGAL 2D Arrangements](https://doc.cgal.org/latest/Arrangement_on_surface_2/index.html) GPL +* [SVG++](http://svgpp.org/) Boost software license + +Compilation +----------- + +Installation is shown based on the IfcOpenShell build script directory output: + + git clone --recursive https://github.com/IfcOpenShell/svgfill + cd svgfill + mkdir build + cd build + + # windows + + set IFCOPENSHELL_ROOT=..\path\to\ifcopenshell\directory\ + cmake -DBOOST_ROOT=%IFCOPENSHELL_ROOT%\deps\boost_1_67_0 ^ + -DLIBXML2_INCLUDE_DIR=%IFCOPENSHELL_ROOT%\deps\OpenCOLLADA\Externals\LibXML\include ^ + -DLIBXML2_LIBRARIES=%IFCOPENSHELL_ROOT%\deps-vs2017-x86-installed\OpenCOLLADA\lib\opencollada\xml.lib ^ + -DCGAL_INCLUDE_DIR=%IFCOPENSHELL_ROOT%\deps-vs2017-x86-installed\cgal\include ^ + -DCGAL_LIBRARY_DIR=%IFCOPENSHELL_ROOT%\deps-vs2017-x86-installed\cgal\lib ^ + -DGMP_INCLUDE_DIR=%IFCOPENSHELL_ROOT%\deps-vs2017-x86-installed\mpir ^ + -DGMP_LIBRARY_DIR=%IFCOPENSHELL_ROOT%\deps-vs2017-x86-installed\mpir ^ + -DMPFR_INCLUDE_DIR=%IFCOPENSHELL_ROOT%\deps-vs2017-x86-installed\mpfr ^ + -DMPFR_LIBRARY_DIR=%IFCOPENSHELL_ROOT%\deps-vs2017-x86-installed\mpfr ^ + .. + + # nix + + IFCOPENSHELL_INSTALL=~/IfcOpenShell/build/$(uname -s)/$(uname -m)/install + cmake -DBOOST_ROOT=${IFCOPENSHELL_INSTALL}/boost-1.69.0 \ + -DLIBXML2_INCLUDE_DIR=${IFCOPENSHELL_INSTALL}/libxml2-2.9.9/include/libxml2 \ + -DLIBXML2_LIBRARIES=${IFCOPENSHELL_INSTALL}/libxml2-2.9.9/lib/libxml2.a \ + -DCGAL_INCLUDE_DIR=${IFCOPENSHELL_INSTALL}/cgal-5.2/include \ + -DCGAL_LIBRARY_DIR=${IFCOPENSHELL_INSTALL}/cgal-5.2/lib \ + -DGMP_INCLUDE_DIR=${IFCOPENSHELL_INSTALL}/gmp-6.1.2/include \ + -DGMP_LIBRARY_DIR=${IFCOPENSHELL_INSTALL}/gmp-6.1.2/lib \ + -DMPFR_INCLUDE_DIR=${IFCOPENSHELL_INSTALL}/mpfr-3.1.5/include \ + -DMPFR_LIBRARY_DIR=${IFCOPENSHELL_INSTALL}/mpfr-3.1.5/lib \ + .. + +License +------- + +LGPL + +Example +------- + +in: + +![](examples/rects.svg) + +out: + +![](examples/rects_output.svg) diff --git a/src/svgfill/examples/rects.svg b/src/svgfill/examples/rects.svg new file mode 100644 index 0000000000..23f1bc841d --- /dev/null +++ b/src/svgfill/examples/rects.svg @@ -0,0 +1,80 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/src/svgfill/examples/rects_output.svg b/src/svgfill/examples/rects_output.svg new file mode 100644 index 0000000000..c16c588993 --- /dev/null +++ b/src/svgfill/examples/rects_output.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/svgfill/src/arrange_polygons.cpp b/src/svgfill/src/arrange_polygons.cpp new file mode 100644 index 0000000000..7bddc2e41a --- /dev/null +++ b/src/svgfill/src/arrange_polygons.cpp @@ -0,0 +1,1774 @@ +// #define SVGFILL_DEBUG +// #define SVGFILL_MAIN + +#ifndef SVGFILL_MAIN +#include "svgfill.h" +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include + +#include "graph_2d.h" + +#if CGAL_VERSION_NR >= 1060000000 +#define variant_get std::get_if +#define my_shared_ptr std::shared_ptr +#else +#define variant_get boost::get +#define my_shared_ptr boost::shared_ptr +#endif + +typedef CGAL::Exact_predicates_exact_constructions_kernel K; +typedef CGAL::Polygon_2 Polygon_2; +typedef CGAL::Polygon_with_holes_2 Polygon_with_holes_2; +typedef K::Point_2 Point_2; +typedef K::Segment_2 Segment_2; +typedef std::vector Polygon_list; +typedef CGAL::Arr_segment_traits_2 Traits_2; +typedef typename Traits_2::Point_2 Arr_Point_2; +typedef typename Traits_2::X_monotone_curve_2 Arr_Segment_2; +typedef CGAL::Arrangement_2 Arrangement_2; + +template +using Triangle = std::array, 3>; + +template +Polygon_2 convert_polygon(const CGAL::Polygon_2& poly) { + Polygon_2 exact_poly; + typedef CGAL::Cartesian_converter Converter_Epick_to_Epeck; + Converter_Epick_to_Epeck converter; + for (auto vit = poly.vertices_begin(); vit != poly.vertices_end(); ++vit) { + exact_poly.push_back(converter(*vit)); // Convert each vertex + } + return exact_poly; +} + +template +void remove_close_points(P& p, double eps = 1.e-2) { + std::vector> ps; + ps.reserve(p.size()); + auto I = p.begin(); + auto J = I + 1; + for (;; ++J) { + bool last = false; + if (J == p.end()) { + J = p.begin(); + last = true; + } + // std::cout << "d " << std::sqrt(CGAL::to_double(CGAL::squared_distance(*I, *J))) << std::endl; + if (CGAL::squared_distance(*I, *J) > (eps * eps)) { + ps.push_back(*J); + I = J; + } + if (last) { + break; + } + } + if (ps.size() >= 2 && CGAL::squared_distance(ps.front(), ps.back()) <= eps * eps) { + // Remove the last point if it is too close to the first point + ps.pop_back(); + } + if (ps.size() != p.size()) { + // std::cerr << "Removed " << (p.size() - ps.size()) << " close points from polygon" << std::endl; + p = P(ps.begin(), ps.end()); + } +} + +std::vector create_and_convert_offset_polygon(double offset_distance, const Polygon_2& polygon_) { + auto polygon = polygon_; + if (!polygon.is_counterclockwise_oriented()) { + polygon.reverse_orientation(); + } + + remove_close_points(polygon); + + // Create the offset polygons using Epick kernel + // create_exterior_skeleton_and_offset_polygons_2() + std::vector>> offset_polygons; + + if (offset_distance >= 0.) { + offset_polygons = CGAL::create_exterior_skeleton_and_offset_polygons_2(offset_distance, polygon); + // erase the first outer frame + offset_polygons.erase(offset_polygons.begin()); + offset_polygons.front()->reverse_orientation(); + } else { + offset_polygons = CGAL::create_interior_skeleton_and_offset_polygons_2(-offset_distance, polygon); + } + + // Convert each offset polygon back to the Epeck kernel + std::vector exact_offset_polygons; + for (auto& inexact_poly_ptr : offset_polygons) { + remove_close_points(*inexact_poly_ptr); + Polygon_2 exact_poly = convert_polygon(*inexact_poly_ptr); + exact_offset_polygons.push_back(exact_poly); + } + + return exact_offset_polygons; +} + +template +T take_first_if_single_item(const std::vector& vec) { + if (vec.size() == 0) { + throw std::runtime_error("Expected at least one item"); + } + if (true || vec.size() == 1) { + return vec.front(); + } + throw std::runtime_error("Expected a single item"); +} + +template +boost::optional maybe_take_first_if_single_item(const std::vector& vec) { + if (vec.size() == 0) { + return boost::none; + } + if (true || vec.size() == 1) { + return vec.front(); + } +} + +template +boost::optional subtract_retain_largest(const T& lhs, const T& rhs) { + std::vector result; + boost::optional mp; + + CGAL::difference(lhs, rhs, std::back_inserter(result)); + + std::sort(result.begin(), result.end(), [](const Polygon_with_holes_2& a, const Polygon_with_holes_2& b) { + return a.outer_boundary().area() < b.outer_boundary().area(); + }); + + if (result.size() > 0) { + if (result.front().has_holes()) { + return boost::none; + } + return result.front().outer_boundary(); + } + + return boost::none; +} + +// Function to write polygons as line segments in OBJ format +void write_polygon_to_obj(std::ofstream& ofs, size_t& vertex_index, bool as_line, const Polygon_2& polygon, const std::string& name) { + ofs << "o " << name << "\n"; // Object name + + // Write vertices + for (auto vit = polygon.vertices_begin(); vit != polygon.vertices_end(); ++vit) { + ofs << "v " << CGAL::to_double(vit->x()) << " " << CGAL::to_double(vit->y()) << " 0\n"; + } + + if (as_line) { + // Write line segments (edges) + for (size_t j = 0; j < polygon.size(); ++j) { + ofs << "l " << vertex_index + j << " " << vertex_index + (j + 1) % polygon.size() << "\n"; + } + } else { + ofs << "f"; + for (size_t j = 0; j < polygon.size(); ++j) { + ofs << " " << vertex_index + j; + } + ofs << "\n"; + } + + vertex_index += polygon.size(); +} + +Polygon_2 circ_to_poly(typename Arrangement_2::Ccb_halfedge_const_circulator circ) +{ + Polygon_2 poly; + auto curr = circ; + do { + poly.push_back(curr->source()->point()); + } while (++curr != circ); + return poly; +} + +Polygon_with_holes_2 circ_to_poly(typename Arrangement_2::Ccb_halfedge_const_circulator circ, typename Arrangement_2::Inner_ccb_const_iterator a, typename Arrangement_2::Inner_ccb_const_iterator b) +{ + Polygon_with_holes_2 poly(circ_to_poly(circ)); + for (auto it = a; it != b; ++it) { + poly.add_hole(circ_to_poly(*it)); + } + return poly; +} + +void write_polygon_to_svg(std::ostream& ofs, const Polygon_2& polygon) { + ofs << "x()) << "," << CGAL::to_double(vit->y()) << " "; + } + ofs << "\" style=\"fill:none;stroke-width:1\" />\n"; +} + +// Function to write a Polygon_with_holes_2 to an SVG file +void write_polygon_with_holes_to_svg(std::ostream& ofs, const Polygon_with_holes_2& polygon_with_holes) { + // Write the outer boundary (main polygon) + if (!polygon_with_holes.is_unbounded()) { + write_polygon_to_svg(ofs, polygon_with_holes.outer_boundary()); + } + + // Write the holes (if any) with a different color (e.g., red) + for (auto hit = polygon_with_holes.holes_begin(); hit != polygon_with_holes.holes_end(); ++hit) { + write_polygon_to_svg(ofs, *hit); + } +} + +Polygon_2 fuse_with_offset(const std::vector& polygons, double polygon_offset_distance) { + // Find the outer perimeter using offset - union - negative offset + std::vector offset_polygons; + for (auto& r : polygons) { + auto ps = create_and_convert_offset_polygon(polygon_offset_distance, r); + for (auto& p : ps) { + if (!p.is_simple()) { + /*{ + std::cerr << "["; + bool first = true; + for (auto& pp : r) { + if (!first) { + std::cerr << ","; + } + first = false; + std::cerr << "(" << pp.x() << "," << pp.y() << ")"; + } + std::cerr << "]" << std::endl; + } + { + std::cerr << "["; + bool first = true; + for (auto& pp : p) { + if (!first) { + std::cerr << ","; + } + first = false; + std::cerr << "(" << pp.x() << "," << pp.y() << ")"; + } + std::cerr << "]" << std::endl; + }*/ + throw std::runtime_error("Complex polygon originated from offset"); + } + } + offset_polygons.insert(offset_polygons.end(), ps.begin(), ps.end()); + } + + // Perform Boolean union on the offset polygons + std::vector unioned_polygons; + CGAL::join(offset_polygons.begin(), offset_polygons.end(), std::back_inserter(unioned_polygons)); + Polygon_2 fused_removed_close_points = unioned_polygons.front().outer_boundary(); + remove_close_points(unioned_polygons.front().outer_boundary(), polygon_offset_distance); + + // Apply negative offset to get the outer perimeter polygon + auto inner_offset = create_and_convert_offset_polygon( + // Slightly smaller inset distance for non-manifold situs? + -polygon_offset_distance + 1.e-8, + fused_removed_close_points); + + if (inner_offset.size() != 1) { + throw std::runtime_error("Unexpected union outcome - num outer perimiters: " + std::to_string(inner_offset.size())); + } + + return inner_offset.front(); +} + +void arrange_cgal_polygons(const std::vector& input_polygons_, std::vector& output_polygons, double polygon_offset_distance = -1.) { + static const double OVERLAP_RESOLUTION_DISTANCE = 1.e-2; + // even larger amount of inset so that outer perimeter is safely within all input polygons even when overlap resolution is applied + // no, `1.e-2 + 1.e-5` creates issues with the outer perimeter, are there other tolerances in play? + static const double OUTER_PERIMITER_ADDITIONAL_INSET_AMOUNT = 1.e-5; + + if (polygon_offset_distance < 0.) { + double total_edge_length = 0.; + size_t num_edges = 0; + for (auto& p : input_polygons_) { + for (auto it = p.edges_begin(); it != p.edges_end(); ++it) { + total_edge_length += std::sqrt(CGAL::to_double(CGAL::squared_distance(it->start(), it->end()))); + num_edges += 1; + } + } + polygon_offset_distance = total_edge_length / num_edges / 2; + } + + auto input_polygons__ = input_polygons_; + decltype(input_polygons__) input_polygons; + + for (auto& i : input_polygons__) { + std::vector> ps(i.begin(), i.end()); + if (ps.front() == ps.back()) { + ps.pop_back(); + } + input_polygons.emplace_back(ps.begin(), ps.end()); + } + + for (auto& polygon : input_polygons) { + if (!polygon.is_counterclockwise_oriented()) { + polygon.reverse_orientation(); + } + } + + for (auto& polygon : input_polygons) { + remove_close_points(polygon); + } + +#ifdef SVGFILL_DEBUG + std::ofstream obj("obj.obj"); + size_t vi = 1; + + std::ofstream svg("svg.svg"); + svg << "\n"; + + for (auto it = input_polygons.begin(); it != input_polygons.end(); ++it) { + write_polygon_to_obj(obj, vi, true, *it, "input_poly_" + std::to_string(std::distance(input_polygons.begin(), it))); + write_polygon_to_svg(svg, *it); + } + + obj << std::flush; +#endif + + typedef CGAL::Box_intersection_d::Box_with_handle_d Box; + std::vector>> input_triangulated; + + std::vector boxes; + for (auto it = input_polygons.begin(); it != input_polygons.end(); ++it) { + constexpr double offset = 1.e-3; + auto b = it->bbox(); + boxes.emplace_back( + CGAL::Bbox_2(b.xmin() - offset, b.ymin() - offset, b.xmax() + offset, b.ymax() + offset), + std::distance(input_polygons.begin(), it) + ); + + if (!it->is_simple()) { +#ifdef SVGFILL_DEBUG + write_polygon_to_obj(obj, vi, true, *it, "self-intersecting"); +#endif + throw std::runtime_error("Self-intersecting input"); + } + + CGAL::Polygon_triangulation_decomposition_2 decompositor; + std::vector temp; + decompositor(*it, std::back_inserter(temp)); + input_triangulated.emplace_back(); + for (auto& pol : temp) { + auto it = pol.vertices_circulator(); + const auto& p = *(it++); + const auto& q = *(it++); + const auto& r = *(it++); + input_triangulated.back().emplace_back(p, q, r); + } + } + + std::set> overlaps; + + CGAL::box_self_intersection_d(boxes.begin(), boxes.end(), [&input_triangulated, &overlaps](const Box& a, const Box& b) { + for (auto& t1 : input_triangulated[a.handle()]) { + bool registered_overlap = false; + for (auto& t2 : input_triangulated[b.handle()]) { + if (CGAL::squared_distance(t1, t2) < (1.e-3 * 1.e-3)) { + overlaps.insert({ + (a.handle() < b.handle()) ? a.handle() : b.handle(), + (a.handle() < b.handle()) ? b.handle() : a.handle() + }); + registered_overlap = true; + break; + } + } + if (registered_overlap) { + // no need to check other triangles + break; + } + } + }); + + if (true) { + // solve overlaps by means of subtraction + // loop over overlaps and subtract the smaller polygon from the larger one + + std::set eliminated_polies; + std::map overlap_counts; + for (auto& p : overlaps) { + overlap_counts[p.first]++; + overlap_counts[p.second]++; + } + + for (const auto& edge : overlaps) { + // Skip eliminated + if (eliminated_polies.find(edge.first) != eliminated_polies.end() || + eliminated_polies.find(edge.second) != eliminated_polies.end()) { + continue; + } + + // Many overlaps indicate an aggregated polygon, skip them + /* + if (overlap_counts[edge.first] > 10 || overlap_counts[edge.second] > 10) { + if (overlap_counts[edge.first] > 10) { + eliminated_polies.insert(edge.first); + } + if (overlap_counts[edge.second] > 10) { + eliminated_polies.insert(edge.second); + } + continue; + } + */ + + // these are pointers now, because otherwise swap would not work? + auto* poly1 = &input_polygons[edge.first]; + auto* poly2 = &input_polygons[edge.second]; + + // Populate eliminated_polies with small polygons + // This can happen over time when modifications are made to the polygons to solve overlaps + bool skip = false; + if (poly1->area() < 1.e-2) { + eliminated_polies.insert(edge.first); + skip = true; + } + if (poly2->area() < 1.e-2) { + eliminated_polies.insert(edge.second); + skip = true; + } + // Small slivers are also just eliminated + if (!maybe_take_first_if_single_item(create_and_convert_offset_polygon(-1.e-1, *poly1))) { + eliminated_polies.insert(edge.first); + skip = true; + } + if (!maybe_take_first_if_single_item(create_and_convert_offset_polygon(-1.e-1, *poly2))) { + eliminated_polies.insert(edge.second); + skip = true; + } + if (skip) { + continue; + } + + // Skip polygons that have a very high intersection over union + // ratio, which indicates that they are very likely duplicates + if (CGAL::do_intersect(*poly1, *poly2)) { + std::vector result; + CGAL::intersection(*poly1, *poly2, std::back_inserter(result)); + typename K::FT intersection_area = 0; + for (auto& r : result) { + auto poly_area = r.outer_boundary().area(); + for (auto& h : r.holes()) { + poly_area -= h.area(); + } + intersection_area += poly_area; + } + CGAL::Polygon_with_holes_2 poly12; + CGAL::join(*poly1, *poly2, poly12); + typename K::FT union_area = poly12.outer_boundary().area(); + for (auto& h : poly12.holes()) { + union_area -= h.area(); + } + if (union_area > 0 && intersection_area / union_area > 0.99) { + // std::cerr << intersection_area / union_area << std::endl; + eliminated_polies.insert(edge.first); + continue; + } + } + + if (!(poly1->is_simple() && poly2->is_simple())) { + continue; + } + + { + std::vector result; + // std::cerr << poly1.area() << " " << poly2.area() << std::endl; + // std::cerr.flush(); + + boost::optional mp1, mp2, mp3, mp4; + bool swap = false; + + swap = poly1->area() <= poly2->area(); + if (swap) { + std::swap(poly1, poly2); + } + + bool success = false; + if ((mp1 = maybe_take_first_if_single_item(create_and_convert_offset_polygon(OVERLAP_RESOLUTION_DISTANCE, *poly2)))) { + if ((mp2 = subtract_retain_largest(*poly1, *mp1))) { + if ((mp3 = maybe_take_first_if_single_item(create_and_convert_offset_polygon(OVERLAP_RESOLUTION_DISTANCE * 2, *mp2)))) { + if ((mp4 = subtract_retain_largest(*poly2, *mp3))) { + *poly1 = *mp2; + *poly2 = *mp4; + success = true; + } + } + } + } + + /* + if (swap) { + // swap back to retain original ordering + // what's the point in swapping back here? + std::swap(poly1, poly2); + } + */ + + if (!success) { + eliminated_polies.insert(swap ? edge.first : edge.second); + continue; + } + } + } + + // iterate over the eliminated polygons and remove them from the input polygons + for (auto it = eliminated_polies.rbegin(); it != eliminated_polies.rend(); ++it) { + input_polygons.erase(input_polygons.begin() + *it); + } + } + + /* + if constexpr (false) { + // solve overlap by means of union into components + std::vector> adj(input_polygons.size()); + for (const auto& edge : overlaps) { + adj[edge.first].push_back(edge.second); + adj[edge.second].push_back(edge.first); + } + + std::vector visited(input_polygons.size(), false); + std::vector> connected_components; + + for (size_t v = 0; v < input_polygons.size(); ++v) { + if (!visited[v]) { + connected_components.emplace_back(); + + std::stack stack; + stack.push(v); + visited[v] = true; + + while (!stack.empty()) { + size_t u = stack.top(); + stack.pop(); + connected_components.back().push_back(u); + + for (size_t neighbor : adj[u]) { + if (!visited[neighbor]) { + visited[neighbor] = true; + stack.push(neighbor); + } + } + } + } + } + + std::vector fused_polies; + + for (auto& comp : connected_components) { + std::vector comp_polies; + if (comp.size() == 1) { + fused_polies.push_back(input_polygons[comp.front()]); + } else { + for (auto& c : comp) { + comp_polies.push_back(input_polygons[c]); + } + fused_polies.push_back(fuse_with_offset(comp_polies, 1.e-2)); + } + } + +#ifdef SVGFILL_DEBUG + for (auto it = fused_polies.begin(); it != fused_polies.end(); ++it) { + write_polygon_to_obj(obj, vi, true, *it, "fused_poly_" + std::to_string(std::distance(fused_polies.begin(), it))); + write_polygon_to_svg(svg, *it); + } +#endif + + input_polygons = fused_polies; + } + */ + + { + // [NB Nov 6] we cannot do this anymore because it could revert the spacing between input polygons + // that touch in the corner. + // Now that overlaps/touches at corners are handled more locally only a small indent is produced + // which would be undone by means of an inset+offset. + // + // [NB Nov 10] this is actually still necessary though, but we apply a much smaller distance now + // to keep the overlap eliminations in tact + // + // Inset-offset to remove tiny details that may cause enourmous spikes in offsets + for (auto& r : input_polygons) { + auto ps = create_and_convert_offset_polygon(-polygon_offset_distance / 10000., r); + if (ps.size() == 1) { + auto r2 = ps.front(); + ps = create_and_convert_offset_polygon(+polygon_offset_distance / 10000., r2); + if (ps.size() == 1) { + r = ps.front(); + } + } + } + } + +#ifdef SVGFILL_DEBUG + for (auto it = input_polygons.begin(); it != input_polygons.end(); ++it) { + write_polygon_to_obj(obj, vi, true, *it, "processed_input_poly_" + std::to_string(std::distance(input_polygons.begin(), it))); + write_polygon_to_svg(svg, *it); + } +#endif + + // Unfortunately CGAL does not seem to have a ready to use aabb primitive for segments in 2D, + // so we have to use 3D segments and aabb tree for 2D polygons. + std::list> all_segs; + std::unordered_map*, decltype(input_polygons.begin())> seg_to_poly; + + for (auto it = input_polygons.begin(); it != input_polygons.end(); ++it) { + for (auto eit = it->edges_begin(); eit != it->edges_end(); ++eit) { + CGAL::Segment_3 seg3d( + CGAL::Point_3(eit->source().x(), eit->source().y(), 0), + CGAL::Point_3(eit->target().x(), eit->target().y(), 0) + ); + all_segs.push_back(seg3d); + seg_to_poly[&all_segs.back()] = it; + } + } + + using TreeTraits = CGAL::AABB_traits>::iterator>>; + using Tree = CGAL::AABB_tree; + + Tree tree(all_segs.begin(), all_segs.end()); + tree.accelerate_distance_queries(); + + auto input_polygon_boundary = + [&](const Point_2& p, double tol = 1e-5) -> decltype(input_polygons.begin()) + { + // Find closest point & corresponding segment + auto closest = tree.closest_point_and_primitive(CGAL::Point_3(p.x(), p.y(), 0)); + const auto& closest_pt = closest.first; + auto seg_ptr = &*closest.second; + + double d = CGAL::to_double(CGAL::squared_distance(p, Point_2(closest_pt.x(), closest_pt.y()))); + if (d < (tol * tol)) { + return seg_to_poly.find(seg_ptr)->second; + } + return input_polygons.end(); + }; + + /* + auto input_polygon_boundary = [&input_polygons](const CGAL::Point_2& p, double tol = 1.e-5) { + // unfortunately some imprecision slept into the code so we can't + // so we can't just use has_on_boundary() anymore + double D = std::numeric_limits::infinity(); + for (auto it = input_polygons.begin(); it != input_polygons.end(); ++it) { + for (auto jt = it->edges_begin(); jt != it->edges_end(); ++jt) { + const auto& seg = *jt; + auto d = std::sqrt(CGAL::to_double(CGAL::squared_distance(seg, p))); + if (d < D) { + D = d; + } + if (d < tol) { + return it; + } + } + } + return input_polygons.end(); + }; + */ + + auto close_input_point = [&input_polygons](const CGAL::Point_2& P) { + CGAL::Point_2 closest; + double closest_distance = std::numeric_limits::infinity(); + auto input_it = input_polygons.end(); + + // unfortunately some imprecision slept into the code so we can't + // so we can't just use has_on_boundary() anymore + for (auto it = input_polygons.begin(); it != input_polygons.end(); ++it) { + for (auto& p : *it) { + auto d = std::sqrt(CGAL::to_double(CGAL::squared_distance(P, p))); + if (d < closest_distance) { + closest_distance = d; + closest = p; + input_it = it; + } + } + } + + return std::make_pair(input_it, closest); + }; + + auto project_input_point = [&input_polygons](const CGAL::Point_2& P) { + CGAL::Point_2 closest; + typename K::FT closest_sq_distance = std::numeric_limits::infinity(); + auto input_it = input_polygons.end(); + + // unfortunately some imprecision slept into the code so we can't + // so we can't just use has_on_boundary() anymore + for (auto it = input_polygons.begin(); it != input_polygons.end(); ++it) { + for (auto jt = it->edges_begin(); jt != it->edges_end(); ++jt) { + auto Pp = jt->supporting_line().projection(P); + auto d = CGAL::squared_distance(Pp, P); + if (d < closest_sq_distance) { + closest_sq_distance = d; + closest = Pp; + input_it = it; + } + } + } + + return std::make_pair(input_it, closest); + }; + + // Find the outer perimeter using offset - union - negative offset + std::vector offset_polygons; + for (auto& r : input_polygons) { + auto R = r; + if (!R.is_counterclockwise_oriented()) { + R.reverse_orientation(); + } + + // Overlap removal can also result in close points causing problems when converted into non-exact nt + remove_close_points(R); + + auto ps = create_and_convert_offset_polygon(polygon_offset_distance, R); + for (auto& p : ps) { + if (!p.is_simple()) { + /*{ + std::cerr << "input ["; + bool first = true; + for (auto& pp : r) { + if (!first) { + std::cerr << ","; + } + first = false; + std::cerr << "(" << pp.x() << "," << pp.y() << ")"; + } + std::cerr << "]" << std::endl; + } + + { + std::cerr << "["; + bool first = true; + for (auto& pp : p) { + if (!first) { + std::cerr << ","; + } + first = false; + std::cerr << "(" << pp.x() << "," << pp.y() << ")"; + } + std::cerr << "]" << std::endl; + }*/ + + throw std::runtime_error("Complex polygon originated from offset"); + } + } + offset_polygons.insert(offset_polygons.end(), ps.begin(), ps.end()); + } + +#ifdef SVGFILL_DEBUG + for (auto it = offset_polygons.begin(); it != offset_polygons.end(); ++it) { + write_polygon_to_obj(obj, vi, true, *it, "offset_poly_" + std::to_string(std::distance(offset_polygons.begin(), it))); + write_polygon_to_svg(svg, *it); + } +#endif + + // Perform Boolean union on the offset polygons + std::vector unioned_polygons; + CGAL::join(offset_polygons.begin(), offset_polygons.end(), std::back_inserter(unioned_polygons)); + + if (unioned_polygons.size() > 1) { + // @todo this is currently one of the major limitations in the code that still can be eliminated + // by grouping the input polygons by their perimiter polygon in unioned_polygons + std::sort(unioned_polygons.begin(), unioned_polygons.end(), [](auto& p, auto& q) { return p.outer_boundary().area() > q.outer_boundary().area(); }); + } + +#ifdef SVGFILL_DEBUG + write_polygon_to_obj(obj, vi, true, unioned_polygons.front().outer_boundary(), "offset_poly_joined"); + write_polygon_to_svg(svg, unioned_polygons.front().outer_boundary()); + +#endif + + Polygon_2 fused_removed_close_points; + { + std::vector> ps; + auto& p = unioned_polygons.front().outer_boundary(); + ps.reserve(p.size()); + auto I = p.begin(); + auto J = I + 1; + for (;; ++J) { + bool last = false; + if (J == p.end()) { + J = p.begin(); + last = true; + } + // if (CGAL::squared_distance(*I, *J) > (polygon_offset_distance * polygon_offset_distance)) { + if (CGAL::squared_distance(*I, *J) > (1.e-4 * 1.e-4)) { + ps.push_back(*J); + I = J; + } + if (last) { + break; + } + } + fused_removed_close_points = Polygon_2(ps.begin(), ps.end()); + } + + // Apply negative offset to get the outer perimeter polygon + auto inner_offset = create_and_convert_offset_polygon( + // Because polygon_offset is inexact, make sure our inset distance is slightly larger + // std::nexttoward(-polygon_offset_distance, -std::numeric_limits::infinity()), + + // 1.e-8 even was too little and still resulted in slivers of triangle around the perimeter + -polygon_offset_distance - OUTER_PERIMITER_ADDITIONAL_INSET_AMOUNT, + fused_removed_close_points); + +#ifdef SVGFILL_DEBUG + write_polygon_to_obj(obj, vi, true, inner_offset.front(), "joined_inset"); + write_polygon_to_svg(svg, inner_offset.front()); +#endif + + /* + // there is non-insignificant chance that around the outer boundary, vertices are located in + // between of the input polyhedra, but intermediate vertices result in triangles that will no longer + // span between the two spaces with two edges and therefore cause the topological centre line + // to no run up to the center. Eliminate all vertices that are not on the polyhedral boundary of polygon. + + // this theory proved to be false. once we have topological end points in our graph that are + // connected to input polyhedra to form closed cells, we move those topological end points to + // the average of the input polyhedra corner points, thus effectively also moving them outwards. + { + for (auto& i : inner_offset) { + std::vector> ps; + for (auto& p : i) { + if (input_polygon_boundary(p, 1.e-3) != input_polygons.end()) { + ps.push_back(p); + } + } + i = Polygon_2(ps.begin(), ps.end()); + } + } + +#ifdef SVGFILL_DEBUG + write_polygon_to_obj(obj, vi, true, inner_offset.front(), "joined_inset_cleaned"); + write_polygon_to_svg(svg, inner_offset.front()); +#endif + */ + + // Subtract original polygons from outer perimeter + std::vector difference_result, difference_result_subdivided; + for (auto& i : inner_offset) { + std::vector working_copy; + working_copy.emplace_back(i); + + for (auto& r : input_polygons) { + std::vector temp_working_copy; + for (auto& wc : working_copy) { + CGAL::difference(wc, r, std::back_inserter(temp_working_copy)); + } + working_copy = temp_working_copy; + } + difference_result.insert(difference_result.end(), working_copy.begin(), working_copy.end()); + } + + // subdivide difference_result to have better behave triangulation + + { + const double max_distance = polygon_offset_distance / 8.; + auto subdivide_polygon = [max_distance](const Polygon_2& p) { + std::vector points; + for (auto it = p.edges_begin(); it != p.edges_end(); ++it) { + const auto& seg = *it; + auto num_splits = (int)std::ceil(std::sqrt(CGAL::to_double(seg.squared_length())) / max_distance) - 1; + points.push_back(seg.source()); + for (auto i = 0; i < num_splits; ++i) { + auto d = (seg.target() - seg.source()) / (num_splits + 1) * (i + 1); + points.push_back(seg.source() + d); + } + } + return Polygon_2(points.begin(), points.end()); + }; + + for (auto& pwh : difference_result) { + // Subdivide outer boundary + Polygon_2 outer = subdivide_polygon(pwh.outer_boundary()); + // Subdivide holes + std::vector holes; + for (auto hit = pwh.holes_begin(); hit != pwh.holes_end(); ++hit) { + holes.push_back(subdivide_polygon(*hit)); + } + // Construct new Polygon_with_holes_2 + difference_result_subdivided.push_back(Polygon_with_holes_2(outer, holes.begin(), holes.end())); + } + } + +#ifdef SVGFILL_DEBUG + for (auto it = difference_result_subdivided.begin(); it != difference_result_subdivided.end(); ++it) { + auto i = std::distance(difference_result_subdivided.begin(), it); + write_polygon_to_obj(obj, vi, true, it->outer_boundary(), "difference_result_subdivided_" + std::to_string(i)); + write_polygon_to_svg(svg, it->outer_boundary()); + for (auto& p : it->holes()) { + write_polygon_to_obj(obj, vi, true, p, "difference_result_subdivided_" + std::to_string(i)); + write_polygon_to_svg(svg, p); + } + } +#endif + + std::list> triangular_polygons; + + for (auto& pwh : difference_result_subdivided) { + CGAL::Polygon_triangulation_decomposition_2 decompositor; + decompositor(pwh, std::back_inserter(triangular_polygons)); + } + + triangular_polygons.erase(std::remove_if(triangular_polygons.begin(), triangular_polygons.end(), [](const CGAL::Polygon_2& p) { + return CGAL::to_double(p.area()) < 1.e-8; + }), triangular_polygons.end()); + +#ifdef SVGFILL_DEBUG + for (auto it = triangular_polygons.begin(); it != triangular_polygons.end(); ++it) { + write_polygon_to_obj(obj, vi, false, *it, "tri_" + std::to_string(std::distance(triangular_polygons.begin(), it))); + write_polygon_to_svg(svg, *it); + } +#endif + + // Build maps of triangle -> edge and edge -> triangle in order to do traversal on the 'corridor mesh' + std::map, std::vector*>> segment_to_facet; + std::map, std::vector*>> segment_to_input_facet; + std::map, Point_2> segment_to_midpoint; + std::map> midpoint_to_segment; + std::map*, std::vector>> facet_to_segment; + + for (auto& tri : triangular_polygons) { + for (size_t i = 0; i < 3; ++i) { + size_t j = (i + 1) % 3; + auto& pi = tri.vertex(i); + auto& pj = tri.vertex(j); + const bool orientation = std::lexicographical_compare(pi.cartesian_begin(), pi.cartesian_end(), pj.cartesian_begin(), pj.cartesian_end()); + std::pair seg(orientation ? pi : pj, orientation ? pj : pi); + segment_to_facet[seg].push_back(&tri); + facet_to_segment[&tri].push_back(seg); + } + } + + // This part is the most computationally expensive. Caching effectively halves the lookup time here, since every vertex has two outgoing edges. + std::map input_polygon_boundary_cache; + auto cached_input_polygon_boundary = [&](const Point_2& p, double tol = 1e-5) -> decltype(input_polygons.begin()) + { + auto it = input_polygon_boundary_cache.find(p); + if (it == input_polygon_boundary_cache.end()) { + auto index = input_polygon_boundary(p, tol); + input_polygon_boundary_cache[p] = index; + return index; + } else { + return it->second; + } + }; + + // Register midpoints on the edges within the 'corridor mesh' that span multiple input polygons + for (auto& p : segment_to_facet) { + auto center = CGAL::ORIGIN + (((p.first.first - CGAL::ORIGIN) + (p.first.second - CGAL::ORIGIN)) / 2); + + auto p1index = cached_input_polygon_boundary(p.first.first); + auto p2index = cached_input_polygon_boundary(p.first.second); + + segment_to_input_facet[p.first].push_back(&*p1index); + segment_to_input_facet[p.first].push_back(&*p2index); + + if (p1index != input_polygons.end() && p2index != input_polygons.end() && p1index != p2index) { + segment_to_midpoint[p.first] = center; + midpoint_to_segment[center] = p.first; + } + + if (p1index != input_polygons.end() && p2index != input_polygons.end() && p1index != p2index) { + segment_to_midpoint[p.first] = center; + midpoint_to_segment[center] = p.first; + } + } + +#ifdef SVGFILL_DEBUG + obj << "o network_1\n"; +#endif + + // Observe corridor mesh topology to join edge midpoints into a network + std::map> line_graph; + for (auto& p : segment_to_midpoint) { + for (auto& q : segment_to_facet[p.first]) { + for (auto& r : facet_to_segment[q]) { + if (p.first == r) { + continue; + } + decltype(segment_to_midpoint)::const_iterator it; + if ((it = segment_to_midpoint.find(r)) != segment_to_midpoint.end()) { + line_graph[p.second].push_back(it->second); + +#ifdef SVGFILL_DEBUG + obj << "v " << CGAL::to_double(p.second.x()) << " " << CGAL::to_double(p.second.y()) << " 0\n"; + obj << "v " << CGAL::to_double(it->second.x()) << " " << CGAL::to_double(it->second.y()) << " 0\n"; + obj << "l " << vi++; + obj << " " << vi++ << "\n"; + + svg << "second.x()) << "\" y2=\"" << CGAL::to_double(it->second.y()) << "\" />"; +#endif + } + } + } + } + + // Find triangles in this network often occuring at junctions in the corridor mesh + std::set> triangles; + std::function&)> find_triangles_recursive; + find_triangles_recursive = [&](std::vector& path) -> void { + // If depth reaches 3, check for a triangle + if (path.size() == 3) { + // Check if we can complete the triangle by going from the current point back to the start + const std::vector& neighbors_current = line_graph.at(path.back()); + if (std::find(neighbors_current.begin(), neighbors_current.end(), path.front()) != neighbors_current.end()) { + // We found a triangle, add it to the set + Triangle triangle = { path[0], path[1], path[2] }; + std::sort(triangle.begin(), triangle.end()); + triangles.insert(triangle); + } + return; + } + + // Otherwise, continue exploring neighbors + const std::vector& neighbors = line_graph.at(path.back()); + for (const Point_2& neighbor : neighbors) { + if (std::find(path.begin(), path.end(), neighbor) == path.end()) { + path.push_back(neighbor); + find_triangles_recursive(path); + path.pop_back(); // Backtrack + } + } + }; + + for (auto& p : line_graph) { + std::vector ps = { p.first }; + find_triangles_recursive(ps); + } + + // For every triangle found in the network we eliminate one edge to break the cycle + // The edge we eliminate is the edge with the greatest angle with any of it's neighbours + + // non exact time, we need sqrt + using SK = CGAL::Simple_cartesian; + CGAL::Cartesian_converter C{}; + +#ifdef SVGFILL_DEBUG + obj << "o eliminated\n"; +#endif + + std::set> eliminated_segments; + + for (auto& t : triangles) { + Triangle st; + std::transform(t.begin(), t.end(), st.begin(), C); + + double global_min_abs_dot = std::numeric_limits::infinity(); + size_t global_min_abs_dot_index; + + for (size_t i = 0; i < 3; ++i) { + auto j = (i + 2) % 3; + auto e0 = st[i] - st[j]; + e0 /= std::sqrt(e0.squared_length()); + + double max_abs_dot = 0.; + + { + auto& ni = line_graph[t[i]]; + for (auto& n : ni) { + if (std::find(t.begin(), t.end(), n) == t.end()) { + // not contained in triangle + auto sn = C(n); + auto en = sn - st[i]; + en /= std::sqrt(en.squared_length()); + auto dot = std::abs(en * e0); + + if (dot > max_abs_dot) { + max_abs_dot = dot; + } + } + } + } + + { + auto& nj = line_graph[t[j]]; + for (auto& n : nj) { + if (std::find(t.begin(), t.end(), n) == t.end()) { + // not contained in triangle + auto sn = C(n); + auto en = sn - st[j]; + en /= std::sqrt(en.squared_length()); + auto dot = std::abs(en * e0); + + if (dot > max_abs_dot) { + max_abs_dot = dot; + } + } + } + + } + + if (max_abs_dot < global_min_abs_dot) { + global_min_abs_dot = max_abs_dot; + global_min_abs_dot_index = i; + } + } + + { + auto i = global_min_abs_dot_index; + auto j = (i + 2) % 3; + + eliminated_segments.insert({ t[i], t[j] }); + eliminated_segments.insert({ t[j], t[i] }); + +#ifdef SVGFILL_DEBUG + obj << "v " << st[j].x() << " " << st[j].y() << " 0\n"; + obj << "v " << st[i].x() << " " << st[i].y() << " 0\n"; + obj << "l " << vi++; + obj << " " << vi++ << "\n"; + + svg << ""; +#endif + } + + } + + Graph2D G2(line_graph); + for (auto& e : eliminated_segments) { + G2.remove_edge(e.first, e.second); + } + + auto G = G2.weld_vertices(); + +#ifdef SVGFILL_DEBUG + obj << "o network_2\n"; + for (auto it = G.edges_begin(); it != G.edges_end(); ++it) { + obj << "v " << CGAL::to_double(it->first.x()) << " " << CGAL::to_double(it->first.y()) << " 0\n"; + obj << "v " << CGAL::to_double(it->second.x()) << " " << CGAL::to_double(it->second.y()) << " 0\n"; + obj << "l " << vi++; + obj << " " << vi++ << "\n"; + } + obj << std::flush; +#endif + + auto is_parallel_2degree_node = [](decltype(G)::vertex_const_iterator vit) { + auto it = vit->second.begin(); + auto& P = *it++; + auto& Q = *it++; + auto e1 = P - vit->first; + auto e2 = vit->first - Q; + if (e1.squared_length() == 0 || e2.squared_length() == 0) { + // @todo why does this happen? + return false; + } + e1 /= std::sqrt(CGAL::to_double(e1.squared_length())); + e2 /= std::sqrt(CGAL::to_double(e2.squared_length())); + return std::abs(CGAL::to_double(e1 * e2)) > (1. - 1.e-5); + }; + + { + // Remove colinear vertices + size_t n_vertices_removed = 0; + for (auto vit = G.vertices_begin(); vit != G.vertices_end();) { + if (vit->second.size() == 2) { + if (is_parallel_2degree_node(vit)) { + vit = G.eliminate_vertex(vit); + ++n_vertices_removed; + } else { + ++vit; + } + } else { + ++vit; + } + } + // std::cout << "Eliminated " << n_vertices_removed << " vertices" << std::endl; + } + + // Ortho edge slide + { + std::list> edges_to_remove, edges_to_insert; + + for (auto vit = G.vertices_begin(); vit != G.vertices_end(); ++vit) { + auto& selected = vit->first; + + if (vit->second.size() >= 3) { + for (auto vjt = vit->second.begin(); vjt != vit->second.end(); ++vjt) { + auto& neighbour = *vjt; + bool processed_neighbour = false; + + if (G.find(neighbour)->second.size() == 2 && !is_parallel_2degree_node(G.find(neighbour))) { + auto vkt = G.find(neighbour)->second.begin(); + if (selected == *vkt) { + vkt++; + } + auto& other = *vkt; + + if ((other - neighbour).squared_length() < (neighbour - selected).squared_length()) { + continue; + } + + auto incoming = CGAL::Ray_2(other, neighbour - other); + boost::optional> closest_neighbouring_segment; + boost::optional> closest_intersection_point; + K::FT sq_distance_along_ray = std::numeric_limits::infinity(); + + for (auto vlt = vit->second.begin(); vlt != vit->second.end(); ++vlt) { + auto& other_neighbour = *vlt; + if (vlt != vjt) { + CGAL::Segment_2 neighbouring_segment(selected, other_neighbour); + auto x = CGAL::intersection(incoming, neighbouring_segment); + if (x) { + if (auto* xp = variant_get>(&*x)) { + auto dist = ((*xp) - other).squared_length(); + if (dist < sq_distance_along_ray) { + closest_neighbouring_segment = neighbouring_segment; + closest_intersection_point = *xp; + sq_distance_along_ray = dist; + } + } + } + } + } + + if (closest_intersection_point && closest_neighbouring_segment) { + edges_to_remove.push_back(*closest_neighbouring_segment); + edges_to_remove.push_back({ neighbour, selected }); + edges_to_insert.push_back({ closest_neighbouring_segment->source(), *closest_intersection_point }); + edges_to_insert.push_back({ closest_neighbouring_segment->target(), *closest_intersection_point }); + edges_to_insert.push_back({ neighbour, *closest_intersection_point }); + + processed_neighbour = true; + } + } + if (processed_neighbour) { + // Only one neigbour is processed because otherwise we obtain intersections + break; + } + } + } + } + + for (auto& s : edges_to_remove) { + G.remove_edge(s.source(), s.target()); + } + + + for (auto& s : edges_to_insert) { + G.insert(s.source(), s.target()); + } + +#ifdef SVGFILL_DEBUG + obj << "o network_3\n"; + for (auto it = G.edges_begin(); it != G.edges_end(); ++it) { + obj << "v " << CGAL::to_double(it->first.x()) << " " << CGAL::to_double(it->first.y()) << " 0\n"; + obj << "v " << CGAL::to_double(it->second.x()) << " " << CGAL::to_double(it->second.y()) << " 0\n"; + obj << "l " << vi++; + obj << " " << vi++ << "\n"; + } +#endif + } + + // Now plot the edges on an arrangement in order to find planar cycles + // and merge the corridor-halves with their neighbouring input polygon + + Arrangement_2 arr; + + for (auto it = G.edges_begin(); it != G.edges_end(); ++it) { + if (it->first == it->second) { + continue; + } + CGAL::insert(arr, Segment_2(it->first, it->second)); + } + + std::list> move_ops; + std::list> edge_ops; + + for (auto it = G.vertices_begin(); it != G.vertices_end(); ++it) { + if (it->second.size() == 1) { + auto& M = it->first; + + decltype(midpoint_to_segment)::mapped_type* q = nullptr; + + if (midpoint_to_segment.find(M) == midpoint_to_segment.end()) { + typename K::FT min_sq_distance = std::numeric_limits::infinity(); + for (auto& pa : midpoint_to_segment) { + if (CGAL::squared_distance(pa.first, M) < min_sq_distance) { + q = &pa.second; + min_sq_distance = CGAL::squared_distance(pa.first, M); + } + } + } else { + q = &midpoint_to_segment[M]; + } + + if (q == nullptr) { + continue; + } + + bool handled_as_graph_path = false; + + // distance from unioned - shoot ray? + if (segment_to_input_facet[*q].size() == 2) { + for (auto& bnd : inner_offset) { + // if point M is contained in bnd interior: + if (bnd.has_on_bounded_side(M)) { + auto& incoming = *it->second.begin(); + // create ray incoming -> M + CGAL::Ray_2 ray(incoming, M - incoming); + // intersect ray with boundary + boost::optional> closest_segment; + boost::optional> closest_intersection_point; + K::FT sq_distance_along_ray = std::numeric_limits::infinity(); + for (auto jt = bnd.edges_begin(); jt != bnd.edges_end(); ++jt) { + const auto& seg = *jt; + auto x = CGAL::intersection(ray, seg); + if (x) { + if (auto* xp = variant_get>(&*x)) { + auto dist = ((*xp) - M).squared_length(); + if (dist < sq_distance_along_ray) { + closest_segment = seg; + closest_intersection_point = *xp; + sq_distance_along_ray = dist; + } + } + } + } + + if (closest_intersection_point) { + Graph2D GGG(bnd); + GGG.refine(*GGG.query(*closest_intersection_point, 0.01), *closest_intersection_point); + + std::array>, 2> input_points = { { {}, {} } }; + + size_t i = 0; + for (auto& fac : segment_to_input_facet[*q]) { + for (auto it = fac->vertices_begin(); it != fac->vertices_end(); ++it) { + auto seg = GGG.query(*it, 0.01); + if (seg) { + if (seg->source() != *it && seg->target() != *it) { + GGG.refine(*seg, *it); + } + input_points[i].insert(*it); + } + } + i++; + } + + auto a1 = GGG.shorted_path(*closest_intersection_point, input_points[0]); + auto a2 = GGG.shorted_path(*closest_intersection_point, input_points[1]); + + if (!a1.empty() && !a2.empty()) { + + if (M != *closest_intersection_point) { + edge_ops.push_front({ M, *closest_intersection_point }); + } + for (auto it = a1.begin(); it != a1.end() && std::next(it) != a1.end(); ++it) { + edge_ops.push_front({ *it, *(std::next(it)) }); + } + for (auto it = a2.begin(); it != a2.end() && std::next(it) != a2.end(); ++it) { + edge_ops.push_front({ *it, *(std::next(it)) }); + } + + handled_as_graph_path = true; + break; + } + } + } + } + } + + if (!handled_as_graph_path) { + // else we choose to map point to the midpoint of the found two close points. + + auto pq = close_input_point(q->first); + auto pr = close_input_point(q->second); + + auto Q = pq.second; + auto R = pr.second; + + if (Q == R) { + // this can happen in situations like this: + // where Q and R are co-located, because the point R' is further away + // in that case M + M-Q should gives is x that we then project onto the + // input boundary + // + // + // ┌───────┐ + // │ │ + // │ │ + // │ │ + // └───────o <--Q,R + // + // ────────o <--M + // + // ┌───────x───────────────o <---R' + // │ │ + // │ │ + // │ │ + // │ │ + // └───────────────────────┘ + + // @todo is this projection actually necessary or is it already 'exact enough'? + R = project_input_point(M + (M - Q)).second; + } + + auto avg = CGAL::ORIGIN + ((Q - CGAL::ORIGIN) + (R - CGAL::ORIGIN)) / 2; + + move_ops.push_front({ M, avg }); + edge_ops.push_front({ avg, Q }); + edge_ops.push_front({ avg, R }); + + } + } + } + +#ifdef SVGFILL_DEBUG + obj << "o network_4\n"; +#endif + + // note that we actually don't move but draw an edge + for (auto& pq : move_ops) { + if (pq.first == pq.second) { + continue; + } + CGAL::insert(arr, Segment_2(pq.first, pq.second)); + +#ifdef SVGFILL_DEBUG + obj << "v " << CGAL::to_double(pq.first.x()) << " " << CGAL::to_double(pq.first.y()) << " 0\n"; + obj << "v " << CGAL::to_double(pq.second.x()) << " " << CGAL::to_double(pq.second.y()) << " 0\n"; + obj << "l " << vi++; + obj << " " << vi++ << "\n"; +#endif + } + + + for (auto& pq : edge_ops) { + if (pq.first == pq.second) { + continue; + } + CGAL::insert(arr, Segment_2(pq.first, pq.second)); + +#ifdef SVGFILL_DEBUG + obj << "v " << CGAL::to_double(pq.first.x()) << " " << CGAL::to_double(pq.first.y()) << " 0\n"; + obj << "v " << CGAL::to_double(pq.second.x()) << " " << CGAL::to_double(pq.second.y()) << " 0\n"; + obj << "l " << vi++; + obj << " " << vi++ << "\n"; +#endif + } + + // Plot input polygons + for (auto& poly : input_polygons) { + for (size_t i = 0; i != poly.size(); ++i) { + auto j = (i + 1) % poly.size(); + if (poly.vertex(i) == poly.vertex(j)) { + continue; + } + CGAL::insert(arr, Segment_2(poly.vertex(i), poly.vertex(j))); + } + } + + +#ifdef SVGFILL_DEBUG + { + obj << "o arrangement_1\n"; + for (auto it = arr.edges_begin(); it != arr.edges_end(); ++it) { + auto& p = it->source()->point(); + auto& q = it->target()->point(); + obj << "v " << CGAL::to_double(p.x()) << " " << CGAL::to_double(p.y()) << " 0\n"; + obj << "v " << CGAL::to_double(q.x()) << " " << CGAL::to_double(q.y()) << " 0\n"; + obj << "l " << vi++; + obj << " " << vi++ << "\n"; + } + } +#endif + + /* { + // debug, add outer bounds so that we can plot the face for any remaining edges + auto poly = unioned_polygons.front().outer_boundary(); + for (size_t i = 0; i != poly.size(); ++i) { + auto j = (i + 1) % poly.size(); + CGAL::insert(arr, Segment_2(poly.vertex(i), poly.vertex(j))); + } + } */ + + // Now loop over the arrangement faces, when a face coincides with a point on the + // corridor network we know it needs to be joined with an input polygon. In that + // case the edges need to be eliminated that correspond to original geometry. + + size_t face_id = 0; + std::set edges_to_remove; + + for (auto it = arr.faces_begin(); it != arr.faces_end(); ++it) { + if (it->is_unbounded()) { + continue; + } + bool is_corridor = false; + { + auto curr = it->outer_ccb(); + do { + auto& p = curr++->source()->point(); + if (G.find(p) != G.vertices_end()) { + is_corridor = true; + break; + } + } while (curr != it->outer_ccb()); + + for (auto jt = it->inner_ccbs_begin(); jt != it->inner_ccbs_end(); ++jt) { + curr = *jt; + do { + auto& p = curr++->source()->point(); + if (G.find(p) != G.vertices_end()) { + is_corridor = true; + break; + } + } while (curr != *jt); + if (is_corridor) { + break; + } + } + } + + if (is_corridor) { + auto curr = it->outer_ccb(); + do { + auto& p = curr->source()->point(); + auto& q = curr->target()->point(); + auto center = CGAL::ORIGIN + (((p - CGAL::ORIGIN) + (q - CGAL::ORIGIN)) / 2); + auto p1index = input_polygon_boundary(center); + const bool on_orig_bound = p1index != input_polygons.end(); + if (on_orig_bound) { + if (edges_to_remove.find(curr->twin()) != edges_to_remove.end()) { + // std::cerr << "Warning trying to delete edge twice" << std::endl; + } else { + edges_to_remove.insert(curr); + } + } + curr++; + } while (curr != it->outer_ccb()); + + for (auto jt = it->inner_ccbs_begin(); jt != it->inner_ccbs_end(); ++jt) { + curr = *jt; + do { + auto& p = curr->source()->point(); + auto& q = curr->target()->point(); + auto center = CGAL::ORIGIN + (((p - CGAL::ORIGIN) + (q - CGAL::ORIGIN)) / 2); + auto p1index = input_polygon_boundary(center); + const bool on_orig_bound = p1index != input_polygons.end(); + if (on_orig_bound) { + if (edges_to_remove.find(curr->twin()) != edges_to_remove.end()) { + // std::cerr << "Warning trying to delete edge twice" << std::endl; + } else { + edges_to_remove.insert(curr); + } + } + curr++; + } while (curr != *jt); + if (is_corridor) { + break; + } + } + } + +#ifdef SVGFILL_DEBUG + write_polygon_to_svg(svg, circ_to_poly(it->outer_ccb())); + + obj << "o " << "face_"; + if (is_corridor) { + obj << "corri_"; + } + obj << face_id++ << "\n"; + + std::ostringstream oss; + + { + auto vv = vi; + auto curr = it->outer_ccb(); + do { + auto& p = curr->source()->point(); + obj << "v " << CGAL::to_double(p.x()) << " " << CGAL::to_double(p.y()) << " 0\n"; + oss << "l " << vi++; + ++curr; + if (curr == it->outer_ccb()) { + oss << " " << vv << "\n"; + } else { + oss << " " << vi << "\n"; + } + } while (curr != it->outer_ccb()); + } + + for (auto jt = it->inner_ccbs_begin(); jt != it->inner_ccbs_end(); ++jt) { + auto vv = vi; + auto curr = *jt; + do { + auto& p = curr->source()->point(); + obj << "v " << CGAL::to_double(p.x()) << " " << CGAL::to_double(p.y()) << " 0\n"; + oss << "l " << vi++; + ++curr; + if (curr == *jt) { + oss << " " << vv << "\n"; + } else { + oss << " " << vi << "\n"; + } + } while (curr != *jt); + } + + obj << oss.str(); +#endif + } + + size_t remove_id = 0; + for (auto& e : edges_to_remove) { +#ifdef SVGFILL_DEBUG + obj << "o " << "remove_" << remove_id++ << "\n"; + { + auto& p = e->source()->point(); + obj << "v " << CGAL::to_double(p.x()) << " " << CGAL::to_double(p.y()) << " 0\n"; + } + { + auto& p = e->target()->point(); + obj << "v " << CGAL::to_double(p.x()) << " " << CGAL::to_double(p.y()) << " 0\n"; + } + obj << "l " << vi++; + obj << " " << vi++ << std::endl; +#endif + CGAL::remove_edge(arr, e); + } + + for (auto it = arr.faces_begin(); it != arr.faces_end(); ++it) { + if (it->is_unbounded()) { + continue; + } + + output_polygons.push_back(circ_to_poly(it->outer_ccb())); + +#ifdef SVGFILL_DEBUG + write_polygon_to_svg(svg, circ_to_poly(it->outer_ccb())); + + obj << "o " << "merged_face_"; + obj << face_id++ << "\n"; + + std::ostringstream oss; + + { + auto vv = vi; + auto curr = it->outer_ccb(); + do { + auto& p = curr->source()->point(); + obj << "v " << CGAL::to_double(p.x()) << " " << CGAL::to_double(p.y()) << " 0\n"; + oss << "l " << vi++; + ++curr; + if (curr == it->outer_ccb()) { + oss << " " << vv << "\n"; + } else { + oss << " " << vi << "\n"; + } + } while (curr != it->outer_ccb()); + } + + for (auto jt = it->inner_ccbs_begin(); jt != it->inner_ccbs_end(); ++jt) { + auto vv = vi; + auto curr = *jt; + do { + auto& p = curr->source()->point(); + obj << "v " << CGAL::to_double(p.x()) << " " << CGAL::to_double(p.y()) << " 0\n"; + oss << "l " << vi++; + ++curr; + if (curr == *jt) { + oss << " " << vv << "\n"; + } else { + oss << " " << vi << "\n"; + } + } while (curr != *jt); + } + + obj << oss.str(); +#endif + } + +#ifdef SVGFILL_DEBUG + svg << "\n"; +#endif +} + +#ifndef SVGFILL_MAIN + +bool svgfill::arrange_polygons(const std::vector& polygons, std::vector& arranged) +{ + std::vector cgal_polygons, cgal_polygons_out; + std::transform(polygons.begin(), polygons.end(), std::back_inserter(cgal_polygons), [](auto& poly) { + Polygon_2 result; + std::transform(poly.boundary.begin(), poly.boundary.end(), std::back_inserter(result), [](auto& p) { + return Point_2(p[0], p[1]); + }); + return result; + }); + arrange_cgal_polygons(cgal_polygons, cgal_polygons_out); + std::transform(cgal_polygons_out.begin(), cgal_polygons_out.end(), std::back_inserter(arranged), [](auto& poly) { + svgfill::polygon_2 result; + std::transform(poly.begin(), poly.end(), std::back_inserter(result.boundary), [](auto& pt) { + return svgfill::point_2{ + CGAL::to_double(pt.cartesian(0)), + CGAL::to_double(pt.cartesian(1)), + }; + }); + return result; + }); + return true; +} + +#else + +template +Polygon_2 create_rectangle(T x_min, T y_min, T x_max, T y_max) { + Polygon_2 rectangle; + rectangle.push_back(Point_2(x_min, y_min)); + rectangle.push_back(Point_2(x_max, y_min)); + rectangle.push_back(Point_2(x_max, y_max)); + rectangle.push_back(Point_2(x_min, y_max)); + return rectangle; +} + +#include + +int main(int argc, char** argv) { + std::vector input_polygons, output; + + if (argc == 2) { + using json = nlohmann::json; + std::ifstream file(argv[1]); + json jsonData; + file >> jsonData; + size_t i = 0; + for (const auto& item : jsonData.items()) { + std::cout << "i " << i << std::endl; + i++; + input_polygons.clear(); + const auto& polygonsData = item.value(); + for (const auto& polygonData : polygonsData) { + input_polygons.emplace_back(); + for (const auto& pointData : polygonData) { + double x = pointData[0]; + double y = pointData[1]; + input_polygons.back().push_back(CGAL::Point_2(x, y)); + } + } + arrange_cgal_polygons(input_polygons, output); + break; + } + return 0; + } else { + Polygon_2 rect1 = create_rectangle(0, 0, 2, 1); + Polygon_2 rect2 = create_rectangle(2.2, 0, 4, 1.1); + Polygon_2 rect3 = create_rectangle(0, 1.2, 2, 4); + Polygon_2 rect4 = create_rectangle(2.2, 1.2, 6, 4); + Polygon_2 rect5 = create_rectangle(4.2, 0, 6, 1.1); + + input_polygons = { rect1, rect2, rect3, rect4, rect5 }; + } + arrange_cgal_polygons(input_polygons, output); + + return 0; +} + +#endif diff --git a/src/svgfill/src/graph_2d.h b/src/svgfill/src/graph_2d.h new file mode 100644 index 0000000000..aaaa059b4e --- /dev/null +++ b/src/svgfill/src/graph_2d.h @@ -0,0 +1,509 @@ +#ifndef GRAPH_2D_H +#define GRAPH_2D_H + +#ifdef SVGFILL_DEBUG +#include +#endif + +template +class Graph2D { +public: + typedef typename Kernel::Point_2 Point_2; + typedef std::pair Edge; + + Graph2D() {} + + Graph2D(const std::map>& input_adjacency_list) { + for (const auto& kv : input_adjacency_list) { + const Point_2& u = kv.first; + const std::vector& neighbors = kv.second; + for (const Point_2& v : neighbors) { + if (u != v) { // no self-edges + adjacency_list[u].insert(v); + adjacency_list[v].insert(u); // Since it's undirected + } + } + } + assert_symmetric(); + } + + Graph2D(const CGAL::Polygon_2& loop) { + for (auto it = loop.vertices_begin(); it != loop.vertices_end(); ++it) { + auto next_it = std::next(it); + if (next_it == loop.vertices_end()) { + next_it = loop.vertices_begin(); + } + adjacency_list[*it].insert(*next_it); + adjacency_list[*next_it].insert(*it); + } + } + + bool is_loop() const { + if (adjacency_list.size() < 3) { + return false; + } + for (const auto& p : adjacency_list) { + if (p.second.size() != 2) { + return false; + } + } + return true; + } + + auto find(const Point_2& p) { + return adjacency_list.find(p); + } + + boost::optional< CGAL::Segment_2 > query(const Point_2& p, typename Kernel::FT eps) { + boost::optional< CGAL::Segment_2 > closest_segment; + typename Kernel::FT closest_distance = std::numeric_limits::infinity(); + for (auto& p1 : adjacency_list) { + for (auto& p2 : p1.second) { + CGAL::Segment_2seg(p1.first, p2); + auto dist = CGAL::squared_distance(p, seg); + if (dist < eps * eps && dist < closest_distance) { + closest_distance = dist; + closest_segment = seg; + } + } + } + return closest_segment; + } + + void refine(const CGAL::Segment_2& seg, const Point_2& p) { + remove_edge(seg.source(), seg.target()); + insert(seg.source(), p); + insert(p, seg.target()); + } + + std::vector shorted_path(const Point_2& start, const Point_2& goal) const { + auto& adj = adjacency_list; + if (adj.count(start) == 0 || adj.count(goal) == 0) return {}; + + std::map predecessor; + std::queue q; + + // seed BFS + predecessor[start] = start; // mark start as "seen" + q.push(start); + + // BFS + bool found = false; + while (!q.empty() && !found) { + Point_2 u = q.front(); q.pop(); + for (auto& v : adj.at(u)) { + // if v has no predecessor yet, it's unseen + if (!predecessor.count(v)) { + predecessor[v] = u; + q.push(v); + if (v == goal) { found = true; break; } + } + } + } + + if (!found) return {}; + + // reconstruct path + std::vector path; + for (Point_2 cur = goal; cur != start; cur = predecessor[cur]) + path.push_back(cur); + path.push_back(start); + std::reverse(path.begin(), path.end()); + return path; + } + + + std::vector shorted_path(const Point_2& start, const std::set& goal) const { + auto& adj = adjacency_list; + if (adj.count(start) == 0) return {}; + + std::map predecessor; + std::queue q; + + // seed BFS + predecessor[start] = start; // mark start as "seen" + q.push(start); + + Point_2 used_goal; + + // BFS + bool found = false; + while (!q.empty() && !found) { + Point_2 u = q.front(); q.pop(); + for (auto& v : adj.at(u)) { + // if v has no predecessor yet, it's unseen + if (!predecessor.count(v)) { + predecessor[v] = u; + q.push(v); + if (goal.find(v) != goal.end()) { + found = true; + used_goal = v; + break; + } + } + } + } + + if (!found) return {}; + + // reconstruct path + std::vector path; + for (Point_2 cur = used_goal; cur != start; cur = predecessor[cur]) + path.push_back(cur); + path.push_back(start); + std::reverse(path.begin(), path.end()); + return path; + } + + + void move(const Point_2& from, const Point_2& to) { + // @todo should check for intersections? + auto it = adjacency_list.find(from); + if (it != adjacency_list.end()) { + auto neighbours = it->second; + for (auto& n : neighbours) { + adjacency_list[n].erase(from); + adjacency_list[n].insert(to); + } + adjacency_list.erase(it); + adjacency_list.insert({ to, neighbours }); + } + } + + bool is_valid() const { + typedef CGAL::Box_intersection_d::Box_with_handle_d Box; + std::vector boxes; + std::vector> segments; + for (const auto& p : adjacency_list) { + for (const auto& q : p.second) { + if (p.first < q) { + segments.emplace_back(p.first, q); + } + } + } + for (auto it = segments.begin(); it != segments.end(); ++it) { + boxes.emplace_back(it->bbox(), std::distance(segments.begin(), it)); + } + bool any = false; + CGAL::box_self_intersection_d(boxes.begin(), boxes.end(), [this, &segments, &any](const Box& a, const Box& b) { + auto& seg1 = segments[a.handle()]; + auto& seg2 = segments[b.handle()]; + // Skip topologically connected segments + if (seg1.source() == seg2.source() || seg1.source() == seg2.target() || seg1.target() == seg2.source() || seg1.target() == seg2.target()) { + return; + } + if (CGAL::do_intersect(seg1, seg2)) { + any = true; + } + }); + return any; + } + + // Eliminates a vertex with exactly two neighbors by connecting its neighbors + typename std::map>::iterator eliminate_vertex(typename std::map>::iterator it) { + if (it == adjacency_list.end()) { + // Vertex not found + return adjacency_list.end(); + } + const std::set& neighbors = it->second; + if (neighbors.size() != 2) { + // Not exactly two neighbors + return adjacency_list.end(); + } + // Get the two neighbors + auto neighbor_it = neighbors.begin(); + auto u = *neighbor_it++; + auto w = *neighbor_it; + auto v = it->first; + + // Remove all edge between v and u + adjacency_list[u].erase(v); + adjacency_list[v].erase(u); + + // Remove all edge between v and w + adjacency_list[w].erase(v); + adjacency_list[v].erase(w); + + // Add edge between u and w + adjacency_list[u].insert(w); + adjacency_list[w].insert(u); + + // Remove v from adjacency_list + auto jt = adjacency_list.erase(it); + + assert_symmetric(); + + return jt; + } + + Graph2D weld_vertices() const { + std::set points; + for (auto& p : adjacency_list) { + points.insert(p.first); + for (auto& q : p.second) { + points.insert(q); + } + } + + using It = typename std::set::iterator; + using Box = CGAL::Box_intersection_d::Box_with_handle_d; + + std::vector boxes; + for (auto it = points.begin(); it != points.end(); ++it) { + constexpr double offset = 1.e-3; + auto b = it->bbox(); + boxes.emplace_back( + CGAL::Bbox_2(b.xmin() - offset, b.ymin() - offset, b.xmax() + offset, b.ymax() + offset), + &*it + ); + } + + std::vector> overlaps; + + CGAL::box_self_intersection_d(boxes.begin(), boxes.end(), [&overlaps](const Box& a, const Box& b) { + overlaps.emplace_back(a.handle(), b.handle()); + }); + + std::map> input_adjacency_list; + + { + std::map> adj; + for (const auto& edge : overlaps) { + adj[edge.first].push_back(edge.second); + adj[edge.second].push_back(edge.first); + } + for (auto& p : points) { + adj[&p]; + } + + std::map visited; + std::vector> connected_components; + + for (auto& p : adj) { + if (!visited[p.first]) { + connected_components.emplace_back(); + + std::stack stack; + stack.push(p.first); + visited[p.first] = true; + + while (!stack.empty()) { + auto u = stack.top(); + stack.pop(); + connected_components.back().push_back(u); + + for (auto& neighbor : adj[u]) { + if (!visited[neighbor]) { + visited[neighbor] = true; + stack.push(neighbor); + } + } + } + } + } + + std::map mapping; + + for (auto& comp : connected_components) { + Point_2 avg(0, 0); + for (auto& c : comp) { + avg += (*c - CGAL::ORIGIN); + } + avg = CGAL::ORIGIN + ((avg - CGAL::ORIGIN) / comp.size()); + + for (auto& c : comp) { + mapping[*c] = avg; + } + } + + for (auto& comp : connected_components) { + for (auto& c : comp) { + const auto& C = mapping[*c]; + for (auto& n : adjacency_list.find(*c)->second) { + const auto& N = mapping[n]; + if (C != N) { + if (std::find(input_adjacency_list[C].begin(), input_adjacency_list[C].end(), N) == input_adjacency_list[C].end()) { + input_adjacency_list[C].push_back(N); + } + } + } + } + } + } + + return Graph2D(input_adjacency_list); + } + + void assert_symmetric() { +#ifdef SVGFILL_DEBUG +#if 0 + for (auto& p : adjacency_list) { + if (p.second.find(p.first) != p.second.end()) { + std::cout << "!! " << p.first << " self-edge" << std::endl; + throw std::runtime_error("self-edge"); + } + } + nlohmann::json json_obj = nlohmann::json::array(); + for (auto& p : adjacency_list) { + if (p.second.size() == 0) { + continue; + } + + nlohmann::json pair = nlohmann::json::array(); + nlohmann::json coord = nlohmann::json::array(); + nlohmann::json values = nlohmann::json::array(); + coord.push_back( + CGAL::to_double(p.first.x()) + ); + coord.push_back( + CGAL::to_double(p.first.y()) + ); + pair.push_back(coord); + for (auto& q : p.second) { + auto& r = adjacency_list[q]; + for (auto& s : r) { + nlohmann::json coord = nlohmann::json::array(); + coord.push_back( + CGAL::to_double(s.x()) + ); + coord.push_back( + CGAL::to_double(s.y()) + ); + values.push_back(coord); + } + if (r.find(p.first) == r.end()) { + for (auto& s : r) { + std::cout << " " << s << std::endl; + } + std::cout << "!! " << p.first << " not found in neighbours of " << q << std::endl; + throw std::runtime_error("internal error"); + } + } + pair.push_back(values); + json_obj.push_back( + pair + ); + } + + static int fff = 0; + std::ofstream file("graph_" + std::to_string(fff++) + ".json"); + file << json_obj.dump(2); +#endif +#endif + } + + void remove_edge(const Point_2& u, const Point_2& v) { + adjacency_list[u].erase(v); + adjacency_list[v].erase(u); + assert_symmetric(); + } + + void insert(const Point_2& u, const Point_2& v) { + adjacency_list[u].insert(v); + adjacency_list[v].insert(u); + assert_symmetric(); + } + + // Iterators over vertices + typedef typename std::map>::const_iterator vertex_const_iterator; + typedef typename std::map>::iterator vertex_iterator; + + vertex_const_iterator vertices_begin() const { + return adjacency_list.cbegin(); + } + + vertex_const_iterator vertices_end() const { + return adjacency_list.cend(); + } + + vertex_iterator vertices_begin() { + return adjacency_list.begin(); + } + + vertex_iterator vertices_end() { + return adjacency_list.end(); + } + + // Edge iterator class + class EdgeIterator { + public: + typedef std::forward_iterator_tag iterator_category; + typedef Edge value_type; + typedef ptrdiff_t difference_type; + typedef const Edge* pointer; + typedef const Edge& reference; + + EdgeIterator() : outer_it_(), inner_it_(), graph_(nullptr) {} + EdgeIterator(const Graph2D* graph, typename std::map>::const_iterator outer_it) + : outer_it_(outer_it), graph_(graph) { + if (outer_it_ != graph_->adjacency_list.end()) { + inner_it_ = outer_it_->second.begin(); + advance_to_valid(); + } + } + + reference operator*() const { + current_edge_ = Edge(outer_it_->first, *inner_it_); + return current_edge_; + } + + pointer operator->() const { + current_edge_ = Edge(outer_it_->first, *inner_it_); + return ¤t_edge_; + } + + EdgeIterator& operator++() { + ++inner_it_; + advance_to_valid(); + return *this; + } + + EdgeIterator operator++(int) { + EdgeIterator tmp = *this; + ++(*this); + return tmp; + } + + bool operator==(const EdgeIterator& other) const { + return outer_it_ == other.outer_it_ && (outer_it_ == graph_->adjacency_list.end() || inner_it_ == other.inner_it_); + } + + bool operator!=(const EdgeIterator& other) const { + return !(*this == other); + } + + private: + void advance_to_valid() { + while (outer_it_ != graph_->adjacency_list.end()) { + while (inner_it_ != outer_it_->second.end() && *inner_it_ < outer_it_->first) { + ++inner_it_; + } + if (inner_it_ != outer_it_->second.end()) { + break; + } + ++outer_it_; + if (outer_it_ != graph_->adjacency_list.end()) { + inner_it_ = outer_it_->second.begin(); + } + } + } + + mutable Edge current_edge_; + typename std::map>::const_iterator outer_it_; + typename std::set::const_iterator inner_it_; + const Graph2D* graph_; + }; + + EdgeIterator edges_begin() const { + return EdgeIterator(this, adjacency_list.begin()); + } + + EdgeIterator edges_end() const { + return EdgeIterator(this, adjacency_list.end()); + } + +private: + std::map> adjacency_list; +}; + +#endif diff --git a/src/svgfill/src/main.cpp b/src/svgfill/src/main.cpp new file mode 100644 index 0000000000..93ecfb6462 --- /dev/null +++ b/src/svgfill/src/main.cpp @@ -0,0 +1,127 @@ +/**************************************************************************** + * SVG fill * + * * + * Copyright(C) 2020 AECgeeks and Bimforce * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either * + * version 3 of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public License * + * along with this program; if not, write to the Free Software Foundation, * + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ****************************************************************************/ + +#include "svgfill.h" +#include "progress.h" + +#include +#include +#include + +#include +#include +#include +#include +#include + +int main(int argc, char** argv) { + bool valid_command_line = false; + bool random_color = false; + double eps = 1.e-5; + boost::optional class_name; + + std::vector flags; + std::vector args; + svgfill::solver s = svgfill::FILTERED_CARTESIAN_QUOTIENT; + std::map solver_mapping { + {"cartesian_double", svgfill::CARTESIAN_DOUBLE}, + {"cartesian_quotient", svgfill::CARTESIAN_QUOTIENT}, + {"filtered_cartesian_quotient", svgfill::FILTERED_CARTESIAN_QUOTIENT}, + {"exact_predicates", svgfill::EXACT_PREDICATES}, + {"exact_constructions", svgfill::EXACT_CONSTRUCTIONS}, + }; + progress_bar::style progress_style = progress_bar::BAR; + + for (int i = 1; i < argc; ++i) { + std::string a = argv[i]; + if (boost::starts_with(a, "-")) { + flags.push_back(a); + } + else { + args.push_back(a); + } + } + std::string fn, ofn; + + if (args.size() == 2) { + fn = args[0]; + ofn = args[1]; + valid_command_line = true; + } + + for (auto& f : flags) { + if (f == "--random-color") { + random_color = true; + } + else if (f == "-q") { + progress_style = progress_bar::DOTS; + } + else if (boost::starts_with(f, "--class=")) { + class_name = f.substr(strlen("--class=")); + } + else if (boost::starts_with(f, "--solver=")) { + std::string solver_str = f.substr(strlen("--solver=")); + auto it = solver_mapping.find(solver_str); + if (it == solver_mapping.end()) { + valid_command_line = false; + } + else { + s = it->second; + } + } + else if (boost::starts_with(f, "--eps=")) { + std::string eps_str = f.substr(strlen("--eps=")); + eps = boost::lexical_cast(eps_str); + } + else { + valid_command_line = false; + } + } + + if (!valid_command_line) { + std::cerr << "Usage: " << argv[0] << " [--random-color] [--class=...] " << std::endl; + return 1; + } + + std::vector> segments; + std::vector> polygons; + + progress_bar p(std::cout, progress_style); + application_progress ap({1., 10., 1.}, p); + std::function pfn = [&ap](float f) { ap(f); }; + + std::ifstream fs(fn.c_str()); + std::string data(std::istreambuf_iterator{fs}, {}); + fs.close(); + + if (!svgfill::svg_to_line_segments(data, class_name, segments)) { + return 1; + } + ap.finished(); + + if (!svgfill::line_segments_to_polygons(s, eps, segments, polygons, pfn)) { + return 1; + } + + ap.finished(); + + std::ofstream ofs(ofn.c_str()); + ofs << svgfill::polygons_to_svg(polygons, random_color); +} diff --git a/src/svgfill/src/progress.h b/src/svgfill/src/progress.h new file mode 100644 index 0000000000..daf54a3e59 --- /dev/null +++ b/src/svgfill/src/progress.h @@ -0,0 +1,122 @@ +/*************************************************************************** +/* * +/* Copyright 2021 AECgeeks * +/* * +/* Permission is hereby granted, free of charge, to any person obtaining a * +/* copy of this software and associated documentation files (the * +/* "Software"), to deal in the Software without restriction, including * +/* without limitation the rights to use, copy, modify, merge, publish, * +/* distribute, sublicense, and/or sell copies of the Software, and to * +/* permit persons to whom the Software is furnished to do so, subject to * +/* the following conditions: * +/* * +/* The above copyright notice and this permission notice shall be included * +/* in all copies or substantial portions of the Software. * +/* * +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * +/* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY * +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * +/* * +/***************************************************************************/ + +// A trivial C++ progress bar + +#ifndef PROGRESS_H +#define PROGRESS_H + +#include +#include +#include +#include +#include +#include + +class progress_bar { + std::ostream& s_; + float max_; + size_t width_; + size_t* last_emitted_p_ = nullptr; + +public: + enum style { + BAR, DOTS + }; + +private: + style style_; + +public: + progress_bar(std::ostream& s = std::cerr, style st = BAR, float max = 1., size_t width = 50) + : s_(s) + , max_(max) + , width_(st == BAR ? width : 100U) + , style_(st) + {} + + void operator()(size_t p) { + if (last_emitted_p_ && p <= *last_emitted_p_) { + return; + } + + p = p > width_ ? width_ : p; + if (style_ == BAR) { + s_ << "\r[" + std::string(p, '#') + std::string(width_ - p, ' ') + "]" << std::flush; + } else { + s_ << std::string(p - (last_emitted_p_ ? *last_emitted_p_ : 0U), '.') << std::flush; + } + + if (last_emitted_p_) { + *last_emitted_p_ = p; + } + else { + last_emitted_p_ = new size_t(p); + } + } + + void operator()(float p) { + (*this)((size_t) (p / max_ * width_)); + } + + ~progress_bar() { + delete last_emitted_p_; + } +}; + +class application_progress { + std::vector estimates_; + size_t phase_ = 0; + std::function callback_; + float total_; + +public: + void operator()(float p) { + auto progress = std::accumulate(estimates_.begin(), estimates_.begin() + phase_, 0.f); + progress += p * estimates_[phase_]; + callback_(progress / total_); + } + + application_progress(const std::vector& estimates, const std::function& callback) + : estimates_(estimates) + , callback_(callback) + { + total_ = std::accumulate(estimates_.begin(), estimates_.end(), 0.f); + (*this)(0.); + } + + void finished() { + ++phase_; + (*this)(0.); + } + + ~application_progress() { + phase_ = estimates_.size() - 2; + finished(); + } + +}; + +#endif \ No newline at end of file diff --git a/src/svgfill/src/svgfill.cpp b/src/svgfill/src/svgfill.cpp new file mode 100644 index 0000000000..8a2a1bb008 --- /dev/null +++ b/src/svgfill/src/svgfill.cpp @@ -0,0 +1,633 @@ +/**************************************************************************** + * SVG fill * + * * + * Copyright(C) 2020 AECgeeks and Bimforce * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either * + * version 3 of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public License * + * along with this program; if not, write to the Free Software Foundation, * + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ****************************************************************************/ + +#include "svgfill.h" + +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +using namespace svgpp; + +class Context +{ +private: + size_t depth_ = 0; + int enabled_at_ = -1; + svgfill::point_2 start_, xy_; + +public: + boost::optional class_name; + std::vector> segments; + + void on_enter_element(tag::element::any) + { + ++depth_; + } + + void on_enter_element(tag::element::g) + { + ++depth_; + if (enabled_at_ == -1 && !class_name.is_initialized()) { + enabled_at_ = depth_; + segments.emplace_back(); + } + } + + void on_exit_element() + { + if (depth_-- == enabled_at_) { + enabled_at_ = -1; + } + } + + template + void set(tag::attribute::id, Str const & s) { + } + + template + void set(tag::attribute::class_, Str const & s) { + if (enabled_at_ == -1 && class_name.is_initialized() && std::string(s.begin(), s.size()).find(*class_name) != std::string::npos) { + enabled_at_ = depth_; + segments.emplace_back(); + } + } + + void transform_matrix(const boost::array & matrix) + {} + + void path_move_to(double x, double y, tag::coordinate::absolute) + { + start_ = xy_ = { x, y }; + } + + void path_line_to(double x, double y, tag::coordinate::absolute) + { + if (enabled_at_ != -1) { + svgfill::point_2 next{ x, y }; + segments.back().push_back({ xy_, next }); + xy_ = next; + } + } + + void path_cubic_bezier_to( + double x1, double y1, + double x2, double y2, + double x, double y, + tag::coordinate::absolute) {} + + void path_quadratic_bezier_to( + double x1, double y1, + double x, double y, + tag::coordinate::absolute) {} + + void path_elliptical_arc_to( + double rx, double ry, double x_axis_rotation, + bool large_arc_flag, bool sweep_flag, + double x, double y, + tag::coordinate::absolute) {} + + void path_close_subpath() { + if (enabled_at_ != -1) { + segments.back().push_back({ xy_, start_ }); + } + } + + void path_exit() {} +}; + +typedef +boost::mpl::set< + // SVG Structural Elements + tag::element::svg, + tag::element::g, + // SVG Shape Elements + tag::element::circle, + tag::element::ellipse, + tag::element::line, + tag::element::path, + tag::element::polygon, + tag::element::polyline, + tag::element::rect +>::type processed_elements_t; + +// This cryptic code just merges predefined sequences traits::shapes_attributes_by_element +// and traits::viewport_attributes with tag::attribute::transform and tag::attribute::xlink::href +// attributes into single MPL sequence +typedef +boost::mpl::fold< + boost::mpl::protect< + traits::shapes_attributes_by_element + >, + boost::mpl::set< + tag::attribute::id, + tag::attribute::class_ + >::type, + boost::mpl::insert +>::type processed_attributes_t; + +bool svgfill::svg_to_line_segments(const std::string& data, const boost::optional& class_name, std::vector>& segments) +{ + Context context; + context.class_name = class_name; + + xmlDoc* doc = xmlReadMemory(data.c_str(), data.size(), nullptr, nullptr, 0); + xmlNode* elem = xmlDocGetRootElement(doc); + + try { + document_traversal< + processed_elements, + processed_attributes + >::load_document(elem, context); + } + catch (std::exception& e) { + std::cerr << e.what() << std::endl; + return false; + } + + segments = context.segments; + + return true; +} + +bool svgfill::line_segments_to_polygons(solver s, double eps, const std::vector>& segments, std::vector>& polygons) +{ + std::function fn = [](float f) {}; + return line_segments_to_polygons(s, eps, segments, polygons, fn); +} + +bool svgfill::svg_to_polygons(const std::string& data, const boost::optional& class_name, std::vector& polygons) { + Context context; + context.class_name = class_name; + xmlDoc* doc = xmlReadMemory(data.c_str(), data.size(), nullptr, nullptr, 0); + xmlNode* elem = xmlDocGetRootElement(doc); + + try { + document_traversal< + processed_elements, + processed_attributes + >::load_document(elem, context); + } catch (std::exception& e) { + std::cerr << e.what() << std::endl; + return false; + } + std::function fn = [](float f) {}; + std::vector> ps; + if (!line_segments_to_polygons(svgfill::EXACT_PREDICATES, 0., context.segments, ps, fn)) { + return false; + } + if (ps.empty()) { + return false; + } + for (auto& p : ps) { + polygons.insert(polygons.end(), p.begin(), p.end()); + } + return true; +} + +template +class cgal_arrangement : public svgfill::abstract_arrangement { + typedef CGAL::Arr_segment_traits_2 Traits_2; + typedef typename Traits_2::Point_2 Point_2; + typedef typename Traits_2::X_monotone_curve_2 Segment_2; + typedef CGAL::Arrangement_2 Arrangement_2; + typedef CGAL::Polygon_2 Polygon_2; + typedef CGAL::Polygon_with_holes_2 Polygon_wh_2; + typedef typename Arrangement_2::Inner_ccb_const_iterator Inner_ccb_const_iterator; + typedef typename Arrangement_2::Ccb_halfedge_const_circulator Ccb_halfedge_const_circulator; + typedef typename Arrangement_2::Halfedge_handle Halfedge_handle; + typedef typename Arrangement_2::Face_handle Face_handle; + + Polygon_2 circ_to_poly(Ccb_halfedge_const_circulator circ) + { + Polygon_2 poly; + auto curr = circ; + do { + if (poly.size() == 0 || (*(poly.end() - 1)) != curr->source()->point()) { + poly.push_back(curr->source()->point()); + } + } while (++curr != circ); + return poly; + } + + CGAL::Triangle_2 poly_to_triangle(const Polygon_2& poly) + { + auto n = std::distance(poly.vertices_begin(), poly.vertices_end()); + if (n != 3) { + throw std::runtime_error("Unexpected number of points in polygon"); + } + auto p = *poly.vertices_begin(); + auto q = *next(poly.vertices_begin(), 1); + auto r = *next(poly.vertices_begin(), 2); + return CGAL::Triangle_2(p, q, r); + } + + Polygon_wh_2 circ_to_poly(Ccb_halfedge_const_circulator circ, Inner_ccb_const_iterator a, Inner_ccb_const_iterator b) + { + Polygon_wh_2 poly(circ_to_poly(circ)); + for (auto it = a; it != b; ++it) { + poly.add_hole(circ_to_poly(*it)); + } + return poly; + } + + svgfill::point_2 create_point(const Point_2& pt) + { + return svgfill::point_2{ + CGAL::to_double(pt.cartesian(0)), + CGAL::to_double(pt.cartesian(1)), + }; + } + + void set_point_inside(const Polygon_wh_2& inpoly, svgfill::polygon_2& outpoly) + { + /* + std::cout << std::endl; + for (auto& p : inpoly.outer_boundary()) { + std::cout << " " << p; + } + std::cout << std::endl; + */ + // create Delaunay triangulation and return the centroid of the largest triangle. + CGAL::Polygon_triangulation_decomposition_2 decompositor; + std::list decom_polies; + decompositor(inpoly, std::back_inserter(decom_polies)); + decom_polies.sort([](const Polygon_2& a, const Polygon_2& b) { + return a.area() > b.area(); + }); + if (!decom_polies.empty()) { + const Polygon_2& largest = decom_polies.front(); + auto triangle = poly_to_triangle(largest); + /* + for (auto& p : decom_polies) { + std::cout << "a " << CGAL::to_double(poly_to_triangle(largest).area()) << std::endl; + } + std::cout << "triangle area " << CGAL::to_double(triangle.area()) << std::endl; + */ + outpoly.point_inside = create_point(CGAL::centroid(triangle)); + } + } + + Arrangement_2 arr; + float total, i; + +public: + bool operator()(double eps, const std::vector& segments, std::function& progress) { + i = 0; + total = segments.size() + segments.size() / 2; + + for (auto& l : segments) { + Point_2 a(l[0][0], l[0][1]); + Point_2 b(l[1][0], l[1][1]); + if (a == b) { + continue; + } + if (eps != 0.) { + auto ab = b - a; + ab /= std::sqrt(CGAL::to_double(ab.squared_length())); + // This appears to work better generally, slightly nudge the + // end points to make sure segments intersect. + a -= ab * eps; + b += ab * eps; + } + Segment_2 seg(a, b); + CGAL::insert(arr, seg); + + if (progress) { + progress(i++ / total); + } + } + + return true; + } + + void remove_duplicates(svgfill::loop_2& l) { + auto norm2 = [](auto& a, auto& b) { + auto dx = a[0] - b[0]; + auto dy = a[1] - b[1]; + return std::sqrt(dx * dx + dy * dy); + }; + + while (l.size() > 1 && l.front() == l.back()) { + l.pop_back(); + } + + if (l.size() > 1) { + auto it = l.begin(); + auto next_it = std::next(it); + + while (next_it != l.end()) { + if (norm2(*it, *next_it) < 1.e-8) { + next_it = l.erase(next_it); + // 'it' remains the same; 'next_it' now points to the next element + } else { + // Move both iterators forward + ++it; + ++next_it; + } + } + } + } + + bool write(std::vector& polygons, std::function& progress) { + std::vector ps; + ps.reserve(std::distance(arr.faces_begin(), arr.faces_end())); + + for (auto it = arr.faces_begin(); it != arr.faces_end(); ++it) { + const auto& f = *it; + if (!f.is_unbounded()) { + ps.push_back(circ_to_poly( + f.outer_ccb(), + f.inner_ccbs_begin(), + f.inner_ccbs_end() + )); + } + + if (progress) { + progress(i++ / total); + } + } + + // Sort polygons (only taking into account outer boundary) to have inner + // loops drawn over outer boundaries. In SVG draw order is defined by + // position in the tree. + // @nb we do now add the inner boundaries to the path as well. + /* + std::sort(ps.begin(), ps.end(), [](const Polygon_wh_2& a, const Polygon_wh_2& b) { + return a.outer_boundary().area() > b.outer_boundary().area(); + }); + */ + + polygons.reserve(ps.size()); + + + + std::transform(ps.begin(), ps.end(), std::back_inserter(polygons), [this, &progress](const Polygon_wh_2& p) { + svgfill::polygon_2 p2; + std::transform(p.outer_boundary().vertices_begin(), p.outer_boundary().vertices_end(), std::back_inserter(p2.boundary), [this](const Point_2& pt) { + return create_point(pt); + }); + + /* + static int NN = 0; + std::cout << NN++ << std::endl; + for (auto& p : p2.boundary) { + std::cout << std::setprecision(20) << p[0] << "," << p[1] << " "; + } + std::cout << std::endl; + */ + + // duplicates need to be removed after conversion from epeck to double + remove_duplicates(p2.boundary); + + /* + std::cout << "> " << std::endl; + for (auto& p : p2.boundary) { + std::cout << std::setprecision(20) << p[0] << "," << p[1] << " "; + } + std::cout << std::endl; + */ + + std::transform(p.holes_begin(), p.holes_end(), std::back_inserter(p2.inner_boundaries), [this](const Polygon_2& poly) { + svgfill::loop_2 lp; + std::transform(poly.vertices_begin(), poly.vertices_end(), std::back_inserter(lp), [this](const Point_2& pt) { + return create_point(pt); + }); + remove_duplicates(lp); + return lp; + }); + set_point_inside(p, p2); + + if (progress) { + progress(i++ / total); + } + + return p2; + }); + + return true; + } + + std::vector get_face_pairs() { + std::vector ps; + ps.reserve(arr.number_of_edges() * 2); + size_t n = 0; + + std::map face_to_bounded_index; + for (auto it = arr.faces_begin(); it != arr.faces_end(); ++it) { + if (!it->is_unbounded()) { + face_to_bounded_index[it] = face_to_bounded_index.size(); + } + } + + for (auto it = arr.edges_begin(); it != arr.edges_end(); ++it, ++n) { + auto v0 = it->source()->point(); + double v0x = CGAL::to_double(v0.cartesian(0)); + double v0y = CGAL::to_double(v0.cartesian(1)); + auto v1 = it->target()->point(); + double v1x = CGAL::to_double(v1.cartesian(0)); + double v1y = CGAL::to_double(v1.cartesian(1)); + double l = std::sqrt((v1x - v0x) * (v1x - v0x) + (v1y - v0y) * (v1y - v0y)); + // std::cout << n << " l " << l << std::endl; + bool emitted = false; + if (l > 1.) { + // std::cout << std::to_string(n) << " " << v0x << " " << v0y << std::endl; + // std::cout << std::string(std::to_string(n).size(), ' ') << " " << v1x << " " << v1y << std::endl; + + auto afit = face_to_bounded_index.find(it->face()); + auto bfit = face_to_bounded_index.find(it->twin()->face()); + + if (afit != face_to_bounded_index.end() && bfit != face_to_bounded_index.end()) { + ps.push_back(afit->second); + ps.push_back(bfit->second); + emitted = true; + } + } + + if (!emitted) { + ps.push_back(-1); + ps.push_back(-1); + } + } + return ps; + } + + void merge(const std::vector& edge_indices) { + if (edge_indices.empty()) { + return; + } + + std::list to_remove; + auto eit = edge_indices.begin(); + size_t n = 0; + for (auto it = arr.edges_begin(); it != arr.edges_end(); ++it, ++n) { + if (n == *eit) { + ++eit; + to_remove.push_back(it); + if (eit == edge_indices.end()) { + break; + } + } + } + + for (auto& h : to_remove) { + /* + auto v0 = h->source()->point(); + std::cout << CGAL::to_double(v0.cartesian(0)) << " " << CGAL::to_double(v0.cartesian(1)) << std::endl; + auto v1 = h->target()->point(); + std::cout << CGAL::to_double(v1.cartesian(0)) << " " << CGAL::to_double(v1.cartesian(1)) << std::endl << std::endl; + */ + arr.remove_edge(h); + } + } + + size_t num_edges() { + return arr.number_of_edges(); + } + + size_t num_faces() { + return arr.number_of_faces(); + } +}; + +bool svgfill::line_segments_to_polygons(solver s, double eps, const std::vector>& segment_groups, std::vector>& polygons, std::function& progress) +{ + bool b = false; + for (auto& segments : segment_groups) { + context ctx(s, eps, progress); + ctx.add(segments); + if (ctx.build()) { + ctx.write(polygons); + b = true; + } + } + return b; +} + +namespace { + std::string format_pt(const svgfill::point_2& p) { + std::ostringstream oss; + oss << std::setprecision(std::numeric_limits::max_digits10); + oss << p[0] << "," << p[1]; + return oss.str(); + } + + std::string format_poly(const svgfill::loop_2& p) { + std::ostringstream oss; + for (auto it = p.begin(); it != p.end(); ++it) { + oss << ((it == p.begin()) ? "M" : " L"); + oss << format_pt(*it); + } + oss << " Z"; + return oss.str(); + } +} + +std::string svgfill::polygons_to_svg(const std::vector>& polygons, bool random_color) { + std::random_device rd; + std::mt19937 mt(rd()); + std::uniform_int_distribution dist(0, 360); + + std::ostringstream oss; + + oss << ""; + oss << ""; + + for (auto& g : polygons) { + oss << ""; + for (auto& p : g) { + const int h = dist(mt); + const int s = 50; + const int l = 50; + std::string style; + if (random_color) { + std::ostringstream oss; + oss << "style = \"fill: hsl(" << h << "," << s << "%, " << l << "%)\""; + style = oss.str(); + } + oss << ""; + } + oss << ""; + } + + oss << ""; + + return oss.str(); +} + + +std::string svgfill::polygons_to_svg(const std::vector& polygons, bool random_color) { + std::vector> pps = { polygons }; + return polygons_to_svg(pps, random_color); +} + +void svgfill::context::add(const std::vector& segments) { + segments_.insert(segments_.end(), segments.begin(), segments.end()); +} + +bool svgfill::context::build() { + if (solver_ == CARTESIAN_DOUBLE) { + arr_ = new cgal_arrangement>; + } else if (solver_ == CARTESIAN_QUOTIENT) { + arr_ = new cgal_arrangement>>; + } else if (solver_ == FILTERED_CARTESIAN_QUOTIENT) { + arr_ = new cgal_arrangement>>>; + } else if (solver_ == EXACT_PREDICATES) { + arr_ = new cgal_arrangement; + } else if (solver_ == EXACT_CONSTRUCTIONS) { + arr_ = new cgal_arrangement; + } + return (*arr_)(eps_, segments_, progress_); +} + +void svgfill::context::merge(const std::vector& edge_indices) { + arr_->merge(edge_indices); +} + +void svgfill::context::write(std::vector>& p) { + std::vector polygons; + arr_->write(polygons, progress_); + p.push_back(polygons); +} diff --git a/src/svgfill/src/svgfill.h b/src/svgfill/src/svgfill.h new file mode 100644 index 0000000000..396fc9c924 --- /dev/null +++ b/src/svgfill/src/svgfill.h @@ -0,0 +1,119 @@ +/**************************************************************************** + * SVG fill * + * * + * Copyright(C) 2020 AECgeeks and Bimforce * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU Lesser General Public * + * License as published by the Free Software Foundation; either * + * version 3 of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * + * Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public License * + * along with this program; if not, write to the Free Software Foundation, * + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ****************************************************************************/ + +#ifndef SVGFILL_H +#define SVGFILL_H + +#ifdef IFC_SHARED_BUILD +#ifdef _WIN32 +#ifdef svgfill_EXPORTS +#define SVGFILL_API __declspec(dllexport) +#else +#define SVGFILL_API __declspec(dllimport) +#endif +#else // simply assume *nix + GCC-like compiler +#define SVGFILL_API __attribute__((visibility("default"))) +#endif +#else +#define SVGFILL_API +#endif + +#include + +#include +#include + +namespace svgfill { + typedef std::array point_2; + typedef std::array line_segment_2; + typedef std::vector loop_2; + struct SVGFILL_API polygon_2 { + loop_2 boundary; + std::vector inner_boundaries; + point_2 point_inside; + }; + + enum solver { + CARTESIAN_DOUBLE, + CARTESIAN_QUOTIENT, + FILTERED_CARTESIAN_QUOTIENT, + EXACT_PREDICATES, + EXACT_CONSTRUCTIONS + }; + + class SVGFILL_API abstract_arrangement { + public: + virtual ~abstract_arrangement() {} + virtual bool operator()(double eps, const std::vector& segments, std::function& progress) = 0; + virtual bool write(std::vector& polygons, std::function& progress) = 0; + virtual void merge(const std::vector& edge_indices) = 0; + virtual std::vector get_face_pairs() = 0; + virtual size_t num_edges() = 0; + virtual size_t num_faces() = 0; + }; + + class SVGFILL_API context { + private: + solver solver_; + double eps_; + std::vector segments_; + std::function progress_; + // std::vector polygons_; + abstract_arrangement* arr_; + + public: + context(solver s, double eps) + : solver_(s) + , eps_(eps) + , arr_(nullptr) + {} + + context(solver s, double eps, std::function& progress) + : solver_(s) + , eps_(eps) + , progress_(progress) + , arr_(nullptr) + {} + + void add(const std::vector& segments); + bool build(); + std::vector get_face_pairs() { + return arr_->get_face_pairs(); + } + void merge(const std::vector& edge_indices); + void write(std::vector>&); + size_t num_edges() { return arr_->num_edges(); } + size_t num_faces() { return arr_->num_faces(); } + + ~context() { + delete arr_; + } + }; + + SVGFILL_API bool svg_to_line_segments(const std::string& data, const boost::optional& class_name, std::vector>& segments); + SVGFILL_API bool line_segments_to_polygons(solver s, double eps, const std::vector>& segments, std::vector>& polygons); + SVGFILL_API bool line_segments_to_polygons(solver s, double eps, const std::vector>& segments, std::vector>& polygons, std::function& progress); + SVGFILL_API std::string polygons_to_svg(const std::vector>& polygons, bool random_color=false); + SVGFILL_API std::string polygons_to_svg(const std::vector& polygons, bool random_color = false); + SVGFILL_API bool svg_to_polygons(const std::string& data, const boost::optional& class_name, std::vector& polygons); + SVGFILL_API bool arrange_polygons(const std::vector& polygons, std::vector& arranged); +} + +#endif diff --git a/test/bpy.py b/test/bpy.py index 44389c36b7..b706c23e58 100644 --- a/test/bpy.py +++ b/test/bpy.py @@ -24,16 +24,20 @@ ############################################################################### import os -import bpy import sys import time -try: from io_import_scene_ifc import import_ifc -except: + +import bpy + +try: + from io_import_scene_ifc import import_ifc +except: print("[Error] Unable to import IfcOpenShell") sys.exit(1) -from mathutils import Vector as V from math import radians +from mathutils import Vector as V + scn = bpy.context.scene for ob in bpy.data.objects: @@ -49,8 +53,8 @@ if not succes: sys.exit(1) dt = time.time()-t1 -print ("[Notice] Conversion took %.2f seconds"%dt) - +print ("[Notice] Conversion took %.2f seconds"%dt) + cam = bpy.data.cameras.new('cam') cam.angle = radians(45) cam_ob = bpy.data.objects.new('cam',cam) @@ -72,7 +76,7 @@ def material(name,settings): if not m: return for k,v in settings.items(): setattr(m,k,v) - + material("IfcWall",{"diffuse_color":[1,1,1],"diffuse_intensity":1}) material("IfcWallStandardCase",{"diffuse_color":[1,1,1],"diffuse_intensity":1}) material("IfcSite",{"diffuse_color":[0.4,0.5,0.25]}) diff --git a/test/run.py b/test/run.py index 102529d9f9..ad1880166f 100644 --- a/test/run.py +++ b/test/run.py @@ -26,13 +26,12 @@ # # ############################################################################### -import os -import sys -import shutil import inspect +import os import subprocess -from zipfile import ZipFile +import sys from urllib.request import urlretrieve +from zipfile import ZipFile # Test whether Blender and IfcOpenShell are installed if subprocess.call(['blender','-b','-P','bpy.py','TEST']) != 0: diff --git a/win/build-all-win.py b/win/build-all-win.py index 5c2c6ababa..087f869ac4 100644 --- a/win/build-all-win.py +++ b/win/build-all-win.py @@ -11,7 +11,7 @@ from zipfile import ZipFile assert Path.cwd() == Path(__file__).parent, "Run this script from the 'win' directory." -PYTHON_VERSIONS = ["3.9.13", "3.10.3", "3.11.8", "3.12.1", "3.13.0", "3.14.0"] +PYTHON_VERSIONS = ["3.10.3", "3.11.8", "3.12.1", "3.13.0", "3.14.0"] REPO_PATH = Path(__file__).parent.parent REPO_WIN = REPO_PATH / "win" VERSION = (REPO_PATH / "VERSION").read_text().strip() diff --git a/win/build-all.cmd b/win/build-all.cmd index 4f29f0edd3..28ff229907 100644 --- a/win/build-all.cmd +++ b/win/build-all.cmd @@ -23,7 +23,7 @@ :: Usage example for doing an optimized vs2015-x64 build with debug information and using IFC 4: :: > build-all.cmd vs2015-x64 RelWithDebInfo -DUSE_IFC4=1 -DENABLE_BUILD_OPTIMIZATIONS=1 -@echo off +@if not defined ECHO_ON ( echo off ) setlocal EnableDelayedExpansion diff --git a/win/build-deps.cmd b/win/build-deps.cmd index 3c3a174a5f..c81541104f 100644 --- a/win/build-deps.cmd +++ b/win/build-deps.cmd @@ -24,7 +24,7 @@ :: Example usage (all arguments are optional): :: build-deps.cmd vs2022-x64 RelWithDebInfo Build -@echo off +@if not defined ECHO_ON ( echo off ) echo. for %%Q in ("%~dp0\.") DO set "batpath=%%~fQ" @@ -41,6 +41,8 @@ echo. :: Enable the delayed environment variable expansion needed in vs-cfg.cmd. setlocal EnableDelayedExpansion +set SCRIPT_DIR=%~dp0 + :: Make sure vcvarsall.bat is called and dev env set is up. IF "%VSINSTALLDIR%"=="" ( call utils\cecho.cmd 0 12 "Visual Studio environment variables not set- cannot proceed." @@ -96,7 +98,8 @@ IF NOT DEFINED IFCOS_NUM_BUILD_PROCS set IFCOS_NUM_BUILD_PROCS=%NUMBER_OF_PROCES :: For subroutines REM /clp:ErrorsOnly;WarningsOnly :: Note BUILD_TYPE not passed, Clean e.g. wouldn't delete the installed files. -set MSBUILD_CMD=MSBuild.exe /nologo /m:%IFCOS_NUM_BUILD_PROCS% +set MSBUILD_MULTIPROC=/m /p:CL_MPCount=%IFCOS_NUM_BUILD_PROCS% /p:UseMultiToolTask=true /p:EnforceProcessCountAcrossBuilds=true +set MSBUILD_CMD=MSBuild.exe /nologo %MSBUILD_MULTIPROC% echo. @@ -108,6 +111,7 @@ FOR %%i IN (powershell git cmake) DO ( :: Check powershell version powershell -c "exit $PSVersionTable.PSVersion.Major -lt 5" IF NOT %ERRORLEVEL%==0 call cecho.cmd 0 12 "Powershell version 5 or higher required" && goto :ErrorAndPrintUsage +set PWSH_TOOLS=powershell -NonInteractive -File %SCRIPT_DIR%\utils\tools.ps1 cmake --version | findstr version > temp.txt set /p CMAKE_VERSION=>"%~dp0\%BUILD_DEPS_CACHE_PATH%" -set OCC_LIBRARY_DIR=%INSTALL_DIR%\opencascade-%OCCT_VERSION%\win%ARCH_BITS%\lib>>"%~dp0\%BUILD_DEPS_CACHE_PATH%" IF "%IFCOS_INSTALL_PYTHON%"=="TRUE" ( set PYTHONHOME=%DEPS_DIR%\python.%PYTHON_VERSION%\tools ) @@ -194,8 +196,6 @@ IF "%IFCOS_INSTALL_PYTHON%"=="TRUE" ( :: executed by jumping (using goto) to different labels. if defined GEN_SHORTHAND echo GEN_SHORTHAND=%GEN_SHORTHAND%>"%~dp0\%BUILD_DEPS_CACHE_PATH%" echo HDF5_VERSION=%HDF5_VERSION%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%" -echo OCC_INCLUDE_DIR=%OCC_INCLUDE_DIR%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%" -echo OCC_LIBRARY_DIR=%OCC_LIBRARY_DIR%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%" IF "%IFCOS_INSTALL_PYTHON%"=="TRUE" ( echo PYTHONHOME=%PYTHONHOME%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%" ) @@ -274,7 +274,7 @@ call :DownloadFile https://download.osgeo.org/proj/proj-9.2.1.zip "%DEPS_DIR%" p IF NOT %ERRORLEVEL%==0 GOTO :Error call :ExtractArchive proj-9.2.1.zip "%DEPS_DIR%" "%DEPS_DIR%\proj-9.2.1" IF NOT %ERRORLEVEL%==0 GOTO :Error -cd "%DEPENDENCY_DIR%" +pushd "%DEPENDENCY_DIR%" call :RunCMake -DCMAKE_INSTALL_PREFIX="%INSTALL_DIR%\proj-9.2.1" ^ -DSQLITE3_INCLUDE_DIR=%INSTALL_DIR%\sqlite3\include ^ -DSQLITE3_LIBRARY=%INSTALL_DIR%\sqlite3\lib\sqlite3.lib ^ @@ -282,10 +282,11 @@ call :RunCMake -DCMAKE_INSTALL_PREFIX="%INSTALL_DIR%\proj-9.2.1" ^ -DBUILD_SHARED_LIBS=Off ^ -DBUILD_TESTING=Off IF NOT %ERRORLEVEL%==0 GOTO :Error -call :BuildSolution "%DEPENDENCY_DIR%\%BUILD_DIR%\PROJ.sln" %BUILD_CFG% +call :BuildCMakeProject "%DEPENDENCY_DIR%\%BUILD_DIR%" %BUILD_CFG% IF NOT %ERRORLEVEL%==0 GOTO :Error call :InstallCMakeProject "%DEPENDENCY_DIR%\%BUILD_DIR%" %BUILD_CFG% IF NOT %ERRORLEVEL%==0 GOTO :Error +popd :mpir @@ -299,7 +300,7 @@ set DEPENDENCY_NAME=mpir set DEPENDENCY_DIR=%DEPS_DIR%\mpir call :GitCloneAndCheckoutRevision https://github.com/BrianGladman/mpir.git "%DEPENDENCY_DIR%" IF NOT %ERRORLEVEL%==0 GOTO :Error -cd "%DEPENDENCY_DIR%" +pushd "%DEPENDENCY_DIR%" git reset --hard git clean -fdx REM There probably need to be quotes here around the filename @@ -316,6 +317,7 @@ IF NOT %ERRORLEVEL%==0 GOTO :Error IF NOT EXIST "%INSTALL_DIR%\mpir". mkdir "%INSTALL_DIR%\mpir" copy ..\..\lib\%VS_PLATFORM%\%DEBUG_OR_RELEASE%\* "%INSTALL_DIR%\mpir" IF NOT %ERRORLEVEL%==0 GOTO :Error +popd :mpfr @@ -328,7 +330,7 @@ set DEPENDENCY_NAME=mpfr set DEPENDENCY_DIR=%DEPS_DIR%\mpfr call :GitCloneAndCheckoutRevision https://github.com/aothms/mpfr.git "%DEPENDENCY_DIR%" 2ebbe10fd029a480cf6e8a64c493afa9f3654251 IF NOT %ERRORLEVEL%==0 GOTO :Error -cd "%DEPENDENCY_DIR%" +pushd "%DEPENDENCY_DIR%" git reset --hard powershell -c "get-content %~dp0patches\mpfr.patch | %%{$_ -replace \"sdk\",\"%UCRTVersion%\"} | %%{$_ -replace \"fn\",\"lib_mpfr\"}" | git apply --unidiff-zero --ignore-whitespace IF NOT %ERRORLEVEL%==0 GOTO :Error @@ -349,19 +351,19 @@ IF NOT EXIST lib\%VS_PLATFORM%\%DEBUG_OR_RELEASE%\mpfr.lib GOTO :Error IF NOT EXIST "%INSTALL_DIR%\mpfr". mkdir "%INSTALL_DIR%\mpfr" copy lib\%VS_PLATFORM%\%DEBUG_OR_RELEASE%\* "%INSTALL_DIR%\mpfr" IF NOT %ERRORLEVEL%==0 GOTO :Error +popd :HDF5 set DEPENDENCY_NAME=hdf5 set DEPENDENCY_DIR=%DEPS_DIR%\hdf5-%HDF5_VERSION% -cd "%DEPENDENCY_DIR%" set HDF5_CMAKE_ZIP=hdf5-%HDF5_VERSION%.zip -set HDF5_INSTALL_NAME=HDF5-%HDF5_VERSION%-win%ARCH_BITS% +set DEPENDENCY_INSTALL_NAME=HDF5-%HDF5_VERSION%-win%ARCH_BITS% +set HDF5_INSTALL_NAME=%DEPENDENCY_INSTALL_NAME% +set NEXT_DEPENDENCY_LABEL=Boost -IF EXIST "%INSTALL_DIR%\%HDF5_INSTALL_NAME%" ( - echo Found existing "%INSTALL_DIR%\%HDF5_INSTALL_NAME%", skipping - goto :Boost -) +call :CheckInstallation +if %ERRORLEVEL%==200 GOTO %NEXT_DEPENDENCY_LABEL% if "%ARCH_BITS%"=="64" set ARCH_BITS_64=64 call :DownloadFile ^ @@ -370,17 +372,18 @@ call :DownloadFile ^ IF NOT %ERRORLEVEL%==0 GOTO :Error call :ExtractArchive %HDF5_CMAKE_ZIP% "%DEPS_DIR%" "%DEPS_DIR%\hdf5-%HDF5_VERSION%" IF NOT %ERRORLEVEL%==0 GOTO :Error -ren "%DEPS_DIR%\hdf5-hdf5-%HDF5_VERSION%" "hdf5-%HDF5_VERSION%" +if exist "%DEPS_DIR%\hdf5-hdf5-%HDF5_VERSION%" ren "%DEPS_DIR%\hdf5-hdf5-%HDF5_VERSION%" "hdf5-%HDF5_VERSION%" pushd "%DEPENDENCY_DIR%" call :RunCMake -DCMAKE_INSTALL_PREFIX="%INSTALL_DIR%\%HDF5_INSTALL_NAME%" ^ -DHDF5_ENABLE_Z_LIB_SUPPORT=OFF -DBUILD_TESTING=OFF ^ -DHDF5_BUILD_TOOLS=OFF -DHDF5_BUILD_EXAMPLES=OFF -DBUILD_SHARED_LIBS=OFF -DHDF5_BUILD_UTILS=OFF ^ -DHDF5_BUILD_CPP_LIB=ON IF NOT %ERRORLEVEL%==0 GOTO :Error -call :BuildSolution "%DEPENDENCY_DIR%\%BUILD_DIR%\HDF5.sln" %DEBUG_OR_RELEASE% +call :BuildCMakeProject "%DEPENDENCY_DIR%\%BUILD_DIR%" %DEBUG_OR_RELEASE% IF NOT %ERRORLEVEL%==0 GOTO :Error call :InstallCMakeProject "%DEPENDENCY_DIR%\%BUILD_DIR%" %DEBUG_OR_RELEASE% IF NOT %ERRORLEVEL%==0 GOTO :Error +call :MarkInstallation popd :: Note all of the dependencies have appropriate label so that user can easily skip something if wanted @@ -389,11 +392,15 @@ popd :: DEPENDENCY_NAME is used for logging and DEPENDENCY_DIR for saving from some redundant typing set DEPENDENCY_NAME=Boost %BOOST_VERSION% set DEPENDENCY_DIR=%DEPS_DIR%\boost_%BOOST_VER% -set BOOST_LIBRARYDIR=%DEPENDENCY_DIR%\stage\%GEN_SHORTHAND%\lib +set DEPENDENCY_INSTALL_DIR=%DEPENDENCY_DIR%\stage\%GEN_SHORTHAND% +echo BOOST_INSTALL_DIR=%DEPENDENCY_INSTALL_DIR%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%" +:: Needed for CGAL build. +set BOOST_ROOT=%DEPENDENCY_DIR% :: NOTE Also zip download exists, if encountering problems with 7z for some reason. set ZIP_EXT=7z set BOOST_ZIP=boost-%BOOST_VERSION%-b2-nodocs.%ZIP_EXT% +cd "%DEPS_DIR%" call :DownloadFile https://github.com/boostorg/boost/releases/download/boost-%BOOST_VERSION%/%BOOST_ZIP% "%DEPS_DIR%" %BOOST_ZIP% IF NOT %ERRORLEVEL%==0 GOTO :Error @@ -401,7 +408,9 @@ call :ExtractArchive %BOOST_ZIP% "%DEPS_DIR%" %DEPENDENCY_DIR% IF NOT %ERRORLEVEL%==0 GOTO :Error :: top-level folder name changed when migrating to github releases -ren %DEPS_DIR%\boost-%BOOST_VERSION% boost_%BOOST_VER% +if exist "%DEPS_DIR%\boost-%BOOST_VERSION%". ( + ren %DEPS_DIR%\boost-%BOOST_VERSION% boost_%BOOST_VER% +) :: Build Boost build script if not exist "%DEPENDENCY_DIR%\project-config.jam". ( @@ -417,10 +426,10 @@ set BOOST_LIBS=--with-system --with-regex --with-thread --with-program_options - :: NOTE Boost is fast to build with limited set of libraries so build it always. cd "%DEPENDENCY_DIR%" call cecho.cmd 0 13 "Building %DEPENDENCY_NAME% %BOOST_LIBS% Please be patient, this will take a while." -IF EXIST "%DEPENDENCY_DIR%\bin.v2\project-cache.jam" del "%DEPS_DIR%\boost\bin.v2\project-cache.jam" +IF EXIST "%DEPENDENCY_DIR%\bin.v2\project-cache.jam" del "%DEPENDENCY_DIR%\bin.v2\project-cache.jam" call .\b2 toolset=%BOOST_TOOLSET% runtime-link=shared address-model=%ARCH_BITS% --abbreviate-paths -j%IFCOS_NUM_BUILD_PROCS% ^ - variant=%DEBUG_OR_RELEASE_LOWERCASE% %BOOST_WIN_API% %BOOST_LIBS% stage --stagedir=stage/%GEN_SHORTHAND% + variant=%DEBUG_OR_RELEASE_LOWERCASE% %BOOST_WIN_API% %BOOST_LIBS% stage --stagedir=%DEPENDENCY_INSTALL_DIR% IF NOT %ERRORLEVEL%==0 GOTO :Error @@ -434,15 +443,14 @@ call :DownloadFile https://github.com/nlohmann/json/releases/download/v3.6.1/jso :: Note OpenCOLLADA has only Release and Debug builds. set DEPENDENCY_NAME=OpenCOLLADA set DEPENDENCY_DIR=%DEPS_DIR%\OpenCOLLADA +set DEPENDENCY_INSTALL_NAME=OpenCOLLADA +set NEXT_DEPENDENCY_LABEL=OCCT :: Always clone it, even if it's installed, because it contains xml headers we need. :: Use a fixed revision in order to prevent introducing breaking changes call :GitCloneAndCheckoutRevision https://github.com/KhronosGroup/OpenCOLLADA.git "%DEPENDENCY_DIR%" 064a60b65c2c31b94f013820856bc84fb1937cc6 -IF EXIST "%INSTALL_DIR%\OpenCOLLADA" ( - echo Found existing "%INSTALL_DIR%\OpenCOLLADA", skipping - :: we do need to clone though because the bundled libxml includes are not installed - goto :OCCT -) +call :CheckInstallation +if %ERRORLEVEL%==200 GOTO %NEXT_DEPENDENCY_LABEL% IF NOT %ERRORLEVEL%==0 GOTO :Error cd "%DEPENDENCY_DIR%" @@ -454,44 +462,35 @@ IF NOT %ERRORLEVEL%==0 git apply --reject --whitespace=fix "%~dp0patches\OpenCOL :: uncomment to following line in order to delete the CMakeCache.txt always if experiencing problems. REM IF EXIST "%DEPENDENCY_DIR%\%BUILD_DIR%\CMakeCache.txt". del "%DEPENDENCY_DIR%\%BUILD_DIR%\CMakeCache.txt" :: NOTE Enforce that the embedded LibXml2 and PCRE are used as there might be problems with arbitrary versions of the libraries. -call :RunCMake -DCMAKE_INSTALL_PREFIX="%INSTALL_DIR%\OpenCOLLADA" -DUSE_STATIC_MSVC_RUNTIME=0 -DCMAKE_DEBUG_POSTFIX=d ^ +call :RunCMake -DCMAKE_INSTALL_PREFIX="%INSTALL_DIR%\%DEPENDENCY_INSTALL_NAME%" -DUSE_STATIC_MSVC_RUNTIME=0 -DCMAKE_DEBUG_POSTFIX=d ^ -DLIBXML2_LIBRARIES="" -DLIBXML2_INCLUDE_DIR="" -DPCRE_INCLUDE_DIR="" -DPCRE_LIBRARIES="" IF NOT %ERRORLEVEL%==0 GOTO :Error REM IF NOT EXIST "%DEPS_DIR%\OpenCOLLADA\%BUILD_DIR%\lib\%DEBUG_OR_RELEASE%\OpenCOLLADASaxFrameworkLoader.lib". -call :BuildSolution "%DEPENDENCY_DIR%\%BUILD_DIR%\OPENCOLLADA.sln" %DEBUG_OR_RELEASE% +call :BuildCMakeProject "%DEPENDENCY_DIR%\%BUILD_DIR%" %DEBUG_OR_RELEASE% IF NOT %ERRORLEVEL%==0 GOTO :Error call :InstallCMakeProject "%DEPENDENCY_DIR%\%BUILD_DIR%" %DEBUG_OR_RELEASE% IF NOT %ERRORLEVEL%==0 GOTO :Error +call :MarkInstallation :OCCT SET OCCT_VER=V%OCCT_VERSION:.=_% -IF EXIST "%INSTALL_DIR%\opencascade-%OCCT_VERSION%" ( - echo Found existing "%INSTALL_DIR%\opencascade-%OCCT_VERSION%", skipping - goto :Python -) +set DEPENDENCY_NAME=OpenCASCADE +:: `new-layout` suffix can be removed on the next OCCT version update +:: it's needed to separate legacy layout installation from the new one. +set OCCT_DEPENDENCY_INSTALL_NAME=opencascade-%OCCT_VERSION%-new-layout +set DEPENDENCY_INSTALL_NAME=%OCCT_DEPENDENCY_INSTALL_NAME% +set DEPENDENCY_INSTALL_DIR=%INSTALL_DIR%\%DEPENDENCY_INSTALL_NAME% +set NEXT_DEPENDENCY_LABEL=Python +echo OCC_INSTALL_DIR=%DEPENDENCY_INSTALL_DIR%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%" -:: OCCT has many dependencies but FreeType is the only mandatory -set DEPENDENCY_NAME=FreeType -set DEPENDENCY_DIR=%DEPS_DIR%\freetype-2.7.1 -set FREETYPE_ZIP=ft271.zip -cd "%DEPS_DIR%" -call :DownloadFile https://download-mirror.savannah.gnu.org/releases/freetype/ft271.zip "%DEPS_DIR%" %FREETYPE_ZIP% -if not %ERRORLEVEL%==0 goto :Error -call :ExtractArchive %FREETYPE_ZIP% "%DEPS_DIR%" "%DEPENDENCY_DIR%" -if not %ERRORLEVEL%==0 goto :Error -cd "%DEPENDENCY_DIR%" -:: NOTE FreeType is built as a static library by default -call :RunCMake -DCMAKE_INSTALL_PREFIX="%INSTALL_DIR%\freetype" -if not %ERRORLEVEL%==0 goto :Error -call :BuildSolution "%DEPENDENCY_DIR%\%BUILD_DIR%\freetype.sln" %BUILD_CFG% -if not %ERRORLEVEL%==0 goto :Error -call :InstallCMakeProject "%DEPENDENCY_DIR%\%BUILD_DIR%" %BUILD_CFG% -if not %ERRORLEVEL%==0 goto :Error +call :CheckInstallation +if %ERRORLEVEL%==200 GOTO %NEXT_DEPENDENCY_LABEL% set DEPENDENCY_NAME=Open CASCADE %OCCT_VERSION% set DEPENDENCY_DIR=%DEPS_DIR%\occt_git +set DEPENDENCY_INSTALL_NAME=%OCCT_DEPENDENCY_INSTALL_NAME% cd "%DEPS_DIR%" call :GitCloneAndCheckoutRevision https://github.com/Open-Cascade-SAS/OCCT "%DEPENDENCY_DIR%" %OCCT_VER% if not %ERRORLEVEL%==0 goto :Error @@ -507,8 +506,12 @@ findstr IfcOpenShell "%DEPENDENCY_DIR%\CMakeLists.txt">NUL if not %ERRORLEVEL%==0 goto :Error cd "%DEPENDENCY_DIR%" -call :RunCMake -DINSTALL_DIR="%INSTALL_DIR%\opencascade-%OCCT_VERSION%" -DBUILD_LIBRARY_TYPE="Static" -DCMAKE_DEBUG_POSTFIX=d ^ - -DBUILD_MODULE_Draw=0 -D3RDPARTY_FREETYPE_DIR="%INSTALL_DIR%\freetype" +:: TODO: remove CMAKE_DEBUG_POSTFIX setting later. +:: Temporarily explicitly set `CMAKE_DEBUG_POSTFIX` to empty to override it's perviously being set to `d`. +:: OCCT don't need it, since it's layout is separating debug and release build by different folders. +call :RunCMake -DINSTALL_DIR="%DEPENDENCY_INSTALL_DIR%" -DBUILD_LIBRARY_TYPE="Static" -DCMAKE_DEBUG_POSTFIX="" ^ + -DBUILD_MODULE_Draw=0 -DUSE_FREETYPE=OFF ^ + -DBUILD_USE_PCH=ON if not %ERRORLEVEL%==0 goto :Error :: whole program optimization avoids Visual C++ hanging when compiling 32-bit release OCCT up to version 7.4.0 @@ -518,28 +521,24 @@ IF %ARCH_BITS%==32 ( ) ) -call :BuildSolution "%DEPENDENCY_DIR%\%BUILD_DIR%\OCCT.sln" %BUILD_CFG% +call :BuildCMakeProject "%DEPENDENCY_DIR%\%BUILD_DIR%" %BUILD_CFG% if not %ERRORLEVEL%==0 goto :Error + +:: If `inc` is present in installation folder, then installation takes much longer +:: See https://github.com/Open-Cascade-SAS/OCCT/issues/901 +powershell -c "$path = '%DEPENDENCY_INSTALL_DIR%\inc'; if (Test-Path $path) { Remove-Item -Recurse -Force $path }" call :InstallCMakeProject "%DEPENDENCY_DIR%\%BUILD_DIR%" %BUILD_CFG% if not %ERRORLEVEL%==0 goto :Error -SET COMPILE_WITH_WPO=FALSE +:: Fix upstream bug in cmake config file with unescaped quotes preventing configuration. +:: The issue is fixed in 7.9.0+. +:: See https://github.com/Open-Cascade-SAS/OCCT/pull/373 +powershell -c "$path='%DEPENDENCY_INSTALL_DIR%\cmake\OpenCASCADEConfig.cmake'; (Get-Content $path) -replace '/wd\"(\d+)\"','/wd$1' | Set-Content $path" +if not %ERRORLEVEL%==0 goto :Error -:: Use a single lib directory for release and debug libraries as is done with OCE -if not exist "%OCC_LIBRARY_DIR%". mkdir "%OCC_LIBRARY_DIR%" -:: NOTE OCCT (at least occt-V7_0_0-9059ca1) directory creation code is hardcoded and doesn't seem handle future VC versions -set OCCT_VC_VER=%VC_VER% -IF %OCCT_VC_VER% GTR 14 ( - set OCCT_VC_VER=14 -) -move /y "%INSTALL_DIR%\opencascade-%OCCT_VERSION%\win%ARCH_BITS%\vc%OCCT_VC_VER%\libi\*.*" "%OCC_LIBRARY_DIR%" -move /y "%INSTALL_DIR%\opencascade-%OCCT_VERSION%\win%ARCH_BITS%\vc%OCCT_VC_VER%\libd\*.*" "%OCC_LIBRARY_DIR%" -move /y "%INSTALL_DIR%\opencascade-%OCCT_VERSION%\win%ARCH_BITS%\vc%OCCT_VC_VER%\lib\*.*" "%OCC_LIBRARY_DIR%" -rmdir /s /q "%INSTALL_DIR%\opencascade-%OCCT_VERSION%\win%ARCH_BITS%\vc%OCCT_VC_VER%" -:: Removed unneeded bits -rmdir /s /q "%INSTALL_DIR%\opencascade-%OCCT_VERSION%\data" -rmdir /s /q "%INSTALL_DIR%\opencascade-%OCCT_VERSION%\samples" -del "%INSTALL_DIR%\opencascade-%OCCT_VERSION%\*.bat" +call :MarkInstallation + +SET COMPILE_WITH_WPO=FALSE :Python set DEPENDENCY_NAME=Python %PYTHON_VERSION% @@ -572,27 +571,31 @@ IF NOT %ERRORLEVEL%==0 GOTO :Error :SWIG +set DEPENDENCY_NAME=SWIG +set SWIG_VERSION=4.1.0 +set DEPENDENCY_DIR=%DEPS_DIR%\swig-%SWIG_VERSION% +set DEPENDENCY_INSTALL_DIR=%INSTALL_DIR%\swig-%SWIG_VERSION% +echo SWIG_INSTALL_DIR=%DEPENDENCY_INSTALL_DIR%>>"%~dp0\%BUILD_DEPS_CACHE_PATH%" -IF EXIST "%INSTALL_DIR%\swigwin" ( - echo Found existing "%INSTALL_DIR%\swigwin", skipping +IF EXIST "%DEPENDENCY_INSTALL_DIR%" ( + echo Found existing "%DEPENDENCY_INSTALL_DIR%", skipping goto :cgal ) cd "%DEPS_DIR%" -:: Install bizon dependency for SWIG. +:: Install bison dependency for SWIG. +set SWIG_DEPENDENCY_NAME=%DEPENDENCY_NAME% set DEPENDENCY_NAME=win_flex_bison -set WIN_FLEX_BIZON=win_flex_bison-2.5.25 -set WIN_FLEX_BIZON_ZIP=%WIN_FLEX_BIZON%.zip -call :DownloadFile https://github.com/lexxmark/winflexbison/releases/download/v2.5.25/%WIN_FLEX_BIZON_ZIP% "%DEPS_DIR%" %WIN_FLEX_BIZON_ZIP% +set WIN_FLEX_BISON=win_flex_bison-2.5.25 +set WIN_FLEX_BISON_ZIP=%WIN_FLEX_BISON%.zip +call :DownloadFile https://github.com/lexxmark/winflexbison/releases/download/v2.5.25/%WIN_FLEX_BISON_ZIP% "%DEPS_DIR%" %WIN_FLEX_BISON_ZIP% IF NOT %ERRORLEVEL%==0 GOTO :Error -echo test %WIN_FLEX_BIZON% -call :ExtractArchive %WIN_FLEX_BIZON_ZIP% "%DEPS_DIR%\%WIN_FLEX_BIZON%" "%DEPS_DIR%\%WIN_FLEX_BIZON%" +echo test %WIN_FLEX_BISON% +call :ExtractArchive %WIN_FLEX_BISON_ZIP% "%DEPS_DIR%\%WIN_FLEX_BISON%" "%DEPS_DIR%\%WIN_FLEX_BISON%" IF NOT %ERRORLEVEL%==0 GOTO :Error +set DEPENDENCY_NAME=%SWIG_DEPENDENCY_NAME% -set SWIG_VERSION=4.3.0 -set DEPENDENCY_NAME=SWIG %SWIG_VERSION% -set DEPENDENCY_DIR=%DEPS_DIR%\swig-%SWIG_VERSION% set SWIG_ZIP=swigwin-%SWIG_VERSION%.zip call :DownloadFile https://github.com/swig/swig/archive/refs/tags/v%SWIG_VERSION%.zip "%DEPS_DIR%" swig-%SWIG_VERSION%.zip IF NOT %ERRORLEVEL%==0 GOTO :Error @@ -601,11 +604,11 @@ call :ExtractArchive swig-%SWIG_VERSION%.zip "%DEPS_DIR%" "%DEPENDENCY_DIR%" IF NOT %ERRORLEVEL%==0 GOTO :Error cd "%DEPENDENCY_DIR%" -call :RunCMake -DCMAKE_INSTALL_PREFIX="%INSTALL_DIR%\swigwin" ^ +call :RunCMake -DCMAKE_INSTALL_PREFIX="%DEPENDENCY_INSTALL_DIR%" ^ -DWITH_PCRE=OFF ^ - -DBISON_EXECUTABLE="%DEPS_DIR%\%WIN_FLEX_BIZON%\win_bison.exe" + -DBISON_EXECUTABLE="%DEPS_DIR%\%WIN_FLEX_BISON%\win_bison.exe" IF NOT %ERRORLEVEL%==0 GOTO :Error -call :BuildSolution "%DEPENDENCY_DIR%\%BUILD_DIR%\swig.sln" Release +call :BuildCMakeProject "%DEPENDENCY_DIR%\%BUILD_DIR%" Release IF NOT %ERRORLEVEL%==0 GOTO :Error call :InstallCMakeProject "%DEPENDENCY_DIR%\%BUILD_DIR%" Release IF NOT %ERRORLEVEL%==0 GOTO :Error @@ -626,15 +629,9 @@ cd "%DEPENDENCY_DIR%" git reset --hard git apply --ignore-whitespace "%~dp0patches\cgal_no_zlib.patch" call :RunCMake -DCMAKE_INSTALL_PREFIX="%INSTALL_DIR%\cgal" ^ - -DBOOST_ROOT="%DEPS_DIR%\boost_%BOOST_VER%" ^ - -DGMP_INCLUDE_DIR="%INSTALL_DIR%\mpir" ^ - -DGMP_LIBRARIES="%INSTALL_DIR%\mpir\mpir.lib" ^ - -DMPFR_INCLUDE_DIR="%INSTALL_DIR%\mpfr" ^ - -DMPFR_LIBRARIES="%INSTALL_DIR%\mpfr\mpfr.lib" ^ - -DCGAL_HEADER_ONLY=On ^ - -DBOOST_LIBRARYDIR="%DEPS_DIR%\boost_%BOOST_VER%\stage\vs%VS_VER%-%VS_PLATFORM%\lib" + -DCGAL_HEADER_ONLY=On IF NOT %ERRORLEVEL%==0 GOTO :Error -call :BuildSolution "%DEPENDENCY_DIR%\%BUILD_DIR%\CGAL.sln" %BUILD_CFG% +call :BuildCMakeProject "%DEPENDENCY_DIR%\%BUILD_DIR%" %BUILD_CFG% IF NOT %ERRORLEVEL%==0 GOTO :Error call :InstallCMakeProject "%DEPENDENCY_DIR%\%BUILD_DIR%" %BUILD_CFG% IF NOT %ERRORLEVEL%==0 GOTO :Error @@ -670,7 +667,7 @@ IF NOT %ERRORLEVEL%==0 GOTO :Error cd "%DEPENDENCY_DIR%"\build\cmake call :RunCMake -DCMAKE_INSTALL_PREFIX="%INSTALL_DIR%\zstd" -DZSTD_BUILD_STATIC=ON -DZSTD_BUILD_SHARED=OFF IF NOT %ERRORLEVEL%==0 GOTO :Error -call :BuildSolution "%DEPENDENCY_DIR%\build\cmake\%BUILD_DIR%\zstd.sln" %BUILD_CFG% +call :BuildCMakeProject "%DEPENDENCY_DIR%\build\cmake\%BUILD_DIR%" %BUILD_CFG% IF NOT %ERRORLEVEL%==0 GOTO :Error call :InstallCMakeProject "%DEPENDENCY_DIR%\build\cmake\%BUILD_DIR%" %BUILD_CFG% IF NOT %ERRORLEVEL%==0 GOTO :Error @@ -680,11 +677,11 @@ set DEPENDENCY_NAME=rocksdb set ROCKSDB_VERSION=9.11.2 set ROCKSDB_ZIP=rocksdb-%ROCKSDB_VERSION%.zip set DEPENDENCY_DIR=%DEPS_DIR%\%DEPENDENCY_NAME%-%ROCKSDB_VERSION% +set DEPENDENCY_INSTALL_NAME=%DEPENDENCY_NAME% +set NEXT_DEPENDENCY_LABEL=Successful -IF EXIST "%INSTALL_DIR%\%DEPENDENCY_NAME%" ( - echo Found existing "%INSTALL_DIR%\%DEPENDENCY_NAME%", skipping - goto :Successful -) +call :CheckInstallation +if %ERRORLEVEL%==200 GOTO %NEXT_DEPENDENCY_LABEL% cd %DEPS_DIR% call :DownloadFile ^ @@ -699,17 +696,23 @@ cd "%DEPENDENCY_DIR%" set ZSTD_INCLUDE=%INSTALL_DIR%\zstd\include set ZSTD_LIB_DEBUG=%INSTALL_DIR%\zstd\lib\zstd_static.lib set ZSTD_LIB_RELEASE=%INSTALL_DIR%\zstd\lib\zstd_static.lib -call :RunCMake -DCMAKE_INSTALL_PREFIX="%INSTALL_DIR%\rocksdb" ^ +call :RunCMake -DCMAKE_INSTALL_PREFIX="%INSTALL_DIR%\%DEPENDENCY_INSTALL_NAME%" ^ -DROCKSDB_INSTALL_ON_WINDOWS=On ^ -DFAIL_ON_WARNINGS=Off ^ -DWITH_TESTS=OFF ^ + -DWITH_TOOLS=OFF ^ + -DWITH_BENCHMARK_TOOLS=OFF ^ + -DWITH_CORE_TOOLS=OFF ^ + -DROCKSDB_BUILD_SHARED=OFF ^ -DWITH_ZSTD=On ^ - -DPORTABLE=1 + -DPORTABLE=1 ^ + -DCMAKE_DEBUG_POSTFIX="_d" IF NOT %ERRORLEVEL%==0 GOTO :Error -call :BuildSolution "%DEPENDENCY_DIR%\%BUILD_DIR%\rocksdb.sln" %BUILD_CFG% +call :BuildCMakeProject "%DEPENDENCY_DIR%\%BUILD_DIR%" %BUILD_CFG% IF NOT %ERRORLEVEL%==0 GOTO :Error call :InstallCMakeProject "%DEPENDENCY_DIR%\%BUILD_DIR%" %BUILD_CFG% IF NOT %ERRORLEVEL%==0 GOTO :Error +call :MarkInstallation :: :tbb :: set DEPENDENCY_NAME=tbb @@ -720,7 +723,7 @@ IF NOT %ERRORLEVEL%==0 GOTO :Error :: call :RunCMake -DCMAKE_INSTALL_PREFIX="%INSTALL_DIR%\tbb" ^ :: -DBUILD_SHARED_LIBS=Off :: IF NOT %ERRORLEVEL%==0 GOTO :Error -:: call :BuildSolution "%DEPENDENCY_DIR%\%BUILD_DIR%\TBB.sln" %BUILD_CFG% +:: call :BuildCMakeProject "%DEPENDENCY_DIR%\%BUILD_DIR%" %BUILD_CFG% :: IF NOT %ERRORLEVEL%==0 GOTO :Error :: call :InstallCMakeProject "%DEPENDENCY_DIR%\%BUILD_DIR%" %BUILD_CFG% :: IF NOT %ERRORLEVEL%==0 GOTO :Error @@ -743,9 +746,8 @@ IF NOT %ERRORLEVEL%==0 GOTO :Error :: -DPXR_BUILD_USD_TOOLS=FALSE ^ :: -DPXR_BUILD_TESTS=FALSE ^ :: -DBUILD_SHARED_LIBS=Off ^ -:: -DBOOST_LIBRARYDIR="%DEPS_DIR%\boost_%BOOST_VER%\stage\vs%VS_VER%-%VS_PLATFORM%\lib" :: IF NOT %ERRORLEVEL%==0 GOTO :Error -:: call :BuildSolution "%DEPENDENCY_DIR%\%BUILD_DIR%\USD.sln" %BUILD_CFG% +:: call :BuildCMakeProject "%DEPENDENCY_DIR%\%BUILD_DIR%" %BUILD_CFG% :: IF NOT %ERRORLEVEL%==0 GOTO :Error :: call :InstallCMakeProject "%DEPENDENCY_DIR%\%BUILD_DIR%" %BUILD_CFG% :: IF NOT %ERRORLEVEL%==0 GOTO :Error @@ -761,7 +763,7 @@ echo. call :PrintUsage :Error echo. -call "%~dp0\utils\cecho.cmd" 0 12 "An error occurred! Aborting!" +call "%~dp0\utils\cecho.cmd" 0 12 "An error occurred! Aborting! Last logged action: %LAST_ACTION%" set IFCOS_SCRIPT_RET=1 goto :Finish @@ -785,79 +787,37 @@ echo Build ended at %END_TIME%. Time elapsed %hh%:%mm%:%ss%.%cc%. :BuildTimeSkipped set PATH=%ORIGINAL_PATH% cd "%~dp0" -exit /b %IFCOS_SCRIPT_RET% +exit %IFCOS_SCRIPT_RET% ::::::::::::::::::::::::::::::::::::: Subroutines ::::::::::::::::::::::::::::::::::::: :: DownloadFile - Downloads a file using PowerShell :: Params: %1 url, %2 destinationDir, %3 filename +:: Required vars: +:: - DEPENDENCY_NAME :DownloadFile -mkdir "%2" -pushd "%2" -if not exist "%~3". ( - call cecho.cmd 0 13 "Downloading %DEPENDENCY_NAME% into %~2." - powershell -Command "[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12; $webClient = new-object System.Net.WebClient; $webClient.Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials; $webClient.DownloadFile('%1', '%3')" - REM Old wget version in case someone has problem with PowerShell: wget --no-check-certificate %1 -) else ( - call cecho.cmd 0 13 "%DEPENDENCY_NAME% already downloaded. Skipping." -) -set RET=%ERRORLEVEL% -popd -exit /b %RET% +%PWSH_TOOLS% download_file "%DEPENDENCY_NAME%" "%1" "%2" "%3" +IF NOT %ERRORLEVEL%==0 GOTO :Error +exit /b 0 :: ExtractArchive - Extracts an archive file using 7-zip :: Params: %1 filename, %2 destinationDir, %3 dirAfterExtraction +:: Required vars: +:: - DEPENDENCY_NAME :ExtractArchive -if not exist "%~3". ( - call cecho.cmd 0 13 "Extracting %DEPENDENCY_NAME% into %~2 from %1" - 7za x %1 -y -o%2 > nul -) else ( - call cecho.cmd 0 13 "%DEPENDENCY_NAME% already extracted into %~3. Skipping." -) -exit /b %ERRORLEVEL% - -:: GitCloneOrPullRepository - Clones or pulls (if repository already cloned) a Git repository -:: Params: %1 gitUrl, %2 destDir -:: F.ex. call :GitCloneRepository https://github.com/KhronosGroup/OpenCOLLADA.git "%DEPS_DIR%\OpenCOLLADA\" -:GitCloneOrPullRepository -if not exist "%~2". ( - call cecho.cmd 0 13 "Cloning %DEPENDENCY_NAME% into %~2." - pushd "%DEPS_DIR%" - call git clone %1 %2 - set RET=%ERRORLEVEL% -) else ( - call cecho.cmd 0 13 "%DEPENDENCY_NAME% already cloned. Pulling latest changes." - git reset --hard - pushd %2 - call git pull - set RET=0 -) -popd -exit /b %RET% +%PWSH_TOOLS% extract_file "%DEPENDENCY_NAME%" "%1" "%2" "%3" +IF NOT %ERRORLEVEL%==0 GOTO :Error +exit /b 0 :: GitCloneAndCheckoutRevision - Clones a Git repository and checks out a specific revision or tag :: Params: %1 gitUrl, %2 destDir, %3 revision :: F.ex. call :GitCloneAndCheckoutRevision https://github.com/KhronosGroup/OpenCOLLADA.git "%DEPENDENCY_DIR%" 064a60b65c2c31b94f013820856bc84fb1937cc6 +:: Required vars: +:: - DEPENDENCY_NAME :GitCloneAndCheckoutRevision -if not exist "%~2". ( - call cecho.cmd 0 13 "Cloning %DEPENDENCY_NAME% into %~2." - pushd "%DEPS_DIR%" - call git clone %1 %2 - set RET=%ERRORLEVEL% - if not "%RET%"=="0" exit /b %RET% - popd -) else ( - call cecho.cmd 0 13 "%DEPENDENCY_NAME% already cloned." - set RET=0 -) -pushd "%2" -call git fetch -call cecho.cmd 0 13 "Checking out %DEPENDENCY_NAME% revision %3." -call git reset --hard -call git checkout %3 -set RET=%ERRORLEVEL% -popd -exit /b %RET% +%PWSH_TOOLS% git_clone_and_checkout_revision "%DEPENDENCY_NAME%" "%1" "%2" "%3" +IF NOT %ERRORLEVEL%==0 GOTO :Error +exit /b 0 :: RunCMake - Runs CMake for a CMake-based project :: Params: %* cmakeOptions @@ -871,20 +831,36 @@ pushd %BUILD_DIR% :: cache always e.g. when we've had new changes in the repository. IF %BUILD_TYPE%==Rebuild IF EXIST CMakeCache.txt. del CMakeCache.txt +set VS_TOOLSET_CMAKE_ARG= IF NOT "%VS_TOOLSET_HOST%"=="" ( - cmake .. -G %GENERATOR% -A %VS_PLATFORM% -T %VS_TOOLSET_HOST% %* -) ELSE ( - cmake .. -G %GENERATOR% -A %VS_PLATFORM% %* + set VS_TOOLSET_CMAKE_ARG=-T %VS_TOOLSET_HOST% ) - +set COMMAND=cmake .. -G %GENERATOR% -A %VS_PLATFORM% %VS_TOOLSET_CMAKE_ARG% %* +echo %COMMAND% +%COMMAND% set RET=%ERRORLEVEL% popd exit /b %RET% -:: TODO add BuildCMakeProject which utilizes cmake --build +:: Params: %1 buildDir, %2 configuration +:: Required vars: +:: - DEPENDENCY_NAME +:BuildCMakeProject +pushd %1 +call cecho.cmd 0 13 "Building %DEPENDENCY_NAME%. Please be patient, this will take a while." +set COMPILE_WITH_WPO_SETTING= +IF NOT %COMPILE_WITH_WPO%==FALSE ( + set COMPILE_WITH_WPO_SETTING=;WholeProgramOptimization=TRUE +) +set COMMAND=cmake --build . --config %2 -- %MSBUILD_MULTIPROC% +echo %COMMAND% +%COMMAND% +set RET=%ERRORLEVEL% +popd +exit /b %RET% :: BuildSolution - Builds/Rebuilds/Cleans a solution using MSBuild -:: Params: %1 solutioName, %2 configuration +:: Params: %1 solutionName, %2 configuration :BuildSolution IF [%~3]==[] ( set TARGET=%BUILD_TYPE% @@ -899,30 +875,47 @@ IF [%~3]==[] ( call cecho.cmd 0 13 "Building %TARGET% of %DEPENDENCY_NAME%. Please be patient, this will take a while." :: whole program optimization avoids Visual C++ hanging when compiling 32-bit release OCCT up to version 7.4.0 -IF %COMPILE_WITH_WPO%==FALSE ( - %MSBUILD_CMD% %1 /p:configuration=%2;platform=%VS_PLATFORM% /t:"%TARGET%" -) ELSE ( - %MSBUILD_CMD% %1 /p:configuration=%2;platform=%VS_PLATFORM%;WholeProgramOptimization=TRUE /t:"%TARGET%" +set COMPILE_WITH_WPO_SETTING= +IF NOT %COMPILE_WITH_WPO%==FALSE ( + set COMPILE_WITH_WPO_SETTING=;WholeProgramOptimization=TRUE ) +%MSBUILD_CMD% %1 /p:configuration=%2;platform=%VS_PLATFORM%%COMPILE_WITH_WPO_SETTING% /t:"%TARGET%" exit /b %ERRORLEVEL% -:: InstallCMakeProject - Builds the INSTALL project of CMake-based project -:: Params: %1 buildDir, %2 == configuration -:: NOTE the actual install dir is set during cmake run. -:: TODO Utilize cmake --build --target INSTALL +:: Params: %1 buildDir, %2 configuration +:: Required vars: +:: - DEPENDENCY_NAME :InstallCMakeProject -pushd %1 -call cecho.cmd 0 13 "Installing %2 %DEPENDENCY_NAME%. Please be patient, this will take a while." +%PWSH_TOOLS% install_cmake_project "%DEPENDENCY_NAME%" "%1" "%2" +IF NOT %ERRORLEVEL%==0 GOTO :Error +exit /b 0 -:: whole program optimization avoids Visual C++ hanging when compiling 32-bit release OCCT up to version 7.4.0 -IF %COMPILE_WITH_WPO%==FALSE ( - %MSBUILD_CMD% INSTALL.%VCPROJ_FILE_EXT% /p:configuration=%2;platform=%VS_PLATFORM% -) ELSE ( - %MSBUILD_CMD% INSTALL.%VCPROJ_FILE_EXT% /p:configuration=%2;platform=%VS_PLATFORM%;WholeProgramOptimization=TRUE -) +:: Checks whether a dependency is already installed for the specified config +:: Doesn't work for dependencies, only for those that need separate Debug/Release installs. +:: Required vars: +:: - DEPENDENCY_NAME +:: - DEPENDENCY_INSTALL_NAME +:: - NEXT_DEPENDENCY_LABEL +:: Always intended to be used with the code below +:: (unfortunately we can't move `GOTO` to the this label too, +:: because of how it would interact with `call` and `exit /b`): +:: ``` +:: call :CheckInstallation +:: if %ERRORLEVEL%==200 GOTO %NEXT_DEPENDENCY_LABEL% +:: ``` +:CheckInstallation +%PWSH_TOOLS% check_installation %DEPENDENCY_NAME% "%INSTALL_DIR%\%DEPENDENCY_INSTALL_NAME%" set RET=%ERRORLEVEL% -popd -exit /b %RET% +if %RET%==200 echo Found existing "%INSTALL_DIR%\%DEPENDENCY_INSTALL_NAME%" for %BUILD_CFG%, skipping && exit /b 200 +if %RET% NEQ 404 GOTO :Error +exit /b 0 + +:: Required vars: +:: - DEPENDENCY_INSTALL_NAME +:MarkInstallation +%PWSH_TOOLS% mark "%INSTALL_DIR%\%DEPENDENCY_INSTALL_NAME%" +IF NOT %ERRORLEVEL%==0 GOTO :Error +exit /b 0 :: PrintUsage - Prints usage information :PrintUsage @@ -940,3 +933,4 @@ echo - https://msdn.microsoft.com/en-us/library/ms229859(v=vs.110).aspx echo. echo NB: This script needs to be ran from the directory directly containing it. echo. + diff --git a/win/build-ifcopenshell.bat b/win/build-ifcopenshell.bat index 7f8233cb54..24d43e3a1a 100755 --- a/win/build-ifcopenshell.bat +++ b/win/build-ifcopenshell.bat @@ -21,7 +21,7 @@ :: a deduced generator will be used for %1 and BUILD_CFG_DEFAULT for %2 (both set in vs-cfg.cmd) :: Possible extra parameters are passed for the MSBuild call. -@echo off +@if not defined ECHO_ON ( echo off ) set PROJECT_NAME=IfcOpenShell echo. diff --git a/win/build-type-cfg.cmd b/win/build-type-cfg.cmd index acb75d64ad..773c3f300b 100644 --- a/win/build-type-cfg.cmd +++ b/win/build-type-cfg.cmd @@ -20,7 +20,7 @@ :: This script initializes various CMake build configuration type related variables. :: This batch file expects CMake build configuration type as %1. -@echo off +@if not defined ECHO_ON ( echo off ) :: Set up variables depending on the used build configuration type. set BUILD_CFG=%1 diff --git a/win/install-ifcopenshell.bat b/win/install-ifcopenshell.bat index 592ec85b89..ee6ed3b53c 100755 --- a/win/install-ifcopenshell.bat +++ b/win/install-ifcopenshell.bat @@ -20,8 +20,11 @@ :: This batch file expects CMake generator as %1 and build configuration type as %2. If not provided, :: a deduced generator will be used for %1 and BUILD_CFG_DEFAULT for %2 (both set in vs-cfg.cmd) :: Possible extra parameters are passed for the MSBuild call. +:: +:: Example usage: +:: install-ifcopenshell.bat vs2022-x64 Debug -@echo off +@if not defined ECHO_ON ( echo off ) set PROJECT_NAME=IfcOpenShell echo. @@ -55,7 +58,8 @@ call cecho.cmd 0 13 "* IFCOS_NUM_BUILD_PROCS`t= %IFCOS_NUM_BUILD_PROCS%" echo. call cecho.cmd 0 13 "Installing %VS_PLATFORM% %BUILD_CFG% %PROJECT_NAME%" -cmake --build ..\%BUILD_DIR% --target INSTALL -- /nologo /m:%IFCOS_NUM_BUILD_PROCS% /p:Platform=%VS_PLATFORM% ^ +set MSBUILD_MULTIPROC=/m /p:CL_MPCount=%IFCOS_NUM_BUILD_PROCS% /p:UseMultiToolTask=true /p:EnforceProcessCountAcrossBuilds=true +cmake --build ..\%BUILD_DIR% --target INSTALL -- /nologo %MSBUILD_MULTIPROC% /p:Platform=%VS_PLATFORM% ^ /p:Configuration=%BUILD_CFG% %3 %4 %5 %6 %7 %8 %9 IF NOT %ERRORLEVEL%==0 GOTO :Error diff --git a/win/patches/.gersemirc b/win/patches/.gersemirc new file mode 100644 index 0000000000..f64d72913d --- /dev/null +++ b/win/patches/.gersemirc @@ -0,0 +1 @@ +disable_formatting: true diff --git a/win/run-cmake.bat b/win/run-cmake.bat index d250161407..397887eb6c 100755 --- a/win/run-cmake.bat +++ b/win/run-cmake.bat @@ -16,8 +16,13 @@ :: along with this program. If not, see . :: :: :: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: +:: Example usage: +:: run-cmake.bat vs2022-x64 +:: run-cmake.bat vs2022-x64 -DGLTF_SUPPORT=ON -DHDF5_SUPPORT=OFF -@echo off + +@if not defined ECHO_ON ( echo off ) echo. set PROJECT_NAME=IfcOpenShell @@ -79,14 +84,11 @@ popd IF NOT EXIST ..\%BUILD_DIR%. mkdir ..\%BUILD_DIR% pushd ..\%BUILD_DIR% -:: tfk: todo remove duplication -set BOOST_VERSION=1.86.0 -set BOOST_VER=%BOOST_VERSION:.=_% +:: Legacy setup. +if not defined BOOST_INSTALL_DIR ( + set BOOST_INSTALL_DIR=%DEPS_DIR%\boost_1_86_0\stage\%GEN_SHORTHAND% +) -set BOOST_ROOT=%DEPS_DIR%\boost_%BOOST_VER% -set BOOST_LIBRARYDIR=%BOOST_ROOT%\stage\%GEN_SHORTHAND%\lib -if not defined OCC_INCLUDE_DIR set OCC_INCLUDE_DIR=%INSTALL_DIR%\oce\include\oce -if not defined OCC_LIBRARY_DIR set OCC_LIBRARY_DIR=%INSTALL_DIR%\oce\Win%ARCH_BITS%\lib set OPENCOLLADA_INSTALL_DIR=%INSTALL_DIR%\OpenCOLLADA set LIBXML2_INCLUDE_DIR=%DEPS_DIR%\OpenCOLLADA\Externals\LibXML\include set LIBXML2_LIBRARIES=%INSTALL_DIR%\OpenCOLLADA\lib\opencollada\xml.lib @@ -99,21 +101,20 @@ for /f "usebackq delims=" %%v in (` set PYTHON_INCLUDE_DIR=%PYTHONHOME%\include set PYTHON_LIBRARY=%PYTHONHOME%\libs\python%PY_VER_MAJOR_MINOR%.lib -set SWIG_INSTALL_DIR=%INSTALL_DIR%\swigwin +:: `swigwin` is a legacy installation folder name, before we started using versioned folders. +:: we can remove it later. +if not defined SWIG_INSTALL_DIR set SWIG_INSTALL_DIR=%INSTALL_DIR%\swigwin set JSON_INCLUDE_DIR=%INSTALL_DIR%\json if not defined ADD_COMMIT_SHA set ADD_COMMIT_SHA=Off -set CGAL_INCLUDE_DIR=%INSTALL_DIR%\cgal\include -:: set CGAL_LIBRARY_DIR=%INSTALL_DIR%\cgal\lib -set GMP_INCLUDE_DIR=%INSTALL_DIR%\mpir -set GMP_LIBRARY_DIR=%INSTALL_DIR%\mpir -set MPFR_INCLUDE_DIR=%INSTALL_DIR%\mpfr -set MPFR_LIBRARY_DIR=%INSTALL_DIR%\mpfr +set CGAL_INSTALL_DIR=%INSTALL_DIR%\cgal +set GMP_INSTALL_DIR=%INSTALL_DIR%\mpir +set MPFR_INSTALL_DIR=%INSTALL_DIR%\mpfr +:: We don't install Eigen currently, +:: so there's no Eigen3config.cmake and therefore we provide path explicitly. set EIGEN_DIR=%INSTALL_DIR%\Eigen -set USD_INCLUDE_DIR=%INSTALL_DIR%\usd\include -set USD_LIBRARY_DIR=%INSTALL_DIR%\usd\lib -set TBB_INCLUDE_DIR=%INSTALL_DIR%\tbb\include -set TBB_LIBRARY_DIR=%INSTALL_DIR%\tbb\lib +set TBB_INSTALL_DIR=%INSTALL_DIR%\tbb +set USD_INSTALL_DIR=%INSTALL_DIR%\usd set ROCKSDB_INSTALL_DIR=%INSTALL_DIR%\rocksdb set ZSTD_INSTALL_DIR=%INSTALL_DIR%\zstd @@ -125,10 +126,11 @@ echo Toolset = %VS_TOOLSET% echo Arguments = %ARGUMENTS% echo. call cecho.cmd 0 10 "Dependency Environment Variables for %PROJECT_NAME%:" -echo BOOST_ROOT = %BOOST_ROOT% -echo BOOST_LIBRARYDIR = %BOOST_LIBRARYDIR% +echo BOOST_INSTALL_DIR = %BOOST_INSTALL_DIR% +:: OCC_INCLUDE_DIR / OCC_LIBRARY_DIR are legacy vars, they're not defined by build-deps.cmd anymore. echo OCC_INCLUDE_DIR = %OCC_INCLUDE_DIR% echo OCC_LIBRARY_DIR = %OCC_LIBRARY_DIR% +echo OCC_INSTALL_DIR = %OCC_INSTALL_DIR% echo OPENCOLLADA_INSTALL_DIR = %OPENCOLLADA_INSTALL_DIR% echo LIBXML2_INCLUDE_DIR = %LIBXML2_INCLUDE_DIR% echo LIBXML2_LIBRARIES = %LIBXML2_LIBRARIES% @@ -140,17 +142,13 @@ echo PYTHON_EXECUTABLE = %PYTHON_EXECUTABLE% echo SWIG_INSTALL_DIR = %SWIG_INSTALL_DIR% echo JSON_INCLUDE_DIR = %JSON_INCLUDE_DIR% echo. -echo CGAL_INCLUDE_DIR = %CGAL_INCLUDE_DIR% +echo CGAL_INSTALL_DIR = %CGAL_INSTALL_DIR% :: echo CGAL_LIBRARY_DIR = %CGAL_LIBRARY_DIR% -echo GMP_INCLUDE_DIR = %GMP_INCLUDE_DIR% -echo GMP_LIBRARY_DIR = %GMP_LIBRARY_DIR% -echo MPFR_INCLUDE_DIR = %MPFR_INCLUDE_DIR% -echo MPFR_LIBRARY_DIR = %MPFR_LIBRARY_DIR% +echo GMP_INSTALL_DIR = %GMP_INSTALL_DIR% +echo MPFR_INSTALL_DIR = %MPFR_INSTALL_DIR% echo EIGEN_DIR = %EIGEN_DIR% -echo USD_INCLUDE_DIR = %USD_INCLUDE_DIR% -echo USD_LIBRARY_DIR = %USD_LIBRARY_DIR% -echo TBB_INCLUDE_DIR = %TBB_INCLUDE_DIR% -echo TBB_LIBRARY_DIR = %TBB_LIBRARY_DIR% +echo TBB_INSTALL_DIR = %TBB_INSTALL_DIR% +echo USD_INSTALL_DIR = %USD_INSTALL_DIR% echo ROCKSDB_INSTALL_DIR = %ROCKSDB_INSTALL_DIR% echo ZSTD_INSTALL_DIR = %ZSTD_INSTALL_DIR% echo CCACHE_INSTALL_DIR = %CCACHE_INSTALL_DIR% @@ -165,17 +163,31 @@ echo "Running CMake for %PROJECT_NAME%." set CMAKE_PREFIX_PATH=%HDF5_INSTALL_DIR%;%OPENCOLLADA_INSTALL_DIR%;%SWIG_INSTALL_DIR% set CMAKE_PREFIX_PATH=%CMAKE_PREFIX_PATH%;%ROCKSDB_INSTALL_DIR%;%ZSTD_INSTALL_DIR% -set CMAKE_PREFIX_PATH=%CMAKE_PREFIX_PATH%;%BOOST_ROOT%;%CCACHE_INSTALL_DIR% +set CMAKE_PREFIX_PATH=%CMAKE_PREFIX_PATH%;%BOOST_INSTALL_DIR%;%CCACHE_INSTALL_DIR% +set CMake_PREFIX_PATH=%CMAKE_PREFIX_PATH%;%USD_INSTALL_DIR%;%TBB_INSTALL_DIR% +set CMAKE_PREFIX_PATH=%CMAKE_PREFIX_PATH%;%OCC_INSTALL_DIR%;%CGAL_INSTALL_DIR% +set CMAKE_PREFIX_PATH=%CMAKE_PREFIX_PATH%;%GMP_INSTALL_DIR%;%MPFR_INSTALL_DIR% + +:: Not fully supported - not available from install-ifcopenshell +:: and some logs are still showing Visual Studio generators. +:: Needed just for debugging. +if defined USE_NINJA ( + set GENERATOR=Ninja + set ARCH_OPTION= +) else ( + set GENERATOR=%GENERATOR% + set ARCH_OPTION=-A %VS_PLATFORM% +) IF NOT "%VS_TOOLSET_HOST%"=="" ( - cmake.exe %CMAKELISTS_DIR% -G %GENERATOR% -A %VS_PLATFORM% -T %VS_TOOLSET_HOST% ^ - -DCMAKE_INSTALL_PREFIX="%CMAKE_INSTALL_PREFIX%" -DBoost_NO_BOOST_CMAKE=ON ^ + cmake.exe %CMAKELISTS_DIR% -G %GENERATOR% %ARCH_OPTION% -T %VS_TOOLSET_HOST% ^ + -DCMAKE_INSTALL_PREFIX="%CMAKE_INSTALL_PREFIX%" ^ -DWITH_ROCKSDB=On -DWITH_ZSTD=On ^ -DCMAKE_PREFIX_PATH="%CMAKE_PREFIX_PATH%" ^ -DADD_COMMIT_SHA=%ADD_COMMIT_SHA% %ARGUMENTS% ) ELSE ( - cmake.exe %CMAKELISTS_DIR% -G %GENERATOR% -A %VS_PLATFORM% ^ - -DCMAKE_INSTALL_PREFIX="%CMAKE_INSTALL_PREFIX%" -DBoost_NO_BOOST_CMAKE=ON ^ + cmake.exe %CMAKELISTS_DIR% -G %GENERATOR% %ARCH_OPTION% ^ + -DCMAKE_INSTALL_PREFIX="%CMAKE_INSTALL_PREFIX%" ^ -DWITH_ROCKSDB=On -DWITH_ZSTD=On ^ -DCMAKE_PREFIX_PATH="%CMAKE_PREFIX_PATH%" ^ -DADD_COMMIT_SHA=%ADD_COMMIT_SHA% %ARGUMENTS% diff --git a/win/set-python-to-path.bat b/win/set-python-to-path.bat index 5c7ebe00bc..08e3f7f5e3 100755 --- a/win/set-python-to-path.bat +++ b/win/set-python-to-path.bat @@ -19,7 +19,7 @@ :: Pass x86 or x64 as %1, if not specified x64 assumed. -@echo off +@if not defined ECHO_ON ( echo off ) set TARGET_ARCH=%1 if "%TARGET_ARCH%"=="" set TARGET_ARCH=x64 if not exist "%~dp0BuildDepsCache-%TARGET_ARCH%.txt". ( diff --git a/win/utils/cecho.cmd b/win/utils/cecho.cmd index f0eb1b3749..97361c881a 100644 --- a/win/utils/cecho.cmd +++ b/win/utils/cecho.cmd @@ -1,3 +1,4 @@ +:: Don't check for `ECHO_ON` or it will get too verbose without any benefit. @echo off setlocal ENABLEDELAYEDEXPANSION @@ -38,5 +39,6 @@ if defined BGC ( echo|set /p="!STYLE!!TEXT!!ESC![0m" echo. +if defined ECHO_ON ( echo on ) endlocal exit /b 0 diff --git a/win/utils/tools.ps1 b/win/utils/tools.ps1 new file mode 100644 index 0000000000..c143581789 --- /dev/null +++ b/win/utils/tools.ps1 @@ -0,0 +1,233 @@ +Set-PSDebug -Trace 0 +Set-StrictMode -Version 3 +$ErrorActionPreference = "Stop" + + +# Create marker file to indicate whether Release or Debug build was installed. +function mark { + param( + [Parameter(Mandatory = $true)] + [string]$installation_dir + ) + + if (-not (Test-Path -Path $installation_dir)) { + throw "Directory '$installation_dir' does not exist." + } + + $marker_filepath = Join-Path -Path $installation_dir -ChildPath $ENV:MARKER_FILE + if (Test-Path -Path $marker_filepath) { + return + } + cecho.cmd 0 13 "Marking installation in '$installation_dir' with '$ENV:MARKER_FILE'." + New-Item -Path $marker_filepath -ItemType File | Out-Null +} + +# This function can be deprecated in the future, since installations are marked automatically. +# It's here only to avoid some disruption during the transition period. +function mark_based_on_artifacts { + param( + [Parameter(Mandatory = $true)] + [string]$dependency_name, + + [Parameter(Mandatory = $true)] + [string]$installation_dir + ) + + if ($dependency_name -eq "hdf5") { + if ($env:BUILD_CFG -eq "Debug") { + $artifact = "lib\libhdf5_D.lib" + } + else { + $artifact = "lib\libhdf5.lib" + } + } + elseif ($dependency_name -eq "opencollada") { + if ($env:BUILD_CFG -eq "Debug") { + $artifact = "lib\opencollada\OpenCOLLADAFrameworkd.lib" + } + else { + $artifact = "lib\opencollada\OpenCOLLADAFramework.lib" + } + } + elseif ($dependency_name -eq "OpenCASCADE") { + # New OCCT folder layout was introduced after marker files were added, + # so installation don't need artifact-based detection. + return + } + elseif ($dependency_name -eq "rocksdb") { + if ($env:BUILD_CFG -eq "Debug") { + $artifact = "lib\rocksdb_d.lib" + } + else { + $artifact = "lib\rocksdb.lib" + } + } + else { + throw "Unexpected dependency name '$dependency_name'." + } + $artifact_filepath = Join-Path -Path $installation_dir -ChildPath $artifact + if (-not (Test-Path -Path $artifact_filepath)) { + return + } + if (-not (Test-Path -Path $installation_dir)) { + throw "Directory '$installation_dir' does not exist." + } + $marker_filepath = Join-Path -Path $installation_dir -ChildPath $ENV:MARKER_FILE + if (Test-Path -Path $marker_filepath) { + return + } + cecho.cmd 0 13 "Found artifact '$artifact' for dependency '$dependency_name' $env:BUILD_CFG." + & mark $installation_dir +} + +# Check if installation exists for the current `BUILD_CFG`. +# Returns exit code 200 if installation exists, 404 otherwise. +# Since we want Release and Debug installation to coexist, +# we add special marker file to indicate which build type was installed. +function check_installation { + param( + [Parameter(Mandatory = $true)] + [string]$dependency_name, + [Parameter(Mandatory = $true)] + [string]$installation_dir + ) + + if (-not (Test-Path -Path $installation_dir)) { + exit 404 + } + + & mark_based_on_artifacts $dependency_name $installation_dir + + $marker_filepath = Join-Path -Path $installation_dir -ChildPath $ENV:MARKER_FILE + if (-not (Test-Path -Path $marker_filepath)) { + exit 404 + } + exit 200 +} + + +# Dependencies Release/Debug configs compatibility: +# - hdf5: incompatible +# - OpenCASCADE: incompatible +# - rocksdb: incompatible +# - opencollada: incompatible +# - zstd: compatible + +function setup_build_cfg { + if (-not $env:BUILD_CFG) { + throw "Variable 'BUILD_CFG' is not defined." + } + if ($env:BUILD_CFG -eq "Debug") { + $ENV:MARKER_FILE = ".debug_installation" + } + else { + $ENV:MARKER_FILE = ".release_installation" + } +} + + +function extract_file { + param( + [Parameter(Mandatory = $true)] + [string]$dependency_name, + [Parameter(Mandatory = $true)] + [string]$filename, + [Parameter(Mandatory = $true)] + [string]$destination_dir, + [Parameter(Mandatory = $true)] + [string]$dir_after_extraction + ) + if (Test-Path -Path "$dir_after_extraction") { + cecho.cmd 0 13 "$dependency_name already extracted into '$dir_after_extraction'. Skipping." + exit 0 + } + cecho.cmd 0 13 "Extracting $dependency_name into '$destination_dir' from '$filename'." + 7za x "$filename" -o"$destination_dir" + exit 0 +} + + +function download_file { + param( + [Parameter(Mandatory = $true)] + [string]$dependency_name, + [Parameter(Mandatory = $true)] + [string]$url, + [Parameter(Mandatory = $true)] + [string]$destination_dir, + [Parameter(Mandatory = $true)] + [string]$filename + ) + mkdir "$destination_dir" -Force | Out-Null + pushd "$destination_dir" + if (Test-Path -Path "$filename") { + cecho.cmd 0 13 "$dependency_name already downloaded. Skipping." + exit 0 + } + + cecho.cmd 0 13 "Downloading $dependency_name into '$destination_dir'" + Invoke-WebRequest $url -OutFile $filename + exit 0 +} + + +# Required env variables: +# - DEPS_DIR +function git_clone_and_checkout_revision { + param( + [Parameter(Mandatory = $true)] + [string]$dependency_name, + [Parameter(Mandatory = $true)] + [string]$git_url, + [Parameter(Mandatory = $true)] + [string]$dest_dir, + [Parameter(Mandatory = $false)] + [string]$revision + ) + if (Test-Path -Path "$dest_dir") { + cecho.cmd 0 13 "Cloning $dependency_name is already cloned." + exit 0 + } + cecho.cmd 0 13 "Cloning $dependency_name into '$dest_dir'." + pushd "$env:DEPS_DIR" + git clone $git_url $dest_dir + popd + + pushd "$dest_dir" + git fetch + cecho.cmd 0 13 "Checking out $dependency_name revision $revision." + git reset --hard + git checkout $revision + popd + exit 0 +} + +function install_cmake_project { + param( + [Parameter(Mandatory = $true)] + [string]$dependency_name, + [Parameter(Mandatory = $true)] + [string]$build_dir, + [Parameter(Mandatory = $true)] + [string]$configuration + ) + pushd "$build_dir" + cecho.cmd 0 13 "Installing $dependency_name ($configuration). Please be patient, this may take a while." + $command = "cmake --install . --config $configuration" + cecho.cmd 0 13 "$command" + Invoke-Expression $command + popd + exit 0 +} + + +function main { + & setup_build_cfg + # Dispatch command. + $command = $Args[0] + $command_args = $Args[1..($args.Count - 1)] + & $command @command_args +} + +& main @Args +exit 0 diff --git a/win/vs-cfg.cmd b/win/vs-cfg.cmd index b086d6db5a..794291792b 100644 --- a/win/vs-cfg.cmd +++ b/win/vs-cfg.cmd @@ -36,7 +36,7 @@ :: :: NOTE: The delayed environment variable expansion needs to be enabled before calling this. -@echo off +@if not defined ECHO_ON ( echo off ) set GENERATOR=%1